A Beginner's Guide to Cybersecurity

Write at the front:

  1. Don't cross the legal line.

  2. The law is only the last line, not the standard for measuring personality.

Network security can be roughly divided into the following three aspects:

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

Currently, the field with the largest number of practitioners is web penetration security. Here we mainly talk about binary and penetration direction.

1. Web Penetration

Let’s start with a general learning route for web security (see the high-definition original picture at the end of the article)

 

The current legal penetration test is to conduct a penetration (attack) on the target through various means, and test the target's security protection ability and security awareness through penetration, which is also a practical exercise.

That kind of very long web penetration route has been published online. They are basically the same. Here are some personal ideas. (It is not recommended to consider training institutions lightly)

First of all, penetration testing must not be limited to the use of various tools and simple vulnerability mining. Penetration testing includes but is not limited to databases, networks, operating systems, programming, etc.

There is no security without development. Early learning must be inseparable from programming and databases. As for operating systems and networks, you will gradually master them in early learning. (You don’t have to be too picky about the choice of videos when getting started in the early stage. A relatively comprehensive video is enough. I really don’t choose to read the end of the article)

Basic part (you don’t need to master all of them, you will gradually deepen with subsequent learning):

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

Officially enter Web penetration learning:

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

Intranet penetration part (extra points for interview):

利用系统漏洞进行提权(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/

2. Binary security

Binary work includes software vulnerability mining, reverse engineering, virus and Trojan analysis, etc., involving operating system kernel analysis, debugging and anti-debugging, anti-virus and other technologies. Because most of the time we deal with binary data, binary security is now used to collectively refer to this direction.

Here we focus on Android security and reverse engineering.

Personal suggestion: do forward development for a few years before doing reverse engineering. If you don’t read the code, it will just unpack? Only xposed? Far from enough, hooks are only a small part of the technology, and xposed is just one of the many frameworks with hook functions. Compared with the development of any program, there are very few reverse knowledge points. The key is basic knowledge, and the foundation is forward development experience.

Prerequisites before learning Android (basic questions asked in security positions)

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

The first stage:

Android basics review:

回顾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 reverse engineering basics:

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

Summary of introductory knowledge and practical combat (reverse entry):

知识梳理,常用工具安装,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 basic algorithms and security protocols:

密码学,对称加密算法,非对称加密算法,散列函数;数字签名,数字证书,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算法;



The second stage:
Android reverse advanced learning:

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游戏秒过关;


Comprehensive analysis of Android NDK and JNI:

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


Introduction to Android hardening protection and shelling:

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 shelling and anti-shelling analysis:

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


Advanced knowledge summary and enterprise-level practice (reverse progression):

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


The third stage:
Android vulnerability analysis and mining:

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


Android virtual machine technology, system source code analysis, introduction to flashing mechanism, and making ROM flashing package:

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


Practice on large-scale enterprise-level projects (five projects):

  • slightly……

three. Security R&D

R&D positions are more focused on programming technology than the other two directions, and mainly focus on defensive security products and attack security tools.

Here are some products

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

The development of these products is mainly based on the three major languages ​​​​of C/C++, Java, and Python, with a small amount of GoLang and Rust.

Network security route integration background reply [Security Map]

 

Guess you like

Origin blog.csdn.net/hdwlwang/article/details/130487526