Một trong những phần quan trọng của phân tích phần mềm độc hại là phân tích Bộ nhớ truy cập ngẫu nhiên (RAM). Nó giúp xác định các quy trình độc hại đang chạy, hoạt động mạng, kết nối mở, v.v. trong hệ thống bị xâm phạm. Bài viết này nói về công cụ bảo mật nguồn mở "Volatility" để phân tích bộ nhớ dễ bay hơi. Nó có thể được sử dụng cho cả phân tích RAM của hệ thống 32/64 bit và hỗ trợ phân tích hệ thống Windows, Linux, Mac & Android. Volatility Framework được triển khai bằng ngôn ngữ kịch bản Python và có thể dễ dàng sử dụng trên hệ điều hành Linux và Windows. Nó được sử dụng để phân tích các bản dump sự cố, bản dump thô, bản dump VMware & VirtualBox. Các kỹ thuật trích xuất được thực hiện hoàn toàn độc lập với hệ thống đang được điều tra và cung cấp khả năng hiển thị hoàn toàn vào trạng thái thời gian chạy của hệ thống. Vì vậy, bài viết này nói về phân tích pháp y về bản dump bộ nhớ RAM bằng công cụ volatility. Plugin "malfind" của volatility giúp dump quy trình độc hại và phân tích nó. Một plugin khác của volatility là "cmdscan" cũng được sử dụng để liệt kê các lệnh cuối cùng trên máy bị xâm phạm. Trong cuộc điều tra pháp y này, các nguồn trực tuyến như trang web “virustotal” và “payload security” sẽ được sử dụng để xác minh kết quả. Cuối cùng, Windows Defender và Malware Bytes sẽ được sử dụng để quét các chương trình độc hại.
Cài đặt
Công cụ Volatility có sẵn cho hệ điều hành Windows, Linux và Mac. Đối với Windows và Mac OS, các tệp thực thi độc lập có sẵn và có thể được cài đặt trên Ubuntu 16.04 LTS bằng lệnh sau.
Phân tích bộ nhớ
Trong hướng dẫn này, phân tích pháp y về bản dump bộ nhớ thô sẽ được thực hiện trên nền tảng Windows bằng cách sử dụng tệp thực thi độc lập của công cụ Volatility. Trong quá trình điều tra, điều tra viên pháp y có thể tìm thấy một số chương trình độc hại trên ổ cứng bị xâm phạm. Vì vậy, phân tích bộ nhớ trở nên rất quan trọng trong những trường hợp như vậy vì chương trình độc hại hoặc phần mềm độc hại có thể đang chạy trên hệ thống bị xâm phạm.
Vì vậy, hai hồ sơ sau được đề xuất bởi lệnh "imageinfo".
Bây giờ, lệnh được đề cập bên dưới được sử dụng để lấy danh sách các quy trình đang chạy trong bản sao lưu bộ nhớ.
phần-1
phần-2
Plugin “pslist” của công cụ volatility hiển thị các tiến trình trong bản dump bộ nhớ. Như được hiển thị trong kết quả ở trên, một số chương trình như “0KqEC12.exe” và “rdpclip.exe” là mới trên HĐH Windows. Đây có thể là các ứng dụng độc hại hoặc mới cho HĐH Windows. Tương tự như vậy, nhiều chương trình “iexplore.exe” cũng có vẻ đáng ngờ.
Vì vậy, mục đích của lệnh sau là hiển thị các tiến trình theo định dạng cây (cha/con). Lệnh này sẽ hiển thị liên kết của tiến trình với tiến trình cha. Lệnh này sẽ giúp chúng ta xác định tiến trình cha của chương trình độc hại.
phần-1
phần-2
Như được hiển thị trong đầu ra ở trên của plug-in “pstree” của công cụ Volatility, các tiến trình được hiển thị với PID và PPID của chúng. Chúng tôi đã đánh dấu các chương trình độc hại để điều tra thêm về máy nạn nhân. Bây giờ, plug-in “malfind” (được sử dụng để phát hiện DLL độc hại trong tiến trình) của Volatility sẽ được sử dụng chống lại các tiến trình được đánh dấu.
ID tiến trình: 1120 (svchost.exe)
Lệnh sau với lệnh chuyển malfind được sử dụng để dump các DLL độc hại trong thư mục "output".
Như hiển thị bên dưới, không có dll nào được tìm thấy bởi plug-in malfind.
ID tiến trình: 1788 (rdpclip.exe)
Chạy lại lệnh tương tự với PID 1788 để trích xuất DLL của tiến trình. Tuy nhiên, plug-in không tìm thấy DLL nào.
ID tiến trình: 2104 (explorer.exe)
Như được hiển thị bên dưới, lệnh sau được chạy với PID “2104” và malfind đã trích xuất DLL từ tiến trình.
Đầu ra của plug-in malfind hiển thị bản dump của các DLL đã trích xuất của quy trình độc hại.
ID quy trình: 2240(0kqEC12.exe)
Plugin malfind đang chạy trên PID “2240” có vẻ đáng ngờ đối với hệ điều hành Windows.
Đầu ra của plug-in malfind cho PID “2240” được hiển thị bên dưới.
ID tiến trình: 2840 (iexplore.exe)
Đầu ra của công cụ Volatility đối với PID “2840” được hiển thị bên dưới.
Tiến trình này cũng có vẻ độc hại vì nó cũng sử dụng cùng tên như tiến trình Windows “iexplorer”.
ID tiến trình: 2364(iexplore.exe)
Tương tự như vậy, malfind chạy trên chương trình độc hại “iexplore” có PID “2364”.
Bản dump của malfind đối với PID “2364” được hiển thị bên dưới.
ID quy trình: 3728 (iexplore.exe)
Như được hiển thị bên dưới, plug-in biến động để dump chương trình độc hại được chạy đối với PID “3728”
Ảnh chụp nhanh sau đây cho thấy bản dump của plug-in malfind đối với PID “3728”.
Kết quả quét
Bản dump của các chương trình độc hại đang được quét bằng Windows Defender và Malware byte.
Chi tiết về Trojan được đưa ra bên dưới.
Trojan này ghi lại các lần nhấn phím, theo dõi hoạt động Internet và đánh cắp một số thông tin đăng nhập, sau đó gửi dữ liệu đã thu thập được cho kẻ tấn công từ xa để kiếm lợi nhuận. Nó có thể tải xuống phần mềm độc hại bổ sung, làm giảm bảo mật trình duyệt web và sử dụng rootkit để ẩn hoạt động độc hại của nó [2]. Phần mềm độc hại sử dụng tiêm mã để cản trở việc phát hiện và loại bỏ. Khi “EyeStye.N” thực thi, nó có thể đưa mã vào các tiến trình đang chạy như cmd.exe và explorer.exe.
Phân tích của chúng tôi cho thấy chương trình độc hại được đưa vào chương trình “explorer.exe” là chương trình gốc của chương trình độc hại “iexplore.exe”.
Đầu ra của “cmdscan” cho thấy kẻ tấn công chạy một số lệnh trên dấu nhắc lệnh và thực thi chương trình độc hại “iexplorer.exe” và “ieplore.exe”. Một chương trình đáng ngờ khác được hiển thị trong đầu ra ở trên là “_lt112.spn”. Nó được tìm kiếm trên các nguồn trực tuyến và kết quả cho thấy nó được liên kết với chương trình phần mềm độc hại.
tệp _lt112.spn
Nhà phân tích đã tìm kiếm chuỗi “_lt112.spn” trên internet và tìm thấy nó trên các trang web sau.
Phần 1
Phần 2
Phần 3
Vì vậy, phân tích bộ nhớ chi tiết cho thấy PC bị xâm nhập bởi phần mềm độc hại đang chạy dưới dạng "explorer.exe" và "iexplore.exe" trên máy nạn nhân. Nó cũng cho thấy chương trình độc hại “iexplore.exe” đang kết nối trên cổng 80 từ máy nạn nhân.
Hỗ trợ định dạng bộ nhớ
Định dạng bộ nhớ sau được hỗ trợ bởi bản phát hành Volatility mới nhất [1].- Bộ nhớ vật lý thô/có đệm
- Firewire (IEEE 1394)
- Expert Witness (EWF)
- Windows Crash Dump 32 và 64 bit
- Windows Hibernation 32 và 64 bit
- Tệp MachO 32 và 64 bit
- Virtualbox Core Dump
- VMware Saved State (.vmss) và Snapshot (.vmsn)
- Định dạng HPAK (FastDump)
- QEMU memory dump
Cài đặt
Công cụ Volatility có sẵn cho hệ điều hành Windows, Linux và Mac. Đối với Windows và Mac OS, các tệp thực thi độc lập có sẵn và có thể được cài đặt trên Ubuntu 16.04 LTS bằng lệnh sau.
Mã:
apt-get install volatility
Phân tích bộ nhớ
Trong hướng dẫn này, phân tích pháp y về bản dump bộ nhớ thô sẽ được thực hiện trên nền tảng Windows bằng cách sử dụng tệp thực thi độc lập của công cụ Volatility. Trong quá trình điều tra, điều tra viên pháp y có thể tìm thấy một số chương trình độc hại trên ổ cứng bị xâm phạm. Vì vậy, phân tích bộ nhớ trở nên rất quan trọng trong những trường hợp như vậy vì chương trình độc hại hoặc phần mềm độc hại có thể đang chạy trên hệ thống bị xâm phạm.Xác minh tính toàn vẹn
Băm MD5 của bản dump bộ nhớ của hệ thống độc hại được đưa ra bên dưới. Nó được tính toán để xác minh hình ảnh thu được trước khi bắt đầu phân tích pháp y.
Mã:
MD5: ee043142485a83f4d49a3a7899408500
Phân tích độ biến động
Công cụ Độ biến động được sử dụng để xác định xem PC có bị nhiễm hay không. Như chúng ta đã biết, chương trình độc hại có thể được trích xuất từ các quy trình đang chạy từ bản sao lưu bộ nhớ. Vì vậy, trước hết, cần phải xác định các "hồ sơ" được hỗ trợ cho hình ảnh bộ nhớ đã sao lưu. Như được hiển thị bên dưới, lệnh sau được sử dụng để xác định "hồ sơ" cho hình ảnh.
Mã:
"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" imageinfo -f memdump3.raw
Vì vậy, hai hồ sơ sau được đề xuất bởi lệnh "imageinfo".
Mã:
[B]Win7SP0x86 , Win7SP1x86[/b]
Mã:
"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 pslist -f memdump3.raw
phần-1
phần-2
Plugin “pslist” của công cụ volatility hiển thị các tiến trình trong bản dump bộ nhớ. Như được hiển thị trong kết quả ở trên, một số chương trình như “0KqEC12.exe” và “rdpclip.exe” là mới trên HĐH Windows. Đây có thể là các ứng dụng độc hại hoặc mới cho HĐH Windows. Tương tự như vậy, nhiều chương trình “iexplore.exe” cũng có vẻ đáng ngờ.
Vì vậy, mục đích của lệnh sau là hiển thị các tiến trình theo định dạng cây (cha/con). Lệnh này sẽ hiển thị liên kết của tiến trình với tiến trình cha. Lệnh này sẽ giúp chúng ta xác định tiến trình cha của chương trình độc hại.
Mã:
"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 pstree -f memdump3.raw
phần-1
phần-2
Như được hiển thị trong đầu ra ở trên của plug-in “pstree” của công cụ Volatility, các tiến trình được hiển thị với PID và PPID của chúng. Chúng tôi đã đánh dấu các chương trình độc hại để điều tra thêm về máy nạn nhân. Bây giờ, plug-in “malfind” (được sử dụng để phát hiện DLL độc hại trong tiến trình) của Volatility sẽ được sử dụng chống lại các tiến trình được đánh dấu.
ID tiến trình: 1120 (svchost.exe)
Lệnh sau với lệnh chuyển malfind được sử dụng để dump các DLL độc hại trong thư mục "output".
Mã:
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-1120 -p 1120 -f memdump3.raw
ID tiến trình: 1788 (rdpclip.exe)
Chạy lại lệnh tương tự với PID 1788 để trích xuất DLL của tiến trình. Tuy nhiên, plug-in không tìm thấy DLL nào.
Mã:
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-1788 -p 1788 -f memdump3.raw
ID tiến trình: 2104 (explorer.exe)
Như được hiển thị bên dưới, lệnh sau được chạy với PID “2104” và malfind đã trích xuất DLL từ tiến trình.
Mã:
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-2104 -p 2104 -f memdump3.raw
Đầu ra của plug-in malfind hiển thị bản dump của các DLL đã trích xuất của quy trình độc hại.
ID quy trình: 2240(0kqEC12.exe)
Plugin malfind đang chạy trên PID “2240” có vẻ đáng ngờ đối với hệ điều hành Windows.
Mã:
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-2240 -p 2240 -f memdump3.raw
Đầu ra của plug-in malfind cho PID “2240” được hiển thị bên dưới.
ID tiến trình: 2840 (iexplore.exe)
Đầu ra của công cụ Volatility đối với PID “2840” được hiển thị bên dưới.
Mã:
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-2840 -p 2840 -f memdump3.raw
Tiến trình này cũng có vẻ độc hại vì nó cũng sử dụng cùng tên như tiến trình Windows “iexplorer”.
ID tiến trình: 2364(iexplore.exe)
Tương tự như vậy, malfind chạy trên chương trình độc hại “iexplore” có PID “2364”.
Mã:
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-2364 -p 2364 -f memdump3.raw
Bản dump của malfind đối với PID “2364” được hiển thị bên dưới.
ID quy trình: 3728 (iexplore.exe)
Như được hiển thị bên dưới, plug-in biến động để dump chương trình độc hại được chạy đối với PID “3728”
Mã:
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 malfind -D E:\output/pid-3728 -p 3728 -f memdump3.raw
Ảnh chụp nhanh sau đây cho thấy bản dump của plug-in malfind đối với PID “3728”.
Kết quả quét
Bản dump của các chương trình độc hại đang được quét bằng Windows Defender và Malware byte.
Windows Defender
Kết quả quét của Windows Defender được hiển thị bên dưới và được xác định là “Trojan:Win32/EyeStye.N” & “Trojan: Win32/EyeStye.plugin”Chi tiết về Trojan được đưa ra bên dưới.
Trojan này ghi lại các lần nhấn phím, theo dõi hoạt động Internet và đánh cắp một số thông tin đăng nhập, sau đó gửi dữ liệu đã thu thập được cho kẻ tấn công từ xa để kiếm lợi nhuận. Nó có thể tải xuống phần mềm độc hại bổ sung, làm giảm bảo mật trình duyệt web và sử dụng rootkit để ẩn hoạt động độc hại của nó [2]. Phần mềm độc hại sử dụng tiêm mã để cản trở việc phát hiện và loại bỏ. Khi “EyeStye.N” thực thi, nó có thể đưa mã vào các tiến trình đang chạy như cmd.exe và explorer.exe.
Phân tích của chúng tôi cho thấy chương trình độc hại được đưa vào chương trình “explorer.exe” là chương trình gốc của chương trình độc hại “iexplore.exe”.
MalwareBytes
Ảnh chụp nhanh sau đây cho thấy MalwareBytes cũng phát hiện ra các DLL đã trích xuất là độc hại và đặt tên cho chúng là “Trojan.Grabber”.Lịch sử lệnh (lịch sử CMD)
Một plug-in khác của công cụ Volatility là “cmdscan” để quét lịch sử các lệnh chạy trên máy. Kết quả của lệnh sau đây cho thấy lịch sử các lệnh chạy trên PC bị xâm nhập.
Mã:
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 cmdscan -f memdump3.raw
Đầu ra của “cmdscan” cho thấy kẻ tấn công chạy một số lệnh trên dấu nhắc lệnh và thực thi chương trình độc hại “iexplorer.exe” và “ieplore.exe”. Một chương trình đáng ngờ khác được hiển thị trong đầu ra ở trên là “_lt112.spn”. Nó được tìm kiếm trên các nguồn trực tuyến và kết quả cho thấy nó được liên kết với chương trình phần mềm độc hại.
tệp _lt112.spn
Nhà phân tích đã tìm kiếm chuỗi “_lt112.spn” trên internet và tìm thấy nó trên các trang web sau.
Kết nối mạng
Như chúng ta đã biết, kết nối mạng có thể được tìm thấy trong phân tích bộ nhớ, do đó, plug-in "netscan" được chạy trên ảnh bộ nhớ và kết quả cho thấy chương trình độc hại "iexplore" đã mở một số kết nối trên máy nạn nhân.
Mã:
E:\>"E:\volatility_2.4.win.standalone\volatility-2.4.standalone.exe" --profile=Win7SP0x86 netscan -f memdump3.raw
Phần 1
Phần 2
Phần 3
Vì vậy, phân tích bộ nhớ chi tiết cho thấy PC bị xâm nhập bởi phần mềm độc hại đang chạy dưới dạng "explorer.exe" và "iexplore.exe" trên máy nạn nhân. Nó cũng cho thấy chương trình độc hại “iexplore.exe” đang kết nối trên cổng 80 từ máy nạn nhân.