在网络钓鱼攻击中,用户会收到一封电子邮件或消息,其中包含误导性链接,攻击者可以使用这些链接来收集重要数据,例如您的银行卡密码。本文将提供有关如何检测此类网络钓鱼企图的简短教程。通过网络钓鱼攻击,攻击者能够获得一些重要的凭据,这些凭据可用于访问您的银行或其他金融账户。攻击者发送的URL看起来与我们每天使用的原始应用程序一模一样。这就是为什么人们经常信任它并将他们的个人信息放入其中。网络钓鱼URL可以打开一个类似于您银行原始登录页面的网页。最近,这种钓鱼攻击越来越普遍,因此检测钓鱼链接变得非常重要。因此,我将描述如何在Python中使用机器学习来检查链接是误导性的还是真实的,因为它可以帮助我们查看网页代码及其输出。请注意,本文将使用JupyterNotebook。当然,如果你比较熟悉,也可以使用GoogleColab或AmazonSagemaker。下载数据集第一步,我们需要数据集进行训练。您可以从下面的链接下载数据集。真实链接: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预测训练机下载数据集时,我们需要使用下面几行代码导入需要的库:importpandasaspdfromsklearn.ensembleimportRandomForestClassifier如果没有这些库,可以使用pip工具安装这些库,如下图所示:使用pip工具安装依赖库当依赖安装完成后,你可以导入数据集并将其转换为pandasdataframe以便进一步处理,使用以下代码行:legal_urls=pd.read_csv(“/home/jishnusaurav/jupyter/Phishing-Website-检测/数据集/合法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)就是这样!您已经构建了一个机器学习模型,可以预测链接是否为网络钓鱼链接。试一试,我相信你会满意的!
