《不花钱解决网络安全问题》摘记
这一系列文章是阅读《Secure Your Network for Free: Using NMAP, WIRESHARK, SNORT, NESSUS, and MRTG》时的摘要记录,并非原文翻译,仅供学习者参考。如果对部分技术内容的细节感兴趣,可以查阅原书或其他相关技术讨论文章。
第三章 保护网络资源
“内松外紧”式的网络管理策略与“深度防御”原则仍有较大差距,内网中的重要网络资源,如服务器和工作站,其相比其他设备往往具有更重要的作用,将其不加防护的置于内网仍然会带来很大的安全隐患。优秀的“深度防御”应该即包含边缘防护(如防火墙和入侵检测系统等)策略,又包含内网防护(如内网防火墙)策略。
实施基本的加固策略
所有通用操作系统在安全防护方面都比理想情况要弱一些,这是由其希望支持最广泛的应用场景的设计初衷决定的,也是无法避免的。对于专用型操作系统,这一弊病可以得到有效的缓解。根据专用型操作系统的目标应用场景,可以相对简单的设计并实现具有很好效果的安全防护策略。然而,对于各种应用环境,有一些加固的共同策略。其中的有些高级策略在具体执行时会因具体情况而变,而这些也是当你针对面临的情况设计具体防护策略时都需要逐一落实解决的。
- 定义策略:进行防护强化的首要任务是明确“安全”的具体目标和标准。通常情况下,好的策略和标准应该可以为解决如下问题。对于较大的机构,可以针对其中的子部门或特定资产区域制定相应的细则。
- 数据分类:为了定义数据保护的具体方案,首先需要进行数据分类/分级。依据分类/分级标准,可以制定相应的防护策略。
- 信息保密:根据信息保密的要求制定相应的隐私保护、加密、授权和认证等策略。
- 信息可用性:根据可用性要求制定数据的冗余存储和访问机制。通常也会提出对于硬件设备的要求,例如互备设备、多路网络、磁盘阵列、集群、失效转移、备用设备和UPS等方面的要求。
- 物理安全:制定相关策略和标准以管理设备的接入。
- 访问控制:在“逻辑访问”方面,防火墙是比较通用的访问控制设备。“物理访问”的控制更加重要,因为理论上讲只要可以物理接入一个设备,就可以完全的访问整个系统。这是因为在系统设计中,通常会以物理接入作为系统访问的边界,允许任何可以获取物理接入的用户有办法对系统进行完全的操作。举例来说,当你可以物理接入一台服务器,你可以通过 Linux 启动并编辑硬盘上的原始数据,以重置管理员密码。对硬盘数据加密是一种针对这一侵入方法的加固方式。这类情况也是当你制定加固策略时需要谨慎考虑并明确具体执行方案的内容。
- 用户认证:“用户名-密码”是较为常见的用户认证方式。不管采用什么方式,用户认证的目的是要确认当前正在获取访问权限的操作者是其所声明的用户。“双重认证”是采用两种认证方式加强安全性的方法。
- 访问授权:“访问授权”的目的是准确限定获取访问权限的范围,即可以访问哪些系统内容,可以包含在文件级别的授权或是系统级别的授权。“访问授权”的原则应该是“最低权限原则”。
- 审计:审计是对系统内发生的行为进行监测,以报告或记录异常行为。
加固 Windows 系统
系统安全性与系统可用性之间存在一定的矛盾关系,需要在设计加固策略时加以平衡。在了解系统当前的配置和安全情况的基础上,可以考虑以下几个方面的加固手段。
- 用户和用户组:将用户分组并设定每组的访问权限。1)Windows 下的管理员账号具有特殊的权限,其他被加入管理员组的账号并不能获得与管理员账号的同等权限。因此管理员账号也是 Windows 系统被攻击的首要目标。虽然不能删除管理员账号,但是可以更改名字以减少被攻击的风险。一种聪明的加固策略是将默认的管理员账号 Administrator 改名,并创造一个权限非常小的账号,命名为 administrator 。更进一步的,可以要求所有的管理员组账户仅用于管理操作,而不用于日常操作,从而减少管理员组账号泄漏的风险,并有助于提高审计效率。2)另一个比较简单的加固策略是禁用访客用户。3)Windows Standard User Analyzer 可以帮助组织一个标准用户运行需要管理员权限的程序。
- 文件访问控制:在文件系统下为文件设定针对各用户和用户组的访问权限。
- 更多操作:可以参考 Windows 官方的加固建议,总结来看包括以下内容。1)删除不必要的软件;2)禁用不需要的服务和后台进程;3)及时安装系统和软件补丁;4)为用户和用户组配置所需的最小权限;5)设置尽量紧致的系统安全参数;6)配置网络仅支持所需的最小访问权限。
- 使用微软组策略对象(GPO):组策略可以被应用于域、组织单元、计算机级别。可以使用 Windows 系统自带的策略模版来简化配置。
- 账户停用策略:定义了停用账户前允许错误输入密码的次数、停用时间、错误次数重置的等待时间等。
- 审计策略:定义了审计相关的操作参数。
- 用户权限分配:用户有权限进行的所有操作比较多,可以仅针对最重要的操作进行安全策略的配置。
- 安全选项:安全选项的内容也很多,可以针对最重要的选项进行安全策略的配置。
加固 Linux 系统
Windows 官方加固建议对于 Linux 系统也同样适用。其他常用加固手段还有:
- 用户和用户组:Linux 下也可以通过 GUI 或命令行设定用户和用户组。常用的用户和用户组设置命令有:
- adduser/useradd:添加用户。
- change:更改密码有效期和其他密码相关的设置。
- chown:更改文件的所有者。
- gpasswd:添加或删除用户组中的用户。
- groupadd:创建新的用户组。
- groupdel:删除用户组。
- groups:现实用户所在的所有用户组。
- id:现实所有的有效用户 id 和 用户组 id。
- passwd:设置用户的密码。
- su:切换当前用户和用户组。
- userdel:删除用户。
- usermod:配置用户相关的选项。
- 文件访问控制:SUID 位控制文件以文件所有者名义运行,而不以文件执行者的名义;SGID 位控制文件以文件所有者所在组的名义运行,而不以文件执行者所在组的名义。虽然通常来讲允许用户以非自己名义运行软件可能带来安全问题,但这一机制在某些情况下也有助于提高系统安全性。例如对于一些允许用户执行的程序中包含管理员级的操作,如果没有设置 SUID 或 SGID 位,则需要授予执行程序的用户以管理员权限,这将赋予用户不必要的权利。
- Bastille Linux 脚本:Linux 系统加固需要设置的内容很多,而且任何一个疏漏都会为攻击者提供机会。使用脚本可以使加固设置更加便利。Bastille Linux 脚本是最早的成熟配置脚本之一,而且已经从单纯的脚本演变成带有 GUI 的加固系统。
- SELinux :由 NSA 参与研制,通过提供内核级的强制访问控制来提高系统安全性。
加固基础设备
组成网络架构的基础设备,如交换机、路由器等,有许多也具备管理或配置功能,允许用户根据需要进行设置。
- 确认用户名和密码的复杂程度足够高。
- 卸载或禁用不必要的应用,例如通过 HTTP 接口进行设备管理等功能。
- 停用不必要的设备。
系统补丁
- Windows 系统补丁:自动更新提供了便利的打补丁方法,如果担心某些补丁会造成非预期的影响,可以调整自动更新的配置以降低打补丁带来的风险。Windows 服务器更新服务(WSUS) 可以在官方更新服务和内网主机之间起到缓冲作用,通过配置可以控制内网主机如何应用官方更新。因为统一管理了内网主机的更新需求,WSUS 同时可以起到节省带宽的作用。
- Linux 系统补丁:各发型版本的更新方法有所不同。
- Fedora 系统可通过 yum update 对包含系统内核在内的所有程序进行更新。GUI 环境下可在“系统工具”的“软件更新”功能中进行更新。也可以安装 yum 的 GUI 前端 – yumex。
- Debian 系统可通过 apt-get upgrade 更新。
个人防火墙
大部分免费的个人防火墙其授权范围仅允许家庭使用,而严格限制在商业工作环境中使用。
软件名称 | 开发公司 | 授权版本 |
---|---|---|
ZoneAlarm | Zone Lab | 商业版本、个人免费版本 |
Kerio Personal Firewall | 商业版本、个人免费版本 |
- Windows 防火墙:Windows 自带防火墙可以协助进行典型的防护操作,如防火墙特例、端口管理等。Netsh 实用程序也可以用来进行一些网络控制策略的设置。
- Netfilter 防火墙:集成于 Linux 内核的防火墙程序。
- TCP Wrappers:一款提供类似于 Windows 防火墙功能的 Linux 实用程序。但只有针对 libwrap.a 库编译的服务才可以使用 TCP Wrappers。
提供反病毒和反间谍机制
- 反病毒软件:
- Clam AntiVirus:免费软件,且未说明仅限个人使用。适用于 UNIX/Linux/Windows 系统。通过命令行进行操作。
- 在线病毒扫描器:许多号称可以在线免费扫描病毒的网站实际上仍会要求你下载软件,甚至付费。Trend Micro 提供真正的免费在线病毒扫描器 – HouseCall。
- 反间谍软件:间谍软件应该受到更多的重视,虽然大多数间谍软件不会直接影响电脑的使用,但其泄漏的个人或企业数据可能造成很大损失。即使网络防护严密,使间谍软件窃取的数据无法传出,但其在内网机器上运行也会消耗大量的计算资源。
- 微软 Windows 防御中心:提供大部分个人反间谍软件不具备的实时保护功能。
- 微软恶意软件清除工具:可以协助清楚部分恶意软件,但不提供后续的防护。
加密敏感数据
加密数据可以保证数据安全,但解密丢失时也可造成数据的损失。因此在对数据进行加密时,一定要保证解密方法得到妥善的保存。许多安全专家建议在无法保证解密方法始终可用时,优先关闭 Windows 原生加密机制 – EFS。微软的加密文件系统 EFS 使用用户登录密码作为密钥,因此用户只要可以登入系统,则可以正常使用文件。作为企业管理员,应该关注当员工密码不可用时是否有办法解密办公电脑的数据。EFS 的一个缺点是无法提供基于用户组的共享访问方法。