1995年 Sendmail 5.x 无效MAIL/RCPT命令远程执行任意命令漏洞。5.x版本的Sendmail在处理无效的MAIL/RCPT命令时存在输入验证漏洞,Sendmail会不加检查地把用户输入的命令重定向到另一个程序执行,远程攻击者可能利用此漏洞在主机上以root用户的权限执行任意命令。当时的Sendmail绝对算是首屈一指的Mail Server老大,因此这个漏洞的出现,让许多主机的root权限都被获取,进而被放置了木马/后门等。
同年,Wu-ftpd暴露出错误配置路径导致通过SITE EXEC可执行系统命令漏洞。由于配置文件pathnames.h的错误配置,一些Wu-ftpd 2.4.1和更早的二进制发行版本允许攻击者有个FTP账号即可获得root访问权限。Wu-ftpd是一个非常流行的Unix系统下的FTP服务器。很多Unix和Linux的发行版本都把它作为默认安装的FTP服务器。因此此漏洞的存在,也令许多用wu-ftpd运行的程序被窃取了root权限。由此我们不难看出,一个应用程序的漏洞足以导致整个系统防线的失手,而同一时间也在思考――如果我们提供的只是一个普通的访问服务,而是不是这个服务一定必须以root身份来运行呢?如果以普通用户身份运行,则即使有漏洞,危害也会减少很多的。
1996年Microsoft PWS被发现远程目录遍历漏洞。PWS(Personal Web Server)是Microsoft出品的一个简单的WEB服务器,随Windows 98发售。PWS实现上存在一个问题,允许在远程攻击者通过在URL中插入特殊请求访问WEB上级目录的文件,造成目录遍历。在PWS中,远程用户可以通过在请求的URLs后字符串 /..../ 获得与web内容相同逻辑驱动器下的文件/目录的非授权访问,通过这个方法还可以查看隐藏文件。这个方法的局限是攻击者必须知道所要的文件名和路径才能完成这种攻击。由于当时的pws用户很多是将web放置于默认路径中,因此很容易就能推测出目录位置及结构。这个漏洞从侧面启示了我们,配置服务器的时候,一定不能偷懒使用默认路径,最好把非关键服务的文档/数据放置于非系统盘位置。
1997年,Microsoft IIS 3.0 "%2e" ASP源码泄露漏洞,至于看到了asp代码之后,是偷窃还是获取数据库密码都是各取所需了。并且此时的IIS 3.0还存在一个ndwdsn.exe文件创建漏洞,允许攻击者通过提交一个特意构造的URL请求来覆盖任意文件。如果系统不是采用NTFS格式,或者NTFS权限设置不够严格,则利用这个漏洞,攻击者可能在系统中的任意位置创建文件,为所欲为。这个漏洞提醒了我们,在关注应用程序服务的时候,也必须注意到文件系统本身的权限设置,事实上NTFS能实现比较细粒度的精确权限控制。
1999年,新的IIS 4.0爆出多个漏洞,Linux/FreeBSD也分别暴露出缓冲溢出错误。不过相比之下,此年的Bind 8中存在着6个不同危害程度的漏洞,由于Bind实际上目前互联网络上的dns的事实标准,因此Bind 8的使用非常广泛。此次漏洞的实现,让我们反思对待一定要以root方式执行的程序,能否通过jail来实现chroot??控制住访问的目录与结构,即使程序本身受到攻击,攻击者也无法跳转到有效目录进行更大的破坏活动。
2000年微软windows 2000输入法漏洞,导致登录验证可被绕过。方法之简,足以让我们汗颜,有时候攻击就是如此:在想不到的角落里捅上一刀是最致命的。
2001年,防范“Nimda”蠕虫;由于IIS的unicode漏洞,导致该病毒能够不断地感染/再传播装有iis的机器,通过主动感染,通过web页被动感染等多种方式进行的攻击,已经模糊了病毒/木马的界限。
2003年,1月SQL蠕虫扩散,当时由于MS SQL的漏洞,导致中毒的机器一直朝交换机/路由器大量发包,导致其很快挂掉,由于灾情严重,当时的感觉就是“互联网挂掉了”;之后在8月冲击波/冲击波克星蠕虫来袭击,传播速度之快,范围之广,也令用户吃尽了苦头。在此我们得到一个结论:软件的功能并不是越强大越好,一些周边的功能或许正是带来非安全因素的根源。
回看几年前的安全状况,发现以root身份运行的软件是越来越少了,以程序溢出方式的攻击是越来越多了;围绕着服务的漏洞进行蠕虫传播是越来越快了;代码量越来越大功能越来越多的操作系统是越来越脆弱了……上网的民众是越来越多了,但安全意识是不是越来越强了呢??