hook cvss ให้คะแนน เวกเตอร์ CVSS v4.0 และพิมพ์คะแนนกับช่วงระดับความรุนแรงออกมา ซึ่งเป็นการให้คะแนนที่คำสั่ง /lagune-plan เขียนไว้ในการแก้ไขแต่ละรายการ และคำสั่ง /lagune-prove เขียนไว้ในประกาศแจ้งเตือนด้านความปลอดภัยแต่ละฉบับ hook นี้คือเอนจินแบบ deterministic เบื้องหลังการให้คะแนนเหล่านั้น โดยใช้วิธีคำนวณเดียวกับ เครื่องคำนวณของ FIRST และคุณรันเองได้
การรัน
ส่งเวกเตอร์แต่ละรายการด้วย --vector แล้ว hook จะพิมพ์บรรทัดละหนึ่งเวกเตอร์: คะแนนและช่วงระดับความรุนแรงของเวกเตอร์นั้น
- เวกเตอร์เดียว
- หลายเวกเตอร์
- อธิบายเป็นภาษาที่เข้าใจง่าย
npx lagune read cvss --vector 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N'
# => 9.3, Critical
ใส่ --vector ซ้ำเพื่อให้คะแนนหลายรายการพร้อมกัน โดยได้ผลรายการละหนึ่งบรรทัดตามลำดับ
npx lagune read cvss \
--vector 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N' \
--vector 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/MAV:A'
# => 9.3, Critical
# => 8.7, High
เพิ่ม --explain เพื่ออ่านคำอธิบายของแต่ละเมตริกเป็นภาษาที่เข้าใจง่าย เมื่อเมตริกกลุ่ม Threat หรือ Environmental ทำให้คะแนนเปลี่ยน hook จะแสดงคะแนน Base อย่างเดียวขึ้นก่อน
npx lagune read cvss --explain --vector 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/MAV:A'
# => 8.7, High
# => Base metrics alone: 9.3, Critical
# => Attack Vector: Network, modified to Adjacent
# => Attack Complexity: Low
# => ...
วิธีอ่านผลลัพธ์
| ช่วง | คะแนน |
|---|---|
None | 0.0 |
Low | 0.1 ถึง 3.9 |
Medium | 4.0 ถึง 6.9 |
High | 7.0 ถึง 8.9 |
Critical | 9.0 ถึง 10.0 |
เวกเตอร์ที่มีเฉพาะเมตริก Base จะให้คะแนนตัวช่องโหว่เองโดยสมมติกรณีเลวร้ายที่สุด: ข้อกำหนดด้านความปลอดภัยทุกข้อเป็น High และช่องโหว่ถูกโจมตีจริงในวงกว้างแล้ว เมตริก Environmental (MAV และเมตริกแบบ modified อื่น ๆ รวมถึง CR, IR และ AR) ปรับคะแนนให้ตรงกับการดีพลอยหนึ่งแห่ง และเมตริก Threat (E) ปรับตามสิ่งที่รู้เกี่ยวกับการนำช่องโหว่ไป exploit
เวกเตอร์ที่ไม่ถูกต้องจะพิมพ์ invalid vector: พร้อมบอกว่าผิดตรงไหน และ hook จะจบการทำงานด้วย exit code ที่ไม่ใช่ศูนย์
ตัวเลือก CLI
| ตัวเลือก | ค่า | คำอธิบาย |
|---|---|---|
--vector | เวกเตอร์ CVSS:4.0 | ให้คะแนนเวกเตอร์หนึ่งรายการ ใส่ซ้ำเพื่อให้คะแนนหลายรายการ โดยได้ผลเวกเตอร์ละหนึ่งบรรทัดตามลำดับ |
--explain | เพิ่มคำอธิบายของแต่ละเมตริกเป็นภาษาที่เข้าใจง่ายไว้ใต้ทุกบรรทัดผลการให้คะแนน |
ต้องมี --vector อย่างน้อยหนึ่งรายการ เอนจินไม่รับเวกเตอร์เป็นอาร์กิวเมนต์ตามตำแหน่งเปล่า ๆ จึงไม่มีทางสับสนเวกเตอร์กับ flag
เวกเตอร์แต่ละรายการส่งเข้าไปเป็นค่าของ flag และไม่เคยนำไปแทรกลงในคำสั่งโดยตรง ค่าที่มีเครื่องหมายคำพูดหรือ backtick จึงไม่มีผลใด ๆ และ inject เข้า shell ไม่ได้ ครอบค่าด้วยเครื่องหมายคำพูดเดี่ยวเสมอ เพื่อไม่ให้ shell ของคุณขยายค่านั้นก่อน
รองรับเฉพาะ CVSS v4.0: hook จะปฏิเสธเวกเตอร์ v2.0, v3.0 หรือ v3.1 แทนที่จะให้คะแนน เพราะ Lagune ให้คะแนนทุกข้อตรวจพบด้วย v4.0
การตรวจความถูกต้องของเฟส plan จะคำนวณแบบเดียวกันนี้ซ้ำกับทุกบรรทัด CVSS จึงตรวจพบคะแนนที่คลาดไปจากเวกเตอร์ของตัวเองได้ก่อนยอมรับแผน
คำถามที่พบบ่อย
hook cvss ทำตามเครื่องคำนวณอ้างอิงของ FIRST สำหรับ CVSS v4.0 เวกเตอร์หนึ่ง ๆ จึงได้คะแนนตรงกับที่ได้บนเว็บไซต์ของ FIRST ทุกประการ
ไม่ได้ Lagune ให้คะแนนทุกข้อตรวจพบด้วย CVSS v4.0 และ hook จะปฏิเสธเวอร์ชันอื่นทั้งหมดแทนที่จะให้คะแนน
flag นี้อธิบายแต่ละเมตริกเป็นภาษาที่เข้าใจง่าย และแสดงคะแนน Base ไว้ข้างคะแนนรวม ทุกคนจึงเห็นได้ว่าเวกเตอร์บอกอะไร และบริบทของโปรเจกต์ทำให้คะแนนเปลี่ยนไปอย่างไร
