Bộ phát hiện loại MIME
Các phần mở rộng tệp tin thường không chính xác – bất kỳ ai cũng có thể đổi tên tệp malware.exe thành photo.jpg. Cách đáng tin cậy nhất để xác định thực chất của một tệp là đọc vài byte đầu tiên; hầu hết các định dạng đều đặt một dấu ấn (gọi là “số ma thuật”) để nhận diện định dạng đó, bất kể tên gọi của tệp. Bộ phát hiện này sẽ đọc dấu ấn trong mọi tệp được gửi và trả về loại MIME chuẩn cùng với phần mở rộng phổ biến nhất tương ứng, giúp bạn kiểm chứng xem tệp đã tải lên có đúng như thông tin mà máy khách cung cấp hay không.
Cách thức phát hiện MIME hoạt động như thế nào
-
1
Thả tệp vào
Bất kỳ kích thước nào cũng được hỗ trợ; chỉ phần đầu tiên từ 4 đến 16 KB mới được đọc.
-
2
Đọc các byte đặc trưng
Hầu hết các định dạng đều bắt đầu bằng một chữ ký đã biết.
-
3
So sánh với cơ sở dữ liệu đặc trưng
Bộ dò sử dụng cùng các quy tắc như `file(1)` / libmagic.
-
4
Trả về loại MIME cùng phần mở rộng
Hiển thị loại phương tiện theo RFC 6838, phần mở rộng chuẩn và nhãn do con người đặt ra.
Các ví dụ về chữ ký
| Định dạng | Các byte đầu tiên (dưới dạng hex) | MIME |
|---|---|---|
| JPEG | FF D8 FF |
image/jpeg |
| PNG | 89 50 4E 47 0D 0A 1A 0A |
image/png |
| GIF87a | 47 49 46 38 37 61 |
image/gif |
| GIF89a | 47 49 46 38 39 61 |
image/gif |
| WebP | 52 49 46 46 ... 57 45 42 50 |
image/webp |
25 50 44 46 (%PDF) |
application/pdf |
|
| ZIP / JAR / ODT / DOCX | 50 4B 03 04 |
application/zip (hoặc cụ thể) |
| gzip | 1F 8B 08 |
application/gzip |
| MP4 (ISO BMFF) | 00 00 00 XX 66 74 79 70 |
video/mp4 |
| MP3 | 49 44 33 hoặc FF FB |
audio/mpeg |
| FLAC | 66 4C 61 43 |
audio/flac |
| WAV | 52 49 46 46 ... 57 41 56 45 |
audio/wav |
| ELF (tập tin nhị phân Linux) | 7F 45 4C 46 |
application/x-executable |
| Windows PE (exe) | 4D 5A |
application/x-msdownload |
Tại sao các tiện ích mở rộng không đủ
– An ninh: Một tệp resume.pdf được tải lên – thực chất là .exe – có thể vượt qua các bộ lọc mở rộng đơn giản. Giải pháp là sử dụng chức năng phát hiện định dạng MIME ở phía máy chủ.
– Không phù hợp về loại nội dung (Content-Type). Trình duyệt có thể gửi định dạng MIME không đúng khi tải lên; việc đọc các byte đặc biệt sẽ giúp xác định thực chất dữ liệu đó là gì.
– Các bản sao lưu đã khôi phục: Các tiện ích mở rộng đôi khi bị mất hoặc bị loại bỏ; chức năng phân tích nội dung giúp bạn xác định được từng tệp cụ thể là gì.
Gia đình dựa trên ZIP
Hầu hết các định dạng hiện đại thực chất đều là các tệp lưu trữ ZIP; chúng bắt đầu bằng tên PK\x03\x04 giống như mọi tệp ZIP khác.
– Office Open XML: .docx, .xlsx, .pptx.
- OpenDocument:
.odt,.ods,.odp. - Định dạng EPUB:
.epub. – Tập tin APK cho Android:.apk. – Tệp JAR của Java:.jar.
Để phân biệt chúng, thiết bị dò tìm sẽ kiểm tra bên trong tập tin ZIP để tìm tệp manifest ([Content_Types].xml cho định dạng OOXML, mimetype cho định dạng ODF/EPUB).
Các tổ hợp hữu ích
- 512 byte đầu tiên bao gồm hầu hết các dấu hiệu định dạng.
- 4 KB đầu tiên bao gồm các định dạng dựa trên ZIP, trong đó tệp manifest nằm ở phần sau của tập tin.
- 16 KB đầu tiên bao gồm các trường hợp đặc biệt như một số container đa phương tiện.
Không hoàn hảo
- Các tệp văn bản thông thường không chứa các byte đặc biệt nào; bộ phát hiện sẽ sử dụng các phương pháp suy luận trực giác (ví dụ: liệu tệp có thuộc định dạng UTF-8 hợp lệ hay không, hoặc có dạng giống JSON hay XML hay không).
- Các tệp được mã hóa hoặc làm mờ có thể trông giống như những byte ngẫu nhiên không mang dấu ấn nhận diện rõ ràng.
– Sự mơ hồ về định dạng: Cả
audio/wavvàvideo/aviđều bắt đầu bằngRIFF; bộ phát hiện sẽ kiểm tra mã nhận dạng thứ cấp (WAVEso vớiAVIxuất hiện sau bốn byte).
Câu hỏi thường gặp
Không. Quá trình phát hiện được thực hiện trực tiếp trong trình duyệt của bạn – chỉ một vài KB đầu tiên được đọc và so sánh với cơ sở dữ liệu chữ ký phía máy khách; không có bất kỳ dữ liệu nào rời khỏi thiết bị của bạn.
Vì OOXML, ODF, EPUB và JAR đều bắt đầu bằng chữ ký ZIP, bộ phát hiện sẽ kiểm tra nội dung để tìm tệp manifest đặc thù cho từng định dạng và trả về định danh MIME cụ thể hơn (application/vnd.openxmlformats-...).
Phương pháp này phát hiện các trường hợp đổi tên đơn giản: ví dụ, một tệp .exe được đổi thành .jpg sẽ vẫn được hiển thị là tệp thực thi dựa trên các byte đặc trưng của nó. Các kẻ tấn công tinh vi thường chèn nội dung độc hại vào các tệp phương tiện thực tế hoặc sử dụng các tệp đa ngôn ngữ phù hợp với nhiều dấu ấn khác nhau; những thủ đoạn này có thể vượt qua các hệ thống phát hiện đơn giản.
Văn bản bình thường không chứa các byte đặc biệt nào. Bộ phát hiện sử dụng các phương pháp xác định dựa trên kinh nghiệm: là UTF-8 hợp lệ? JSON hợp lệ? Tuyên bố XML? Cấu trúc CSV? Nếu không phải trường hợp trên thì sẽ chuyển sang sử dụng mã text/plain.
Cơ sở dữ liệu ký hiệu có cấu trúc tương tự nhau (được xây dựng dựa trên các quy tắc của thư viện libmagic trong Unix). Kết quả sẽ giống nhau đối với các định dạng phổ biến; tuy nhiên, đối với các định dạng phức tạp hoặc tùy chỉnh thì kết quả có thể khác biệt.
Công cụ liên quan
IP của tôi là gì
Xem địa chỉ IP mà máy chủ này nhận được cho yêu cầu của bạn, đó là IPv4 hay IPv6 và, khi có dữ liệu GeoIP cục bộ, một quốc gia gần đúng.
Máy tính CIDR
Tính toán địa chỉ mạng, phạm vi phát sóng, phạm vi máy chủ, IP có thể sử dụng và mặt nạ mạng con cho bất kỳ khối CIDR IPv4 nào.
Từ miền đến IP
Phân giải bất kỳ domain nào sang địa chỉ IPv4 (A) và IPv6 (AAAA) rồi sao chép vào bất kỳ công cụ mạng nào.
Trình kiểm tra email liên quan đến sự rò rỉ dữ liệu
Kiểm tra xem địa chỉ email có xuất hiện trong các vụ rò rỉ dữ liệu đã biết hay không, xác định nơi mà thông tin bị tiết lộ và tìm hiểu thứ tự ưu tiên để thực hiện xử lý.
Trình kiểm thử CORS
Gửi một yêu cầu OPTIONS preflight tới bất kỳ URL nào và kiểm tra Access-Control-Allow-Origin, các tiêu đề và phương thức mà máy chủ trả về. Gỡ lỗi cross-origin thật nhanh.
Bộ kiểm tra tuổi miền
Xem xét thời điểm một tên miền được đăng ký lần đầu tiên cùng độ tuổi của nó tính bằng năm, tháng và ngày, dựa trên dữ liệu WHOIS từ cơ sở đăng ký.
Công cụ này có phiên bản bằng các ngôn ngữ khác
- Detector de tipo MIME [ES]
- MIMEタイプ検出器 [JA]
- Detector de Tipo MIME [PT]
- MIME-typdetektor [SV]
- أداة كشف نوع ملفات MIME [AR]
- Détecteur de type MIME [FR]
- Detektor typu MIME [PL]
- Detektor Jenis MIME [ID]
- MIME 타입 감지기 [KO]
- MIME-Typ-Detektor [DE]
- MIME-type detector [NL]
- เครื่องตรวจจับประเภทไฟล์ MIME [TH]
- Rilevatore di tipo MIME [IT]
- Определение MIME-типа файла [RU]
- MIME Tür Tespit Cihazı [TR]
- MIME类型检测器 [ZH]
- MIME Type Detector [EN]