写在最前面:

  1. 不要越过法律的红线。

  2. 法律只是最后一道底线,不是衡量人格的标准

网络安全可以大概分为下面三个方面:

安全研发
安全研究:二进制方向
安全研究:网络渗透方向

目前从业人数最多的是web渗透安全。这里主要说一下二进制和渗透方向。

一.Web渗透

先放一张web安全总体学习路线(高清原图看文末)

目前合法的渗透测试是通过各种⼿段对⽬标进⾏⼀次渗透(攻击),通过渗透来测试⽬标的安全防护能⼒和安全防护意识,也就是实战演练。

那种很长很长的web渗透路线网上已经发烂了,基本大同小异,这里说一些个人思路。(不推荐轻易考虑培训机构)

首先,渗透测试一定不是局限于各种工具使用和简单的漏洞挖掘。渗透测试包括但不限于数据库、网络、操作系统、编程等方面。

没有开发就没有安全,前期的学习一定离不开编程和数据库,至于操作系统和网络,在前期的学习中就会逐渐掌握。(前期入门不必太苛求视频的选择,比较全的视频即可,实在不会选择看文末)

基础部分(并不需要全部掌握,随着后面学习逐步加深):

通信协议:TCP、HTTP、HTTPS
操作系统:Linux、Windows
服务架设:Apache、Nginx、LAMP架构
数据库:MySQL、SQL Server、Oracle(建议MySQL入手)
编程语言:前端语言(HTML/CSS/JavaScript)、后端语言(PHP/Java/ASP/Python)
虚拟机操作,建站基本操作。

正式进入 Web渗透学习:

TOP10漏洞原理
抓包分析
谷歌语法等技巧
简单代码审计(面试加分项)
各种工具使用
搭建靶场
漏洞复现

内网渗透部分(面试加分项):

利用系统漏洞进行提权(Metasploit)
Src:
漏洞响应平台,实战渗透测试,同时能获得一些外快。
补天漏洞响应平台:https://www.butian.net/
漏洞银行:https://www.bugbank.cn/
阿里云漏洞响应平台:https://security.alibaba.com/
i春秋SRC部落:https://www.ichunqiu.com/src
腾讯应急响应中心:https://security.tencent.com/index.php
漏洞平台列表:https://www.anquanke.com/src/

二.二进制安全

二进制包括软件漏洞挖掘、逆向工程、病毒木马分析等工作,涉及操作系统内核分析、调试与反调试、反病毒等技术。因为大多数时间都在与二进制的数据打交道,所以现在都用二进制安全来统称这个方向。

这里着重说一下Android安全和逆向部分。

个人建议:先正向开发几年再搞逆向。不看代码只会脱壳?只会xposed ?远远不够,hook只是很小一部分技术,xposed是hook功能众多框架中的一个而已。相对于任何程序的开发来说,逆向知识点很少很少了,关键是基础知识,基础就是正向开发经验。

学习Android前必备条件(安全岗位都会问的基础问题)

从事3-5年真实的Android开发工作,熟练使用C/C++,Java,kotlin,dart等Android开发常用语言;
熟悉Android NDK开发和JNI技术,熟悉Log原理。最好有几年FrameWork开发经验;
熟悉Android虚拟机机制,打包原理,系统启动流程,App启动流程;
了解ARM、Smali汇编语言,熟悉IPC原理,能够熟练搭建IPC框架;
熟练使用Fiddler和Charles抓包工具进行抓包;
最好熟悉Python基础语法,并能写简单的脚本和爬虫。

第一阶段:

Android 基础知识回顾:

回顾Android 开发编程,深入理解Android系统原理和层次结构,深入分析Handler源码和原理。
回顾Java,C/C++,Kotlin、dart 在Android开发中必用的语言,熟悉一下几种语言混淆后的特性。
回顾Android IPC和JNI的底层原理和热更新技术回顾Native开发要点,使用C++结合NDK完成Android Native开发。
回顾Android开发中常用的 AMS、PMS、WMS原理和App启动中服务加载的流程。
回顾Android开发中必用的 Google的MVVM框架:DataBinding+LiveData+ViewModel。
回顾Android开发中必用的 Google的MVP框架:Dagger2。
回顾Android开发必用的网络架构:Okhttp3+RxJava2+Retrofit2+Rxdownload4+Rxcache+Glide。

Android 逆向基础知识:

熟悉Android逆向工具的使用,如apktool,IDA,dex2jar,JEB,AndroidKiller,Androguard等;
深入分析APK中包含的各文件格式,分析Android系统源码中解析APK的相关代码;学习和熟悉smali语言(重点);
仿微信写一个APP,并利用工具逆向出apk内的代码,并对比源码分析。

入门知识总结和实战(逆向入门):

知识梳理,常用工具安装,adb命令与Linux常用命令,常见登录逻辑分析。
分析ELF可执行程序,调式ELF可执行程序;ARM汇编与寄存器,ARM反汇编速成,ARM指令机器码,常用ARM指令集。
反编译ELF文件与ObjDump,ELF文件解析与readelf,ELF文件解析与010Editor,深入分析ELF文件结构;IDA静态分析,IDA动态调式。
简易计算器实现及分析(练习)。
字符串加密与解密,冒泡排序算法分析。
关键android_server文件检测,IDA调试端口检测。
ELF可执行程序加载so库,DEX解析与dexDump,DEX解析与010Editor。
实现自己的Dex解析工具与GDA(练习)。
Androidkiller动态调试smali代码插件,AS+smalidea调式smali代码。
Log注入实现免注册,如何定位关键代码,去除java层签名验证,去除广告和弹窗(实战)。
推荐阅读《AndroidXXXXXX……》随便找本系统源码讲解的书看看吧。

Android 基础算法和安全协议:

密码学,对称加密算法,非对称加密算法,散列函数;
数字签名,数字证书,SSL证书检测,协议与安全协议;
了解服务器端与客户端通信协议分析;
使用Charles抓登录封包和验证码,协议构造与Java层MD5算法,动态调式smali代码与sign字段;
协议构造类与SO层DESCBC算法,协议关键字段SIGN与SO层MD5算法,动态调试协议字段,动态调式协议关键字段SIGN;
协议关键字段pwad和sign,动态调式协议字段拼接与MD5加密,分析so层OpenSSLSHA1算法;
封包加密与反编译失败,使用方法跟踪分析加密;java层逆向分析,分析so层TEA算法;
练习:抓取验证码和登录封包,分析协议关键字段与RSA算法,证书与RSA原理及源码分析;
对称加密AES、PBE与CRC算法,数字签名RSA、DSA算法;

第二阶段:
Android 逆向进阶学习:

Android 系统结构深入分析,自定义 ClassLoader,自定义注解和元注解原理分析;
了解AndroidNDK,静态注册,动态注册,SO加载分析,
App保护策略去除霸哥磁力搜素APK签名验证,一键去除签名验证,静态代{过}{滤}理,动态代{过}{滤}理Hook Activity启动函数,
Hook签名验证函数介绍xposed框架:Xposed框架:
绕过验证码注册Xposed框架:
登陆劫持Xposed框架:
篡改IMEI信息介绍CydiaSubstrate框架:
Java层Hook:
篡改系统文字颜色Java层Hook:
修改方法返回值绕过登录Java层Hook:
篡改游戏金币Java层Hook:
篡改主机名和端口号
Native层Hook:
ADBI框架:ELFARMHOOK框架内存抠取Dex文件过反调试技巧C++游戏
逆向练习:动态调试2048纯算法游戏,Zygote+Hook使2048游戏秒过关;

Android NDK与JNI全面剖析:

so动态库的介绍
JNI动态注册和静态注册
NDK Build 工具介绍
Cmake工具介绍
JNI.h介绍
Android 源码工具和技巧
ijkplayer 源码分析及原理讲解
AndFix 源码分析及原理讲解
Java调用so库的动态流程解析
NDK实现增量更新
案例:NDK实现换脸等工业级图像识别
案例:NDK文件实现拆分和加密处理

Android 加固防护和脱壳简介:

DEX文件、ODEX文件与OAT文件;
XML文件与ARSC文件;
分析App加固的产生及背景,最初加固方式,加固技术的发展;
HOOK制作脱壳机,定制自己的脱壳系统;
DexClassLoader动态加载分析,DEX自解析重构技术;
三代梆梆加固原理分析;爱加密加固原理分析;
360加固与脱壳机,360加固VM与置换表;
辅助脱壳机,IDA动态调式脱爱加密壳;
IDA动态调式脱360壳,IDA动态调式脱SO壳;
脱360壳-dex2oat,脱360壳-drizzleDumper;
百度加固DD大法,百度加固VM与置换表;
阿里加固与脱壳机,腾讯乐固;
ARSC资源保护与注解;
脱壳神器ZjDroid:
捕鱼达3加固技术总结;

Android 脱壳与反脱壳分析:

Android脱壳中的思路,技巧elf结构详解:
动态运行库so文件的文件组成结构elf结构详解:
加载so文件的流程elf文件变形与保护,elf文件修复分析,so加壳文件修复常用调试检测方法与过检测方法
Android源码定制添加反反调试机制Android dvm 脱壳,Dalvik dex处理分析IDA脱壳脚本编写,Odex修复方法,
IDAOdex修复脚本编写

进阶知识总结和企业级实战(逆向进阶):

病毒分析与脱壳学习,用Ransomware类和木马类进行学习;
手动脱壳《王者X耀》练习;
从0开始打造自己的破解代码库;

第三阶段:
Android 漏洞分析和挖掘:

学习常见的漏洞类型和原理。例如堆溢出,栈溢出,UAF等,可以参考漏洞分析相关书籍;
关注Android Security Bulletin,根据提供的diff分析漏洞成因;
学习并调试以前的经典漏洞;
学习漏洞挖掘fuzzing思路,参考书籍推荐《Android安全XXXX》;
病毒分析与病毒脱壳实战;

Android 虚拟机技术、系统源码分析、刷机机制介绍、制作ROM刷机包:

ASP代码注入式写法;
Android 免root进行hook;
Android虚拟机原理,Android多开原理讲解;
在apk内部写一个虚拟机,在apk内安装apk;
虚拟机适配Android 10和64位系统;
从0开始开发自己的虚拟机库;
最完善的刷机工具 :魔趣 ROM;
最完善的刷机工具 :Devices - TWRP;

大型企业级项目练手(五个项目):

  • 略……

三.安全研发

研发岗位相比其他两个方向更偏向编程技术一些,主要做防御方面的安全产品和攻击方面的安全工具。

这里列举一部分产品

防火墙、IDS、IPS
WAF(Web网站应用防火墙)
数据库网关
NTA(网络流量分析)
SIEM(安全事件分析中心、态势感知)
大数据安全分析
EDR(终端设备上的安全软件)
DLP(数据泄漏防护)
杀毒软件
安全检测沙箱

开发这些产品主要以C/C++、Java、Python三大语言为主,也有少部分的GoLang、Rust。

网络安全学习资源分享:

给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,需要点击下方链接即可前往获取

读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)

图片

同时每个成长路线对应的板块都有配套的视频提供:

图片

实战训练营

在这里插入图片描述

面试刷题

在这里插入图片描述

视频配套资料&国内外网安书籍、文档

当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料

图片
所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~

读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享 (安全链接,放心点击)

更多推荐