- 题目:Attributed Heterogeneous Graph Neural Network for Malicious Domain Detection
- 链接:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9437852
- 源码:-
- 会议:CSCWD(CCF-C)
- 时间:2021.05
- 机构:中国科学院信息工程研究所
- 摘要:在本文中,我们提出了一个属性异构图神经网络模型,GAMD,以半监督的方式检测恶意域名。具体来说,我们利用属性化异构信息网络对具有不同类型节点(包括域、主机、已解析的ip)和不同类型关系(包括请求关系和解析关系)的DNS场景进行建模。然后设计细粒度节点类型感知的特征转换和边缘类型感知的聚合机制,融合节点属性和结构信息,完成DNS图的推理。
介绍
1. 研究问题
与基于特征的模型相比,基于图的模型只需要少量标注的数据就可以达到较好的性能。现有的基于图的模型的缺点也很明显:
- 它们只使用两种类型的节点(例如domain和resolved-IP),而实际场景中涉及的DNS通常包含更丰富的信息,例如主机、cname、段等。
- 这些方法需要将二分图 (如域解析图) 转换为域同构图,这不可避免地会造成信息丢失。
- 大多数方法仅仅利用了节点的结构信息,而忽略了节点的属性,这对于有限的标记数据可以发挥重要作用。
针对现有方法的局限性,我们提出了一种基于属性的异构图神经网络模型GAMD:一种基于属性的异构GNN反恶意域模型。
2.贡献
本文的贡献如下:
- 将恶意域检测问题定义为一个基于属性异构信息网络的节点分类任务。
- 提出了一种新的GAMD模型来解决这个问题,它可以有效地融合节点的属性和结构信息。
- 据我们所知,这是第一个将半监督异构图神经网络引入恶意领域检测问题的工作
- 在大规模真实世界被动DNS数据上的实验结果表明,我们提出的方法比最先进的方法获得了很大的收益,并且适用于大规模、较少标记的数据场景。
模型
1. 特征提取
根据之前的工作,我们提取了21个域特征,共44维特征向量,可以归纳为三类:结构特征、语言特征和统计特征。此外,我们还根据被动DNS日志提取了一些统计信息,包括每个域请求的次数、每个域关联的IP解析数等。最后,我们得到每个域的49维特征向量,并将其作为DNS异构图中域类型节点的初始特征。
2. 节点:类型感知的特征转换
对于属性异构图,不同类型的节点可能具有不同的特征。即使它们具有相同的维度,它们仍然位于不同的特征空间。以DNS为例,存在三种类型的节点:“domain type”、“host type”和“resolve - ip type”。domain-type节点特征包括结构特征、统计特征等,host-type节点特征包括国家、asn等。显然,即使特征向量具有相同的维数,不同节点类型的特征也具有完全不同的含义。
以往的研究通过对不同类型的节点进行类型特定的线性变换,将其原始特征空间投影到统一的潜在特征空间,解决了上述问题。
h v ′ = W ϕ ( v ) x v \mathbf{h}_{v}^{\prime}=\mathbf{W}_{\phi(v)} \mathbf{x}_{v} hv′=Wϕ(v)xv
- X v ∈ R d ϕ ( v ) \mathbf{X}_{v} \in \mathbb{R}^{d_{\phi(v)}} Xv∈Rdϕ(v):结点v的原始特征
- h v ′ ∈ R d ′ \mathbf{h}_{v}^{\prime} \in \mathbb{R}^{d^{\prime}} hv′∈Rd′:投影之后的潜在特征
- W ϕ ( v ) ∈ R d ′ × d ϕ ( v ) \mathbf{W}_{\phi(v)} \in \mathbb{R}^{d^{\prime} \times d_{\phi(v)}} Wϕ(v)∈Rd′×dϕ(v) :权值参数矩阵
这种方法可以解决由于节点内容特征的差异而产生的图的异构性。在转换之后,所有节点投影的特征向量具有相同的维数。因此,这将促进下一个模型组件的聚合过程。但是,由于它将所有不同类型节点的特征向量投射到一个统一的特征空间,这种粗粒度转换无疑会导致一定程度的信息丢失。为了克服这一缺点,我们提出了一种新的节点类型感知特征转换方法。
同上,我们也利用线性变换对节点的特征空间进行变换。不同的是,我们不再将所有节点不同类型的特征向量投射到一个统一的潜在特征空间,而是投射到特定节点类型的特征空间。
h ^ ϕ ( v ) , u l = W ϕ ( v ) , ϕ ( u ) l h u l − 1 \hat{\mathbf{h}}_{\phi(v), u}^{l}=\mathbf{W}_{\phi(v), \phi(u)}^{l} \mathbf{h}_{u}^{l-1} h^ϕ(v),ul=Wϕ(v),ϕ(u)lhul−1
-
h u l − 1 ∈ R ϕ ( u ) l − 1 \mathbf{h}_{u}^{l-1} \in \mathbb{R}_{\phi(u)}^{l-1} hul−1∈Rϕ(u)l−1:结点u在l-1层的特征向量,结点u是结点v的邻居结点之一。
-
W ϕ ( v ) , ϕ ( u ) l ∈ R d ϕ ( v ) l × d ϕ ( u ) l − 1 \mathbf{W}_{\phi(v), \phi(u)}^{l} \in \mathbb{R}^{d_{\phi(v)}^{l} \times d_{\phi(u)}^{l-1}} Wϕ(v),ϕ(u)l∈Rdϕ(v)l×dϕ(u)l−1:权重矩阵,该矩阵只与结点u和结点v之间的关系有关。
-
h ^ ϕ ( v ) , u l ∈ R ϕ ( v ) l \hat{\mathbf{h}}_{\phi(v), u}^{l} \in \mathbb{R}_{\phi(v)}^{l} h^ϕ(v),ul∈Rϕ(v)l:从第l-1层节点类型**φ(u)的隐状态到第l层节点类型φ(v)**的隐状态的投影
这意味着我们可以将邻居节点u的特征向量变换到与节点v相同的特征空间,以便进行邻域聚合。与之前所描述的方法相比,我们的变换方法更加精细,可以建模不同的节点关系。
3. 边:类型感知的聚合
聚合的**第一步是利用自注意机制学习两个连接节点之间的权值。**与自注意在GAT模型中的应用不同,我们利用|R|注意评分函数来保留不同的关系。结点uv之间的注意力系数描述如下:
e v u l = σ ( a r l ( h ^ ϕ ( v ) , v l ∥ h ^ ϕ ( v ) , u l ) ) e_{v u}^{l}=\sigma\left(\mathbf{a}_{r}^{l}\left(\hat{\mathbf{h}}_{\phi(v), v}^{l} \| \hat{\mathbf{h}}_{\phi(v), u}^{l}\right)\right) evul=σ(arl(h^ϕ(v),vl∥h^ϕ(v),ul))
- v:目标结点
- u:源结点,v结点的一个邻居结点
- r:uv结点之间的关系
- σ \sigma σ:非线性激活函数 LeakyReLU
- ∥ \| ∥:代表序连运算
- a r l \mathbf{a}_{r}^{l} arl:与特定关系r相关的可训练注意向量
我们首先将源节点u的表示投影到φ(v)型特征空间中,生成投影表示 h ^ ϕ ( v ) , u l \hat{\mathbf{h}}_{\phi(v), u}^{l} h^ϕ(v),ul,相应地获得结点v的投影 h ^ ϕ ( v ) , v l \hat{\mathbf{h}}_{\phi(v), v}^{l} h^ϕ(v),vl。然后将这两个投影向量串联起来,进行点积运算,得到节点u到v之间的注意系数。
与HAN采用的基于元路径的注意机制不同,我们在原始异构边缘上直接利用了自注意。** 它将各种类型的邻居节点的表示投影到目标节点类型的特征空间中。** 为了使注意力系数在不同节点间易于比较,我们利用softmax对注意力系数进行归一化:
α v u l = exp ( e v u l ) ∑ k ∈ N v ∪ v exp ( e v k l ) , ∀ u ∈ N v ∪ v \alpha_{v u}^{l}=\frac{\exp \left(e_{v u}^{l}\right)}{\sum_{k \in \mathcal{N}_{v} \cup v} \exp \left(e_{v k}^{l}\right)}, \forall u \in \mathcal{N}_{v} \cup v αvul=∑k∈Nv∪vexp(evkl)exp(evul),∀u∈Nv∪v
然后,通过邻居节点的投影表示和相应的注意系数对目标节点的潜在表示进行聚合:
h v l = σ ( ∑ ∀ u ∈ N v ∪ v α v u l ⋅ h ^ ϕ ( v ) , u l ) \mathbf{h}_{v}^{l}=\sigma\left(\sum_{\forall u \in \mathcal{N}_{v} \cup v} \alpha_{v u}^{l} \cdot \hat{\mathbf{h}}_{\phi(v), u}^{l}\right) hvl=σ(∀u∈Nv∪v∑αvul⋅h^ϕ(v),ul)
这种注意机制也可以扩展到多头注意,它有助于稳定学习过程,减少因图的异质性而引入的高方差。具体来说,我们分别计算每条边(u, v)的H-head注意,然后将它们的输出连接起来,得到如下公式:
h v l = ∥ h = 1 H σ ( ∑ ∀ u ∈ N v ∪ v [ α v u l ] h ⋅ h ^ ϕ ( v ) , u l ) \mathbf{h}_{v}^{l}=\|_{h=1}^{H} \sigma\left(\sum_{\forall u \in \mathcal{N}_{v} \cup v}\left[\alpha_{v u}^{l}\right]_{h} \cdot \hat{\mathbf{h}}_{\phi(v), u}^{l}\right) hvl=∥h=1Hσ(∀u∈Nv∪v∑[αvul]h⋅h^ϕ(v),ul)
这样,我们就得到了目标节点v的第l层的潜在表示。通过层层叠加,我们可以使每个节点在全图中达到较大比例的节点。每个节点的最终表示将包含丰富的上下文信息,这对下游异构网络任务非常有利,如节点分类。
4. 模型训练
在应用了前面小节中介绍的组件之后,我们可以获得高度上下文化的表示。将得到的节点v的最终表示送入具有sigmoid单元的全连接神经网络,预测节点v的类:
p v = σ ( w p T h v L + b ) p_{v}=\sigma\left(\mathbf{w}_{p}^{T} \mathbf{h}_{v}^{L}+b\right) pv=σ(wpThvL+b)
Pv为预测的域类型节点v的恶意概率。 根据恶意领域检测任务的需要和领域类型节点标签的可用性,我们可以在半监督学习范式中训练模型。对于半监督分类任务,在少量标记节点的指导下,通过反向传播和梯度下降使交叉熵最小化来优化模型权值,从而学习有意义的异构图节点表示。
实验
1. 数据集
2. 评价指标
3. 实验结果
结论
- 本文提出了一种新的基于属性的异构图神经网络GAMD来检测恶意域名。据我们所知,这是利用半监督异构图神经网络进行恶意领域检测的第一次尝试。
- GAMD融合了节点属性和结构信息,同时考虑了网络的异构性。
- 在大学网络上的实验表明,该方法在恶意域检测方面的性能优于以往的研究成果,适用于标签数量有限的大规模数据集。
- 目前,GAMD只包含三种类型的节点(host node, domain node, resolvedIP node),我们计划扩展到包含更多的信息(如cname,网段,whois data, registration)作为属性的一部分。
- 另一个潜在的改进是整合一些防御机制,作为针对图神经网络的几种知名攻击的对策,这可以增强我们所提出方法的鲁棒性。