扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
溢出是操作系统、应用软件永远的痛!在骇客频频攻击、系统漏洞层出不穷的今天,任何人都不能保证自己的系统、程序不被溢出。既然溢出似乎是必然的,而且利用溢出攻击的门槛比较低,利用工具有一定电脑基础的人都可以完成一次溢出。这样看来,我们的电脑系统,就处于随时被溢出的危险中。我们总不能坐以待毙,做为IT安全人,都应该未雨绸廖,做好防范工作,把溢出的可能性降到最低。
一、如何防?防什么?
1、必须打齐补丁
尽最大的可能性将系统的漏洞补丁都打完;最好是比如Microsoft Windows Server系列的系统可以将自动更新服务打开,然后让服务器在指定的某个时间段内自动连接到Microsoft Update网站进行补丁的更新。如果服务器为了安全起见禁止了对公网外部的连接的话,可以用Microsoft WSUS服务在内网进行升级。
2、服务最小化
最少的服务等于最大的安全,停掉一切不需要的系统服务以及应用程序,最大限度地降底服务器的被攻击系数。比如前阵子的NDS溢出,就导致很多服务器挂掉了。其实如果WEB类服务器根本没有用到DNS服务时,大可以把DNS服务停掉,这样DNS溢出就对你们的服务器不构成任何威胁了。
3、端口过滤
启动TCP/IP端口的过滤,仅打开常用的TCP如21、80、25、110、3389等端口;如果安全要求级别高一点可以将UDP端口关闭,当然如果这样之后缺陷就是如在服务器上连外部就不方便连接了,这里建议大家用IPSec来封UDP。在协议筛选中只允许TCP协议(协议号为:6)、UDP协议 (协议号为:17)以及RDP协议(协议号为:27)等必需用协议即可;其它无用均不开放。
4、系统防火墙
启用IPSec策略,为服务器的连接进行安全认证,给服务器加上双保险。封掉一些危险的端口,诸如:135 145 139 445 以及UDP对外连接之类、以及对通读进行加密与只与有信任关系的IP或者网络进行通讯等等。
提示:通过IPSec禁止UDP或者不常用TCP端口的对外访问就可以非常有效地防反弹类木马。
5、系统命令防御
删除、移动、更名或者用访问控制表列Access Control Lists (ACLs)控制关键系统文件、命令及文件夹:
(1).黑客通常在溢出得到shell后,来用诸如net.exe、net1.exe、ipconfig.exe、user.exe、query.exe、 regedit.exe、regsvr32.exe 来达到进一步控制服务器的目的。如:加账号、克隆管理员了等等。我们可以将这些命令程序删除或者改名。
提示:在删除与改名时先停掉文件复制服务 (FRS)或者先将 %windir%system32dllcache下的对应文件删除或改名。
(2).也或者将这些.exe文件移动到你指定的文件夹,这样也方便以后管理员自己使用。
(3).访问控制表列ACLS控制:
找到%windir%system32下找到cmd.exe、cmd32.exe、net.exe、net1.exe、ipconfig.exe、tftp.exe、ftp.exe、user.exe、reg.exe、regedit.exe、regedt32.exe、regsvr32.exe这些黑客常用的文件,在“属性”→“安全”中对他们进行访问的ACLs用户进行定义,诸如只给administrator有权访问,如果需要防范一些溢出攻击、以及溢出成功后对这些文件的非法利用;那么我们只需要将system用户在ACLs中进行拒绝访问即可。
(4).如果你觉得在GUI下面太麻烦的话,你也可以用系统命令的CACLS.EXE来对这些.exe文件的Acls进行编辑与修改,或者说将他写成一个.bat批处理 文件来执行以及对这些命令进行修改。
(5).对磁盘如C、D、E、F等进行安全的ACLS设置从整体安全上考虑的话也是很有必要的,另外特别是win2k,对Winnt、WinntSystem、Document and Setting等文件夹。
6、组策略配置
想禁用“cmd.exe”,执行“开始→运行”输入gpedit.msc打开组策略,选择“用户配置→管理模板→系统”,把“阻止访问命令提示符”设为“启用”。
同样的可以通过组策略禁止其它比较危险的应用程序。
7、服务降级
对一些以System权限运行的系统服务进行降级处理。比如:将Serv-U、Imail、IIS、Php、Mssql、Mysql等一系列以 System权限运行的服务或者应用程序换成其它administrators成员甚至users权限运行,这样就会安全得多了。但前提是需要对这些基本运行状态、调用API等相关情况较为了解。
总结:其实,关于防止如Overflow溢出类攻击的办法除了用上述的几点以外,还有很多种办法:比如通过注册表进行建立相应的键值,进行设置;写防护过滤程序用DLL方式加载windows到相关的SHell以及动态链接程序之中这类。当然自己写代码来进行验证加密就需要有相关深厚的Win32编程基础了,以及对Shellcode较有研究。
二、如何防渗透?
如果不幸你的系统被攻击者溢出成功,退而求其次,那应该怎样防止被攻击者溢出得到Shell后对系统的而进一步入侵呢?
1、其实在做好上述的工作之后,基本上可以预防攻击者在溢出之后得到shell了,即使Overflow溢出成功,但在用CMDSHELL、以及对外联接时就卡了。为什么呢?因为:(1).溢出后程序无法再调用到CMDSHLL我们已经禁止system访问CMD.exe了。(2).溢出之后在进行反弹时已经无法对外部 IP进行连接了。当然能过system权限来反弹shell对于大部分攻击者就困难了。
2、当然世界上是不存在绝对的安全的,假设入侵者在得到了我们的shell之后,做些什么呢?一般入侵者在在得到shell之后,就会诸如利用系统命令加账号了通过tftp、ftp、vbs等方式传文件了等等来达到进一步控制服务器。这里我们通过上述的办法对命令进行了限制,入侵者是没有办法通过tftp、 ftp来传文件了,但他们仍然可以能过echo写批处理,用批处理通过脚本BAT、VB等从WEB上下载文件,以及修改其它盘类的文件等潜在破坏行为。所以我们需要将echo命令也限制以及将其它盘的System写、修改文件的权限进行处理。以及将VB类脚本以及XML、http等组件进行禁用或者限制system的运行权限。这样的话别人得到Shell也无法对服务器上的文件进行删除以及进行步的控制系统了;同时页防止本地提权反弹Shell了。
总结:安全是个系统工程,任何小小的疏忽都会让我们全盘皆输。“防”永远比“补”好,IT安全人员“防”在溢出之前,把被攻击的危险降到最低,这才是真正的安全之道。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者