駭客是如何入侵你的網站
你想像一下家是一個二層樓的住家。
- 一樓是你的24hr雜貨店,無法拉下鐵門。
- 二樓是你的臥室/廚房/客廳。
- 一樓往二樓的樓梯有一道門。
試想以下可能被入侵的場景:
- 如果一樓二樓任何鎖/大門都沒有,小偷(駭客)非常容易進去你的房子拿走一樓和二樓的所有東西,洗劫一空。
- 如果一樓往二樓的樓梯有加上一個電子防盜門,那小偷(駭客)最多只能把一樓的商品洗劫一空
- 如果一樓有加裝保險櫃,或者讓收銀機上鎖,小偷(駭客)最多只能把貨架上的東西偷走。
- 如果一樓店面是 24hr有人做櫃檯,那小偷(駭客)近乎不可能偷走任何東西。
防駭的邏輯跟防盜一模一樣
為什麼容易被駭很大原因是因為主機中有一塊區域,必須要劃分給你的網站,而且網站必須要 24 hr開啟。就跟你的房子一樓必須是 24hr雜貨店一樣。如果永遠都大門深鎖,那被偷的機率當然比雜貨店小很多。但我們的網站必須 24hr開放阿!
註:Linux系統中,多半是將 /var/www這個資料夾(如同一樓雜貨店)變成全世界的人都可以訪問。其餘的資料夾(如同二樓)只有業主才可訪問/編輯。
SSH金鑰技術:一樓二樓的樓梯加裝電子防盜門
以前在只有傳統上鎖門的時候,如果小偷很會開鎖,他照樣可以開鎖上去二樓。這就如同雖然 Linux 系統的其他資料夾駭客雖然無法訪問,但是如果駭客得到其他資料夾的訪問密碼(password login),駭客照樣可以進入訪問。
現在為了安全機制,password login已經被我們棄用。SSH金鑰技術其實就跟電子鑰一樣,全世界只有『唯一』這把電子鑰,而且這個電子鑰在我手上。這代表全世界只有持有這個SSH金鑰的人才能進入主機之中。金蘋果現在已全面棄用Password login的傳統上鎖法,並且全面使用SSH金鑰技術。
註:公鑰(Public Key):用來加密資料的,任何人都可以獲得你的公鑰,用來對你傳送的訊息進行加密。特點是可以公開給任何人,無需保密,但加密後的資料只能用對應的私鑰解密。而私鑰是用來解密資料的,只有持有私鑰的人才能解密經過公鑰加密的資料,以確保通訊內容只有私鑰持有者能解讀。(如果很難理解也不需知道細節XD)
Mysql加蓋防火牆:如同一樓店面加裝保險室
Mysql其實就是一個資料庫的處理系統,很類似數十年前雜貨店重要的紙本資料,包括帳本,顧客名單,收據,稅單…等等。
他非常容易被偷/駭,主要是因為他必須要放在一樓店面,供員工時時翻閱查閱,並且容易在翻找/散落一地的時候被順手簽羊偷走。
我個人覺得這關是最重要的,因為大部分的網站個資外洩幾乎都是因為Mysql的資料外洩造成。如果讓這些資料必須要在保險室的小隔間中查閱/翻閱,就算在隔間被翻的一團亂,因為隔間有一道門,也不容易被入侵。
具體的作法就是做Mysql secure installation,包括禁止遠程登入(Remove remote login),檢閱匿名帳戶,定期查閱資料庫穩定性,定期清除資料庫快取。
Wordfence:24 hr的櫃檯守衛
Wordfence 是一款專為 WordPress 設計的強大網站安全插件,提供全方位的網站防護功能,是目前最受歡迎的 WordPress 安全解決方案之一。Wordfence 結合了防火牆(Firewall)和惡意軟體掃描功能,能有效地保護你的網站免受各種網路攻擊。
Wordfence提供以下功能:
- 網站防火牆:Wordfence 提供端點防火牆功能,可以即時阻擋惡意流量、攻擊和嘗試入侵。
- 登入安全性加強:Wordfence提供雙重身份驗證(2FA),增強登入過程的安全性。偵測並阻擋暴力破解攻擊,限制多次錯誤登入嘗試。
- IP 封鎖:自動封鎖可疑 IP 位址,防止重複攻擊行為。
- 即時流量監控:監控網站訪問流量,顯示訪客、機器人和攻擊來源的詳細資訊。
交付後提醒:權限管理要設定良善
當網站同時有好幾個人在管理的時候,裡面的權限會分層,比方
- 網站管理員(Administrator):擁有最高權限。可以執行網站上的所有操作,包括新增、刪除和編輯其他使用者。
- 編輯者(Editor):可以建立、編輯和刪除所有使用者的文章。但無法修改網站設定、外掛和佈景主題。
- 作者(Author):可以建立、編輯、發佈和刪除自己撰寫的文章。但無法管理其他使用者的文章或網站的設定。
- 訂閱者(Subscriber):只能登入網站並管理自己的個人檔案。常用於需要登入後才能存取特定內容的網站。
這個管理的權限其實就來自於對於『Mysql資料庫』訪問的權限不同。有時候給了某個同事一個相當大的權限,然而這個同事因為一波操作導致他被駭,連帶整個網站垮掉(crashed)。所以如果有新同事或者新上手的工作人員,務必先好好教他一波網路安全的重要性阿!