Kỹ thuật đảo ngược chương trình cơ sở: Hướng dẫn từng bước
Tìm hiểu quy trình chính xác để giải cấu trúc và phân tích chương trình cơ sở.
Internet vạn vật (IoT) đã chứng kiến sự tăng trưởng đáng kể trong những năm gần đây, từ thiết bị nhà bếp đến đồng hồ đeo tay đến cảm biến công nghiệp. Số lượng và đặc điểm của loại thiết bị này là rất nhiều, cũng như những thiếu sót liên quan có thể xảy ra. Một điểm chung của chúng là chương trình cơ sở, là phần mềm được cài đặt trên các thiết bị nhỏ này cho phép tương tác giữa thiết bị và phần cứng.้
Trong bài viết này, chúng tôi sẽ giải thích các bước về cách thiết kế đảo ngược chương trình cơ sở để tìm và khai thác lỗ hổng. Xin lưu ý rằng phương pháp này luôn phụ thuộc vào loại thiết bị, đặc điểm và tính năng của nó, v.v.
1. Nhận bản sao của chương trình cơ sở์
Bước đầu tiên trong kỹ thuật đảo ngược chương trình cơ sở là phân tích thiết bị IoT và lấy chương trình cơ sở. Một số bước chúng ta có thể làm theo là::
- Tải xuống chương trình cơ sở từ nhà cung cấp web trang web์
- Cách ly chương trình cơ sở thông qua tính năng cập nhật thiết bị bắt buộc (sử dụng proxy để chụp toàn bộ URI)
- Nhận chương trình cơ sở từ chính thiết bị Ví dụ: từ một con chip qua kẹp SOIC (Mạch tích hợp phác thảo nhỏ).)
2. Cách ly chương trình cơ sở์
Bước này của chương trình cơ sở kỹ thuật đảo ngược bao gồm truy cập chương trình cơ sở. Từ thời điểm này, phân tích tĩnh hoặc động có thể được thực hiện.้ Binwalk Nó là một trong những công cụ uy tín để hoàn thành nhiệm vụ này.

Bằng cách sử dụng phương pháp này, Hình ảnh chương trình cơ sở và hình ảnh hạt nhân được tìm thấy có thể được thực hiện tùy thuộc vào đặc điểm của thiết bị. Ví dụ: chương trình cơ sở mới nhất được mã hóa và cần có các bước bổ sung để bỏ qua hoặc giải mã để tiếp tục phân tích. Tuy nhiên, Đây không phải là vấn đề đang được thảo luận trong bài viết.ี้
3. Tạo hình ảnh hạt nhân từ đầu
Đôi khi, sau khi giải nén hệ thống tệp chương trình cơ sở, mô phỏng là một cách tốt hơn để kiểm tra tất cả các chức năng để tìm lỗ hổng. Vì lý do này.ี้ BuildRoot Do đó, nó là một công cụ đơn giản. Nó hiệu quả và dễ sử dụng để xây dựng các hệ thống Linux nhúng thông qua biên dịch chéo.

4. Sao chép hạt nhân với QEMU
Mô phỏng chương trình cơ sở là thời điểm thực thi chương trình cơ sở mà không cần thiết bị thực, vì vậy chúng ta phải mô phỏng nó. Có một số phương pháp, chẳng hạn như mô phỏng người dùng và mô phỏng đầy đủ.
Sử dụng QEMU, mô phỏng nhị phân đơn từ chương trình cơ sở có thể được thực hiện bằng lệnh sau.ี้
qemu-<arch>-static
qemu-<arch> -L <prefix><binary>
Thông tin chi tiết về điều này có thể được tìm thấy tại đây.้Trong đóี่
Mặt khác, cách tiếp cận tốt nhất luôn là mô phỏng hoàn toàn, vì chúng ta có thể tận dụng tất cả các tính năng của chương trình cơ sở.้
Bằng cách sử dụng buildroot để tạo hình ảnh từ đầu, chúng ta nhận được một tập lệnh đơn giản về cách chạy QEMU với hình ảnh đích và cấu hình hạt nhân và QEMU thích hợp.ี้:
- Tệp hình ảnh đĩa QEMU
- Hình ảnh hạt nhân Linux đã biên dịch cho kiến trúc đích, và
- Hình ảnh đĩa RAM mặc định
Khi tất cả các tệp đã sẵn sàng, chúng ta có thể khởi động QEMU VM với kiến trúc CPU thích hợp bằng một trong các lệnh sau.ี้:

Sau khi khởi tạo và định cấu hình máy ảo, hãy thêm các cài đặt thích hợp tùy thuộc vào chương trình cơ sở và hệ điều hành. Chúng ta có thể chạy một số tệp nhị phân.้

Kết luận:
Bối cảnh IoT khá rộng lớn và số lượng các loại thiết bị khác nhau cũng gây khó khăn cho việc thiết lập các quy trình thích hợp để triển khai chương trình cơ sở kỹ thuật đảo ngược. Mặc dù bài viết này không mô tả tất cả các công cụ và kỹ thuật được sử dụng trong bối cảnh này, nhưng nó có thể là điểm khởi đầu để khám phá lĩnh vực này.้
