1. Trang chủ
  2. » Công Nghệ Thông Tin

Đồ án I - Phân tích mã độc - Đại học Bách Khoa Hà Nội.

54 8 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

nghiên cứu mã nguồn của các loại Mã độc máy tính tìm hiểu cách thức lây lan, các cơ chế lẩn trốn, hoạt động phá hoại của các loại mã độc này từ đó nghiên cứu và tìm hiểu các phương pháp phòng chống

Trang 1

Giảng viên hướng dẫn: TS Vũ Thành Nam

Hà Nội, 3-2024

Trang 2

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN

Trang 3

Lời cảm ơn 6

Lời cam đoan 6

Danh mục từ ngữ viết tắt 7

1Tổng quan về Mã độc81.1 Lịch sử hình thành và phát triển của máy tính 8

1.2 Lịch sử hình thành và phát triển của mã độc 9

1.3 Tình hình mã độc tại Việt Nam và trên thế giới 10

1.4 Một số khái niệm mở đầu 11

3.2 Phương pháp phân tích động 28

3.3 Một số phương pháp phòng chống mã độc 30

4Thực hành phân tích một số loại mã độc324.1 Thực hành phân tích mã độc Wannacry@2017 32

5Một số kết quả đạt được.495.1 Danh sách các tập tin có thể chứa mã độc 49

5.2 Các Tập Tin Có Thể Bị Mã Hóa Bởi WannaCry 50

5.3 Địa Chỉ Ví Bitcoin Sử Dụng Bởi WannaCry 50

5.4 Cơ Chế Hoạt Động Của WannaCry 51

6Tổng kết53Tài liệu tham khảo 54

Trang 4

1.1 Số lượng mã độc từ năm 2008 đến nay theo AV-TEST 10

1.2 Ví dụ hoạt động hàm băm MD5 11

1.3 Cấu trúc của Registry 13

1.4 Giao diện của Regadit 14

2.1 Một cuộc tấn công giả mạo email 20

4.1 Kiến trúc của máy ảo 33

4.2 Máy ảo trên VMware 34

4.3 Kết quả kiểm tra trên VirusTotal 35

4.4 Kết quả trả về là mã độc Wannacry 36

4.5 Kết quả sau khi tiến hành chạy mã nguồn trên máy ảo Windows 7 364.6 Giao diện của Dependency Walker 37

4.7 Các file của mã độc sau khi tiến hành chạy trên máy ảo 38

4.8 Mã giải nén là "WNcry@2017" trong mã nguồn 39

4.9 Các tập tin của mã độc sau khi giải nén 39

4.10 Tập tin b.wnry 40

4.11 Nội dung tập tin c.wnry 41

4.12 Tập tin r.wnry 42

4.13 Mã nguồn thực hiện thao tác với Registry 43

4.14 Mã độc Wannacry tạo khóa registry 43

4.15 Mã độc thực hiện gọi các hàm trong Dll liên quan đến giải mã 45

4.16 Giao diện người dùng Wannacry@2017 45

4.17 Mã độc tiến hành hiển thị thông tin lên giao diện GUI 46

4.18 Mã độc hiển thị bộ đếm thời gian lên giao diện người dùng 46

4.19 Mã độc thực hiện thay đổi hình nền máy tính 47

4.20 Mã độc chạy tệp thực thi taskche.exe 47

4.21 Sơ đồ quá trình thực thi của mã độc wannacry[7] 48

5.1 Luồng hoạt động của mã độc Wannacry 52

Trang 5

1.1 Một số thư viện liên kết động phổ biến 12

1.2 Các loại giá trị trong Registry 14

3.1 Ưu và nhược điểm của các phương pháp phân tích mã độc 26

4.1 So sánh các phương pháp triển khai môi trường phân tích mã độc 334.2 Các Dll được sử dụng trong mã độc Wannacry 38

4.3 Danh sách các tệp tin chứa mã khóa 39

4.4 Danh sách các tệp và mô tả chức năng của chúng 40

4.5 Địa chỉ máy chủ dịch vụ C2 được truy cập c.wnry 415.1 Danh sách các tập tin và mã hash khả nghi chứa mã độc WannaCry 49

Trang 6

Trong quá trình hoàn thành báo cáo môn Đồ án I, em đã nhân được nhiều sựgiúp đỡ đến từ nhà trường, thầy cô và bạn bè.

Em xin chân thành cảm ơn giảng viên hướng dẫn em là TS Vũ Thành Namgiảng viên khoa Toán Ứng Dụng Và Tin Học Đại Học Bách Khoa Hà Nội trongquá trình hoàn thành báo cáo Đồ án I đã tận tình chỉ dạy để em có thể hoàn thànhbáo cáo môn học một cách hoàn thiện nhất.

Em cũng xin cảm ơn đến các thầy cô trong Khoa toán ứng dụng và tin học đãtận tình giảng dạy kiến thức, và chia sẻ những kinh nghiệm quý báu trong cuộcsống giúp chúng em có những hành trang quý báu trước khi bước vào đời.

Cuối cùng em xin cảm ơn bạn bè và gia đình đã quan tâm giúp đỡ trong quátrình hoàn thành Đồ án I.

LỜI CAM ĐOAN

Tôi là Đinh Đức Đạt hiện đang là sinh viên lớp Toán-tin 02K66 Trong quá trìnhhoàn thành Đô án I, Mọi kết quả của Đồ án này đều là do tự bản thân tôi làm việc,học tập mà có Tôi không hề sử dụng bất kỳ hình thức gian lận, đạo văn nào vàokết quả của báo cáo Đồ án I này Mọi trích dẫn, nghiên cứu khoa học đều được tôitrích dẫn và ghi nguồn đầy đủ Nếu có bất kỳ hình thức gian lân nào trong bản báocáo này tôi xin chịu mọi hình thức kỷ luật từ nhà trường và hội đồng phản biện mônĐồ án I.

Lời cuối cùng, Trong quá trình hoàn thành đồ án do kiến thức còn hạn chế vàthời gian hoàn thành gấp rút, Không thể tránh khỏi những sai sót chủ quan Kínhmong thầy cô tham gia phản biện môn Đồ án I, có thể thông cảm và đóng góp đểTôi có thể chỉnh lý và hoàn thiện bản báo cáo này một cách tốt nhất.

Hà Nội, ngày 6 tháng 3 năm 2024

Sinh viên thực hiện

Đinh Đức Đạt

Trang 7

Danh mục từ ngữ viết tắt

• AV-TEST: Viện nghiên cứu độc lập về an toàn thông tin.

• NIST: Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ (National Institute

of Standards and Technology).

• DLL: Thư viện liên kết động.• IDA: Interactive Disassembler.

Trang 8

Tổng quan về Mã độc

Hiện nay, hệ thống mạng và máy tính đã phát triển đến một trình độ cao và trởnên ngày càng phức tạp, không chỉ về công nghệ mà còn về quy mô thiết bị Đồngthời, cùng với sự phát triển đó là sự tiến hóa không ngừng của tội phạm trongkhông gian mạng Tội phạm mạng ngày càng trở nên phổ biến hơn và các kỹ thuậtcũng như phần mềm độc hại mà họ sử dụng càng trở nên phức tạp và tinh vi hơn.Điều này dẫn đến sự gia tăng của tác động tiêu cực từ các phần mềm độc hại đốivới người dùng mạng và máy tính Các ảnh hưởng này có thể lan rộng và gây rahậu quả lớn đến trật tự an ninh, cũng như sự phát triển kinh tế và xã hội của quốcgia Do đó, việc hiểu rõ về các loại mã độc và khả năng phân tích chúng đóng vaitrò quan trọng trong việc ngăn chặn các hoạt động tội phạm trên mạng.

1.1Lịch sử hình thành và phát triển của máy tính

Một máy tính là một thiết bị điện tử có thể lập trình, chấp nhận dữ liệu thô dướidạng đầu vào và xử lý nó với một tập hợp các chỉ thị (chương trình) để tạo ra kếtquả là đầu ra Nó hiển thị kết quả ngay sau khi thực hiện các phép toán toán học vàlogic và có thể lưu kết quả để sử dụng sau này Nó có thể xử lý cả các phép tính sốhọc cũng như không phải số học Việc phát minh ra máy tính đã góp phần to lớntrong việc thúc đẩy các cuộc khoa học kỹ thuật của nhân loại.

• Năm 1801, nhà phát minh Joseph Marie Jacquard đã phát minh ra máy dệt

tự động sử dụng bìa đục lỗ để điều khiển Đây chính là phát minh quan trọngtrong mô hình tính toán của máy tính sau này.

• Năm 1822, nhà toán học Charles Babbage đề xuất một dự án về thiết bị tính

toán chạy bằng hơi nước Ý tưởng sau đó được tài trợ thực hiện bởi chính phủtuy nhiên thất bại.

• Năm 1890, kỹ sư người Mỹ Herman Hollerith đã thiết kế nên hệ thống máy

đọc thể giúp trong việc thống kê dân số nước Mỹ Hệ thống này đã giúp choviệc thống kê dân số diễn ra nhanh chóng và giảm thiểu chi phí hơn so vớiviệc thực hiện thống kê thủ công Sau đó cũng chính Herman Hollerith IBM.

• Năm 1936, Alan Turing, nhà toán học người Anh đã thiết kế nên máy điện

toán gọi là máy Turing Máy Turing là một máy điện toán có thể giải được các

Trang 9

thuật toán máy tính được lập trình sẵn Tuy máy Turing còn đơn giản nhưngnó là nền tảng của hệ thống máy tính hiện đại ngày nay.

• Năm 1939, hãng máy tính Hewlett-Packard hay còn gọi là HP đã được thành

lập bởi hai nhà sáng lập là David Packard và Bill Hewlett Ngày nay HP làmột công ty máy tính nổi tiếng của nước Mỹ

• Năm 1943-1944, hai vị giáo sư đến từ đại học Pennsylvania của Mỹ, John

Mauchly và J Presper Eckert, Đã cùng hợp tác để cùng nhau tạo ra một máyđiện toán có thể thực hiện các phép toán số học được đặt tên là ENIAC Tuynhiên máy tính điện toán này có kich thước khổng lồ tương ứng với một cănphòng 6x12m với 18,000 đèn chân không Điện năng mà cỗ máy này tiêu thụcũng là rất lớn tương đương 140Kw Đây được coi là máy tính điện tử đầutiên của nhân loại và được coi là ông tổ của máy tính hiện đại.

• Năm 1946,Hai vị giáo sư tạo ra máy tính ENIAC cùng nhau rời đại học

Penn-sylvania Đồng thời nhận được khoản đầu tư từ Cục điều tra dân số Mỹ(USCBDOC) để tạo ra máy tính thương mại đầu tiên là ENIVAC nhằm mục đíchthương mại và xử lý công vụ cho chính phủ Mỹ.

• Năm 1947, William Shockley, John Bardeen và Walter Brattain của Bell

Lab-oratory đã cùng nhau sáng chế ra bóng bán dẫn đầu tiên sử dụng vật liệu bándẫn được gọi là (Transitor) Việc phát minh ra Transitor đã đóng một vai tròto lớn trong việc thu nhỏ kích thước và tăng cường hiệu năng của máy tínhđiện tử hiện đại.

• Năm 1953, Ngôn ngữ lập trình đầu tiên là COBOL được Grace Hopper tạo

1.2Lịch sử hình thành và phát triển của mã độc

• Năm 1983, Nhà nghiên cứu virus Fred Dohen phát minh ra thuật ngữ "virus

máy tính" trong một công trình nghiên cứu của mình.

• Năm 1987 Brain, virus máy tính đầu tiên, xuất hiện Brain được viết bởi 2anh em lập trình viên người Pakistan, nó nhiễm vào BOOT SECTOR củađĩa mềm thời ấy là loại 360kb Rồi đến Stoned, virus đầu tiên biết tấn côngvào MASTER BOOT RECORD (MBR) của các loại ổ cứng, khiến máy tínhkhông thể khởi động.

• Năm 1988Phần mềm chống virus (antivirus) đầu tiên được viết bởi một lậptrình viên Indonesia Nó đơn giản tìm và diệt virus Brain, sau đó bảo vệ hệthống không bị nhiễm một lần nữa.

Cũng trong năm nay, virus lây lan thông qua mạng Internet, còn gọi là sâu(worm), ra đời Morris Worm, con sâu rất nổi tiếng khai thác lỗi tràn bộ đệmtrong các máy chủ Unix, hoành hành trên mạng, phá hỏng khoảng 1600 máytính thời bấy giờ.

Trang 10

• Năm 1989 Virus Dark Avenger xuất hiện Nó lây nhiễm vào hệ thống khánhanh, sau đó nằm "mai phục" trong máy tính một thời gian dài rồi mới ratay phá hoại, nên rất lâu sau đó người ta mới phát hiện ra nó IBM cho raphần mềm chống virus đầu tiên Người ta bắt đầu cho việc nghiên cứu cácgiải pháp chống virus.

• Năm 1991 Trên các Bulletin board bắt đầu xuất hiện các bộ "đồ nghề tạovirus" (virus construction kits) cho phép bất kì ai dù không am hiểu về viruscũng có thể dễ dàng tạo ra nó.

Đầu năm theo thăm dò chỉ có 9% các công ty gặp vấn nạn virus nhưng đếncuối năm con số này đã nhảy vọt lên 63%.

1.3Tình hình mã độc tại Việt Nam và trên thế giới

Mể từ khi xuất hiện mã độc đầu tiên vào những năm 1984, theo viện nghiêncưu độc lập về an toàn thông tin AV-TEST, đã có khoảng hơn 120.000.000 mã độcđược phát tán Đặc biệt, trong vòng những năm gần đây, số lượng mã độc phát triểnnhanh chóng trên toàn thế giới đã đặt ra nhiều vấn đề về an ninh thông tin cho toànbộ những người sử dụng Internet trên toàn cầu.

Hình 1.1: Số lượng mã độc từ năm 2008 đến nay theo AV-TEST.

Trong năm 2022, thế giới chứng kiến sự xuất hiện của các loại mã độc mới nhưFileStealer và Macro những loại virus chuyên đánh cắp thông tin từ các hệ thốngđiện toán ở trong khu vực và trên thế giới Các loại mã độc này không chỉ tấn côngcác lĩnh vực kinh tế, chính trị, tôn giáo mà còn nhắm vào nhiều lĩnh vực quan trọngkhác.

Tại Việt Nam, xu hướng tấn công mới đã xuất hiện, trong đó các tổ chức tộiphạm mạng quốc gia tấn công các cơ quan và doanh nghiệp Các loại mã độc mớinhư mã độc dính kèm trong tập tin văn bản và đã được phát tán rộng rãi Người

Trang 11

dùng email thường tiếp xúc với loại mã độc này khi mở các tệp văn bản đi kèmđược gửi qua email hoặc từ các trang web không an toàn chứa mã độc Khi xâmnhập vào máy tính nạn nhân mã độc thực thi các biện pháp kiểm soát toàn bộ máytính nạn nhân, mở cổng hậu(Backdoor), thực hiện các điều khiển của tin tặc từ xathông qua mạng internet Từ đó ghi lại các thao tác màn hình, bàn phím của nạnnhân và đánh cắp thông tin quan trọng trong máy tính của nạn nhân.

Theo BKAV trong năm 2022 có tới 3.000.000 máy tính tại Việt Nam bị lây nhiễmmã độc, gây ảnh hương to lớn tới phát triển kinh tế, xã hội trong nước Để lẩntránh các biện pháp bảo mật các loại mã độc này cũng sử dụng các kỹ thuật mớinhư:DLLSideLoading (ẩn náu dưới các phần mềm hệ thống, phần mềm nổi tiếngnhư Google, Office, Antivirus), fileless (kỹ thuật tàng hình).

1.4Một số khái niệm mở đầu

Mục này được dành ra để trình bày một số nội dung quan trọng làm nền tảngtrong công việc phân tích hành vi của mã độc máy tính trong các chương sau này.

Hàm băm (Hash)

Hàm băm (Hash) là một kỹ thuật quan trọng được sử dụng chủ yếu trong lĩnhvực bảo mật Hàm băm được định nghĩa là một ánh xạ nhận vào một giá trị đầuvào và cho ra một kết quả duy nhất Tuy nhiên từ kết quả đầu ra ta không thể tríchxuất được giá trị đầu vào ban đầu.

Hình 1.2: Ví dụ hoạt động hàm băm MD5

Một số hàm băm phổ biến.

• MD5, Hàm băm MD5 là một trong những hàm băm phổ biến trong quá khứ.

Hàm MD5 được phát triển vào những năm 1991 để thay thế hàm băm MD4vốn đã lỗi thời với khả năng tính toán của máy tính vào thời điểm đó Hàmbăm MD5 mã hóa dữ liệu đầu vào tạo ra 128 bit đầu ra tương đương 32 ký tựtrong hệ thập lục phân Tuy nhiên vào đầu những năm 2000 hàm băm MD5không còn an toàn trước sức mạnh tính toán của máy tính Khiến cho nókhông còn được sử dụng trong thực tế.

• SHA-1, Secure Hash Algorithm (SHA) được phát triển bởi National Institute

of Standard and Technology (NIST) Hàm băm này nhận giá trị đầu vào tốiđa là264bits và cho đầu ra có độ dài 160 bits

• SHA-256, Hàm băm SHA 256 là hàm băm mạnh và linh hoạt Nó biến đồi

giá trị đầu vào và trả lại kết quả có độ dài 256bits Ngày nay SHA-256 vẫnđược sử dụng cho nhiều mục đích khác nhau.

Trang 12

Mốt số ứng dụng của hàm băm.

• Kiểm tra tính toàn vẹn của tập tinNhư đặc điểm của hàm băm, đối với cácdữ liệu đầu vào khác nhau thì sẽ cho ra kết quả băm khác nhau Như vậy đốivới các tập tin cần được truyền tải đi thì ta chỉ cần băm tập tin sau đó phíanhận tập tin cũng thực hiện băm và đối chiếu với kết qủa băm ban đầu Nếuhai kết quả trừng khớp có nghĩa là tập tin toàn vẹn khi gửi đi còn nếu ngượclại thì có nghĩa tập tin đã bị chỉnh sửa hoặc bị lỗi.

• Xác minh mật khẩuTrong các hệ cơ sở dữ liệu hiện đại Các dữ liệu về mậtkhẩu không được lưu dưới dạng tường minh Thay vào đó người ta thực hiệnbăm giá trị mật khẩu và tiến hành lưu giá trị băm đó Điều này là cần thiếtbởi trong quá trình vận hành hệ thống nếu hệ thống bị tấn công bởi tin tăc thìtin tặc hoàn toàn không thể có được tài khoản và mật khẩu.

Thư viện liên kết động (DLL-Dynamic Link Library) DLL là một dạng

chương trình máy tính, là một dạng thư viện có tính năng nâng cao chơ phép cácứng dụng máy tính có thể tham chếu đến và sử dụng nó Tự bản thân DLL khôngthể hoạt động độc lập tuy nhiên Khi có một chương trình có khả năng thực thi thìchương trình sẽ liên kết đến thư viên này và thực thi DLL được coi như là một bộphận của chương trình.

dows Executables generally do not import this file directly,although it is always imported indirectly by Kernel32.dll Ifan executable imports this file, it means that the author in-tended to use functionality not normally available to Win-dows programs Một vài tác vụ, ví dụ ẩn hoạt động và đa tiếntrình, sẽ sử dụng giao thức này.

Ws2.dll Đây là một DLL thực viện công việc kết nối mạng.

Wininet.dll DLL này chứa các chức năng mạng cấp cao hơn thực hiệncác giao thức như FTP, HTTP và NTP.

Bảng 1.1: Một số thư viện liên kết động phổ biến

Trang 13

Windows Registry

Windows Registry là một cơ sở dữ liệu hệ thống quan trọng trong các hệ điều

hành Microsoft Windows Nó lưu trữ thông tin, cài đặt, và các tùy chọn cho hệ điềuhành cũng như các ứng dụng và phần cứng được cài đặt trên máy tính Registry baogồm các mục (key) và giá trị (value), giúp hệ điều hành và các ứng dụng hoạt độngmột cách chính xác và hiệu quả.

Hình 1.3: Cấu trúc của Registry.

Registry được tổ chức thành một cấu trúc phân cấp giống như cây thư mục vớinăm nhánh chính, gọi là "hive", mỗi nhánh chứa các khóa và giá trị Các hive chínhbao gồm:

HKEY_CLASSES_ROOT (HKCR): Chứa thông tin về các liên kết tệp và các

lớp đối tượng COM.

HKEY_CURRENT_USER (HKCU): Chứa các cài đặt và cấu hình của người

dùng hiện tại đang đăng nhập.

HKEY_LOCAL_MACHINE (HKLM): Chứa các thiết lập và cấu hình phần

cứng, phần mềm áp dụng cho tất cả người dùng trên máy tính.

HKEY_USERS (HKU): Chứa các cấu hình và thông tin cho tất cả người dùng

Trang 14

phân cấp của Registry Mỗi key có thể chứa các subkey (khóa con) hoặc các giá trị.Mội key trong Registry được lưu trữ các giá trị (value), Mỗi giá trị có một tên vàmột loại dữ liệu (như chuỗi ký tự, số, hoặc dữ liệu nhị phân) được trình bày theobảng dưới đây.

dùng để lưu trữ dữ liệu cấuhình phần cứng.

Multi-String (REG_MULTI_SZ) Giá trị chứa nhiều chuỗi kýtự.

Expandable String (REG_EXPAND_SZ) Giá trị chuỗi có thể chứacác biến môi trường.

Bảng 1.2: Các loại giá trị trong Registry.

Người dùng có thể truy cập và chỉnh sửa Registry thông qua công cụ RegistryEditor (regedit) Tuy nhiên, việc chỉnh sửa Registry cần được thực hiện cẩn thận vìcác thay đổi sai lầm có thể gây ra lỗi hệ thống nghiêm trọng.

Hình 1.4: Giao diện của Regadit.

Windows Registry là một thành phần cốt lõi của hệ điều hành Windows, chứathông tin quan trọng giúp hệ thống và ứng dụng hoạt động hiệu quả Việc quản lývà chỉnh sửa Registry yêu cầu kiến thức và kỹ năng để đảm bảo không gây ra cácvấn đề nghiêm trọng cho hệ thống.

Trang 15

IDA (Interactive Disassembler)

IDA, viết tắt của Interactive Disassembler, là một công cụ phân tích mã nguồnngược (reverse engineering) phổ biến được sử dụng rộng rãi trong lĩnh vực bảomật máy tính và kỹ thuật phần mềm Được phát triển bởi Hex-Rays, IDA cho phépcác nhà phân tích kiểm tra và hiểu mã máy nhị phân (binary code) của phần mềm,ngay cả khi mã nguồn gốc không có sẵn[2] Dưới đây là một số điểm nổi bật về IDA

Tính năng chính của IDA

• Disassembly Tương tác:IDA cung cấp khả năng phân giải mã máy nhị phânthành mã hợp ngữ (assembly code), cho phép người dùng tương tác và chỉnhsửa trong quá trình phân tích.

• Hỗ trợ Đa Nền Tảng: IDA hỗ trợ nhiều kiến trúc vi xử lý và hệ điều hànhkhác nhau, bao gồm x86, x64, ARM, MIPS, PowerPC, và nhiều loại khác.

• Tự Động và Thủ Công:IDA kết hợp giữa các tính năng phân tích tự động vàkhả năng can thiệp thủ công của người dùng, cho phép tối ưu hóa quá trìnhphân tích.

• Hình Ảnh Chức Năng (Function Graphs): Công cụ này có thể tạo ra cácđồ thị mô tả mối quan hệ giữa các hàm, giúp dễ dàng hiểu luồng điều khiểnvà cấu trúc của phần mềm.

• Scripting và API:IDA cung cấp khả năng sử dụng ngôn ngữ kịch bản ing) như IDC (IDA Scripting Language) và Python để tự động hóa các tác vụphân tích.

(script-• Hex-Rays Decompiler:Được cung cấp dưới dạng một plugin bổ sung, Rays Decompiler chuyển đổi mã hợp ngữ trở lại dạng mã nguồn C mức cao,giúp dễ hiểu hơn.

Hex-Ứng dụng của IDA

• Phân Tích Malware:Các nhà phân tích bảo mật sử dụng IDA để nghiên cứuvà hiểu cấu trúc của mã độc (malware), từ đó phát hiện các hành vi xấu vàphát triển các biện pháp phòng chống.

• Nghiên Cứu Bảo Mật: Các nhà nghiên cứu sử dụng IDA để tìm ra lỗ hổngbảo mật trong phần mềm và phần cứng, từ đó đề xuất các biện pháp khắcphục.

• Kỹ Thuật Phần Mềm: Các kỹ sư phần mềm dùng IDA để hiểu và duy trìmã nguồn của các phần mềm không có tài liệu đầy đủ hoặc đã mất mã nguồngốc.

• Nghịch Đảo Phần Mềm (Reverse Engineering):IDA giúp các kỹ sư phântích và tương tác với mã máy nhị phân để trích xuất thông tin hoặc tái tạo lạimã nguồn.

Trang 16

IDA là một công cụ mạnh mẽ và linh hoạt, được sử dụng rộng rãi trong cộngđồng bảo mật và kỹ thuật phần mềm Khả năng phân tích mã nguồn ngược của IDAkhông chỉ hỗ trợ việc phát hiện và khắc phục các lỗ hổng bảo mật, mà còn giúphiểu rõ hơn về hoạt động nội tại của phần mềm và phần cứng.

Trang 17

1.5Phân loại mã độc

Trong tài liệu của NIST có một số khác biệt theo định nghĩa và cách hiểu thôngthường về Virus máy tính đang thông dụng Ngay trong tên của tài liệu đã nêu lênsự khác biệt, các tác giả nói tới "Malware" chứ không sử dụng thuật ngữ "Virus".Tại Việt Nam hiện nay, thuật ngữ "Virus máy tính" được dùng hết sức rộng rãi vàbao hàm tất cả các dạng mã độc hại trên mạng, trong máy tính cá nhân Khi nóiđến "Virus máy tính", một cách rất tự nhiên tất cả mọi người đều nghĩ Virus baogồm cả Worm, Trojan, Keylogger Trong khi theo định nghĩa của NIST (và gần nhưlà của cả cộng đồng IT) Virus, Worm, Trojan horse, Adware, Spyware, Backdoor,Botnet, Launcher, Rootkit, chỉ là một dạng của mã độc hại.

Sự khác biệt này dẫn tới một số khó khăn, ví dụ như khi trao đổi với các tổ chứcquốc tế về an toàn thông tin, trao đổi với hỗ trợ kỹ thuật từ các Trung tâm phòngchống Virus của nước ngoài do không đồng nhất về định nghĩa Phía Việt Namthông báo "bị Virus tấn công", đối tác sẽ gửi lại một chi dẫn để quét tập tin bịnhiễm trên PC, nhưng thực chất đó là một cuộc tấn công của Worm và phải phòngchống trên toàn bộ mạng Do vậy phần này sẽ tập trung vào việc phân loại và giớithiệu về một số loại mã độc với các chức năng và mục đích hoạt động khác nhau.

Trong quá trình thực hiện phân tích mã độc, quan sát cho thấy rằng việc đưara những giả thuyết có cơ sở về mục đích của mã độc và sau đó xác nhận chúngthường giúp tăng tốc độ phân tích Tất nhiên, khả năng đưa ra những giả thuyếtchính xác sẽ được cải thiện nếu có kiến thức vững về những loại hoạt động phổbiến của mã độc Với mục tiêu đó, dưới đây là các mục phân loại mà hầu hết cácloại mã độc thuộc vào:

Virus máy tính Trong lĩnh vực khoa học máy tính, các chương trình hoặc đoạn

mã được gọi là “Virus máy tính” (thường được rút gọn thành “Virus”) được thiếtkế để tự sao chép và nhân bản chính nó vào các đối tượng khác như tập tin, ổ đĩa,máy tính, v.v .

Trong quá khứ, Virus thường được tạo ra bởi những người có kiến thức về lậptrình nhằm chứng minh khả năng của họ Do đó, Virus thường gây ra các hànhđộng phá hoại như làm cho chương trình không hoạt động như mong đợi, xóa dữliệu, hoặc làm hỏng ổ cứng.

Tuy nhiên, các Virus mới được tạo ra gần đây không còn tập trung vào việcgây ra sự phá hoại hoặc trò đùa với máy tính của nạn nhân Thay vào đó, họ chủyếu nhằm vào việc lấy cắp thông tin cá nhân nhạy cảm như mã số thẻ tín dụng,tài khoản, tài liệu mật, v.v Điều này cho phép tin tặc đột nhập và chiếm quyềnđiều khiển máy tính hoặc thực hiện các hành động khác nhằm mang lại lợi ích chongười phát tán Virus.

Hơn 90%số Virus đã được phát hiện nhắm vào hệ thống sử dụng hệ điều hànhWindows, đơn giản bởi vì hệ điều hành này được sử dụng phổ biến nhất trên thếgiới Do đó, các tin tặc thường tập trung hơn vào hệ điều hành Windows so vớicác hệ điều hành khác Ngày nay, ngoài những mẫu Virus thông thường, đã xuấthiện những biến thể Virus với các kỹ thuật tinh vi hơn, cụ thể là Virus đa hình(polymorphic) và siêu đa hình (meta-polymorphic).

Virus đa hình khác với các loại Virus thông thường ở chỗ Virus thông thườngluôn giữ nguyên mã lệnh của mình, chính vì vậy chúng dễ dàng bị phát hiện bởi

Trang 18

các phần mềm diệt Virus Nhưng Virus đa hình có khả năng tự động biến đổi mãlệnh và tạo ra các dạng mã độc khác nhau (sử dụng thuật toán trên thời gian và đốitượng lây nhiễm) trong mỗi lần lây nhiễm Khả năng này giúp cho Virus đa hìnhcó thể lẩn tránh khỏi sự truy quét của các phần mềm diệt Virus Virus siêu đa hìnhlà thế hệ cao hon của Virus da hinh, chúng cao cấp hon ở chỗ hình thức tạo ra vàkết hợp nhiều kiểu đa hình khác nhau Khả năng lây nhiểm cao chúng sẽ tự độngbiến đổi, tái tập hợp và tạo ra các thế hệ virus con từ F1 Fn Sau mỗi lần tái tậphợp thì khả năng phát hiện ra chúng ngày càng khó khăn, chính vi vậy virus siêuđa hình có khả năng qua mắt được hầu hết các phần mềm diệt virus hiện nay[4].

Sâu máy tính

Sâu máy tính (Worm) là một dạng mã độc có khả năng tự nhân bản, tự tấn côngvà tự tìm cách lan truyền qua hệ thống mạng (thường là qua hệ thống thư điện tửvà các lỗ hổng trong hệ điều hành) Điểm cần lưu ý là ngoài tác hại thẳng lên máybị nhiễm, nhiệm vụ chính của sâu máy tính là phá các mạng thông tin, làm giảmkhả năng hoạt động hoặc có thể được dùng để đánh cắp thông tin nhạy cảm từ cácmạng này.

Worm nổi tiếng nhất được tạo bởi Robert Morris vào năm 1988 Nó có thể làmhỏng bất kỳ hệ điều hành UNIX nào trên Internet Trong năm 2001, sâu máy tínhđỏ xuất hiện và tấn công vào các máy Windows để khai thác lỗ hổng trên máy chủweb IIS Sâu này đã tạo ra một kỷ lục về tốc độ lây lan khi chỉ trong một ngày19-07-2001 đã có hơn 359.000 máy tính bị nhiễm.

Trojan Horse

Trojan, hay Trojan Horse, là một loại mã độc giả dạng là phần mềm hợp pháp đểlừa người dùng cài đặt Một khi được cài đặt, Trojan có thể mở cửa hậu (backdoor)cho hacker truy cập và điều khiển hệ thống.

Ransomware là một loại mã độc mã hóa dữ liệu của nạn nhân và yêu cầu mộtkhoản tiền chuộc để giải mã Ransomware thường lây lan qua email đính kèm hoặccác trang web độc hại.

Spyware là phần mềm gián điệp được cài đặt trên máy tính mà người dùngkhông hề hay biết Nó thu thập thông tin cá nhân và gửi về cho kẻ tấn công Spywarethường đi kèm với phần mềm miễn phí tải về từ internet.

Adware là phần mềm hiển thị quảng cáo trên máy tính của người dùng Mặc dùkhông gây hại trực tiếp, nhưng adware có thể làm giảm hiệu suất máy tính và gâykhó chịu cho người dùng.

Rootkit là một tập hợp các công cụ phần mềm được thiết kế để ẩn các quá trìnhvà chương trình khỏi sự phát hiện của hệ điều hành và phần mềm bảo mật Rootkitthường được sử dụng để duy trì quyền truy cập không bị phát hiện vào hệ thống.

Trang 19

Keylogger là phần mềm ghi lại các phím bấm của người dùng Thông tin nàycó thể được sử dụng để đánh cắp mật khẩu, thông tin thẻ tín dụng và các dữ liệunhạy cảm khác.

Trang 20

Cơ chế hoạt động của mã độc

2.1Cơ chế lây nhiễm của mã độc

Trong mục này, chúng ta tập trung vào việc phân tích cơ chế lây nhiễm của mãđộc Mục đích của nghiên cứu là hiểu rõ hơn về cách mà mã độc lây nhiễm vàocác hệ thống và thiết bị, từ đó giúp cải thiện phòng chống và bảo vệ hệ thống mạng.

Phương thức lây nhiễm thông qua tệp đính kèm

Email Phishing Attacks là một trong những phương thức phổ biến nhất để lây

nhiễm mã độc là thông qua các email giả mạo Kẻ tấn công thường gửi email giảmạo từ các nguồn tin cậy hoặc tổ chức đáng tin cậy, đính kèm với các tệp tin có vẻnhư là tài liệu hợp lệ như file Word, Excel, PDF, hoặc ZIP Khi người dùng mở tệptin đính kèm, mã độc sẽ được kích hoạt và lan truyền trên hệ thống của họ.

Hình 2.1: Một cuộc tấn công giả mạo email.

Trang 21

Trên không gian mạng, cuộc tấn công giả mạo email đã trở thành một trongnhững mối đe dọa nghiêm trọng nhất đối với các tổ chức và cá nhân Mặc dù cósự tiến bộ trong công nghệ an ninh mạng, nhưng thực tế cho thấy rằng cuộc tấncông giả mạo email thường không đòi hỏi sự phức tạp trong các kỹ thuật kỹ thuậtvà công nghệ Thay vào đó, chúng tập trung vào việc lợi dụng mặt xã hội của conngười để đạt được mục tiêu của mình.

Tin tặc thường lợi dụng lòng tin của nạn nhân đối với các thông tin quan trọng.Bằng cách giả mạo các nguồn tin cậy hoặc tổ chức đáng tin cậy, chúng gửi cácemail giả mạo đính kèm với các tệp tin hoặc liên kết có chứa mã độc Mục đích củacuộc tấn công này không phải là tìm kiếm các lỗ hổng bảo mật phức tạp, mà là đểlừa đảo nạn nhân và khiến họ mở ra các tệp tin độc hại.

Mặc dù tỷ lệ nạn nhân của mỗi cuộc tấn công giả mạo email có thể không lớn,nhưng số lượng nạn nhân tiềm năng của chúng là vô cùng lớn Bằng cách gửi hàngloạt email giả mạo đến một lượng lớn người dùng mạng, tin tặc có thể tạo ra mộtảnh hưởng rộng lớn và gây ra thiệt hại to lớn cho người dùng và tổ chức.

Do đó, để đối phó với cuộc tấn công giả mạo email, cần có một phương pháptoàn diện kết hợp cả giáo dục an ninh mạng và cải thiện hệ thống phòng chốngspam và malware Nhận thức và cảnh giác của người dùng cũng đóng vai trò quantrọng trong việc ngăn chặn sự lan truyền của các cuộc tấn công này.

Phương thức tấn công của Trojan

Trojan thường bao gồm hai thành phần chính là client và server Khi máy tínhcủa người dùng bị lây nhiễm Trojan, nó sẽ trở thành một server và mở một cổng đểtiếp nhận kết nối từ client của kẻ tấn công đến địa chỉ IP của nạn nhân Thành phầnserver của Trojan sẽ ẩn mình trong bộ nhớ và tiến hành các thay đổi bên trong hệthống.

Trojan còn tạo các đường dẫn khởi động trong registry hoặc trong các tệp hệthống như autoexec.bat, win.ini, hoặc các tệp hệ thống khác Nhờ đó, thành phầnserver của Trojan sẽ tự khởi động cùng với hệ điều hành Windows trong các phiênlàm việc tiếp theo.

Phương thức lây nhiễm của sâu máy tính (Worm).

Yếu tố ban đầu của Worm là một đoạn mã độc hại có vai trò như một công cụxâm nhập các lỗ hổng bảo mật nằm trên máy tính và khai thác chúng Worm sẽđược truyền đi thông qua các lỗ hổng này.

Một khi các đoạn mã độc hại đã được lây nhiễm vào máy, Worm sẽ sử dụng cáccông cụ được thiết kế để dò tìm và phát hiện các máy tính khác được kết nối vàomạng Từ đó, nó sẽ quét các máy tính trên mạng để xác định vị trí các lỗ hổng Sau

đó, Worm sẽ sử dụng công cụ xâm nhập để truy cập vào các máy tính này Phươngthức lây nhiễm của Virus

Dựa trên hành vi, Virus được chia thành hai loại:

• Nonresident Viruses: Đây là loại Virus tìm kiếm các máy chủ có thể bịnhiễm và lây nhiễm sang các mục tiêu này, sau đó chuyển điều khiển tới

Trang 22

chương trình ứng dụng mà chúng lây nhiễm.

• Resident Viruses:Loại Virus này không tìm kiếm các máy chủ mà thao vàođó, chúng tải vào bộ nhớ để thực thi và kiểm soát chương trình chủ Virusnày được hoạt động ở chế độ nền và lây nhiễm vào các máy chủ mới khi cáctệp tin được truy cập bởi các chương trình hoặc hệ điều hành từ các máy tínhkhác.

Nonresident Viruses bao gồm một module tìm kiếm và một module nhân bản.Các mô-đun tìm kiếm chịu trách nhiệm cho việc tìm kiếm các tệp tin mới để lâynhiễm Với mỗi tệp tin thực thi mà module tìm kiếm phát hiện, nó sẽ gọi tới modulenhân bản để lây nhiễm vào các tệp tin này.

Resident Viruses gồm một module nhân bản hoạt động tương tự như modulenhân bản của Nonresident Viruses Tuy nhiên, module nhân bản này không đượcgọi bởi module tìm kiếm Virus tải module nhân bản vào trong bộ nhớ khi nó đượckích hoạt và module này thực thi tại thời điểm hệ điều hành hoặc hệ thống một hoạtđộng nhất định nào đó.

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

Sau khi lây nhiễm thành công vào máy tính nạn nhân mã độc thực hiện mộtsố hành vi nhằm che giấu sự hiện diện của nó trên máy tính nạn nhân đồng thờithực hiện khởi tạo môi trường cho việc tải một mã độc khác,nhân bản chính nó,khởi chạy cùng với hệ điều hành v.v Dưới đây là một hành vi tiêu biểu của mã độc:

Thay đổi hệ thống tập tin: Mã độc có thể tạo ra các tệp tin mới trên hệ thống,

bao gồm cả các tệp thực thi và tệp cấu hình Các tệp này có thể chứa mã độc hạihoặc dữ liệu mà mã độc thu thập được Đồng thời mã độc có thể thay đổi nội dungcủa các tệp tin hệ thống hoặc tệp tin cấu hình để thực hiện hành vi độc hại hoặcđể tự động khởi động khi hệ thống khởi động lại Ví dụ, mã độc có thể chỉnh sửatệp hosts để chuyển hướng truy cập web hoặc thay đổi tệp win.ini, system.ini, hoặcautoexec.bat trên hệ thống Windows cũ.

Thay Đổi Registry: Mã độc thường thêm hoặc sửa đổi các khóa registry để

thiết lập khởi động tự động khi hệ thống khởi động Điều này đảm bảo mã độc sẽhoạt động mỗi khi máy tính được bật lên Mã độc cũng có thể thay đổi các khóaregistry hiện có để thay đổi hành vi của hệ điều hành hoặc các ứng dụng đã cài đặt.

Chiếm Quyền Điều Khiển Tệp Tin: Mã độc có thể thay đổi quyền truy cập

của các tệp tin để ngăn chặn người dùng hoặc phần mềm bảo mật xóa hoặc sửa đổicác tệp tin độc hại Một số loại mã độc có thể chiếm quyền điều khiển các tệp tinhệ thống quan trọng, chẳng hạn như tệp thực thi của các phần mềm bảo mật, đểngăn chặn chúng hoạt động hoặc cập nhật.

Sử Dụng Kỹ Thuật Xâu Chuỗi (File Patching): Mã độc có thể chèn mã độc

hại vào các tệp hợp pháp trên hệ thống để tận dụng quyền hạn và sự tin cậy của các

Trang 23

tệp này Đây là một kỹ thuật phổ biến của các loại virus và trojan.

Thu Thập Thông Tin: Mã độc thực hiện hành vi ghi lại mọi thao tác bàn phím

của người dùng để thu thập thông tin nhạy cảm như mật khẩu, thông tin thẻ tíndụng, và các thông tin cá nhân khác Hoặc cũng có thể là chiếm quyền điều khiêncamera để thu thập dữ liệu sinh trắc học của nạn nhân, Truy cập và các tệp tin trongmáy nạn nhân để thực hiện đánh cắp các thông tin quan trọng.

2.3Cơ chế lẩn trốn của mã độc

Mã độc (malware) sử dụng nhiều kỹ thuật phức tạp để lẩn trốn và tránh bị pháthiện bởi các hệ thống bảo mật và phần mềm chống virus Dưới đây là một số cơchế phổ biến mà mã độc sử dụng để lẩn trốn

Kỹ thuật Obfuscation (Làm rối) Mã độc thường được làm rối để làm cho mã

nguồn của nó khó hiểu hơn đối với con người và các chương trình phân tích.• Mã hóa: Mã độc có thể tự mã hóa hoặc sử dụng các thuật toán mã hóa phức

tạp để che giấu mã thực thi.

• Xáo trộn mã (Code Obfuscation): Sử dụng các kỹ thuật như đổi tên biến, hàmvà chia nhỏ mã để làm cho mã nguồn khó đọc và khó phân tích.

Kỹ thuật Polymorphism và Metamorphism Mã độc sử dụng các kỹ thuật này để

thay đổi hình dạng của mình một cách tự động mỗi khi lây nhiễm, làm cho việcnhận diện trở nên khó khăn hơn.

• Polymorphism: Mã độc tự thay đổi đoạn mã của nó mỗi khi thực thi, nhưngvẫn giữ nguyên chức năng Điều này thường được thực hiện bằng cách mãhóa mã độc với một khóa khác nhau mỗi lần lây nhiễm.

• Metamorphism: Mã độc tự thay đổi cấu trúc và logic của mã mà không cầnmã hóa Điều này tạo ra các biến thể hoàn toàn khác nhau của mã độc.

Rootkit Rootkit là một loại mã độc được thiết kế để giành quyền truy cập và kiểm

soát sâu vào hệ thống mà không bị phát hiện.

• Kernel-mode Rootkit: Can thiệp trực tiếp vào kernel của hệ điều hành, làmcho mã độc có thể ẩn mình khỏi các phần mềm chống virus và các công cụbảo mật khác.

• User-mode Rootkit: Can thiệp vào các tiến trình và dịch vụ ở cấp độ ngườidùng, giúp mã độc ẩn mình khỏi các chương trình giám sát ở mức người dùng.

Tấn công vào Phần Mềm Bảo Mật Mã độc có thể tấn công hoặc vô hiệu hóa phần

mềm bảo mật để tránh bị phát hiện.

• Kỹ thuật tắt phần mềm bảo mật: Tấn công trực tiếp vào các chương trìnhchống virus hoặc tường lửa và vô hiệu hóa chúng.

Trang 24

• Tấn công gián điệp (Anti-Debugging): Phát hiện và chống lại các công cụphân tích mã độc bằng cách nhận diện môi trường ảo hoặc công cụ gỡ lỗi vàthay đổi hành vi của mã độc để tránh bị phân tích.

Kỹ thuật Lẩn Trốn Bằng Môi Trường Mã độc có thể thay đổi hành vi của mình

dựa trên môi trường mà nó phát hiện.

• Phát hiện môi trường ảo hóa: Nếu mã độc phát hiện rằng nó đang chạy trongmột môi trường ảo (như máy ảo), nó có thể ngừng hoạt động hoặc thay đổihành vi để tránh bị phân tích.

• Kỹ thuật dựa trên thời gian: Mã độc có thể chỉ thực hiện hành động độc hạisau một khoảng thời gian nhất định hoặc vào các thời điểm cụ thể để tránh bịphát hiện ngay lập tức.

Kỹ thuật Hiding File và Process Mã độc sử dụng các kỹ thuật để ẩn các tệp và

tiến trình của mình khỏi hệ thống và người dùng.

• Tệp ẩn: Tạo các tệp hệ thống ẩn hoặc sử dụng các kỹ thuật mã hóa để giấutệp tin khỏi người dùng và phần mềm bảo mật.

• Tiến trình ẩn: Sử dụng kỹ thuật tiêm mã vào các tiến trình hợp lệ hoặc tạocác tiến trình ẩn để tránh bị phát hiện.

Sử dụng Chữ Ký Số Hợp Lệ Mã độc có thể được ký bằng các chứng chỉ số hợp lệ

để vượt qua các kiểm tra bảo mật.

• Chữ ký số: Sử dụng chứng chỉ số hợp lệ để làm cho mã độc trông giống nhưphần mềm hợp pháp và giảm thiểu khả năng bị phần mềm chống virus pháthiện.

Kết Luận: Mã độc ngày càng trở nên tinh vi với nhiều kỹ thuật phức tạp để

lẩn trốn và tránh bị phát hiện Hiểu rõ các cơ chế này giúp các chuyên gia an ninhmạng phát triển các biện pháp phòng ngừa và phát hiện hiệu quả hơn Việc nângcao nhận thức về an ninh mạng và cập nhật thường xuyên các phần mềm bảo mậtlà cần thiết để bảo vệ hệ thống khỏi các mối đe dọa từ mã độc.

2.4Các hình thức trục lợi của mã độc.

Mã độc có nhiều cách để trục lợi từ nạn nhân, tùy thuộc vào mục đích của kẻtấn công Dưới đây là một số phương thức phổ biến mà mã độc sử dụng để khaithác và trục lợi từ nạn nhân.

Thu thập thông tin cá nhân

Mã độc có thể được thiết kế để thu thập thông tin cá nhân từ máy tính hoặcthiết bị người dùng, như tên đăng nhập, mật khẩu, thông tin tài khoản ngân hàng,và thông tin cá nhân khác Thông tin này sau đó có thể được sử dụng cho việc đánh

Trang 25

cắp danh tính hoặc thực hiện các hoạt động gian lận khác.

Tấn công tiền điện tử (cryptojacking)

Mã độc có thể sử dụng tài nguyên của máy tính, chẳng hạn như CPU và GPU,để đào tiền điện tử mà không được sự cho phép của người dùng Điều này có thểdẫn đến tăng nhiệt độ máy tính, giảm hiệu suất và tăng hóa đơn điện năng.

Mã độc ransomware mã hóa dữ liệu trên máy tính của nạn nhân và yêu cầu mộtkhoản tiền chuộc để giải mã Nếu không trả tiền, dữ liệu của nạn nhân có thể bịmất hoặc bị tiết lộ Đây là một hình thức tống tiền kỹ thuật số phổ biến và có thểgây ra tổn thất tài chính và tổn thất dữ liệu nghiêm trọng cho các tổ chức và cá nhân.

Sử dụng để tấn công và kiểm soát máy tính từ xa

Mã độc có thể được sử dụng để kiểm soát máy tính của nạn nhân từ xa, chophép tin tặc thực hiện các hành động không được phép như cài đặt phần mềm độchại bổ sung, theo dõi hoạt động của người dùng, hoặc thậm chí lấy quyền kiểm soáthoàn toàn của máy tính.

Phát tán thông điệp lừa đảo và scam

Mã độc có thể được sử dụng để phát tán các thông điệp lừa đảo, như email lừađảo hoặc trang web giả mạo, nhằm mục đích lừa đảo người dùng và lấy thông tincá nhân hoặc tài khoản tài chính của họ.

Phát tán quảng cáo không mong muốn (adware)

Mã độc adware thường được cài đặt mà không được sự cho phép của ngườidùng và hiển thị quảng cáo không mong muốn trên máy tính của họ Những quảngcáo này có thể gây phiền toái và làm giảm trải nghiệm sử dụng của người dùng.

Những hình thức trên chỉ là một phần nhỏ của cách mã độc có thể được sử dụngđể trục lợi Để bảo vệ máy tính và dữ liệu của mình, người dùng nên thực hiện cácbiện pháp an ninh mạng như cập nhật phần mềm, sử dụng phần mềm chống virusvà firewall, và cẩn thận khi mở các tệp đính kèm và truy cập vào các trang webkhông an toàn.

Trang 26

Một số phương pháp kiểm thửvà phòng chống

Chương này được dành ra để trình bày về các phương pháp phân tích mã độc.Đi sâu vào hai phương pháp phân tích mã độc phổ biến là phân tích động và phântích tĩnh đồng thời trình bày về các phần mềm và môi trường phân tích mã độc hiệnnay

Static Analysis Không thực hiện chạy mãđộc giảm thiểu nguy cơ lâylan và phá hủy hệ thống.Dễ thực hiện và khôngyêu cầu quá nhiều phầnmềm chuyên dụng

Không thực hiện chạy Mãđộc nên khó có thể làm rõcác hành động của mã độc.Phân tích tĩnh cần đưavề dạng hợp ngữ Asemblynên cần phải có kinhnghiệm lập trình hợp ngữDynamic Analysis Giám sát được tất cả các

hoạt động của mã độcthông qua việc chạy trựctiếp mã độc.

Giám sát được tác độngcủa mã độc lên hệ thông.

Khi thực hiện chạy mã độccó thể khiến máy tính bịnhiễm mã độc.

Cần cài đặt môi trường ảohóa trước khi tiến hànhphân tích

Bảng 3.1: Ưu và nhược điểm của các phương pháp phân tích mã độc.

Trang 27

3.1Phương pháp phân tích tĩnhPhương Pháp Phân Tích Tĩnh

Phân tích tĩnh là phương pháp phân tích mã nguồn của phần mềm mà khôngcần chạy nó Đây là một kỹ thuật quan trọng trong lĩnh vực bảo mật và kiểm trachất lượng phần mềm, cho phép phát hiện các lỗi, lỗ hổng bảo mật, và hành vikhông mong muốn trong mã nguồn.Trong mục này sẽ trình bày về các bước đểthực hiện phân tích mã nguồn của phần mềm.

Đọc và Hiểu Mã Nguồn

Bước đầu tiên trong phân tích tĩnh là đọc và hiểu mã nguồn của phần mềm Đêthực hiện đọc và hiểu mã nguồn đòi hỏi người phân tích phải có kiến thức về ngônngữ lập trình được sử dụng và logic của chương trình.

• Kiểm tra cú pháp:Đảm bảo rằng mã nguồn không chứa lỗi cú pháp.

• Hiểu logic:Hiểu được luồng điều khiển và cấu trúc của chương trình.

Sử dụng Công Cụ Phân Tích Tĩnh

Có nhiều công cụ phân tích tĩnh tự động có thể giúp phát hiện các vấn đề trongmã nguồn Các công cụ này có thể kiểm tra các mẫu mã độc, lỗ hổng bảo mật, vàcác lỗi phổ biến.

• Linting tools: Công cụ như ESLint, Pylint giúp phát hiện lỗi cú pháp và cácvấn đề phong cách lập trình.

• Static analysis tools:Công cụ như SonarQube, Fortify Static Code Analyzergiúp phát hiện lỗ hổng bảo mật và các lỗi logic trong mã nguồn.

Phân Tích Mã Hợp Ngữ

Khi mã nguồn không có sẵn, có thể cần phải phân tích mã hợp ngữ (assemblycode) Trường hợp này thường gặp trong phân tích mã độc hoặc phần mềm đónggói (binary analysis).

• Disassemblers: Sử dụng các công cụ như IDA Pro để chuyển mã máy nhịphân thành mã hợp ngữ dễ đọc hơn Thông thường các công cụ như IDAthường cho phép dịch ngược mã nguồn thành các ngôn ngữ bậc cao hơn nhưC/C++ giúp cho công việc thuận tiện hơn.

• Kiểm tra các hàm và gọi hàm: Hiểu được cách các hàm và gọi hàm đượctriển khai trong mã hợp ngữ.

Tìm Kiếm Mẫu Mã Độc

Phân tích tĩnh cũng có thể bao gồm việc tìm kiếm các mẫu mã độc trong mãnguồn Công việc này thường được thực hiện bằng cách so sánh mã nguồn với cơsở dữ liệu các mẫu mã độc đã biết.

Ngày đăng: 22/06/2024, 19:17

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w