Registry trong Windows• Registry là một hệ thống thông tin liên quan máy tính trong hệ điều hành Windows • Registry lưu tất cả các thông tin về phần cứng, phần mềm, những lựa chọn của
Trang 2Tại sao cần phải điều tra hệ điều hành của máy tính
• Hệ điều hành là phần mềm chạy trên máy tính, dùng
để điều hành, quản lý các thiết bị phần cứng và
các tài nguyên phần mềm trên máy tính.
• Các thông tin sử dụng máy tính sẽ được ghi nhận
bởi hệ điều hành và điều tra viên cần phải tìm hiểu.
• Điều tra viên cần có hiểu biết về các Hệ điều hành trên máy tính để khi điều tra có thể tìm kiếm các
bằng chứng có liên quan.
• Một số hệ điều hành thông dụng cài đặt trên máy
tính như: Windows, Linux, Mac OS
Trang 4Filesystem trong Windows
• Windows hỗ trợ hai hệ thống tập tin chính: FAT và NTFS
• FAT16 là File system có từ lâu, từ thời MS-DOS và những phiên bản đầu tiên của Windows như
Windows 3.1.
• FAT32 xuất hiện cùng với bản Windows 95 OEM Service Release 2 (OSR2), có không gian địa chỉ 32 bit
• NTFS (New Technology File System), là hệ thống tập tin tiêu chuẩn của Windows NT, bao gồm cả
các phiên bản sau này của Windows.
Trang 5Registry trong Windows
• Registry là một hệ thống thông tin liên quan máy
tính trong hệ điều hành Windows
• Registry lưu tất cả các thông tin về phần cứng, phần mềm, những lựa chọn của người dùng
• Điều tra viên kiểm tra được nội dung của Registry là yêu cầu tất yếu để biết đối tượng sử dụng máy tính của mình ra sao.
• Con người có có thể nói dối nhưng Registry thì
không nói dối.
Trang 6Registry là gì
• Registry là một cơ sở dữ liệu dùng để lưu trữ mọi thông số
kỹ thuật của Hệ điều hành Windows
• Khi một phần cứng hoặc phần mềm mới được cài đặt trong Windows, nó sẽ lưu trữ cấu hình vào trong registry
• Windows đọc các cấu hình trong registry và biết được trình điều khiển nào cần được tải, cài đặt nào cần được áp dụng,
và nguồn lực nào cần được phân bổ để thiết bị có thể làm việc
• Registry ghi nhận tất cả các thông tin khi có thay đổi hoặc chỉnh sửa trong Menu Settings, Control Panel
• Có thể sử dụng các phần mềm như Regedit, Reg,
Forensic Registry EDitor
Trang 7Forensic Registry EDitor
Forensic Registry Editor là phần mềm mã nguồn mở được viết bởi Daniel Gillen trên Linux, Windows cho phép xem và tìm kiếm chứng
cớ số trên các vùng ẩn chức Registry
Trang 8Nguồn gốc của Registry
• Trước khi có Windows Registry: (DOS, Windows 3.x),
thông tin Hệ điều hành chứa trong các tập tin INI
• SYSTEM.INI - Tập tin này kiểm soát tất cả các phần cứng trên hệ thống máy tính
WIN.INI - Tập tin này kiểm soát tất cả các màn hình và các ứng dụng trên hệ thống
• Các ứng dụng khác sử dụng các tập tin INI riêng được liên kết với WIN.INI
• Từ Windows 9x/NT 3.5 đã đưa ra hệ thống Registry quản lý trên các tập tin System.dat, và User.dat
Trang 9Thông tin thu thập từ Registry
• Cấu hình hệ thống
• Thiết bị trên hệ thống
• Tên người dùng
• Thiết lập cá nhân và Tuỳ chọn cho trình duyệt
• Hoạt động duyệt web
• Các file được mở
• Các chương trình được thực hiện
• Các mật khẩu
Trang 10Windows 9x
system.dat C:\Windows File bảo mật lưu trữ
tất cả người dùng.
Tất cả các chương trình cài đặt và thiết lập
Trang 11Tập tin bảo mật chứa thông tin sử dụng mới nhất
Cài đặt ưu tiên của người
sử dụng
Default \Windows\system32\config Các thiết lập hệ thống
chuẩn (System settings) SAM \Windows\system32\config Quản lý tài khoản người
dùng và thiết lập bảo mật Security \Windows\system32\config Thiết lập bảo mật
(Security settings) Software \Windows\system32\config Tất cả các chương trình
cài đặt và các thiết lập System \Windows\system32\config Các thiết lập hệ thống
(System settings)
Trang 13Cấu trúc của Registry
• Registry có cấu trúc cây, giống cấu trúc cây thư mục trong cửa sổ Windows Explorer
• Thông thường có 5 nhánh chính Mỗi nhánh được giao
nhiệm vụ lưu giữ những thông tin đặc trưng riêng biệt
• Trong các nhánh chính bao gồm rất nhiều khoá và cũng được phân ra để lưu giữ những thông tin đặc trưng riêng
• Các khoá (K.@.y) chứa các giá trị (Value) là nơi trực tiếp lưu giữ các thông tin, tương tự như tập tin là nơi trực tiếp lưu giữ dữ liệu vậy
Trang 14Nội dung của Registry
• Root Keys
• HKEY_CLASSES_ROOT (HKCR): Lưu những thông tin dùng
chung cho toàn bộ hệ thống như kiểu tập tin, các menu, các dữ liệu về hệ thống thường chứa những liên kết đến các file thư viện liên kết động dll
• HKEY_CURRENT_USER (HKCU): Lưu những thông tin về phần mềm, các lựa chọn, các thiết lập của người dùng đang Logon
• HKEY_LOCAL_MACHINE (HKLM): Lưu những thông tin về hệ thống, phần cứng, phần mềm dùng chung cho tất cả các người dùng.
• HKEY_USERS (HKU): Lưu những thông tin của tất cả các User, mỗi user là một khoá với tên là số ID của user đó, chứa những thông tin đặc trưng của từng User, nó bổ trợ cho nhánh HKEY_CURRENT_USER.
• HKEY_CURRENT_CONFIG (HKCC): Lưu thông tin về phần cứng, các thiết bị ngoại vi, các trình điều khiển (drivers) đang dùng
Trang 15Các kiểu dữ liệu dùng trong Registry
• REG_BINARY: Kiểu nhị phân 32 BIT
REG_DWORD: Kiểu Double Word cho phép người dùng nhập theo cơ số 16 (HEX) hoặc cơ số 10 (DECIMAL)
REG_EXPAND_SZ: Kiểu chuỗi mở rộng đặc biệt VD:
"%SystemRoot%" thay cho đường dẫn Windows\System32 REG_MULTI_SZ: Một kiểu dữ liệu cho phép người dùng nhập nhiều chuỗi, phân biệt bằng phím Enter để cách dòng REG_SZ: Kiểu chuỗi thông thường
Trang 16Điều tra trong Registry
• Các Registry Keys lưu thời gian biến đổi cuối cùng (modified time-stamp)
• Các time-stamp phải sửa dưới dạng Binary
• Thu thập các thông tin liên quan đến địa chỉ Website
• Thu thập các thông tin liên quan đến người dùng – đặc biệt là các user dùng để chat trong Yahoo
Messenger, ICQ,
Trang 17Các địa chỉ Websites
Websites
Trang 18Điều tra trong Yahoo messenger
• Thông tin các phòng chat
• Danh tính người dùng thay thế
• Người dùng đăng nhập cuối cùng
• Mật khẩu (có mã hóa)
• Các liên lạc gần đây
• Tên đăng ký hiện trên màn hình
Trang 19Các USB Devices
Trang 20Thông tin liên quan đến Mạng
• Các thông tin có thể thu thập từ Registry liên quan đến việc sử dụng Mạng của đối tượng:
• Local groups
• Local users
• Map network drive MRU
• Network Printers
Trang 21Thông tin liên quan đến Winzip
Trang 22Thông tin sử dụng cuối của đối tượng
• Danh sách các ứng dụng và tên tập tin được mở gần nhất trong Windows
Trang 23Thông tin về thời gian của hệ thống
• Thông tin như Timezone trên máy của đối tượng cũng là các thông tin mang lại các đầu mối hữu ích
Trang 24• Hệ điều hành Linux hiện có các nhánh Ubuntu,
Fedora, Linux Mint , và chủ yếu được phát triển
bởi cộng đồng mã nguồn mở trên khắp thế giới.
• Linux hiên sử dụng rộng rãi trên các Server và trên máy tính cá nhân với khá nhiều phần mềm
hỗ trợ phong phú.
Trang 25Hệ thống tập tin trong Linux
• Các hệ thống Linux hiện nay phần lớn sử dụng hệ thống tậptin Ext3 kế thừa từ Ext2 (mới nhất Ext4)
• Bên cạch Ext, còn có các hệ thống Linux khác:
• ReiserFS (Namesys): không còn sử dụng phổ biến.
• XFS (Silicon Graphics ): hệ thống HĐH IRIX xử lý các tập
tin rất lớn và thông lượng rất cao
• JFS (IBM): cho hệ điều hành AIX ,hạt nhân Linux.
• YAFFS2 và JFFS2 là hệ thống tập tin được thiết kế để sử
dụng trên flash và lưu trữ nhúng
25
Trang 26Các thành phần của hệ thống tập tin
• Super Block: là một cấu trúc được tạo tại vị trí bắt đầu hệ
thống tập tin Nó lưu trữ thông tin về hệ thống tập tin như:block-size, free block, thời gian gắn kết (mount) cuối cùngcủa tập tin
• Inode (256 byte): Lưu những thông tin về những tập tin
và thư mục được tạo ra trong hệ thống tập tin
• Storageblock: Là vùng lưu dữ liệu thực sự của tập tin
và thư mục Nó chia thành những Data Block Mỗi
block thường chứa 1024 byte Ngay khi tập tin chỉ có 1
ký tự thì cũng phải cấp phát 1 block để lưu nó
26
Trang 27Các loại tập tin trong Linux
• Tập tin dữ liệu: Đây là tập tin theo định nghĩa truyền
thống, nó là dữ liệu lưu trữ trên các thiết bị lưu trữ như đĩacứng, CD-ROM,…
• Tập tin thư mục: Thư mục không chứa dữ liệu, mà chỉ
chứa các thông tin của những tập tin và thư mục con trong
nó Thư mục chứa hai trường của một tập tin là tên tập tin
và inode number
27
Trang 2828
Trang 29Đơn vị dữ liệu - Data unit
• Đơn vị dữ liệu trong hệ thống tập tin Ext được gọi là khối(block)
• Kích thước mỗi block: 1, 2 hoặc 4K
• Mỗi khối có 1 địa chỉ và được mô tả trong bảng mô tả khối
• Khi ghi dữ liệu vào một khối, kernel Linux sẽ lấp đầy dữliệu vào các khối “zeros”
29
Trang 30Siêu dữ liệu - Metadata
Metadata: là dữ liệu mô tả file, nó cho biết vị trí lưu
trữ các file, kích thước file, thời gian đọc và ghi dữ liệu vào file, các thông tin điều khiển truy nhập.
• (M)odified: Là thời gian cập nhật các nội dung
của tập tin hoặc thư mục được sửa đổi.
• (A)ccessed: Được cập nhật khi các nội dung của
tập tin hoặc thư mục được đọc.
• (C)hanged: Mốc thời gian khi dữ liệu được
chỉnh sửa
• (D)eleted: Cập nhật khi tập tin bị xóa.
30
Trang 31Công cụ nhật ký - Journal Tools
• Là thành phần chỉ có trên Ext3 mà Ext2 không có
• Nhiệm vụ chính là ghi lại thay đổi metadata trên mỗi blockđược đánh thứ tự (sequence number)
• Journal bắt đầu với một block mô tả, sau đó tới 1 hay nhiềublock dữ liệu, cuối cùng là block xác nhận kết thúc(commit)
31
Trang 32Quản lý phân vùng trên Linux
• Một hệ thống Linux có 1 hoặc nhiều phân vùng được quản
lý bởi LVM (Logical volume Manager), được xác định bởilệnh fdisk -l
• Sự hiện diện của 1 phân vùng LVM được xác định bằngcách kiếm kiểu phân vùng 8e
32
Trang 33Tiến trình khởi động Linux và dịch vụ
Hiểu về quá trình khởi động của Linux rất quan trọng trongcông việc pháp chứng Quá trình khởi động được mô tả ngắngọn qua 4 bước như sau:
• Nạp bộ khởi động, tải kernel ở thư mục /boot
• RAM nạp tập tin init.d chứa trình điều khiển thiết bị vàmodule hệ thống tập tin
• Kernel nạp hệ thống phần cứng Sau đó, kernel nạp hệđiều hành và bắt đầu tiến trình /sbin/init
• Khi init khởi động, có 2 cách khởi động để hoàn tất quá
trình khởi động: System V và BSD.
33
Trang 34System V
• Cách khởi động phổ biến nhất của Linux
• Kẻ xâm nhập có thể tạo một script để duy trì liên tục truycập vào một hệ thống bị xâm nhập Ta nên xem sét cẩnthận tất cả các kịch bản tham gia vào quá trình khởi độngđược trong các cuộc điều tra xâm nhập
• VD: Level 3 sẽ cung cấp một môi trường giao diện điều
khiển, trong khi level 5 sẽ xuất ra một môi trường đồ họa
• Run level (1,2,3,5): mô tả các nhiệm vụ/ công cụ mà máytính sẽ thực hiện
• Đọc file /etc/inittab để xác định run level
34
Trang 35System V
• Mỗi mục runlevel thực sự là một liên kết mềm với một kịchbản trong file /etc/init.d, sẽ được bắt đầu hoặc dừng lại tùythuộc vào tên của liên kết
• Liên kết tên bắt đầu bằng “S” cho thấy thứ tự khởi động vàcác liên kết bắt đầu với “K” – kill (kết thúc)
35
Trang 362.2 BSD - Berkeley Software Distribution
• Quá trình BSD có một chút phức tạp hơn Init BSD đọc kịchbản tại /etc/rc xác định các dịch vụ hệ thống có thể chạy
• BSD đang được sử dụng bởi Slackware và Arch Linux
• Trong một số trường hợp đây là mức độ cấu hình init,nhưng vấn đề khác cũng có thể bổ sung ở /etc/rc.d
• Thông tin cấu hình được đọc /etc/rc.conf và các dịch vụ bổsung để chạy từ /etc/rc.local
36
Trang 37Các dịch vụ trên linux – Service
• Service (dịch vụ) thường được gọi là daemon là một
chương trình xác định chạy ở nền của hệ thống và thường là
không tương tác được(non-interactive).
• Để biết dịch vụ đang chạy ở chạy ở level nào:
Code: # /sbin/chkconfig – list
• Tất cả các hệ điều hành đều có một tập hợp các dịch vụ để
tự động thực thi nhiều hoạt động
• Các chương trình đó được sử dụng cho nhiều mục đích khác
nhau bao gồm: quản lý phần cứng (hardware), truy cập mạng (network access), theo dõi (monitoring), ghi log (logging).
37
Trang 38Hierarchy Standard (FHS)
• Tất cả tập tin/thư mục tồn tại dưới thư mục gốc “/”.
• Các hệ thống tập tin như ổ đĩa di động, máy chủ từ xa, đĩa cục bộ sẽ xuất hiện phân cấp và bên dưới hệ hệ thống thư mục gốc (root).
Hệ thống Filesystem phân cấp trong Linux
38
Trang 39Quyền và thuộc tính files
• Tập tin có thể: đọc (read), ghi (write), thực thi (exec)
• Khi thực hiện các công cụ pháp chứng phải đảm bảokhông làm ảnh hưởng đến giá trị của thuộc tính
• Thuộc tính có thể quan tâm khi điều tra gồm:
(A): không cập nhật
(a): chỉ thêm
(i): bất biến
(j): dữ liệu nhật ký được kích hoạt
• Quyền sở hữu tập tin, thư mục dựa vào UID (user id) GID(group id)
39
Trang 40Tập tin ẩn (Hidden files)
• Trên hệ thống Linux, các tập tin ẩn được sử dụng bằngcách thêm vào đầu tên của tập tin bằng một dấu chấm “.”
• Các tập tin ẩn và thư mục ẩn là cách rất thô sơ để che giấudữ liệu và không được sử dụng công khai
• Những tập tin mặc định sẽ không được hiển thị trong hầuhết các ứng dụng đồ họa và tiện ích dòng lệnh
40
Trang 41Thư mục /tmp (temp)
• /tmp được gọi là “bãi rác ảo” của hệ thống Linux
=> Là tiền đề cho kẻ tấn công đặt dữ liệu vào hệ thống trongkhi hầu hết người dùng không bao giờ kiểm tra sự tồn tạicác tập tin xấu trong thư mục này
• Tất cả người dùng có thể ghi dữ liệu ở thư mục này
• Nó thường được dùng cho các tập tin tạm thời của mộtuser cụ thể
41
Trang 42Mật khẩu người dùng trong Linux
• Thông tin liên quan đến tài khoản người dùng nằm trongfile “/etc/passwd”
• Tập tin /etc/passwd thường là tập tin khá dài, ngay cả trênmột hệ thống sử dụng độc lập
• Nguy cơ bảo mật khá lớn từ file passwd là tất cả ngườidùng trên hệ thống đều có thể đọc được
• Tập tin passwd chứa một danh sách người dùng và đườngdẫn đầy đủ cho thư mục chứa các tập tin cá nhân của họ
42
Trang 43 Id group của người dùng : 500
Tên đầy đủ của người sử dụng : (để trống)
Đường dẫn chính của thư mục người dùng:
/home/forensics
Chương trình chạy lúc đăng nhập ban đầu (thường là
shell mặc định của người dùng) : /bin/bash
43
Trang 44Tập tin /etc/shadow
Hash password của các tài khoản người dùng thường được lưutrữ trong file “/etc/shadow” để giới hạn phạm vi tấn công cụcbộ
root: $1$gsGAI2/j$jWMnLc0zHFtlBDveRqw3i/ :139:0:99999:7:::
Username : root
Mật khẩu đã được mã hóa: bôi đỏ
Số ngày mật khẩu thay đổi lần cuối: 139
Ngày tối thiểu thay đổi mật khẩu: 0
Số lần nhập mật khẩu tối đa : 9999
Số ngày cảnh báo hết hạn ngừơi sử dụng: 9
Ngày hết hạn tuyệt đối: 7
Dự trữ để dùng trong tương lai
44
Trang 45Thư mục Home và Log files
• Trên môi trường GNOME, các thư mục mặc định củangười dùng là : Desktop, Documents, Downloads, Music,Pictures, Public, Templates, Video
• Khi người dùng kết nối ssh với một máy chủ từ xa bằngtên máy hoặc địa chỉ IP và khóa công khai thì được ghinhận vào file ssh/known_hosts
• Ngoài ra: Thư mục ssh chứa các tập tin liên quan tới việc
sử dụng Secure Shell (ssh) của người dùng
45
Trang 46Thư mục Home
• Desktop: – Các thư mục nằm trên Desktop của người
dùng
• Documents: – Chứa các file tài liệu văn bản, bảng tính,
thuyết trình và các file tương tự
• Downloads: – Các tập tin tải về từ máy chủ từ xa.
• Music: – Vị trí mặc định lưu các file nhạc
• Pictures: – Vị trí mặc định lưu các file hình ảnh
• Public: –Tập tin được chia sẻ với những người
khác
• Templates: – Giữ các mẫu tài liệu.
• Videos: – Vị trí mặc định cho video
46
Trang 47Thư mục Home
• Ngoài các thư mục “user-accessible” còn có các tập tin
và các thư mục ẩn Một số có thể chứa dữ liệu pháp lý(được tự động tạo ra hoặc là do hành động của ngườidùng)
• Khi một tài khoản người dùng bị xóa khỏi hệ thống
Unix, các thư mục, tập tin lưu vết có thể còn sót lại Khi
đó tìm kiếm trong các thư mục bổ sung trong thư mục
“/home” có thể còn chứa dữ liệu người dùng cũ
47