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 1Hà Nội, 3-2024
Trang 2NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Hà Nội, ngày 20 tháng 06 năm 2024
NGƯỜI HƯỚNG DẪN
Trang 3Lời cảm ơn 6
Lời cam đoan 6
Danh mục từ ngữ viết tắt 7
1 Tổng quan về Mã độc 8 1.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
1.5 Phân loại mã độc 17
2 Cơ chế hoạt động của mã độc 20 2.1 Cơ chế lây nhiễm của mã độc 20
2.2 Hành vi của mã độc 22
2.3 Cơ chế lẩn trốn của mã độc 23
2.4 Các hình thức trục lợi của mã độc 24
3 Một số phương pháp kiểm thử và phòng chống 26 3.1 Phương pháp phân tích tĩnh 27
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
4 Thực hành phân tích một số loại mã độc 32 4.1 Thực hành phân tích mã độc Wannacry@2017 32
5 Một số kết quả đạt được 49 5.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
6 Tổng kết 53 Tài liệu tham khảo 54
Trang 41.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 36 4.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 51.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 33 4.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 41 5.1 Danh sách các tập tin và mã hash khả nghi chứa mã độc WannaCry 49
Trang 6Trong 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 7Danh 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 8Tổ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ị Đồng thờ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 trong khô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ật cũ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 đối vớ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 ra hậ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ốc gia Do đó, việc hiểu rõ về các loại mã độc và khả năng phân tích chúng đóng vai trò quan trọng trong việc ngăn chặn các hoạt động tội phạm trên mạng.
1.1 Lị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 9thuật toán máy tính được lập trình sẵn Tuy máy Turing còn đơn giản nhưng
nó 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
ra
1.2 Lị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.3 Tì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àn
bộ 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 11dù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ễm
mã độ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.4 Mộ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ảng trong 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 12Mố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ác
dữ 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
WindowAPI
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
Kernel32.dll Đây là một DLL phổ biến và quan trọng nó cho phép chương
trình truy cập và sử dụng bộ nhớ, tệp và phần cứng
Advapi32.dll Đây là một DLL cung cấp quyền truy cập vào các thành phần
Windows cốt lõi như Trình quản lý dịch vụ và Registry
User32.dll DLL này chứa tất cả các thành phần giao diện người dùngGdi32.dll DLL này chứa các chức năng để hiển thị và thao tác đồ họa.Ntdll.dll Thư viện liên kết động này là một phần của hạt nhân Win-
dows Executables generally do not import this file directly,although it is always imported indirectly by Kernel32.dll If
an executable imports this file, it means that the author 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
in-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ện
cá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 13Windows 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 14phâ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ứa
cá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 15IDA (Interactive Disassembler)
IDA, viết tắt của Interactive Disassembler, là một công cụ phân tích mã nguồn ngược (reverse engineering) phổ biến được sử dụng rộng rãi trong lĩnh vực bảo mậ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ép cá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ển
và 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ứu
và 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ại
mã nguồn
Trang 16IDA 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 17là 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 đưa
ra 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ết
kế để 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 18cá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ình
có 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ình
là 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ông
và 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áy
bị 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
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
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
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
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ình
và 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 19Keylogger là phần mềm ghi lại các phím bấm của người dùng Thông tin này
có 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 20Cơ chế hoạt động của mã độc
2.1 Cơ 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ào cá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 21Trê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ật
và 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ương thứ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 22chươ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.2 Hà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ột
số 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ời thự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 tin
hệ 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 23tệ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.3 Cơ 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át hiệ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ứctạ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àm
và 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ần
mã 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ật
là cần thiết để bảo vệ hệ thống khỏi các mối đe dọa từ mã độc
2.4 Cá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 để khai thá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 25cắ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
Ransomware
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 tin
cá 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 virus
và 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 26Mộ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ân tí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ện nay
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 đưa
về 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ã độc
có 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 273.1 Phương pháp phân tích tĩnh
Phươ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ông cầ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 tra chấ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 vi khô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 đề trong
mã 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ữ