二进制安全学习规划指南
- 2019 年 10 月 4 日
- 筆記
参考来源:
讲师杨坤博士是国内网络安全战队蓝莲花战队(blue-lotus)的队长,第一次将国内团队带入世界级 DEFCON CTF 比赛总决赛,成为历史上首次突破,并连续打入四年,在2016年创造了全球第二名的中国历史最好成绩,此外,也将国际CTF的先进技术带回国内,负责举办了国内规模最大的 BCTF 大赛,带动了国内整体安全攻防水平向国际化靠拢。
Hacking三步曲
- 理解系统(Understanding)
- 系统性的基础课程学习,深入理解计算机系统运作机制。
- 破坏系统(Breaking)
- 学习与创造漏洞挖掘与利用技巧
- 重构系统(Reconstruction)
- 设计与构建系统防护
基础课程学习
核心基础课程——计算机的工作原理
- 体系结构
- https://www.ece.cmu.edu/~ece447/s15/doku.php
- Labs: implement a MIPS CPU using Verilog
- 机器指令与汇编语言
- 指令的解码、执行
- 内存管理
- CPU的设计与实现
- CMU 18-447 Introduction to Computer Architecture
- 编译原理
- http://web.stanford.edu/class/cs143/
- PA: Compilers for cool language
- 自动机、词法分析、句法分析
- 运行时
- 程序静态分析
- 编译器的设计与实现
- Stanford CS-143 – Compilers
- 操作系统
- https://pdos.csail.mit.edu/6.828/2016/
- Labs: Implement jos
- Xv6 , a simple Unix-like teaching operating system
- 系统的加载与引导
- 用户态和内核态、系统调用、中断和驱动
- 进程于内存管理、文件系统
- 虚拟机
- 操作系统的设计与实现
- NT 6.828 – Operating System Engineering
其他基础课程——系统软件开发基础
- 编程语言
- 网络协议
- 算法与数据结构
漏洞挖掘与利用
快速入门——CTF
- 蓝莲花战队CTF成长秘诀——坚持超过一年的以赛代练
- 9447CTF、CCC CTF、HITCON CTF、Plaid CTF、Boston Key Party、DEF CON CTF
- CTF 历史资料库:https://github.com/ctfs
- Wargames:
- https://pwnable.kr/
- http://smashthestack.org/
如何从CTF赛棍转型
- CTF
- 短时间(48h)、目标代码量少、漏洞容易发现、利用技巧千奇百怪
- 实战——长期做一道很难的CTF题
- 长期(长年累月)、目标代码量大、漏洞难以发现、利用技术有套路可循
实战
- 目标
- Linux/Android
- Freebsd
- Apple iOS
- Sony PS4
- JavaScript Engine
- ActionScript Engine
- PHP/Java Sandbox Escape
- HTTP/SMB/DNS/UPnP Server
- 网络协议的实现
- 脚本引擎
- 内核
- 准备
- 逆向分析+代码审计
- 模糊测试
- 快速逆向与快速理解
- 对漏洞的理解
- 测试框架
- 样例生成的想法
- 学习历史漏洞 – CVEs
- 挖掘新漏洞
构建系统防护
研究与探索
- 漏洞自动挖掘技术
- 静态程序分析
- 符号执行
- 机器学习
- 漏洞利用防护机制
- Intel SGX
- 控制流完整性(CFI)
- 拟态
推荐阅读:
https://www.zhihu.com/question/263379702
参考来源:ichunqiu<二进制安全规划指南>
如有侵权,联系删除