渗透测试

定义

渗透测试指的是,由专业安全人员模拟黑客,从其可能存在的位置对系统进行攻击测试,在真正的黑客 入侵前找到隐藏的安全漏洞,从而达到保护系统安全的目的。

开发人员通常并不是安全领域的专家,因此往往会缺少专业的安全知识,不 了解常用的系统攻击手段,从而导致他们并不能对安全相关的场景进行充分、客观的测试。

常用方法

  • 有针对性的测试,在测试人员完全了解系统内部情况的前提下开展
  • 外部测试,由内部的测试人员或者专业渗透测试团队,在假定完全不清楚系统内部情况的 前提下开展的
  • 内部测试
  • 盲测,由专业渗透测试团队在测试后期开展 的,通常会借助很多黑客攻击工具
  • 双盲测试

开展渗透测试的主要步骤

  1. 规划和侦察.包含了定义测试的范围和目标、初步确定要使用的工具和方法、明确需要 收集的情报(例如,网络和域名,邮件服务器),以更好地了解目标的工作方式及其潜在的安全漏洞
  2. 安全扫描。安全扫描包括静态分析和动态分析两个阶段
    • 静态分析阶段,是通过扫描所有代码来估计其运行时的方式
    • 动态分析阶段,在代码运行时进行扫描
  3. 获取访问权限。测试人员模拟黑客对应用程序进行网络攻击
  4. 维持访问权限。这个阶段的目的是,查看被发现的漏洞是否可以长期存在于系统中,如果漏洞 能够被持久化,那么在很长的一段时间内入侵者都可以对系统进行深入访问或进行破坏
  5. 入侵分析.分析得到的结果,汇总成详细的测试报告
    • 可以被利用的特定漏洞
    • 利用该漏洞的具体步骤
    • 能够被访问的敏感数据
    • 渗透测试人员能够在系统中不被侦测到的存在时间

常用工具

Nmap

进行主机检测和网络扫描的重要工具。它不仅可以收集信息,还可以进行漏洞探测和安全扫描,从主机发现、端口扫描到操作系统检测和IDS规避/欺骗

是渗透测试过程中最先要用到的,用来获取后续渗透测试过程中需要用到的系统基本信 息,比如IP和端口等

Aircrack-ng

Aircrack-ng 是评估Wi-Fi网络安全性的一整套工具。它侧重于WiFi安全的领域,主要功能有:网络侦测、数据包嗅探、WEP和WPA/WPA2-PSK 破解。

sqlmap

sqlmap是一种开源的基于命令行的渗透测试工具。它能够自动进行SQL注入和数据库接入,并且支持所 有常见并广泛使用的数据库平台,包括Oracle、MySQL、Microsoft SQL Server、SQLite、Microsoft Access、IBM DB2、FireBird、Sybase和SAP Max DB等,使用的SQL注入技术也几乎涵盖了所有的攻击 手段

Wifiphisher

Wifphisher是一种恶意接入点工具,可以对WiFi网络进行自动钓鱼攻击。

AppScan

AppScan是IBM公司的一款企业级商业Web应用安全测试工具,采用的是黑盒测试,可以扫描常见的Web应用安全漏洞。

渗透测试的收益

通过渗透测试,公司可以识别出主要漏洞,并决定修补漏洞的优先级,同时合理分配系统补丁安装的时 间,以确系统环境的安全性。

避免了安全漏洞,也就是避免了不必要的损失。因为,从安全漏洞中恢复出来,公司往往要花费巨大的 代价去补救公司和客户的损失,甚至可能因此吃官司。而,渗透测试能够很好地避免这类问题,帮助公 司树立良好的企业形象,因此赢得更高的信任度。

总的来说,我们应该按需选择适合自己产品的渗透测试方案,期间需要考虑到产品安全隐患和执行渗透 测试的成本之间的平衡。

文章链接 https://fangzongzhou.github.io/2021/01/25/计算机/软件测试/渗透测试/