系统漏洞检测及修复

更新时间:2023.08.18

系统漏洞包括操作系统本身的安全漏洞,以及运行在操作系统纸上的应用程序(例如Apache、Nginx、MySQL)的安全漏洞。

对于部署在腾讯服务器上的开发者应用,腾讯后台将对腾讯服务器进行安全漏洞扫描,可检测出包括Apache、Nginx、MySQL等的常见安全漏洞。

下面是漏洞的定义,检测方法以及修复方案。

# 1. Apache

# 1.1 UserDir漏洞

名称:Apache UserDir 漏洞

描述:早期版本的Apache默认会开启UserDir,这个无关功能会泄露主机的账户名,也可能由于配置不当导致敏感文件被下载。

检测方法:在浏览器里输入http://ip/~root ,若目录存在(即HTTP状态码返回403),则说明UserDir开启。

如下图所示: pic

修复方案

  1. 在Apache配置文件中取消UserDir,可能遇到的两种情况:

    (1)注释掉以下三行,然后重启Apache: pic

    (2)如果配置文件中没有上图中所示的三行,则添加(或修改)一行配置:UserDir disable,然后重启Apache

  2. 升级到高版本的Apache(2.1.4及以上版本默认不开启UserDir)

# 1.2 目录浏览漏洞

名称:Apache 目录浏览漏洞

描述:Apache默认配置时允许目录浏览。如果目录下没有索引文件,则会出现目录浏览,导致文件信息泄露。

检测方法:直接访问目录,如果能看到目录下的文件信息,则说明存在目录浏览漏洞。

修复方案: 在Apache配置文件中,将目录配置中的“Indexes”删除,或者改为“-Indexes”,如下图所示:

pic

# 1.3 默认页面泄露漏洞

名称:Apache 默认页面泄露漏洞

描述:Apache在安装后存在默认目录/icons/、/manual/

检测方法:在浏览器里输入http://IP/icons/,http://IP/manual/,如果能访问,则说明存在默认页面泄露漏洞。

如下图所示: pic

修复方案:

  1. 对于Apache2,注释掉Apache配置文件中的目录配置中的以下两行:

    Alias /icons/ "/usr/share/apache2/icons/" AliasMatch ^/manual(?😕(?:de|en|es|fr|ja|ko|ru))?(/.*)?$ "/usr/share/apache2/manual$1"

  2. 或者删除配置文件中的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漏洞。

pic

修复方案:升级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默认管理后台漏洞。

pic

修复方案:删除tomcat安装目录下webapps下的manager目录。

# 3.2 Tomcat默认页面泄露漏洞

名称:Tomcat默认页面泄露漏洞

描述:Tomcat在安装后存在默认页面。

检测方法:直接访问Tomcat的默认页面,若出现如下页面,则说明存在默认页面泄露漏洞。

pic

修复方案:删除这些与运营环境无关的目录。

# 4. Nginx

# 4.1 远程溢出漏洞

名称:Nginx远程溢出漏洞

描述:低版本的nginx存在远程溢出漏洞(详见 http://www.kb.cert.org/vuls/id/180065 (opens new window) 的说明)。

检测方法: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 (opens new window))。

注:安装补丁后,Nginx的版本号不会变,因此腾讯安全扫描系统可能仍然会发安全漏洞告警。

# 4.2 目录浏览漏洞

名称:Nginx目录浏览漏洞

描述:如果开启nginx的目录浏览,会泄露目录下的文件信息。

检测方法:直接访问目录,如果能看到目录下的文件信息,则说明存在目录浏览漏洞。

修复方案:不要启用nginx的目录浏览。

# 5. MySQL

# 5.1 空口令/弱口令漏洞

名称:MySQL空口令/弱口令漏洞

描述:MySQL服务器未设置root账号口令或者某个账号使用了简单的口令,导致可以远程不使用口令连接或者很容易猜测到账号口令。

检测方法:使用MySQL客户端以空口令登录或者账号/口令形式进行猜解,如果能够登录,则表示存在MySQL空口令/弱口令漏洞。如下图所示:

pic

修复方案:在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任意用户访问漏洞。如下图所示:

pic

修复方案:为Samba Server添加一个安全的口令。一个安全的口令应该包含以下四项中的三项:

(1)大写字母

(2)小写字母

(3)特殊字符

(4)数字

# 9.3 高危端口/服务开放漏洞

名称:高危端口/服务开放漏洞

描述

  1. 高危端口:

    (1)关于CVM对外提供服务的外网端口: 当CVM以域名:外网端口方式提供外网服务时,需要将CVM和域名以及外网端口绑定,能够绑定的外网端口为80,443,843,8000 - 8010。外网访问CVM时只能访问CVM的上述外网端口。 除这些默认开通的端口以外的其他端口都属于高危端口,可能带来安全隐患,不予开通。

    (2)关于CVM访问外网的端口: 如果需要访问外网的IP:端口,需要先将CVM和域名绑定,然后提交外网:IP端口需求(申请方式详见这里 (opens new window)),符合接入要求后由腾讯人工操作开通。

  2. 高危服务:

    目前以下服务属于高危服务,禁止对外开放,不能申请: SSH,Telnet,X-windows,Rlogin,ms-rpc,SNMP, FTP,TFTP,RPC,MS-RPC,NetBios,MS-SMB,MS-SQL,MYSQL, memcache,proxy类服务(http-proxy, ftp-proxyccproxy-http), rsync,nfs 。

修复方案:禁止对外使用高危服务。CVM访问外网的端口,使用前需申请。

未通过申请或审批开放高危端口/服务属于一级违规,将受到相应处罚 (opens new window)