2008年6月10日 星期二

老掉牙的SQL Injection卻造成你的網站在裸奔@@

這個標題是從[ 黑暗執行緒 ]的文章[ 你的網站正在裸奔嗎? ]借過來用的。

引用該文章幾句的經典名句:

  • SQL Injection真的是老掉牙的話題了,很不幸地,它卻始終是導致資安事件的主要凶手之一。
  • 原本應該要固若金湯的網站系統,資料庫被公開後,這下跟在大街上裸奔沒有兩樣。
  • 經典好文:你的網站在裸奔嗎? 一個SQL Injection實例的啟示 (作者:李明儒)

--------------------------------------------------------------------

##CONTINUE##

那為什麼我還要重新再點出這個老掉牙的議題?

先來看看2008/5月所發生的幾則新聞:

--------------------------------------------------------------------

iThome 相關新聞:

爆量SQL Injection攻擊自動化 上千個臺灣網站遭攻擊

趨勢:駭客發動大規模攻擊 十萬中文網頁淪陷

駭客收割SQL Injection成果 發動Flash零時差攻擊

--------------------------------------------------------------------

阿碼科技

台灣網站遭受有史以來最大規模SQL Injection 攻擊
新型態的Mass SQL Injection在台上演

引用該文章幾句的經典名句:

這一種類型的攻擊,從今年四月底開始在國外大量出現,至今在亞洲演變為大規模網站攻擊事件。與以往資料隱碼入侵(SQL Injection)有幾點不同之處值得注意。

1. 無特定目標之大規模攻擊。以往的掛馬攻擊多針對特定的網站,且是駭客使用手動工具完成。

2. 使用Google Hacking而非網頁爬行(crawling),攻擊程式自動使用搜尋引擎,找出目標網站來散布(詳細手法請來信詢問)。

3. 自動化SQL Injection感染網站: 此波攻擊把網馬掛入網頁的手法,非針對特定廠商(如微軟)之漏洞,而是針對各網站自家寫的程式中之SQL Injection漏洞。攻擊程式自動化SQL Injection,大量插入惡意連結到受害Database中,其結果有二;一、攻擊成功,網頁遭插入惡意連結;二、攻擊失敗,但導致網站頁面內容被破壞。

4. 自動化SQL Injection加上自動化搜尋引擎尋找目標,已在短時間內感染大量網站並加以掛馬,並造成嚴重災情(一天感染達到2萬網站)。是以往人工入侵方式數量的數百倍以上。

5. 新型態自動化Web攻擊,入侵層面不但廣且深入。 將形成難以估計的新型態殭屍網路(Botnet)。犯罪集團佈局將引發網災,現有攻擊所植入的網頁連結,有一半以上不會立即發生危害,因此未被防護軟體標識為惡意網站。推測犯罪集團在進行大規模網站佈局,等待下一個瀏覽器零時差攻擊(Zero Day Attack) 出現後大量收割。

--------------------------------------------------------------------

黑暗執行緒

游擊式的SQL Injection攻擊

引用該文章幾句的經典名句:

傳統印象中,SQL Injection要設法取得欄位名稱資訊,以偷出資料或從事破壞為樂。但是要進行這些操作,通常得仰賴網站傳回錯誤訊息的細節才能提供繼續深入的情報。近年來,很多網站預設都已開啟Custom Error Page,讓手工操作入侵的難度變高。不過,也開發現一些新的攻擊趨勢:

1. 駭客圈已流傳一些現成的SQL注入工具,裡面已針對ORACLE、SQL、MySQL、Access等各家資料庫寫好預設的多組測試Script,不需要耐性過人也不必做苦工,交給工具快速試過一輪即可輕鬆得手。再配合Google找尋獵物,亂槍打鳥之下,就算你的網站沒什麼名氣都可能中鏢。

2. 除了有心駭客設法要破解網站盜取資訊,還有一種打遊擊式的SQL Injection攻擊,把全部的攻擊指令濃縮成一行QueryString,四處亂試主機,成功就爽到,失敗了不過浪費幾百個Bytes的頻寬,是穩賺不賠的生意。而攻擊指令是假設資料庫的內容會被當成HTML顯示在網站上,所以只要找出SQL資料庫中所有的varchar, nvarchar, ntext, text欄位,在後方加上一段<script src=”用來載入木馬的js檔案”>,就可以將網站當成感染源,達到廣種木馬的目標。

"... 僅使用一行網站Request 就完成入侵,將惡意連結注入到後端的資料庫裡面,同時可以更改所有資料庫中可運用的表格,因為僅短短一行注入攻擊碼在網站Log稽核檔案中很難發現。即使網站已經關閉錯誤回應訊息(一般防堵SQL Injection的作法),只要注入點未作輸入資料驗證,此攻擊仍然可以成功,導致誤認已經關閉錯誤訊息就可以高枕無憂的網站,大量遭到入侵。 ..."

--------------------------------------------------------------------

所以:

如果身為網站管理員的你,以前因為[ 僥倖而沒被攻擊 ]或[ 一直被重複攻擊 ]請不要聽信任何來路不明的解決方案。

記得[ 採買任何的硬體設備阻擋只是一時的治標 ] 只有 [ 確實改善網頁程式的撰寫安全才能治本 ]。

--------------------------------------------------------------------

相關撰寫安全的程式與架構的資源:

Microsoft 網站關於安全性開發的資源:

設計安全 Web 應用程式的指導方針

增強 Web 應用程式的安全性

安全性的架構及設計檢閱

程式碼存取安全性實務

程式碼的檢閱

如何預防跨網站指令碼的安全性問題

建置安全的 ASP.NET 網頁和控制項

建置安全的 ASP.NET 應用程式: 驗證、授權和安全通訊

建置安全的服務元件

建置安全的組件

建置安全的資料存取

建置安全的遠端元件

第 5 單元:內部網路安全性

第 6 單元:外部網路安全性

部署過程的檢閱

『資料隱碼』SQL Injection的源由與防範之道

SQL Injection (資料隱碼)– 駭客的 SQL填空遊戲(上)

SQL Injection (資料隱碼)– 駭客的 SQL填空遊戲(下)

Vulnerability in Word Could Allow Remote Code Execution

 

PHP 開發安全:

如何開發夠安全的PHP網頁?

http://anti-hacker.blogspot.com/2008/06/sql-injection.html

0 張貼意見:

 
Blogger Template Layout Design by [ METAMUSE ] : Code Name BlackCat 2.0.0