用于网络安全的编程语言

信息安全 职业教育 源代码 职业
2021-08-31 06:28:14

我现在是一名测试员。我计划转向安全领域,例如 CEH 或 CISSP。但是许多人说,要成为一名出色的黑客,您至少需要精通一种编程语言。我已经知道一点Java。但我只是想知道哪种语言更接近网络安全和相关领域。那么我应该学习什么样的语言才能对我进入安全领域有所帮助?

4个回答

关于什么是最好的语言学习没有明确的蓝图。因此,我想提两个我(和许多其他人)认为是学习计算机安全的好语言的好选择。

卢阿

来自维基百科的 Lua 解释:Lua 是一种轻量级的多范式编程语言,设计为以“可扩展语义”为主要目标的脚本语言。

我提到 LUA 是一门好学的语言的原因是它是许多流行安全工具的脚本引擎。这是单独学习这门语言的一个很好的理由。一些语言包括:

  • NMAP(网络映射工具)
  • Snort(开源 IDS)
  • Wireshark(数据包嗅探工具)
  • Vim(非常流行的 unix 文本编辑器)
  • 思科 ASA(防火墙、IPS、VPN)
  • 网络服务工具(Apache、lightHttpd、FreePop)

附带说明:即使是暴雪的主要热门魔兽世界也支持游戏中的 LUA 脚本 :) 与可能相关的任何人。

Python

在我开始阅读《Gray Hat Python: Python Programming for Hackers and Reverse Engineers》这本书之后,我对 Python 有点偏见。我同意本书中的许多观点,为什么学习这种语言对黑客(通常称为安全专家 :))来说是件好事。

引自 Amazon Python 是一种很好的学习语言,因为:

它易于快速编写,并且具有使黑客高兴的低级支持和库。

能够与 Python shell 中的解释器即时交互也非常舒适。

编辑: HackerNews 对最喜欢/不喜欢的编程语言的民意调查的图形视图: 蟒蛇获胜

编辑 2: 来自Digininjas 民意调查

Language    Number  Percentage
Python  245 81%
Bash Scripting  241 79%
Ruby    127 42%
C   123 40%
Windows Powershell  111 37%
Batch Scripting 108 36%
PHP 107 35%
C++ 66  22%
Java    65  21%
Perl    57  19%
Other   57  19%
VB  29  10%
C#  26  9%
Lua 23  8%

编程语言和安全性之间没有那种联系,更好的看待它的方法是学习通用语言(因此 java 将是一个合理的起点),因为所有语言都有安全问题 - 你不妨看看在各种 Web 应用程序和平台上的安全问题,而不是深奥的东西。

了解网络协议是一个好主意,并且能够分析第 1-4 层的流量会有所帮助,但这与语言无关。

仔细阅读标记为专业教育的其他问题以获得更广泛的指导。

网络安全的某些部分涉及在发送和接收 TCP/IP 数据包时摆弄它们的小细节;为此,您需要能够在低级别拦截数据包,并发出手工制作的数据包(例如,在 Linux 下,这称为使用SOCK_RAW 套接字)。并非所有编程语言都为此提供可用的 API;有时需要了解 C 才能使用这些功能。

除此之外,任何可以轻松接收和发送任意字节的通用编程语言都对您有好处;Java 在这方面很好。

注意:我意识到这非常偏向于系统而不是通用安全性。安全是一个过程,涉及的不仅仅是技术。

您可以选择两种路线,不幸的是(恕我直言)都不包括 Java。

C 是一种非常好的系统语言。您可以使用 unix 和 linux 并深入挖掘 - 系统调用、内核空间、低级网络等。

另一条路线是脚本语言,它允许您快速将工具和程序粘合在一起,并在更高级别上进行编程。perl、python 和 ruby​​ 等大多数脚本语言都可以让您访问套接字级别的抽象。我偏向于 python,因为如果您需要性能或低级访问,您可以轻松地为它编写 C 模块。

现在来解决您问题中的谎言……成为一名出色的黑客超越了编程语言。成为一名伟大的黑客是一种心态。它包含质疑一切并能够创造性地解决问题。如果你能做到这一点,你将学习你需要的语言,因为你会自我导向它们。