做者|Elaine Hung
编译|Flin
来源|analyticsvidhyapython
监视本地管理员执行的用户活动始终是SOC分析人员和安全专业人员面临的挑战。大多数安全框架都会建议实施白名单机制。安全
可是,现实世界一般并不理想。始终有不一样的开发人员或用户拥有本地管理员权限来绕过指定的控件。有没有办法监视本地管理员的活动?框架
数据集外观示例—上面列出的3个条目指的是同一软件dom
咱们有一个常规的批处理做业,以检索安装在不一样区域中的每一个工做站上的软件。安装的大多数软件都以其本地语言显示。(是的,你能够对其命名——多是日语,法语,荷兰语.....)机器学习
所以,你会遇到这样的状况,即安装的软件在白名单中引用同一软件时会显示7个不一样的名称。更不用说,咱们有成千上万的设备。学习
个人想法是公司中使用的合法软件——应该安装多个软件,而且软件名称应该不一样。在这种状况下,我相信使用机器学习来帮助用户对软件进行分类并突出显示任何异常值将是有效的。人工智能
使用术语频率-反文档频率(TF-IDF)的字符处理spa
天然语言处理(NLP)是人工智能的一个子领域,用于理解和处理人类语言。鉴于机器学习的新进展,许多组织已开始将天然语言处理应用于翻译,聊天机器人和候选筛选。.net
TF-IDF是一种统计量度,用于评估单词与文档集合中的文档的相关性。这能够经过乘以两个度量来完成:一个单词在文档中出现多少次,以及单词在一组文档中的反文档出现频率。翻译
TF-IDF一般用于单词提取。可是,我在考虑它是否也能够应用于字符提取。目的是探索经过将每一个字符的重要性导出到软件名称中,咱们如何可以很好地应用TF-IDF来提取与软件名称中每一个字符相关的功能。
下面的脚本示例说明了如何将TF-IDF应用于数据集中的软件名称字段。
import pandas as pd from sklearn.feature_extraction.text import TfidfVectorizer# Import the dataset df=pd.read_csv("your dataset") # Extract the Manufacturer into List field_extracted = df['softwarename']# initialize the TF-IDF vectorizer = TfidfVectorizer(analyzer='char') vectors = vectorizer.fit_transform(field_extracted) feature_names = vectorizer.get_feature_names() dense = vectors.todense() denselist = dense.tolist() result = pd.DataFrame(denselist, columns=feature_names)
结果片断:
上述TF-IDF脚本的结果(混合了不一样语言,如韩语、中文)
在上面的图表中,你能够看到执行了一个计算来评估每一个字符在软件名称上的“重要性”。这也能够解释为每一个软件名上有多少个指定的字符可用。这样,你就能够统计地呈现每一个“软件名称”的特征,咱们能够将这些特征放入你选择的机器学习模型中。
我提取的其余功能相信对模型也有帮助:
import math from collections import Counter# Function of calculating Entropy def eta(data, unit='natural'): base = { 'shannon' : 2., 'natural' : math.exp(1), 'hartley' : 10. }if len(data) <= 1: return 0counts = Counter()for d in data: counts[d] += 1ent = 0probs = [float(c) / len(data) for c in counts.values()] for p in probs: if p > 0.: ent -= p * math.log(p, base[unit])return ententropy = [eta(x) for x in field_extracted]
空格比率—软件名称具备多少个空格
元音比率—软件名称具备多少个元音(aeiou)
最后,我将上面列出的这些特性与randomtreeforest分类器一块儿运行。你能够选择任何你想要的分类器,只要它能给你一个满意的结果。
谢谢阅读!
原文连接:https://www.analyticsvidhya.c...
欢迎关注磐创AI博客站:
http://panchuang.net/
sklearn机器学习中文官方文档:
http://sklearn123.com/
欢迎关注磐创博客资源汇总站:
http://docs.panchuang.net/