XÓA NHẬT KÝ SỰ KIỆN CỦA WINDOWS
Tin tặc có thể xóa Nhật ký sự kiện của Windows (Windows Event Logs) để che giấu hoạt động xâm nhập. Nhật ký sự kiện Windows là bản ghi các cảnh báo và thông báo của máy tính. Có 03 nguồn sự kiện do hệ thống xác định: System, Application và Security, với 05 loại sự kiện: Error, Warning, Information, Success Audit, và Failure Audit.
Các nhật ký sự kiện này có thể được xóa bỏ bằng các lệnh sau (thực hiện trên cmd):
wevtutil cl system
wevtutil cl application
wevtutil cl security
for /F “tokens=*” %1 in (‘wevtutil.exe el’) DO wevtutil.exe cl “%1”
Hoặc có thể xóa trên Powershell:
Get-WinEvent -ListLog * | where {$_.RecordCount} | ForEach-Object -Process { [System.Diagnostics. Eventing.Reader.EventLogSession]::GlobalSession. ClearLog($_.LogName) }
Bên cạnh việc xóa thì đôi khi tin tặc cũng thường vô hiệu hóa tính năng này của Windows bằng nhiều cách khác nhau. Ví dụ: Nhấn tổ hợp phím Windows + R -> Nhập msconfig -> Service -> Bỏ chọn Windows Event Log.
Hình 1. Vô hiệu hóa tính năng ghi Nhật ký sự kiện của Windows
Xóa nhật ký hệ thống trên hệ điều HÀNH LINUX HOẶC MACOS
Các tin tặc cũng có thể xóa nhật ký hệ thống để che giấu bằng chứng về sự xâm nhập. MacOS và Linux đều theo dõi các hành động của hệ thống hoặc do người dùng khởi tạo thông qua nhật ký hệ thống. Phần lớn nhật ký hệ thống gốc được lưu trữ trong thư mục /var/ log/. Các thư mục con trong thư mục này phân loại nhật ký theo các chức năng liên quan của chúng, chẳng hạn như:
- /var/log/messages: Thông báo chung liên quan đến hệ thống.
- /var/log/secure hoặc /var/log/auth.log: Các thông tin liên quan đến bảo mật và xác thực.
- /var/log/utmp hoặc /var/log/wtmp: Bản ghi các dữ liệu đã đăng nhập và đăng xuất.
- /var/log/kern.log: Nhật ký liên quan đến Kernel.
- /var/log/maillog: Nhật ký của Mail Server.
- /var/log/httpd/: Nhật ký truy cập Web Server.
XÓA LỊCH SỬ THỰC THI CÂU LỆNH
Các trình thông dịch lệnh khác nhau theo dõi các lệnh mà người dùng nhập vào thiết bị đầu cuối của họ để người dùng có thể xem lại những gì họ đã làm. Vì thế, lịch sử thực thi các câu lệnh cũng là thông tin mà tin tặc cần phải xóa bỏ.
Trên Linux và macOS, các lịch sử lệnh này có thể được truy cập theo một số cách khác nhau. Trong khi đăng nhập, lịch sử lệnh này được theo dõi trong một tệp được trỏ tới bởi biến môi trường HISTFILE. Khi người dùng đăng xuất khỏi hệ thống, thông tin này được chuyển vào một tệp trong thư mục chính của người dùng được gọi là ~/.bash_history. Lợi ích của việc này là nó cho phép người dùng quay lại các lệnh mà họ đã sử dụng trước đây trong các phiên khác nhau.
Tin tặc có thể xóa lệnh của họ khỏi các nhật ký này bằng cách xóa lịch sử (history -c) hoặc xóa tệp lịch sử cơ sở theo cách thủ công rm ~/.bash_history. Bên cạnh đó, cũng có thể tận dụng Network Device CLI trên các thiết bị mạng để xóa dữ liệu lịch sử lệnh.
Trên Windows, PowerShell có hai trình cung cấp lịch sử lệnh khác nhau: lịch sử tích hợp sẵn (built-in history) và lịch sử lệnh do module PSReadLine quản lý. Lịch sử tích hợp chỉ theo dõi các lệnh được sử dụng trong phiên hiện tại. Lịch sử lệnh này không có sẵn cho các phiên khác và sẽ bị xóa khi phiên kết thúc.
Lịch sử lệnh PSReadLine theo dõi các lệnh được sử dụng trong tất cả các phiên PowerShell và ghi chúng vào một tệp (mặc định là $env:APPDATA\Roaming\ Microsoft\Windows\PowerShell\PSReadLine\ ConsoleHost_history.txt). Tệp lịch sử này có sẵn cho các phiên và chứa tất cả lịch sử trong quá khứ vì tệp không bị xóa khi phiên kết thúc.
Tin tặc có thể chạy lệnh PowerShell: Clear-History để xóa toàn bộ lịch sử lệnh khỏi phiên PowerShell hiện tại. Tuy nhiên, hành động này sẽ không thực hiện xóa tệp ConsoleHost_history.txt.
Hình 2. Tệp chứa lịch sử thực thi lệnh PowerShell trên Windows
Mặt khác, tin tặc cũng có thể xóa tệp ConsoleHost_ history.txt hoặc chỉnh sửa nội dung của tệp để ẩn các lệnh PowerShell mà chúng đã chạy trước đó trên máy tính của nạn nhân.
XÓA THƯ MỤC
Phần mềm độc hại, công cụ hoặc các tệp không phải tệp gốc của hệ thống bị tin tặc để lại hoặc tạo trên hệ thống (ví dụ: Ingress Tool Transfer) có thể để lại dấu vết để chỉ ra những gì đã được thực hiện và cách thức thực hiện trong mạng. Việc xóa các tệp này có thể xảy ra trong quá trình xâm nhập hoặc là một phần của quá trình sau xâm nhập để giảm thiểu dấu vết của tin tặc.
Có các công cụ có sẵn từ hệ điều hành để thực hiện dọn dẹp, tuy nhiên tin tặc cũng có thể sử dụng các công cụ khác. Ví dụ về các chức năng Command and Scripting Interpreter bao gồm del trên Windows và rm hoặc unlink trên Linux và macOS.
So sánh với các kỹ thuật đã được trình bày trước đó, kỹ thuật tấn công này không thể dễ dàng giảm thiểu bằng các biện pháp kiểm soát phòng ngừa, vì nó dựa trên việc “lạm dụng” các tính năng của hệ thống.
GỠ BỎ CÁC KẾT NỐI CHIA SẺ MẠNG
Tin tặc có thể xóa các kết nối chia sẻ không còn hữu ích để xóa dấu vết hoạt động của chúng. Ổ đĩa dùng chung của Windows và kết nối SMB/Windows Admin Shares có thể bị xóa khi không còn cần thiết. Để loại bỏ các kết nối chia sẻ mạng, có thể sử dụng với câu lệnh sau: net use \system\share /delete.
CHỈNH SỬA THUỘC TÍNH DẤU THỜI GIAN CỦA TỆP
Tin tặc có thể sửa đổi thuộc tính thời gian tệp (Timestomping) để ẩn tệp mới hoặc thay đổi đối với tệp hiện có. Timestomping là một kỹ thuật sửa đổi dấu thời gian của tệp (thời gian sửa đổi, truy cập, tạo và thay đổi), thường để bắt chước các tệp nằm trong cùng một thư mục. Các tin tặc thường thực hiện kỹ thuật này, ví dụ trên các tệp đã được sửa đổi hoặc tạo bởi chúng, điều này khiến các nhà điều tra số hoặc các công cụ phân tích tệp không thể dễ dàng phát hiện ra các hoạt động đáng ngờ.
Sử dụng PowerShell
Thay đổi ngày tạo và dấu thời gian của tệp “log1.txt”:
(Get-Item “D:\...\log1.txt”).CreationTime=(“13 August 2018 17:00:00”)
Thay đổi ngày và dấu thời gian ghi cuối cùng của tệp “log1.txt”:
(Get-Item “D:\...\log1.txt”).LastWriteTime=(“13 August 2018 7:11:00”)
Thay đổi ngày và dấu thời gian được truy cập cuối cùng của tệp “log1.txt”:
(Get-Item “D:\Test\log1.txt”).LastAccessTime = (“13 August 2018 7:11:00”)
Thay đổi ngày và dấu thời gian của tất cả các tệp trong thư mục “Test”:
Get-ChildItem -force d:\...\test\ * | ForEachObject{$_.CreationTime = (“13 August 2018 17:00:00”)} Get-ChildItem -force d:\...\test\ * | ForEachObject{$_.LastWriteTime = (“13 August 2018 7:11:00
Get-ChildItem -force d:\...\test\ * | ForEachObject{$_.LastAccessTime = (“13 August 2018 7:11:00”)}
Lưu ý rằng lệnh trên thay đổi dấu thời gian cho mọi tệp và thư mục con trong một thư mục. Để chỉ áp dụng thay đổi cho các tệp (tức là loại trừ các thư mục con), sử dụng cú pháp sau:
Get-ChildItem -force d:\...\test\ * | Where-Object {! $_.PSIsContainer} | ForEach-Object{$_.CreationTime = (“13 August 2018 17:00:00”)}
Get-ChildItem -force d:\...\test\ * | Where-Object {! $_.PSIsContainer} | ForEach-Object{$_.LastWriteTime = (“13 August 2018 7:11:00”)}
Get-ChildItem -force d:\...\test\ * | Where-Object {! $_.PSIsContainer} | ForEach-Object{$_.LastAccessTime = (“13 August 2018 7:11:00”)}
Để xem ngày sửa đổi, ngày tạo và ngày ghi dữ liệu cuối cùng cho tất cả các tệp trong một thư mục, sử dụng cú pháp dòng lệnh sau:
Get-ChildItem -force “D:\...\Test\” | Select-Object Name, CreationTime, LastWriteTime, LastAccessTime
Hoặc:
foreach ($objFile in Get-ChildItem “D:\...\Test\*.*”) { ““+ $objFile.Name + ””| ‘ + $objFile.CreationTime +’ | ‘ + $objFile.LastWriteTime +’ | ‘ + $objFile. LastAccessTime’}
Sử dụng NirCmd từ Nirsoft
Sử dụng NirCmd, một công cụ dòng lệnh đa năng từ Nirsoft.net có thể thay đổi ngày và dấu thời gian của tệp. Cú pháp dòng lệnh để thay đổi dấu thời gian của tệp bằng cách sử dụng NirCmd như sau:
nircmd.exe setfiletime [filename or wildcard] [Created Date] {Modified Date} {Accessed Date}
Trong đó, tham số đầu tiên có thể là một tên tệp hoặc chuỗi ký tự đại diện. Các tham số ngày phải được chỉ định ở định dạng: “dd-mm-yyyy hh:mm:ss”. Nếu một tham số ngày không được chỉ định hoặc chỉ định một chuỗi trống (“”), thì ngày đó sẽ không bị thay đổi. Nếu chỉ định “now” làm tham số ngày, thì ngày và giờ hiện tại sẽ được sử dụng. Ví dụ:
nircmd.exe setfiletime “d:\...\test\log1.txt” “13/08/2018 7:11:00” “” “13/08/2018 7:11:00”nircmd. exe setfiletime “d:\...\test\log2.txt” now now now
nircmd.exe setfiletime “d:\...\test\log3.txt” now “” now
nircmd.exe setfiletime “d:\...\test\log4.txt” “13/08/2018 7:11:00” “13/08/2018 7:11:00” now
Để thay đổi dấu thời gian của tất cả các tệp văn bản trong một thư mục, đây là cú pháp dòng lệnh:
nircmd.exe setfiletime “d:\...\test\*.txt” “13/08/2089 7:11:00” “13/08/2018 7:11:00” “13/08/2018 7:11:00”
KẾT LUẬN
Bài báo đã chỉ ra một số những kỹ thuật mà tin tặc thường sử dụng để chống lại các hoạt động điều tra số. Nắm bắt về điều này có thể giúp các nhà điều tra số có được những dấu vết hoạt động mà tin tặc đã thực hiện và để lại trên máy tính nạn nhân, từ đó nâng cao hiệu quả quá trình điều tra số. Qua đó, góp phần tìm kiếm các mối nguy cơ, xây dựng các giải pháp ngăn chặn các cuộc tấn công mạng tại chính tổ chức của mình.
Tài liệu tham khảo [1]. Cash, D. et al. (2020, December 14). Dark Halo Leverages SolarWinds Compromise to Breach Organizations. Retrieved December 29, 2020. [2]. FireEye. (2020, December 13). Highly Evasive Attacker Leverages SolarWinds Supply Chain to Compromise Multiple Global Victims With SUNBURST Backdoor. Retrieved January 4, 2021. [3]. US-CERT. (2017, December 13). Malware Analysis Report (MAR) - 10135536-B. Retrieved July 17, 2018. [4]. Pantazopoulos, N. (2020, June 2). In-depth analysis of the new Team9 malware family. Retrieved December 1, 2020. [5]. F-Secure Labs. (2014). BlackEnergy & Quedagh: The convergence of crimeware and APT attacks. Retrieved March 24, 2016. [6]. Dahan, A. et al. (2020, November 2). Back to the Future: Inside the Kimsuky KGH Spyware Suite. Retrieved November 6, 2020. [7]. Smith, S., Stafford, M. (2021, December 14). DarkWatchman: A new evolution in fileless techniques. Retrieved January 10, 2022. [8]. TheWover. (2019, May 9). donut. Retrieved March 25, 2022. [9]. Adamitis, D. (2020, May 6). Phantom in the Command Shell. Retrieved December 22, 2021. [10].Hada, H. (2021, December 28). Flagpro The new malware used by BlackTech. Retrieved March 25, 2022. |