网络安全攻防是一个极具魅力的技术领域,但成为一名合格的安全工程师绝非易事。你必须拥有对新技术的好奇心和积极的学习态度,具备深厚的计算机系统、编程语言和操作系统知识,并乐意不断地去学习和进步。
如果你想成为一名优秀的网络安全从业者,以下是 10 种最重要的基础条件,请认真阅读:
1. 了解黑客的思维方式
我们生活中用到的网站、软件等,都是由程序员编写的代码构成的。
这些代码在设计的过程中,都是基于一种正向的逻辑进行的,为了实现某个目的,完成某个操作的流程或数据传输逻辑。
而黑客的思维是逆向的,他们会去分析目前这个操作流程或数据传输逻辑中,是否存在一些验证不严谨或者隐秘信息被泄露的风险,并加以利用,从而绕过正常的操作逻辑达到未授权访问或操作的能力。
通俗点说,程序员是造房子的,而黑客则是看看房子是不是哪里漏了个风,缺了个口。翻进去为所欲为;有的甚至直接将房子拆了。
2. 学习 UNIX/LINUX
UNIX 和 Linux 是网络安全领域的基石。初学者应掌握以下书籍中的核心内容,它们不仅教你学会 Linux 和 UNIX 的基础知识,其中包含了大量用于在 UNIX 环境中进行高级编程的代码示例。
《Linux/UNIX 系统编程手册》
这是一本相对较新的 Linux 书籍,由 Michael Kerrisk 编写,他是 Linux 手册的维护成员之一。如果只推荐一本书的话,我会推荐这一本,因为它更全面,它应该是学习 UNIX/Linux 系统编程的标准书籍。
《Linux 命令行大全》
《Linux 命令行大全》主要介绍 Linux 命令行的使用,循序渐进,深入浅出,引导读者全面掌握命令行的使用方法。每一个要在 Linux 中工作的新程序员都应该有一本这本书。例如掌握 ls, grep, chmod, chown 等常用命令。
《UNIX 环境高级编程(第 3 版)》
这是学习 UNIX 最好的书之一,是由 Richard W. Stevens 编写的经典。UNIX 是有史以来最好的软件之一,它已经有 30 多年的历史了,而且仍然很强大。这本书的优点在于,书中有成千上万的代码示例,并给出了清晰的解释,它还包含了数百个插图和图形,展示了不同的 UNIX 概念是如何工作的。
3. 学习一门编程语言
黑客&网络安全工程师的武器也是代码。想要成为黑客或者网络安全工程师,首先要学会一门黑客需要的编程语言。
对于没有代码经验的小白,下面三项,是安全行业的从业者都最好能掌握的语言,锤炼一下自己编程的功底。
Shell 脚本
掌握常用的 Linux 命令,能编写简单的 Shell 脚本,处理一些简单的事务,如自动化备份、日志分析等。
C 语言(C++可选)
C 语言没有复杂的特性,是现代编程语言的祖师爷,适合编写底层软件,还能帮助你理解内存、算法、操作系统等计算机知识,建议学一下。这对于理解缓冲区溢出等漏洞原理至关重要。
Python
C 语言帮助你理解底层,Python 则助你编写网络、爬虫、数据处理、图像处理等功能性的软件。是程序员,尤其是黑客们非常钟爱的编程语言,不得不学。许多安全工具如 Metasploit 的部分模块就是用 Python 编写的。
4. 学习了解计算机网络知识
这是另一个必不可少的基础条件,学习网络知识,理解网络的构成。懂得不同类型网络之间的差异之处,清晰的了解 TCP/IP 和 UDP 协议。这都是在系统中寻找 漏洞的必不可少的技能。理解局域网、广域网,VPN 和防火墙的重要性,精通 Wireshark 和 NMAP 这样的网络扫描和数据包分析工具等。
重点学习 OSI、TCP/IP 模型,网络协议,网络设备工作原理等内容,其他内容快速通读;
- OSI 七层模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
- TCP/IP 模型:网络接口层、网际层、传输层、应用层。
- 常见协议:HTTP, HTTPS, DNS, DHCP, FTP, SSH 等的工作原理及端口号。
5. 学习使用黑客常用操作系统
注重安全性的操作系统是黑客最好的朋友,因为它可以帮助他们发现计算机系统或计算机网络中的弱点。
Kali Linux
由 Offensive Security 开发并重写 BackTrack,Kali Linux 发行版在我们用于黑客目的的最佳操作系统列表中名列前茅。这个基于 Debian 的操作系统附带了 600 多个预装的笔测试工具,使您的安全工具箱更加丰富。这些通用工具会定期更新,并适用于 ARM 和 VMware 等不同平台。对于司法鉴定工作,此顶级黑客操作系统具有实时启动功能,该功能为漏洞检测提供了理想的环境。


