GitHub เปิดตัว เมื่อหลายวันก่อน การเพิ่มของ การทดลองระบบการเรียนรู้ของเครื่องl ถึงบริการสแกนรหัส เพื่อระบุประเภทช่องโหว่ทั่วไป ในรหัส. ด้วยเหตุนี้ เทคโนโลยีการวิเคราะห์โค้ดที่ใช้ CodeQL ของ GitHub จึงได้รับการปรับปรุงใหม่ และตอนนี้ใช้การเรียนรู้ของเครื่อง (ML) เพื่อค้นหาช่องโหว่ด้านความปลอดภัยที่อาจเกิดขึ้นในโค้ด
และมันคือ GitHub ได้รับเทคโนโลยีสำหรับ CodeQL เป็นส่วนหนึ่งของการเข้าซื้อกิจการเซมี CodeQL ถูกใช้โดยทีมวิจัยด้านความปลอดภัยเพื่อทำการวิเคราะห์เชิงความหมายของโค้ด และ GitHub ได้ทำให้มันเป็นโอเพ่นซอร์ส
ด้วยโมเดลเหล่านี้ CodeQL สามารถระบุสตรีมข้อมูลผู้ใช้ที่ไม่น่าเชื่อถือได้มากขึ้น ดังนั้นจึงมีช่องโหว่ด้านความปลอดภัยมากขึ้น
สังเกตได้ว่าการใช้ระบบการเรียนรู้ของเครื่องทำให้สามารถขยายขอบเขตของปัญหาที่ระบุได้อย่างมีนัยสำคัญ ซึ่งขณะนี้การวิเคราะห์ของระบบไม่ได้จำกัดอยู่เพียงการตรวจสอบรูปแบบทั่วไปและไม่ได้เชื่อมโยงกับเฟรมเวิร์กที่รู้จัก
จากปัญหาที่ระบุโดยระบบใหม่ ข้อผิดพลาดที่นำไปสู่การสร้างสคริปต์ข้ามไซต์ (XSS) การบิดเบือนเส้นทางของไฟล์ (เช่น ผ่านตัวบ่งชี้ "/..") มีการกล่าวถึงการแทนที่การสืบค้น SQL และ NoSQL
การสแกนโค้ดสามารถค้นหาช่องโหว่ด้านความปลอดภัยที่อาจเกิดขึ้นได้มากขึ้นโดยใช้ประโยชน์จากโมเดลการเรียนรู้เชิงลึกแบบใหม่ คุณลักษณะทดลองนี้มีให้ใช้งานในรุ่นเบต้าสาธารณะสำหรับที่เก็บ JavaScript และ TypeScript บน GitHub.com
เครื่องมือใหม่ของ GitHub fue เปิดตัวเป็นเบต้าสาธารณะฟรี สำหรับผู้ใช้ทุกคน คุณลักษณะนี้ใช้การเรียนรู้ของเครื่องและการเรียนรู้เชิงลึกเพื่อสแกนฐานโค้ดและระบุช่องโหว่ด้านความปลอดภัยทั่วไปก่อนจัดส่งผลิตภัณฑ์
ปัจจุบันฟีเจอร์ทดลองมีให้บริการสำหรับผู้ใช้แพลตฟอร์มทุกคน รวมถึงผู้ใช้ GitHub Enterprise เป็นฟีเจอร์ความปลอดภัยขั้นสูงของ GitHub และสามารถใช้สำหรับโครงการที่เขียนด้วย JavaScript หรือ TypeScript
ด้วยวิวัฒนาการอย่างรวดเร็วของระบบนิเวศโอเพ่นซอร์ส ทำให้มีไลบรารีส่วนท้ายยาวขึ้นเรื่อยๆ ที่มีการใช้งานน้อยลง เราใช้ตัวอย่างจากการสืบค้น CodeQL ที่สร้างด้วยตนเองเพื่อฝึกโมเดลการเรียนรู้เชิงลึกเพื่อรับรู้ไลบรารีโอเพนซอร์สรวมถึงไลบรารีโอเพนซอร์สที่พัฒนาภายใน
เครื่องมือ ได้รับการออกแบบเพื่อค้นหาช่องโหว่ที่พบบ่อยที่สุดสี่ประการ ที่ส่งผลต่อโครงการที่เขียนในสองภาษานี้: การเขียนสคริปต์ข้ามไซต์ (XSS), การฉีดเส้นทาง, การฉีด NoSQL และการฉีด SQL
บริการสแกนโค้ดช่วยให้คุณสามารถตรวจจับช่องโหว่ในช่วงเริ่มต้นของการพัฒนาโดยการสแกนการดำเนินการ git push แต่ละครั้งเพื่อหาปัญหาที่อาจเกิดขึ้น
ผลลัพธ์แนบมากับคำขอดึงโดยตรง. ก่อนหน้านี้ การตรวจสอบทำได้โดยใช้เอ็นจิน CodeQL ซึ่งวิเคราะห์รูปแบบด้วยตัวอย่างทั่วไปของโค้ดที่มีช่องโหว่ (CodeQL ช่วยให้คุณสร้างเทมเพลตของโค้ดที่มีช่องโหว่เพื่อตรวจจับว่ามีช่องโหว่ที่คล้ายกันในโค้ดของโปรเจ็กต์อื่นๆ)
ด้วยความสามารถในการวิเคราะห์แบบใหม่ การสแกนโค้ดสามารถสร้างการแจ้งเตือนสำหรับรูปแบบช่องโหว่ทั่วไปสี่รูปแบบ: Cross-Site Scripting (XSS), Path Injection, NoSQL Injection และ SQL Injection ช่องโหว่ทั้งสี่ประเภทนี้เป็นตัวแทนของช่องโหว่ (CVE) ล่าสุดจำนวนมากในระบบนิเวศ JavaScript/TypeScript และการปรับปรุงความสามารถในการสแกนโค้ดเพื่อตรวจหาช่องโหว่ดังกล่าวในช่วงต้นของกระบวนการพัฒนาเป็นกุญแจสำคัญในการช่วยให้นักพัฒนาเขียนโค้ดที่ปลอดภัยยิ่งขึ้น
เอ็นจิ้นแมชชีนเลิร์นนิงใหม่ สามารถระบุช่องโหว่ที่ไม่รู้จักก่อนหน้านี้ได้ เพราะไม่ได้ผูกติดอยู่กับการวนซ้ำของรูปแบบโค้ดที่อธิบายช่องโหว่ที่เฉพาะเจาะจง ราคาของโอกาสดังกล่าวเป็นการเพิ่มจำนวนของผลบวกลวงเมื่อเปรียบเทียบกับการตรวจสอบตาม CodeQL
ในที่สุด สำหรับผู้ที่สนใจต้องการทราบข้อมูลเพิ่มเติมคุณสามารถตรวจสอบรายละเอียด ในลิงค์ต่อไปนี้.
นอกจากนี้ สิ่งสำคัญที่ต้องระบุคือในขั้นตอนการทดสอบ ฟังก์ชันใหม่นี้ใช้ได้เฉพาะกับที่เก็บที่มีโค้ด JavaScript และ TypeScript เท่านั้น