ATLAS——对抗性机器学习威胁矩阵<案例研究二>

这篇具有很好参考价值的文章主要介绍了ATLAS——对抗性机器学习威胁矩阵<案例研究二>。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

actic: AML.TA0007
technique: AML.T0015
  突变技术可以规避几乎所有的 DGA 检测,不仅限于本例中所示的基于 CNN 的 DGA 检测。如果攻击者将其添加到现有 DGA 之上,则大多数 DGA 检测可能会失败。使用这种技术变异的 DGA 生成的域名成功地避开了目标 DGA 检测模型,允许攻击者继续与其命令和控制服务器通信。

ATLAS——对抗性机器学习威胁矩阵<案例研究二>,2024年程序员学习,机器学习,矩阵,人工智能

图一 案例二矩阵映射

论文通读与细节

Character Level based Detection of DGA Domain Names
  
基于字符级的DGA域名检测

摘要

在此文中,作者对网安领域重要问题“DGA检测”进行了实证比较:将域名二分类为良性和恶意软件通过域名生成算法产生的域名。 在一个2M的域名数据集上进行的训练和评估实验表明,各种卷积神经网络(CNN)和递归神经网络(RNN)的架构在准确性方面的差异非常小,这促使人们倾向于使用更简单的架构,因为它们训练和评分速度更快,不太容易过拟合。

一、介绍

简要介绍了恶意软件、C&C、DGA、及其运行机制与原理。本文的主要任务:输入域名字符串,完成文本二分类(恶意/良性)。相比传统机器学习,使用深度学习完成此任务的核心原因:神经网络自动从数据中学习分类特征。而此方法的代价是增加模型训练复杂度并需要更大的数据集。文章基于已有工作,对图二的五种模型进行实验,总体来说:五种模型最终得到的准确率与假阳率指标结果差异并不大,并且都比人工提取特征训练出的随机森林模型效果好。针对DAG检测的场景来说有两个重要问题:一是模型需要定期更新,重新训练学习最新的恶意软件信息的效率高低;二是在模型部署在大数据流量产品时,评分计算的效率高低。
ATLAS——对抗性机器学习威胁矩阵<案例研究二>,2024年程序员学习,机器学习,矩阵,人工智能

图二 五种模型

二、背景

背景部分讲述了恶意软件的行为、目标、利用过程,DGA技术产生的原因、解决的问题、工作原理。在已有人工提取特征的传统机器学习模型检测的实现,很容易被攻击者绕过,并且维护需要大量人力,而故提出了使用深度学习的方法来自动学习特征,并且最终得到的结果效果更好。基于相关工作,作者提出了这些工作对于深度学习架构选择并不严谨,并由此对这些模型架构做了实验进行对比,最终的结论是:虽然五种模型结构差别大,但是调参容易,并且最终结果精度相似。
  作者也提到了对抗性机器学习的问题,如攻击者使用随机森林构建自己的特征知识,来进行绕过。由于攻击者的DGA算法不可能部署过重的代码嵌入在恶意软件中,所以使得防御者用生成对抗网络(GANs)进行对抗成为可能。已有工作用GANs丰富训练集,再将该训练集应用在其他机器学习模型上做分类任务来解决此问题。DGA不仅要生成看上去为良性的域名,更重要是是生成的域没被注册/被注册的可能性低。针对以上DGA的目标对抗生成额外域名空间的防御是该论文没深入的重要方向。

三、方法

文章中对五个模型使用了相同的输入(由【二级域名SLD+“.”+顶级域名TLD】组成的短字符串,如wikippedia.org),预处理过程如下:
(1)设定最大长度:75个字符,长度小于75的在左侧填充“0”。
(2)全部字符转换为小写。
(3)每个字符用ASCII编码成128位二进制表示。
  最终生成128*75的矩阵,作为一个域名的表示,其中每一列向量代表一个字母。
  此外,作者说明了基于原引用文献的模型只进行了调整后提升准确率的部分,如:优化器的选择(Endgame)等。

1.基于RNN
Endgame Model

基于工作:J. Woodbridge, H. S. Anderson, A. Ahuja, and D. Grant,“Predicting domain generation algorithms with long short-term memory networks,” preprint arXiv:1611.00791, 2016.3
  结构:LSTM

main_input = Input(shape=(75, ), dtype='int32', name='main\_input')
embedding = Embedding(input_dim=128, output_dim=128,input_length=75)
#作用:输入为ASCII 128 vector,输出相似度表示 128 vector
#其中为更好对比,五个实验模型的嵌入层空间维度大小相同

lstm = LSTM(128, return_sequences=False)
drop = Dropout(0.5)
#基操,防止过拟合

output = Dense(1, activation='sigmoid')
model = Model(inputs=main_input, outputs=output)
model.compile(loss='binary\_crossentropy', optimizer='adam')
#优化:引文的优化器(optimizer)为RMSProp,作者改为Adam后,loss可以更好收敛。

原文延申

以下为笔者补充认为原文引文中有参考价值的材料,本文有详尽的DGA相关内容,对神经网络基本架构及DGA原理熟悉的丹师可跳过。
《Predicting domain generation algorithms with long short-term memory networks》
  摘要:简介了的DGA技术的攻防常见手段技术脉络及优劣:逆向->用获得的种子生成域名->生成域名抢注/沉洞/加入DNS黑名单。另一思路则是通过预测该域名是否为DGA生成的,来阻断恶意软件的DNS查询。这一思路的方法有如基于统计特征的——【劣势:时间窗口过大,无法用于实时检测防御】;使用上下文信息的,如被动DNS(Passive DNS)、聚合全网的NXDomain状态(Rcode=3)数据——【劣势:集成成本高昂,终端监测难实现】。而对上述许多难以部署的系统,却可以使用LSTM的方法,仅通过域名字符串进行实时判断。
  最后引出LSTM模型可以基于许多开源框架轻松实现与部署。结论上,ROC曲线面积(二分类):0.9993;micro-averaged F1评分:0.9906,比次优方法提升二十倍。
  介绍
  1.关于DGA域名黑名单的覆盖率:公开黑名单覆盖率<1.2%,私有黑名单比公开覆盖率高,但恶意软件家族的信息并不齐全。
  2.关于DGA分类器:持续嗅探dns请求来检测DGAs,检测到后再通知其他工具或网络管理员进行溯源。
  3.通常DGA检测分为实时和回溯两类。其中回溯需要大量数据集,基于统计特征进行聚类(如使用KL散度,衡量概率分布的差异),再加上文提及的使用上下文信息,该方法对于实际的安全应用软件来说不现实。如EDR设备部署在终端上,终端设备的网络、内存、处理性能做不到聚合这样的上下文信息要求。并且回溯技术在二分类问题上,表现不如实时技术:
ATLAS——对抗性机器学习威胁矩阵<案例研究二>,2024年程序员学习,机器学习,矩阵,人工智能

图三 回溯技术与LSTM方法结果对比
  
  4.传统ML模型手工提取特征包括信息熵、字符串长度、文本元辅音比(正常域名绝大多数易于/可发音)、词义字符比(如ratio(Facebook)=1、ratio(face1234)=0.5)、未知类别样本与良性数据集的马氏距离(Mahalanobis Distance)、良性样本的n-garm正态性校验评分等。并在聚类中加入了请求该域的共享主机信息(即,如果同一主机对两个域进行DNS查询,则将两个域聚在一起)。
  5.隐式马尔科夫模型(HMM)首次提出的实时技术,并且无需手动提取特征,但检测效果差。
  6.LSTM模型的相关信息:
  (1)如果新的DGA家族出现,则需重新训练。
  (2)模型作为一个黑盒,难以用传统逆向工作,在没有相同训练集的情况下绕过。
  (3)除二分类外还可进行多分类工作,可对唯一的DGA结构进行指纹识别。
  (4)作者在Apple MacBook Pro 2.2 GHz Intel Core i7 16GB Memory上对一个域名进行分类耗时20ms。
  背景
  A.关于DGA:作者分析了30种不同的恶意软件DGA,涵括“Cryptolocker”、“Cryptowall”、“Hesperbot”、“suppbox”、"ramnit"等。
ATLAS——对抗性机器学习威胁矩阵<案例研究二>,2024年程序员学习,机器学习,矩阵,人工智能

图四 数据集DGA家族类型

B.关于DGA分类:该分类组件对于域名信誉评分非常重要。相关工作中,有用n-gram(unigram、bigram)作为统计特征,使用KL散度衡量两种标签集合的分布差异、Jaccard距离衡量两种标签集合的相似度。
  关于几种检测方法产品落地的角度:
  (1)被标记后的域名送入聚类进行进一步分类,每个DGA家族使用HMM模型,域名解析请求成功后都用HMM反馈,当某域名评分超出设定阈值时,标记为DGA。问题:检测速度慢,误报多。
  (2)仅基于NXDomains实时信息进行顺序假设检验 ,通过NXDomains的数量及恶意情况给客户端主机评分,通过设定的阈值区间对域名进行标记。问题:检测有时延,需经过一定时间积累来调整对客户端的阈值区间。并且实际系统性能远低于其他大多数实时解决方案,仅通过NXDomains响应码无法进一步做更多任务,如:无法实现多分类。
  结果
ATLAS——对抗性机器学习威胁矩阵<案例研究二>,2024年程序员学习,机器学习,矩阵,人工智能

图五 上述四种方法二分类任务的ROC曲线对比
  
  作者给出了模型易混淆的几类样本与家族,unigram分布情况如图六所示:

家族 样本示例/混淆类型 混淆原因与绕过思路
beebone ns1.backdates13.bizns1.backdates0.biz backdates词属于固定结构,如果训练集中没有更新最新该家族的样本,则LSTM模型无法学习到包含backdates的信息,这也是模型需要定期重新训练的原因。
symmi hakueshoubar.ddns.net 该DGA算法通过在偶数索引位置随机生成元音/辅音,并在后续的位置生成相反的字母,使得最终生成的域名具有一定的可读性
Cryptolocker 混淆家族:ramnit 没有一种多分类器能检出Cryptolocker,但是可以用二分类器检出。且实验表明,由于Cryptolocker与ramnit都使用基于单个种子的乘、除、模方法生成,使得unigram分布在相同范围内都是均匀分布。Cryptolocker常被误分类为ramnit。
suppobox 混淆数据集:Alexa Top 1M 由于suppobox是基于英文字典的DGA,其unigram分布类似良性数据集Alexa Top 1M,所以浅层的模型容易误判。但是实验表明LSTM可能可以深层理解suppobox用于构造的字典,有着更好的表现。

ATLAS——对抗性机器学习威胁矩阵<案例研究二>,2024年程序员学习,机器学习,矩阵,人工智能

图六 unigram分布情况对比
  
  大多数情况下的错分类,是由于字母的分布导致的。作者通过计算各DGA家族与良性数据集Alexa Top 1M间unigram分布的余弦距离,并将阈值设定为0.2定义为“超族”进行聚类,得到图七结果,其中超族四:基于字典的DGA;超族五:随机生成字符的DGA;超族七:随机选择生成元辅音比例相同的DGA。浅层模型往往对超族分类的表现较好,但细分类任务上不如LSTM。
ATLAS——对抗性机器学习威胁矩阵<案例研究二>,2024年程序员学习,机器学习,矩阵,人工智能

图七 unigram余弦聚类结果
  
  模型可解释性
  首先对于词嵌入产生的128维向量使用PCA投影至二维,见到多个字符出现在统一投影面,且对于字符的相似(可互换性)有着一定程度的学习。在单元追踪中,可以见到十六进制以及随机字符长序列有着较高的激活状态,而其他状态没有很明确的可解释性。
  实验源码
  二分类:

from keras.preprocessing import pad_sequences
from keras.models import Sequential
from keras.layers.core import Dense
from keras.layers.core import Dropout
from keras.layers.core import Activation
from keras.layers.embeddings import Embedding
from keras.layers.recurrent import LSTM

model=Sequential()
model.add(Embedding(max_features,128,input_length=75))
model.add(LSTM(128))
model.add(Dropout(0.5))
model.add(Dense(1))
model.add(Activation('sigmoid'))

model.compile(loss='binary\_crossentropy',optimizer='rmsprop')

# Pad sequence where sequences are case insensitive characters encoded to integers from 0 to number of valid characters
X_train=sequence.pad_sequences(X_train,maxlen=75)

# Train where y\_train is 0-1
model.fit(X_train, y_train,batch_size=batch_size, nb_epoch=1)

多分类:

from keras.preprocessing import pad_sequences
from keras.models import Sequential
from keras.layers.core import Dense
from keras.layers.core import Dropout
from keras.layers.core import Activation
from keras.layers.embeddings import Embedding
from keras.layers.recurrent import LSTM

model=Sequential()
model.add(Embedding(max_features,128,input_length=75))
model.add(LSTM(128))
model.add(Dropout(0.5))
# nb\_classes is the number of classes in the training set
model.add(Dense(nb_classes))
model.add(Activation('softmax'))

model.compile(loss='categorical\_crossentropy',optimizer='rmsprop')

# Pad sequence where sequences are case insensitive characters encoded to integers from 0 to number of valid characters
X_train=sequence.pad_sequences(X_train,maxlen=75)

# Train where y\_train is one-hot encoded for each class
model.fit(X_train, y_train,batch_size=batch_size, nb_epoch=1)

CMU Model

基于工作:Tweet2vec: Character-based distributed representations for social media 4
  结构:Bi-directional LSTM

main_input = Input(shape=(75, ), dtype='int32', name='main\_input')
embedding = Embedding(input_dim=128, output_dim=128,input_length=75)

bi_lstm = Bidirectional(layer=LSTM(64,return_sequences=False),merge_mode='concat')

output = Dense(1, activation='sigmoid')

model = Model(inputs=main_input, outputs=output)
model.compile(loss='binary\_crossentropy', optimizer='adam')

原文延申

以下为笔者补充认为原文引文中有参考价值的材料,本文为社交网络语言分析项目,主要思考该模型可迁移至DGA检测领域的合理性,对神经网络基本架构及原理熟悉的丹师可跳过。

《Tweet2vec: Character-based distributed representations for social media》
  摘要:主要解决非正式网络用语、拼写错误、缩写、特殊字符(表情)带来的相关问题,比如OOV、基于单词级字典存储空间过大等。
  介绍
  开源地址:https://github.com/bdhingra/tweet2vec
  简述了NLP脉络,以及将推文的hashtags用作文本有监督学习表示的合理性(学习到的词嵌入可以应用在其他任务中,并取得不错的效果)。
  模型:GRU
  结论:对比基线(1.预处理统一删除了tag、字母替换为小写、将用户名与url替换为特殊字符、删除数据集中的转发贴 2.空格进行分词token),该模型对常见词文本的预测性能略好,而罕见词文本预测可以涨12~15个点,代价则是GRU基于字符级的序列更长,增加了训练时间。

2.基于CNN
NYU Model

基于工作:Character-level Convolutional Networks for Text Classification 5
  结构:CNN

main_input = Input(shape=(75, ), dtype='int32', name='main\_input')
embedding = Embedding(input_dim=128, output_dim=128,input_length=75)

conv1 = Conv1D(filters=128, kernel_size=3, padding='same', strides=1)
thresh1 = ThresholdedReLU(1e-6)
max_pool1 = MaxPooling1D(pool_size=2, padding='same')
#最大值池化,训练更深层网络

conv2 = Conv1D(filters=128, kernel_size=2, padding='same', strides=1)
thresh2 = ThresholdedReLU(1e-6)
max_pool2 = MaxPooling1D(pool_size=2, padding='same')

flatten = Flatten()
fc = Dense(64)
thresh_fc = ThresholdedReLU(1e-6)

drop = Dropout(0.5)
output = Dense(1, activation='sigmoid')

model = Model(inputs=main_input, outputs=output)
model.compile(loss='binary\_crossentropy', optimizer='adam')

原文延申

以下为笔者补充认为原文引文中有参考价值的材料,本文为文本分类任务模型对比文章,主要思考该模型可迁移至DGA检测领域的合理性,对神经网络基本架构及原理熟悉的丹师可跳过。

《Character-level Convolutional Networks for Text Classification》
  摘要:文章工作将ConvNets(character-level CNN)的文本分类表现与BOW、n-grams、TFIDF变体、word-level RNN进行对比实验。
  模型:character-level CNN
  样本侧数据增强:使用同义词替换的方法做了数据增强,具体选词用了WordNet对同义词排名,得出同义程度由高至低的索引

i

i

i ,并使用几何分部概率进行选取

P

w

o

r

d

i

q

i

P(word_i)\sim q^i

P(wordi​)∼qi,则索引越后,替换词与原词越不同义,被选作替换的可能性越小。总体步骤为:
     1.从原句中提取所有可以用同义词进行替换的单词(数据来源:LibreOffice Project mytheas component——English sysnonyms thesaurus)
     2.从全部可替换词中随机选取

r

r

r个,同样使用几何分部概率确定该词是否要保留原词,

P

N

u

m

b

e

r

r

q

r

P(Number_r)\sim q^r

P(Numberr​)∼qr。(此处应有更多流程细节,如

r

r

r在不同句子同义词替换取值范围情况,但原文没有详细说明)
     3.进行同义替换。

此处稍微吐槽一下原文Sogou news corpus数据集中:“Although this is a dataset in Chinese, we used pypinyin package combined with jieba Chinese segmentation system to produce Pinyin – a phonetic romanization of Chinese.The models for English can then be applied to this dataset without change. ”
原来pinyin和英语没有domain gap,就emmmm,看到这差点弃了。虽然说文章不是验证某种语言任务看似无伤大雅,但也不能过于泛化。
最后这篇文章的结论,推导出的结论个人感觉不要严谨没有抓住想说明问题的核心,部分陈述没有太大价值,此处就省略了,数据集也不做介绍了,原文自建了8个数据集,来得出关于ConvNets的优势/解释性。

Invincea Model

基于工作:eXpose: A character-level convolutional neural network with embeddings for detecting malicious urls, file paths and registry keys 6
  结构:CNN

def getconvmodel(self, kernel_size, filters):
	model = Sequential()
	model.add(Conv1D(filters=filters, input_shape=(128,128), kernel_size=kernel_size,padding=’same’,activation=’relu’,strides=1))
	model.add(Lambda(lambda x: K.sum(x, axis=1),output_shape=(filters, )))
	model.add(Dropout(0.5))
	return model
	
main_input = Input(shape=(75, ), dtype='int32', name='main\_input')
embedding = Embedding(input_dim=128, output_dim=128,input_length=75)

conv1 = getconvmodel(2, 256)
conv2 = getconvmodel(3, 256)
conv3 = getconvmodel(4, 256)
conv4 = getconvmodel(5, 256)

merged = Concatenate()([conv1, conv2, conv3, conv4])
middle = Dense(1024, activation='relu')
middle = Dropout(0.5)
middle = Dense(1024, activation='relu')
middle = Dropout(0.5)

output = Dense(1, activation='sigmoid')

model = Model(inputs=main_input, outputs=output)
model.compile(loss='binary\_crossentropy', optimizer='adam')

原文延申

以下为笔者补充认为原文引文中有参考价值的材料,本文为文本分类任务模型对比文章,主要思考该模型可迁移至DGA检测领域的合理性,对神经网络基本架构及原理熟悉的丹师可跳过。

《eXpose: A character-level convolutional neural network with embeddings for detecting malicious urls, file paths and registry keys》
  简介:作者使用CNN架构,直接输入字符串使用模型自动学习特征,来检测恶意URL、文件路径、注册表键名。其中恶意URL直接检测,若不附带额外的信息(网站注册、网页内容、网络信誉等额外成本),笔者看来还是明显存在如:ATLAS——对抗性机器学习威胁矩阵<案例研究一>中出现的问题,易于绕过。但笔者认同作者提到的一个观点:该模型能力与传统手工特征/上下文/情报模型是正交互补的。用两种不同方式提取特征进行能力的覆盖,DL提取特征可更快速检出自动化程序生成的恶意资源名称并更快部署,手动方式拥有很好的物理解释给推理结果溯源,而如何去检验当两种模型结果出现冲突时,发现误报并提升人工确认的效率也很值得思考。

类型 数据样例 有效字符数 dropout参数
恶意URL http:\0fx8o.841240.cc\201610\18\content_23312\svchost.exehttp:\31.14.136.202\secure.apple.id.login\Apple\login.phphttp:\1stopmoney.com\paypal-login-secure\websc.php 87 0.5
恶意文件路径 C:\Temp\702D97503A79B0EC69\JUEGOS/Call of Duty 4+KeygenC:\Temp\svchost.vbsC:\DOCUME1\BASANT1\LOCALS~1\Temp\WzEC.tmp\fax.doc.exe 100 0.5
恶意注册表键名 HKCU\Software\Microsoft\Windows\CurrentVersion\Run Alpha AntivirusHKCR\Applications\WEBCAM HACKER 1.0.0.4.EXEHKCR\AppID\bccicabecccag.exe 100 0.2

ATLAS——对抗性机器学习威胁矩阵<案例研究二>,2024年程序员学习,机器学习,矩阵,人工智能

图八 原文模型框架

3.基于CNN/RNN混合结构
MIT Model

基于工作:Tweet2vec: Learning tweet embeddings using character-level cnn-lstm encoder-decoder 7
  结构:CNN-LSTM
  该模型是基于NYU model的拓展改造,其中原文的实现叠套了多层CNN,而在DGA的检测中仅保留了一层,并也接入了一层LSTM进行实现,查看效果。

main_input = Input(shape=(75, ), dtype='int32', name='main\_input')
embedding = Embedding(input_dim=128, output_dim=128,input_length=75)

conv = Conv1D(filters=128, kernel_size=3, padding='same', activation='relu', strides=1)
max_pool = MaxPooling1D(pool_size=2, padding='same')

encode = LSTM(64, return_sequences=False)

output = Dense(1, activation='sigmoid')

model = Model(inputs=main_input, outputs=output)
model.compile(loss='binary\_crossentropy', optimizer='adam')

原文延申

以下为笔者补充认为原文引文中有参考价值的材料,本文为文本分类任务模型对比文章,主要思考该模型可迁移至DGA检测领域的合理性,对神经网络基本架构及原理熟悉的丹师可跳过。
《Tweet2vec: Learning tweet embeddings using character-level cnn-lstm encoder-decoder 》
  模型:CNN_LSTM
  encoder:卷积层-提取特征;LSTM层-编码
  decoder:两个LSTM层-解码,用于预测
  字符集数量:70个;数据集推文数量:300万条;
  流程:输入
     一维卷积——4层;参数:滑动窗口大小l,过滤器

w

R

l

w \in R^l

w∈Rl
     一维最大池化——一层;参数:pooling size,过滤器数量n;作用:缩小特征表达的大小,过滤去除琐碎的特征,如不必要的字母组合。
     经过最后一层卷积后,得到10*512输出,作为lstm输入。最后lstm编码结果输出表示全部推文,大小为row *256。最终输入解码器,得到t时刻的字母预测值。
ATLAS——对抗性机器学习威胁矩阵<案例研究二>,2024年程序员学习,机器学习,矩阵,人工智能

图九 原文模型框架

样本侧数据增强:复数推文-复制一遍原文,并使用同义词替换当中可被替换的词语。(WordNet,增强方法同NYU Model,不赘述,其中两个几何分布参数选取:p=0.5,r=0.5)
  实验
  语义相似分类任务(竞赛):SemEval 2015-Task 1:Paraphrase and Semantic Similarity in Twitter;输入:一组推文;输出:是否相似(二分类)。数据集:训练-18000推文对,测试-1000推文对;其中35%为释义对,65%为非释义对。过程:讲推文对输入tweet2vet模型,得到一组向量表示r,s,计算点积r·s以及绝对差|r-s|,并拼接两个结果作为这一组推文对的表示。最后进行逻辑回归和交叉验证优化参数。结论:与该竞赛前4名模型相比,该模型f1得分最高。
  情感分类任务(竞赛):SemEval 2015-Task10B:Twitter Message Polarity Classification;输入:一条推文;输出:积极、消极、中立(三分类)。数据集:训练-9520,测试-2380(样本标签比例相同:积极-38%,消极-15%,中立47%)。竞赛评分特殊性:该任务得分仍为判断消极与积极两类的准确性,实际是二分类作为模型的评分标准,仍使用f1得分衡量。结论:与该竞赛前4名模型相比,该模型f1得分最高。
  模型后续优化方向:1.数据增强方面,打乱样本的语序来增强鲁棒性。2.增加注意力机制来改进解码过程中推文单词对齐问题(笔者也将在后续补充注意力机制模型应用与DGA检测的文章阅读整理与实验)。

笔者总结:文章的总体工作为实验性综述,并将已有的模型调优,统一环境进行实验对比总结得出核心结论。第二部分背景中最后提到了GANs数据增强,然后应用到分类模型中,确实是值得继续深入的方向。
  其实DGA的逻辑有很多种,使用机器学习方法最易检出非基于字典类型的不正常域名,但仅从文本信息中,却难以发现生成算法本身逻辑是否是与时间相关/有确定性的,如Bedep以欧洲中央银行每天发布的外汇参考汇率作为种子,Torpig用Twitter的关键词作为种子,只有在确定时间窗口内注册域名才能生效。此外基于字典的DGA检测难度大,如matsnu由于样本数量少即使是lstm架构也无法检出,但是训练样本大于matsnu20倍的suppobox却可以做出一定的判断。所以基于词典的DGA,理论上数据集收集越多,覆盖词典越全越接近DGA结果的真实生成域名分布,那么准确率也将得到更多提升。
  我们需要进一步思考,针对不同的DGA,哪些可以完全脱离人工提权特征进行检测,哪些仍然需要上下文及其他信息补充。如果这样实现了防御,作为攻击者不能完全绕过检测,开发DGA时是否可以通过利用特征分析/模型retrain等的时间差、使用一些花指令等恶意软件开发上的技巧扩大存活时间来增强攻击影响。作为防御方,考虑DGA家族之间的联系(如Conficker, Murofet, Bobax,Sinowal.)来进一步完善数据集,合理增加一些额外信息也有不错的效果。

些许头秃 心路历程:开始觉得一共8页文章,会比上一篇案例更快读完,结果五个模型介绍细节都高度概括,虽然对熟悉各种神经网络架构的老丹师so easy,但还是想让博文脉络更全面一些。挖下去后,每个references原文有十几页hhh,果然填坑还是要做好心理建设。

绕过实验复现

靶环境项目指路:https://github.com/matthoffman/degas

笔者由于工作原因,投入时间较少,复现简单粗糙,不严谨之处欢迎指正。

部署使用

该项目信息与功能非常全面,也易于部署实验。先根据提供的requirements.txt建立conda-env,激活切换至该环境。执行download-data指令,下载数据集。
ATLAS——对抗性机器学习威胁矩阵<案例研究二>,2024年程序员学习,机器学习,矩阵,人工智能
ATLAS——对抗性机器学习威胁矩阵<案例研究二>,2024年程序员学习,机器学习,矩阵,人工智能

图十 开源数据集文件

下载完毕后,执行数据集处理
ATLAS——对抗性机器学习威胁矩阵<案例研究二>,2024年程序员学习,机器学习,矩阵,人工智能
  处理完后,数据统一标记标签,1-恶意,0-正常。
ATLAS——对抗性机器学习威胁矩阵<案例研究二>,2024年程序员学习,机器学习,矩阵,人工智能

图十一 开源数据集汇总处理文件

开始训练,不调节默认参数是num_epochs=100, kfold_splits=2, batch_size=256, max_length=75。

服务器端
docker+mac m1无法部署

执行指令:

docker run -p 8501:8501 \  
  --mount type=bind,source=【文件路径】/degas/models/degas,target=/models/degas\
  -e MODEL\_NAME=degas -t tensorflow/serving

报错:

[libprotobuf ERROR external/com_google_protobuf/src/google/protobuf/descriptor_database.cc:560] Invalid file descriptor data passed to EncodedDescriptorDatabase::Add().
[libprotobuf FATAL external/com_google_protobuf/src/google/protobuf/descriptor.cc:1986] CHECK failed: GeneratedDatabase()->Add(encoded_file_descriptor, size): 

找到靶环境对应版本:
tensorflow 1.12 --------------- protobuf 3.6
mac更新protobuf 3.6

pip install protobuf==3.6

仍然报错,执行查看protoc版本,发现libprotoc==3.18:

which protoc
protoc --version

修改为统一版本,仍然报错,出现qemu: uncaught target signal 6 (Aborted) - core dumped。它是我们用于在 M1 芯片上运行英特尔容器的上游组件,这个issue 尚未解决。由于部分源码函数制定版本tf才有,所以无法用此方法部署。

docker+ubuntu18.04部署
云环境

把docker装好后直接跑服务。
ATLAS——对抗性机器学习威胁矩阵<案例研究二>,2024年程序员学习,机器学习,矩阵,人工智能

图十二 服务器端

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
ATLAS——对抗性机器学习威胁矩阵<案例研究二>,2024年程序员学习,机器学习,矩阵,人工智能
ATLAS——对抗性机器学习威胁矩阵<案例研究二>,2024年程序员学习,机器学习,矩阵,人工智能
ATLAS——对抗性机器学习威胁矩阵<案例研究二>,2024年程序员学习,机器学习,矩阵,人工智能
ATLAS——对抗性机器学习威胁矩阵<案例研究二>,2024年程序员学习,机器学习,矩阵,人工智能
ATLAS——对抗性机器学习威胁矩阵<案例研究二>,2024年程序员学习,机器学习,矩阵,人工智能

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
ATLAS——对抗性机器学习威胁矩阵<案例研究二>,2024年程序员学习,机器学习,矩阵,人工智能

图十二 服务器端

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-86wReexk-1712822885990)]
[外链图片转存中…(img-O1q0alLT-1712822885991)]
[外链图片转存中…(img-dMM2wWIc-1712822885991)]
[外链图片转存中…(img-jnwf2wy6-1712822885991)]
[外链图片转存中…(img-0raIhqzc-1712822885991)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
[外链图片转存中…(img-JScfl0Cs-1712822885992)]文章来源地址https://www.toymoban.com/news/detail-851094.html

到了这里,关于ATLAS——对抗性机器学习威胁矩阵<案例研究二>的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 对抗性攻击和防御竞争(Adversarial Attacks and Defences Competition)的通俗解读

    通过我们在 Pytorch对机器学习模型的安全漏洞攻击方法之Fast Gradient Sign Attack(FGSM,快速梯度符号攻击) https://blog.csdn.net/weixin_41896770/article/details/130319089 这篇文章的介绍,我们了解到 FGSM 可以对机器学习模型进行有效的攻击, 成功的让MNIST分类器进行了错误的分类 ,并且写了代码

    2024年02月04日
    浏览(44)
  • 二十三章:抗对抗性操纵的弱监督和半监督语义分割的属性解释

            弱监督语义分割从分类器中生成像素级定位,但往往会限制其关注目标对象的一个小的区域。AdvCAM是一种图像的属性图,通过增加分类分数来进行操作。这种操作以反对抗的方式实现,沿着像素梯度的相反方向扰动图像。它迫使最初被认为不具有区分度的区域参与

    2024年02月15日
    浏览(69)
  • Python用GAN生成对抗性神经网络判别模型拟合多维数组、分类识别手写数字图像可视化...

    生成对抗网络(GAN)是一种神经网络,可以生成类似于人类产生的材料,如图像、音乐、语音或文本 ( 点击文末“阅读原文”获取完整 代码数据 )。 相关视频 最近我们被客户要求撰写关于GAN生成对抗性神经网络的研究报告,包括一些图形和统计输出。 近年来,GAN一直是研

    2024年02月09日
    浏览(53)
  • 【信息安全案例】——网络信息面临的安全威胁(学习笔记)

    📖 前言:2010年,震网病毒(Stuxnet)席卷全球工业界。其目标是从物理上摧毁一个军事目标,这使得网络武器不仅仅只存在于那个人类创造的空间。网络武器的潘多拉魔盒已经打开。 🕤 1.1.1 信息的定义 被交流的知识 关于客体(如事实、概念、事件、思想、过程等)的知识

    2023年04月24日
    浏览(48)
  • 机器学习:自然语言处理上的对抗式攻击

    相关话题 Introduction 以前的攻击专注于图像和语音上,而NLP上的内容比较少。而NLP的复杂度跟词典有关系: NLP只能在embedding后的特征上加噪声 Evasion Attacks 电影的评论情感分类,将 film 换成 films 后,评论从消极变成了积极。 结构分析,如果改一个词后,结果完全不一样。 模

    2024年02月09日
    浏览(44)
  • 【论文阅读】NoDoze:使用自动来源分类对抗威胁警报疲劳(NDSS-2019)

    NODOZE: Combatting Threat Alert Fatigue with Automated Provenance Triage 伊利诺伊大学芝加哥分校 Hassan W U, Guo S, Li D, et al. Nodoze: Combatting threat alert fatigue with automated provenance triage[C]//network and distributed systems security symposium. 2019.   威胁警报疲劳”或信息过载问题:网络分析师会在大量错误警报

    2024年02月13日
    浏览(42)
  • 机器学习在安全领域的应用:从大数据中识别潜在安全威胁

    🧑 作者简介 :阿里巴巴嵌入式技术专家,深耕嵌入式+人工智能领域,具备多年的嵌入式硬件产品研发管理经验。 📒 博客介绍 :分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向的学习指导、简历面试辅导、技术架构设计优化、开发外包等服

    2024年04月15日
    浏览(40)
  • 论文阅读:四足机器人对抗运动先验学习稳健和敏捷的行走

    论文:Learning Robust and Agile Legged Locomotion Using Adversarial Motion Priors 进一步学习:AMP,baseline方法,TO 介绍了一种新颖的系统,通过使用对抗性运动先验 (AMP) 使四足机器人在复杂地形上实现稳健和敏捷的行走。主要贡献包括为机器人生成AMP数据集,并提出一种教师-学生训练框架

    2024年02月21日
    浏览(53)
  • 大数据机器学习GAN:生成对抗网络GAN全维度介绍与实战

    本文为生成对抗网络GAN的研究者和实践者提供全面、深入和实用的指导。通过本文的理论解释和实际操作指南,读者能够掌握GAN的核心概念,理解其工作原理,学会设计和训练自己的GAN模型,并能够对结果进行有效的分析和评估。 生成对抗网络(GAN)是深度学习的一种创新架

    2024年02月03日
    浏览(40)
  • 基于深度学习、机器学习,对抗生成网络,OpenCV,图像处理,卷积神经网络计算机毕业设计选题指导

    开发一个实时手势识别系统,使用卷积神经网络(CNN)和深度学习技术,能够识别用户的手势并将其映射到计算机操作,如控制游戏、音量调整等。这个项目需要涵盖图像处理、神经网络训练和实时计算等方面的知识。 利用深度学习模型,设计一个人脸识别系统,可以识别人

    2024年02月07日
    浏览(88)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包