Tìm hiểu một số kỹ thuật thu thập và phân tích thông tin an ninh mạng từ bộ nhớ máy tính Digital Forensics (điều tra số) là một nhánh của ngành khoa học điều tra đề cập đến việc sử dụng các phương pháp, công cụ kỹ thuật khoa học đã được chứng minh để thu thập, bảo quản, phân tích, lập báo cáo và trình bày lại những thông tin thực tế từ các nguồn dữ liệu số với mục đích tạo điều kiện hoặc thúc đẩy việc tái hiện lại các sự kiện nhằm tìm ra hành vi phạm tội hay hỗ trợ cho việc dự đoán các hoạt động trái phép như cố ý xâm nhập, tấn công hoặc gây gián đoạn quá trình làm việc của hệ thống.
Trang 1HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA AN TOÀN THÔNG TIN
- -
BÀI TẬP LỚN
Đề tài:Tìm hiểu một số kỹ thuật thu thập và phân tích
thông tin an ninh mạng từ bộ nhớ máy tính
Lớp: L01
Sinh viên thực hiện:
Trần Thị Thanh Huyền
Vũ Thị Hương Nguyễn Thị Hồng Phạm Thị Quỳnh Phạm Bảo Yến
Giảng viên: Nguyễn Thị Hồng Hà
Hà Nội, 5/201
Trang 2Vì vậy, nhóm em đã lựa chọn đề tài “Tìm hiểu một số kỹ thuật thu thập và phân tích thông tin an ninh mạng từ bộ nhớ máy tính” để tìm hiểu về một số kỹ thuật thu thập và phân tích các thống tin an ninh mạng lấy được từ bộ nhớ của máy tính cũng như triển khai hướng giải quyết
Trang 3Chương này sẽ áp dụng các quy trình kỹ thuật ở các phần trên để tiến hành điều tra thu thập, phân tích thông tin từ bộ nhớ máy tính Mặc dù đã cố gắng nhưng do kiến thức và thời gian còn nhiều hạn chế nên chắc chắn đề tài không khỏi có những thiếu sót, chúng em rất mong nhận được những ý kiến đóng góp của thầy cô và các bạn sinh viên để chúng em
có thể tìm hiểu sâu hơn về đề tài này
Chúng em xin chân thành cảm ơn!
Trang 4MỤC LỤC
LỜI MỞ ĐẦU 1
DANH MỤC HÌNH ẢNH 5
CHƯƠNG I – TỔNG QUAN VỀ THU THẬP VÀ PHÂN TÍCH THÔNG TIN AN NINH MẠNG TỪ BỘ NHỚ MÁY TÍNH 7
1.1 Giới thiệu về điều tra số 7
1.2 Giới thiệu phân tích điều tra bộ nhớ máy tính 8
1.3 Giới thiệu về thu thập bộ nhớ máy tính 9
1.4 Vai trò và ứng dụng của thu thập và phân tích bộ nhớ máy tính 10
1.5 Quy trình thu thập và phân tích thông tin từ bộ nhớ máy tính 10
1.5.1 Kiểm tra xác minh 11
1.5.2 Mô tả hệ thống 12
1.5.3 Thu thập chứng cứ 12
1.5.4 Thiết lập mốc thời gian và phân tích 12
1.5.5 Phân tích phương tiện truyền dữ liệu 13
1.5.6 Khôi phục dữ liệu 13
1.5.7 Tìm kiếm chuỗi 13
1.5.8 Lập báo cáo 14
CHƯƠNG II – MỘT SỐ KỸ THUẬT VÀ CÔNG CỤ THU THẬP VÀ PHÂN TÍCH THÔNG TIN AN NINH MẠNG TỪ BỘ NHỚ MÁY TÍNH 15
2.1 Các kỹ thuật sử dụng trong thu thập và phân tích thông tin từ bộ nhớ máy tính 15
2.1.1 Thu lại bộ nhớ khả biến 15
2.1.2 Xác định nơi tìm bộ nhớ khả biến 16
2.1.3 Liệt kê các tiến trình đang được thực thi 16
2.1.4 Liệt kê các kết nối mạng có trong hệ thống 16
2.1.5 Phục hồi các tập tin ánh xạ trong bộ nhớ 17
2.1.6 Phân tích ngược tập tin chứa mã độc 17
2.1.7 Phân tích registry 18
Trang 52.2 Một số công cụ 19
2.2.1 Volatility 19
2.2.2 DFF - Digital Forensic Framework 20
2.2.3 The Sleuth Kit và Autospy 21
2.2.4 SANS Investigate Forensic Toolkit (SIFT) 22
3.1 Xây dựng bài toán 24
3.2 Lựa chọn công nghệ 24
3.2.1 Quy trình thực hiện: 24
3.2.2 Các công cụ sử dụng để thu thập, phân tích: 25
3.3 Thu thập chứng cứ và phân tích 26
3.3.1 Xác định hệ thống tiến hành kiểm tra, xác định môi trường thực sự đang được phân tích 26
3.2.1 Phân tích tiến trình 26
3.2.2 Phân tích mạng 33
3.2.3 Phân tích Registry 36
3.2.4 Phân tích Kernel Memory và Objects 38
3.3 Báo cáo kết quả đạt được 41
KẾT LUẬN 43
TÀI LIỆU THAM KHẢO 44
Trang 6DANH MỤC HÌNH ẢNH
Hình 1.1: Sơ đồ quy trình điều tra bộ nhớ 11
Hình 2.1: Kiểm tra các kết nối mạng 17
Hình 2.2: Các plugins mà volatility hỗ trợ 19
Hình 2.3: Giao diện VolUtility 20
Hình 2.4: Giao diện của DFF 21
Hình 2.5: Giao diện công cụ The Sleuth Kit 22
Hình 2.6: Giao diện SANS SIFT 23
Hình 3.1: Thông tin hệ thống cần điều tra 26
Hình 3.2: Module pslist trong Volatility 27
Hình 3.3: Module pslist trong Volatility(2) 27
Hình 3.4:Các tiến trình trong bộ nhớ 28
Hình 3.5:Các tiến trình trong bộ nhớ(2) 28
Hình 3.6: Tiến trình cha/con 29
Hình 3.7:Tiến trình cha/con(2) 29
Hình 3.8: Tham số các tiến trình 30
Hình 3.9: Các thư viện dll mà tiến trình executable40684e80.exe sử dụng 30
Hình 3.10: Trích xuất chương trình từ tiến trình 31
Hình 3.11: Kết quả scan virustotal executable40684e80.exe 31
Hình 3.12: Kết quả scan virustotal shell.exe 32
Hình 3.13: Kết quả scan virustotal xmrig.exe 33
Hình 3.14: Module netscan 34
Hình 3.15: Thông tin ip 108.61.164.63 35
Hình 3.16: Địa chỉ ảo và vật lý của Registry 36
Hình 3.17: In giá trị trong Registry 37
Hình 3.18: Dump dữ liệu tài khoản trong registry 37
Trang 7Hình 3.19: Dump Isa 38
Hình 3.20: Các hoạt động của người dùng 38
Hình 3.21: Danh sách trình điều khiển 39
Hình 3.22: Danh sách các driver được nạp 39
Hình 3.23: danh sách file object 40
Hình 3.24: Liên kết Symlink 41
Trang 8CHƯƠNG I – TỔNG QUAN VỀ THU THẬP VÀ PHÂN TÍCH THÔNG TIN AN
NINH MẠNG TỪ BỘ NHỚ MÁY TÍNH 1.1 Giới thiệu về điều tra số
Digital Forensics (điều tra số) là một nhánh của ngành khoa học điều tra đề cập đến việc sử dụng các phương pháp, công cụ kỹ thuật khoa học đã được chứng minh để thu thập, bảo quản, phân tích, lập báo cáo và trình bày lại những thông tin thực tế từ các nguồn
dữ liệu số với mục đích tạo điều kiện hoặc thúc đẩy việc tái hiện lại các sự kiện nhằm tìm
ra hành vi phạm tội hay hỗ trợ cho việc dự đoán các hoạt động trái phép như cố ý xâm nhập, tấn công hoặc gây gián đoạn quá trình làm việc của hệ thống
Mục đích quan trọng nhất của điều tra số là thu thập, phân tích và tìm ra chứng cứ thuyết phục về một vấn đề cần sáng tỏ Điều tra số có những ứng dụng quan trọng trong khoa học điều tra cụ thể
Về mặt kỹ thuật thì điều tra số giúp xác định những gì đang xảy ra làm ảnh hưởng tới hệ thống đồng thời qua đó phát hiện các nguyên nhân hệ thống bị xâm nhập, các hành
vi, nguồn gốc của các vi phạm xảy ra đối với hệ thống
Một số loại hình điều tra số phổ biến:
- Registry Forensics: Đây là loại hình điều tra liên quan đến việc trích xuất thông tin và ngữ cảnh từ một nguồn dữ liệu chưa được khai thác qua đó biết được những thay đổi (chỉnh sửa, thêm bớt…) dữ liệu trong Register
- Disk Forensics: Là việc thu thập, phân tích dữ liệu được lưu trữ trên phương tiện lưu trữ vật lý, nhằm trích xuất dữ liệu ẩn, khôi phục các tập tin bị xóa, qua đó xác định người đã tạo ra những thay đổi dữ liệu trên thiết bị được phân tích
- Mobile forensics: Là loại hình điều tra được thực hiện trên các thiết bị di động, thiết bị PDA, GPS, máy tính bảng, nhằm thu thập dữ liệu, các chứng
cứ kỹ thuật số
Trang 9- Application Forensics: Là loại hình điều tra phân tích các ứng dụng chạy trên
hệ thống như Email, dữ liệu trình duyệt, skype, yahoo… Qua đó trích xuất các bản ghi được lưu trữ trên các ứng dụng phục vụ cho việc điều tra tìm kiếm chứng cứ
- Network Forensics: Là một nhánh của digital forensics liên quan đến việc theo dõi, giám sát, phân tích lưu lượng mạng máy tính nhằm phục vụ cho việc thu thập thông tin, sự kiện liên quan, tìm kiếm chứng cứ pháp lý, mục đích là phát hiện sự bất thường, các dấu hiệu xâm nhập trên môi trường mạng
- Memory Forensics: Là phương thức điều tra máy tính bằng việc ghi lại bộ nhớ khả biến (bộ nhớ RAM) của hệ thống sau đó tiến hành phân tích làm rõ các hành vi đã xảy ra trên hệ thống Cụ thể hơn, đó là cố gắng sử dụng kiến trúc quản lý bộ nhớ trong máy tính để ánh xạ, trích xuất các tập tin đang thực thi và cư trú trong bộ nhớ
1.2 Giới thiệu phân tích điều tra bộ nhớ máy tính
Memory Forensics là kỹ thuật điều tra máy tính bằng việc ghi lại bộ nhớ RAM của
hệ thống thời điểm có dấu hiệu nghi ngờ, hoặc đang bị tấn công để tiến hành điều tra, giúp cho việc xác định nguyên nhân cũng như các hành vi đã xảy ra trên hệ thống, cung cấp các chứng cứ phục vụ cho việc xử lý tội phạm
Kỹ thuật điều tra này được sử dụng khi quá trình phân tích tĩnh từ những gói tin thu được, cũng như các thông tin từ nhật ký hệ thống ghi lại, nhưng chưa xác định được nguồn gốc cũng như kỹ thuật tấn công, hoặc cung cấp các thông tin có được chưa đầy đủ, chưa đủ sức thuyết phục
Như chúng ta biết phân tích điều tra bộ nhớ RAM cũng giống như tất cả những nỗ lực điều tra số khác, nó liên quan đến việc thu thập thông tin, để có thể cung cấp các chứng
cứ như bằng chứng sử dụng trong điều tra hình sự Nhưng cụ thể hơn thì đây là kỹ thuật
mà người điều tra cố gắng sử dụng kiến trúc quản lý bộ nhớ trong máy tính để ánh xạ, trích xuất các tập tin đang thực thi và cư trú trong bộ nhớ vật lý của máy tính Những tập tin
Trang 10theo dõi nó đã diễn ra như thế nào Tính hữu ích của loại hình điều tra này đó là trong thực
tế, bất kỳ thông tin nào tìm thấy trong bộ nhớ RAM, sẽ được hiểu là gần đây nó đã được chạy trên hệ thống của nạn nhân
1.3 Giới thiệu về thu thập bộ nhớ máy tính
Sự thành công của phân tích thường phụ thuộc vào sự khởi đầu trong giai đoạn thu thập của cuộc điều tra Trong giai đoạn này, điều tra viên phải đưa ra quyết định về dữ liệu nào cần thu thập và phương pháp tốt nhất để thu thập dữ liệu đó Về cơ bản, thu thập bộ nhớ là sao chép nội dung của bộ nhớ vật lý sang thiết bị lưu trữ khác để bảo quản Các phương pháp và công cụ cụ thể được sử dụng thường phụ thuộc vào mục tiêu điều tra và đặc điểm của hệ thống đang điều tra
Một nhà điều tra kỹ thuật số tìm cách bảo vệ trạng thái của môi trường kỹ thuật số theo cách cho phép điều tra viên đạt được các suy luận chính xác thông qua phân tích Dữ liệu được lưu trữ trên đĩa và trong RAM cung cấp hai thành phần quan trọng nhất của môi trường đó.Quan điểm truyền thống về điều tra số tập trung vào giả định rằng độ tin cậy của các suy luận hoàn toàn phụ thuộc vào việc thu thập bằng chứng mà không thay đổi trạng thái của nó Ví dụ, các thủ tục xử lý bằng chứng thường được chấp nhận liên quan đến việc tắt hệ thống và tạo bản sao (ảnh) của dữ liệu trên thiết bị lưu trữ đĩa để phân tích ngoại tuyến Các quy trình và thủ tục chuyển đổi này tập trung vào việc giảm thiểu sự thay đổi đối với các file dữ liệu hệ thống
Khi lĩnh vực kỹ thuậtđiều tra số đã phát triển, nó đã trở nên rõ ràng với việc lưu trữ chọn lọc một số bằng chứng khi các chi phí bằng chứng quan trọng khác cũng có thể ảnh hưởng đến độ chính xác của suy luận được đưa ra Điều này đặc biệt quan trọng khi các tác nhân độc hại luôn tìm cách khai thác các hạn chế của kỹ thuật thu thập chứng cứ pháp y kỹ thuật số truyền thống Bằng cách so sánh dữ liệu từ nhiều nguồn (đĩa, mạng, bộ nhớ, v.v.) trong môi trường kỹ thuật số, chúng ta có thể hiểu rõ hơn về những gì đã xảy ra trên hệ thống so với góc nhìn hạn chế là chỉ tiếp nhận dữ liệu từ một bộ nhớ đĩa Với các nguồn thay thế này, chúng ta phải chấp nhận rằng tất cả các phương pháp chuyển đổi, bao gồm các thủ tục chuyển đổi đĩa truyền thống, sẽ dẫn đến một số biến dạng đối với môi trường
kỹ thuật số Các nhà điều tra phải hiểu được cách mà những thay đổi đó có thể tác động
Trang 11đến kết quả phân tích và thứ tự mà cần phải thu thập dữ liệu để giảm tác động đó Quá trình thực hiện thường được ưu tiên dựa trên thứ tự sự thay đổi giảm dần (tức là, bằng chứng cho thấy thay đổi nhanh hơn được thu thập trước những bằng chứng ổn định hơn)
Và thực tế, điều này có nghĩa là bằng chứng bộ nhớ khả biến cần được thu thập trước
1.4 Vai trò và ứng dụng của thu thập và phân tích bộ nhớ máy tính
Khoa học điều tra số đã chứng minh vai trò quan trọng của Memory Forensics, việc điều tra bộ nhớ RAM nơi mà dữ liệu luôn sẵn sàng để ghi lại và phân tích, cung cấp những chứng cứ rất có giá trị, nó vượt qua một số hạn chế của các phương pháp điều tra truyền thống (phân tích đĩa vật lý), giải quyết các vấn đề mà các công nghệ mới như mã hóa có thể gây ra khó khăn trong quá trình điều tra Những phương pháp phân tích truyền thống bị giới hạn bởi một số chỗ, ví dụ khi tiến hành phân tích chúng ta thường gặp khó khăn khi không truy cập được dữ liệu đã được mã hóa trừ khi chúng ta có thể bẻ khóa được mật khẩu của người dùng Mà như chúng ta cũng biết khóa và mật khẩu rất hiếm khi được lưu trữ trên đĩa Tuy nhiên nó được thiết nạp vào và được lưu trữ trong bộ nhớ RAM, vì vậy khi tiến hành phân tích bộ nhớ có thể cho phép chúng ta sử dụng các kỹ thuật và công cụ
để khôi phục mật khẩu và khóa mật mã một cách dễ dàng Một hạn chế khác nữa của phương pháp điều tra truyền thống đó là người phân tích sẽ không đủ khả năng trong việc khám phá những thông tin về các tiến trình đang chạy trong bộ nhớ, do đó dễ bỏ qua việc điều tra các ứng dụng, đang được hệ thống sử dụng tại thời điểm cuộc tấn công diễn ra, cũng như các dữ liệu được che giấu trong bộ nhớ Nhưng đối với Memory Forensics, thì đây là một việc khá dễ dàng
Ứng dụng chính của Memory Forensics là phân tích điều tra các cuộc tấn công máy tính sử dụng công nghệ cao, với những kỹ thuật tinh vi, đủ để tránh việc để lại các chứng
cứ trên ổ đĩa cứng của máy tính Chính vì vậy việc phân tích điều tra bộ nhớ RAM cho chúng ta cái nhìn sâu sắc nhất, chính xác nhất về những gì đang diễn ra trên hệ thống tại
thời điểm hệ thống đang bị tấn công
1.5 Quy trình thu thập và phân tích thông tin từ bộ nhớ máy tính
Sơ đồ mô tả quy trình điều tra bộ nhớ máy tính:
Trang 12Hình 1.1: Sơ đồ quy trình điều tra bộ nhớ
1.5.1 Kiểm tra xác minh
Khi bắt đầu quá trình điều tra thì nhiệm vụ đầu tiên chính là việc kiểm tra xác minh Việc kiểm tra xác minh cung cấp một cái nhìn bao quát về các thông tin được ghi lại bởi hệ thống, các ứng dụng ngăn chặn virus trên hệ thống hay các thiết bị mạng (firewall, IDS, router) Tuy nhiên, việc kiểm tra xác minh đôi khi cũng gặp phải một số tình huống khó khăn như:
- Hệ thống máy tính đột nhiên bị ngưng trệ và các phương tiện truyền thông bị đóng băng
- Hệ thống đang hoạt động với nguồn và các hoạt động (các tiến trình đang chạy, các kết nối mạng đang được kích hoạt)
Trang 13Khi gặp phải những trường hợp trên thì việc điều tra bộ nhớ phải rất cẩn thận để tránh phá hủy những thông tin dễ bị thay đổi (các tiến trình, bộ nhớ, kết nối mạng)
Giai đoạn này đòi hỏi chuyên viên điều tra phải sử dụng một bộ công cụ đơn giản và
có độ tin cậy cao để kiểm tra sự hiện diện của các kết nối bất thường, kiểm tra rookit, các thư mục lạ, các tập tin nhị phân mới được cài đặt
1.5.2 Mô tả hệ thống
Sau khi hoàn thành nhiệm vụ kiểm tra xác minh và chắc chắn có sự cố an ninh xảy
ra, chuyên viên điều tra sẽ tiến hành mô tả chi tiết các thông tin về hệ thống như đặc điểm phần cứng, phần mềm đang cài đặt trên hệ thống, danh sách người dùng và các thông tin khác
Một phần của những dữ liệu này sẽ được lấy ra khỏi hệ thống bằng cách sử dụng các phần mềm phục vụ cho quá trình điều tra, vì vậy việc điều tra không thể thực hiện ngay trên hệ thống được xem là mục tiêu tấn công được, bởi vì hệ thống có thể đã bị cài đặt các phần mềm độc hại
1.5.3 Thu thập chứng cứ
Đây là giai đoạn rất quan trọng trong quy trình thu thập và phân tích thông tin từ bộ nhớ máy tính Tất cả các thông tin máy tính có sẵn phải được đưa vào một môi trường điều tra an toàn để thực hiện công việc điều tra nhằm đảm bảo rằng chứng cứ thu được ban đầu
là toàn vẹn
Các dữ liệu thu được từ hệ thống (bộ nhớ, tiến trình, kết nối mạng, phân vùng đĩa) phải được ghi lại và ký mã bằng các thuật toán MD5 hoặc SHA1 Trước khi bắt đầu phân tích, chuyên viên điều tra phải kiểm tra độ tin cậy của các dữ liệu này dựa vào thông tin mà các chuỗi MD5 hay SHA1 cung cấp nhằm tránh việc gian lận và đặt hay làm giả chứng cứ đánh lạc hướng điều tra
1.5.4 Thiết lập mốc thời gian và phân tích
Sau khi thu thập xong chứng cứ, tiến hành thiết lập tập tin thời gian Đây là một tập tin dạng hình ảnh đầy đủ phục vụ hữu ích cho việc theo dõi các hoạt động của hệ thống (hiển thị thời gian cuối cùng của một tập tin thực thi được chạy, các tập tin/thư mục được
Trang 14tạo/xóa trong thời gian qua, đồng thời nó cũng chứng minh được sự hiện diện của các kịch bản đang hoạt động)
Quá trình thiết lập mốc thời gian bao gồm hai phần:
- Phần 1: tạo các tệp tin trung gian với tất cả các thông tin (dữ liệu và siêu dữ liệu) được lấy ra từ tập tin hình ảnh
- Phần 2: sắp xếp lại các dữ liệu đó theo thứ tự thời gian tăng dần
1.5.5 Phân tích phương tiện truyền dữ liệu
Từ các kết quả thu được bởi việc phân tích thời gian, tiến hành phân tích phương tiện truyền thông để tìm kiếm các đầu mối phía sau một hệ thống bị thỏa hiệp Bộ công cụ
có sẵn phục vụ cho việc phân tích phụ thuộc vào một số nhân tố sau:
- Nền tảng phần mềm được sử dụng trong máy tính phục vụ điều tra
- Nền tảng phần mềm được sử dụng trong các hệ thống mục tiêu của việc phân tích
- ……
Giai đoạn này, kiểm tra kỹ các lớp phương tiện truyền thông (vật lý, dữ liệu, siêu dữ liệu, hệ thống tập tin) nhằm tìm kiếm bằng chứng về việc cài đặt tập tin nhi phân đáng ngờ, các thư mục được thêm vào/gỡ bỏ
1.5.6 Khôi phục dữ liệu
Sau khi phân tích phương tiện truyền dữ liệu, chuyên viên điều tra hoàn toàn có thể tìm kiếm từ bộ nhớ đã được ghi lại và trích xuất ra các dữ liệu chưa được phân bố trong ngăn xếp, sau đó phục hồi bất kỳ tệp tin nào bị xóa
Tìm kiếm không gian trống (trong mỗi trường windows) hoặc tìm trong không gian chưa phân bố dữ liệu có thể khám phá nhiều tập tin phân mảnh, đó có thể là đầu mối của các hành động xóa tập tin, thời gian bị xóa,… Thời gian tập tin bị xóa là một trong những thông tin quan trọng liên quan đến các cuộc tấn công đã xảy ra trên hệ thống
1.5.7 Tìm kiếm chuỗi
Người phân tích tiến hành tìm kiếm các chuỗi cụ thể chứa bên trong các tập tin nhằm tìm được các thông tin hữu ích như địa chỉ IP, địa chỉ Email,…để từ đó truy tìm dấu
Trang 15vết tấn công Một danh sách chuẩn các từ khóa thường gặp có thể sẽ hữu ích để tìm ra những thông tin liên quan đến một hệ thống bị thỏa hiệp
1.5.8 Lập báo cáo
Tất cả các giai đoạn trên đều phải lập báo các mô tả chi tiết và dễ hiểu Các chuyên viên điều tra phải đưa ra các kỹ thuật điều tra, các công nghệ và các phương thức được sử dụng cũng như chứng cứ thu thập được, tất cả phải được giải thích rõ ràng trong báo cáo quá trình điều tra
Trang 16CHƯƠNG II – MỘT SỐ KỸ THUẬT VÀ CÔNG CỤ THU THẬP VÀ PHÂN TÍCH
THÔNG TIN AN NINH MẠNG TỪ BỘ NHỚ MÁY TÍNH 2.1 Các kỹ thuật sử dụng trong thu thập và phân tích thông tin từ bộ nhớ máy tính 2.1.1 Thu lại bộ nhớ khả biến
Có 2 phương pháp để thu lại bộ nhớ khả biến là: Thu dựa trên phần cứng và thu dựa trên phần mềm Cả 2 phương pháp này đều có ưu nhược điểm riêng vào sẽ được mô tả trong phần này Nhìn chung, theo quan điểm điều tra pháp lý, việc thu lại dựa trên phần cứng thì tốt hơn vì nó đáng tin cậy và thường khó khăn cho kẻ tấn công khi chúng cố ý làm sai lạc chứng cứ, nhưng hiện tại phương pháp thu lại bộ nhớ khả biến dựa vào phần mềm thường được sử dụng hơn do chi phí phù hợp và tính khả dụng
Thu lại bộ nhớ khả biến dựa trên phần cứng liên quan đến việc tạm ngưng quá trình
xử lý của máy tính và thực hiện truy cập bộ nhớ trực tiếp (DMA) để có được một bản sao của bộ nhớ Nó được coi là tin cậy hơn do ngay cả khi hệ điều hành và phần mềm trên hệ thống đã bị xâm nhập hoặc bị làm sai bởi một kẻ tấn công, chúng ta vẫn có thể nhận được một hình ảnh chính xác của bộ nhớ, bởi vì chúng ta không phụ thuộc vào các thành phần của hệ thống Nhược điểm của phương pháp này là chi phí đắt đỏ Một trong những phần cứng chuyên dụng thiết kế cho mục đích này là Tribble Card (Carrier & Grand, 2004) – nó
là một tấm mạch PCI được cài sẵn trong hệ thống trước khi thỏa hiệp được diễn ra để cho phép các nhà điều tra ghi lại bộ nhớ một cách chính xác và đáng tin cậy hơn phương pháp thu lại dựa trên phần mềm
Thu lại bộ nhớ khả biến dựa trên phần mềm là một kỹ thuật được sử dụng phổ biến bằng việc sử dụng bộ công cụ đánh giá tin cậy được phát triển và cung cấp bởi các chuyên gia điều tra số hàng đầu thế giới như Memoryze, win32dd,… Hoặc cũng có thể sử dụng
những công cụ đã được tích hợp sẵn trong hệ điều hành (như memdump hoặc dd trong
Unix)
Cho dù các công cụ được tin cậy hoặc đã được có trên hệ thống thì nó cũng rất dễ bị
kẻ tấn công làm sai lạc, nếu kẻ tấn công đã xâm nhập được vào hệ điều hành của máy tính đang được phân tích thì họ anh ta có thể ẩn các dữ liệu có liên quan bằng các thay đổi các lời gọi hệ thống và cấu trúc hệ thống bên trong Một nhược điểm nữa của phương pháp này
Trang 17là việc chụp lại bộ nhớ sẽ làm thay đổi nội dung của bộ nhớ, khả năng ghi đè lên dữ liệu liên quan đến cuộc điều tra Mặt khác, các công cụ cần để thực hiện thu lại bộ nhớ khả biến dựa trên phần mềm là miễn phí và có sẵn
2.1.2 Xác định nơi tìm bộ nhớ khả biến
Bộ nhớ khả biến được truy cập thông qua các cơ chế khác nhau tùy vào hệ điều hành đang được sử dụng và phần cứng trong máy tính riêng của mình
Trong Windows, có 2 đối tượng thiết bị phổ biến có thể được truy cập để lấy bộ nhớ
khả biến là: \\.\PhysicalMemory và \\.\DebugMemory Một ảnh liệu định dạng RAW
thường được thu hồi trong các thiết bị trên Sau khi một ảnh liệu định dạng RAW được thu thì người phân tích có thể chuyển nó thành dạng định dạng crashdump của Microsoft và xem xét nó như công cụ gỡ lỗi Người phân tích cũng có thể sử dụng nhiều công cụ khác
để phân tích và kiểm tra nội dung của dữ liệu dump
Trong Unix, các thiết bị bộ nhớ vật lý thường là /dev/mem/ và /proc/kcore Không phải tất cả các file hệ thống đều sử dụng /proc/kcore, nên người phân tích phải nắm được
file hệ thống để tìm hiểu xem thiết bị này có tồn tại hay không để tiến hành ghi lại và phân tích
2.1.3 Liệt kê các tiến trình đang được thực thi
Khi chúng ta có được bộ nhớ khả biến, việc tiếp theo chúng ta cần làm là phân tích nó, để thông qua đó xác định các tiến trình đang chạy trên hệ thống tại thời điểm mà quá trình ghi lại được thực hiện Kỹ thuật này được sử dụng nhằm xác định mối liên hệ giữa các tiến trình với nhau, các tiến trình nào đóng vai trò là tiến trình cha, sở hữu các tiến trình con khác, cũng như xem có tiến trình nào lạ đang tồn tại trên hệ thống hay không, ao gồm các tiến trình ẩn, việc này cung cấp cái nhìn tổng quan về các chương trình đang thực thi trên hệ thống cũng như quyết định việc tiếp theo cần làm gì khi có danh sách các tiến trình Công cụ rất tốt phục vụ cho việc này là Volatility
2.1.4 Liệt kê các kết nối mạng có trong hệ thống
Sau khi hệ thống được liệt kê các tiến trình đang chạy bao gồm các tiến trình ẩn, chúng ta sẽ tiến hành kiểm tra xem có kết nối nào ra ngoài hệ thống hay không
Trang 18Hình 2.1: Kiểm tra các kết nối mạng
Ở ví dụ trên danh sách kết nối ra vào hệ thống có một kết nối qua cổng 80 được sở hữu bởi tiến trình 856 Việc liệt kê các kết nối mục đích là để xem nếu có kết nối ra ngoài
hệ thống thì những kết nối đó thuộc về tiến trình nào, nếu là tiến trình của trình duyệt thì khi đó có thể là kết nối bình thường, trong trường hợp có nhiều kết nối đến cổng 80 nhưng lại xuất hiện tiến trình như svschost thì rõ ràng có vấn đề trong phiên kết nối đó Hầu hết trong các công cụ phân tích bộ nhớ hiện nay đều hỗ trợ cho việc này
2.1.5 Phục hồi các tập tin ánh xạ trong bộ nhớ
Như với các quá trình đã chấm dứt, các tệp đã bị đóng thường vẫn còn trong bộ nhớ, nhưng không còn được liên kết thông qua các danh sách được hệ điều hành duy trì và phải được tìm thấy bằng các phương thức thay thế.Quá trình khôi phục các tệp như vậy tương tự như việc xây dựng lại các tệp trên một đĩa cứng đã bị xóa, mặc dù thực tế bộ nhớ thường bị phân mảnh hơn nhiều so với một đĩa cứng làm cho quá trình tham gia nhiều hơn.Thông thường, nhìn vào bảng phân trang sẽ cho phép các tệp được tạo lại ngay cả khi chúng không còn hoạt động trong bộ nhớ.Ngoài ra còn có một khu vực của bộ nhớ được gọi là
"Khu vực kiểm soát" duy trì liên kết giữa tên tệp và dữ liệu tệp được lưu trữ trong các trang; nếu khu vực này vẫn còn hiện diện thì tên tập tin cũng có thể được phục hồi
2.1.6 Phân tích ngược tập tin chứa mã độc
Kĩ thuật này đòi hỏi người phân tích phải nắm vững kiến thức lập trình assembly và một số ngôn ngữ lập trình hệ thống C/C++ Bên cạnh đó người phân tích phải nắm rõ kiến trúc hệ điều hành, kiến trúc bộ vi xử lí, cách thức cơ chế mã độc khi lây nhiễm Với các
Trang 19kiến thức và hiểu biết trên chúng ta cũng cần sử dụng các công cụ hỗ trợ cho việc phân tích như IDA, Ollydebug, PeiD…
Kĩ thuật này thường áp dụng khi chúng ta trích xuất tập tin nghi ngờ chứa mã độc để phân tích, mục đích để xem mã nguồn của mã độc đã được viết ra và thực thi như thế nào
Để phân tích mã độc người phân tích cần tạo ra những môi trường ảo để phân tích, đảm bảo mã độc không thể lây nhiễm ra ngoài hay làm hại đến máy tính của chính mình Giả sử ta đang ngồi phân tích một mã độc có khả năng lây lan mạnh nhất trong lịch sử Và
ta bắt đầu phân tích nó bằng cách chạy nó ngay trên máy tính có kết nối ra internet của mình Việc đó sẽ khiến mã độc ngay lập tức có thể lây lan ra ngoài và gây ra hậu quả không lường trước được Hơn nữa có một quy tắc phân tích mã độc đó là tuyệt đối không nên để cho chủ mưu nhận ra có người đang cố gắng phân tích mã độc của hắn
Môi trường ảo ở đây sẽ được xây dựng tùy trường hợp, tùy từng đơn vị phân tích Đối với một người phân tích mã độc tự do không chuyên thì môi trường ảo chỉ đơn giản là: Một Vmware hay Virtualbox có cài sẵn windows xp, win 7,…, cùng một số ứng dụng thông dụng như java, adobe flash, firefox,…và máy ảo này sẽ không có kết nối mạng ra ngoài và ra máy thật hoặc có kết nối ra máy thật, máy thật sử dụng Linux và không có kết nối mạng
2.1.7 Phân tích registry
Trong hệ điều hành windows thì registry chứa rất nhiều thông tin có giá trị, là nơi có thể thu thập các chứng cứ rất hữu ích phục vụ cho việc điều tra Hầu hết khi kiểm tra các phần mềm độc hại tồn tại trên một hệ thống, thì chúng ta thường kiểm tra registry, quá trình kiểm tra được thực hiện khi chúng ta tìm thấy tiến trình bị mã độc chèn vào.Trong trường hợp phân tích điều tra bộ nhớ khả biến thì với việc phân tích registry chúng ta sẽ thực hiện việc tạo dựng lại dữ liệu registry
Khi tiến hành phân tích chúng ta tìm kiếm địa chỉ vật lí của registry hives trong bộ nhớ, sau đó xác định địa chỉ ảo của registry trong bộ nhớ và đường dẫn đầy đủ đến hives tương ứng trên đĩa và cuối cùng là hiển thị các khóa con, các giá trị, các dữ liệu và các kiểu
dữ liệu chứa trong một khóa registry được chỉ định, mục đích là tìm kiếm những thông tin
Trang 202.2 Một số công cụ
2.2.1 Volatility
Volatility là một framework với rất nhiều plugins được dùng để phân tích và tìm kiếm thông tin từ chứng cứ thu được Các plugins được viết để phân tích điều tra bộ nhớ theo kiến trúc của hệ điều hành windows
Hình 2.2: Các plugins mà volatility hỗ trợ
Việc phân tích sẽ tiến hành trong một môi trường độc lập với hệ thống ghi lại chứng
cứ, volatility cài đặt và cả làm việc được trên hệ điều hành Linux cũng như windows, trong lĩnh vực Memory Forensic thì đây là công cụ không thể thiếu để điều tra và phân tích nó có thể thực hiện được các công việc như xác định các tiến trình đang chạy trên hệ thống đó, các registry handles, các sockets đang mở trên mạng, danh sách dlls được nhập vào trong các tiến trình, các thư viện, hàm, API hooks trong người dùng và nhân …
Ngoài giao diện sử dụng dòng lệnh thì volatility còn được cộng đồng mã nguồn mở phát triển thêm giao diện web để giúp cho người phân tích có cái nhìn trực quan hơn Phiên bản giao diện web mang tên VolUtility được một lập trình viên “kevthehermit” phát triển dựa trên nền tảng django của python
Trang 21Hình 2.3: Giao diện VolUtility
Với giao diện web này giúp cho người phân tích điều tra bộ nhớ có một cái nhìn tổng quan và giúp cho việc phân tích sẽ nhanh hơn là giao diện dòng lệnh
2.2.2 DFF - Digital Forensic Framework
DFF là phần mềm mã nguồn mở phục vụ cho việc điều chứng cứ tội phạm công nghệ cao
DFF được xây dựng để phục vụ cho việc dễ dàng thu thập thông tin cũng như việc duy trì và phân tích các chứng cứ kỹ thuật số mà không gây ảnh hưởng đến dữ liệu và hệ thống Một số tính năng mà DFF hỗ trợ như:
- Phân tích và xây dựng lại Windows registry
- Trích xuất ra nhiều dữ liệu và siêu dữ liệu
- Phục hồi dữ liệu ẩn và dữ liệu bị xóa
- Liệt kê các tiến trình đang chạy
- Liệt kê các kết nối mạng đang tồn tại trên hệ thống
- Sử dụng tính năng tìm kiếm dựa vào thời gian, nội dung
Trang 22Hình 2.4: Giao diện của DFF
Mandiant Redline là công cụ miễn phí hàng đầu của mandiant cung cấp khả năng điều tra máy chủ để người dùng tìm thấy dữ liệu hoạt động của các tập tin độc hại thông qua việc phân tích bộ nhớ và tập tin hệ thống
Công cụ Mandiant RedLine cung cấp khả năng phân tích tệp tin và bộ nhớ của các máy cụ thể Công cụ này giúp thu thập thông tin về các tiến trình, trình điều khiển đang chạy từ bộ nhớ và thu thập các tệp tin siêu dữ liệu của hệ thống, dữ liệu registry, thông tin mạng, dịch vụ, nhiệm vụ và lịch sử duyệt web để giúp xây dựng hồ đánh giá đe dọa tổng thể giúp ích cho quá trình điều tra an ninh mạng
2.2.3 The Sleuth Kit và Autospy
TheSleuth Kit và Autospy là bộ công cụ nôi tiếng trong phân tích và điều tra tội phạm máy tính Đây là bộ công cụ mã nguồn mở hỗ trợ nhiều hệ điều hành như windows, Linux, OSX cũng như các họ Unix khác, chúng thường được sử dụng để phân tích bộ nhớ khả biến được ghi lại từ hệ thống và thực hiện phân tích chuyên sâu hệ thống các tập tin như NTFS, FAT, HFS+, Ext3 và UFS và nhiều loại ổ đĩa khác của hệ thống