Reading Thieves’ Cant: Automatically Identifying and Understanding Dark Jargons from Cybercrime Marketplaces

笔记作者:r1se

原文作者:Kan Yuan, Haoran Lu, Xiaojing Liao, and XiaoFeng Wang, Indiana University Bloomington

原文标题:Reading Thieves’ Cant: Automatically Identifying and Understanding Dark Jargons from Cybercrime Marketplaces

原文来源:27th USENIX Security Symposium (2018)

原文链接:https://www.usenix.org/system/files/conference/usenixsecurity18/sec18-yuan_0.pdf

本文发表于 27th USENIX Security Symposium。针对地下论坛中黑色术语 (Dark Jargon) 的识别,理解提出相应的解决方案[1]。第一作者 Kan Yuan 为印第安纳大学Bloomington分校的一名 Ph.D. 学生,其研究方向主要是安全和隐私。

背景

黑色术语在地下论坛中通常应用于一些黑色交易,它们本来是在正常对话中出现的常用词,但在地下论坛中往往被赋予了其他意思。比如:”popcorn” 其本意是一种食物,但其在地下论坛中成为了 drug 的代名词。

当前主要通过人工的手段来检测黑色术语,这样容易出错且效率低,无法赶上黑色术语更新换代的速度。

主要内容

如图所示,本文提出了一种自动检测并理解黑色术语的技术 Cantreader。检测方法增强了现有的词嵌入模型来分析给定词汇在合法文档与地下论坛中词义上的区别,并通过二元分类器来识别这些黑色术语的上位词,试图理解它们真正的含义。

1.png
1.png

•识别原理:当一个单词在地下论坛交流与在正常使用时的语义完全不同时,就可以认为它是一个黑色术语。•理解原理:某个单词在被认为是黑色术语后,其存在一个上位词,就可认为是可理解的。

挑战

1.如何对某个术语在两个不同的语料库中的语义差异进行建模?2.如何处理即使在合法语料库中也有不同用法的术语?3.如何理解黑色术语的真正含义?

Cantreader

检测模型:Semantic Comparison Model, SCM (解决了挑战1)

SCM 由 Word2Vec 扩展而来。如果两个不同的词在语料库中具有相似的上下文,则在给定上下文的情况下,Word2Vec 就会针对这两个词做出相似的预测。因此,训练过程将学习权重,以针对这两个单词产生相似的隐藏层输出,即单词的嵌入向量。嵌入向量是单词上下文的合理表示,上下文在某种程度上又表示单词的语义,所以这些向量之间的相似性描述了这些词的语义之间的相似性。

如果我们只想找同一语料库上训练的不同单词的语义相似性,Word2Vec 可能会非常有用。但对于黑色术语的识别,我们需要比较同一个单词不同语料库的语义。这个问题既不能通过将两个语料库简单的合并(损失了一个单词在某个独立的语料库中的上下文信息)在一起解决,又不能通过训练两个单独的模型(Word2Vec的初始化时随机的)来回避。所以本文提出了 SCM。

SCM 相比于 Word2Vec 输入层的大小加倍了,而隐藏/输出层没有进行其他的处理。这样做了后,每个单词都有两个向量,每个向量描述该单词与其中一个语料库中其他单词的关系。 同时,这两个向量仍然是可比较的,因为它们在 Word2Vec 中一起使用,可以训练同一个 skip-gram 模型来预测上下文词的窗口。图1就是针对单词 w 的输入向量。

2.png
2.png

该函数可将单词从两个语料库转换为独热向量。这使得SCM可以在训练阶段同时从两个语料库获得输入。它还为来自不同语料库的同一单词提供了不同分布的表示形式,从而确保了模型对两个语料库的区别对待。这样,在不同情况下(合法互动与地下交流)都可以保留单词的语义对于检测黑色术语至关重要。

本文针对该模型的性能进行的三个实验都表明其的高效力。

黑色术语发现 (解决了挑战2)

词汇表构建

SCM 的词汇表是其的输入,其组成如下所示:

•由地下论坛生成的语料库与由合法互动生成的语料库的交集•除去所有的 “non-interesting” 词,比如停用词 [4]•在语料库中,上下文语境不够多样的词。min_count可以用于计数一个词在某个语料库中出现的次数,但其不能避免在地下论坛中一句话被反复引用的场景。所以本文使用了一种新的指标:窗口化上下文(windowed context)。使用此度量,我们根据单词在语料库中唯一窗口化上下文(num_wc)的数量来衡量单词的多样性。

术语的语义比较

SCM 使用了两个语料库作为输入:Cdark与Clegit,通过计算给定单词在两个语料库中的语义相似度来判定这个词是否带有不法意义。

我们无法仅仅因为一个单词在整个地下论坛和合法语料库中具有不同的语义,就断定其是一个黑黑色术语。如果合法语料库包含正式文件(例如来自Wikipedia和新闻文章的正式文件),则可能会导致误报。 这是因为这些文档中使用的单词与非正式论坛中的单词使用不同。 例如,在论坛上,”man” 通常用作问候的表达或表达愤怒或不满的感叹词,而在更正式的背景下,它通常表示成年男性。为了尽可能的使Clegit中词汇都是论坛用语,Cantreader利用合法论坛(reddit.com)上的帖子作为Clegit。

特殊的语境

不可避免在合法论坛中的一些词汇的上下文语境比较独特,所以与在不法论坛中合法的通用语义有所不同。为了避免这样的情况,本文又引入了一个语料库Crep,它包括更多正式的文档,这些文档在很大程度上使用了每个单词的词典含义。 本文选择 Wikipedia 作为 Crep。 通过在Clegit和Crep上训练SCM,Cantreader可以检测并删除在Clegit中带有非常规上下文的单词。

阈值的选择

综上,一个单词只有当其在 Cdark 与 Clegit 中的语义相似度低于某个阈值,且在 Clegit 与 Crep 中的语义相似度高于某个阈值时,才能被认定为黑色术语。那么如何找到恰当的阈值,也是一个难点。

由于 SCM 更倾向于给那些词义丰富的词语较高的语义相似性,所以对于词义丰富的词我们需要更大的阈值,反之亦然。本文将根据词语在Wordnet中的同义词个数来将词汇划为4个组(0个同义词,1-4个同义词,5-8个同义词,大于8个同义词),然后通过统计学的方法来给出每类相应的阈值大小。

理解术语 (解决了挑战3)

本文通过将给定词汇划分到特定上位词,来从一定程度上解释这些词汇在黑色论坛中的含义。自动生成语义理解的步骤如下:

1.从人们在地下论坛上交易的常见产品中产生一组上位词候选。2.分析给定术语和所有候选词的语义(通过嵌入向量)3.运行分类器以找出它们中的任何一个是否是术语的上位词。

总结

本文提出了一种可用于比较给定单词在不同语料库中的语义相似性的模型(SCM),并将该模型应用于网络犯罪场景中寻找黑色术语。值得一提的是,该模型是可扩展的,它可以用于比较给定单词在n个语料库中的语义,也可以用于寻找地下论坛黑色术语之外的其他场景。比如,在黑色术语发现时,我们就可以使用3个语料库$C_legit$, Cdark1, Cdark2,其中dark1,与dark2是两个具有相关活跃主题的地下论坛。SCM就可以计算给定单词在dark1与legit之间的相似性,再计算在dark1与dark2之间的相似性来进一步验证术语的正确性。

Cantreader的性能是语料库相关的,如果不法分子知道了这类工具的存在,在地下论坛中使用黑色术语的同时,也使用了其合法的含义来加以混淆,这样的方法就可能会影响到cantreader的效果。

References

[1] 解决方案: https://sites.google.com/view/cantreader

为您推荐

Leave a Reply

Your email address will not be published. Required fields are marked *