Giải pháp GoResolver cho phân tích phần mềm độc hại Golang

Sự gia tăng của Golang trong phát triển phần mềm độc hại

  • Độ phổ biến của Golang: Golang, hay Go, đã trở thành ngôn ngữ ưa chuộng của các nhà phát triển phần mềm độc hại nhờ khả năng tạo ra các tệp nhị phân có thư viện nhúng, khiến chúng khó phân tích hơn.
  • Thách thức trong việc làm nghịch đảo: Các kỹ sư phân tích thường gặp khó khăn trong việc phân tích các tệp nhị phân Golang do kích thước và độ phức tạp của chúng. Các công cụ obfuscation như Garble loại bỏ bảng dấu và ngẫu nhiên hóa tên, làm cho việc phân tích tĩnh thủ công trở nên mất thời gian và công sức.

Giới thiệu về GoResolver

  • Mục đích: GoResolver được phát triển để giải quyết các thách thức mà các công cụ obfuscators như Garble gây ra. Nó sử dụng kỹ thuật tương đồng đồ thị điều khiển để khôi phục tên hàm bị làm khó khăn và phục hồi thông tin về các dấu hiệu.
  • Các tính năng chính:
    • Khôi phục dấu hiệu: Lấy lại tên chức năng và gói bị làm khó khăn.
    • Phân tích đồ thị điều khiển: Xác định tính tương đồng của đồ thị để phục hồi thông tin dấu hiệu gốc.
    • Tích hợp với các công cụ phổ biến: Cung cấp plugin cho IDA Pro và Ghidra để tối ưu hóa quy trình làm việc.
    • Truy cập mã nguồn mở: Có sẵn để tải xuống trên GitHub, khuyến khích sự hợp tác và cải tiến liên tục.

Giải quyết vấn đề obfuscation của Garble

  • Tính chất làm khó khăn của Garble: Garble loại bỏ bảng dấu và ngẫu nhiên hóa tên, khiến việc phân tích phần mềm độc hại trở nên khó khăn. Tuy nhiên, GoResolver có thể sử dụng các mẫu này để suy ra danh tính gói và liên kết các chức năng với các gói tương ứng.
  • Dấu vết runtime: GoResolver vượt qua các hạn chế của obfuscation bằng cách ghi lại phiên bản runtime của Golang. Điều này cho phép công cụ xác định phiên bản Golang chính xác được sử dụng để biên dịch phần mềm độc hại, giúp phân tích nhị phân chính xác hơn.

Ví dụ thực tiễn

  • Trường hợp nghiên cứu: Volexity đã chứng minh khả năng của GoResolver bằng cách phân tích một tác nhân Stowaway bị obfuscation bằng Garble. Ban đầu, các tệp nhị phân được giải mã chứa các tên chung, làm phức tạp phân tích. Khi gửi tới GoResolver, công cụ xác định phiên bản Golang qua dấu vết runtime và giải quyết các dấu hiệu obfuscated. Sử dụng tính tương đồng đồ thị điều khiển, GoResolver đã phục hồi được các tên hàm có nghĩa và mối liên hệ gói, cho phép các nhà phân tích tập trung vào logic cốt lõi của phần mềm độc hại.

Kế hoạch tương lai

  • Các cải tiến: Volexity dự định mở rộng khả năng của GoResolver, bao gồm các tính năng như phân tích chuỗi Golang tự động và phân tích nhị phân được cải thiện. Công cụ này có sẵn để tải xuống trên GitHub, và kho lưu trữ sẽ tiếp tục được cập nhật với các tính năng và cải tiến mới.

GoResolver là một công cụ mạnh mẽ cho các chuyên gia an ninh mạng đối phó với phần mềm độc hại Golang, đảm bảo cái nhìn sâu sắc hơn và phân tích nhanh hơn để chống lại các mối đe dọa mới nổi một cách hiệu quả.