<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Ads on Roduygo | Blog</title><link>/tags/ads/</link><description>Recent content in Ads on Roduygo | Blog</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Fri, 08 May 2026 11:30:00 +0700</lastBuildDate><atom:link href="/tags/ads/index.xml" rel="self" type="application/rss+xml"/><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>