เครื่องมือ

/lagune-prove: proof of concept เพื่อการป้องกันเท่านั้น

เปลี่ยนข้อตรวจพบแต่ละรายการให้เป็น proof of concept (PoC) ที่รันได้และใช้เพื่อการป้องกันเท่านั้น พร้อมประกาศแจ้งเตือนด้านความปลอดภัยสำหรับการเปิดเผยช่องโหว่อย่างรับผิดชอบ

🧪 เปลี่ยนข้อตรวจพบแต่ละรายการให้เป็นหลักฐานที่รันได้และใช้เพื่อการป้องกันเท่านั้น สำหรับการเปิดเผยช่องโหว่อย่างรับผิดชอบ

สำหรับข้อตรวจพบทุกรายการในแผนผังจาก detect คำสั่งนี้จะเขียนประกาศแจ้งเตือนด้านความปลอดภัยที่อ่านจบในตัว และการทดสอบที่ยืนยัน เส้นทางที่ปลอดภัย การทดสอบจึงล้มเหลวตราบที่ปัญหายังอยู่ และผ่านเมื่อแก้โค้ดแล้ว

tip

การทดสอบของ Lagune แยกอยู่ใน .lagune/ ต่างหากจากชุดการทดสอบของคุณเอง

วิธีใช้​

/lagune-prove

หลักการทำงาน​

คำสั่งนี้อ่านซอร์สโค้ดที่ข้อตรวจพบแต่ละรายการชี้ไป แล้วเขียนไดเรกทอรีหนึ่งไดเรกทอรีต่อข้อตรวจพบที่พิสูจน์ได้ไว้ใต้ .lagune/proofs/ โดยแต่ละไดเรกทอรีมีไฟล์ 2 ไฟล์พอดี:

ไฟล์คืออะไร
report.test.mjs (หรือ .cjs)ตัวการทดสอบ รันบน Poku ถ้าโปรเจกต์ของคุณใช้อยู่แล้ว ถ้าไม่ใช้ก็รันบนตัวรันการทดสอบที่มากับ Node.js จึงไม่ต้องติดตั้งอะไรเพิ่ม
report.mdประกาศแจ้งเตือนด้านความปลอดภัยที่อ่านจบในตัว: ระดับความรุนแรง ผลกระทบ วิธีทำให้ปัญหาเกิดซ้ำ และคำสั่งสำหรับรัน

การพิสูจน์เขียนด้วย JavaScript เสมอ จึงนำไปใช้ได้ทุกที่ไม่ว่าโปรเจกต์ของคุณจะเขียนด้วยภาษาใด ไฟล์ดัชนี README.md ลิงก์ไปยังการพิสูจน์ทุกรายการ และให้คำสั่งเดียวสำหรับรันทั้งหมด

tip
  • คำสั่งนี้ ไม่บังคับและทำงานแยกเป็นอิสระ: ไม่ได้เป็นหนึ่งใน 5 เฟส และไม่ได้เป็นส่วนหนึ่งของห่วงโซ่การติดตาม
  • คำสั่งนี้เขียนลงใน .lagune/proofs/ เท่านั้น และไม่แตะต้องอาร์ติแฟกต์ของเฟสหรือโค้ดของคุณ ซึ่งคำสั่งนี้อ่านอย่างเดียว
  • ข้อตรวจพบที่การทดสอบทำให้ปัญหาเกิดซ้ำไม่ได้จะไม่ได้รับการพิสูจน์ และคำสั่งนี้จะบอกให้คุณรัน /lagune-detect กับจุดนั้นเพื่อปรับให้ตรงกับสภาพปัจจุบัน
  • รันซ้ำเพื่อปรับการพิสูจน์ให้ตรงกับสภาพปัจจุบัน: คำสั่งนี้จะลบไดเรกทอรีของข้อตรวจพบที่หายไปแล้วหรือทำให้เกิดซ้ำไม่ได้อีก
important

คำสั่งนี้รันเฉพาะเมื่อคุณเรียกใช้เท่านั้น: เอเจนต์ไม่เริ่มรันเอง

ต้องรัน detect ก่อน

prove อ่านแผนผังจาก /lagune-detect จึงต้องรัน detect ก่อน

เพื่อการป้องกันเท่านั้น และต้องได้รับอนุญาต​

ก่อนสร้างอะไรก็ตาม คำสั่งนี้จะยืนยันว่าคุณได้รับอนุญาตให้ทดสอบเป้าหมายนั้น และปฏิเสธทุกคำขอที่ต้องการ exploit ที่ใช้งานได้จริง payload สำหรับโจมตี หรือการหลบเลี่ยงการตรวจจับ การพิสูจน์แสดงพฤติกรรมที่ปลอดภัย และไม่สร้างอินพุตสำหรับโจมตีเลย

จากการพิสูจน์สู่การเปิดเผยช่องโหว่​

ไฟล์ทั้ง 2 ไฟล์ของข้อตรวจพบที่พิสูจน์ได้แต่ละรายการควรอยู่ด้วยกันใน GitHub Gist แบบส่วนตัว เพื่อรายงานช่องโหว่ ไฟล์เหล่านี้เป็นหลักฐานของปัญหาที่ยังมีอยู่และยังไม่เปิดเผย .gitignore ใน .lagune/proofs/ จึงกันไฟล์เหล่านี้ไว้นอกทุก commit: แชร์ผ่าน Gist นั้นเท่านั้นจนกว่าผู้ดูแลจะแก้ปัญหาเสร็จ

การปิดข้อตรวจพบในห่วงโซ่ของ Lagune ยังเป็นหน้าที่ของ /lagune-harden และ /lagune-verify: prove สร้างหลักฐาน แต่ไม่ได้ปิดอะไร

คำถามที่พบบ่อย

ไม่ /lagune-prove เขียนหลักฐานเพื่อการป้องกันเท่านั้น: การทดสอบที่ยืนยันเส้นทางที่ปลอดภัย ซึ่งล้มเหลวตราบที่ปัญหายังอยู่และผ่านเมื่อแก้โค้ดแล้ว พร้อมประกาศแจ้งเตือนด้านความปลอดภัยสำหรับการเปิดเผยช่องโหว่อย่างรับผิดชอบ

ไฟล์ 2 ไฟล์ต่อข้อตรวจพบหนึ่งรายการ: การทดสอบ (report.test.mjs หรือ .cjs) และประกาศแจ้งเตือนด้านความปลอดภัย (report.md)

prove เขียนประกาศแจ้งเตือนด้านความปลอดภัยที่อ่านจบในตัว ซึ่งคุณแชร์ผ่านช่องทางส่วนตัวได้ เช่น GitHub Gist แบบส่วนตัว ตามแนวทางการเปิดเผยช่องโหว่อย่างรับผิดชอบ