โครงการ Snuffleupagus พัฒนาโมดูล PHP เพื่อป้องกันช่องโหว่

ในแนวเขตโครงการ ดมกลิ่น กำลังพัฒนา โมดูลสำหรับเชื่อมต่อกับล่าม 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://") โดยได้รับอนุญาตอย่างชัดแจ้งตามรายการที่อนุญาต
  • ข้อห้ามในการใช้งานไฟล์ที่สามารถเขียนได้
  • รายการขาวดำสำหรับ eval;
  • เปิดใช้งานการตรวจสอบใบรับรอง TLS ที่จำเป็นเมื่อใช้
    ขด;

  • การเพิ่ม HMAC ให้กับออบเจกต์ซีเรียลไลซ์เพื่อให้แน่ใจว่าการดีซีเรียลไลเซชันดึงข้อมูลที่จัดเก็บโดยแอปพลิเคชันดั้งเดิม
  • ขอโหมดบันทึก;
  • การบล็อกการโหลดไฟล์ภายนอกใน libxml จากลิงก์ในเอกสาร XML
  • ความสามารถในการเชื่อมต่อตัวจัดการภายนอก (upload_validation) เพื่อตรวจสอบและสแกนไฟล์ที่อัปโหลด

โครงการนี้ถูกสร้างขึ้นและใช้เพื่อปกป้องผู้ใช้ในโครงสร้างพื้นฐานของหนึ่งในผู้ให้บริการโฮสติ้งรายใหญ่ของฝรั่งเศส มีข้อสังเกตเพียงแค่เสียบปลั๊ก Snuffleupagus ก็สามารถป้องกันช่องโหว่ที่เป็นอันตรายจำนวนมากที่พบใน Drupal, WordPress และ phpBB ในปีนี้ ช่องโหว่ใน Magento และ Horde สามารถบล็อกได้ด้วยการเปิดใช้งานโหมด
"sp.readonly_exec.enable()"

ที่มา: opennet.ru

เพิ่มความคิดเห็น