Apache是全球使用最多的Web Server之一,近期Apache的官网被黑客入侵了,根据apache网站的描述,分析了下黑客的思路。大概包含5个过程,虽然道路曲折,但黑客快速通关,一步一步的接近目标,有很多可圈可点的地方,还是相当精彩的。可惜最后people.apache.org没搞下来,否则可以写小说拍电影了,不过男女主角不能是aXi和aJiao。
1、通过跨站漏洞社工了几个管理员,获得JIRA(一个项目管理程序)后台管理权限,并修改相关设置,上传jsp木马。
2、在后台看到其他用户的帐号,通过登陆入口暴力跑密码,破解了几百个帐号。
官方说是“At the same time as the XSS attack”,我不这么认为,我认为是获取后台之后,能看到帐号了,才可以高效率的破解密码。如果不通过后台就可以破解几百个帐号,那这个事情早就发生了。
3、部署了一个JAR,可以记录登陆帐号及密码,然后用JIRA的系统发邮件给apache的管理人员说:“JIRA出现故障了,请你使用邮件里的临时密码登陆,并修改密码”,相关人员登陆了,并把密码修改成自己常用的密码,当然,这些密码都被记录下来了 :)
4、正如黑客所算计的,上述被记录的密码中,有密码可以登陆brutus.apache.org,更让黑客开心和省心的是,这个可以登陆的帐号竟然具备完全的sodu权限,提权都不用提了,直接就是root,真是爽的一塌糊涂啊。而这个被root的brutus.apache.org上面跑着JIRA、Confluence和Bugzilla。
5、brutus.apache.org上的部分用户保存了subversion的密码,黑客用这些密码登陆了people.apache.org,但是并没获得其他权限。这个people.apache.org可是apache的主服务器之一,如果root了这个机器,那基本可以获得所有apache主要人员的密码了。可惜,黑客们功亏一篑。
整个故事到此结束,下面说说Apache是如何发现自己被入侵的。
根据apache官方的描述“About 6 hours after they started resetting passwords, we noticed the attackers and began shutting down services”,我猜测apache是因为黑客重设了用户密码这个行为才发现被入侵的。
如果说的是黑客重设的是JIRA的密码,那么就是因为黑客做戏没做足全套导致的,可能apache管理人员上去看之后,发现没啥问题,被忽悠了。
如果说的是黑客重设其他密码,我想不到整个过程中还需要重设什么其他的密码。
我还是对apache的安全措施非常好奇,到底是如何发现的?到底是相关人员安全敏感度高呢,还是黑客留下了一些痕迹被安全检查措施发现了。如果是后者的话,检查周期又是多长呢?24小时?
经验教训:
回头再看看黑客的整个攻击过程,相信在细节上会有很多可以吸取教训的地方。从长远来看,可以加强安全意识培训、实施SDL安全开发生命周期、日志集中分析、主机入侵检测系统等等,这些都是需要企业的安全部门长期投入去做的事情;相对短平快的方法是要求重要的人员、重要的应用、重要的系统使用双因素动态密码认证。