การสาธิตการโจมตีโปรแกรมแก้ไขโค้ดที่ทำให้ไฟล์รั่วไหลเมื่อเปิดซอร์สโค้ด

มีการสาธิตวิธีการโจมตีโปรแกรมแก้ไขโค้ด VSCode ซึ่งอนุญาตให้ถ่ายโอนไฟล์โดยพลการภายใต้สิทธิ์ของผู้ใช้ปัจจุบันเมื่อเปิดซอร์สโค้ดที่ออกแบบมาเป็นพิเศษในตัวแก้ไข ในการสาธิตนี้ เมื่อเปิดโค้ด Rust ที่ใช้มาโครขั้นตอน จะสร้างการเชื่อมต่อกับโฮสต์ 127.0.0.1:8080 และส่งเนื้อหาของไฟล์ "~/.ssh/id_rsa" ด้วยคีย์ SSH ของผู้ใช้

หากต้องการประนีประนอม เพียงเปิดไฟล์ด้วยโค้ดก็เพียงพอแล้ว โดยไม่ต้องดำเนินการใดๆ กับโปรเจ็กต์ เพื่อให้ตัวอย่างใช้งานได้ VSCode ต้องใช้ปลั๊กอินตัววิเคราะห์สนิม (การเชื่อมโยงที่ด้านบนของคอมไพเลอร์สนิมมาตรฐาน) และการมีอยู่ของเครื่องมือในระบบสำหรับการทำงานกับโค้ดในภาษาสนิม ปัญหาเกี่ยวข้องกับการขยายแมโครขั้นตอนในระหว่างการวิเคราะห์โค้ดเริ่มต้น เอฟเฟกต์ที่คล้ายกันนี้สามารถทำได้ในเวลารวบรวมโดยใช้คำสั่ง "cargo build"

มีข้อสังเกตว่าปัญหาอาจส่งผลต่อโปรแกรมแก้ไขโค้ดและภาษาการเขียนโปรแกรมอื่นๆ VSCode และการวิเคราะห์สนิมใช้เพื่อแสดงเวกเตอร์การโจมตีเท่านั้น ตามทฤษฎีแล้ว ตัวแก้ไขโค้ดใดๆ ที่แสดงแมโครขั้นตอนที่อนุญาตให้คุณสร้างส่วนขยายไวยากรณ์และรันโค้ดในเวลาคอมไพล์นั้นมีความเสี่ยงต่อปัญหาดังกล่าว นักวิจัยเริ่มตรวจสอบความเป็นไปได้ของการกระทำที่เป็นอันตรายที่เกิดขึ้นระหว่างการคอมไพล์โค้ด แต่พบว่ามาโครขั้นตอนถูกขยายเมื่อมีการประมวลผลซอร์สโค้ดในตัวแก้ไขโค้ด การโจมตีอาจส่งผลกระทบต่อภาษาโปรแกรมอื่นๆ ตัวอย่างเช่น ใน Java การประมวลผลคำอธิบายประกอบสามารถจัดการได้ในลักษณะเดียวกัน



ที่มา: opennet.ru

เพิ่มความคิดเห็น