Câu hỏi: IAM302 Phân tích mã độc và kỹ thuật dịch ngược – Bộ ôn tập cuối kỳ số 1
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
1Which malware type tricks users into purchasing fake software or services through fear tactics?4 lựa chọn
ARansomware
BDownloader
CBot
DScareware
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Scareware". Scareware (phần mềm hù doạ) đánh vào nỗi sợ của người dùng: nó bật cửa sổ cảnh báo giả rằng máy đã nhiễm virus hoặc sắp hỏng, rồi thúc người dùng mua một phần mềm diệt virus giả hay một dịch vụ sửa lỗi không có thật; cốt lõi là thao túng tâm lý để lấy tiền, còn máy có khi không bị hại gì thực sự. "Ransomware" cũng đòi tiền nhưng bằng cách mã hoá hoặc khoá dữ liệu thật rồi đòi tiền chuộc để trả lại, không phải bán phần mềm giả. "Downloader" là mã độc tải và cài thêm mã độc khác về máy, không nhắm vào việc lừa người dùng trả tiền. "Bot" biến máy nạn nhân thành một nút trong botnet nhận lệnh từ máy chủ điều khiển để gửi thư rác hay tấn công từ chối dịch vụ, thường chạy âm thầm chứ không doạ người dùng.
ATo store user preferences
BTo classify malware based on its behavior
CTo detect known malware based on predefined patterns
DTo analyze network traffic
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "To detect known malware based on predefined patterns". ClamAV là bộ quét mã độc mã nguồn mở hoạt động theo kiểu phát hiện dựa trên chữ ký (signature-based detection): cơ sở dữ liệu chữ ký (main.cvd, daily.cvd) chứa giá trị băm tệp, chuỗi byte đặc trưng và chữ ký logic của các mẫu đã biết; khi quét, clamscan so nội dung tệp với các mẫu này và báo tên mã độc khi khớp. Bác: "To store user preferences" là việc của tệp cấu hình như clamd.conf hay freshclam.conf, không phải cơ sở chữ ký. "To classify malware based on its behavior" mô tả phân tích hành vi động trong sandbox, trong khi chữ ký là mẫu tĩnh; tên chữ ký có gắn loại mã độc nhưng mục đích của cơ sở dữ liệu là nhận ra mẫu đã biết. "To analyze network traffic" là việc của Wireshark, Snort hay Zeek; ClamAV quét tệp và dữ liệu được đưa vào nó chứ không giám sát lưu lượng mạng.
ATrue
BFalse
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "True". Keylogger phần mềm (software keylogger, chương trình ghi lại phím người dùng gõ) thường chạy như một tiến trình ở chế độ người dùng hoặc cài hook bàn phím qua hàm SetWindowsHookEx, nên các mẫu kém tinh vi hiện ra thành một tiến trình lạ trong Task Manager, đôi khi với tên giả mạo tiến trình hệ thống. Chữ "sometimes" là mấu chốt: keylogger tinh vi dùng kỹ thuật rootkit, tiêm mã vào tiến trình hợp lệ (process injection) hoặc chạy ở tầng nhân để biến mất khỏi Task Manager, nhưng việc có loại ẩn được không làm sai mệnh đề rằng keylogger phần mềm có lúc nhìn thấy được. Chọn "False" là ngầm khẳng định keylogger phần mềm không bao giờ lộ diện trong Task Manager, trái với thực tế nhiều mẫu đơn giản chỉ là một tệp thực thi chạy nền mà người dùng có thể tìm thấy và kết thúc ngay trong danh sách tiến trình.
4What does a downloader malware do?4 lựa chọn
AEncrypt files on the system
BExfiltrate data to attackers
CDownloads other malicious code after initial access
DBlocks incoming connections
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Downloads other malicious code after initial access". Downloader (mã độc tải xuống) là mắt xích đầu của chuỗi lây nhiễm: bản thân nó nhỏ, ít hành vi đáng ngờ, sau khi lọt vào máy thì kết nối ra máy chủ của kẻ tấn công, tải về rồi chạy mã độc thật như trojan, ransomware hay công cụ đánh cắp; khi phân tích thường thấy các hàm như URLDownloadToFile đi kèm WinExec hoặc ShellExecute. "Encrypt files on the system" là hành vi đặc trưng của ransomware. "Exfiltrate data to attackers" là việc của spyware, infostealer hay backdoor khi đẩy dữ liệu đánh cắp ra ngoài, ngược chiều với việc kéo mã về. "Blocks incoming connections" là chức năng của tường lửa; có mã độc chặn kết nối để cản phần mềm bảo mật cập nhật, nhưng đó không phải định nghĩa của downloader.
5What is a botnet?4 lựa chọn
AA collection of logs created by keyloggers
BA group of infected machines controlled by a C&C server
CA database of known malware
DA firewall bypassing tool
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "A group of infected machines controlled by a C&C server". Botnet (mạng máy ma) là tập hợp các máy bị nhiễm bot; mỗi máy (zombie) định kỳ liên lạc với máy chủ điều khiển C&C (command and control) để nhận lệnh như gửi thư rác, tấn công từ chối dịch vụ phân tán DDoS hay tải thêm mã độc, nhờ đó kẻ tấn công điều khiển cả đàn máy qua các kênh IRC, HTTP hay P2P. Bác: "A collection of logs created by keyloggers" chỉ là dữ liệu đánh cắp mà keylogger ghi lại, có thể được bot gửi về máy chủ điều khiển nhưng không phải bản thân botnet. "A database of known malware" là cơ sở chữ ký của phần mềm diệt virus như ClamAV. "A firewall bypassing tool" là một công cụ đơn lẻ, ví dụ tạo đường hầm qua cổng được phép, trong khi botnet là cả một mạng lưới máy bị chiếm quyền.
AIt only detects malware based on behavioral analysis
BIt utilizes multiple detection databases, including MD5 hashes and PE metadata
CIt requires constant manual updates to function effectively
DIt is designed exclusively for detecting phishing attempts
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "It utilizes multiple detection databases, including MD5 hashes and PE metadata". ClamAV là bộ quét mã độc mã nguồn mở hoạt động chủ yếu theo chữ ký; cơ sở dữ liệu của nó gồm nhiều lớp: chữ ký băm MD5 hoặc SHA của cả tệp, băm theo từng section PE, chữ ký thân dạng mẫu byte, chữ ký logic và luật dựa trên siêu dữ liệu PE, nên một mẫu khớp bất kỳ lớp nào cũng được gán tên họ mã độc, giúp phân loại nhanh. "It only detects malware based on behavioral analysis" sai vì ClamAV quét tĩnh theo chữ ký, không chạy mẫu để quan sát hành vi. "It requires constant manual updates to function effectively" sai vì ClamAV có freshclam tự động tải bản cập nhật cơ sở dữ liệu theo lịch. "It is designed exclusively for detecting phishing attempts" sai vì chữ ký lừa đảo chỉ là một phần nhỏ, ClamAV nhắm mọi loại mã độc từ virus, trojan tới macro độc trong tài liệu văn phòng.
7What will be the output of the following Python code?4 lựa chọncó code
def foo():
try:
return 1
finally:
return 2
k = foo()
print(k)Aerror, there is more than one return statement in a single try-finally block
B3
C2
D1
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "2". Trong Python, khối finally luôn chạy trước khi hàm thực sự rời đi, kể cả khi khối try đã gặp return. Lần theo: foo() vào try, gặp return 1 nên giá trị 1 được chuẩn bị làm kết quả, nhưng trước khi trả về, trình thông dịch chạy finally; ở đó return 2 thay thế giá trị đang chờ, nên foo() trả 2, k nhận 2 và print(k) in ra 2. "1" sai vì bỏ qua việc return trong finally ghi đè return trong try. "3" sai vì không có phép cộng nào, hai giá trị không gộp lại với nhau. "error, there is more than one return statement in a single try-finally block" sai vì Python cho phép nhiều câu return trong một hàm, đặt trong cả try lẫn finally; đây là cú pháp hợp lệ, chỉ là cách viết dễ gây nhầm vì nó nuốt mất giá trị trả về của try, và cả ngoại lệ nếu try ném ra.
ATrue
BFalse
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "False". Trong trình thông dịch tương tác (standard Python shell, dấu nhắc >>>), một dòng trống được hiểu là kết thúc khối lệnh ghép đang nhập ở dấu nhắc tiếp tục (...). Vì vậy nếu dán một vòng lặp for có dòng trống ở giữa thân, shell đóng khối for ngay tại dòng trống và chạy nó, còn các dòng thụt lề phía sau bị coi là lệnh mới mở đầu bằng khoảng trắng nên sinh IndentationError: unexpected indent. Cùng đoạn mã đó chạy bình thường khi lưu thành tệp .py, vì khi đọc tệp trình thông dịch bỏ qua dòng trống. Do đó khẳng định luôn chạy không lỗi là sai; chọn "True" là bỏ qua quy tắc dòng trống riêng của chế độ tương tác, điều cần nhớ khi thử nhanh các đoạn script phân tích mã độc trong shell.
A[-4, 3, -2, 1]
B[3, 1, -2, -4]
C[1, -2, 3, -4]
D[-4, -2, 1, 3]
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "[-4, 3, -2, 1]". Hàm sorted trong Python trả về một danh sách mới đã sắp; tham số key=abs nghĩa là so sánh theo giá trị tuyệt đối của từng phần tử chứ không theo chính phần tử, còn reverse=True đảo thành thứ tự giảm dần. Lần theo từng bước: giá trị tuyệt đối của -4, 1, -2, 3 lần lượt là 4, 1, 2, 3; xếp giảm dần được 4, 3, 2, 1, tương ứng các phần tử gốc -4, 3, -2, 1, và dấu âm vẫn được giữ vì key chỉ dùng để so sánh chứ không biến đổi phần tử trả về. "[3, 1, -2, -4]" là kết quả khi sắp giảm theo giá trị thật, tức bỏ key=abs mà chỉ giữ reverse=True. "[1, -2, 3, -4]" là thứ tự tăng dần theo giá trị tuyệt đối, tức có key=abs nhưng quên reverse. "[-4, -2, 1, 3]" là thứ tự tăng dần theo giá trị thật, bỏ qua cả key lẫn reverse.
A4
B4.6
C5
D4.5
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "5". Hàm round khi chỉ có một đối số sẽ làm tròn tới số nguyên gần nhất và trả về kiểu int. Giá trị 4.576 nằm giữa 4 và 5, phần lẻ 0.576 lớn hơn 0.5 nên gần 5 hơn, kết quả là 5. "4" là kết quả của việc cắt bỏ phần thập phân như int(4.576) hay math.floor(4.576), không phải làm tròn. "4.6" là kết quả của round(4.576, 1), tức làm tròn tới một chữ số sau dấu thập phân, nhưng biểu thức không truyền đối số thứ hai. "4.5" không khớp với cách làm tròn nào của 4.576; quy tắc làm tròn về số chẵn của Python chỉ có tác dụng khi giá trị nằm đúng giữa hai số nguyên như 4.5, không liên quan tới trường hợp này.
AIt stores the physical addresses of running processes
BIt allocates memory for user-mode applications
CIt manages kernel-mode memory exclusively
DIt maps virtual addresses to physical memory via page tables
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "It maps virtual addresses to physical memory via page tables". Trong phân trang x86 32 bit, thanh ghi CR3 trỏ tới Page Directory (thư mục trang); khi CPU dịch một địa chỉ ảo, 10 bit cao chọn một mục PDE trong thư mục trang, mục này trỏ tới một Page Table (bảng trang), 10 bit kế tiếp chọn mục PTE chứa khung trang vật lý, và 12 bit thấp là độ lệch trong trang 4 KB. Như vậy thư mục trang là tầng đầu của chuỗi ánh xạ địa chỉ ảo sang vật lý, mỗi tiến trình có thư mục riêng. Bác: "It stores the physical addresses of running processes" sai vì danh sách tiến trình nằm trong cấu trúc của nhân như EPROCESS, thư mục trang chỉ chứa mục ánh xạ. "It allocates memory for user-mode applications" là việc của trình quản lý bộ nhớ hệ điều hành qua VirtualAlloc hay HeapAlloc; thư mục trang chỉ phản ánh kết quả cấp phát. "It manages kernel-mode memory exclusively" sai vì nó ánh xạ cả vùng người dùng lẫn vùng nhân trong không gian địa chỉ.
12What does memory forensics analyze?4 lựa chọn
AHard disk partitions
BGraphics rendering
CCPU temperature logs
DPhysical RAM content
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Physical RAM content". Điều tra bộ nhớ (memory forensics) là phân tích bản chụp bộ nhớ vật lý (memory dump) để tìm tiến trình đang chạy hoặc đã bị ẩn, DLL đã nạp, kết nối mạng, khoá registry đang mở, vùng mã bị tiêm và cả khoá mã hoá, tức những dấu vết chỉ tồn tại khi máy đang chạy và mất đi khi tắt máy; công cụ tiêu biểu là Volatility. Nhờ vậy nó lộ được mã độc không ghi tệp xuống đĩa (fileless) hoặc đã giải nén trong bộ nhớ. "Hard disk partitions" thuộc về điều tra đĩa (disk forensics), nghiên cứu hệ thống tệp lưu bền trên ổ cứng chứ không phải RAM. "Graphics rendering" là công việc dựng hình của GPU, không phải đối tượng điều tra. "CPU temperature logs" là dữ liệu giám sát phần cứng, không chứa dấu vết hoạt động của mã độc.
AIt searches for text strings in network traffic
BIt identifies references to strings within the malware code
CIt decrypts encrypted files found in memory dumps
DIt generates antivirus signatures to detect malware
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "It identifies references to strings within the malware code". Trong OllyDbg, lệnh Search for > All referenced text strings quét mã đã tháo (disassembly) của module đang xem và liệt kê mọi lệnh có tham chiếu tới một chuỗi, kèm địa chỉ lệnh đó; nhấp đúp là nhảy tới chỗ chuỗi được dùng, nên nhà phân tích nhanh chóng tìm ra đoạn mã xử lý URL, khoá registry hay thông báo lỗi để đặt breakpoint. "It searches for text strings in network traffic" sai vì OllyDbg là trình gỡ lỗi làm việc trên tiến trình, không bắt gói tin; việc đó thuộc Wireshark. "It decrypts encrypted files found in memory dumps" sai vì tính năng chỉ tìm tham chiếu, chuỗi còn mã hoá vẫn hiện dạng rác hoặc không hiện. "It generates antivirus signatures to detect malware" sai vì tạo chữ ký là việc của công cụ như YARA hay của hãng diệt virus, không phải của trình gỡ lỗi.
AExtracting files from the disk
BCreating a memory dump of the target system
CAnalyzing network traffic
DScanning for malware signatures
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Creating a memory dump of the target system". Pháp chứng bộ nhớ (memory forensics) làm việc với RAM, vốn là dữ liệu dễ bay hơi (volatile) mất đi khi tắt máy, nên bước đầu tiên luôn là thu nhận: chụp toàn bộ bộ nhớ vật lý ra tệp ảnh (memory dump) bằng công cụ như DumpIt, WinPmem, FTK Imager hoặc lấy tệp .vmem của máy ảo, càng sớm càng tốt để giữ được trạng thái tiến trình, kết nối mạng và khoá giải mã; sau đó mới phân tích ảnh bằng Volatility. Bác: "Extracting files from the disk" thuộc pháp chứng đĩa (disk forensics), không phải bộ nhớ. "Analyzing network traffic" là pháp chứng mạng dựa trên gói tin bắt được; thông tin kết nối nằm trong RAM chỉ đọc được sau khi đã có ảnh bộ nhớ. "Scanning for malware signatures" là một bước phân tích, ví dụ chạy yarascan hay malfind trên ảnh, nên chỉ làm được sau khi đã chụp ảnh.
AWin32dd
BWin64dd
CTask Manager
DRegistry Editor
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Win64dd". Win32dd và Win64dd là cặp công cụ thu bộ nhớ (memory acquisition) chạy từ dòng lệnh, dùng một driver chế độ nhân để đọc toàn bộ RAM vật lý rồi ghi ra tệp dạng raw hoặc crash dump cho Volatility hay WinDbg phân tích; trên Windows 64 bit phải dùng bản 64 bit vì driver phải khớp kiến trúc nhân và cần truy cập được vùng địa chỉ vật lý lớn hơn 4 GB. "Win32dd" là bản dành cho Windows 32 bit, chạy trên hệ 64 bit sẽ không nạp được driver nên không thu được bộ nhớ đầy đủ. "Task Manager" chỉ liệt kê tiến trình và có thể tạo dump của riêng một tiến trình, không chụp toàn bộ RAM vật lý. "Registry Editor" chỉ để xem và sửa registry, không có chức năng thu bộ nhớ.
16A malware sample is injecting threads into another process. Where can this be detected in memory forensics?4 lựa chọn
AFile system
BRegistry dump
CProcess and thread structures
DARP cache
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Process and thread structures". Khi mã độc tiêm luồng (thread injection) vào tiến trình khác, nó cấp phát vùng nhớ trong tiến trình đích rồi tạo luồng mới chạy ở đó; dấu vết nằm trong cấu trúc tiến trình và luồng của nhân Windows như EPROCESS, ETHREAD và cây mô tả vùng nhớ VAD. Trong pháp chứng bộ nhớ, Volatility dùng các plugin như pslist, threads hay malfind để tìm luồng có địa chỉ bắt đầu nằm ngoài mọi module đã nạp, hoặc vùng nhớ vừa ghi được vừa thực thi được. "File system" sai vì tiêm luồng diễn ra trong RAM và có thể không để lại tệp nào. "Registry dump" giúp tìm cơ chế bám trụ (persistence) như khoá Run, không cho thấy luồng lạ trong tiến trình. "ARP cache" chỉ ánh xạ địa chỉ IP sang địa chỉ MAC trong mạng nội bộ, không liên quan tới luồng.
17In the event of an exception, when does the debugger receive a second chance to handle it?4 lựa chọn
AAlways before the application
BOnly if the program crashes
CIf the application fails to handle the exception
DNever
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "If the application fails to handle the exception". Khi chương trình đang bị gỡ lỗi phát sinh ngoại lệ, Windows báo cho debugger lần đầu (first-chance exception) trước khi chương trình được xử lý; nếu debugger cho qua, ngoại lệ được chuyển cho các bộ xử lý SEH hay VEH của ứng dụng. Chỉ khi không bộ xử lý nào của ứng dụng nhận nó, hệ thống mới báo lại cho debugger lần hai (second-chance exception), và lúc này chương trình sẽ bị kết thúc nếu debugger cũng không xử lý. Bác: "Always before the application" mô tả cơ hội lần đầu, không phải lần hai. "Only if the program crashes" đảo thứ tự nhân quả: cơ hội lần hai đến ngay trước khi chương trình sập, chính vì ứng dụng không xử lý được, chứ không đến sau khi đã sập. "Never" sai vì cơ chế báo hai lần là đặc trưng của Windows debugging API; mã độc còn lợi dụng nó để chống gỡ lỗi bằng cách cố ý gây ngoại lệ.
AWorm
BRootkit
CAdware
DSpyware
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Adware". Adware (phần mềm quảng cáo) cài vào trình duyệt hoặc hệ thống dưới dạng tiện ích mở rộng hay tiến trình nền để tự bật cửa sổ quảng cáo, chèn quảng cáo vào trang và chuyển hướng tìm kiếm nhằm thu tiền hiển thị; việc liên tục tải nội dung quảng cáo ngốn CPU, bộ nhớ và băng thông nên máy chậm hẳn, khớp đúng hai triệu chứng trong tình huống. "Worm" là sâu tự nhân bản và lây qua mạng mà không cần người dùng, triệu chứng thường là lưu lượng mạng tăng vọt chứ không phải quảng cáo bật lên. "Rootkit" có mục tiêu ẩn sự hiện diện của kẻ tấn công trong hệ thống, trái ngược với kiểu quảng cáo lộ liễu. "Spyware" âm thầm thu thập thông tin người dùng và cố không để lộ; một số adware cũng theo dõi thói quen duyệt web, nhưng hiện tượng tự mở quảng cáo là dấu hiệu đặc trưng của adware.
ACPU temperature
BNetwork bandwidth usage
CRegistry and file system activity
DInstalled software list
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Registry and file system activity". Process Monitor (Procmon) của bộ Sysinternals ghi lại theo thời gian thực các thao tác của tiến trình lên registry và hệ thống tệp, cùng hoạt động tiến trình, luồng và một phần mạng; mỗi dòng có tên tiến trình, thao tác, đường dẫn và kết quả. Trong phân tích động, nó cho thấy mẫu tạo tệp nào, ghi khoá Run nào để bám trụ. "CPU temperature" là thông số phần cứng, phải dùng công cụ đọc cảm biến. "Network bandwidth usage" là việc của Resource Monitor hay công cụ đo lưu lượng; Procmon chỉ ghi sự kiện TCP và UDP chứ không đo băng thông. "Installed software list" là danh sách tĩnh xem trong Programs and Features hoặc khoá Uninstall của registry, không phải dòng sự kiện thời gian thực.
AIt provides real-time monitoring
BIt automatically creates reports
CIt captures changes in a snapshot format for easy comparison
DIt can be used to monitor file system activity
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "It captures changes in a snapshot format for easy comparison". Regshot chụp ảnh (snapshot) toàn bộ registry, tuỳ chọn cả thư mục tệp, trước khi chạy mẫu, rồi chụp lần hai sau khi chạy và so hai ảnh để liệt kê khoá và giá trị được thêm, xoá hay sửa; so với dò registry bằng tay qua regedit, cách này không bỏ sót thay đổi nhỏ như một khoá Run để tự khởi động. Bác: "It provides real-time monitoring" sai vì Regshot không theo dõi liên tục, ghi theo thời gian thực là thế mạnh của Process Monitor. "It automatically creates reports" chưa phải lợi thế cốt lõi: Regshot có xuất kết quả so sánh ra tệp txt hay html nhưng đó chỉ là hệ quả của việc so hai ảnh chụp. "It can be used to monitor file system activity" không chính xác vì Regshot chỉ so trạng thái tệp ở hai thời điểm khi được chọn quét thư mục, chứ không giám sát hoạt động tệp như Process Monitor.