這個世界上有非常多種網路協定,而我們平常上網,連上他人的網站,這個協定正是「HTTP」
一個 HTTP 的資源會長的像是「https://store.steampowered.com/app/1245620/_/」
簡單拆解一下這段網址,會發現一個 HTTP 資源由以下部份組成 :
HTTP Scheme |
http 或 https |
Subdomain ( 子網域 ) |
store |
Domain ( 網域 ) |
steampowered.com |
Path ( 路徑 ) |
/app/1245620/_/ |
其中幫助我們分辨一個網站,是官方還是釣魚網站的關鍵在於「網域」
網域一旦經過註冊,就無法有重複註冊之行為發生,這樣的特性使網域理論上無法造假
理所當然的,子網域是附屬於網域本身,所以只要網域是官方的,那麼任何子網域也會是官方
剛剛舉例的連結是在 Steam 上預購艾爾登法環的連結,隱約可見樓主寫文章時卻心不在焉,開玩笑的
在我寫文章的當下,store.steampowered.com 對應到的 IP 位置是 23.210.236.82
也就是說,不管我怎麼對 store.steampowered.com 連線,我最終都會請求向 23.210.236.82 這台主機
釣魚網站的目的就是把網頁架在那邊,利用社群媒體散播連結,靜靜等待有人上鉤
釣魚網站通常騙取他人的個資 ( 帳號密碼、信用卡資訊 ),所以通常會讓網域長的很像官方
你通常會看到有陌生人,跟你說他那邊有些好康的,然後給你一個連結要你點進去領獎勵
乍看之下 ... 網域好像是官方的 ... ? 網頁內容也有點像官方 ... ? 不過自己在該網站居然是登出狀態
讓你一不小心,以為自己在該網站的 session 可能已經過期,一旦重新輸入帳號密碼就中招了
看到這裡,其實你已經學會如何分辨釣魚網站了,主要的重點就是看網域是不是官方的即可
接下來做個重點整理,讓你從各方面都防禦住釣魚網站的攻擊
首先,收到來路不明的連結,對於常用的網站,敏感度應該要提高到能馬上看出是不是官方的網域
另外,只要連結來路不明也應該提高警覺
你決定點開這個網站,網站內容是跟你說有什麼免費的獎勵可以領,但是要先登入某某平台的帳號
你可以先觀察看看,網站的設計和官方網站真的一樣嗎 ? 老實說釣魚網站都有很多破綻
另外,我上一次造訪官方網站是什麼時候 ? 為什麼我是登出的 ? 我有手動清除過網站 Cookies 嗎 ?
有些釣魚網站,還會把忘記密碼和註冊的連結放真的官方網站的連結以假亂真,我有按過 XD
說實在的,後面的驗證步驟都算是有些多餘,畢竟網域不對就是不對,網站多逼真都無意義
網域本身無法造假,那有沒有直接針對網域的攻擊 ?
有的,舉凡 DNS 污染或中間人攻擊之類的,目的都是要劫持你的網路連線,把請求導向錯誤的地方
DNS 相關的攻擊我這邊不做補充,但是中間人攻擊可以小試身手給各位看
首先我讓我的電腦開啟 Wi-Fi 基地台,讓手機連上電腦的 Wi-Fi,然後去看看 Steam 的網頁
到目前為止都很正常
那假設我在我的電腦開啟一個中間人攻擊用的代理伺服器,並且讓手機信任我的憑證呢 ?
我常用的中間人攻擊程式叫 mitmproxy,不過我不是用在攻擊用途 XD,而是開發用途
mitmproxy 可以讓我去植入一段 Python 的程式碼,比方說我希望竄改封包內容
就像這樣,單純把原本該去 store.steampowered.com 的請求攔下來,一律回傳我的名字「Yotsuba」
讓手機連上代理伺服器去上網,且由於先前已經信任過憑證,所以接下來的加密連線一律採取信任
不過說實在的,會被發生中間人攻擊或其他 DNS 攻擊已經算是很嚴重的事情了
我不覺得一般人在日常生活中有機會遇上,至少我沒有看我身邊的人遇過
但如果真的遇上了,再來一個網頁內容超級像的官方網站,說真的叫人不相信都難
不過希望大家保持平常心,就假設自己是在安全的網路連線下上網
以原本辨識網域的方式去防禦釣魚網站即可
釣魚網站的其他型態
有些釣魚網站不騙取個資,而是要騙你下載他的給的執行檔,並且在自己的電腦成功執行
與其叫他們釣魚網站,叫他們惡意連結或許更為適合
比方說,你點進一個來路不明的網站,突然有莫名其妙的彈窗告訴你你的電腦中毒了
要你下載他們的防毒軟體,執行了就可以拯救你的電腦之類的鬼話
其實就算你下載了也無所謂,只要他們沒有被執行,病毒不過也是躺在電腦裡的檔案而已
另外,能在瀏覽器上執行的程式語言叫 JavaScript,他也沒有權限掃描你的電腦喔 !
所以有網站說你的電腦中毒,那肯定是假的
用 ... 登入其他網站,該網站想要存取你的 ... 權限
現今還有一種常見的網頁認證方式叫 OAuth
就是你不需要手動註冊他們家的網站會員,你可以直接以常見的社群媒體帳號,直接開始使用
這種認證方式的安全性建立在,你登入的時候真的是跑到官方網站去
當然還是要看一下網域喔,但通常你也已經是登入狀態了,畢竟沒人會沒事用完就登出吧 ?
比方說我想用 Steam 來註冊 SteamDB 的會員,我會暫時被重導向到 Steam 的認證頁面
等我在 Steam 這邊成功被驗證以後,Steam 一定會明確告訴我,對方網站想要存取你的什麼資訊 ?
比方說,SteamDB 要求存取我的個人頭像、個人簡介、願望清單、收藏庫資訊等等 ...
同意啦 ! 哪次不同意了 ! 等你按下確認,Steam 就會生成一組 token 發給 SteamDB
我又會被重導向回 SteamDB,然後我就成為 SteamDB 的會員了
並且,SteamDB 會以 Steam 發給他的 token 存取我剛剛同意過的權限,整個過程你情我願
唯一需要注意的是,你想成為某網站的會員,他有沒有提出不合理的存取權限即可
每當我朋友對任何連結有疑慮,我都會請他們把連結丟給我看看
如果各位巴友真的有需求,不妨把釣魚連結站內信寄給我 !? 我是可以幫你看看啦 XD