ในแนวเขตโครงการ โมดูลสำหรับเชื่อมต่อกับอินเทอร์พรีเตอร์ PHP7 ออกแบบมาเพื่อปรับปรุงความปลอดภัยของสภาพแวดล้อมและป้องกันข้อผิดพลาดทั่วไปที่นำไปสู่ช่องโหว่ในการใช้งานแอปพลิเคชัน PHP โมดูลนี้ยังอนุญาตให้สร้างแพตช์เสมือนเพื่อแก้ไขปัญหาเฉพาะโดยไม่ต้องแก้ไขซอร์สโค้ดของแอปพลิเคชันที่มีช่องโหว่ ทำให้สะดวกต่อการใช้งานในระบบโฮสติ้งขนาดใหญ่ที่ไม่สามารถอัปเดตแอปพลิเคชันของผู้ใช้ทั้งหมดให้ทันสมัยอยู่เสมอ โมดูลนี้เขียนด้วยภาษา C และรวมอยู่ในไลบรารีที่ใช้ร่วมกัน ("extension=snuffleupagus.so" ใน php.ini) ได้รับใบอนุญาตภายใต้ LGPL 3.0
Snuffleupagus มีระบบกฎที่อนุญาตให้คุณใช้เทมเพลตมาตรฐานทั้งสองแบบเพื่อเพิ่มความปลอดภัยและสร้างกฎของคุณเองเพื่อควบคุมข้อมูลอินพุตและพารามิเตอร์ของฟังก์ชัน ตัวอย่างเช่น กฎ "sp.disable_function.function("system").param("command").value_r("[$|;&`\\n]").drop();" ช่วยให้คุณสามารถจำกัดการใช้อักขระพิเศษในอาร์กิวเมนต์ของฟังก์ชัน system() ได้โดยไม่ต้องแก้ไขแอปพลิเคชัน ในทำนองเดียวกัน คุณสามารถสร้าง เพื่อบล็อคช่องโหว่ที่ทราบ
จากการทดสอบที่ดำเนินการโดยนักพัฒนา พบว่า Snuffleupagus แทบไม่มีผลกระทบต่อประสิทธิภาพการทำงานเลย เพื่อให้มั่นใจในความปลอดภัยของตัวมันเอง (ช่องโหว่ที่อาจเกิดขึ้นในเลเยอร์ความปลอดภัยอาจกลายเป็นช่องโหว่เพิ่มเติมในการโจมตี) โปรเจกต์นี้จึงทดสอบการคอมมิตแต่ละครั้งอย่างละเอียดถี่ถ้วนในหลายดิสทริบิวชัน ใช้ระบบวิเคราะห์แบบคงที่ และจัดรูปแบบและบันทึกโค้ดเพื่ออำนวยความสะดวกในการตรวจสอบ
มีวิธีการในตัวเพื่อบล็อกช่องโหว่ประเภทต่างๆ เช่น ปัญหา ด้วยการจัดลำดับข้อมูล การใช้ฟังก์ชัน PHP mail() การรั่วไหลของเนื้อหาคุกกี้ระหว่างการโจมตี XSS ปัญหาที่เกิดจากการดาวน์โหลดไฟล์ที่มีโค้ดที่ปฏิบัติการได้ (เช่น ในรูปแบบ ), การสร้างตัวเลขสุ่มที่ไม่ดีและ โครงสร้าง XML ที่ไม่ถูกต้อง
โหมดต่อไปนี้ได้รับการรองรับเพื่อเพิ่มความปลอดภัยของ PHP:
- เปิดใช้งานแฟล็ก "ปลอดภัย" และ "samesite" (การป้องกัน CSRF) สำหรับคุกกี้โดยอัตโนมัติ คุกกี้;
- ชุดกฎในตัวสำหรับการระบุร่องรอยของการโจมตีและการบุกรุกแอปพลิเคชัน
- การบังคับให้เปิดใช้งานทั่วโลกของ "» (ตัวอย่างเช่น มันจะบล็อกความพยายามในการระบุสตริงเมื่อคาดว่าค่าจำนวนเต็มเป็นอาร์กิวเมนต์) และการป้องกันจาก ;
- การบล็อคตามค่าเริ่มต้น (ตัวอย่างเช่น การแบน "phar://") ด้วยการอนุญาตที่ชัดเจนผ่านรายการที่อนุญาต
- ปิดการใช้งานการดำเนินการของไฟล์ที่สามารถเขียนได้
- รายการขาวดำสำหรับการประเมิน;
- เปิดใช้งานการตรวจสอบบังคับของใบรับรอง TLS เมื่อใช้
ม้วนงอ; - การเพิ่ม HMAC ให้กับวัตถุที่ถูกทำให้เป็นอนุกรมเพื่อให้แน่ใจว่าการแยกส่วนจะดึงข้อมูลที่เก็บไว้โดยแอปพลิเคชันเดิม
- โหมดการบันทึกแบบสอบถาม;
- บล็อกการโหลดไฟล์ภายนอกใน libxml ผ่านลิงก์ในเอกสาร XML
- ความเป็นไปได้ในการเชื่อมต่อตัวจัดการภายนอก (upload_validation) เพื่อตรวจสอบและสแกนไฟล์ที่อัปโหลด
โครงการนี้ถูกสร้างขึ้นและใช้เพื่อปกป้องผู้ใช้ในโครงสร้างพื้นฐานของผู้ให้บริการโฮสติ้งรายใหญ่รายหนึ่งของฝรั่งเศส เพียงแค่เปิดใช้งาน Snuffleupagus ก็จะช่วยป้องกันช่องโหว่อันตรายหลายอย่างที่ถูกค้นพบในปีนี้ได้แล้ว Drupal, WordPress และ phpBB ช่องโหว่ใน Magento และสามารถบล็อก Horde ได้โดยการเปิดโหมดดังกล่าว
"sp.readonly_exec.enable()"
ที่มา: opennet.ru
