WordPress資安防護設定

WordPress Web Hosting

  • 攻擊類型
  • 手法詳述
  • 阻擋

注入攻擊

SQL Injection

SQL Injection類似填空一樣,攻擊者在任何能輸入資料的網頁,嘗試猜想網站使用的語法,推測完整指令的寫法、欄位數、table名稱,SQL版本資訊,企圖拼湊SQL指令,輕則刪掉資料庫,重則竊取全部的個資。網站管理者對使用者輸入的任何字串都應進行安全性的檢查。

XSS跨站攻擊

Cross-Site Scripting

XSS跨站攻擊利用網站漏洞,讓使用者在瀏覽網頁時,像是討論區、留言版等,允許使用者輸入HTML、JavaScript,不知情下執行惡意程式。XSS跨站攻擊,在資料加密前便開始執行。裝SSL是沒有防禦作用。任何的網站伺服器或應用程式伺服器,都容易受到XSS跨站攻擊

跨站冒名請求

Cross Site Request Forgery(CSRF)

登入網站應用程式的合法使用者執行惡意HTTP指令,但網站卻當成合法要求處理,使得惡意指令被正常執行。常見於互動性高的社群網站或部落格,在留言板留言時塞入HTML碼。最好在input欄位裡輸入資料時加上token,避免使用者植入惡意的指令。

未經驗證的重新導向與轉送

Unvalidated Redirects and Forwards

如果網站有重新導向的功能,就要注意了。程式可藉此使用者重新導向至其他網頁。假設沒有適當的驗證,攻擊者可引導受害者至釣魚軟體或惡意網站,或未授權的頁面。此時,頁面要求填寫個人資料或金融轉帳資訊,必導致個資外洩和財務上的損失。

使用已知漏洞元件

Using Components with Known Vulnerabilities

架設WP網站,一定會使用外掛附件(plugin)。而這類第三方的元件、套件或Framework,都會潛藏著漏洞及風險,容易被攻擊、使用自動化大規模掃描攻擊。基本上第三方元件會在最新版本裡修復漏洞,最簡單的防禦就是把元件更新到最新版本!

缺少功能級別的存取控制

Missing Function Level Access Control

攻擊者會嘗試找尋網站上其他網頁的網址,如果沒有對頁面進行存取權限的控管的話,他有可能直接癱瘓整台主機。每個網頁最好先預設,辨識身分後才能存取,並且做好認證管制,並確認每個頁面都有做好權限的控制。

敏感資料暴露

Sensitive Data Exposure

分為兩部分。第一,網站傳輸敏感資料時未使用SSL加密,導致傳輸可能被攔截,造成使用者的帳密被盜用;第二,使用者的敏感資料,並未加密後儲存。網站傳輸資料建議使用SSL加密後傳輸,密碼使用不可逆的演算法加密後再存在資料庫中。

不當的安全組態設定

Security Misconfiguration

網站的安全設定沒有設定好。例如:未刪除或更改元件的預設帳密,攻擊者輕鬆入侵;未關閉Directory listing,攻擊者輕易找到網站的檔案,並獲取原始碼;直接回傳錯誤訊息,透漏漏洞的資訊給攻擊者;未刪除套件原有的範例程式,許多範例是有漏洞的。

不安全的物件參考

Insecure Direct Object References

利用網站的檔案讀取功能,任意的讀取敏感資料或重要檔案,進而分析檔案後,達到攻陷網站的目的。主要問題於網頁編寫的原始碼,沒有去驗證使用者輸入的字串是否合法。針對網頁的檔案或物件設定正確的存取權限限制,並於存取時確認使用者的存取權限。

失效的驗證與連線管理

Broken Authentication and Session Management

不注意的網站會將使用者SESSION ID曝露在網址中,或未設定SESSION設定Timeout時間。使用者在公用電腦登入卻未登出,下一個使用者將可以直接以上一位使用者的身分登入。一定要使用SSL加密連線機制,不要將SESSION ID暴露在URL中,搭配完善SESSION保護機制,設定Timeout機制。

傳輸層保護不足

Insufficient Transport Layer Protection

網站程在傳輸機密資訊時未提供加密功能,或者是使用過期、無效的憑證,使加密不可信賴。駭客可入侵無線網路,竊取cookie;網站SSL憑證無效,使人誤入釣魚網站。網站務必使用正確的SSL憑證加密,並確認憑證是有效並核發給該網址使用。

未加密的儲存設備

Insecure Cryptographic Storage

網站程式沒有對敏感性資料使用加密、使用較弱的加密演算法或將金鑰儲存於容易被取得之處。加密演算法是安全防護的最後一道防線,當駭客取得了帳號密碼,可以簡單的使用一些破解軟體甚至線上服務進行破解。導致網站客戶資料遭制竊取。