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 ...
3. 网络层
网络层基础
核心功能:
寻址(Addressing)
转发(Forwarding): 将数据包定向到正确接口(基于本地转发表);
路由(Routing): 全局计算转发表(通过路由协议);
架构分层:
数据平面(Data Plane): 处理单个数据包的转发(快速, 本地决策);
控制平面(Control Plane): 计算转发表的分布式算法(全局, 慢速);
IP协议核心设计
IP数据包结构:
Header:
字段名
位数
功能
版本号(Version)
4
标识IP版本(如IPv4=4);
头部长度(IHL)
4
以32位word为单位的头部长度(如无选项时为5, 对应20字节, 最长 60B 因为 IHL 最长 4bit 即 0xF word = 60B);
服务类型(ToS/DSCP)
8
定义优先级或拥塞通知(如ECN);
总长度(Total Length)
16
整个IP包的总字节数(最大65535字节);
生存时间(TTL)
8
防环路, 每经过一跳减1, 归零时丢弃包;
协议(Protocol)
8
标识 ...
John the Ripper
简介和背景
由于Linux是Internet最流行的服务器操作系统,因此它的安全性备受关注,这种安全主要靠口令实现
Linux使用一个单向函数 crypt() 来加密用户口令;单向函数 crypt() 从数学原理上保证了从加密的密文得到加密前的明文是不可能的或是非常困难的; 当用户登录系统时,系统并不是去解密已加密的口令, 而是将输入的口令明文字符串传给加密函数, 将加密函数的输出与 /etc/passwd 文件中该用户的PASSWORD域进行比较,若匹配成功,则允许用户登录系统;
John-the-Ripper 是一款免费,开源的暴力密码破解器,它有多平台版本,支持目前大多数的加密算法,如DES, MD4, MD5等;该软件破解密码方式简单而粗暴,理论上只要时间上面允许,该软件可以破译绝大多数用户密码;
用法
在 macOS 上面安装 John-the-Ripper:
1brew install john-jumbo
简单的使用方式是 john --wordlist=/path/to/wordlist.txt /path/to/passwords.txt,
其中 john 会基于你提 ...
4. Network 基础
物理层攻击
数据链路层攻击
Ethernet
以太网(Ethernet) 是最常见的数据链路层协议, 用于在本地网络中传输数据:
• 通过 MAC 地址寻址(而不是 IP 地址);
• 传输单位是帧(Frame), 而不是 IP 包;
• 可以在有线(RJ45)或无线(Wi-Fi)网络上运行;
• 每个以太网帧大约 1500 字节
MAC
每个网卡(NIC)都有一个唯一的 48-bit MAC 地址
格式: xx:xx:xx:xx:xx:xx(如 e8:39:35:2d:3e:18),前 3 个字节(OUI)标识制造商(如 Intel, Cisco),后 3 个字节是设备的唯一编号;
但 MAC 地址可以被用户伪造! 使用 ifconfig 或 ip link set 命令可以更改 MAC 地址,攻击者可以使用 MAC 欺骗进行 ARP 欺骗(ARP Spoofing)攻击
网络层攻击
IP 地址
一个 IP 地址(IPv4, 如 192.168.1.100)由两部分组成:
Network Prefix(网络前缀)
• 类似于邮政编码(ZIP Code), 用于标识一个网络(LAN ...
