应用程序在意料之外的时间展示页面,或者将用户重定向到不同的页面;
在没有营销活动的情况下,网络流量陡增。
不过,这些指标都不能明确地说明应用程序遭到了黑客入侵。但及早调查异常行为的原因总是好过出现了问题再去调查。所以要定期同生产环境中的应用程序进行交互以达到分析正常行为的目的。这样,一旦有异常行为就可以立即发现并展开调查。
征兆2:日志信息异常
如果设置得当,日志可以很好地提供攻击信息。Fahmida分析了如何从以下三类日志中发现异常的日志信息:
数据库日志:从数据库日志中可以查到意料之外的查询;如果数据库日志中短期内出现了多个错误,那么可能有人在尝试SQL注入;
Web服务器日志:Web服务器软件会记录出站和入站连接,并针对未经授权的访问或恶意活动记录警告信息;Web服务器通常只会发起到内部数据库的连接,如果存在到公网IP的连接,那么就需要检查一下原因;Web服务器同其它内部资源(如个人文件共享目录、个人电脑)通信也可能是一个遭到入侵的线索;
应用程序日志:如果应用程序创建了管理员级别的账户或者其它特权账户,就要验证下该账户是否合法;从应用程序日志中可以查到时间或地点异常的访问;如果与表单提交或页面加载相关的错误增加,那么有可能是页面遭到了修改。
征兆3:发现了新的进程、用户或任务
定期监控服务器进程,检测服务器何时产生了未知进程,或者已知进程在不正常的时间运行。未知进程通常是应用程序遭到入侵的重大线索。
定期监控服务器上用户的创建,尤其是那些请求提升权限的用户。如果某个用户不应该请求提升权限或进行root访问,那可能是攻击者使用了偷来的凭证。
定期检查Linux服务器上的crontab任务和Windows服务器上的Scheduled Tasks,并与正常的条目做对比。如果出现了新的任务,那可能是应用程序行为异常的线索。
征兆4:文件异常修改
攻击者可能会通过注入JavaScript或重写模块向应用程序添加恶意代码。检查文件时间戳,确保文件没有在未经授权的情况下被修改。如果文件被修改了,那么要搞清楚,与先前的版本相比发生了什么变化。有一些工具可以扫描应用程序查找恶意代码,如Sucuri。
Web根目录中出现新文件也是个问题,尤其是脚本或其它类型的可执行文件。如果在Web根目录或服务器上其它地方意外发现了新文件,那么攻击者可能正在利用应用程序向没有防备的访问者提供恶意软件,或者通过运行脚本将他们重定向到其它地方。
如果应用程序使用了第三方插件,那么要确保它们在升级或安装前会进行提示。
征兆5:收到警告信息
如果应用程序在积极传播恶意软件,那么其它安全工具可能会发现,比如浏览器会有安全提示。可以定期通过其它浏览器访问Web应用程序,看看是否有提示信息。此外,还要监控社交媒体和服务台上用户的抱怨邮件。
Fahmida还给出了发现问题后的处理方法。首先,备份应用程序和服务器,用于后续调查取证。如果要从备份还原,那么一定要确保备份中没有恶意软件。其次,应用程序还原完成后,修改所有的密码,包括CMS、管理员账户及个人服务的密码。必要时启用双重认证及设置VPN访问。另外,删除不必要的写权限,避免使用默认密码。最后,定期升级服务器及个人电脑的操作系统和第三方软件。