我們如何解決安全性問題

來自

駭客是如何入侵你的網站

你想像一下家是一個二層樓的住家。

  • 一樓是你的24hr雜貨店,無法拉下鐵門。
  • 二樓是你的臥室/廚房/客廳。
  • 一樓往二樓的樓梯有一道門。

試想以下可能被入侵的場景:

  1. 如果一樓二樓任何鎖/大門都沒有,小偷(駭客)非常容易進去你的房子拿走一樓和二樓的所有東西,洗劫一空。
  2. 如果一樓往二樓的樓梯有加上一個電子防盜門,那小偷(駭客)最多只能把一樓的商品洗劫一空
  3. 如果一樓有加裝保險櫃,或者讓收銀機上鎖,小偷(駭客)最多只能把貨架上的東西偷走。
  4. 如果一樓店面是 24hr有人做櫃檯,那小偷(駭客)近乎不可能偷走任何東西。

防駭的邏輯跟防盜一模一樣

為什麼容易被駭很大原因是因為主機中有一塊區域,必須要劃分給你的網站,而且網站必須要 24 hr開啟。就跟你的房子一樓必須是 24hr雜貨店一樣。如果永遠都大門深鎖,那被偷的機率當然比雜貨店小很多。但我們的網站必須 24hr開放阿!

註:Linux系統中,多半是將 /var/www這個資料夾(如同一樓雜貨店)變成全世界的人都可以訪問。其餘的資料夾(如同二樓)只有業主才可訪問/編輯。

(圖片源自金蘋果網頁科技Linux主機後端)

SSH金鑰技術:一樓二樓的樓梯加裝電子防盜門

以前在只有傳統上鎖門的時候,如果小偷很會開鎖,他照樣可以開鎖上去二樓。這就如同雖然 Linux 系統的其他資料夾駭客雖然無法訪問,但是如果駭客得到其他資料夾的訪問密碼(password login),駭客照樣可以進入訪問。

現在為了安全機制,password login已經被我們棄用。SSH金鑰技術其實就跟電子鑰一樣,全世界只有『唯一』這把電子鑰,而且這個電子鑰在我手上。這代表全世界只有持有這個SSH金鑰的人才能進入主機之中。金蘋果現在已全面棄用Password login的傳統上鎖法,並且全面使用SSH金鑰技術。

註:公鑰(Public Key):用來加密資料的,任何人都可以獲得你的公鑰,用來對你傳送的訊息進行加密。特點是可以公開給任何人,無需保密,但加密後的資料只能用對應的私鑰解密。而私鑰是用來解密資料的,只有持有私鑰的人才能解密經過公鑰加密的資料,以確保通訊內容只有私鑰持有者能解讀。(如果很難理解也不需知道細節XD)

SSH金鑰技術示意圖,包含鎖、公鑰(public key)和私鑰(private key)

Mysql加蓋防火牆:如同一樓店面加裝保險室

Mysql其實就是一個資料庫的處理系統,很類似數十年前雜貨店重要的紙本資料,包括帳本,顧客名單,收據,稅單…等等。

他非常容易被偷/駭,主要是因為他必須要放在一樓店面,供員工時時翻閱查閱,並且容易在翻找/散落一地的時候被順手簽羊偷走。

我個人覺得這關是最重要的,因為大部分的網站個資外洩幾乎都是因為Mysql的資料外洩造成。如果讓這些資料必須要在保險室的小隔間中查閱/翻閱,就算在隔間被翻的一團亂,因為隔間有一道門,也不容易被入侵。

具體的作法就是做Mysql secure installation,包括禁止遠程登入(Remove remote login),檢閱匿名帳戶,定期查閱資料庫穩定性,定期清除資料庫快取。

Wordfence:24 hr的櫃檯守衛

Wordfence 是一款專為 WordPress 設計的強大網站安全插件,提供全方位的網站防護功能,是目前最受歡迎的 WordPress 安全解決方案之一。Wordfence 結合了防火牆(Firewall)和惡意軟體掃描功能,能有效地保護你的網站免受各種網路攻擊。

Wordfence Security Premium,由金蘋果購買並且幫所有金蘋果的客戶安裝,以維持最高品質的介面安全。(圖片源自金蘋果網頁科技後台)

Wordfence提供以下功能:

  1. 網站防火牆:Wordfence 提供端點防火牆功能,可以即時阻擋惡意流量、攻擊和嘗試入侵。
  2. 登入安全性加強:Wordfence提供雙重身份驗證(2FA),增強登入過程的安全性。偵測並阻擋暴力破解攻擊,限制多次錯誤登入嘗試。
  3. IP 封鎖:自動封鎖可疑 IP 位址,防止重複攻擊行為。
  4. 即時流量監控:監控網站訪問流量,顯示訪客、機器人和攻擊來源的詳細資訊。
以本案例而言,有一個來自荷蘭阿姆斯特丹的駭客,試圖用猜我後台的帳號密碼想要登入我的後台,試了20次後宣告失敗…。(圖片源自金蘋果網頁科技信箱)

    交付後提醒:權限管理要設定良善

    當網站同時有好幾個人在管理的時候,裡面的權限會分層,比方

    • 網站管理員(Administrator):擁有最高權限。可以執行網站上的所有操作,包括新增、刪除和編輯其他使用者。
    • 編輯者(Editor):可以建立、編輯和刪除所有使用者的文章。但無法修改網站設定、外掛和佈景主題。
    • 作者(Author):可以建立、編輯、發佈和刪除自己撰寫的文章。但無法管理其他使用者的文章或網站的設定。
    • 訂閱者(Subscriber):只能登入網站並管理自己的個人檔案。常用於需要登入後才能存取特定內容的網站。

    這個管理的權限其實就來自於對於『Mysql資料庫』訪問的權限不同。有時候給了某個同事一個相當大的權限,然而這個同事因為一波操作導致他被駭,連帶整個網站垮掉(crashed)。所以如果有新同事或者新上手的工作人員,務必先好好教他一波網路安全的重要性阿!

    透過適當分配其他同事或者新登入者的權限,以確保不被駭客進攻。(圖片源自金蘋果網頁科技後台)

    延伸閱讀

    我們如何幫你註冊高速網域

    網域就像是開店之前,你必須要先有門牌號碼 + 招牌扛棒。相信大家想要去某個餐廳時,在google...