李绍龙
(云南电网有限责任公司信息中心 云南省昆明市 650011)
拒绝服务攻击即是攻击者通过破坏性的方法对目标主机造成麻烦,使目标主机或网络资源被大量占用或消耗,从而导致目标主机停止服务或永久瘫痪,进而使Linux 受到较大冲击而无法继续提供正常的服务。例如,攻击者通过伪造TCP 连接请求或利用多台受控主机向目标主机发送大量连续的TCP 连接请求,消耗被攻击主机的资源,进而使目标主机因CPU 资源耗尽而停机或瘫痪。通常多数拒绝服务攻击的风险性较低,即使造成系统停机重启的也仅是暂时的。其中,拒绝服务攻击由于攻击手段的多种多样,如死亡之PING、SYN Flood、IP 欺骗性攻击、UDP 洪水攻击、LAND 攻击等,以及暂时无法改变的协议层缺陷,使得拒绝服务攻击成为当前最为常见也是最难以预防的攻击方式。
口令破解攻击即是通过对用户的口令进行破解,来获取目标主机或网络的访问控制权,进而获取经加密的任何信息资源,该攻击方式是入侵系统较为常用的一种方式。口令保护通过是用户系统安全的首道保护线,然而在实际应用的过程中,用户因忽略口令保护这一关键环节,而使得系统安全得不到保障。而攻击者通过词典攻击、强行攻击、组合攻击等多种攻击方法以击败或破解口令(三种攻击方式对比如表1)。例如,攻击者借助一台高速计算机,并结合字典库对系统密码进行各种组合的尝试,以最终破解获取口令。除此之外,还可以通过其他攻击方式获取口令,如通过口令蠕虫、特洛伊木马、网络监听、偷窥等,获取坚不可摧的口令。
缓冲区溢出攻击即是攻击者将一系列较长的字符串拷贝至有限容量空间的缓冲区,从而使缓冲区存储单元原有的数据被覆盖,而理想情况下程序会对输入数据长度进行检查,并在输入长度超出缓冲区字符的长度时予以禁止,但多数程序会假设数据长度与所分配的存储容量空间相匹配,这也为缓冲区溢出漏洞埋下了较大隐患。这种隐患的存在可能会导致系统运行受阻,甚至出现系统死机或重启。另外,攻击者可以利用缓冲区溢出攻击获取root 权限,让程序跳转至攻击者安排的地址空间继续执行,该漏洞的存在对系统的危害十分巨大。例如,如若缓冲区所设计的某一机器指令被覆盖,则极有可能因缓冲区溢出而导致指令序列的返回地址被改变,并将其指向自己设计的指令序列,此时,机器的控制权被占用并遭受攻击者的恶意攻击。
网络监听作为监视网络数据传输、网络状态以及数据流动情况的重要管理工具,其可以通过监听模式截获、嗅探网络上传输中的数据信息。因此,如若攻击者得以登录并获得网络主机的超级用户权限,就能由此通过网络监听进行敏感信息数据的截获,并进一步控制网络中其他的主机。
表1:三种攻击方式对比
图1:ARP 欺骗原理
欺骗用户攻击即是攻击者伪装成为对方信任的身份,并在身份认证通过后实施攻击。当前,较为常见的欺骗用户攻击主要分为五种:ARP 欺骗、IP 欺骗、电子邮件欺骗、DNS 欺骗以及Web 欺骗等,其中,ARP 欺骗通过协议缺陷建立假网关接收来自被骗计算机的数据信息,此种攻击方式能够使整个局域网的计算机无法正常上网甚至瘫痪,威力十分惊人。整个过程中,主机B 作为攻击者同时向网关C 与主机A 发送ARP 应答包。这样,A 发给C 以及C 发给A 的数据就会被发送到B,B 就成了A 与C 的“中间人”来截获数据信息(如图1)。
端口扫描即是向所要扫描目标主机的指定或全部端口发送指定类别的TCP 及UDP 报文,使目标主机主动响应,攻击者通过对响应报文进行分析来判断目标主机的端口信息。利用此种攻击能够准确找出目标主机的系统漏洞,进而针对该系统漏洞发动攻击。
2.1.1 确保用户口令安全
对于网络系统而言,口令是首道防线,也是极易出现问题的环节。因此,用户口令的设置时,可适当延长口令长度(通常不低于8 个字符,其中密码加一位攻击难度会增加10 倍),并使用不规则的大小写字母+数字+符号的形式提升口令的安全性。同时,为确保口令安全还要做好对/etc/passwd 与/etc/shadow 文件安全的保护,除系统管理员外的无关人员不得访问这两个文件,以有效避免攻击者利用弱口令猜测工具John 等程序对/etc/passwd 与/etc/shadow 文件进行字典攻击。另外,安装npasswd 口令过滤工具对口令的安全性进行检查,对于检查发现的安全性较低的口令应立即修改。
2.1.2 确保root 账号安全
Linux 系统中root 账号是具备管理员权限并享有特权的账号,root 账号的使用不会受到限制与制约,因此,必须防止因误操作而导致的意外。同时,应尽量减少或避免使用root 账号登录,且系统管理员应尽量避免在他人的计算机上登录自己的root 账号,以有效避免账号泄露而导致的安全风险。
2.2.1 确保对象访问安全
对于文件目录、目标进程等对象的访问方式,Linux 系统多采取MAC(强制访问控制)予以实现,用户不同所设置的对象访问权限也有所不同,且相关用户仅能根据自己的权限访问与之相关或指定范围的对象信息。另外,根据不同用户给予其相应的授权权限,如本地或远程关机、设备驱动程序安装与卸载、域中添加或删减工作站、文件目录的读写或备份权限等应根据区分用户的不同而授权。
2.2.2 确保系统配置安全
首先,严格按照需要进行BIOS 密码的设置,并设置Linux 系统在启动LILO 时就需要进行密码验证,以此有效规避攻击者启动系统。其次,对于Linux 系统自身的Ext2 文件系统的数据应分区予以存放,并对分区属性、文件系统的只添加与不可变两大属性予以设置,以有效提升数据存储的安全性。
数据传输的过程中,随时都会面临被截获、嗅探或监听的风险,且存储中的数据也可能会被攻击者攻击而泄露。对此,为有效提升数据的安全性,可通过加密算法对传输及存储中的数据予以加密处理,通常采取以下方式:首先,文件系统加密。采用TCFS 分布式文件协议系统或crypt 命令进行文件加密,其通过加密关键词对信息编码进行加密处理,并用同一关键词进行恢复。需要注意的是,crypt 程序可能会被做成特洛伊木马,因而须先用pack 或compress命令压缩文件后再进行加密处理。其次,用户密码加密。对密码文件password 予以加密,或要求用户必须通过ssh 对用户账号及密码的传输予以加密。此外,在较为敏感的网络环境中进行数据传输时,要求用户严禁使用ping 命令等明文传输。
2.4.1 正确设置防火墙
防火墙作为防范外部攻击的首道防线,其能够有效阻止非授权用户进入、离开系统或网络,并能尽量减少被保护网入口点的暴露时间,进而防止攻击者的恶意攻击及非授权访问。同时,防火墙能够有效弥补系统设置不当,或软件漏洞而导致的网络安全问题。通常,对于Linux 操作系统而言,多采用系统自身免费的Iptables 防火墙,然后按照拒绝接收所有数据包进行配置,并打开允许接收的数据包,由此加强对IP 地址欺骗、口令攻击、特洛伊木马、电子邮件欺骗等网络安全的防范工作。
2.4.2 关闭无用端口
所有网络的连接均需要开放的端口予以实现,因此,减少端口开放或关闭无用端口,能够有效降低攻击者的成功概率。对此,可通过端口检测程序或专业入侵检测系统对入侵行为实施检测,并将无用的应用端口予以关闭处理。
2.4.3 关闭无用服务
Linux 系统默认运行了很多服务,而其中无用的服务极易成为网络安全隐患,因此,为有效减少后门,降低安全隐患,可将无用服务全部关闭。
(1)关闭fingerd 服务。Linux 系统下的finger 命令能够直接显示指定用户的用户名、shell 以及联系方式等详细信息,此时,攻击者通过情报收集到用户信息实施入侵,因此,应尽量禁止启动finger 服务。
(2)严禁设置默认路由。主机中严禁设置默认路由,而是应结合系统的运行情况,为每个子网段或网段单独进行路由的设置,以有效避免其他机器通过某些途径非法访问该主机。
(3)关闭ping 命令的响应。攻击者往往会利用TCP 协议的缺陷占用数据传输通道,而关闭系统对ping 命令的响应,能够有效防止攻击者利用漏洞发动攻击,并能显著降低系统的网络安全风险。
2.4.4 定期测试检查
Linux 操作系统的运行处于随时变化的状态,因此,应根据系统的变化合理采取有效的安全管理策略,并在采取相应的安全防御措施后,应定期进行系统的安全检查,并通过服务器安全攻击测试,查找系统中仍然存在的安全漏洞,并采取合理措施防止遭受安全攻击。
2.4.5 完善日志管理
日志文件是记录和监测系统运行情况的重要依据,而攻击者往往会在入侵后对日志文件进行修改,因此,对于/var/log/文件应设置限制访问,对于一般权限的用户应设置禁止查看。另外,使用日志服务器将日志信息实时传送至日志服务器,有效避免了攻击者修改或删除日志而导致的日志丢失。此外,使用彩色日志过滤器,对日志中异常命令及root 位置予以标记,减少了日志分析时的人为遗漏,并且能够通过定期自动检查协助管理员分析系统运行的日常安全。
2.5.1 做好系统备份
为有效防止不可避免的系统故障、用户操作不当或非法操作而导致的重要数据丢失,务须严格依照要求进行系统安全备份。其中,除每月按要求进行全系统的备份外,还要针对修改做好每周备份。同时,对于修改过的较为重要系统文件应分开在不同的服务器存放,以便系统崩溃时能够立即修复系统。
2.5.2 及时处理入侵
检查日志文件时如若发现未知用户登录系统,为防止系统受到入侵而被破坏,应立即锁定该账号,若攻击者已登录系统,则应立即断开设备与网络之间的物理连接。若条件允许还应对该用户历史记录进行查看,并检查攻击者是否拥有根权限、是否假冒其他用户,最后kill 该用户所有进程并添加其主机IP 地址至hosts.deny 文件。
总而言之,为有效防范那些不法“黑客”的多方攻击,相应系统维护管理人员务须对网络安全时刻秉持正确认知,并大幅提升相应防范意识与防控能力,针对系统潜在的易攻破缺陷展开全力修复与加防,多措共举,切实提升Linux 的网络安全防御能力,进而成功抵御各类网络攻击保障Linux 操作系统的安全运作。