Python在网络安全中的应用 python与网络安全
前言
网络安全是保护网络、系统和程序免受数字攻击的做法。据估计, 2019 年该行业价值 1120 亿美元,到2021 年估计有 350 万个职位空缺。
许多编程语言用于执行与网络安全相关的日常任务,但其中一种已成为行业标准:Python,它正在主导网络安全行业。
Python 具有易于阅读和理解的语法以及广泛的应用程序,使其成为任何有抱负的网络安全专业人员的通用编程语言。
根据 Stack Overflow 的说法,Python 在过去几年的增长令人难以置信,现在它被认为是所有行业中最受欢迎的语言之一。

如果您是一名正在考虑过渡到安全领域的程序员,这篇文章将向您展示如何在另一个高收入、低失业率的行业中使用您现有的技能。例如,您可以通过自动化重复流程来为您的团队节省无数时间,或者通过创建可用于测试应用程序或系统安全性的安全工具来做到这一点。
领先的网络安全软件和服务提供商 Imperva 报告称,他们保护的网站中有 77% 受到基于 Python 的工具的攻击。作为安全专业人员,我们的部分工作是模拟现实生活中的攻击,以确保公司在真正的攻击发生时做好准备,了解实际攻击中使用的语言和库。复制这些工具是一项非常有价值的技能。
然而,在安全领域,并非所有的 Python 经验都是平等的。要构建有效的产品组合、开发有效的软件并正确展示您的价值,您需要专注于为行业学习正确的 Python 库和框架。
因此,让我们看一下在这些领域蓬勃发展需要了解的一些不同的 Python 库。
自动化工具
首先,您希望能够编写有效的 Python 脚本来自动化安全专业人员的许多日常任务。
Python因其易于学习的语法和广泛的库而被广泛用于安全工作,这赋予了它很多功能。虽然可以使用其他语言来执行这些任务,但我建议学习 Python。这就是大多数行业将使用的,协作很重要。
许多安全任务要求您在成百上千个端点上应用相同的操作。例如,让我们看一下配置管理。这是为系统定义安全模板的实践,包括机器上允许哪些服务、开放哪些端口、防火墙规则等。
自动化这些过程的能力不仅可以减少时间,还可以减少错误。高达 90% 的安全事件是人为错误的直接结果。从安全角度来看,您越能摆脱对人类行为者的依赖,就越好。所以这就引出了一个问题,我怎样才能学会自动化这样的流程?
博托3
Boto3 是适用于 Python 的 Amazon Web Services (AWS) 软件开发工具包 (SDK),它允许程序员编写可以与 Amazon Simple Storage Service (S3)、Amazon Elastic Compute Cloud (EC2) 和 Amazon Virtual 等 AWS 服务交互的脚本私有云(VPC)。
使用 Boto3,您可以按需启动和停止服务器、取消不符合组织安全标准的实例、执行更新和补丁管理等等。熟悉这个 SDK 对于任何使用 AWS 的专业人士来说都是非常有价值的。
正则表达式
Regex 代表正则表达式,这是一个允许您在文本块中搜索特定模式的工具。这是一个非常有用的功能,用于在调查期间或从 Internet 上抓取信息时从日志文件中提取信息。
通过将此库与其他标准 Python 库相结合,您可以创建一些非常有用的程序。例如,您可以使用正则表达式搜索日志文件并定位 IP 地址,以便确定是否有人能够侵入您的网络、他们执行了哪些操作以及该事件发生的时间。
Pyautogui 和 Web 浏览器
Pyautogui 允许您的脚本控制鼠标和键盘功能,让您模仿智能用户行为。Web 浏览器模块允许您启动一个新的浏览器到一个指定的 URL。
您可以在程序中使用这些来自动执行任何需要您访问网站并执行任何功能的操作,例如填写 Web 表单、下载文件等。这可用于自动执行需要您登录到 Web 的功能页面和发布信息。
例如,我见过一个 Python 脚本,它可以自动测试网页的 XSS 脚本漏洞。XSS 是一种网络攻击,它试图将 javascript 代码插入输入表单并让该代码在网站上运行。
这些库还可用于自动执行其他需要您登录、访问 Web 浏览器以及在网页上执行操作的日常任务。
弹夹

该库使您能够直接从 Python 脚本访问剪贴板。虽然这可以通过 pyautogui 库来完成,但 pyperclip 使这个过程变得更加简单,并为您的脚本增加了灵活性。
它对于涉及大量文本的任何脚本特别有用。例如,假设您正在扫描整个 pdf 中的姓名、地址和电话号码。只需突出显示 pdf 文本并将其复制到剪贴板,pyperclip 就允许您在脚本中将其用作输入,从而为您节省大量时间。
骗子
该库专门用于生成可用于测试程序的虚假数据。这对于确保您编写的任何脚本或工具都能够按预期执行操作非常重要。
例如,如果您有一个提取 URL 的脚本,您可能希望生成一些包含该信息的虚假文本并测试您的程序以确保您的脚本可以有效地找到它。Faker 可以生成随机数据,例如姓名、地址、电子邮件、国家/地区、文本、网址等。
笔测试
Python 编程在网络安全中的另一个重要应用是渗透测试领域。渗透测试是试图侵入网站、应用程序、设备或网络以测试该实体的安全性的过程。
为了有效地执行这些测试,许多专业人员创建了自己的工具和脚本,这些工具和脚本的功能完全符合他们的测试需要,这就是了解 Python 变得非常有用的地方。
Python 在该领域主要用于开发用于执行攻击的自定义脚本和工具。如果你想在这方面取得成功,知道如何编写有效的脚本以及如何阅读和理解别人编写的工具对你来说非常有价值。以下是您需要熟悉的一些关键库。
蟒蛇地图
Nmap 是一个使用非常广泛的端口扫描器。端口扫描是检查计算机上打开了哪些端口以及该计算机上正在运行哪些服务的过程,以便您可以开始确定该计算机如何容易受到黑客攻击。
Python Nmap 库使您可以通过 Python 脚本轻松利用 nmap 功能,加快扫描目标计算机以查找漏洞的过程,并为您的扫描提供更多自定义。该库允许您分析 nmap 扫描结果、执行自定义扫描以及将 nmap 结果导入其他工具。
插座
Socket 是一个低级网络接口库,允许您建立客户端-服务器连接。在网络安全的背景下,这很重要,因为它允许您使用特定协议连接到指定端口上的任何机器,并将数据发送到该机器。
这可用于机器的端口扫描以及向机器发送数据或从机器提取信息。数据泄露发生在渗透测试的后期,被称为漏洞利用。任何需要您通过网络接口进行通信的项目都可能使用 Socket。
斯卡皮
Scapy 是一个数据包操作库,可以跨许多不同的网络协议伪造和解码数据包。
在网络安全中,有些情况下您需要监控通过计算机网络发送的数据包。可能是确定是否有人入侵了您的环境,查看机器上正在运行哪些端口和服务,或者解决网络问题。
不管是什么原因,这个库非常适合执行数据包分析,并且可以提供与 Nmap、Wireshark 和 tcpdump 等流行工具相同的功能。
要求
请求是不言自明的。它允许程序员通过他们的脚本发送 HTTP 请求。HTTP 请求通过允许创建自定义有效负载和针对 Web 应用程序的攻击,对渗透测试活动很有用。
请求可以实现与 burp 套件之类的工具相同的功能,但可以根据您的需求进行更多自定义。Imperva 研究人员发现,Requests 是用于基于 Web 的攻击中最流行的 Python 库,用于 89% 的基于 Python 的攻击。
美丽的汤
该库专门协助渗透测试的信息收集阶段。
Beautiful Soup 允许您从 HTML 和 XML 文件中解析数据,让您自动执行数据抓取任务。在渗透测试的开源情报阶段,数据抓取可能很重要,因为该阶段致力于尽可能多地查找有关测试目标的信息。
出于这个原因,您可能希望创建脚本来自动化此阶段,在 Github 等地方搜索以查找有关您的目标公司的信息。此信息可能包括 IP 地址,或者开发人员经常意外提交到公共存储库的用户 ID 和密码。
其他资源
这些库中的每一个都添加了重要的功能,但要精通编写与安全相关的脚本,最好以结构化的方式学习它们。
当谈到自动化工具时,我强烈推荐这两个资源,因为它们涵盖了日常任务自动化中使用的所有核心 Python 库,并且它们指导您完成几个项目,您可以将这些项目放入您的投资组合中,以向招聘人员展示您的知识.
Automatetheboringstuff.com:这本免费的电子书将带您了解所有这些库以及更多与使用 Python 自动化日常工作任务相关的内容。这是迄今为止我发现的最全面的指南,并附带练习、项目和演练。
Google 的自动化与 Python 专业证书:Google 有一个速成课程向您介绍该语言,并引导您了解 IT 专业人员自动化的重要方面。
在您学习 Python 时,我强烈建议您保留在这些课程中编写的所有代码,并将其用于作品集。一个简单而免费的方法是通过 Github 投资组合。
这些课程中的每一个都带有几个您可以做的实践项目想法,但是您想要展示的一些关键技能是读取和写入文件、从文本中提取信息以及通过应用程序编程接口与在线服务交互的能力(蜜蜂)。
如果您有兴趣直接学习Python 进行渗透测试,这里有一些不错的起点。这些书籍详细介绍了如何使用 Python 完成特定于安全的活动,例如安全自动化、开发用于安全测试的 Python 安全工具以及用于计算机取证活动的 Python 脚本。它们也受到安全社区的高度尊重,这证明了它们的质量。
Violent Python:黑客、法医分析师、渗透测试人员和安全工程师的食谱
Black Hat Python:面向黑客和渗透测试者的 Python 编程
Gray Hat Python:面向黑客和逆向工程师的 Python 编程
对于任何有抱负的安全专业人员来说,编程能力都是一项宝贵的资产,尤其是如果您对技术角色感兴趣,例如安全工程师或渗透测试员。
Python 在网络安全中至关重要
Python 是网络安全领域最流行的编程语言,展示你用这种语言编程的能力可以大大提高你找到工作的机会。
为了构建强大的编程组合,您希望专注于证明您可以使用 Python 自动执行日常任务,并为渗透测试 Web 应用程序、网络和计算机系统创建安全工具。
网络安全是收入最高的科技行业之一,预计只会增长,为那些有资格的人提供巨大的机会。
网络安全学习路线
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
最后
- 如果你确实想自学的话,我可以把我自己整理收藏的这些教程分享给你,里面不仅有web安全,还有渗透测试等等内容,包含电子书、面试题、pdf文档、视频以及相关的课件笔记,我都已经学过了,都可以免费分享给大家!
给小伙伴们的意见是想清楚,自学网络安全没有捷径,相比而言系统的网络安全是最节省成本的方式,因为能够帮你节省大量的时间和精力成本。坚持住,既然已经走到这条路上,虽然前途看似困难重重,只要咬牙坚持,最终会收到你想要的效果。
结语
网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。
特别声明:
此教程为纯技术分享!本教程的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失

相关文章:
Python在网络安全中的应用 python与网络安全
前言 网络安全是保护网络、系统和程序免受数字攻击的做法。据估计, 2019 年该行业价值 1120 亿美元,到2021 年估计有 350 万个职位空缺。 许多编程语言用于执行与网络安全相关的日常任务,但其中一种已成为行业标准:Python&#…...
轻松搭建本地大语言模型(二)Open-WebUI安装与使用
文章目录 前置条件目标一、安装 Open-WebUI使用 Docker 部署 二、使用 Open-WebUI(一)访问Open-WebUI(二)注册账号(三)模型选择(四)交互 四、常见问题(一)容器…...
解锁机器学习核心算法 | 随机森林算法:机器学习的超强武器
一、引言 在机器学习的广阔领域中,算法的选择犹如为一场冒险挑选趁手的武器,至关重要。面对海量的数据和复杂的任务,合适的算法能够化繁为简,精准地挖掘出数据背后隐藏的模式与价值。机器学习领域有十大核心算法,而随…...
Linux环境Docker使用代理推拉镜像
闲扯几句 不知不觉已经2月中了,1个半月忙得没写博客,这篇其实很早就想写了(可追溯到Docker刚刚无法拉镜像的时候),由于工作和生活上的事比较多又在备考软考架构,拖了好久…… 简单记录下怎么做的…...
构建高效 Python Web 应用:框架与服务器的选择及实践
构建高效 Python Web 应用:框架与服务器的选择及实践 flyfish 从选择合适的 Web 框架(如 Flask 和 FastAPI)到部署时选用适当的 Web 服务器(如 Waitress、Gunicorn、uWSGI 和 Uvicorn)的全过程。它不仅介绍了各个框架…...
深度学习05 ResNet残差网络
目录 传统卷积神经网络存在的问题 如何解决 批量归一化BatchNormalization, BN 残差连接方式 残差结构 ResNet网络 ResNet 网络是在 2015年 由微软实验室中的何凯明等几位大神提出,斩获当年ImageNet竞赛中分类任务第一名,目标检测第一名。获得CO…...
Java零基础入门笔记:(4)方法
前言 本笔记是学习狂神的java教程,建议配合视频,学习体验更佳。 【狂神说Java】Java零基础学习视频通俗易懂_哔哩哔哩_bilibili 第1-2章:Java零基础入门笔记:(1-2)入门(简介、基础知识)-CSDN博客 第3章…...
DeepSeek 和 ChatGPT 在特定任务中的表现:逻辑推理与创意生成
🎁个人主页:我们的五年 🔍系列专栏:Linux网络编程 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 Linux网络编程笔记: https://blog.cs…...
BS5852英国家具防火安全条款主要包括哪几个方面呢?
什么是BS5852检测? BS5852是英国针对家用家具的强制性安全要求,主要测试家具在受到燃烧香烟和火柴等火源时的可燃性。这个标准通常分为四个部分进行测试,但实际应用中主要测试第一部分和第二部分,包括烟头测试和利用乙炔火焰模拟…...
VSCode本地python包“无法解析导入”
问题现象 在使用 VSCode 编写 Python 代码时,虽然程序能正常运行,但遇到“无法解析导入”的问题,导致代码无法高亮。 解决方法 配置 python.autoComplete.extraPaths 打开 VSCode 设置(CtrlShiftP -> Preferences: Open Wo…...
本地使用docker部署DeepSeek大模型
1、相关技术介绍 1.1、RAG RAG(Retrieval Augmented Generation),即“检索,增强,生成”,用于提升自然语言处理任务的性能。其核心思想是通过检索相关信息来增强生成模型的能力,具体步骤如下&am…...
Java 不可变集合
1.不可变集合 在 Java 中,不可变集合(Immutable Collections)是指在创建之后无法修改的集合。这些集合不允许添加、删除或修改元素,一旦创建后,内容就不能改变。Java 提供了一些内置的方式来创建不可变集合࿰…...
【全栈】SprintBoot+vue3迷你商城-细节解析(1):Token、Jwt令牌、Redis、ThreadLocal变量
【全栈】SprintBootvue3迷你商城-细节解析(1):Token、Jwt令牌、Redis、ThreadLocal变量 往期的文章都在这里啦,大家有兴趣可以看一下 后端部分: 【全栈】SprintBootvue3迷你商城(1) 【全栈】…...
统计5分钟nginx访问日志的数据并设置阈值告警
1.脚本统计生成deny_ip文件 #!/usr/bin/bash#Tate:2022.3.30 #Author:Yingjian #function: 统计5分钟之内的访问ip #env#脚本存放的目录 workdircd $(dirname $0);pwdif [ $# -eq 0 ];then echo "Usage: $0 {统计几分钟内的ip}" exit 2 filogfile/var/log/nginx/acc…...
用什么办法能实现ubuntu里面运行的自己开发的python程序能自动升级。
要实现Ubuntu中自己开发的Python程序自动升级,可以通过以下几种方式: 1. 使用 Git 仓库 定时任务 如果你的Python程序托管在Git仓库中,可以通过定时拉取最新代码来实现自动升级。 步骤: 确保Python程序在Git仓库中。在Ubuntu上…...
day12_调度和可视化
文章目录 day12_调度和可视化一、任务调度1、开启进程2、登入UI界面3、配置租户4、创建项目5、创建工作流5.1 HiveSQL部署(掌握)5.2 SparkDSL部署(掌握)5.3 SparkSQL部署(熟悉)5.4 SeaTunnel部署࿰…...
力扣第4题 寻找两个正序数组的中位数
力扣第4题 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间复杂度应该为 O(log (mn)) 。 示例 1: 输入:nums1 [1,3], nums2 [2] 输出:2.0000…...
DC-6靶机渗透测试全过程
目录 前期准备 一、渗透测试 1.IP地址查询 2.端口信息搜寻 3.网页信息搜集 wappalyzer WPScan 反弹shell graham用户 反弹出jens的shell nmap提权 二、总结 前期准备 攻击机: kali windows11 靶机:DC-6靶机(调至NAT模式࿰…...
Win11 远程 连接 Ubuntu20.04(局域网)
Win11 远程 连接 Ubuntu20.04(局域网) 0. Ubuntu 开启共享1. Ubuntu系统中安装RDP服务器2.windows中连接使用方式1:远程桌面连接(winr: mstsc)方式2:mobaXterm 3 问题远程连接后出现黑屏 参考文献: 0. Ubuntu 开启共享 在ubunt设置中&#x…...
探索Hugging Face:开源AI社区的核心工具与应用实践
引言:AI民主化的先锋 在自然语言处理(NLP)领域,Hugging Face已成为开源社区的代名词。这个成立于2016年的平台,通过提供易用的工具和丰富的预训练模型库,彻底改变了开发者使用和部署AI模型的方式。截至202…...
文件分片上传 python
服务端功能 上传分片保存 app.route(/upload_filesliceprocess, methods[POST]) def upload_filesliceprocess(): file request.files[file] name_index request.form[name_index] complete request.form[complete] process request.form[process] c…...
外汇掉期(FX Swap):全球企业管理外汇风险的关键工具(中英双语)
外汇掉期(FX Swap):全球企业管理外汇风险的关键工具 引言 在全球化经济环境下,跨国公司、银行和金融机构经常面临外汇风险,因为它们的业务涉及多种货币。例如,一家中国公司可能需要欧元支付欧洲供应商&am…...
Visual Studio Code支持WSL,直接修改linux/ubuntu中的文件
步骤1 开始通过 WSL 使用 VS Code | Microsoft Learn 点击远程开发扩展包。 步骤2 Remote Development - Visual Studio Marketplace 点击install, 允许打开Visual Studio Code。 步骤3 共有4项,一齐安装。 步骤4 在WSL Linux(Ubuntu)中…...
网络安全“挂图作战“及其场景
文章目录 一、网络安全挂图作战来源与定义1、网络安全挂图作战的来源2、网络安全挂图作战的定义 二、挂图作战关键技术三、挂图作战与传统态势感知的差异四、挂图作战主要场景五、未来趋势结语 一、网络安全挂图作战来源与定义 1、网络安全挂图作战的来源 网络安全挂图作战的…...
开源在线考试系统开源在线考试系统:支持数学公式的前后端分离解决方案
开源在线考试系统:支持数学公式的前后端分离解决方案 项目介绍项目概述:技术栈:版本要求主要功能:特色亮点 项目仓库地址演示地址GiteeGitHub 系统效果展示教师端系统部分功能截图学生端系统部分功能截图 结语 项目介绍 项目概述…...
解决 ssh connect to host github.com port 22 Connection timed out
一、问题描述 本地 pull/push 推送代码到 github 项目报 22 端口连接超时,测试连接也是 22 端口连接超时 ssh 密钥没问题、也开了 Watt Toolkit 网络是通的,因此可以强制将端口切换为 443 二、解决方案 1、测试连接 ssh -T gitgithub.com意味着无法通…...
分享8款AI生成PPT的工具!含测评
随着人工智能技术的飞速进步,制作PPT变得愈发便捷,仅需输入主题指令,便能在瞬间获得一份完整的演示文稿。尤其在制作篇幅较长的PPT时,手动编写每一页内容并设计格式和排版,不仅效率低下,而且耗时耗力。 本…...
Java 设计模式总结
文章目录 Java 设计模式总结创建型模式(5种)结构型模式(7种)行为型模式(11种) Java 设计模式总结 设计模式(Design Patterns)是软件工程中解决常见问题的经典解决方案。它们提供了一…...
Spring Boot Actuator 监控✨
Spring Boot Actuator 是 Spring Boot 提供的一个强大的监控和管理工具,它可以帮助你深入了解和监控你的应用程序的运行状态。通过 Actuator,你可以获取应用程序的健康状况、内存使用情况、线程信息、HTTP 请求跟踪等。🚀 核心知识点 &#…...
解锁原型模式:Java 中的高效对象创建之道
系列文章目录 后续补充~~~ 文章目录 一、引言1.1 软件开发中的对象创建困境1.2 原型模式的登场 二、原型模式的核心概念2.1 定义与概念2.2 工作原理剖析2.3 与其他创建型模式的差异 三、原型模式的结构与角色3.1 抽象原型角色3.2 具体原型角色3.3 客户端角色3.4 原型管理器角色…...
