SQL注入技术
TalkTalk的信息泄漏事件導致約15萬人的敏感信息被暴露,涉嫌造成這一事件的其中一名黑客使用的并不是很新的技術。事實上,該技術的「年紀」比這名15歲黑客還要大兩歲。
[譯注:TalkTalk是英國電話和寬帶供應商,這件信息安全事故發生在2015年10月份,當時這件事情還挺轟動的,上了新聞頭條,其中一名黑客年僅15歲。]
這項技術就是大名鼎鼎的SQL注入,所謂SQL注入就是黑客在網站的提交表單數據中輸入惡意命令從而獲取數據的方法。它曾經被用來竊取世界衛生組織員工的信息,偷過華爾街日報數據,甚至還攻擊過美國聯邦政府機構。
“這是最簡單的黑客技術”,w0rm 告訴 Motherboard[譯者注:Motherboard就是這篇文章原文所在網站],他是一名匿名黑客,聲稱對華爾街日報的攻擊負責。整個攻擊過程只用了幾個小時。
但是,正因為它是比較簡單的技術,同時經常被用來從公司或者政府機構竊取數字信息,所以SQL注入攻擊應該相對來說比較容易防范才對。
但為何到了2015年,SQL注入攻擊仍然能導致最大規模的信息泄漏事件呢?
有跡可循的最早SQL注入攻擊的記錄大概是Jeff Forristal在黑客雜志Phrack上發表的文章。Forristal當時是rain.forest.puppy的掌舵人[譯者注:rain.forest.puppy是一個安全咨詢組織,或者說,是個黑客團隊?:)],他目前在網絡安全公司Bluebox,負責移動安全方面的CTO。
“微軟聲稱,你看到的都不是問題,所以不用費心去處理它”
[譯者注:這是有人給微軟報告SQL server這個漏洞時,微軟的回復]
SQL, 全稱為結構化查詢語言,是一種用來管理數據庫的編程語言。本質上說,他就是被網站用來從數據庫中提取一些數據來處理或者展示給用戶的。
但是Forristal發現,當輸入特定的命令時,會導致服務器泄漏信息。“用戶可能捎帶一些自己的SQL語句”,他寫道。
在Phrack的1998年12月份期刊上,Forristal發表了微軟的SQL server的一系列SQL注入的問題。當Forristal的同事們向微軟反饋此問題時,“他們的回答是:好了,別鬧了”,他寫道,“他們說,你看到的都不是問題,所依別費心去處理了”
SQL注入發展到今天,已經過去了15年,在OWASP組織每三年發表一次的OWASP的Top 10問題上,SQL注入攻擊經常坐上榜首的位置。OWSAP全稱是開放式Web應用程序安全項目(Open Web Application Security Project),它是一個監控網站面臨哪些安全威脅的非盈利性組織。
Phrack現在的logo
“SQL注入經常是第一威脅,主要反映在相關攻擊事件的數量上,同時還有一些其他因素導致它如此頻發,” Troy Hunt在Motherboard的一次電話采訪中如是說道,Troy Hunt是攻擊檢測網站haveibeenpwned.com的創始人[譯者注:感覺像是一個社工庫]。
“當你訪問一個網頁時,你發出一個請求,然后渲染服務器返回的數據”, Hunt介紹,“舉個例子,你看一篇新聞,在地址欄上使用id=‘1’來發出請求時,服務器返回編號為1的文章,把id改成2的時候,服務器返回編號為2的文章”
但是,“使用SQL注入攻擊,攻擊者可能會將ID字段改成一個其他什么東西,導致服務器做一些意料之外的事情”,Hunt繼續說到,比如返回一些隱私數據。
一次攻擊也許只返回一條或者一段信息,于是攻擊者就“不斷重復攻擊,一次又一次,想干幾次干幾次,直到他們獲取到所有數據為止”,Hunt說。
顯然,這需要一段比較長的時間,所以,黑客一般會使用自動化工具。其中比較具有代表性的事Havij,“這是最流行的腳本小工具,因為它支持Windows操作系統,而且還有個圖形界面”, Mustafa AI-Bassam通過在線聊天工具和Motherboard如此描述,他是一名安全研究員,同時還是一名LulzSec黑客組織的前成員。
另一個經常被用到的工具是 sqlmap 。“它可以爬取網站的頁面,就像搜索引擎的爬蟲,尋找網站中所有輸入表單,然后提交一些可能導致MySQL語法錯誤的數據”, AI-Bassam繼續介紹。
當攻擊者找到一個攻擊點,接下來就很容易自動化開搞了。
sqlmap的界面
“他們會使用Google來搜索那些典型的容易受到SQL注入腳本攻擊的URL”, AI-Bassam說。“他們還經常使用腳本來檢查所有URL,用自動化的方法來試探是否存在漏洞”
“你甚至可以教一個4歲的孩子來做這種事情[譯者注:汗~~我還不如個4歲的孩子]”, AI-Bassam補充道,強調這整個過程簡單到令人發指的地步。確實,Hunt就曾經上傳過一個視頻,視頻上顯示他是怎么教他3歲的兒子用Havij來實施SQL注入攻擊的[譯者注:這是真愛啊,我堅決不會讓我女兒走上計算機這條不歸路]
“你把要攻擊的URL輸入進來,然后所有數據就出來了”,Hunt向Motherboard介紹道。在YouTube上有太多教程來介紹如何實施SQL注入攻擊了。
事實上,已經有很多解決方案被網站開發人員用來防止SQL注入攻擊了和避免客戶信息或者公司信息泄漏了。而且那些解決方案一經存在好幾年了。
所有這些解決方案的核心都是采用“prepared statments” (預編譯聲明?): 當SQL語句在數據庫中執行是,絕對不能直接執行用戶的輸入。
如果這些解決方案直接有效,那為何SQL注入攻擊還是這么猖獗呢?
“使用prepared staement的好處是它們可以從語義層面上杜絕任何在開發者意料之外的輸入,這些輸入可以通過構造一些SQL語法,讓數據庫查詢語句從任意一張數據表中獲取一條額外的數據”,Mike Schema在給Motherboard的一封email中如此說導,他是雅虎的一名高級經理、軟件工程師。
另外一種做法是“使用SQL庫對用戶輸入做一些凈化操作”,AI-Bassam建議。簡而言之,就是將輸入中任何潛在的惡意部分去除掉。
那么,如果SQL注入如此簡單,以至于小孩子都能用,而且解決方案又這么直接有效,為什么SQL注入攻擊還這么猖獗呢?
“任何一名嚴謹的程序員都應該知道SQL注入攻擊,但是仍然有大量的程序員缺乏經驗,所以公司在雇傭某人的是偶,他可能沒有受到過任何關于如何消除風險的訓練”, AI-Bassam指出。除此之外,“他們的經理們往往只要求開發出能用的軟件,而不是安全的軟件”。
來自雅虎的Schema也認同這一點,并且補充“有些時候,一些小應用功能有限,要求很快就把東西做出來”,導致開發者經常忽略一些應對各種攻擊的工作,盡管他們實施起來也不是很困難。
Hunt不是那么寬容,他也不認同所有的過錯都來自于高層管理的壓力。相反,他認為現在有網上有這么多教程詳細的向開發人員講解如何避免SQL注入攻擊,對,是詳細的教程,不僅僅是一些好的建議。“這些年,我看到很多有關如何避免明顯的SQL注入風險的教程”,他說到。
隨著互聯網黑客們不停的在YouTube上分享他們的SQL注入攻擊經驗,網站的開發者們也沒有閑著。“我們有能力的人站出來,分享他們的專業知識,而不僅僅是把自己的事情做好就行了”,Hunt說。
最后,這些網站的安全和他們的數據安全歸根到底還是網站開發者自己負責的。這意味著SQL注入攻擊和漏洞還會存在,至少在未來一段時間內不會消失。[譯者注:估計原作者的意思是安全還是由開發者自己負責,不在于黑客不去攻擊,自己開發的時候不注意,還是沒辦法避免被攻破的~~]
轉載于:https://www.cnblogs.com/yangshunde/p/7738670.html
總結
- 上一篇: 世嘉公司遭****** LulzSec称
- 下一篇: 引文数据库