在 Python 中使用机器学习来检测钓鱼链接
创始人
2024-03-02 11:02:42
0

在网络钓鱼攻击中,用户会收到一封带有误导性链接的邮件或信息,攻击者可以利用它来收集重要数据,比如你的银行卡密码。本文将会给出一个简短的教程,旨在介绍如何检测这种网络钓鱼的企图。

通过网络钓鱼攻击,攻击者能够获得一些重要凭证,这些凭证可以用来进入你的银行或其他金融账户。攻击者发送的 URL 看起来与我们日常使用的原始应用程序完全相同。这也是人们经常相信它,并在其中输入个人信息的原因。钓鱼网址可以打开一个网页,它看起来与你的银行的原始登录页面相似。最近,这样的网络钓鱼攻击正变得相当普遍,所以,检测钓鱼链接变得非常重要。因此,我将介绍如何在 Python 中使用机器学习来检查一个链接是误导性的还是真实的,因为它可以帮助我们看到网页代码及其输出。注意,本文将使用 Jupyter Notebook。当然,你也可以使用 Google Colab 或 Amazon Sagemaker,如果你对这些更熟悉的话。

下载数据集

第一步,我们需要用于训练数据集。你可以从下面的链接中下载数据集。

训练机器进行预测

当数据集下载完成,我们需要使用以下几行代码来导入所需的库:

import pandas as pd
from sklearn.ensemble import RandomForestClassifier

如果你没有这些库,你可以使用 pip 工具来安装这些库,如下图所示:

使用 pip 工具安装依赖库

当依赖安装完成,你就可以导入数据集,并将其转换为 pandas 数据框架,使用以下几行代码进一步处理:

legitimate_urls = pd.read_csv(“/home/jishnusaurav/jupyter/Phishing-Website-Detection/datasets/legitimate-urls.csv”)
phishing_urls = pd.read_csv(“/home/jishnusaurav/jupyter/Phishing-Website-Detection/datasets/phishing-urls.csv”)

在成功导入后,我们需要把这两个数据集合并,以便形成一个数据集。合并后的数据集的前几行如下图所示:

合并后的数据集的前几行

然后去掉那些我们不需要的列,如路径(path)、协议(protocol)等,以达到预测的目的:

urls = urls.drop(urls.columns[[0,3,5]],axis=1)

在这之后,我们需要使用以下代码将数据集分成测试和训练两部分:

data_train, data_test, labels_train, labels_test = train_test_split(urls_without_labels, labels, test_size=0.30, random_state=110)

接着,我们使用 sklearn 的随机森林分类器建立一个模型,然后使用 fit 函数来训练这个模型。

random_forest_classifier = RandomForestClassifier()
random_forest_classifier.fit(data_train,labels_train)

完成这些后,我们就可以使用 predict 函数来最终预测哪些链接是钓鱼链接。下面这行可用于预测:

prediction_label = random_forest_classifier.predict(test_data)

就是这样啦!你已经建立了一个机器学习模型,它可以预测一个链接是否是钓鱼链接。试一下吧,我相信你会满意的!


via: https://www.opensourceforu.com/2022/04/detect-a-phishing-url-using-machine-learning-in-python/

作者:Jishnu Saurav Mittapalli 选题:lkxed 译者:lkxed 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

机器学习模型可视化(Sli...
数据可视化可以赋能任何企业。 这包括在以下方面的巨大改进ÿ...
2025-06-01 11:32:32
机器学习(课堂笔记)Day...
0x00 什么是逻辑回归 Logistic Regression ...
2025-05-31 21:15:09
吴恩达机器学习课后作业Py...
文章目录单变量线性回归梯度下降正则方程调用sklearn库多变量线...
2025-05-31 12:05:16
python-机器学习相关...
文章目录1.lambda函数2.随机种子3.张量 1.lambda...
2025-05-30 08:06:47
机器学习基础方法与概论(四...
文章目录决策树模型与学习决策树模型决策树与 if-then 规则决...
2025-05-30 03:23:55
【机器学习实战】基于pyt...
📚引言 🙋‍♂️作者简介...
2025-05-30 00:30:11

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...