资深的资安研究员数联资安研发处副总经理张裕敏表示,台湾企业使用微软.NET平台比例很高,若能掌握ASP .NET防御SQL Injection的3大关键,将有助于降低这类攻击。
iThome问:如何有效防堵SQL Injection的攻击?
张裕敏答:微软针对ASP .NET平台推出许多安全文件,教导开发人员做各种安全参数设定。目前可以从程序开发、与数据库程序的连结以及IIS 5.0服务器的设定等3方面着手进行。
问:开发ASP .NET该注意哪些参数的设定?
答:在ASP .NET平台,微软也提供各种Web UI组件供开发人员选择。透过设定这些Web UI组件,能够帮开发人员在进行各种特殊符号过滤、正规化表示式(Regular Expression),甚至是黑、白名单等设定,都有一些参数可以勾选,避免以前做ASP开发时,所有参数功能都必须自己写,而常常会出现挂一漏万的现象。
问:程序与后端数据库的连结上,需要注意什么?
答:SQL Injection主要发生原因在于,前端系统丢出的SQL查询语法不干净或有错误,导致后端服务器做了不当的反应。许多开发人员以往习惯直接透过SQL语法去查询后端数据库连结。比较好的作法则是,让前端SQL语法或指令,透过参数化程序的呼叫方式,存取后端的数据库。一旦前端SQL语法内含恶意符号时,后端数据库就不会做任何特殊反应。
问:网站服务器需要注意什么呢?
答:许多ASP .NET的企业用户,也都采用微软IIS 5.0网络服务器。在IIS服务器端的设定,主要特别针对Web Config设定档做参数设定。这样的参数设定从Cookie、View_State_到认证等,前后超过100多项设定。这些参数设得好,就可以提高Web Server的安全性。
问:什么是比较省力的IIS服务器设定方式?
答:这个省力的设定,主要是由中国大陆多人共同开发出来的「通用注入过滤器」。这是一个基于IIS系统的模块,核心由C++撰写。只要将该程序安装在IIS服务器上,就可以保护整个系统档案,预防被人利用ASP程序漏洞,进而被注入恶意语法,也可以防止数据库被下载。
目前中国大陆很多网站,都使用这样的通用注入过滤器,以降低SQL Injection的受害程度。文⊙黄彦棻
Mass SQL Injection 3阶段攻击方式
第1阶段 以Google Hacking找寻有SQL漏洞的网站服务器,植入恶意程序连结
黑客透过自动化机器人程序,利用Google搜寻引擎找出有SQL漏洞的网站服务器,大量植入恶意程序或恶意连结。台湾估计至少有超过10万台电脑受害。
第2阶段 藉由被受骇的网站服务器,对于浏览网站的计算机发动Adobe Flash漏洞攻击
黑客看准一般计算机使用者不会更新Adobe Flash的漏洞,藉由第一波受骇的网站,去感染更多连网的计算机。如果计算机的Flash漏洞没有修补,就会成为被黑客掌控的傀儡计算机。
第3阶段 下一步:大量傀儡网络与数据外泄
不论是大量SQL Injection攻击,或者是利用Adobe Flash漏洞发动攻击,都只是黑客在测试攻击成效的前哨站而已。当黑客确认攻击手法能有效达成目标后,就能够就可发动DDoS(分布式阻断式攻击)及窃取贩卖资料