<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Mft on Roduygo | Blog</title><link>/tags/mft/</link><description>Recent content in Mft on Roduygo | Blog</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Fri, 08 May 2026 15:30:00 +0700</lastBuildDate><atom:link href="/tags/mft/index.xml" rel="self" type="application/rss+xml"/><item><title>Phân tích NTFS</title><link>/post/ntfs/</link><pubDate>Fri, 08 May 2026 15:30:00 +0700</pubDate><guid>/post/ntfs/</guid><description>&lt;p&gt;Chào mừng các bạn quay trở lại với Series Giải phẫu Windows OS &amp;amp; SOC Analytics! Ở bài viết trước, chúng ta đã hiểu được bức tranh tổng thể về File System và &amp;ldquo;chiêu trò&amp;rdquo; giấu mã độc qua Alternate Data Streams (ADS).Hôm nay, chúng ta sẽ cầm kính lúp pháp y (Forensics) để soi vào tận cùng cấu trúc NTFS, bóc tách cuốn sổ cái MFT và trích xuất các &amp;ldquo;camera an ninh&amp;rdquo; ngầm của hệ thống.&lt;/p&gt;
&lt;h2 id="1-kiến-trúc-tổng-thể-của-ntfs-đường-đi-của-một-tệp-tin"&gt;1. Kiến trúc tổng thể của NTFS: Đường đi của một tệp tin
&lt;/h2&gt;&lt;p&gt;Để hiểu NTFS, trước tiên ta cần nắm được cách nó phân chia ổ đĩa. NTFS chia đĩa thành các Cluster (thường là 4KB). Ngay cả khi một file chỉ nặng 2KB, nó vẫn chiếm trọn 1 Cluster 4KB, phần dư thừa đó (Slack Space) không cho file khác dùng. Điều này giúp NTFS tăng tốc độ ghi đọc theo khối lớn và hỗ trợ điều tra dấu vết mã độc.&lt;/p&gt;
&lt;p&gt;Cấu trúc cốt lõi của một phân vùng NTFS bao gồm 4 phần chính:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Boot Sector:&lt;/strong&gt; Nằm ở phần đầu phân vùng, chứa Jump code để boot và vị trí của MFT.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MFT (Master File Table):&lt;/strong&gt; Cuốn sổ cái lưu trữ mọi thông tin.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MFT Mirror ($MFTMirr):&lt;/strong&gt; Bản sao lưu một phần của MFT để phục hồi khi lỗi.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data Area:&lt;/strong&gt; Khu vực chứa nội dung dữ liệu thực sự của file.&lt;/li&gt;
&lt;/ul&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Luồng hoạt động khi bạn mở một tệp:&lt;/strong&gt; Hệ thống đọc Boot Sector -&amp;gt; Xác định vị trí MFT -&amp;gt; Đọc bản ghi (Record) của file trong MFT -&amp;gt; Tìm ra Cluster chứa dữ liệu -&amp;gt; Lấy dữ liệu từ Data Area.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="2-bóc-tách-trái-tim-mft-master-file-table"&gt;2. Bóc tách &amp;ldquo;Trái tim&amp;rdquo; MFT (Master File Table)
&lt;/h2&gt;&lt;p&gt;Trong NTFS, mọi thứ đều là một tệp, kể cả chính hệ thống tệp. MFT thực chất là một tệp đặc biệt có tên &lt;code&gt;$MFT&lt;/code&gt;. Cuốn sổ cái này được chia thành hàng nghìn bản ghi (MFT Records) có kích thước cố định. Mỗi tệp tin hoặc thư mục trên máy tính của bạn đều tương ứng với đúng 1 Record bên trong &lt;code&gt;$MFT&lt;/code&gt;.&lt;/p&gt;
&lt;h3 id="21-giải-phẫu-một-mft-record"&gt;2.1 Giải phẫu một MFT Record
&lt;/h3&gt;&lt;p&gt;Một bản ghi MFT chứa siêu dữ liệu (Metadata) cực kỳ chi tiết, bao gồm:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Standard Information (Thông tin tiêu chuẩn):&lt;/strong&gt; Chứa các dấu thời gian (Timestamps), quyền hạn, và các cờ như Read-only, Hidden, System.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;File Name:&lt;/strong&gt; Tên của tệp hoặc thư mục.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data Attribute (Thuộc tính dữ liệu):&lt;/strong&gt; Đây là phần thú vị nhất. Nếu file của bạn cực nhỏ (dưới vài trăm byte), NTFS sẽ nhét thẳng nội dung của file đó vào bên trong MFT Record (gọi là Resident Data). Nếu file lớn, phần này sẽ chứa danh sách các con trỏ (Data Runs) trỏ ra các Cluster ngoài Data Area (gọi là Non-Resident Data).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Security Descriptor:&lt;/strong&gt; Chứa danh sách kiểm soát truy cập (ACL) quy định ai được phép đọc/ghi file.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="mft record structure" class="gallery-image" data-flex-basis="584px" data-flex-grow="243" height="246" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/ntfs/mftf.png" width="599"&gt;&lt;/p&gt;
&lt;h3 id="22-góc-nhìn-điều-tra-số"&gt;2.2 Góc nhìn Điều tra số
&lt;/h3&gt;&lt;p&gt;MFT là &amp;ldquo;mỏ vàng&amp;rdquo; vì những lý do sau:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cờ In Use:&lt;/strong&gt; Xác định xem bản ghi này đang chứa một file hoạt động hay file đã bị xóa. Khi bạn xóa một file, dữ liệu trên đĩa chưa mất đi, NTFS chỉ đổi cờ In Use thành &amp;ldquo;chưa sử dụng&amp;rdquo;. Do đó, các tệp bị xóa vẫn tồn tại bản ghi trong MFT, hỗ trợ việc khôi phục dữ liệu (Carving).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Số thứ tự (Sequence Number):&lt;/strong&gt; Bộ đếm tăng lên khi một bản ghi MFT được sử dụng lại cho file khác, giúp phân biệt file cũ và mới trên cùng một mục nhập.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Phân tích Dòng thời gian (Timeline):&lt;/strong&gt; MFT lưu trọn bộ 4 mốc thời gian MACB: Modified (Sửa đổi nội dung), Accessed (Truy cập cuối), Created (Tạo lập), và MFT Record Modified (Sửa đổi siêu dữ liệu). Đây là bằng chứng thép để tái tạo trình tự sự kiện của mã độc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bạn có thể dùng công cụ &lt;code&gt;MFTECmd.exe&lt;/code&gt; của Eric Zimmerman để trích xuất &lt;code&gt;$MFT&lt;/code&gt; ra file CSV và đọc bằng Timeline Explorer:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cmd" data-lang="cmd"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;:&lt;span style="color:#75715e"&gt;: Lệnh trích xuất và phân tích file $MFT&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;MFTECmd.exe -f C:\Evidence\$MFT --csv C:\Evidence --csvf MFT_record.csv
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="3-camera-an-ninh-của-ntfs-logfile-và-usn-journal"&gt;3. &amp;ldquo;Camera an ninh&amp;rdquo; của NTFS: $LogFile và USN Journal
&lt;/h2&gt;&lt;p&gt;Khi mã độc hoạt động, nó thường tạo file, ghi dữ liệu, rồi xóa ngay lập tức để phi tang dấu vết. Tuy nhiên, mọi hành động này đều bị hai &amp;ldquo;camera an ninh&amp;rdquo; của NTFS ghi lại trọn vẹn.&lt;/p&gt;
&lt;h3 id="31-logfile-nhật-ký-giao-dịch"&gt;3.1 $LogFile (Nhật ký giao dịch)
&lt;/h3&gt;&lt;p&gt;&lt;code&gt;$LogFile&lt;/code&gt; là một tệp siêu dữ liệu đặc biệt ghi lại mọi thay đổi (tạo, xóa, sửa tệp) trước khi chúng được ghi chính thức xuống đĩa. Chức năng gốc của nó là để hệ thống có thể &amp;ldquo;phát lại&amp;rdquo; (replay) các giao dịch và khôi phục tính nhất quán nếu máy tính bị sập nguồn đột ngột.&lt;/p&gt;
&lt;h3 id="32-usnjrnl-update-sequence-number-journal"&gt;3.2 $USNJrnl (Update Sequence Number Journal)
&lt;/h3&gt;&lt;p&gt;Nếu &lt;code&gt;$LogFile&lt;/code&gt; phục vụ cho hệ thống, thì USN Journal là bản ghi lịch sử tuyệt vời dành cho các dịch vụ theo dõi và giám sát. Nó nằm ẩn trong thư mục &lt;code&gt;$Extend\$UsnJrnl&lt;/code&gt; ở thư mục gốc.&lt;/p&gt;
&lt;p&gt;Đặc biệt, &lt;code&gt;$USNJrnl&lt;/code&gt; bao gồm thành phần chính là &lt;code&gt;$J&lt;/code&gt;, nơi lưu trữ các bản ghi thay đổi thực tế. Đáng chú ý, &lt;code&gt;$J&lt;/code&gt; được Windows triển khai dưới dạng một luồng dữ liệu ẩn Alternate Data Stream (ADS) – chính là kỹ thuật chúng ta đã phân tích ở bài số 4!&lt;/p&gt;
&lt;p&gt;Khi phân tích file &lt;code&gt;$J&lt;/code&gt; (bằng &lt;code&gt;MFTECmd&lt;/code&gt;), chúng ta sẽ thấy các mã sự kiện (Update Reasons) &amp;ldquo;tố cáo&amp;rdquo; mã độc:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;USN_REASON_FILE_CREATE&lt;/code&gt;: Tệp mã độc mới được tạo.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;USN_REASON_DATA_OVERWRITE&lt;/code&gt;: Dữ liệu trong tệp đã bị ghi đè.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;USN_REASON_FILE_DELETE&lt;/code&gt;: Tệp mã độc vừa tự xóa chính nó.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;USN_REASON_RENAME_OLD_NAME&lt;/code&gt;: Tệp tin bị đổi tên (thường thấy trong các vụ tấn công Ransomware đổi đuôi file).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="4-khám-phá-góc-khuất-i30-ntfs-index-allocation"&gt;4. Khám phá góc khuất $I30 (NTFS Index Allocation)
&lt;/h2&gt;&lt;p&gt;Để truy tìm dấu vết của các tệp tin đã bị xóa bốc hơi hoàn toàn khỏi MFT, các chuyên gia Forensics sẽ tìm đến một thuộc tính ẩn khác gọi là &lt;code&gt;$I30&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Thuộc tính &lt;code&gt;$I30&lt;/code&gt; là một chỉ mục (Index) thư mục, có nhiệm vụ duy trì cấu trúc sắp xếp các tệp và thư mục con bên trong một ổ đĩa NTFS.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Góc nhìn Forensics:&lt;/strong&gt; Khi một tệp bị xóa, đổi tên hoặc di chuyển sang thư mục khác, tên của tệp đó sẽ bị gạch bỏ khỏi chỉ mục hoạt động của &lt;code&gt;$I30&lt;/code&gt;. Tuy nhiên, dữ liệu văn bản chứa tên tệp đó vẫn còn sót lại trong vùng không gian trống (Slack Space) của tệp &lt;code&gt;$I30&lt;/code&gt; cho đến khi bị ghi đè. Bằng cách quét vùng không gian Slack Space này, chúng ta có thể chứng minh được sự tồn tại trong quá khứ của một công cụ hack hoặc một tệp tin dữ liệu nhạy cảm mà kẻ tấn công tưởng chừng đã xóa sạch không tì vết.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Qua bài viết này, chúng ta đã đi sâu vào tận cùng các khối cấu trúc tĩnh của hệ thống tệp NTFS. Bằng cách kết hợp phân tích MFT, USN Journal và chỉ mục $I30, không một hành vi tạo, xóa hay sửa đổi tệp tin nào của mã độc có thể qua mắt được bạn. Ở bài viết tiếp theo, chúng sẽ chuyển sang một lĩnh vực đầy tính động và cực kỳ hấp dẫn: Giải phẫu Windows Registry và các điểm neo duy trì sự hiện diện của Malware. Đừng bỏ lỡ nhé!&lt;/em&gt;&lt;/p&gt;</description></item><item><title>File System - NTFS, FAT32 và ADS</title><link>/post/file-system-ads/</link><pubDate>Fri, 08 May 2026 11:30:00 +0700</pubDate><guid>/post/file-system-ads/</guid><description>&lt;p&gt;Ở các bài viết trước, chúng ta đã &amp;ldquo;mổ xẻ&amp;rdquo; quá trình khởi động và đọc hiểu cấu trúc phân vùng ổ cứng ở mức vật lý. Nhưng khi hệ điều hành đã lên, làm sao nó biết tệp tin &lt;code&gt;malware.exe&lt;/code&gt; nằm ở đâu giữa hàng tỷ byte dữ liệu hỗn độn? Hôm nay, chúng ta sẽ bước vào thế giới của Hệ thống tệp (File System) – người quản lý kho vĩ đại của hệ điều hành, và khám phá những góc khuất mà hacker thường lợi dụng để ẩn mình.&lt;/p&gt;
&lt;h2 id="1-hệ-thống-tệp-file-system-thực-chất-là-gì"&gt;1. Hệ thống tệp (File System) thực chất là gì?
&lt;/h2&gt;&lt;p&gt;Nếu bạn tưởng tượng ổ cứng vật lý là một cái kho chứa khổng lồ trống rỗng, thì Tệp (File) chính là những thùng hàng chứa đồ đạc. Vậy Hệ thống tệp (File System) là gì? Nó chính là thủ kho và bộ sổ sách quản lý. Thủ kho sẽ quyết định thùng hàng này đặt ở kệ nào, ghi chú vào sổ để khi bạn cần, họ có thể lấy ra ngay lập tức.&lt;/p&gt;
&lt;p&gt;Về mặt kỹ thuật, đĩa vật lý chia thành các Sector (đơn vị lưu trữ nhỏ nhất, thường là 512 byte). Tuy nhiên, để quản lý dễ dàng hơn, hệ điều hành gom các Sector lại thành các Cluster (Liên cung). Một Cluster là &amp;ldquo;đơn vị thuê đất&amp;rdquo; nhỏ nhất; một tệp dù chỉ chứa 1 chữ cái cũng sẽ được cấp ít nhất 1 Cluster.&lt;/p&gt;
&lt;p&gt;Nếu không có Hệ thống tệp, dữ liệu trên ổ cứng sẽ chỉ là một khối bit khổng lồ không có điểm bắt đầu hay kết thúc.&lt;/p&gt;
&lt;h2 id="2-fat32-kẻ-lỗi-thời-nhưng-không-thể-thay-thế"&gt;2. FAT32: Kẻ lỗi thời nhưng không thể thay thế
&lt;/h2&gt;&lt;p&gt;FAT32 (File Allocation Table 32-bit) ra đời từ thời Windows 95 để thay thế cho FAT16, sử dụng 28-bit để đánh số Cluster. Mặc dù đã cũ, nó vẫn được dùng rất phổ biến trên USB, thẻ nhớ máy ảnh và các thiết bị IoT vì tính tương thích cao với mọi hệ điều hành.&lt;/p&gt;
&lt;h3 id="21-kiến-trúc-cốt-lõi-của-fat32"&gt;2.1 Kiến trúc cốt lõi của FAT32
&lt;/h3&gt;&lt;p&gt;Một phân vùng FAT32 được chia làm 3 vùng chính:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Reserved Region (Vùng lưu trữ):&lt;/strong&gt; Chứa Boot Sector (Sector 0) lưu các tham số cấu hình BIOS (BPB) và FSInfo (Sector 1) lưu số lượng Cluster còn trống.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;FAT Region (Vùng bảng FAT):&lt;/strong&gt; Cuốn &amp;ldquo;mục lục&amp;rdquo; khổng lồ của ổ đĩa. Nó chứa Bảng cấp phát tệp (thường có FAT1 và bản dự phòng FAT2) ghi lại tệp nào nằm ở Cluster nào và Cluster tiếp theo là gì.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Data Region (Vùng dữ liệu):&lt;/strong&gt; Nơi chứa nội dung thực sự của các tệp và Thư mục gốc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Cơ chế nối xích (Cluster Chain):&lt;/strong&gt; Khi bạn lưu một file nặng 10KB vào đĩa có Cluster 4KB, file sẽ bị cắt làm 3 phần. Bảng FAT sẽ ghi lại mối liên kết: &amp;ldquo;Cluster A trỏ tới B&amp;rdquo;, &amp;ldquo;Cluster B trỏ tới C&amp;rdquo;, và &amp;ldquo;Cluster C là kết thúc (EOF)&amp;rdquo;.&lt;/p&gt;
&lt;h3 id="22-những-giới-hạn-huyền-thoại-và-dấu-vết-forensics"&gt;2.2 Những giới hạn &amp;ldquo;huyền thoại&amp;rdquo; và Dấu vết Forensics
&lt;/h3&gt;&lt;p&gt;Điểm yếu chí mạng của FAT32 là nó chỉ hỗ trợ kích thước file tối đa 4GB và Windows mặc định chỉ cho tạo phân vùng tối đa 32GB. Ngoài ra, nó không hỗ trợ tính năng phân quyền bảo mật (như NTFS), ai cắm USB vào cũng có thể đọc được file.&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Góc nhìn Forensics:&lt;/strong&gt; Khi một tệp bị xóa trên FAT32, hệ thống không hề xóa dữ liệu thực sự. Nó chỉ đổi ký tự đầu tiên của tên tệp thành mã Hex &lt;code&gt;0xE5&lt;/code&gt; để báo hiệu rằng vùng nhớ đó đã &amp;ldquo;được giải phóng&amp;rdquo;. Bằng các công cụ chuyên dụng (như Autopsy), SOC Analyst hoàn toàn có thể khôi phục lại (Carving) các tệp tin mã độc đã bị hacker vội vàng xóa đi.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="3-ntfs-kẻ-kế-thừa-mạnh-mẽ-và-phức-tạp"&gt;3. NTFS: Kẻ kế thừa mạnh mẽ và phức tạp
&lt;/h2&gt;&lt;p&gt;Để đáp ứng nhu cầu bảo mật và lưu trữ khổng lồ, Windows hiện đại chuyển sang dùng NTFS (New Technology File System). NTFS vượt qua giới hạn 4GB, hỗ trợ phân quyền truy cập (ACLs), nén file và đặc biệt là khả năng tự phục hồi nhờ tính năng Nhật ký (Journaling).&lt;/p&gt;
&lt;p&gt;Cấu trúc NTFS bao gồm: Boot Sector, MFT (Master File Table), MFT Mirror (bản sao dự phòng), và Vùng dữ liệu (Data Area).&lt;/p&gt;
&lt;h3 id="31-trái-tim-mft-master-file-table"&gt;3.1 &amp;ldquo;Trái tim&amp;rdquo; MFT (Master File Table)
&lt;/h3&gt;&lt;p&gt;MFT là một tệp đặc biệt có tên &lt;code&gt;$MFT&lt;/code&gt;. Trong NTFS, mọi thứ đều là một tệp, kể cả chính hệ thống tệp! Mỗi tệp, thư mục trên ổ đĩa đều có một bản ghi (Record) tương ứng bên trong MFT.&lt;/p&gt;
&lt;p&gt;Bản ghi MFT chứa siêu dữ liệu cực kỳ chi tiết: Tên tệp, quyền truy cập, dấu thời gian (MACB - Modified, Accessed, Created, Birth), và con trỏ trỏ đến vị trí Cluster chứa dữ liệu thực sự. Nếu một tệp có kích thước cực nhỏ, nội dung của nó thậm chí được lưu trực tiếp ngay bên trong bản ghi MFT (Resident Data)!&lt;/p&gt;
&lt;h3 id="32-camera-an-ninh-journaling-logfile-và-usnjrnl"&gt;3.2 &amp;ldquo;Camera an ninh&amp;rdquo; Journaling ($LogFile và $USNJrnl)
&lt;/h3&gt;&lt;p&gt;Đây là &amp;ldquo;mỏ vàng&amp;rdquo; cho Blue Team khi điều tra dấu vết mã độc:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;$LogFile&lt;/code&gt;:&lt;/strong&gt; Ghi lại mọi thay đổi siêu dữ liệu (tạo, xóa, sửa tệp) trước khi chúng được ghi xuống đĩa, giúp hệ thống khôi phục tính nhất quán nếu bị sập nguồn.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;$USNJrnl&lt;/code&gt; (Update Sequence Number Journal):&lt;/strong&gt; Nằm trong thư mục &lt;code&gt;$Extend&lt;/code&gt;, nó cung cấp bản ghi lịch sử mọi hoạt động của tệp tin. Nếu mã độc tạo một file rồi xóa ngay lập tức để phi tang, &lt;code&gt;$USNJrnl&lt;/code&gt; (cụ thể là luồng dữ liệu &lt;code&gt;$J&lt;/code&gt;) vẫn lưu lại mã sự kiện &lt;code&gt;USN_REASON_FILE_CREATE&lt;/code&gt; và &lt;code&gt;USN_REASON_FILE_DELETE&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="USNJrn;" class="gallery-image" data-flex-basis="1074px" data-flex-grow="447" height="149" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/file-system-ads/image.png" width="667"&gt;&lt;/p&gt;
&lt;h2 id="4-alternate-data-streams-ads---kỹ-thuật-ẩn-mình-của-mã-độc"&gt;4. Alternate Data Streams (ADS) - Kỹ thuật ẩn mình của Mã độc
&lt;/h2&gt;&lt;p&gt;Cuối cùng, chúng ta sẽ đề cập đến góc khuất nguy hiểm nhất của NTFS: Alternate Data Streams (ADS).&lt;/p&gt;
&lt;p&gt;Theo thiết kế ban đầu, ADS là một tính năng ẩn giúp một tệp tin NTFS có thể chứa nhiều luồng dữ liệu (streams) khác nhau. Luồng chính chứa nội dung mà chúng ta nhìn thấy, trong khi luồng phụ chứa các siêu dữ liệu. Điển hình nhất, Windows dùng luồng &lt;code&gt;Zone.Identifier&lt;/code&gt; để đánh dấu các tệp được tải về từ Internet nhằm hiển thị cảnh báo bảo mật.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Kỹ thuật giấu mã độc (Hide Payload):&lt;/strong&gt; Hacker nhận ra rằng luồng phụ của ADS có thể chứa một lượng dữ liệu bất kỳ mà dung lượng file hiển thị bên ngoài trong File Explorer không hề thay đổi. Chúng có thể đính kèm một mã độc nặng hàng chục Megabyte vào đằng sau một tệp &lt;code&gt;.txt&lt;/code&gt; vô hại nặng vài Kilobyte!&lt;/p&gt;
&lt;h3 id="41-thực-hành-tạo-và-phát-hiện-ads"&gt;4.1 Thực hành tạo và phát hiện ADS
&lt;/h3&gt;&lt;p&gt;Bạn có thể tự tay tạo một luồng ADS bằng lệnh Command Prompt rất đơn giản:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cmd" data-lang="cmd"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;:&lt;span style="color:#75715e"&gt;: Nhét dòng chữ &amp;#34;hiden&amp;#34; vào luồng phụ mang tên &amp;#34;hiden&amp;#34; đằng sau tệp hiddendata.txt&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;notepad hiddendata.txt:hiden
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;:&lt;span style="color:#75715e"&gt;: Nhét toàn bộ nội dung của tệp hinhconmeo.jpg vào luồng ADS của file hiddendata.txt&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;type&lt;/span&gt; hinhconmeo.jpg &amp;gt; hiddendata.txt:hinhmeo.jpg
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Để phát hiện mã độc đang lẩn trốn trong ADS, lệnh &lt;code&gt;dir&lt;/code&gt; thông thường sẽ hoàn toàn vô dụng. Bạn bắt buộc phải thêm tham số &lt;code&gt;/r&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cmd" data-lang="cmd"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;:&lt;span style="color:#75715e"&gt;: Kiểm tra các tệp có chứa luồng dữ liệu ẩn (ADS)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;dir&lt;/span&gt; /r
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Khi chạy lệnh này, bạn sẽ thấy kết quả hiển thị dạng &lt;code&gt;&amp;lt;Tên_tệp&amp;gt;:&amp;lt;Tên_luồng&amp;gt;:$DATA&lt;/code&gt; (ví dụ: &lt;code&gt;hiddendata.txt:hiden:$DATA&lt;/code&gt;), bóc trần hoàn toàn vị trí ẩn náu của tệp tin độc hại.&lt;/p&gt;
&lt;h2 id="ads-hidden-file"&gt;&lt;img alt="ADS hidden file" class="gallery-image" data-flex-basis="472px" data-flex-grow="196" height="338" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/file-system-ads/ads.png" width="665"&gt;
&lt;/h2&gt;&lt;p&gt;&lt;em&gt;Tóm lại, hiểu thấu bề mặt cấu trúc File System không chỉ giúp chúng ta biết máy tính lưu trữ dữ liệu ra sao, mà còn cung cấp bộ công cụ tối thượng để săn lùng các đoạn mã độc cố tình bị xóa hoặc bị che giấu tinh vi. Trong bài viết tiếp theo, chúng sẽ chuyển hướng sang một khu vực nhạy cảm không kém: Giải phẫu &amp;ldquo;Bộ não&amp;rdquo; cấu hình Windows Registry và các điểm neo duy trì sự hiện diện của Malware. Các bạn nhớ đón đọc nhé!&lt;/em&gt;&lt;/p&gt;</description></item></channel></rss>