2013年4月12日 星期五

Windows 軟體安全實務 - 緩衝區溢位攻擊:前言

全書目錄

我認為緩衝區溢位攻擊是資訊安全領域裡面最具攻擊性也是最不容易理解的技術之一,綜觀網路安全的歷史,最具影響力的病毒或者是網路蠕蟲都是透過緩衝 區溢位攻擊造成的,其概念是利用程式執行的漏洞,例如程式執行到一半當掉,無法正確處理輸入輸出資料,或者是不正常關閉的例外情況,趁著程式當掉或者出錯 的時候,設法讓被攻擊者執行攻擊者想要執行的指令或動作,此手法常被駭客當作武器使用,此書撰寫的時候,筆者在台灣不常看到有人將其解釋得清楚,很多的資 料是從大陸內地網站而來,或者資安高手所寫的文章和初學者之間斷層太大,令人難以理解,如果你嘗試在網路上找過類似的中文資料,不知道你對於搜尋到的結果 是不是會感到失望,坊間一些網路安全的中文書籍或多或少是從簡體翻譯成正體而來,用詞用語兩岸差異甚多,書中的例子也常因故無法執行,對有心想研究此技術 的人來說,很容易會感到挫折又不得其門而入,我決定將此攻擊手法剖析清楚,從 C 程式語言到 C++,從 Windows XP、Vista、以至於到 Windows 7,以正體中文把 Windows 上的緩衝區溢位攻擊手法解釋明白,讓對此領域有興趣的學習者可得其門而入,希望對華人的資訊安全領域有那麼一點點的幫助。

緩衝區溢位攻擊究竟可以作到什麼?在本書你會學到攻擊者如何透過一個 mp3 音樂檔案發動網路攻擊,只要播放該 mp3 檔案,被攻擊者的電腦就被控制了,或者是當受害者使用 QuickTime Player 播放一個特製的 mov 檔案的時候,電腦就被控制了,或者是攻擊者連上一個 FTP 網站,只要輸入特別設計的帳號和密碼,就可以取得該網站系統管理者的權限,這些到底是怎麼作到的?駭客怎樣可以透過文字檔、圖檔、音樂檔、Word 檔案、PDF 檔案、甚至是網路連線就入侵攻擊電腦?透過本書這一切都會變得很清楚,本書目的是希望透過分析攻擊者的手法進而闡明實務技術,進而幫助網路安全的防護工 作。

本書範例所提供的攻擊步驟雖屬筆者原創,但是所使用到的概念和原則,卻早已行之有年了,並不是嶄新的技術,而本書中所提到的安全漏洞,也並 非筆者發現或者首先公佈的,這些技術在世界上已有許多人在使用,針對一個安全漏洞能夠使用的攻擊步驟有千萬種變化,就好像面對同一個程式設計的問題,卻可 以有許多不同的程式設計方式來解決,我在本書拋磚引玉,提供自己的淺見與心得,希望能有一些啟發性。

閱讀本書的門檻並不困難,大致上有兩個,第一是讀者必須對網路安全有興趣,而且真的下定決心了解一般駭客平常故作高深所隱藏的秘密是什麼, 因為過程中難免有些繁複不容易理解的地方,有些時候為了達到一個簡單的目的,我必須把來龍去脈解釋清楚,中間繞來轉去,很需要讀者有耐心並且一直保持著求 知和好奇的態度,其他的門檻就是你大概必須對寫程式有一點經驗,一般大專院校一個學期左右的程式設計課程就足夠了,你不需要是程式設計的高手,如果之前沒 學過,那你可以選擇一個駭客這個時候會做的事,就是自學,駭客多半是自我學習的偏執狂,不會的東西只要有興趣,就會努力想辦法弄懂,如果將本書和目前公開 的相關出版品或者網路上可以搜尋得到的資料相比,至少在目前應該很難找到可相比較的讀物,因為類似的書籍或網路資料多半介紹的太淺,或者總是少了幾片重要 的拼圖,以至於讓這個技術常常被認為是很神秘的,因著個人因素,我決定將我的心得撰寫成書,以紀念我的家人。

閱讀完這本小書之後,並不會使你變成一個駭客,這並不是一本駭客養成的教學手冊,首先必須釐清的是,多數投身資訊安全領域的技術人員都會認 同,安全領域的範圍涵蓋相當廣,在實務上的應用與變化非常多,本書的主題「緩衝區溢位攻擊」只是當中小小的一部份而已,其他主題像是 SQL Injection、XSS 等這類針對 WWW 服務的攻擊、或者是暴力解密、Rainbow Table、非對稱式加解密協定漏洞等和密碼學有關的主題、或者是網路封包的解析、大規模網路掃描、區域網路或無線網路的安全相關的主題、或者是匿名網 路、網路跳板、代理伺服器、網路通道、穿透防火牆的相關主題,更不用說單純用搜尋引擎的攻擊主題討論、或者是病毒、木馬的撰寫、以及 Rootkits、反組譯工程等等,相關領域的主題實在是太廣泛了,任何一個網路協定都可以針對它的安全性來探討,例如 DNS 網域名稱服務,試想如果沒有 DNS 服務,現今所有網際網路的服務都將停擺,如果攻擊者控制了某個國家某個區域的 DNS 服務,該區域幾乎所有的網際網路功能都將是不安全的。我之所以會選擇「緩衝區溢位」這個主題來討論,是因為我自以為這是眾多網路攻擊當中殺傷力最大的,這 樣的攻擊具有強烈的不可敵擋性,不管是透過防火牆或防毒軟體都無效,例如我今天開放 HTTP 服務,不管我的防毒軟體或者防火牆怎麼設定,既然我架了網站開放了 HTTP,就是希望人家來連線,針對一個開放的服務來作攻擊,正是攻其無法防備之處,如果要防備,就必須把服務關掉,改寫程式碼,網站升級甚至重新架設, 如果將緩衝區溢位攻擊搭配其他的攻擊手法來使用,更是可以有許多變化,例如利用 Adobe Acrobat Reader 的緩衝區漏洞,大量寄送 Email 夾帶特製 PDF 檔案,當使用者一點開檔案電腦就被人控制,防火牆或防毒軟體完全無法防範這種攻擊,這些都是緩衝區溢位的攻擊威力,我希望透過本書可以讓讀者了解什麼樣的 情況下是危險的?什麼樣的情況下不是?又到底這樣的攻擊是怎麼作到的?它是在什麼樣的條件和環境下才會發生?我期待這本小書可以讓這些事情透明在陽光之下。

我衷心期待本書的內容,是讓網路安全往好的方向發展,唯有理解攻擊者的手法,才能夠遏止或者預防,如果有年輕同學對本書有興趣,我想說所謂 的黑客行為一點也不酷,電影的誇張以及大眾的誤解讓某些人飄飄然地做出一些沒有智慧的事,本書會告訴你其實很多網路攻擊背後所使用的技術,其困難度並不比 一般大學理工科系所教授的基礎微積分要來得高;我以為能夠開創技術或幫助社群,那才是真的困難,那樣的行為才真的很酷!

以國家層級來說,網路安全勢必是未來國防的趨勢和重點,我們可以拭目以待,我以為不可輕忽這一塊的教育以及人才培養。

這本小書是我的處女作,完全免費開放在網路上提供閱讀以及下載,還請各方網路朋友們不吝指教,惟討論或引用其中內容之時,請提及本站網址,確保網頁連結的正確性,由衷感謝。

這本書是為了紀念 fon909。

民國 100 年 12 月 6 日

3 則留言:

  1. 謝謝大大的無私分享!!!
    目前看到第三章,一步一步向前邁進中~

    回覆刪除
    回覆
    1. 很高興能有幫助,如果有機會多多幫忙分享囉!! :)

      刪除
  2. 買了一本書, 拜讀中

    回覆刪除