• Enhancing State-of-the-art Classifiers with API Semantics to Detect Evolved Android Malware论文阅读笔记


    于这一周阅读了ccs2020最新论文Enhancing State-of-the-art Classifiers with API Semantics to Detect Evolved Android Malware,做了一些笔记。

    Enhancing State-of-the-art Classifiers with API Semantics to Detect Evolved Android Malware (用 API 语义加强现有的分类器以检测不断改进的安卓恶意软件)

    1.现有的恶意软件检测分类器的问题:

    performance degrades 当 malware evolution

    使用 online learning, retraining, active learning 等技术需要大量新的恶意软件标记并消耗大量人力资源

    2.本文的创新点:

    提出 APIGraph (a framwork)

    使用 API 语义的相似性,即为 (similarity information among evolved Android Malware)来减缓 performance degrades

    similarity information: 语义上等价或类似的API使用

    3. 核心

    找到不同实现上的语义的相似性 (semantic similarity despite the different implementation)

    建立一个 relation graph:

    • node: entity
    • edge: relation between two entities

    随后从图中提取出 API 语义 (将每个 API entity 转变为一个 embedding),并将类似语义的进行分组为 API clusters (APIGraph 的 result)

    使用指标 AUT (area under time) (在 TESSERACT 中提出:TESSERACT 使用 active learning 选择一小部分具有代表性的改进的安卓恶意软件)

    作用: 1. 减少了人工标记所需要的劳动量

    ​ 2.减缓了模型老化,即 performance degrades

    将 APIGraph 应用于四个安卓恶意软件检测器上并进行测试,分别为 MAMADROID, DROIDEVOLVER (通过 online learning 持续引入新的恶意软件样本), BREBIN, DREBIN-DL

    4.图的结构

    分为两部分:

    1. 建立 API Relation Graph: collecting Android API Documents related to a certain API level 并提取 entities 和 relations
    2. 使用 API Relation Graph 去加强现有的恶意软件检测技术
      • 将所有 entities 转换为 vector (使用 graph embedding algorithm),
      • 两个 entities 之间的 vector difference in the embedding space 即为两个 entities 之间的语义
      • 使用优化使两个有相同关系的 entities 的 vector 变为类似的 (similar)
      • 聚类语义类似的 APIs 生成 clusters

    5.图的建立与使用

    (1)API Relation Graph (异构图,有向图)

    G = < E, R> (entities, relations)

    entity types: method, class, package, permission

    relation types: ten types

    使用 API reference document (有明显的分层结构)

    (2)提取 entity

    从 API 文件中提取 entity,API 文件以 class 为分类 (organized in class)

    1.从每个 per-class document file 提取 class entity

    2.从完整 class name 中拆分出 package name (i.e. package entity)

    3.phase per-class document files 为 Document Object Model (DOM) 并从中抽取属于某一个 class 的 method entity

    4.phase the manifest file 中的所有 permissions 并从中抽取 permission entity

    (3)提取 relation

    • 从 structured texts 中提取 relation (6种)

      直接进行文件解析

    • 从 unstructured texts 中提取 relation (4种)

      使用 NLP 的一种基于模型关系配对的方法

      • 手动生成配对模型 (template set)

        手动检测1%的 API 文件研究描述 relation 的 pattern

      • 迭代扩展 template set

        用半自动策略迭代生成 template set

      • 使用 NLP 进行加强的模型匹配

        将段落拆分为句子,然后使用 NLP 对每个句子进行预处理:

        • 提取主干:将所有单词化为基本远行
        • 基于 declaration 的指代消解 (co-reference resolution):指代消解指在文本中确定代词指向哪个名词短语
        • entity 名称规范化:用 exact value 替代所有的多态名称

        将预处理后的句子与模型进行匹配

    (4)使用 API Relation Graph

    将图中的 API 转换为 embedding representation (即 vector), 并将这些 embeddings 分类为 clusters

    使用 TransE 进行转换

    • 首先提取出 permission entity, 并且添加基于 permission 的新的 relation

    • 将图中分实体 e 和关联 r 分别用向量 Le和 Lr表示

    • 使用 TransE 算法对每个三元组 (h,r,t)最小化 ({||Lh + Lr - Lt||}^2_{2}) (h,t 为 entities, r 为 relation)

    • 使用 K-Means 算法将 embeddings 分组,使用每个 cluster 中心的 embedding 来表示这个 cluster,并用 Elbow 算法决定 cluster 的数目

    对于这四种 classifier, 将其中的 API feature format 替换为 cluster 进行改进

    6.测试与讨论

    1. 模型可维护性分析
    2. 模型可持续性分析
    3. 特征空间稳定性分析
    4. 同一聚类中的相似程度分析
  • 相关阅读:
    Flink架构、原理与部署测试
    EntityFramework 简单入个门
    Gdb远程调试Linux内核遇到的Bug
    掌握jQuery插件开发
    两分钟实现安全完备的登录模块
    SQL Server 手把手教你使用profile进行性能监控
    Paxos 实现日志复制同步
    作用域是什么
    Consul 服务注册与服务发现
    C语言之预处理
  • 原文地址:https://www.cnblogs.com/sjtuguyang/p/13860430.html
Copyright © 2020-2023  润新知