เครื่องตรวจจับประเภทไฟล์ MIME
นามสกุลไฟล์มักให้ข้อมูลที่ไม่ถูกต้อง, ใครก็ตามสามารถเปลี่ยนชื่อไฟล์ malware.exe เป็น photo.jpg ได้ วิธีที่เชื่อถือได้ในการระบุชนิดของไฟล์จริงๆ คือการอ่านไบต์แรกๆ ของไฟล์ โดยรูปแบบไฟล์ส่วนใหญ่มักใส่ “ลายเซ็น” (หรือที่เรียกว่า “หมายเลขมหัศจรรย์”) ซึ่งใช้ระบุรูปแบบของไฟล์โดยไม่ขึ้นอยู่กับชื่อ โปรแกรมตรวจจับนี้จะอ่านลายเซ็นดังกล่าวจากไฟล์ที่ส่งมา และแสดงประเภท MIME ตามมาตรฐานพร้อมกับการจับคู่นามสกุลที่พบบ่อยที่สุด เพื่อให้คุณสามารถตรวจสอบได้ว่าไฟล์ที่อัปโหลดเข้ามาตรงกับสิ่งที่ผู้ใช้งานระบุหรือไม่
กลไกการทำงานของการตรวจจับรูปแบบไฟล์ (MIME)
-
1
วางไฟล์ลง
ไม่ว่าขนาดจะเท่าใด ก็จะมีการอ่านเฉพาะส่วนแรกขนาด 4–16 KB เท่านั้น
-
2
อ่านไบต์มหัศจรรย์
รูปแบบส่วนใหญ่เริ่มต้นด้วยลายเซ็นที่ทราบแน่ชัด
-
3
การเปรียบเทียบกับฐานข้อมูลลายเซ็น
เครื่องตรวจจับนี้ใช้กฎเดียวกันกับ `file(1)` / libmagic
-
4
ส่งคืนรูปแบบข้อมูล MIME พร้อมนามสกุล
แสดงประเภทสื่อตาม RFC 6838 ตัวขยายมาตรฐาน และคำบรรยายที่กำหนดโดยมนุษย์
ตัวอย่างลายเซ็น
| รูปแบบ | ไบต์แรก (ฐานสิบหก) | 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 (หรือรูปแบบเฉพาะ) |
| gzip | 1F 8B 08 |
application/gzip |
| MP4 (ISO BMFF) | 00 00 00 XX 66 74 79 70 |
video/mp4 |
| MP3 | 49 44 33 หรือ FF FB |
audio/mpeg |
| ไฟล์แบบ FLAC | 66 4C 61 43 |
audio/flac |
| WAV | 52 49 46 46 ... 57 41 56 45 |
audio/wav |
| ELF (ไฟล์ไบนารีของ Linux) | 7F 45 4C 46 |
application/x-executable |
| Windows PE (ไฟล์แบบ exe) | 4D 5A |
application/x-msdownload |
ทำไมเอ็กซ์เทนชันจึงไม่เพียงพอ
- ความปลอดภัย: ไฟล์
resume.pdfที่อัปโหลดเข้ามาซึ่งแท้จริงแล้วเป็น.exeสามารถหลีกเลี่ยงตัวกรองการขยายชื่อไฟล์แบบง่ายๆ ได้ โดยวิธีแก้ไขคือการตรวจจับรูปแบบไฟล์ MIME บนฝั่งเซิร์ฟเวอร์ - ความไม่ตรงกันของประเภทเนื้อหา (Content-Type) บราวเซอร์อาจส่งค่า MIME ที่ผิดสำหรับไฟล์ที่อัปโหลดได้ การอ่านไบต์มหัศจรรย์จะช่วยระบุได้ว่าข้อมูลนั้นมีลักษณะอย่างไรในความเป็นจริง
- การกู้คืนข้อมูลสำรอง: ไฟล์ขยายนามสกุลบางครั้งอาจหายไปหรือถูกลบออกไป การตรวจสอบเนื้อหาช่วยให้คุณระบุได้ว่าแต่ละไฟล์เป็นอะไร
ตระกูลไฟล์ที่ใช้ ZIP เป็นพื้นฐาน
ในความเป็นจริงแล้ว รูปแบบข้อมูลสมัยใหม่หลายรูปแบบล้วนเป็นไฟล์อาร์ชีฟแบบ ZIP โดยเริ่มต้นด้วยนามสกุล PK\x03\x04 เช่นเดียวกับไฟล์ ZIP ทั่วไป
- Office Open XML:
.docx,.xlsx,.pptx - OpenDocument:
.odt,.ods,.odp. - รูปแบบ EPUB:
.epub - ไฟล์ APK สำหรับ Android:
.apk - ไฟล์ Java JAR:
.jar
เพื่อแยกแยะระหว่างไฟล์เหล่านี้ เครื่องตรวจจับจะตรวจสอบภายในไฟล์ ZIP เพื่อหาไฟล์ manifest ([Content_Types].xml สำหรับ OOXML และ mimetype สำหรับ ODF/EPUB)
ชุดการรวมที่มีประโยชน์
- ไบต์แรก 512 ไบต์ครอบคลุมลายเซ็นรูปแบบส่วนใหญ่
- ส่วนแรกขนาด 4 KB ครอบคลุมรูปแบบที่ใช้ไฟล์ ZIP โดยไฟล์ manifest จะอยู่ในส่วนท้ายของไฟล์
- ส่วนแรกขนาด 16 KB ครอบคลุมกรณีพิเศษ เช่น คอนเทนเนอร์มัลติมีเดียบางประเภท
ไม่สมบูรณ์แบบนัก
- ไฟล์ข้อความธรรมดาไม่มีไบต์พิเศษใดๆ ตัวตรวจจับจะใช้วิธีการประเมินเชิงประสบการณ์แทน เช่น ไฟล์นั้นเป็น UTF-8 ที่ถูกต้องหรือไม่ และมีลักษณะคล้าย JSON หรือ XML หรือไม่
- ไฟล์ที่ถูกเข้ารหัสหรือบดบังข้อมูลอาจมีรูปลักษณ์คล้ายไบต์สุ่ม โดยไม่มีลายเซ็นที่สามารถระบุได้
- ความไม่แน่นอนของรูปแบบ: ทั้ง
audio/wavและvideo/aviเริ่มต้นด้วยRIFFโดยเครื่องตรวจจับจะตรวจสอบรหัสระบุรอง (เช่นWAVEเทียบกับAVIซึ่งอยู่หลังไป 4 ไบต์)
คำถามที่พบบ่อย
ไม่ กระบวนการตรวจจับจะดำเนินการภายในเบราว์เซอร์ของคุณ โดยจะอ่านข้อมูลเพียงจำนวนไม่กี่ KB เป็นต้นแรกเท่านั้น และนำไปเปรียบเทียบกับฐานข้อมูลลายเซ็นฝั่งไคลเอนต์ ไม่มีข้อมูลใดถูกส่งออกจากอุปกรณ์ของคุณเลย
เนื่องจาก OOXML, ODF, EPUB และ JAR ล้วนเริ่มต้นด้วยลายเซ็น ZIP เครื่องมือตรวจจับจะตรวจสอบภายในเพื่อค้นหาไฟล์ manifest ที่เฉพาะเจาะจงตามรูปแบบของแต่ละไฟล์ และส่งคืนค่า MIME ที่เฉพาะเจาะจงยิ่งขึ้น (application/vnd.openxmlformats-...)
ระบบนี้สามารถตรวจจับการเปลี่ยนชื่ออย่างง่ายๆ ได้ เช่น เมื่อไฟล์ .exe ถูกเปลี่ยนเป็น .jpg ระบบจะแสดงผลว่าไฟล์นั้นเป็นไฟล์ที่สามารถรันได้ตามค่าไบต์พิเศษของมัน ส่วนผู้โจมตีระดับสูงจะฝังข้อมูลที่ต้องการไว้ภายในไฟล์สื่อจริง หรือใช้ไฟล์ที่มีลักษณะหลากหลายซึ่งตรงกับลายเซ็นหลายแบบ ซึ่งทำให้ระบบตรวจจับแบบง่ายไม่สามารถตรวจพบได้
ข้อความธรรมดาไม่มีไบต์พิเศษใดๆ ระบบจะใช้วิธีการตรวจสอบเชิงประสบการณ์ เช่น ข้อมูลเป็น UTF-8 ที่ถูกต้องหรือไม่? เป็น JSON ที่ถูกต้องหรือไม่? เป็นรูปแบบการประกาศ XML หรือไม่? หรือเป็นข้อมูลในรูปแบบ CSV หรือไม่ หากไม่ตรงตามเกณฑ์เหล่านี้ ระบบจะใช้ชุดรหัส text/plain แทน
ฐานข้อมูลลายเซ็นมีลักษณะคล้ายคลึงกัน (สร้างขึ้นจากกฎของไลบรารี libmagic ของยูนิกซ์) ผลลัพธ์ควรตรงกันสำหรับรูปแบบที่พบได้บ่อย แต่สำหรับรูปแบบที่ซับซ้อนหรือกำหนดเองอาจแตกต่างกันได้
เครื่องมือที่เกี่ยวข้อง
ตัวตรวจสอบเว็บไซต์ล่ม
ตรวจสอบว่าเว็บไซต์ตอบสนองจากเซิร์ฟเวอร์อิสระหรือไม่ แสดงสถานะ UP หรือ DOWN, รหัสสถานะ HTTP, เวลาตอบสนอง และ IP ของเซิร์ฟเวอร์ เพื่อให้คุณแยกความล่มจริงออกจากปัญหาเครือข่ายในเครื่องของคุณได้
เครื่องมือตรวจสอบการเข้ารหัส TLS
ตรวจสอบว่าโฮสต์ยอมรับ TLS 1.2 และ TLS 1.3 บนพอร์ต 443 หรือไม่ พร้อมดูชุดการเข้ารหัส (cipher suite) ที่ตกลงใช้ ทดสอบสดจากเซิร์ฟเวอร์ของเราในสหภาพยุโรป มีลิงก์ไป SSL Labs สำหรับการสแกนแบบเต็มพร้อมเกรด
ตรวจสอบ DKIM
ป้อนโดเมนและตัวเลือก DKIM เพื่อตรวจดูกุญแจสาธารณะในระเบียน DNS TXT พร้อมประเภทคีย์และคำอธิบายกรณีไม่พบ ถูกเพิกถอน หรือมีรูปแบบผิด
เครื่องมือถ่ายภาพหน้าจอเว็บไซต์
ใส่ URL สาธารณะใดก็ได้เพื่อดูตัวอย่างภาพหน้าจอทันที จากนั้นเปิดในบริการฟรีอย่าง Screenshot Machine, Urlbox หรือ ApiFlash หรือดูภาพถ่ายเก่าบน Wayback Machine
ตัวตรวจสอบ uptime ของเว็บไซต์
ตรวจสอบ URL สาธารณะใดก็ได้เมื่อสั่ง และบันทึกสถานะ HTTP กับเวลาตอบสนอง คลิกอีกครั้งเพื่อสร้างประวัติสั้น ๆ สูงสุด 20 ตัวอย่าง พร้อมเปอร์เซ็นต์ uptime และการตอบสนองเฉลี่ย โดยไม่ต้องมีบัญชี
เครื่องมือ Traceroute
เริ่ม traceroute ไปยังโฮสต์ใดก็ได้ผ่านบริการตรวจสอบสาธารณะที่เชื่อถือได้ และเรียนรู้วิธีอ่านผลลัพธ์ทีละฮ็อป เพื่อหาจุดที่ความหน่วงพุ่ง แพ็กเก็ตสูญหาย และปัญหาการกำหนดเส้นทาง
เครื่องมือนี้มีให้บริการในภาษาอื่น
- Detector de tipo MIME [ES]
- Détecteur de type MIME [FR]
- MIMEタイプ検出器 [JA]
- Detector de Tipo MIME [PT]
- Bộ phát hiện loại MIME [VI]
- أداة كشف نوع ملفات MIME [AR]
- Detektor Jenis MIME [ID]
- MIME-typdetektor [SV]
- MIME 타입 감지기 [KO]
- MIME-Typ-Detektor [DE]
- MIME-type detector [NL]
- Detektor typu MIME [PL]
- MIME Type Detector [EN]
- Rilevatore di tipo MIME [IT]
- Определение MIME-типа файла [RU]
- MIME Tür Tespit Cihazı [TR]
- MIME类型检测器 [ZH]