<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Forensics on Roduygo | Blog</title><link>/tags/forensics/</link><description>Recent content in Forensics on Roduygo | Blog</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Fri, 08 May 2026 16:00:00 +0700</lastBuildDate><atom:link href="/tags/forensics/index.xml" rel="self" type="application/rss+xml"/><item><title>Windows Registry và cách dùng ProcMon</title><link>/post/windows-registry/</link><pubDate>Fri, 08 May 2026 16:00:00 +0700</pubDate><guid>/post/windows-registry/</guid><description>&lt;p&gt;Chào mừng các bạn tiếp tục với Series Giải phẫu Windows OS &amp;amp; SOC Analytics! Chúng ta đã biết File System là nơi cất giữ dữ liệu, vậy đâu là nơi lưu trữ các quy tắc điều hành máy tính? Làm sao hệ thống biết khi bật máy lên phải chạy những phần mềm nào, hình nền của bạn màu gì, hay file &lt;code&gt;.docx&lt;/code&gt; thì phải mở bằng Microsoft Word? Câu trả lời nằm ở &amp;ldquo;bộ não&amp;rdquo; của Windows: Registry. Hôm nay, chúng ta sẽ mổ xẻ cơ sở dữ liệu khổng lồ này và học cách giám sát nó bằng ProcMon.&lt;/p&gt;
&lt;h2 id="1-windows-registry-là-gì-cấu-trúc-của-các-hives"&gt;1. Windows Registry là gì? Cấu trúc của các Hives
&lt;/h2&gt;&lt;p&gt;Windows Registry là một cơ sở dữ liệu phân cấp khổng lồ, làm nhiệm vụ lưu trữ toàn bộ các thiết lập phần cứng, cấu hình phần mềm, tùy chọn của người dùng và các thiết lập bảo mật cốt lõi của hệ điều hành Windows.&lt;/p&gt;
&lt;p&gt;Mặc dù khi mở công cụ &lt;code&gt;regedit.exe&lt;/code&gt;, bạn sẽ thấy Registry hiển thị như một cây thư mục thống nhất, nhưng thực tế nó được ghép lại từ nhiều tệp tin vật lý (gọi là các Hives) nằm rải rác trên ổ cứng.&lt;/p&gt;
&lt;p&gt;Cấu trúc cốt lõi của Registry được chia thành 5 nhánh (Hives) chính:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;HKEY_CLASSES_ROOT (HKCR):&lt;/strong&gt; Quản lý thông tin về các định dạng file (ví dụ: quy định file &lt;code&gt;.txt&lt;/code&gt; thì mở bằng Notepad) và các thành phần COM/OLE.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HKEY_CURRENT_USER (HKCU):&lt;/strong&gt; Lưu cấu hình riêng của người dùng đang đăng nhập hiện tại (như hình nền, màu sắc giao diện, các icon hay app cá nhân).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HKEY_LOCAL_MACHINE (HKLM):&lt;/strong&gt; Đây là nhánh quan trọng nhất dưới góc độ SOC. Nó lưu trữ cấu hình của toàn bộ máy tính, bao gồm phần cứng, Driver, thiết lập mạng, bảo mật và các phần mềm dùng chung cho mọi người dùng.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HKEY_USERS (HKU):&lt;/strong&gt; Chứa tất cả các profile (hồ sơ) của mọi người dùng từng đăng nhập trên máy tính này. Thực chất, dữ liệu của nhánh HKCU chỉ là một bản ánh xạ từ một nhánh con bên trong HKU.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;HKEY_CURRENT_CONFIG (HKCC):&lt;/strong&gt; Chứa các thông tin về cấu hình phần cứng hiện tại đang được sử dụng ở lần khởi động này.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="registry editor" class="gallery-image" data-flex-basis="401px" data-flex-grow="167" height="137" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/windows-registry/haha.png" width="229"&gt;&lt;/p&gt;
&lt;h2 id="2-cơ-chế-hoạt-động-nguồn-gốc-dữ-liệu-và-sự-lắng-nghe"&gt;2. Cơ chế hoạt động: Nguồn gốc dữ liệu và Sự &amp;ldquo;lắng nghe&amp;rdquo;
&lt;/h2&gt;&lt;p&gt;Vậy làm sao các phần mềm biết phải ghi thông tin vào đâu trong Registry, và Windows lấy dữ liệu ra như thế nào?&lt;/p&gt;
&lt;h3 id="21-tài-liệu-msdn-microsoft-developer-network"&gt;2.1 Tài liệu MSDN (Microsoft Developer Network)
&lt;/h3&gt;&lt;p&gt;Khi Microsoft tạo ra Windows, họ thiết kế một bộ quy tắc và công khai các khóa Registry thông qua tài liệu SDK/MSDN. Nhờ đó, các lập trình viên phần mềm (như Adobe, Google,&amp;hellip;) biết cách đăng ký dịch vụ, thiết lập quyền hạn hoặc tùy chỉnh giao diện ứng dụng của mình. Chẳng hạn, các khóa tự khởi động (Run keys) được ghi chép rất rõ ràng để phần mềm biết chỗ mà &amp;ldquo;cắm chốt&amp;rdquo; khởi động cùng máy.&lt;/p&gt;
&lt;h3 id="22-cơ-chế-lắng-nghe-event-driven"&gt;2.2 Cơ chế &amp;ldquo;Lắng nghe&amp;rdquo; (Event-Driven)
&lt;/h3&gt;&lt;p&gt;Một câu hỏi thú vị: Tại sao khi bạn vào Registry, đổi một Key từ &lt;code&gt;False&lt;/code&gt; sang &lt;code&gt;True&lt;/code&gt; thì thanh Dock (hoặc Taskbar) lại lập tức thay đổi vị trí?&lt;/p&gt;
&lt;p&gt;Bản chất của vấn đề là: Windows (và các tiến trình như &lt;code&gt;explorer.exe&lt;/code&gt;) liên tục thực hiện hành động &amp;ldquo;đọc&amp;rdquo; Registry. Registry thực chất chỉ là một &amp;ldquo;cái kho&amp;rdquo; hay một bảng cài đặt khổng lồ. Việc một tính năng có hoạt động hay không là do mã nguồn của Windows đã được lập trình để luôn nhìn vào cái kho đó trước khi thực hiện hành động. Hệ thống chạy một đoạn mã logic dạng: &lt;em&gt;&amp;ldquo;Nếu giá trị tại Key [ThanhDock] là True thì vẽ nó ở giữa, nếu là False thì vẽ bên trái&amp;rdquo;&lt;/em&gt;.&lt;/p&gt;
&lt;h2 id="3-kỹ-thuật-đảo-ngược-và-giám-sát-bằng-procmon"&gt;3. Kỹ thuật Đảo ngược và Giám sát bằng ProcMon
&lt;/h2&gt;&lt;p&gt;Vì Registry là một cái kho tĩnh, đôi khi có những &amp;ldquo;bí mật&amp;rdquo; hoặc các khóa Registry không hề được Microsoft ghi trong tài liệu chính thức. Vậy làm sao các chuyên gia hay những &amp;ldquo;người ham vọc vạch&amp;rdquo; tìm ra chúng? Câu trả lời là Kỹ thuật Đảo ngược (Reverse Engineering) bằng việc giám sát thời gian thực.&lt;/p&gt;
&lt;p&gt;Công cụ đắc lực nhất cho việc này là &lt;strong&gt;Process Monitor (ProcMon)&lt;/strong&gt; - một phần mềm thuộc bộ Sysinternals do chính Microsoft cung cấp.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Cách thực chiến với ProcMon:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Bật ProcMon và đặt bộ lọc (Filter) chỉ theo dõi các sự kiện liên quan đến Registry (Registry Activity).&lt;/li&gt;
&lt;li&gt;Mở giao diện cài đặt của Windows lên (ví dụ: cài đặt vị trí thanh Dock hoặc tắt/bật một tính năng bảo mật).&lt;/li&gt;
&lt;li&gt;Thực hiện thay đổi (click chuột, bấm Apply) và ngay lập tức quan sát trên màn hình ProcMon.&lt;/li&gt;
&lt;li&gt;ProcMon sẽ bắt được chính xác tiến trình nào của Windows vừa thực hiện lệnh Write (ghi) giá trị gì vào đường dẫn khóa Registry nào.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Bằng cách khoa học này, các nhà phân tích bảo mật có thể dễ dàng bắt thóp được mọi hành vi ngầm mà một ứng dụng (hoặc một mã độc) đang cố tình can thiệp vào hệ thống.&lt;/p&gt;
&lt;p&gt;&lt;img alt="procmon đang monitor registry" class="gallery-image" data-flex-basis="374px" data-flex-grow="155" height="510" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/windows-registry/procmon.png" width="795"&gt;&lt;/p&gt;
&lt;h2 id="4-góc-nhìn-soc-điểm-neo-của-hacker-persistence"&gt;4. Góc nhìn SOC: Điểm neo của Hacker (Persistence)
&lt;/h2&gt;&lt;p&gt;Registry không chỉ đơn thuần lưu trữ cài đặt, nó còn có khả năng ra lệnh cho Windows phải làm gì. Do đó, đây là &amp;ldquo;mỏ vàng&amp;rdquo; để virus và mã độc lẩn trốn, đảm bảo rằng dù bạn có xóa file thực thi trên màn hình, mã độc vẫn sẽ tự động quay lại (Persistence) nhờ các dòng lệnh được nhúng trong Registry.&lt;/p&gt;
&lt;p&gt;Những vị trí Registry nhạy cảm nhất mà một SOC Analyst phải thường xuyên giám sát bao gồm:&lt;/p&gt;
&lt;h3 id="41-các-khóa-tự-khởi-động-auto-run-keys"&gt;4.1 Các khóa tự khởi động (Auto Run Keys)
&lt;/h3&gt;&lt;p&gt;Hacker cực kỳ thích &amp;ldquo;cắm chốt&amp;rdquo; tại các đường dẫn sau để mã độc chạy ngay khi bật máy:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;HKCU\Software\Microsoft\Windows\CurrentVersion\Run&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;(Lưu ý: HKLM sẽ chạy cho toàn bộ máy tính và yêu cầu quyền Admin để ghi, trong khi HKCU chỉ chạy cho người dùng hiện tại).&lt;/em&gt;&lt;/p&gt;
&lt;h3 id="42-lợi-dụng-tính-năng-userinit-winlogon"&gt;4.2 Lợi dụng tính năng Userinit (Winlogon)
&lt;/h3&gt;&lt;p&gt;Được thiết kế để chuẩn bị môi trường làm việc sau khi đăng nhập, khóa Registry sau quy định chương trình khởi tạo mặc định của Windows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Giá trị mặc định của nó chỉ là &lt;code&gt;userinit.exe&lt;/code&gt;. Hacker rất ranh ma, chúng không xóa file gốc mà chỉ cần nối thêm một dấu phẩy (&lt;code&gt;,&lt;/code&gt;) và ghi kèm đường dẫn mã độc của chúng vào đằng sau (ví dụ: &lt;code&gt;userinit.exe, C:\Temp\malware.bat&lt;/code&gt;) để được hệ thống &amp;ldquo;rước&amp;rdquo; vào máy một cách hợp lệ.&lt;/p&gt;
&lt;h3 id="43-vô-hiệu-hóa-sức-đề-kháng-security-evasion"&gt;4.3 Vô hiệu hóa sức đề kháng (Security Evasion)
&lt;/h3&gt;&lt;p&gt;Ngoài việc thiết lập khởi động, hacker còn trực tiếp can thiệp Registry để &amp;ldquo;bịt mắt&amp;rdquo; các phần mềm bảo mật:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tắt Windows Defender:&lt;/strong&gt; Bằng cách sửa khóa &lt;code&gt;HKLM\SOFTWARE\Policies\Microsoft\Windows Defender&lt;/code&gt;, gán giá trị &lt;code&gt;DisableAntiSpyware = 1&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vô hiệu hóa UAC:&lt;/strong&gt; Sửa giá trị &lt;code&gt;EnableLUA = 0&lt;/code&gt; tại khóa &lt;code&gt;HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System&lt;/code&gt; để UAC không bao giờ hiện bảng thông báo quyền Admin nữa.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Windows Registry thực sự là một hệ thần kinh phức tạp của hệ điều hành. Việc am hiểu cấu trúc Hives và biết cách sử dụng ProcMon để soi chiếu từng &amp;ldquo;nhịp đập&amp;rdquo; Write/Read của Registry sẽ biến bạn thành một thợ săn mã độc đáng gờm. Ở bài viết tới, chúng ta sẽ bắt tay vào thực hành săn lùng Malware trong Registry bằng bộ công cụ nâng cao Autoruns và cách phân tích chữ ký số (Digital Signatures). Hẹn gặp lại các bạn!&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Sysmon (Phần 1)</title><link>/post/sysmon-phan-1-giam-sat-tien-trinh/</link><pubDate>Fri, 08 May 2026 12:00:00 +0700</pubDate><guid>/post/sysmon-phan-1-giam-sat-tien-trinh/</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! Ở các bài viết trước, chúng ta đã học cách đọc nhật ký hệ thống (Event Logs) mặc định của Windows. Nhưng trong thực tế chiến đấu, các hacker ngày càng tinh vi, chúng thừa sức qua mặt những log cơ bản này. Đó là lúc các chuyên gia SOC phải viện đến &amp;ldquo;vũ khí hạng nặng&amp;rdquo;: Sysmon (System Monitor). Hôm nay, chúng ta sẽ đi sâu vào hướng dẫn cài đặt tư duy giám sát Sysmon, mở đầu bằng việc &amp;ldquo;mổ xẻ&amp;rdquo; quá trình sinh tiến trình (Process Creation) và cách dùng mã Hash để lột mặt nạ mã độc.&lt;/p&gt;
&lt;h2 id="1-sysmon-là-gì-tại-sao-windows-event-logs-mặc-định-là-chưa-đủ"&gt;1. Sysmon là gì? Tại sao Windows Event Logs mặc định là chưa đủ?
&lt;/h2&gt;&lt;p&gt;Sysmon là một công cụ miễn phí cực kỳ mạnh mẽ thuộc bộ phần mềm Microsoft Sysinternals. Đối với giới bảo mật, Sysmon đã trở thành tiêu chuẩn vàng cho việc giám sát nâng cao.&lt;/p&gt;
&lt;p&gt;Hãy làm một phép so sánh thực tế khi một phần mềm được mở lên:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Windows Event ID 4688 (Mặc định):&lt;/strong&gt; Chỉ cho bạn biết &amp;ldquo;Ai đó vừa chạy một tiến trình mới&amp;rdquo; (ví dụ: &lt;code&gt;cmd.exe&lt;/code&gt; vừa được chạy bởi Administrator).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sysmon Event ID 1 (Process Creation):&lt;/strong&gt; Không chỉ nói cho bạn biết file nào vừa chạy, mà nó còn cung cấp dấu vân tay (Mã Hash) của file đó, cho biết chính xác tiến trình nào đã gọi nó ra (Parent Image), và thậm chí là lệnh (Command Line) chi tiết đã được gõ vào.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Tóm lại:&lt;/strong&gt; Windows EID 4688 cho biết &amp;ldquo;ai chạy&amp;rdquo;, còn Sysmon EID 1 cho biết &amp;ldquo;vân tay&amp;rdquo; của kẻ đó. Nếu không có mã Hash, bạn sẽ gần như &amp;ldquo;mù&amp;rdquo; trước các kỹ thuật đổi tên ngụy trang của Hacker.&lt;/p&gt;
&lt;h2 id="2-giải-phẫu-chi-tiết-sysmon-event-id-1"&gt;2. Giải phẫu chi tiết Sysmon Event ID 1
&lt;/h2&gt;&lt;p&gt;Khi Sysmon Event ID 1 nổ ra, nó cung cấp cho SOC Analyst một bức tranh toàn cảnh không thể chối cãi. Hãy cùng &amp;ldquo;soi&amp;rdquo; vào các trường dữ liệu sinh tử của nó:&lt;/p&gt;
&lt;h3 id="21-thông-tin-định-danh-process-info"&gt;2.1 Thông tin định danh (Process Info)
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ProcessId:&lt;/strong&gt; Số định danh tiến trình trong hệ thống.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Image:&lt;/strong&gt; Đường dẫn vật lý của file thực thi trên ổ cứng (VD: &lt;code&gt;C:\Windows\System32\cmd.exe&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CommandLine:&lt;/strong&gt; Ghi lại chính xác từng chữ mà kẻ tấn công đã gõ vào lệnh.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="22-nguồn-gốc-khởi-tạo-parent-info"&gt;2.2 Nguồn gốc khởi tạo (Parent Info)
&lt;/h3&gt;&lt;p&gt;Mã độc hiếm khi tự nhiên sinh ra. Nó luôn được một thứ gì đó gọi ra.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ParentImage:&lt;/strong&gt; Đây là tiến trình cha. Việc nhìn vào tiến trình cha giúp bạn biết lệnh này do người dùng click chuột mở (như từ &lt;code&gt;explorer.exe&lt;/code&gt;) hay bị gọi ngầm bởi một đoạn mã độc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="23-dấu-vân-tay-của-tệp-binary-info"&gt;2.3 Dấu vân tay của tệp (Binary Info)
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Hashes:&lt;/strong&gt; Sysmon sẽ tự động tính toán mã Hash (như MD5, SHA256) của file thực thi ngay khi nó chạy. Đây là tính năng &amp;ldquo;đáng tiền&amp;rdquo; nhất của Sysmon.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="So sánh Event ID 4688 và Event ID 1 của Sysmon" class="gallery-image" data-flex-basis="527px" data-flex-grow="219" height="291" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/sysmon-phan-1-giam-sat-tien-trinh/sosanh.png" width="639"&gt;&lt;/p&gt;
&lt;h2 id="3-bắt-thóp-mã-độc-kỹ-năng-threat-hunting-thực-chiến"&gt;3. &amp;ldquo;Bắt thóp&amp;rdquo; Mã độc: Kỹ năng Threat Hunting thực chiến
&lt;/h2&gt;&lt;p&gt;Với các thông tin từ Sysmon EID 1, làm sao để phát hiện bất thường? Đừng tìm kiếm ngẫu nhiên, hãy bám vào 3 dấu hiệu (Red Flags) sau:&lt;/p&gt;
&lt;h3 id="kỹ-thuật-1-lột-mặt-nạ-ngụy-trang-masquerading-bằng-mã-hash"&gt;Kỹ thuật 1: Lột mặt nạ ngụy trang (Masquerading) bằng mã Hash
&lt;/h3&gt;&lt;p&gt;Hacker hiểu rằng nếu chạy một file có tên &lt;code&gt;virus_an_cap.exe&lt;/code&gt;, chúng sẽ bị tóm ngay. Vì thế, chúng thường đổi tên mã độc thành các tiến trình hệ thống chuẩn như &lt;code&gt;cmd.exe&lt;/code&gt;, &lt;code&gt;svchost.exe&lt;/code&gt; hay &lt;code&gt;lsass.exe&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Tuy nhiên, dù tên file có đổi, mã Hash thì không bao giờ thay đổi. Khi Sysmon ghi lại mã SHA256 của tiến trình &lt;code&gt;cmd.exe&lt;/code&gt; giả mạo đó, bạn chỉ cần ném mã Hash đó lên VirusTotal. Mã Hash sẽ lập tức &amp;ldquo;tố cáo&amp;rdquo; đó là một file độc hại chứ không phải file chuẩn của Microsoft.&lt;/p&gt;
&lt;h3 id="kỹ-thuật-2-phân-tích-phả-hệ-tiến-trình-parent-child-anomalies"&gt;Kỹ thuật 2: Phân tích Phả hệ Tiến trình (Parent-Child Anomalies)
&lt;/h3&gt;&lt;p&gt;Đây là kỹ năng &amp;ldquo;nhìn thấu&amp;rdquo; logic hoạt động của hệ thống. Những tiến trình cha - con sau đây là cực kỳ phi logic và chắc chắn là mã độc:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;WINWORD.EXE (Microsoft Word) sinh ra powershell.exe hoặc cmd.exe:&lt;/strong&gt; Rất có thể một nhân viên vừa mở file Word chứa mã độc Macro, và nó đang gọi lệnh tải virus về máy.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;notepad.exe sinh ra cmd.exe:&lt;/strong&gt; Notepad chỉ là phần mềm gõ văn bản, nó tuyệt đối không có lý do gì để gọi cửa sổ dòng lệnh.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="kỹ-thuật-3-truy-vết-các-đường-dẫn-và-câu-lệnh-đáng-ngờ"&gt;Kỹ thuật 3: Truy vết các đường dẫn và câu lệnh đáng ngờ
&lt;/h3&gt;&lt;p&gt;Bạn cần cấu hình SIEM (hoặc viết script PowerShell) báo động ngay lập tức nếu tiến trình (Image) được chạy từ các thư mục trú ẩn quen thuộc của malware như:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;C:\Users\*\AppData\Local\Temp\&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;C:\Users\Public\&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bên cạnh đó, hãy soi kỹ trường &lt;code&gt;CommandLine&lt;/code&gt;. Hacker thường dùng các lệnh sau để tải mã độc thẳng vào RAM hoặc giải mã script:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;-EncodedCommand&lt;/code&gt; (Chạy mã PowerShell đã mã hóa Base64)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;IEX (New-Object Net.WebClient)&lt;/code&gt; (Lệnh tải file từ Internet)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;certutil -urlcache&lt;/code&gt; hoặc &lt;code&gt;bitsadmin /transfer&lt;/code&gt; (Lợi dụng phần mềm có sẵn của Windows để tải virus)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="4-thực-hành-truy-vấn-sysmon-bằng-powershell"&gt;4. Thực hành truy vấn Sysmon bằng PowerShell
&lt;/h2&gt;&lt;p&gt;Thay vì click chuột mỏi tay trong Event Viewer, các Threat Hunter thường dùng PowerShell để săn lùng (Hunting) dấu vết tiến trình độc hại. Dưới đây là đoạn code mẫu giúp bạn trích xuất tất cả các lần &lt;code&gt;powershell.exe&lt;/code&gt; được gọi ra bởi thư mục Temp:&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-powershell" data-lang="powershell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Truy vấn Sysmon Event ID 1 (Process Create)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$Query = &lt;span style="color:#e6db74"&gt;&amp;#34;*[System[EventID=1]]&amp;#34;&lt;/span&gt;
&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;# Lọc các sự kiện có Image là powershell và ParentImage nằm trong thư mục Temp&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Get-WinEvent -LogName &lt;span style="color:#e6db74"&gt;&amp;#34;Microsoft-Windows-Sysmon/Operational&amp;#34;&lt;/span&gt; -FilterXPath $Query | 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Where-Object {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; $_.Message &lt;span style="color:#f92672"&gt;-match&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;Image: .*powershell\.exe&amp;#34;&lt;/span&gt; &lt;span style="color:#f92672"&gt;-and&lt;/span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; $_.Message &lt;span style="color:#f92672"&gt;-match&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#34;ParentImage: .*\\Temp\\.*&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; } | Format-List TimeCreated, Message
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt="Result" class="gallery-image" data-flex-basis="420px" data-flex-grow="175" height="567" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/sysmon-phan-1-giam-sat-tien-trinh/result.png" srcset="/post/sysmon-phan-1-giam-sat-tien-trinh/result_hu_58c3bd88eec3efb8.png 800w, /post/sysmon-phan-1-giam-sat-tien-trinh/result.png 994w" width="994"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Bằng cách tận dụng Sysmon Event ID 1, bạn đã bịt được lỗ hổng khổng lồ của Event Viewer mặc định. Mã Hash và Cây tiến trình (Parent-Child) chính là hai thanh gươm sắc bén nhất để lột mặt nạ mọi loại mã độc ngụy trang. Trong bài viết tới (Phần 2), chúng ta sẽ tiếp tục đi sâu vào các Event ID khác của Sysmon (EID 3, 10, 11) để truy vết mã độc tàng hình (Fileless Malware) và hành vi ăn cắp mật khẩu. Hẹn gặp lại các bạn!&lt;/em&gt;&lt;/p&gt;</description></item><item><title>User Account Control (UAC)</title><link>/post/windows-uac-secure-desktop/</link><pubDate>Fri, 08 May 2026 12:00:00 +0700</pubDate><guid>/post/windows-uac-secure-desktop/</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! Nếu Registry là &amp;ldquo;bộ não&amp;rdquo;, Event Logs là &amp;ldquo;nhật ký&amp;rdquo;, thì UAC chính là &amp;ldquo;người gác cổng&amp;rdquo; khó tính nhất của Windows. Bạn từng tự hỏi tại sao mình đã đăng nhập bằng tài khoản Administrator mà thỉnh thoảng Windows vẫn làm tối đen màn hình và hỏi &amp;ldquo;Bạn có chắc chắn muốn chạy phần mềm này không?&amp;rdquo;. Hôm nay, chúng ta sẽ đi sâu vào hệ thống phân quyền phức tạp này để hiểu tại sao nó lại là chốt chặn bảo mật quan trọng nhất, và cách các tiến trình hệ thống như Appinfo hay consent.exe vận hành.&lt;/p&gt;
&lt;h2 id="1-bản-chất-của-uac-và-nguyên-lý-2-thẻ-bài-tokens"&gt;1. Bản chất của UAC và Nguyên lý 2 &amp;ldquo;Thẻ bài&amp;rdquo; (Tokens)
&lt;/h2&gt;&lt;p&gt;User Account Control (UAC) là một tính năng bảo mật nhằm ngăn chặn các thay đổi trái phép đối với hệ điều hành. Cơ chế cốt lõi của nó nghe có vẻ ngược đời: Ngay cả khi bạn đăng nhập bằng tài khoản Quản trị viên (Administrator), các ứng dụng mà bạn mở lên mặc định vẫn chỉ chạy với quyền Người dùng tiêu chuẩn (Standard User).&lt;/p&gt;
&lt;p&gt;Làm sao Windows làm được điều này? Nguyên lý nằm ở các &lt;strong&gt;Access Tokens&lt;/strong&gt; (Thẻ bài quyền lực). Khi bạn đăng nhập bằng tài khoản Admin, Windows thực chất không cấp cho bạn toàn quyền ngay lập tức. Thay vào đó, nó cấp cho bạn 2 &amp;ldquo;thẻ bài&amp;rdquo;: Một thẻ User thường và một thẻ Admin.&lt;/p&gt;
&lt;p&gt;Trong quá trình sử dụng bình thường (lướt web, gõ văn bản), hệ thống chỉ dùng thẻ User. Chỉ khi nào bạn (hoặc một ứng dụng) cần thực hiện các hành động &amp;ldquo;nhạy cảm&amp;rdquo; (như sửa Registry hệ thống, cài driver), UAC mới hiện ra bảng thông báo để bạn xác nhận &amp;ldquo;nâng quyền&amp;rdquo; (Elevation). Lúc này, thẻ Admin mới được rút ra để sử dụng.&lt;/p&gt;
&lt;h2 id="2-ranh-giới-ưu-tiên-integrity-levels-mức-độ-toàn-vẹn"&gt;2. Ranh giới ưu tiên: Integrity Levels (Mức độ toàn vẹn)
&lt;/h2&gt;&lt;p&gt;Để SOC Analyst có thể phát hiện tiến trình nào đang chạy quyền cao hay thấp, chúng ta dựa vào khái niệm &lt;strong&gt;Integrity Levels (IL)&lt;/strong&gt;. Hãy cùng làm một bài test thực tế: Mở hai cửa sổ Command Prompt (CMD), một cái mở bình thường (Open) và một cái mở bằng quyền Admin (Run as administrator).&lt;/p&gt;
&lt;p&gt;Nếu soi hai tiến trình này bằng công cụ Process Hacker hoặc Sysinternals, bạn sẽ thấy sự khác biệt &amp;ldquo;một trời một vực&amp;rdquo;:&lt;/p&gt;
&lt;h3 id="21-cửa-sổ-cmd-bình-thường-quyền-thấp"&gt;2.1 Cửa sổ CMD bình thường (Quyền thấp)
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Nhóm BUILTIN\Administrators:&lt;/strong&gt; Có cờ (Flag) là Deny. Điều này nghĩa là hệ thống đang nói: &amp;ldquo;Dù tài khoản của anh là Admin, nhưng cửa sổ này bị tước quyền quản trị&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Integrity Level:&lt;/strong&gt; Chạy ở mức &lt;em&gt;Medium Mandatory Level&lt;/em&gt;. Đây là mức độ trung bình mặc định của người dùng thường.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Privileges (Đặc quyền):&lt;/strong&gt; Chỉ có một danh sách rất ngắn các quyền cơ bản, không thể can thiệp sâu vào hệ thống.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="22-cửa-sổ-cmd-run-as-administrator-quyền-cao"&gt;2.2 Cửa sổ CMD &amp;ldquo;Run as administrator&amp;rdquo; (Quyền cao)
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Nhóm BUILTIN\Administrators:&lt;/strong&gt; Có cờ là Owner. Cửa sổ này có toàn quyền thực thi các lệnh hệ thống.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Integrity Level:&lt;/strong&gt; Chạy ở mức &lt;em&gt;High Mandatory Level&lt;/em&gt;. Mọi tiến trình do CMD này sinh ra (như chạy file &lt;code&gt;.exe&lt;/code&gt;) đều sẽ kế thừa quyền High IL này.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Privileges (Đặc quyền):&lt;/strong&gt; Danh sách dài hơn rất nhiều, bao gồm các quyền cực kỳ nguy hiểm như &lt;code&gt;SeBackupPrivilege&lt;/code&gt;, &lt;code&gt;SeImpersonatePrivilege&lt;/code&gt; và đặc biệt là &lt;code&gt;SeDebugPrivilege&lt;/code&gt; (quyền gỡ lỗi, thường bị malware lợi dụng để can thiệp bộ nhớ).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="So sánh một tiến trình Cmd thường và administrator" class="gallery-image" data-flex-basis="364px" data-flex-grow="151" height="431" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/windows-uac-secure-desktop/sosanhcmd.png" width="654"&gt;&lt;/p&gt;
&lt;h2 id="3-secure-desktop-bức-tường-thành-cô-lập"&gt;3. Secure Desktop: Bức tường thành cô lập
&lt;/h2&gt;&lt;p&gt;Khi bảng thông báo UAC hiện lên, bạn có để ý rằng toàn bộ màn hình nền phía sau bị tối đen lại và bạn không thể click chuột vào bất kỳ ứng dụng nào khác không? Đó chính là tính năng &lt;strong&gt;Secure Desktop&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mục đích cốt lõi:&lt;/strong&gt; Secure Desktop tạo ra một màn hình nền hoàn toàn riêng biệt, cách ly bảng hỏi UAC khỏi không gian làm việc hiện tại. Nó đảm bảo rằng không có bất kỳ một phần mềm mã độc nào chạy ngầm có khả năng can thiệp hay &amp;ldquo;ấn hộ&amp;rdquo; bạn nút Yes. Chỉ có con người thật, cầm con chuột vật lý mới có thể tương tác với bảng thông báo này.&lt;/p&gt;
&lt;p&gt;Tùy vào nhu cầu, Windows cho phép bạn thiết lập 4 cấp độ (Level) của UAC trong cài đặt:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Always Notify:&lt;/strong&gt; Mức cao nhất, luôn làm tối màn hình (Secure Desktop) và hỏi khi có thay đổi.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Notify me only when apps try to make changes (Default):&lt;/strong&gt; Chỉ hỏi khi ứng dụng bên thứ ba thay đổi hệ thống, không hỏi khi bạn tự tay chỉnh cài đặt Windows.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Notify me only when apps try to make changes (Do not dim my desktop):&lt;/strong&gt; Giống mức 2 nhưng không làm tối màn hình. &lt;strong&gt;Góc nhìn SOC:&lt;/strong&gt; Mức này rất nguy hiểm vì không dùng Secure Desktop, mã độc có thể dùng kỹ thuật giả lập click chuột (Clickjacking) để tự bấm Yes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Never Notify (Disable):&lt;/strong&gt; Tắt hoàn toàn UAC. Đây thực sự là &amp;ldquo;thiên đường&amp;rdquo; cho hacker, vì mã độc có thể tự do leo thang quyền hạn từ Medium lên High mà không gặp bất cứ rào cản nào.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img alt="4 cấp độ uac" class="gallery-image" data-flex-basis="319px" data-flex-grow="133" height="547" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/windows-uac-secure-desktop/4capuac.png" width="729"&gt;&lt;/p&gt;
&lt;h2 id="4-giải-phẫu-quy-trình-hoạt-động-của-uac"&gt;4. Giải phẫu quy trình hoạt động của UAC
&lt;/h2&gt;&lt;p&gt;Để qua mặt được UAC, hacker phải hiểu tường tận quy trình hệ thống xử lý yêu cầu nâng quyền. Dưới góc nhìn kỹ thuật, &amp;ldquo;trái tim&amp;rdquo; của UAC là Dịch vụ Thông tin Ứng dụng (Appinfo). Khi bạn click &amp;ldquo;Run as administrator&amp;rdquo;, 6 bước sau sẽ diễn ra trong chớp mắt:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Gửi yêu cầu:&lt;/strong&gt; Người dùng yêu cầu chạy một ứng dụng (ví dụ: &lt;code&gt;cmd.exe&lt;/code&gt;) với quyền quản trị.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gọi API:&lt;/strong&gt; Lệnh gọi API &lt;code&gt;ShellExecute&lt;/code&gt; của Windows được kích hoạt, mang theo một động từ (verb) đặc biệt là &lt;code&gt;runas&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Appinfo tiếp nhận:&lt;/strong&gt; Yêu cầu này không được xử lý ngay mà chuyển tiếp đến dịch vụ Appinfo để quản lý việc nâng quyền.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Kiểm tra Manifest:&lt;/strong&gt; Dịch vụ Appinfo sẽ đọc tệp kê khai (Manifest) của ứng dụng đó để xem tính năng Tự động nâng quyền (&lt;code&gt;autoElevate&lt;/code&gt;) có được cho phép hay không. &lt;em&gt;(Bật mí: Hacker rất thích lợi dụng các file có sẵn autoElevate của Microsoft)&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bật Secure Desktop:&lt;/strong&gt; Appinfo thực thi tiến trình &lt;code&gt;consent.exe&lt;/code&gt;. Chính &lt;code&gt;consent.exe&lt;/code&gt; là kẻ làm tối màn hình của bạn và vẽ ra cái bảng hỏi (Yes/No) trên môi trường Secure Desktop cô lập.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cấp &amp;ldquo;Thẻ bài&amp;rdquo;:&lt;/strong&gt; Nếu bạn bấm Yes đồng ý, dịch vụ Appinfo sẽ lấy cái Mã thông báo nâng cao (Elevated Token - thẻ Admin) của bạn ra và áp vào ứng dụng. Sau đó, ứng dụng sẽ chính thức được khởi chạy dưới quyền High Integrity.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="uac-steps-to-steps"&gt;&lt;img alt="UAC steps to steps" class="gallery-image" data-flex-basis="449px" data-flex-grow="187" height="585" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/windows-uac-secure-desktop/steptostep.png" srcset="/post/windows-uac-secure-desktop/steptostep_hu_30595cc363097a48.png 800w, /post/windows-uac-secure-desktop/steptostep.png 1095w" width="1095"&gt;
&lt;/h2&gt;&lt;p&gt;&lt;em&gt;UAC được thiết kế như một chốt chặn hoàn hảo giữa người dùng và quyền kiểm soát hệ thống. Tuy nhiên, không có bức tường thành nào là không thể vượt qua. Ở Bước 4 của quy trình trên, việc Windows cho phép một số tiến trình hệ thống được &amp;ldquo;Tự động nâng quyền&amp;rdquo; (AutoElevate) để tránh làm phiền người dùng chính là một lỗ hổng chí mạng. Trong bài viết tiếp theo, chúng ta sẽ trực tiếp thực hành đóng vai Hacker: Sử dụng tiến trình &lt;code&gt;fodhelper.exe&lt;/code&gt; kết hợp Registry Hijacking để lách qua UAC một cách &amp;ldquo;không kèn không trống&amp;rdquo; (UAC Bypass). Hẹn gặp lại các bạn!&lt;/em&gt;&lt;/p&gt;</description></item><item><title>User Mode, Kernel Mode</title><link>/post/work-mode-windows/</link><pubDate>Thu, 07 May 2026 21:30:00 +0700</pubDate><guid>/post/work-mode-windows/</guid><description>&lt;p&gt;Ở hai bài viết trước, chúng ta đã cùng nhau chứng kiến cách máy tính thức giấc và giải phẫu bề mặt vật lý của ổ cứng. Bây giờ, hệ điều hành đã được nạp thành công lên RAM. Nhưng làm sao Windows có thể quản lý hàng trăm phần mềm chạy cùng lúc mà không để chúng &amp;ldquo;dẫm chân&amp;rdquo; lên nhau hay làm sập toàn bộ hệ thống?&lt;/p&gt;
&lt;h2 id="1-ranh-giới-sinh-tử-user-mode-và-kernel-mode"&gt;1. Ranh giới sinh tử: User Mode và Kernel Mode
&lt;/h2&gt;&lt;p&gt;Để bảo vệ cốt lõi của mình, Windows chia không gian bộ nhớ và quyền thực thi lệnh thành hai thế giới song song và hoàn toàn cách biệt: User Mode (Chế độ người dùng) và Kernel Mode (Chế độ hạt nhân).&lt;/p&gt;
&lt;h3 id="11-kernel-mode---vùng-đất-của-những-vị-thần"&gt;1.1 Kernel Mode - Vùng đất của những &amp;ldquo;Vị thần&amp;rdquo;
&lt;/h3&gt;&lt;p&gt;Kernel Mode nắm giữ &amp;ldquo;thượng phương bảo kiếm&amp;rdquo; của hệ thống.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Quyền hạn:&lt;/strong&gt; Có toàn quyền kiểm soát CPU, RAM và mọi thiết bị ngoại vi. Nó làm nhiệm vụ phân chia thời gian CPU cho các ứng dụng, quản lý bộ nhớ và điều khiển phần cứng qua các driver.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Không gian bộ nhớ:&lt;/strong&gt; Tất cả các thành phần chạy trong Kernel Mode dùng chung một vùng nhớ hệ thống duy nhất.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mức độ an toàn (Sự trả giá):&lt;/strong&gt; Vì dùng chung bộ nhớ và có quyền cao nhất, nếu bất kỳ một đoạn mã nào ở đây (như Kernel &lt;code&gt;ntoskrnl.exe&lt;/code&gt; hay một Driver card đồ họa) bị lỗi, hệ điều hành không thể tự phục hồi. Kết quả? Toàn bộ hệ thống sẽ sập, dẫn đến lỗi Màn hình xanh chết chóc (BSoD) huyền thoại.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="12-user-mode---khu-cách-ly-an-toàn"&gt;1.2 User Mode - Khu cách ly an toàn
&lt;/h3&gt;&lt;p&gt;Ngược lại, User Mode là nơi cung cấp môi trường cho chúng ta làm việc, chạy giao diện và xử lý logic ứng dụng. Hầu hết mọi thứ bạn mở (Chrome, Word, các dịch vụ chạy nền) đều nằm ở đây.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Quyền hạn:&lt;/strong&gt; Cực kỳ hạn chế. Ứng dụng ở User Mode không được phép trực tiếp chạm vào phần cứng hay bộ nhớ dùng chung.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Không gian bộ nhớ:&lt;/strong&gt; Mỗi tiến trình được cấp một vùng bộ nhớ ảo biệt lập. Chrome không thể tự tiện đọc bộ nhớ của Word.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mức độ an toàn:&lt;/strong&gt; Rất cao. Nếu một ứng dụng User Mode bị lỗi (Crash), chỉ ứng dụng đó bị đóng lại, Windows vẫn sống khỏe.&lt;/li&gt;
&lt;/ul&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Câu hỏi thực chiến:&lt;/strong&gt; Nếu User Mode không được chạm vào phần cứng, làm sao Chrome có thể vẽ đồ họa lên màn hình hay lưu file xuống ổ cứng?
&lt;strong&gt;Trả lời:&lt;/strong&gt; Ứng dụng phải &amp;ldquo;nhờ vả&amp;rdquo; Kernel thông qua một cánh cổng gọi là API (System Calls). Kernel sẽ tiếp nhận yêu cầu, kiểm tra tính hợp lệ, thay mặt ứng dụng thực thi trên CPU/phần cứng, rồi trả kết quả về.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="2-giám-sát-ranh-giới-bằng-task-manager"&gt;2. Giám sát ranh giới bằng Task Manager
&lt;/h2&gt;&lt;p&gt;Là một người làm bảo mật, bạn hoàn toàn có thể theo dõi xem CPU đang dồn sức cho thế giới nào bằng công cụ Task Manager có sẵn của Windows.
Bạn hãy mở &lt;strong&gt;Task Manager -&amp;gt; tab Performance -&amp;gt; Nhấp chuột phải vào biểu đồ CPU và chọn Show kernel times&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Task manager" class="gallery-image" data-flex-basis="377px" data-flex-grow="157" height="307" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/work-mode-windows/taskmana.png" width="483"&gt;
Lúc này trên biểu đồ sẽ xuất hiện hai thành phần:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Đường nét đứt (Kernel Mode):&lt;/strong&gt; Cho thấy CPU đang tốn bao nhiêu % công suất để xử lý các việc &amp;ldquo;hậu cần&amp;rdquo; của hệ điều hành (quản lý bộ nhớ, điều khiển driver, xử lý ngắt&amp;hellip;).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Khoảng trống giữa nét đứt và đỉnh biểu đồ (User Mode):&lt;/strong&gt; Đại diện cho mức tiêu thụ của các ứng dụng đang mở.&lt;/li&gt;
&lt;/ul&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;SOC Lưu ý:&lt;/strong&gt; Nếu máy tính không mở phần mềm nào nặng, nhưng đường nét đứt (Kernel Mode) lại tăng vọt bất thường, rất có thể một Driver rác hoặc một Rootkit (mã độc mức Kernel) đang âm thầm hoạt động.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="3-giải-phẫu-hệ-sinh-thái-tiến-trình-cốt-lõi"&gt;3. Giải phẫu hệ sinh thái Tiến trình cốt lõi
&lt;/h2&gt;&lt;p&gt;Sau khi Kernel (&lt;code&gt;ntoskrnl.exe&lt;/code&gt;) yên vị trên RAM, tiến trình System (PID 4) sẽ tạo ra tiến trình User-mode đầu tiên: &lt;code&gt;smss.exe&lt;/code&gt; (Session Manager Subsystem). Đây chính là &amp;ldquo;ông tổ&amp;rdquo; của mọi tiến trình sau này.&lt;/p&gt;
&lt;p&gt;Nhiệm vụ của &lt;code&gt;smss.exe&lt;/code&gt; là thiết lập bộ nhớ ảo, biến môi trường và đặc biệt là chia phòng (tạo Session). Windows chia làm 2 Session chính:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Session 0:&lt;/strong&gt; Khu vực cấm địa, cách ly hoàn toàn giao diện, chỉ dành cho các dịch vụ hệ thống ngầm.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Session 1 (hoặc các số lớn hơn):&lt;/strong&gt; Dành cho người dùng đăng nhập và tương tác.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="31-trong-cõi-session-0-hệ-thống"&gt;3.1 Trong cõi Session 0 (Hệ thống)
&lt;/h3&gt;&lt;p&gt;Tại đây, &lt;code&gt;smss.exe&lt;/code&gt; gọi ra hai cận vệ trung thành:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;csrss.exe&lt;/code&gt; (Client/Server Runtime Subsystem): Xử lý các tác vụ nền cho Session 0.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;wininit.exe&lt;/code&gt; (Windows Initialize): Kẻ khởi tạo dịch vụ hệ thống. Từ &lt;code&gt;wininit.exe&lt;/code&gt;, một loạt các tiến trình trọng yếu khác ra đời:
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;services.exe&lt;/code&gt;: Quản lý toàn bộ các dịch vụ (Services) của Windows. Nó khởi chạy hàng loạt các dịch vụ được bọc trong vỏ bọc &lt;code&gt;svchost.exe&lt;/code&gt; (Service Host) để thực thi các DLL hệ thống.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;lsass.exe&lt;/code&gt; (Local Security Authority Subsystem Service): Người gác đền tối cao, chịu trách nhiệm xác thực và quản lý bảo mật.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="32-trong-cõi-session-người-dùng-session-1"&gt;3.2 Trong cõi Session người dùng (Session 1+)
&lt;/h3&gt;&lt;p&gt;Khi bạn chuẩn bị đăng nhập, &lt;code&gt;smss.exe&lt;/code&gt; tạo ra:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Một bản sao &lt;code&gt;csrss.exe&lt;/code&gt; mới:&lt;/strong&gt; Để quản lý giao diện console cho người dùng.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;winlogon.exe&lt;/code&gt;:&lt;/strong&gt; Tiến trình vẽ lên màn hình đăng nhập yêu cầu bạn nhập mật khẩu.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Quy trình Xác thực (Authentication Flow):&lt;/strong&gt; Khi bạn gõ mật khẩu, &lt;code&gt;winlogon.exe&lt;/code&gt; không tự kiểm tra. Nó gói thông tin đó gửi thẳng xuống cho &amp;ldquo;người gác đền&amp;rdquo; &lt;code&gt;lsass.exe&lt;/code&gt; ở Session 0. &lt;code&gt;lsass.exe&lt;/code&gt; sẽ đối chiếu mật khẩu. Nếu đúng, &lt;code&gt;lsass.exe&lt;/code&gt; gật đầu, tạo ra một Access Token (Thẻ bài quyền lực) và cấp quyền cho phiên đăng nhập của bạn.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Wininit.exe workflow" class="gallery-image" data-flex-basis="444px" data-flex-grow="185" height="383" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/work-mode-windows/winit.png" width="710"&gt;&lt;/p&gt;
&lt;h2 id="4-soc-analytics-bắt-thóp-mã-độc-ngụy-trang"&gt;4. SOC Analytics: &amp;ldquo;Bắt thóp&amp;rdquo; mã độc ngụy trang
&lt;/h2&gt;&lt;p&gt;Hacker biết rất rõ kiến trúc này. Chúng thừa hiểu nếu chạy một file tên là &lt;code&gt;Trojan_steal_data.exe&lt;/code&gt;, các nhà phân tích SOC sẽ khóa cổ chúng ngay lập tức. Vì vậy, chúng thường đổi tên mã độc thành &lt;code&gt;svchost.exe&lt;/code&gt;, &lt;code&gt;lsass.exe&lt;/code&gt; hay &lt;code&gt;csrss.exe&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Vậy làm sao để SOC Analyst nhận diện được kẻ giả mạo? Chúng ta dựa vào &lt;strong&gt;Mối quan hệ Cha - Con (Parent-Child Process)&lt;/strong&gt; và &lt;strong&gt;Vị trí file&lt;/strong&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Quy luật 1:&lt;/strong&gt; &lt;code&gt;lsass.exe&lt;/code&gt; xịn chỉ có một bản duy nhất đang chạy, vị trí file bắt buộc phải ở &lt;code&gt;C:\Windows\System32\&lt;/code&gt;, và tiến trình cha bắt buộc phải là &lt;code&gt;wininit.exe&lt;/code&gt;. Nếu bạn thấy &lt;code&gt;lsass.exe&lt;/code&gt; mọc ra từ &lt;code&gt;explorer.exe&lt;/code&gt; (nghĩa là do người dùng click chuột mở lên) hoặc nằm ở thư mục &lt;code&gt;C:\Temp\&lt;/code&gt;, đó 100% là Malware.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Quy luật 2:&lt;/strong&gt; &lt;code&gt;svchost.exe&lt;/code&gt; có thể có hàng chục bản đang chạy (để chứa các dịch vụ khác nhau). Nhưng tất cả chúng đều phải có tiến trình cha là &lt;code&gt;services.exe&lt;/code&gt;. Mã độc thường sinh ra &lt;code&gt;svchost.exe&lt;/code&gt; độc lập để đánh lừa mắt người.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Mục tiêu số 1 - &lt;code&gt;lsass.exe&lt;/code&gt;:&lt;/strong&gt; Vì tiến trình này làm nhiệm vụ đối chiếu và lưu trữ thông tin đăng nhập, nó giữ rất nhiều mật khẩu (đôi khi là mật khẩu chưa mã hóa) trong RAM của nó. Các công cụ tấn công khét tiếng như Mimikatz luôn tìm cách can thiệp vào bộ nhớ của &lt;code&gt;lsass.exe&lt;/code&gt; để trích xuất (dump) mật khẩu của quản trị viên.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Kiến trúc tiến trình của Windows là một cỗ máy vận hành hoàn hảo với ranh giới quyền lực khắt khe. Việc hiểu rõ ai gọi ai, ai làm nhiệm vụ gì là kỹ năng sống còn giúp SOC Analyst nhạy bén trước các kỹ thuật ẩn mình (Evasion) của Malware. Trong bài viết tiếp theo, chúng ta sẽ rời khỏi RAM để đi sâu vào các ngóc ngách của ổ cứng: Khám phá hệ thống tệp NTFS và kỹ thuật giấu mã độc bằng Alternate Data Streams. Đừng bỏ lỡ nhé!&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Khởi nguồn hệ thống - Windows Booting</title><link>/post/windows-booting/</link><pubDate>Thu, 07 May 2026 16:30:00 +0700</pubDate><guid>/post/windows-booting/</guid><description>&lt;p&gt;Chào mừng các bạn đến với Series Giải phẫu Windows OS &amp;amp; SOC Analytics. Ở bài viết đầu tiên này mình sẽ giúp các bạn hiểu về quá trình khởi tạo của Windows.&lt;/p&gt;
&lt;h2 id="1-giai-đoạn-phần-cứng-tiếng-gọi-đầu-tiên-pre-boot"&gt;1. Giai đoạn Phần cứng: Tiếng gọi đầu tiên (Pre-boot)
&lt;/h2&gt;&lt;p&gt;Bước đầu tiên của quá trình khởi động bắt đầu bằng việc nhấn nút nguồn, thao tác này sẽ gửi tín hiệu điện đến bo mạch chủ và khởi tạo tất cả các thành phần. CPU là thành phần đầu tiên nhận tín hiệu điện và cần một số chỉ dẫn để tiếp tục. Lúc này, quá trình kiểm tra phần cứng POST (Power on Self-Test) sẽ diễn ra để xem RAM, CPU, bàn phím có hoạt động không.&lt;/p&gt;
&lt;p&gt;Để có chỉ dẫn, CPU sẽ tìm đến một phần mềm nhúng trên bo mạch chủ (được gọi chung là &lt;strong&gt;Firmware&lt;/strong&gt;). Trong lịch sử thiết kế hệ thống, có hai chuẩn Firmware khởi động chính và sự khác biệt giữa chúng là điểm mấu chốt trong điều tra số:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Legacy BIOS (Hệ thống đầu vào/đầu ra cơ bản):&lt;/strong&gt; Chuẩn Firmware cũ kỹ hoạt động ở chế độ 16-bit và chỉ hỗ trợ dung lượng ổ đĩa tối đa 2 terabyte. Legacy BIOS đi liền với lược đồ phân vùng MBR (Master Boot Record).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;UEFI (Giao diện phần mềm mở rộng thống nhất):&lt;/strong&gt; Chuẩn Firmware thế hệ mới, hiện đại chạy ở chế độ 32-bit/64-bit, hỗ trợ dung lượng lên đến 9 zettabyte và mang theo tính năng Khởi động an toàn (Secure Boot). UEFI sử dụng sơ đồ phân vùng GPT (GUID Partition Table).&lt;/li&gt;
&lt;/ul&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;em&gt;(Lưu ý: Dân IT chúng ta vẫn hay quen miệng gọi chung là &amp;ldquo;vào màn hình BIOS để cài đặt&amp;rdquo;, nhưng thực chất trên các máy tính từ năm 2012 trở lại đây, cái mà chúng ta đang truy cập chính là giao diện của UEFI. Trong UEFI có một chế độ gọi là &lt;strong&gt;Legacy Mode&lt;/strong&gt; dùng để giả lập lại môi trường BIOS cũ nhằm hỗ trợ cài các hệ điều hành đời cổ).&lt;/em&gt;&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;p&gt;&lt;img alt="So sánh giao diện BIOS và UEFI" class="gallery-image" data-flex-basis="426px" data-flex-grow="177" height="675" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/windows-booting/biosvsuefi.jpg" srcset="/post/windows-booting/biosvsuefi_hu_d6c21e305dbd3699.jpg 800w, /post/windows-booting/biosvsuefi.jpg 1200w" width="1200"&gt;&lt;/p&gt;
&lt;h2 id="2-giai-đoạn-tìm-kiếm-sự-sống-mbr-và-gpt"&gt;2. Giai đoạn Tìm kiếm &amp;ldquo;Sự Sống&amp;rdquo;: MBR và GPT
&lt;/h2&gt;&lt;p&gt;Sau khi kiểm tra POST, BIOS/UEFI sẽ quét các thiết bị khởi động (SSD, HDD, USB) để tìm kiếm mã khởi động (có thể hiểu là đi tìm điểm bắt đầu, và tất nhiên các thiết bị lưu trữ sẽ được ưu tiên hàng đầu).&lt;/p&gt;
&lt;h3 id="21-bios-đi-tìm-mbr-master-boot-record"&gt;2.1. BIOS đi tìm MBR (Master Boot Record)
&lt;/h3&gt;&lt;p&gt;Trên hệ thống BIOS, sector đầu tiên của đĩa (kích thước chuẩn 512 byte) sẽ chứa MBR. Cấu trúc của MBR cực kỳ chật chội:&lt;/p&gt;
&lt;p&gt;&lt;img alt="MBR example" class="gallery-image" data-flex-basis="273px" data-flex-grow="113" height="585" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/windows-booting/mbrsector.jpg" width="666"&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Bootstrap code (446 bytes):&lt;/strong&gt; Bộ nạp khởi động ban đầu. Mục đích chính của nó là tìm phân vùng có thể khởi động từ bảng phân vùng và tải bộ nạp khởi động thứ hai từ đó.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Partition Table (64 bytes):&lt;/strong&gt; Bảng phân vùng chứa thông tin chi tiết của tất cả phân vùng (tối đa 4 phân vùng Primary).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MBR Signature (2 bytes):&lt;/strong&gt; Chữ ký đánh dấu điểm kết thúc của mã MBR, luôn luôn là giá trị Hex &lt;code&gt;55 AA&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Vì mã khởi động nằm ngay trong 446 bytes này, Malware (như Bootkit) cực kỳ thích ghi đè vào đây. Bằng cách này, mã độc sẽ sống sót ngay cả khi người dùng format phân vùng hệ điều hành C: vì nó nằm hoàn toàn ngoài vùng kiểm soát của OS.&lt;/p&gt;
&lt;h3 id="22-sự-tiến-hóa-gpt-và-protective-mbr"&gt;2.2. Sự tiến hóa: GPT và Protective MBR
&lt;/h3&gt;&lt;p&gt;UEFI thông minh hơn. Nó không tìm mã khởi động ở sector đầu tiên mà tìm đến một phân vùng đặc biệt gọi là Phân vùng hệ thống EFI (ESP). Trong GPT, bộ nạp khởi động bao gồm nhiều tệp có phần mở rộng &lt;code&gt;.efi&lt;/code&gt; và tất cả chúng đều được lưu trữ trong ESP này.&lt;/p&gt;
&lt;p&gt;Tuy nhiên, để bảo vệ đĩa GPT khỏi bị các hệ thống BIOS cũ tưởng nhầm là đĩa trắng và ghi đè, GPT tạo ra một lớp giáp gọi là Protective MBR nằm ở ngay sector 0. Protective MBR này chỉ khai báo đúng một phân vùng duy nhất trỏ đến ESP với cờ định dạng là EE (báo hiệu đây là đĩa GPT), để firmware BIOS không can thiệp vào.&lt;/p&gt;
&lt;h2 id="3-giai-đoạn-nạp-nhân-windows-os-loader"&gt;3. Giai đoạn Nạp nhân (Windows OS Loader)
&lt;/h2&gt;&lt;p&gt;Sau khi phân vùng khởi động được xác định, quyền điều khiển được chuyển sang Windows Boot Manager (file &lt;code&gt;bootmgr&lt;/code&gt;). Nó sẽ đọc file dữ liệu cấu hình khởi động (BCD - Boot Configuration Data) để quyết định sẽ nạp hệ điều hành nào.&lt;/p&gt;
&lt;p&gt;Tiếp theo, logo Windows bắt đầu hiện lên trên màn hình. Đây là lúc file nạp hệ điều hành (&lt;code&gt;Winload.exe&lt;/code&gt; hoặc &lt;code&gt;winload.efi&lt;/code&gt;) ra sân để nạp các thành phần cốt lõi nhất vào RAM:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ntoskrnl.exe&lt;/code&gt;: Trái tim thực sự của hệ thống - Nhân (Kernel) của Windows.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Hal.dll&lt;/code&gt;: Lớp trừu tượng phần cứng, có nhiệm vụ &amp;ldquo;phiên dịch&amp;rdquo; để Kernel có thể ra lệnh được cho các linh kiện phần cứng vật lý.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;System Registry Hive&lt;/strong&gt;: Nạp các thiết lập cấu hình tối quan trọng của hệ thống từ Registry.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Boot-start Drivers&lt;/strong&gt;: Các driver tối quan trọng để có thể tiếp tục đọc ổ đĩa.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="4-giai-đoạn-khởi-tạo-hệ-thống-ranh-giới-và-các-tiến-trình-đầu-tiên"&gt;4. Giai đoạn Khởi tạo hệ thống: Ranh giới và Các tiến trình đầu tiên
&lt;/h2&gt;&lt;p&gt;Khi Kernel (&lt;code&gt;ntoskrnl.exe&lt;/code&gt;) đã nằm vững chãi trên RAM, nó bắt đầu thiết lập trật tự cho hệ thống. Đây là lúc sự phân chia hai cõi Kernel Mode (toàn quyền) và User Mode (hạn chế) được xác lập.&lt;/p&gt;
&lt;p&gt;Sau khi kernel khởi động xong, tiến trình System (PID 4) sẽ tạo ra tiến trình User Mode đầu tiên của hệ thống: &lt;code&gt;smss.exe&lt;/code&gt; (Session Manager Subsystem).&lt;/p&gt;
&lt;p&gt;&lt;code&gt;smss.exe&lt;/code&gt; là &amp;ldquo;ông tổ&amp;rdquo; của toàn bộ các phiên làm việc trên Windows. Nhiệm vụ của nó là tạo ra các biến môi trường, thiết lập bộ nhớ ảo và bắt đầu chia phòng (Session).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tạo Session 0:&lt;/strong&gt; Khu vực cấm địa chỉ dành riêng cho các dịch vụ hệ thống ngầm.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tạo Session cho người dùng:&lt;/strong&gt; Môi trường hiển thị giao diện cho chúng ta làm việc.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="41-sự-hình-thành-các-cây-tiến-trình-process-tree"&gt;4.1. Sự hình thành các cây tiến trình (Process Tree)
&lt;/h3&gt;&lt;p&gt;Cách &lt;code&gt;smss.exe&lt;/code&gt; sinh con:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Trong Session 0 (Hệ thống):&lt;/strong&gt;
&lt;code&gt;smss.exe&lt;/code&gt; gọi ra &lt;code&gt;wininit.exe&lt;/code&gt; (khởi tạo dịch vụ hệ thống) và &lt;code&gt;csrss.exe&lt;/code&gt; (runtime subsystem cho session 0).&lt;/p&gt;
&lt;p&gt;&lt;code&gt;wininit.exe&lt;/code&gt; sau đó tiếp tục tạo ra hai mảnh ghép quan trọng:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;services.exe&lt;/code&gt;: Trình quản lý dịch vụ. Nó sẽ khởi chạy hàng loạt các dịch vụ hệ thống, phần lớn được bọc bên trong các tiến trình &lt;code&gt;svchost.exe&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;lsass.exe&lt;/code&gt; (Local Security Authority Subsystem Service): Người gác đền quản lý bảo mật và xác thực thông tin đăng nhập.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Trong Session người dùng:&lt;/strong&gt;
&lt;code&gt;smss.exe&lt;/code&gt; gọi ra một phiên bản &lt;code&gt;csrss.exe&lt;/code&gt; khác (để xử lý console giao diện) và &lt;code&gt;winlogon.exe&lt;/code&gt; (hiển thị màn hình đăng nhập quen thuộc).&lt;/p&gt;
&lt;p&gt;Khi bạn nhập mật khẩu trên màn hình của &lt;code&gt;winlogon.exe&lt;/code&gt;, nó sẽ gửi thông tin đến &lt;code&gt;lsass.exe&lt;/code&gt; để đối chiếu. Nếu mật khẩu đúng, &lt;code&gt;lsass.exe&lt;/code&gt; sẽ gật đầu và tạo ra một &amp;ldquo;thẻ bài&amp;rdquo; (Access Token) cấp quyền cho phiên làm việc của bạn.&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Góc nhìn SOC:&lt;/strong&gt; Hacker hiểu rõ thứ tự này. Nếu bạn thấy một tiến trình &lt;code&gt;lsass.exe&lt;/code&gt; hoặc &lt;code&gt;svchost.exe&lt;/code&gt; nằm &amp;ldquo;chơi vơi&amp;rdquo; mà không có tiến trình cha hợp lệ (như &lt;code&gt;wininit.exe&lt;/code&gt; hay &lt;code&gt;services.exe&lt;/code&gt;), hoặc file thực thi không nằm trong &lt;code&gt;C:\Windows\System32\&lt;/code&gt;, thì 99% đó là phần mềm độc hại đang &amp;ldquo;đội lốt&amp;rdquo; tiến trình hệ thống. Ngoài ra, tiến trình &lt;code&gt;lsass.exe&lt;/code&gt; nắm giữ mật khẩu của hệ thống, nên nó thường xuyên là mục tiêu để các công cụ như Mimikatz &amp;ldquo;dump&amp;rdquo; bộ nhớ hòng đánh cắp thông tin xác thực.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Kết thúc Bài 1, chúng ta đã nắm được cách một cỗ máy tính thức giấc và xây dựng cấu trúc tiến trình chặt chẽ của nó. Ở bài tiếp theo, chúng ta sẽ bắt tay vào phân tích chuyên sâu về hệ thống tệp và cấu trúc thư mục đĩa đệm. Hãy đón chờ nhé!&lt;/em&gt;&lt;/p&gt;</description></item></channel></rss>