本篇接續OSI階層的概念描述在Layer 6 & 7 裡常見的資安威脅。
Layer 6: Presentation Layer
前情資訊補充:
由於Presentation Layer的工作是將機械語言(e.g., 0101101…)轉換成使用者能夠閱讀的文字。這樣的轉換過程牽扯到格式化、轉換與加密解密。
SSL 在OSI分類中有時會被歸類為Layer 5 ,但也有時歸類為 Layer 6。目前唯一有共識的是屬於layer 5 以上的機制。
SSL機制大致上可描述成1.使用者向網頁伺服器要求證明身分; 2.網頁伺服器發送一個身分認證用的簽證(certificate); 3. 當使用者驗證該簽證屬實,則向網頁伺服器傳送經網頁伺服器所屬的公鑰加密過的資訊與一把密鑰A; 4.網頁伺服器利用自己的私鑰解密出使用者資訊與密鑰A,再利用這把密鑰A加密文件回傳給使用者; 5. 雙方都擁有流通的密鑰A後即可在傳送文件前以這把密鑰A加密文件,爾後由訊息接收方通過同一把密鑰A進行解密,以此完成SSL/TLS通訊。
前情資訊補充的補充:
對稱式加密是加密、解密都用同一把密鑰; 非對稱式加密代表用A鑰匙加密、B鑰匙解密。
私鑰與公鑰的機制為非對稱式加密,私鑰為自己擁有,公鑰可提供給第三人。通過公鑰加密過後的文件只有私鑰能夠解開,讓資料維持機密性; 私鑰加密過後的文件則只有公鑰可以打開,但因為公鑰基本上是可以公開的,所以可以讓其他人嘗試解開經私鑰加密過後的文件,達到身分驗證的效果。數位簽章(證)就是利用這種原理做到身分驗證。
SSL就是先利用非對稱式加密完成身分驗證,再以此機制傳送一把後續雙方都共同用來加密的密鑰,隨後便以這把雙方共享的密鑰以對稱式加密進行通訊。
Malformed SSL requests
屬於DoS的一種,通過無效的SSL 請求讓受攻擊的電腦暫時無法服務其他使用者,或是直接影響自身系統的運作。
HTTP tunneling using SSL
這部分的資料筆者認為式合併HTTP tunneling 與 SSL tunneling。利用HTTP tunneling的邏輯規避防火牆或是access control polocies的限制,使用port 80進行攻擊。接著結合SSL tunneling的手法規避一些組織內主動式的網路掃毒軟體。經由這種手法製造機會與內部的使用者進行互動,並以此發展其他攻擊的機會。
SSL Hijacking
通過Man-in-the-middle的方式去獲得或替換掉SSL過程中那把對稱式加密的密鑰,並以此窺視兩台電腦之間傳送的資訊。
Layer 7 : Application Layer
Distributed Denial-of-service attacks (DDoS)
本質上同樣屬於Denial of Service攻擊,只是利用特定協定的機制或利用殭屍電腦(受控攻擊發起者的電腦),以多對一的方式進行DoS攻擊。所以稱 Distributed DoS。
HTTP floods
屬於Application Layer的DDoS攻擊。通過多台電腦使用HTTP GET or POST request去攻擊網路伺服器。
Slowloris attacks
也是DDoS攻擊的一種。通過傳送partial HTTP requests 讓一次從網路伺服器獲取一小部分的訊息,並盡量以最小的頻寬延長與受攻擊伺服器的通訊時間,以此影響網路伺服器的效率
SQL injections
通過掌握SQL的指令,藉由與SQL互動機會,讓伺服器把資料輸入的內容解讀成指令,進而造成異常。
舉例說一個簡單的互動是去調閱使用者輸入的名稱與對應的密碼。正常來說若輸入 "王小名" 當系統拿到這個輸入名稱後會去找符合 "王小名"的對應名稱與對應密碼並返還給使用者。如果今天使用者輸入 "全部人",系統若真以為是要調閱全部人的資訊,就會把所有資料庫內的名稱與密碼都返還給這個輸入者,造成資料外洩的問題。
cross-site scripting
將一段經竄改或可以自帶其他攻擊程式的程式碼放到未受嚴格保護的網頁上,在使用者跟網頁正常互動的時候,可能會不小心觸發這個攻擊者植入的程式。
parameter tampering
在非使用者的本意下將網頁中的參數更動。比如說更改Uniform Resource Locator (URL)裡的參數,讓使用者誤入其他網頁。