- Công cụ tự động chèn đo đạc an toàn và đáng tin cậy cho ứng dụng Go do Datadog phát triển
- Chèn đo đạc tại thời điểm biên dịch để giảm thiểu overhead khi chạy
- Bảo vệ ứng dụng thông qua tính năng RASP
- Tự động chèn đo đạc cho theo dõi Datadog APM bằng cách sửa đổi mã nguồn trong quá trình biên dịch
- Bảo vệ ứng dụng khỏi các lỗ hổng phổ biến thông qua tính năng Datadog Application Security Management Exploit Prevention
Cách hoạt động
- Tích hợp với toolchain Go để phân tích và sửa đổi mã nguồn trong quá trình biên dịch.
- Thao tác mã ở cấp độ Abstract Syntax Tree (AST) để trình biên dịch Go xác thực mọi thay đổi và thực hiện kiểm tra kiểu.
- Cho phép truy cập không giới hạn vào mọi hành vi của ứng dụng, đồng thời ngăn các lỗi có thể phát sinh khi sửa đổi trực tiếp tệp nhị phân đã biên dịch.
- Mã đã được sửa đổi sẽ tiếp tục đi qua các bước tối ưu hóa của trình biên dịch Go để được tối ưu, từ đó giảm overhead khi chạy.
- Chèn chỉ thị pragma Go
//line vào mã nguồn đã sửa đổi để việc thay đổi không ảnh hưởng đến số dòng và để stack trace được tạo ra từ ứng dụng đã chèn đo đạc trỏ tới đúng vị trí trong mã nguồn gốc.
Vì sao sử dụng đo đạc tại thời điểm biên dịch
- An toàn, độ tin cậy, chất lượng dữ liệu: Đo đạc tại thời điểm biên dịch an toàn hơn và tạo ra dữ liệu đáng tin cậy hơn so với vá nhị phân hoặc eBPF.
- Tự động hóa: Vá nhị phân và eBPF cung cấp mức độ tự động hóa cao, nhưng Orchestrion yêu cầu thay đổi quy trình build và triển khai lại ứng dụng.
- Overhead hiệu năng: eBPF có thể gây overhead hiệu năng do chuyển ngữ cảnh giữa kernel và user space. Orchestrion chèn đo đạc tại thời điểm biên dịch để giảm thiểu overhead khi chạy.
- Môi trường được hỗ trợ: eBPF bị giới hạn trong môi trường Linux, còn Orchestrion hỗ trợ nhiều môi trường khác nhau.
- Tính năng tổng thể: eBPF có tính năng hạn chế, trong khi Orchestrion hoạt động ở cấp độ mã nên cung cấp nhiều khả năng hơn.
Orchestrion cho bảo mật
- Triển khai tính năng RASP bằng cách chèn đo đạc có thể thay đổi luồng điều khiển của chương trình thông qua thao tác ở cấp độ mã.
- Có thể tự bảo vệ ứng dụng khỏi các lỗ hổng phổ biến như SQL injection hoặc local file inclusion.
- Có thể thay thế hoàn toàn một API cụ thể bằng API khác, nhờ đó nhà phát triển không cần phải bận tâm đến việc truyền giá trị context qua mọi tầng logic nghiệp vụ để xâu chuỗi ngữ cảnh truy vết.
Chưa có bình luận nào.