安全工程师学习路线

时间:2021-07-15 20:10:54

0x00 前言

    为了更好地学习安全方面的知识,本文特此推荐一些路线,方便以后的学习,在此本文讨论了思路,但限于篇幅,故仅介绍核心思想,具体的操作,本文会给出一些参考链接,方便读者查阅。

0x01 职位描述

1 负责安全服务项目中的实施部分,包括:漏洞扫描、渗透测试、安全基线检查、代码审计、应急响应等。
2 爆发高危漏洞后时进行安全漏洞的分析应急;及时清除木马后门,加固业务系统服务器。
3 熟悉各大安全厂商的安全产品,对公司安全产品的后端支持以及故障解决。
4 掌握办公软件等专业文档编写技巧,能够独立编写安全事件报告。
5 跟踪和分析信息安全业界最新安全漏洞、发展趋势和解决方案。


0x02 职位要求

1 熟悉主流的Web安全技术,包括SQL注入、XSS、CSRF、一句话木马等安全风险。 

2 熟悉国内外主流安全产品和工具,如:Nessus、Nmap、AWVS、Burp、Appscan等。
3 熟悉windows、linux平台渗透测试、后门分析、加固。
4 至少掌握一门编程语言C/C++/Perl/Python/PHP/Go/Java等。
5 熟悉渗透测试的步骤、方法、流程,具有Web安全实战经验;
6 熟悉常见安全攻防技术,对网络安全、系统安全、应用安全有深入的理解和自己的认识。
7 对Web安全整体有深刻理解,具备代码审计和独立漏洞挖掘能力。
8 具有较强的团队意识,高度的责任感,文档、方案能力优秀者优先。

0x03 学习路线

3.1 基本技能--基本IT操作

1. 科学的工作环境,学会使用*、代理上网等。
2. 大多数情况下,渗透测试质量中技术能力占40%,报告书写占60%,必须熟练掌握各种word、exel基本功能。
3. 浏览器插件与技巧。
4. 网络配置与分析。


3.2 前期安全知识的补充学习

  1. 熟悉基本的安全术语和概念(SQL注入、上传漏洞、XSS、CSRF、一句话木马、渗透测试、应急响应、风险评估、等级保护等)。
  2. 阅读OWASP TOP 10 从漏洞分类和漏洞成因寻找安全漏洞的切入点 Link 。
  3. 阅读经典的网络安全相关书籍 Link 。
  4. 安全资讯来源:Secwiki、Freebuf、91ri、Wooyun等。

3.3 安全工具使用

  1. 综合漏洞扫描工具的安装使用:Nessus、X-scan、Nexpose等。
  2. Web漏洞扫描的工具的安装使用和漏洞验证:AppScan、AWVS、WebInspect等。
  3. 辅助工具的安装和使用:Nmap、Burp Suite、Sqlmap、wireshark、iptables等。
  4. 辅助脚本的收集和修改:各种漏洞利用的Exploit、定制化高的扫描脚本、字典等。
  5. 自家安全设备策略部署和使用。

3.4渗透测试

  1. 网上找渗透视频看并思考其中的思路和原理,关键字(渗透、SQL注入视频、文件上传入侵、数据库备份、dedecms漏洞利用等等)。
  2. 自己找站点/搭建测试环境进行测试,记住请隐藏好你自己。
  3. 思考渗透主要分为几个阶段,每个阶段需要做那些工作,例如这个:PTES渗透测试执行标准
  4. 研究SQL注入的种类、注入原理、手动注入技巧。
  5. 研究文件上传的原理,如何进行截断、双重后缀欺骗(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等,参照:上传攻击框架
  6. 研究XSS形成的原理和种类,具体学习方法可以Google/SecWiki,可以参考:XSS
  7. 研究Windows/Linux提权的方法和具体使用,可以参考:提权
  8. 可以参考: 开源渗透测试脆弱系统
  9. 渗透测试流程:《渗透测试授权书》规定渗透时间和范围、《渗透测试免责书》描述渗透测试可能带来的危害、规定时间实施渗透测试,输出《渗透测试报告》,指导甲方进行漏洞修复。

3.5 安全基线检查

  1. 不同的客户,不同的业务系统,有不同的安全基线文档,大致分类无外乎几种:从账户、授权、补丁、日志、冗余端口和服务等层面对主机系统、中间件和数据库进行配置[检查]。
  2. 阅读外网流出的各家厂商的安全基线检查内容,如:运营商-移动 Link 。
  3. 掌握不同版本的配置方法和配置项,可自行安装系统、中间件、数据库进行实操。
  4. Windows2003/2008环境下的IIS配置,特别注意配置安全和运行权限,可以参考:SecWiki-配置
  5. Linux环境下的LAMP的安全配置,主要考虑运行权限、跨目录、文件夹权限等,可以参考:SecWiki-配置
  6. 远程系统加固,限制用户名和口令登陆,通过iptables限制端口。
  7. 配置软件Waf加强系统安全,在服务器配置mod_security等系统,参见SecWiki-ModSecurity
  8. 通过Nessus软件对配置环境进行安全检测,发现未知安全威胁。

3.6 应急响应

  1. 应急响应流程可分为两类:实时性应急响应和入侵后应急响应。
  2. 实时性应急响应:大多为DDOS攻击,首要进行流量分析,若流量打满,能做的就是反查攻击IP,逆向渗透;若网络设备会话数被打满或者主机系统的CPU、内存、会话数被打满,可通过交换机做端口镜像,使用wireshark、tcpdump进行抓包,分析流量特征,确认攻击类型,在网络设备或安全设备上做相应阻断策略。
  3. 攻击后应急响应:通过分析恶意文件和日志,查找入侵来源IP和入侵者所利用的漏洞,提出漏洞修补方案,并逆向追踪入侵者。
  4. 应急响应对工程师的要求较为复杂,需多熟悉不同操作系统、应用、中间件、数据库特性,且能熟练使用编程语言或者vim等编辑器对较大的日志进行数据整理,还需要日常多多积累各种攻击特征和防护策略。
  5. 多阅读网上已有的应急响应的文档,学习逆向分析思路。

3.7代码审计

  1. 熟悉代码审计工具的安装使用,可参考SecWiki上的文章 Link 。
  2. 根据工具报告验证问题是否为误报,并跟踪分析。
  3. 参看各大资讯平台、论坛、旧杂志的文章,学习白盒分析思路。
  4. Exploit编写。

3.8 安全边界建设

  1. 安全边界检查的工作重点可总结为:根据是各个信息区域否需要外网接入、是否需要访问内部核心网络等行为特点,将信息安全系统划分为边界接入域、网络基础设施域、计算机安全域、运维管理域,并对现有网络是否有按照该标准做相应的安全域划分,或判断其划分是否合理。
  2. 可参考规范:IATF Link

3.9 安全规范

  1. 除去技术细节了,尚有不少风险评估和等级保护测评的工作,直接读规范有助对项目全局的把控。

3.10关注安全圈动态

  1. 通过SecWiki浏览每日的安全技术文章/事件。
  2. 通过Weibo/twitter关注安全圈的从业人员(遇到大牛的关注或者好友果断关注),天天抽时间刷一下。
  3. 通过feedly/鲜果订阅国内外安全技术博客(不要仅限于国内,平时多注意积累),没有订阅源的可以看一下SecWiki的聚合栏目
  4. 养成习惯,每天主动提交安全技术文章链接到SecWiki进行积淀。
  5. 多关注下最新漏洞列表,推荐几个:exploit-dbCVE中文库Wooyun等,遇到公开的漏洞都去实践下。
  6. 关注国内国际上的安全会议的议题或者录像,推荐SecWiki-Conference

4 其他事项

1. 工作邮件--邮件主题、抄送对象、密送对象、正文称呼、内容主题格式、结尾语、联系方式等等。
2. 优先响应上级的需求--例如在微信群、QQ群、邮件、电话、短信等等方式的即时回复。
3. 平时多向领导打招呼等等==============================================

5 参考链接

1. 安全服务工程师  https://www.sec-wiki.com/skill/11
2. Web安全工程师   https://www.sec-wiki.com/skill/2
3. Web安全研发工程师   https://www.sec-wiki.com/skill/3
4. 安全运维工程师  https://www.sec-wiki.com/skill/4   
5  安全测试工程师 https://www.sec-wiki.com/skill/5


欢迎大家分享更好的思路,热切期待^^_ ^^ !!!