Skip to content

Latest commit

 

History

History
95 lines (48 loc) · 4.95 KB

machine-learning-detect-malicious-urls.md

File metadata and controls

95 lines (48 loc) · 4.95 KB

使用机器学习检测恶意 URL

原文:www.kdnuggets.com/2016/10/machine-learning-detect-malicious-urls.html

c 评论

作者:Faizan Ahmad,Fsecurify CEO

Header


我们的前三个课程推荐

1. Google 网络安全证书 - 快速开启网络安全职业生涯。

2. Google 数据分析专业证书 - 提升你的数据分析技能

3. Google IT 支持专业证书 - 支持你的组织的 IT


随着过去几年机器学习的增长,许多任务都借助机器学习算法来完成。不幸或幸运的是,关于机器学习算法在安全方面的工作很少。因此,我想在Fsecurify上展示一些内容。

几天前,我有了一个想法:如果我们可以使用某种机器学习算法从非恶意 URL 中检测恶意 URL 会怎样。对此主题已经有一些研究,所以我认为应该尝试一下,从零开始实现一些东西。让我们开始吧。

数据收集

第一个任务是收集数据。我做了一些搜索,发现了一些提供恶意链接的网站。我设置了一个小爬虫,爬取了许多来自不同网站的恶意链接。接下来的任务是寻找清晰的 URL。幸运的是,我不需要爬取任何数据。已经有一个数据集可用。如果我没有提及数据来源,请不要担心。你将在本文末尾获得数据。

所以,我收集了大约 400,000 个 URL,其中大约 80,000 个是恶意的,其他的是干净的。这就是我们的数据集。接下来我们继续。

分析

我们将使用逻辑回归,因为它速度很快。第一步是对 URL 进行标记化。我为此编写了自己的标记化函数,因为 URL 与其他文档文本有所不同。

下一步是加载数据并将其存储到列表中。

既然我们已经将数据放入列表中,我们需要对 URL 进行向量化。我使用了tf-idf 分数,而不是使用词袋分类,因为 URL 中的某些词比其他词更重要,例如 ‘virus’, ‘.exe’, ‘.dat’ 等。让我们将 URL 转换为向量形式。

我们有了向量。现在让我们将其转换为测试和训练数据,并进行逻辑回归分析。

就是这样。看,它简单却有效。我们获得了 98%的准确率。这是一个非常高的值,能让机器有效检测恶意网址。想测试一些链接看看模型的预测是否准确吗?当然。我们来试试。

结果非常惊人。

这正是一个人类可能预测的结果。不是吗?

数据和代码可在Github获取。

简历: Faizan Ahmad 是一名富布赖特计算机科学本科生,同时也是 Fsecurify 的首席执行官。

相关:

  • 大数据安全的 5 个最佳实践

  • 数据科学家如何缓解敏感数据暴露的漏洞?

  • 大数据与数据科学在安全和欺诈检测中的应用

更多相关内容