基于多api调用序列的恶意软件检测模型建议

2024-09-27 19:18:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图建立一个RNN(LSTM)模型,将二进制文件分类为良性/恶意软件。我现在看到的数据结构如下

{
    "binary1": {
        "label": 1,
        "sequences": [
            ["api1","api2","api3", ...],
            ["api1","api2","api3", ...],
            ["api1","api2","api3", ...],
            ["api1","api2","api3", ...],
            ...
        ]
    },
    "binary2": {
        "label": 0,
        "sequences": [
            ["api1","api2","api3", ...],
            ["api1","api2","api3", ...],
            ["api1","api2","api3", ...],
            ["api1","api2","api3", ...],
            ...
        ]
    },
    ...
}

在这里,每个二进制都有可变数量的序列,每个序列都有可变数量的API调用。 我可以填充数据,以便所有二进制文件都有相同数量的序列,并且每个序列也有相同数量的API调用。 但我的问题是,我该如何使用这些数据进行培训

问题是,恶意二进制文件的所有序列可能都不是恶意序列。因此,如果我使用这个标签并指出所有这些序列都是恶意的,如果一些序列在良性文件中也类似,那么良性二进制文件可能会被视为恶意软件

为了更好地理解这个问题,将每个二进制代码作为twitter上的一个人,将每个API调用序列作为tweet中的一个单词。一个用户可能会在tweet上发很多tweet,但其中有一些可能是关于体育的(例如)。在我的训练数据中,我知道哪些人在推特上谈论体育,但我不知道哪些推特是关于体育的。所以,我要做的是根据这些人的所有推特信息来分类他们是否喜欢运动

同样,我知道二进制文件是否恶意,但我不知道哪个API调用序列是恶意的罪魁祸首。我希望模型能从训练数据中识别出这些序列。有可能吗?我应该使用什么架构

希望我能转达我的问题,谢谢阅读并等待建议


Tags: 文件数据模型api数量二进制分类序列

热门问题