大多数针对Web应用程序的攻击都非常隐蔽,不容易发现。从2015威瑞森数据泄漏调查报告来看,攻击者平均可以在网络上潜伏205天不被发现。许多组织都是从其他人那里发现安全受到了威胁。近日,InfoWorld资深编辑Fahmida Y. Rashid在一篇文章中分析了Web应用程序遭黑客入侵的五大征兆,并提出了一些确保应用程序安全的建议。
应用程序监控是发现可疑行为的最好方式。Fahmida提到了以下几种异常行为:
不过,这些指标都不能明确地说明应用程序遭到了黑客入侵。但及早调查异常行为的原因总是好过出现了问题再去调查。所以要定期同生产环境中的应用程序进行交互以达到分析正常行为的目的。这样,一旦有异常行为就可以立即发现并展开调查。
如果设置得当,日志可以很好地提供攻击信息。Fahmida分析了如何从以下三类日志中发现异常的日志信息:
定期监控服务器进程,检测服务器何时产生了未知进程,或者已知进程在不正常的时间运行。未知进程通常是应用程序遭到入侵的重大线索。
定期监控服务器上用户的创建,尤其是那些请求提升权限的用户。如果某个用户不应该请求提升权限或进行root访问,那可能是攻击者使用了偷来的凭证。
定期检查Linux服务器上的crontab任务和Windows服务器上的Scheduled Tasks,并与正常的条目做对比。如果出现了新的任务,那可能是应用程序行为异常的线索。
攻击者可能会通过注入JavaScript或重写模块向应用程序添加恶意代码。检查文件时间戳,确保文件没有在未经授权的情况下被修改。如果文件被修改了,那么要搞清楚,与先前的版本相比发生了什么变化。有一些工具可以扫描应用程序查找恶意代码,如Sucuri。
Web根目录中出现新文件也是个问题,尤其是脚本或其它类型的可执行文件。如果在Web根目录或服务器上其它地方意外发现了新文件,那么攻击者可能正在利用应用程序向没有防备的访问者提供恶意软件,或者通过运行脚本将他们重定向到其它地方。
如果应用程序使用了第三方插件,那么要确保它们在升级或安装前会进行提示。
如果应用程序在积极传播恶意软件,那么其它安全工具可能会发现,比如浏览器会有安全提示。可以定期通过其它浏览器访问Web应用程序,看看是否有提示信息。此外,还要监控社交媒体和服务台上用户的抱怨邮件。
Fahmida还给出了发现问题后的处理方法。首先,备份应用程序和服务器,用于后续调查取证。如果要从备份还原,那么一定要确保备份中没有恶意软件。其次,应用程序还原完成后,修改所有的密码,包括CMS、管理员账户及个人服务的密码。必要时启用双重认证及设置V**访问。另外,删除不必要的写权限,避免使用默认密码。最后,定期升级服务器及个人电脑的操作系统和第三方软件。