天天看点

如何成为一名优秀的网络安全工程师?

作者:秃头程序员ya

前言

这是我的建议如何成为网络安全工程师,你应该按照下面顺序学习。

如何成为一名优秀的网络安全工程师?

简要说明

第一件事你应该学习如何编程,我建议首先学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网络流量分析、渗透测试和网络安全、你也可以深入计算机和网络取证、漏洞和恶意软件分析、低层次协议包分析、理解软件工程。理解软件开发阶段,包括需求、文档、设计、编码、测试和维护,软件开发模型的优缺点。

在学术之外,也有其它的比较好的事情:参加夺旗战、在有一定基础参加安全会议,经常访问安全网站,在你学了一些网站相关知识,尝试建立属于自己的网站。

这个指导可能比其他人给出的要难一些,但当你想成为正义黑客或者是渗透测试专家时,这绝对是有必要的,你不能从脚本小子变为正义黑客,并且我写的这些没有我的知识量的一半,我知道我在做什么。

网络安全学习路线

1.1中华人民共和国网络安全法

网络安全学习普法

了解并介绍《网络安全法》

如何成为一名优秀的网络安全工程师?
  • 《全国人大常委会关于维护互联网安全的决定》
  • 《中华人民共和国计算机信息系统安全保护条例( 2011 年修正)》
  • 《中华人民共和国计算机信息网络国际联网管理暂行规定》
  • 《计算机信息网络国际联网安全保护管理办法》
  • 《互联网信息服务管理办法》
  • 《计算机信息系统安全专用产品检测和销售许可证管理办法》
  • 《通信网络安全防护管理办法》
  • 《国家安全法》

1.2LINUX基础运维

  • LINUX 系统运维基础
  • LINUX 服务管理
  • DOCKER 安装使用
  • LINUX 安全加固

1.3LINUX网络管理

  • 网络必备基础
  • 物理层
  • 数据链路层与交换机
  • 网络模型 OSI TCP 对等传输
  • 虚拟局域网 VLAN
  • 静态路由与配置
  • 网络地址转换 NAT
  • 访问控制列表 ACL
  • IP 协议与 IP 地址分类
  • 子网掩码
  • 网关
  • 子网划分

1.4HTML与JAVASCRIPT

  • HTML 入门?
  • 为什么要学习 HTML
  • HTML 文档格式、实体详解
  • HTML 标签、框架、表格、列表、表单、图像、背景讲解
  • JAVASCRIPT 简介
  • JAVASCRIPT 特点
  • JAVASCRIPT 组成
  • 如何在网页中写 JAVASCRIPT

1.5PHP入门

  • PHP 环境搭建、编写代码工具选择
  • PHP 基础语法( 函数、变量、常量、注释、数据类型、流程控制、算术运算)
  • PHP 流程控制(IF 语句 多种嵌套 SWITCH 语句 WHILE 循环 FOR 循环GOTO 循环)
  • PHP 函数
  • PHP 正则表达式
  • PHP 文件上传、PHP 错误处理
  • PHP 操作 MYSQL 数据库
  • PHP 会话管理和控制

1.6MYSQL

  • 数据库介绍、分类、安装、配置、登录、连接等
  • 数据库基本操作 创建、查看、选中、查库表、删除数据库等相关命令行操作
  • 数据字段操作 创建 修改 增加 调整字段顺序 排序 删除等字段命令行操作* 数据库表操作创建 查看 选中删除数据库表等相关个命令行操作
  • 数据类型 整型、浮点、字符、时间、符合型等
  • 字符集合索引增删改查之更新记录、数据库权限操作

1.7JAVA入门

1.8密码学 – 穿越密码的迷宫

  • 剖析基本概念 - 什么是编码?
  • 什么是加密与解密
  • 寻找银弹 - 有没有无法破解的密码
  • 通过 JAVA 代码入门加密与解密
  • JAVA 代码解析对称密码 - DES AES
  • JAVA 代码解析公钥密码 - RSA EIGAMAL 椭圆曲线 ECC
  • JAVA 代码解析非对称密钥生成器
  • JAVA 代码解析密钥规范管理
  • JAVA 代码解析数字签名
  • 数字证书相关管理
  • JAVA 代码解析安全套接字
  • 简单并常用的 BASE64
  • 文件校验 - 循环冗余校验 CRC
  • 打破出口限制 - 使用 BOUNCY CASTLE 替代默认算法实现
  • 编码转化辅助工具 - COMMONS CODEC

第二部分:渗透与攻防

2.1安全基础与社会形势

2.2KALI常用工具的渗透与防御

  • MSF 问题解答以及 MSF 初识
  • MSF 完美升级以及目录结构解读
  • MSF 基础命令
  • MSF 之 MS08-067 MS17-010
  • MSF 之 CVE-2017-8464 震网三代
  • MSF 之后续权限渗透
  • MSF 之 SAMBA 服务漏洞攻击还原

2.3SQL注入的渗透与防御

  • SQL 注入-什么是 SQL 注入
  • SQL 注入-产生 SQL 注入的原理
  • SQL 注入-SQL 注入带来的危害有哪些
  • SQL 注入-GET 型 SQL 注入漏洞是什么
  • SQL 注入-工具以及靶场
  • SQL 注入-POST 型 SQL 注入是什么
  • SQL 注入-判断 SQL 注入点
  • SQL 注入-回归测试
  • SQL 注入-注入类型
  • SQL 注入-TIME-BASED 基于时间的盲注
  • SQL 注入-基于 USER-AGENT 注入
  • SQL 注入-基于 USER-AGENT 注入练习
  • SQL 注入-ERROR-BASED 基于报错注入
  • SQL 注入-STACKED QUERIES 基于堆叠注入
  • SQL 注入-BYPASS 混淆绕过
  • SQL 注入-BYPASS WAF 绕过
  • SQL 注入-BYPASS WAF 绕过总结
  • SQL 注入- REMOTE CODE EXECUTION 远程代码执行
  • SQL 注入-SQLMAP 的使用
  • SQL 注入-SQLMAP 原理以及源码阅读
  • SQL 注入-SQLMAP 实战 1-COOKIE 注入
  • SQL 注入-SQLMAP 实战 2-USER-AGENT 注入
  • SQL 注入-SQLMAP 实战 3-手动注入与 SQLMAP 对比
  • SQL 注入-SQLMAP 实战 4-脱库
  • SQL 注入-SQLMAP 高级应用
  • SQL 注入-如何防御 SQL 注入

2.4XSS相关渗透与防御

  • XSS 基本概念和原理介绍
  • 反射型 储存型 DOM 型实战
  • XSS 钓鱼及盲打演示
  • XSS 平台搭建及 COOKIE 获取
  • 反射型 XSS( POST) 获取用户密码
  • XSS 获取键盘记录
  • XSS 防御绕过
  • XSS 绕过之 HTMLSPECIALCHARS()函数
  • XSS 安全防御

2.5上传验证渗透与防御

  • 文件上传-基础
  • 文件上传-场景
  • 文件上传-漏洞原理
  • 文件上传-上传文件代码函数原理&上传图片拦截
  • 文件上传-漏洞带来的危害有哪些
  • 文件上传-一句话木马
  • 文件上传-后缀客户端验证-JS 禁用&BURP 改包&本地提交
  • 文件上传-后缀黑名单验证-大小写&加空格&符号点&::$DATA
  • 文件上传-后缀白名单验证-MIME 修改&%00 截断&0X00 截断
  • 文件上传-后缀变异性验证-FINECMS 任意文件上传
  • 文件上传-文件头变异验证-验证 MIME
  • 文件上传-二次渲染
  • 文件上传-代码逻辑&&条件竞争
  • 文件上传-格式变异&中间接解析&.HTACCESS
  • 文件上传-如何避免文件上传漏洞

2.6文件包含渗透与防御

  • 中间日志包含绕过
  • PHP 包含读写文件
  • STRREPLBE 函数绕过
  • 包含截断绕过 FNM_TBH 函数绕过
  • 文件包含漏洞防范措施

2.7CSRF渗透与防御

  • CSRF 漏洞概述及原理;
  • CSRF 快速拖库攻击还原;
  • CSRF 管理员密码修改还原;
  • CSRF 进行地址修改及钓鱼攻击还原;
  • CSRF 漏洞安全防范

2.8 SSRF渗透与防御

  • SSRF 原理及寻找方法;
  • SSRF 攻防实战及防范方法;

2.9 XXE渗透与防御

  • XXE 基础知识;
  • XXE CTF 考题
  • XXE CTF 考题测试以及漏洞修复
  • XXE 漏洞攻防测试
如何成为一名优秀的网络安全工程师?

2.10 远程代码执行渗透与防御

  • 远程代码执行原理介绍
  • PHP 远程代码执行常用函数演示
  • PHP 反序列化原理和案例演示
  • WEBLOGIC 反序列化攻防过程还原
  • STRUTS2 命令执行攻防过程还原
  • JBOSS 反序列化攻防过程还原
  • 远程命令执行漏洞修复

2.11 反序列化渗透与防御

  • 反序列化-什么是反序列化操作
  • 反序列化-为什么会出现安全漏洞
  • 反序列化-PHP 反序列化漏洞如何发现
  • 反序列化-PHP 反序列化漏洞如复现
  • 反序列化-CMS 审计-序列化考点
  • 反序列化-JAVA 反序列化漏洞发现利用点
  • 反序列化-JAVA 反序列化考点-真实环境&CTF
  • 反序列化-JAVA 反序 WEBGOAT&YSOSERIAL&PAYLOAD
  • 反序列化-如何避免反序列化漏洞

2.12 逻辑相关渗透与防御

  • 逻辑漏洞概述;如何挖掘逻辑漏洞;
  • 交易支付中的逻辑问题;
  • 密码修改逻辑漏洞;
  • 个人项目逻辑漏洞分享;
  • 逻辑漏洞修复;

2.13 暴力猜解与防御

  • C/S 架构暴力猜解( 常用网络、系统、数据库、第三方应用密码爆破)* * B/S 架构暴力猜解( 弱口令)
  • HYDRA 安装与使用暴力猜解安全防范

这里可以参考下面这张成长路线图:

如何成为一名优秀的网络安全工程师?

我也整理了一些网安学习资料

部分内容展示

视频教程

如何成为一名优秀的网络安全工程师?

书籍资料

如何成为一名优秀的网络安全工程师?

SRC资料包&HW护网行动

如何成为一名优秀的网络安全工程师?
如何成为一名优秀的网络安全工程师?

面试题资料

如何成为一名优秀的网络安全工程师?

源码&安装包

如何成为一名优秀的网络安全工程师?

需要以上所有籽料的话可以点击:《黑客&网络安全入门&进阶学习资源包》免费领取

1、很多已经买不到的绝版电子书 2、安全大厂内部的培训资料 3、全套工具包 4、100份src源码技术文档 5、网络安全基础入门、Linux、web安全、攻防方面的视频 6、应急响应笔记 7、 网络安全学习路线 8、ctf夺旗赛解析 9、WEB安全入门笔记

最后,给大家整理了一个简单的学习方法,可以借鉴:

1. 多看书

阅读永远是最有效的方法,尽管书籍并不一定是最好的入门方式,但书籍的理解需要一定的基础;但是就目前来看,书籍是比较靠谱的入门资料。

例如:《黑客攻防---web安全实战详解》《Web前端黑客技术揭秘》《安全之路:Web渗透技术及实战案例解析(第2版)》

现在Web安全书籍比较多,因此大家在学习的过程中可以少走了不少的弯路。如果以上推荐书籍阅读有困难,那就找自己能看得进的 Web 安全的书。

当然纸上谈兵终觉浅,不实践一下怎么好呢。

2.常用工具的学习

1.Burpsuite学习 Proxy 抓包改包学习 Intruder 爆破模块学习实用 Bapp 应用商店中的插件2.Nmap使用 Nmap 探测目标主机所开放的端口使用 Nmap 探测目标主机的网络服务,判断其服务名称及版本号3.SQLMap对 AWVS 中扫描出的 SQL 注入漏洞使用 SQLMap 进行数据获取实践常见漏洞类型的挖掘与利用方

3.学习开发

1.书籍《细说 PHP》

2.实践使用 PHP 写一个列目录的脚本,可以通过参数列出任意目录的列表使用 PHP 抓取一个网页的内容并输出使用 PHP 抓取一个网页的内容并写入到Mysql数据库再输出。

也可以找一个培训班,系统的学习一下,都是可以的。

总结

以上就是我对刚入行网络安全的朋友的一些个人的建议,最后有一点需要说明一下:

上面列举到的不同方向的技术不是严格意义独立的,相反,很多时候是相辅相成,需要结合起来,融会贯通。

每个人的认知是有限的,我也不例外。本文只是我的一家之言,建议大家多看一些人的总结和经验,横向对比,兼听则明,偏听则暗。

网络安全领域就像是一棵硕果累累的参天大树,底下站着无数观望者,他们都声称自己喜欢网络安全,想上树摘果,但面对时不时垂下来的藤枝,他们却踌躇不前,犹豫不决。

实际上,只要任意抓住一根藤枝,都能爬上这棵树。 大部分人缺的,就是这么一个开端。

如何成为一名优秀的网络安全工程师?

需要网络安全学习资料包可以点击:《黑客&网络安全入门&进阶学习资源包》免费分享

继续阅读