Chuyển đến nội dung chính

Xác định đúng loại tệp để giảm rủi ro

Khi xử lý tệp điện tử, điều quan trọng là phải xác định đúng loại tệp của chúng. Điều này loại bỏ mối đe dọa giả mạo loại tệp, khi tệp có thể bị trình bày sai bằng phần mở rộng hoặc MIME type giả.

API của chúng tôi xác định chính xác loại tệp thực, ताकि hệ thống có thể thực hiện các hành động phù hợp để ngăn chặn vi phạm bảo mật, hỏng dữ liệu hoặc việc xử lý tệp ngoài ý muốn.

Sau khi xác định đúng loại tệp, bạn có thể đưa ra các quyết định phù hợp trong ứng dụng của mình dựa trên các tình huống sau:

Loại tệp được hỗ trợ

Nếu loại tệp được phát hiện nằm trong danh sách các loại tệp được hỗ trợ, bạn có thể tự tin tiếp tục xử lý CDR thông thường đối với tệp đó trong hệ thống của mình.

Loại tệp không được hỗ trợ

Nếu loại tệp được phát hiện thuộc danh sách các loại tệp không được hỗ trợ, điều cần thiết là phải hành động ngay lập tức để ngăn chặn mọi tiến trình tiếp theo của tệp đó trong hệ thống của bạn.

Trong những trường hợp như vậy, bạn nên triển khai cơ chế "fail fast" để dừng mọi xử lý tiếp theo đối với tệp, bảo đảm rằng hệ thống của bạn được bảo vệ khỏi việc xử lý các tệp có khả năng gây hại hoặc không tương thích.

Giả mạo loại tệp

Nếu loại tệp được phát hiện khác với phần mở rộng hoặc kiểu MIME mà tệp khai báo, điều đó có thể cho thấy hành vi ngụy trang tệp, khi một tác nhân độc hại cố gắng đánh lừa hệ thống.

Trong trường hợp như vậy, hãy cân nhắc thực hiện các hành động phòng tránh mạnh hơn để xử lý tệp trong hệ thống của bạn. Các hành động này có thể bao gồm cô lập tệp, chạy thêm các bước kiểm tra bảo mật hoặc thông báo cho quản trị viên để điều tra thêm.

Sự kiện Glasswall Halo

Cách gửi một yêu cầu tới Glasswall Halo:

  1. Bắt đầu bằng cách khởi tạo một yêu cầu tới API Glasswall Halo, chọn endpoint phù hợp dựa trên loại tệp:
  • Đối với tệp Binary, sử dụng endpoint api/v3/cdr-file.
  • Đối với tệp được mã hóa Base64, sử dụng endpoint api/v3/cdr.
  1. Glasswall Halo xử lý yêu cầu và thực hiện phát hiện loại tệp trên tệp gốc.

  2. Để bảo đảm chỉ thực hiện phát hiện loại tệp mà không có bất kỳ hành động nào khác, hãy thêm tham số response-content vào URL với giá trị được đặt là noRebuiltFile,noAnalysisReport. Thao tác này kích hoạt chế độ chỉ phát hiện loại tệp.

  3. Glasswall Halo phân tích tệp bằng Glasswall Embedded Engine để xác định loại tệp thực.

  4. Khi phát hiện thành công, Glasswall Halo đưa loại tệp thực đã được nhận diện vào header phản hồi với khóa header x-filetype.

  5. Giờ đây bạn có thể sử dụng thông tin loại tệp thực đã thu được để xử lý tiếp, kiểm tra bảo mật hoặc thực hiện bất kỳ hành động cần thiết nào khác trong ứng dụng hoặc hệ thống của mình.

Xác thực API

Glasswall Halo hỗ trợ hai loại xác thực: BasicBearer. Trước khi gửi bất kỳ yêu cầu nào, bạn phải xác thực bằng cơ chế phù hợp dựa trên cấu hình của mình.

Basic

Nếu hệ thống của bạn được cấu hình với xác thực Basic, bạn cần lấy ID tổ chức và token từ Quản trị viên Hệ thống. Kết hợp các giá trị này theo định dạng <OrganisationId>:<Token> rồi mã hóa Base64 chúng. Giá trị đã mã hóa thu được phải được đưa vào header yêu cầu như sau:

Authorization: Basic ZGVtbzpwQDU1dzByZA==

Bearer

Đối với xác thực bearer, bạn sẽ cần một bearer token lấy từ nhà cung cấp danh tính của mình. Sau khi đã lấy được token, hãy đưa token đó vào header yêu cầu như sau:

Authorization: Bearer ZGVtbzpwQDU1dzByZA==

Lưu ý: hãy đảm bảo rằng bạn sử dụng phương thức xác thực phù hợp theo cấu hình hệ thống của mình. Việc sử dụng đúng phương thức xác thực sẽ đảm bảo truy cập thành công vào Glasswall Halo API và ngăn ngừa mọi vấn đề về ủy quyền.

Tìm hiểu thêm về cách xác thực Glasswall Halo

Cấu trúc yêu cầu

Để xử lý một tệp nhị phân hoặc một tệp được mã hóa base64 bằng Glasswall Halo, hãy làm theo hướng dẫn dưới đây:

Xử lý tệp nhị phân

Gửi chuỗi nhị phân trong phần thân yêu cầu đến endpoint sau:

POST {baseUrl}/api/v3/cdr-file?response-content=noRebuiltFile,noAnalysisReport

Xử lý tệp được mã hóa Base64

Gửi chuỗi được mã hóa Base64 trong phần thân yêu cầu đến endpoint sau:

POST {baseUrl}/api/v3/cdr?response-content=noRebuiltFile,noAnalysisReport

Định dạng phần thân yêu cầu

Phần thân của yêu cầu phải ở định dạng JSON và bao gồm trường Base64 chứa chuỗi Base64 được mã hóa của tệp, cùng trường filename chỉ định tên tệp gốc (bao gồm phần mở rộng tệp phù hợp).

{
"base64": "string",
"fileName": "filename.pdf",
}

Lưu ý

  • Thay thế {baseurl} bằng URL cơ sở thực tế của Glasswall Halo API.
  • Cần cung cấp auth header chính xác với mỗi yêu cầu.
  • Việc đặt response-content thành noRebuiltFile,noAnalysisReport trong URL đảm bảo rằng chỉ thực hiện phát hiện loại tệp mà không dựng lại tệp hoặc tạo báo cáo phân tích.
  • Đối với xử lý tệp nhị phân, hãy sử dụng bài đăng biểu mẫu multipart, còn đối với xử lý tệp mã hóa Base64, hãy cung cấp nội dung tệp trong phần thân yêu cầu JSON cùng với tên tệp phù hợp.

Xử lý phản hồi

Sau khi gửi yêu cầu thành công, bạn sẽ nhận được mã trạng thái 201. Tuy nhiên, khi chạy API ở chế độ phát hiện loại tệp, sẽ không có đầu ra tệp trong phản hồi. Để xác định loại tệp thực, hãy kiểm tra header phản hồi và tìm khóa x-filetype. Giá trị của header này sẽ cho biết loại tệp thực.

  • Nếu giá trị x-filetype là unknown, điều đó có nghĩa là Glasswall không thể xác định loại tệp thực của tệp đã cho.

  • Nếu giá trị x-filetype là 'txt', điều đó cho biết tệp chỉ chứa văn bản UTF-8 hoặc ASCII thuần túy.

Status: 201 Created
Headers:
access-control-allow-origin: *
access-control-expose-headers: *
content-length: 0
content-type: text/plain
date: Thu,20 Jul 2023 10:55:46 GMT
strict-transport-security: max-age=31536000; includeSubDomains
x-applied-policy: service-dynamic
x-file-size: 301189
x-filetype: pdf
x-processing-id: 779b6828-1e1b-4148-9dc0-a3f1e38cb119
x-processing-status: rebuilt

Trong ví dụ trên, giá trị x-filetype là PDF, cho biết loại tệp thực là một tài liệu PDF.

Để biết thêm chi tiết về các mã lỗi có thể được API trả về, hãy tham khảo API Documentation của chúng tôi. Tại đó, bạn cũng có thể tìm thấy thông tin toàn diện để xử lý nhiều tình huống lỗi khác nhau.

Giá trị dự kiến

Các loại tệp đầu ra được liên kết với các nhóm loại tệp thay vì từng phần mở rộng riêng lẻ. Với Embedded Engine của Glasswall, nhiều phần mở rộng được nhận diện bằng một giá trị duy nhất. Để hiểu rõ hơn các giá trị đầu ra của tiêu đề loại tệp, vui lòng tham khảo bảng bên dưới:

Giá trị loại tệpPhần mở rộng
Doc.Doc, .dot
Xls.Xls, .xlt
Ppt.Ppt, .pps, .pot
PDF.PDF
Docx.Docx, .docm, .dotx, .dotm
Xlsx.Xlsx, .xltx, .xltm, .xlsm
Pptx.Pptx, .pptm, .ppsx, .ppam, .potm, .ppsm, .potx
Tiff.Tif, .tiff, .geotiff
Svg.Svg
Emf.Emf
Wmf.Wmf
Jpeg.Jpeg, .jpg, .jpe, .jif, .jfif, .jfi
Png.Png
Gif.Gif
Bmp.Bmp, .dib

Tóm tắt

Bằng cách triển khai tính năng phát hiện loại tệp thực trong ứng dụng của bạn, bạn có thể bảo đảm rằng hệ thống của mình xử lý tệp một cách an toàn và hiệu quả, giảm thiểu các rủi ro liên quan đến những loại tệp không được hỗ trợ hoặc có khả năng độc hại. Việc xử lý đúng cách khâu phát hiện loại tệp và phản ứng phù hợp với các tình huống khác nhau sẽ giúp duy trì tính bảo mật và độ tin cậy của hạ tầng của bạn.

Bắt đầu nhanh

Để tự mình dùng thử Glasswall Halo, vui lòng tham khảo Hướng dẫn Bắt đầu nhanh của chúng tôi.