网络安全是保护网络、系统和程序免受数字攻击的做法。据估计, 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 应用程序、网络和计算机系统创建安全工具。

网络安全是收入最高的科技行业之一,预计只会增长,为那些有资格的人提供巨大的机会。

如果对Python有兴趣,想了解更多的Python以及AIoT知识,解决测试问题,以及入门指导,帮你解决学习Python中遇到的困惑,我们这里有技术高手。如果你正在找工作或者刚刚学校出来,又或者已经工作但是经常觉得难点很多,觉得自己Python方面学的不够精想要继续学习的,想转行怕学不会的, 都可以加入我们,可领取最新Python大厂面试资料和Python爬虫、人工智能、学习资料!微信公众号【Python大本营】等你来玩奥~

网络安全 Python 编程指南相关推荐

  1. 《树莓派Python编程指南》——2.2 一个Python游戏:猫和老鼠

    本节书摘来自华章计算机<树莓派Python编程指南>一书中的第2章,第2.2节,作者:(美) Alex Bradbury Ben Everard更多章节内容可以访问云栖社区"华章 ...

  2. 《树莓派Python编程指南》—— 1.3 树莓派快速指南

    本节书摘来自华章计算机<树莓派Python编程指南>一书中的第1章,第1.3节,作者:(美) Alex Bradbury Ben Everard更多章节内容可以访问云栖社区"华章 ...

  3. 《树莓派Python编程指南》——2.3 小结

    本节书摘来自华章计算机<树莓派Python编程指南>一书中的第2章,第2.3节,作者:(美) Alex Bradbury Ben Everard更多章节内容可以访问云栖社区"华章 ...

  4. 树莓派python编程读取电压_《树莓派Python编程指南》——3.2 在结构体中存储值-阿里云开发者社区...

    本节书摘来自华章计算机<树莓派Python编程指南>一书中的第3章,第3.2节,作者:(美) Alex Bradbury Ben Everard更多章节内容可以访问云栖社区"华章 ...

  5. 学习大数据分析python编程指南

    每个人都喜欢Python.如果您打算开始从事数据科学事业,我们可以肯定Python在您心中已经占有特殊的位置.它直观且易于在任何平台上运行,并且具有大量令人惊叹的库和工具.与其他编程语言相比,Pyth ...

  6. 如何在树莓派上进行python编程_《树莓派Python编程指南》怎么样_目录_pdf在线阅读 - 课课家教育...

    计算机已经不再只是用来工作的方盒子.任何拥有一个可编程处理中心的东西都可以称作计算机.游戏终端.智能手机.全球卫星定位系统(GPS)单元.平板电脑以及其他许多令人难以置信的设备都说明了这一点.它们都是 ...

  7. 树莓派Python编程指南--第一章(起航--启动和运行)

    2019独角兽企业重金招聘Python工程师标准>>> 1.1 组装好你的树莓派 组装工作之后再讲述 控制二极管发光及关闭 组装完成后,我们开始第一个例子:控制二极管发光及关闭的小程 ...

  8. python 转百分比_编程要从娃娃抓起,北乔治亚大学教授的python编程指南在此

    为什么孩子要学#python# 1 未来编程技能将会成为每个人都必备的基本技能 2 编程可以帮助孩子们培养逻辑思维能力和抽象思维能力.#教孩子学编程# 3 为了使计算机能够理解人的意图,孩子就必须要将 ...

  9. 编程要从娃娃抓起,北乔治亚大学教授的python编程指南在此

    为什么孩子要学#python# 1 未来编程技能将会成为每个人都必备的基本技能 2 编程可以帮助孩子们培养逻辑思维能力和抽象思维能力.#教孩子学编程# 3 为了使计算机能够理解人的意图,孩子就必须要将 ...

  10. linux环境下python编程指南,在Linux系统中搭建Python编程环境

    Linux系统是为编程而设计的,因此在大多数Linux计算机中都默认安装了Python. 1. 检查Python版本 在系统中运行应用程序Terminal(如果是Ubuntu,可按Ctrl+Alt+T ...

最新文章

  1. 从数据中心基础设施的视角来看 Facebook 机器学习的应用
  2. jdk安装教程_在JDK 12精简数字格式中使用最小分数数字
  3. Oracle数据库查看表空间sql语句、查看Oracle数据库表空间剩余 、修改表空间、库备份
  4. Spring-data-redis 反序列化异常
  5. ITCAST视频-Spring学习笔记(使用JDK中的Proxy技术实现AOP功能)
  6. 6 张图带你彻底搞懂分布式事务 XA 模式
  7. [转]c++ new带括号和不带括号
  8. python读取文件with open_python 文件读写操作open和with的用法
  9. 使用Synergy多台电脑共享键盘鼠标和剪贴板
  10. java 交换两个数的值(临时变量,加减,异或)
  11. javascript中依赖属性(Dependency Property)的实现
  12. 使用spring jdbc的batchUpdate功能提高性能
  13. 程序员所要具备的基本素质
  14. C++之构造函数和类型转换探究
  15. Centos7 linux 卸载自带安装的jdk 并yum自动安装jdk1.8
  16. html css手机端响应式登录页面
  17. 关于收发邮件中的一些概念解释(收件人 抄送人 密送人 回复 回复全部)
  18. python客户端开发自行车租赁系统_Python数据可视化——共享单车数据分析
  19. 北京联通光猫WO-36(HG220GS-U)改为桥接模式
  20. 本地启动本地mysql_通过本地化启动并运行

热门文章

  1. STC89C52单片机蜂鸣器介绍以及《卡农》歌曲代码示例
  2. Ubuntu 20.04 配置vim编辑器
  3. linux卸载java rpm_详解Linux中查看jdk安装目录、Linux卸载jdk、rpm命令、rm命令参数...
  4. 基于 Spring Boot + Vue.js + MySQL 的 QQ 登陆实战
  5. 【数学建模算法汇总】
  6. IDEA 配置Java环境
  7. [转载]数字全息与计算全息
  8. 用matlab还原全息图像,一种全息再现图像的零级像消除方法与流程
  9. Spring揭秘 读书笔记
  10. DOA算法1:MUSIC算法(二)