随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站VIP会员密码泄露大多就是通过Web表单递交查询字符实现的,这类表单特别容易受到SQL注入式攻击。
SQL注入攻击的原理本身非常简单,相关攻击工具容易下载,攻击者获得权限后有利可图。这使得它成为最有效的、攻击者最常采用的Web入侵手段,是众多网站成为恶意代码传播平台的起因之一。
针对这一攻击手段,安全专家认为,最根本的措施是对Web应用的用户输入进行过滤。并针对Web应用的基本特性,对Web应用的整体安全工作采取以下具体措施:
1、Web应用安全评估:结合应用的开发周期,通过安全扫描、人工检查、渗透测试、代码审计、架构分析等方法,全面发现Web应用本身的脆弱性及系统架构导致的安全问题。应用程序的安全问题可能是软件生命周期的各个阶段产生的,其各个阶段可能会影响系统安全的要点主要有:
2、Web应用安全加固:对应用代码及其中间件、数据库、操作系统进行加固,并改善其应用部署的合理性。从补丁、管理接口、账号权限、文件权限、通信加密、日志审核等方面对应用支持环境和应用模块间部署方式划分的安全性进行增强。
3、对外部威胁的过滤:通过部署Web防火墙、IPS等设备,监控并过滤恶意的外部访问,并对恶意访问进行统计记录,作为安全工作决策及处置的依据。
4、 Web安全状态检测:持续地检测被保护应用页面的当前状态,判断页面是否被攻击者加入恶意代码。同时通过检测Web访问日志及Web程序的存放目录,检测是否存在文件篡改及是否被加入Web Shell一类的网页后门。
5、事件应急响应:提前做好发生几率较大的安全事件的预案及演练工作,力争以最高效、最合理的方式申报并处置安全事件,并整理总结。
6、 安全知识培训:让开发和运维人员了解并掌握相关知识,在系统的建设阶段和运维阶段同步考虑安全问题,在应用发布前最大程度地减少脆弱点。
在现在和将来,由于受互联网地下黑色产业链中盗取用户账号及虚拟财产等行为的利益驱动,攻击者仍将Web应用作为传播木马等恶意程序的主要手段。尽管这会对广大的运维人员和安全工作者造成很大的工作压力,但是通过持续不断地执行并改进相关安全措施,可以最大限度地保障Web应用的安全,将关键系统可能发生的风险控制在可接受的范围之内。