Redian新闻
>
在 Python 中使用机器学习来检测钓鱼链接 | Linux 中国

在 Python 中使用机器学习来检测钓鱼链接 | Linux 中国

科技
 
导读:本文将会给出一个简短的教程,旨在介绍如何检测这种网络钓鱼的企图。                       
本文字数:2130,阅读时长大约:2分钟

LCTT 译者 :六开箱
🌟🌟🌟🌟
翻译: 39.0 篇
|
贡献: 47 天
2022-03-16
2022-05-02
https://linux.cn/lctt/lkxed

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

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

下载数据集

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

◈ 真实的链接:https://github.com/jishnusaurav/Phishing-attack-PCAP-analysis-using-scapy/blob/master/Phishing-Website-Detection/datasets/legitimate-urls.csv
◈ 钓鱼链接:https://github.com/jishnusaurav/Phishing-attack-PCAP-analysis-using-scapy/blob/master/Phishing-Website-Detection/datasets/phishing-urls.csv

训练机器进行预测

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

  1. import pandas as pd
  2. from sklearn.ensemble import RandomForestClassifier

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

使用 pip 工具安装依赖库

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

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

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

合并后的数据集的前几行

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

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

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

  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 函数来训练这个模型。

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

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

  1. 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中国 荣誉推出


欢迎遵照 CC-BY-SA 协议规定转载,
如需转载,请在文章下留言 “转载:公众号名称”,
我们将为您添加白名单,授权“转载文章时可以修改”。


微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
彭博社开源 Memray,一个 Python 内存剖析器 | Linux 中国npj: 新型光催化剂开发—使用会解释的机器学习机器学习:使用 Python 进行分类 | Linux 中国Python,数据岗位的技术弄潮儿小议俄乌战争和中国崛起亚历山大,亚历山大娃,谢尔盖Rebeco:使用机器学习预测股票崩盘风险「大族机器人」完成近2亿元B+轮融资,用机器人技术为人服务|36氪首发Linux 中国开通播客频道:“开源朗读者”和“硬核观察” | Linux 中国Thonny:在学校教授 Python 编程的理想 IDE | Linux 中国Linux——教你如何在 Centos8 中使用 Chrony 同步时间大字诀使用 Linux 上的开源财务工具 Skrooge 管理你的预算 | Linux 中国打掉普京,就是打掉老窜国内外最后的势力!上一个说“丼”不读jǐng的人,已经被我骂哭了硬核观察 #645 JavaScript 和 Python 继续统治编程语言,但 Rust 在崛起机器学习:使用 Python 进行预测 | Linux 中国如何在 Linux 桌面中启用 “激活 Linux” 水印通知 | Linux 中国Linux Lite 6.0 发布:弃用 Firefox,默认浏览器使用 Chrome | Linux 中国喜大普奔!Python终行动,天下苦GIL久矣在 Linux 上使用 Bash 创建一个临时文件 | Linux 中国使用 apt 进行 Linux 包管理 | Linux 中国利用python腾讯在线文档的修改Python批量将Photoshop文件保存为图片在 Linux 上使用 sudo 命令的 5 个理由 | Linux 中国使用 Python 的 requests 和 Beautiful Soup 来分析网页 | Linux 中国使用 watch 和 tail 命令监视 Linux 上的活动 | Linux 中国英伟达在提升 Linux 上的 GPU 使用体验上迈出了一大步 | Linux 中国Python根据经纬度生成并调用地图我如何在 Linux 上扫描家庭照片 | Linux 中国分享 8 篇使用 Linux 命令行的技巧 | Linux 中国2小时完成的第一个副业单子:Python修正excel表格数据使用 dnf 进行 Linux 包管理 | Linux 中国Python小技巧:​args 和 kwargs 的乐趣看电视连续剧《人世间》
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。