Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >恶意代码技术及恶意代码检测技术原理与实现

恶意代码技术及恶意代码检测技术原理与实现

作者头像
FB客服
发布于 2024-07-22 10:56:46
发布于 2024-07-22 10:56:46
1.2K02
代码可运行
举报
文章被收录于专栏:FreeBufFreeBuf
运行总次数:2
代码可运行
恶意代码检测技术简述

恶意代码(MALWARE)检测技术目前主流的有以下几种:特征码扫描技术、基于签名的扫描技术、启发式扫描技术、沙盒模拟技术、导入表分析技术、以及云查杀技术。

恶意代码检测大体分为静态分析和动态分析。

静态分析中最为经典的就是特征码扫描技术(Signature scanning),特征码扫描技术是恶意代码检测的基石,其通过检测二进制文件中是否含有恶意代码特征值来判断文件是否存在威胁,特征码扫描技术依赖于海量已知的恶意代码特征,这些特征绝大部分都是人工逆向提取出来含有一定意义的16进制码,也可能是由程序自动提取得到的特征码。

基于恶意代码签名的检测技术、导入表分析技术也属于静态分析技术,但是基于恶意代码签名的检测技术并没有对文件进行分析,只是对文件进行了签名计算。

动态分析的代表就是启发式扫描(HEURISTIC scanning technique),启发式扫描也依赖于特征库,但与特征码静态扫描不同的是,启发式扫描会实时检测系统中存在的进程,当进程作出一些敏感行为时(如修改注册表、格式化磁盘、长时间大量读写文件、隐藏文件、添加启动项、调用未导出的系统函数等等)为该进程累积权值,不同的行为对应了不同的权值,当一个进程权值达到设定的阈值时即可以判定该程序存在恶意行为。

启发式扫描的这种动态分析的方式可以检测未知的恶意程序,并且还可以排除二进制文件加壳而导致的漏报。虽然启发式扫描有这些好处,但是启发式扫描检测进程是基于程序运行之上的,也就是说当一个未知安全性的程序运行后,在其生命周期内实时的对于其行为检测,当恶意程序通过某种方式绕过了启发式检测后,该恶意程序的危险行为会直接作用于系统,造成威胁。

所以在此基础上出现了沙盒分析方法,沙盒分析法也是一种动态分析方法,其将待检测文件置于了一个模拟的、可控的虚拟环境中运行,通过分析其行为以及函数调用来对其威胁性打分,得益于这种代码仿真技术,弥补了启发式扫描的不足,减小了不必要的损失。

以上的种种检测技术丰富了与恶意代码的对抗手段,同时也提供了对层出不穷的新病毒的检测能力以及应急响应能力。其中大多数检测技术都依赖于一个庞大的特征库,里面包含了已知恶意代码的各种特征,例如:16进制特征、病毒文件的签名特征、病毒行为特征等等。由于特征信息对计算机病毒检测有着举足轻重的作用,所以特征选取的好坏直接决定了病毒扫描的性能。

特征码扫描技术具有一定的通杀性(当然,这取决于特征码选取的好坏),即通过广泛存在于恶意文件中的特征码进行扫描,可以实现一对多的扫描能力(即一条特征码可以匹配多种恶意文件)。

由于特征签名的的唯一性可对一样本实现100%的查杀率,但由于特征签名具有的唯一性,仅能实现一对一(即一个签名值仅能匹配一个恶意文件),这种方法虽然不可能出现误报的情况,但所需的病毒库体量会过于庞大,且只要恶意代码作者重新编译文件或改变任何一个字节,都会使得该签名值无法匹配,但是由于签名计算实现十分简单快速,因此基于特征签名的检测技术适合对突发的一种恶意代码进行应急响应,前提是恶意代码不会动态更新其本体。

导入表分析技术(启发式扫描的一种方式),通过为不同的API赋予不同的权值,一个程序通常会调用多个API,当对一个程序的总和权值累积到阈值时即可判定为恶意程序,这也就说明了导入表分析技术(启发式扫描技术)无法识别病毒的具体类型或名称,同时启发式扫描的误报率也是很高的,但这种识别方式也对防范未知恶意程序有很大贡献。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
总结一下,各扫描技术特点如下表:

检测技术

是否支持无特征库检测

通杀性

误报性

对未知病毒的检测能力

特征码扫描

X

Y

Y-

Y--

MD5扫描

X

X

X

X

导入表分析

X

Y

Y+

Y+

恶意代码技术理论及实现

恶意代码注入技术

恶意代码注入是指将恶意代码附加在正常运行中的程序上,以实现对系统或正常程序的破坏、修改等作用。

一个windows程序通常会加载多个动态连接库(dll)文件。例如,一个名为nika.exe的进程中导入了kernel32,gdi32等动态链接库(dll),而恶意代码注入就是将恶意模块加载于正常程序所调用的动态链接库后,以此来执行恶意行为。当对nika.exe注入了一个名为hacker的恶意动态连接库后,我们发现,恶意程序将一个名为hacker.dll的动态连接库放入了nika.exe所链接的库文件中,那么此时hacker.dll中的恶意代码是附加在nika.exe上运行的。

恶意代码注入技术分为几种:线程注入、HOOK注入、APC注入等。

线程注入通过创建远程线程的方式加载恶意动态链接库,通常使用以下函数实现:

  • OpenProcess(打开进程)
  • VirtualAllocEx(修改内存空间状态)
  • WriteProcessMemory(写入内存至空间)
  • LoadLibrary(加载动态链接库)
  • CreateRemoteThread(远程创建线程)

一个简单的注入技术(远程线程注入技术)流程如下:

  1. 调用OpenProcess打开目标进程(得到目标进程句柄)
  2. 调用VirtualAllocEx在目标进程中申请一块内存(用于写动态链接库)
  3. 调用WriteProcessMemory将Dll路径写入远程内存空间内
  4. 调用GetProcAddress获取 LoadLibrary在Kernel32中的地址(方便后续远程调用LoadLibrary加载动态链接库)
  5. 调用CreateRemoteThread创建一个远程线程,用于调用LoadLibrary加载动态链接库
  6. 关闭目标句柄

接下来我们尝试实现一个简单的注入程序:

第一步:实现一个简单的程序(输出Hallo World),作为被注入程序。

代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
int main()
{
printf("Hallo World!\n");
          getchar();
return 0;
        }`

      *代码中的getchar函数是防止程序输出字符串后直接退出,从而无法观察到实验现象而使用的。





    第二步:新建一个项目(动态链接库项目),用以下代码实现简单弹窗:

BOOL APIENTRY DllMain(HMODULE hModule,
              DWORD  ul_reason_for_call,
              LPVOID lpReserved
              )
{
switch (ul_reason_for_call)
              {
case DLL_PROCESS_ATTACH:
              {
                  HANDLE hHandle = GetCurrentProcess();
                  DWORD pressID = GetProcessId(hHandle);
char temp[100] = { 0 };
sprintf(temp, "I am Form pressID = %d", pressID);
                       MessageBoxA(0, temp, "Success!", MB_OK);
break;
              }
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
case DLL_PROCESS_DETACH:
break;
              }
return TRUE;
          }

    * DLL_PROCESS_ATTACH表示dll加载成功,case  DLL_PROCESS_ATTACH下的代码获取了当前进程PID并且通过 MessageBoxA弹出窗口。这可以更加方便我们理解注入技术。




  第三步:再新建一个项目用于远程注入动态链接库,代码如下:

#include <stdio.h>
#include <Windows.h>
int main()
{
printf("请输入进程ID:");
      DWORD processID = 0;
scanf("%d", &(DWORD)processID);
char dllPath[MAX_PATH];
memset(dllPath, 0x00, sizeof(dllPath));
printf("请输入注入模块路径(绝对路径):");
scanf("%s", dllPath);
      LPVOID pathSize = lstrlen(dllPath) + 1;
      HANDLE hHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, processID);
if (hHandle == NULL)
      {
printf("远程进程打开失败!\n");
        getchar();
return -1;
      }

      LPVOID NewMemoryAddress = VirtualAllocEx(hHandle, NULL, pathSize,                 MEM_COMMIT, PAGE_READWRITE);
if (NewMemoryAddress == NULL)
      {
printf("远程进程空间创建失败!\n");
        getchar();
return -1;
      }
      SIZE_T real_size = 0;
if (WriteProcessMemory(hHandle, NewMemoryAddress, dllPath, pathSize, &real_size)           ==   FALSE)
      {
printf("远程进程空间写入失败!\n");
        getchar();
return -1;
      }
printf("写入目标进程空间成功[写入 %zu 字节]\n", real_size);
      FARPROC LoadFun = GetProcAddress(GetModuleHandleA("kernel32.dll"),                 "LoadLibraryA");
if (LoadFun == NULL)
      {
printf("获取LoadLibrary函数地址失败!\n");
        getchar();
return -1;
      }
      HANDLE rHandle = CreateRemoteThread(hHandle, NULL, 0,                       (LPTHREAD_START_ROUTINE)LoadFun, NewMemoryAddress, 0, NULL);
if (rHandle == NULL)
      {
printf("远程调用LoadLibrary注入失败!\n");
        getchar();
return -1;
      }
      CloseHandle(hHandle);
printf("注入成功!\n");
      getchar();
return 0;
    }

    *其中 processID是目标进程的进程ID,而 dllPath是第二步中生成的Dll文件的路径(注意需要使用DLL的绝对路径)
代码语言:javascript
代码运行次数:0
运行
复制

以上我们就实现了一个简单的远程线程注入程序,运行结果如下:

注入后目标进程成功弹出窗口并显示进程PID

注入模块(dll)显示

使用ProcessExplorer工具查看进程PID及加载的模块:

文件加密技术

使用文件加密技术是勒索病毒常见的行为特征之一,勒索病毒通过加密计算机内重要文件实施勒索行为,部分勒索病毒只会加密特定后缀的文件(如.pdf .txt .doc等等,文档文件类型居多)以实现快速加密勒索。

常见的加密方法大致分为以下几类:

1. 对称加密( symmetric encryption algorithm ):对称加密只有一个密钥,分别由加密方和解密方保管,其加密算法是固定的,密钥始终不变,由加密方通过密钥加密后的数据交给解密方,解密方使用与加密方相同的密钥经过相同的算法即可解密密文。这种加密算法的优点是加密速度快、复杂度效、方便易用,但是其安全性低,由于密钥加密方通过生成的密钥加密明文后需要连同加密密钥一起发送给解密方才能解密密文,而这个传输过程中可能会被截断或篡改,导致保密性和安全性收到影响。常见的对称加密算法有AES、DES、RC等算法。

2. 非对称加密( public key encryption ):非对称加密由两个密钥,分别是公钥和私钥,公钥可以被任何人浏览,而私钥通常由加密方保管,用公钥加密的数据只能使用私钥解密,使用私钥加密的数据只能通过公钥解密。加密方通过接收方生成的公钥加密,并将密文发送至解密方,解密方使用对应的私钥即可解密,私钥是保密的,而公钥是公开的,即使公钥传输时被截获,由于不知道私钥也就无法解密密文。所以在非对称加密中只需要保护好密钥即可,并且传输过程中没有传输私钥,私钥始终保存在解密方。非对称加密的优点是:安全性高、密文不易修改和解密。缺点:加密算法复杂,加密解密耗时高。常见的非对称加密算法有:RSA、Elgamal等算法。

以上就是两大类的加密类型,下面介绍一下文件加密模式:

  1. 静态加密:对文件加密后得到一份加密文件,当需要使用时在手动使用解密算法对加密文件进行解密,解密后即可正常访问文件。
  2. 动态加密:对文件进行动态加密,实时检测访问文件用户合法性,对于合法用户在访问文件时进行实时解密,在用户关闭文件时重新加密,无需手动解密加密文件,动态加密能够做到加解密全过程透明无感,所以动态加密技术也成为透明加密。

对于文件加密,通常流程为:读取文件流 → 逐字节使用加密算法加密(对称或非对称算法) → 得到加密文件。解密流程同上。

键盘记录技术

键盘记录技术也是木马病毒常用的窃取(如账号,密码等)信息的手段之一,通过实时检测用户的按键信息,截取其中有用的部分,即用户账号密码的输入,从而实现木马盗号等威胁行为。在Windows下我们可以使用GetRawInputData函数获取用户输入。流程如下:

注册原始输入设备(RegisterRawInputDevices) → 获取原始输入数据(GetInputRawData) → 记录键盘数据至文件

其中需要一张ASCLL码对应键位信息表,这需要自定义,以实现按键对应ASCLL码的查询与记录。

屏幕截取技术

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
屏幕截取技术同样是木马远控等程序常有的功能。通过截取目标机器屏幕,可以使远控端查看目标当前所处状态及操作。截取屏幕可以使GetDC来实现,GetDc可以进行绘图。

代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#include <stdio.h>
#include <Windows.h>
#include <atlimage.h>

int PrintScreen()
{
    HWND hWnd;
    HDC hdc;
    HBITMAP bmp;
    HGDIOBJ bmp_t;
    HDC mdc;
unsigned int width = 0;
unsigned int hight = 0;
    hWnd = GetDesktopWindow();
    hdc = GetDC(hWnd);
    mdc = CreateCompatibleDC(hdc);
    width = GetSystemMetrics(SM_CXSCREEN);
    hight = GetSystemMetrics(SM_CYSCREEN);
    bmp = CreateCompatibleBitmap(hdc, width, hight);
bmp_t = SelectObject(mdc, bmp);
    BitBlt(mdc, NULL, NULL, width, hight, hdc, NULL, NULL, SRCCOPY);

    CImage image;
    image.Attach(bmp);
    image.Save("ScreenPrint.jpg");
return 0;
  }

int main(void)
{
    PrintScreen();
  }


恶意代码检测技术原理论述

MD5检测技术

MD5检测技术是指通过MD5算法对恶意文件生成一串长度固定,且唯一的MD5值,通过大量样本的计算,将多个恶意文件的MD5值保存至文件便成为了MD5病毒库,在检测一个新程序是否是恶意文件时我们只需要对这个文件用相同的MD5算法进行运算,得到的MD5值进入数据库内查询,如果匹配到了,那么我们可以判断,这一定是一个恶意文件。

MD5由于计算快速简便且不会发生误报的现象,大部分恶意代码检测引擎都有对文件MD5的检测。但由于MD5的唯一性,哪怕恶意文件中1个字节发生了改变,MD5也会随之发生改变。这样就出现了另一种优化的MD5检测方法,通过查找PE文件的.text节(即代码段),对其进行MD5值运算,这样得出的MD5值相较先前更好一点。当然了,现在也有一种模糊哈希的计算方法,通过对恶意文件分片计算哈希值可以对比出两个文件的相似度。这种算法更适合对恶意文件进行检测。接下来我们通过一个图片加深对MD5检测技术的了解:

上图简单表明了一个基础的MD5检测病毒的示例,通过计算待测文件MD5与病毒库内保存的恶意文件MD5值比对,当MD5值A与MD5值B相同时则匹配到恶意文件,反之则为正常文件。

特征码检测技术

接下来我们来了解特征码检测技术,特征码检测技术是一种静态检测方式,特征码检测技术通过在二进制文件中查找指定的特征码(通常是十六进制)进行比对分析来判定程序是否存在威胁。

  • 特征码( Signature ):特征码通常为十六进制码,特征码可以是二进制文件中特定的字符串(如熊猫烧香病毒中的“xboy”字符串,转换为十六进制特征码0x78 0x62 0x6f 0x79),还可以是一段汇编指令或其他特征。特征码不再是简单的一对一(即一条特征码对应一个病毒)而可以做到一条特征码可以匹配多个病毒(即具有通杀性)。
  • 特征码匹配 :特征码匹配是特征码检测技术中的一部分,我们通常将特征码匹配的算法成为特征码扫描引擎。

特征码匹配技术有以下几种方式:

[1]基于特征码偏移量+特征码长度的匹配方式:这种匹配方式通过所得特征码位于恶意文件内的偏移地址加上特征码的长度进行定位匹配,这种方式的好处是扫描快,缺点是这种匹配方式通杀性较低,对于存在特征码但偏移地址不同的恶意文件无法扫描出正确结果。下图解释了该种特征码匹配技术扫描流程:

[2]基于全文匹配的方式:该特征码匹配方式使用了全文匹配算法,通过KMP或AC自动机或BF暴力匹配等算法在整个待测文件的二进制码中匹配特征,只要成功匹配到,则可以判定该文件为恶意文件。下图解释了该种特征码扫描流程:

导入表分析技术(启发式扫描)

导入表分析技术,是启发式扫描的一个子目,也属于静态分析方法,通过对Windows下PE文件的函数导入导出表进行分析,可以为该程序威胁程度进行赋分,当分数达到一定阈值时可以判断该程序可能为恶意程序。导入表分析技术也依赖于一个函数库,这个库中记录不同API函数的敏感程度,并为该API函数赋分,在扫描程序时当匹配到该程序调用了库中记载的API函数时查找库中该函数对应的权重并累加到该文件的可疑总分中。该检测方式优点是可以检测未知的威胁文件;缺点是误报率较高。

下图简述了导入表分析技术的流程:

当然这只是一个最简单的方式,实际情况复杂的多,一般通过导入表组合排列或函数调用流程来做更精确的检测。

沙盒模拟技术

沙盒模拟技术,是一种动态分析方式,通过虚拟出未知文件的运行环境并在该虚拟环境中(与物理机隔离)运行该未知程序并实时监控该未知程序操作来判断该程序的威胁性。由于该虚拟环境与物理主机完全隔离,所以即使该程序存在威胁操作也不会影响到真实的物理主机。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
网络安全自学篇(十)| 论文之基于机器学习算法的主机恶意代码
自幼受贵州大山的熏陶,养成了诚实质朴的性格。经过寒窗苦读,考入BIT,为完成自己的教师梦,放弃IT、航天等工作,成为贵财一名大学教师,并想把自己所学所感真心传授给自己的学生,帮助更多陌生人。
释然IT杂谈
2020/05/11
1.3K0
[当人工智能遇上安全] 5.基于机器学习算法的主机恶意代码识别研究
《当人工智能遇上安全》系列博客将详细介绍人工智能与安全相关的论文、实践,并分享各种案例,涉及恶意代码检测、恶意请求识别、入侵检测、对抗样本等等。只想更好地帮助初学者,更加成体系的分享新知识。该系列文章会更加聚焦,更加学术,更加深入,也是作者的慢慢成长史。换专业确实挺难的,系统安全也是块硬骨头,但我也试试,看看自己未来四年究竟能将它学到什么程度,漫漫长征路,偏向虎山行。享受过程,一起加油~
Eastmount
2021/12/01
1K0
[当人工智能遇上安全] 5.基于机器学习算法的主机恶意代码识别研究
“兵不厌诈”?漏洞还是那些漏洞,攻击技术却层出不穷
如今每天都能发现超过55万个新的恶意软件样本,企业如何避免系统漏洞暴露在这些网络威胁中成为了工作中的重中之重。尽管如此,许多人仍然让自己暴露在了风险之中。
FB客服
2021/07/27
5370
“兵不厌诈”?漏洞还是那些漏洞,攻击技术却层出不穷
恶意代码分析实战总结
(1)如果安装了VMware Tools,则使用CreateToolhelp32Snapshot、Process32Next扫描进程列表,查看是否有VMwareService.exe、VMwareTray.exe和VMwareUser.exe (2)查看网卡地址是否以00:0C:29开头,或查看其它硬件版本 (3)探测内存痕迹,搜索含有VMware的字符串 (4)Red Pill反虚拟机技术->漏洞指令sidt,根据返回的idtr值不同,在多核处理器上无效 (5)No Pill技术->漏洞指令sldt,主机系统上的LDTR值为0,虚拟机中不为0 (6)查看查询I/O通信端口,监视in指令,第二个操作数为VX (7)查看str指令,主机和虚拟机中返回值不一样,str指令用来从任务寄存器中检索段选择子
De4dCr0w
2019/02/27
2.6K0
PoS端恶意软件LockPoS再次苏醒 携来新型代码注入技术
“用指尖改变世界” 以色列网络安全公司Cyberbit的研究人员表示,通过僵尸网络Flokibot分发的PoS端恶意软件LockPoS已经从一段时间的沉睡中苏醒,并携带新型代码注入技术重新回到人们的视线中。 LockPoS最初在去年7月份,由Arbor Networks Security 的安全研究员发现并进行了详尽的分析。在之前的分析中,LockPoS通过利用直接注入到explorer.exe 进程中的滴管组件进行传播。 值得注意的是,LockPoS必须通过手动加载来执行。在执行后,它会从自身提取相关
企鹅号小编
2018/02/08
8910
PoS端恶意软件LockPoS再次苏醒 携来新型代码注入技术
利用机器学习进行恶意代码分类
最近在Kaggle上微软发起了一个恶意代码分类的比赛,并提供了超过500G的数据(解压后)。有意思的是,取得第一名的队伍三个人都不是搞安全出身的,所采用的方法与我们常见的方法存在很大不同,展现了机器学习在安全领域的巨大潜力。在仔细读完他们的代码和相关的论文后,我简单的进行了一些总结与大家分享。 需要指出的是,(1)比赛的主题是恶意代码的分类,不是病毒查杀(2)比赛采用的方法是纯静态分析的方法,不涉及行为分析等动态分析方法。 因此这不意味着这个方法能够取代现有的方法,但是了解它能够为安全研究人员提供一个崭新的
用户1737318
2018/06/05
3.2K0
[当人工智能遇上安全] 4.基于机器学习的恶意代码检测技术详解
《当人工智能遇上安全》系列博客将详细介绍人工智能与安全相关的论文、实践,并分享各种案例,涉及恶意代码检测、恶意请求识别、入侵检测、对抗样本等等。只想更好地帮助初学者,更加成体系的分享新知识。该系列文章会更加聚焦,更加学术,更加深入,也是作者的慢慢成长史。换专业确实挺难的,系统安全也是块硬骨头,但我也试试,看看自己未来四年究竟能将它学到什么程度,漫漫长征路,偏向虎山行。享受过程,一起加油~
Eastmount
2021/12/03
1.3K0
[当人工智能遇上安全] 4.基于机器学习的恶意代码检测技术详解
安全视角下的木马免杀技术讨论
实战演习中,攻击方需要通过各种手段对企业的相关资产进行渗透,挖掘企业资产里存在的漏洞进行得分。近年来这种漏洞挖掘的攻防比赛好像都以 Web 方面的为主,可能 Web 中存在的漏洞较多,得分点也较多吧。不过,除了 Web 之外, apt 攻击也是一种不错的攻击手法,而且运气好的话直接就进了内网。在 apt 攻击中,用的较多的大概就是钓鱼邮件了吧。而钓鱼成功与否一方面和钓鱼文案的诱人程度以及木马的免杀是否到位有着密切的关系。下面介绍下常见的一些免杀技巧。
FB客服
2019/08/02
1.3K0
安全视角下的木马免杀技术讨论
安全部门监测发现恶意后门程序新变种
国家网络安全部门通过对互联网的监测发现,近期出现一种恶意后门程序变种Backdoor_Parite.B. 该变种是一个远程控制程序,它会释放一个恶意动态链接库DLL文件用于感染文件,随后连接远程Web地址进而执行更多的恶意操作。 变种运行后,首先会获得受感染操作系统的临时文件夹路径,并在临时文件夹下释放恶意程序并加载执行,该程序是动态链接库DLL组件。随后,该变种会执行如下操作: 1.创建互斥体,防止二次运行; 2.设置指定类型
安恒信息
2018/04/10
6800
记一次小型 APT 恶意攻击
在经历过期末学习怠倦期后,我战战兢兢地打开了(自己搭的蜜罐抓不到样本(╥ω╥`) )
信安之路
2018/08/08
1.1K0
记一次小型 APT 恶意攻击
网络安全自学篇(二十二)| 基于机器学习的恶意请求识别及安全领域中的机器学习
免责声明:本公众号发布的文章均转载自互联网或经作者投稿授权的原创,文末已注明出处,其内容和图片版权归原网站或作者本人所有,并不代表安全+的观点,若有无意侵权或转载不当之处请联系我们处理,谢谢合作!
天钧
2020/04/24
4.4K0
网络安全自学篇(二十二)| 基于机器学习的恶意请求识别及安全领域中的机器学习
Netwalker无文件勒索软件分析
攻击者正不断研究更复杂的方式逃避恶意软件检测,近期发现攻击者利用PowerShell编写Netwalker勒索软件,直接在内存中执行,没有将实际的勒索软件二进制文件存储到磁盘中。恶意软件利用了反射动态链接库(DLL)注入的技术,也称reflective DLL加载,可以从内存注入DLL,不需要实际DLL文件,也不需要任何Windows加载程序即可注入。
FB客服
2020/06/20
1.4K0
通过“热补丁”执行恶意代码实例分析
前两天在“蜂鸟”图标的社交网站看到一个高危样本,便下载审查一番。文件是一个压缩包,压缩包中有两个普通图片、一个EXE和一个DLL文件(wwlib.dll)。
FB客服
2019/09/19
8130
通过“热补丁”执行恶意代码实例分析
二进制程序分析指南
分析恶意软件的第一步是收集二进制程序在主机上执行的行为事件,研究人员根据这些行为大体形成一个思路来描述恶意软件的功能。
FB客服
2021/10/11
2.2K0
详解DLL远线程注入技术
相信大家都有这么一个经历,我们使用电脑,在某些来历不明的网站上下载一些程序,然后打开这些程序的时候,可能会出现以下的情况。
xujjj
2020/05/18
1.1K0
Banjori银行木马分析报告
Banjori是被发现于2013年并活跃至今的银行木马。其攻击目标主要针对于法国、德国与美国的个人银行网上用户。当用户被感染后,木马会将恶意载荷注入至用户的活动进程实现持久威胁并对用户的信息进行收集。银行木马的盗窃重灾区多位于浏览器,Banjori亦不能免俗。相比IE与Chrome, 该木马尤为青睐于火狐浏览器,大部分被窃取的用户信息均通过对该浏览器的挂钩、数据库文件查询获取。值得一提的,该木马家族自2013年起就使用当年颇为时髦的动态域名算法获取CC服务器地址。这导致杀软传统的黑名单过滤形同虚设,但同时也为摧毁/接管该僵尸网络创造了条件。
绿盟科技研究通讯
2019/12/11
1.4K0
Banjori银行木马分析报告
红蓝对抗之如何利用Shellcode来躲避安全检测
对于红队安全研究团队来说,一次成功的渗透测试必须是不被目标系统发现的,随着现代终端检测和响应(EDR)产品日趋成熟,红队也必须随之每日俱进。在这篇文章中,我们将跟大家介绍FireEye Mandiant红队研究人员如何通过构造特殊Payload来绕过现代EDR产品,并获取到目标系统的完整命令控制访问权。
FB客服
2019/11/07
1.3K0
Linux下恶意文件大规模共性分析探讨
有别于金融、政府环境使用windows及其配套设施,国内互联网公司基础设施独钟情于linux系统,互联网公司遭遇的信息安全事件,如数据泄露,黑客入侵,竞争对手行为等,均有linux恶意文件的身影作祟。
FB客服
2018/02/24
2.7K0
Linux下恶意文件大规模共性分析探讨
11.反恶意软件扫描接口 (AMSI)
Windows 反恶意软件扫描接口 (AMSI) 是一种通用接口标准,可以集成在应用程序和服务与机器上存在的任何反恶意软件产品中。可以增强杀毒软件的查杀能力。
黑白天安全
2021/07/19
4.5K0
11.反恶意软件扫描接口 (AMSI)
推荐阅读
相关推荐
网络安全自学篇(十)| 论文之基于机器学习算法的主机恶意代码
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验