New Cache Poisoning Attack Lets Attackers Target CDN Protected Sites

 

นักวิจัยพบวิธีโจมตี cache poisoning แบบใหม่ ทำให้ระบบเว็บแคชส่งหน้า error ไปยังผู้ใช้บริการแทนที่จะเป็นหน้าเว็บ

ปัญหานี้จะกระทบกับเว็บไซต์ที่ใช้ reverse proxy cache เช่น Varnish หรือเว็บไซต์ที่ใช้บริการ CDN ซึ่งมีหลากหลาย ไม่ว่าจะเป็น Amazon CloudFront, Cloudflare, Fastly, Akamai, และ CDN77

Content Distribution Network (CDN) มีหน้าที่ช่วยเก็บไฟล์แคช รวมถึง HTML pages JavaScript files, stylesheets, รูปภาพ และวีดีโอ จากเซิร์ฟเวอร์ต้นทางและส่งมันให้ผู้เยี่ยมชมอย่างรวดเร็ว

วิธีโจมตี cache poisoning แบบใหม่นี้เรียกว่า CPDoS ย่อมาจาก Cache Poisoned Denial of Service เป็นการทำให้ผู้ใช้งานได้รับหน้า error จาก CDN แทนหน้าที่ต้องการ

การโจมตี CPDoS ทำได้ดังนี้ :

ผู้โจมตีจากระยะไกลขอเว็บเพจเป้าหมายโดยการส่งรีเควส HTTP ที่มี header ผิดๆ
ถ้าตัวกลาง CDN เซิร์ฟเวอร์ไม่ได้มีสำเนาของหน้าเพจนั้นๆ มันจะส่งรีเควสไปที่เว็บเซิร์ฟเวอร์ต้นทาง ซึ่งจะได้รับข้อผิดพลาดเนื่องจากheader ผิดๆ ที่ส่งมาจากผู้โจมตี
ผลพวงนี้ทำให้เซิร์ฟเวอร์ต้นทางได้ส่ง error page กลับมา ซึ่งในที่สุดจะถูกเก็บโดย CDN แทนหน้าที่ควรจะเป็น
ตอนนี้เมื่อไหร่ก็ตามที่ผู้เยี่ยมชมทั่วไปพยายามเข้าถึงเว็บเพจนั้นๆ พวกเขาจะได้แคช error page นี้แทนที่เนื้อหาต้นฉบับ
CDN เซิร์ฟเวอร์จะกระจาย error page เดียวกันนี้สู่ edge nodes อื่นๆ ใน CDN ของเน็ตเวิร์ค

เพียงหนึ่งรีเควสง่ายๆ ก็เพียงพอที่จะแทนที่แคชด้วย error page และรีเควสดังกล่าวนี้ทำให้การตรวจจับของ web application firewalls (WAFs) และการป้องกัน DDoS ไม่สามารถใช้ได้ มากไปกว่านั้น CPDoS ยังสามารถใช้ประโยชน์ในการบล็อกพวกแพตช์หรือการอัปเดตเฟิร์มแวร์ที่กระจายผ่านแคช หรือผู้โจมตีสามารถปิดการทำงานการแจ้งเตือนความปลอดภัยที่สำคัญหรือข้อความบนการทำงานหลักเว็บไซต์ เช่นในออนไลน์แบงค์กิ้งหรือเว็บไซต์ทางการของรัฐ

ทั้งนี้นักวิจัยได้แจ้งผู้ให้บริการ CDN ต่างๆ ให้ทำการแก้ไขแล้ว ผู้ที่สนใจสามารถอ่านรายละเอียดเกี่ยวกับ CPDoS ได้จาก cpdos.