ทําความเข้าใจผลลัพธ์ CodeQL

เสร็จสมบูรณ์เมื่อ

ในหน่วยก่อนหน้า คุณได้สร้างฐานข้อมูลและสแกนไฟล์ที่แยกจากรหัสของคุณ ตอนนี้คุณสามารถดูผลลัพธ์และตรวจสอบว่ามีช่องโหว่ด้านความปลอดภัยที่จะแก้ไขหรือไม่

ดูผลลัพธ์การสแกนรหัสจากการวิเคราะห์ CodeQL

ผลลัพธ์คิวรีที่ถูกแปลจะแสดงในรหัสต้นทางในส่วนขยาย CodeQL สําหรับ Visual Studio Code โดยอัตโนมัติ ผลลัพธ์ผลลัพธ์ที่ CodeQL CLI สร้างขึ้นสามารถมีหลายรูปแบบสําหรับการใช้งานกับเครื่องมือต่าง ๆ

คุณสามารถควบคุมวิธีแสดงผลลัพธ์การวิเคราะห์ในโค้ดต้นฉบับได้โดยการปรับเปลี่ยนคําสั่ง select ของคิวรี คุณสามารถทําให้ผลลัพธ์ชัดเจนและง่ายดายสําหรับผู้ใช้รายอื่นเพื่อทําความเข้าใจในขณะที่พัฒนาคิวรี เมื่อคุณเขียนคิวรีของคุณเองในคอนโซลคิวรีหรือในส่วนขยาย CodeQL สําหรับ Visual Studio Code จะไม่มีข้อจํากัดว่าจะสามารถเลือกอะไรได้บ้าง

หากคุณต้องการใช้คิวรีเพื่อสร้างการแจ้งเตือนในการสแกนรหัส GitHub หรือสร้างผลลัพธ์การวิเคราะห์ที่ถูกต้องโดยใช้ CodeQL CLI คุณจําเป็นต้องทําผลลัพธ์รายงานคําสั่ง select ในรูปแบบที่จําเป็น

ดําเนินการกับการแจ้งเตือนการสแกนโค้ด

คุณสามารถตั้งค่าการสแกนโค้ดเพื่อตรวจสอบรหัสในที่เก็บได้ คุณสามารถใช้การวิเคราะห์ CodeQL ค่าเริ่มต้น การวิเคราะห์ที่ไม่ใช่ Microsoft หรือการวิเคราะห์ประเภทอื่น ๆ ได้ การแจ้งเตือนที่เป็นผลลัพธ์จะปรากฏควบคู่กันไปในที่เก็บ

การวิเคราะห์ CodeQL เริ่มต้นของ GitHub อาจรวมคุณสมบัติเพิ่มเติมสําหรับการแจ้งเตือนมากกว่าผลลัพธ์จากเครื่องมือที่ไม่ใช่ Microsoft หรือจากคิวรีแบบกําหนดเอง ในเวิร์กโฟลว์เริ่มต้น การสแกนโค้ดจะวิเคราะห์โค้ดของคุณเป็นระยะ ๆ บนสาขาเริ่มต้นและในระหว่างคําขอดึงข้อมูล

การแจ้งเตือนแต่ละรายการประกอบด้วยข้อมูลต่อไปนี้:

  • ปัญหาเกี่ยวกับโค้ดและชื่อของเครื่องมือที่ระบุ
  • บรรทัดของรหัสที่ทริกเกอร์การแจ้งเตือน
  • คุณสมบัติของการแจ้งเตือน เช่น ความรุนแรง
  • ความรุนแรงของความปลอดภัย
  • จุดที่ปัญหาถูกนํามาใช้
  • ลักษณะของปัญหา

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

สกรีนช็อตที่แสดงการแจ้งเตือนการวิเคราะห์ CodeQL

การแจ้งเตือนโฟลว์ข้อมูล

การวิเคราะห์โฟลว์ข้อมูลค้นหาปัญหาด้านความปลอดภัยที่อาจเกิดขึ้นในโค้ด รวมถึง:

  • การใช้ข้อมูลในลักษณะที่ส่งผลต่อความปลอดภัย
  • การส่งผ่านอาร์กิวเมนต์ที่อันตรายไปยังฟังก์ชัน
  • การรั่วไหลของข้อมูลที่สําคัญ

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

ระดับความรุนแรง

ผลลัพธ์การสแกนโค้ดใดๆ ที่มีความร้ายแรง Error ทําให้เกิดความล้มเหลวในการตรวจสอบตามค่าเริ่มต้น ระดับความรุนแรงของการแจ้งเตือนจะถูก Error, Warning, และ Note คุณสามารถระบุระดับความรุนแรงที่คําขอดึงข้อมูลที่ทริกเกอร์การแจ้งเตือนการสแกนโค้ดควรล้มเหลว

ระดับความรุนแรงของความปลอดภัย

คิวรีความปลอดภัยที่การสแกนโค้ดสร้างระดับความรุนแรงของความปลอดภัยสําหรับการแจ้งเตือน ระดับความรุนแรงของความปลอดภัย Critical, High, Medium, และ Low GitHub ใช้ข้อมูล Common Vulnerability Scoring System (CVSS) เพื่อคํานวณความรุนแรงด้านความปลอดภัยของการแจ้งเตือน

ผลลัพธ์การสแกนโค้ดใดๆ ที่มีความร้ายแรงของความปลอดภัยใน Critical หรือ High ทําให้เกิดความล้มเหลวในการตรวจสอบตามค่าเริ่มต้น คุณสามารถระบุระดับความรุนแรงของความปลอดภัยที่อาจทําให้เกิดความล้มเหลวในการตรวจสอบสําหรับผลลัพธ์การสแกนโค้ด

ปิดการแจ้งเตือนการสแกนโค้ด

คุณมีสองวิธีในการปิดการแจ้งเตือน:

  • แก้ไขปัญหาในรหัส
  • ปิดหรือลบการแจ้งเตือน

ปิดการแจ้งเตือนการสแกนโค้ด

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

คุณสามารถยกเลิกการแจ้งเตือนจากคําอธิบายประกอบที่สแกนโค้ดในโค้ดหรือจากรายการสรุปบนแท็บ ความปลอดภัย เมื่อต้องการปิดการแจ้งเตือนจากรายการ ให้เลือกเมนู ปิดการแจ้งเตือน เลือกเหตุผลสําหรับปิดการแจ้งเตือน จากนั้นเลือกปุ่ม ปิดการแจ้งเตือน

วิดีโอที่เมนูดรอปดาวน์และปุ่มสําหรับปิดการแจ้งเตือน

เมื่อคุณปิดการแจ้งเตือน:

  • การแจ้งเตือนถูกปิดในสาขาทั้งหมด
  • การแจ้งเตือนจะถูกลบออกจากจํานวนของการแจ้งเตือนปัจจุบันสําหรับโครงการของคุณ
  • การแจ้งเตือนจะถูกย้ายไปยังรายการที่ ปิด ในสรุปของการแจ้งเตือน คุณสามารถเปิดใหม่จากที่นี่หากจําเป็น
  • เหตุผลที่คุณปิดการแจ้งเตือนจะถูกบันทึกไว้
  • ในครั้งถัดไปที่การสแกนโค้ดทํางาน โค้ดเดียวกันจะไม่สร้างการแจ้งเตือน

ลบการแจ้งเตือนการสแกนรหัส

คุณสามารถลบการแจ้งเตือนถ้าคุณมีสิทธิ์ระดับผู้ดูแลระบบสําหรับที่เก็บ การลบการแจ้งเตือนจะมีประโยชน์เมื่อ:

  • คุณตั้งค่าเครื่องมือสแกนโค้ด แต่ในภายหลังตัดสินใจที่จะลบออก
  • คุณกําหนดค่าการวิเคราะห์ CodeQL ด้วยชุดคิวรีที่มีขนาดใหญ่กว่าที่คุณต้องการใช้ต่อไป
  • คุณได้ลบบางคิวรีออกจากเครื่องมือ
  • คุณต้องการล้างผลลัพธ์การสแกนโค้ดของคุณ

คุณสามารถลบการแจ้งเตือนจากรายการสรุปบนแท็บ ความปลอดภัย ได้

เมื่อคุณลบการแจ้งเตือน ให้ทําดังนี้

  • การแจ้งเตือนจะถูกลบในสาขาทั้งหมด
  • การแจ้งเตือนจะถูกลบออกจากจํานวนของการแจ้งเตือนปัจจุบันสําหรับโครงการของคุณ
  • การแจ้งเตือนไม่ได้ถูกเพิ่มลงในรายการที่ ปิด ในข้อมูลสรุปของการแจ้งเตือน
  • การแจ้งเตือนจะปรากฏขึ้นอีกครั้งในผลลัพธ์การวิเคราะห์ของคุณ ถ้าโค้ดที่สร้างการแจ้งเตือนยังคงเหมือนเดิม และเครื่องมือสแกนโค้ดเดียวกันจะทํางานอีกครั้งโดยไม่มีการเปลี่ยนแปลงการกําหนดค่า