互聯網安全一窺
在互聯網時代,數據安全與個人隱私受到了前所未有的挑戰,各種新奇的攻擊技術層出不窮。信息本來是安全的,自從有了研究安全的人之后,互聯網就變得不安全了。
起初,研究計算機系統和網絡的人,被稱為“Hacker”,他們對計算機系統有著深入的理解,因此往往能夠發現其中的問題。“Hacker”在 中國按照音譯,被稱為“黑客”。在計算機安全領域,黑客是一群破壞規則、不喜歡被拘束的人,因此總想著能夠找到系統的漏洞,以獲得一些規則之外的權力。
對于現代計算機系統來說,在用戶態的最高權限是 root(administrator),也是黑客們最渴望能夠獲取的系統最高權限。“root”對黑客的吸引,就像大米對老鼠的吸引,美女對色狼的吸引。
不想拿到“root”的黑客,不是好黑客。漏洞利用代碼能夠幫助黑客們達成這一目標。黑客們使用的漏洞利用代碼,被稱為“exploit”。在 黑客的世界里,有的黑客,精通計算機技術,能自己挖掘漏洞,并編寫 exploit;而有的黑客,則只對攻擊本身感興趣,對計算機原理和各種編程技術的了解比較粗淺,因此只懂得編譯別人的代碼,自己并沒有動手能力,這種黑 客被稱為“Script Kids”,即“腳本小子”。在現實世界里,真正造成破壞的,往往并非那些挖掘并研究漏洞的“黑客”們,而是這些腳本小子。而在 今天已經形成產業的計算機犯罪、網絡犯罪中,造成主要破壞的,也是這些“腳本小子”。
中國黑客簡史
中國黑客的發展分為幾個階段,到今天已經形成了一條黑色產業鏈。
筆者把中國黑客的發展分為了:啟蒙時代、黃金時代、黑暗時代。
首先是啟蒙時代,這個時期大概處在 20 世紀 90 年代,此時中國的互聯網也剛剛處于起步階段,一些熱愛新興技術的青年受到國外黑客技術的影響,開始研究安全漏洞。啟蒙時代的黑客們大多是由于個人愛好而走 上這條道路,好奇心與求知欲是驅使他們前進的動力,沒有任何利益的瓜葛。這個時期的中國黑客們通過互聯網,看到了世界,因此與西方發達國家同期誕生的黑客 精神是一脈相傳的,他們崇尚分享、自由、免費的互聯網精神,并熱衷于分享自己的最新研究成果。
接下來是黃金時代,這個時期以中美黑客大戰為標志。在這個歷史背景下,黑客這個特殊的群體一下子幾乎吸引了社會的所有眼球,而此時黑客圈子所宣 揚的黑客文化以及黑客技術的獨特魅力也吸引了無數的青少年走上這條道路。自此事件后,各種黑客組織如雨后春筍般冒出。此階段的中國黑客,其普遍的特點是年 輕,有活力,充滿激情,但在技術上也許還不夠成熟。此時期黑客圈子里販賣漏洞、惡意軟件的現象開始升溫,同時因為黑客群體的良莠不齊,也開始出現以贏利為 目的的攻擊行為,黑色產業鏈逐漸成型。
最后是黑暗時代,這個階段從幾年前開始一直延續到今天,也許還將繼續下去。在這個時期黑客組織也遵循著社會發展規律,優勝劣汰,大多數的黑客組 織沒有堅持下來。在上一個時期非常流行的黑客技術論壇越來越缺乏人氣,最終走向沒落。所有門戶型的漏洞披露站點,也不再公布任何漏洞相關的技術細節。
伴隨著安全產業的發展,黑客的功利性越來越強。黑色產業鏈開始成熟,這個地下產業每年都會給互聯網造成數十億的損失。而在上一個時期技術還不成 熟的黑客們,凡是堅持下來的,都已經成長為安全領域的高級人才,有的在安全公司貢獻著自己的專業技能,有的則帶著非常強的技術進入了黑色產業。此時期的黑 客群體因為互相之間缺失信任已經不再具有開放和分享的精神,最為純粹的黑客精神實質上已經死亡。
整個互聯網籠罩在黑色產業鏈的陰影之下,每年數十億的經濟損失和數千萬的網民受害,以及黑客精神的死亡,使得我們沒有理由不把此時稱為黑暗時代。也許黑客精神所代表的 Open、Free、Share,真的一去不復返了!
黑客技術的發展歷程
從黑客技術發展的角度看,在早期,黑客攻擊的目標以系統軟件居多。一方面,是由于這個時期的 Web 技術發展還遠遠不成熟;另一方面,則是因為通過攻擊系統軟件,黑客們往往能夠直接獲取 root 權限。這段時期,涌現出了非常多的經典漏洞以及“exploit”。比如著名的黑客組織 TESO,就曾經編寫過一個攻擊 SSH 的 exploit,并公然在 exploit 的 banner 中宣稱曾經利用這個 exploit 入侵過 cia.gov(美國中央情報局)。
下面是這個 exploit 的一些信息。
有趣的是,這個 exploit 還曾經出現在著名電影《黑客帝國2》中:
電影《黑客帝國2》
電影《黑客帝國2》
放大屏幕上的文字可以看到:
電影《黑客帝國2》中使用的著名 exploit
在早期互聯網中,Web 并非互聯網的主流應用,相對來說,基于 SMTP、POP3、FTP、IRC 等協議的服務擁有著絕大多數的用戶。因此黑客們主要的攻擊目標是網絡、操作系統以及軟件等領域,Web 安全領域的攻擊與防御技術均處于非常原始的階段。
相對于那些攻擊系統軟件的 exploit 而言,基于 Web 的攻擊,一般只能讓黑客獲得一個較低權限的賬戶,對黑客的吸引力遠遠不如直接攻擊系統軟件。
但是時代在發展,防火墻技術的興起改變了互聯網安全的格局。尤其是以 Cisco、華為等為代表的網絡設備廠商,開始在網絡產品中更加重視網絡安全,最終改變了互聯網安全的走向。防火墻、ACL 技術的興起,使得直接暴露在互聯網上的系統得到了保護。
比如一個網站的數據庫,在沒有保護的情況下,數據庫服務端口是允許任何人隨意連接的;在有了防火墻的保護后,通過 ACL 可以控制只允許信任來源的訪問。這些措施在很大程度上保證了系統軟件處于信任邊界之內,從而杜絕了大部分的攻擊來源。
2003年的沖擊波蠕蟲是一個里程碑式的事件,這個針對 Windows 操作系統 RPC 服務(運行在 445 端口)的蠕蟲,在很短的時間內席卷了全球,造成了數百萬臺機器被感染,損失難以估量。在此次事件后,網絡運營商們很堅決地在骨干網絡上屏蔽了 135、445等端口的連接請求。此次事件之后,整個互聯網對于安全的重視達到了一個空前的高度。
運營商、防火墻對于網絡的封鎖,使得暴露在互聯網上的非 Web 服務越來越少,且 Web 技術的成熟使得 Web 應用的功能越來越強大,最終成為了互聯網的主流。黑客們的目光,也漸漸轉移到了 Web 這塊大蛋糕上。
實際上,在互聯網安全領域所經歷的這個階段,還有另外一個重要的分支,即桌面軟件安全,或者叫客戶端軟件安全。其代表是瀏覽器攻擊。一個典型的攻擊 場景是,黑客構造一個惡意網頁,誘使用戶使用瀏覽器訪問該網頁,利用瀏覽器中存在的某些漏洞,比如一個緩沖區溢出漏洞,執行 shellcode,通常是下載一個木馬并在用戶機器里執行。常見的針對桌面軟件的攻擊目標,還包括微軟的 Office 系列軟件、Adobe Acrobat Reader、多媒體播放軟件、壓縮軟件等裝機量大的流行軟件,都曾經成為黑客們的最愛。但是這種攻擊,和本書要 討論的 Web 安全還是有著本質的區別,所以即使瀏覽器安全是 Web 安全的重要組成部分,但在本書中,也只會討論瀏覽器和 Web 安全有關的部分。
Web 安全的興起
Web 攻擊技術的發展也可以分為幾個階段。在 Web 1.0時代,人們更多的是關注服務器端動態腳本的安全問題,比如將一個可執行腳本(俗稱 webshell)上傳到服務器上,從而獲得權限。動態腳本語言的普及,以及 Web 技術發展初期對安全問題認知的不足導致很多“血案”的發生,同時也遺留下很多歷史問題,比如 PHP 語言至今仍然只能靠較好的代碼規范來保證沒有文件包含漏洞,而無法從語言本身杜絕此類安全問題的發生。
SQL 注入的出現是 Web 安全史上的一個里程碑,它最早出現大概是在 1999 年,并很快就成為 Web 安全的頭號大敵。就如同緩沖區溢出出現時一樣,程序員們不得不日以繼夜地去修改程序中存在的漏洞。黑客們發現通過 SQL 注入攻擊,可以獲取很多重要的、敏感的數據,甚至能夠通過數據庫獲取系統訪問權限,這種效果并不比直接攻擊系統軟件差,Web 攻擊一下子就流行起來。SQL 注入漏洞至今仍然是 Web 安全領域中的一個重要組成部分。
XSS(跨站腳本攻擊)的出現則是 Web 安全史上的另一個里程碑。實際上,XSS 的出現時間和 SQL 注入差不多,但是真正引起人們重視則是在大概 2003年以后。在經歷了 MySpace 的 XSS 蠕蟲事件后,安全界對 XSS 的重視程度提高了很多,OWASP 2007 TOP 10威脅甚至把 XSS 排在榜首。
伴隨著 Web 2.0的興起,XSS、CSRF 等攻擊已經變得更為強大。Web 攻擊的思路也從服務器端轉向了客戶端,轉向了瀏覽器和用戶。黑客們天馬行空的思路,覆蓋了 Web 的每一個環節,變得更加的多樣化,這些安全問題,在本書后續的章節中會深入地探討。
Web 技術發展到今天,構建出了豐富多彩的互聯網。互聯網業務的蓬勃發展,也催生出了許多新興的腳本語言,比如 Python、Ruby、NodeJS 等,敏捷開發成為互聯網的主旋律。而手機技術、移動互聯網的興起,也給 HTML 5帶來了新的機遇和挑戰。與此同時,Web 安全技術,也將緊跟著互聯網發展的腳步,不斷地演化出新的變化。
本文節選自《白帽子講 Web 安全》,吳翰清著,由電子工業出版社發行。
來自: www.programmer.com.cn