定期进行
6.1 审计策略
审计,对信息系统内部安全控制的系统性评估
信息系统的安全审计时对特定范围的人、计算机、过程和信息的各种安全控制所实施的一个系统性评估
监管或合规要求,信息系统架构的重大变化,或者是组织面临威胁的新发展等方面都会驱动审计的发生
审计的范围应与业务经理协调后确定
信息系统的安全审计流程:确定目标、让合适的业务部门领导参与、确定范围、选择审计团队、计划审计、执行审计、记录结果、将结果传达给合适的领导
任何审计的最终期望状态:审计结果有效地传达给目标受众
内部审计
优点:熟悉组织的内部运作、评估工作更灵活、更容易发现信息系统中的脆弱性
缺点:运用其他方法来保护和利用信息系统的“发现能力”方面较弱、存在利益冲突的可能性(应考虑到政治因素和团队动力)
第三方审计
优点:带来新知识、不了解目标组织的内部动力和政治
缺点:成本高
需签署保密协议NDA
自我审计和独立审计的本质区别是 客观性
SAS70是一项由第三方审计机构进行的内部控制措施审计,以评估服务性组织的内部控制
服务性组织控制审计标准框架SOC Service Organization Controls
服务性组织是提供第三方服务的组织,eg保险和医疗索赔处理商、信托公司、托管数据中心、应用服务提供商等
SOC1:用于财务控制
SOC2:适用于信任服务(安全性、可用性、保密性、过程完整性和隐私)详细数据
SOC3:适用于信任服务,细节较少、可用于一般公众性目的,通常用作批准证明,被放在服务提供商的网站和营销材料上
6.2 审计技术控制
技术控制是通过使用IT资产实现的安全控制
1、脆弱性测试
执行脆弱性测试之前,管理层需拟定一份书面协议,可防止测试人员因为该项工作被起诉
黑盒测试:被测试的系统视为完全不透明,模拟外部攻击者,可能不会覆盖所有的内部控制
白盒测试:审计师完全了解系统的内部工作原理,可锁定特定的内部控制和功能,对系统评估更完整,但无法代表外部攻击者的行为
灰盒测试:介于其他两种方法之间,内部工作信息有一部分提供给测试团队
等价类划分,一种典型的黑盒测试方法,解决如何选择适当的数据子集来代表整个数据集的问题,将程序所有可能的输入数据(有效的和无效的)划分成若干个等价类,然后从每个部分中选取具有代表性的数据当做测试用例进行合理的分类
2、渗透测试
模拟攻击一个网络及其系统的过程,目的是评估组织机构抵御某种攻击的能力,以及暴露环境中存在的任何弱点。
结果应以报告形式提交给管理层,说明脆弱性和严重程度,并给出建议
安全人员应获得包含授权测试范围的授权书是渗透测试的第一步
渗透测试步骤:
发现(搜集和收集目标相关信息)、枚举(端口扫描和资源标识方法)、脆弱性映射(在确定的系统和资源中标识脆弱性)、利用(尝试利用脆弱性进行未授权访问)、向管理层报告
盲目测试:评估人员只能利用公开可用的数据,网络人员知道要进行测试
双盲测试(隐蔽评估):安全人员不会收到测试通知的盲测,能够评估网络的安全级别以及员工的响应能力、日志监控和上报流程,更加现实说明发起某种攻击的成功或失败概率
漏洞扫描包括对网络上活动主机的识别、对操作系统的识别、主机上处于活动状态的和易攻击的服务、识别错误配置的设置、测试主机上应用程序的使用/安全策略合规性、建立渗透测试的基础。
利用漏洞的最终目的是获取被测系统的最高权限,提升权限的方式:
(1)纵向提权:如果低权限用户能够获得高权限角色的权限
(2)横向提权:获得同级别角色的权限
3、战争拨号攻击
允许攻击者和管理员拨打大量的电话号码,搜索可用的调制解调器(即未授权的调制解调器)
对策:授权机制
4、其他脆弱性类型
(1)内核缺陷 :及时安装安全补丁(经过充分测试)
(2)缓冲区溢出:输入超出程序被分配空间的存储限额
良好的编程实践和开发、自动化源代码扫描器、强类型语言
(3)符号链接
编写程序和特定的脚本,确保无法绕开文件的完整路径
(4)文件描述符攻击:
良好的编程实践和开发、自动化源代码扫描器
(5)竞态条件:eg打开临时文件,但没有首先确保未授权用户或进程无法读取或写入这些文件,TOC/TOU攻击
良好的编程实践和开发、自动化源代码扫描器、应用程序安全测试
(6)文件和目录许可
文件完整性检查器
5、事后检查
6、日志审查
通过检查系统的日志文件,检测各种安全事件或验证各种安全控制的有效性
确保所有联网的设备时间都标准化
RFC5905网络时间协议NTP(Network Time Protocol):用于在联网设备之间同步计算机时钟的工业标准,时间本身是在端口123上以携带着64位时间戳的UDP数据报形式被发送
第0层包括有各种高度准确的时间源,eg原子钟、GPS
防止日志被篡改:远程日志、单工通信、复制、一次性写入介质、加密散列链
安全信息和事件管理器SIEM:实现事件数据的集中、关联、分析和保留,以便生成自动警报系统
7、综合事务 Synthetic transaction
脚本生成事务,系统地测试关键服务的行为和性能
真实用户监控RUM(Real User Monitoring):采用被动方式监控真实用户与web应用程序或系统的交互,使用的是真人不是脚本的命令
综合事务是可预测和非常规则的,不必等待用户变得不满意或遇到问题才开始处理
RUM和综合事务是实现相同目标的不同方式
8、误用案例测试
用例是用于描述信息系统中所需功能的结构化场景,外部角色需要在系统上完成的给定目标的事件,使用统一建模语言UML(Unified Modeling Language)进行概括和图形化描述。
误用案例包括各种威胁角色和他们想要在系统上执行的任务用例
9、代码审查
由代码作者以外的人执行 遵循编码标准
防御性编程时所有软件开发操作应采用的最佳实践,eg将所有输入都视为不可信
10、接口测试
接口是用于系统和用户之间的数据交换点
被称为集成测试的特例,评估系统的不同部分彼此之间如何进行交互
API和GUI都涉及,API是系统和它调用库之间的交换点,GUI是系统和用户之间的交换点
也包括物理接口
6.3 审计管理控制
管理控制通常主要通过策略和流程来实施
1、账户管理
盗用现有特权账户:使用强身份验证以及通过让管理员执行特定任务时使用特权账户予以消减
创建新的特权账户
提升常规用户账号的权限
(1)添加账户
可接受的使用策略AUP(Acceptable Use Policy):规定组织认可的雇员对信息系统的适当使用行为
修改账户、暂停账户
2、备份验证
评估数据能否在需要时保持可用的方法
(1)数据类型
用户数据文件:确保根据所有适用的政策、法规和法律得以持续备份
数据库:定期适用一台测试数据库的服务器,验证数据库能否从备份中恢复
邮箱数据:邮件服务器设置的任何适当备份机制都应有助于电子发现的合规性
虚拟机快照的备份策略:恢复几乎是即时的
(2)验证
挑战出现在验证用户数据的备份上
对数据备份的验证,应当集中评估的是:在威胁建模和风险管理过程中,组织应对所识别出威胁的响应能力
3、灾难恢复和业务连续性
业务连续性用于确保重要业务流程不受影响
灾难恢复是在灾难性事件后恢复信息系统
(1)测试和修订业务连续性计划
包含灾难恢复计划的业务连续性计划因为环境不断变化而需要定期被测试,测试和灾难恢复演练应当至少每年进行一次
演练可论证公司能否从灾难中恢复过来
几种不同类型的演练
核查性测试(桌面检验测试):BCP副本被分发至不同的部门和职能区域接受审查,使每个职能经理对计划进行审核
结构化的排练性测试:各部门或职能区域的代表聚在一起对计划进行检查,以保证准确性
模拟测试:根据一个特定的场景练习执行灾难恢复计划
并行测试:用于确保系统在异地备用设施中能发挥功能,某些系统需要移动到备用场所并开始进行处理,处理的结果和原场所进行的正常处理结果进行比较
全中断测试:对正常业务干扰最大,将原始站点关闭并将业务处理转移到备用站点完成,需要获得高级管理层的批准
(2)维护计划
将计划整合到组织机构变更管理过程
(3)BCP生命周期
4、安全培训和安全意识培训
安全培训通常是提供给安全人员,而安全意识培训提供给组织的每个成员
社会工程:网络钓鱼、鱼叉式网络钓鱼(针对特定个人或群体的情况)、捕鲸(目标是高级管理者)、冒充
上网安全、数据保护(DLP数据丢失防护阻止泄漏和识别恶意或无意地暴露敏感信息的个人)、文化
5、关键绩效和风险指标
关键绩效指标KPI(Key Performance Indicators):衡量目前情况的进展程度
ISO 27004概述了衡量安全控制和过程性能的流程
关键风险指标KRI(Key Risk Indicators):衡量未来情况会差到什么程度,衡量一项活动的风险值,以便领导层能够对该活动作出明智的决定 当前与风险偏好的关系
关键风险指标用于告诉负责风险管理的人一项活动的风险有多大,以及变化对该风险状况的影响有多大。确定关键风险指标并对其进行监控,有助于在其生命周期的早期识别高风险领域。
单一损失预期SLE(Signle Loss Expectancy):潜在的货币损失,损失和威胁发生可能性的乘积
6.4 报告
显示投资回报率ROI(Return On Investment)的方法:用具体金额来量化那些被推荐的可能挽救公司的变更
6.5 管理评审
高级组织领导层的正式会议,用于确定管理系统是否有效地实现其目标
做出战略决策
必须包括关键决策者
定期进行
审查的主要输入是内外部相关的审计结果、前一次管理评审的未解决问题和执行项目的清单、客户的反馈
PDCA模型
错题总结:
1、
TCP和UDP端口137-139用于NetBIOS服务,445用于NetBIOS服务活动目录。TCP 1433是Microsoft SQL的默认端口
支持网络的打印机通常通过TCP 515和9100提供服务
2、审计技术控制
(1)用于设计新的软件测试和确保测试质量的方法:突变测试以一些小的方式修改程序,然后测试该突变体,以确定它是否正常运行或是否失败。该技术用于设计和测试通过突变的软件测试
(2)测试覆盖率分析通常用于洞察测试覆盖应用程序的用例集的程度。
(3)源代码检查 检查程序的代码是否有bug
(4)模糊测试输入无效的输入
(5)代码评审报告可能作为源代码评审的一部分生成。
(6)测试一个系统如何被误用,或误用测试,关注的是那些不是组织所希望的行为,或者与系统或应用程序的正确功能相反的行为。
(7)用例测试用于验证所需的功能是否有效。
(8)动态测试用于确定代码如何处理随时间变化的变量
(9)回归测试是一种功能或单元测试,用于确保更改不会带来新问题,防止问题的再次发生,测量缺陷复发率
(10)非回归测试检查更改是否具有预期的效果
(11)烟雾测试专注于影响关键功能的简单问题,冒烟测试是在每日构建版本建立后,对系统的基本功能进行简单的测试,强调程序的主要功能进行验证,也叫版本验证测试、提交测试
(12)代码覆盖测试 标准函数、语句、分支、条件
(13)Fagan测试是一种详细的代码评审,它通过计划、概述、准备、检查、返工和后续阶段进行。
web应用负向测试:输入范围外的值来判断系统的反应
3、安全工具
(1)TCP端口443通常表示HTTPS服务器。Nikto是有用的漏洞扫描web服务器和应用程序。BurpSuite,Wapiti都是web应用程序漏洞扫描器
(2)fuzzer是用于为应用程序提供无效或意外输入的工具,用于测试漏洞,如格式字符串漏洞、缓冲区溢出问题和其他问题
(3)OpenVAS是一个开源的漏洞扫描工具,它将向Susan提供一份漏洞报告,Susan可以通过远程的、基于网络的扫描来识别这些漏洞
(4)Nmap是一个开源的端口扫描器
(5)nessus漏洞扫描器 闭源
(6)Metasploit是一个开发包,旨在帮助渗透测试人员。使用Metasploit的测试人员可以利用已经创建的已知漏洞,或者使用该工具创建自己的漏洞。虽然Metasploit提供了对一些漏洞扫描功能的内置访问,但使用Metasploit的测试人员主要应该执行可利用漏洞的实际测试
(7)Ettercap是一个中间人攻击工具,THC Hydra是一个密码蛮力工具。
(8)在渗透测试的信息收集和发现阶段,测试人员将收集目标的信息。Whois可以提供有关组织的信息,包括IP范围、物理地址和员工联系方式。
4、SOC
SOC3用于发布
5、WPA2 enterprise mode对用户采用RADIUS认证,不采用预共享PSK密钥。
这意味着密码攻击更有可能失败,因为对给定用户的密码尝试可能导致帐户锁定。WPA2加密不会阻止密码攻击,而且WPA2的预共享密钥模式是试图找到密钥的密码攻击的专门目标。
6、fuzzer分类
Generational分代模糊依赖于应用程序输入的模型,并基于这些信息进行模糊攻击。
Mutation基于突变的fuzzers有时被称为“哑”fuzzers,因为它们只是突变或修改现有的数据样本,以创建新的测试样本。
7、备份
检查日志、使用散列来验证日志是否完整,以及执行定期测试
8、MTD
MTD是最大可容忍停机时间,验证它只会告诉在不产生重大业务影响的情况下,系统可以离线多长时间
9、日志
Windows系统以Windows本机日志格式生成日志。要发送syslog事件,Windows系统需要一个辅助应用程序或工具。企业无线接入点、防火墙和Linux系统通常都支持syslog。
网络时间协议(NTP)可以确保系统使用相同的时间,允许在集中式日志记录基础设施中对日志进行时间排序。Syslog是系统将日志发送到日志服务器的一种方式,它不会解决时间排序问题。
10、监控
合成监视使用模拟或记录的事务来监视响应时间、功能或其他性能监视中的性能变化。
被动监控使用跨端口或其他方法来复制流量并实时监控它。
被动监控只在问题发生后才有效,因为它需要实际流量。综合监控使用模拟或记录的流量,因此可用于主动识别问题。合成监视和被动监视都可以用于检测功能问题。
11、路径泄露、本地文件包含和缓冲区溢出都是web漏洞扫描器可能发现的漏洞
web漏洞扫描器不能发现竞态条件攻击
12、安全内容自动化协议SCAP(Security Content Automatin Protocol):用于自动化漏洞管理、评估和条款符合检测的一套标准。美国国家漏洞数据库NVD是美国政府为安全内容自动化协议制定的知识库
SCAP协议组成:
(1)通用漏洞披露CVE (Common vulnerability and exposure)数据库为识别安全漏洞提供了一致的参考。
(2)通用配置评估CCE
(3)通用平台评估CPE(Common Platform Enumeration),组件提供了一种一致的方式来引用操作系统和其他系统组件
(4)CVSS通用漏洞评分系统,包括指标和计算工具的可利用性,影响,如何成熟的利用代码,以及如何补救漏洞,以及针对用户的独特需求得分的方法漏洞。
(5)可扩展配置检查表说明格式(XCCDF)用于以标准化的方式创建安全检查表
(6)开放脆弱性和评估Language (OVAL)是用来描述系统安全状况的,脆弱性评估的步骤
脚本检查引擎(Script Check Engine, SCE)旨在使脚本能够与安全策略定义互操作
通用弱点枚举(CWE)组件有助于描述软件缺陷的根本原因
13、用于审计的标准
COBIT、SSAE-18、ISO27002
ITIL,最初代表IT基础设施库,是一组实践IT服务管理,通常不用于审计
14、安全审计过程
确定目标、涉及正确的业务单位领导、确定范围、选择审计团队、计划审计、执行审计、记录结果
15、漏洞扫描通常涉及网络上主动主机的识别、错误配置设置的识别、操作系统的识别