ข้อผิดพลาดในตัวแก้ไข Substack ที่เกิดจากการเขียนไฟล์ "/etc/hosts"
(scalewithlee.substack.com)- ในตัวแก้ไขของ Substack จะเกิด ข้อผิดพลาดเครือข่าย เมื่อป้อนพาธระบบบางรายการ
- Web Application Firewall (WAF) บล็อกพาธเหล่านี้เพื่อป้องกัน การโจมตีแบบ path traversal และ การโจมตีแบบ command injection
- ประเด็นเรื่องการหาสมดุลระหว่าง ความปลอดภัย และ การใช้งาน จึงเด่นชัดขึ้น
- จำเป็นต้องมีทางออกที่ดีกว่าสำหรับ นักเขียนสายเทคนิค
- สามารถแก้ปัญหาได้ด้วยการใช้ พาธทางเลือก
เมื่อ /etc/h*sts รบกวนตัวแก้ไข Substack: การผจญภัยของการกรองเนื้อหาบนเว็บ
ข้อผิดพลาดเครือข่ายอันน่าพิศวง
- ระหว่างเขียนโพสต์เชิงเทคนิคเกี่ยวกับการแปลงชื่อ DNS เกิด ข้อผิดพลาดที่ไม่คาดคิด
- เมื่อพิมพ์พาธ
/etc/h*stsจะเกิด ข้อผิดพลาดเครือข่าย และบันทึกอัตโนมัติล้มเหลว - หน้าสถานะของ Substack แสดงว่า ระบบทำงานปกติ
เริ่มต้นการสืบค้น
- พบว่า ข้อผิดพลาด เกิดขึ้นเมื่อป้อนพาธไฟล์บางรายการ แต่ถ้าดัดแปลงพาธจะ ใช้งานได้ปกติ
- พาธอย่าง
/etc/h*stsทำให้เกิดข้อผิดพลาด แต่พาธที่ดัดแปลงแล้วไม่มีปัญหา
มีอะไรเกิดขึ้นอยู่ภายใน?
- ตรวจพบการตอบกลับ 403 Forbidden ในเครื่องมือนักพัฒนาของเบราว์เซอร์
- มี Cloudflare เข้ามาเกี่ยวข้อง
ทำความเข้าใจตัวกรองความปลอดภัยของเว็บแอปพลิเคชัน
อธิบาย WAF แบบสั้น ๆ
- Web Application Firewall (WAF) ทำหน้าที่เป็น ยามรักษาความปลอดภัย ของเว็บไซต์
- คอย บล็อก คำขอที่น่าสงสัย
การโจมตีแบบ path traversal: ทำไมจึงต้องระวัง
- การโจมตีแบบ path traversal คือความพยายามเข้าถึงไฟล์ระบบที่มีความอ่อนไหว
- พาธอย่าง
/etc/h*stsอาจตกเป็น เป้าหมายของการโจมตี ได้
Command injection: ปัญหาด้านความปลอดภัยอีกแบบหนึ่ง
- การโจมตีแบบ command injection มุ่งให้มีการรันคำสั่งของระบบ
- เมื่อมีการกล่าวถึงพาธระบบ ตัวกรองอาจ บล็อก ได้
ปริศนายิ่งลึกขึ้น: ตัวอย่างในอดีต
- พบกรณีการใช้พาธคล้ายกันในโพสต์ Substack อื่น ๆ
- เป็นไปได้ว่าพฤติกรรมการกรองอาจ เปลี่ยนไป ตั้งแต่ช่วงเวลาหนึ่ง
ความปลอดภัยเทียบกับการใช้งาน: สมดุลที่ละเอียดอ่อน
- ตัวกรองของ Substack มีไว้เพื่อ ปกป้อง แต่กลับกลายเป็น อุปสรรค สำหรับ นักเขียนสายเทคนิค
- ยังมี ช่องว่างให้ปรับปรุง เช่น ข้อความผิดพลาดที่ชัดเจนขึ้น การรับรู้เนื้อหาเชิงเทคนิค และการให้วิธีแก้ที่มีการจัดทำเอกสาร
มองดูการตอบสนอง HTTP
- ยืนยันสถานะ 403 Forbidden ได้ในระดับ API
ทางออกที่ดีกว่าสำหรับแพลตฟอร์มเนื้อหาเชิงเทคนิค
- การกรองตามบริบท: รับรู้พาธระบบใน code block หรือการสนทนาเชิงเทคนิค
- ข้อความผิดพลาดที่ชัดเจน: อธิบายว่าโดนบล็อกจากตัวกรองความปลอดภัย แทนคำว่า "ข้อผิดพลาดเครือข่าย"
- วิธีแก้ที่มีเอกสารรองรับ: แนะนำวิธีพูดถึงพาธที่อ่อนไหว
บทสรุป: จุดตัดกันของความปลอดภัยและงานเขียนเชิงเทคนิค
-
ปัญหาในตัวแก้ไขของ Substack เผยให้เห็นความท้าทายที่ซับซ้อนของ ความปลอดภัย และ การเขียนเชิงเทคนิค
-
สิ่งที่ตัวกรองความปลอดภัยอาจมองว่าเป็นรูปแบบการโจมตี แท้จริงแล้วอาจเป็น เนื้อหาที่ชอบด้วยเหตุผล
-
สามารถแก้ปัญหาได้ด้วยการใช้ พาธทางเลือก
-
ขอให้ผู้อ่านแชร์ประสบการณ์ในคอมเมนต์ หากเคยเจอปัญหาการกรองลักษณะคล้ายกันบนแพลตฟอร์มอื่น
1 ความคิดเห็น
ความเห็นบน Hacker News
คนที่ตั้งกฎ WAF บน CDN มักไม่ค่อยเข้าใจเว็บไซต์และบริการที่จัดการเนื้อหาทางเทคนิคดีนัก ไม่ใช่แค่ Cloudflare เท่านั้น แต่ Akamai ก็เจอปัญหาเดียวกัน
/etc/hostsหรือ/etc/passwdทำให้นึกถึงเกร็ดเรื่องหนึ่งเกี่ยวกับแพลตฟอร์มอีคอมเมิร์ซ: มีคนเขียนเว็บช็อปที่มี memory leak และแก้ปัญหาด้วยการรีสตาร์ตแอปเมื่อมีสตริง "OutOfMemoryException" ปรากฏในล็อก
สงสัยว่ามันบล็อก
/etc/hostsหรือ/etc/./hostsด้วยหรือไม่ เรื่องนี้ดูเป็นเกมตีตัวตุ่นที่แพ้ตั้งแต่แรก เพราะแฮ็กเกอร์ฉลาดกว่าและมุ่งมั่นกว่า จึงควรพึ่งพาเฉพาะความปลอดภัยที่ผ่านการพิสูจน์แล้วเท่านั้นความเห็นเกี่ยวกับวิธีที่ Substack จะปรับปรุงสถานการณ์นี้สำหรับนักเขียนสายเทคนิคได้
ยกให้เป็นกรณีศึกษาที่น่าสนใจของความตึงเครียดระหว่างการป้องกันกับการใช้งานในความปลอดภัยเว็บ
ปัญหาที่เกิดขึ้นระหว่างสอนทีมแข่งขันเขียนโปรแกรม: ถ้ามี type และคีย์เวิร์ดของ C++ ปรากฏในโค้ด จะขึ้นข้อผิดพลาด 403
ปัญหาที่เกิดขึ้นเมื่อทีม red team ภายในโพสต์ข้อมูลที่มีความพยายามโจมตีแบบ XSS และการโจมตีแบบ injection อื่น ๆ รวมอยู่ด้วย
ปัญหาเก่าแก่ที่ย้อนกลับมาอีกครั้ง เรื่องนี้เรียกว่า Scunthorpe problem
เคยเจอปัญหาคล้ายกันกับ OpenRouter ซึ่งเป็นบริการที่ให้ endpoint เดียวสำหรับใช้งาน LLM หลายตัว
การกรองเนื้อหาควรพึ่งพาบริบทอย่างมาก ถ้า WAF แยกขาดจากสิ่งที่มันต้องกรอง ปัญหาก็จะเกิดขึ้น