贝壳儿

如何实现检测apt攻击

分享
  • 在下炳尚 2 风险管理(专业级)RM/PL 高级信息系统项目管理师
    在下炳尚2 风险管理(专业级)RM/PL 高级信息系统项目管理师

    APT攻击检测思路:

    • 检测伪装进程伪装

      根据进程名称与进程内部名称、以及进程路径的对比,来检测进程是否伪装

    • 异常进程链检测

      根据父子进程来发现异常,比如winword等文档型程序启动mshta进程、Spoolsv启动powershell。

    • 基于加载的DLL文件

      扫描进程中存在的非正常的dll文件,且着重关注一些DLL文件的加载,比如scrobj.dll被加载到regsvr32进程中,则可能存在regsvr32执行sct文件的情况,需要对该进程的行为进行追踪;关注DLL的来源,比如反向dll注入,dll来源于网络。

    • 环境变量检测

      PATH和PATHEXT中写入了可疑路径,从而实现DLL劫持;

      特殊环境变量检测:COR_PROFILER环境变量的设置,检测该环境变量指向的COM组件中是否存在恶意dll文件,从而发现CLR劫持

    • 路径一致性检测

      分别获取命令行路径和真实路径,两者不同说明有路径假冒行为,两个路径分别是WindowTitle(窗口路径)和CommandLine(命令行路径):

    • 操作对象检测

      某些特种木马为了防止重复种植,一般会在操作的Mutants、File、Token等类型的对象上设置其特征。比如ByShell病毒在进程创建了Mutant类型的对象ByShell_Event_Wait

    • 文件签名检测

      检测PE文件签名或DLL文件签名;

    • DLL隐藏检测

      DLL隐藏的方式有两种,一是将DLL从加载顺序链表中断开(检测方式:加载的DLL-卸载的DLL != 目前DLL)、二是修改_LDR_DATA_TABLE_ENTRY结构体中的DLL路径和DLL名称(检测方式:对比DLL路径和映射文件路径)。

    • 远程线程注入检测

      注入前DLL存在于磁盘上,可检测DLL文件是否为恶意文件;还可以检测CreateRemoteThread等函数的调用。

    • 对抗隐写术

      检测执行的命令的文件来源,比如powershell提取并执行图片中嵌入的代码,则检测powershell执行的脚本的来源;

    • 反弹shell检测

      反弹shell的本质是输入输出重定向,因此可通过cmd、powershell等进程的输入来源进行检测。比如cmd的父进程联网。

    • 无文件攻击检测

      • 基于命令行的检测,检测各种下载执行的命令行;

      • 基于父子进程的检测,检测异常进程链;

      • 基于加载或执行的文件来源的检测,检测进程加载或执行的文件是否来源于网络。

    • 持久化攻击检测

      检测敏感注册表项中的命令或扫描其执行的程序、扫描计划任务执行的文件、扫描启动目录中的文件、扫描自启动服务对应的程序等。

    • 系统的安全配置检测

      • 防火墙开启状态检测;

      • UAC开启状态检测;

      • 是否禁止显示隐藏文件;

      • 安全模式是否被禁用或破坏;

      • 控制面板启用状态检测;

      • OFFICE宏安全设置检测

      • CMD、任务管理器、注册表编辑器等工具的启用状态检测;

      • RDP设置检测;

  • 写回答