原文連結:フリーWi-Fiを使ったら秘密情報を抜かれる経路にはどのようなものがあるか - Qiita
常聽聞免費 Wi-Fi 可能暗藏資安危機,究竟原理是如何、可能造成什麼影響,又該如何預防等等,本文將針對這個主題進行介紹。
以下正文開始!
這是在黃金週的開始(4月29日)發布的推文,截至 5 月 7 日晚上 8 點,已經累積 1938.8 萬次觀看次數,顯然引起很大的關注。
我叫阿席達卡!我在星巴克使用免費 Wi-Fi 處理公司的機密資訊時,結果訊息全部外洩了。我該怎麼辦才好!(原推文連結)
對此,我發布了以下的推文,同樣也吸引不少關注,累積 124.1 萬次的觀看次數。雖然收到了許多反饋,但卻是出乎意料的難題,我打算在黃金週結束後,接著介紹幾種可能的訊息洩漏途徑。
應該把這當作入職考試題目嗎?請說明「在星巴克使用免費 Wi-Fi 處理公司機密資訊時,導致所有訊息外洩的情況」在現實中可能導致的威脅。我認為這問題相當具有挑戰性。(原推文連結)
針對無線區域網路的攻擊
由於背景是以「在星巴克使用免費 Wi-Fi 時」為前提,這裡會解釋有關無線區域網路(Wireless LAN)所帶來的威脅。一般來說,當提到無線 LAN 的威脅時,多數人會先想到「未加密的無線 LAN」,然而實際上,許多免費 Wi-Fi 也存在「即使有加密也能被竊聽」的問題。原因是無線 LAN 的密碼(預共享金鑰 PSK、密碼短語 Passphrase)已經被公開。以下文章可作為參考:
パスワードが公開された公衆無線LAN、暗号化されていても盗聴できる? | 日経クロステック(xTECH)
此外,還存在偽造存取點(Fake Access Point)的威脅,意即攻擊者偽裝成咖啡廳的 Wi-Fi 存取點。設置與真正存取點相同的 SSID 和密碼的偽造存取點,被稱作孿生惡魔(Evil Twin, 英語版WikiPedia),對使用者來說難以區分真偽,因此構成嚴重的威脅。以下是以咖啡廳 Wi-Fi 為例,說明偽造存取點帶來的威脅(見下圖)。
在偽造存取點的情況,可在上圖中的有線 LAN 區段進行竊聽,因此與無線加密無關。此外,也可能出現中間人攻擊(man-in-the-middle attack; MITM),使攻擊的種類更加多樣。
在任何情況下,如果通訊路徑是透過 HTTPS(TLS)加密的話,通訊內容就不容易被竊聽。但如果網站存在漏洞,或使用者的使用方式不正確,仍有可能會洩露通訊內容。
未使用 HTTPS 進行連線
如果使用的網站不支援 HTTPS,或即便網站支援 HTTPS,但使用者仍使用 HTTP 進行連線,那通訊內容還是會透過上述方法被全部竊聽。
現今已經很少有網站不使用 HTTPS,但仍有可能被引導至 HTTP 以進行中間人攻擊。在下方影片中,展示了某家巨型銀行的線上銀行網站,被進行中間人攻擊漏洩了通訊內容。雖然該網站將 HTTP 通訊重新轉向至 HTTPS,但攻擊者仍避開並進行攻擊。即使網站關閉了 TCP 80 port,仍有機會進行此攻擊。詳細內容請信請參考下方影片。
針對這種攻擊的防範措施,如下所示:
- 網站端:通過設定 HSTS(Strict-Transport-Security)以強制使用HTTPS
- 使用者端:確認使用 HTTPS 進行連線
已連接 https URL 卻忽略瀏覽器的警告
即便使用者透過 HTTPS 進行連線,如果攻擊者使用類似 Burp Suite 的 MITM Proxy 的情況,則可透過 Burp Suite 將 HTTPS 解密再重新加密,藉此盜取通訊內容。但在這種情況下,瀏覽器將會顯示錯誤,除非使用者強制忽略警告,否則通訊無法進行。在上述影片中,也展示了這種情況。
針對這種攻擊的防範措施,如下所示:
- 網站端:透過設定 HSTS(Strict-Transport-Security)使憑證錯誤無法被忽略
- 使用者端:當瀏覽器出現憑證錯誤時即停止使用
在上述影片所介紹的巨型銀行就未設定 HSTS。
使用特定 APP 而非瀏覽器,但該 APP 存在漏洞並且未經過憑證授權
在透過手機 APP 而非瀏覽器使用服務的情況,檢驗憑證將成為 APP 方的責任。有時 APP 方檢驗憑證不夠嚴謹,可能導致訊息被竊取。以下是筆者發現的一個例子。
Android版KindleにおけるSSLサーバ証明書の検証不備の脆弱性CVE-2014-3908 | 徳丸浩の日記
針對這種情況的防範措施,如下所示:
- 提供者端:透過對手機 APP 掃描是否存在漏洞,確保檢驗憑證
- 使用者端:使用可信賴的 APP,或在使用 APP 時改用行動數據通訊
在伺服器允許使用脆弱的加密演算法可能造成漏洞
TLS/SSL 的規格或實作上有時存在著脆弱性。其中代表性的例子是 POODLE 弱點。詳細請參考はるぷさん的文章說明。
SSL v3.0の脆弱性「POODLE」ってかわいい名前だけど何?? | BLOG - DeNA Engineering
正如這篇文章提及,POODLE 攻擊是藉由 MITM,透過咖啡廳的偽造存取點攻擊是典型案例。換句話說,在沒有 MITM 風險的環境中,就不存在 POODLE 的實際威脅,因此針對 POODLE 的威脅,SSL 協議已被停用。
以下是應對措施:
- 網站端:僅允許 TLS 1.2 以上版本,實作 SSL (OpenSSL 等)並隨時更新至最新狀態
- 使用者端:使用最新版的瀏覽器(最新的瀏覽器已停用 SSL)
Cookie 缺少 Secure 屬性
由於 Web 應用程式的存在弱點,可能在通訊過程中被竊取內容。其中代表性的例子是 Cookie 缺少的 Secure 屬性的情況。換句話說,若 Set-Cookie 未添加 Secure 屬性,可能會使 Cookie 在明文通訊時被竊聽。
詳細內容請參考下方部落格文章和影片:
HTTPSを使ってもCookieの改変は防げないことを実験で試してみた | 徳丸浩の日記
網站端的應對措施如下,Cookie 缺少的 Secure 屬性經常在弱點檢測中被診斷出。
- 在 Cookie 設定 Secure 屬性(根本解決方案)
- 設定 HSTS(緩解措施)
使用者端的應對措施較為困難,以下提供一些可用措施:
- 使用可信任的網站
- 避免使用公共無線網絡
Session ID 固定攻擊(Session Fixation)
有一種攻擊手法被稱為「Session ID 固定攻擊」。詳細內容請參考下方文章:
- 安全なウェブサイトの作り方 - 1.4 セッション管理の不備 | 情報セキュリティ | IPA
- とくまるひろしのSession Fixation攻撃入門 | 徳丸浩の日記
在這種攻擊中,必須達成「攻擊者預先透過某種方法,將準備好的 Session ID 傳送給使用者」這項步驟。也就是說,攻擊者必須將準備好的 Cookie 傳給使用者。可能有不少人會認為「這種事有可能嗎」,透過 MITM 是有可能實現的。以下文章和影片將會進行說明:
HTTPSを使ってもCookieの改変は防げないことを実験で試してみた | 徳丸浩の日記(再發表)
網站端的應對措施如下:
- 為防止 Session ID 固定,可在登入後立即更改 Session ID(根本解決方案)
- 使用 Cookie 的前綴詞(參考 MDN)(緩解措施)
- 設定 HSTS(緩解措施)
另一方面,一般使用者較難發現 Session ID 固定這項弱點,因此使用者端的應對措施較為有限:
- 使用可信任的網站
- 避免使用公共無線網絡
雖然 Session ID 固定這項弱點近來較少見,但在弱點分析中偶爾會被診斷出。
設定檔案共享
Windows 有項名為 Network Profile(網路配置文件)的功能,可設定為 Public 或 Private。在使用公共無線網絡時,必須將其設定為 Public。若誤設為 Private,可能存在以下威脅:
在公共場所使用無線網絡時,如果啟用這個檔案共享功能,電腦或智慧型手機內的檔案就有可能被他人讀取,或被發送病毒等惡意檔案。因此在公共場所使用無線網絡時,請務必停用檔案共享功能。
引用自無線LANの安全な利用|基本的な対策|一般利用者の対策|国民のための情報セキュリティサイト
雖然感染病毒不一定是經由公共無線網絡這條途徑,但透過連接偽造的存取點,就有機會提高感染病毒的可能性。有個典型的例子是 WannaCry。WannaCry 透過 tcp/445 port 進行攻擊,受到防火牆保護的網路通常不會受到感染,但如果連接到偽造的存取點,並將網路配置文件設定為 Private 時,就可能增加被感染的可能性。
在以下影片中,模擬使用偽造的存取點,展示 WannaCry 利用 Windows 的漏洞 MS17-010 進行攻擊,以及透過文件共享洩露資訊的情況。
使用者的防護措施如下:
- 連接到公共無線網絡時,將網路配置文件設定為 Public
- 保持軟體更新至最新狀態
此外,這類攻擊通常無法透過 VPN 來預防(已在 Norton Secure VPN 驗證),即便使用 VPN,也不能忽略上述的防護措施。
肩窺攻擊
肩窺攻擊(Shoulder Hacking)是指旁人在附近窺視螢幕或鍵盤操作的行為,在這種情況,給人「越過肩膀偷看」的感覺,因此被稱作肩窺攻擊,實際上不一定侷限於越過肩膀偷看。
可參考: ソーシャルエンジニアリングの対策|社員・職員全般の情報セキュリティ対策|企業・組織の対策|国民のための情報セキュリティサイト
防範措施如下:
- 使用防窺螢幕保護貼
- 當周圍有人時,避免輸入密碼或信用卡資訊
肩窺攻擊與原始推文中的 「在星巴克使用免費 Wi-Fi」無關,因此可能稍微偏離了主題。
離席時的攻擊
在咖啡廳等場所,有些人會把筆記型電腦放在座位上然後離席一陣子。在咖啡廳如果想去廁所,即使隨身攜帶貴重物品和筆電,飲料還是會留在原位,畢竟不太會想帶著飲料去廁所,這的確是有點棘手的問題。像我這樣比較膽小的人,可能會選擇「在咖啡廳忍住不去廁所」,但這麽做對健康(可能)不太好。
那麼,如果把筆電留在座位上離開,除了筆電可能被偷走,如果畫面還繼續開著,很容易被偷偷瀏覽已登入的網站或筆電中的文件。
此外,即使筆電沒有被偷,也可能在離席這段時間,在筆電安裝「鍵盤側錄(Keylogger)」或其他惡意軟體⋯⋯但這種情況非常可疑,直接把整台筆電偷走還比較乾脆省事。
這種攻擊方式也和「使用星巴克的免費 Wi-Fi」主題無關,因此可能稍微偏離了主題。
防範對策如下所示:
- 在咖啡廳等地,不要把筆電留在座位上離開
那該怎麼做呢
近來工作型態改變,傾向推薦在咖啡廳等開放空間工作,又因為裝載 Apple 晶片的 MacBook 電池使用時間非常長,因此想在咖啡廳使用的心情也能夠理解。但由於存在上述的威脅,在使用時應該注意以下事項較為妥當:
- 確認是否使用 HTTPS 連線
- 透過預先加入的書籤使用網站
- 不忽視 TLS 憑證的錯誤訊息
- 軟體隨時更新至最新版本
- 在使用 Windows 作業系統時,將網路配置文件設定為 Public
- 在咖啡廳等地點,避免使用高度機密的網站
- 使用可信賴的(已針對漏洞進行防範)網站
- 使用網路共享等其他通訊方式
- 使用防窺螢幕保護貼
- 在咖啡廳等地點,避免輸入密碼或信用卡號碼
- 不把筆電等物品留在座位上離席
15th鐵人賽目錄傳送門:https://ithelp.ithome.com.tw/users/20135558/ironman/6290