什么是网络安全
网络安全可以基于攻击和防御视角来分类。我们经常听到的'红队'、'渗透测试'等就是研究攻击技术,而'蓝队'、'安全运营'、'安全运维'则研究防御技术。
无论网络、Web、移动、桌面、云等哪个领域,都有攻与防两面性。例如 Web 安全技术,既有 Web 渗透,也有 Web 防御技术(WAF)。作为一个合格的网络安全工程师,应该做到攻守兼备,毕竟知己知彼,才能百战百胜。
怎样规划网络安全
如果你是一个安全行业新人,建议先从网络安全或者 Web 安全/渗透测试这两个方向先学起。一是市场需求量高,二则是发展相对成熟入门比较容易。
值得一提的是,学网络安全,是先网络后安全;学 Web 安全,也是先 Web 再有安全。安全不是独立存在的,而是建立在其他技术基础之上的上层应用技术。脱离了这个基础,就很容易变成纸上谈兵,变成'知其然,不知其所以然',在安全的职业道路上也很难走远。
如果你是原本从事网工运维,那么可以选择网络安全方向入门;如果你原本从事程序开发,推荐选择 Web 安全/渗透测试方向入门。当然学到一定程度、或者有了一定工作经验,不同方向的技术耦合会越来越高,各个方向都需要会一点。
根据以上网络安全技能表不难看出,网络安全需要接触的技术还远远很多,常见的技能需要学习:外围打点能力、钓鱼远控能力、域渗透能力、流量分析能力、漏洞挖掘能力、代码审计能力等。
网络安全的知识多而杂,怎么科学合理安排?
一、基础阶段
入门的第一步是系统化的学习计算机基础知识,也就是学习以下这几个基础知识模块:操作系统、协议/网络、数据库、开发语言、常用漏洞原理。前面的基础知识学完之后,就要进行实操了。
因为互联网与信息化的普及网站系统对外的业务比较多,而且程序员的水平参差不齐和运维人员的配置事务,所以需要掌握的内容比较多。
- 中华人民共和国网络安全法:包含 18 个核心知识点,了解法律边界是从业的前提。
- Linux 操作系统:包含 16 个知识点,绝大多数安全工具和服务端运行在 Linux 上,必须熟练掌握命令与权限管理。
- 计算机网络:包含 12 个知识点,理解 TCP/IP 协议栈、HTTP 请求响应流程是分析流量的基础。
- SHELL:包含 14 个知识点,用于编写自动化脚本,提高工作效率。
- HTML/CSS:包含 44 个知识点,前端基础,有助于理解 XSS 等漏洞。
- JavaScript:包含 41 个知识点,浏览器端逻辑核心,逆向分析与漏洞利用的关键。
- PHP 入门:包含 12 个知识点,许多老旧系统及 CMS 使用 PHP,需了解其特性。
- MySQL 数据库:包含 30 个知识点,SQL 注入的基础,需掌握查询语句与存储过程。
- Python:包含 18 个知识点,安全领域最常用的脚本语言,用于编写 POC 和工具。
二、渗透阶段
掌握常见漏洞的原理、使用、防御等知识。Web 渗透阶段还是需要掌握一些必要的工具。
主要要掌握的工具和平台:Burp Suite(抓包改包)、AWVS(自动化扫描)、Appscan(企业级扫描)、Nessus(漏洞扫描)、sqlmap(SQL 注入工具)、nmap(端口扫描)、shodan(搜索引擎)、fofa(资产测绘)、代理工具 SSRs、hydra(爆破)、medusa(爆破)、airspoof 等。以上工具的练习完全可以利用上面的开源靶场去练习,足够了。
- SQL 注入的渗透与防御:包含 36 个知识点,通过构造恶意 SQL 语句获取数据库信息。
- XSS 相关渗透与防御:包含 12 个知识点,跨站脚本攻击,窃取用户 Cookie 或执行恶意脚本。
- 上传验证渗透与防御:包含 16 个知识点,绕过文件类型检查上传 Webshell。
- 文件包含渗透与防御:包含 12 个知识点,利用本地或远程文件包含读取敏感文件。
- CSRF 渗透与防御:包含 7 个知识点,跨站请求伪造,诱导用户执行非预期操作。
- SSRF 渗透与防御:包含 6 个知识点,服务端请求伪造,探测内网服务。
- XXE 渗透与防御:包含 5 个知识点,XML 外部实体注入,读取服务器文件。
- 远程代码执行渗透与防御:包含 7 个知识点,最严重的漏洞类型之一,直接控制服务器。


