Câu hỏi: IAM302 Phân tích mã độc và kỹ thuật dịch ngược – Bộ ôn tập thi lại số 2
50 câu trắc nghiệm kèm lời giải của môn IAM302 - Phân tích mã độc và kỹ thuật dịch ngược, xếp đúng thứ tự trong đề.
Danh sách câu hỏi
20/50 câuCòn 30
AUser-mode debugging
BKernel-mode debugging
CNetwork debugging
DApplication debugging
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Kernel-mode debugging". Gỡ lỗi chế độ nhân (kernel-mode debugging) cho phép soi mã chạy ở Ring 0 như driver, rootkit, các cấu trúc nhân như EPROCESS và bảng hệ thống, nên cho cái nhìn sâu về tiến trình mức hệ thống; nhưng nó khó hơn vì dừng nhân là dừng cả máy, thường phải dùng hai máy hoặc máy ảo nối với WinDbg qua cổng nối tiếp hay mạng, và một thao tác sai có thể gây màn hình xanh. Bác: "User-mode debugging" dễ hơn, chỉ gắn vào một tiến trình bằng OllyDbg hay x64dbg, nhưng không nhìn được vào nhân. "Network debugging" là gỡ lỗi kết nối hay giao thức mạng, không phải chế độ gỡ lỗi theo mức đặc quyền; mạng chỉ là kênh truyền khi gỡ lỗi nhân từ xa. "Application debugging" thực chất là gỡ lỗi một ứng dụng ở chế độ người dùng, cũng không chạm tới thành phần mức hệ thống.
2What is static analysis in malware analysis?4 lựa chọn
ARunning the malware in a controlled environment
BAnalyzing the behavior of malware as it executes
CExamining the code and structure of malware without executing it
DMonitoring network traffic for signs of malware activity
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Examining the code and structure of malware without executing it". Phân tích tĩnh (static analysis) xem xét mẫu mà không cho nó chạy: tính mã băm, trích chuỗi bằng strings, đọc header và bảng import của tệp PE bằng PEview hay PEiD, rồi ở mức nâng cao dịch ngược mã bằng IDA Pro hoặc Ghidra; cách này an toàn vì mẫu không thực thi, nhưng dễ bị cản bởi packer và kỹ thuật làm rối mã. "Running the malware in a controlled environment" là định nghĩa của phân tích động, mẫu phải chạy. "Analyzing the behavior of malware as it executes" cũng thuộc phân tích động vì quan sát hành vi trong lúc chạy. "Monitoring network traffic for signs of malware activity" là giám sát mạng, thuộc phân tích động hoặc hệ thống phát hiện xâm nhập (IDS), không phải phân tích tĩnh.
AWriting new types of malware for research
BDetecting and analyzing malware purely for academic purposes
CAvoiding malware lab setups due to safety concerns
DApplying malware analysis to real-world incident response
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Applying malware analysis to real-world incident response". Mục tiêu thực tế của phân tích mã độc là phục vụ phản ứng sự cố: hiểu mẫu làm gì, lây và bám trụ thế nào, liên lạc với ai, để khoanh vùng, gỡ bỏ, rút chỉ dấu xâm nhập (IOC) và viết luật phát hiện cho toàn tổ chức. "Writing new types of malware for research" không phải mục tiêu của phân tích, vừa trái đạo đức vừa thường vi phạm pháp luật. "Detecting and analyzing malware purely for academic purposes" có tồn tại trong nghiên cứu, nhưng chữ purely bỏ qua giá trị vận hành vốn là động lực chính của nghề. "Avoiding malware lab setups due to safety concerns" ngược với thực tiễn: phòng lab cô lập chính là thứ làm cho phân tích an toàn, không thể né nó.
4Which network type is the most hazardous?4 lựa chọn
AHost-only
BNAT
CBridged
DAirgap
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Bridged". Ở chế độ mạng Bridged (cầu nối), card mạng ảo của máy phân tích nối thẳng vào mạng vật lý và nhận địa chỉ IP trong cùng mạng LAN như một máy thật; mã độc chạy bên trong có thể quét và lây sang các máy khác trong mạng, ra Internet tự do, nên đây là kiểu nguy hiểm nhất. "NAT" cho máy ảo ra Internet qua địa chỉ của máy chủ vật lý, các máy trong LAN không thấy trực tiếp máy ảo, nhưng mẫu vẫn liên lạc được với máy chủ điều khiển, nên chỉ ít rủi ro hơn. "Host-only" chỉ cho máy ảo nói chuyện với máy chủ vật lý và các máy ảo cùng mạng ảo, không ra ngoài, là lựa chọn thường dùng cho lab. "Airgap" là cách ly hoàn toàn, không có kết nối mạng nào, an toàn nhất.
AEAX, EBX, ECX, or EDX
BEBP or ESP
CEFLAGS
DEIP
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "EFLAGS". Thanh ghi cờ EFLAGS chứa các bit trạng thái mà CPU cập nhật sau mỗi phép tính số học hay logic; cờ ZF (Zero Flag) được bật lên 1 khi kết quả của lệnh vừa thực hiện bằng 0, ví dụ sau cmp eax, ebx khi hai giá trị bằng nhau hay sau test eax, eax khi eax bằng 0, và các lệnh nhảy có điều kiện jz, jnz đọc chính cờ này để rẽ nhánh. Bác: "EAX, EBX, ECX, or EDX" là các thanh ghi đa dụng chứa toán hạng hay kết quả, bản thân chúng không báo kết quả có bằng 0 hay không. "EBP or ESP" là con trỏ khung và con trỏ đỉnh ngăn xếp, dùng để quản lý ngăn xếp. "EIP" là con trỏ lệnh, chứa địa chỉ lệnh kế tiếp sẽ được thực thi.
AIt requires extensive network resources
BIt cannot analyze malware behavior in real-time
CIt may trigger anti-debugging techniques employed by malware
DIt is only effective for analyzing known malware strains
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "It may trigger anti-debugging techniques employed by malware". Nhiều mẫu cài kỹ thuật chống gỡ lỗi (anti-debugging): gọi IsDebuggerPresent, đọc cờ BeingDebugged trong PEB, đo thời gian bằng lệnh RDTSC, quét byte 0xCC của breakpoint phần mềm; khi phát hiện debugger, mẫu đổi hành vi, chạy nhánh giả hoặc tự thoát, nên nhà phân tích phải vá các kiểm tra đó hay dùng plugin ẩn debugger như ScyllaHide. "It requires extensive network resources" sai vì debugger chạy cục bộ, không cần mạng. "It cannot analyze malware behavior in real-time" ngược thực tế, debugger theo dõi từng lệnh ngay khi mẫu đang chạy. "It is only effective for analyzing known malware strains" sai vì debugger là công cụ chính để mổ xẻ mẫu chưa biết, còn phụ thuộc mẫu đã biết là hạn chế của phát hiện theo chữ ký.
AA physical box filled with sand
BA virtual environment for running untrusted programs
CA type of building construction technique
DA framework for organizing computer files
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "A virtual environment for running untrusted programs". Kiến trúc sandbox trong bảo mật là môi trường ảo hoá cô lập, thường gồm máy ảo khách chạy mẫu, tác tử giám sát bên trong, máy chủ điều phối và lớp báo cáo, để chạy chương trình không tin cậy mà không ảnh hưởng hệ thống thật. "A physical box filled with sand" là nghĩa đen của từ sandbox (hộp cát cho trẻ chơi), chính là hình ảnh gợi ra tên gọi nhưng không phải kiến trúc bảo mật. "A type of building construction technique" là cách hiểu chữ architecture theo nghĩa xây dựng, không liên quan. "A framework for organizing computer files" mô tả hệ thống tệp hay quy ước thư mục, không có yếu tố cô lập hay chạy thử chương trình.
AInteger overflow
BRace condition
CBuffer overflow
DFormat string attack
Lời giải
Mở trang câu hỏi này →Đáp án đúng gồm hai ý: "Buffer overflow" và "Format string attack". EIP là con trỏ lệnh; muốn chiếm luồng thực thi, kẻ tấn công phải ghi đè giá trị sẽ được nạp vào EIP, thường là địa chỉ trả về lưu trên ngăn xếp. Tràn bộ đệm (buffer overflow) chép dữ liệu vượt kích thước mảng cục bộ, tràn qua địa chỉ trả về, nên khi hàm thực hiện ret thì EIP nhảy tới mã của kẻ tấn công. Tấn công chuỗi định dạng (format string attack) lợi dụng printf nhận chuỗi do người dùng điều khiển, dùng %n để ghi giá trị tuỳ ý vào địa chỉ tuỳ ý như địa chỉ trả về hay một con trỏ hàm, cũng dẫn tới điều khiển EIP. Bác: "Integer overflow" là tràn số nguyên làm sai phép tính kích thước, chỉ là nguyên nhân gián tiếp có thể dẫn tới tràn bộ đệm chứ tự nó không ghi đè EIP. "Race condition" là lỗi tranh chấp thời điểm giữa các luồng hay tiến trình, khai thác thứ tự truy cập tài nguyên chứ không trực tiếp thao túng EIP.
AADD
BLEA
CNOP
DRET
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "NOP". NOP (no operation, mã máy 0x90 trên x86) chỉ tăng con trỏ lệnh EIP sang lệnh kế tiếp mà không đổi thanh ghi, cờ hay bộ nhớ nào; trong khai thác tràn bộ đệm, kẻ tấn công đặt một dải NOP dài (NOP sled) trước shellcode, nên địa chỉ trả về bị ghi đè chỉ cần rơi vào bất kỳ đâu trong dải là CPU trượt dần tới shellcode, bù cho việc không biết chính xác địa chỉ trên ngăn xếp. "ADD" cộng toán hạng nguồn vào toán hạng đích và cập nhật cờ, có tác dụng thật. "LEA" tính địa chỉ hiệu dụng rồi nạp vào thanh ghi đích, tuy không đọc bộ nhớ nhưng vẫn ghi thanh ghi. "RET" lấy địa chỉ trả về ở đỉnh ngăn xếp rồi nhảy tới đó, chính là lệnh bị lợi dụng khi ghi đè địa chỉ trả về chứ không phải lệnh đệm.
ATo execute malware on a system
BTo monitor network traffic
CTo trace and analyze malware behavior
DTo encrypt sensitive data
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "To trace and analyze malware behavior". Debugger như OllyDbg, x64dbg hay WinDbg cho chạy mẫu từng lệnh, đặt breakpoint, xem và sửa thanh ghi, bộ nhớ, ngăn xếp, nhờ đó lần theo luồng điều khiển, bắt lúc mẫu tự giải nén, xem tham số truyền vào API và hiểu chính xác mẫu làm gì, điều mà phân tích tĩnh khó thấy khi mã bị làm rối. "To execute malware on a system" chưa đúng mục đích, debugger có chạy mẫu nhưng chạy chỉ là phương tiện để quan sát, còn muốn chạy đơn thuần thì không cần debugger. "To monitor network traffic" là việc của Wireshark hay SmartSniff. "To encrypt sensitive data" không liên quan tới chức năng của debugger.
ADecrypting encrypted malware payloads
BGenerating antivirus signatures
CAnalyzing and modifying the import table of malware executables
DMonitoring system logs
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Analyzing and modifying the import table of malware executables". LordPE là trình soạn thảo PE (PE editor) kiêm công cụ dump tiến trình: nó cho xem và sửa header, bảng section, thư mục dữ liệu và bảng import của tệp thực thi; trong quy trình gỡ vỏ thủ công, nhà phân tích dump mẫu đã tự giải nén khỏi bộ nhớ rồi dùng LordPE cùng ImpREC để dựng lại bảng import và sửa entry point cho tệp chạy được và phân tích tĩnh được. "Decrypting encrypted malware payloads" sai vì LordPE không có chức năng giải mã, việc đó làm bằng debugger hoặc script viết riêng. "Generating antivirus signatures" là việc của các công cụ như YARA hay sigtool của ClamAV. "Monitoring system logs" là việc của Event Viewer hay hệ thống SIEM, không liên quan tới cấu trúc PE.
ARootkits are only effective on Windows operating systems, while other malware types target multiple platforms.
BRootkits modify system files to grant unauthorized access, while other malware types focus on data theft or disruption.
CRootkits spread through email attachments, while other malware types exploit software vulnerabilities.
DRootkits require physical access to a computer, while other malware types can infect remotely.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Rootkits modify system files to grant unauthorized access, while other malware types focus on data theft or disruption.". Rootkit cài sâu vào hệ điều hành, sửa tệp hệ thống, trình điều khiển hoặc cấu trúc nhân để giữ quyền truy cập trái phép ở mức cao và giấu sự hiện diện của mình cùng mã độc đi kèm; nhiều loại khác như spyware, ransomware hay worm thì nhắm vào đánh cắp dữ liệu hoặc phá hoại. Đây là cách phân biệt theo cơ chế và mục tiêu. "Rootkits are only effective on Windows operating systems" sai vì rootkit có trên Linux, macOS và cả trong firmware; khái niệm này vốn bắt nguồn từ Unix. "Rootkits spread through email attachments" sai vì rootkit không có cơ chế lây riêng, nó được cài bởi dropper hay sau khi khai thác lỗ hổng, còn mã độc khác cũng lây qua thư. "Rootkits require physical access to a computer" sai vì rootkit cài được từ xa sau khi kẻ tấn công chiếm quyền quản trị.
13Behavioral analysis in a malware lab must always be conducted in real-time to be effective.2 lựa chọn
ATrue
BFalse
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "False". Phân tích hành vi (behavioral analysis) là chạy mẫu trong lab cô lập rồi quan sát thay đổi trên tệp, registry, tiến trình và mạng. Việc quan sát có thể diễn ra theo thời gian thực bằng Process Monitor hay Wireshark, nhưng cũng có thể làm sau khi mẫu chạy xong: Regshot so ảnh chụp registry trước và sau, sandbox như Cuckoo ghi nhật ký rồi xuất báo cáo, ảnh bộ nhớ được phân tích về sau bằng Volatility, tệp pcap được mở lại để soi. Hiệu quả phụ thuộc vào việc ghi đủ dữ liệu, không phụ thuộc vào việc người phân tích ngồi xem trực tiếp. Vì thế khẳng định phải luôn làm theo thời gian thực là sai; chọn "True" là bỏ qua cả nhóm kỹ thuật so sánh trước sau và phân tích nhật ký sau khi chạy.
APacked
BPE
CWrapper
DEXE
EDLL
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "DLL". DLL (dynamic link library, thư viện liên kết động) chứa các hàm xuất (exports) để nhiều chương trình cùng nạp và gọi, như kernel32.dll hay user32.dll mà gần như mọi ứng dụng Windows đều dùng; hệ điều hành ánh xạ một bản mã của DLL vào nhiều tiến trình để tiết kiệm bộ nhớ, và mã độc lợi dụng điều này qua DLL injection hay DLL hijacking. "Packed" là trạng thái của tệp đã bị nén hoặc mã hoá bằng packer, không phải loại tệp dùng chung. "PE" là định dạng chung cho cả EXE lẫn DLL trên Windows, khái niệm rộng hơn chứ không riêng tệp dùng chung. "Wrapper" là chương trình bọc một tệp khác bên trong để phát tán hoặc chạy kèm. "EXE" là tệp thực thi độc lập, chạy thành tiến trình riêng chứ không được nhiều chương trình nạp chung.
ATrue
BFalse
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "False". Phân tích mã độc (malware analysis) nghiên cứu mọi loại phần mềm độc hại chứ không riêng virus: worm tự lây qua mạng, Trojan giả dạng phần mềm hợp lệ, ransomware mã hoá đòi tiền, rootkit ẩn mình, spyware, keylogger, bot trong botnet và cả mã độc không tệp. Mục tiêu là hiểu mẫu làm gì, lây và duy trì ra sao, liên lạc với ai, để rút ra chỉ dấu xâm nhập và cách phòng chống. Virus chỉ là một loại, đặc trưng bởi việc chèn mã vào tệp khác và cần vật chủ để lây. Vì thế phát biểu nói phân tích mã độc chỉ tập trung vào virus là sai; chọn "True" là nhầm theo cách gọi đời thường coi mọi mã độc đều là virus.
ABasic file access
BDNS hijacking
CProcess injection
DPort scanning
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Process injection". VirtualAllocEx cấp phát vùng nhớ bên trong một tiến trình khác, thường kèm WriteProcessMemory để chép mã độc vào đó, rồi CreateRemoteThread tạo luồng mới trong tiến trình đích chạy từ vùng nhớ vừa chép; đây là bộ ba kinh điển của tiêm mã vào tiến trình (process injection), giúp mã độc chạy dưới danh nghĩa tiến trình hợp pháp như explorer.exe để né phát hiện. "Basic file access" dùng các API như CreateFile, ReadFile, WriteFile, không cần cấp phát nhớ ở tiến trình khác. "DNS hijacking" là chuyển hướng phân giải tên miền, thường bằng cách sửa tệp hosts hoặc cấu hình máy chủ DNS. "Port scanning" dùng socket và connect lần lượt tới các cổng, không liên quan tới tiến trình khác.
ASet a breakpoint after the decryption routine executes
BStep-over all function calls in the debugger
CSet a breakpoint before the decryption routine starts
DAnalyze the binary using a disassembler without execution
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Set a breakpoint after the decryption routine executes". Mẫu chỉ giải mã chuỗi lúc chạy, nên chuỗi rõ (plaintext) chỉ tồn tại trong bộ nhớ sau khi hàm giải mã trả về. Đặt breakpoint ngay sau lệnh call tới hàm giải mã; khi dừng, nhìn thanh ghi trả về (thường là EAX) hoặc vùng đệm đích trong khung dump là đọc được chuỗi đã giải. "Set a breakpoint before the decryption routine starts" dừng quá sớm: bộ đệm khi đó vẫn chứa dữ liệu mã hoá; cách này chỉ hữu ích để xem tham số như khoá giải mã. "Step-over all function calls in the debugger" tốn công và dễ lướt qua chỗ cần xem, không phải cách hiệu quả nhất. "Analyze the binary using a disassembler without execution" là phân tích tĩnh, chỉ thấy chuỗi đã mã hoá; muốn ra chuỗi rõ phải tự dịch ngược thuật toán giải mã, tốn công hơn nhiều.
18Which programming language is commonly used in malware analysis due to its versatility and ease of use?4 lựa chọn
AJava
BPython
CC++
DJavaScript
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Python". Python là ngôn ngữ thông dịch, cú pháp gọn, chạy đa nền tảng và có hệ sinh thái thư viện chuyên cho phân tích mã độc: pefile đọc cấu trúc PE, yara-python chạy luật YARA, capstone dịch ngược mã máy, Volatility phân tích bộ nhớ; IDA, Ghidra và x64dbg đều cho viết script bằng Python. Nhờ vậy người phân tích tự động hoá nhanh các việc như giải mã chuỗi hay trích cấu hình của mẫu. Bác: "Java" chạy đa nền tảng nhưng dài dòng hơn, ít được chọn để viết công cụ phân tích nhanh. "C++" dùng để viết công cụ cần tốc độ hay plugin mức thấp, và người phân tích cần đọc hiểu nó vì nhiều mã độc viết bằng C++, nhưng nó không tiện cho script viết nhanh. "JavaScript" chủ yếu gặp khi phân tích mã độc trên web hay tệp script độc hại, không phải ngôn ngữ đa dụng cho công cụ phân tích.
ATo permanently remove malware from the system
BTo create a safe environment for testing software
CTo monitor network traffic for suspicious activity
DTo encrypt sensitive data to prevent unauthorized access
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "To create a safe environment for testing software". Hộp cát (sandbox) là môi trường cách ly, thường là máy ảo có snapshot và mạng giả lập, nơi mẫu nghi ngờ được chạy thử mà không gây hại cho hệ thống thật; trong lúc đó công cụ giám sát ghi lời gọi API, tệp, registry và kết nối mạng để người phân tích kết luận mẫu có độc hay không và làm gì, xong việc chỉ cần khôi phục snapshot. Bác: "To permanently remove malware from the system" là việc của phần mềm diệt virus hay quy trình làm sạch, sandbox chỉ chứa và quan sát mẫu. "To monitor network traffic for suspicious activity" là chức năng của hệ thống phát hiện xâm nhập; sandbox có ghi lưu lượng mạng của mẫu nhưng đó chỉ là một phần dữ liệu, không phải mục đích chính. "To encrypt sensitive data to prevent unauthorized access" là biện pháp bảo vệ dữ liệu, không liên quan tới phân tích mã độc.
A
svchost.exeB
services.exeC
rundll32.exeD
taskhostw.exeLời giải
Mở trang câu hỏi này →Đáp án đúng: "svchost.exe". Nhiều dịch vụ Windows được viết dưới dạng DLL, khai báo qua giá trị ServiceDll trong khoá Parameters của dịch vụ, và svchost.exe (Service Host) là tiến trình chủ nạp các DLL này theo nhóm, ví dụ nhóm netsvcs; vì có nhiều bản svchost.exe hợp lệ cùng chạy, mã độc hay đăng ký DLL của mình làm dịch vụ để ẩn dưới tiến trình này. "services.exe" là Service Control Manager, khởi động và quản lý dịch vụ, nhưng không tự nạp các DLL dịch vụ dùng chung vào chính nó. "rundll32.exe" chạy một hàm xuất của một DLL bất kỳ từ dòng lệnh, mã độc hay dùng để kích hoạt DLL nhưng nó không phải tiến trình chủ cho dịch vụ. "taskhostw.exe" là tiến trình chủ cho các tác vụ dựa trên DLL của Task Scheduler, không phải cho dịch vụ.