Quy trình điều tra số trên Linux phần cuối
Cùng chuyên gia an ninh mạng Nguyễn Việt Anh và Nguyễn Quốc Hoàn tìm hiểu những bước cuối trong quy trình phân tích điều tra số trên Linux tại bài viết sau nhé. Lập tài liệu về hiện trạng cấu hình phần cứng của hệ thống Điều tra viên cần ghi lại thông tin cấu hình phần cứng hệ ...
Cùng chuyên gia an ninh mạng Nguyễn Việt Anh và Nguyễn Quốc Hoàn tìm hiểu những bước cuối trong quy trình phân tích điều tra số trên Linux tại bài viết sau nhé.
Lập tài liệu về hiện trạng cấu hình phần cứng của hệ thống
Điều tra viên cần ghi lại thông tin cấu hình phần cứng hệ thống trước khi thực hiện thao tác niêm phong nhằm đảm bảo hệ thống không bị thay đổi hoặc làm hư hại.
Trong Linux, ta có thể sử dụng các lệnh fdisk, df, ifconfig hay lệnh đọc các tập tin cấu hình phần cứng trong thư mục /proc, ví dụ cat /proc/scsi/scsi > scsi_list.txt
Trong Windows, ta dùng chương trình Device Manager để xem danh sách các thiết bị phần cứng khả dụng trong hệ thống.
Tìm hiểu điều tra số trên Linux =>> XEM TẠI ĐÂY
Tạo và lưu trữ bản sao của ổ nhớ dưới dạng ảnh hoặc một ổ đĩa nhân bản
Trong trường hợp phân tích động chưa thể cung cấp đủ bằng chứng số, điều tra viên phải tiến hành sao lưu lại hệ thống tập tin để phân tích tĩnh nhằm tìm ra manh mối trong các tập tin hệ thống, các tập tin bị ẩn hoặc các tập tin bị xóa khỏi hệ thống một cách cố ý. Cách tốt nhất để sao lưu hệ thống tập tin là tạo các bản sao của ổ nhớ. Tùy vào từng tình huống cụ thể, điều tra viên có thể lựa chọn giữa việc chỉ sao chép lại dữ liệu hoặc sao chép cả cấu trúc ổ nhớ và dữ liệu bên trong nó. Cách an toàn nhất thường là sao chép từng bit một, thiết lập lại cả cấu trúc và nội dung dữ liệu của một ổ nhớ sang một hoặc nhiều ổ nhớ khác, sau đó giữ nguyên hiện trạng của ổ nhớ gốc và thực hiện tìm kiếm, trích xuất, phân tích trên các bản sao vừa tạo. Bản sao của một ổ nhớ có thể được lưu dưới dạng file ảnh hoặc một ổ nhớ tương tự (duplicated drive).
Trong suốt quá trình tạo bản sao, điều tra viên cần lập tài liệu chi tiết các bước tiến hành, tạo hash cho các bản sao ảnh của ổ nhớ vừa tạo và ghi lại hash này vào sổ tay, sau đó lưu trữ các bản sao cũng như tài liệu vừa lập tại nơi an toàn.
Ta có thể thực hiện sao chép thủ công một ổ nhớ bằng các công cụ như: dd, testdisk, EnCase, FKT,… hoặc thực hiện sao chép tự động bằng các thiết bị HDD Duplicator như: YEC Demi series, Logicube Zclone series,…
Trước khi tiến hành khôi phục và phân tích dữ liệu trên các bản sao của hệ thống tập tin, trên Linux, ta phải mount các file ảnh hoặc ổ nhớ bản sao này, sử dụng công cụ mount và tùy chọn loop back để Linux OS coi ảnh được mount như là một thiết bị vật lý:
mount -t [type] -o ro,noexec,loop /path/to/image /mnt/point
types: adfs, affs, autofs, cifs, coda, coherent, cramfs, debugfs, devpts, efs, ext, ext2, ext3, hfs, hpfs, iso9660, jfs, minix, msdos, ncpfs, nfs, nfs4, ntfs, proc, qnx4, ramfs, reiserfs, romfs, smbfs, sysv, tmpfs, udf, ufs, umsdos, usbfs, vfat, xenix, xfs, xiafs
Tùy chọn ro (read only) của lệnh mount cũng cho phép truy cập tới bản sao ổ nhớ dưới chế độ read only, điều tra viên không phải sử dụng các write-blocker nào khác (một write-blocker có thể là phần cứng hoặc phần mềm).
Đóng băng hệ thống hoặc thực hiện biện pháp tốt nhất để giữ nguyên hiện trạng máy tính
Việc đóng băng hoặc niêm phong đảm bảo hệ thống không bị can thiệp trái phép, thay đổi hoặc làm hư hại các thành phần phần cứng và phần mềm. Điều tra viên có thể sử dụng các công cụ đóng băng hệ thống như Deep Freeze, OFRIS, Lethe,… hoặc đơn giản là đóng gói, gắn thẻ và dán niêm phong lên hệ thống.
Lên danh sách các từ khóa tìm kiếm
Các từ khóa tìm kiếm có thể được trích xuất từ ảnh bộ nhớ, nội dung gói tin, hostname, username, một vài địa chỉ IP, hoặc magic number của một định dạng tập tin nào đó,… bất kì manh mối nào cũng có thể trở thành từ khóa để tìm kiếm các manh mối khác. Ví dụ, để trích xuất từ khóa là các chuỗi string với định dạng địa chỉ IP trong ảnh bộ nhớ và ghi các từ khóa này vào một text file, ta sử dụng công cụ strings (tích hợp sẵn trên Linux hoặc trong bộ công cụ SysInternal của Windows), kết hợp lệnh grep (Linux) hoặc find/findstr (Windows):
strings memdump_image.vmem | grep -oE “([0-9]{1,3}.) {3} [0-9] {1,3}” > search_list.txt
Sử dụng file search_list.txt như một danh sách tìm kiếm, áp dụng tìm kiếm tự động trên toàn bộ bảo sao ảnh của ổ nhớ:
grep -aibf search_list.txt image.img > search.results
Ngoài ra ta có thể tìm kiếm tập tin, nhất là tập tin nhị phân của các mẫu mã độc qua tập luật Yara.
Kiểm tra các không gian ổ nhớ chưa cấp phát và khôi phục các tập tin bị xóa
Không gian ổ nhớ chưa cấp phát (unallocated) nhìn từ quan điểm một điều tra viên có thể là một phân vùng nhớ đã bị xóa một cách vô tình hay cố ý. Cách đơn giản nhất để xóa dấu vết của một cuộc xâm nhập trái phép là xóa các tập tin thực thi, tập tin cấu hình liên quan và các tập tin log. Nhiều mẫu mã độc khi thực thi cũng có chức năng xóa một số tập tin hoặc xóa chính tập tin nhị phân của mã độc đó. Sau khi có được bản sao ảnh của ổ nhớ, điều tra viên cần khôi phục các phân vùng nhớ và các tập tin đã bị xóa nhằm dựng lại các chứng cứ phục vụ quá trình điều tra. Thao tác khôi phục phân vùng và tập tin bị xóa thường là thao tác khó khăn và chứa nhiều rủi ro, tỉ lệ thành công không cao. Tùy vào bảng phân vùng và trong các trường hợp cụ thể, điều tra viên có thể sử dụng các công cụ thích hợp để khôi phục các định dạng phân vùng khác nhau. Đôi khi chỉ những công cụ trả phí mới cho kết quả như mong đợi.
Một số công cụ khôi phục phân vùng và tập tin bị xóa miễn phí hoạt động khá hiệu quả trong nhiều trường hợp có thể kể đến như: TestDisk, PhotoRec, SystemRescueCD,.. Bên cạnh đó, các phần mềm trả phí cung cấp các tính năng mạnh mẽ hơn là: EnCase, FTK, EaseUS,… Trong một số trường hợp ngay cả các phần mềm cao cấp cũng không thực sự hiệu quả, điều tra viên có thể phải sử dụng đến các thiết bị chuyên dụng khôi phục dữ liệu như các thiết bị cứu dữ liệu được cung cấp bởi Dolphin Data Lab, SalvationDATA,…
Lập tài liệu về cấu trúc hệ thống file, bao gồm cả thông tin tên, thời điểm truy cập và sửa đổi liên quan đến từng file
Hệ thống tập tin của Linux được tổ chức theo một hệ thống phân bậc tương tự cấu trúc của một cây phân cấp. Bậc cao nhất của hệ thống tập tin là thư mục gốc, được ký hiệu bằng gạch chéo “/” (root directory).
Đối với các hệ điều hành Linux tất các thiết bị kết nối vào máy tính đều được nhận dạng như các tập tin, kể cả những linh kiện như ổ đĩa cứng, các phân vùng đĩa cứng và các ổ USB. Điều này có nghĩa là tất cả các tập tin và thư mục đều nằm dưới thư mục gốc, ngay cả những tập tin biểu tượng cho các ổ đĩa cứng.
Ví dụ, /home/attt/abc.xyz chỉ toàn bộ đường dẫn đến tập tin abc.xyz có trong thư mục nttvinh là thư mục phụ nằm trong thư mục home, ngay dưới thư mục gốc (/).
Nằm dưới thư mục gốc (/) có một loạt các thư mục quan trọng của hệ thống tập tin được công nhận ở tất cả các bản phân phối Linux khác nhau. Dưới đây là danh sách các thư mục thông thường được nhìn thấy dưới thư mục gốc (/):
– / – Root: Thư mục gốc và chỉ người dùng root mới có quyền ghi trong thư mục này
– / bin – User Binaries: Chứa các tập tin thực thi nhị phân. Chứa các lệnh thông thường. Cài đặt lệnh thường dùng của hệ thống: ps, ls, ping, grep, cp.
– /sbin – System Binaries: Cũng chứa tập tin thực thi nhi phân. Chứa các lệnh system aministrator nhằm mục đích bảo trì hệ thống: iptables, reboot, fdisk, ifconfig, swapon
– /etc – Configuration Files: Chứa các tệp tin cấu hình
– /dev – Device Files: Chứa các tệp tin thiết bị
– /proc – Process Information: Chứa thông tin tiến trình. Đây là một hệ thống tập tin ảo với thông tin về tài nguyên hệ thống. VD: /proc/uptime
– /var – Variable Files: Các tệp biến đổi. Các tệp tin này thường được thay đổi như tập tin log, tệp dữ liệu, packages, các tệp tin tạm khi khởi động lại máy /var/tmp
– /tmp – Temporary Files: Chứa tập tin tạm thời tạo bởi hệ thống và người dùng, chúng sẽ bị xóa sau khi khởi động lại máy
– /usr – User Programs: Bao gồm các chương trình nhị phân, thư viện, tài liệu, và mã nguồn cho các chương trình cấp hai.
– /home – Home Directories: Lưu trữ các tệp tin cá nhân
– /boot – Boot Loader Files: Chứa các tệp tin lên quan đến nạp, khởi động – /lib – System Libraries: Tệp tin thư viện hộ chơ các tệp nhị phân
– /opt – Optional add-on Applications: Tùy chọn các ứng dụng bổ sung – /mnt – Mount Directory: chứa tệp gắn kết tạm thời
– /media – Removable Media Devices: Chứa thiết bị gắn tạm thời vd: /media/cdrom
– /srv – Service Data: Liên quan đến dịch vụ máy chủ VD: /srv/cvs
Metadata là dữ liệu để mô tả dữ liệu. Khi dữ liệu được cung cấp cho người dùng cuối, thông tin metadata sẽ cung cấp những thông tin cho phép họ hiểu rõ hơn bản chất về dữ liệu mà họ đang có. Những thông tin này sẽ giúp cho người dùng có được những quyết định sử dụng đúng đắn và phù hợp về dữ liệu mà họ có.
Metadata gồm các thông tin: inode id, sở hữu, quyền, loại tệp tin, ngày tạo, sửa đổi.
Để kiểm tra metadata ta dùng lệnh stat hoặc ls:
Sử dụng lệnh ls để liệt kê: ls /etc/ -l –time-style=long-iso | sort -k6
Thu thập và phân tích log hệ thống, log từ các ứng dụng người dùng
Logfile là một tập tin ghi lại các sự kiện xảy ra trên hệ thống máy tính (HĐH, ứng dụng, thiết bị mạng, thiết bị bảo vệ mạng…)
Các file thường được lưu trong thư mục /var/log/. File log có thể là dạng văn bản thường có đuôi .log cũng có thể là đang nén với đuôi .gz
Vai trò của logfile:
– Giúp người quản trị phát hiện sớm các dấu hiệu tấn công, để từ đó có các biện pháp ngăn chặn kịp thời. Ví dụ, thiết lập các luật ngăn chặn tấn công.
– Giúp xem xet, điều tra các nguồn, thời điểm, phương thức,… tấn công.
Những khó khăn, thách thức trong quản lý Logfile:
– Có quá nhiều nguồn khác nhau.
– Không nhất quán về định dạng/nội dung log.
– Không nhất quán về Timestemps (ghi dấu thời gian).
Hệ thống quản lý Logfile tập trung
– Sản phẩm trả phí: Có tất cả các chức năng của Splunk. Tính dung lượng theo ngày
– Sản phẩm miễn phí: Hạn chế một số chức năng, hạn chế khối lượng dữ liệu mỗi ngày là 500MB
Một cộng cụ quản lý và phân tích log:
– ElasticSearch: Một công cụ tìm kiếm mã nguồn mở và phân tích mạnh mẽ mà làm cho dữ liệu dễ dàng để khám phá. Nó là một máy chủ tìm kiếm dựa trên Apache Lucene.
– Logstash: Là bộ công cụ quản lý tập trung.
– Kibana: Được sử dụng để hiển thị dữ liệu ElashticSearch.
Kỹ thuật phân tích sử dụng các lệnh có sẵn trong linux để phân tích log:
grep: tìm kiếm theo từ khoá. . – vd, grep abc file.
– Pipe (|): kết quả của lệnh này là đầu vào của lệnh khác.
– Vd, sudo cat logged_downloads | grep 202.190.100.118
– Output Redirection (>): xuất kết quả ra một file (đã được fiter mịn hơn).
– Output Appending (>>): xuất kết quả và chèn (nối) vào một file đã tồn tại.
– Input Redirection (<): stdin of a command from a file.
- cat: Hiển thị nội dung file.
– $ cat sshdlog | grep “Failed password”
- wc -l: Thống kê tổng số các bản ghi.
– $ cat sshdlog | grep “Failed password” | wc –l
– $ cat sshdlog | grep “Failed password for invalid user root” |wc –l
- awk ‘{print$socot}’: Lọc ra cột cần lọc.
– cat sshdlog | grep “Failed password” | grep “192.168.30.135” |
- awk ‘{print$3}’ head: lọc ra 10 bản ghi đầu tiên.
- tail: lọc ra 10 bản ghi cuối cùng. sort:
- Sắp sếp. uniq –c : Gom các giá trị đồng thời giống nhau.
- cut : Cắt giá trị .
Kiểm tra file auth.log tìm kiếm đăng nhập sshd bị failed.
Tổng số bản ghi bị failed.
Tổng số bản ghi đăng nhập sai của 192.168.30.135.
Tổng số bản ghi đăng nhập sai của mỗi host.
Từ đó ta có thể nghi ngờ về kẻ tấn công có thể từ địa chỉ 192.168.30.135.
Quy trình điều tra số trên Linux Phần 2
Tìm kiếm tập tin, chương trình và thiết bị lưu trữ bất thường
Khi máy nạn nhân bị tấn công bới hacker, mã độc, virut,.. thì thường tạo ra các bất thường trong file, chương trình, tiến trình. Kiểm tra process
Kiểm tra lập lịch: cat /etc/crontab
Kiểm tra chương trình chạy:
Kiểm tra các chương trình khởi động cùng hệ thông
Thu thấp tập tin ẩn: ls -a
Cách tốt nhất để tìm kiếm malware hay các phần mềm độc hại khác là sử dụng hàm băm. Chúng ta có thể sử dụng virustotal để xác định những file nghi ngờ
Kiểm tra các phần mềm không tin cậy
Xác định tất cả các phần mềm đã cài: dpkg –get-selections
Sau đó tím kiếm các phần mềm khả nghi. Ngoài ra ta cũng có thể sử sụng các cộng cụ quét mã độc để kiểm tra
Lập tài liệu báo cáo tổng hợp các chứng cứ thu thập được
Ghi lại thao tác và kết quả phân tích của tất cả các bước trong quy trình – Phải bao gồm sơ đồ hệ thống và nơi các tập tin mã hóa được ẩn
– Làm bằng chứng chứng minh người điều tra thực hiện bảo vệ thông tin của hệ thống mà không làm hư hại chúng
– Làm bằng chứng chứng minh những phân tích, kết luận đưa ra là có cơ sở
Ghi lại hash để đảm bảo tài liệu báo cáo không bị sửa đổi trái phép hoặc làm hư hại
Tạo bản sao cho các tài liệu báo cáo và lưu trữ ở nơi an toàn.
Một vụ điều tra và vụ xử án có thể mất tới hàng năm, nếu không có tài liệu xác thực, bằng chứng thậm chí còn không được chấp nhận. Những tài liệu xác thực này không chỉ bao gồm các tập tin và dữ liệu được khôi phục từ hệ thống mà còn bao gồm cả bản vẽ của hệ thống và nơi các tập tin được mã hóa hoặc được ẩn.
Quý khách hàng cần tư vấn hỗ trợ về dịch vụ, giải pháp hoặc sản phẩm vui lòng liên hệ:
Website: https://securitybox.vn
Hotline: (+84)90 980 8866 Mr. Kiên
Email: info@securitybox.vn
Địa chỉ: Tầng 9, 459 Đội Cấn, quận Ba Đình, thành phố Hà Nội.