WordPress 基本安全性檢測與防範方式 / WordPress Security Check and How to Prevent Them_呂明璋 / John Lu

WordPress 基本安全性檢測與防範方式 / WordPress Security Check and How to Prevent Them_呂明璋 / John Lu

本主題將針對使用 VPS 自架站的人提出一些基本的網站安全性檢測與防範,包含 WordPress 資訊隱藏、目錄權限設定、Security Header 檢測與設定、.htaccess 安全性設定、簡易的自動化備份流程等等,希望在自架站的同時,也能對於基本的資安知識有所瞭解。 接著也會介紹網站被駭之後的處理方式,包含網站復原、重新提交網頁漏洞檢測報告(Sucuri、McAfee),避免被防毒軟體當作惡意網站阻擋。

0d9743a94b19d92224b6928a6c2f8ad1?s=128

WordCamp Taipei

December 28, 2019
Tweet

Transcript

  1. 大綱 1 1. WordPress 常見漏洞來源 2. 網站基本掃描 3. WordPress 版本資訊隱藏

    4. 目錄權限設定 5. Security Header 檢測與設定 6. 自動化備份 7. 網站被駭之處理方法 8. Q&A WordPress 基本安全性檢測與防範方式 呂明璋/John Lu
  2. Johntool-工具王阿璋 2 • 清大資工碩二 • 資安攻防經驗兩年 • 部落客/接案者 @johntooltw fb.com/JohntoolTW

    www.johntool.com
  3. 大綱 3 1. WordPress 常見漏洞來源 2. 網站基本掃描 3. WordPress 版本資訊隱藏

    4. 目錄權限設定 5. Security Header 檢測與設定 6. 自動化備份 7. 網站被駭之處理方法 8. Q&A 投影片:https://www.johntool.com/wordcamp
  4. WordPress 常見漏洞來源 1

  5. 過時的主題、外掛、PHP版本 定義: WordPress、PHP未更新至最新版, 造成已知漏洞攻擊的可能性。 攻擊: Exploit Database、WPScan 已知漏洞。 預防: 定時更新到最新版本。

    5
  6. 非官方來源主題、外掛 定義: 安裝破解版、不明來源的主題外掛 攻擊: WP-VCD、連結轉跳廣告 預防: 使用官方來源主題、外掛 6

  7. 7 暴力攻擊 定義: 尋找出使用者,嘗試各種密碼, 運用大量的算法與字典來爆破。 攻擊: • wpscan --url domain

    --enumerate u -t 50 • wpscan --url domain --wordlist wpw_pwd_dictionary.txt --username admin
  8. 8 暴力攻擊 預防: • 高強度密碼(大小寫英文+數字+符號) • 2FA、3FA • 不要使用 admin

    當作使用者 • 關閉使用者頁面
  9. SQL Injection 定義: 透過表單、網址,輸入SQL語法, 繞過資料庫的判斷,進而得到資料庫權限或資料。 攻擊: ' OR 1 =

    1 -- 預防: • 使用 WPScan 或是 Sucuri 掃描確認 • 定期備份資料庫 • 更新PHP、SQL版本。 9
  10. Crossing Site Scripting(XSS) 定義: 前端輸入被記錄在網站上, 瀏覽此網站者會被執行惡意JavaScript。 攻擊: ' <script>alert( 'xss'

    )</script> 預防: • 確保使用者輸入有進行字串判斷 • X-XSS-Protection 10
  11. DDOS 定義: 大量的伺服器向網站發出前端請求, 造成網站流量無法負荷。 攻擊: XMLRPC Pingback 攻擊 預防: •

    黑名單 • Cloudflare (CDN) • 關閉 Pingback 11
  12. 網站基本掃描 2

  13. Sucuri SiteCheck 13

  14. “ Sucuri SiteCheck https://sitecheck.sucuri.net/ 14

  15. “ Sucuri SiteCheck https://sitecheck.sucuri.net/ 15

  16. WPSec 16

  17. “ WPSec https://wpsec.com 17

  18. “ WPSec https://wpsec.com 18

  19. WPScan 19

  20. “ WPScan https://wpscan.org/ 20

  21. “ WPScan https://wpscan.org/ 21

  22. WordPress 版本資訊隱藏 3

  23. 為什麼要隱藏版本資訊 23 • 避免已知漏洞攻擊 • 減少成為攻擊目標的機會 P.S. 隱藏版本資訊不是必要, 但若是過時的版本,最好要隱藏。

  24. 24 隱藏方式 • 添加位置 ◦ functions.php ◦ 程式碼片段(Code Snippets) –

    教學文章
  25. 目錄權限設定 4

  26. 26 目錄權限 • Hardening WordPress • 資料夾:755 ◦ find WP_Root

    -type d -exec chmod 755 {} \; • 檔案:644 ◦ find WP_Root -type f -exec chmod 644 {} \; • Owner, Group:通常為www-data ◦ sudo chown -R www-data:www-data WP_Root
  27. 27 .htaccess • 純文字檔案,Apache 伺服器配置相關的指令 用途: • 限定網頁讀取 IP •

    設定保密資料夾 • 自訂錯誤頁面 • php.ini 參數值設定 • 重新導向頁面
  28. 28 .htaccess 使用方式: • 創建一個 .htaccess 文件 • 需要修改 httpd.conf,啟用

    AllowOverride (通 常預設開啟)
  29. 29 禁止目錄瀏覽 Options -Indexes

  30. 30 wp-config.php 安全性 <files wp-config.php> order allow,deny deny from all

    </files>
  31. 31 .htaccess 安全性 <files ~ "^.*\.([Hh][Tt][Aa])"> order allow,deny deny from

    all satisfy all </files>
  32. 32 wp-includes 安全性 # Block the include-only files. <IfModule mod_rewrite.c>

    RewriteEngine On RewriteBase / RewriteRule ^wp-admin/includes/ - [F,L] RewriteRule !^wp-includes/ - [S=3] RewriteRule ^wp-includes/[^/]+\.php$ - [F,L] RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L] RewriteRule ^wp-includes/theme-compat/ - [F,L] </IfModule>
  33. 33 限制 IP 存取 order deny,allow allow from [insert your

    IP address] deny from all
  34. Security Header 檢測與設定 5

  35. 35 Security Header 是什麼? 定義於 Http Header Response 透過簡單的定義,讓網站更安全

  36. 36

  37. 37 掃描方式 • https://securityheaders.com/

  38. 38 掃描結果

  39. 39 設定方式 • 加入 .htaccess 或是 apache2.conf Header set Strict-Transport-Security:

    max-age=2592000 Header set X-Frame-Options: SAMEORIGIN Header set Referrer-Policy: no-referrer Header set X-XSS-Protection: “1; mode=block” Header set X-Content-Type-Options: nosniff
  40. 自動化備份 6

  41. 為什麼要自動化備份? 41 自動備份 • 網站的安全性永遠無法預期 • 手動備份太麻煩 • 指定備份時間

  42. 42 自動化備份推薦方式 • 主機商: ◦ 注意備份留存時間 ◦ 檔案能不能隨時取得 • 外掛:

    ◦ UpdraftPlus(教學文章) ◦ VaultPress • Shell Script: ◦ 資料夾+資料庫
  43. 43 備份注意事項 • 中文圖片檔名 ◦ 注意編碼方式(UTF-8)壓縮 ◦ 修改檔名(Media File Renamer)

    ◦ 上傳自動修改檔名(RY Nice Upload FileName) • 主機資源上限 ◦ 備份時,IO, CPU 會特別高 • 避免尖峰時段 ◦ 盡量在半夜進行備份
  44. 網站被駭處理方法 7

  45. • Google Search Console • Sucuri Sitecheck • 是否有更新到最新版 •

    不知名的使用者 45 確認問題
  46. • 比對檔案時間 • 特別注意 wp-content, wp-config, .htaccess • 確認檔案權限 •

    資料庫被更改? • 查詢 error.log / access.log 46 確認問題
  47. • 尋求主機商、專業人員 • 是否有備份? • 還原是否能解決? • 替換 WordPress 檔案

    47 解決問題
  48. • 保持最新版本 • 修改密碼 / 二階段驗證 • 自動化備份 • 回報網站修復完成(Google,

    Sucuri, McAfee) 48 後續處理
  49. Q&A 8

  50. 50 Thanks! You can find me at Johntool-工具王阿璋 @johntooltw fb.com/JohntoolTW

    www.johntool.com