渗透测试是指经授权对网络或主机进行攻击测试,以评估计算机系统安全性的一种评估方法。本文借鉴了当前渗透测试的常见方式,结合近年来人民银行信息系统开展渗透测试的实践经验,提炼了信息系统审计的渗透测试的思路和方法,并给出了相关建议。
近年来,随着信息系统在央行履职中的支持作用不断增强,央行信息系统逐渐向外部机构或互联网开放,其面临的入侵风险与日俱增。在信息系统审计中,如何运用各种可信安全工具对信息系统安全性进行渗透测试审计,是当前信息系统审计工作的一个尝试。
一、信息系统安全审计的4种方式
在近两年的信息系统审计中,审计人员已不单局限于传统看配置的检查方式,而是逐渐延伸到挖漏洞、看代码、查日志等多种审计方式。以下是信息系统安全审计的4种方式。
(一)配置检查(看配置)
配置检查是指分析操作系统、数据库、网络设备和中间件的配置文件,评估其是否安全。在传统信息系统审计中,对系统安全的审计通常指配置检查,而近年来对人民银行信息系统的审计,已通过程序化脚本逐步实现对操作系统、数据库和网络设备的自动化配置检查。配置检查的优点是标准化程度高,检查人员只须逐项核对标准,或使用脚本检查即可完成。但配置检查也存在难以评估的问题,并且在配置合规的情况下,由于固有漏洞的存在,信息系统仍可能存在安全风险。传统的配置检查已难以达到信息安全的要求。
(二)渗透测试(挖漏洞)
渗透测试是信息系统审计的重要环节。审计署和中国内部审计协会均对渗透测试方式进行了阐述。审计署《信息系统审计指南》提出工具检测方法:安全工具检测,即利用入侵检测、漏洞扫描等工具的监测结果进行分析评价。中国内部审计协会《内部审计具体准则——信息系统审计》提出“内部审计人员在充分考虑安全的前提下,可以利用可靠的信息安全侦测工具进行渗透性测试”。通过渗透测试,审计人员可以对配置检查发现的问题予以确认并评估影响,使审计结论更具说服力;还可以从攻击者的视角挖掘配置检查难以发现的问题,找出系统安全的薄弱环节,为内审部门对系统安全进行深层次的审计分析和预警提供新思路。
(三)业务逻辑漏洞挖掘和代码审计(看代码)
业务逻辑漏洞是指与业务逻辑相关的漏洞,如身份认证安全、业务一致性、业务数据篡改等漏洞。代码审计是指检查关键代码中的安全缺陷,以发现安全隐患。业务逻辑漏洞可通过黑盒测试发现,也可通过白盒测试(代码审计)发现。
(四)日志审计(查日志)
日志审计是指基于信息系统中的日志,检查内部人员的操作是否合规,并检查系统是否被外部成功攻击。对内而言,通过检查堡垒机日志、数据库操作日志、操作系统日志等,可以发现是否存在影响系统安全的非授权操作;对外而言,通过检查应用日志、Web日志等,可以检查是否有黑客曾经成功入侵信息系统,并获取数据。
当前,人民银行信息系统安全通常由科技部门、审计和第三方安全公司进行检查。配置方面,各种检查均有涉及,且较为成熟;挖漏洞方面,科技部门和安全公司通常借助安全工具进行检查,审计较少涉及;看代码方面,各项检查均较少涉及;查日志方面,科技部门和审计通常能检查内部访问日志和外部入侵日志,安全公司因保密所限通常只检查外部入侵日志。
由于在挖漏洞和看代码方面仍存在一定的检查盲区,近年来,在人民银行信息系统审计中,审计人员也尝试逐步固化渗透测试流程,并在个别项目中尝试代码审计,取得了一定进展。
二、信息系统安全审计中渗透测试的基本流程
本节参考渗透测试执行标准(Penetration Testing Execution Standard,PTES),并结合人民银行信息系统审计的实际情况,对审计中的渗透测试(含业务逻辑漏洞挖掘)流程进行介绍。
(一)前期交互
在前期交互中,确定渗透测试的范围、环境、使用的工具等,并提前告知,经授权后方可实施。其中,范围指需要测试的系统和设备,应全面覆盖所有子站和设备;环境指测试或生产环境,应尽量选择非工作时间在测试环境进行测试,并限制扫描频率,必要情况下可在生产环境进行验证;工具指测试用的硬件或软件,包括漏洞扫描设备或软件等,在生产环境中进行测试验证应选择可信的软件,防止工具带有病毒影响生产环境。
(二)信息收集
1.信息系统资产信息
收集所有服务的系统和设备,包括IP地址、域名和端口等。对内网的系统,可使用扫描工具收集所有在用IP和端口;对外网的系统,可以通过搜索引擎搜索指定网站的后台管理等敏感页面。
………………
三、渗透测试审计发现的问题及应对方法
(一)系统中间件漏洞问题
该类问题通常使用漏洞扫描工具发现,常见的漏洞包括旧版本Struts2存在的远程执行漏洞等。通常系统的核心主站安全建设较好,难以发现该类问题,而系统的FTP、邮件系统、后台管理等旁站,则容易因安全管控不严而产生遗漏。为应对该类问题,建议对信息系统所有资产进行漏洞扫描,确保不留遗漏。
(二)系统弱口令问题
该类问题通常可通过穷举弱口令、Hashcat等工具逆向密码表的方式发现,常见的漏洞包括操作系统、数据库和应用用户使用弱口令。审计过程中发现,由于应用使用的操作系统和数据库用户通常在系统上线时设置了初始口令,而后期因配置相对固定,口令不会变更,因此,应用相关用户更易存在弱口令问题。为应对该类问题,建议信息系统将应用使用的口令单独保存成配置文件,而非固化在代码中。
…………………
信息系统安全审计中的渗透测试研究 PDF 完整版下载(文字可复制):
https://www.aliyundrive.com/s/A15Ms4RVvNP 提取码: vv94