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.rhkb.cn/news/20883.html

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

相关文章

Mac 清理缓存,提高内存空间

步骤 1.打开【访达】 2.菜单栏第五个功能【前往】,点击【个人】 3.【command shift J】显示所有文件,打开【资源库】 4.删除【Containers】和【Caches】文件 Containers 文件夹:用于存储每个应用程序的沙盒数据,确保应用程序…

基于SpringBoot实现的宠物领养系统平台功能一

一、前言介绍: 1.1 项目摘要 宠物领养需求增加:随着人们生活水平的提高和对宠物养护意识的增强,越来越多的人选择领养宠物作为家庭的一员。这导致了宠物领养需求的显著增加。 传统领养方式存在问题:传统的宠物领养方式&#xf…

智慧能源管理新标杆:安科瑞EMS3.0解锁工业园区经济效益与环保双赢

智慧能源平台是一种集成分布式能源、储能系统、负荷管理和智能控制技术的综合能源管理系统。它能够实现能源的高效利用、优化调度和智能化管理,为用户提供稳定、经济、绿色的能源解决方案。工业园区作为能源消耗和管理的核心场景之一,对微电网能源管理平…

Spotify AI 技术(1)使用 TensorFlow 和 TF-Agents

介绍 我们的许多音乐推荐问题都涉及为用户提供有序的项目集,以满足用户在那个时间点的收听偏好和意图。我们根据以前与应用程序的交互来提供当前的推荐,抽象地说,由于我们不断向用户推荐内容,因此我们面临着一个连续的决策过程。 …

EasyExcel实现excel导入(模版上传)

目录 效果pom.xmlapplication.ymlcontrollerservice依赖类前台vue代码某个功能如果需要添加大量的数据,通过一条条的方式添加的方式,肯定不合理,本文通过excel导入的方式来实现该功能,100条数据导入成功85条,失败15条,肯定需要返回一个表格给前台或者返回1个错误excel给前…

基于Django快递物流管理可视化分析系统(完整系统源码+数据库+详细开发文档+万字详细论文+答辩PPT+详细部署教程等资料)

文章目录 基于Django快递物流管理可视化分析系统(完整系统源码数据库详细开发文档万字详细论文答辩PPT详细部署教程等资料)一、项目概述二、项目说明三、研究意义四、系统设计技术架构 五、功能实现六、完整系统源码数据库详细开发文档万字详细论文答辩P…

动态规划,复习

一.动态规划 1. 思路&#xff1a;每次递增序列结束都取最优解 class Solution { public:int findLengthOfLCIS(vector<int>& nums) {int ans -1,temp 1;for(int i 0;i<nums.size()-1;i){if(nums[i]<nums[i1]) temp;else{ans max(ans,temp);temp 1;}}ans…

【鸿蒙开发】第三十八章 ArkTS代码调试

debug启动调试attach启动调试等待调试使用断点检查变量使用调试器反向调试extension调试worker/taskpool调试Evaluate and logSmart Step Into 1 debug启动调试 如果需要设置断点调试&#xff0c;找到需要暂停的代码片断&#xff0c;点击该代码行的左侧边线&#xff0c;或将光…

个人简历html网页模板,科技感炫酷html简历模板

炫酷动效登录页 引言 在网页设计中,按钮是用户交互的重要元素之一。这样一款黑色个人简历html网页模板,科技感炫酷html简历模板,设计效果类似科技看板图,可帮您展示技能、任职经历、作品等,喜欢这种风格的小伙伴不要犹豫哦。该素材呈现了数据符号排版显示出人形的动画效…

Python深度学习环境配置(Pytorch、CUDA、cuDNN),包括Anaconda搭配Pycharm的环境搭建以及基础使用教程(保姆级教程,适合小白、深度学习零基础入门)

全流程导览 一、前言二、基本介绍2.1全过程软件基本介绍2.1.1 Pytorch2.1.2 Anaconda2.1.3 Pycharm2.1.4 显卡GPU及其相关概念2.1.5 CUDA和cuDNN 2.2 各部分相互间的联系和安装逻辑关系 三、Anaconda安装3.1安装Anaconda3.2配置环境变量3.3检验是否安装成功 四、Pycharm安装五、…

案例-18.文件上传-阿里云OSS-集成

一.分析 要想将阿里云oss集成到新增员工的功能中&#xff0c;必须要设计文件上传的接口UploadController。首先前端给接口上传接口需要接收请求的图片&#xff0c;然后接口再将图片上传到阿里云oss中存储起来&#xff0c;接着接口从阿里云oss中获取图片的url并返回给前端&#…

在Unity中用简单工厂模式模拟原神中的元素反应

1. 第一步创建3个脚本Factory&#xff08;反应工厂&#xff09;&#xff0c;Reactions&#xff08;具体反应&#xff09;&#xff0c;FactoryText&#xff08;测试反应的脚本&#xff09; 2.编写工厂脚本 using UnityEngine;// 定义一个元素反应的接口&#xff0c;所有具体的元…

Markdown 常用语法及示例

介绍 Markdown 是一种轻量级标记语言&#xff0c;广泛用于编写文档、README 文件、博客文章等。本文将介绍 Markdown 的一些常用语法&#xff0c;帮助你快速上手。官网地址1 1. 标题 Markdown 使用井号 # 来表示标题&#xff0c;井号的数量决定了标题的级别&#xff0c;最多…

Ubuntu USB耳机找不到设备解决

​ 一. 确定硬件连接 lsusb -t 插拔USB耳机&#xff0c;确定是否有USB识别到 二. 查看输出设备 sudo apt-get install pavucontrol pavucontrol 点击想要使用的输出设备后面的绿色选项 三. 输出设备没有USB耳机时调试 3.1 确认ALSA是否识别设备 列出ALSA播放设备&#…

企业软件合规性管理:构建高效、安全的软件资产生态

引言 在数字化转型的浪潮下&#xff0c;企业的软件使用方式日益多元化&#xff0c;涉及云端、订阅制、永久授权及浮动许可等多种模式。然而&#xff0c;随着软件资产的增多&#xff0c;企业面临着合规性管理的严峻挑战&#xff1a;非法软件使用、许可证管理不当、软件资产闲置…

el-table树状表格,默认展开第一个节点的每一层

效果如图 <template><el-table:data"tableData"style"width: 100%":tree-props"{ children: children, hasChildren: hasChildren }":expand-row-keys"expandRowKeys"row-key"id"expand-change"handleExpan…

C ASCII字符表示

1-1 ASCII字符表示 sprintf(buf, "A5%c%02d", SOFTWARE_VERSRION_1 A - 1, (U16)SOFTWARE_VERSRION_4); 在程序中通常会出现这样的写法&#xff0c;A对应的ASCII字符表示的含义是65&#xff0c;一直往后到95获得的支付是B是66&#xff0c;然后Z对应的是90&#xff…

【iOS】包大小和性能稳定性优化

包大小优化 图片 LSUnusedResources 扫描重复的图片 ImageOptim,压缩图片 压缩文件 优化音视频资源 &#xff0c;使用MP3 代替 WAV ffmpeg -i input.mp3 -b:a 128k output.mp3 视频 H.265&#xff08;HEVC&#xff09; 代替 H.264 ffmpeg ffmpeg -i input.mp4 -vcodec lib…

智能选路+NAT实验

智能选路NAT实验 1.拓扑 2.配置 1.配IP&#xff08;按图配&#xff0c;略&#xff09; 2.配真实DNS服务器 3.虚拟服务器 4.配置DNS透明代理功能 [USG6000V1]dns-transparent-policy [USG6000V1-policy-dns]dns t [USG6000V1-policy-dns]dns transparent-proxy en [USG6000…

【Linux网络-网络基础】TCP/IP五层(或四层)模型+网络传输的基本流程

一、TCP/IP五层&#xff08;或四层&#xff09;模型 TCP/IP 是一组协议的代名词&#xff0c;它还包括许多协议&#xff0c;组成了 TCP/IP 协议簇。 TCP/IP 通讯协议采用了 5 层的层级结构&#xff0c;每一层都呼叫它的下一层所提供的网络来完成自己的需求。 ❍ 物理层&#…