微软推出AI恶意软件检测智能体 Project Ire

开篇

在8月5号,微软研究院发布了一篇博客文章,在该篇博客中推出了一款名为Project Ire的AI Agent。该Agent可以在无需人类协助的情况下,自主分析和分类二进制文件。它可以在无需了解二进制文件来源或用途的情况下,对文件进行完全的逆向工程,然后利用LLM来审查逆向后的输出内容,并确定软件是恶意的还是良性的。

我们知道,针对二进制的分析工作极具挑战性,因为它不像脚本文件那样能够直接的看到代码意图。通常需要使用逆向工具,从汇编代码或者反编译后的伪代码中去抽丝剥茧,总结出二进制文件的实际行为。

目前Project Ire还处于原型阶段,据称在使用 Windows 驱动程序的公共数据集上进行测试,能达到 0.98 的精确度和 0.83 的召回率,这在二进制分析领域已经可以算是很高的了。

遍历已有

事实上,随着MCP协议的出现,各类逆向MCP Server也如雨后春笋般层出不穷。
比如github上Ghidra逆向工具的MCP Server就有多个repo。
在这里插入图片描述
笔者尝试了其中的一些,发现它们的功能基本大同小异。都是通过IDA Pro或者Ghidra的插件能力,在实现的插件中启动http server对外暴漏了一些逆向的基本tools(工具),比如下面是Ghidra暴漏的一些tools,包括列举出二进制文件的所有函数(list_functions)、反编译指定函数(decompile_function)等等。
在这里插入图片描述

然后随便分析了一个恶意的二进制文件:
在这里插入图片描述

可见其调用了Ghidra MCP Sverver提供的工具来获取该二进制文件的信息。然后综合判断后给出了下面的结论:
在这里插入图片描述
很可惜,大模型并没有分析出其包含的恶意行为。

简单的AI Agent可以提高人类分析二进制文件的效率,但不能把判断权完全交给大模型。

笔者尝试过让大模型分析反汇编后的函数汇编代码,大模型的表现非常敏感,经常会出现误报的情况,一个正常函数也会被认为存在恶意行为。无论怎么调整提示词也无法达到一个理想状态。

所以,微软推出的Project Ire并不是一个简单的AI Agent,能达到98%的准确率肯定是有其独特的技术创新和深度优化。

Project Ire

Project Ire 诞生于微软研究院、Microsoft Defender和Microsoft Discovery & Quantum 的合作,汇集了安全专业知识、安全运营知识、全球恶意软件威胁情报以及人工智能研究。

Microsoft Discovery是2025年微软推出的面向企业的AI科研平台。该平台集成了多种专业的 AI 模型与工具,其主要特点是具备高度的可扩展性。

它建立在 GraphRAG (知识图谱+RAG)和 Microsoft Discovery 的基础之上,使用高级大语言模型以及一套逆向和二进制分析工具来推动调查和判断。

逆向工具会识别文件类型、结构以及潜在的关注点。之后,系统会使用angr和Ghidra等二进制分析框架重建二进制文件的控制流图。这些构建的成果构成了Project Ire 内存模型的Graph,用于指导后续分析工作。

通过迭代函数进行分析,LLM 通过 API 调用二进制分析工具来识别和总结关键函数。每个分析的结果都会被输入到“证据链”中,这是一个详细且可审计的线索,展示了Project Ire是如何得出结论的。这份可追溯的证据日志支持安全团队进行二次审查,并有助于在出现错误分类的情况下改进系统。

为了验证其分析结果,Project Ire 可以调用一个验证工具,根据证据链对分析报告中的内容进行交叉核对。该工具借鉴了 Project Ire 团队恶意软件逆向工程师的专家知识。系统会根据这些证据及其内部模型,创建最终报告,并将样本分类为恶意或良性。

总结

基于LLM的AI Agent是AI时代进行二进制文件分析的重要工具,Project Ire作为微软在这一领域的杰出代表,是网络安全和恶意软件检测领域的一大进步。

但也要看到这类AI工具的局限性,降低误报率依旧是个大难题,仍然需要人类分析师参与其中。

不过以目前AI领域的发展速度,有理由相信,在不久的将来,AI工具在二进制文件分析上的表现将会取得质的飞跃。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/93053.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/93053.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

哪些对会交由SpringBoot容器管理?

在 Spring Boot 中,交由容器管理的对象通常称为“Spring Bean”,这些对象的创建、依赖注入、生命周期等由 Spring 容器统一管控。以下是常见的会被 Spring Boot 容器管理的对象类型及识别方式: 一、通过注解声明的组件(最常见) Spring Boot 通过类级别的注解自动扫描并注…

Android POS应用在android运行常见问题及解决方案

概述 本文档记录了在Android POS应用开发过程中遇到的两个关键问题及其解决方案: UnsatisfiedLinkError: couldnt find "libnative.so" 错误ActivityNotFoundException 错误商户信息一致性检查绕过 问题1:UnsatisfiedLinkError - libnative.so…

基于SpringBoot的旅游网站系统

1. 项目简介 旅游线路管理系统是一个基于Spring Boot的在线旅游服务平台,提供旅游线路展示、分类、预订、订单管理等功能。系统包含前台用户界面和后台管理模块,支持用户注册登录、线路浏览、收藏、下单支付、客服咨询等核心功能。管理员可管理线路信息、…

CVPR 2025 | 机器人操控 | RoboGround:用“掩码”中介表示,让机器人跨场景泛化更聪明

点击关注gongzhonghao【计算机sci论文精选】1.导读1.1论文基本信息论文标题:ROBOGROUND: Robotic Manipulation with Grounded Vision-Language Priors作者:Haifeng Huang, Xinyi Chen, Hao Li, Xiaoshen Han, Yilun Chen, Tai Wang, Zehan W…

构建Node.js单可执行应用(SEA)的方法

如果为了降低部署复杂度,可以考虑使用vercel/ncc。除非有特别理由,不建议使用SEA。1. 环境准备1.1. 基础要求Node.js: > 19.0.0 (推荐最新LTS版本)1.2. 安装依赖npm install postject typescript1.3. 验证环境node -v # 确认版本 > 19 ts…

Java19 Integer 位操作精解:compress与expand《Hacker‘s Delight》(第二版,7.4节)

compress(int i, int mask) 这个方法是Java 19中新增的一个强大的位操作函数。compress 方法的核心功能可以理解为 “按位过滤和压缩” 。过滤 (Filter): 它使用 mask(掩码)作为过滤器。对于输入整数 i,只有那些在 mask 中对应位为 1 的比特才…

minio部署和双机热备

安装单机版MinIO(准备2台机器A、B,A、B服务器操作一致)切换目录并下载MinIO二进制文件cd /usr/local/bin wget https://dl.minio.org.cn/server/minio/release/linux-amd64/minio chmod x minio编辑配置文件vi /etc/default/minio.confMINIO_VOLUMES&quo…

【Java】 Java 21 革命性升级:虚拟线程与结构化并发的深度实践指南

还在为高昂的AI开发成本发愁?这本书教你如何在个人电脑上引爆DeepSeek的澎湃算力! Java 21 作为 Oracle JDK 的长期支持版本,引入了多项革命性特性,其中虚拟线程(Virtual Threads)和结构化并发(Structured Concurrency)尤为突出。这些特性旨在解决传统线程模型在高并发…

Apache IoTDB 全场景部署:基于 Apache IoTDB 的跨「端-边-云」的时序数据库 DB+AI

Apache IoTDB 全场景部署:基于 Apache IoTDB 的跨「端-边-云」的时序数据库 DBAI 文章目录Apache IoTDB 全场景部署:基于 Apache IoTDB 的跨「端-边-云」的时序数据库 DBAIApache IoTDB 介绍Docker部署指导企业版数据库配套工具 WorkbenchTimechoDB&…

计算机网络---传输控制协议Transmission Control Protocol(TCP)

一、TCP的定位与核心特性 TCP(Transmission Control Protocol,传输控制协议)是TCP/IP协议栈中传输层的核心协议,与UDP(用户数据报协议)共同承担端到端数据传输功能。其设计目标是在不可靠的IP网络上提供可靠…

week1-[分支嵌套]公因数

week1-[分支嵌套]公因数 题目描述 给定 444 个正整数 a,b,c,ka,b,c,ka,b,c,k。如果 a,b,ca,b,ca,b,c 都是 kkk 的倍数,那么称 kkk 是 a,b,ca,b,ca,b,c 的公因数。否则如果某两个数都是 kkk 的倍数,那么称 kkk 是这两个数的公因数。问 kkk 是哪些数的公因…

C#枚举/结构体讲一讲

先展示一段简单代码// 定义枚举 public enum thisday {吃饭,不吃 }// 定义结构体 public struct person {public string name;public int age;public thisday zhuangtai; // 使用枚举类型作为字段 }static void Main(string[] args) {// 创建结构体实例person thisperson;thisp…

C++-setmap详解

Cset&map 1. 序列式容器和关联式容器 1.1 序列式容器 序列式容器按照线性顺序存储元素,元素的位置取决于插入的时间和位置,与元素的值无关。 主要特点:元素按插入顺序存储可以通过位置(索引)直接访问元素不自动排序…

解决程序连不上RabbitMQ:Attempting to connect to/access to vhost虚拟主机挂了的排错与恢复

前言:在分布式系统里,RabbitMQ作为消息中间件,是服务间通信的关键纽带。但实际使用中,程序连接RabbitMQ失败的情况时有发生。本文结合真实报错,细致呈现从问题发现到解决的完整排错思路,还会深入讲解Rabbit…

K8S中如何配置PDB(Pod Disruption Budget)

1. PDB 核心概念作用:控制自愿中断(如节点升级、缩容)期间,应用的最小可用副本数或最大不可用比例。关键参数:minAvailable:必须保持运行的 Pod 数量(如 2 或 50%)。maxUnavailable&…

从 0 到 1:用 MyCat 打造可水平扩展的 MySQL 分库分表架构

一、为什么要分库分表? 单机 MySQL 的极限大致在:维度经验值单表行数≤ 1 000 万行(B 树三层)单库磁盘≤ 2 TB(SSD)单机 QPS≤ 1 万(InnoDB)当业务继续增长,数据量和并发…

电池模组奇异值分解降阶模型

了解如何将奇异值分解 (SVD) 降阶模型 (ROM) 应用于电池模块热模拟。挑战随着电池模块在电动汽车和储能系统中的重要性日益提升,其热性能管理也成为一项重大的工程挑战。高功率密度会产生大量热量,如果散热不当,可能导致电池性能下降、性能下…

《Python函数:从入门到精通,一文掌握函数编程精髓》

坚持用 清晰易懂的图解 代码语言,让每个知识点变得简单! 🚀呆头个人主页详情 🌱 呆头个人Gitee代码仓库 📌 呆头详细专栏系列 座右铭: “不患无位,患所以立。” Python函数:从入门到…

【记录贴】STM32 I2C 控制 OLED 卡死?根源在 SR1 与 SR2 的读取操作

问题描述最近在复用以前STM32F407控制OLED的代码,移植到STM32F103 上,使用硬件 I2C 通信方式。按照常规流程,先发送 OLED 的从机地址,OLED 有正常应答,但当发送第一个控制命令(0xAE)前的控制字节…

【AI驱动的语义通信:突破比特传输的下一代通信范式】

文章目录1 语义通信简介1.1 基本概念:什么是语义通信?语义通信的核心目标1.2 基本结构:语义通信系统结构语义通信系统的通用结构组成语义通信系统的结构关键模块1.3 基于大模型的语义通信关键技术🧠语义通信系统中AI大模型的设计建…