ทําความเข้าใจผลลัพธ์ CodeQL
ในหน่วยก่อนหน้า คุณได้สร้างฐานข้อมูลและสแกนไฟล์ที่แยกจากรหัสของคุณ ตอนนี้คุณสามารถดูผลลัพธ์และตรวจสอบว่ามีช่องโหว่ด้านความปลอดภัยที่จะแก้ไขหรือไม่
ดูผลลัพธ์การสแกนรหัสจากการวิเคราะห์ CodeQL
ผลลัพธ์คิวรีที่ถูกแปลจะแสดงในรหัสต้นทางในส่วนขยาย CodeQL สําหรับ Visual Studio Code โดยอัตโนมัติ ผลลัพธ์ผลลัพธ์ที่ CodeQL CLI สร้างขึ้นสามารถมีหลายรูปแบบสําหรับการใช้งานกับเครื่องมือต่าง ๆ
คุณสามารถควบคุมวิธีแสดงผลลัพธ์การวิเคราะห์ในโค้ดต้นฉบับได้โดยการปรับเปลี่ยนคําสั่ง select ของคิวรี คุณสามารถทําให้ผลลัพธ์ชัดเจนและง่ายดายสําหรับผู้ใช้รายอื่นเพื่อทําความเข้าใจในขณะที่พัฒนาคิวรี เมื่อคุณเขียนคิวรีของคุณเองในคอนโซลคิวรีหรือในส่วนขยาย CodeQL สําหรับ Visual Studio Code จะไม่มีข้อจํากัดว่าจะสามารถเลือกอะไรได้บ้าง
หากคุณต้องการใช้คิวรีเพื่อสร้างการแจ้งเตือนในการสแกนรหัส GitHub หรือสร้างผลลัพธ์การวิเคราะห์ที่ถูกต้องโดยใช้ CodeQL CLI คุณจําเป็นต้องทําผลลัพธ์รายงานคําสั่ง select ในรูปแบบที่จําเป็น
ดําเนินการกับการแจ้งเตือนการสแกนโค้ด
คุณสามารถตั้งค่าการสแกนโค้ดเพื่อตรวจสอบรหัสในที่เก็บได้ คุณสามารถใช้การวิเคราะห์ CodeQL ค่าเริ่มต้น การวิเคราะห์ที่ไม่ใช่ Microsoft หรือการวิเคราะห์ประเภทอื่น ๆ ได้ การแจ้งเตือนที่เป็นผลลัพธ์จะปรากฏควบคู่กันไปในที่เก็บ
การวิเคราะห์ CodeQL เริ่มต้นของ GitHub อาจรวมคุณสมบัติเพิ่มเติมสําหรับการแจ้งเตือนมากกว่าผลลัพธ์จากเครื่องมือที่ไม่ใช่ Microsoft หรือจากคิวรีแบบกําหนดเอง ในเวิร์กโฟลว์เริ่มต้น การสแกนโค้ดจะวิเคราะห์โค้ดของคุณเป็นระยะ ๆ บนสาขาเริ่มต้นและในระหว่างคําขอดึงข้อมูล
การแจ้งเตือนแต่ละรายการประกอบด้วยข้อมูลต่อไปนี้:
- ปัญหาเกี่ยวกับโค้ดและชื่อของเครื่องมือที่ระบุ
- บรรทัดของรหัสที่ทริกเกอร์การแจ้งเตือน
- คุณสมบัติของการแจ้งเตือน เช่น ความรุนแรง
- ความรุนแรงของความปลอดภัย
- จุดที่ปัญหาถูกนํามาใช้
- ลักษณะของปัญหา
ข้อมูลยังรวมถึงวิธีการแก้ไขปัญหาเมื่อการวิเคราะห์ CodeQL ระบุการแจ้งเตือน นอกจากนี้ การสแกนโค้ดผ่าน CodeQL สามารถตรวจหาปัญหาเกี่ยวกับกระแสข้อมูลในโค้ดของคุณได้
การแจ้งเตือนโฟลว์ข้อมูล
การวิเคราะห์โฟลว์ข้อมูลค้นหาปัญหาด้านความปลอดภัยที่อาจเกิดขึ้นในโค้ด รวมถึง:
- การใช้ข้อมูลในลักษณะที่ส่งผลต่อความปลอดภัย
- การส่งผ่านอาร์กิวเมนต์ที่อันตรายไปยังฟังก์ชัน
- การรั่วไหลของข้อมูลที่สําคัญ
GitHub แสดงให้คุณเห็นว่าข้อมูลเคลื่อนที่ผ่านรหัสอย่างไรเมื่อสแกนโค้ดรายงานการแจ้งเตือนโฟลว์ข้อมูล คุณสามารถใช้การแจ้งเตือนกระแสข้อมูลเหล่านี้เพื่อระบุพื้นที่ของโค้ดของคุณที่รั่วไหลของข้อมูลที่ละเอียดอ่อน ความรู้นี้สามารถช่วยให้คุณระบุจุดเข้าใช้งานสําหรับการโจมตีโดยผู้ใช้ที่เป็นอันตราย
ระดับความรุนแรง
ผลลัพธ์การสแกนโค้ดใดๆ ที่มีความร้ายแรง Error ทําให้เกิดความล้มเหลวในการตรวจสอบตามค่าเริ่มต้น ระดับความรุนแรงของการแจ้งเตือนจะถูก Error, Warning, และ Note คุณสามารถระบุระดับความรุนแรงที่คําขอดึงข้อมูลที่ทริกเกอร์การแจ้งเตือนการสแกนโค้ดควรล้มเหลว
ระดับความรุนแรงของความปลอดภัย
คิวรีความปลอดภัยที่การสแกนโค้ดสร้างระดับความรุนแรงของความปลอดภัยสําหรับการแจ้งเตือน ระดับความรุนแรงของความปลอดภัย Critical, High, Medium, และ Low GitHub ใช้ข้อมูล Common Vulnerability Scoring System (CVSS) เพื่อคํานวณความรุนแรงด้านความปลอดภัยของการแจ้งเตือน
ผลลัพธ์การสแกนโค้ดใดๆ ที่มีความร้ายแรงของความปลอดภัยใน Critical หรือ High ทําให้เกิดความล้มเหลวในการตรวจสอบตามค่าเริ่มต้น คุณสามารถระบุระดับความรุนแรงของความปลอดภัยที่อาจทําให้เกิดความล้มเหลวในการตรวจสอบสําหรับผลลัพธ์การสแกนโค้ด
ปิดการแจ้งเตือนการสแกนโค้ด
คุณมีสองวิธีในการปิดการแจ้งเตือน:
- แก้ไขปัญหาในรหัส
- ปิดหรือลบการแจ้งเตือน
ปิดการแจ้งเตือนการสแกนโค้ด
การยกเลิกการแจ้งเตือนคือวิธีการปิดการแจ้งเตือนที่คุณไม่คิดให้ได้รับการแก้ไข ตัวอย่างเช่น คุณอาจยกเลิกการแจ้งเตือนสําหรับข้อผิดพลาดในรหัสที่ใช้สําหรับการทดสอบเท่านั้น นอกจากนี้ คุณอาจยกเลิกการแจ้งเตือนถ้าความพยายามในการแก้ไขข้อผิดพลาดมากกว่าประโยชน์ที่เป็นไปได้ในการปรับปรุงโค้ด
คุณสามารถยกเลิกการแจ้งเตือนจากคําอธิบายประกอบที่สแกนโค้ดในโค้ดหรือจากรายการสรุปบนแท็บ ความปลอดภัย เมื่อต้องการปิดการแจ้งเตือนจากรายการ ให้เลือกเมนู ปิดการแจ้งเตือน เลือกเหตุผลสําหรับปิดการแจ้งเตือน จากนั้นเลือกปุ่ม ปิดการแจ้งเตือน
เมื่อคุณปิดการแจ้งเตือน:
- การแจ้งเตือนถูกปิดในสาขาทั้งหมด
- การแจ้งเตือนจะถูกลบออกจากจํานวนของการแจ้งเตือนปัจจุบันสําหรับโครงการของคุณ
- การแจ้งเตือนจะถูกย้ายไปยังรายการที่ ปิด ในสรุปของการแจ้งเตือน คุณสามารถเปิดใหม่จากที่นี่หากจําเป็น
- เหตุผลที่คุณปิดการแจ้งเตือนจะถูกบันทึกไว้
- ในครั้งถัดไปที่การสแกนโค้ดทํางาน โค้ดเดียวกันจะไม่สร้างการแจ้งเตือน
ลบการแจ้งเตือนการสแกนรหัส
คุณสามารถลบการแจ้งเตือนถ้าคุณมีสิทธิ์ระดับผู้ดูแลระบบสําหรับที่เก็บ การลบการแจ้งเตือนจะมีประโยชน์เมื่อ:
- คุณตั้งค่าเครื่องมือสแกนโค้ด แต่ในภายหลังตัดสินใจที่จะลบออก
- คุณกําหนดค่าการวิเคราะห์ CodeQL ด้วยชุดคิวรีที่มีขนาดใหญ่กว่าที่คุณต้องการใช้ต่อไป
- คุณได้ลบบางคิวรีออกจากเครื่องมือ
- คุณต้องการล้างผลลัพธ์การสแกนโค้ดของคุณ
คุณสามารถลบการแจ้งเตือนจากรายการสรุปบนแท็บ ความปลอดภัย ได้
เมื่อคุณลบการแจ้งเตือน ให้ทําดังนี้
- การแจ้งเตือนจะถูกลบในสาขาทั้งหมด
- การแจ้งเตือนจะถูกลบออกจากจํานวนของการแจ้งเตือนปัจจุบันสําหรับโครงการของคุณ
- การแจ้งเตือนไม่ได้ถูกเพิ่มลงในรายการที่ ปิด ในข้อมูลสรุปของการแจ้งเตือน
- การแจ้งเตือนจะปรากฏขึ้นอีกครั้งในผลลัพธ์การวิเคราะห์ของคุณ ถ้าโค้ดที่สร้างการแจ้งเตือนยังคงเหมือนเดิม และเครื่องมือสแกนโค้ดเดียวกันจะทํางานอีกครั้งโดยไม่มีการเปลี่ยนแปลงการกําหนดค่า