维护一个企业级的安全的计算环境需要设计策略和过程从而使得对系统和数据的未授权访问降至最低。为了保护基于Linux的计算机资产免于这些威胁,像许多其它以安全为核心的过程一样,你必须知道你想保护什么以及别人可能会如何尝试获取访问。成功的安全管理是心态。也就是说,像坏孩子那样思考。
在本文中,我们将会讨论基于Linux的服务器系统的风险评估。
确保你的Linux服务器系统安全的第一步是正确地评估所面临的风险。只有这之后企业才能部署一套有效的防护措施来预防、侦测,并且如果需要的话对于可能发生的违规正确地做出反应。
首先,辨识需要保护的Linux资产。资产可能包括硬件、软件、数据或像email或Web站点主机这样运转的服务。每个资产都具有价值,要么是货币价值要么是未来可能带来收入。
接着,辨识每个资产面临的潜在威胁。威胁可能来自组织的内部或外部。一些内部威胁只不过是偶然的,但是有些可能是恶意的。
对于资产的威胁依赖于攻击的动机和攻击者如何获得对资产的访问。动机可能是纯粹的挑战,伤害资产的拥有者,或是为了谋利。攻击者可能想访问你的数据或只是拒绝合法用户的访问。每个威胁都有被利用的必然的可能性,这通常与资产的价值相关。虽然在组织内广泛地了解和变化会有困难,但是使用一个风险管理框架来给每个辨识的威胁分配一个可能性,会帮助你对缓和这些风险需要采取的行动进行优先级安排。
尽管不可能列出所有潜在的威胁途径,但一份最常见风险的概述能让你开始自己的风险评估。
最棘手的威胁途径是用户。尽管有各种的保护机制,人们仍然会被愚弄或被要挟做出不恰当的行为。用户的意识、培训和访问权限是缓和任何Linux风险的重要部分。
密码在任何计算环境中经常代表着最常见的软肋。为了辨识不安全的登录密码,运行如John the Ripper这样的密码有效性检查器。应用和数据库的密码也应该检查“可被破解性”或是进行修改以便满足这样的需求。同时,辨识Linux服务器上不需要的访问授权。例如,如果密码文件(/etc/passwd)被远程地分发(通过rcp/rcopy程序或NIS服务),用户可能会对从未使用的服务器具有登录访问权限,从而创造了毫无好处的潜在的威胁途径。
另外一个主要的威胁途径是网络。任何能访问你的本地网络(物理的或是无线方式)的用户有可能试图连接到网络上任何其它的资产。所有的Linux系统运行开放的网络端口,并等待来自网络查询的程序。每个这种服务都代表者一个威胁途径,要么通过欺诈的认证,或是由于软件瑕疵可能错误地允许访问。使用netstat命令来找到系统所有的开放端口。
使用Nmap工具扫描网络上其它机器的开放端口。每个开放端口代表着一个威胁途径,应该被关闭或是监控非法的访问。不要忽视任何传统的拨号访问点。防火墙是可信网络和不可信网络(如因特网)之间的边界。你的防火墙应该配置只在已知和需要的端口上传输数据。防火墙传输数据的每个端口同样都是一个威胁途径。
除了正常的监控以外,你还应该同时检查日志来关联需要的访问。Lastlog命令显示用户的登录信息。可以在路径/var/log/messages下发现各种各样的日志信息。许多应用和数据库也提供记录机制来追溯用户的访问。检查这些日志,你可以观察当前谁在使用和(可能)需要访问特定的资源。
无论什么复杂的软件都是有缺陷的,但是只有当缺陷以不受欢迎的行为表现它们时才会被了解。通常的bug只会破坏数据或是引起宕机,但是有一些会造成无法预料的后果,比如允许未授权的访问。这明显地表示为主要的危害。攻击者不断地搜索着这些类型的bug,而厂商们则在发现这些bug时,尽力快速地修补它们和提供软件补丁。你所能做的是确保定期地检查和更新你的操作系统和应用软件。
检查Linux服务器上软件更新的过程依赖于应用或是Linux版本。例如Ubuntu版本的Linux提供一个更新管理器(通过菜单“系统>管理>软件源”可以发现),可以配置每天进行检查更新。你越经常性地检查更新,你的漏洞窗口越小。同样对于来自未校验来源或作者的免费程序或软件要小心谨慎。
需要监控和保持更新的最重要的软件是面临外部环境的软件,如Web服务器和网络应用(如VPN或SSH)。Web服务器软件定期地检测糟糕的配置和bug。Web应用可能会遇到恶作剧的输入数据来进行不正当的应用。大多数的Web应用语言,像Perl、Python、Ruby或PHP有工具或可用的附件来净化输入数据以及禁止用户输入的代码,如SQL或Java脚本。你的Web服务器或是其它面临外部环境的应用接收来自用户的数据都意味着可能的威胁。同样,检查这些程序产生的任何日志文件有助于你辨识合法和非法的访问。
原文链接:http://www.searchsecurity.com.cn/showcontent.aspx?aid=45545
【编辑推荐】