คู่มือการตอบสนองฉุกเฉินสำหรับเซิร์ฟเวอร์ Alibaba Cloud หลังจากถูกโจมตีโดย DDoS / CC
ได้รับข้อความจาก Alibaba Cloud: "อินสแตนซ์ ECS ของคุณถูกโจมตีโดยการรับส่งข้อมูลจำนวนมากและถูกส่งไปยังหลุมดำเพื่อทำความสะอาด..."
ฉันเชื่อว่าผู้ดูแลเว็บหรือการดำเนินการและการบำรุงรักษาใดๆที่เห็นข่าวนี้ความดันโลหิตของเขาจะพุ่งสูงขึ้นทันทีไม่สามารถเปิดเว็บไซต์ได้ผู้ใช้บ่นอย่างเมามันในกลุ่มและเจ้านายจ้องมองคุณอยู่ข้างหลังในเวลานี้ฝ่ามือของคุณมีเหงื่อออกและคุณมีแนวโน้มที่จะไปหาหมอ
ใจเย็นๆ. เมื่อพบการโจมตีความตื่นตระหนกไม่สามารถแก้ปัญหาใดๆได้ไม่มีเรื่องไร้สาระทางทฤษฎีในบทช่วยสอนนี้ในวันนี้ฉันจะให้ชุดโดยตรง
คู่มือการตอบสนองฉุกเฉินที่แท้จริงเมื่อสภาพแวดล้อมการผลิตพบการโจมตี DDoS / CC
。บันทึกบทความนี้ในบุ๊กมาร์กของคุณเพื่อช่วยชีวิตคุณในช่วงเวลาสำคัญ
แนวคิดหลัก: ก่อนอื่นให้คิดว่าคุณกำลังต่อสู้อะไร
การรู้จักตัวเองและศัตรูเท่านั้นที่สามารถมองเห็นกลอุบายได้การโจมตีมีสองประเภทหลักและกลยุทธ์การเผชิญปัญหาแตกต่างกันอย่างสิ้นเชิง:
การโจมตี DDoS (ประเภทการรับส่งข้อมูล): แฮกเกอร์ควบคุมไก่เนื้อหลายพันตัวและใช้การรับส่งข้อมูลขยะจำนวนมาก (UDP, TCP Flood) เพื่อบีบแบนด์วิดท์เซิร์ฟเวอร์ของคุณโดยตรงมันเหมือนกับคนหลายหมื่นคนที่บีบทางเข้ารถไฟใต้ดินในเวลาเดียวกันและคนปกติก็ไม่สามารถเข้าไปได้เลย
การโจมตี CC (ประเภทแอปพลิเคชัน): การเข้าชมของแฮ็กเกอร์ไม่มากนักแต่เขาใช้พร็อกซี IP เพื่อจำลองผู้ใช้จริงและรีเฟรชหน้าเว็บที่ใช้ทรัพยากรมากที่สุดในเว็บไซต์ของคุณอย่างบ้าคลั่ง (เช่นการค้นหาการสืบค้นฐานข้อมูลอินเทอร์เฟซแบบไดนามิก) แบนด์วิดท์ไม่เต็มแต่ซีพียูเซิร์ฟเวอร์ของคุณเป็น100% ทันทีซึ่งเป็นอัมพาตโดยตรง
ขั้นตอนที่1: การช่วยเหลือตนเองในกรณีฉุกเฉิน-การไหลฉุกเฉิน5นาที
เมื่อคุณพบว่าไม่สามารถเปิดเว็บไซต์ได้และการตรวจสอบแสดงให้เห็นว่าการเข้าชมเพิ่มสูงขึ้นหรือ CPU เพิ่มสูงขึ้นให้เริ่มขั้นตอนฉุกเฉินต่อไปนี้ทันที
ขั้นตอนที่1: ตรวจสอบว่าคุณเข้าสู่ "หลุมดำ" หรือไม่
หาก Alibaba Cloud ทำให้เซิร์ฟเวอร์ของคุณเป็น "หลุมดำ" โดยตรงนั่นหมายความว่าการเข้าชมการโจมตีเกินเกณฑ์การป้องกันเริ่มต้นที่ Alibaba Cloud ให้ไว้สำหรับ ECS ทั่วไป (โดยปกติจะอยู่ที่ประมาณ5G)
ปรากฏการณ์: ไม่เพียงแต่ไม่สามารถเปิดเว็บไซต์ได้แต่คุณไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ผ่าน SSH ได้เลยและแม้แต่ IP เครือข่ายสาธารณะของเซิร์ฟเวอร์ ping ก็หมดเวลาทั้งหมด
วิธีแก้ไข: ลงชื่อเข้าใช้คอนโซล Alibaba Cloud ค้นหา "การป้องกัน DDoS" และดูสถานะอินสแตนซ์ของคุณในรายการการป้องกันพื้นฐานหากอยู่ใน "หลุมดำ" โดยปกติจะใช้เวลา30นาทีถึงหลายชั่วโมงในการปลดบล็อกโดยอัตโนมัติ
💡จะช่วยตัวเองในช่วงหลุมดำได้อย่างไร? อย่ารอโง่ๆหากธุรกิจจำเป็นต้องได้รับการกู้คืนอย่างเร่งด่วนให้ไปที่คอนโซลทันทีเพื่อผูก "EIP" ใหม่ล่าสุดกับ ECS นี้ตราบใดที่แฮกเกอร์ไม่พบ IP ใหม่ของคุณเว็บไซต์ก็สามารถฟื้นคืนชีพได้ทันที
ขั้นตอนที่2: หาก SSH ยังคงเชื่อมต่ออยู่ให้ตรวจสอบการโจมตี CC อย่างเร่งด่วน
หากเซิร์ฟเวอร์ไม่เข้าไปในหลุมดำแต่ติดตายให้ใช้ VNC หรือ SSH เพื่อเชื่อมต่อและพิมพ์
ด้านบน
。ถ้าคุณเห็น
เอ็นจีนซ์
หรือ
พีเอชพี-เอฟพีเอ็ม
/
จาวา
หลังจากกิน CPU แล้ว90% ถูกโจมตีโดย CC
ไปที่บันทึกการเข้าถึงของ Nginx (Access Log) ทันทีและจับภาพคุณสมบัติที่กำลังกวาดหน้าจออย่างบ้าคลั่ง:
Bas
เอช
# ดู IP เบาะแสที่มีผู้เยี่ยมชมมากที่สุดในปัจจุบัน (20อันดับแรก)
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -n 20
สังเกตการร้องขอการเข้าถึงความถี่สูงเหล่านี้และมองหาสิ่งที่พวกเขามีเหมือนกัน:
คุณกำลังขออินเทอร์เฟซแบบไดนามิกเดียวกัน (เช่น/api/v1/search) หรือไม่?
User-Agent (โลโก้เบราว์เซอร์) ของพวกเขาแปลกมากหรือเหมือนกันทุกประการ (เช่น IE6.0เก่าหรือว่างเปล่า)?
ทั้งหมดมาจากกลุ่ม IP เดียวกันหรือไม่?
ขั้นตอนที่3: ทันทีในท้องถิ่น "ปิดประตูตีสุนัข"
หลังจากจับคุณสมบัติได้แล้วให้ทำการแบนฉุกเฉินใน Nginx
1.หาก IP เฉพาะกำลังทำงานให้บล็อกส่วน IP โดยตรง:
เปิดไฟล์กำหนดค่าเว็บไซต์ Nginx ของคุณใน
Server
เพิ่มโดยตรงในบล็อก:
เอ็นจินซ์
Deny 123.45.67.89; # ห้าม IP ที่เป็นอันตรายเดียว
Deny 220.181.0.0/16; # ห้ามทั้ง C-segment หรือ B-segment IP ที่เป็นอันตราย
จากนั้นเรียกใช้
nginx -s reload
。
2.หากคุณสมบัติคำขอชัดเจน (เช่น UA หรืออินเทอร์เฟซเฉพาะ) ให้ส่งกลับ403โดยตรง:
เอ็นจินซ์
If ($ http_user_agent ~ * "Scrapy | HttpClient | Java") {
กลับ403;
}
ขั้นตอนที่สอง: การปรับโครงสร้าง-ตัดสายตาของแฮกเกอร์
การช่วยเหลือตนเองฉุกเฉินข้างต้นสามารถปิดกั้นการโจมตีระดับต่ำเท่านั้นหากแฮกเกอร์เปลี่ยน IP ของพร็อกซีเพื่อทำการสแกนต่อไปหรือมีการเข้าชม DDoS โดยตรงก็เป็นไปไม่ได้เลยที่จะพึ่งพา ECS เพียงเครื่องเดียว
คุณต้องปรับโครงสร้างทันที
ซ่อนเซิร์ฟเวอร์ไว้เบื้องหลัง
。
การออกแบบสถาปัตยกรรมการป้องกันหลัก
ข้อความธรรมดา
[การโจมตีที่เป็นอันตรายต่อการจราจร/ผู้ใช้ปกติ]
│
▼
[ชั้นป้องกันความปลอดภัยบนคลาวด์ (สูงป้องกัน IP/CDN)] ── (ทำความสะอาดการไหลของขยะ) ──> สกัดกั้นและทิ้ง
│
(การจราจรที่สะอาด)
│
▼
[ECS สถานีต้นทางที่ซ่อนอยู่ภายใน VPC]
ขั้นตอนที่4: เข้าถึง CDN หรือ WAF (ซ่อน IP สถานีต้นทางอย่างละเอียด)
แฮกเกอร์สามารถตีคุณได้เพราะเขารู้ IP สาธารณะที่แท้จริงของเซิร์ฟเวอร์ของคุณเราต้องเพิ่ม "ไฟร์วอลล์" ระหว่างชื่อโดเมนและเซิร์ฟเวอร์ทันที
เข้าถึงทั้งไซต์ของ Alibaba Cloud เพื่อเร่ง DCDN หรือ CDN ที่ปลอดภัย: แก้ไข DNS ของชื่อโดเมนจากจุดตรงไปยัง IP ของเซิร์ฟเวอร์
แทนที่จะชี้ไปยังที่อยู่ CNAME ที่ CDN ให้มาด้วยวิธีนี้ไม่ว่าแฮกเกอร์จะตรวจสอบชื่อโดเมนอย่างไรพวกเขาจะได้รับ IP ของโหนดขอบของ CDN เท่านั้น CDN มีความสามารถในการทำความสะอาดการไหลขนาดใหญ่ตามธรรมชาติซึ่งสามารถช่วยคุณป้องกันการโจมตี CC ส่วนใหญ่ได้
เปิด "ความท้าทาย JavaScript": ในคอนโซลของ CDN หรือ Cloud Shield WAF ให้ปรับระดับการป้องกันเป็น "ฉุกเฉิน" หรือเปิด "CC Security Protection" ณจุดนี้ใครก็ตามที่เยี่ยมชมเว็บไซต์ของคุณจะปรากฏหน้ารอ5วินาที "กำลังตรวจสอบความปลอดภัยของเบราว์เซอร์..." สคริปต์ไก่เนื้อไม่มีเอ็นจิ้นการแสดงผลของเบราว์เซอร์จริงและจะติดอยู่กับระดับนี้อย่างสมบูรณ์
ขั้นตอนที่5: ตัดการเข้าถึงโดยตรงทั้งหมด (คีย์) ของ IP เก่าของเซิร์ฟเวอร์
หลายคนพบว่าเซิร์ฟเวอร์ยังติดอยู่หลังจากได้รับ CDN ทำไม? เนื่องจากแฮ็กเกอร์ได้บันทึก IP จริงของเซิร์ฟเวอร์ก่อนหน้าของคุณเขาจึงข้ามชื่อโดเมนโดยตรงและใช้ IP เพื่อต่อสู้กับความตาย
วิธีแก้ปัญหาเดียว: ไปที่คอนโซล Alibaba Cloud ECS และเข้าสู่ "กลุ่มความปลอดภัย"
แก้ไขกฎทิศทางเข้า: ลบกฎที่อนุญาตให้ IP ทั้งหมด (0.0.0.0/0) เข้าถึงพอร์ต80และ443。
เปลี่ยนเป็น: อนุญาตเฉพาะส่วน IP สาธารณะของ CDN หรือ WAF ที่คุณซื้อเพื่อเข้าถึง80และ443
ด้วยวิธีนี้ยกเว้นการรับส่งข้อมูลที่สะอาดซึ่งส่งต่อผ่าน CDN ใครก็ตามที่พิมพ์ IP ของเซิร์ฟเวอร์ของคุณโดยตรงจะแจ้งว่าการเชื่อมต่อล้มเหลวเซิร์ฟเวอร์ของคุณถูกซ่อนไว้อย่างสมบูรณ์บนอินเทอร์เน็ต
ขั้นตอนที่สาม: ความมั่นคงในระยะยาว-การป้องกันปัญหาก่อนที่จะเกิดขึ้น
หลังจากได้รับการตีอย่างรุนแรงคุณต้องชดเชยข้อบกพร่องในการใช้งานและการบำรุงรักษาประจำวัน:
การช่วยตัวเองในระดับรหัส: สำหรับอินเทอร์เฟซแบบไดนามิกที่มีความเสี่ยงสูงเช่นการเข้าสู่ระบบการลงทะเบียนการค้นหาและรหัสยืนยันทาง SMS จะต้องเพิ่มรหัสยืนยันแบบกราฟิกหรือการตรวจสอบพฤติกรรม (เช่นการตรวจสอบแถบเลื่อน) ตัวนับ Redis ถูกนำมาใช้ในตรรกะของรหัสเพื่อจำกัดความถี่ในการเข้าถึงสำหรับผู้ใช้รายเดียว/IP เดียว (ตัวอย่างเช่นการเข้าถึงมากกว่า5ครั้งใน1วินาทีจะถูกล็อคโดยตรงเป็นเวลาหนึ่งชั่วโมง)
เตรียม "กระเป๋าเงิน" และแผนการป้องกันระดับสูง: หากคุณกำลังทำอีคอมเมิร์ซเกมหรือมีส่วนร่วมในกิจกรรมทางการตลาดออนไลน์การดึงดูดแฮกเกอร์มืออาชีพที่เพื่อนร่วมงานจ้างมาเป็นเรื่องง่าย ECS ธรรมดาไม่สามารถแก้ปัญหา DDoS ขนาดใหญ่ได้เมื่อปริมาณการโจมตีเกิน50G ให้ซื้อ DDoS High Defense (BGP ใหม่) ของ Alibaba Cloud มีแบนด์วิดท์การทำความสะอาดระดับ T ซึ่งเป็นแนวป้องกันที่ซ้อนกันด้วยฮาร์ดแวร์บริสุทธิ์และแบนด์วิดท์ระดับบนสุด
ไม่น่ากลัวที่เว็บไซต์จะถูกโจมตีสิ่งที่น่ากลัวคือแฮกเกอร์กำลังตีคุณแต่คุณนั่งอยู่หน้าคอมพิวเตอร์และไม่ทำอะไรเลยนอกจากรีสตาร์ทเซิร์ฟเวอร์สลักชุด "แอปพลิเคชันการทำความสะอาดสถานีต้นทางที่ซ่อนอยู่ในปัจจุบัน" ไว้ในใจของคุณแม้ว่าแฮกเกอร์จะมาอีกครั้งคุณก็สามารถสงบสติอารมณ์และหยุดมันได้
