Product SiteDocumentation Site

第 14 章 安全

14.1. 定义安全策略
14.2. 防火墙或者包过滤
14.2.1. Netfilter 行为
14.2.2. iptablesip6tables语法
14.2.3. 创建规则
14.2.4. 每次启动时加载规则
14.3. 监督:预防,检测,威慑
14.3.1. 使用 logcheck 监视日志
14.3.2. 监视行为
14.3.3. 侦测变化
14.3.4. 侦测入侵(IDS/NIDS)
14.4. AppArmor 简介
14.4.1. 原理
14.4.2. Enabling AppArmor and managing AppArmor profiles
14.4.3. 创建新的配置文件
14.5. SELinux 简介
14.5.1. 原理
14.5.2. 设置 SELinux
14.5.3. 管理 SELinux 系统
14.5.4. 适应规则
14.6. 其他安全相关事项
14.6.1. 网页应用程序的内在风险
14.6.2. 知道预期什么
14.6.3. 明智地选择软件
14.6.4. 将机器作为整体管理
14.6.5. 用户是参与者
14.6.6. 物理安全
14.6.7. 法律责任
14.7. 处理被攻陷的机器
14.7.1. 探测并观察黑客入侵
14.7.2. 把服务器下线
14.7.3. 保留所有可以作为证据的东西
14.7.4. 重新安装
14.7.5. 法医分析
14.7.6. 重构攻击场景
一个信息系统根据其使用环境的不同可能具有不同等级的重要性。某些情况下,对公司性命攸关。因此,必须保护其免受各种风险。评估这些风险,定义并执行保护措施总称为“安全过程”。

14.1. 定义安全策略

“安全”是一个涵盖很宽泛的概念,工具和方法,没有哪个是万用的。在其中做出选择,需要确切的知道你的目标是什么。保护系统从回答几个问题开始。急匆匆的实施随机的工具会把安全风险转移到错误的方向。
因此,首要的事情是确定目标。从下面的问题开始,是逐渐确定目标的好方法:
  • 什么 是要保护的?要保护计算机还是要保护数据,其策略是不同的。如果是后者,还要知道保护哪些数据。
  • 我们试图防止什么?机密数据泄露?意外数据丢失?服务中断而导致的收入损失?
  • 同样,试图防止?防范正常用户的输入和防止有预谋的攻击者,其安全措施是大不相同的。
术语“风险”通常用来涉及这三个因素的综合:保护什么,防止发生什么,谁会让它发生。三个问题的答案就塑造了风险。针对这种风险模型,就可以构建安全策略,并通过具体行动实施策略。
额外的限制也值得考虑,它们可以限制可用策略的范围。我们想要在多大程度上保护一个系统?这个问题会对实施策略产生重大影响。答案常常仅仅以金钱成本来定义,但是也应该考虑其他因素,例如强加给系统用户的不便或者性能降低程度。
一旦风险成型,就可以考虑开始设计实际的风险策略了。
多数情况下,信息系统可以分割成一致独立的子系统。每个子系统有自身的需求和限制,这样可以单独评估每个风险和设计安全策略。一个需要谨记的原则是简短明晰的周界要比漫长而曲折的前沿容易定义。网络结构也应相应设计:敏感服务应集中在少数几个机器上,而且这些机器只能通过极少数检查点访问;保护这些检查点要比隔离所有敏感机器与外部世界简单。在这些点上,网络过滤器(包括防火墙)的作用就显而易见了。过滤器可以用专门的硬件,但是更为简单和复杂的解决方案是使用软件防火墙,例如在 Linux 内核中集成的。