iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 10
0
Security

安全地寫 Java 的「基本功」系列 第 12

安全地寫 Java 的 「基本功」- Day 11

前言

我們已經介紹完了 STRIDE 的前三項攻擊。其實在資訊界待久了,這些攻擊手法都多有耳聞,但其根本都是源自於對 CIA 與 AAA 的破壞意圖而來。今天,我們要來介紹另外三項。

資訊洩漏(Information disclosure)

資訊洩漏聽起來,好像跟週刊爆料有關似的。但其實就是指攻擊者可以竊知原本不屬於他,也不想給他看見的資料內容。這些資料大多是被加密保護,或者流通於加密連線中。例如,攻擊者進犯你的瀏覽器,因而可以看到原本你透過 SSL 連上的網銀的內容,並且偷偷知道你有沒有加薪。

因此,資訊洩漏便是面對 機密性(Confidentiality) 的攻擊手法,舉凡具有加解密之必要、混淆之必要的資料,在資料處理過程中,若保護機制被破壞、或金鑰被竊取、演算邏輯被破解,那原本隱藏的資料便曝了光,小則信用卡被盜刷,大則國家機密被外洩。

拒絕服務(Denial of service)

聽說,開店的第一個週,客流量一定要衝到三倍,這店才會賺錢。因此,你常常會看到新店開張時,用大特價來吸引顧客。但常常大量客人湧上門後,店員整個忙不過來,大排長龍地好像很有人氣,其實是裡面已經被 Denial of service 了。

但事實上,系統真實在營運時,正常的大量使用而造成無法使用的影響,我們不能叫 Denial of service,我也不知道叫什麼,姑且叫壓力測試吧。

但資安事件的 Denial of service,通常是惡意地進行 可用性(Availability) 的破壞,但聽說真正的高手,不太喜歡這招。因為入侵不成功,只好把你打掛,這說出去會被人笑死。

但無可避免的,這世界不想當高手的人很多,因此你若經營公開的網站服務,常常會接收到來自世界各地的 botnet 攻擊,這種 DoS 加上分散式(Distributed)的特性,就是所謂 DDoS。

坦白講,我沒有什麼實務經驗處理這類攻擊,再加上這類的攻擊,通常不是 AP 層面可以防護的,而是從 Firewall、Server Engine 層面進行防護。因此,我或許無法在這點上著墨多少。

提高權限(Elevation of privilege)

提權攻擊其實很明顯,就是向著 授權(Authorization) 而來,顧名思義,便是攻擊者可以存取原本不該給他使用的資料、操作原本不授與他的功能。

有的人會使用 Windows 來架設服務,例如用 XAMPP。那麼,你認為這個 Apache 服務,應該用什麼權限來跑呢?有興趣的人可以參考這篇 豆知識:Local System、Local Service與Network Service,稍有些資安觀念的開發人,通常會給予 Apache/Tomcat/JBoss 等 Server 執行時,相當小且限縮的權限,就是預防若 Server 被攻破時,攻擊者只能拿到很侷限的權限。

並且把最高權限的帳號進行特殊的保護措施,或加強密碼強度以進行保護。密碼設太高,忘了怎麼辦?若有機會,我們可以來說明。

小結

說明完了攻擊的六個角度,可能很多人會覺得,那 SQL Injection 呢?Cross Site Script 呢?Session Hijacking 呢?

我們面向的,是各式各樣的系統,有 Web 應用程式,也有作業系統。這套模型,目的就是在提供一套基本原則,以供各樣系統的資安威脅分析使用。

說明完了 STRIDE 的基本概念,我們會開始進入另一個世界,或許你會問,那我要怎麼樣設計我的系統呢?我會一邊說明設計原則,一邊配合程式的實作,但希望能夠及時地完成這個系列的連載。


上一篇
安全地寫 Java 的 「基本功」- Day 10
下一篇
安全地寫 Java 的 「基本功」- Day 12
系列文
安全地寫 Java 的「基本功」14

尚未有邦友留言

立即登入留言