กรณีการแฮ็ก SolarWinds ที่เป็นระดับ supply chain attack ถือว่ามีความซับซ้อนสูงมาก ตรวจเจอได้ยากมาก ทำให้เกิดคำถามตามมาว่า เราจะป้องกันเหตุการณ์ลักษณะเดียวกันได้อย่างไร องค์กรที่เกี่ยวข้องกับการแฮ็กคือ FireEye ซึ่งตรวจเจอมัลแวร์เป็นรายแรก เคยออกมาแชร์ชุดเครื่องมือตรวจสอบมัลแวร์แบบนี้แล้ว เทคนิคของ FireEye เป็นการตรวจสอบพฤติกรรมของคอนฟิกในระบบว่ามีการเปลี่ยนแปลงที่ผิดปกติหรือไม่ ล่าสุดฝั่งไมโครซอฟท์ออกมาแจกเครื่องมือตรวจสอบที่ระดับซอร์สโค้ด ดูว่าซอร์สโค้ดถูกฝังอะไรที่ผิดปกติหรือไม่ เทคนิคของไมโครซอฟท์ใช้ CodeQL ภาษาคิวรีซอร์สโค้ดที่สร้างโดย GitHub แต่ไมโครซอฟท์ก็เปิดเผยคิวรีที่ใช้งานเป็นโอเพนซอร์ส เพื่อให้องค์กรอื่นๆ นำไปใช้ตรวจสอบซอร์สโค้ดของตัวเองได้เช่นกัน เทคนิคการทำงานของ CodeQL ใช้วิธีคอมไพล์ซอร์สโค้ดเป็นไบนารีก่อน แต่ไม่ต้องคอมไพล์เป็นไบนารีสมบูรณ์ เพราะ CodeQL จะ parse ซอร์สโค้ดเป็น abstract syntax tree model แทน มองว่ามันเป็นฐานข้อมูลตัวหนึ่ง แล้วคิวรีหาข้อมูลต่างๆ จากฐานข้อมูลนี้อีกที ไมโครซอฟท์บอกว่าเทคนิคนี้ช่วยให้วิเคราะห์ข้อมูลได้แม่นยำขึ้น และสามารถนำฐานข้อมูลที่ CodeQL แปลงแล้วหลายๆ ตัวมาเปรียบเทียบกัน หาความเชื่อมโยงระหว่างกันได้ด้วย ทำให้ค้นหาร่องรอยของมัลแวร์ SolarWinds ได้เร็วกว่าเดิมมาก ส่วนเทคนิคเจาะจงที่ใช้ตรวจจับมัลแวร์ตัวนี้ ใช้สองเทคนิคร่วมกันคือ การค้นหา syntax ของมัลแวร์แบบเจาะจง และการค้นหาแพทเทิร์นในภาพรวม ช่วยให้ตามรอยได้ หากแฮ็กเกอร์เปลี่ยนวิธีแก้โค้ด แต่ยังใช้ syntax คล้ายๆ ของเดิม รายละเอียดเพิ่มเติมอ่านได้จาก Microsoft Security Topics: MicrosoftSecuritySolarWindsOpen Source