Khi nói đến điều tra số, AmCache đóng một vai trò quan trọng trong việc xác định các hoạt động độc hại trong hệ thống Windows, cho phép xác định việc thực thi cả phần mềm lành tính và độc hại trên máy tính. AmCache được quản lý bởi hệ điều hành và ở thời điểm hiện tại, không có cách nào có thể sửa đổi hoặc xóa dữ liệu AmCache. Dựa trên báo cáo của Kaspersky, bài viết này trình bày một phân tích toàn diện về AmCache, khái quát rõ hơn về hoạt động bên trong của nó. Ngoài ra, bài viết giới thiệu một công cụ mới mang tên “AmCache-EvilHunter”, có thể được sử dụng bởi bất kỳ chuyên gia nào để dễ dàng phân tích tệp Amcache[.]hve và trích xuất IOC. Công cụ này cũng có thể truy vấn các nguồn cấp dữ liệu thông minh đã đề cập ở trên để kiểm tra phát hiện tệp độc hại.
TỔNG QUAN
Với AmCache, trong một tình huống ứng phó sự cố, nó có thể là chìa khóa để xác định các sự kiện xóa dấu vết (ví dụ mã độc tống tiền tự động xóa chính nó), cho phép các nhà phân tích tìm kiếm các mẫu do kẻ tấn công để lại, chẳng hạn như tên tệp và đường dẫn. Hơn nữa, AmCache lưu trữ các hàm băm SHA-1 của các tệp đã thực thi, cho phép các chuyên gia bảo mật tìm kiếm các nguồn cấp dữ liệu tình báo mối đe dọa công khai, chẳng hạn như OpenTIP, VirusTotal và tạo các tập luật để chặn cùng tệp này trên các hệ thống khác trên mạng
Bằng chứng thực thi về cơ bản rất quan trọng trong điều tra số và ứng phó sự cố, vì nó giúp các nhà điều tra tái hiện lại cách hệ thống được sử dụng trong quá trình xâm nhập. Các tính năng như Prefetch, ShimCache và UserAssist cung cấp manh mối về những gì đã được thực thi. AmCache cũng là một phương pháp để chứng minh việc thực thi, lưu trữ metadata cho biết sự hiện diện và thực thi của tệp, ngay cả khi tệp đã bị xóa hoặc sửa đổi. Một lợi thế của AmCache so với các bằng chứng số Windows khác, là nó lưu trữ hàm băm tệp, điều này cực kỳ hữu ích cho các nhà phân tích, vì nó có thể được sử dụng để tìm kiếm các tệp độc hại trên mạng, tăng khả năng xác định, ngăn chặn và loại bỏ hoàn toàn mối đe dọa.
GIỚI THIỆU VỀ AMCACHE
Application Activity Cache (AmCache) được giới thiệu lần đầu tiên trong Windows 7 và được tận dụng tối đa trong Windows 8 trở lên. Mục đích của nó là thay thế bộ nhớ đệm cũ RecentFileCache.bcf trong các hệ thống mới hơn. Không giống như phiên bản tiền nhiệm, AmCache bao gồm thông tin điều tra số có giá trị về việc thực thi chương trình, các tệp nhị phân đã thực thi và driver đã tải.
AmCache được lưu trữ dưới dạng tệp registry hive có tên Amcache.hve trong thư mục C:\Windows\AppCompat\Programs. Metadata được lưu trữ trong tệp này bao gồm đường dẫn tệp, dữ liệu nhà xuất bản, timestamp biên dịch, kích thước tệp và hàm băm SHA-1.
Điều quan trọng cần lưu ý là định dạng AmCache không phụ thuộc vào phiên bản hệ điều hành, mà phụ thuộc vào phiên bản thư viện (DLL) chịu trách nhiệm điền vào bộ nhớ đệm. Theo cách này, ngay cả các hệ thống Windows với các mức bản vá khác nhau cũng có thể có những khác biệt nhỏ về cấu trúc của các tệp AmCache. Các thư viện đã biết được sử dụng để điền vào bộ nhớ đệm này được lưu trữ %WinDir%\System32 với các tên sau: aecache.dll, aeevts.dll, aeinv.dll, aelupsvc.dll, aepdu.dll, aepic.dll.
Cần lưu ý rằng AmCache có những đặc điểm và hạn chế riêng: Chỉ tính toán hàm băm SHA-1 trên 31.457.280 byte đầu tiên (khoảng 31 MB) của mỗi tệp thực thi, do đó việc so sánh hàm băm được lưu trữ trực tuyến của nó có thể không thành công đối với các tệp vượt quá kích thước này. Hơn nữa, Amcache.hve không phải là log thực thi thực sự, nó ghi lại các tệp trong các thư mục được quét bằng Microsoft Compatibility Appraiser. Trong cùng thư mục, chúng ta có thể tìm thấy các tệp LOG bổ sung được sử dụng để đảm bảo Amcache.hve có tính nhất quán và hoạt động phục hồi: C:\Windows\AppCompat\Programs\Amcache.hve.*LOG1; C:\Windows\AppCompat\Programs\Amcache.hve.*LOG2. Tệp Amcache.hve có thể được thu thập từ hệ thống phân tích điều tra số bằng các công cụ như Aralez, Velociraptor hoặc Kape.
CẤU TRÚC AMCACHE.HVE
Tệp Amcache.hvel là một tổ hợp Windows Registry ở định dạng REGF, nó chứa nhiều khóa con lưu trữ các lớp dữ liệu riêng biệt. Một trình phân tích cú pháp Python đơn giản có thể được triển khai để lặp lại Amcache.hve và hiển thị các khóa của nó.
TỔNG QUAN
Với AmCache, trong một tình huống ứng phó sự cố, nó có thể là chìa khóa để xác định các sự kiện xóa dấu vết (ví dụ mã độc tống tiền tự động xóa chính nó), cho phép các nhà phân tích tìm kiếm các mẫu do kẻ tấn công để lại, chẳng hạn như tên tệp và đường dẫn. Hơn nữa, AmCache lưu trữ các hàm băm SHA-1 của các tệp đã thực thi, cho phép các chuyên gia bảo mật tìm kiếm các nguồn cấp dữ liệu tình báo mối đe dọa công khai, chẳng hạn như OpenTIP, VirusTotal và tạo các tập luật để chặn cùng tệp này trên các hệ thống khác trên mạng
Bằng chứng thực thi về cơ bản rất quan trọng trong điều tra số và ứng phó sự cố, vì nó giúp các nhà điều tra tái hiện lại cách hệ thống được sử dụng trong quá trình xâm nhập. Các tính năng như Prefetch, ShimCache và UserAssist cung cấp manh mối về những gì đã được thực thi. AmCache cũng là một phương pháp để chứng minh việc thực thi, lưu trữ metadata cho biết sự hiện diện và thực thi của tệp, ngay cả khi tệp đã bị xóa hoặc sửa đổi. Một lợi thế của AmCache so với các bằng chứng số Windows khác, là nó lưu trữ hàm băm tệp, điều này cực kỳ hữu ích cho các nhà phân tích, vì nó có thể được sử dụng để tìm kiếm các tệp độc hại trên mạng, tăng khả năng xác định, ngăn chặn và loại bỏ hoàn toàn mối đe dọa.
GIỚI THIỆU VỀ AMCACHE
Application Activity Cache (AmCache) được giới thiệu lần đầu tiên trong Windows 7 và được tận dụng tối đa trong Windows 8 trở lên. Mục đích của nó là thay thế bộ nhớ đệm cũ RecentFileCache.bcf trong các hệ thống mới hơn. Không giống như phiên bản tiền nhiệm, AmCache bao gồm thông tin điều tra số có giá trị về việc thực thi chương trình, các tệp nhị phân đã thực thi và driver đã tải.
AmCache được lưu trữ dưới dạng tệp registry hive có tên Amcache.hve trong thư mục C:\Windows\AppCompat\Programs. Metadata được lưu trữ trong tệp này bao gồm đường dẫn tệp, dữ liệu nhà xuất bản, timestamp biên dịch, kích thước tệp và hàm băm SHA-1.
Điều quan trọng cần lưu ý là định dạng AmCache không phụ thuộc vào phiên bản hệ điều hành, mà phụ thuộc vào phiên bản thư viện (DLL) chịu trách nhiệm điền vào bộ nhớ đệm. Theo cách này, ngay cả các hệ thống Windows với các mức bản vá khác nhau cũng có thể có những khác biệt nhỏ về cấu trúc của các tệp AmCache. Các thư viện đã biết được sử dụng để điền vào bộ nhớ đệm này được lưu trữ %WinDir%\System32 với các tên sau: aecache.dll, aeevts.dll, aeinv.dll, aelupsvc.dll, aepdu.dll, aepic.dll.
Cần lưu ý rằng AmCache có những đặc điểm và hạn chế riêng: Chỉ tính toán hàm băm SHA-1 trên 31.457.280 byte đầu tiên (khoảng 31 MB) của mỗi tệp thực thi, do đó việc so sánh hàm băm được lưu trữ trực tuyến của nó có thể không thành công đối với các tệp vượt quá kích thước này. Hơn nữa, Amcache.hve không phải là log thực thi thực sự, nó ghi lại các tệp trong các thư mục được quét bằng Microsoft Compatibility Appraiser. Trong cùng thư mục, chúng ta có thể tìm thấy các tệp LOG bổ sung được sử dụng để đảm bảo Amcache.hve có tính nhất quán và hoạt động phục hồi: C:\Windows\AppCompat\Programs\Amcache.hve.*LOG1; C:\Windows\AppCompat\Programs\Amcache.hve.*LOG2. Tệp Amcache.hve có thể được thu thập từ hệ thống phân tích điều tra số bằng các công cụ như Aralez, Velociraptor hoặc Kape.
CẤU TRÚC AMCACHE.HVE
Tệp Amcache.hvel là một tổ hợp Windows Registry ở định dạng REGF, nó chứa nhiều khóa con lưu trữ các lớp dữ liệu riêng biệt. Một trình phân tích cú pháp Python đơn giản có thể được triển khai để lặp lại Amcache.hve và hiển thị các khóa của nó.
Hình 1. Khóa AmCache
Theo Kaspersky, các khóa cần quan tâm nhất là InventoryApplicationFile, InventoryApplication, InventoryDriverBinary, và InventoryApplicationShortcut, được mô tả chi tiết trong các tiểu mục sau:
InventoryApplicationFile
Khóa InventoryApplicationFile rất cần thiết để theo dõi mọi tệp thực thi được phát hiện trên hệ thống. Với khóa này, mỗi tệp thực thi được biểu diễn bằng một khóa con có tên duy nhất, lưu trữ metadata chính sau:
- ProgramId: Một mã băm duy nhất được tạo từ tên nhị phân, phiên bản, nhà xuất bản và ngôn ngữ, với một số số 0 được thêm vào đầu mã băm.
- FileID: Băm SHA-1 của tệp, với bốn số 0 được thêm vào đầu băm.
- LowerCaseLongPath: Đường dẫn chữ thường đầy đủ đến tệp thực thi.
- Name: tên cơ sở của tệp không có thông tin đường dẫn.
- OriginalFileName: Tên tệp gốc được chỉ định trong tài nguyên phiên bản của header PE, cho biết tên do nhà phát triển chỉ định tại thời điểm được build.
- Publisher: Thường được sử dụng để xác minh xem nguồn nhị phân có hợp lệ hay không. Đối với phần mềm độc hại, khóa con này thường để trống.
- Version: Phiên bản build hoặc phát hành cụ thể của tệp thực thi.
- BinaryType: Chỉ ra liệu tệp thực thi là tệp nhị phân 32 bit hay 64 bit.
- ProductName: Mô tả sản phẩm phần mềm.
- LinkDate: Timestamp biên dịch được trích xuất từ header PE.
- Size: Kích thước tệp tính bằng byte.
- IsOsComponent: Cờ boolean chỉ định tệp thực thi có phải là thành phần hệ điều hành tích hợp hay ứng dụng/thư viện của bên thứ ba không.
Với một số điều chỉnh đối với trình phân tích cú pháp Python gốc, hoàn toàn có thể đọc thông tin được lưu trữ trong khóa này.
Hình 2. Khóa con InventoryApplicationFile
Chúng ta cũng có thể sử dụng các công cụ như Registry Explorer để xem cùng dữ liệu bằng đồ họa:
Hình 3. InventoryApplicationFile được kiểm tra thông qua Registry Explorer
Như đã đề cập trước đó, AmCache chỉ tính toán hàm băm SHA-1 trên 31.457.280 byte đầu tiên. Để chứng minh điều này, các nhà nghiên cứu đã thực hiện một thử nghiệm nhỏ, trong đó họ đã thu được một tệp nhị phân nhỏ hơn 31 MB (Aralez) và một tệp lớn hơn giá trị này (một phiên bản tùy chỉnh của Velociraptor). Trong trường hợp đầu tiên, hàm băm SHA-1 của toàn bộ tệp nhị phân được lưu trữ trong AmCache.
Hình 4. Kịch bản lưu trữ AmCache SHA-1 đầu tiên
Đối với kịch bản thứ hai, các nhà nghiên cứu sử dụng tiện ích dd để trích xuất 31 MB đầu tiên của tệp nhị phân Velociraptor.
Hình 5. Tệp nhị phân bị lược bỏ
Hồng Đạt
Last edited:








