大多数针对 Web 应用程序的攻击都非常隐蔽,不容易发现。从 2015 威瑞森数据泄漏调查报告来看,攻击者平均可以在网络上潜伏 205 天不被发现。许多组织都是从其他人那里发现安全受到了威胁。近日,InfoWorld 资深编辑 Fahmida Y. Rashid 在一篇文章中分析了Web 应用程序遭黑客入侵的五大征兆,并提出了一些确保应用程序安全的建议。
征兆1:应用程序行为反常
应用程序监控是发现可疑行为的最好方式。 Fahmida 提到了以下几种异常行为:
- 从数据库中渲染结果页面的时间比以前长了;
- 应用程序在意料之外的时间展示页面,或者将用户重定向到不同的页面;
- 在没有营销活动的情况下,网络流量陡增。
不过,这些指标都不能明确地说明应用程序遭到了黑客入侵。但及早调查异常行为的原因总是好过出现了问题再去调查。所以要定期同生产环境中的应用程序进行交互以达到分析正常行为的目的。这样,一旦有异常行为就可以立即发现并展开调查。
征兆 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 访问。另外,删除不必要的写权限,避免使用默认密码。最后,定期升级服务器及个人电脑的操作系统和第三方软件。
感谢郭蕾对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ , @丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入 InfoQ 读者交流群)。
评论