1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo đồ án môn học đề tài điều tra bộ nhớ hệ điều hành windows

41 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

1.2 Mục tiêu đồ án  Giúp 1 cá nhân hay 1 bộ phận tổ chức hiểu được trong những mục đích sau: Tìm hiểu và cách thu thập thông tin dữ liệu quan trọng như mã độc dựa trên điều tra bộ nhớ

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM

BÁO CÁO ĐỒ ÁN MÔN HỌCĐIỀU TRA TẤN CÔNGĐỀ TÀI: ĐIỀU TRA BỘ NHỚ HỆ ĐIỀU HÀNH

WINDOWS

Chuyên Ngành: AN TOÀN THÔNG TIN

GVHD: Ths Nguyễn Thị YếnSVTH:

Nguyễn Phú Hưng MSSV: 2011770416Nguyễn Văn Diễn MSSV: 2080600206Bùi Quốc Hưng MSSV: 2011770359

Lớp: 20DATA1

TP Hồ Chí Minh, 2024

Trang 2

LỜI MỞ ĐẦU

Trong thời đại của sự phát triển nhanh chóng của công nghệ thông tin và truyềnthông, các bộ nhớ là thành một phần không thể thiếu của một hệ thống hay hệ điềuhành Tạo ra nhiều thách thức cho các chuyên gia bảo mật trong việc đảm bảo tínhtoàn vẹn của thông tin Trong đó, điều tra bộ nhớ là vấn đề quan trọng mà các chuyêngia cần phải tập trung nghiên cứu và giải quyết nhằm tiềm kiếm chứng cứ Với đề tàinày chúng em phân tích và kiểm soát dữ liệu của hệ điều hành Windows

i

Trang 3

LỜI CẢM ƠN

Chúng em xin chân thành gửi đến lời cảm ơn sâu sắc tới những người đã hỗ trợ vàđóng góp đồ án Lời đầu tiên, em xin gửi lời cảm ơn lớn nhất và chân thành gửi đếngiảng viên hướng dẫn đồ án này đó là cô Ths Nguyễn Thị Yến, người đã cung cấpcho chúng em lượng kiến thức cần thiết và đã hỗ trợ em trong suốt quá trình làm đồ ánnày Em cũng xin bày tỏ lòng biết ơn của em đến các thầy cô trong khoa Công NghệThông tin trường Công Nghệ và các chuyên gia và các nhà nghiên cứu trong lĩnh vựcnày, những người đã cung cấp cho chúng em những kiến thức và tài liệu quý giá đểhiểu rõ hơn Không thể thiếu được sự đóng góp của những người thân, bạn bè gia đìnhvà đặc biệt là nhà trường trong suốt quá trình thực hiện đồ án.Vì lẽ đó em xin gửi lờichân thành cảm ơn những người đã luôn ủng hộ, động viên và giúp đỡ em trong suốtquá trình nghiên cứu và viết bài Lời cuối, em xin chúc tất cả mọi người sức khỏe,hạnh phúc và thành công trong công việc và cuộc sống

ii

Trang 4

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 3

2.1 Khái niệm về điều tra bộ nhớ 3

2.2 Lịch sử phát triển hệ điều hành Linux 3

2.3 Giới thiệu về bộ nhớ trên linux 4

2.4 Nhu cầu ứng dụng và Ưu điểm, Nhược điểm hệ điều hành linux 4

2.4.1 Nhu cầu ứng dụng 4

2.4.2 Ưu điểm và Nhược điểm 4

2.5 Cấu trúc hệ điều hành Linux 4

2.6 Giới thiệu tổng quan về hệ thống 5

2.6.1 Tổ chức vật chất 5

2.6.2 Cấu trúc dữ liệu 6

2.6.3 The Volatility Framework 8

2.7 Giới thiệu về điều tra bộ nhớ trên Linux 12

2.7.1 Tạo tác mạng 12

2.7.2 Giới thiệu về hệ thống tệp tin trong bộ nhớ 14

2.8 So sánh bộ nhớ trên Linux 32 và 64 bit 16

2.8.1 So Sánh 16

2.8.2 So sánh khi dump khác quyền 17

iii

Trang 5

2.9 Công cụ và phần mềm hỗ trợ 18

2.9.1 Phân tích 18

2.9.2 Ứng dụng thực tế 18

CHƯƠNG 3: QUÁ TRÌNH THỰC NGHIỆM 19

3.1 Mục tiêu triển khai Footprinting 19

3.2 Mô hình ứng dụng 19

3.3 Yêu cầu thực hiện 19

3.4 Quy trình chuẩn bị khai thác 19

3.5 Các bước triển khai và Kết quả 19

CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 32

4.1 Kết luận 32

4.2 Hạn chế và Hướng phát triển của đồ án 32

4.2.1 Mặt hạn chế 32

4.2.2 Hướng phát triển của đồ án 32

TÀI LIỆU THAM KHẢO 33

iv

Trang 6

MỤC LỤC HÌNH ẢNH

Hình ảnh 1 Tổ chức vật lý của một hệ thống hiện đại 5

Hình ảnh 2 Hình nói về mảng 1 chiều 7

Hình ảnh 3 Hình chỉ về ví dụ danh sách liên kết đơn 7

Hình ảnh 4 Hình chỉ về ví dụ danh sách liên kết đơn 8

Hình ảnh 5 Hình nói về cac AS xếp chồng đang hoạt động 9

Hình ảnh 6 Hình ảnh cho thấy cấu trúc dữ liệu mạng 13

Hình ảnh 7 Hình ảnh đầu ra từ linux_ifconfig trên mẫu bộ nhớ Debian 13

Hình ảnh 8 Hình ảnh liên kết cấu trúc gắn kết với cấu trúc vfsmount 15

Hình ảnh 9 Hình ảnh thể hiện mục tiêu đã được kết nối đến 192.168.172.1 16

Hình ảnh 10 Mô hình ứng dụng 19

Hình ảnh 11 Quá trình cài đặt công cụ volatility và mã độc cridex 20

Hình ảnh 12 Hình đã tải xong các công cụ phân tích và tẹp tin phân tích 20

Hình ảnh 13 Hình dùng lệnh của volatility 21

Hình ảnh 14 Hình ảnh chỉ ra lệnh help của volatility 21

Hình ảnh 15 Phân tích cridex.vmem bằng volatility 22

Hình ảnh 16 Phân tích cridex.vmem với option pslist 22

Hình ảnh 17 Phân tích cridex.vmem bằng option pstree 23

Hình ảnh 18 Phân tích cridex.vmem bằng option psxview 24

Hình ảnh 19 Phân tích cridex.vmem bằng option connscan 25

Hình ảnh 20 Phân tích cridex.vmem bằng option sockets 25

Hình ảnh 21 Phân tích cridex.vmem bằng option cmdline 26

Hình ảnh 22 Scan file với PID 1640 27

Hình ảnh 23 Hình sử dụng virustotal để kiểm tra mã độc 27

Hình ảnh 24 Hình ảnh sử dụng câu lệnh để lấy file 1640 sau khi scan ra ngoài.28Hình ảnh 25 Sử dụng lệnh strings để kiểm tra 29

Hình ảnh 26 Sử dụng lệnh string để đi sâu vào mã độc 29

Hình ảnh 27 Sử dụng option hivelist để xem tệp tin hỗ trợ 30

Hình ảnh 28 Hình ảnh lấy được key từ tệp 31

v

Trang 7

vi

Trang 8

CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI1.1 Tổng quan về đồ án

Đồ án sẽ giới thiệu cho chúng ta biết về Điều tra bộ nhớ (memory forensic), nhiệm vụcủa Điều tra bộ nhớ

1.2 Mục tiêu đồ án

 Giúp 1 cá nhân hay 1 bộ phận tổ chức hiểu được trong những mục đích sau: Tìm hiểu và cách thu thập thông tin dữ liệu quan trọng như mã độc dựa trên

điều tra bộ nhớ Cách thu thập dữ liệu có lỗ hổng để bảo mật dữ liệu đó Thực hiện thử nghiệm trên một cách thức liên quan đến phân tích dữ liệu. Tìm hiểu áp dụng các công cụ hỗ trợ và kỹ thuật thực hiện trên hệ điều hành

Windown. Tổng quan, mục tiêu của đồ án là tăng cường kiến thức và giúp cải thiện thông

qua việc tìm hiểu, nghiên cứu và áp dụng các kỹ thuật điều tra

1.3 Nhiệm vụ của đồ án

Trong đồ án này chúng em đặt ra nhiệm vụ đó là hoàn thành các mục tiêu đã đề ra :Viết báo cáo và trình bày kết quả của đồ án để chia sẻ kiến thức và kinh nghiệm về đềtài này

1.4 Yêu cầu về hệ thống

Nền tảng được sử dụng trong đồ án

1.5 Bố cục đồ án

Đồ án báo gồm 4 chương :Chương 1: Tổng Quan về đề tài , trong chương này chúng ta tìm hiểu khái quát về nộidung đề tài ,đặt ra mục tiêu và nhiệm vụ của đồ án

Chương 2: Cơ sở lý thuyết , trong chương này thể hiện nội dung lý thuyết xây dụngnên nội dung cốt lõi của đồ án

1

Trang 9

Chương 3: Thực nghiệm , trong chương này ghi nhận lại quá trình nghiên cứu và tiếnhành thực nghiệm báo gồm quá trình và kết quả đạt được dựa trên the volatilityframework để điều tra memory forensic.

Chương 4: Phần này sẽ rút ra những lưu ý và ghi chú trong quá trình điều tra bộ nhớvà đưa ra hướng phát triển để giao thức hoàn thiện hơn

2

Trang 10

CHƯƠNG 2 CƠ SỞ LÝ THUYẾT2.1 Khái niệm về điều tra bộ nhớ

Điều tra bộ nhớ được cho là lĩnh vực hiệu quả, thú vị và phấn khích nhất củapháp y kỹ thuật số Mỗi chức năng được thực hiện bởi hệ điều hành hoặc ứng dụngdẫn đến các sửa đổi cụ thể đối với bộ nhớ của máy tính (RAM), điều này thường cóthể tồn tại một thời gian dài sau hành động, về cơ bản là bảo tồn chúng Ngoài ra, bộnhớ pháp y cung cấp khả năng hiển thị chưa từng có về trạng thái thời gian chạy củahệ thống, chẳng hạn như quy trình nào đang chạy, các kết nối mạng đang mở và cáclệnh được thực thi gần đây Bạn có thể trích xuất các hiện vật này theo cách hoàn toànđộc lập với hệ thống bạn đang điều tra, giảm khả năng phần mềm độc hại hoặc rootkitcó thể can thiệp với kết quả của bạn Dữ liệu quan trọng thường chỉ tồn tại trong bộnhớ, chẳng hạn như khóa mã hóa ổ đĩa, đoạn mã được chèn trong bộ nhớ trong bộ nhớ,tin nhắn trò chuyện không lưu, tin nhắn e-mail không được mã hóa và bản ghi lịch sửInternet không thể lưu vào bộ nhớ cache

Bằng cách tìm hiểu cách ghi lại bộ nhớ máy tính và lập hồ sơ nội dung của nó, bạn sẽthêm một tài nguyên vô giá để phản hồi sự cố, phân tích phần mềm độc hại và pháp ykỹ thuật số của bạn các khả năng Mặc dù việc kiểm tra đĩa cứng và chụp gói mạng cóthể mang lại kết quả bằng chứng thuyết phục, nó thường là nội dung của RAM chophép tái tạo đầy đủ sự kiện và cung cấp các mảnh ghép cần thiết để xác định điều gì đãxảy ra trước đó, trong và sau khi bị nhiễm phần mềm độc hại hoặc sự xâm nhập củacác tác nhân đe dọa nâng cao Vì ví dụ, manh mối bạn tìm thấy trong bộ nhớ có thểgiúp bạn tương quan với các hiện vật pháp y truyền thống có thể có vẻ khác nhau, chophép bạn tạo các liên kết mà nếu không không được chú ý

2.2 Lịch sử phát triển hệ điều hành Linux

Lịch sử phát triển hệ điều hành Linux bắt đầu vào những năm 1991 khi LinusTorvalds, một sinh viên người Phần Lan, bắt đầu phát triển một hệ điều hành nhỏ đểsử dụng trên máy tính cá nhân của mình Sau đó, ông công bố mã nguồn của dự án vàmời mọi người tham gia đóng góp Dự án này trở thành nền tảng cho sự phát triển củahệ điều hành Linux

3

Trang 11

2.3 Giới thiệu về bộ nhớ trên linux

Trong hệ thống Linux, thường thì sẽ sử dụng hai loại bộ nhớ: RAM và SWAP.Trong đó RAM là bộ nhớ thực, sử dụng một linh kiện đặc biệt để lưu trữ còn SWAP làvùng trao đổi, sử dụng một phần đĩa cứng vật lý (một loại bộ nhớ điện tĩnh) để lưu trữ.Tổng dung lượng của 2 loại bộ nhớ này là bộ nhớ khả dụng của hệ thống

2.4 Nhu cầu ứng dụng và Ưu điểm, Nhược điểm hệ điều hành linux

2.4.1 Nhu cầu ứng dụng

Hệ điều hành Linux được sử dụng rộng rãi trong nhiều lĩnh vực bao gồm máy chủ,thiết bị nhúng, máy tính cá nhân, đào tạo, phát triển phần mềm, học máy, an ninhmạng, và cloud computing Điều này là do tính linh hoạt, hiệu suất cao, và mã nguồnmở của Linux, làm cho nó trở thành lựa chọn phổ biến cho cả cá nhân và doanhnghiệp

2.4.2 Ưu điểm và Nhược điểm

- Ưu điểm: Miễn phí và được hỗ trợ các ứng dụng văn phòng OpenOffice vàLibreOffice.Tính bảo mật cao Tính linh hoạt, người dùng có thể chỉnh sửa hệ điềuhành để phù hợp với nhu cầu sử dụng của mình Không lo sợ giật, lag, không chạy nổi,…trên các máy tính có cấu hình không cao

- Nhược điểm: Các nhà phát triển phần mềm vẫn chưa để tâm đến hệ điều hành tiềmnăng này nên số lượng phần mềm được hỗ trợ vẫn còn hạn chế Một số nhà sản xuấtkhông phát triển driver hỗ trợ nền tảng Linux

2.5 Cấu trúc hệ điều hành Linux

Kernel: Hay được gọi là phần Nhân vì đây là phần quan trọng nhất trong máy tính bởichứa đựng các module hay các thư viện để quản lý, giao tiếp giữa phần cứng máy tínhvà các ứng dụng

Shell: Shell là phần có chức năng thực thi các lệnh (command) từ người dùng hoặc từcác ứng dụng yêu cầu, chuyển đến cho Kernel xử lý Shell chính là cầu nối để kết nốiKernel và Application, phiên dịch các lệnh từ Application gửi đến Kernel để thực thi

4

Trang 12

Có các loại Shell như sau: sh (the Bourne Shell), bash(Bourne-again shell), csh (Cshell), ash (Almquist shell), tsh (TENEX C shell), zsh (Z shell).

Application: Đây là phần quen thuộc với chúng ta nhất, phần để người dùng cài đặtứng dụng, chạy ứng dụng để người dùng có thể phục vụ cho nhu cầu của mình

2.6 Giới thiệu tổng quan về hệ thống

2.6.1 Tổ chức vật chất

PC bao gồm các bảng mạch in kết nối các thành phần khác nhau và cung cấp các đầunối cho các thiết bị ngoại vi Bo mạch chính trong loại hệ thống này, bo mạch chủ,cung cấp các kết nối cho phép các thành phần của hệ thống giao tiếp Các kênh giaotiếp này thường được gọi là bus máy tính Phần này làm nổi bật các thành phần và busmà điều tra viên nên quen thuộc Hình 2-1 minh họa cách tổ chức các thành phần khácnhau được thảo luận trong phần này

Hình ảnh 1 Tổ chức vật lý của một hệ thống hiện đại.Đọc từ bộ nhớ chính thường chậm hơn đáng kể so với đọc từ CPU bộ nhớ riêng Dođó, các hệ thống hiện đại tận dụng nhiều lớp bộ nhớ nhanh, được gọi là bộ nhớ đệm,để giúp bù đắp sự chênh lệch này Mỗi mức bộ nhớ đệm (L1, L2, v.v.) là tương đối

5

Trang 13

chậm hơn và lớn hơn so với người tiền nhiệm của nó Trong hầu hết các hệ thống, cácbộ nhớ đệm này được tích hợp vào bộ xử lý và từng lõi của nó Nếu dữ liệu khôngđược tìm thấy trong một bộ đệm nhất định, thì dữ liệu phải được tìm nạp từ bộ nhớđệm cấp độ tiếp theo hoặc bộ nhớ chính CPU dựa vào đơn vị quản lý bộ nhớ (MMU)của nó để giúp tìm dữ liệu ở đâu được lưu trữ MMU là đơn vị phần cứng dịch địa chỉmà bộ xử lý yêu cầu đến địa chỉ tương ứng của nó trong bộ nhớ chính Như chúng tamô tả ở phần sau của chương này, các cấu trúc dữ liệu để quản lý việc dịch địa chỉcũng được lưu trữ trong bộ nhớ chính Bởi vì một bản dịch nhất định có thể yêu cầunhiều thao tác đọc bộ nhớ, bộ xử lý sử dụng một bộ đệm đặc biệt, được gọi là bộ đệmxem xét dịch (TLB), cho bảng dịch MMU Trước mỗi lần truy cập bộ nhớ, TLB đượchỏi ý kiến trước khi yêu cầu MMU thực hiện một hoạt động dịch địa chỉ tốn kém.

2.6.2 Cấu trúc dữ liệu.

Bạn xây dựng cấu trúc dữ liệu bằng cách sử dụng các kiểu dữ liệu cơ bản mà mộtchương trình cụ thể ngôn ngữ cung cấp Bạn sử dụng các kiểu dữ liệu cơ bản để chỉđịnh cách một tập hợp các bit cụ thể được sử dụng trong một chương trình Bằng cáchchỉ định một kiểu dữ liệu, lập trình viên ra lệnh cho tập của các giá trị có thể được lưutrữ và các hoạt động có thể được thực hiện trên các giá trị đó.Những kiểu dữ liệu nàyđược gọi là kiểu dữ liệu cơ bản hoặc nguyên thủy vì chúng không được định nghĩatheo các kiểu dữ liệu khác trong ngôn ngữ đó Trong một số ngôn ngữ lập trình, cáckiểu dữ liệu cơ bản có thể ánh xạ trực tiếp đến các kiểu dữ liệu phần cứng gốc được hỗtrợ bởi kiến trúc bộ xử lý Điều quan trọng cần nhấn mạnh là các kiểu dữ liệu cơ bảnthường khác nhau giữa các ngôn ngữ lập trình và kích thước bộ nhớ của chúng có thểthay đổi tùy theo trên phần cứng cơ bản

Mảng: Cơ chế đơn giản nhất để tổng hợp dữ liệu là mảng một chiều Đây là tập hợp

các cặp <index, element>, trong đó các phần tử có kiểu dữ liệu thuần nhất Kiểu dữliệu của các phần tử được lưu trữ sau đó thường được gọi là kiểu mảng Một đặc điểmquan trọng của một mảng là kích thước của nó được cố định khi một phiên bản củamảng được tạo, sau đó giới hạn số lượng phần tử có thể được lưu trữ Hình 2-2 chothấy một ví dụ về mảng một chiều

6

Trang 14

Hình ảnh 2 Hình nói về mảng 1 chiều.

Danh sách được liên kết: Danh sách liên kết là một kiểu dữ liệu trừu tượng thườngđược sử dụng để lưu trữ một tập hợp các phần tử Không giống như các mảng và bảnghi có kích thước cố định, danh sách được liên kết nhằm cung cấp một cấu trúc linhhoạt Cấu trúc có thể hỗ trợ hiệu quả các bản cập nhật động và không bị ràng buộc vớiđối với số lượng phần tử mà nó có thể lưu trữ Một sự khác biệt lớn nữa là danh sáchliên kết không được lập chỉ mục và được thiết kế để cung cấp quyền truy cập tuần tựthay vì ngẫu nhiên truy cập Danh sách liên kết nhằm mục đích hiệu quả hơn cho cácchương trình cần thường xuyên thao tác với bộ sưu tập đã lưu trữ bằng cách thêm, bớthoặc sắp xếp lại các phần tử Đây hiệu quả tăng thêm được thực hiện bằng cách sửdụng các liên kết để biểu thị mối quan hệ giữa các yếu tố và sau đó cập nhật các liênkết đó khi cần thiết Phần tử đầu tiên của danh sách thường là được gọi là phần đầu vàphần tử cuối cùng là phần đuôi Theo các liên kết từ đầu đến đuôi và đếm số phần tửcó thể xác định số phần tử được lưu trữ trong một danh sách liên kết

Hình ảnh 3 Hình chỉ về ví dụ danh sách liên kết đơn.Để hỗ trợ các đặc tính động của danh sách được liên kết và giảm thiểu các yêu cầu lưutrữ, việc triển khai ngôn ngữ lập trình C thường cấp phát và phân bổ bộ nhớ để lưu trữcác phần tử khi cần thiết Do đó, bạn không thể giả định rằng các phần tử sẽ được lưutrữ liên tục trong bộ nhớ Hơn nữa, thứ tự tuần tự của các phần tử không ngầm địnhđối với vị trí bộ nhớ của chúng, như trường hợp của các mảng Thay vì, mỗi phần tử

7

Trang 15

của danh sách được lưu trữ riêng biệt và các liên kết được duy trì với phần tử lân cậncác yếu tố Trong một số triển khai, các liên kết được lưu trữ nhúng trong phần tử (lưutrữ nội bộ) Trong các triển khai khác, các nút của danh sách được liên kết chứa cácliên kết đến các nút lân cận và một liên kết đến địa chỉ trong bộ nhớ nơi phần tử đangđược được lưu trữ (bộ nhớ ngoài) Trong cả hai trường hợp, bạn triển khai các liên kếtgiữa các nút bằng cách sử dụng con trỏ giữ địa chỉ bộ nhớ ảo của nút lân cận Do đó,để truy cập một phần tử tùy ý của danh sách, bạn phải duyệt qua danh sách được liênkết bằng cách làm theo các con trỏ tuần tự thông qua không gian địa chỉ ảo.

Danh Sách liên kết hình tròn: Một ví dụ về triển khai danh sách liên kết được sử

dụng thường xuyên trong nhân Linux là vòng tròn danh sách liên kết Nó được gọi làdanh sách liên kết vòng tròn vì liên kết cuối cùng được lưu trữ với đuôi đề cập đếnđếnnút ban đầu trong danh sách (đầu danh sách) Điều này đặc biệt hữu ích cho các danhsách trong đó đặt hàng không quan trọng Một danh sách liên kết vòng tròn được duyệtqua bằng cách bắt đầu từ một nút danh sách và dừng khi duyệt danh sách trở lại nút đó.Hình 2-4 cho thấy một ví dụ về danh sách liên kết vòng tròn Như đã thảo luận chi tiếthơn trong các chương sau, loại này danh sách liên kết đã được sử dụng trong nhânLinux để tính toán quy trình

Hình ảnh 4 Hình chỉ về ví dụ danh sách liên kết đơn

2.6.3 The Volatility Framework.

The Volatility là một bộ sưu tập các công cụ hoàn toàn mở, được triển khai trongPython theo Giấy phép Công cộng GNU 2 Các nhà phân tích sử dụng Biến động chotrích xuất các hiện vật kỹ thuật số từ các mẫu bộ nhớ bay hơi (RAM) Bởi vì sự biếnđộng là mã nguồn mở và miễn phí để sử dụng, bạn có thể tải xuống khuôn khổ và bắtđầu thực hiện phân tích nâng cao mà không phải trả một xu Hơn nữa, khi hiểu đượccách công cụ của bạn hoạt động bên dưới mui xe, không có gì ngăn cản bạn và mãnguồn — bạn có thể khám phá và học hỏi hết khả năng của mình Chương này bao

8

Trang 16

gồm các thông tin cơ bản bạn cần để cài đặt Volatility, cấu hình môi trường và làmviệc với các plugin phân tích Nó cũng giới thiệu cho bạn những lợi ích của sử dụngBiến động và mô tả một số thành phần bên trong làm cho công cụ trở thành sự thậtkhuôn khổ Ngoài ra, hãy nhớ rằng phần mềm phát triển theo thời gian Do đó, khuônkhổ của khả năng, plugin, cân nhắc cài đặt và các yếu tố khác có thể thay đổi trongtương lai.

Một khuôn khổ liên kết, duy nhất Sự biến động phân tích bộ nhớ từ 32-bit và 64-bit Hệ thống Windows, Linux, Mac (và Android 32-bit) Thiết kế mô-đun của Valatilitycho phép nó dễ dàng hỗ trợ các hệ điều hành và kiến trúc mới như chúng vốn có pháthành

Đây là mã nguồn mở GPLv2 Điều này có nghĩa là bạn có thể đọc mã nguồn, học hỏitừ nó, và mở rộng nó Bằng cách tìm hiểu cách hoạt động của Volatility, bạn sẽ trở nênhiệu quả hơn nhà phân tích

2.6.3.1 Xếp chồng không gian địa chỉMột số loại AS khác nhau mà bạn đã học cho đến nay thường được sử dụng nhất cùnghỗ trợ lẫn nhau Để giúp bạn hình dung sự tương tác này, hãy xem Hình 2-5 Sơ đồ nàycho thấy cách các AS tự động xếp chồng lên nhau để hỗ trợ nhiều loại tệp và kiến trúcphần cứng mà Volatile có thể hoạt động

Hình ảnh 5 Hình nói về cac AS xếp chồng đang hoạt độngTrong ví dụ này, bạn đang xử lý sự cố kết xuất từ hệ thống Windows 64 bit Khi mộtplugin Biến động yêu cầu đọc một địa chỉ ảo, địa chỉ đó sẽ được chuyển đến đầu tiênAMD64 AS, thực hiện việc dịch địa chỉ ảo sang địa chỉ vật lý Kết quả là một khoảngbù trong bộ nhớ vật lý, trong đó dữ liệu mong muốn có thể được tìm thấy Nếu bạn cómột

9

Trang 17

kết xuất bộ nhớ thô (có đệm), phần bù này giống như phần bù vào bộ nhớ tập tindump Tuy nhiên, vì tệp kết xuất sự cố chứa nhiều tiêu đề khác nhau và cũng có thểchia các phạm vi bộ nhớ không liền kề thành "lần chạy", phần bù vào bộ nhớ vật lýkhông giống như phần bù vào tệp kết xuất sự cố Đây là nơi mà AS kết xuất sự cố đivào chơi Sự cố kết xuất AS biết tiêu đề của nó lớn như thế nào và có thể phân tích cúpháp thông tin liên quan đến nơi các phạm vi bộ nhớ được lưu trữ, cho phép nó ghéplại với nhau quan điểm ban đầu của bộ nhớ vật lý Do đó, AS kết xuất sự cố có thể dễdàng tìm thấy bù đắp trong tệp bên dưới.

2.6.3.2 Các lệnh cơ bảnLệnh Biến động cơ bản nhất được xây dựng như sau Bạn thực thi Python chính script(vol.py) và sau đó chuyển nó đường dẫn đến tệp kết xuất bộ nhớ của bạn, tên của cấuhình, và plugin để thực thi (và tùy chọn các thông số dành riêng cho plugin):$ python vol.py –f profile= [ARGS]

Đây là một ví dụ$ python vol.py –f /home/mike/memory.dmp profile=Win7SP1x64 pslist# Nếu bạn sử dụng tệp thực thi Windows độc lập, thì cú pháp sẽ giống như thế nàyC:\>volatlity-2.4.exe –f C:\Users\Mike\memory.dmp profile=Win7SP1x64 pslist# Có một số ngoại lệ đối với lệnh cơ bản được hiển thị, chẳng hạn như khi bạn gọi# Biến động với -h / - trợ giúp (để xem các tùy chọn toàn cầu), với info (để xem tấtcả các AS có sẵn, plugin và cấu hình), hoặc nếu bạn chưa biết cấu hình nào để sửdụng

2.6.3.3 Hiển thị trợ giúp.Một số tùy chọn dòng lệnh có phạm vi toàn cầu (tức là chúng áp dụng cho tất cả cácplugin) nếu bạn mới đối với Biến động hoặc nếu bạn chỉ muốn làm quen với nhữngtùy chọn bạn có thể chỉnh sửa, hãy nhớ đọc kỹ phần này Để hiển thị menu trợ giúpchính, hãy nhập –h / - help trên dòng lệnh Nó cho thấy các tùy chọn chung (bao gồmcác giá trị mặc định, nếu có) và liệt kê các plugin có sẵn cho hồ sơ hiện được chỉ định.Nếu bạn không chỉ định một hồ sơ, bạn sẽ làm việc với mặc định, WinXPSP2x86, vìvậy bạn sẽ chỉ thấy các plugin hợp lệ cho hệ điều hành đó và kiến trúc (ví dụ: bạn sẽ

10

Trang 18

không thấy plugin Linux hoặc plugin Windows hoạt động chỉ trên Vista) Đây là mộtví dụ:

$ python vol.py help Volatility Foundation Volatility Framework 2.4 Usage: Volatility - A memory forensics analysis platform Options:

-h, help # liệt kê tất cả các tùy chọn có sẵn và giá trị mặc định của chúng Giá trị mặc định cóthể được đặt trong tệp cấu hình etc/volualityrc

conf-file=/Users/michaelligh/volatilityrc# Tệp cấu hình dựa trên người dùng-d, debug Gỡ lỗi volatility plugins=PLUGINS #Các thư mục plugin bổ sung để sử dụng (phân tách bằng dấu hai chấm) info

# In thông tin về tất cả các đối tượng đã đăng ký cache-directory=/Users/michaelligh/cache/volatility # Thư mục nơi lưu trữ các tệp bộ đệm

cache # Sử dụng bộ nhớ đệm tz=TZ

# Đặt múi giờ để hiển thị dấu thời gian-f FILENAME, filename=FILENAME # Tên tệp để sử dụng khi mở một hình ảnh profile=WinXPSP2x86

# Tên của hồ sơ để tải-l LOCATION, location=LOCATION # Vị trí URN để tải không gian địa chỉ -w, write

# Bật hỗ trợ ghi

11

Trang 19

dtb=DTB # DTB Address

2.7 Giới thiệu về điều tra bộ nhớ trên Linux.

2.7.1 Tạo tác mạng.

Sau khi vi phạm mạng, những câu hỏi đầu tiên phải được trả lời thường là: Hệ thốngnào ban đầu bị nhiễm, máy nào bị xâm nhập sau đó thông qua chuyển động ngang vàhệ thống từ xa nào đã tham gia vào quá trình lọc dữ liệu hoặc chỉ huy và kiểm soát?Volatility rất quan trọng để trả lời những câu hỏi này bởi vì rất ít hiện vật liên quanđược ghi vào đĩa Trong chương này, bạn sẽ học cách này dữ liệu được lưu trữ trongcác mẫu bộ nhớ Linux, bạn có thể làm gì để khôi phục dữ liệu và cách rút ra kết luậndựa trên những gì bạn tìm thấy

2.7.1.1 Giao diện mạng.Hệ thống Linux hỗ trợ nhiều giao diện mạng mà bạn có thể định cấu hình cho cáctuyến và mạng con Để hiểu hoàn toàn luồng dữ liệu mạng thông qua một máy chủ vớinhiều giao diện, bạn phải khôi phục thông tin về từng thiết bị

Mục tiêu phân tích: Mục tiêu của bạn là: Hiểu các giao diện mạng Linux: Các bản

phân phối Linux có một tiêu chuẩn khá quy ước đặt tên cho các giao diện Hiểu quyước này có thể giúp bạn Tạo tác mạng 647 hiểu loại giao diện Linux cũng hỗ trợ cácbí danh giao diện phải được tính đến trong quá trình phân tích

Xác định xem giao diện mạng có đang ở chế độ quảng cáo hay không:

Quảng cáo chế độ thiết bị mạng có khả năng đánh giá lưu lượng truy cập của tất cả cácmáy tính được kết nối vào mạng con (nếu đang sử dụng một trung tâm hoặc bộ địnhtuyến không dây không an toàn) Biến động báo cáotrạng thái chế độ lăng nhăng củamỗi giao diện mạng

Xác định các ứng dụng đang đánh hơi lưu lượng mạng: Sau khi xác định được rằngthiết bị mạng đang ở chế độ bừa bãi, khi đó bạn muốn tìm hiểu lý do Cáccách duynhất bạn có thể thực hiện điều này là khám phá ứng dụng nào sử dụng nguyên ổ cắmvà sau đó xác định việc sử dụng ổ cắm

12

Trang 20

Cấu trúc dữ liệu: Mỗi thiết bị mạng được đại diện bởi một cấu trúc có tên net_device.

Cấu trúc này là được hiển thị cho hình ảnh bộ nhớ mẫu Debian, nhưng nó có thể thayđổi đáng kể trên tất cả các phiên bản hạt nhân được hỗ trợ khác nhau May mắn thay,các thành viên được sử dụng bởi Volatility vẫn khá ổn định

Hình ảnh 6 Hình ảnh cho thấy cấu trúc dữ liệu mạng

2.7.1.2 Thông tin giao diện danh sách.Plugin linux_ifconfig liệt kê tất cả các giao diện mạng đang hoạt động, bao gồm cả IPcủa chúng địa chỉ, địa chỉ MAC, tên, cài đặt lăng nhăng và bí danh Trên các phiên bảnhạt nhân cũ hơn, nó liệt kê các thiết bị mạng bằng cách xem danh sách được lưu trữtrong biến thể toàn cầu dev_base có thể Trên các hạt nhân mới hơn có hỗ trợ khônggian tên, nó đi qua từng không gian tên mạng và sau đó xem danh sách các thiết bị.Để xác định tất cả các tên giao diện và bí danh của một thiết bị, thành viên ip_ptr đượcsử dụng, là kiểu in_device Danh sách các thiết bị được lưu trữ trong thành viênifa_list của nó Bạn có thể tìm thấy tên của từng thiết bị hoặc bí danh trong thành viênifa_label và địa chỉ IP trong ifa_address Phần sau cho thấy kết quả đầu ra từlinux_ifconfig trên mẫu bộ nhớ Debian:

Hình ảnh 7 Hình ảnh đầu ra từ linux_ifconfig trên mẫu bộ nhớ Debian.

13

Ngày đăng: 20/08/2024, 15:10