2019-01-16 14:07:2432661人阅读
运维安全是企业安全保障的基石,不同于Web安全、移动安全或者业务安全,运维安全环节出现问题往往会比较严重。基础服务的安全问题通常表现为:一是开源或者商业产品出现漏洞时,未及时打补丁;二是对基础服务的配置不正确,如服务对外开放、弱口令等。
本文描述的基础服务包括常见的数据库服务(Redis、Mongodb、Memcached)、FTP、rsync、ElasticSearch、DNS、SNMP、LDAP等,攻击者可利用这些基础服务的脆弱点、漏洞进而获取敏感信息甚至获取服务器的权限。
运维出现的安全漏洞自身危害比较严重。一方面,基础服务通常位于应用的底层,是整个服务器的重要组成部分,一旦出现安全问题,直接影响到服务器的安全;另一方面,一个基础服务漏洞的出现,通常反映了一个企业的安全规范、流程或者是这些规范、流程的执行出现了问题,这种情况下,可能很多服务器都存在这类安全问题,也有可能这个应用还存在其他的服务安全问题。
接下来文章将分类对常见的基础服务安全问题进行阐述,并辅以漏洞实例进行分析,希望能够加深大家对基础服务安全的理解。
Redis默认情况下,会绑定在 0.0.0.0:6379,这样将会将Redis服务暴露到公网上,如果在没有开启认证的情况下,可以导致任意用户在可以访问目标服务器的情况下未授权访问Redis以及读取Redis的数据。攻击者在未授权访问Redis的情况下可以利用Redis的相关方法,可以成功在Redis服务器上写入公钥,进而可以使用对应私钥直接登录目标服务器。
漏洞案例:
凤凰网某站点redis未授权访问导致Getshell
阳光保险某服务器Redis未授权访问可反弹Shell
我们分析下第一个漏洞案例,攻击者发现凤凰网某IP的221端口为Redis服务,并且开启了未授权访问;同时,攻击者通过phpinfo获取到了web目录的绝对路径,由于Redis通常是以root权限启动,攻击者通过Redis写入计划任务来执行命令从而Getshell,获取了服务器的权限。
开启MongoDB服务时不添加任何参数时,默认是没有权限验证的,而且可以远程访问数据库,登录的用户可以通过默认端口无需密码对数据库进行增、删、改、查等任意高危操作。
漏洞案例:
京东商城多站MongoDB未授权访问
海信某系统mongodb数据库未授权访问
未授权访问是Mongodb最常见的安全问题了,包括京东、海信等很多公司都曾发生此类的安全事件。比如第一个案例,京东商城某业务开启了外网访问,并且Mongodb端口27017直接暴露在公网,攻击者连接数据库后可以下载、删改数据,危害十分严重。
Memcached是一套常用的key-value缓存系统,由于它本身没有权限控制模块,所以对公网开放的Memcache服务很容易被攻击者扫描发现,攻击者通过命令交互可直接读取Memcached中的敏感信息。
漏洞案例:
360手机商城memcached未作限制
快的打车memcache配置不当导致信息泄漏
搜狐某处memcache未授权访问可探测内部其他服务器
Memcached作为缓存数据库,设计上本就不需要开启外网访问,所以运维同学注意一定要限制不对外网公开。在快的打车的案例中,主站的Memcache服务未授权访问,攻击者修改了缓存导致主页被篡改,影响非常严重。
FTP弱口令或匿名登录漏洞,一般指使用FTP的用户启用了匿名登录功能,或系统口令的长度太短、复杂度不够、仅包含数字、或仅包含字母等,容易被黑客攻击,发生恶意文件上传或更严重的入侵行为。黑客利用弱口令或匿名登录漏洞直接登录FTP服务,上传恶意文件,从而获取系统权限,并可能造成数据泄露。
漏洞案例
以第一个案例为例,新网的某服务器ftp服务存在弱口令ftp/ftp111,由于ftp服务通常用以上传和下载数据,所以服务器里的敏感信息被泄露,攻击者发现了大量的内部员工的个人信息包括姓名、邮箱、电话等。ftp服务通常由于配置问题还存在匿名访问的问题,如第二个案例所述,攻击者使用匿名账号anonymous登录海尔的运维系统,发现了大量的工具、密钥等敏感信息。
rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。如果对rsync配置的时候没有设定用户名密码,并且iptables中没有限定访问ip,则可能导致rsync服务被攻击者访问下载文件或者上传恶意脚本等,甚至服务器被沦陷。
漏洞案例
网易某站Rsync未授权访问(涉及大量备份文件/源码)
完美世界某rsync未授权访问泄露大量敏感信息
我们以完美世界rsync未授权访问漏洞为例来分析,完美世界某服务器默认端口开启了rsync服务,可被外网访问并且并未配置用户名密码,导致攻击者未授权访问rsync服务,泄露了整个linux服务器所有备份,并且网站源码、数据库配置信息泄露,可导致严重的数据泄露风险。
ElasticSearch是一款Java编写的企业级搜索服务,启动此服务默认会开放9200端口,可被非法操作数据。Elasticsearch的增删改查操作全部由http接口完成。由于Elasticsearch授权模块需要付费,所以免费开源的Elasticsearch可能存在未授权访问漏洞。该漏洞导致,攻击者可以拥有Elasticsearch的所有权限。可以对数据进行任意操作。业务系统将面临敏感数据泄露、数据丢失、数据遭到破坏甚至遭到攻击者的勒索。ElasticSearch旧版本曾经爆出命令执行漏洞,因此该服务最好不要暴露在外网中。
漏洞案例:
小米某服务器Elasticsearch Groovy命令执行
第一个案例中,360手机业务的一处Elasticsearch服务存在未授权访问漏洞,攻击者能够查询ES中所有的数据和节点信息;第二个案例,某站的Elasticsearch服务对外并且可授权访问,攻击者通过搜索ES中的数据发现了小米彩票的access log,确定为小米的服务器;攻击者还利用CVE-2015-1427 Elasticsearch Groovy 脚本远程代码执行漏洞,实现了执行任意命令,服务器基本沦陷。
DNS区域传送(DNS zone transfer)指的是一台备用服务器使用来自主服务器的数据刷新自己的域(zone)数据库,目的是为了做冗余备份,防止主服务器出现故障时 dns 解析不可用。然而主服务器对来请求的备用服务器未作访问控制,验证身份就做出相应故而出现这个漏洞。恶意用户可以通过dns域传送获取被攻击域下所有的子域名。会导致一些非公开域名(测试域名、内部域名)泄露。而泄露的类似内部域名,其安全性相对较低,更容易遭受攻击者的攻击,比较典型的譬如内部的测试机往往就会缺乏必要的安全设置。
漏洞案例
新浪某站dns域传送泄露漏洞
淘宝网dns域传送泄露漏洞
从网上公开的漏洞案例来看,很多政府部门、大学、互联网公司都曾有过类似的漏洞。以淘宝网dns域传送泄露漏洞来分析,攻击者在windows下使用nslookup命令,进入交互模式后设置默认服务器为taobao.com的DNS服务器地址,然后列出DNS服务器上taobao.com所有的子域名。
SNMP协议即简单网络管理协议(SNMP,Simple Network Management Protocol),cacti和mrtg等监控工具都是基于SNMP协议。SNMP在v1、v2c版本都是以明文传输数据库,可通过抓包或者嗅探的方式获取口令;v3版本加强了安全性,但如果使用的是弱口令,还是会导致信息泄露或者设置的配置被修改。
漏洞案例
中国电信大量网络设备SNMP弱口令(可登陆设备)
分析第一个案例,Kingsoft某站点开启了snmp服务,支持public弱口令,攻击者利用snmputil远程连接服务器,使用walk指令获取节点oid为.1.3.6.1.2.1.25.4.2.1.2的系统信息,包括操作系统版本、服务列表等等。
LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP,LDAP目录以树状的层次结构来存储数据。默认情况下LDAP允许匿名登录,在服务对公网开放的情况下,攻击者可通过工具连接LDAP服务器下载数据。
漏洞案例
欧朋LDAP服务匿名访问,内部大量泄露等!
南方周末LDAP匿名访问泄露敏感信息
我们以第一个案例为例进行分析,欧朋某服务器389端口LDAP服务对外网开放,并且允许匿名登录,攻击者利用工具连接服务器,从而获取到公司所有员工的邮箱账号,进而暴力破解出几个弱口令邮箱账户,登录邮箱后发现wifi密码、wiki密码、门禁密码等敏感信息,危害严重。
Hadoop是一款由Apache基金会推出的分布式系统框架,它通过著名的 MapReduce 算法进行分布式处理。Hadoop服务器如果没有配置访问认证,并且Web端口和服务端口对外开放,黑客可以通过命令行操作多个目录下的数据,如进行删除操作,安全风险高。
漏洞案例
新浪漏洞系列第六弹-大量hadoop应用对外访问
CC视频hadoop应用对外访问
内基梅隆大学(CMU)Hadoop集群敏感信息泄露
以第一个案例为例进行分析,攻击者发现新浪有十多台hadoop服务器端口对外开放,并且未做访问认证,攻击者直接访问web端口就可以查看hadoop集群的各种状态信息,可以下载任意文件,而且,如果 DataNode 的默认端口 50075 开放,攻击者可以通过 HDSF 提供的 restful API 对 HDFS 存储的数据进行操作。
4.1、除非必要,建议按照安全最小化原则,限制所有的服务端口限制对外网访问
4.2、添加服务授权验证,并且口令尽可能复杂
4.3、及时更新开源软件和商业软件的安全补丁,升级到最新的版本
4.4、在对服务进行配置时,需要仔细阅读有段权限验证的问题,如DNS域传送验证、FTP匿名登录等。
4.5、如非必要,尽量不要以root权限运行服务,以必要的最小权限运行为好
4.6、定时修改认证的口令,限制暴力破解等行为。
4.7、详细记录服务日
本文来自百度安全SiemPent Team,转载请注明出处及本文链接