- 軟件開發安全之道:概念、設計與實施
- (美)洛倫·科恩費爾德
- 1228字
- 2024-01-31 18:37:17
2.1 對抗性視角
利用漏洞的行為是我們在現實世界中接觸過的、最接近“魔法咒語”的東西。首先我們組織正確的咒語,然后對設備執行遠程控制。——霍爾弗·弗萊克
人類肇事者才是萬惡之源。安全事件不會自己無緣無故地發生。因此,只要對軟件安全性進行協同分析,就一定要考慮可能的對手會進行什么樣的嘗試,這樣才能預測和防御潛在的攻擊。攻擊者都是雜牌軍,從腳本小子(只能使用自動化惡意軟件,沒有技術能力的攻擊者)到掌握高端技術的國際黑客不一而足。能夠在某種程度上站在對手的角度進行思考固然是件好事,但是不要自欺欺人地認為自己可以準確地預測對手的一舉一動,也不要花費大量時間和精力去猜測他們的具體想法,更不要自以為是永遠比對手棋高一著的名偵探。了解攻擊者的思考方式的確有其價值,但我們的目標是開發安全軟件,所以攻擊者具體會通過什么技術手段來探測、滲透和泄露數據無關緊要。
我們有必要思考系統中最核心的目標是什么(在有些情況下,對手認為價值連城的數據對你來說實際上并沒有那么高的價值),然后確保高價值資產能夠得到妥善的保護,但不要浪費時間去做攻擊者肚子里的蛔蟲。攻擊者可不會白白浪費精力,他們一般都會把注意力放在那些最薄弱的環節上,以便可以順利完成他們的任務(他們也有可能漫無目的地四處嘗試,但這種行為很難防御,因為這些行為目的并不明確、隨意性很強)。軟件錯誤絕對是攻擊者重點關注的對象,因為它們往往就是軟件的弱點所在。攻擊者如果偶然發現了某些明顯的軟件錯誤,他們就會嘗試創建一些變體,看看能不能造成實實在在的破壞。那些可以導致系統內部詳情泄露的錯誤(例如,詳細的堆棧轉儲)對攻擊者的吸引力尤大。
一旦攻擊者發現了漏洞,他們就很有可能把更多時間和精力放在這個漏洞上,因為很多瑕疵都可以被攻擊者借助協同攻擊擴展出嚴重的后果(本書第 8 章還會介紹這方面的詳細信息)。一般來說,兩項幾乎不會引人注意的細微漏洞如果結合在一起,就可以制造出一次重大的攻擊,因此我們應該嚴肅對待一切漏洞。雖然攻擊者沒有內部信息(至少在執行滲透之前是沒有的),但是掌握攻擊技術的人絕對了解威脅建模的手段。
盡管我們永遠都無法真正預判對手會把時間花在哪個環節上,但是我們仍然應該思考一下攻擊者的動機,這是判斷軟件是否會受到嚴重攻擊的一項標準。這其實和一位著名的搶劫犯在解釋其搶劫銀行的原因(因為那里有錢)的道理類似。這里的重點在于,攻擊一個系統可能獲得的收益越高,人們就越有可能應用更多的技術和資源來對這個系統發起攻擊。雖然這只能作為一種推斷,但這種分析方法可以作為一個相對的指導方針:政府、軍方、大型企業和金融機構的系統都是重大的攻擊目標,而你保存愛寵照片的那個硬盤分區應該不是。
最后,與一切形式的攻擊行為一樣,攻擊的難度總是小于抵御攻擊的難度。攻擊者只需要選擇好切入點,然后下定決心去利用盡可能多的漏洞就可以了,因為攻擊者其實只需要成功一次就夠了。這些都表明了優先考慮安全工作的原因,防守方需要善加利用所有可用的優勢。
- 云原生安全:攻防實踐與體系構建
- 黑客攻防與電腦安全從新手到高手(微視頻+火力升級版)
- 網絡安全保障能力研究
- Kali Linux Wireless Penetration Testing Cookbook
- 解密數據恢復
- 網絡安全應急響應實戰
- 空間群組密鑰管理研究:基于自主的深空DTN密鑰管理
- 網絡安全大數據分析與實戰
- Cybersecurity Threats,Malware Trends,and Strategies
- 捍衛隱私
- Mastering Python for Networking and Security
- 黑客攻防從入門到精通:實戰篇(第2版)
- Hands-On Bug Hunting for Penetration Testers
- 云安全深度剖析:技術原理及應用實踐
- Web前端黑客技術揭秘