Python在网络安全中的应用 python与网络安全

前言

网络安全是保护网络、系统和程序免受数字攻击的做法。据估计, 2019 年该行业价值 1120 亿美元,到2021 年估计有 350 万个职位空缺。

许多编程语言用于执行与网络安全相关的日常任务,但其中一种已成为行业标准:Python,它正在主导网络安全行业。

Python 具有易于阅读和理解的语法以及广泛的应用程序,使其成为任何有抱负的网络安全专业人员的通用编程语言。

根据 Stack Overflow 的说法,Python 在过去几年的增长令人难以置信,现在它被认为是所有行业中最受欢迎的语言之一。

Python在网络安全中的应用 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在网络安全中的应用 python与网络安全_web安全_02

该库使您能够直接从 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文档、视频以及相关的课件笔记,我都已经学过了,都可以免费分享给大家!

给小伙伴们的意见是想清楚,自学网络安全没有捷径,相比而言系统的网络安全是最节省成本的方式,因为能够帮你节省大量的时间和精力成本。坚持住,既然已经走到这条路上,虽然前途看似困难重重,只要咬牙坚持,最终会收到你想要的效果。

结语

网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。

特别声明:
此教程为纯技术分享!本教程的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/70297.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计模式15:中介者模式

系列总链接:《大话设计模式》学习记录_net 大话设计-CSDN博客 1.概述 中介者模式(Mediator Pattern)是一种行为设计模式,旨在通过一个中介对象来封装一系列对象之间的交互方式,从而减少这些对象间的直接依赖。在该模式…

golang常用库之-swaggo/swag根据注释生成接口文档

golang常用库之-swaggo/swag库根据注释生成接口文档 什么是swaggo/swag github:https://github.com/swaggo/swag 参考文档:https://golang.halfiisland.com/community/pkgs/web/swag.html#%E4%BD%BF%E7%94%A8 swaggo/swag 是 Swagger API 2.0 在 go 语…

爬取网站内容转为markdown 和 html(通常模式)

我们遇到一些自己喜欢内容,想保存下来,手动复制粘贴很麻烦,我们使用 python 来爬取这些内容。 一、代码 downlod.py import os import requests from bs4 import BeautifulSoup from urllib.parse import urljoin# 目标网页(可…

. Spring MVC

(1)MVC 设计模式 Model(模型):负责存储数据和业务逻辑。在 Spring MVC 中,模型通常是 JavaBean,用于封装数据。 View(视图):负责展示数据给用户。可以是 JSP…

高效执行自动化用例:分布式执行工具pytest-xdist实战!

01、声明 在介绍pytest-xdist时,不讲任何原理,需要看原理的请移至官方:https://pypi.org/project/pytest-xdist/ 当我们自动化测试用例非常多的时候, 一条条按顺序执行会非常慢,pytest-xdist的出现就是为了让自动化测…

【ISO 14229-1:2023 UDS诊断全量测试用例清单系列:第十八节】

ISO 14229-1:2023 UDS诊断服务测试用例全解析(ResponseOnEvent_0x86服务) 作者:车端域控测试工程师 更新日期:2025年02月14日 关键词:UDS协议、0x86服务、事件响应、ISO 14229-1:2023、ECU测试 一、服务功能概述 0x86…

deepseek多列数据对比,联想到excel的高级筛选功能

目录 1 业务背景 ​2 deepseek提示词输入 ​3 联想分析 4 EXCEL高级搜索 1 业务背景 系统上线的时候经常会遇到一个问题,系统导入的数据和线下的EXCEL数据是否一致,如果不一致,如何快速找到差异值,原来脑海第一反应就是使用公…

TailwindCss的vue3安装使用

按照官网的安装教程,属性最后无法生效,这是自我改良版,添加了额外步骤,但是每次引入新的tailwindcss属性 需要重新跑一次项目 npm下载tailwindcss npm install -D tailwindcss npx初始化tailwind配置 npx tailwindcss init 此时根…

个人博客测试报告

一、项目背景 个人博客系统采用前后端分离的方法来实现,同时使用了数据库来存储相关的数据,同时将其部署到云服务器上。前端主要有四个页面构成:登录页、列表页、详情页以及编辑页,以上模拟实现了最简单的个人博客系统。其结合后…

Python----数据结构(单链表:节点,是否为空,长度,遍历,添加,删除,查找)

一、链表 链表是一种线性数据结构,由一系列按特定顺序排列的节点组成,这些节点通过指针相互连接。每个节点包含两部分:元素和指向下一个节点的指针。其中,最简单的形式是单向链表,每个节点含有一个信息域和一个指针域&…

夜莺监控发布 v8.beta5 版本,优化 UI,新增接口认证方式便于鉴权

以防读者不了解夜莺,开头先做个介绍: 夜莺监控,英文名字 Nightingale,是一款侧重告警的监控类开源项目。类似 Grafana 的数据源集成方式,夜莺也是对接多种既有的数据源,不过 Grafana 侧重在可视化&#xff…

什么是Embedding、RAG、Function calling、Prompt engineering、Langchain、向量数据库? 怎么使用

什么是Embedding、RAG、Function calling、Prompt engineering、Langchain、向量数据库? 怎么使用 目录 什么是Embedding、RAG、Function calling、Prompt engineering、Langchain、向量数据库? 怎么使用Embedding(嵌入)RAG(检索增强生成)Function calling(函数调用)Pr…

SQLMesh 系列教程5- 详解SQL模型

本文将详细介绍 SQLMesh 的 SQL 模型组成要素及其在实际项目中的应用。SQLMesh 是一个强大的数据工程工具,其 SQL 模型由 MODEL DDL、预处理语句、主查询、后处理语句以及可选的 ON VIRTUAL UPDATE 语句组成。我们将通过一个电商平台每日销售报告的实例,…

DeepSeek 接入PyCharm实现AI编程!(支持本地部署DeepSeek及官方DeepSeek接入)

前言 在当今数字化时代,AI编程助手已成为提升开发效率的利器。DeepSeek作为一款强大的AI模型,凭借其出色的性能和开源免费的优势,成为许多开发者的首选。今天,就让我们一起探索如何将DeepSeek接入PyCharm,实现高效、智…

从驾驶员到智能驾驶:汽车智能化进程中的控制与仿真技术

在汽车技术持续演进的历程中,人类驾驶员始终是一个极具研究价值的智能控制系统“原型”。驾驶员通过视觉感知、行为决策与操作执行的闭环控制,将复杂的驾驶任务转化为车辆的实际动作,同时动态适应道路环境的变化。这一过程不仅体现了高度的自…

Spring Boot项目的基本设计步骤和相关要点介绍

以下是一个关于Spring Boot项目的基本设计步骤和相关要点介绍,我们以一个简单的示例应用——员工管理系统为例进行说明: 一、项目概述 员工管理系统旨在实现对公司员工信息的有效管理,包括员工基本信息录入、查询、更新以及删除等功能。通过Spring Boot框架来快速搭建后端…

【Java】泛型与集合篇(一)

泛型与集合(一) 泛型泛型的核心作用泛型类型(类)定义与使用类型参数命名约定泛型方法定义与调用与泛型类的区别通配符上界通配符下界通配符有界类型参数类型擦除集合框架核心接口Collection 接口Map 接口Collection 接口操作的常用方法基本操作批量操作数组操作流操作方法L…

HarmonyOS组件之Tabs

Tabs 1.1概念 Tabs 视图切换容器,通过相适应的页签进行视图页面的切换的容器组件每一个页签对应一个内容视图Tabs拥有一种唯一的子集元素TabContent 1.2子组件 不支持自定义组件为子组件,仅可包含子组件TabContent,以及渲染控制类型 if/e…

华为FusionCompute虚拟化平台

一、华为FusionCompute虚拟化套件介绍 华为FusionCompute虚拟化套件是业界领先的虚拟化解决方案,能够帮助客户带来如下的价值,从而大幅提升数据中心基础设施的效率。 帮助客户提升数据中心基础设施的资源利用率;帮助客户成倍缩短业务上线周期…

使用apt-rdepends制作软件离线deb安装包

使用apt-rdepends制作软件离线deb安装包 除基础软件外,还要获取软件依赖包。 依赖包工具安装 apt-get install apt-rdependsapt-rdepends工具使用 使用apt-rdepends工具,递归方式分析软件依赖,下载软件包本体,和依赖包。制作时…