恶意代码简介
概述
类型
二进制代码、脚本语言、宏语言等
表现形式
病毒、蠕虫、后门、木马、勒索软件、僵尸网络、流氓软件、启动器、下载器、内核嵌套等
平台
dos、windows、linux、mac os
传播方式
移动介质(U盘、移动硬盘、光盘)
利用U盘自动播放功能(win默认开启自动播放)
DLL劫持(例如lpk.dll)
文件
文件感染
软件捆绑(强制安装、默认安装)
网络传播
钓鱼邮件
即时通信
共享目录(勒索软件感染共享目录下文件)
网络下载
ftp下载恶意文件
P2P下载
漏洞
系统漏洞(示例:windows快捷方式漏洞:震网病毒Stuxnet)
软件漏洞
协议漏洞(示例:SMB协议:WananCry勒索软件)
服务漏洞(示例:IIS服务:红色代码)
感染依附性
不感染依附型病毒(后门)
不感染独立型病毒(单纯的木马)
感染依附型病毒(传统计算机病毒)
感染独立型病毒(蠕虫)
实现技术
加载方式
注册表启动
Run键
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
RunOnce键
RunServicesOnce键
RunServices键
RunOnceEx键
load键
Winlogon键
系统服务
恶意代码将本身登记为系统服务,并设定启动方式为自动,系统启动时,恶意代码被当成系统服务启动从而实现加载
优点:隐蔽性强,权限较高
随文件执行
感染
捆绑
修改文件关联、配置文件(修改win.ini、system.ini、autorun.ini等文件、将启动程序配置为恶意软件,利用文件加载顺序优先本目录后环境变量目录)
BootKit
经过感染MBR(磁盘主引导记录),实现绕过内核检查和启动隐身,即内核劫持。不依靠文件载体,完整存在于注册表,依靠bootkit在操做系统启动时执行,穿透了安全产品以文件为检测对象的机制,也穿透了相关基于白名单和可信计算的解决方案
开始菜单中的启动项
当前用户
C:\Documents and Settings\用户名\[开始]菜单\程序\启动
C:\Users\Current user\AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup
全部用户
C:\Documents and Settings\All Users\[开始]菜单\程序\启动
C:\Users\All Users\AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup
计划任务
优势:隐蔽性好、触发设置灵活
隐藏技术
进程隐藏
进程迷惑
1.假装系统进程(System1.exe/Kernel.exe/Svch0st.exe/Svchosts.exe/Windows.exe)
2.同名不一样路径的进程
进程注入(优点:无进程、隐蔽性强、清除难度大)
1.DLL注入
2.直接注入
进程替换
1.可执行文件重写到一个运行进程的内存空间、将恶意代码假装成一个合法进程、不会产生DLL注入崩溃的危险。恶意代码得到进程相同特权级。
APC注入
1.windows异步过程调用(APC)
网络隐藏
端口复用
重复利用系统网络打开的端口传送数据、能够欺骗防火墙、少开端口
反向连接
恶意代码(被控端)主动链接控制端
系统隐藏
隐藏文件、隐藏后缀
流文件隐藏
Hook技术(系统钩子)
钩子机制容许应用程序截获处理windows消息或特定事件
在目标窗口处理消息前处理它
步骤:
设置系统钩子,Hook文件及进程操做API
添加须要过滤得文件或进程
自我保护
进程守护
检测对抗
反动态调试
校验和,发现调试(动态调试:下断点、单步进行、更改了源程序、校验和改变)
触发异常(动态调试:调试器接管异常、而不是本来的恶意代码本身处理异常)
检测运行环境(虚拟机(序列号、网卡、磁盘等)、沙箱、调试器、盘符)
检测标志位(PEB结构中有字段表示是否被调试状态)
反静态调试
加壳(对恶意代码可执行二进制程序压缩,使其执行流程变化)
加密(随着加密密钥的变化,恶意代码会产生不一样的表现形式,提高了抗静态分析能力)
代码混淆(经过插入伪指令、混淆程序数据和控制流等方法,防止静态分析和检测)
恶意代码分析技术
静态分析基础技术:PE工具介绍、hash、VT多引擎扫描、字符串
动态行为分析技术:动态监测工具(沙箱、进程监视)使用、常见恶意代码行为
静态分析高级技术:X86汇编指令、IDA使用
动态分析高级技术:OllyDbg、Windbg使用、对抗动态反调试
经验
恶意代码分析不陷入细节、带着目标去分析、关注特定功能、主要功能的危害、进入细节前判断是否有必要
不一样类型样本使用不一样工具