Programming 编程

写一组让计算机执行任务的指令的过程。

为什么 Security 需要编程

  • 自动化重复任务 —— 一次扫描 500 个 IP 不能手动
  • 写自定义工具 —— 现成工具不够时自己造
  • 看懂 恶意软件 —— 逆向分析需要懂代码
  • 写 PoC —— 演示漏洞的可利用性
  • IDS 规则 —— 部分 IDS 规则就是代码片段
  • CI/CD 安全集成 —— 把安全扫描嵌进开发流程
  • 看懂源代码漏洞 —— Code Review 是漏洞的主要发现途径

Security 行业最常用的语言

语言用途
Python最广用,写脚本/工具/PoC,几乎是 Security 的事实标准
Bash / PowerShell系统管理、批处理日志
Go现代工具开发(很多新 security 工具用 Go 写)
C / C++底层、内核、逆向、漏洞利用
JavaScriptWeb 安全、浏览器自动化
SQLsql
Assembly逆向工程、漏洞分析
Rust现代化系统编程,内存安全

不同 Security 岗位的编程深度需求

  • SOC Analyst —— Python 脚本水平够用
  • Pen Tester —— Python + Bash + 一点 PowerShell
  • Malware Analyst —— C / Assembly + 逆向工具
  • Security Engineer —— 全栈,跟开发同等水平
  • Red Team —— 各种语言都得碰
  • Researcher —— 深入到底层,自己造工具

编程也是 Technical Skills 的核心

不写代码也能做 Security,但有代码能力的天花板高得多。会用 Wireshark 是工具用户,能写出 Wireshark 插件是工程师。