1. Trang chủ
  2. » Tất cả

Báo cáo khóa học phân tích malware

30 1,1K 13
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

Thông tin cơ bản

Định dạng
Số trang 30
Dung lượng 3,03 MB

Nội dung

Những ảnh hưởng, tác hại của mã độc - Ảnh hưởng đến hệ thống file như: + Nhân bản mã độc, lây nhiễm vào file + Giấu trong thư mục hệ thống + Thiết lập thuộc tính ẩn, file hệ thống nhằm g

Trang 1

Báo cáo khóa học phân tích Mailware

I. Ngày thứ nhất

1. Giới thiệu mã độc Malware

- Mailware (Mailicious software ) là một phần mềm hoặc chương trình được thiết kế để thực hiện những hành vi sau:

- Spyware: Là phần mềm thu thập thông tin người dùng ngây phiền nhiễu cho người dùng

3. Lịch sử phát triển của Mailware

- 1966: Đưa ra lý thuyết tự nhân bản

- 1971: virus máy tính đầu tiên xuất hiện ( xuất hiện worm: Greeper)

- 1981: virus đầu tiên lây nhiễm qua đĩa mềm có tên là Elk cloner

- 1983: xuất hiện khái niệm “ virus máy tính”

- 2009: virus tấn công mạng (DDos)

- 2010: Exploit Kit là bộ công cụ được xây dựng để tấn công website

4. Cách thức lây nhiễm

- File đính kèm trong email

- Liên kết trong email hoặc website: gửi email spam, website nhúng mã độc

Trang 2

- Đoạn mã độc nhúng trong nội dung web (lấy history)

- Lỗ hổng của hệ điều hành hoặc ứng dụng

- Thiết bị lưu trữ

- Chia sẻ file trong mạng

5. Những ảnh hưởng, tác hại của mã độc

- Ảnh hưởng đến hệ thống file như:

+ Nhân bản mã độc, lây nhiễm vào file

+ Giấu trong thư mục hệ thống

+ Thiết lập thuộc tính ẩn, file hệ thống nhằm gây khó khăn cho việc tìm diệt

+ Ẩn trong hệ thống file NTFS

- Ảnh hưởng đến Registry: Đây chính là data base lưu trữ thông tin cấu hình hệ thống

- Ảnh hưởng đến tiến trình:

+ Khởi tạo tiến trình mới

+ Tạo những khóa mới để lưu giữ thông tin

+ Thay đổi giá trị của hệ thống

+ Đọc những thuộc tính thông tin quan trọng

+ Thường dùng để thiết lập chạy khi khởi động

+ Thường chạy trong kernel mode

6. Khái niệm, lợi ích của việc phân tích mã độc

a. Khái niệm:

- Phân tích mã độc là thực hiện các biện pháp nghiệp vụ để thu thập, tìm hiểu nghiên cứu mọi thông tin về mã độc:

+ Hành vi của mã độc

+ Ảnh hưởng và tác hại của mã độc

- Từ đó đưa ra các biện pháp phòng chống và ngăn chặn

b. Lợi ích:

- Cung cấp thông tin chính xác về mã độc

- Hỗ trợ các hoạt động đảm bảo an toàn thông tin :

+ Xử lý sự cố

+ Phân tích điểm yếu, đánh giá mối nguy

+ Nhận biết xu hướng, kỹ thuật tấn công mới

+ Truy tìm dấu vết, bằng chứng

+ Xác định dấu hiệu nhận biết để phòng chống

7. Thiết lập môi trường

Trang 3

a. Môi trường tải mã độc

- Môi trường tách biệt khỏi mạng làm việc

- Tuyệt đối không dùng trình duyệt truy nhập vào link tải mã độc và trình duyệt

dễ bị tấn công Sử dụng công cụ riêng biệt để tải mã độc (wget curl)

- Nên sử dụng môi trường khác với môi trường thưc thi mã độc (ví dụ như môi trường linux)

- Sau khi tải về thì đổi tên, tránh trường hợp vô tình thực thi mã độc (tốt nhất là không cần đuôi)

b. Môi trường phân tích mã độc

- Sử dụng hệ thống dành riêng tách biệt không nối mạng (sử dụng môi trường giả lập)

- Tắt các thiết lập tự động như autorun và các phần mềm diệt virus

- Sử dụng các thiết bị lưu trữ chuyên dùng có khóa chống ghi để sao chép mã độc

- Sử dụng phần mềm hệ thống có thể khôi phục về trạng thái sạch ban đầu sau khi phân tích:

+ Phần mềm máy ảo: Vmware, Virtual PC, VirtualBox

+ Windows system restore

+ Norton Ghost

8. Các phương pháp phân tích mã độc

a. Phân tích sơ lược

Trang 4

- Thu thập thông tin từ đối tượng bị tấn công để dễ dành hơn khi thực hiện phân tích

- Xác định một số thông tin cơ bản sau:

+ Định dạng file, tên file, kích thước, thời gian

+ Các chuỗi ký tự xuất hiện trong file (các chuỗi có thể đọc được)

+ Giá trị băm của file (băm dùng để xác định tính toàn vẹn của đối tượng)

- Thu thập thông tin của file đính kèm:

+ File readme, file config…

+ Xem thêm thông tin từ hãng nếu phát hiện được

- So sánh những thông tin sau với kết quả của người khác đã phân tích (nếu có)

+ Giá trị hash

+ Các chuỗi tìm được

+ Kết quả của phần mềm anti-virus

Đây là bước đầu tiên mang tính chất tham khảo cho những phán đoán sau này

b. Phân tích hoạt động

- Thực thi mã độc và giám sát hành vi:

+ Điểm yếu bị khai thác

+ Tiến trình được khởi tạo hoặc hủy bỏ

+ Thay đổi trên hệ thống file

+ Thay đổi trong registry

+ Các kết nối mạng ra ngoài

- Khó có thể tìm ra mọi hành vi của mã độc nhưng dễ dàng xác định những biểu hiện, hành vi thông dụng

- Hữu ích cho việc phản ứng nhanh sự cố

- Môi trường để phân tích hoạt động:

Trang 5

+ Môi trường phải đảm bảo tách biệt và dùng riêng có thể là môi trường thật hoặc môi trường ảo

+ Xây dựn giả lập mạng internet và những dịch vụ cần thiết phục vụ cho hoạt động của mã độc: DHCP, DNS, SMTP, HTTP, FTP, IRC

- Các công cụ phân tích hoạt động (công cụ giám sát)

c. Phân tích mã thực thi

- Về lý thuyết có thể xác định mọi hoạt động của mã độc

- Nếu có mã nguồn thì chỉ cần đọc và hiểu mã nguồn (hiếm khi có được mã nguồn)

- Nếu không có mã nguồn:

+ Phải phân tích mã thực thi nhị phân

+ Reverse Engineering: là tools dùng để dịch ngược từ mã máy sang mã Assembly, tái tạo lại mã nguồn

+ Đọc để thu thập thông tin mã Assembly

Trang 6

- Công cụ dùng để phân tích mã thực thi: (IDA Pro)

+ Dịch ngược từ mã thực thi để: phân tích mã nhị phân ra assembly, không thực thi mã độc

Trang 7

- Công cụ dùng để gỡ rối: (OllyDbg):

+ Phân tích mã thực thi trực tiếp khi trong bộ nhớ

+ Phải thực thi mã độc (bị nhiễm)

II. Ngày thứ hai

1. Môi trường phân tích mã độc

a. Mô hình môi trường phân tích

- Guest machine 1: Cài Linux dùng làm server

- Guest machine 2: Cài Windows XP dùng để cài mã độc phục vụ thử nghiệm

Trang 8

b. Đặc điểm của môi trường phân tích:

- Host machine có khả năng cung cấp đủ tài nguyên cho 2 Guest machine hoạt động

- Chia sẻ mã độc giữa Host và Guest phải thông qua con đường phi network

- Host machine và Guest machine không được kết nối mạng với nhau

- Các Guest machine nối mạng với nhau với dạng Host-only và không có khả năng kết nối Internet

c. Guest Machine (Centos Linux)

- Cài đặt DNS Server đáp ứng các yêu cầu sau:

+ Có khả năng phân giải bất kỳ domain nào do máy Guest Machine thứ 2 gửi đến

+ Mục đích: Đáp ứng yêu cầu nếu như mã độc có nhu cầu kết nối đến master

- Cài đặt Web Server:

+ Mục đích: Đóng giả master phục vụ các yêu cầu của mã độc nếu như mã độc kết nối đến master là Web Server

d. Guest Machine (Windows XP)

- Cài đặt Guest Machine với các Service Packed riêng biệt

- Cài đặt Microsoft Office

- Cài đặt Adobe Reader, Adobe Profesional

- Mục đích: Bởi vì các mã độc có thể khai thác ở các hệ điều hành và các

Microsoft Office hay Adobe Reader với các phiên bản khác nhau

2. Xây dựng môi trường phân tích mã độc

a. Guest Machine 1 (Linux)

Trang 9

- Centos Linux Networking:

+ Network Adapter: Host-only

+ IP Address Server: [root@server ~]# ifconfig eth0 203.162.1.222

+ Nội dung của tập tin fake.db:

@ 1D IN SOA localhost.localdomain hostmaster.localdomain (

2002022401 ; serial 3H ; refresh

15 ; retry 1W ; expire 3H ; minimum

Trang 11

3. Phân tích sơ lược mã độc

a. Mục tiêu

- Nắm được những kiến thức sau:

+ Các bước phân tích sơ lược mã độc

- Công cụ để kiểm tra:

Các công cụ có sẵn từ hệ điều hành: Explorer, Command (dir, attrib)

d. Xác định các kiểu file

- Cần phân tích các yêu cầu sau:

Trang 12

+ Loại file: xác định được các loại file để có hướng phân tích tiếp theo+ Phần mở rộng

+ Trong Windows: dùng Hash Tab, MD5Summer

+ Trong *nix: dùng md5sum, sha[1|224|245|384|512]sum

f. Tìm kiếm chuỗi ký tự

- Mục tiêu:

+ Tìm ra các chuỗi ký tự đọc được trong file: kết quả tùy thuộc vào việc xác định đâu là chuỗi ký tự đọc được (có thể khác nhau theo công cụ)+ Khả năng tìm được thông tin hữu ích: câu thông báo, đường dẫn, script,

+ Tên mã độc (google, thông tin từ hãng anti-virus)

+ Giá trị băm (google)

4. Thực tập phân tích một số mã độc (có một số mẫu mã độc để phân tích)

5. Tổng kết các công cụ và chức năng

- HxD, Trid: dùng để nhận dạng các định dạng file

- Peid: chuyên phân tích các mã thực thi

Trang 13

- Hash Tab: xác định giá trị băm (khi cài đặt chương trình tích hợp luôn trên windows ta chỉ cần kích chuột phải lên file cần kiểm tra rồi chọn

Properties/File Hashes)

- BinText: dùng để tìm kiếm chuỗi

III. Ngày thứ ba

1. Phân tích hoạt động

- Mục tiêu nắm được những kiến thức cơ bản sau:

+ Các bước cơ bản về phân tích hoạt động

+ Phân tích hoạt động nâng cao

+ Sử dụng các công cụ

2. Các công cụ cơ bản

a. Process Explorer

- Hiển thị thông tin về tiến trình

- Kiểm tra các thư viện dll được load

- Kiểm tra được các tiến trình nào đang chạy chiếm tài nguyên của hệ thống như thế nào?

Trang 14

- Mã độc có thể tạo mutex:

+ Mutex là cơ chế chống truy xuất chung vào cùng một tài nguyên

+ Dùng để kiểm tra tránh chạy cùng một lúc 2 tiến trình mã độc (khi thực thi tiến trình mới nếu mutex đã tồn tại thì mã độc không chạy nữa)

b. Regshot

- Ghi nhận và so sánh hệ thống file và registry giữa 2 thời điểm

Trang 15

- Ứng dụng: kiểm tra trước và sau khi thực thi mã độc để biết hành vi xảy ra

- Ghi nhận những thay đổi ra file text

- Kèm theo những kết quả gây nhiễu:

+ Hoạt động bình thường của hệ thống

+ Không liên quan mã độc

+ Cần có kinh nghiệm để xác định

Trang 16

c. Một số hành vi thường gặp của mã độc

- Nhân bản mã độc ra 1 file nào đó (thường là thư mục hệ thống)

- Tạo liên kết trong mục Startup để thực thi mã độc khi khởi động hệ thống

- Tạo khóa trong mục Run hoặc Winlogon của Registry để thực thi mã độc khi khởi động

- Đăng ký service mới hoặc thay đổi service đang có để load mã độc dạng dll

d. Wireshark

- Dùng để giám sát và phân tích traffic mạng

- Tìm kiếm các địa chỉ mà mã độc kết nối tới:

+ Địa chỉ hostname, địa chỉ IP, cổng kết nối

- Kiểm tra dữ liệu mã độc đã gửi/nhận:

+ Gửi: thông tin về máy bị nhiễm, dữ liệu đánh cắp được (Tên máy, IP, version…)

+ Nhận: lệnh điều khiển mã độc; cập nhật phiên bản mới của mã độc

Trang 17

e. Phân tích hoạt động của mã độc trong ví dụ 2_runtime_analysis_lab

- Trình tự các bước thực hiện:

+ Bật Process Explorer

+ Bật Wireshark và bắt đầu giám sát

+ Bật Regshot và ghi nhận thời điểm 1

+ Chạy mã độc và chờ một lúc

+ Bật Regshot và ghi nhận thời điểm 2, kiểm tra kết quả

+ Kiểm tra Wireshark

+ Kiểm tra Process Explorer

- Hạn chế:

+ Không nắm bắt được sự tương tác (nếu có) của mã độc với bên ngoài:

 Không thiết lập được kết nối

 Do đó không kiểm tra được dữ liệu mã độc đã gửi/nhận+ Regshot chỉ có thể nhận biết sự khác biệt giữa 2 thời điểm, không biết được trường hợp 1 file được tạo ra rồi xóa đi ngay

Trang 18

+ Regshot không nhận biết được những thay đổi trong kernel mode

3. Các công cụ và kỹ năng nâng cao:

a. Sử dụng TCPview

- Dùng để xác định xem tiến trình nào đang sinh ra hoạt động mạng tương ứng

- Liệt kê tất cả các traffic mạng liên quan đến 1 tiến trình nào đó

b. Wireshark – Follow TCP Stream

Trang 20

d. Một số công cụ khác

- Autoruns:

+ Hiển thị những chương trình tự chạy khi khởi động, người dùng đăng nhập…

+ Có thể xóa mà không cần dùng regedit

+ Kiểm tra các tab Logon, Explorer, Winlogon, Services

+ Xác định đường dẫn tới chương trình bằng trường ImagePath

- Alternative Data Stream (ADS)

+ Tìm dữ liệu bị ẩn trên hệ thống file NTFS

+ Một dạng file không hiện ra bởi lệnh dir và Explorer

 Trong Vista và Win7, có thể dùng lệnh “dir -r”

+ Gắn kèm theo file và thư mục

+ Đường dẫn có dạng C:\Test\a.txt:dummy

e. Kết hợp

- Trước hết thử xác định hành vi của mã độc với những công cụ cơ bản

+ Khởi tạo tiến trình

+ Thay đổi hệ thống file và registry

Trang 21

- Phụ lục 2 – Registry autorun

4. Giới thiệu ngôn ngữ Javascript

a. Lịch sử phát triển của javascript

- JavaScript được phát triển bởi Brendan Eich tại Netscape (cùng với Navigator 2.0)

- Javascript là một ngôn ngữ kịch bản, được sử dụng tạo nội dung động trên trang web

- Javascript có mặt trên tất cả các trình duyệt hiện nay như Internet Explorer, Firefox, Chrome, Opera, Safari

+ Internet Explorer sử dụng VBScript trong trình duyệt của mình và cũng

có khả năng sử dụng JavaScript

b. Cấu trúc của javascript

Trang 22

- Ngôn ngữ JavaScript là một ngôn ngữ lập trình hướng đối tượng (đối tượng, phương thức, thuộc tính)

- Cách sử dụng JavaScript trong HTML với thẻ <script>…</script>

- Ngôn ngữ JavaScript tích hợp một số đối tượng được xây dựng sẵn (window, Forms, RegExp, …)

c. Đối tượng trong javascript

d. Mã hóa trong javascript

- Kẻ tấn công thường sử dụng mã hóa trong JavaScript vì:

+ Gây khó hiểu cho người đọc mã nguồn JavaScript

+ Làm khó quá trình sao chép mã nguồn JavaScript (chống sao chép mã)

- Hình thức mã hóa mã nguồn trong JavaScript:

+ Nhìn giống như một chuỗi ký tự ngẫu nhiên

+ Ký tự lạ gây khó đọc

Trang 23

5. Kỹ thuật mã hóa trong javascript

thành chuỗi ký tự

getElementById(id) Lấy đối tượng thông qua id của

đối tượng

eval(str) Trả về kết quả sau khi thực thi

Trang 24

- Kẻ tấn công thường nhúng JavaScript vào các trang Web đã bị tấn công

+ Tìm kiếm các đoạn mã độc hại nằm ở các thẻ iframe hoặc các đoạn mã không rõ ràng

+ Mã độc có thể tìm thấy đằng sau các thẻ html → kiểm tra cẩn thận tất cả nội dung html

b. Cách giải mã javascript và công cụ

- Phương thức giải mã JavaScript dễ nhất là thực thi chúng trong môi trường an toàn

+ Môi trường Windows+Linux (Fake DNS + Fake Web)

+ Tránh sự nhận biết từ phía kẻ tấn công trong quá trình phân tích

8. Thực hành giải mã một số đoạn javascript

Ví dụ: giải mã đoạn javascript sau

Trang 25

- Giải mã với malzilla

Trang 26

IV. Ngày thứ tư (malware static analysis)

1. Đặc điểm ngôn ngữ lập trình bậc cao

- Cho phép người lập trình tạo ra các phần mềm mà không cần phải lo lắng về nền phần cứng

- Ngôn ngữ bậc cao vừa mang ý nghĩa đơn giản và phức tạp

+ Đơn giản theo nghĩa: Có thể viết chương trình ngắn gọn thực hiện đúng

ý đồ người lập trình, không bận tâm về cấp độ thấp của máy tính+ Phức tạp theo nghĩa: Không có gì là không thể làm với ngôn ngữ bậc cao

2. Vấn đề dịch ngược một chương trình

- Ngôn ngữ lập trình bậc cao → biên dịch → tập tin thực thi

+ Có khả năng đi ngược lại mã nguồn gốc ? → dịch ngược gần mã nguồn gốc nhất có thể phụ thuộc vào độ “nặng” của ngôn ngữ (Decompiler)+ Dịch tập tin thực thi về cấp độ máy.(Disassembler)

3. Tổng quan một số ngôn ngữ lập trình

a. Ngôn ngữ C

- Nằm phân đoạn giữa ngôn ngữ bậc cao và bậc thấp

- Thực thi mã nguồn C cần phải có trình biên dịch Trình biên dịch sẽ tạo mã nhị phân trên nền chỉ định

- Để chạy chương trình C trên nhiều nền khác nhau thì phải biên dịch lại với trình biên dịch được hỗ trợ bởi hệ điều hành đó

- Thực thi cao do gần cấp độ máy → mã nguồn chuyển trực tiếp đến mã máy do trình biên dịch

- Dễ dàng dịch ngược đến mã máy → khả năng tái tạo mã nguồn gần giống mã nguồn gốc

b. Ngôn ngữ C++

- Phần mở rộng của ngôn ngữ C với cấp độ cao hơn (hỗ trợ lập trình hướng đối tượng)

- Bất kỳ mã nguồn C nào cũng có thể biên dịch với trình biên dịch C++

- Dịch ngược ngôn ngữ C++ thì tương tự như C Điểm khác biệt ở chỗ phân biệt lớp thừa kế, đối tượng, phương thức, thuộc tính, …

Trang 27

- Là ngôn ngữ lập trình hướng đối tượng do Microsoft phát triển, mở rộng của ngôn ngữ C++

- Tương tự như ngôn ngữ Java khi biên dịch mã nguồn đến dạng như Java

bytecode → Microsoft Intermediate Language (MSIL) chạy trên Common Language Runtime (CLR)

- Tương tự như ngôn ngữ Java về khả năng dịch ngược

4. Ngôn ngữ Assembly

a. Đặc điểm ngôn ngữ Assembly

- Ngôn ngữ Assembly là ngôn ngữ cấp độ thấp nhất trong ngôn ngữ lập trình

- Mã Assembly và mã máy là hay khái niệm khác nhau của cùng một chủ thể

+ CPU đọc mã máy → đọc tuần tự các bits mà có chứa trong tập lệch của CPU để thực thi

+ Ngôn ngữ Assembly mô tả đơn giản hóa các bits thành dạng text để dễ đọc

- Mỗi lệnh của ngôn ngữ Assembly được mô tả bởi số, còn gọi là operation code (opcode) Ví dụ lệnh MOV (Move), XCHG (Exchange)

- Object code là tập hợp nhiều opcode để thực thi

- CPU sẽ đọc object code từ bộ nhớ, giải mã nó và thực thi dựa trên chỉ thị của nó

- Mã nguồn Assembly sẽ được trình assembler chuyển đổi từ dạng text thành binary code mà có thể decode được bởi CPU

b. Một số thanh ghi thường dùng (kiến trúc Intel IA-32)

- Thanh ghi EIP (Instruction Pointer)

+ Chứa địa chỉ của chỉ thị lệnh tiếp theo sẽ thực thi

+ Không thể bị tác động trực tiếp bởi các lệnh

- Thanh ghi ESP (Stack Pointer)

+ Sử dụng làm việc với ngăn xếp

- Thanh ghi EBP (Base Pointer)

+ Sử dụng chung với ESP trong lời gọi hàm và dùng để tham chiếu biến đối số và biến nội tại của hàm

- Thanh ghi EAX

+ Sử dụng trong xử lý số học, logic, chuyển dữ liệu Thao tác nhân chia thường sử dụng thanh ghi này

- Thanh ghi EBX

+ Đóng vai trò thanh ghi địa chỉ

- Thanh ghi ECX

+ Sử dụng như bộ đếm trong các lệnh dịch hay quay bits

- Thanh ghi EDX

+ Sử dụng với EAX trong các thao tác nhân và chia và sử dụng với các thao tác vào ra

- Thanh ghi chỉ số ESI, EDI

Ngày đăng: 14/12/2021, 17:42

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w