系统漏洞检测及修复
更新时间:2024.11.27系统漏洞包括操作系统本身的安全漏洞,以及运行在操作系统纸上的应用程序(例如Apache、Nginx、MySQL)的安全漏洞。
对于部署在腾讯服务器上的开发者应用,腾讯后台将对腾讯服务器进行安全漏洞扫描,可检测出包括Apache、Nginx、MySQL等的常见安全漏洞。
下面是漏洞的定义,检测方法以及修复方案。
1. Apache
1.1 UserDir漏洞
名称:Apache UserDir 漏洞
描述:早期版本的Apache默认会开启UserDir,这个无关功能会泄露主机的账户名,也可能由于配置不当导致敏感文件被下载。
检测方法:在浏览器里输入http://ip/~root ,若目录存在(即HTTP状态码返回403),则说明UserDir开启。
如下图所示:
修复方案:
在Apache配置文件中取消UserDir,可能遇到的两种情况:
(1)注释掉以下三行,然后重启Apache:
(2)如果配置文件中没有上图中所示的三行,则添加(或修改)一行配置:UserDir disable,然后重启Apache升级到高版本的Apache(2.1.4及以上版本默认不开启UserDir)
1.2 目录浏览漏洞
名称:Apache 目录浏览漏洞
描述:Apache默认配置时允许目录浏览。如果目录下没有索引文件,则会出现目录浏览,导致文件信息泄露。
检测方法:直接访问目录,如果能看到目录下的文件信息,则说明存在目录浏览漏洞。 修复方案:
在Apache配置文件中,将目录配置中的“Indexes”删除,或者改为“-Indexes”,如下图所示:
1.3 默认页面泄露漏洞
名称:Apache 默认页面泄露漏洞
描述:Apache在安装后存在默认目录/icons/、/manual/
检测方法:在浏览器里输入http://IP/icons/,http://IP/manual/,如果能访问,则说明存在默认页面泄露漏洞。
如下图所示:
修复方案:
对于Apache2,注释掉Apache配置文件中的目录配置中的以下两行:
Alias /icons/ "/usr/share/apache2/icons/"
AliasMatch ^/manual(?:/(?:de|en|es|fr|ja|ko|ru))?(/.*)?$ "/usr/share/apache2/manual$1"或者删除配置文件中的icons、manual两个目录。
2. QHTTP或者其他Web Server
2.1 404页面XSS漏洞
名称:QHTTP 404 页面XSS漏洞
描述:低版本的QHTTP在返回404页面时,未对URL进行编码,导致出现XSS漏洞。
检测方法:在浏览器里输入http://ip/xxx.xxx?a=<script>alert(0)</script> ,若出现如下弹框,则说明存在XSS漏洞。
修复方案:升级QHTTP到2.1及以上版本。升级版本可能带来性能问题,开发人员需要进行相关的性能测试。
2.2 任意文件读取漏洞
名称:任意文件读取漏洞
描述:低版本的Web Server在处理请求时存在漏洞,会泄露服务器上任意文件内容。
检测方法:在浏览器里输入http://ip/../../../../../etc/passwd,如果能访问,则说明存在任意文件读取漏洞。 修复方案:如果使用QHTTP,请升级QHTTP到2.1及以上版本。升级版本可能带来性能问题,开发人员需要进行相关的性能测试。
3. Tomcat
3.1 Tomcat默认管理后台漏洞
名称:Tomcat默认管理后台漏洞
描述:Tomcat在安装后默认能访问到后台管理登录页面。
检测方法:在浏览器里输入http://ip/manager/html ,若出现如下弹框,则说明存在Tomcat默认管理后台漏洞。
修复方案:删除tomcat安装目录下webapps下的manager目录。
3.2 Tomcat默认页面泄露漏洞
名称:Tomcat默认页面泄露漏洞
描述:Tomcat在安装后存在默认页面。
检测方法:直接访问Tomcat的默认页面,若出现如下页面,则说明存在默认页面泄露漏洞。
修复方案:删除这些与运营环境无关的目录。
4. Nginx
4.1 远程溢出漏洞
名称:Nginx远程溢出漏洞
描述:低版本的nginx存在远程溢出漏洞(详见 http://www.kb.cert.org/vuls/id/180065 的说明)。
检测方法:0.8.15, 0.7.62, 0.6.39, 0.5.38以下版本均存在此漏洞。修复方案:升级nginx到0.8.15+/0.7.62+/0.6.39+/0.5.38+以上,或者安装官方补丁( http://nginx.org/download/patch.180065.txt)。
注:安装补丁后,Nginx的版本号不会变,因此腾讯安全扫描系统可能仍然会发安全漏洞告警。
4.2 目录浏览漏洞
名称:Nginx目录浏览漏洞
描述:如果开启nginx的目录浏览,会泄露目录下的文件信息。
检测方法:直接访问目录,如果能看到目录下的文件信息,则说明存在目录浏览漏洞。
修复方案:不要启用nginx的目录浏览。
5. MySQL
5.1 空口令/弱口令漏洞
名称:MySQL空口令/弱口令漏洞
描述:MySQL服务器未设置root账号口令或者某个账号使用了简单的口令,导致可以远程不使用口令连接或者很容易猜测到账号口令。
检测方法:使用MySQL客户端以空口令登录或者账号/口令形式进行猜解,如果能够登录,则表示存在MySQL空口令/弱口令漏洞。如下图所示:
修复方案:在MySQL中为账号加一个安全的口令。一个安全的口令应该包含以下四项中的三项:
(1)大写字母
(2)小写字母
(3)特殊字符
(4)数字
6. FTP
6.1 FTP匿名登录漏洞
名称:FTP匿名登录漏洞
描述:FTP Server允许匿名登录(使用ftp或者anonymous用户,密码为空),可能会泄露一些敏感信息。
检测方法:FTP登录时使用anonymous/ftp账户,如果登录成功,则表示存在FTP匿名登录漏洞。
修复方案:配置FTP Server为禁止匿名登录。以vsftp2.2.0为例,需按照如下说明修改配置文件:
(1)将anonymous_enable值改为为NO(如果没有这一行,加上anonymous_enable=NO即可)。
(2)添加local_enable=YES(开启本地用户访问)。
7. Oracle
7.1 空口令漏洞
名称:Oracle空口令漏洞
描述:Oracle服务器未设置管理账号口令,导致可以远程不使用口令控制Oracle Server。
检测方法:使用Oracle客户端以空口令登录,如果能够登录,则表示存在Oracle空口令漏洞。
修复方案:在MySQL中为账号加一个安全的口令。一个安全的口令应该包含以下四项中的三项:
(1)大写字母
(2)小写字母
(3)特殊字符
(4)数字
8. PHPMyAdmin
8.1 空口令漏洞
名称:PHPMyAdmin空口令漏洞
描述:PHPMyAdmin没有设置口令,任何人都可以控制数据库。
检测方法:访问http://IP/PHPMyAdmin,如果能够访问,则表示存在PHPMyAdmin空口令漏洞。
修复方案:在PHPMyAdmin中为账号加一个安全的口令。一个安全的口令应该包含以下四项中的三项:
(1)大写字母
(2)小写字母
(3)特殊字符
(4)数字
9. Linux
9.1 默认口令漏洞
名称:默认口令漏洞
描述:初始密码需要经常更改,否则可能导致账号被他人利用。
'修复方案:经常修改密码,且密码应该遵循强密码原则,至少包含以下四项中的三项:
(1)大写字母
(2)小写字母
(3)特殊字符
(4)数字
9.2 Samba任意用户访问漏洞
名称:Samba任意用户访问漏洞
描述:在配置Samba Server的时候,未进行用户身份进行控制,导致任何人可以访问。
检测方法:以SMB协议连接服务器,如果可以访问,则表示存在Samba任意用户访问漏洞。如下图所示:
修复方案:为Samba Server添加一个安全的口令。一个安全的口令应该包含以下四项中的三项:
(1)大写字母
(2)小写字母
(3)特殊字符
(4)数字
9.3 高危端口/服务开放漏洞
名称:高危端口/服务开放漏洞
描述:
高危端口:
(1)关于CVM对外提供服务的外网端口:
当CVM以域名:外网端口方式提供外网服务时,需要将CVM和域名以及外网端口绑定,能够绑定的外网端口为80,443,843,8000 - 8010。外网访问CVM时只能访问CVM的上述外网端口。
除这些默认开通的端口以外的其他端口都属于高危端口,可能带来安全隐患,不予开通。
(2)关于CVM访问外网的端口:
如果需要访问外网的IP:端口,需要先将CVM和域名绑定,然后提交外网:IP端口需求,符合接入要求后由腾讯人工操作开通。
高危服务:
目前以下服务属于高危服务,禁止对外开放,不能申请:
SSH,Telnet,X-windows,Rlogin,ms-rpc,SNMP, FTP,TFTP,RPC,MS-RPC,NetBios,MS-SMB,MS-SQL,MYSQL, memcache,proxy类服务(http-proxy, ftp-proxy,ccproxy-http), rsync,nfs 。
修复方案:禁止对外使用高危服务。CVM访问外网的端口,使用前需申请。
未通过申请或审批开放高危端口/服务属于一级违规,将受到相应处罚。