1. Map Reduce, Simplified Data Processing on Large Clusters
link for this paper: mapreduce
link for mit cs6.824 lecture: lecture 1
([[mapreduce-osdi04.pdf#page=1&selection=10,0,12,10&color=yellow|MapReduce is a programming model and an associated implementation for processing and generating large data sets.]])
contribution:
可以运行在 commodity machines 上面, scalable
在上千台机器上运行大量数据 (# terabytes)
programmer 不需知道很多并行相关的知识, easy to use
hides detail for parallelization, fault-tolerance, locality optimization, and load balancing
many problems are easily ...
现代cpp特性
Casting 类型转换
static_cast<>(): 在相关的 numeric types 之间或者 ptr 之间转换
dynamic_cast<>(): 用于多态继承, 例如将 parent 转换成 child 之类
reinterpret_cast<>(): 任意转变
const_cast<>(): 将一个表达式变成常量表达式
std::optional 选项库
表示一个可能有值的对象(没有值时就是默认的std::nullopt)
例子 std::optional<int> even_value = is_even ? std::optional<int>(128) : std::nullopt;
判断 std::optional 对象是否有值可以用 has_value函数, 或者判断是否不等于std::nullopt, 或者直接用if语句对对象进行判断
std::optional<int> result1 = find_the_first_postive_value(po ...
9. 数字取证 Digital-Forensics
数字取证流程(Digital Forensics Process)
四个核心阶段
识别(Identification)
确定存储关键数据的物理/数字对象(如计算机, 硬盘, 移动设备, 外接媒体等);
收集(Collection)
保护证据完整性, 建立链式监管(Chain of Custody), 记录证据哈希(Hash of Image)以验证来源;
分析(Analysis)
检查文件系统, 日志, 内存等, 恢复删除文件(Deleted Files)或残留数据(Slack Space);
报告(Reporting)
形成专家报告, 提供法律证据(Legal Evidence);
数据收集与保存(Data Collection & Preservation)
数据来源
computer
other harddrive
monitor
keyboard and mouse
media (dvd, cd, usb)
printer
digital forensics did not replace traditional (physical) ...
4. 数据链路层
性质
基本职能
成帧 Framing:
encapsulate network layer data 数据链路层会将来自网络层(第三层)的数据进行分组, 添加头部和尾部信息, 以形成一个个帧(Frame)
链路访问 Link Access:
Medium access control (MAC) protocol defines when to transmit frames 在多点接入的介质 (例如共享式以太网, 无线网络等) 中, 多个设备可能需要同时传输数据
需要负责决定什么时候由哪一个设备向链路发送数据
可靠交付 Reliable Delivery:
Primarily for mediums with high error rates (wireless)
某些网络环境中可能会受到干扰而导致帧丢失或损坏
数据链路层可以提供重传, 确认等机制, 确保帧能可靠地到达接收方
虽然TCP/IP协议栈中大多由传输层(TCP)来保证可靠性, 但一些链路层协议(如PPP)也会提供基本的可靠性功能
差错检测与纠正 Error detection and corre ...
6. File System
文件系统抽象 File System Abstraction
attribute
Hardware Reality
OS abstraction
interface
heterogeneous
uniform
storage objects
a few (disks)
many (files)
name structure
simple numeric name (id)
rich name (symbolic, hierarchical, unified)
access speed
slow
fast
crash resilience
unreliable
reliable
硬件层到 os 的转变方式
Heterogeneity
原因: many i/o devices, each with its own idiosyncrasy
Solution: abstraction
build a common interface (Application 层和 File System 层之间设置统一接口 POSIX)
write device d ...
8. 隐私权限 privacy
数据隐私概述
数据生成与收集
数据爆炸: 每天生成约2.5千亿字节数据(如社交媒体互动, 在线购物记录)
数据聚合者: 如Acxiom和Oracle, 整合多源数据构建用户画像并出售
隐私的定义
经典定义:
隔离权(Louis Brandeis): 免受他人侵扰的权利
控制权: 选择何时, 如何共享个人信息的控制能力
保密权(Richard Posner): 隐藏可能对自身不利的信息
自由基础: 隐私是言论自由与个人自主的前提
隐私侵犯案例
医疗数据泄露
案例:
Jane Doe因雇主获知其携带亨廷顿病基因被解雇
Kate Smith基因突变检测结果导致健康保险费飙升
商业数据滥用
Target预测怀孕:
通过购物模式预测用户怀孕状态, 误向未成年少女发送婴儿用品优惠券
Strava热图泄露军事基地:
用户运动轨迹数据暴露美军在叙利亚, 阿富汗的军事基地位置
匿名化失效
GIC链接攻击:
通过马萨诸塞州选民登记数据(公开)与匿名医疗数据关联, 重新识别州长 William Weld
关键信息: 出生日期 + 5位 zip 可识别69%美国人 ...
7. 访问权限控制攻击 Access Control
访问控制基础 Access Control Basics
核心概念
安全模型(Security Model)
系统抽象, 用于描述和制定安全策略
三要素: 主体(Subject), 客体(Object), 操作(Operation)
主体 Subject: users, Android Apps, Web Origins
客体: resources, including 文件, 目录, 数据库表, 设备(如UNIX文件, 进程)
操作: 读, 写, 执行, 调用等
安全策略(Security Policy)
定义访问控制矩阵, 明确主体对客体的权限
主体/客体
文件1
文件2
Alice
读
读/写
Bob
读
无权限
安全机制(Security Mechanism)
实现安全策略的技术(如操作系统内核, 加密)
2. 核心原则
最小权限原则(Principle of Least Privilege)
用户/程序**仅**拥有完成任务的必要权限
优势: 限制意外或恶意操作的影响范围
完全中介原则(Principl ...
6. binary 二进制攻击
控制劫持基础(Control Hijacking Basics)
定义: 通过二进制利用(Binary Exploitation)破坏应用程序的信任边界, 典型手段为内存损坏(Memory Corruption);
目标: 实现远程代码执行(Remote Code Execution, RCE)或提权(Privilege Escalation);
常见攻击类型:
缓冲区溢出(Buffer Overflow)
格式化字符串攻击(Format String)
整数溢出(Integer Overflow)
内存与汇编基础(Memory & Assembly Fundamentals)
内存布局:
x64 架构的每一个 entry 尺寸为 64b = 8B;
代码段(Text Segment): 存储可执行指令;
数据段(Data Segment): 存储全局变量;
堆(Heap): 动态分配内存;
栈(Stack): 管理函数调用与局部变量(后进先出);
从高地址向低地址增长;
0xffffffff -> 0x00000000;
$rsp 地址小于等于 ...
5. 内存空间抽象 Address Space
地址空间与抽象 Address Space and Abstract
os视角: 地址空间是在 process
内部的用于不同进程之间对物理内存高效, 安全访问的一种抽象方式;
Process = one or more threads running in an address space;
组成: 包括 code, data, heap, stack
Phisical Machine Interface: 多个任务共享同一个物理内存, 比如一个 config 文件
Virtual Machine Interface: 每个任务有独立的虚拟内存空间
地址空间抽象的三条准则
Address Space Independence:
Protection (controlled isolation):
Large Address Space:
单进程执行缺陷
多个进程执行
动态地址翻译 Dynamic Address Translation
Method 1: Base + Bound
机制
优点
缺点
Method 2: Segmentation
Method 3: P ...
5. 密码攻击 Password Attack
认证基础(Authentication Basics)
定义: 确认实体声明的属性真实性, 常用于验证用户或设备的身份(Identity);
目的:
实施访问控制策略(Access Control Policies)
防止冒充攻击(Impersonation Attacks)
示例:
网站通过密码认证用户
手机通过指纹识别机主
浏览器通过证书验证服务器
认证方式(Authentication Factors)
所知之物(Something You Know)
密码(Password), PIN码, 密钥
所有之物(Something You Have)
手机, 安全令牌(Security Token), 身份证
所是之物(Something You Are)
生物特征(Biometrics): 指纹, 面部识别(FaceID), 虹膜扫描
密码问题与防御(Password Problems & Defenses)
常见弱密码问题:
用户倾向于选择简单密码(如123456, password);
防御建议:
用户: 使用密码管理器(Passw ...
