基于机器学习 实现APT 检测(附完整代码)

news2024/11/25 18:33:03

项目环境概述

以机器学习的方式,可以通过多种模型对 APT 组织所使用的恶意代码进行训练学习,同时由于训练的多样化,检测效果也会比家好。本项目采用的随机森林以及不同采样策略进行模型训练。详细设计见md文件。

1.系统描述

本系统主要是针对大量APT恶意代码进行学习,通过学习后从而对更多的APT恶意代码能够检测分类。

2.系统功能

对APT组织所使用的恶意代码进行动态分析,提取动态分析结果中的关键特征,使用随机森林并采用不同采样策略进行模型训练,最后能对恶意代码所属APT进行检测。

3.系统环境

3.1 硬件环境

i7以上CPU+4G内存+320G硬盘

3.2 软件环境

Ubuntu18.04操作系统

3.3 网络环境

4.一般约束

工具性能性能约束,开发技术支持,软件约束范围等。

三、软件业务需求描述

1.软件需求

软件需求 A

需求编号

01

需求名称

对 APT 使用恶意代码分析

需求说明

将恶意代码转换成能进行学习的数据结构

需求属性

数据流程

通过给定的恶意代码将其二进制转换为 01 图

展现类型

一系列衡量代码的 01 转换图

是否补录

存储周期

3 周

需求数据精度

权限需求

管理员

软件需求 B

需求编号

02

需求名称

提取动态分析中的关键特征

需求说明

由于代码可能过于庞大,因此部分需要进行提取

需求属性

更新频度

2 天

数据流程

经过上一步的分析,对数据结构进行删减

展现类型

一系列衡量代码的 01 转换图

是否补录

存储周期

3 周

需求数据精度

权限需求

管理员

软件需求 C

需求编号

03

需求名称

模型训练

需求说明

使用随机森林并采用不同采样策略进行训练(小样本)

需求属性

更新频度

每天多次,训练时间应较短

数据流程

确定好模型以及输入进行训练和参数调优

展现类型

分类的准确率以及训练时间

存储周期

3 周

权限需求

管理员

软件需求 D

需求编号

04

需求名称

模型预测

需求说明

测试所训练的模型,对给定恶意代码所属 APT 组织进行判定

需求属性

更新频度

数据流程

模型训练好后对待测代码进行判定即可

展现类型

预测结果

是否补录

存储周期

3 周

权限需求

管理员

输入参数

输入参数名称

参数类型

缺省数值

有无显示同级的要求

备注

待预测恶意代码

恶意代码二进制表示

软件需求 E

需求编号

05

需求名称

可视化界面

需求说明

基本可视化,方便用户查询

需求属性

更新频度

数据流程

模型预测好存入数据库后直接进行回显

展现类型

预测结果

是否补录

存储周期

3 周

权限需求

管理员

四、技术需求描述

1.初始数据质量标准

由于数据会直接导致模型的好坏,因此初始数据噪声值应尽量小,数据量尽可能大

2.高性能

预测时响应速度小于1s

3.可移植性

不同操作系统均能进行训练预测。

4.可扩展性

对于不同输入数据规模,能够对相应的样本进行预测,同时能使用不同的数据进行预测。

5.可维护性

模型参数丢失以及数据库信息损失能及时回补

五、开发模型选择

开发模型我们选择瀑布式模型,主要原因是有利于软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究,从而提高了大型软件项目开发的质量和效率。

概要设计


1.引言

1.1 编写目的

本说明书目的在于明确说明系统所需环境、各模块的实现方式,以及指导开发员进行编码。

1.2 预期读者

本说明书预期读者包括:

● 项目经理;

● 开发人员;

● 测试人员;

● 文档编写人员;

2. 技术设计

2.1 系统运行环境

分类

名称

版本

语种

主机操作系统

Ubuntu

18.04

英文

客户机操作系统

Windows 7

SP1

简体中文

沙箱环境

Cuckoo

2.0.7

英文

数据库平台

Gauss DB

-

简体中文

主机主要开发平台

Python

python2.7 & python3.6

英文

客户机主要开发平台

Python

python2.7

英文

开发主要环境

Anaconda(tenserflow)

3 (2.X)

简体中文

2.2 主要硬件环境

分类

配置需求

数据库服务器

8vCPU 2.6GHzMem:8GBHD:40G

本地开发计算机

4-6vCPU Mem:≥8GBHD:≥128GB

3. 模块设计

4. 图形化界面设计

4.1 结构设计

4.2 实际界面设计

5. 数据库设计

5.1 实际设计情况

通过实际操作与测试,最终选择数据库仅进行存储已经预测完的文件相关信息的功能。

具体设计如下:

5.2 数据库表结构说明

fileName:上传文件的文件名。

model:文件预测时选择的模型编号。

accuracy1、2、3、4:分别对应着训练集中的 4 个组织的相关程度。

label:预测后,认为他所属的国家。

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

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

相关文章

ElementUI中树形表格下拉卡死的问题解决

文章目录错误现象与描述:代码案例:错误现象与描述: 最近在修改一个前端的问题,发现后台返回给前端有数据,SQL查询也很快,但是就是前端的表格这里一直卡死,后来发现其他数据正常,其中…

【代码随想录】343. 整数拆分

343. 整数拆分 动态规划五部曲 1. 确定dp数组以及下标的含义 dp[i]:分拆数字i,可以得到的最大乘积为dp[i]。 2. 确定递推公式 其实可以从1遍历j,然后有两种渠道得到dp[i]. 一个是j * (i - j) 直接相乘。 一个是j * dp[i - j],相…

文本向量化

1、one-hot 在one-hot里面每一个token用一个长度为N向量表示,N表示的是词典的数据量。(不重复的词数量) 缺点:维度太高,用稀疏向量表示文本。 2、word embedding 使用float的矩阵来表示token,根据词典的…

Qt环境生成dump文件解决程序异常崩溃以及生成日志文件

一、背景 1、在测试自己的项目代码过程 ① 程序的编译的时候没有报错,程序在Qt release模式下运行程序,程序运行五个小时后异常退出,The process was ended forcefully;② 以及在项目程序通过windeployqt 工具打包发布的程序&am…

用最简单的方式告诉你什么是集线器、交换机、路由器

欢迎来到东用知识小课堂!某一天,你到你女友小芳(暂定这个名字吧)就读的学校去找她,那么你的做法是什么呢:一、集线器的工作方式:你站到学校中庭,大喊一声“小芳,我来你找你了!”(广播)如果这个时…

〖百宝书-思维锻炼①〗——思维进阶和升华

大家好,我是涵子,欢迎大家今天进入了新专题:百宝书-思维锻炼! 💬 人生格言:Stay foolish, stay kind.💬 📫 如果文章知识点有错误的地方,请指正!和大家一起学…

SpringSecurity随笔(2)-OAuth2协议

短信登录 参考密码登录过程 1.编写短信登录过滤器,验证短信验证码 2.编写未认证得SmsAuthenticationToken 3.将未认证的SmsAuthenticationToken传递给AuthenticationManager 4.编写一个SmsAuthenticationProvider 5.调用UserDetialsService获取用户信息 OAuth协议…

【Linux杂篇】经常登录Linux,用户密码背后的知识了解一下

一,用户密码存放在哪里? 说到这个问题,绝大部分的同学肯定都知道/etc/passwd这个文件,不错,这个文件里存储的就是用户名,密码等信息。 每一行都是一个account,每一行有7个信息,分…

在农业银行做开发是什么样的体验?

本文已经收录到Github仓库,该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点,欢迎star~ Github地址:https://github.com/…

MySQL环境搭建

文章目录1. MySQL的卸载步骤1:停止MySQL服务步骤2:软件卸载步骤3:残余文件的清理步骤4:清理注册表步骤5:删除环境变量配置2. MySQL的下载、安装、配置MySQL的4大版本软件的下载MySQL8.0 版本的安装配置MySQL8.0配置MyS…

超详解通讯录,保姆式教学 ,轻松学会实现通讯录的功能【c语言】

文章目录静态通讯录Contact.htest.c菜单的创建Contact.c初始化通讯录InitContact的实现增加联系人AddContact的实现查找指定联系人的信息SearchContact的实现删除指定联系人DelContact的实现修改指定联系人的信息ModifyContact的实现显示所有联系人的信息ShowContact的实现完整…

vite项目为什么可以直接使用NODE_ENV?

背景 我们知道,在process.env中并没有NODE_ENV这个变量,但是我们却可以在项目的代码中使用process.env.NODE_ENV这个值来判断当前是development环境还是production环境,然后进行后续的逻辑操作。 这说明,在vite内部,…

大数据面试题集锦-Hadoop面试题(二)-HDFS

你准备好面试了吗?这里有一些面试中可能会问到的问题以及相对应的答案。如果你需要更多的面试经验和面试题,关注一下"张飞的猪大数据分享"吧,公众号会不定时的分享相关的知识和资料。 1、 HDFS 中的 block 默认保存几份? 默认保存…

MacBook Pro外接显示器竖屏显示

📢📢📢📣📣📣哈喽!大家好,我是「奇点」,江湖人称 singularity。刚工作几年,想和大家一同进步🤝🤝一位上进心十足的【Java ToB端大厂领…

接口性能测试避坑 Django+Nginx+uwsgi接口性能调优postman Apifox ab

Django开发了个接口供外部调用,Django的并发性能弱早有所闻,所以采用DjangoNginxuwsgi架构来提高并发量。然后使用测试工具测试并发量。服务器配置:CPU 2,内存8G接口内容只有3句:request_data {"code":&quo…

MyBatis复习

本文章根据尚硅谷MyBatis教程整理而来 原视频地址:https://www.bilibili.com/video/BV1VP4y1c7j7 MyBatis简介 MyBatis历史 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁 移到了Google Code。随着开发团队转投Goo…

力扣刷题记录——521. 最长特殊序列 Ⅰ、541. 反转字符串 II、557. 反转字符串中的单词 III

本专栏主要记录力扣的刷题记录,备战蓝桥杯,供复盘和优化算法使用,也希望给大家带来帮助,博主是算法小白,希望各位大佬不要见笑,今天要分享的是——《521. 最长特殊序列 Ⅰ、541. 反转字符串 II、557. 反转字…

PhotoZoom Pro8全新版本功能介绍及系统要求

PhotoZoom 2023(PhotoZoom 8)全新版本震撼来袭。 一款划时代的、技术上产生革命性影响的数码图片放大工具。 我们获取图片的方法,一般是从度娘图片和各个图库里找素材。但一般网上搜索到的很多图片像素都非常小,普通方法放大就像打…

修改配置文件的定时任务

1.问题背景 下发文件给下游系统设置的是定时任务,原本是每天的18:08定时发送,突然下游说要立马发送,于是只能去修改定时任务。 2.修改操作 查看权限—修改权限—备份–修改—重启 查看权限 进入配置文件目录:cd /…

分享77个HTMLCSS源码,总有一款适合您

HTML&CSS源码 分享77个HTML&CSS源码,总有一款适合您 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下...,大家下载后可以看到。 源码下载链接:https://pan.baidu.com/s/1QRSokzVy2ZAaSD6VR…