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ố 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 đề. Trang 2/3 — câu 21–40.
Danh sách câu hỏi
40/50 câuCòn 10
AMemory access violation
BPrivilege violation
CFirst-chance exception
DINT 3
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Privilege violation". CPU x86 chia mức đặc quyền thành các vòng (ring): nhân chạy ở Ring 0, ứng dụng ở Ring 3. Khi một tiến trình Ring 3 thực thi lệnh đặc quyền như hlt, cli, in, out hay ghi thanh ghi điều khiển, CPU sinh lỗi bảo vệ và Windows báo cho tiến trình ngoại lệ vi phạm đặc quyền (EXCEPTION_PRIV_INSTRUCTION, privilege violation). Bác: "Memory access violation" xảy ra khi đọc ghi địa chỉ không hợp lệ hay không được phép, là lỗi về bộ nhớ chứ không phải về lệnh đặc quyền. "First-chance exception" không phải một loại ngoại lệ mà là lần báo đầu tiên cho debugger, áp dụng với mọi loại ngoại lệ. "INT 3" là lệnh điểm dừng phần mềm (mã 0xCC) gây ngoại lệ breakpoint mà debugger sử dụng, và nó được phép thực thi ngay ở Ring 3.
AWireshark
BIDA Pro
CVirusTotal
DAdobe Photoshop
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Adobe Photoshop". Câu hỏi tìm công cụ KHÔNG thường dùng trong phân tích mã độc: Adobe Photoshop là phần mềm chỉnh sửa ảnh, không đọc cấu trúc tệp thực thi, không bắt gói tin hay quét mã độc, nên đây là đáp án. "Wireshark" là công cụ bắt và giải mã gói tin, dùng trong phân tích động để thấy mẫu liên lạc với máy chủ điều khiển nào, giao thức gì, nên là công cụ thông dụng. "IDA Pro" là trình dịch ngược (disassembler) kèm bộ giải mã ngược, công cụ chủ lực của phân tích tĩnh nâng cao để đọc mã hợp ngữ của mẫu. "VirusTotal" là dịch vụ quét tệp hoặc mã băm bằng hàng chục engine diệt virus cùng lúc, thường là bước tra cứu đầu tiên khi nhận một mẫu lạ, nên cũng là công cụ thông dụng.
AIt relies solely on virus signatures
BIt detects malware based on known patterns
CIt monitors system activities for suspicious behavior
DIt is ineffective against zero-day attacks
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "It monitors system activities for suspicious behavior". Phát hiện dựa trên hành vi (behavior-based detection) không so tệp với mẫu đã biết mà theo dõi hoạt động của chương trình khi chạy, như tiêm mã vào tiến trình khác, mã hoá hàng loạt tệp, sửa khoá Run, tắt dịch vụ bảo mật, rồi cảnh báo khi chuỗi hành vi đáng ngờ. "It relies solely on virus signatures" mô tả phát hiện dựa trên chữ ký, đúng là kiểu đối lập. "It detects malware based on known patterns" cũng là đặc trưng của chữ ký và heuristic tĩnh dựa trên mẫu đã gặp. "It is ineffective against zero-day attacks" ngược sự thật: chính vì không cần chữ ký có sẵn mà phát hiện hành vi là một trong số ít cách bắt được mã độc zero-day, đổi lại dễ báo nhầm hơn.
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.
25The document suggests that modern malware analysis can be done without any specialized environment or lab.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 mã độc hiện đại cần môi trường cách ly chuyên dụng: máy ảo có snapshot để quay về trạng thái sạch, mạng host-only hoặc dịch vụ giả lập bằng INetSim để mẫu không chạm Internet thật, cùng các công cụ giám sát như Process Monitor, Regshot, Wireshark. Chạy mẫu trên máy thật nối mạng có thể làm lây sang mạng nội bộ, rò rỉ dữ liệu hoặc báo cho kẻ tấn công biết mẫu đang bị soi; ngay cả phân tích tĩnh cũng nên làm trong lab để tránh lỡ tay chạy mẫu. Vì vậy mệnh đề cho rằng có thể phân tích mà không cần môi trường hay phòng lab chuyên dụng là sai, và chọn "True" là bỏ qua nguyên tắc an toàn cơ bản nhất của nghề phân tích mã độc.
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ó.
27What is malware analysis?4 lựa chọn
AAnalyzing potential malware threats to a system
BAnalyzing computer hardware for vulnerabilities
CAnalyzing network traffic for suspicious activity
DAnalyzing software to understand its behavior and purpose
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Analyzing software to understand its behavior and purpose". Phân tích mã độc là nghiên cứu một mẫu phần mềm, bằng phân tích tĩnh (đọc cấu trúc PE, chuỗi, mã dịch ngược) và phân tích động (chạy trong sandbox, debugger), để hiểu nó làm gì, hoạt động ra sao và nhằm mục đích gì, từ đó rút ra chỉ dấu xâm nhập và cách phát hiện, gỡ bỏ. Bác: "Analyzing potential malware threats to a system" nghiêng về đánh giá mối đe doạ hay rủi ro ở mức hệ thống, chưa nói tới việc mổ xẻ bản thân mẫu phần mềm. "Analyzing computer hardware for vulnerabilities" là kiểm tra bảo mật phần cứng, không phải phần mềm độc hại. "Analyzing network traffic for suspicious activity" là giám sát mạng hay phát hiện xâm nhập; lưu lượng mạng có thể là nguồn dữ liệu bổ trợ khi phân tích mẫu, nhưng không định nghĩa phân tích mã độc.
AGoogle Docs
BWordPress
CForensic tools
DLoad balancers
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Forensic tools". Một môi trường phân tích mã độc gồm máy ảo cách ly cùng bộ công cụ phân tích và điều tra (forensic tools) như Process Monitor, Regshot, Wireshark, Volatility, FTK Imager để ghi nhận thay đổi trên hệ thống tệp, registry, bộ nhớ và mạng khi mẫu chạy; đây là thành phần không thể thiếu khi dựng lab. "Google Docs" là trình soạn thảo trực tuyến, đòi kết nối Internet, trái với yêu cầu mạng cách ly của lab và không phân tích được gì. "WordPress" là hệ quản trị nội dung để làm website, không phải công cụ phân tích. "Load balancers" là thiết bị hoặc phần mềm phân tải cho hệ thống máy chủ sản xuất, không có vai trò trong việc dựng môi trường phân tích mẫu.
AIt analyzes malware behavior and generates detailed reports for analysis
BIt encrypts sensitive data to prevent unauthorized access
CIt provides internet connectivity to the sandbox environment
DIt stores sandbox activity logs for future reference
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "It analyzes malware behavior and generates detailed reports for analysis". Trong kiến trúc sandbox như Cuckoo, các thành phần giám sát thu sự kiện thô như lệnh gọi API, thao tác tệp, registry và lưu lượng mạng; mô đun xử lý và báo cáo tổng hợp các sự kiện đó, chấm điểm hành vi đáng ngờ và xuất báo cáo dạng HTML hay JSON để nhà phân tích đọc hoặc hệ thống khác dùng. "It encrypts sensitive data to prevent unauthorized access" không phải vai trò của báo cáo; bảo mật dữ liệu thuộc lớp hạ tầng. "It provides internet connectivity to the sandbox environment" là việc của thành phần mạng như cấu hình định tuyến hay giả lập dịch vụ. "It stores sandbox activity logs for future reference" nghe gần nhưng chỉ là lưu trữ thô; giá trị của mô đun báo cáo là phân tích và trình bày kết quả, không chỉ cất nhật ký.
AReal-time decryption of malware payloads
BCentralized management and visualization of analysis results
CAutomatic generation of YARA signatures
DDetection of kernel-level rootkits
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Centralized management and visualization of analysis results". Các sandbox như Cuckoo sinh báo cáo hành vi dạng JSON gồm lời gọi API, thao tác tệp, registry, mạng và ảnh chụp màn hình; giao diện web (web interface) gom các kết quả đó vào một chỗ, cho phép gửi mẫu, tìm kiếm, xem cây tiến trình, đồ thị và tải báo cáo, nhờ đó nhiều người phân tích quản lý tập trung và nhìn trực quan kết quả. Bác: "Real-time decryption of malware payloads" không phải việc của giao diện web; giải mã payload thuộc phân tích trong máy ảo hay trong bộ nhớ. "Automatic generation of YARA signatures" cần công cụ riêng; giao diện web chỉ hiển thị kết quả khớp các luật YARA đã có. "Detection of kernel-level rootkits" phụ thuộc vào kỹ thuật giám sát trong máy khách hay phân tích bộ nhớ, không đến từ việc gắn thêm giao diện web.
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.
AIt isolates and analyzes suspicious files or programs in a controlled environment
BIt scans computer networks for vulnerabilities
CIt encrypts sensitive data to prevent unauthorized access
DIt monitors internet traffic for malicious activity
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "It isolates and analyzes suspicious files or programs in a controlled environment". Sandbox là môi trường cô lập, thường là máy ảo có ảnh chụp sạch, nơi tệp nghi ngờ được chạy và mọi hành vi được ghi lại mà không đe doạ hệ thống thật; xong thì khôi phục ảnh chụp để chạy mẫu tiếp theo. "It scans computer networks for vulnerabilities" là việc của trình quét lỗ hổng như Nessus hay Nmap. "It encrypts sensitive data to prevent unauthorized access" là chức năng của công cụ mã hoá dữ liệu, không phải sandbox. "It monitors internet traffic for malicious activity" mô tả hệ thống phát hiện xâm nhập (IDS) hay tường lửa; sandbox có ghi lưu lượng của mẫu nhưng đó chỉ là một phần, cốt lõi vẫn là cô lập và quan sát việc chạy mẫu.
AScanning of encrypted data streams
BAutomation and artificial intelligence (AI)
CFaster network speeds
DTimely sharing of threat intelligence
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Timely sharing of threat intelligence". Sandbox thế hệ đầu chủ yếu chạy mẫu độc lập và cho báo cáo riêng lẻ; thế hệ thứ hai gắn sandbox vào hạ tầng bảo mật rộng hơn, kết quả phân tích được đẩy ra dưới dạng thông tin tình báo mối đe doạ (threat intelligence) như giá trị băm, tên miền, địa chỉ IP độc hại, và được chia sẻ kịp thời cho tường lửa, cổng thư cũng như các tổ chức khác để chặn mẫu tương tự sớm hơn. Bác: "Scanning of encrypted data streams" là năng lực giải mã kiểm tra SSL/TLS của thiết bị mạng, không phải lợi ích đặc trưng của sandbox thế hệ thứ hai. "Automation and artificial intelligence (AI)" gắn với các thế hệ về sau, khi học máy được dùng để phân loại hành vi và chống né tránh. "Faster network speeds" là đặc tính của hạ tầng mạng, không liên quan tới công nghệ sandbox.
Ajz
Bamp
Cpush
Dpop
Ecall
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "push". Trên x86 32 bit theo quy ước gọi cdecl, đối số được đặt lên ngăn xếp từ phải sang trái trước lệnh gọi: chương trình push giá trị b, rồi nạp x (bằng 2) vào thanh ghi và push nó, tiếp đó push địa chỉ chuỗi định dạng, sau cùng call printf; bên trong printf đọc các đối số từ ngăn xếp ngay trên địa chỉ trả về, còn bên gọi tự cộng lại esp để dọn. Vì vậy push là lệnh đặt x vào chỗ printf tìm thấy; cần biết trình biên dịch hiện đại có thể cấp sẵn khung ngăn xếp rồi dùng mov vào [esp+…] thay cho push, và trên x64 đối số đầu nằm trong thanh ghi, nhưng câu hỏi theo mô hình cổ điển. "jz" là nhảy có điều kiện khi cờ ZF bằng 1. "amp" in sẵn như vậy và không phải lệnh x86 nào. "pop" lấy giá trị khỏi đỉnh ngăn xếp, ngược chiều cần thiết. "call" đẩy địa chỉ trả về rồi chuyển điều khiển tới printf, không đặt x.
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: "EAX, EBX, ECX, or EDX". Trong x86, bốn thanh ghi này là thanh ghi đa dụng (general-purpose register) dùng chứa dữ liệu và kết quả trung gian khi tính toán như tổng tạm; EAX còn thường giữ giá trị trả về của hàm, ECX hay làm bộ đếm vòng lặp, EDX ghép với EAX trong phép nhân và phép chia. "EBP or ESP" là cặp thanh ghi ngăn xếp: ESP trỏ đỉnh ngăn xếp, EBP trỏ đáy khung ngăn xếp của hàm để truy cập biến cục bộ và tham số. "EFLAGS" chứa các cờ trạng thái như ZF, CF, SF do phép tính đặt ra, không chứa giá trị tính toán. "EIP" là con trỏ lệnh trỏ tới lệnh sắp chạy, không dùng để tính toán; mã độc chỉ nhắm vào nó khi muốn chiếm luồng thực thi.
36Which command changes the size of the stack?5 lựa chọn
Amov eax, ebx
Blea ecx, [edx+16]
Cmov ebx, [eax]
Dsub ecx, 3
Epush edx
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "push edx". Ngăn xếp (stack) trên x86 được quản lý bởi thanh ghi ESP trỏ vào đỉnh ngăn xếp; lệnh push edx giảm ESP đi 4 byte rồi ghi giá trị của edx vào ô nhớ mới tại đỉnh, nên ngăn xếp lớn thêm một phần tử (pop, call, ret hay các lệnh cộng trừ trực tiếp trên esp cũng làm đổi kích thước). Bác: "mov eax, ebx" chỉ chép giá trị giữa hai thanh ghi, ESP giữ nguyên. "lea ecx, [edx+16]" tính địa chỉ edx+16 và đặt vào ecx mà không truy cập bộ nhớ, không chạm tới ESP. "mov ebx, [eax]" đọc ô nhớ do eax trỏ tới vào ebx, chỉ là đọc dữ liệu. "sub ecx, 3" trừ 3 khỏi ecx; lệnh sub chỉ làm đổi ngăn xếp khi toán hạng đích là esp, như sub esp, 0x20 để cấp vùng biến cục bộ, còn ở đây đích là ecx nên ngăn xếp không đổi.
AThey are too large for efficient hashing
BThey are slower to access than strings
CThey can be changed in place, disrupting hashing
DThey are restricted to numerical values
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "They can be changed in place, disrupting hashing". Dictionary trong Python là bảng băm: vị trí lưu một cặp được tính từ hash(key), nên khoá phải hashable, tức giá trị băm không được đổi suốt thời gian khoá nằm trong bảng. List là kiểu khả biến (mutable), append hay gán phần tử làm nội dung đổi tại chỗ, nếu băm theo nội dung thì khoá sẽ lạc khỏi ô của nó; vì thế list không có hàm băm và dùng làm khoá sẽ ném TypeError: unhashable type: 'list', còn tuple bất biến thì dùng được. "They are too large for efficient hashing" sai vì một list rỗng cũng bị cấm, trong khi chuỗi rất dài vẫn băm được. "They are slower to access than strings" sai vì tốc độ truy cập không phải tiêu chí chọn khoá. "They are restricted to numerical values" sai vì list chứa được phần tử thuộc bất kỳ kiểu nào.
Amov
Bsub
Cnop
Dpush
Epop
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "nop". Lệnh nop (no operation, mã 0x90 trên x86) không làm gì ngoài việc chuyển sang lệnh kế tiếp. Trong tấn công tràn bộ đệm, kẻ tấn công đặt một dãy dài nop, gọi là NOP sled (đường trượt), trước shellcode: địa chỉ trả về bị ghi đè chỉ cần rơi vào đâu đó trong dãy này là CPU trượt qua các nop tới shellcode, nên không cần đoán địa chỉ chính xác. "mov" chép dữ liệu giữa thanh ghi và bộ nhớ, có trong shellcode nhưng không lặp hàng loạt. "sub" là phép trừ, đôi khi dùng để chỉnh ESP. "push" đẩy giá trị lên ngăn xếp, shellcode dùng để dựng tham số nhưng không lặp hàng trăm lần. "pop" lấy giá trị khỏi ngăn xếp, hay gặp trong chuỗi ROP chứ không phải phần đệm.
39What is a first-chance exception in debugging?4 lựa chọn
AWhen malware crashes the system
BWhen the program requests admin access
CWhen the debugger is first given control after an exception
DWhen a program finishes execution
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "When the debugger is first given control after an exception". Khi chương trình đang bị gỡ lỗi phát sinh ngoại lệ (chia cho 0, truy cập sai bộ nhớ, INT 3), Windows dừng chương trình và báo cho debugger trước tiên, gọi là first-chance exception (ngoại lệ cơ hội lần đầu); debugger có thể tự xử lý hoặc chuyển tiếp cho bộ xử lý SEH của chương trình. Nếu chương trình không xử lý được, debugger mới nhận lần hai (second chance). Bác: "When malware crashes the system" mô tả sự cố sập hệ thống, không phải khái niệm gỡ lỗi; ngoại lệ lần đầu chưa làm chương trình sập. "When the program requests admin access" là yêu cầu nâng quyền qua UAC, không sinh ngoại lệ. "When a program finishes execution" là sự kiện tiến trình kết thúc, debugger có nhận được nhưng đó không phải ngoại lệ.
ATwo computers connected together
BVirtualBox must be installed
C32-bit operating system
DSystem must be in Safe Mode
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Two computers connected together". Gỡ lỗi chế độ nhân (kernel-mode debugging) bằng WinDbg sẽ dừng toàn bộ hệ điều hành khi gặp breakpoint, nên debugger không thể chạy trên chính máy đang bị đóng băng; cần một máy chạy debugger (host) nối với máy mục tiêu (target) qua cáp serial, FireWire, USB hoặc mạng, và trong lab thường dùng một máy ảo làm target nối qua cổng COM ảo hay named pipe với máy host, về logic vẫn là hai máy. "VirtualBox must be installed" sai vì máy ảo chỉ là cách tiện lợi, dùng VMware hoặc hai máy thật đều được. "32-bit operating system" sai vì WinDbg gỡ lỗi nhân được cả Windows 64 bit. "System must be in Safe Mode" sai vì chế độ gỡ lỗi nhân được bật bằng lệnh bcdedit /debug on và hệ thống khởi động bình thường.