网络安全学习路线
参考:
简易版:https://www.reddit.com/r/HowToHack/comments/dz378r/learning_path_for_ethical_hacking/
详细版:https://blog.knownsec.com/Knownsec_RD_Checklist/index.html
简介
简易版是国外关于网络安全学习路径问题的回答,详细版是知道创宇技能树。
知道创宇的技能树非常详细,但我这种小白看的有点云里雾里,不知道从哪下手,国外的这个回答看起来非常明确。在学习过程中可以适当两者结合。
2020.8.12 新发现几个不错的学习路线和资源
https://www.bilibili.com/video/BV1zz4y1D7uN 网络安全学习路线介绍
https://www.bilibili.com/video/BV1i7411G7vm?from=search&seid=12411406078515404729 千峰网络安全
简易版问答的翻译
问题
我的问题是关于学习路线,我已经看过许多hacking 视频,我希望回答者了解 shell 命令、python、html 等。我希望得到的建议是在开始hacking 相关之前需要学一些什么东西。
回答
这是我的建议如何成为正义黑客(Ethical Hacker),你应该按照下面顺序学习。
-
第一件事你应该学习如何编程,我建议首先学python,然后是java。
-
(非必须)接下来学习一些算法和数据结构是很有帮助的,它将帮助你更好的编程。
-
一旦你学会如何编程,你应该学习如何用 c 编程。重点关注以下话题:结构体、指针的算术运算、传值调用和引用调用、字符串IO基础、宏、条件编译、程序结构。
-
学习 UNIX 操作系统基础:Unix shells、shell 变量、文件系统、通用Unix 命令、Shell 脚本编程、Unix Shell 环境。
-
(非必须)学习汇编语言。理解汇编语言如何转化为机器码再转化为可被计算机硬件执行的程序。并且你应该学习如何分析汇编程序,这对逆向工程很有用。
-
理解计算机操作系统及架构、进程管理、内存管理、文件系统接口和实现、IO 系统、分布式系统、计算机网络、java 网络编程、防护与安全。理解系统管理员、计算机系统基础组成,对计算机主要组件和结构有宏观的认识。
进程管理:进程、线程、进程同步、CPU 调度、java 多线程编程,以及死锁。内存管理:主内存和虚拟内存。
体验不同操作系统例如 win unix linux 命令行与GUI 模式。
-
(非必须)学习密码学也是很有用的,密码学中的数学很有用。传统对称密钥,现代对称密钥、RSA、数字签名等等,应用层安全:PGP、S/MIME
-
理解计算机网络和Internet 应用层:Web、HTTP、FTP、DNS和socket通信。传输层:UDP、TCP、和拥塞控制等。另一些不错的话题:网络管理、WireShark网络流量分析、渗透测试和网络安全、你也可以深入计算机和网络取证、漏洞和恶意软件分析、低层次协议包分析、
-
理解软件工程。理解软件开发阶段,包括需求、文档、设计、编码、测试和维护,软件开发模型的优缺点。
在学术之外,也有其它的比较好的事情:参加夺旗战、在有一定基础参加安全会议,经常访问安全网站,在你学了一些网站相关知识,尝试建立属于自己的网站。
这个指导可能比其他人给出的要难一些,但当你想成为正义黑客或者是渗透测试专家时,这绝对是有必要的,你不能从脚本小子变为正义黑客,并且我写的这些没有我的知识量的一半,我知道我在做什么。
如果可以的话,我推荐你取得计算机学士学位,因为比起自己学习全部内容,它将使你的学习更加系统化。但是自己学习一切并不是不可能的。取得计算机学士学位会使你更容易找到相关工作。