恶意代码简介

恶意代码简介

概述

类型

二进制代码、脚本语言、宏语言等

表现形式

病毒、蠕虫、后门、木马、勒索软件、僵尸网络、流氓软件、启动器、下载器、内核嵌套等

平台

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使用、对抗动态反调试

经验

恶意代码分析不陷入细节、带着目标去分析、关注特定功能、主要功能的危害、进入细节前判断是否有必要
不一样类型样本使用不一样工具
相关文章
相关标签/搜索