<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Wireshark on Roduygo | Blog</title><link>/tags/wireshark/</link><description>Recent content in Wireshark on Roduygo | Blog</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Thu, 21 May 2026 23:00:00 +0700</lastBuildDate><atom:link href="/tags/wireshark/index.xml" rel="self" type="application/rss+xml"/><item><title>IDS/IPS với Suricata &amp; Cân bằng tải</title><link>/post/ids-ips-suricata-load-balancer/</link><pubDate>Thu, 21 May 2026 23:00:00 +0700</pubDate><guid>/post/ids-ips-suricata-load-balancer/</guid><description>&lt;p&gt;Chào mừng các bạn tiếp tục với Series Giải phẫu Mạng &amp;amp; Packet Analysis! Ở bài viết trước, chúng ta đã xây dựng thành công Vành đai Tường lửa (Firewall) vững chắc, nhưng Firewall truyền thống chỉ kiểm tra được lớp vỏ bên ngoài của gói tin. Để phát hiện được những mã độc nằm sâu bên trong &amp;ldquo;thùng hàng&amp;rdquo; dữ liệu và điều phối lưu lượng mạng khổng lồ, hệ thống cần được trang bị thêm &amp;ldquo;con mắt ma thuật&amp;rdquo; và &amp;ldquo;bộ não&amp;rdquo; thông minh. Hôm nay, chúng ta sẽ đi sâu vào phân tích hệ thống phát hiện/ngăn chặn xâm nhập (&lt;strong&gt;IDS/IPS&lt;/strong&gt;) với Suricata, đồng thời làm rõ nghệ thuật &lt;strong&gt;Cân bằng tải&lt;/strong&gt; (Load Balancing) ở Layer 4 và Layer 7.&lt;/p&gt;
&lt;h2 id="1-ranh-giới-giữa-quan-sát-và-hành-động-ids-vs-ips"&gt;1. Ranh giới giữa &amp;ldquo;Quan sát&amp;rdquo; và &amp;ldquo;Hành động&amp;rdquo;: IDS vs IPS
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;IDS&lt;/strong&gt; (Intrusion Detection System) và &lt;strong&gt;IPS&lt;/strong&gt; (Intrusion Prevention System) đều là các công nghệ bảo mật giúp phát hiện và cảnh báo hoạt động trái phép dựa trên chữ ký, trí tuệ nhân tạo hoặc các hành vi bất thường. Tuy nhiên, vị trí đứng và quyền sinh sát của chúng trong mạng lưới lại hoàn toàn khác nhau.&lt;/p&gt;
&lt;h3 id="11-giám-sát-thụ-động-với-ids-passive-monitoring"&gt;1.1 Giám sát thụ động với IDS (Passive Monitoring)
&lt;/h3&gt;&lt;p&gt;IDS hoạt động theo cơ chế &lt;strong&gt;Promiscuous Mode&lt;/strong&gt; (Chế độ hỗn tạp). Điều này có nghĩa là nó chỉ &lt;strong&gt;copy&lt;/strong&gt; một bản sao dữ liệu từ Switch (thông qua cổng SPAN/Mirror) để phân tích mà &lt;strong&gt;không hề can thiệp&lt;/strong&gt; vào luồng đi của gói tin gốc.&lt;/p&gt;
&lt;p&gt;Ví dụ, khi bạn đang tải một file qua FTP không bảo mật, IDS sẽ soi gói tin và phát hiện nội dung Clear-text truyền đi. Lúc này, nó sẽ kích hoạt &lt;strong&gt;Signature-based Detection&lt;/strong&gt; và bắn một Alert lên màn hình SOC: &amp;ldquo;Cảnh báo: Phát hiện truyền tin Clear-text trên cổng &lt;code&gt;21&lt;/code&gt;!&amp;rdquo;. Tuy nhiên, vì nó chỉ quan sát, tệp tin của bạn vẫn sẽ được tải về bình thường.&lt;/p&gt;
&lt;h3 id="12-kiểm-tra-trực-diện-với-ips-in-line-inspection"&gt;1.2 Kiểm tra trực diện với IPS (In-line Inspection)
&lt;/h3&gt;&lt;p&gt;Trái ngược với sự thụ động của IDS, IPS đứng ngay &lt;strong&gt;giữa đường truyền mạng&lt;/strong&gt; giống như một trạm thu phí (&lt;strong&gt;In-line Inspection&lt;/strong&gt;). Mọi gói tin bắt buộc phải đi xuyên qua thân xác nó. Nếu gói tin sạch thì được đi tiếp, còn gói tin &amp;ldquo;bẩn&amp;rdquo; chứa mã độc sẽ bị &lt;strong&gt;Drop&lt;/strong&gt; (Hủy) ngay lập tức.&lt;/p&gt;
&lt;p&gt;Trong thực tế, nếu kẻ xấu thực hiện &lt;strong&gt;Brute Force SSH&lt;/strong&gt; với hàng trăm gói tin từ một IP lạ, IPS sẽ dùng &lt;strong&gt;Statistical Anomaly-based Detection&lt;/strong&gt; để nhận diện bất thường. Nó không chỉ báo cáo mà còn tự động tạo một Rule trên tường lửa để Block/Deny IP đó ngay tức khắc, khiến kẻ tấn công chỉ nhận được thông báo &lt;code&gt;Connection timed out&lt;/code&gt;.&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Cảnh báo SOC:&lt;/strong&gt; Việc triển khai IPS tuy an toàn tuyệt đối nhưng lại mang rủi ro &amp;ldquo;nghẽn cổ chai&amp;rdquo; mạng hoặc chặn nhầm (&lt;strong&gt;False Positive&lt;/strong&gt;) lưu lượng hợp lệ. Trong thực tiễn vận hành SOC, các hệ thống giám sát mới sẽ luôn được chạy ở chế độ &lt;strong&gt;IDS&lt;/strong&gt; (chỉ nhận cảnh báo) một thời gian dài để &amp;ldquo;học&amp;rdquo; hành vi mạng, trước khi được chuyển sang bật chế độ &lt;strong&gt;IPS&lt;/strong&gt; (chặn cắt tự động).&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="2-thực-chiến-cấu-hình-ips-suricata-chặn-ping"&gt;2. Thực chiến cấu hình IPS Suricata chặn Ping
&lt;/h2&gt;&lt;p&gt;Để biến Suricata từ một &amp;ldquo;kẻ quan sát&amp;rdquo; thành một &amp;ldquo;vệ sĩ&amp;rdquo; thực thụ mang tính chất IPS, chúng ta phải dùng &lt;code&gt;iptables&lt;/code&gt; để tóm các gói tin ICMP (Ping) và đẩy chúng vào một hàng chờ (Queue) để Suricata trực tiếp duyệt và ra lệnh hủy.&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-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Đẩy gói tin Ping (ICMP) chiều vào (INPUT) sang hàng chờ NFQUEUE số 0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo iptables -I INPUT -p icmp -j NFQUEUE --queue-num &lt;span style="color:#ae81ff"&gt;0&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;# Đẩy gói tin Ping (ICMP) chiều ra (OUTPUT) sang hàng chờ NFQUEUE số 0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo iptables -I OUTPUT -p icmp -j NFQUEUE --queue-num &lt;span style="color:#ae81ff"&gt;0&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;# Mở file rule của Suricata để thêm luật Drop ICMP&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo nano /var/lib/suricata/rules/local.rules
&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;# Khởi chạy Suricata trỏ vào file luật vừa tạo và lắng nghe trên card mạng enp7s0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo suricata -S /var/lib/suricata/rules/local.rules -i enp7s0
&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;# Theo dõi log cảnh báo và hành động chặn (Drop) theo thời gian thực&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo tail -f /var/log/suricata/fast.log
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Sau khi cấu hình, nếu bạn thực hiện lệnh &lt;code&gt;ping 8.8.8.8&lt;/code&gt;, gói tin sẽ bị tóm vào NFQUEUE. Thay vì nhận được phản hồi Ping thành công, màn hình của bạn sẽ báo &lt;code&gt;Request Timeout&lt;/code&gt;, và trong file &lt;code&gt;fast.log&lt;/code&gt; sẽ liên tục xuất hiện nhãn &lt;code&gt;[wDrop]&lt;/code&gt; chứng tỏ IPS đã ra tay chặn đứng thành công.&lt;/p&gt;
&lt;h2 id="3-nghệ-thuật-cân-bằng-tải-load-balancer"&gt;3. Nghệ thuật Cân bằng tải (Load Balancer)
&lt;/h2&gt;&lt;p&gt;Bên cạnh bảo mật, &lt;strong&gt;Cân bằng tải&lt;/strong&gt; (Load Balancing) là kỹ thuật sống còn để điều phối lưu lượng giao thông mạng, đảm bảo các máy chủ không bao giờ bị &amp;ldquo;nghẽn cổ chai&amp;rdquo; khi có lượng lớn người truy cập cùng lúc.&lt;/p&gt;
&lt;h3 id="31-cân-bằng-tải-lớp-4-l4-load-balancing"&gt;3.1 Cân bằng tải Lớp 4 (L4 Load Balancing)
&lt;/h3&gt;&lt;p&gt;Kiểu cân bằng này điều phối giao thông dựa trên giao thức TCP/UDP ở Tầng 4. Nó chỉ nhìn vào &lt;strong&gt;Địa chỉ IP Đích&lt;/strong&gt; và &lt;strong&gt;Số cổng&lt;/strong&gt; (Port) để ra quyết định — không cần quan tâm nội dung bên trong gói tin chứa cái gì. Nhờ việc không phải giải mã nội dung (Decapsulation), cách này có tốc độ xử lý cực kỳ nhanh (ví dụ: IPVS trên Linux, F5 Big-IP).&lt;/p&gt;
&lt;h3 id="32-cân-bằng-tải-lớp-7-l7-load-balancing"&gt;3.2 Cân bằng tải Lớp 7 (L7 Load Balancing)
&lt;/h3&gt;&lt;p&gt;Đây là kiểu cân bằng tải &lt;strong&gt;&amp;ldquo;thông minh&amp;rdquo;&lt;/strong&gt; hoạt động ở Tầng Ứng dụng, thường dựa trên giao thức HTTP/HTTPS. L7 Load Balancer có khả năng &amp;ldquo;soi&amp;rdquo; sâu vào nội dung của &lt;strong&gt;URL&lt;/strong&gt;, &lt;strong&gt;Header&lt;/strong&gt; hoặc &lt;strong&gt;Cookie&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Nó cực kỳ linh hoạt và phù hợp cho kiến trúc Microservices. Ví dụ, nếu người dùng truy cập &lt;code&gt;ezlearn.com/api/v1/chat&lt;/code&gt;, nó sẽ đẩy sang cụm máy ảo xử lý Chat; còn nếu truy cập &lt;code&gt;ezlearn.com/static/images&lt;/code&gt;, nó lại đẩy sang cụm lưu trữ hình ảnh (ví dụ: Nginx, HAProxy).&lt;/p&gt;
&lt;h3 id="33-cân-bằng-tải-mức-dns-dns-load-balancing"&gt;3.3 Cân bằng tải mức DNS (DNS Load Balancing)
&lt;/h3&gt;&lt;p&gt;Đây là kiểu cân bằng nằm ở &amp;ldquo;vòng ngoài cùng&amp;rdquo; trước khi gói tin chạm tới hệ thống của bạn. Khi bạn gõ &lt;code&gt;google.com&lt;/code&gt;, máy chủ DNS sẽ tự động xoay vòng (&lt;strong&gt;Round Robin&lt;/strong&gt;) và trả về các địa chỉ IP khác nhau cho những người dùng khác nhau.&lt;/p&gt;
&lt;h2 id="4-demo-thực-chiến-nginx-load-balancer-round-robin"&gt;4. Demo thực chiến Nginx Load Balancer (Round Robin)
&lt;/h2&gt;&lt;p&gt;Để thấy rõ cách một L7 Load Balancer chia việc, chúng ta dùng Nginx thiết lập thuật toán &lt;strong&gt;Round Robin&lt;/strong&gt; (Chia đều) cho 2 máy chủ Python.&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-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Bật máy chủ backend số 1 chạy nền ở cổng 8001&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;python3 -m http.server &lt;span style="color:#ae81ff"&gt;8001&lt;/span&gt; &amp;amp;
&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;# Bật máy chủ backend số 2 chạy nền ở cổng 8002&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;python3 -m http.server &lt;span style="color:#ae81ff"&gt;8002&lt;/span&gt; &amp;amp;
&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;# Sửa file cấu hình của Nginx để điều hướng tải giữa 2 máy chủ trên&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo nano /etc/nginx/conf.d/lb.conf
&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;# Kiểm tra xem file cấu hình Nginx có bị lỗi cú pháp không&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo nginx -t
&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;# Khởi động lại dịch vụ Nginx để áp dụng cấu hình Load Balancer&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo systemctl restart nginx
&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;# Gửi request kiểm tra đến Nginx ở cổng 8080&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -I http://127.0.0.1:8080
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Với cơ chế Round Robin, mỗi request &lt;code&gt;curl&lt;/code&gt; mới sẽ được Nginx luân phiên gửi sang backend kế tiếp trong danh sách (gói thứ nhất vào &lt;code&gt;8001&lt;/code&gt;, gói thứ hai vào &lt;code&gt;8002&lt;/code&gt;). Nếu bạn dùng Wireshark với bộ lọc &lt;code&gt;http &amp;amp;&amp;amp; (tcp.port == 8001 || tcp.port == 8002)&lt;/code&gt;, bạn sẽ thấy rõ sự phân tán luồng cực kỳ nhịp nhàng này.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Việc kết hợp IDS/IPS để thanh lọc mã độc và Load Balancer để điều phối luồng truy cập giúp hệ thống mạng doanh nghiệp đạt được cả hai yếu tố: Bảo mật vững chắc và Hiệu năng tối đa. Tuy nhiên, hacker luôn tìm cách lẩn trốn, và chúng có thể dùng Proxy hoặc VPN để mã hóa toàn bộ dữ liệu, khiến cả IDS lẫn IPS đều bị &amp;ldquo;mù&amp;rdquo;. Trong Bài 13 tiếp theo, chúng ta sẽ phân tích cách VPN hoạt động ở Tầng 3 và nghệ thuật Vượt rào &amp;amp; Ẩn danh (Proxy vs VPN). Hãy cùng đón đọc nhé!&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Vành đai Tường lửa (Firewall) &amp; NAT</title><link>/post/firewall-nat-network-security/</link><pubDate>Thu, 21 May 2026 22:58:00 +0700</pubDate><guid>/post/firewall-nat-network-security/</guid><description>&lt;p&gt;Chào mừng các bạn tiếp tục với Series Giải phẫu Mạng &amp;amp; Packet Analysis! Trong 10 bài viết trước, chúng ta đã lột tả mọi góc khuất của các giao thức mạng từ Tầng 1 đến Tầng 7 và phân tích cách hacker thao túng chúng. Giờ là lúc chúng ta chuyển từ thế bị động sang chủ động: Xây dựng các công sự bảo vệ. Hôm nay, chúng ta sẽ bắt đầu với lớp giáp kiên cố nhất của mọi hệ thống: &lt;strong&gt;Vành đai Tường lửa&lt;/strong&gt; (Firewall) và cơ chế ẩn danh nội bộ (&lt;strong&gt;NAT&lt;/strong&gt;).&lt;/p&gt;
&lt;h2 id="1-tường-lửa-firewall-là-gì-và-vị-trí-hoạt-động"&gt;1. Tường lửa (Firewall) là gì và Vị trí hoạt động
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Firewall&lt;/strong&gt; là một hệ thống bảo mật mạng đóng vai trò như một &amp;ldquo;màng lọc&amp;rdquo; khắc nghiệt, kiểm soát toàn bộ lưu lượng dữ liệu đi ra (Outbound) và đi vào (Inbound) giữa mạng nội bộ an toàn và môi trường Internet đầy rẫy hiểm nguy.&lt;/p&gt;
&lt;p&gt;Dưới góc độ triển khai, Firewall được chia thành hai loại chính:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Network Firewall:&lt;/strong&gt; Thường là thiết bị phần cứng hoặc máy chủ chuyên dụng đặt tại Gateway/Router để bảo vệ cả một mạng doanh nghiệp.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Host-based Firewall:&lt;/strong&gt; Chạy trực tiếp trên từng hệ điều hành (như &lt;strong&gt;Windows Defender Firewall&lt;/strong&gt; hoặc &lt;code&gt;firewalld&lt;/code&gt; trên Linux) để bảo vệ duy nhất chiếc máy tính đó.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Để chặn đứng các mối đe dọa, Firewall có thể hoạt động ở nhiều tầng khác nhau trong mô hình OSI:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Layer 3 (Network):&lt;/strong&gt; Lọc dựa trên địa chỉ IP Nguồn/Đích (ví dụ: Chặn IP &lt;code&gt;157.240.199.35&lt;/code&gt; của Facebook).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Layer 4 (Transport):&lt;/strong&gt; Lọc dựa trên giao thức TCP/UDP và số Cổng (ví dụ: Cấm cổng &lt;code&gt;22&lt;/code&gt; SSH).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Layer 7 (Application):&lt;/strong&gt; Lọc dựa trên nội dung thực tế của ứng dụng (ví dụ: Chặn các truy vấn DNS độc hại hoặc các HTTP GET mang mã SQL Injection).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="2-nguyên-lý-hoạt-động-acl-packet-filtering-và-stateful-inspection"&gt;2. Nguyên lý hoạt động: ACL, Packet Filtering và Stateful Inspection
&lt;/h2&gt;&lt;p&gt;Sức mạnh của Firewall nằm ở một danh sách các quy tắc được định nghĩa từ trước gọi là &lt;strong&gt;ACL&lt;/strong&gt; (Access Control List). Khi một gói tin bay tới, Firewall sẽ áp dụng các cơ chế kiểm tra sau:&lt;/p&gt;
&lt;h3 id="21-lọc-gói-tin-packet-filtering"&gt;2.1 Lọc gói tin (Packet Filtering)
&lt;/h3&gt;&lt;p&gt;Firewall sẽ &amp;ldquo;soi&amp;rdquo; trực tiếp vào các lớp vỏ Header (Lớp 3 và Lớp 4) mà chúng ta đã phân tích trên Wireshark ở các bài trước. Nó kiểm tra xem địa chỉ IP và Port này có nằm trong danh sách đen (Blacklist) hay không.&lt;/p&gt;
&lt;h3 id="22-kiểm-tra-trạng-thái-stateful-inspection"&gt;2.2 Kiểm tra trạng thái (Stateful Inspection)
&lt;/h3&gt;&lt;p&gt;Những thế hệ Firewall thông minh không chỉ soi từng gói tin rời rạc, mà nó còn &lt;strong&gt;&amp;ldquo;nhớ&amp;rdquo;&lt;/strong&gt; trạng thái của cả một cuộc hội thoại. Ví dụ: Nếu nó nhớ rằng máy tính của bạn vừa gửi một gói &lt;code&gt;SYN&lt;/code&gt; ngỏ lời ra ngoài, nó sẽ tự động cho phép gói &lt;code&gt;SYN-ACK&lt;/code&gt; phản hồi từ Server đi xuyên qua tường lửa để trở về máy bạn.&lt;/p&gt;
&lt;h3 id="23-phán-quyết-actions"&gt;2.3 Phán quyết (Actions)
&lt;/h3&gt;&lt;p&gt;Sau khi đối chiếu ACL, Firewall sẽ đưa ra một trong ba phán quyết đối với gói tin:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Allow / Accept:&lt;/strong&gt; Cho phép gói tin đi qua bình thường.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deny / Drop:&lt;/strong&gt; Tiêu hủy gói tin trong &lt;strong&gt;im lặng&lt;/strong&gt;. Kẻ gửi sẽ không biết gói tin đi đâu, dẫn đến việc Wireshark liên tục báo lỗi &lt;code&gt;TCP Retransmission&lt;/code&gt; do chờ mãi không thấy phản hồi.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reject:&lt;/strong&gt; Hủy gói tin nhưng lịch sự gửi lại một thông báo lỗi (thường là gói tin &lt;strong&gt;ICMP&lt;/strong&gt;) báo cho kẻ gửi biết rằng &amp;ldquo;Cửa đã bị khóa&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="3-thực-chiến-firewall-và-bắt-bệnh-trên-wireshark"&gt;3. Thực chiến Firewall và Bắt bệnh trên Wireshark
&lt;/h2&gt;&lt;p&gt;Để minh họa sự khác biệt của phán quyết, chúng ta dùng &lt;code&gt;firewalld&lt;/code&gt; trên Linux để chặn cổng &lt;code&gt;22&lt;/code&gt; (SSH) bằng cơ chế &lt;strong&gt;REJECT&lt;/strong&gt; và xem hệ thống phản ứng ra sao.&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-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Kiểm tra danh sách các luật (rules) đang hoạt động trên Firewall&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo firewall-cmd --list-all
&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;# Thêm một Rich Rule để từ chối mọi kết nối TCP vào cổng 22&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo firewall-cmd --add-rich-rule&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#39;rule family=&amp;#34;ipv4&amp;#34; port port=&amp;#34;22&amp;#34; protocol=&amp;#34;tcp&amp;#34; reject&amp;#39;&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;# Reload để Tường lửa áp dụng luật mới ngay lập tức&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo firewall-cmd --reload
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Lúc này, nếu có kẻ cố tình truy cập vào cổng &lt;code&gt;22&lt;/code&gt; của máy bạn (&lt;code&gt;192.168.1.29&lt;/code&gt;), Wireshark sẽ không hiện lỗi gửi lại (Retransmission) mà sẽ chộp được ngay một gói tin phản hồi chí mạng ở Lớp 3:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# Gói tin ICMP trả về khi Firewall áp dụng cơ chế REJECT
# Hệ thống trực tiếp đóng sập cửa và thông báo &amp;#34;Host unreachable&amp;#34;

No. Time Source Destination Protocol Info
5 2.204045407 192.168.1.29 192.168.1.29 ICMP Destination unreachable (Host unreachable)
&lt;/code&gt;&lt;/pre&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Góc nhìn SOC:&lt;/strong&gt; Thông điệp &lt;code&gt;Destination unreachable (Host unreachable)&lt;/code&gt; của ICMP chính là cách Firewall &amp;ldquo;trả lời&amp;rdquo; kẻ tấn công. Trong thực tế, Blue Team thường ưu tiên dùng quy tắc &lt;strong&gt;DROP&lt;/strong&gt; thay vì &lt;strong&gt;REJECT&lt;/strong&gt;. Việc Drop (hủy trong im lặng) sẽ làm công cụ quét mạng (Scanner) của hacker bị treo và chậm đi đáng kể do phải đợi Timeout, đồng thời không cung cấp cho chúng bất kỳ manh mối nào về việc hệ thống có Firewall hay không.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="4-nat-network-address-translation-người-hùng-giấu-mặt"&gt;4. NAT (Network Address Translation): Người hùng giấu mặt
&lt;/h2&gt;&lt;p&gt;Firewall chặn đứng các cuộc tấn công từ bên ngoài, nhưng còn một kỹ thuật khác giúp hệ thống nội bộ trở nên vô hình trên Internet: &lt;strong&gt;NAT&lt;/strong&gt;. NAT hoạt động chủ yếu ở Tầng 3 và Tầng 4, với nhiệm vụ thay đổi địa chỉ IP trong gói tin khi nó đi qua Router.&lt;/p&gt;
&lt;p&gt;Hãy xem quá trình gói tin đi từ máy tính của bạn (IP nội bộ &lt;code&gt;192.168.1.29&lt;/code&gt;) ra máy chủ Facebook (&lt;code&gt;157.240.199.35&lt;/code&gt;):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Gói tin đi ra (Outbound):&lt;/strong&gt; Máy bạn gửi gói tin từ địa chỉ &lt;code&gt;192.168.1.29:56375&lt;/code&gt; tới &lt;code&gt;157.240.199.35:443&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tại Router (Quá trình dịch):&lt;/strong&gt; Router không thể đẩy dải IP &lt;code&gt;192.168.x.x&lt;/code&gt; ra Internet vì đây là dải địa chỉ &lt;strong&gt;Private&lt;/strong&gt; không được định tuyến. NAT sẽ &amp;ldquo;xóa&amp;rdquo; IP nguồn này và thay bằng IP Public của công ty (ví dụ: &lt;code&gt;113.161.x.x&lt;/code&gt;). Đồng thời, nó ghi vào &lt;strong&gt;NAT Table&lt;/strong&gt; một dòng: &amp;ldquo;Port &lt;code&gt;56375&lt;/code&gt; của máy nội bộ &lt;code&gt;.29&lt;/code&gt; đang được gán cho kết nối Facebook&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gói tin đi về (Inbound):&lt;/strong&gt; Facebook phản hồi lại địa chỉ Public &lt;code&gt;113.161.x.x:56375&lt;/code&gt;. Router nhận gói tin, dò lại NAT Table, thấy khớp Port nên tự động &amp;ldquo;dịch&amp;rdquo; ngược lại IP đích thành &lt;code&gt;192.168.1.29&lt;/code&gt; và đẩy vào máy bạn.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Nhờ NAT, dù công ty bạn có hàng nghìn nhân viên, tất cả chỉ cần dùng chung một vài địa chỉ IP Public để lướt web. Hacker đứng ngoài Internet sẽ không thể nào biết được kiến trúc địa chỉ IP thực sự bên trong mạng nội bộ của bạn.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Việc triển khai vững chắc Firewall và NAT giúp che giấu và bảo vệ hạ tầng mạng của tổ chức khỏi 90% các cuộc rà quét tự động của tin tặc. Tuy nhiên, Firewall chỉ có thể soi được lớp vỏ Header, vậy nếu hacker nhét một tệp chứa mã độc vào bên trong một gói tin HTTP hợp lệ thì sao? Ở Bài 12 tiếp theo, chúng ta sẽ lắp đặt thêm &amp;ldquo;con mắt ma thuật&amp;rdquo; cho mạng lưới: Phân tích sự khác biệt giữa IDS (Giám sát thụ động) và IPS (Ngăn chặn chủ động) với công cụ Suricata. Đừng bỏ lỡ nhé!&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Quản trị từ xa (SSH) &amp; Lỗ hổng Terrapin (CVE-2023-48795)</title><link>/post/ssh-terrapin-cve-2023-48795/</link><pubDate>Thu, 21 May 2026 22:57:00 +0700</pubDate><guid>/post/ssh-terrapin-cve-2023-48795/</guid><description>&lt;p&gt;Chào mừng các bạn tiếp tục với Series Giải phẫu Mạng &amp;amp; Packet Analysis! Ở bài trước, chúng ta đã thấy SFTP tận dụng sự kiên cố của kiến trúc đường hầm SSH để bảo vệ việc truyền tải dữ liệu. Tuy nhiên, vỏ bọc nào cũng có điểm yếu chí mạng nếu quá trình &amp;ldquo;đàm phán&amp;rdquo; ban đầu bị thao túng. Hôm nay, chúng ta sẽ đi sâu vào kỹ thuật quản trị từ xa bằng SSH, giải phẫu cơ chế nhận diện Fingerprint và mổ xẻ lỗ hổng &lt;strong&gt;Terrapin (CVE-2023-48795)&lt;/strong&gt; — đòn tấn công tinh vi đánh thẳng vào tính toàn vẹn của quá trình bắt tay.&lt;/p&gt;
&lt;h2 id="1-ssh-secure-shell---vua-của-dòng-lệnh-từ-xa"&gt;1. SSH (Secure Shell) - &amp;ldquo;Vua&amp;rdquo; của dòng lệnh từ xa
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;SSH&lt;/strong&gt; (hoạt động ở Cổng &lt;code&gt;22&lt;/code&gt;) ra đời để thay thế cho giao thức Telnet lỗi thời, được sử dụng chủ yếu để đăng nhập và điều khiển các máy chủ Linux từ xa với độ bảo mật cực cao.&lt;/p&gt;
&lt;p&gt;Bản chất của SSH là tạo ra một đường hầm mã hóa để bạn truyền các lệnh văn bản (Text-based). Nó sử dụng cơ chế bảo mật dựa trên cặp khóa &lt;strong&gt;Public/Private Key&lt;/strong&gt; hoặc mật khẩu đã được băm. Đứng ở góc độ một SOC Analyst soi gói tin bằng Wireshark, toàn bộ dữ liệu giao tiếp bên trong SSH chỉ hiện ra dưới dạng các khối &lt;strong&gt;Encrypted Packet&lt;/strong&gt; — kẻ tấn công không thể đọc được bạn đang gõ lệnh quản trị gì.&lt;/p&gt;
&lt;h2 id="2-ranh-giới-chống-mitm-dấu-vân-tay-fingerprint-và-known_hosts"&gt;2. Ranh giới chống MitM: Dấu vân tay (Fingerprint) và known_hosts
&lt;/h2&gt;&lt;p&gt;Vậy làm sao máy tính của bạn biết nó đang kết nối đúng đến Server thật chứ không phải một máy chủ giả mạo do hacker dựng lên (&lt;strong&gt;Man-in-the-Middle&lt;/strong&gt;)? Bí quyết nằm ở cơ chế &lt;strong&gt;Dấu vân tay&lt;/strong&gt; (Fingerprint).&lt;/p&gt;
&lt;p&gt;Khi bạn thực hiện kết nối SSH lần đầu tiên, máy khách chưa biết gì về Server. Lúc này, Server sẽ gửi &amp;ldquo;chứng minh thư&amp;rdquo; của nó dưới dạng một mã Fingerprint (thường dùng thuật toán băm &lt;code&gt;ED25519&lt;/code&gt; từ Khóa công khai).&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-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Lệnh kết nối SSH vào máy chủ Linux&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Hệ thống sẽ hỏi xác nhận Fingerprint trong lần kết nối đầu tiên&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ssh admin@10.10.50.20
&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;# The authenticity of host &amp;#39;10.10.50.20 (10.10.50.20)&amp;#39; can&amp;#39;t be established.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# ED25519 key fingerprint is SHA256:bafc947d6e921971472e82f52462129e.&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Are you sure you want to continue connecting (yes/no/[fingerprint])?&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Khi bạn gõ &lt;code&gt;yes&lt;/code&gt;, máy của bạn sẽ lưu vĩnh viễn khóa này vào file &lt;code&gt;known_hosts&lt;/code&gt;. Kể từ những lần đăng nhập sau, nếu dấu vân tay này bị thay đổi (do hacker can thiệp và ép dùng khóa giả), SSH sẽ lập tức hiển thị &lt;strong&gt;cảnh báo đỏ&lt;/strong&gt; và ngắt kết nối để bảo vệ bạn.&lt;/p&gt;
&lt;h2 id="3-lỗ-hổng-terrapin-cve-2023-48795---thao-túng-gói-tin-bắt-tay"&gt;3. Lỗ hổng Terrapin (CVE-2023-48795) - Thao túng gói tin bắt tay
&lt;/h2&gt;&lt;p&gt;Mặc dù khóa phiên được trao đổi và lưu an toàn trong RAM ngay từ đầu, SSH vẫn tồn tại một lỗ hổng chí mạng mang tên &lt;strong&gt;Terrapin Attack (CVE-2023-48795)&lt;/strong&gt;. Điểm đáng sợ của Terrapin là nó &lt;strong&gt;không thèm bẻ khóa&lt;/strong&gt; thuật toán mã hóa, mà đánh trực tiếp vào tính toàn vẹn của quá trình &amp;ldquo;bắt tay&amp;rdquo; (Handshake).&lt;/p&gt;
&lt;p&gt;Trong giao thức SSH, mỗi gói tin được gửi đi đều đi kèm với một &lt;strong&gt;số thứ tự&lt;/strong&gt; (Sequence Number) ngẫu nhiên và tăng dần ngầm định. Cả Client và Server đều kiểm tra gắt gao số này để đảm bảo không một gói tin nào bị rơi rớt hay bị kẻ xấu chèn thêm vào.&lt;/p&gt;
&lt;p&gt;Cách thức tấn công của Terrapin (kỹ thuật &lt;strong&gt;&amp;ldquo;Cắt dán&amp;rdquo; số thứ tự&lt;/strong&gt;) diễn ra như sau:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Hacker chiếm vị trí &lt;strong&gt;Man-in-the-Middle (MitM)&lt;/strong&gt; giữa máy bạn và Server.&lt;/li&gt;
&lt;li&gt;Trong giai đoạn đầu của quá trình bắt tay (khi mã hóa toàn phần chưa được thiết lập), hacker chủ động &lt;strong&gt;xóa bỏ&lt;/strong&gt; một số gói tin cụ thể — ví dụ: gói tin báo hiệu việc hỗ trợ các thuật toán bảo mật cao.&lt;/li&gt;
&lt;li&gt;Để hai bên Client và Server không phát hiện ra sự thiếu hụt này, hacker &lt;strong&gt;điều chỉnh lại số thứ tự&lt;/strong&gt; của các gói tin kế tiếp sao cho chúng khớp hoàn hảo với mong đợi của hai bên — như thể gói tin bị xóa chưa từng tồn tại.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="4-hậu-quả-hạ-cấp-bảo-mật-và-vô-hiệu-hóa-keystroke-obfuscation"&gt;4. Hậu quả: Hạ cấp bảo mật và Vô hiệu hóa Keystroke Obfuscation
&lt;/h2&gt;&lt;p&gt;Mục đích cuối cùng của việc &amp;ldquo;xóa dấu vết&amp;rdquo; khéo léo này là để thực hiện đòn &lt;strong&gt;Hạ cấp bảo mật&lt;/strong&gt; (Downgrade Attack). Bằng cách xóa các gói tin mở rộng (Extension Info), hacker đánh lừa cả hai bên về khả năng bảo mật của nhau.&lt;/p&gt;
&lt;p&gt;Hậu quả mang lại cực kỳ tàn khốc:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ép dùng thuật toán yếu:&lt;/strong&gt; SSH sẽ bị lừa và tự động lùi về sử dụng các bộ thuật toán mã hóa cũ hơn, yếu hơn, dễ bị hacker dùng kỹ thuật tấn công kênh kề để khai thác.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vô hiệu hóa Keystroke Obfuscation:&lt;/strong&gt; Đây là tính năng quan trọng của SSH dùng để làm nhiễu &amp;ldquo;nhịp gõ phím&amp;rdquo; khi truyền qua mạng. Khi Terrapin vô hiệu hóa thành công tính năng này, hacker đứng giữa có thể dễ dàng đoán được độ dài mật khẩu và thực hiện tấn công Sniffing.&lt;/li&gt;
&lt;/ul&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Cảnh báo SOC:&lt;/strong&gt; Lỗ hổng Terrapin cho thấy tầm quan trọng của việc cập nhật phần mềm. Để chống lại đòn tấn công này, quản trị viên mạng phải đảm bảo cả &lt;strong&gt;SSH Client&lt;/strong&gt; (như PuTTY, OpenSSH) và &lt;strong&gt;SSH Server&lt;/strong&gt; đều được cập nhật lên phiên bản mới nhất có hỗ trợ cờ &lt;strong&gt;&amp;ldquo;Strict KEX&amp;rdquo;&lt;/strong&gt; (Bắt tay nghiêm ngặt) nhằm chặn đứng hành vi thao túng gói tin.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Khép lại Bài 10, chúng ta đã hoàn tất việc mổ xẻ những giao thức quan trọng nhất ở Tầng Ứng dụng (Lớp 7) như DNS, DHCP, HTTP, FTP và SSH. Bức tranh về cách dữ liệu truyền tải trên mạng đã hoàn thiện. Giờ là lúc chúng ta chuyển sang thế chủ động: Làm thế nào để xây dựng các công sự bảo vệ mạng lưới này? Trong Bài 11 tiếp theo, chúng ta sẽ bắt đầu Phần 4 của Series với chủ đề Vành đai Tường lửa (Firewall) &amp;amp; Cơ chế NAT. Hãy cùng chờ đón nhé!&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Giao thức Truyền tải (HTTP/HTTPS &amp; FTP/SFTP)</title><link>/post/http-ftp-sftp-protocols/</link><pubDate>Thu, 21 May 2026 22:55:00 +0700</pubDate><guid>/post/http-ftp-sftp-protocols/</guid><description>&lt;p&gt;Chào mừng các bạn tiếp tục với Series Giải phẫu Mạng &amp;amp; Packet Analysis! Ở phần trước, chúng ta đã đi sâu vào hạ tầng mạng với DNS và DHCP. Khi gói tin đã có IP và tìm được đích đến, hệ thống sẽ chuyển giao nhiệm vụ cho các giao thức truyền tải văn bản và tệp tin ở Lớp Ứng dụng (Tầng 7). Hôm nay, chúng ta sẽ đặt HTTP/HTTPS và FTP/SFTP lên bàn mổ Wireshark để thấy rõ ranh giới sinh tử giữa dữ liệu trần trụi và kiến trúc đường hầm mã hóa.&lt;/p&gt;
&lt;h2 id="1-http-và-https-ranh-giới-giữa-trần-trụi-và-kín-đáo"&gt;1. HTTP và HTTPS: Ranh giới giữa &amp;ldquo;Trần trụi&amp;rdquo; và &amp;ldquo;Kín đáo&amp;rdquo;
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;HTTP&lt;/strong&gt; (Cổng &lt;code&gt;80&lt;/code&gt;) là giao thức nền tảng để duyệt web, nhưng bản chất của nó là truyền &lt;strong&gt;văn bản thuần&lt;/strong&gt; (Clear-text) hoàn toàn không được mã hóa. Đứng ở góc độ bảo mật, nếu bạn sử dụng mạng Wi-Fi công cộng để truy cập một trang web HTTP, bất kỳ ai có kiến thức cơ bản về mạng đang dùng Wireshark cũng có thể &amp;ldquo;nghe lén&amp;rdquo;. Họ sẽ thấy toàn bộ nội dung bạn chat, tài khoản, mật khẩu và thậm chí có thể can thiệp sửa đổi dữ liệu trên đường đi.&lt;/p&gt;
&lt;p&gt;Để khắc phục điều này, &lt;strong&gt;HTTPS&lt;/strong&gt; (Cổng &lt;code&gt;443&lt;/code&gt;) ra đời. Nó thực chất là giao thức HTTP được chạy trên nền của SSL/TLS ở Tầng 6 (Presentation).&lt;/p&gt;
&lt;p&gt;Khi bạn truy cập &lt;code&gt;facebook.com&lt;/code&gt; qua HTTPS, sau khi hoàn tất quá trình Bắt tay TCP ở Tầng 4, quy trình mã hóa sẽ diễn ra như sau:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Chuẩn bị (TLS Handshake):&lt;/strong&gt; Trình duyệt (&lt;code&gt;Client Hello&lt;/code&gt;) và máy chủ (&lt;code&gt;Server Hello&lt;/code&gt;) đàm phán để chọn ra một bộ công cụ mật mã (Cipher Suite) chung.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mã hóa (Application Data):&lt;/strong&gt; Chỉ sau khi &amp;ldquo;đường hầm&amp;rdquo; TLS được thiết lập xong, dữ liệu web thực sự (phương thức &lt;code&gt;GET&lt;/code&gt;/&lt;code&gt;POST&lt;/code&gt;, mật khẩu, hình ảnh) mới bắt đầu được đẩy đi dưới dạng các khối &lt;strong&gt;Encrypted Application Data&lt;/strong&gt;. Lúc này, hacker đứng giữa mạng sẽ hoàn toàn mù tịt.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="2-ftp-và-thảm-họa-lộ-mật-khẩu-clear-text"&gt;2. FTP và Thảm họa Lộ Mật khẩu (Clear-text)
&lt;/h2&gt;&lt;p&gt;Tương tự như câu chuyện của HTTP, giao thức truyền tải tệp tin &lt;strong&gt;FTP&lt;/strong&gt; (File Transfer Protocol) hoạt động ở Cổng &lt;code&gt;20&lt;/code&gt; và &lt;code&gt;21&lt;/code&gt; cũng là một giao thức cực kỳ yếu kém về bảo mật.&lt;/p&gt;
&lt;p&gt;Hãy tưởng tượng một kịch bản thực chiến: Một nhân viên dùng FTP để upload báo cáo nội bộ qua mạng Wi-Fi ở quán cà phê. Hacker ngồi góc phòng, bật Wireshark (hoặc Ettercap) để thực hiện tấn công &lt;strong&gt;Man-in-the-Middle (MitM)&lt;/strong&gt;. Vì FTP không hề có lớp bảo vệ mã hóa nào, hacker sẽ bắt được toàn bộ gói tin giao tiếp trần trụi giữa máy trạm và Server.&lt;/p&gt;
&lt;p&gt;Dưới đây là bằng chứng kết xuất từ Wireshark khi hacker bắt thành công gói tin FTP:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# Gói tin FTP cho thấy thông tin đăng nhập bị lộ hoàn toàn
# IP Nạn nhân: 192.168.1.15 | IP Máy chủ FTP: 10.10.50.20

No. Time Source Destination Protocol Info
34 100.646 192.168.1.15 -&amp;gt; 10.10.50.20 FTP Request: USER roduygo
36 100.646 10.10.50.20 -&amp;gt; 192.168.1.15 FTP Response: 331 Please specify the password.
38 102.659 192.168.1.15 -&amp;gt; 10.10.50.20 FTP Request: PASS 7905
40 102.756 10.10.50.20 -&amp;gt; 192.168.1.15 FTP Response: 230 Login successful.
42 102.756 192.168.1.15 -&amp;gt; 10.10.50.20 FTP Request: SYST
[...]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Chỉ với vài giây phân tích, hacker đã lấy được chính xác tài khoản (&lt;code&gt;USER roduygo&lt;/code&gt;) và mật khẩu (&lt;code&gt;PASS 7905&lt;/code&gt;). Từ đây, chúng có thể đăng nhập thẳng vào Server để trích xuất dữ liệu mật hoặc xóa sạch mọi tài liệu quan trọng.&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Cảnh báo SOC:&lt;/strong&gt; FTP mặc định là một lỗ hổng chí mạng. SOC Analyst cần đưa ra cảnh báo khẩn cấp (Alert) trên hệ thống IDS/IPS nếu phát hiện bất kỳ lưu lượng &lt;strong&gt;FTP&lt;/strong&gt; nào (Port &lt;code&gt;21&lt;/code&gt;) truyền tải dữ liệu mà không đi qua các đường hầm VPN hoặc chưa được bọc TLS (&lt;strong&gt;FTPS&lt;/strong&gt;).&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="3-sftp-kiến-trúc-đường-hầm-bảo-mật-tuyệt-đối"&gt;3. SFTP: Kiến trúc Đường hầm Bảo mật tuyệt đối
&lt;/h2&gt;&lt;p&gt;Để giải quyết vấn đề của FTP, giải pháp an toàn và phổ biến nhất hiện nay trong giới quản trị hệ thống là &lt;strong&gt;SFTP&lt;/strong&gt; (SSH File Transfer Protocol).&lt;/p&gt;
&lt;p&gt;Một sai lầm rất thường gặp là mọi người nghĩ SFTP là &amp;ldquo;FTP cộng thêm bảo mật&amp;rdquo;. Thực chất không phải vậy! &lt;strong&gt;SFTP là một giao thức hoàn toàn mới&lt;/strong&gt; được xây dựng từ đầu ngay bên trong không gian của &lt;strong&gt;SSH&lt;/strong&gt; (Cổng &lt;code&gt;22&lt;/code&gt;). Trong khi SSH cung cấp cho bạn quyền gõ lệnh Terminal từ xa, thì SFTP tận dụng chính &amp;ldquo;đường hầm&amp;rdquo; an toàn đó để truyền tải tệp tin.&lt;/p&gt;
&lt;p&gt;Khi bạn kết nối SFTP lần đầu, hệ thống sẽ sử dụng cơ chế bảo mật cực mạnh:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Kiểm tra Fingerprint:&lt;/strong&gt; Máy bạn sẽ hỏi &amp;ldquo;dấu vân tay&amp;rdquo; (thường là mã &lt;code&gt;ED25519&lt;/code&gt;) của Server và lưu vào file &lt;code&gt;known_hosts&lt;/code&gt;. Từ lần sau, nếu dấu vân tay này bị thay đổi (do hacker cố tình dựng Server giả mạo), SSH sẽ báo động đỏ ngay lập tức.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mã hóa hoàn toàn:&lt;/strong&gt; Toàn bộ lệnh gõ, tên file, và nội dung file đều bị băm và xáo trộn.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Nếu hacker tiếp tục dùng Wireshark để nghe lén luồng SFTP, thứ duy nhất chúng thấy chỉ là vô vọng:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# Gói tin SFTP (chạy qua SSH) hoàn toàn bị mã hóa, che giấu mọi hoạt động
# IP Nạn nhân: 192.168.1.15 | IP Máy chủ SFTP: 10.10.50.20

No. Time Source Destination Protocol Info
14 13.1338 192.168.1.15 -&amp;gt; 10.10.50.20 SSHv2 Client: PQ/T Hybrid Key Exchange Init
15 13.1383 10.10.50.20 -&amp;gt; 192.168.1.15 SSHv2 Server: PQ/T Hybrid Key Exchange Reply, New Keys
17 18.3181 192.168.1.15 -&amp;gt; 10.10.50.20 SSHv2 Client: New Keys, Encrypted packet (len=68)
19 18.3509 10.10.50.20 -&amp;gt; 192.168.1.15 SSHv2 Client: Encrypted packet (len=52)
34 21.8629 192.168.1.15 -&amp;gt; 10.10.50.20 SSHv2 Client: Encrypted packet (len=128)
36 21.9083 10.10.50.20 -&amp;gt; 192.168.1.15 SSHv2 Server: Encrypted packet (len=628)
[...]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Thay vì thấy lệnh &lt;code&gt;USER&lt;/code&gt; hay &lt;code&gt;PASS&lt;/code&gt;, tất cả những gì hiển thị trên màn hình của hacker giờ đây chỉ là các khối &lt;strong&gt;Encrypted packet&lt;/strong&gt; khô khan.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Hiểu rõ sự khác biệt giữa giao thức truyền văn bản thuần (HTTP, FTP) và các giao thức bọc giáp (HTTPS, SFTP) giúp SOC Analyst biết phải cấu hình giám sát ở đâu để không bị lọt lưới thông tin nhạy cảm. Dù SSH/SFTP rất kiên cố, nhưng vỏ bọc nào cũng có điểm yếu chí mạng nếu quá trình &amp;ldquo;đàm phán&amp;rdquo; ban đầu bị thao túng. Trong Bài tiếp theo, chúng ta sẽ đi sâu vào kỹ thuật quản trị từ xa (SSH) và mổ xẻ lỗ hổng Terrapin (CVE-2023-48795) — đòn tấn công tinh vi đánh thẳng vào tính toàn vẹn của quá trình bắt tay SSH. Hãy cùng chờ đón nhé!&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Hạ tầng Mạng (DNS &amp; DHCP)</title><link>/post/dns-dhcp-network-infrastructure/</link><pubDate>Thu, 21 May 2026 22:53:00 +0700</pubDate><guid>/post/dns-dhcp-network-infrastructure/</guid><description>&lt;p&gt;Chào mừng các bạn tiếp tục với Series Giải phẫu Mạng &amp;amp; Packet Analysis! Sau khi đã thiết lập xong &amp;ldquo;đường hầm&amp;rdquo; mã hóa vững chắc ở Tầng 6, chúng ta chính thức bước chân vào Lớp 7 (Application). Đây là nơi chứa đựng những giao thức nền tảng nhất giúp Internet vận hành, nhưng cũng là những &amp;ldquo;góc khuất ngây thơ&amp;rdquo; nhất vì mặc định chúng thiếu đi các cơ chế bảo mật cốt lõi. Hôm nay, chúng ta sẽ cùng bóc tách hệ thống phân giải tên miền (DNS) và quá trình xin cấp phát IP tự động (DHCP), đồng thời phân tích các đòn đánh hiểm hóc nhắm vào chúng.&lt;/p&gt;
&lt;h2 id="1-dns-domain-name-system---bản-danh-bạ-của-internet"&gt;1. DNS (Domain Name System) - Bản danh bạ của Internet
&lt;/h2&gt;&lt;p&gt;Hệ thống phân giải tên miền (&lt;strong&gt;DNS&lt;/strong&gt;) là một giao thức cốt lõi thuộc Tầng 7 (Application Layer) hoạt động chủ yếu qua cổng &lt;strong&gt;UDP 53&lt;/strong&gt;. Nhiệm vụ của nó là &amp;ldquo;dịch&amp;rdquo; các tên miền dễ nhớ đối với con người (như &lt;code&gt;google.com&lt;/code&gt;) thành địa chỉ IP thực tế để máy tính có thể giao tiếp với nhau trên mạng.&lt;/p&gt;
&lt;p&gt;Ví dụ, trước khi bạn thực sự truy cập vào trang Facebook, máy tính của bạn sẽ bắn một gói tin truy vấn DNS đến máy chủ phân giải (như &lt;code&gt;8.8.8.8&lt;/code&gt;) để hỏi IP của Facebook là gì. Sau khi DNS trả về địa chỉ IP và lưu nó vào bộ nhớ đệm (cache), trình duyệt của bạn mới bắt đầu thực hiện kết nối TCP 3 bước để trao đổi dữ liệu web.&lt;/p&gt;
&lt;h2 id="2-bắt-tại-trận-các-đòn-tấn-công-nhắm-vào-dns"&gt;2. Bắt tại trận các đòn tấn công nhắm vào DNS
&lt;/h2&gt;&lt;p&gt;DNS được thiết kế từ thời kỳ sơ khai của Internet nên nó rất &amp;ldquo;ngây thơ&amp;rdquo;: mặc định các truy vấn &lt;strong&gt;không được mã hóa&lt;/strong&gt; và &lt;strong&gt;không có cơ chế xác thực danh tính&lt;/strong&gt; mạnh mẽ. Hacker hiểu rất rõ điểm yếu này và thường xuyên tung ra các đòn tấn công sau:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;DNS Spoofing / Poisoning (Lừa đảo/Đầu độc):&lt;/strong&gt; Kẻ tấn công gửi một gói tin trả lời (Response) giả mạo chứa địa chỉ IP của máy hacker, cố gắng đến máy bạn nhanh hơn cả DNS Server thật. Nếu số định danh &lt;code&gt;Transaction ID&lt;/code&gt; trong gói tin trùng khớp, máy tính của bạn sẽ tin tưởng tuyệt đối và truy cập thẳng vào trang web lừa đảo do hacker dựng sẵn.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DNS Tunneling (Đường hầm dữ liệu):&lt;/strong&gt; Tường lửa của các doanh nghiệp thường luôn cho phép cổng &lt;code&gt;53&lt;/code&gt; đi qua một cách tự do. Biết được kẽ hở này, hacker có thể nhồi nhét dữ liệu nhạy cảm (như mã nguồn dự án hoặc thông tin thẻ tín dụng) vào bên trong các truy vấn DNS thông thường để âm thầm tuồn dữ liệu ra ngoài (&lt;strong&gt;Data Exfiltration&lt;/strong&gt;) mà không bị hệ thống IDS/IPS chặn lại.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DNS Hijacking (Chiếm quyền điều khiển):&lt;/strong&gt; Kẻ gian trực tiếp thay đổi cài đặt máy chủ DNS trên hệ điều hành máy nạn nhân hoặc trên Router để trỏ mọi truy vấn phân giải về một DNS Server do chúng kiểm soát hoàn toàn.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Dưới đây là output Wireshark ghi lại một truy vấn DNS bình thường. Nếu bị &lt;strong&gt;DNS Spoofing&lt;/strong&gt;, IP trả về ở gói số 2 sẽ là IP của kẻ tấn công thay vì IP thật:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# Máy khách 192.168.1.156 hỏi DNS Server 203.113.188.6 địa chỉ của google.com
# Bộ lọc Wireshark: dns &amp;amp;&amp;amp; ip.addr == 192.168.1.156

No. Time Source Destination Protocol Info
1 0.000000 192.168.1.156 -&amp;gt; 203.113.188.6 DNS Standard query 0x24b7 A google.com
2 0.084123 203.113.188.6 -&amp;gt; 192.168.1.156 DNS Standard query response 0x24b7 A google.com A 142.250.198.46
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="3-dhcp-dynamic-host-configuration-protocol-và-quy-trình-dora"&gt;3. DHCP (Dynamic Host Configuration Protocol) và Quy trình DORA
&lt;/h2&gt;&lt;p&gt;Trước khi máy tính có thể &amp;ldquo;hỏi đường&amp;rdquo; bằng DNS, nó phải làm thủ tục &amp;ldquo;xin hộ khẩu&amp;rdquo; để có một địa chỉ IP nội bộ hợp lệ nhằm gia nhập mạng. Quá trình tự động hóa này do giao thức &lt;strong&gt;DHCP&lt;/strong&gt; đảm nhận, hoạt động ở Tầng 7 và sử dụng cổng &lt;strong&gt;UDP 67&lt;/strong&gt; cho Server, &lt;strong&gt;UDP 68&lt;/strong&gt; cho Client.&lt;/p&gt;
&lt;p&gt;Khi bạn vừa cắm dây cáp mạng hoặc bật Wi-Fi, một quy trình 4 bước mang tên &lt;strong&gt;DORA&lt;/strong&gt; sẽ lập tức diễn ra:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;D — Discover (Khám phá):&lt;/strong&gt; Máy tính của bạn lúc này chưa có IP, nó dùng địa chỉ &lt;code&gt;0.0.0.0&lt;/code&gt; để &amp;ldquo;hét&amp;rdquo; lên toàn mạng bằng gói tin Broadcast: &amp;ldquo;Có ai là DHCP Server ở đây không? Tôi cần một địa chỉ IP!&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;O — Offer (Đề nghị):&lt;/strong&gt; Router (đóng vai trò DHCP Server) nghe thấy và đáp lại: &amp;ldquo;Tôi đây! Tôi đang có sẵn địa chỉ &lt;code&gt;192.168.1.14&lt;/code&gt; trống, cậu có muốn dùng không?&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;R — Request (Yêu cầu):&lt;/strong&gt; Máy của bạn phản hồi lại toàn mạng: &amp;ldquo;Tuyệt quá! Tôi đồng ý dùng địa chỉ &lt;code&gt;.14&lt;/code&gt; đó. Làm ơn khóa địa chỉ đó lại cho tôi nhé!&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A — Acknowledge (Xác nhận):&lt;/strong&gt; Router chốt sổ và thông báo: &amp;ldquo;Ok, địa chỉ &lt;code&gt;.14&lt;/code&gt; là của cậu trong vòng 24 giờ tới. Đây là thông số DNS và Default Gateway để cậu vào mạng&amp;rdquo;.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="4-dhcp-starvation-và-rogue-server---sự-nguy-hiểm-của-broadcast"&gt;4. DHCP Starvation và Rogue Server - Sự nguy hiểm của Broadcast
&lt;/h2&gt;&lt;p&gt;Điểm yếu chí mạng của DHCP là nó hoạt động hoàn toàn dựa trên &lt;strong&gt;niềm tin&lt;/strong&gt; vào bất kỳ thiết bị nào phản hồi lại gói tin Broadcast (&lt;code&gt;255.255.255.255&lt;/code&gt;). Kẻ tấn công đứng trong cùng một mạng LAN có thể dễ dàng khai thác niềm tin này:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;DHCP Starvation (Tấn công làm cạn kiệt):&lt;/strong&gt; Hacker sử dụng công cụ tự động để tạo ra hàng vạn gói tin Discover với các địa chỉ MAC giả mạo liên tục. Router sẽ ngây thơ cấp phát toàn bộ dải IP trống trong kho của nó (ví dụ từ &lt;code&gt;.2&lt;/code&gt; đến &lt;code&gt;.254&lt;/code&gt;) cho các MAC ảo này. Hậu quả là khi một nhân viên thật kết nối vào mạng, Router sẽ báo &amp;ldquo;hết số&amp;rdquo; và họ không thể nhận được IP để vào mạng.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Rogue DHCP Server (Server giả mạo):&lt;/strong&gt; Hacker chủ động dựng lên một DHCP Server giả ngay trong mạng công ty. Khi máy của nhân viên gửi gói tin Discover xin IP, Server giả này sẽ phản hồi nhanh hơn cả Router thật để cấp IP — nhưng nó sẽ cấp cho nạn nhân một &lt;strong&gt;Default Gateway giả mạo&lt;/strong&gt; trỏ thẳng về máy của hacker. Lúc này, toàn bộ dữ liệu nạn nhân gửi ra Internet đều chảy xuyên qua máy kẻ tấn công, tạo nên một đòn &lt;strong&gt;Man-in-the-Middle (MitM)&lt;/strong&gt; hoàn hảo.&lt;/li&gt;
&lt;/ul&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Cảnh báo SOC:&lt;/strong&gt; Để chống lại các cuộc tấn công hạ tầng này, quản trị viên mạng cần cấu hình tính năng &lt;strong&gt;DHCP Snooping&lt;/strong&gt; trên các Switch vật lý. Tính năng này sẽ chỉ cho phép các cổng (Port) kết nối với Router thật mới được quyền gửi gói tin &lt;code&gt;Offer&lt;/code&gt; và &lt;code&gt;Acknowledge&lt;/code&gt;, chặn đứng mọi DHCP Server giả mạo.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Thấu hiểu cách DNS và DHCP vận hành giúp SOC Analyst phát hiện sớm các chiến dịch đánh cắp dữ liệu hoặc nghe lén mạng nội bộ trước khi chúng gây ra hậu quả. Sau khi gói tin của chúng ta đã có IP và tìm được đích đến, nó sẽ được chuyển giao cho các giao thức truyền tải văn bản và tệp tin. Trong Bài 9 tiếp theo, chúng ta sẽ phân tích sâu hơn về HTTP/HTTPS, cách FTP làm lộ mật khẩu trần trụi và kiến trúc đường hầm an toàn của SFTP. Hẹn gặp lại các bạn!&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Giải phẫu TLS Handshake &amp; Cipher Suites trên Wireshark</title><link>/post/tls-handshake-cipher-suites/</link><pubDate>Thu, 21 May 2026 22:51:00 +0700</pubDate><guid>/post/tls-handshake-cipher-suites/</guid><description>&lt;p&gt;Chào mừng các bạn tiếp tục với Series Giải phẫu Mạng &amp;amp; Packet Analysis! Ở bài trước, chúng ta đã hiểu được tầm quan trọng của Tầng 6 (Presentation) và sự sụp đổ của SSL 3.0. Hôm nay, chúng ta sẽ đặt giao thức TLS lên &amp;ldquo;bàn mổ&amp;rdquo; Wireshark để soi kỹ từng bước trong quá trình đàm phán bảo mật. Hãy cùng giải phẫu các gói tin &lt;code&gt;Client Hello&lt;/code&gt;, &lt;code&gt;Server Hello&lt;/code&gt; và bóc tách ý nghĩa của bộ công cụ mật mã hiện đại như ECDHE hay CHACHA20_POLY1305.&lt;/p&gt;
&lt;h2 id="1-bức-tranh-toàn-cảnh-tls-handshake"&gt;1. Bức tranh toàn cảnh TLS Handshake
&lt;/h2&gt;&lt;p&gt;Trước khi mã hóa bất kỳ dữ liệu thực tế nào (Application Data), máy khách và máy chủ phải thiết lập các quy tắc chung thông qua quá trình &lt;strong&gt;bắt tay TLS&lt;/strong&gt; (TLS Handshake). Quá trình này chỉ được bắt đầu sau khi hai thiết bị đã thiết lập xong kết nối vật lý qua TCP 3-Way Handshake ở Tầng 4.&lt;/p&gt;
&lt;p&gt;Các bước cơ bản của quy trình diễn ra như sau:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Client Hello:&lt;/strong&gt; Máy khách (như trình duyệt của bạn) gửi lời chào, kèm theo danh sách các bộ công cụ mật mã (Cipher Suites) mà máy của bạn có thể hỗ trợ.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Server Hello:&lt;/strong&gt; Máy chủ nhận lời chào, so sánh và chọn ra một bộ công cụ duy nhất tốt nhất để hai bên cùng sử dụng.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Certificate &amp;amp; Key Exchange:&lt;/strong&gt; Máy chủ gửi chứng chỉ (Certificate) để chứng minh danh tính, sau đó hai bên tiến hành trao đổi Khóa phiên (Session Key).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Finished:&lt;/strong&gt; &amp;ldquo;Đường hầm&amp;rdquo; mã hóa chính thức hoàn tất. Từ thời điểm này, mọi dữ liệu HTTP mới bắt đầu được truyền đi dưới dạng ẩn danh (Encrypted Application Data).&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img alt="tls-handshake" class="gallery-image" data-flex-basis="432px" data-flex-grow="180" height="340" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/tls-handshake-cipher-suites/kk.png" width="613"&gt;&lt;/p&gt;
&lt;h2 id="2-đọc-hiểu-client-hello-trên-wireshark"&gt;2. Đọc hiểu Client Hello trên Wireshark
&lt;/h2&gt;&lt;p&gt;Chúng ta sẽ sử dụng bộ lọc &lt;code&gt;tls.handshake.type == 1&lt;/code&gt; trên Wireshark để xem máy khách mang những gì đến &amp;ldquo;buổi đàm phán&amp;rdquo; ban đầu.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# Bộ lọc Wireshark để tìm gói tin Client Hello
# IP máy khách: 192.168.1.14 | IP máy chủ đích: 72.34.249.208

Handshake Protocol: Client Hello
 Handshake Type: Client Hello (1)
 Length: 1910
 Version: TLS 1.2 (0x0303)
 Random: a0c794e5688f06092ca15a0a7c7452952d79b8af66b763645a55c5d0689b60dd
 Session ID Length: 32
 Session ID: 5f9fe71acbee191437c11861cf72ad48870cb6bb38d3fd5e0bbe731b6e52a7c7
 Cipher Suites Length: 32
 Cipher Suites (16 suites)
 Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 (0xc02c)
 Cipher Suite: TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (0xcca8)
 [...]
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Trong gói tin này, trường thông tin mang tính sống còn nhất là &lt;strong&gt;Cipher Suites (16 suites)&lt;/strong&gt;. Trình duyệt của bạn đang gửi một danh sách gồm 16 thuật toán mật mã khác nhau và truyền đạt thông điệp: &amp;ldquo;Đây là tất cả những vũ khí bảo mật mà tôi có, Server hãy chọn ra một cái nhé!&amp;rdquo;.&lt;/p&gt;
&lt;h2 id="3-giải-phẫu-cipher-suite-thuật-toán-chacha20_poly1305"&gt;3. Giải phẫu Cipher Suite (Thuật toán CHACHA20_POLY1305)
&lt;/h2&gt;&lt;p&gt;Ngay sau &lt;code&gt;Client Hello&lt;/code&gt;, Server sẽ đáp lại bằng gói &lt;code&gt;Server Hello&lt;/code&gt; (bộ lọc &lt;code&gt;tls.handshake.type == 2&lt;/code&gt;) và chốt lại một &amp;ldquo;bộ công cụ mật mã&amp;rdquo; duy nhất. Giả sử Server đã chọn &lt;code&gt;TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Dưới góc độ một SOC Analyst, bạn bắt buộc phải biết cách &amp;ldquo;dịch&amp;rdquo; chuỗi mã này từ trái sang phải:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;TLS&lt;/code&gt;:&lt;/strong&gt; Tên giao thức nền tảng đang sử dụng.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;ECDHE&lt;/code&gt; (Elliptic Curve Diffie-Hellman Ephemeral):&lt;/strong&gt; Thuật toán dùng để trao đổi khóa. Chữ &amp;ldquo;E&amp;rdquo; (Ephemeral) đảm bảo tính &lt;strong&gt;Perfect Forward Secrecy&lt;/strong&gt; — mỗi phiên làm việc có một khóa riêng. Ngay cả khi hacker đánh cắp được Khóa bí mật tĩnh của máy chủ vào ngày mai, chúng cũng không thể dùng nó để giải mã các gói tin Wireshark bắt được từ hôm nay.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;RSA&lt;/code&gt;:&lt;/strong&gt; Thuật toán xác thực danh tính. Dùng để chứng minh với máy khách rằng Server thực sự là đúng địa chỉ (thông qua Certificate).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;CHACHA20_POLY1305&lt;/code&gt;:&lt;/strong&gt; Thuật toán mã hóa đối xứng — phần lõi dùng để xáo trộn dữ liệu. Cực kỳ hiện đại, chạy mượt mà và tiết kiệm pin trên thiết bị di động so với thuật toán AES cũ.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;SHA256&lt;/code&gt;:&lt;/strong&gt; Thuật toán băm dùng cho &lt;strong&gt;HMAC&lt;/strong&gt;, đảm bảo không một ai có thể thay đổi dù chỉ 1 bit dữ liệu trên đường truyền mà không bị phát hiện.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="4-giải-mã-dữ-liệu-tls-trong-thực-chiến-decryption"&gt;4. Giải mã dữ liệu TLS trong thực chiến (Decryption)
&lt;/h2&gt;&lt;p&gt;Bình thường, khi bạn soi các gói tin sau quá trình Handshake, bạn sẽ chỉ thấy một vùng xám xịt mang tên &lt;strong&gt;Encrypted Application Data&lt;/strong&gt; chứa toàn ký tự rác. Để phục vụ công tác điều tra phân tích mạng (Network Forensics), chúng ta có thể ép trình duyệt nhả &amp;ldquo;Khóa phiên&amp;rdquo; (Session Key) ra một file log, sau đó nạp file này vào Wireshark để giải mã toàn bộ luồng dữ liệu.&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Cảnh báo bảo mật:&lt;/strong&gt; Cú pháp dưới đây thiết lập biến môi trường để trích xuất khóa mã hóa riêng tư. &lt;strong&gt;Chỉ được phép thực hiện trên môi trường Lab hoặc máy phân tích cách ly.&lt;/strong&gt; Tuyệt đối không chạy lệnh này trên máy tính của người dùng thực tế vì nó sẽ làm lộ toàn bộ dữ liệu duyệt web (tài khoản, mật khẩu) của họ!&lt;/p&gt;

 &lt;/blockquote&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-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Chỉ định đường dẫn file log để lưu Session Key của trình duyệt&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;export SSLKEYLOGFILE&lt;span style="color:#f92672"&gt;=&lt;/span&gt;~/tls_keys.log
&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;# Mở trình duyệt Firefox từ terminal hiện tại để bắt đầu ghi nhận khóa&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;firefox &amp;amp;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Sau khi cấu hình Wireshark trỏ đến file &lt;code&gt;tls_keys.log&lt;/code&gt; này (trong mục &lt;strong&gt;Preferences &amp;gt; Protocols &amp;gt; TLS&lt;/strong&gt;), phép màu sẽ xảy ra. Các gói tin vốn bị mã hóa đen đặc giờ đây sẽ hiển thị thêm một tab &lt;strong&gt;Decrypted TLS&lt;/strong&gt;. Bạn sẽ thấy rõ nguyên hình dữ liệu HTTP/2 trần trụi, bao gồm các phương thức &lt;code&gt;GET&lt;/code&gt;/&lt;code&gt;POST&lt;/code&gt; hay các chuỗi Header rõ ràng.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Việc đọc hiểu tường tận các bộ Cipher Suites và quy trình TLS Handshake giúp Blue Team đánh giá chính xác chất lượng bảo mật của các kết nối đang diễn ra trên hệ thống. Dù Tầng 6 đã tạo ra một đường hầm mã hóa kiên cố, nhưng chính những ứng dụng ở Tầng trên cùng mới là mục tiêu bị tin tặc khai thác nhiềutích &amp;ldquo;góc khuất ngây thơ&amp;rdquo; của hệ thống phân giải tên miền (DNS) và quá trình xin cấp phát IP của DHCP. Các bạn đừ nhất. Trong Bài 8 tiếp theo, chúng ta sẽ chính thức bước vào Lớp Ứng dụng (Application Layer - OSI 7) để phân ng bỏ lỡ nhé!&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Lớp 6 (Presentation) &amp; Lớp vỏ Mã hóa - Từ SSL đến TLS và Lỗ hổng POODLE</title><link>/post/presentation-layer-tls/</link><pubDate>Thu, 21 May 2026 22:50:00 +0700</pubDate><guid>/post/presentation-layer-tls/</guid><description>&lt;p&gt;Chào mừng các bạn tiếp tục với Series Giải phẫu Mạng &amp;amp; Packet Analysis! Ở bài trước, chúng ta đã tìm hiểu cách Tầng 5 duy trì các phiên làm việc, nhưng nếu dữ liệu (như mật khẩu, cookie) cứ thế truyền đi trần trụi thì hacker đứng giữa mạng sẽ dễ dàng tóm gọn. Đó là lúc Tầng 6 (Presentation Layer) xuất hiện như một &amp;ldquo;lớp vỏ bọc thép&amp;rdquo; để thông dịch, nén và xáo trộn mọi thông tin trước khi đẩy ra mạng. Hôm nay, chúng ta sẽ cùng mổ xẻ cơ chế hoạt động của Tầng 6, phân tích sự tiến hóa từ SSL lên TLS và bóc trần đòn đánh POODLE khét tiếng đã định hình lại tiêu chuẩn bảo mật toàn cầu.&lt;/p&gt;
&lt;h2 id="1-tầng-6-presentation-làm-nhiệm-vụ-gì"&gt;1. Tầng 6 (Presentation) làm nhiệm vụ gì?
&lt;/h2&gt;&lt;p&gt;Trong khi các tầng dưới chỉ lo việc &amp;ldquo;vận chuyển&amp;rdquo;, Tầng 6 đóng vai trò là một &amp;ldquo;người phiên dịch và đóng gói&amp;rdquo; dữ liệu chuẩn mực để đảm bảo hai thiết bị có hệ điều hành khác nhau vẫn có thể hiểu nhau. Ở tầng này, ranh giới giữa giao thức và định dạng tệp (như JPEG, MP4, JSON, XML) trở nên rất mong manh.&lt;/p&gt;
&lt;p&gt;Tầng 6 đảm nhiệm 3 trọng trách cốt lõi:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Thông dịch (Translation):&lt;/strong&gt; Chuyển đổi giữa các bảng mã (như ASCII sang UTF-8). Điều này đảm bảo khi bạn gõ tiếng Việt trên ứng dụng, máy chủ ở Mỹ vẫn hiển thị đúng chữ &amp;ldquo;Học&amp;rdquo; chứ không bị lỗi font ô vuông.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nén dữ liệu (Compression):&lt;/strong&gt; Giảm dung lượng dữ liệu (như luồng stream video MP4) trước khi truyền đi để tiết kiệm băng thông.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mã hóa (Encryption):&lt;/strong&gt; Đây là phần quan trọng nhất đối với Blue Team. Toàn bộ quá trình mã hóa dữ liệu để biến văn bản thuần thành một chuỗi ký tự rác (Encrypted Application Data) được xử lý tại đây. Đại diện tiêu biểu nhất chính là giao thức &lt;strong&gt;SSL/TLS&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="2-kỷ-nguyên-của-ssl-và-lỗ-hổng-chí-mạng-poodle"&gt;2. Kỷ nguyên của SSL và Lỗ hổng chí mạng POODLE
&lt;/h2&gt;&lt;p&gt;&lt;strong&gt;Secure Sockets Layer (SSL)&lt;/strong&gt; là thế hệ giao thức mã hóa đầu tiên bảo vệ Internet. Nó hoạt động dựa trên cơ chế bắt tay bằng &lt;strong&gt;Khóa công khai&lt;/strong&gt; (Public Key) và &lt;strong&gt;Khóa bí mật&lt;/strong&gt; (Private Key). Máy khách sẽ kiểm tra &amp;ldquo;Chứng chỉ số&amp;rdquo; của Server, tự tạo ra một &lt;strong&gt;Khóa phiên&lt;/strong&gt; (Session Key) ngẫu nhiên, dùng Khóa công khai của Server bọc lại rồi gửi đi. Chỉ Server cầm Khóa bí mật mới mở được hộp để lấy Khóa phiên dùng cho việc liên lạc sau đó.&lt;/p&gt;
&lt;p&gt;Tuy nhiên, SSL 3.0 đã bị khai tử hoàn toàn bởi một lỗ hổng có tên gọi thú vị: &lt;strong&gt;POODLE&lt;/strong&gt; (Padding Oracle On Downgraded Legacy Encryption).&lt;/p&gt;
&lt;p&gt;Đòn tấn công này đánh trực diện vào cách SSL 3.0 xử lý các &amp;ldquo;dữ liệu đệm&amp;rdquo; (padding). Hacker đứng ở giữa mạng (MitM) sẽ chủ động can thiệp làm nhiễu kết nối để ép Server và Client phải &lt;strong&gt;hạ cấp&lt;/strong&gt; (Downgrade) bảo mật từ TLS xịn xuống dùng SSL 3.0 cũ. Sau đó, chúng liên tục gửi các gói tin chỉnh sửa nhẹ đến Server. Chỉ bằng việc quan sát Server trả lời là &amp;ldquo;Lỗi rồi&amp;rdquo; hay &amp;ldquo;OK&amp;rdquo;, hacker có thể đoán ngược lại từng byte dữ liệu. Sau vài trăm lần thử, chúng lấy được toàn bộ Cookie phiên đăng nhập của bạn mà không cần phải tốn công bẻ khóa.&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Cảnh báo SOC:&lt;/strong&gt; POODLE chứng minh rằng thuật toán mã hóa mạnh đến đâu cũng vô dụng nếu giao thức đàm phán bị lỗi. SOC Analyst cần cấu hình Firewall và Web Server (Nginx, HAProxy) tắt hoàn toàn việc hỗ trợ &lt;strong&gt;SSL v2/v3&lt;/strong&gt;, chỉ chấp nhận &lt;strong&gt;TLS 1.2 trở lên&lt;/strong&gt; để chống lại đòn Downgrade Attack.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="3-sự-tiến-hóa-lên-tls-transport-layer-security"&gt;3. Sự tiến hóa lên TLS (Transport Layer Security)
&lt;/h2&gt;&lt;p&gt;Để khắc phục yếu điểm của SSL, &lt;strong&gt;TLS&lt;/strong&gt; ra đời. Thay vì chỉ mã hóa thụ động, TLS đóng vai trò như một hệ thống an ninh chủ động với các nâng cấp vượt bậc:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Xác thực mạnh mẽ:&lt;/strong&gt; Bỏ hẳn MD5 và SHA-1 để chuyển sang các hàm băm hiện đại như &lt;strong&gt;SHA-256&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chống sửa đổi (Integrity):&lt;/strong&gt; TLS sử dụng thuật toán &lt;strong&gt;HMAC&lt;/strong&gt; (Hash-based Message Authentication Code). Kẻ tấn công không thể thay đổi dù chỉ 1 bit dữ liệu trên đường đi mà không bị hệ thống phát hiện.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bảo mật chuyển tiếp (Perfect Forward Secrecy):&lt;/strong&gt; Nhờ thuật toán trao đổi khóa &lt;strong&gt;ECDHE&lt;/strong&gt;, mỗi phiên làm việc có một khóa riêng. Ngay cả khi hacker đánh cắp được Khóa bí mật tĩnh của máy chủ vào ngày mai, chúng cũng không thể dùng nó để giải mã các gói tin Wireshark mà chúng đã nghe lén từ hôm nay.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="4-giải-phẫu-cipher-suite-trên-wireshark"&gt;4. Giải phẫu Cipher Suite trên Wireshark
&lt;/h2&gt;&lt;p&gt;Khi bạn truy cập một trang web HTTPS, trong gói tin &lt;code&gt;Server Hello&lt;/code&gt; trên Wireshark, máy chủ sẽ chốt lại một &amp;ldquo;Bộ công cụ mật mã&amp;rdquo; (&lt;strong&gt;Cipher Suite&lt;/strong&gt;) duy nhất để hai bên sử dụng. Dưới đây là cách SOC Analyst đọc hiểu bộ mã &lt;code&gt;TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# Log Wireshark soi gói tin Server Hello chốt thuật toán mã hóa
# Bộ lọc: tls.handshake.type == 2

Handshake Protocol: Server Hello
 Version: TLS 1.2 (0x0303)
 Session ID Length: 32
 Cipher Suite: TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (0xcca8)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="Cipher-suite" class="gallery-image" data-flex-basis="455px" data-flex-grow="189" height="339" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/presentation-layer-tls/rsa.png" width="643"&gt;&lt;/p&gt;
&lt;p&gt;Cách đọc chuỗi Cipher Suite trên từ trái sang phải: ví dụ trong ảnh là TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;ECDHE&lt;/code&gt;:&lt;/strong&gt; Thuật toán trao đổi khóa (đảm bảo Perfect Forward Secrecy).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;RSA&lt;/code&gt;:&lt;/strong&gt; Thuật toán xác thực danh tính (chứng minh máy chủ qua Certificate).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;CHACHA20_POLY1305&lt;/code&gt;:&lt;/strong&gt; Thuật toán mã hóa đối xứng thực hiện xáo trộn dữ liệu (tốc độ cực nhanh trên thiết bị hiện đại).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;SHA256&lt;/code&gt;:&lt;/strong&gt; Thuật toán băm dùng cho HMAC để kiểm tra tính toàn vẹn của gói tin.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Dưới góc độ phân tích sự cố, nếu muốn &amp;ldquo;giải mã&amp;rdquo; các gói tin TLS để xem dữ liệu thô (HTTP) trên Wireshark, bạn có thể buộc trình duyệt xuất file lưu trữ Khóa phiên (Session Key) ra ổ cứng:&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-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Thiết lập biến môi trường để Firefox/Chrome nhả Khóa phiên ra file log&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Chỉ dùng trên máy Lab/máy phân tích, KHÔNG dùng trên máy người dùng thực tế&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;export SSLKEYLOGFILE&lt;span style="color:#f92672"&gt;=&lt;/span&gt;~/tls_keys.log
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;firefox &amp;amp;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="5-mã-hóa-tls-có-an-toàn-tuyệt-đối"&gt;5. Mã hóa TLS có an toàn tuyệt đối?
&lt;/h2&gt;&lt;p&gt;Dù TLS rất thông minh, nó vẫn có những &amp;ldquo;gót chân Achilles&amp;rdquo; mà Blue Team cần dè chừng:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tấn công vào Chứng chỉ (Certificate Attacks):&lt;/strong&gt; TLS dựa vào niềm tin của Certificate. Nếu hacker lừa người dùng cài một &amp;ldquo;Root Certificate&amp;rdquo; giả vào máy, chúng có thể thực hiện &lt;strong&gt;Man-in-the-Middle (MitM)&lt;/strong&gt; để giải mã mọi thứ trơn tru.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lỗ hổng thực thi (Implementation Bugs):&lt;/strong&gt; Lỗi không nằm ở lý thuyết TLS mà nằm ở người code thư viện — điển hình là vụ &lt;strong&gt;Heartbleed&lt;/strong&gt; trên OpenSSL cho phép đọc trộm bộ nhớ RAM của máy chủ.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tấn công kênh kề (Side-channel):&lt;/strong&gt; Hacker không thèm bẻ khóa, chúng chỉ ngồi đếm kích thước gói tin và thời gian phản hồi để đoán người dùng đang xem trang web gì.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Như vậy, đi qua Tầng 6, dữ liệu của chúng ta đã được đóng gói định dạng và khoác lên mình lớp áo giáp mã hóa bất khả xâm phạm. Giờ đây, &amp;ldquo;thùng hàng&amp;rdquo; này đã sẵn sàng để được giao cho Tầng cuối cùng: Tầng 7 (Application). Ở bài viết tiếp theo — Bài 7, chúng ta sẽ khám phá thế giới của Tầng Ứng dụng, nơi diễn ra các cuộc tấn công dữ dội nhất nhắm vào các giao thức DNS ngây thơ, quá trình xin cấp IP của DHCP và sự nguy hiểm của FTP truyền thống. Đừng bỏ lỡ nhé!&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Lớp 5 (Session) &amp; Ranh giới của Phiên làm việc</title><link>/post/session-layer/</link><pubDate>Thu, 21 May 2026 22:30:00 +0700</pubDate><guid>/post/session-layer/</guid><description>&lt;p&gt;Chào mừng các bạn tiếp tục với Series Giải phẫu Mạng &amp;amp; Packet Analysis! Sau khi đã thiết lập xong &amp;ldquo;đường ống&amp;rdquo; vật lý vững chắc bằng giao thức TCP ở Tầng 4, hệ thống phải đối mặt với một bài toán mới: Làm sao để &amp;ldquo;nhớ mặt&amp;rdquo; người dùng mà không bắt họ phải đăng nhập lại sau mỗi cú click chuột? Đó chính là nhiệm vụ của Tầng 5 (Session Layer) — nơi ranh giới của các phiên làm việc được thiết lập và cũng là nơi hacker tung ra những đòn cướp quyền vô cùng hiểm độc.&lt;/p&gt;
&lt;h2 id="1-tầng-5-session-và-sự-cần-thiết-của-phiên-làm-việc"&gt;1. Tầng 5 (Session) và Sự cần thiết của Phiên làm việc
&lt;/h2&gt;&lt;p&gt;Khi bạn mở trình duyệt web và thực hiện nhiều yêu cầu cùng lúc (như mở nhiều tab, tải nhiều ảnh), dữ liệu có nguy cơ bị lẫn lộn vào nhau. Tầng 5 (Lớp Phiên) sinh ra để giải quyết vấn đề này bằng cách thiết lập, quản lý và kết thúc các phiên kết nối. Nó đóng vai trò tạo ra một ranh giới độc nhất cho từng cuộc liên lạc.&lt;/p&gt;
&lt;p&gt;Ở mức độ truyền tải, Tầng 5 quản lý &amp;ldquo;luồng&amp;rdquo; nói chuyện thông qua 3 chế độ:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Đơn công (Simplex):&lt;/strong&gt; Dữ liệu chỉ đi một chiều (như bạn nghe radio).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bán song công (Half-duplex):&lt;/strong&gt; Hai bên nói chuyện luân phiên (như bộ đàm — người này nói xong người kia mới được nói).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Song công toàn phần (Full-duplex):&lt;/strong&gt; Cả hai cùng nói và nghe cùng lúc (như gọi điện thoại di động).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Tuy nhiên, bài toán lớn nhất ở đây là &lt;strong&gt;hiệu năng&lt;/strong&gt;. Việc bắt tay (Handshake) ở Tầng 4 (TCP) và Tầng 6 (TLS) cực kỳ tốn thời gian và làm &amp;ldquo;mệt&amp;rdquo; CPU của máy chủ. Để tối ưu hóa, Tầng 5 không bắt hai thiết bị phải chào hỏi lại từ đầu cho mỗi gói tin, mà sử dụng các cơ chế định danh đặc biệt.&lt;/p&gt;
&lt;h2 id="2-giải-phẫu-session-id-và-session-ticket-trên-wireshark"&gt;2. Giải phẫu Session ID và Session Ticket trên Wireshark
&lt;/h2&gt;&lt;p&gt;Để duy trì trạng thái kết nối, Tầng 5 sử dụng hai công cụ chính là &lt;strong&gt;Session ID&lt;/strong&gt; và &lt;strong&gt;Session Ticket&lt;/strong&gt;. Bằng cách dùng Wireshark, chúng ta có thể dễ dàng bắt được những &amp;ldquo;tấm vé&amp;rdquo; này bay trên không gian mạng.&lt;/p&gt;
&lt;h3 id="21-định-danh-cuộc-trò-chuyện-bằng-session-id"&gt;2.1 Định danh cuộc trò chuyện bằng Session ID
&lt;/h3&gt;&lt;p&gt;Sau lần bắt tay đầu tiên thành công, máy chủ sẽ cấp cho bạn một &amp;ldquo;mã số định danh&amp;rdquo; gọi là &lt;strong&gt;Session ID&lt;/strong&gt;. Khi máy bạn gửi hàng nghìn khung dữ liệu tiếp theo, nó chỉ cần đính kèm ID này. Server nhìn vào ID sẽ biết ngay: &amp;ldquo;Đây là khách quen, đã kiểm tra an ninh xong rồi, cho dữ liệu đi thẳng lên Tầng 6 để xử lý!&amp;rdquo;.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# Lọc gói tin Server Hello để tìm Session ID do máy chủ cấp phát
# Cú pháp bộ lọc trên Wireshark: tls.handshake.type == 2

Handshake Protocol: Server Hello
 Handshake Type: Server Hello (2)
 Length: 118
 Version: TLS 1.2 (0x0303)
 Random: dc3aa089a0c8825e54cc0106c17a0cb90305776b2d49f405fe30dc0f2bfad484
 Session ID Length: 32
 Session ID: d451a3116057f79488abdba0e27371ef79b25a156fcd8afaf011b9aa5bdb900b
 Cipher Suite: TLS_AES_128_GCM_SHA256 (0x1301)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="Giá trị của handshake" class="gallery-image" data-flex-basis="687px" data-flex-grow="286" height="222" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/session-layer/handshake.png" width="636"&gt;&lt;/p&gt;
&lt;p&gt;Cái dãy số Hex dài đó (d451a311&amp;hellip;) dùng để:
Định danh cuộc trò chuyện: Khi máy Lenovo của bạn gửi hàng nghìn Frame dữ liệu tiếp theo (như các gói DATA của HTTP/2), nó không cần phải gửi lại toàn bộ thông tin chào hỏi. Nó chỉ cần gắn cái ID này vào (hoặc dùng trạng thái đã thiết lập từ ID này).
Nhận diện người quen: Server nhìn vào ID này sẽ biết: &amp;ldquo;À, đây là gói tin tiếp theo của ông bạn ở IP 192.168.1.156, đã kiểm tra xong xuôi rồi, cho dữ liệu đi thẳng lên Tầng 6 để dịch luôn!&amp;rdquo;.&lt;/p&gt;
&lt;h3 id="22-vé-phục-hồi-nhanh-session-ticket"&gt;2.2 Vé phục hồi nhanh (Session Ticket)
&lt;/h3&gt;&lt;p&gt;Để đẩy nhanh tốc độ kết nối lại (0-RTT), máy chủ cung cấp một &lt;strong&gt;Session Ticket&lt;/strong&gt;. Đây thực chất là một cái &amp;ldquo;vé&amp;rdquo; lưu trữ trạng thái bảo mật của phiên trước đó. Thay vì phải tính toán lại các thuật toán mã hóa nặng nề, máy khách chỉ cần trình chiếc vé này ra để nối lại phiên làm việc ngay lập tức.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# Lọc gói tin New Session Ticket để xem vé bảo mật được mã hóa
# Cú pháp bộ lọc trên Wireshark: tls.handshake.type == 4

TLSv1.3 Record Layer: Handshake Protocol: New Session Ticket
 Content Type: Application Data (23)
 Version: TLS 1.2 (0x0303)
 Handshake Protocol: New Session Ticket
 Handshake Type: New Session Ticket (4)
 Length: 53
 TLS Session Ticket
 Session Ticket Lifetime Hint: 600 seconds (10 minutes)
 Session Ticket Age Add: 3185912667
 Session Ticket Nonce Length: 8
 Session Ticket: af23cc7378d7440f6a6447726da2062b7d2198d9b8c7aaad6a71213fba0cbb97
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img alt="Session-ticket" class="gallery-image" data-flex-basis="687px" data-flex-grow="286" height="222" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/session-layer/handshake.png" width="636"&gt;&lt;/p&gt;
&lt;h2 id="3-các-đòn-tấn-công-tử-huyệt-nhắm-vào-phiên-làm-việc"&gt;3. Các đòn tấn công tử huyệt nhắm vào Phiên làm việc
&lt;/h2&gt;&lt;p&gt;Hacker hiểu rất rõ giá trị của những mã Session ID này. Vì Server hoàn toàn tin tưởng vào cái vé, nên &lt;strong&gt;kẻ nào cầm vé, kẻ đó có quyền&lt;/strong&gt;. Dưới đây là 3 đòn tấn công kinh điển ở Tầng 5.&lt;/p&gt;
&lt;h3 id="31-cướp-phiên-session-hijacking"&gt;3.1 Cướp Phiên (Session Hijacking)
&lt;/h3&gt;&lt;p&gt;Đây là đòn đánh trực diện nhất. Kẻ địch hoàn toàn &lt;strong&gt;không cần biết mật khẩu&lt;/strong&gt; của bạn.&lt;/p&gt;
&lt;p&gt;Chúng chỉ cần &amp;ldquo;đánh cắp&amp;rdquo; được Session ID đang nằm trong Cookie hoặc bộ nhớ đệm trình duyệt thông qua các kỹ thuật như &lt;strong&gt;Sniffing&lt;/strong&gt; (nghe lén mạng Wi-Fi không an toàn) hoặc tấn công &lt;strong&gt;Cross-Site Scripting (XSS)&lt;/strong&gt;. Khi có được ID này, chúng dùng nó để gửi gói tin lên Server. Server sẽ lầm tưởng hacker chính là bạn và cho phép truy cập thẳng vào tài khoản.&lt;/p&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Cảnh báo SOC:&lt;/strong&gt; Để chống lại Session Hijacking, hệ thống mạng bắt buộc phải mã hóa toàn bộ dữ liệu truyền tải bằng &lt;strong&gt;HTTPS/TLS&lt;/strong&gt; và các Cookie phải được gắn cờ &lt;code&gt;Secure&lt;/code&gt; cùng &lt;code&gt;HttpOnly&lt;/code&gt; để ngăn mã độc JavaScript trích xuất Session ID.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h3 id="32-tấn-công-phản-hồi-replay-attack"&gt;3.2 Tấn công Phản hồi (Replay Attack)
&lt;/h3&gt;&lt;p&gt;Lỗ hổng này đánh thẳng vào cơ chế &amp;ldquo;vé phục hồi nhanh&amp;rdquo; (&lt;strong&gt;New Session Ticket / 0-RTT&lt;/strong&gt;) mà chúng ta vừa soi trên Wireshark.&lt;/p&gt;
&lt;p&gt;Vì cái vé này được thiết kế để kết nối nhanh mà không cần bắt tay lại, hacker có thể can thiệp ở giữa mạng (&lt;strong&gt;MitM&lt;/strong&gt;), bắt lấy bản sao gói tin chứa Ticket của bạn và gửi lại cho Server nhiều lần. Nếu hệ thống ứng dụng không có cơ chế chống trùng lặp (ví dụ: dùng &lt;code&gt;timestamp&lt;/code&gt; hoặc &lt;code&gt;nonce&lt;/code&gt;), hacker có thể ép Server thực hiện lại một giao dịch nhạy cảm (như chuyển tiền) nhiều lần chỉ bằng cách &amp;ldquo;phát lại&amp;rdquo; cái vé cũ đó.&lt;/p&gt;
&lt;h3 id="33-cố-định-phiên-session-fixation"&gt;3.3 Cố định Phiên (Session Fixation)
&lt;/h3&gt;&lt;p&gt;Ngược lại với việc đi ăn cắp, trong kỹ thuật này hacker lại chủ động &lt;strong&gt;&amp;ldquo;tặng&amp;rdquo;&lt;/strong&gt; cho bạn một cái ID.&lt;/p&gt;
&lt;p&gt;Kẻ tấn công sẽ tạo ra một Session ID hợp lệ từ trước, sau đó lừa bạn click vào một đường link chứa sẵn ID đó để đăng nhập. Sau khi bạn đăng nhập thành công, hệ thống vô tình &amp;ldquo;đóng dấu xác thực&amp;rdquo; cho cái ID do hacker cung cấp. Lúc này, hacker chỉ cần ung dung nhập cái ID mà chúng đã biết trước đó vào trình duyệt — phiên làm việc lúc này trở thành &amp;ldquo;dùng chung&amp;rdquo; giữa bạn và hacker.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Việc thấu hiểu Tầng 5 giúp SOC Analyst nhận ra rằng: Không phải cứ đăng nhập xong là an toàn tuyệt đối, bởi nếu kẻ gian cướp được &amp;ldquo;tấm vé&amp;rdquo; Session, chúng nghiễm nhiên trở thành người chủ hợp pháp. Tuy nhiên, cái vé đó và toàn bộ dữ liệu ứng dụng thực chất được xáo trộn như thế nào để không ai đọc lén được trên mạng? Trong Bài 6 tiếp theo, chúng ta sẽ bước lên Tầng 6 (Presentation) để bóc tách lớp vỏ mã hóa SSL/TLS, giải phẫu thuật toán CHACHA20 và tìm hiểu lỗ hổng POODLE khét tiếng. Hãy cùng chờ đón nhé!&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Bắt bệnh Mạng bằng Wireshark &amp; Tấn công DDoS</title><link>/post/wireshark-ddos/</link><pubDate>Thu, 21 May 2026 22:00:00 +0700</pubDate><guid>/post/wireshark-ddos/</guid><description>&lt;p&gt;Chào mừng các bạn tiếp tục với Series Giải phẫu Mạng &amp;amp; Packet Analysis! Ở bài trước, chúng ta đã hiểu được &amp;ldquo;trái tim&amp;rdquo; TCP và nghệ thuật bắt tay 3 bước ở Tầng 4. Hôm nay, chúng ta sẽ thực sự ứng dụng Wireshark để &amp;ldquo;bắt bệnh&amp;rdquo; các lỗi đường truyền kinh điển, đồng thời phân tích cách hacker lợi dụng chính cơ chế của TCP/UDP để phát động các đòn tấn công từ chối dịch vụ (DDoS) tàn khốc.&lt;/p&gt;
&lt;h2 id="1-bắt-bệnh-mạng-chậm-và-rớt-gói-tin-bằng-wireshark"&gt;1. &amp;ldquo;Bắt bệnh&amp;rdquo; Mạng chậm và Rớt gói tin bằng Wireshark
&lt;/h2&gt;&lt;p&gt;Giao thức TCP được thiết kế để đảm bảo không một byte dữ liệu nào bị mất trên đường truyền. Do đó, khi mạng gặp sự cố (như đứt cáp, quá tải, nhiễu sóng), TCP sẽ &amp;ldquo;la hét&amp;rdquo; và để lại những dấu vết cực kỳ rõ ràng. Dưới góc độ SOC Analyst, bạn có thể dùng các bộ lọc sau đây trên Wireshark để chẩn đoán nguyên nhân.&lt;/p&gt;
&lt;h3 id="11-mất-gói-và-gửi-lại-retransmission"&gt;1.1 Mất gói và Gửi lại (Retransmission)
&lt;/h3&gt;&lt;p&gt;Khi máy gửi đã đẩy gói tin đi nhưng đợi mãi (hết thời gian &lt;strong&gt;RTO&lt;/strong&gt; - Retransmission Timeout) mà không nhận được gói &lt;code&gt;ACK&lt;/code&gt; xác nhận từ máy nhận, nó bắt buộc phải gửi lại gói tin đó.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cú pháp lọc:&lt;/strong&gt; &lt;code&gt;tcp.analysis.retransmission&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dấu hiệu:&lt;/strong&gt; Wireshark sẽ tô màu đen chữ đỏ rực rỡ cho các dòng này. Nếu bộ lọc này trả về hàng ngàn kết quả, đường truyền vật lý đang cực kỳ bất ổn và hệ thống đang lãng phí băng thông để gửi lại dữ liệu cũ, làm tốc độ mạng chậm đi rõ rệt.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="Gói tin mà máy tính gửi đi để yêu cầu kết nối tcp" class="gallery-image" data-flex-basis="440px" data-flex-grow="183" height="523" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/wireshark-ddos/guilai.png" srcset="/post/wireshark-ddos/guilai_hu_7d35ece5750a65db.png 800w, /post/wireshark-ddos/guilai.png 960w" width="960"&gt;&lt;/p&gt;
&lt;h3 id="12-thiếu-mảnh-dữ-liệu-duplicate-ack"&gt;1.2 Thiếu mảnh dữ liệu (Duplicate ACK)
&lt;/h3&gt;&lt;p&gt;Đây là cảnh tượng máy nhận đang &amp;ldquo;gào thét&amp;rdquo; đòi một mảnh dữ liệu bị mất ở giữa luồng truyền.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cú pháp lọc:&lt;/strong&gt; &lt;code&gt;tcp.analysis.duplicate_ack&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dấu hiệu:&lt;/strong&gt; Bạn sẽ thấy máy nhận gửi liên tiếp các gói &lt;code&gt;ACK&lt;/code&gt; có cùng một số hiệu xác nhận (ví dụ: 3-4 gói đều mang &lt;code&gt;Ack=4680&lt;/code&gt;). Điều này có nghĩa là: &amp;ldquo;Tôi đã nhận được các gói 4681, 4682 rồi, nhưng cái gói 4680 vẫn chưa tới, hãy gửi lại ngay!&amp;rdquo;. Khi nhận được 3 gói Dup ACK liên tiếp, máy gửi sẽ kích hoạt cơ chế &lt;strong&gt;Fast Retransmit&lt;/strong&gt; để gửi bù ngay lập tức.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="Gói tin mà máy tính gửi đi để yêu cầu gói tin bị mất" class="gallery-image" data-flex-basis="472px" data-flex-grow="196" height="530" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/wireshark-ddos/dump.png" srcset="/post/wireshark-ddos/dump_hu_720e120416c0c0fb.png 800w, /post/wireshark-ddos/dump.png 1043w" width="1043"&gt;&lt;/p&gt;
&lt;h3 id="13-hệ-thống-bị-ngộp-zero-window"&gt;1.3 Hệ thống bị ngộp (Zero Window)
&lt;/h3&gt;&lt;p&gt;Sự cố này không do đường truyền, mà do năng lực xử lý của máy tính (hoặc Server) đã chạm đáy.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cú pháp lọc:&lt;/strong&gt; &lt;code&gt;tcp.analysis.zero_window&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dấu hiệu:&lt;/strong&gt; Máy nhận sẽ ném ra một gói tin với tham số &lt;code&gt;Win=0&lt;/code&gt;. Đây là cơ chế &lt;strong&gt;Kiểm soát luồng&lt;/strong&gt; (Flow Control) của TCP, mang thông điệp: &amp;ldquo;Dừng lại ngay! Bộ nhớ đệm (Buffer) của tôi đã đầy cứng rồi, không còn chỗ chứa thêm dữ liệu nào nữa đâu!&amp;rdquo;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="2-syn-flood-đòn-đánh-vào-sự-kỹ-tính-của-tcp"&gt;2. SYN Flood: Đòn đánh vào sự &amp;ldquo;Kỹ tính&amp;rdquo; của TCP
&lt;/h2&gt;&lt;p&gt;Hacker luôn biết cách biến &amp;ldquo;tính năng&amp;rdquo; thành &amp;ldquo;vũ khí&amp;rdquo;. Việc TCP yêu cầu phải Bắt tay 3 bước khắt khe vô tình tạo ra một lỗ hổng chí mạng cho các cuộc tấn công DDoS dạng &lt;strong&gt;SYN Flood&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Kịch bản tấn công diễn ra như sau:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Kẻ tấn công gửi hàng vạn gói ngỏ lời &lt;code&gt;SYN&lt;/code&gt; đến máy chủ đích.&lt;/li&gt;
&lt;li&gt;Máy chủ ngây thơ phân bổ tài nguyên bộ nhớ, tạo một &amp;ldquo;nửa kết nối&amp;rdquo; (Half-open connection) và gửi lại gói &lt;code&gt;SYN-ACK&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Máy chủ chờ đợi gói &lt;code&gt;ACK&lt;/code&gt; cuối cùng để hoàn tất — nhưng kẻ tấn công tuyệt đối không bao giờ trả lời. Máy chủ cứ thế chờ đợi cho đến khi cạn kiệt tài nguyên (CPU, RAM) và bị treo cứng, từ chối phục vụ người dùng hợp lệ.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Đây là output Wireshark ghi lại khi kẻ tấn công &lt;code&gt;10.10.53.248&lt;/code&gt; liên tục bắn gói &lt;code&gt;SYN&lt;/code&gt; vào Server &lt;code&gt;192.168.1.10&lt;/code&gt;:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# Lọc để phát hiện SYN Flood: tcp.flags.syn == 1 &amp;amp;&amp;amp; tcp.flags.ack == 0
# Dấu hiệu: hàng ngàn gói SYN từ cùng một IP, không có gói ACK phản hồi

No. Time Source Destination Protocol Info
1 0.0000 10.10.53.248 -&amp;gt; 192.168.1.10 TCP 45892 -&amp;gt; 443 [SYN] Seq=0 Win=64240 Len=0
2 0.0001 10.10.53.248 -&amp;gt; 192.168.1.10 TCP 45893 -&amp;gt; 443 [SYN] Seq=0 Win=64240 Len=0
3 0.0002 10.10.53.248 -&amp;gt; 192.168.1.10 TCP 45894 -&amp;gt; 443 [SYN] Seq=0 Win=64240 Len=0
4 0.0003 10.10.53.248 -&amp;gt; 192.168.1.10 TCP 45895 -&amp;gt; 443 [SYN] Seq=0 Win=64240 Len=0
[...]
&lt;/code&gt;&lt;/pre&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Cảnh báo SOC:&lt;/strong&gt; Kẻ tấn công thường sử dụng địa chỉ IP nguồn giả mạo (&lt;strong&gt;Spoofed IP&lt;/strong&gt;) trong các cuộc tấn công SYN Flood. Do đó, việc dùng Firewall để chặn IP nguồn đơn lẻ là &lt;strong&gt;không hiệu quả&lt;/strong&gt;. SOC cần cấu hình các cơ chế phòng thủ chuyên sâu như &lt;strong&gt;SYN Cookies&lt;/strong&gt; trên Tường lửa/Load Balancer.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="3-udp-flood-đòn-đánh-lấy-thịt-đè-người"&gt;3. UDP Flood: Đòn đánh &amp;ldquo;Lấy thịt đè người&amp;rdquo;
&lt;/h2&gt;&lt;p&gt;Trái ngược với sự kỹ tính của TCP, giao thức UDP lại đại diện cho sự &amp;ldquo;tự do&amp;rdquo;: Không bắt tay, không cần số thứ tự, cứ có dữ liệu là ném đi. Giao thức này thường dùng cho Game hoặc Livestream, nhưng cũng là công cụ tàn phá ưa thích của Hacker.&lt;/p&gt;
&lt;p&gt;Trong tấn công &lt;strong&gt;UDP Flood&lt;/strong&gt;, hacker không cần lừa máy chủ bắt tay. Chúng chỉ đơn giản là huy động một mạng lưới máy tính ma (Botnet) để bắn hàng triệu gói tin UDP rác vào các cổng ngẫu nhiên trên Server.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Hậu quả:&lt;/strong&gt; Khi Server nhận được gói tin UDP ở một cổng, nó bắt buộc phải dùng CPU để kiểm tra xem có ứng dụng nào đang chờ ở cổng đó không. Khi phát hiện không có, nó phải tốn thêm công sức để tạo và gửi lại một gói lỗi &lt;code&gt;ICMP Destination Unreachable (Port Unreachable)&lt;/code&gt;. Khi phải xử lý hàng triệu thao tác vô bổ này trong một giây, máy chủ sẽ sụp đổ hoàn toàn vì quá tải.&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-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Lệnh minh họa tấn công UDP Flood bằng hping3&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# CHỈ thực hiện trong môi trường Lab, tuyệt đối KHÔNG dùng trên hệ thống thật&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;# -2: chế độ UDP | --flood: xả gói liên tục | --rand-source: IP nguồn ngẫu nhiên&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo hping3 -2 --flood --rand-source 192.168.1.10
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Cảnh báo:&lt;/strong&gt; Lệnh trên có thể gây tê liệt hệ thống mục tiêu. Chỉ sử dụng trong môi trường thực hành (Lab) hoàn toàn cô lập, không kết nối Internet.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Qua bài viết này, chúng ta đã biết cách dùng Wireshark để đọc các tín hiệu &amp;ldquo;kêu cứu&amp;rdquo; của hệ thống (Retransmission, Zero Window) và hiểu rõ bản chất tàn khốc của các đòn tấn công DDoS ở Tầng 4. Sau khi đã nắm vững quá trình vận chuyển gói tin, ở Bài 5 tiếp theo, chúng ta sẽ bước lên Lớp 5 (Session Layer) để khám phá ranh giới của các phiên làm việc và kỹ thuật Cướp phiên (Session Hijacking) tinh vi của Hacker. Hẹn gặp lại các bạn!&lt;/em&gt;&lt;/p&gt;</description></item><item><title>TCP và Nghệ thuật Bắt tay 3 Bước</title><link>/post/tcp-handshake/</link><pubDate>Thu, 21 May 2026 09:00:00 +0700</pubDate><guid>/post/tcp-handshake/</guid><description>&lt;p&gt;Chào mừng các bạn tiếp tục với Series Giải phẫu Mạng &amp;amp; Packet Analysis! Ở bài trước, chúng ta đã thấy Tầng 2 và 3 chỉ biết tìm đường và &amp;ldquo;ném&amp;rdquo; gói tin đi mà không hề quan tâm đến sự sống chết của dữ liệu. Để đảm bảo thông tin không bị thất lạc hay lộn xộn trên môi trường Internet khắc nghiệt, chúng ta cần đến &amp;ldquo;trái tim&amp;rdquo; của sự ổn định: Giao thức TCP tại Tầng 4. Hôm nay, hãy cùng mổ xẻ cơ chế Bắt tay 3 bước kinh điển và cách dùng Wireshark để phát hiện các đòn tấn công mạng nguy hiểm.&lt;/p&gt;
&lt;h2 id="1-tầng-4-transport-và-sứ-mệnh-của-tcp"&gt;1. Tầng 4 (Transport) và Sứ mệnh của TCP
&lt;/h2&gt;&lt;p&gt;Nhiệm vụ cốt lõi của Tầng 4 (Giao vận) là kiểm soát toàn bộ quá trình truyền tải dữ liệu. Khi nhận dữ liệu từ các tầng trên, Tầng 4 sẽ thực hiện &lt;strong&gt;phân đoạn&lt;/strong&gt; (Segmentation) để chia nhỏ dữ liệu cho vừa với đường truyền, &lt;strong&gt;đánh số thứ tự&lt;/strong&gt; (Sequencing) và dùng số &lt;strong&gt;Cổng&lt;/strong&gt; (Port) để định tuyến đến đúng ứng dụng.&lt;/p&gt;
&lt;p&gt;Tại đây, hai giao thức thống trị là &lt;strong&gt;TCP&lt;/strong&gt; (Transmission Control Protocol) và &lt;strong&gt;UDP&lt;/strong&gt; (User Datagram Protocol). Việc lựa chọn giao thức nào hoàn toàn phụ thuộc vào ứng dụng ở Tầng 7. Hệ điều hành sẽ dán một cái nhãn vào IP Header ở Tầng 3 (ví dụ nhãn số &lt;code&gt;6&lt;/code&gt; cho TCP, &lt;code&gt;17&lt;/code&gt; cho UDP) để Tầng 4 biết phải lôi &amp;ldquo;bộ máy&amp;rdquo; nào ra xử lý.&lt;/p&gt;
&lt;p&gt;Trong khi UDP đề cao tốc độ bằng cách &amp;ldquo;cứ có là gửi, mất thì thôi&amp;rdquo;, thì TCP lại là biểu tượng của sự tin cậy. TCP đảm bảo mọi gói tin đều đến đúng nơi, đúng thứ tự, và nếu có bất kỳ dữ liệu nào bị mất, nó sẽ bắt buộc gửi lại (&lt;strong&gt;Retransmission&lt;/strong&gt;).&lt;/p&gt;
&lt;h2 id="2-nghệ-thuật-bắt-tay-3-bước-3-way-handshake"&gt;2. Nghệ thuật Bắt tay 3 Bước (3-Way Handshake)
&lt;/h2&gt;&lt;p&gt;Trước khi truyền đi dù chỉ một byte dữ liệu ứng dụng, TCP yêu cầu hai thiết bị phải thiết lập một kết nối vững chắc thông qua quá trình &lt;strong&gt;Bắt tay 3 bước&lt;/strong&gt;. Quá trình này diễn ra như sau:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Bước 1 — Gói SYN:&lt;/strong&gt; Máy Client gửi một gói tin mang cờ &lt;code&gt;SYN&lt;/code&gt; (Synchronize) với số thứ tự Sequence ban đầu để ngỏ lời kết nối. Gói này cũng khai báo &lt;code&gt;Window Size&lt;/code&gt;, báo cho Server biết: &amp;ldquo;Tôi có thể nhận tối đa 64,240 bytes dữ liệu một lúc đấy nhé&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bước 2 — Gói SYN-ACK:&lt;/strong&gt; Server đồng ý và đáp lại bằng gói &lt;code&gt;SYN, ACK&lt;/code&gt;. Cờ &lt;code&gt;ACK&lt;/code&gt; được bật để Server thông báo: &amp;ldquo;Tôi đã nhận được gói 0 của ông, tôi đang đợi gói 1 đây&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bước 3 — Gói ACK:&lt;/strong&gt; Client gửi lại gói &lt;code&gt;ACK&lt;/code&gt; cuối cùng để chốt hạ. Từ lúc này, &amp;ldquo;đường ống&amp;rdquo; đã thông suốt.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="TCP handshake" class="gallery-image" data-flex-basis="326px" data-flex-grow="136" height="501" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/tcp-handshake/image.png" width="682"&gt;&lt;/p&gt;
&lt;p&gt;Dưới đây là output Wireshark bắt được khi Client &lt;code&gt;192.168.1.114&lt;/code&gt; kết nối đến Server &lt;code&gt;72.34.249.208&lt;/code&gt; qua cổng HTTPS (443):&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;# Lọc theo địa chỉ IP của Client và Server:
# Mẫu luồng gói tin trong Wireshark

No. Time Source Destination Protocol Info
1 0.000000 192.168.1.114 -&amp;gt; 72.34.249.208 TCP 47682 -&amp;gt; 443 [SYN] Seq=0 Win=64240 Len=0 MSS=1460
2 0.474661 72.34.249.208 -&amp;gt; 192.168.1.114 TCP 443 -&amp;gt; 47682 [SYN, ACK] Seq=0 Ack=1 Win=64512 Len=0
3 0.474780 192.168.1.114 -&amp;gt; 72.34.249.208 TCP 47682 -&amp;gt; 443 [ACK] Seq=1 Ack=1 Win=64512 Len=0
4 0.476483 192.168.1.114 -&amp;gt; 72.34.249.208 TLSv1.3 Client Hello (SNI=apex.go.sonobi.com)
&lt;/code&gt;&lt;/pre&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Ghi chú:&lt;/strong&gt; Gói số 4 cho thấy ngay sau khi bắt tay 3 bước hoàn tất, Client lập tức gửi &lt;code&gt;Client Hello&lt;/code&gt; của TLS để khởi động mã hóa. Đây là quy trình chuẩn của HTTPS.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="3-cơ-chế-đảm-bảo-toàn-vẹn-sequence--acknowledgment"&gt;3. Cơ chế Đảm bảo Toàn vẹn (Sequence &amp;amp; Acknowledgment)
&lt;/h2&gt;&lt;p&gt;Làm sao TCP biết một gói tin đã đến đích an toàn? Bí quyết nằm ở cách nó sử dụng hai con số: &lt;strong&gt;Sequence Number&lt;/strong&gt; (Số thứ tự) và &lt;strong&gt;Acknowledgment Number&lt;/strong&gt; (Số xác nhận).&lt;/p&gt;
&lt;p&gt;Khi gửi dữ liệu, Tầng 4 sẽ tính toán dựa trên số lượng byte. Nếu gói tin thứ nhất mang 500 byte dữ liệu và có &lt;code&gt;Seq=1&lt;/code&gt;, thì gói tin thứ hai sẽ được đánh số &lt;code&gt;Seq=501&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Khi máy đích nhận được gói thứ nhất, nó sẽ phản hồi bằng một gói có &lt;code&gt;Ack=501&lt;/code&gt;, mang hàm ý: &amp;ldquo;Tôi đã nhận đủ 500 byte, hãy gửi tiếp cho tôi dữ liệu từ byte 501 trở đi&amp;rdquo;. Nếu Server không gửi Acknowledgment phản hồi sau một khoảng thời gian chờ, máy gửi sẽ tự động thực hiện gửi lại gói tin đó (&lt;strong&gt;Fast Retransmit&lt;/strong&gt; hoặc &lt;strong&gt;RTO&lt;/strong&gt;).&lt;/p&gt;
&lt;h2 id="4-bắt-bệnh-mạng-và-cảnh-báo-soc-bằng-wireshark"&gt;4. Bắt bệnh Mạng và Cảnh báo SOC bằng Wireshark
&lt;/h2&gt;&lt;p&gt;Với cơ chế khắt khe của TCP, Wireshark cung cấp cho SOC Analyst các bộ lọc cực kỳ mạnh mẽ để &amp;ldquo;bắt bệnh&amp;rdquo; hệ thống khi mạng bị chậm hoặc gặp sự cố:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Mất gói (Retransmission):&lt;/strong&gt; Bộ lọc &lt;code&gt;tcp.analysis.retransmission&lt;/code&gt; sẽ hiển thị các dòng chữ màu đỏ cảnh báo gói tin phải gửi lại do không nhận được ACK.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Thiếu mảnh dữ liệu (Duplicate ACK):&lt;/strong&gt; Dùng bộ lọc &lt;code&gt;tcp.analysis.duplicate_ack&lt;/code&gt;. Bạn sẽ thấy máy nhận liên tục gửi các gói ACK có cùng một số hiệu để &amp;ldquo;gào thét&amp;rdquo; đòi mảnh dữ liệu bị rớt ở giữa luồng.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hệ thống bị ngộp (Zero Window):&lt;/strong&gt; Bộ lọc &lt;code&gt;tcp.analysis.zero_window&lt;/code&gt; phát hiện khi thiết bị nhận đã cạn kiệt bộ nhớ đệm. Nó sẽ ném ra gói tin này để ép máy gửi phải dừng truyền ngay lập tức (cơ chế &lt;strong&gt;Flow Control&lt;/strong&gt;).&lt;/li&gt;
&lt;/ul&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Cảnh báo SOC — Tấn Công SYN Flood:&lt;/strong&gt; Hacker rất thích lợi dụng sự &amp;ldquo;kỹ tính&amp;rdquo; trong quá trình Bắt tay 3 bước của TCP để thực hiện tấn công từ chối dịch vụ (DDoS). Bằng cách bắn hàng vạn gói &lt;code&gt;SYN&lt;/code&gt; giả mạo vào Server nhưng tuyệt đối không bao giờ trả lời bằng gói &lt;code&gt;ACK&lt;/code&gt; cuối cùng, Server sẽ bị treo cứng vì cạn kiệt tài nguyên để chờ đợi những cái &amp;ldquo;bắt tay&amp;rdquo; không bao giờ hoàn tất. Bộ lọc phát hiện nhanh: &lt;code&gt;tcp.flags.syn == 1 &amp;amp;&amp;amp; tcp.flags.ack == 0&lt;/code&gt;.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Như vậy, việc thấu hiểu nhịp đập của &amp;ldquo;Trái tim&amp;rdquo; TCP giúp chúng ta phân biệt được một sự cố mạng do đường truyền kém với một cuộc tấn công từ chối dịch vụ có chủ đích. Ở Tầng 4, chúng ta mới chỉ quản lý được các cổng (Port), nhưng để duy trì trạng thái đăng nhập liên tục của người dùng, chúng ta cần tiến lên một bậc nữa. Trong Bài 4 tiếp theo, hãy cùng khám phá Lớp 5 (Session) và các kỹ thuật cướp phiên (Session Hijacking) tinh vi của Hacker. Đừng bỏ lỡ nhé!&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Giao thức Lớp 2 &amp; 3 - Truy vết MAC, IP và MAC Spoofing</title><link>/post/giao-thuc-arp-va-mac-spoo/</link><pubDate>Wed, 20 May 2026 08:30:00 +0700</pubDate><guid>/post/giao-thuc-arp-va-mac-spoo/</guid><description>&lt;p&gt;Chào mừng các bạn quay trở lại với Series Giải phẫu Mạng (Network Anatomy) &amp;amp; Packet Analysis! Ở bài trước, chúng ta đã ngắm nhìn toàn cảnh &amp;ldquo;bản đồ kho báu&amp;rdquo; OSI và biết cách đặt một gói tin lên bàn mổ Wireshark. Hôm nay, chúng ta sẽ bắt đầu chuyến thám hiểm thực sự vào thế giới của Tầng 2 (Data Link) và Tầng 3 (Network). Đây là nơi giải quyết câu hỏi cốt lõi nhất của Internet: &amp;ldquo;Làm sao thiết bị A có thể tìm và gửi dữ liệu chính xác cho thiết bị B giữa hàng tỷ thiết bị trên toàn cầu?&amp;rdquo;&lt;/p&gt;
&lt;h2 id="1-tầng-3-network-bản-đồ-thế-giới-và-địa-chỉ-ip"&gt;1. Tầng 3 (Network): Bản đồ Thế giới và Địa chỉ IP
&lt;/h2&gt;&lt;p&gt;Nếu muốn gửi một bức thư xuyên quốc gia, bạn cần một địa chỉ nhà chính xác. Trong thế giới mạng, Tầng 3 (Network Layer) chịu trách nhiệm định tuyến đường đi tốt nhất trên môi trường Internet bằng cách sử dụng Địa chỉ IP (Internet Protocol).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tính chất:&lt;/strong&gt; Địa chỉ IP là địa chỉ logic, được điều khiển bởi phần mềm và có thể thay đổi tùy thuộc vào mạng bạn đang kết nối.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Đóng gói:&lt;/strong&gt; Dữ liệu khi đi qua Tầng 3 sẽ được dán thêm một lớp IP Header để tạo thành một Packet (Gói tin). Lớp vỏ này chứa IP Nguồn (Source IP) và IP Đích (Destination IP).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Chẩn đoán lỗi:&lt;/strong&gt; Tầng 3 còn quản lý ICMP (Internet Control Message Protocol), giao thức đứng đằng sau lệnh &lt;code&gt;ping&lt;/code&gt; quen thuộc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Đứng ở góc nhìn bảo mật, ICMP không chỉ dùng để ping mạng, mà còn là cách Tường lửa (Firewall) giao tiếp trả về thông báo. Khi Firewall chặn một kết nối bằng lệnh &lt;code&gt;REJECT&lt;/code&gt;, hệ thống sẽ trả về một gói tin ICMP với thông điệp &lt;code&gt;Destination unreachable (Host unreachable)&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="2-tầng-2-data-link-căn-cước-công-dân-và-địa-chỉ-mac"&gt;2. Tầng 2 (Data Link): Căn cước công dân và Địa chỉ MAC
&lt;/h2&gt;&lt;p&gt;Nếu Tầng 3 (IP) là địa chỉ nhà giúp gói tin bay xuyên lục địa, thì Tầng 2 (Data Link Layer) chịu trách nhiệm tìm đúng cánh cửa để gõ khi gói tin đã về đến mạng nội bộ (mạng LAN).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Đơn vị dữ liệu:&lt;/strong&gt; Tầng 2 sẽ bọc Packet của Tầng 3 lại thành một Frame (Khung).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Địa chỉ MAC:&lt;/strong&gt; Giao thức chính ở đây là Ethernet II, sử dụng Địa chỉ MAC (Media Access Control).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;MAC giống như cái &amp;ldquo;Căn cước công dân&amp;rdquo; vật lý, một mã số duy nhất gồm 48-bit, ví dụ &lt;code&gt;40:8D:5C:9B:A6:67&lt;/code&gt;, được nhà sản xuất nạp cứng vào card mạng (NIC) của bạn.&lt;/p&gt;
&lt;p&gt;Tại sao đã có IP mà vẫn cần MAC? Trong một mạng LAN, các thiết bị trung tâm như Switch không hề nhìn vào địa chỉ IP. Chúng chỉ đọc địa chỉ MAC trên Frame để biết chính xác phải đẩy xung điện dữ liệu vào cổng (Port) vật lý nào để tới đúng máy tính của bạn chứ không phải máy của anh hàng xóm.&lt;/p&gt;
&lt;h2 id="3-cầu-nối-sinh-tử-giao-thức-phân-giải-địa-chỉ-arp"&gt;3. Cầu nối sinh tử: Giao thức phân giải địa chỉ (ARP)
&lt;/h2&gt;&lt;p&gt;Đây là lúc rắc rối xảy ra: máy tính của bạn biết IP của máy đích (Tầng 3), nhưng card mạng lại bắt buộc phải có địa chỉ MAC (Tầng 2) để truyền Frame đi. Làm sao để biết được MAC của một IP lạ? Giải pháp chính là ARP (Address Resolution Protocol).&lt;/p&gt;
&lt;p&gt;Quá trình &amp;ldquo;hỏi đường&amp;rdquo; ARP diễn ra như sau, hãy tưởng tượng mạng LAN là một căn phòng đông người:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ARP Request (Hỏi):&lt;/strong&gt; Máy của bạn &amp;ldquo;hét&amp;rdquo; lên toàn mạng (Broadcast) một thông điệp: &amp;ldquo;Ai là chủ nhân của địa chỉ IP &lt;code&gt;192.168.1.1&lt;/code&gt;? Hãy cho tôi biết địa chỉ MAC của bạn!&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ARP Reply (Trả lời):&lt;/strong&gt; Chỉ duy nhất thiết bị đang giữ IP đó mới lên tiếng đáp lại (Unicast): &amp;ldquo;Là tôi đây! Địa chỉ MAC của tôi là &lt;code&gt;AA:BB:CC:DD:EE:FF&lt;/code&gt;&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ARP Cache (Ghi nhớ):&lt;/strong&gt; Sau khi nhận câu trả lời, máy của bạn sẽ lưu cặp IP - MAC này vào Bảng ARP (ARP Table) để lần sau không phải hét lên hỏi nữa.&lt;/li&gt;
&lt;/ul&gt;

 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Ghi chú:&lt;/strong&gt; Chèn ảnh chụp màn hình Wireshark bắt gói tin ARP Request (&lt;code&gt;Who has...&lt;/code&gt;) và ARP Reply (&lt;code&gt;is at...&lt;/code&gt;) tại đây.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="4-góc-nhìn-kẻ-tấn-công-thực-chiến-mac-spoofing"&gt;4. Góc nhìn Kẻ tấn công: Thực chiến MAC Spoofing
&lt;/h2&gt;&lt;p&gt;Địa chỉ MAC được nạp cứng vào phần cứng, nghe có vẻ rất an toàn đúng không? Sai lầm! Địa chỉ MAC hoàn toàn có thể bị giả mạo bằng phần mềm ở cấp độ hệ điều hành. Kỹ thuật này gọi là MAC Spoofing (Giả mạo MAC).&lt;/p&gt;
&lt;p&gt;Tại sao hacker lại làm vậy? Nhiều hệ thống an ninh mạng, như hệ thống Wi-Fi ở khách sạn, công ty hay luật Firewall tĩnh, sử dụng tính năng lọc địa chỉ MAC (MAC Filtering) để quyết định ai được phép vào mạng. Bằng cách giả mạo MAC của một thiết bị hợp lệ như máy của sếp hoặc máy in, hacker có thể đàng hoàng vượt rào.&lt;/p&gt;
&lt;p&gt;Dưới đây là cách thay đổi địa chỉ MAC trên máy Linux trong môi trường lab:&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-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Kiểm tra danh sách card mạng hiện tại&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ip link show
&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;# Tắt card mạng muốn thay đổi, ví dụ wlp8s0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo ip link set dev wlp8s0 down
&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;# Đổi địa chỉ MAC sang một MAC giả&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo ip link set dev wlp8s0 address 00:ad:be:ef:13:40
&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;# Bật lại card mạng&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo ip link set dev wlp8s0 up
&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;# Kiểm tra lại xem MAC đã được đổi thành công chưa&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ip link show wlp8s0
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
 &lt;blockquote&gt;
 &lt;p&gt;&lt;strong&gt;Cảnh báo:&lt;/strong&gt; Kỹ thuật MAC Spoofing cũng là tiền đề cho một đòn đánh nghiêm trọng hơn gọi là ARP Spoofing / ARP Poisoning (đầu độc bộ nhớ cache ARP). Kẻ tấn công sẽ liên tục gửi các gói tin ARP Reply giả mạo để lừa toàn bộ máy tính trong mạng rằng: &amp;ldquo;MAC của tôi chính là Router đây&amp;rdquo;. Từ đó, luồng truy cập Internet của nạn nhân có thể bị điều hướng qua máy của kẻ tấn công trong mô hình Man-in-the-Middle.&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Kết thúc Bài 2, chúng ta đã hiểu được &amp;ldquo;sợi dây liên kết&amp;rdquo; giữa địa chỉ logic (IP) và địa chỉ vật lý (MAC), cùng cách thức hoạt động của ARP và ICMP. Tầng 2 và 3 chỉ có nhiệm vụ tìm đường và ném gói tin đi, chúng không hề quan tâm gói tin có đến nơi an toàn hay không. Trách nhiệm nặng nề đó sẽ được giao cho Tầng 4. Ở Bài 3, chúng ta sẽ bước vào &amp;ldquo;trái tim&amp;rdquo; của sự ổn định: giải phẫu giao thức TCP, thuật toán bắt tay 3 bước và đi tìm nguyên nhân gây ra các lỗi rớt mạng kinh điển. Các bạn đừng bỏ lỡ nhé!&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Một gói tin được cấu tạo thế nào</title><link>/post/networkbasic/</link><pubDate>Wed, 20 May 2026 08:00:00 +0700</pubDate><guid>/post/networkbasic/</guid><description>&lt;p&gt;Chào mừng các bạn đến với Series Giải phẫu Mạng (Network Anatomy) &amp;amp; Packet Analysis! Nếu trong series trước, chúng ta đã trở thành những &amp;ldquo;bác sĩ pháp y&amp;rdquo; mổ xẻ nội tạng của hệ điều hành Windows, thì ở series này, chúng ta sẽ bước ra không gian bên ngoài: Hệ thống Mạng. Đối với một SOC Analyst, nếu bạn không biết cách đọc một gói tin (Packet), bạn sẽ bị mù hoàn toàn trước các cuộc tấn công nhắm vào máy chủ. Hãy cùng khởi động bằng việc tìm hiểu bộ khung xương sống của vạn vật trên Internet: Mô hình OSI và công cụ Wireshark.&lt;/p&gt;
&lt;h2 id="1-bức-tranh-toàn-cảnh-mô-hình-osi-và-tcpip"&gt;1. Bức tranh toàn cảnh: Mô hình OSI và TCP/IP
&lt;/h2&gt;&lt;p&gt;Để các thiết bị từ các nhà sản xuất khác nhau (Apple, Lenovo, Cisco&amp;hellip;) có thể nói chuyện được với nhau, Tổ chức Tiêu chuẩn hóa Quốc tế đã tạo ra một bộ quy tắc chung gọi là Mô hình OSI (Open Systems Interconnection). Nó chia quá trình mạng phức tạp thành 7 tầng riêng biệt.&lt;/p&gt;
&lt;p&gt;Từ trên xuống dưới, 7 tầng này bao gồm:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Tầng 7 - Application (Ứng dụng):&lt;/strong&gt; Nơi dữ liệu có ý nghĩa với con người (như giao thức HTTP, DNS, SSH, FTP). Hầu hết các cuộc tấn công hiện đại như SQL Injection đều nhắm vào tầng này.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tầng 6 - Presentation (Trình bày):&lt;/strong&gt; Làm nhiệm vụ thông dịch, nén và đặc biệt là Mã hóa (như SSL/TLS) để bảo mật dữ liệu.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tầng 5 - Session (Phiên):&lt;/strong&gt; Thiết lập, duy trì và quản lý phiên kết nối (Session ID) giữa 2 thiết bị.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tầng 4 - Transport (Giao vận):&lt;/strong&gt; Kiểm soát truyền tải bằng TCP (tin cậy) hoặc UDP (tốc độ). Nó chia dữ liệu thành các đoạn nhỏ và dùng số Cổng (Port) để định tuyến đến đúng ứng dụng.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tầng 3 - Network (Mạng):&lt;/strong&gt; Quản lý địa chỉ logic (IP) và tìm đường đi (Routing) tốt nhất trên môi trường Internet.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tầng 2 - Data Link (Liên kết dữ liệu):&lt;/strong&gt; Quản lý địa chỉ vật lý (MAC) để các thiết bị nói chuyện trực tiếp với nhau trong cùng một mạng LAN.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tầng 1 - Physical (Vật lý):&lt;/strong&gt; Chuyển đổi dữ liệu nhị phân (0 và 1) thành các xung điện, ánh sáng hoặc sóng vô tuyến (Wi-Fi) truyền trên dây cáp vật lý.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Trong thực tế triển khai, người ta thường gộp mô hình này lại cho gọn nhẹ thành Mô hình TCP/IP (4 Lớp): Lớp Ứng dụng (gộp tầng 5,6,7), Lớp Giao vận (tầng 4), Lớp Internet (tầng 3), và Lớp Giao diện mạng (gộp tầng 1,2).&lt;/p&gt;
&lt;p&gt;&lt;img alt="Mô hình OSI và TCP/IP" class="gallery-image" data-flex-basis="224px" data-flex-grow="93" height="304" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/networkbasic/img1.png" width="284"&gt;&lt;/p&gt;
&lt;h2 id="2-hành-trình-của-một-dữ-liệu-đóng-gói-encapsulation"&gt;2. Hành trình của một dữ liệu: Đóng gói (Encapsulation)
&lt;/h2&gt;&lt;p&gt;Khi bạn bấm nút &amp;ldquo;Gửi&amp;rdquo; một tin nhắn, dữ liệu không bay thẳng vèo sang máy bên kia. Nó phải trải qua quá trình Đóng gói (Encapsulation) - nghĩa là đi qua mỗi tầng sẽ bị bọc thêm một lớp vỏ (Header) mới.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Dữ liệu thô (Data):&lt;/strong&gt; Được sinh ra ở tầng Ứng dụng.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Segment / Datagram:&lt;/strong&gt; Xuống Tầng 4, nó được dán thêm Header của TCP hoặc UDP chứa thông tin Cổng (Port).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Packet (Gói tin):&lt;/strong&gt; Xuống Tầng 3, nó được bọc thêm IP Header chứa IP Nguồn và IP Đích.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Frame (Khung):&lt;/strong&gt; Xuống Tầng 2, nó tiếp tục được dán thêm địa chỉ MAC Nguồn và MAC Đích.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bits:&lt;/strong&gt; Cuối cùng, chiếc card mạng (NIC) biến toàn bộ Frame đó thành các tia điện hoặc sóng Wi-Fi đẩy ra ngoài (Lớp 1).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Khi đến máy nhận, quá trình ngược lại gọi là Mở gói (Decapsulation) sẽ diễn ra: Lột dần từng lớp vỏ từ dưới lên trên để lấy dữ liệu thực.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Cách biểu diễn dữ liệu trong mô hình OSI" class="gallery-image" data-flex-basis="425px" data-flex-grow="177" height="486" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/networkbasic/image.png" srcset="/post/networkbasic/image_hu_1098341a0a271d9e.png 800w, /post/networkbasic/image.png 862w" width="862"&gt;&lt;/p&gt;
&lt;h2 id="3-đặt-gói-tin-lên-bàn-mổ-wireshark"&gt;3. Đặt gói tin lên &amp;ldquo;bàn mổ&amp;rdquo; Wireshark
&lt;/h2&gt;&lt;p&gt;Wireshark chính là kính hiển vi của SOC Analyst. Nó bắt được chính xác cấu trúc đóng gói mà ta vừa học. Khi bạn click vào một gói tin bất kỳ trên Wireshark, giao diện chi tiết ở khung bên dưới sẽ phản ánh đúng thứ tự của mô hình OSI.&lt;/p&gt;
&lt;p&gt;Hãy cùng giải phẫu các thành phần cốt lõi của một gói tin:&lt;/p&gt;
&lt;h3 id="31-lớp-1-physical---mục-frame"&gt;3.1 Lớp 1 (Physical) - Mục Frame
&lt;/h3&gt;&lt;p&gt;Đây là các siêu dữ liệu vật lý mà card mạng ghi nhận được:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Frame Length:&lt;/strong&gt; Kích thước thực sự của gói tin khi chạy trên dây cáp (ví dụ: 96 bytes (768 bits)).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Arrival Time:&lt;/strong&gt; Thời gian chính xác đến từng micro giây mà gói tin chạm vào card mạng.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Interface id:&lt;/strong&gt; Tên card mạng đang bắt gói tin (ví dụ: wlp8s0 trên Linux).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Protocols in frame:&lt;/strong&gt; Wireshark tóm tắt luôn các lớp vỏ bên trong: &lt;code&gt;eth:ethertype:ip:tcp:dns&lt;/code&gt; (Gói DNS chạy trên TCP, bọc bởi IP và Ethernet).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="Wireshark hiển thị phần Frame" class="gallery-image" data-flex-basis="648px" data-flex-grow="270" height="353" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/networkbasic/frame.png" srcset="/post/networkbasic/frame_hu_8f96efe506fb5a36.png 800w, /post/networkbasic/frame.png 954w" width="954"&gt;&lt;/p&gt;
&lt;h3 id="32-lớp-2-data-link---mục-ethernet-ii"&gt;3.2 Lớp 2 (Data Link) - Mục Ethernet II
&lt;/h3&gt;&lt;p&gt;Đây là nơi địa chỉ vật lý (MAC Address) làm chủ cuộc chơi:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Source (Src) &amp;amp; Destination (Dst):&lt;/strong&gt; Địa chỉ MAC (gồm 48 bit) của máy gửi và máy nhận (thường là Router để đi ra Internet).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Type:&lt;/strong&gt; Một ID cực kỳ quan trọng báo hiệu cho card mạng biết lớp vỏ tiếp theo là gì. Nếu là IPv4 (&lt;code&gt;0x0800&lt;/code&gt;), nó sẽ chuyển lên cho giao thức IPv4 xử lý. Nếu là &lt;code&gt;0x86dd&lt;/code&gt;, đó là IPv6.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="Wireshark hiển thị phần Ethernet II" class="gallery-image" data-flex-basis="954px" data-flex-grow="397" height="242" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/networkbasic/datalink.png" srcset="/post/networkbasic/datalink_hu_4d34881798340e40.png 800w, /post/networkbasic/datalink.png 962w" width="962"&gt;&lt;/p&gt;
&lt;h3 id="33-lớp-3-network---mục-ipv4"&gt;3.3 Lớp 3 (Network) - Mục IPv4
&lt;/h3&gt;&lt;p&gt;Bóc lớp Ethernet ra, chúng ta thấy bộ định tuyến Internet:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Source Address &amp;amp; Destination Address:&lt;/strong&gt; Địa chỉ IP logic của máy gửi và máy đích.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Time to Live (TTL):&lt;/strong&gt; &amp;ldquo;Tuổi thọ&amp;rdquo; của gói tin. Mỗi khi đi qua một con Router, số này bị trừ đi 1 để tránh gói tin chạy vòng vòng mãi mãi. Nếu thấy TTL = 64, hệ thống nguồn có khả năng cao là chạy nhân Linux.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flags:&lt;/strong&gt; Các lá cờ điều khiển. Ví dụ cờ &lt;code&gt;0x2, Don't fragment&lt;/code&gt; dặn các thiết bị mạng rằng: &amp;ldquo;Tuyệt đối không xé nhỏ gói tin này ra&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Protocol:&lt;/strong&gt; Giống như Type ở Lớp 2, trường này (ví dụ: TCP (6) hoặc UDP (17)) sẽ ra lệnh cho hệ điều hành biết giao thức Tầng 4 nào sẽ phải xử lý tiếp theo.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Header Checksum:&lt;/strong&gt; Dãy mã (như &lt;code&gt;0xe861&lt;/code&gt;) dùng để đảm bảo các thông tin (IP, TTL) không bị hỏng hóc hay thay đổi bit trong quá trình truyền.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="Wireshark hiển thị phần IPv4" class="gallery-image" data-flex-basis="577px" data-flex-grow="240" height="400" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/networkbasic/ipv4.png" srcset="/post/networkbasic/ipv4_hu_176b48287d5ec3c9.png 800w, /post/networkbasic/ipv4.png 962w" width="962"&gt;&lt;/p&gt;
&lt;h3 id="34-lớp-4-transport---transmission-control-protocol-tcp"&gt;3.4 Lớp 4 (Transport) - Transmission Control Protocol (TCP)
&lt;/h3&gt;&lt;p&gt;Bên trong cùng, chúng ta sẽ thấy cổng giao tiếp và luật chơi:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Source Port &amp;amp; Destination Port:&lt;/strong&gt; Ví dụ máy bạn dùng cổng ngẫu nhiên 58610 để gõ cửa cổng HTTPS (443) của Facebook.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sequence &amp;amp; Acknowledgment:&lt;/strong&gt; Các con số giúp TCP sắp xếp lại thứ tự dữ liệu cho đúng và đảm bảo không gói tin nào bị rơi rớt.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt="Wireshark hiển thị phần TCP" class="gallery-image" data-flex-basis="507px" data-flex-grow="211" height="448" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/networkbasic/img1a.png" srcset="/post/networkbasic/img1a_hu_40751a0b06e98de5.png 800w, /post/networkbasic/img1a.png 947w" width="947"&gt;&lt;/p&gt;
&lt;h3 id="35-tầng-5-6-7-nơi-gói-tin-biến-mất-và-nhường-chỗ-cho-dữ-liệu-application-data"&gt;3.5 Tầng 5, 6, 7: Nơi &amp;ldquo;Gói tin&amp;rdquo; biến mất và nhường chỗ cho &amp;ldquo;Dữ liệu&amp;rdquo; (Application Data)
&lt;/h3&gt;&lt;p&gt;Nếu bạn tinh mắt quan sát trên Wireshark, bạn sẽ thấy sau khi đi qua lớp TCP/UDP (Tầng 4), các lớp phía trên (Tầng 5 - Session, Tầng 6 - Presentation, Tầng 7 - Application) thường không được chia thành các mục riêng biệt rõ ràng như lớp MAC hay lớp IP, mà chúng hòa quyện lại thành một mục gọi là Application Data (như DNS, HTTP, TLS)
Quá trình Wireshark &amp;ldquo;Giải mã&amp;rdquo; và hiển thị: Khi Wireshark bắt được luồng điện từ card mạng, nó thực hiện quá trình Decapsulation (Mở gói) đi ngược từ dưới lên trên. Nó bóc lớp vỏ Ethernet (Tầng 2) để lấy địa chỉ MAC, bóc tiếp lớp IP (Tầng 3) để lấy địa chỉ IP, và bóc lớp TCP (Tầng 4) để lấy số Port.
Khi bóc đến Tầng 4 xong, phần lõi còn lại được đẩy thẳng lên Tầng Ứng dụng (Layer 7). Lúc này:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Nếu là giao thức không mã hóa (như HTTP, DNS, FTP): Wireshark sẽ &amp;ldquo;đọc hiểu&amp;rdquo; và phơi bày trần trụi toàn bộ văn bản, tài khoản, mật khẩu (Clear-text) cho bạn xem.&lt;/li&gt;
&lt;li&gt;Nếu dữ liệu đã đi qua Tầng 6 (Presentation) và bị mã hóa bởi SSL/TLS: Wireshark sẽ gom lại và hiển thị dưới dạng một khối Encrypted Application Data chứa toàn các ký tự rác mà con người (và cả hacker) không thể đọc được
&lt;img alt="Wireshark hiển thị gói tin http không được mã hóa" class="gallery-image" data-flex-basis="553px" data-flex-grow="230" height="417" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="/post/networkbasic/http.png" srcset="/post/networkbasic/http_hu_f84bd66c21d2e5ef.png 800w, /post/networkbasic/http.png 962w" width="962"&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;em&gt;Như vậy, chúng ta đã nắm được &amp;ldquo;bản đồ kho báu&amp;rdquo; của mạng máy tính và biết cách sử dụng Wireshark để đọc những lớp vỏ cơ bản nhất. Bất kỳ một công cụ bảo mật nào (Firewall, IDS/IPS) cũng đều dựa trên nguyên lý đọc các lớp Header này để chặn/mở. Ở Bài 2 tiếp theo, chúng ta sẽ lặn sâu hơn vào Tầng 2 &amp;amp; 3, phân tích các giao thức kết nối nền tảng (ARP, ICMP) và trực tiếp đóng vai Hacker để thực hiện đòn tấn công mạo danh MAC (MAC Spoofing). Hẹn gặp lại các bạn!&lt;/em&gt;&lt;/p&gt;</description></item></channel></rss>