ModSecurity คืออะไร และวิธีติดตั้งบน Cloud Server
ModSecurity คือ Web Application Firewall ที่ตรวจคำขอที่เข้ามายังเว็บก่อนถึงแอปจริง แล้วบล็อกรูปแบบการโจมตีที่รู้จัก เช่น การแทรกคำสั่งฐานข้อมูลและการฝังสคริปต์
- หมวดหมู่
- Security และ Firewall
- ติดตั้งบนเซิร์ฟเวอร์เองได้
- ได้
- สเปกเริ่มต้นที่แนะนำ
- 2 vCPU · RAM 4 GB
- ไลเซนส์
- Apache License 2.0 (โอเพนซอร์ส)
- เว็บทางการ
- เปิดเว็บไซต์
- ISO/IEC 27001
- ISO 22301
- ISO 20000-1
- CSA-STAR
Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย
ModSecurity คืออะไร
ช่องโหว่ของเว็บส่วนใหญ่เกิดจากการรับข้อมูลจากผู้ใช้แล้วนำไปใช้โดยไม่ตรวจสอบ ทางแก้ที่ถูกต้องคือแก้ที่โค้ด แต่ในความเป็นจริงเว็บจำนวนมากใช้ระบบสำเร็จรูปหรือปลั๊กอินที่แก้เองไม่ได้
ModSecurity ทำหน้าที่เป็นชั้นป้องกันด้านหน้า ตรวจทุกคำขอตามชุดกฎก่อนส่งต่อไปยังแอป จึงหยุดการโจมตีทั่วไปได้แม้แอปเบื้องหลังจะยังมีช่องโหว่ ซึ่งซื้อเวลาให้ทีมแก้ที่ต้นเหตุ
ชุดกฎที่ใช้กันมากที่สุดคือชุดกฎกลางจากชุมชนซึ่งครอบคลุมรูปแบบการโจมตีที่พบบ่อย ข้อควรระวังคือกฎอาจบล็อกคำขอที่ถูกต้องด้วย จึงต้องเริ่มจากโหมดบันทึกอย่างเดียวแล้วปรับก่อนเปิดบล็อกจริง
ความสามารถเด่นของ ModSecurity
ตรวจคำขอก่อนถึงแอป
หยุดการโจมตีทั่วไปได้แม้แอปเบื้องหลังยังมีช่องโหว่
ใช้ชุดกฎกลางจากชุมชน
ครอบคลุมรูปแบบการโจมตีเว็บที่พบบ่อยโดยไม่ต้องเขียนเอง
เขียนกฎเองได้
เพิ่มกฎเฉพาะสำหรับแอปหรือเส้นทางที่ต้องการป้องกันเป็นพิเศษ
บันทึกรายละเอียดคำขอที่ถูกบล็อก
ใช้เป็นหลักฐานและใช้ปรับกฎให้แม่นขึ้น
ใช้ได้กับ Nginx และ Apache
วางเป็นชั้นป้องกันหน้าเว็บที่มีอยู่เดิมได้โดยไม่ต้องแก้แอป
ใช้ ModSecurity ทำอะไรได้บ้าง
- เว็บ WordPress หรือระบบสำเร็จรูปที่ปลั๊กอินอาจมีช่องโหว่
- องค์กรที่ต้องมี Web Application Firewall ตามข้อกำหนดด้านความปลอดภัย
- ระบบเดิมที่แก้โค้ดไม่ได้แล้วแต่ยังต้องเปิดให้บริการ
- เว็บที่ถูกสแกนหาช่องโหว่จากภายนอกเป็นประจำ
สเปก Cloud Server ที่แนะนำ
| ระดับการใช้งาน | vCPU | RAM | Disk |
|---|---|---|---|
| เริ่มต้นเว็บเดียวที่ทราฟฟิกไม่สูง | 2 vCPU | 4 GB | NVMe 40 GB |
| แนะนำเว็บงานจริงที่มีผู้ชมต่อเนื่อง | 4 vCPU | 8 GB | NVMe 80 GB |
| ทราฟฟิกสูงหลายเว็บหลังตัวกระจายโหลดเดียวกัน | 8 vCPU ขึ้นไป | 16 GB ขึ้นไป | NVMe 150 GB ขึ้นไป |
ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ
วิธีติดตั้ง ModSecurity บน Cloud Server ของ THAI DATA CLOUD
ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server
สิ่งที่ต้องเตรียม
- Nginx หรือ Apache ที่รันอยู่แล้ว
- ชุดกฎกลางสำหรับ Web Application Firewall
- พื้นที่ดิสก์สำหรับ Log ของคำขอที่ถูกตรวจ
ทดสอบบน Ubuntu Server 24.04 LTS
- 1
ติดตั้งโมดูลและชุดกฎ
sudo apt update sudo apt -y install libnginx-mod-http-modsecurity modsecurity-crs - 2
เปิดใช้งานและตั้งค่าเริ่มต้น
เริ่มจากโหมดบันทึกอย่างเดียวเพื่อดูว่ากฎจะบล็อกคำขอที่ถูกต้องหรือไม่
sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf # ในไฟล์นั้น ตั้งค่าเริ่มต้นเป็นบันทึกอย่างเดียวก่อน SecRuleEngine DetectionOnly SecAuditLog /var/log/nginx/modsec_audit.log - 3
ผูกกับเว็บใน Nginx
server { listen 443 ssl; server_name www.example.com; modsecurity on; modsecurity_rules_file /etc/nginx/modsec/main.conf; location / { proxy_pass http://127.0.0.1:8080; } } - 4
ทดสอบและดู Log
ทดลองส่งคำขอที่มีรูปแบบการโจมตีแล้วดูว่ามีบันทึกเกิดขึ้น พร้อมตรวจว่าการใช้งานปกติของผู้ใช้ไม่ถูกจับผิดพลาด
sudo nginx -t && sudo systemctl reload nginx curl "https://www.example.com/?id=1%27+OR+1=1--" sudo tail -f /var/log/nginx/modsec_audit.log - 5
ปรับกฎที่แจ้งเตือนผิดพลาด
ปิดกฎเฉพาะรายการที่บล็อกการใช้งานจริงของระบบ โดยระบุหมายเลขกฎแทนการปิดทั้งหมวด
# ปิดกฎเฉพาะเส้นทางที่จำเป็น SecRule REQUEST_URI "@beginsWith /admin/upload" \ "id:1001,phase:1,pass,nolog,ctl:ruleRemoveById=920420" - 6
เปลี่ยนเป็นโหมดบล็อกจริง
เมื่อมั่นใจว่าไม่มีการบล็อกผิดพลาดแล้ว จึงเปลี่ยนค่าเป็นเปิดใช้งานเต็มรูปแบบ
SecRuleEngine On
อย่าเปิดโหมดบล็อกทันทีบนเว็บที่มีผู้ใช้จริง เพราะชุดกฎกลางมักบล็อกคำขอที่ถูกต้องในช่วงแรก ควรสังเกตอย่างน้อยหนึ่งถึงสองสัปดาห์ก่อน
พอร์ตที่ต้องเปิดบน Firewall
| พอร์ต | โปรโตคอล | ใช้ทำอะไร |
|---|---|---|
| 443 | TCP | HTTPS ที่ผ่านการตรวจสอบ |
| 80 | TCP | HTTP และการต่ออายุใบรับรอง |
สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ
- เริ่มจากโหมดบันทึกอย่างเดียวแล้วค่อยเปิดบล็อก
- อัปเดตชุดกฎตามรอบเพราะรูปแบบการโจมตีเปลี่ยนตลอด
- ปิดกฎเฉพาะรายการที่จำเป็นแทนการปิดทั้งหมวด
- ส่ง Log ไปเก็บที่ระบบกลางเพื่อวิเคราะห์และเก็บหลักฐาน
- อย่าใช้แทนการแก้ช่องโหว่ในโค้ด ให้ถือเป็นชั้นป้องกันเสริม
ทำไมควรรัน ModSecurity บน Cloud Server ของ THAI DATA CLOUD
Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง
วางเป็นชั้นป้องกันหน้าเว็บที่รันบน Cloud Server ได้โดยไม่ต้องแก้แอป
ใช้คู่กับ Firewall as a Service เพื่อป้องกันทั้งชั้นเครือข่ายและชั้นแอปพลิเคชัน
Log ของคำขอที่ถูกบล็อกเก็บอยู่ในเซิร์ฟเวอร์ในไทยสำหรับการตรวจสอบย้อนหลัง
คำถามที่พบบ่อยเกี่ยวกับ ModSecurity
ModSecurity แทนการแก้โค้ดได้ไหม
แทนไม่ได้ ควรถือเป็นชั้นป้องกันเสริมที่ซื้อเวลาให้ทีมแก้ที่ต้นเหตุ เพราะการโจมตีที่ออกแบบมาเฉพาะเจาะจงอาจเลี่ยงกฎได้ ส่วนช่องโหว่ในโค้ดยังอยู่เหมือนเดิม
ทำให้เว็บช้าลงไหม
มีผลบ้างเพราะต้องตรวจทุกคำขอ แต่โดยทั่วไปอยู่ในระดับที่ยอมรับได้สำหรับเว็บทั่วไป ถ้าทราฟฟิกสูงมากควรวัดผลกระทบจริงและพิจารณาปิดกฎที่กินทรัพยากรโดยไม่จำเป็น
ใช้กับ WordPress ได้ไหม
ได้และเป็นการใช้งานที่พบบ่อยที่สุด แต่ต้องปรับกฎเพราะหลังบ้านของ WordPress มักถูกกฎมาตรฐานจับผิดพลาด โดยเฉพาะหน้าแก้ไขเนื้อหาและการอัปโหลดไฟล์
ทางเลือกอื่นที่คล้ายกับ ModSecurity
แอปอื่นในหมวด Security และ Firewall
บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง
ให้เราติดตั้ง ModSecurity ให้ฟรี บน Cloud Server ในไทย
แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด