Memcrash explaination
The snippet can be accessed without any authentication.
Authored by
Tanawatra C.
Edited
memcrashed.md 2.64 KiB
## memcache
- คืออะไร
โปรแกรมกระจายข้อมูลที่ใช้ร่วมกันของ web server ในกรณีที่ทำ load balance โดยข้อมูลจะถูกเก็บไว้บน memory ซึ่งทำให้มีความเร็วสูงในการเรียกใช้ ส่วนใหญ่จะใช้เก็บข้อมูลประเภท UserProfile, Session
- ทำงานยังไง
ทำงานโดยทำตัวเป็น server โดยเปิดพอร์ท `11211` ขึ้นมาและให้ client เรียก/ฝาก ข้อมูลผ่าน memcached protocol
- โดนโจมตีได้อย่างไร
โดยปกติ memcache จะเปิดพอร์ท `11211/udp` และ bind บน interface `0.0.0.0` เป็นค่า default (update: ล่าสุดแก้ไขเป็น 127.0.0.1 แล้ว) ทำให้สามารถเรียกจาก internet ได้ ในกรณีที่ เครื่องเซิร์ฟเวอร์นั้นต่อเน็ตอยู่ด้วย (หลุดสุด ๆ)
- IP spooffing
- hacker สร้าง network packet โดยปลอม IP ต้นทางเป็น IP ของเหยื่อที่จะทำการ DDoS ทำให้ memcached server ทำการส่งข้อมูลตอบกลับไปยัง IP ปลอมดังกล่าว
- Amplified ?
- hacker ทำการยิงคำสั่ง `STAT` เข้าไปยัง memcached server ทำให้ memcache ทำการตอบกลับด้วยข้อมูล สถานะของ server ซึ่งมีขนาดใหญ่กว่า คำสั่งมาก ทำให้เกิดการ amplified ของข้อมูลกว่า 51,000 เท่า !!!
- วิธีป้องกันการโจมตี
- ตั้ง Memcached Server ให้อยู่หลัง Firewall
- ตั้งค่า Firewall เปิด port เฉพาะที่ต้องการให้ access ได้จาก Internet เท่านั้น เช่น `80, 443` (ห้ามปิด Firewall เพราะอันตรายที่สุด)
- Bind Address เป็น 127.0.0.1 (รับคำสั่งเฉพาะ localhost เท่านั้น) หรือ Private IP (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
Please register or sign in to comment