Tiếp tục series về Registry, ở bài trước mình có trình bày về khái niệm, cấu trúc và vị trí của Registry, phần tiếp theo này mình sẽ chia sẻ thêm về một số hive, thông tin về registry khá hữu ích.

Phần này sẽ sử dụng công cụ Registry Explorer, đây là công cụ của tác giả Eric Zimmerman là một chương trình hoàn toàn miễn phí, mã nguồn mở cho phép ta kiểm tra Registry. Registry Explorer có thể duyệt một registry hive, đánh dấu các hiện vật quan trọng, tự động phân tích cú pháp các khóa thông qua các plugin và hiển thị các khóa đã xóa và unallocated space của registry hive. Các bạn có thể tải tools tại: https://ericzimmerman.github.io/#!index.md

1.     Registry Hive Transaction Logs

Tập tin có đuôi .LOGx được sử dụng bởi Windows registry; chứa những thay đổi đã được thực hiện đối với registry của người dùng theo thời gian. VD: tệp ntuser.dat.log1 chứa nhật ký các thay đổi được thực hiện đối với registry file cho tài khoản người dùng.

Bộ nhớ đệm của hệ điều hành Windows ghi vào registry ở hai vị trí. Đầu tiên là trong bộ nhớ và thứ hai là trên đĩa trong transaction log file. Transaction log được đặt tên theo HIVENAME.LOG1 và HIVENAME.LOG2 nằm trong cùng thư mục với registry hive file.

Khi hệ điều hành Windows sửa đổi khóa hoặc giá trị trong registry hive file, điều đó xảy ra trước tiên trong bộ nhớ. Tuy nhiên, khi các thay đổi được ghi vào đĩa, nó được gọi là “hive flush”. Bắt đầu từ Windows 8 trở lên, dữ liệu tạm thời được ghi vào transaction log file và liên tục nối các log file. Nó không ghi trực tiếp vào tệp hive ngay lập tức, nó ghi vào hive file khi hệ thống không được sử dụng, tắt máy hoặc khi một giờ đã xảy ra kể từ lần ghi cuối cùng vào tệp hive chính. Điều này đã dẫn đến việc ghi vào đĩa ít hơn nhiều và dường như đã cải thiện hiệu suất của hệ điều hành bằng cách giảm việc ghi liên tục vào registry hives.

Điều đó có nghĩa là hầu hết các thay đổi gần đây đối với registry có thể nằm trong transaction log file và không được tìm thấy trong tệp hive mà bạn có thể đang kiểm tra. Hầu hết các công cụ forensic registry không thực hiện kiểm tra này hoặc cảnh báo bạn về vấn đề này. Điều này đặc biệt thú vị nếu bạn đang cố gắng theo dõi người dùng gần đây hoặc quá trình tương tác bên trong hệ điều hành Windows. Nhiều công cụ forensic không đưa vào tính toán dữ liệu được lưu trữ trong transaction log file và đặc biệt là trên hệ thống Windows 8, nó có thể bị thiếu dữ liệu đã xảy ra do những thay đổi gần đây trên hệ thống.

Nếu sử dụng Registry Explorer để load hive lên thì nếu thiếu file transaction logs, nó sẽ hiển ra thông báo nhắc như sau:

2.     Backup hives

Hệ điều hành Windows backs những file hive mặc định 10 ngày một lần. Nó sẽ sao chép SAM, DEFAULT, SYSTEM, SOFTWARE và SECURITY hives vào %WinDir%\System32\Config\RegBack đối với Win Vista trở đi  và %WinDir%\repair đối với Win XP . Backup hive này có thể hữu ích khi kiểm tra sự thay đổi của cấu hình so với bản update trước đó hay trong trường hợp hive bị “hỏng” (corrupted).

Ngoài ra, lưu ý rằng nó không cung cấp bản sao NTUSER.DAT hive cục bộ của người dùng.

3.     Registry Key Last Write Time

Một trong những điều sẽ giúp ích cho người điều tra rất nhiều là thực tế là mỗi registry key sẽ có thời gian ghi cuối cùng (last Write Time) hoặc thời gian sửa đổi cuối cùng (last time of modification).

Last Write Time được gán cho key trên máy. Được nhúng vào chính registry, đánh dấu thời gian của bản cập nhật cuối cùng của bất kỳ giá trị quan trọng nào sẽ được lưu trữ. Giá trị này, thường được hiển thị theo UTC. Giá trị này rất quan trọng đối với các cuộc điều tra số.

Ví dụ: bạn có thể thấy lần cuối cùng đối tượng tìm kiếm các tệp có chứa các từ nhất định liên quan đến dự án SECRET. Việc biết thời gian xảy ra điều này và ghép nối dữ liệu đó với các dữ kiện hệ thống khác như khi người dùng đăng nhập và liệu các tệp có được sao chép qua khóa USB hay không sẽ bắt đầu một câu chuyện hấp dẫn.

Hãy nhớ rằng, Last Write Time được cập nhật khi một giá trị được cập nhật hoặc thêm vào khóa. Các khóa khác nhau được cập nhật ở các điểm khác nhau tùy thuộc vào cách chương trình được viết.

Lưu ý: việc chuyển đổi múi giờ trong khi phân tích. Kiểm tra rằng giá trị bạn đang kiểm tra là UTC hay được đặt theo múi giờ của máy cục bộ.

4.     MRUList – Most Recently Used List

MRU là viết tắt của Most Recently Used. Trong registry, MRULists là một Key Value theo dõi những bổ sung gần đây nhất vào registry key để Key Value có thể xác định thứ tự dữ liệu được thêm vào key. Điều này có thể được sử dụng nội bộ vì nhiều lý do đối với hệ điều hành của Microsoft, đối với forensic, điều này khá hữu ích.

Biết chính xác thứ tự mà các value quan trọng đã được thêm vào máy sẽ giúp xác định thứ tự hoạt động cho một tác vụ cụ thể. Mỗi MRUlist có định dạng riêng. Trong hầu hết các trường hợp, nó lưu trữ MRUlist bằng một giá trị 4 byte. Một số key giữ tới 150 giá trị trong MRU list trong khi những khóa khác chẳng hạn như RecentDocs .docx subkey chỉ giữ 10 (XP-Win8) và 20 (Winl0). MRUlist rất quan trong đối với người điều tra để cho người điều tra biết thứ tự của dữ liệu chứa một key cụ thể. The last write time của key sẽ là thời điểm xuất hiện giá trị mục MRUlist đầu tiên.

Như ví dụ trong hình, thứ tự sẽ là 0C, 3E, 13…. Hầu hết các công cụ forensic sẽ tự động đọc MRUlist và đặt dữ liệu của bạn theo thứ tự tạm thời cho bạn – thường là theo thứ tự từ gần đây nhất đến cũ nhất.

MRU list chứa các entries do người dùng thực hiện các hành động cụ thể. Có rất nhiều MRU Lists nằm trong các Registry key khác nhau. Registry duy trì danh sách các mục này trong trường hợp người dùng quay lại chúng trong tương lai. Về cơ bản, nó tương tự như cách lịch sử và cookie hoạt động với trình duyệt web.

Có sự khác biệt khi xem registry thông qua trình chỉnh sửa registry trên máy trực tiếp (regedit.exe) so với phân tích cú pháp một tệp hive đã được khôi phục trên máy phân tích. Trên thực tế, nó chỉ khác ở phần mở đầu của key. Nói chung, khi bạn thực thi regedit.exe, bạn sẽ thấy các registry hive được thể hiện đúng theo tên của chúng (HKEY _CURRENT_ USER). Tuy nhiên, khi bạn đang làm việc offline, các registry file sẽ cần được tải thủ công vào trình registry viewer and examined. Thông thường, bạn thực hiện điều này bằng cách trỏ trình registry viewer đến vị trí trên image (thường là thư mục chính của người dùng hoặc C:\Windows\System32\config).

5.     Delete Registry Key

Registry hive có unallocated space tương tự như hệ thống tệp.

Khi hive key bị xóa, nó sẽ được đánh dấu là unallocated space.

Có thể khôi phục các key chưa được unallocated.

  • Keys
  • Value
  • Timestamps

Thiếu công cụ anti-forensic để wipe hoàn toàn unallocated Registry hive data.

Có thể Khôi phục các khóa đã xóa.

  • Displays
  • Hive Unallocated Space
  • Deleted Keys

Tương tự như hệ thống tệp, Registry hive có các vùng allocated data. Khi registry key bị xóa, khóa chỉ đơn giản là không được phân bổ tương tự như một tệp và điều này làm cho nó có thể khôi phục được bằng các công cụ forensic. Đối với nhiều người, việc khôi phục dữ liệu khóa đã xóa gần như không thể thực hiện được vì công cụ để thực hiện tác vụ này bị hạn chế.

Trong nhiều trường hợp, các khóa bị xóa là kết quả của việc sử dụng privacy cleaners, gỡ cài đặt chương trình và xóa lịch sử trình duyệt. Trường hợp registry key bị xóa vì những người dùng cố gắng che dấu vết của họ trên Hệ điều hành Windows. Deleted registry key\data sẽ vẫn còn trong unallocated space của registry hive cho đến khi chúng bị ghi đè. Tại thời điểm này, có vẻ như chưa có một công cụ anti-forensic nào có thể xóa sạch unallocated space của registry hive, nên việc có thể khôi phục hiện vật quan trọng này là rất khả thi. Các khóa đã xóa thường sẽ vẫn mang nhiều thông tin, nếu một khóa có thể khôi phục được, thì rất có thể dữ liệu liên quan cũng sẽ có thể được khôi phục.

Hôm nay mình sẽ dừng lại ở đây, qua hai bài đầu về registry này các bạn có thể có cái hình tổng quan về Registry và từ phần sau sẽ là những bài về phần tích chúng.

By,

T4fi_RE_Team

148 lượt xem