6 điểm bởi GN⁺ 2024-02-17 | 1 bình luận | Chia sẻ qua WhatsApp
  • Google đã công bố mã nguồn mở Magika, một hệ thống nhận diện loại tệp dựa trên AI
  • Magika sử dụng mô hình học sâu tùy biến và được tối ưu hóa, cho phép nhận diện tệp chính xác trong vài mili giây ngay cả trên CPU
  • Có thể dùng thử bản web demo của Magika, đồng thời cài đặt dưới dạng thư viện Python và công cụ dòng lệnh độc lập bằng lệnh pip install magika

Vì sao việc nhận diện loại tệp lại khó

  • Ngay từ thời kỳ đầu của điện toán, việc phát hiện chính xác loại tệp đã rất quan trọng để quyết định cách xử lý tệp.
  • Linux có libmagic và tiện ích file, và đây đã là tiêu chuẩn thực tế cho việc nhận diện loại tệp trong hơn 50 năm.
  • Việc phát hiện loại tệp là yếu tố thiết yếu để nhiều phần mềm như trình duyệt web, trình soạn thảo mã... hiển thị tệp đúng cách.
  • Do mỗi định dạng tệp có cấu trúc khác nhau hoặc thậm chí không có cấu trúc, việc nhận diện chính xác loại tệp là một bài toán nổi tiếng là khó.
  • libmagic và phần lớn phần mềm nhận diện loại tệp hiện nay phụ thuộc vào các heuristic và quy tắc được tạo thủ công để phát hiện từng định dạng tệp.
  • Cách tiếp cận thủ công này vừa tốn thời gian vừa dễ phát sinh lỗi.

Hiệu năng của Magika

  • Nhờ mô hình AI và bộ dữ liệu huấn luyện quy mô lớn, Magika cho hiệu năng tốt hơn khoảng 20% so với các công cụ hiện có trong một bài benchmark 1 triệu tệp bao gồm hơn 100 loại tệp.
  • Đặc biệt, Magika cải thiện mạnh hơn ở các loại tệp mà công cụ khác thường gặp khó khăn như tệp văn bản, tệp mã nguồn và tệp cấu hình.

Cách Google sử dụng Magika nội bộ

  • Magika được sử dụng nội bộ tại Google để định tuyến các tệp trong Gmail, Drive và Safe Browsing đến đúng bộ quét chính sách bảo mật và nội dung, qua đó nâng cao an toàn cho người dùng.
  • Với quy mô trung bình hàng chục tỷ tệp mỗi tuần, Magika đã cải thiện độ chính xác nhận diện loại tệp thêm 50% so với hệ thống trước đây vốn dựa vào các quy tắc thủ công.
  • Trong tương lai, Magika sẽ bổ sung cho tính năng Code Insight hiện có thông qua tích hợp với VirusTotal, đóng góp cho hệ sinh thái an ninh mạng toàn cầu và giúp tạo ra một môi trường số an toàn hơn.

Magika được mã nguồn mở

  • Thông qua việc mã nguồn mở Magika, mục tiêu là giúp các phần mềm khác nâng cao độ chính xác trong nhận diện tệp và cung cấp cho các nhà nghiên cứu một phương pháp đáng tin cậy để nhận diện loại tệp ở quy mô lớn.
  • Mã nguồn và mô hình của Magika được cung cấp miễn phí trên Github theo giấy phép Apache2, đồng thời có thể dễ dàng cài đặt qua trình quản lý gói PyPI.
  • Để biết thêm chi tiết về cách sử dụng Magika, hãy tham khảo trang tài liệu của Magika.

Ý kiến của GN⁺

  • Việc Magika được phát hành mã nguồn mở có vẻ sẽ giúp cải thiện đáng kể độ chính xác trong nhận diện loại tệp.
  • Đặc biệt trong lĩnh vực bảo mật, việc nhận diện tệp chính xác là cực kỳ quan trọng và Magika có thể trở thành một công cụ mạnh mẽ cho mục tiêu này.
  • Năng lực công nghệ của Google và những đóng góp cho cộng đồng mã nguồn mở được kỳ vọng sẽ đóng vai trò quan trọng trong việc củng cố hệ sinh thái an ninh mạng toàn cầu.

1 bình luận

 
GN⁺ 2024-02-17

Ý kiến trên Hacker News

  • Đã thử áp dụng công cụ phát hiện kiểu tệp mới vào dữ liệu thu thập từ web.

    • Có trường hợp nhận diện sai các tệp HTML đơn giản.
    • Một số tệp WOFF, WOFF2 cũng bị nhận diện sai.
    • Được đánh giá là triển khai vẫn chưa đủ đáng tin cậy để tự động hóa.
    • Cũng bày tỏ sự không hài lòng về việc không loại bỏ mã thoát màu của shell khi đầu ra được pipe.
  • Chia sẻ kinh nghiệm từ 10 năm trước về việc nhận diện kiểu tệp bảng tính.

    • Từng đề xuất một bản vá dùng "magic" để nhận diện kiểu tệp nhưng đã bị từ chối.
    • Hiện nay có nhắc đến việc nhận diện kiểu tệp bằng deep learning.
    • Mong Google công bố benchmark hiệu năng.
  • Chia sẻ kết quả thử nghiệm nhận diện trên 100 tệp.

    • Phần lớn được nhận diện chính xác, nhưng một số bị nhận diện sai hoặc thành kiểu không rõ ràng.
    • Lỗi chủ yếu xảy ra ở các kiểu tệp mà Magika chưa hỗ trợ.
    • So với tiện ích file hiện có, độ chính xác cho kết quả tương tự.
  • Phản hồi tích cực trước việc có một công cụ mới xuất hiện trong lĩnh vực nhận diện kiểu tệp.

    • Đặt câu hỏi vì sao lại phát hành module Node.
    • Tài liệu có nhắc đến việc chậm, và mô hình được tải ở thời điểm chạy.
    • Đề cập đến việc được gắn nhãn thử nghiệm và chỉ hỗ trợ số lượng kiểu tệp hạn chế.
  • Bối rối trước việc Google dồn nguồn lực vào phát triển công cụ nhận diện kiểu tệp dựa trên mạng nơ-ron thay vì cải thiện libmagic.

    • Chỉ ra rằng mạng nơ-ron chính xác hơn nhưng hỗ trợ ít kiểu tệp hơn và kém hiệu quả trong tình huống đối kháng.
  • Thắc mắc về cách nhận diện các tệp polyglot hợp lệ theo nhiều định dạng khác nhau.

    • Kết quả thử nghiệm thực tế cho thấy chỉ lớp ZIP được nhận diện.
  • Đặt câu hỏi về precision hoặc recall của các công cụ khác trong việc nhận diện chính xác tệp APK hay JAR.

    • Yêu cầu giải thích về các trường hợp tệp cụ thể đã ảnh hưởng đến precision hoặc recall.
  • Chia sẻ kinh nghiệm triển khai libmagic trong Racket.

    • libmagic nhận diện được nhiều kiểu tệp hơn, nhưng Magika có thể hữu ích trong việc nhận diện tệp văn bản.
  • Lập luận rằng việc nhận diện kiểu tệp về bản chất là mang tính quyết định.

    • Cho rằng "magic bytes" phải nhất quán và đặt câu hỏi về sự cần thiết của heuristic hay suy luận xác suất.