Snapchange, công cụ làm mờ mã nguồn mở của AWS

Amazon Web Services, đã phát hành Công cụ Fuzzing dựa trên KVM mã nguồn mở mới

Tin tức đã được phát hành rằnge Amazon đã phát hành một công cụ fuzzing mới gọi là Snapchange, cho phép bạn kiểm tra các tệp thực thi mà không sửa đổi chúng và không có mã nguồn của ứng dụng. Đây là một động thái được thiết kế một phần để giải quyết những lo ngại về tính bảo mật của chuỗi cung ứng phần mềm.

Trong bài đăng trên Amazon có đề cập rằng, Snapchange bắt đầu như một thử nghiệm từ nhóm nghiên cứu bảo mật mã nguồn mở AWS Find and Fix (F2) để khám phá tiềm năng của việc sử dụng KVM để kích hoạt tính năng làm mờ ảnh chụp nhanh.

Hôm nay, chúng tôi rất vui mừng được công bố Snapchange, một dự án mã nguồn mở mới giúp việc tạo mờ dựa trên ảnh chụp nhanh dễ dàng hơn nhiều. Snapchange cho phép làm mờ một nhị phân mục tiêu với những sửa đổi tối thiểu, cung cấp thông tin chi tiết hữu ích hỗ trợ cho việc làm mờ.

Snapchange là một khung Rust để tạo các bộ làm mờ phát các ảnh chụp nhanh của bộ nhớ vật lý để tăng hiệu quả và giảm độ phức tạp trong việc làm mờ nhiều loại mục tiêu. Snapchange sử dụng các tính năng của trình quản lý máy ảo tích hợp trong nhân Linux được gọi là Máy ảo nhân hoặc KVM. 

Giới thiệu về Snapchange

Nó được đề cập rằng, Snapchange cho phép tải kết xuất bộ nhớ vật lý với mã thực thi dẫn xuất và tổ chức, sử dụng trình ảo hóa KVM, thực thi mã theo chu kỳ có mặt trong bãi rác, lặp qua các kết hợp khác nhau của dữ liệu đầu vào, theo dõi các lỗi hoặc bất thường mới xuất hiện và bắt đầu lại quá trình kiểm tra sau lần lặp lại tiếp theo, mỗi khi phân đoạn bộ nhớ và các thanh ghi CPU được khôi phục về trạng thái ban đầu.

Lặp lại đặt lại và bắt đầu lại sau khi kết thúc bất thường, một thời gian chờ đợi hoặc sự xuất hiện của một sự kiện nhất định Dữ liệu đầu vào được thay thế trực tiếp vào bộ nhớ và để tiết kiệm tài nguyên trong quá trình khởi tạo về trạng thái ban đầu của bộ nhớ, sau khi thực hiện lần lặp tiếp theo, nó sẽ xác định dữ liệu nào có trong bộ nhớ và đã thay đổi.

Kết xuất bộ nhớ ban đầu được tạo bằng cách lưu ảnh chụp nhanh của máy ảo trong đó môi trường với ứng dụng đang thử nghiệm được thực thi, chạy trong VirtualBox hoặc QEMU. Logic thay thế dữ liệu đầu vào được xác định bằng cách tạo các tập lệnh đặc biệt và vị trí bắt đầu thực thi theo chu kỳ được đặt bằng cách đặt từ một điểm ngắt trong trình gỡ lỗi.

Ví dụ: nếu cần kiểm tra quá trình xử lý đa trạng thái của yêu cầu mạng, nhà nghiên cứu sẽ khởi động ứng dụng trên hệ thống khách trong VirtualBox hoặc QEMU, trong trình gỡ lỗi tìm thấy điểm bắt đầu thực hiện quy trình xử lý yêu cầu (ví dụ: ví dụ , sau khi gọi hàm recv), đặt một điểm ngắt trên đó và xác định vùng bộ nhớ mà gói mạng nhận được sẽ được tải vào. Sau đó, ảnh chụp nhanh hệ thống khách được tạo và tải lên Snapchange.

Để xác minh, một tập lệnh được viết để ghi dữ liệu trong quá trình liệt kê trực tiếp vào bộ đệm. của gói mạng, mà cho phép bạn mô phỏng quá trình xử lý các gói mạng thực. Snapchange tiếp tục ở nơi nó dừng lại, mỗi lần thay đổi nội dung của dữ liệu trong bộ đệm và đặt lại trạng thái bộ nhớ về trạng thái ban đầu.

Các chiến lược khác nhau được hỗ trợ để tạo dữ liệu đầu vào. Có thể liệt kê nhiều môi trường liên kết với các lõi CPU khác nhau bằng cách thực thi song song. Ngoài việc phát hiện lỗi trong quá trình thực thi mã, nó còn hỗ trợ thu thập các chỉ số hiệu suất, tích lũy số liệu thống kê về mức độ phù hợp để đánh giá mức độ phù hợp của mã thực thi và theo dõi từng bước mã thực thi.

quan tâm đến dự án, bạn nên biết rằng mã của dự án được viết bằng Rust và được phân phối theo giấy phép Apache 2.0 thông qua GitHub.

Snapchange hoạt động trong Linux, nhưng yêu cầu quyền truy cập trực tiếp vào các nguyên mẫu KVM cơ bản. Do đó, nó hỗ trợ các loại phiên bản kim loại trần EC2, chạy mà không cần trình ảo hóa, nhưng không hỗ trợ các phiên bản ảo hóa EC2.

Cuối cùng, nếu bạn quan tâm để có thể tìm hiểu thêm về nó, bạn có thể tham khảo thông báo ban đầu Trong liên kết sau đây.


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.