6 คะแนน โดย GN⁺ 2024-02-17 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Google เปิดซอร์ส Magika ซึ่งเป็นระบบระบุประเภทไฟล์ที่ใช้ AI
  • Magika ใช้โมเดลดีปเลิร์นนิงที่ปรับแต่งและเพิ่มประสิทธิภาพมาโดยเฉพาะ ทำให้ระบุไฟล์ได้อย่างแม่นยำภายในเวลาไม่กี่มิลลิวินาทีแม้บน CPU
  • สามารถทดลองใช้ Magika web demo ได้ และติดตั้งเป็นไลบรารี Python หรือเครื่องมือบรรทัดคำสั่งแบบสแตนด์อโลนได้ด้วยคำสั่ง pip install magika

ทำไมการระบุประเภทไฟล์จึงเป็นเรื่องยาก

  • ตั้งแต่ยุคแรกของคอมพิวติ้ง การตรวจจับประเภทไฟล์อย่างแม่นยำมีความสำคัญต่อการตัดสินใจว่าจะประมวลผลไฟล์อย่างไร
  • Linux มี libmagic และยูทิลิตี file ซึ่งถูกใช้เป็นมาตรฐานโดยพฤตินัยของการระบุประเภทไฟล์มานานกว่า 50 ปี
  • การตรวจจับประเภทไฟล์เป็นสิ่งจำเป็นเพื่อให้ซอฟต์แวร์หลากหลายประเภท เช่น เว็บเบราว์เซอร์และโค้ดเอดิเตอร์ เรนเดอร์ไฟล์ได้อย่างถูกต้อง
  • เนื่องจากแต่ละฟอร์แมตไฟล์มีโครงสร้างต่างกัน หรือบางครั้งไม่มีโครงสร้างเลย การระบุประเภทไฟล์อย่างแม่นยำจึงเป็นปัญหาที่ขึ้นชื่อว่ายาก
  • libmagic และซอฟต์แวร์ระบุประเภทไฟล์ส่วนใหญ่พึ่งพา heuristic และกฎที่สร้างด้วยมือเพื่อตรวจจับแต่ละฟอร์แมตไฟล์
  • แนวทางที่ทำด้วยมือเช่นนี้ใช้เวลามากและเกิดข้อผิดพลาดได้ง่าย

ประสิทธิภาพของ Magika

  • ด้วยโมเดล AI และชุดข้อมูลฝึกขนาดใหญ่ Magika แสดงประสิทธิภาพดีกว่าเครื่องมือเดิมราว 20% ในเบนช์มาร์กที่มีไฟล์ 1 ล้านไฟล์ ครอบคลุมประเภทไฟล์มากกว่า 100 ชนิด
  • โดยเฉพาะกับไฟล์ประเภทที่เครื่องมืออื่นทำได้ยาก เช่น ไฟล์ข้อความ ไฟล์โค้ด และไฟล์คอนฟิก Magika แสดงการปรับปรุงด้านประสิทธิภาพได้มากกว่า

การใช้งาน Magika ภายใน Google

  • ภายใน Google มีการใช้ Magika เพื่อส่งต่อไฟล์จาก Gmail, Drive และ Safe Browsing ไปยังสแกนเนอร์ด้านความปลอดภัยและนโยบายคอนเทนต์ที่เหมาะสม ช่วยเพิ่มความปลอดภัยให้ผู้ใช้
  • จากจำนวนไฟล์ระดับหลายหมื่นล้านไฟล์ต่อสัปดาห์โดยเฉลี่ย Magika ช่วยเพิ่มความแม่นยำในการระบุประเภทไฟล์ได้ 50% เมื่อเทียบกับระบบเดิมที่พึ่งพากฎที่ทำด้วยมือ
  • Magika จะเข้ามาเสริมฟีเจอร์ Code Insight เดิมผ่านการผสานรวมกับ VirusTotal และมีส่วนช่วยต่อระบบนิเวศไซเบอร์ซีเคียวริตีระดับโลก เพื่อสร้างสภาพแวดล้อมดิจิทัลที่ปลอดภัยยิ่งขึ้น

การโอเพนซอร์ส Magika

  • การเปิดซอร์ส Magika มีเป้าหมายเพื่อช่วยให้ซอฟต์แวร์อื่น ๆ ปรับปรุงความแม่นยำในการระบุไฟล์ และมอบวิธีที่เชื่อถือได้ให้แก่นักวิจัยในการระบุประเภทไฟล์ในระดับขนาดใหญ่
  • โค้ดและโมเดลของ Magika เปิดให้ใช้ฟรีบน Github ภายใต้ไลเซนส์ Apache2 และสามารถติดตั้งได้ง่ายผ่านตัวจัดการแพ็กเกจ pypi
  • รายละเอียดการใช้งาน Magika เพิ่มเติมสามารถดูได้จากเว็บไซต์เอกสารของ Magika

ความเห็นของ GN⁺

  • การเปิดซอร์ส Magika น่าจะช่วยยกระดับความแม่นยำของการระบุประเภทไฟล์ได้อย่างมาก
  • โดยเฉพาะในด้านความปลอดภัย การระบุไฟล์อย่างแม่นยำมีความสำคัญอย่างยิ่ง และ Magika อาจกลายเป็นเครื่องมือที่ทรงพลังสำหรับงานนี้
  • ศักยภาพทางเทคโนโลยีของ Google และการมีส่วนร่วมต่อชุมชนโอเพนซอร์สน่าจะมีบทบาทสำคัญในการเสริมความแข็งแกร่งให้ระบบนิเวศไซเบอร์ซีเคียวริตีระดับโลก

1 ความคิดเห็น

 
GN⁺ 2024-02-17

ความคิดเห็นบน Hacker News

  • มีการลองนำเครื่องมือตรวจจับประเภทไฟล์ตัวใหม่ไปใช้กับข้อมูลเว็บครอว์ล

    • พบกรณีที่ตรวจจับไฟล์ HTML แบบง่ายผิดพลาด
    • ไฟล์ WOFF และ WOFF2 บางส่วนก็ถูกตรวจจับผิดเช่นกัน
    • ประเมินว่ายังเป็นการติดตั้งใช้งานที่เชื่อถือได้ไม่พอสำหรับงานอัตโนมัติ
    • ยังแสดงความไม่พอใจที่ไม่ได้ตัด shell color escape ออกเมื่อเอาต์พุตถูก pipe
  • มีการแชร์ประสบการณ์เมื่อ 10 ปีก่อนเกี่ยวกับการตรวจจับประเภทไฟล์สเปรดชีต

    • เคยเสนอแพตช์ให้ตรวจจับประเภทไฟล์ด้วย "magic" แต่ถูกปฏิเสธ
    • ปัจจุบันมีการกล่าวถึงการตรวจจับประเภทไฟล์ด้วยดีปเลิร์นนิง
    • หวังว่า Google จะเปิดเผย benchmark ด้านประสิทธิภาพ
  • มีการแชร์ผลการทดสอบการตรวจจับกับไฟล์ 100 ไฟล์

    • ส่วนใหญ่ตรวจจับได้ถูกต้อง แต่บางไฟล์ถูกตรวจจับผิดหรือได้ประเภทที่ไม่ชัดเจน
    • ข้อผิดพลาดเกิดขึ้นเป็นหลักกับประเภทไฟล์ที่ Magika ยังไม่รองรับ
    • เมื่อเทียบกับยูทิลิตี file เดิมแล้วให้ความแม่นยำใกล้เคียงกัน
  • มีปฏิกิริยาเชิงบวกต่อการมีเครื่องมือใหม่เข้ามาในวงการตรวจจับประเภทไฟล์

    • มีการตั้งคำถามถึงเหตุผลที่ออกเป็นโมดูล Node
    • เอกสารระบุว่าช้า และมีการโหลดโมเดลตอนรันไทม์
    • มีการกล่าวถึงสถานะเชิงทดลองและการรองรับประเภทไฟล์ที่จำกัด
  • มีความสับสนว่าเหตุใด Google จึงทุ่มทรัพยากรไปกับการพัฒนาเครื่องมือตรวจจับประเภทไฟล์ด้วยโครงข่ายประสาทแทนการปรับปรุง libmagic

    • มีการชี้ว่าโครงข่ายประสาทแม่นยำกว่า แต่รองรับประเภทไฟล์น้อยกว่า และมีประสิทธิภาพลดลงในสถานการณ์เชิงปฏิปักษ์
  • มีการสงสัยถึงวิธีตรวจจับไฟล์ polyglot ที่ใช้ได้จริงกับหลายฟอร์แมตพร้อมกัน

    • จากผลทดสอบจริง มีการระบุว่าตรวจพบเพียงเลเยอร์ ZIP เท่านั้น
  • มีการตั้งคำถามถึง precision หรือ recall ของเครื่องมืออื่น ๆ ในการตรวจจับไฟล์ APK หรือ JAR ได้อย่างถูกต้อง

    • มีการขอคำอธิบายถึงกรณีที่ไฟล์บางตัวส่งผลต่อ precision หรือ recall
  • มีการแชร์ประสบการณ์การทำ implementation ของ libmagic ใน Racket

    • มีการระบุว่า libmagic ตรวจจับประเภทไฟล์ได้มากกว่า แต่ Magika อาจมีประโยชน์กับการตรวจจับไฟล์ข้อความ
  • มีข้ออ้างว่าการตรวจจับประเภทไฟล์นั้นโดยเนื้อแท้เป็นเรื่องเชิงกำหนดแน่นอน

    • "magic bytes" ควรมีความสม่ำเสมอ และมีการตั้งคำถามถึงความจำเป็นของ heuristic หรือการอนุมานเชิงความน่าจะเป็น