Web安全(吳翰清)

Web安全(吳翰清)

安全工程師的核心競爭力不在於他能擁有多少個 0day,掌握多少種安全技術,而是在於對安全理解的深度,以及由此引申的看待安全問題的角度和高度

第一篇 我的安全世界觀

指令碼小子 “Script Kids”。
黑客精神所代表的 Open、Free、Share。

Web 1.0 伺服器端動態指令碼的安全問題。

SQL隱碼攻擊的出現是Web安全史上的一個里程碑。

XSS(跨站指令碼攻擊)的出現則是Web安全史上的另一個里程碑。

Web 2.0 攻擊客戶端,瀏覽器和使用者。

白帽子,則是指那些精通安全技術,但是工作在反黑客領域的專家們;黑帽子,則是指利用黑客技術造成破壞,甚至進行網路犯罪的群體。

1.3安全的本質

資料從高等級的信任區域流向低等級的信任域,是不需要經過安全檢查的;資料從低等級的信任域流向高等級的信任域,則需要經過信任邊界的安全檢查。

安全問題的本質是信任的問題。

安全是一個持續的過程。

1.5安全三要素

安全三要素是安全的基本組成元素,分別是機密性(confidentiality)、完整性(Integrity)、可用性(Availability)

機密性要求保護資料內容不能洩露,加密是實現機密性要求的常規手段。

完整性則要求保護資料是完整、沒有被篡改的。常規的保證一致性的技術手段是數字簽名。

可用性要求保護資源是”隨需而得“。
拒絕服務攻擊破壞的是安全的可用性。

其他因素:可審計性、不可依賴性等。

1.6.1資產等級劃分

網際網路安全的核心問題,是資料安全的問題。

瞭解公司最重要的資產是什麼,他們最看重的資料是什麼。有最關心的是客戶資料,有公司最關心的員工資料資訊。
劃分信任域和信任邊界。

這裡寫圖片描述

1.6.2威脅分析

可能造成危害的來源稱為威脅(Threat)。
可能會出現的損失稱為風險(Risk)。
風險一定是和損失聯絡在一起的。
STRIDE模型

----------------------------------------------------
威脅                   定義           對應的安全屬性
----------------------------------------------------
Spoofing(偽裝)        冒充他人身份            認證
----------------------------------------------------
Tampering(篡改)       修改資料或程式碼         完整性
----------------------------------------------------
Repudiation(抵賴)     否認做過的事情        不可抵賴性
----------------------------------------------------
InformationDisclosure  機密資訊洩露          機密性
(資訊洩露)
----------------------------------------------------
Denial of Service(拒絕服務)拒絕服務         可用性
----------------------------------------------------
Elevation of Privileg   未經授權獲得許可      授權
(提升許可權)

1,6.3風險分析

Risk = Probability*Damage Potential.

DREAD 模型

---------------------------------------------------
等級         高(3)            中(2)       低(1)
----------------------------------------------------  
Damage    獲取完全驗證許可權;    洩露敏感資訊       洩露
Potential 執行管理員操作;                      其他資訊
非法上傳檔案
---------------------------------------------------
Reproducibility 攻擊者可以  攻擊者可以重複攻擊, 攻擊者很
隨意再次攻擊  有時間限制       難重複攻擊
---------------------------------------------------
Exploitability  初學者在短期內  熟練攻擊者才能  漏洞利用條件
掌握攻擊方法    完成這次攻擊    非常苛刻
-----------------------------------------------------
Affected users  所有使用者,預設  部分使用者,      極少數使用者
配置,關鍵使用者  非預設配置      匿名使用者
-----------------------------------------------------
Discoverability  漏洞很明顯    在私有區域,     發現該漏洞
攻擊條件很容易   部分人能看到     極其困難
獲得         需要深入挖掘漏洞
-------------------------------------------------------

安全是產品的一種屬性。

1.7白帽子兵法

1.7.1Secure By Default 原則

白名單,允許的清單。
黑明白,禁止的清單。

1.7.1.2最小許可權原則

最小許可權原則要求系統只授權主體必要的許可權,而不要過度授權。

1.7.2縱深防禦原則

縱深防禦包含兩層含義:首先,要在各個不同層面、不同方面實施安全方案,避免出現疏漏、不同安全方案之間需要相互配合,構成一個整體;其次,要在正確的地方做正確的事情,即:在解決根本問題的地方實施針對性的安全方案。

1.7.3資料與程式碼分離原則

1.7.4不可預測性原則

Secure By Default,是時刻要牢記的總則;
縱深防禦,是要更全面、更正確的看待問題;
資料與程式碼分離,是從漏洞成因上看問題;
接下來要講的不可預測性”原則,則是從克服攻擊方法的角度看問題。

不可預測性的實現往往需要用到加密演算法、隨機數演算法、雜湊演算法。

一個業務安全設計得好的網站,往往loginID和nickname(暱稱)是分開的。登陸ID是使用者的私有資訊,只有使用者本人能夠看到;而nickname不能用於登入,大神可以公開給所有人看。

第二篇 客戶端指令碼安全

第2章瀏覽器安全

2.1同源策略

瀏覽器的同源策略,限制了來自不同源的“document”或指令碼,對當前“document”讀取或設定某些屬性。

2.2瀏覽器沙箱

Sandbox即沙箱,已經泛指“資源隔離類模組”的代名詞。Sandbox的設計目的一般是為了不可信任的程式碼執行在一定的環境中,限制不可信任的程式碼訪問隔離區之外的資源。

2.3惡意網址攔截

常見的惡意網址分為兩類:
一類是掛馬網址,通常包含有惡意的指令碼如JavaScript後Flash,通過利用瀏覽器的漏洞(包括一些外掛,控制元件漏洞)執行shellcode,在使用者電腦中植入木馬;
另一類是釣魚網站,通過模仿知名網站的相似頁面來欺騙使用者。

PhishTank是網際網路上免費提供惡意網址黑名單的組織之一,它的黑名單由世界各地的志願者提供,且更新頻繁。

EVSSL證書(Extended Validation SSL certificate)是全球數字證書頒發機構與瀏覽器廠商一起打造的增強型證書,其主要特色是瀏覽器會給予EVSSL證書特殊待遇。

瀏覽器的安全以同源策略為基礎,加深理解同源策略,才能把握住瀏覽器安全的本質。