NTFS Stream là gì?
New Technology File System (NTFS) là một hệ thống tập tin lưu trữ file với sự trợ giúp của hai data stream gọi là NTFS streams, cùng với các thuộc tính file. Data stream đầu tiên lưu trữ security descriptor cho file được lưu trữ như quyền truy cập, và data stream thứ hai lưu trữ dữ liệu của file. ADS là một loại data stream khác có thể xuất hiện trong mỗi file.
ADS (Alternate Data Stream) là dữ liệu được đính kèm vào một file trên hệ thống NTFS và không nằm trong file đó. Bảng MFT (Master File Table) của phân vùng chứa danh sách tất cả các data stream mà một file được lưu trữ và vị trí vật lý của chúng trên đĩa. Do đó, ADS không nằm trong file mà được liên kết với file thông qua file table. NTFS ADS là một stream ẩn của Windows chứa các siêu dữ liệu cho file, bao gồm các thuộc tính, số lượng từ, author và thời gian truy cập và sửa đổi của các file đó.
Các file có ADS rất khó để phát hiện bằng các kỹ thuật duyệt file cơ bản như sử dụng dòng lệnh hoặc Windows Explorer. Sau khi một file ADS được đính vào file gốc, kích thước của file gốc không thay đổi. Dấu hiệu duy nhất cho thấy file đã bị thay đổi là thời gian sửa đổi.
Cách tạo NTFS Streams
Khi sử dụng NTFS data streams, hacker có thể gần như hoàn toàn che giấu các file trong hệ thống. Việc sử dụng các stream này khá đơn giản, nhưng client rất khó để nhận ra. Explorer chỉ hiển thị các file gốc; nó không thể xem các stream liên kết với các file gốc và không thể xác định không gian đĩa được sử dụng bởi các stream này. Do đó, nếu một mẩu virus gắn chính nó vào ADS, khả năng cao sẽ khiến cho các phần mềm diệt virus sẽ không nhận ra được nó.
Khi người dùng đọc hoặc ghi một file, thì mặc định sẽ tương tác với main data stream. Bây giờ chúng ta sẽ tìm hiểu cách tạo một ADS cho một file. ADSs tuân theo cú pháp filename.ext:alternateName
.
- Chạy
C:\>notepad myfile.txt:lion.txt
và nhấn Yes để tạo file mới, nhập một vài chữ tùy ý và lưu file. - Chạy
C:\>notepad myfile.txt:tiger.txt
và nhấn Yes để tạo file mới, nhập tùy ý và lưu file. - Kiểm tra kích thước của file myfile.txt.
- Các lệnh sau có thể dùng để xem hoặc sửa đổi data stream ẩn trong các bước 1 và 2, tương ứng:
notepad myfile.txt:lion.txt
notepad myfile.txt:tiger.txt
Notepad là một ứng dụng tuân thủ stream. Tuy nhiên không nên sử dụng các stream thay thế để lưu trữ thông tin quan trọng vì các stream này có thể bị mất hoặc bị xóa. Các stream thay thế thường được sử dụng cho mục đích thử nghiệm và không nên được sử dụng làm phương pháp chính để lưu trữ dữ liệu.
Stream Manipulation
Ẩn Trojan.exe (malicious program) trong Readme.txt (stream)
Để ẩn chương trình độc hại Trojan.exe trong file Readme.txt (stream), sử dụng lệnh sau:
C:>type C:\Trojan.exe >C:\Readme.txt:Trojan.exe
Lệnh “type” sẽ ẩn file trong một alternate data stream (ADS) phía sau một file hiện có. Toán tử hai chấm (:) chỉ định tạo hoặc sử dụng ADS.
Tạo liên kết đến Trojan.exe
Sau khi ẩn file Trojan.exe phía sau file Readme.txt, ta cần tạo một liên kết để chạy file Trojan.exe từ stream giống như tạo một phím tắt cho Trojan.exe trong stream.
C:\>mklink backdoor.exe Readme.txt:Trojan.exe
Thực thi Trojan
Nhập lệnh C:\>backdoor
để chạy Trojan mà ta vừa ẩn đằng sau file Readme.txt. Trong đó, backdoor là phím tắt được tạo trong bước trước đó, khi thực thi nó sẽ cài đặt Trojan.
Một ví dụ khác dễ hiểu như sau:
Ta tạo một file văn bản không độc hại có tên “document.txt“. Sử dụng công cụ Command Prompt trên Windows, ta tạo một NTFS Alternate Data Stream (ADS) bằng cách sử dụng cú pháp “type” và “more” để ghi dữ liệu vào luồng dữ liệu ẩn. Ví dụ:
echo This is a normal text file > document.txt:hidden.txt
Trong đó, “document.txt” là tên của file gốc, và “hidden.txt” là tên của luồng dữ liệu ẩn.
Tiếp theo, ta tạo một file thực thi (ví dụ: “payload.exe“) chứa mã độc. Sử dụng Command Prompt, ta gắn luồng dữ liệu ẩn với file thực thi bằng cách sử dụng lệnh “type” và “more” để ghi dữ liệu từ file thực thi vào luồng dữ liệu ẩn. Ví dụ:
type payload.exe > document.txt:hidden.txt:payload.exe
Bây giờ, nếu người dùng mở file “document.txt” bằng chương trình đọc văn bản thông thường, file sẽ được hiển thị như một file bình thường, trong khi mã độc đã được gắn liền trong luồng dữ liệu ẩn. Khi “document.txt” được mở bởi một tiến trình hoặc người dùng khác (ví dụ bằng cách nhấp đúp), mã độc từ luồng dữ liệu ẩn “payload.exe” có thể được thực thi mà không có cảnh báo nào.
Phòng chống tấn công NTFS Streams
Để bảo vệ khỏi tấn công NTFS streams, có thể thực hiện những việc sau:
- Di chuyển các file nghi ngờ sang một phân vùng File Allocation Table (FAT) để xóa các NTFS streams ẩn.
- Sử dụng phần mềm kiểm tra toàn vẹn tệp tin của bên thứ ba như Tripwire File Integrity Manager để đảm bảo tính toàn vẹn của các file trong phân vùng NTFS chống lại các ADSs không được ủy quyền.
- Sử dụng công cụ bên thứ ba để hiển thị và thao tác các stream ẩn như EventSentry SysAdmin Tools hoặc adslist.exe.
- Tránh ghi dữ liệu quan trọng vào các ADS.
- Luôn sử dụng phần mềm diệt virus cập nhật mới nhất trên hệ thống.
- Sử dụng phần mềm theo dõi file như Stream Detector (https://www.novirusthanks.org) và GMER (http://www.gmer.net).
- Cấu hình tường lửa đúng.
- Sử dụng phần mềm có khả năng sao lưu như Symantec Backup Exec để xử lý ADS.
- Theo dõi các quyền cụ thể cần thiết để đọc và ghi các thuộc tính mở rộng NTFS.
Công cụ Stream Amor
Stream Armor là một công cụ được sử dụng để phát hiện các ADS ẩn và loại bỏ chúng hoàn toàn khỏi hệ thống. Với tính năng phân tích tự động tiên tiến cùng với cơ chế xác minh mối đe dọa trực tuyến, Stream Armor giúp ta loại bỏ bất kỳ ADS nào đang hiện diện.
Các bạn có thể xem thêm bài viết trước Duy trì quyền truy cập bằng Keylogger, Spyware và Rootkits.
Comments 1