前言
这是我的建议如何成为白帽黑客,你应该按照下面顺序学习。
简要说明
第一件事你应该学习如何编程,我建议首先学 Python,然后是 Java。
(非必须)接下来学习一些算法和数据结构是很有帮助的,它将帮助你更好的编程。
一旦你学会如何编程,你应该学习如何用 C 编程。重点关注以下话题:结构体、指针的算术运算、传值调用和引用调用、字符串 IO 基础、宏、条件编译、程序结构。
学习 UNIX 操作系统基础:Unix shells、shell 变量、文件系统、通用 Unix 命令、Shell 脚本编程、Unix Shell 环境。
(非必须)学习汇编语言。理解汇编语言如何转化为机器码再转化为可被计算机硬件执行的程序。并且你应该学习如何分析汇编程序,这对逆向工程很有用。
理解计算机操作系统及架构、进程管理、内存管理、文件系统接口和实现、IO 系统、分布式系统、计算机网络、Java 网络编程、防护与安全。理解系统管理员、计算机系统基础组成,对计算机主要组件和结构有宏观的认识。
进程管理:进程、线程、进程同步、CPU 调度、Java 多线程编程,以及死锁。内存管理:主内存和虚拟内存。
体验不同操作系统例如 Windows、Unix、Linux 命令行与 GUI 模式。
(非必须)学习密码学也是很有用的,密码学中的数学很有用。传统对称密钥,现代对称密钥、RSA、数字签名等等,应用层安全:PGP、S/MIME。
理解计算机网络和 Internet 应用层:Web、HTTP、FTP、DNS 和 Socket 通信。传输层:UDP、TCP、和拥塞控制等。另一些不错的话题:网络管理、Wireshark 网络流量分析、渗透测试和网络安全、你也可以深入计算机和网络取证、漏洞和恶意软件分析、低层次协议包分析、理解软件工程。理解软件开发阶段,包括需求、文档、设计、编码、测试和维护,软件开发模型的优缺点。
在学术之外,也有其它的比较好的事情:参加夺旗战、在有一定基础参加安全会议,经常访问安全网站,在你学了一些网站相关知识,尝试建立属于自己的网站。
一、网络安全学习路线
1.1 中华人民共和国网络安全法
- 《全国人大常委会关于维护互联网安全的决定》
- 《中华人民共和国计算机信息系统安全保护条例(2011 年修正)》
- 《中华人民共和国计算机信息网络国际联网管理暂行规定》
- 《计算机信息网络国际联网安全保护管理办法》
- 《互联网信息服务管理办法》
- 《计算机信息系统安全专用产品检测和销售许可证管理办法》
- 《通信网络安全防护管理办法》
- 《国家安全法》
1.2 Linux 基础运维
- Linux 系统运维基础
- Linux 服务管理
- Docker 安装使用
- Linux 安全加固
1.3 Linux 网络管理
- 网络必备基础
- 物理层
- 数据链路层与交换机
- 网络模型 OSI TCP 对等传输
- 虚拟局域网 VLAN
- 静态路由与配置
- 网络地址转换 NAT
- 访问控制列表 ACL
- IP 协议与 IP 地址分类
- 子网掩码
- 网关
- 子网划分
1.4 HTML 与 JavaScript
- HTML 入门
- 为什么要学习 HTML
- HTML 文档格式、实体详解
- HTML 标签、框架、表格、列表、表单、图像、背景讲解
- JavaScript 简介
- JavaScript 特点
- JavaScript 组成
- 如何在网页中写 JavaScript
1.5 PHP 入门
- PHP 环境搭建、编写代码工具选择
- PHP 基础语法(函数、变量、常量、注释、数据类型、流程控制、算术运算)
- PHP 流程控制 (IF 语句 多种嵌套 SWITCH 语句 WHILE 循环 FOR 循环 GOTO 循环)
- PHP 函数


