## Authentication的概念及應用 ## OUTLINE - introduction - Protocal - Attack Method - Demo ## introduction Authentication(驗證),在通訊過程中(用戶或用戶、用戶或伺服器、用戶或系統等),應確認對方是否真的為其宣稱的合法身分,此證明身分的過程稱為**Authentication**,對方需要發送足夠的資訊去證明自己的身分 ### Authentication vs Authorization Authentication(驗證) 指確認對方身分驗證的過程,當驗證完成後,確認對方的身分後,因為在系統中可以不同使用者或身分擁有的權限等級不同,判斷該身份是否有權限進行某個動作,這個是Authorization(授權) ### Analysis #### Security Goals - Confidentiality - 保證只有授權的對象可以進行通訊 - Integrity - 防止通訊過程的數據不會被洩漏或是被竄改 - 驗證通信雙方的身份真實性,防止冒充 - Authenticity - 驗證後得以相信通訊對象的身分,指驗證的機制具有可行可信性 #### Adversary Model 指定義adversary,預測其可能擁有的能力或知識 - 計算機網路知識及流量分析的能力 - 竊聽及攔截資訊,已取得安全憑證 - 偽造數據包的來源 IP 地址,已進行更進一步的攻擊 - Social Engineering(社會工程) 用以誘使用戶洩漏憑證或關鍵資訊 #### Incentive - 獲取敏感數據,如用戶帳號密碼、信用卡資訊。 - 篡改通信內容,欺詐性交易、傳遞錯誤信息。 - 獲取經濟利益,將敏感信息拿來販售。 ## protocal 在ch8裡簡單介紹了Authentication Protocol的迭代 以Alice和Bob的通訊為例 其中Trudy為adversary ### Protocol AP1.0 - 直接宣告自己的身分,Alice宣告自己是Alice - Trudy可以告訴Bob說他是Alice,假冒別人 ### Protocol AP2.0 - Alice傳送其 IP 位址的數據包 - Trudy可以偽造一個來源為 Alice 的數據包(IP Spoof) ### Protocol AP3.0 - Alice在數據包中附送密碼證明自己的身分 - 但是Trudy可以使用Replay Attack - Trudy 記錄下數據包後重播,冒充 Alice。 - 如果加密密碼呢 - Replay Attack still work - 缺乏隨機性 ### Protocol AP4.0 - 目標是透過一次性隨機數Nouce來防禦Replay Attack - 在Alice宣告自己是Alice後,Bob傳送一個nouce給Alice - nouce為一次性的隨機數,不可重複使用,否則就失去其機密性和隨機性 - Alice必須使用shared key去加密這個nouce,而後傳送結果回Bob,Bob透過確認結果確定是否是真正的身分 優點:可以創造隨機性,防禦Replay Attack 缺點:需要預先共享對稱密鑰 ### Protocol AP5.0 - 使用非對稱加密:Public-key cryptography - diffie hellman key exchange - RSA Encryption Algorithm - 結合Nonce - Alice先發起認證,Bob傳送Nonce - Alice使用私鑰加密此隨機數 - 而後Bob使用Alice的公鑰去解密,確認是否一致 優點: 1.防禦Replay Attack,使用 Nonce 確保每次驗證的隨機性 2.Authentication:只有Alice有私鑰可以被自己的公鑰解開 3.無需共享密鑰 ## Attack Method 此小節將介紹一些常見針對Authentication進行的攻擊手法 ### Source Address Spoofing **IP Source Routing** 指允許發送方在數據包中指定其傳輸路徑(經由哪些路由器和網絡到達目標)(TO/FROM HOST) --- Source Address Spoofing利用了routing的特性 遠端的adversary 偽造封包中來源的addr,冒充受信任的內部主機,內部主機誤以為該封包來自本地受信任的主機,但Source Routing將封包路由傳回駭客的機器 #### 特性 - 常被用作其他複合性攻擊的基礎 - 攻擊者可以偽裝成可信來源,繞過身份驗證,破壞Authentication - 偽裝攻擊者身分,使其難以追蹤 #### 步驟 1.攻擊者冒充受信任的主機,與目標設備進行通信 2.攻擊者指定數據包的源路由 3.回傳數據流量按照指定的路徑返回攻擊者設備,而不是正確的本地(信任)host ![1212](https://hackmd.io/_uploads/S1MA8q0rkl.png) #### Defend - 應施行過濾的機制,阻止出入網路的不正常來源 IP 或偽造的封包 - router應該關閉或拒絕source routed packets,遵守 RFC 2827 - 使用tcpwrappers (host-based network ACLs) (網絡訪問控制列表) ### Man in The Middle (中間人攻擊) 概念是指攻擊者插入到通訊之間,攔截並可能修改雙方的通信內容,通訊雙方誤以為他們直接在互相交流 實現方式是要想辦法將自己置於連線的中間,必須攔截到傳輸的資訊 和Spoofing一樣,是許多破壞或忽略Authentication 的攻擊基礎 #### 更進一步的應用 - ARP Poisoning - ARP可以幫助LAN內的裝置進行MAC ADDR和IP ADDR的mapping - 攻擊者向雙方廣播自己的IP(假裝是對方的),將用戶的流量重定向到自己的設備 ![螢幕擷取畫面 2024-12-29 155925](https://hackmd.io/_uploads/B1z-U50BJe.png) - DNS Poisoning - Domain name system 是幫助將域名map至正確的ip addr的重要設施 - 在victim dns server和tld dns server通訊時,監聽雙方的封包 - 在tld dns server送出正確的ip addr封包時,攻擊者預先偽造tld的respond內容 - 假封包帶有虛假的惡意網站ip addr - 一但victim接受了虛假的respond,真正的respond封包會被dump掉 - 虛假的ip被快取進dns server cache,植入完成 ![60c35205a08c01989ab2f764_DNS Spoofing](https://hackmd.io/_uploads/BJMq5qCHkl.jpg) 著名例子: Dan kaminsky dns poisning attack 創造大量虛假回應讓真正的tld回應被淹沒 提高Poisoning的成功性 ### Session Hijacking (會話劫持) 通常兩個個體(user、server)之間的通訊過程,稱為session,在session開啟的時段,預設對方是已經通過驗證的狀態,所以過程保持驗證狀態,資料和權限都會保存 Session Hijacking指攻擊者通過截獲Session token或是其他驗證身分的識別資訊,攻擊者能去欺騙對方並使其將他們誤認為是原本的合法連線者 網站的cookie或是TCP Protocal常常被使用這種攻擊 以下是TCP Session Hijacking的攻擊過程 #### 特性 - 攔截資訊,通過多種方式獲取Session資訊,包括sniffing、跨站腳本攻擊(XSS)、SpyWare等 - 中間人攻擊的更進一步的應用 - 未經授權的訪問,可以偽裝成其他用戶,破壞Authentication #### 步驟 - 攻擊者監視初始的Session建立過程(例如 TCP three-way handshake)。 - 嗅探數據: - 攻擊者捕獲用戶和服務器之間交換的序列號(seq)和其他session token。 - 重置客戶端: - 攻擊者向客戶端發送 TCP RST(重置包),使其與服務器斷開連線。 - 接管會話 : - 攻擊者通過模擬客戶端的身份與服務器通信,並接管會話。 即使是基於strong-authenticated session(如 SKey、SecureID)的會話,攻擊者也可以在認證完成後劫持會話。 #### Defend - 使用加密的通信協議(如 SSH HTTPS),防止攻擊者嗅探數據 - 使用雙重驗證或MFA:增加多重的驗證的因素,防止只有token或ID的驗證手段 - 會話超時: 減少token leak的機會 ## DEMO 以下將示範使用ettercap施行ARP Poisoning(MITM) ``` 配置: Vmware Workstation kali-linux-2024.3 OWASP Ubuntu 64 ``` ettercap是一個網路攻擊工具,主要施行中間人攻擊和流量監測,使用者能夠攔截和修改網路上的封包,廣泛用於分析未加密的 HTTP 流量(https需要額外的解碼工具),kali有內建的ettercap gui工具,無須下載 --- 以下執行畫面 ![螢幕擷取畫面 2024-12-30 010942](https://hackmd.io/_uploads/ryxYGWJUye.png) 有UNIFIED和BRIDGED 兩種模式 - UNIFIED直接監聽網路流量 - BRIDGED橋接子網LAN 這邊直接選ETH0跟UNIFIED(不要勾選) 而後按上方的勾 ![螢幕擷取畫面 2024-12-30 011559](https://hackmd.io/_uploads/B1IyVbkLkg.png) 上方放大鏡可以搜尋連線 旁邊會顯示HOST List ![螢幕擷取畫面 2024-12-30 012308](https://hackmd.io/_uploads/HkMqH-1UJl.png) 他可以指定target去做特定的攻擊,這邊就直接執行攻擊,會攔截全部的封包 這裡使用Ubuntu 64作為victim,竊聽Ubuntu 64跟OWASP靶機的通訊過程(靶機具有特別設計的漏洞,也不會背法律責任) ![螢幕擷取](https://hackmd.io/_uploads/Syc8vbyUyx.png) 這裡使用靶機內建的bWAAP的工具,是特別設計的網頁登入功能,可以拿來測試破解工具 ![8](https://hackmd.io/_uploads/SyW3vZJUkg.png) ``` 預設的帳號:bee 預設的密碼:bug ``` 現在啟動arp poison的攻擊 ![螢](https://hackmd.io/_uploads/SkZO_WkIJg.png) ![螢幕擷取畫面 2024-12-30 013731](https://hackmd.io/_uploads/H1PxYb18yx.png) ![螢幕擷取畫面 2024-12-30 013841](https://hackmd.io/_uploads/SJ0NtWyIkl.png) 現在操控victim 去登入bWAAP ![螢幕擷取畫面 2024-12-30 014045](https://hackmd.io/_uploads/HkZhtby8yl.png) ![螢幕](https://hackmd.io/_uploads/Byck9-y8yl.png) kali的ettercap攔截到封包資訊,其中有登入的帳號密碼 ![212](https://hackmd.io/_uploads/Sya-qWyLJg.png) ## Refernece - wallarm <<How Does Domain Name System Work?>> https://www.wallarm.com/what/what-is-dns-spoofing-dns-cache-poisoning - 卡巴斯基 https://www.kaspersky.com.tw/resource-center/definitions/what-is-session-hijacking - 中央大學資工系選修 CE3054*<<資訊安全概論>> - 113學年第一學期 - introduced by professer 晧琮 楊 - class material - ch1 Intro Paranoia https://drive.google.com/file/d/1LWepIakNGE7vFIk6hsQUUz2Z34tAQYUz/view?usp=sharing - ch9 Network Attack https://drive.google.com/file/d/1LMdgA_79pc2RAo_StFAqHdTu-yVOUxY4/view?usp=sharing - https://ithelp.ithome.com.tw/m/articles/10315044 - https://ithelp.ithome.com.tw/articles/10205032?sc=iThelpR - 計算機網路ch8 - chatgpt https://chatgpt.com/share/67718c04-2958-8003-ac54-2575dff960e2