成为一名网络安全工程师,你应该学习什么?

Posted 不是程序媛ya

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了成为一名网络安全工程师,你应该学习什么?相关的知识,希望对你有一定的参考价值。

前言

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

简要说明

第一件事你应该学习如何编程,我建议首先学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.4htmljavascript

  • 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

【一一帮助网络安全提升点我一一】
①网络安全学习路线
②20份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥网络安全必备书籍
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析

第二部分:渗透与攻防

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 安装与使用暴力猜解安全防范

以上是关于成为一名网络安全工程师,你应该学习什么?的主要内容,如果未能解决你的问题,请参考以下文章

如何成为一名正义黑客?你应该学习什么?

要成为一名大数据开发工程师必备哪些技能?

成为一名Java高级工程师你需要学什么

成为一名Java高级工程师你需要学什么

成为一名Java高级工程师你需要学什么

成为一名JAVA高级工程师你需要学什么