Ngân hàng câu hỏi của chương

Câu hỏi: IAM302 - Phần 6: Gỡ lỗi và điều tra bộ nhớ

31 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 theo thứ tự nhập vào ngân hàng. Trang 2/2 — câu 21–31.

Danh sách câu hỏi

31/31 câuHết danh sách
ATwo computers connected together
BVirtualBox must be installed
C32-bit operating system
DSystem must be in Safe Mode
Lời giải
Đá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.
Mở trang câu hỏi này →
AEncrypt malware code
BObfuscate malware behavior
CTrace and analyze malware execution
DSpread malware to other systems
Lời giải
Đáp án đúng: "Trace and analyze malware execution". Debugger cho phép người phân tích chạy mẫu từng lệnh, đặt điểm dừng tại các API như CreateFileW hay VirtualAlloc, xem thanh ghi, ngăn xếp và bộ nhớ ở từng thời điểm; nhờ đó lần theo (trace) luồng thực thi và hiểu mã độc giải mã, giải nén hay chọn nhánh như thế nào. Đây là công cụ chủ lực của phân tích động nâng cao. Bác: "Encrypt malware code" là việc của tác giả mã độc khi dùng packer hay crypter, ngược với mục tiêu phân tích. "Obfuscate malware behavior" cũng là kỹ thuật của kẻ tấn công nhằm che giấu, trong khi debugger giúp gỡ bỏ chính sự che giấu đó. "Spread malware to other systems" là hành vi lây lan của bản thân mã độc; người phân tích luôn chạy mẫu trong lab cô lập để ngăn điều đó.
Mở trang câu hỏi này →
ATo halt the execution of the malware at specific points
BTo speed up malware execution
CTo encrypt malware payloads
DTo hide malware from detection
Lời giải
Đáp án đúng: "To halt the execution of the malware at specific points". Breakpoint (điểm dừng) báo cho debugger dừng chương trình khi chạy tới một lệnh hay khi một vùng nhớ bị truy cập, để nhà phân tích xem thanh ghi, ngăn xếp, bộ nhớ ngay lúc đó, chẳng hạn đặt ở VirtualAlloc hay CreateProcess để bắt khoảnh khắc mẫu giải nén hoặc tiêm mã, rồi chạy tiếp từng bước. "To speed up malware execution" ngược lại, breakpoint làm chương trình chạy chậm đi vì mỗi lần chạm đều chuyển quyền cho debugger. "To encrypt malware payloads" không liên quan, breakpoint không biến đổi dữ liệu của mẫu. "To hide malware from detection" sai vì breakpoint phục vụ nhà phân tích, thậm chí mã độc còn dùng kỹ thuật chống gỡ lỗi để phát hiện breakpoint đang được đặt.
Mở trang câu hỏi này →
ATo develop new malware strains
BTo remove malware from infected systems
CTo analyze and understand malware behavior
DTo encrypt sensitive data on infected systems
Lời giải
Đáp án đúng: "To analyze and understand malware behavior". Gỡ lỗi (debugging) mã độc là chạy mẫu trong trình gỡ lỗi để quan sát từng bước: lệnh nào được thực thi, thanh ghi và bộ nhớ đổi ra sao, chuỗi nào được giải mã, API nào được gọi, nhằm hiểu đầy đủ chức năng mà phân tích tĩnh không thấy được do mã bị nén hay làm rối. "To develop new malware strains" là việc của kẻ tấn công, không phải mục tiêu phân tích. "To remove malware from infected systems" là công việc khắc phục sau sự cố; hiểu hành vi qua gỡ lỗi giúp viết cách gỡ, nhưng bản thân gỡ lỗi không xoá mã độc. "To encrypt sensitive data on infected systems" là hành vi của ransomware, không liên quan tới gỡ lỗi.
Mở trang câu hỏi này →
AUser-mode debugging
BKernel-mode debugging
CNetwork debugging
DApplication debugging
Lời giải
Đá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.
Mở trang câu hỏi này →
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
Đá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ý.
Mở trang câu hỏi này →
ATo execute malware on a system
BTo monitor network traffic
CTo trace and analyze malware behavior
DTo encrypt sensitive data
Lời giải
Đá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.
Mở trang câu hỏi này →
ARaw Dump is linear, while Windows crash dump includes system state metadata
BRaw Dump is compressed, while Windows crash dump is not
CRaw Dump requires commercial tools, while Windows crash dump does not
DWindows crash dump is only for kernel memory, while Raw Dump is for user memory
Lời giải
Đáp án đúng: "Raw Dump is linear, while Windows crash dump includes system state metadata". Raw dump là bản chép từng byte của RAM vật lý theo thứ tự địa chỉ từ 0 trở đi, không có header, nên kích thước bằng dung lượng RAM và công cụ phân tích phải tự dò cấu trúc nhân; crash dump của Windows (tệp .dmp) mở đầu bằng header ghi thông tin trạng thái hệ thống như phiên bản hệ điều hành, số CPU, địa chỉ bảng trang và mã lỗi, nên WinDbg mở được trực tiếp. "Raw Dump is compressed, while Windows crash dump is not" sai vì raw dump không nén, chính vì vậy nó to bằng RAM. "Raw Dump requires commercial tools, while Windows crash dump does not" sai vì nhiều công cụ miễn phí như dd, Win32dd, DumpIt đều tạo được raw dump. "Windows crash dump is only for kernel memory, while Raw Dump is for user memory" sai vì crash dump có loại complete memory dump chứa cả bộ nhớ người dùng, còn raw dump chứa toàn bộ RAM chứ không riêng vùng người dùng.
Mở trang câu hỏi này →
ATrue
BFalse
Lời giải
Đáp án đúng: "False". Ảnh bộ nhớ (memory dump) là một tệp chứa nội dung RAM tại thời điểm chụp; Volatility đọc tệp đó dựa trên hồ sơ (profile) hay bảng ký hiệu của hệ điều hành tương ứng, không cần chạy trên chính máy đã chụp. Thực tế người ta chụp ảnh bằng DumpIt hay WinPmem trên máy nghi nhiễm, chép tệp sang máy phân tích sạch rồi phân tích tại đó, vừa tránh mã độc trên máy nhiễm can thiệp vào kết quả vừa bảo toàn bằng chứng. Vì thế phát biểu đòi phải phân tích trên cùng máy là sai; chọn "True" là nhầm giữa bước thu nhận ảnh, vốn phải làm trên máy đích, với bước phân tích có thể làm ở bất kỳ máy nào có Volatility.
Mở trang câu hỏi này →
AWhen conducting kernel-mode debugging on a Windows system
BWhen performing static analysis of malware code
CWhen analyzing network traffic generated by the malware
DWhen using a sandbox environment for dynamic malware analysis
Lời giải
Đáp án đúng: "When conducting kernel-mode debugging on a Windows system". Khi gỡ lỗi chế độ nhân (kernel-mode debugging) bằng WinDbg, mỗi lần chạm breakpoint thì toàn bộ hệ điều hành mục tiêu đóng băng, nên debugger phải chạy trên một máy khác nối với máy mục tiêu qua cáp serial, mạng hoặc cổng COM ảo giữa máy host và máy ảo; điều này cần khi phân tích rootkit hay driver độc chạy trong nhân. "When performing static analysis of malware code" không cần vì phân tích tĩnh không chạy mã, một máy là đủ. "When analyzing network traffic generated by the malware" chỉ cần công cụ bắt gói như Wireshark; có lab dùng thêm máy chạy INetSim để giả lập dịch vụ, nhưng đó là thiết lập mạng chứ không phải yêu cầu của việc gỡ lỗi. "When using a sandbox environment for dynamic malware analysis" không đòi hai máy nối nhau vì sandbox tự chạy và ghi hành vi mẫu.
Mở trang câu hỏi này →
ATXT (Text)
BDOCX (Microsoft Word)
CRAW (Binary)
DJPG (Image)
Lời giải
Đáp án đúng: "RAW (Binary)". Định dạng raw là bản chép nhị phân từng byte của bộ nhớ vật lý theo đúng thứ tự địa chỉ, không header, không nén; công cụ thu như dd, Win32dd, DumpIt tạo ra tệp .raw hoặc .mem và hầu hết công cụ phân tích như Volatility đều đọc được nên đây là định dạng phổ biến nhất, bên cạnh crash dump của Windows. "TXT (Text)" là tệp văn bản thuần, không biểu diễn được dữ liệu nhị phân tuỳ ý của RAM, chỉ dùng để ghi kết quả hay báo cáo. "DOCX (Microsoft Word)" là định dạng tài liệu văn phòng, có cấu trúc riêng và hoàn toàn không dùng để chứa ảnh bộ nhớ. "JPG (Image)" là định dạng ảnh nén mất dữ liệu, nếu dùng sẽ làm sai lệch nội dung và phá giá trị chứng cứ.
Mở trang câu hỏi này →