CBK-D5-安全测试与开发
安全评估与测试
构建安全评估和测试方案
安全测试
旨在验证某项控制措施是否正常运行。
包括自动化扫描、工具辅助的渗透测试、破坏安全性的手动测试。
渗透测试可以每年开展一次,以最大限度地降低费用并减小业务中断的影响。
仅简单执行测试是不够的,还必须仔细审查测试的结果,确保测试成功。
其他审查可依托安全测试工具自动执行,验证测试是否顺利完成,记录结果并在未出现重要发现时保持沉默。
安全评估
是指对系统、应用程序或其他待测环境的安全性进行全面审查。
主要成果是向管理层提交评估报告,报告包括以非技术性语言描述的评估结果,并往往以提高待测环境安全性的具体建议作为结论。
评估可由内部团队执行,也可委托在待评估领域具备经验的第三方评估团队进行。
NIST SP 800-53A描述了实施安全和隐私评估的最佳实践。
安全审计
内部审计
由组织内部审计人员执行,通常适用于组织内部。
审计负责人直接向总裁、首席执行官或其他类似的角色汇报。审计负责人也可直接向组织的董事会报告,
外部审计
通常由外部审计公司执行。
四大审计公司
####### 安永、德勤、普华永道、毕马威
第三方审计
由另一个组织或以另一个组织的名义进行的审计。
比如监管机构可依据合同或法律对被监管公司进行审计。执行审计的组织通常挑选审核员,并设计审计范围。
向其他组织提供服务的组织经常被要求进行第三方审计。
服务组织控制审计SOC
####### SOC1声明:评估可能影响财务报告准确性的组织控制措施。
####### SOC2声明:评估组织的控制措施,包括影响存储在系统中的信息的安全性CIA和隐私的。 其审计结果是保密的,根据保密协议对外共享。
####### SOC3声明:评估组织控制措施中会影响存储信息的安全性CIA和隐私。但是SOC3审计结果旨在公开披露。
####### I类报告:提供的审计员的意见仅涉及管理层提供的描述和控制措施的设计适用性。报告仅涵盖特定时间点,而不是一段持续的时间。视为文件审查,以书面形式检查为主
####### II类报告:进一步提供了审计员对控制措施运行有效性的意见。 实际确认了控制措施是否运行正常。涵盖更长时间,至少6个月的运行时间。不仅检查文档,还深入现场并验证控制功能的正常。
审计标准
在进行审计或评估时,审计团队应清除采用什么标准来评估组织。
信息和相关技术控制目标COBIT是一种开展审计和评估的通用框架。由ISACA负责维护。
国际标准化组织ISO还发布了一套与信息安全相关的标准。
####### ISO 27001-描述了建立信息安全管理系统的标准方法
####### ISO 27002-介绍了信息安全控制措施的更多细节。
####### 组织可以选择获得符合ISO 27001标准的官方认证。
开展漏洞评估
漏洞描述
安全社区需要一套通用标准,为漏洞描述和评估提供一种通用语言。NIST提供了安全内容自动化协议SCAP
SCAP组件包包括:
通用漏洞披露CVE:提供一种描述安全漏洞的命名系统
通用漏洞评分系统CVSS:提供一种描述安全漏洞严重性的标准化评分系统
通用配置枚举CCE:提供一种系统配置问题的命名系统
通用平台枚举CPE:提供一种OS、应用程序及设备的命名系统
可扩展配置检查表描述格式XCCDF:提供一种描述安全检查表的语言。
开放漏洞评估语言OVAL:提供一种描述安全测试过程的语言。
漏洞扫描
网络发现扫描
TCP SYN扫描、TCP Connect扫描、TCP ACK扫描、UDP扫描、Xmas扫描
常用工具是nmap
网络漏洞扫描
利用漏扫工具中数千个已知漏洞的数据库及相应测试,来确认每个系统是否受到漏洞数据库中漏洞的影响。经常会误报和漏报。
默认执行未经身份认证的扫描, 实施身份认证的扫描是另一种有效的方法可提高准确性,仅拥有系统只读权限进行读取待测系统的信息。
OWASP官网维护了完整的漏扫工具列表。OpenVAS开源扫描器也用的越来越多,无线网络进行定制化漏洞评估。常见工具是aircrack-ng,通过测试无线网络的加密算法和其他安全参数进行安全评估。
Web应用程序漏洞扫描
攻击者经常尝试使用SQL注入和其他攻击手段针对Web应用程序的安全设计缺陷攻击Web应用程序。
Web漏洞扫描器事专门检测Web应用程序中已知漏洞的工具。比如Nessus
有些情况下,需要满足合规性的要求,例如PCI DSS需要企业至少每年执行一次Web应用程序漏洞扫描,或安装专业的Web应用程序防火墙。
数据库漏洞扫描
安全人员扫描数据库和Web应用程序,以寻找影响数据库安全的漏洞。sqlmap是一种常用的开源数据库漏洞扫描工具,帮助安全专业人员检测Web应用程序的数据库漏洞。
漏洞管理工作流程
组织采用漏洞管理系统,应该形成一套工作流程来管理漏洞。包括检测、验证、修复。
漏洞修复可能包括:采用供应商提供的补丁、修改设备配置、执行规避漏洞的折中方法、安装Web应用程序防火墙、采取阻止漏洞利用的其他控制措施。
工作流程方法的目标是确保组织能有条不絮地检测和修复漏洞。
渗透测试
渗透测试过程通常包含以下几个阶段:规划阶段、信息收集和发现阶段、攻击阶段、报告阶段。经常使用Metasploit工具。
渗透测试可以是公司员工,也可以是公司聘请的外部顾问。通常分以下三种渗透测试
白盒渗透测试
灰盒渗透测试
黑盒渗透测试
渗透测试可能中断系统访问或损坏系统存储的数据,因此在测试规划期间明确指出规则,并从高管层获得充分授权,这点非常重要。
合规性检查
是被监管公司安全测试和评估计划的重要组成部分。
验证合规计划列出的所有控制措施是否正常运行并有效满足监管要求。
精明的组织创建并维护合规计划,记录每项监管义务,并将其映射到满足目标的明确的安全控制措施。定期执行合规性检查,避免不可预见的监管问题。
测试软件
代码审查与测试
是软件测试方案最关键的组成部分。在应用程序上线前,可发现应用程序在安全、性能、可靠性方面的缺陷,以免这些缺陷对业务运营产生负面影响。
代码审查
是软件评估的基础。也称同行评审
最正式的代码审查过程被称为范根检查法Fagan inspection
####### 1.规划
####### 2.总览
####### 3.准备
####### 4.审查
####### 5.返工
####### 6.追踪
大多数组织采用稍微宽松的代码审查流程,即同行评审方法
####### 开发人员在会议上与一个或多个其他团队成员走查代码
####### 高级开发人员执行手动代码审查,在将代码移植到生产环境之前签署所有代码
####### 在将代码移植到生产环境之前使用自动化代码审查工具检测常见的应用缺陷。