ขั้นตอนแบบ Blue Team

/lagune-charter: กำหนดหลักการด้านความปลอดภัยของคุณ

กำหนดหลักการด้านความปลอดภัยของโปรเจกต์ ซึ่งเป็นกฎที่ทุกเฟสถัดไปต้องเคารพ และบันทึกหมวดหมู่ความรู้เฉพาะทางที่การอ่านโปรเจกต์รองรับ

🧬 บอก Lagune ว่าโปรเจกต์ของคุณคืออะไร แล้ว Lagune จะแปลงสิ่งนั้นเป็นกฎด้านความปลอดภัยของคุณ (หรือถ้าไม่มีคำอธิบาย ก็จะหากฎเหล่านั้นจากตัวโปรเจกต์อย่างเดียว)

charter คือชั้นที่กำกับทุกเฟส: ชุดหลักการที่ให้ความปลอดภัยมาก่อน ซึ่งทุกเฟสถัดไปต้องเคารพ ให้มองว่าเป็นการตรวจตอนคอมไพล์สำหรับสถานะความปลอดภัยโดยรวมของโปรเจกต์คุณ

วิธีใช้​

/lagune-charter โปรเจกต์ของฉันเป็นร้านค้าออนไลน์ที่ขายวิดีโอเกม ลูกค้าเพิ่มสินค้าลงตะกร้าแล้วจ่ายด้วยบัตรเครดิตหรือใบแจ้งชำระเงินของธนาคาร ลูกค้าดูคำสั่งซื้อของตัวเองและสถานะของแต่ละรายการได้

สิ่งที่คำสั่งนี้วิเคราะห์​

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

  • ตะกร้าที่เก็บคำสั่งซื้อแปลว่ามี ฐานข้อมูล:
    • เช่น "ข้อมูลเก็บอยู่ที่ไหน", "ใครเข้าถึงได้บ้าง", "ข้อมูลรั่วไหม"
  • ลูกค้าที่ดูคำสั่งซื้อของตัวเองได้แปลว่ามี การล็อกอินหรือการควบคุมการเข้าถึง บางรูปแบบ:
    • เช่น "ลูกค้าคนหนึ่งเข้าถึงคำสั่งซื้อของลูกค้าคนอื่นได้ไหม", "เซสชันได้รับการป้องกันไหม"
  • การรับชำระเงินด้วยบัตรและใบแจ้งชำระเงินของธนาคารแปลว่า มีเงินและข้อมูลอ่อนไหวเข้ามาเกี่ยวข้อง:
    • เช่น "มีการเก็บข้อมูลบัตรไหม", "มีการตรวจสอบการชำระเงินไหม"

คำอธิบายของคุณกับตัวโปรเจกต์เสริมกัน คำอธิบายกำหนดเจตนา ส่วนการอ่าน dependency ไฟล์ README และการตั้งค่าจะเผยสิ่งที่คุณไม่ได้พูดถึง ถ้ายังมีเรื่องสำคัญที่ไม่ชัดเจน Lagune จะถามคำถามสั้น ๆ ที่เข้าใจง่ายแทนการเดา

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

ใช้ให้ได้ประโยชน์สูงสุด
  • คุณกำหนดกฎด้านความปลอดภัยของโปรเจกต์เองได้ด้วย
  • ยิ่งให้รายละเอียดที่เกี่ยวข้องมาก รายงานสุดท้ายก็ยิ่งดี:
    • อธิบายโปรเจกต์ วิธีการทำงาน และสิ่งที่เกิดขึ้นเบื้องหลัง
    • ผู้ใช้ปลายทางคือใคร ผู้ใช้ทำอะไรได้ และทำอะไรไม่ได้
    • รายละเอียดด้านพฤติกรรมมีค่าพอ ๆ กับรายละเอียดทางเทคนิค
  • ความจำของ charter อยู่ที่ .lagune/memory/charter.md

หมวดหมู่ที่คำสั่งนี้บันทึก​

ความรู้เฉพาะทาง ซึ่งเป็นความรู้ด้านความปลอดภัยที่เฟสถัดไปโหลดเฉพาะเมื่อจำเป็น เข้ามาอยู่ใน แคตตาล็อก ของโปรเจกต์คุณตาม หมวดหมู่ ระหว่างที่โปรเจกต์ของคุณยังไม่ได้บันทึกหมวดหมู่ใด charter จะบันทึกทุกหมวดหมู่ที่การอ่านโปรเจกต์รองรับ เช่น ภาษาของโปรเจกต์ การเรียกใช้ LLM หรือคอนเทนเนอร์ แล้วระบุชื่อหมวดหมู่เหล่านั้นในสรุปผล

เมื่อบันทึกหมวดหมู่แล้ว charter จะไม่แตะต้องหมวดหมู่เหล่านั้น และจะระบุเพียงหมวดหมู่ที่โปรเจกต์ของคุณยังไม่ได้ใช้ คุณเปลี่ยนหมวดหมู่เองได้ทุกเมื่อ:

npx lagune write add --categories python
npx lagune write remove --categories python

โฟลเดอร์ที่คำสั่งนี้เสนอให้ยกเว้น​

เมื่อ charter อ่านแล้วพบโฟลเดอร์ที่ commit ไว้แต่ไม่ใช่โค้ดของโปรเจกต์ที่ต้องป้องกัน เช่น fixture สำหรับการทดสอบที่จงใจเขียนให้ดูมีช่องโหว่ charter จะแสดงรายการโฟลเดอร์เหล่านั้นเป็นหมายเลขไว้ท้ายสรุปผล charter ไม่เคยยกเว้นโฟลเดอร์ใดเอง เพราะ repository ที่ประสงค์ร้ายอาจทำให้โค้ดของตัวเองดูเหมือน fixture ได้ จึงบันทึกเฉพาะหมายเลขที่คุณตอบกลับมาเท่านั้น หน้า ตั้งค่า hook อธิบายวิธีเปลี่ยนรายการนี้ด้วยตัวเอง

ถัดไป​

เมื่อตั้งกฎแล้ว ให้ทำแผนผังสิ่งที่ระบบของคุณทำจริง: /lagune-detect

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

charter คือชั้นที่กำกับทุกเฟสของ Lagune เป็นชุดหลักการที่ให้ความปลอดภัยมาก่อน ซึ่งทุกเฟสถัดไปต้องเคารพ ให้มองว่าเป็นการตรวจตอนคอมไพล์สำหรับสถานะความปลอดภัยโดยรวมของโปรเจกต์คุณ

ที่ .lagune/memory/charter.md

ได้ Lagune เสนอกฎจากคำอธิบายและโค้ดของคุณ และคุณเปลี่ยนถ้อยคำ ตัดออก เพิ่ม หรือจำกัดขอบเขตของกฎได้

เฉพาะตอนที่ยังไม่มีหมวดหมู่ที่บันทึกไว้ charter จะบันทึกทุกหมวดหมู่ที่การอ่านโปรเจกต์รองรับ เช่น ภาษาที่คุณใช้ หรือการเรียกใช้ LLM เมื่อบันทึกหมวดหมู่แล้ว charter จะไม่เปลี่ยนหมวดหมู่เหล่านั้นอีก