# Network Forensics

**Network Forensics** là một lĩnh vực chuyên môn phát hiện, giám sát và phân tích các vấn đề như vi phạm tội phạm hoặc chính sách thông qua lưu lượng mạng và dữ liệu nhật ký. Nó được sử dụng để xác định nguồn gốc của các cuộc tấn công mạng, DoS/DDoS, các mối đe dọa từ bên trong và các hoạt động độc hại khác.

**Nguyên tắc Cơ bản của Pháp y Mạng**

* **Thu thập Dữ liệu:** Việc giám sát liên tục lưu lượng mạng cho phép ghi lại dữ liệu để phân tích sau này. Dữ liệu này có thể thu được thông qua việc sử dụng các trình theo dõi gói tin, máy chủ nhật ký hoặc các công cụ giám sát mạng. Báo cáo phải toàn diện và khách quan, vì nó sẽ được sử dụng trong các thủ tục pháp lý.
* **Điều tra:** Dữ liệu đã ghi được phân tích để cung cấp thông tin về loại sự cố, thời gian, các hệ thống bị ảnh hưởng và thiệt hại tiềm tàng.
* **Phân tích:** Dữ liệu thu được được phân tích chi tiết. Trong quá trình phân tích này, nhiều công cụ và kỹ thuật phân tích mạng khác nhau được sử dụng.
* **Báo cáo:** Các phát hiện được biên soạn thành một báo cáo pháp y. Báo cáo phải toàn diện và khách quan, vì nó sẽ được sử dụng trong các thủ tục pháp lý.

**Các Công cụ và Kỹ thuật Pháp y Mạng**

* **Phần mềm Phân tích Gói tin:** Các công cụ như Wireshark tạo điều kiện thuận lợi cho việc phân tích chi tiết lưu lượng mạng.
* **Hệ thống SIEM:** Hệ thống quản lý thông tin và sự kiện bảo mật (SIEM) thu thập và phân tích dữ liệu nhật ký, sau đó đưa ra cảnh báo khi phát hiện các vi phạm bảo mật tiềm ẩn.
* **Anomaly Detection:** Quá trình phân tích thống kê và các mô hình máy học xác định các hành vi bất thường và sau đó cố gắng phát hiện bất kỳ mối đe dọa tiềm ẩn nào.

## 1. Network Forensics Tools

Các công cụ pháp y mạng là các công cụ phần mềm và phần cứng giúp tăng cường khả năng ứng phó và phân tích các sự cố mạng. Các công cụ này được sử dụng để giám sát lưu lượng mạng, thu thập và phân tích các gói dữ liệu, phát hiện các vi phạm bảo mật và báo cáo các hoạt động độc hại.

### **1.1. Wireshark**

Wireshark là một trình phân tích giao thức mạng cho phép chụp và kiểm tra lưu lượng mạng trong thời gian thực. Các ứng dụng của nó bao gồm khắc phục sự cố mạng, phát triển phần mềm và giao thức, và phân tích bảo mật mạng.

* **Tính năng:**
  * Có sẵn giao diện người dùng đồ họa (GUI) và các tùy chọn dòng lệnh để sử dụng.
  * Có thể hỗ trợ và hiểu hàng trăm giao thức riêng biệt.
  * Các tính năng lọc tạo điều kiện thuận lợi cho việc dễ dàng xác định các gói dữ liệu có liên quan.
* **Các trường hợp sử dụng:**
  * Điều tra các vi phạm bảo mật
  * Phân tích vấn đề hiệu suất mạng
  * Kiểm tra chuyên sâu các gói tin và luồng dữ liệu

### **1.2. TCPdump**

TCPdump là một công cụ dựa trên dòng lệnh được sử dụng để chụp các gói mạng. Nó có khả năng chụp các gói tin và in chúng ra màn hình theo các tiêu chí do người dùng chỉ định.

* **Tính năng:**
  * Được sử dụng rộng rãi trên các hệ thống Linux và Unix.
  * Nó có nhiều tùy chọn lọc và chụp gói tin.
  * Cung cấp dữ liệu cơ bản để phân tích bảo mật mạng.
* **Các trường hợp sử dụng:**
  * Phân tích lưu lượng mạng cấp thấp
  * Điều tra hành vi giao thức
  * Kiểm tra bảo mật và kiểm tra xâm nhập

### 1.3. Snort

Snort là một công cụ IDS (hệ thống phát hiện xâm nhập) và IPS (hệ thống phòng chống xâm nhập) giám sát lưu lượng mạng và cảnh báo người dùng về các mối đe dọa bảo mật bằng cách phân tích các gói tin.

* **Tính năng:**
  * Phân tích lưu lượng thời gian thực và chụp gói tin
  * Nhận biết các chữ ký mối đe dọa khác nhau
  * Bộ quy tắc lớn và có khả năng tùy biến cao
* **Các trường hợp sử dụng:**
  * Phát hiện và ngăn chặn các cuộc tấn công trên mạng
  * Triển khai các chính sách bảo mật.
  * Phân tích luồng lưu lượng và quản lý mối đe dọa

### **1.4. NetworkMiner**

NetworkMiner là một công cụ thụ động được sử dụng để phân tích pháp y mạng, chụp và phân tích lưu lượng mạng và có thể tiết lộ các tệp, thông tin phiên và tên người dùng.

* **Tính năng:**
  * Có thể trích xuất thông tin như tệp và phiên.
  * Cung cấp giao diện trực quan và dễ sử dụng.
  * Có thể phát hiện các hoạt động đáng ngờ trong lưu lượng mạng.
* **Các trường hợp sử dụng:**
  * Thu thập thông tin về các thiết bị và người dùng trên mạng đang được điều tra
  * Phân tích phần mềm độc hại và giám sát các thông báo phần mềm độc hại

## 2. Capturing Network Traffic

Thu thập lưu lượng mạng là một quy trình quan trọng để hiểu cách các gói dữ liệu di chuyển qua mạng, xác định các vấn đề về hiệu suất và điều tra các vi phạm bảo mật. Quy trình này bao gồm việc thu thập các bản sao của dữ liệu thô đang được truyền giữa các thiết bị trên mạng.

Các công cụ như Wireshark và TCPdump có thể thu thập các gói tin khi các gói tin này đi qua mạng. Các công cụ này giúp phân tích lưu lượng mạng bằng cách lọc các gói tin và hiển thị chi tiết các tiêu đề gói tin.

Một trong những công cụ nói trên phải được sử dụng để thu thập lưu lượng mạng trên một hệ thống nơi thực hiện pháp y mạng. Giả sử pháp y mạng được thực hiện trên toàn bộ mạng chứ không phải trên một hệ thống duy nhất. Trong trường hợp đó, lưu lượng phải được chuyển đến môi trường cần thu thập bằng phương pháp cổng SPAN (ánh xạ cổng) để thu thập lưu lượng của mạng liên quan.

Có 2 vấn đề cần xem xét trong giai đoạn Thu thập Gói tin. Đó là:

* **Lọc:** Sử dụng các quy tắc lọc thích hợp để loại bỏ lưu lượng không liên quan giúp tiết kiệm không gian lưu trữ và đơn giản hóa quá trình phân tích.
* **Gắn Dấu Thời Gian:** Dấu thời gian của mỗi gói tin được thu thập giúp phân tích các sự kiện theo thứ tự thời gian.

### 2.1. Capturing Live Network Data

Nó đề cập đến việc thu thập theo thời gian thực các gói dữ liệu đang lưu thông qua mạng. Dữ liệu được thu thập có thể bao gồm nội dung của các gói tin, tiêu đề, địa chỉ nguồn và đích, thông tin giao thức và dấu thời gian.

#### Capturing Network Traffic with Wireshark

Wireshark là một trong những công cụ được sử dụng rộng rãi nhất để thu thập lưu lượng mạng theo thời gian thực. Giao diện đồ họa dễ sử dụng của nó cho phép những người dùng không chuyên về kỹ thuật dễ dàng giám sát và phân tích lưu lượng mạng.

Các bước để thực hiện thu thập mạng bằng Wireshark như sau:

**Để cài đặt Wireshark trên Ubuntu:**

```bash
sudo apt install wireshark
```

Sau khi khởi chạy Wireshark, hãy chọn giao diện mạng và bắt đầu thu thập lưu lượng bằng cách chỉ định bộ lọc thu thập.

Vì "filter syntax - cú pháp bộ lọc" được sử dụng trong hai loại bộ lọc này là khác nhau, nên cần chú ý đến các loại bộ lọc.

* **Bộ Lọc Thu Thập (Capture Filter):** Đề cập đến việc lọc lưu lượng đã thu thập. Capture Filter sử dụng cú pháp Berkeley Packet Filter (BPF). BPF thường có cú pháp đơn giản và hạn chế hơn.
  * **Dưới đây là một số ví dụ về capture filters:**
    * Lọc theo Địa Chỉ IP: <mark style="color:red;">`host 192.168.1.1`</mark>
    * Lọc theo Số Cổng: <mark style="color:red;">`port 80`</mark>
    * Lọc theo Giao Thức: <mark style="color:red;">`tcp`</mark>
    * Bộ Lọc Kết Hợp: <mark style="color:red;">`src host 192.168.1.1 and dst port 80`</mark>
* **Bộ Lọc Hiển Thị (Display Filter):** Là việc lọc hiển thị các gói tin trong lưu lượng đã thu thập. Lọc hiển thị sử dụng cú pháp nâng cao và phong phú hơn nhiều của Wireshark. Nhiều thao tác lọc và tìm kiếm phức tạp hơn có thể được thực hiện bằng cú pháp này.
  * **Dưới đây là một số ví dụ về bộ lọc hiển thị:**
    * Lọc theo Địa Chỉ IP: <mark style="color:red;">`ip.addr == 192.168.1.1`</mark>
    * Lọc theo Số Cổng: <mark style="color:red;">`tcp.port == 80`</mark>
    * Lọc theo Giao Thức: <mark style="color:red;">`tcp`</mark>
    * Bộ Lọc Kết Hợp: <mark style="color:red;">`ip.src == 192.168.1.1 && tcp.dstport == 80`</mark>

<figure><img src="/files/MYTnNWsHD1b9S76y47wR" alt=""><figcaption></figcaption></figure>

Các gói tin được thu thập bắt đầu hiển thị trên màn hình sau khi quá trình thu thập bắt đầu.

<figure><img src="/files/Xm0w13xKE2R1poNT0n3f" alt=""><figcaption></figcaption></figure>

Bạn có thể dừng thu thập bằng cách nhấp vào nút Stop Capturing Packets màu đỏ ở góc trên bên trái của màn hình và lưu lưu lượng đã thu thập bằng nút Save this Capture File.

<figure><img src="/files/BnRstMcHwmh9Izzudk3U" alt=""><figcaption></figcaption></figure>

Nếu muốn, bạn có thể thay đổi các cài đặt liên quan đến tệp pcap (phần mở rộng của tệp nơi lưu lưu lượng mạng) mà bạn sẽ lưu từ màn hình **`Capture -> Options`**. Một số cài đặt là bắt buộc đối với việc thu thập lưu lượng lớn. Thu thập một lượng lớn lưu lượng trong vài giờ sẽ tạo ra các tệp pcap lớn. Phân tích và vận chuyển các tệp này cũng có thể là một vấn đề. Để tránh điều này, bạn có thể thay đổi các cài đặt cho các tệp sẽ được thu thập trước khi bắt đầu quá trình thu thập.

Bạn có thể chọn các tùy chọn dựa trên số lượng gói tin, dựa trên kilobyte hoặc dựa trên thời gian để đảm bảo rằng các tệp pcap được thu thập theo từng phần.

<figure><img src="/files/7PO6u65jlZx0nKGRB10R" alt=""><figcaption></figcaption></figure>

Sau đây là một số bộ lọc hiển thị Wireshark cơ bản mà bạn có thể cần sử dụng cho Network Forensics:

* **Filter by IP Address:**

```
ip.src == 192.168.1.1
```

* **Lọc theo địa chỉ mục tiêu:**

```
ip.dst == 192.168.1.1
```

Hiển thị lưu lượng đến một địa chỉ IP đích cụ thể.

* **Lọc theo TCP/UDP Ports**

```
tcp.port == 80 || udp.port == 53
```

Hiển thị cổng TCP 80 cho lưu lượng HTTP và cổng UDP 53 cho các truy vấn DNS.

* **Filter by protocol**:

```
dns
```

Hiển thị tất cả lưu lượng giao thức DNS.

* **Lọc theo Địa Chỉ MAC:**

```
eth.src == 00:11:22:33:44:55
```

Hiển thị lưu lượng từ một địa chỉ MAC nguồn cụ thể.

* **Filter by Protocol and Port:**

```
tcp.port == 443 && http
```

Lọc lưu lượng HTTPS (giao thức HTTP qua cổng TCP 443).

* **Filter by HTTP “Host” Header:**

```
http.host == "www.example.com"
```

Hiển thị các yêu cầu HTTP được thực hiện tới một máy chủ web cụ thể.

* **Lọc theo Thiết Lập Kết Nối TCP:**

```
tcp.flags.syn == 1 && tcp.flags.ack == 0
```

Hiển thị các yêu cầu thiết lập kết nối được thực hiện bằng các gói TCP SYN (không có cờ ACK).

* Lọc theo Luồng TCP:

```
tcp.stream eq 5
```

Hiển thị tất cả các gói mạng của số luồng TCP cụ thể.

* **Lọc theo Các Gói tin Bất Thường hoặc Lỗi:**

```
tcp.analysis.flags && !tcp.analysis.window_update
```

Nó hiển thị các lỗi hoặc điểm bất thường TCP tiềm ẩn nhưng loại trừ các bản cập nhật cửa sổ.

Như đã thấy việc thu thập trên Wireshark là khá dễ dàng.

### 2.2. Capture Network Traffic with TCPDump

TCPdump là một công cụ dòng lệnh mạnh mẽ để thu thập lưu lượng mạng theo thời gian thực, thường được sử dụng trên các hệ thống Linux. Nó là công cụ được các quản trị viên hệ thống và các chuyên gia an ninh mạng lựa chọn. Mặc dù nó không có giao diện người dùng đồ họa, nhưng nó cung cấp khả năng phân tích mạng linh hoạt và chuyên sâu thông qua dòng lệnh.

Trên các hệ thống \*nix, tcpdump thường được cài đặt theo mặc định, nhưng nếu không, bạn có thể dễ dàng cài đặt nó bằng trình quản lý gói. Các lệnh cài đặt cho các hệ thống Debian và RHEL như sau:

Đối với các hệ thống dựa trên Debian:

Lệnh: <mark style="color:red;">`apt install tcpdump`</mark>

Đối với các hệ thống dựa trên RHEL: <mark style="color:red;">`yum install tcpdump`</mark>

Sau khi bạn đã mở terminal, bạn có thể sử dụng lệnh "<mark style="color:red;">`tcpdump`</mark>" để bắt đầu thu thập luồng lưu lượng trực tiếp ngay lập tức.

<figure><img src="/files/SjFoHw6zTIzHLoK1Ttfj" alt=""><figcaption></figcaption></figure>

Bạn thường sẽ nhận được lỗi quyền như trên. Trên các hệ thống \*nix, bạn cần có quyền người dùng root để có thể thu thập lưu lượng.

Vì vậy, chúng ta nên thực thi nó bằng lệnh sau:

```bash
sudo tcpdump
```

<figure><img src="/files/wOHeFa3ygyEGncW6JxdC" alt=""><figcaption></figcaption></figure>

Bạn cần sử dụng các tham số và bộ lọc dòng lệnh thích hợp theo loại lưu lượng bạn muốn thu thập bằng `tcpdump`:

* "<mark style="color:red;">`-i <interface_name>`</mark>" để thu thập lưu lượng trên một giao diện mạng cụ thể. Ví dụ:

```bash
tcpdump -i eth0
```

Tham số "<mark style="color:red;">`-w`</mark>" cho phép bạn lưu các gói tin vào một tệp và mở nó để phân tích bằng một công cụ giao diện đồ họa như Wireshark.

```bash
sudo tcpdump -i ens33 -w testpcap.pcap
```

<figure><img src="/files/deLqzMul2B9Jz2G1rQld" alt=""><figcaption></figcaption></figure>

Bạn có thể dừng quá trình thu thập lưu lượng bằng các phím nóng "`Ctrl+C`".

**Một số bộ lọc tcpdump cơ bản có thể được yêu cầu cho pháp y mạng như sau:**

* **Lọc theo địa chỉ IP nguồn:**

```bash
tcpdump -i eth0 src 192.168.1.1
```

Thu thập tất cả các gói mạng có địa chỉ IP nguồn “192.168.1.1”.

* **Lọc theo địa chỉ IP đích**

```bash
tcpdump -i eth0 dst 192.168.1.1
```

Thu thập tất cả các gói mạng có địa chỉ IP đích "192.168.1.1"

* **Lọc các gói tin bằng một cổng cụ thể:**

```bash
tcpdump -i eth0 port 80
```

Thu thập tất cả lưu lượng mạng trên cổng 80.

* **Lọc lưu lượng đến và đi giữa hai địa chỉ IP:**

```bash
tcpdump -i eth0 src 192.168.1.1 and dst 10.0.0.1
```

Thu thập lưu lượng mạng từ địa chỉ IP "192.168.1.1" đến địa chỉ IP "10.0.0.1".

* **Lọc theo một giao thức cụ thể:**

```bash
tcpdump -i eth0 'tcp'
```

Thu thập tất cả lưu lượng mạng thuộc giao thức TCP.

* **Lọc tất cả lưu lượng trên một mạng cụ thể:**

```bash
tcpdump -i eth0 net 192.168.1.0/24
```

Thu thập tất cả lưu lượng trên mạng 192.168.1.0/24.

* **Thu thập lưu lượng mạng theo địa chỉ MAC:**

```bash
tcpdump -i eth0 ether host 00:1A:2B:3C:4D:5E
```

Thu thập tất cả lưu lượng mạng cho một địa chỉ MAC nhất định.

* **Thu thập tất cả các gói mạng có chứa một cờ TCP cụ thể:**

```bash
tcpdump -i eth0 'tcp[tcpflags] & (tcp-syn) != 0'
```

* **Thu thập các truy vấn DNS:**

```batch
tcpdump -i eth0 udp port 53
```

Thu thập các truy vấn DNS được gửi từ cổng UDP 53.

**Kết luận**

Để kết luận, việc lựa chọn các công cụ và phương pháp phù hợp để thu thập thành công lưu lượng mạng là nền tảng để thực hiện phân tích pháp y mạng hiệu quả và hiệu quả. Thu thập lưu lượng mạng bằng cả Wireshark và TCPdump cung cấp khả năng phản ứng nhanh chóng và phát triển sự hiểu biết sâu sắc về các sự cố bảo mật.

## 3. Network Traffic Analysis

Phần này khám phá các kỹ thuật để hiểu luồng dữ liệu trên mạng và sử dụng thông tin đó để phát hiện các vi phạm bảo mật tiềm ẩn và hành vi bất thường trên mạng. Phát hiện mối đe dọa mạng là trọng tâm của an ninh mạng và các chiến lược phòng thủ mạng. Nó bao gồm các phương pháp, công cụ và quy trình cần thiết để nhanh chóng phát hiện và ứng phó hiệu quả với các mối đe dọa.

Phân tích Lưu lượng Mạng (NTA) là quá trình thu thập, kiểm tra và phân tích dữ liệu đang lưu thông qua mạng. Quá trình này đóng một vai trò quan trọng trong việc phát hiện các vi phạm bảo mật, tấn công mạng và hành vi bất thường.

Mặc dù NTA có nền tảng của nó, nhưng nó không có một tiêu chuẩn được thiết lập trong pháp y mạng. Do đó, sau khi kiểm tra các điểm quan trọng (từ quan điểm pháp y mạng), việc diễn giải thông tin một cách chính xác là rất quan trọng.&#x20;

Tóm lại, cần phải hiểu rõ lý do tại sao cần phân tích như vậy và phân tích phải được hướng dẫn cho phù hợp.

**Các ví dụ về các hoạt động có thể được phát hiện bằng phân tích lưu lượng mạng bao gồm:**

* **Các nỗ lực truy cập trái phép:** Các nỗ lực truy cập tài nguyên mạng trái phép của người dùng, cả thành công và không thành công, có thể được phát hiện bằng phân tích lưu lượng mạng.
* **Phát tán phần mềm độc hại:** Phần mềm độc hại thường giao tiếp và đánh cắp dữ liệu thông qua các cổng cụ thể trên mạng. Phân tích lưu lượng mạng có thể phát hiện hoạt động cổng đáng ngờ như vậy và các nỗ lực đánh cắp dữ liệu.
* **Các mối đe dọa nội bộ:** Nếu ai đó trong tổ chức tham gia vào việc đánh cắp dữ liệu hoặc hoạt động độc hại khác, Phân tích Lưu lượng Mạng có thể ghi lại hoạt động này.
* **Các cuộc tấn công DoS/DDoS:** Trong các cuộc tấn công DoS/DDoS, một lượng lưu lượng mạng bất thường có thể được phát hiện. Bằng cách phân tích các đột biến lưu lượng này, Phân tích Lưu lượng Mạng có thể xác định tài nguyên nào đang bị tấn công.
* **ARP Spoofing:** Giả mạo Address Resolution Protocol (ARP) có thể cho phép những kẻ tấn công định tuyến lưu lượng mạng giữa các thiết bị trên mạng. Phân tích Lưu lượng Mạng có thể phát hiện các cuộc tấn công như vậy bằng cách phân tích các điểm bất thường trong lưu lượng giao thức ARP và sự gia tăng tần suất lưu lượng.

**Một phân tích về vấn đề này nên xem xét các thông tin sau:**

* **Lọc:** Các bộ lọc có thể được sử dụng để loại trừ dữ liệu không liên quan khỏi phân tích và xác định dữ liệu có liên quan. Điều này tăng tốc quá trình phân tích và giảm yêu cầu lưu trữ.
* **Phân tích giao thức:** Phân tích dựa trên giao thức chi tiết có thể được thực hiện trên dữ liệu đã thu thập. Ví dụ: các giao thức như TCP, UDP, HTTP và DNS có thể được phân tích chi tiết.
* **Phân tích phiên:** Thông tin như thời gian bắt đầu và kết thúc phiên, thời lượng phiên và dung lượng dữ liệu liên lạc có thể được phân tích.
* **Phân tích hành vi:** Các mẫu hành vi lưu lượng mạng bình thường được xác định và các sai lệch so với các tiêu chuẩn này được coi là bất thường. Ví dụ: lưu lượng mạng cao bất ngờ vào ban đêm hoặc sử dụng giao thức bất thường.
* **Đánh giá Sau Sự cố:** Sau một sự cố bảo mật, dữ liệu lưu lượng mạng được phân tích để hiểu nguồn gốc của sự cố, các hệ thống bị ảnh hưởng và tác động của sự cố.

### 3.1. Malware Detection (Phát hiện Phần mềm độc hại)

Để phân tích tệp PCAP trong Wireshark, hãy làm theo các bước sau:

1. Khởi động Wireshark và mở tệp PCAP mà bạn muốn phân tích.
2. Sử dụng cửa sổ "**`Protocol Hierarchy`**" và "**`Conversations`**" trong tab "**`Statistics`**" để xem lưu lượng mạng.

<figure><img src="/files/SyRXkJ13ovIkUf2WHbe2" alt=""><figcaption></figcaption></figure>

Kiểm tra các số liệu thống kê trong phần "**`Protocol Hierarchy`**", chúng ta có thể nhận được các thông tin sau:

* “**Ethernet & Internet Protocol Version 4**” chỉ ra rằng mọi gói mạng đều di chuyển qua Ethernet và IPv4, điều đó có nghĩa là lưu lượng mạng được truyền qua một mạng cục bộ tiêu chuẩn.
* Nhìn vào “ **User Datagram Protocol (UDP)**”, chỉ có 10 gói tin sử dụng giao thức UDP, một phần rất nhỏ so với các gói mạng. Điều này chỉ ra rằng hầu hết lưu lượng mạng được phân tích đều dựa trên TCP. Các gói UDP có thể đã được sử dụng cho các truy vấn DNS, có nghĩa là 10 gói DNS đã được bao gồm trong lưu lượng mạng.
* "**Domain Name System (DNS) queries**" có thể được nhìn thấy trong lưu lượng mạng. Các truy vấn DNS này có thể đến các máy chủ bên trong hoặc bên ngoài. Chúng có thể chứa thông tin quan trọng về hoạt động độc hại, ví dụ: nếu phần mềm độc hại đang thực hiện phân giải DNS cho máy chủ điều khiển và chỉ huy (C\&C).
* Trong "**Transmission Control Protocol (TCP)**", có thể thấy rằng gần như tất cả lưu lượng mạng đều sử dụng giao thức TCP, với phần lớn áp đảo lưu lượng mạng được truyền tải bởi giao thức này.
* Nếu chúng ta xem “**Virtual Network Computing (VNC)**”, chúng ta thấy rằng chỉ có 4 gói mạng thuộc về VNC. Đây là một giao thức cung cấp quyền truy cập máy tính từ xa và có thể là một chỉ báo về các nỗ lực truy cập từ xa trái phép hoặc đáng ngờ trên mạng.
* “**Transport Layer Security (TLS)**” hiển thị một luồng lưu lượng mạng được mã hóa với 388 gói tin. Lưu lượng mạng được mã hóa có thể được sử dụng cho hoạt động phần mềm độc hại hoặc truyền dữ liệu nhạy cảm.
* "**Hypertext Transfer Protocol (HTTP)**" hiển thị rất ít gói mạng thuộc về giao thức HTTP. Lưu lượng truy cập mạng HTTP thấp có thể cho thấy rằng nhiều lưu lượng mạng được mã hóa hơn đang được sử dụng trên mạng hoặc không có lưu lượng truy cập web không được mã hóa trong lưu lượng mạng được phân tích.
* Vì 803 gói tin chỉ đơn giản được đánh dấu là "**Data**", điều đó có nghĩa là nội dung này trong luồng lưu lượng mạng không được liên kết hoặc xác định với bất kỳ giao thức cụ thể nào.

Các thống kê này rất hữu ích cho việc đánh giá hoạt động đáng ngờ, các điểm bất thường về giao thức và các mối đe dọa bảo mật tiềm ẩn trong bối cảnh pháp y mạng. Đặc biệt, các gói TLS và số lượng nhỏ các gói VNC cần được kiểm tra kỹ hơn, vì hoạt động độc hại thường xảy ra qua các kênh được mã hóa hoặc các nỗ lực truy cập trái phép có thể được thực hiện qua các giao thức như VNC.

<figure><img src="/files/i72R4azbnwvVQfoZDfkx" alt=""><figcaption></figcaption></figure>

Khi chúng ta kiểm tra các số liệu thống kê trong phần "**Conversations**", chúng ta thấy các thông tin sau:

* "**Các cột Address A and Address B"** hiển thị địa chỉ IP ở cả hai phía của giao tiếp. Ví dụ: địa chỉ IP "`10.1.23.101`" có khả năng là một máy khách trên mạng nội bộ, trong khi các địa chỉ IP khác có thể thuộc về các dịch vụ hoặc máy chủ bên ngoài.
* "**Packets and Bytes**" hiển thị số lượng gói tin và byte được gửi và nhận cho mỗi hội thoại. Nếu có một luồng lưu lượng không đối xứng giữa một cặp địa chỉ nhất định (ví dụ: quá nhiều dữ liệu đang được nhận và quá ít dữ liệu được gửi), điều này cho thấy việc tải xuống dữ liệu hoặc rò rỉ dữ liệu tiềm ẩn.
* "**Rel Start and Duration**" hiển thị thời gian bắt đầu và tổng thời lượng của mỗi hội thoại. Giao tiếp có thời lượng dài và dung lượng lớn có thể chỉ ra các quy trình làm việc bình thường hoặc hoạt động độc hại tiềm ẩn, chẳng hạn như truyền tệp hoặc các phiên dài.
* “**Bits/s A -> B and Bits/s B -> A**” cho biết tốc độ truyền dữ liệu (bit trên giây) cho cả hai hướng. Dữ liệu này được sử dụng để đánh giá mức sử dụng băng thông mạng và tính đối xứng của luồng dữ liệu ở cả hai hướng.

**Từ góc độ pháp y mạng:**

* Địa chỉ IP "`10.1.23.101`" dường như đã có nhiều liên lạc với các dịch vụ/máy chủ bên ngoài khác nhau, điều này có thể chỉ ra hoạt động điều khiển và chỉ huy (C\&C) có thể xảy ra, tải xuống phần mềm độc hại hoặc các hoạt động bất thường khác.
* Số lượng lớn các gói mạng được gửi đến và lượng lớn dữ liệu được chuyển đến các địa chỉ IP "**162.125.8.18**" và "**162.125.8.15**", đặc biệt là việc truyền 4.661 gói và 6.227k byte dữ liệu đến địa chỉ thứ hai, có thể cho biết một quá trình tải xuống tệp lớn hoặc kết xuất dữ liệu.
* Tốc độ truyền dữ liệu cao nhất ("**Bits/s A -> B**") thuộc về luồng lưu lượng đối với địa chỉ IP "**93.184.216.34**" (47k Bits/s). Đây có thể là quá trình tải tệp lên hoặc hoạt động đánh cắp dữ liệu.
* Giao tiếp với địa chỉ IP "**140.228.29.110**" cũng cho thấy một lượng lớn trao đổi dữ liệu và tốc độ tải xuống dữ liệu tương đối cao (**B -> A: 43k bits/s**), điều này có thể cho thấy một lượt tải xuống đáng ngờ hoặc trao đổi dữ liệu sau tấn công.

Bạn có thể tạo các bộ lọc dựa trên địa chỉ IP, cổng hoặc giao thức có thể liên quan đến hoạt động phần mềm độc hại. Ví dụ: bạn có thể lọc các địa chỉ IP bị nghi ngờ giao tiếp với các máy chủ độc hại đã biết.

```yaml
140.223.29.110 or tcp.dstport == 5500 and vnc
```

<figure><img src="/files/AChsvHl8qyBRdnVNMohu" alt=""><figcaption></figcaption></figure>

Phần mềm độc hại thường sử dụng các giao thức cụ thể. Do đó, bạn nên giám sát thông tin liên lạc máy chủ điều khiển và chỉ huy (C\&C) qua IRC, HTTP hoặc các giao thức khác.

Tìm kiếm các chữ ký (ví dụ: đặc điểm tải trọng, cổng và địa chỉ IP được sử dụng) của phần mềm độc hại đã biết. Sau đó, sử dụng tính năng Bộ Lọc Hiển Thị của Wireshark để lọc các gói chứa thông tin đó.

**Lưu ý:** Khi các giao thức như SSL/TLS được sử dụng trong lưu lượng mạng, có thể không thể lọc trực tiếp tải trọng bằng Wireshark. Trong trường hợp này, lưu lượng phải có thể truy cập được trước khi nó được giải mã.

```
frame contains curl
```

<figure><img src="/files/nmw7tLSNjYvOH38djndU" alt=""><figcaption></figcaption></figure>

Phần mềm độc hại thường sử dụng các truy vấn DNS để giao tiếp với các máy chủ C\&C cụ thể. Bạn có thể điều tra lưu lượng DNS đáng ngờ bằng cách áp dụng bộ lọc "DNS" và xem chi tiết của truy vấn. Ngoài ra, bạn có thể thực hiện truy vấn miền trực tiếp bằng bộ lọc "dns.qry.name".

```
dns and dns.qry.name == "testmyids.com"
```

<figure><img src="/files/QlX5KPZ2UiXFZt2IM123" alt=""><figcaption></figcaption></figure>

Tiếp theo, sử dụng cửa sổ Follow TCP Stream hoặc Follow UDP Stream để kiểm tra luồng dữ liệu qua một kết nối cụ thể. Bạn sẽ có thể quan sát dữ liệu và các bộ lệnh có thể được gửi bởi phần mềm độc hại.

Sau khi bạn đã chọn gói bạn muốn phân tích, bạn có thể chọn "**`Analyze -> Follow -> TCP Stream or UDP Stream`**" để xem toàn bộ luồng và thực hiện phân tích.

<figure><img src="/files/WotgrCGqTrCMcgzl9DX4" alt=""><figcaption></figcaption></figure>

Điều này giúp bạn dễ dàng đọc dữ liệu truyền qua mạng và hiểu thông tin nào đang được gửi.

<figure><img src="/files/0LX3TnygyskDSSkjaakX" alt=""><figcaption></figcaption></figure>

Tóm lại, các tạo tác lưu lượng mạng phần mềm độc hại cần tìm kiếm là những điều đã đề cập ở trên.

### 3.2. Insider Threat Detection (Phát hiện mối đe dọa nội bộ)

Các bước phân tích được thực hiện trong Wireshark để phát hiện các mối đe dọa nội bộ trong tệp PCAP như sau:

1. Mở tệp PCAP bạn muốn phân tích bằng Wireshark.
2. Các mối đe dọa nội bộ thường bắt nguồn từ các tài nguyên bên trong. Sử dụng các bộ lọc giao tiếp mạng nội bộ để tìm kiếm lưu lượng mạng có thể vi phạm chính sách của công ty. Để có được cái nhìn tổng quan về lưu lượng, bạn có thể xem "Protocol Hierarchy Summary" trong tab "Statistics" để xem có bất kỳ cách sử dụng giao thức nào vi phạm chính sách của công ty hay không.

Từ góc độ pháp y mạng, các số liệu thống kê này đòi hỏi phân tích chuyên sâu, đặc biệt là lưu lượng DCE/RPC. Nếu lưu lượng truy cập này có một mẫu nằm ngoài mong đợi hoặc việc sử dụng an toàn đã biết, nó có thể chỉ ra một mối đe dọa bảo mật hoặc hoạt động phần mềm độc hại trên hệ thống. Ngoài ra, khối lượng lớn lưu lượng Đăng nhập Mạng Microsoft này có thể cần được điều tra thêm nếu nó là một phần của quy trình làm việc bình thường. Dù bằng cách nào, cần thực hiện các bước bổ sung để xem xét các quy trình và người dùng đang tạo ra lưu lượng truy cập này và để đánh giá xem việc truyền qua các giao thức này có hợp pháp hay không.

<figure><img src="/files/bQBwN7IH9Leov66n0lFR" alt=""><figcaption></figcaption></figure>

3. Tìm kiếm lưu lượng mạng trên các cổng không chuẩn hoặc sử dụng các giao thức không mong muốn. Hãy nhớ rằng các mối đe dọa nội bộ thường đi chệch khỏi các quy trình hoạt động tiêu chuẩn.
4. Phân tích lưu lượng mạng xảy ra ngoài giờ làm việc của người dùng và hoạt động vào các ngày lễ. Các mối đe dọa nội bộ thường hiển thị hoạt động ngoài giờ làm việc bình thường.
5. Xem xét thông tin liên lạc bằng SMTP, IMAP hoặc các giao thức nhắn tin khác. Các mối đe dọa nội bộ có thể sử dụng email hoặc nhắn tin để làm rò rỉ dữ liệu ra bên ngoài tổ chức.
6. Tìm kiếm các kết nối không mong muốn từ địa chỉ mạng nội bộ đến các mạng bên ngoài. Các kết nối băng thông cao và các kết nối đến các mục tiêu đáng ngờ bên ngoài tổ chức có thể đặc biệt quan trọng.
7. Kiểm tra các truy vấn DNS từ người dùng mạng nội bộ. Các truy vấn DNS đáng ngờ hoặc lặp đi lặp lại có thể chỉ ra một mối đe dọa nội bộ.
8. Tìm kiếm lưu lượng mạng từ các thiết bị hoặc dịch vụ không được xác định trên mạng của bạn. Kiểm tra chi tiết nguồn và đích của lưu lượng này. Ví dụ: nếu chúng ta biết rằng không có thiết bị nào khác ngoài "Apple" trên mạng công ty, chúng ta có thể xác định xem có địa chỉ MAC nào không thuộc về thiết bị "Apple" trong kết xuất mà chúng ta nhận được hay không.

Chúng ta có thể thấy rằng giá trị tiền tố địa chỉ MAC của các thiết bị Apple là "98:CA:33".

<figure><img src="/files/m7Ej0llCT4wGSLd0HFTt" alt=""><figcaption></figcaption></figure>

Điều tiếp theo chúng ta làm là loại trừ các thiết bị bắt đầu bằng tiền tố này trong các gói ARP. Chúng tôi cũng loại trừ địa chỉ MAC "ff:ff:ff:ff:ff:ff:ff:ff:ff:ff" để loại trừ các gói quảng bá. Phần còn lại của danh sách là danh sách các thiết bị thuộc về các thiết bị không được phép có mặt trên mạng của chúng ta.

Nhiệm vụ của chúng ta là xác định những thiết bị này và xác định cách chúng xâm nhập vào mạng LAN của công ty.

```yaml
(!(eth.src contains 98:CA:33) and arp) && !(eth.dst == ff:ff:ff:ff:ff:ff)
```

<figure><img src="/files/d2NvnMFvTGRZ2xpaKgrk" alt=""><figcaption></figcaption></figure>

### 3.3. Anomalous Data Transfer Detection (Phát hiện truyền dữ liệu bất thường)

Để phát hiện việc truyền dữ liệu bất thường trên tệp PCAP, phải thực hiện các bước phân tích sau trong Wireshark:

1. Mở tệp PCAP bằng Wireshark.
2. Đầu tiên, xem lại dữ liệu để có được ý tưởng chung về lưu lượng mạng. Xem xét các số liệu thống kê chung như tổng số lượng gói tin, địa chỉ IP đã liên lạc, giao thức đã sử dụng và phân phối lưu lượng. Để làm như vậy, bạn có thể sử dụng phần "**`Statistics -> Protocol Hierarchy`**".
3. Thiết lập chiến lược lọc để phát hiện các điểm bất thường. Bạn có thể sử dụng khả năng lọc của Wireshark để tập trung vào các giao thức, địa chỉ IP hoặc cổng cụ thể. Ví dụ: đối với các truyền tệp lớn bất ngờ, có thể sử dụng bộ lọc như bộ lọc bên dưới:

   ```
   "ip.src == 192.168.0.1 && tcp.len > 1000"
   ```

<figure><img src="/files/HBsetLcHcfGmRvPj4wFh" alt=""><figcaption></figcaption></figure>

4. Phân tích giao thức liên quan đến việc xem xét chi tiết giao thức để xác định việc sử dụng các giao thức mà bình thường sẽ không được mong đợi. Ví dụ: nếu một lượng đáng kể lưu lượng đang sử dụng một giao thức cũ hoặc không an toàn hiếm khi được sử dụng trên mạng, thì nó có thể được coi là một điểm bất thường.
5. Để phân tích lượng lưu lượng truy cập đến các đích đến cụ thể trong một khoảng thời gian, hãy sử dụng các tab như "Conversations" hoặc "Endpoints" từ menu "Statistics" trong Wireshark để xác định địa chỉ IP nào đang gửi hoặc nhận lượng dữ liệu bất thường.
6. Xác định các điểm bất thường bằng cách so sánh chúng với các mẫu lưu lượng bình thường trên mạng. Các đột biến lưu lượng đột ngột, thời gian truyền bất thường hoặc việc sử dụng giao thức và cổng không mong muốn đều có thể là dấu hiệu cần điều tra.
7. Ngoài ra, các công cụ đồ họa của Wireshark, đặc biệt là "IO graphs", cho phép bạn xem trực quan các xu hướng và mẫu trong lưu lượng truy cập. Điều này có thể giúp phát hiện lưu lượng bất thường theo thời gian.

<figure><img src="/files/KSAWjVpaSlhHGtNmbbEY" alt=""><figcaption></figcaption></figure>

## 4. Signature-based Detection

Phát hiện dựa trên chữ ký là phương pháp phát hiện các mối đe dọa bằng cách sử dụng chữ ký, địa chỉ IP, URL hoặc giá trị băm của các mối đe dọa đã được xác định trước và đã biết như phần mềm độc hại, vi rút và trojan. Phương pháp này cho phép phát hiện nhanh chóng các mối đe dọa đã biết. Tuy nhiên, nó không thể phát hiện các cuộc tấn công "zero-day", là những mối đe dọa chưa từng được biết đến trước đây.

Sau đây là các loại tấn công mạng chính có thể được phát hiện bằng phương pháp Phát hiện Dựa Trên Chữ Ký:

**Lưu ý:** Phát hiện dựa trên chữ ký mang lại lợi ích và tốc độ trong Pháp y Mạng.

* **Các Cuộc Tấn Công Dựa Trên Mạng:** Quét cổng, SQL Injection, XSS và các cuộc tấn công dựa trên mạng khác có thể được phát hiện thông qua các yêu cầu và mẫu lưu lượng cụ thể.
* **Phần Mềm Độc Hại:** Bao gồm các quy tắc phát hiện hoạt động của phần mềm độc hại trên mạng. Danh mục này phát hiện các hoạt động giao tiếp, lây nhiễm và cập nhật của phần mềm độc hại.
* **Ransomware:** Phần mềm độc hại đòi tiền chuộc bằng cách mã hóa các tệp, được phát hiện bằng các chữ ký dựa trên các quy trình mã hóa và mẫu giao tiếp mạng cụ thể.
* **Lừa Đảo (Phishing):** Các cuộc tấn công cố gắng đánh cắp thông tin người dùng thông qua các trang web giả mạo hoặc email độc hại được phát hiện bằng các cấu trúc URL hoặc chữ ký nội dung email cụ thể.
* **Khai Thác (Exploit):** Danh mục này bao gồm các chữ ký để chặn các khai thác trực tiếp không được đề cập trong các danh mục dịch vụ cụ thể. Ví dụ: các cuộc tấn công chống lại Microsoft Windows có thể được đưa vào danh mục này.

### **Các Công Cụ Phát Hiện Dựa Trên Chữ Ký**

Dưới đây là một số công cụ mã nguồn mở phổ biến có thể được sử dụng cho 'Phát Hiện Dựa Trên Chữ Ký':

**Lưu ý:** Các công cụ này thường phù hợp hơn để sử dụng trên các hệ thống dựa trên \*nix.

* **Snort:** Một Hệ thống Phát hiện Xâm nhập Mạng (NIDS) mã nguồn mở phân tích lưu lượng mạng và phát hiện các mối đe dọa bằng các kỹ thuật phát hiện dựa trên chữ ký. Nó cung cấp một ngôn ngữ quy tắc linh hoạt, vì vậy người dùng có thể viết các quy tắc phát hiện mối đe dọa của riêng họ hoặc tùy chỉnh các quy tắc hiện có. Ngoài ra, nó có một tập hợp lớn các quy tắc được cung cấp bởi cộng đồng.
* **Suricata:** Một NIDS mã nguồn mở kết hợp các kỹ thuật phát hiện dựa trên chữ ký và các phương pháp luận phát hiện bất thường. Nhờ cấu trúc đa luồng, nó có thể hoạt động hiệu quả ngay cả trong các mạng tốc độ cao.
* **Zeek (trước đây là Bro):** Một công cụ giám sát mạng tiên tiến với cả khả năng phát hiện dựa trên chữ ký và dựa trên bất thường. Khả năng phát hiện dựa trên bất thường và dựa trên chữ ký của nó rất phù hợp cho các quy trình săn lùng mối đe dọa và phân tích pháp y.

### Installing Snort

Hãy cài đặt “Snort” trước khi chúng ta đi vào phân tích PCAP.

Bạn có thể làm theo các bước bên dưới để cài đặt Snort trên Ubuntu 22.04:

1. Trước tiên, bạn có thể sử dụng lệnh sau để cài đặt Snort:

```bash
apt install snort
```

2. Sau khi Snort được cài đặt, hãy sử dụng lệnh sau để hiển thị chi tiết phiên bản Snort:

```bash
snort -V
```

<figure><img src="/files/B0aLCOHD0dOn5W1KJFp2" alt=""><figcaption></figcaption></figure>

3. Để kiểm tra xem Snort có hoạt động bình thường hay không, hãy chạy lệnh sau:

```bash
curl testmyids.com
```

Với lệnh này, chúng ta sẽ kiểm tra xem Snort có thể tạo cảnh báo hay không.

<figure><img src="/files/ZDtebGKv9joQHWd7Qfu9" alt=""><figcaption></figcaption></figure>

Giả sử rằng mọi thứ đều ổn cho đến nay, chúng ta hiện đã sẵn sàng bắt đầu phân tích các tệp PCAP bằng Snort.

### Analyzing PCAP Files with Snort

Để bắt đầu phân tích của chúng ta, tệp PCAP phải có mặt trên hệ thống đang chạy Snort.

1. Đầu tiên, bạn cần thực thi để phân tích tệp PCAP với cấu hình Snort hiện tại:

```bash
snort -r <tệp_pcap> -c <tệp_cấu_hình_snort>
```

```bash
snort -r /tmp/2024-01-23-infection-traffic.pcap -c /etc/snort/snort.conf
```

<figure><img src="/files/DJohJ3SDI6uqgFwJFsd2" alt=""><figcaption></figcaption></figure>

Bạn có thể xem kết quả phân tích trong tệp snort.alert.fast. Nếu có một cảnh báo được tạo sau khi phân tích PCAP (tức là, nếu có lưu lượng truy cập chạm vào chữ ký Snort trong lưu lượng truy cập đó), bạn có thể thấy cảnh báo đó trong tệp snort.alert.fast.

```bash
tail -f /var/log/snort/alert.fast
```

<figure><img src="/files/E8JePOZEhFY6PgdDXUKA" alt=""><figcaption></figcaption></figure>

### Example of a PCAP Analysis

Hãy bắt đầu bằng cách sử dụng Snort để phân tích PCAP mà chúng ta muốn kiểm tra.

```bash
snort -r /tmp/12/09/example-traffic.pcap -c /etc/snort/snort_forensic.conf
```

<figure><img src="/files/WLkPa5SIJOyJIhC3xN0b" alt=""><figcaption></figcaption></figure>

Các cảnh báo có thể phát sinh sau khi phân tích và giải thích của chúng như sau:

* **ATTACK-RESPONSES 403 Forbidden:** Cho biết phản hồi "**403 Forbidden**" của máy chủ web đối với các yêu cầu tài nguyên mà nó không cho phép truy cập. Cảnh báo này có thể cho biết các nỗ lực truy cập độc hại hoặc trái phép.
* **ET CURRENT\_EVENTS Possible Java Applet JNLP applet\_ssv\_validated in Base64:** Một cảnh báo chỉ ra rằng các tệp Java Network Launch Protocol (JNLP) đang được truyền bằng mã hóa Base64. Loại lưu lượng mạng này thường được sử dụng như một phương pháp để chạy các applet Java độc hại.
* **ET CURRENT\_EVENTS Terse alphanumeric executable downloader high likelihood of being hostile:** Một cảnh báo chỉ ra khả năng cao là một tệp trình tải xuống thực thi độc hại ngắn gọn và được mã hóa dày đặc bằng các ký tự chữ và số. Loại lưu lượng mạng này có thể được sử dụng để tải xuống phần mềm độc hại.
* **ET POLICY Java EXE Download:** Một cảnh báo chỉ ra việc tải xuống tệp EXE trong môi trường Java. Đây có thể là một nỗ lực để khai thác một lỗ hổng bảo mật.
* **ET POLICY Outdated Flash Version M1:** Một cảnh báo chỉ ra rằng một phiên bản Flash đã lỗi thời đang được sử dụng. Các phiên bản cũ hơn có thể chứa nhiều lỗ hổng bảo mật khác nhau.
* **ET POLICY PE EXE or DLL Windows file download HTTP:** Cho biết rằng một tệp Windows PE (Portable Executable) EXE hoặc tệp DLL đã được tải xuống qua HTTP. Điều này cảnh báo rằng các tệp thực thi có thể là độc hại.
* **ET POLICY Vulnerable Java Version 1.6.x Detected:** Một cảnh báo chỉ ra rằng một phiên bản Java cũ hơn (1.6.x) với các lỗ hổng đã biết đang được sử dụng. Phiên bản này có thể dễ bị tổn thương trước các mối đe dọa bảo mật khác nhau.
* **ET WEB\_CLIENT SUSPICIOUS Java Request With Uncompressed JAR/Class file Accessing Security Manager:** Một yêu cầu Java đáng ngờ với một tệp JAR/lớp không nén đã được phát hiện khi cố gắng truy cập Trình quản lý Bảo mật.
* **ET WEB\_CLIENT SUSPICIOUS Java Request With Uncompressed JAR/Class file Importing Protection Domain:** Một yêu cầu Java đã được phát hiện trong khi nhập một miền bảo vệ với một tệp JAR hoặc lớp không nén.
* **ET WEB\_CLIENT SUSPICIOUS Java Request With Uncompressed JAR/Class Importing Classes used in awt exploits:** Một cảnh báo chỉ ra việc phát hiện một yêu cầu Java đáng ngờ với một tệp JAR/lớp không nén chứa các lớp được sử dụng trong các khai thác AWT.

<figure><img src="/files/gg5eg6JGG2yaEeRVtwJC" alt=""><figcaption></figcaption></figure>

Dưới đây là một số làm rõ về chi tiết cảnh báo:

<mark style="color:red;">`12/10-05:32:16.929144 [`</mark><mark style="color:red;">**`] [1:2014726:123] ET POLICY Outdated Flash Version M1 [`**</mark><mark style="color:red;">`] [Classification: Potential Corporate Privacy Violation] [Priority: 1] {TCP} 172.16.2.139:49186 -> 23.218.156.83:80`</mark>

* **Dấu Thời Gian**

  <mark style="color:red;">`12/10-05:32:16.929144`</mark>: Hiển thị ngày và giờ cảnh báo được kích hoạt và thời điểm sự kiện xảy ra. Trong ví dụ này, sự kiện xảy ra vào ngày 12 tháng 10 lúc 05:32 trong 16 giây và 929144 micro giây.
* **Chi Tiết Cảnh Báo**

  <mark style="color:red;">`[1:2014726:123] ET POLICY Outdated Flash Version M1 []`</mark>: Phần này là cảnh báo và được chia thành nhiều phần:

  * <mark style="color:red;">`[1:2014726:123]`</mark>: Đây là ID của cảnh báo. "1" thường là ID trình tạo, "2014726" là SID (ID chữ ký) và "123" là số sửa đổi (phiên bản của bản sửa đổi cho chữ ký đó).
  * <mark style="color:red;">`ET POLICY Outdated Flash Version M1`</mark>: Đây là mô tả của cảnh báo. Nó chỉ ra rằng một "phiên bản flash đã lỗi thời" của một chữ ký thuộc về danh mục Chính Sách (POLICY) Mối Đe Dọa Mới Nổi (Emerging Threats - ET) đã được phát hiện. "M1" có khả năng là một cờ liên quan đến các chính sách nội bộ hoặc một số liệu cụ thể.
* **Phân Loại và Ưu Tiên Cảnh Báo**

  <mark style="color:red;">`[Classification: Potential Corporate Privacy Violation]`</mark>: Đây là phân loại của cảnh báo cho biết cảnh báo là một Vi Phạm Quyền Riêng Tư Tiềm Năng của Công Ty.

  <mark style="color:red;">`[Priority: 1]:`</mark>Điều này cho thấy mức độ ưu tiên của cảnh báo. "1" có nghĩa là mức độ ưu tiên cao nhất, cho biết rằng cảnh báo là một cảnh báo bảo mật có tầm quan trọng cao.
* **Giao Thức và Địa Chỉ IP**

  <mark style="color:red;">`{TCP} 172.16.2.139:49186 -> 23.218.156.83:80`</mark>: Hiển thị giao thức và địa chỉ nào đang được sử dụng cho lưu lượng mạng.

  * <mark style="color:red;">`{TCP}`</mark>: Giao thức được sử dụng để liên lạc là TCP.
  * <mark style="color:red;">`172.16.2.139:49186`</mark>: Điều này cho thấy địa chỉ IP nguồn và số cổng. Địa chỉ IP có thể thuộc về mạng cục bộ (LAN) và 49186 là cổng nguồn được sử dụng bởi máy cục bộ.
  * <mark style="color:red;">`23.218.156.83:80`</mark>: Địa chỉ IP đích và số cổng. Cổng 80 là cổng mặc định cho lưu lượng HTTP và địa chỉ IP này có thể thuộc về một máy chủ trên Internet.

## 5. NetFlow-Based Network Forensics

NetFlow là một giao thức được phát triển bởi Cisco, thu thập các số liệu thống kê về lưu lượng mạng từ các thiết bị mạng như bộ định tuyến và bộ chuyển mạch. Pháp y mạng dựa trên NetFlow cho phép phân tích sâu hơn về lưu lượng truy cập đi qua mạng, phát hiện các vi phạm bảo mật và theo dõi các hành vi bất thường.

Mục đích của NetFlow rất đơn giản: nó lưu giữ một bản ghi tất cả các luồng trên một mạng. Luồng có thể được định nghĩa là chuỗi các gói tin được gửi qua các địa chỉ IP nguồn và đích cụ thể, giao thức và các cổng nguồn và đích. Dữ liệu NetFlow bao gồm thời gian bắt đầu và kết thúc của các luồng này, thời gian đã trôi qua, giao thức được sử dụng, số lượng byte và gói tin đã truyền và trạng thái của luồng.

### Analyzing NetFlow Data

NetFlow sử dụng cấu trúc kiểm tra trạng thái để giám sát và báo cáo tất cả lưu lượng mạng đi qua giao diện mạng được giám sát. Mỗi giao tiếp được định nghĩa là một luồng. Mỗi giao tiếp được định nghĩa là một luồng, là một chuỗi các gói tin tạo nên giao tiếp giữa nguồn và đích.

<figure><img src="/files/vjGW2cm8X86ebFpVpNy7" alt=""><figcaption></figcaption></figure>

Dữ liệu được thu thập để Luồng xảy ra như sau:

* Địa chỉ IP Nguồn
* Địa chỉ IP Đích
* Cổng Nguồn (Chỉ dành cho giao thức UDP và TCP)
* Cổng Đích (Chỉ dành cho giao thức UDP và TCP)
* Giao Thức IP
* Chi tiết Giao Diện
* Chi tiết Phiên Bản IP

Sau đây là một số vấn đề có thể được phân tích thông qua đầu ra NetFlow:

* Phát hiện sự gia tăng bất thường về khối lượng lưu lượng mạng
* Phát hiện rò rỉ dữ liệu
* Phát hiện truy cập vào các hệ thống riêng tư
* Phát hiện các địa chỉ IP mới trong mạng
* Phát hiện các hệ thống được truy cập lần đầu tiên

Màn hình Bảng điều khiển NetFlow mẫu được hiển thị bên dưới:

<figure><img src="/files/riAKo6MvCIxOL1ymfTGd" alt=""><figcaption></figcaption></figure>

### NetFlow for Network Forensics

**Phát Hiện Bất Thường và Lập Hồ Sơ Lưu Lượng**

NetFlow thu thập tất cả lưu lượng mạng, thu thập thông tin này và sử dụng nó để lập hồ sơ lưu lượng bình thường của mạng. Việc hiểu các mẫu lưu lượng bình thường giúp bạn dễ dàng phát hiện các hoạt động bất thường và đáng ngờ hơn. Có nhiều vấn đề khác nhau mà các chuyên gia bảo mật có thể phân tích bằng cách sử dụng các hồ sơ này:

* **Các điểm bất thường về giao thức và cổng:** Có thể khám phá ra các mối đe dọa tiềm ẩn bằng cách phát hiện việc sử dụng giao thức hoặc cổng không chuẩn.
* Biểu đồ Thống kê NetFlow bên dưới cho thấy rằng vào lúc 19:00, số lượng gói trung bình đã vượt quá ngưỡng 10.

<figure><img src="/files/pcMBB4aMvwppQHraEZaC" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/xshIYQ7CYPEsFWbsKXgg" alt=""><figcaption></figcaption></figure>

* **Giao thức ngụ ý:** Khi chúng ta đặt một bộ lọc DNS tại chỗ, sẽ có sự gia tăng các gói DNS.

<figure><img src="/files/O9DzgfayUE5isNGcm0kS" alt=""><figcaption></figcaption></figure>

* Xác định địa chỉ IP nguồn thực hiện nhiều truy vấn DNS nhất.

<figure><img src="/files/7ndSEo9WxjO45C5NG53d" alt=""><figcaption></figcaption></figure>

* Vì vậy, rõ ràng là hầu hết các truy vấn DNS đến từ hệ thống có địa chỉ IP "172.16.8.92". Từ thời điểm này trở đi, chúng ta nên kiểm tra chi tiết hệ thống. Đây là tất cả những gì phía NetFlow có thể cung cấp cho chúng ta.
* **Các điểm bất thường về thời gian:** Có thể phát hiện các điểm bất thường như khối lượng lưu lượng truy cập cao được quan sát trong thời gian lưu lượng truy cập thường thấp.
* Một số điểm bất thường đã được quan sát trong các biểu đồ được phân tích vào cuối ngày làm việc.

<figure><img src="/files/LYdZ0Iff30ehmBYVSL1y" alt=""><figcaption></figcaption></figure>

Khi những điểm bất thường này được kiểm tra, các số liệu thống kê về việc sử dụng giao thức SMTP nổi bật.

<figure><img src="/files/8YXQmEIo3ytquLIKVTLN" alt=""><figcaption></figcaption></figure>

* Có thể một máy chủ bị nhiễm đã gửi thư rác qua máy chủ SMTP, dựa trên phân tích các địa chỉ IP nguồn và đích tạo ra lưu lượng SMTP. Hệ thống nên được chuyển sang giai đoạn Pháp y Điểm Cuối để điều tra thêm sau phân tích này.

<figure><img src="/files/A7QzL0hzxMK1wCzSAW1g" alt=""><figcaption></figcaption></figure>

#### Incident Response

Trong trường hợp có vi phạm hoặc sự cố bảo mật khác, dữ liệu NetFlow có thể được sử dụng để ứng phó nhanh chóng với sự cố. Quá trình ứng phó sự cố thường bao gồm:

* **"Phân tích luồng lưu lượng"** tập trung vào các luồng lưu lượng để hiểu thời điểm và nơi sự cố bắt đầu.
* Nhìn vào hình ảnh bên dưới, chúng ta có thể thấy rằng giao thức SSH đang được sử dụng trên cổng 443. Quá trình gây ra lưu lượng này cần được kiểm tra chi tiết cho điểm cuối được đề cập.

<figure><img src="/files/hdjheNE89ShGyywc8yv6" alt=""><figcaption></figcaption></figure>

* **"Đánh giá tác động"** là đánh giá phạm vi của các hệ thống và dữ liệu bị ảnh hưởng bởi sự cố.
* **"Xác định vectơ tấn công"** là quá trình xác định nguồn gốc của cuộc tấn công và các phương pháp được sử dụng.

#### Behavioral Analysis

NetFlow cũng có thể được sử dụng để hiểu hành vi của người dùng và ứng dụng trên mạng. Phân tích này có thể xác định hoạt động không nhất quán với các mẫu sử dụng mạng thông thường.

#### **Application Usage**

* **"Phân tích lưu lượng ứng dụng"** xác định các cổng và giao thức dành riêng cho lưu lượng mạng được sử dụng bởi các ứng dụng. Bằng cách giám sát các cổng và giao thức này, dữ liệu NetFlow có thể giúp bạn xác định ứng dụng nào đang được sử dụng, khi nào và tần suất sử dụng.
* **"Để phát hiện lưu lượng truy cập không mong muốn"**, hãy tìm kiếm lưu lượng truy cập không phù hợp với các mẫu sử dụng ứng dụng tiêu chuẩn, chẳng hạn như sử dụng chia sẻ tệp cao trong thời gian không làm việc hoặc lưu lượng truy cập được phát hiện trên các cổng không chuẩn.

  Như bạn có thể thấy bên dưới, Các ứng dụng sau sử dụng FTP, giao thức này bị cấm theo chính sách của công ty. Chúng ta nên bắt đầu quy trình Pháp y Điểm Cuối để xác định quyền truy cập để kiểm tra chi tiết hệ thống.

<figure><img src="/files/bLSQcjJaRvFpHobKv6jr" alt=""><figcaption></figcaption></figure>

* Để phát hiện các điểm bất thường trong ứng dụng, hãy tìm kiếm các sai lệch so với các mẫu luồng dữ liệu bình thường của ứng dụng, chẳng hạn như truyền tệp lớn khi nó thường sử dụng ít dữ liệu.

#### **User Activity**

* **Dấu thời gian hoạt động:** Phân tích các mẫu lưu lượng mạng hàng giờ, hàng ngày hoặc hàng tuần bằng cách sử dụng dấu thời gian NetFlow để theo dõi hoạt động của người dùng.
* **Phân tích truy cập tài nguyên mạng:** Giám sát quyền truy cập của người dùng vào tài nguyên mạng và xác định thời điểm và dịch vụ nào mà một người dùng cụ thể đang truy cập.
* **Hành vi bất thường:** Điều tra lưu lượng truy cập từ người dùng vào thời điểm hoặc địa điểm không mong muốn, đặc biệt là truy cập vào các tài nguyên nhạy cảm hoặc quan trọng.
* **Phát hiện mối đe dọa nội bộ**
  * **Hoạt động ngoài giờ làm việc:** Sử dụng dữ liệu NetFlow để xác định quyền truy cập vào tài nguyên mạng bên ngoài giờ làm việc hoặc vào các ngày lễ. Hoạt động này có thể là một dấu hiệu tiềm ẩn của mối đe dọa nội bộ hoặc rò rỉ dữ liệu.
  * **Luồng dữ liệu bất thường:** Điều tra khả năng rò rỉ dữ liệu bằng cách giám sát việc truyền dữ liệu lớn hoặc truyền dữ liệu vi phạm các chính sách dữ liệu của tổ chức bạn.
  * **Mẫu truy cập:** Điều tra các mẫu truy cập bất thường, đặc biệt là bởi những người dùng không được phép, vào các hệ thống nơi lưu trữ thông tin nhạy cảm.

Để xác định các rủi ro tiềm ẩn trong các tập dữ liệu mạng lớn, bạn có thể sử dụng các khả năng lọc, sắp xếp và trực quan hóa của các công cụ phân tích NetFlow. Ngoài ra, các công cụ này có thể giúp xác định các mẫu lưu lượng liên quan đến các địa chỉ IP hoặc tài khoản người dùng cụ thể. Phân tích thông tin này một cách chi tiết là điều cần thiết để hiểu cách mạng hoạt động và cách ứng phó với các sự cố bảo mật.

## 6. TLS/SSL Analysis Techniques

TLS/SSL (Transport Layer Security/Secure Sockets Layer) là các giao thức mã hóa được sử dụng để liên lạc an toàn trên mạng. Trong pháp y mạng, phân tích lưu lượng TLS/SSL cho phép các chuyên gia bảo mật kiểm tra các luồng dữ liệu được mã hóa và xác định các mối đe dọa tiềm ẩn.

### Analyzing of TLS/SSL traffic

Phân tích lưu lượng TLS/SSL có thể giúp các chuyên gia bảo mật kiểm tra các giao tiếp mạng được mã hóa và phát hiện các hoạt động độc hại tiềm ẩn xảy ra ở dạng được mã hóa. Các kỹ thuật và phương pháp sau có thể được sử dụng:

### Analyzing Encryption Protocols and Cipher Suites (**Phân Tích Giao Thức Mã Hóa và Bộ Mật Mã)**

**Cipher suite information:** Xác định thuật toán mã hóa nào đang được sử dụng. Việc sử dụng các bộ mật mã yếu hoặc không an toàn có thể là dấu hiệu của các hệ thống được cấu hình kém hoặc phần mềm lỗi thời.

**Các phiên bản SSL/TLS:** Kiểm tra phiên bản giao thức SSL/TLS nào đang được sử dụng. Các phiên bản cũ hơn (SSLv2, SSLv3, TLSv1 ban đầu) có thể có các lỗ hổng đã biết.

Phần Giao thức của Wireshark chứa thông tin SSL/TLS. Bộ lọc "tls" có thể được sử dụng để chỉ lọc các gói TLS và hiển thị phiên bản TLS trong chi tiết gói.

<figure><img src="/files/x1FuosZD3QMXvBbX7D6z" alt=""><figcaption></figcaption></figure>

Ví dụ: khi kiểm tra lưu lượng mạng SSH được mã hóa, chúng ta có thể thấy phương pháp mã hóa trong chi tiết gói.

Những chi tiết này giúp chúng ta trong quy trình pháp y mạng. Chúng ta có thể xác định xem có lỗ hổng SSL/TLS nào có thể xảy ra hay không và liệu nó có bị khai thác hay không.

<figure><img src="/files/oceUIqZRUiVts564ammK" alt=""><figcaption></figcaption></figure>

### Encrypted Traffic Analysis

Để bảo mật mạng và pháp y mạng, việc giải mã lưu lượng HTTPS bằng Wireshark có thể rất quan trọng. HTTPS sử dụng các giao thức TLS/SSL để mã hóa lưu lượng web. Tuy nhiên, có thể làm cho lưu lượng được mã hóa này có thể đọc được bằng Wireshark, nếu có các khóa và cấu hình thích hợp. Quá trình giải mã lưu lượng HTTPS bằng Wireshark như sau:

Để giải mã lưu lượng HTTPS, cần có các khóa mã hóa được sử dụng trong quá trình thiết lập kết nối TLS. Các khóa này thường có thể được lấy theo hai cách:

1. **SSLKEYLOGFILE Environment Variable:** Các trình duyệt web hiện đại (Google Chrome, Mozilla Firefox, v.v.) có thể ghi các khóa mã hóa được sử dụng để giúp các nhà phát triển và người thử nghiệm vào một tệp. Để tận dụng tính năng này, bạn cần đặt biến môi trường SSLKEYLOGFILE của trình duyệt để chỉ định một tệp để ghi các khóa TLS. Sau đó, Wireshark sẽ sử dụng tệp này.

Ví dụ: trên Linux và MacOS, bạn có thể chạy lệnh sau trên terminal:

```bash
export SSLKEYLOGFILE=~/sslkeylog.log
```

Trong Windows, bạn có thể thực thi lệnh sau từ dòng lệnh:

```bash
set SSLKEYLOGFILE=C:\sslkeylog.log
```

2. **Tệp khóa máy chủ:** Nếu bạn có quyền truy cập và các đặc quyền thích hợp, bạn có thể trực tiếp sử dụng tệp khóa riêng tư được sử dụng bởi máy chủ. Tuy nhiên, phương pháp này không được khuyến nghị vì lý do bảo mật và chỉ nên được sử dụng trong môi trường thử nghiệm.

Mở Wireshark. Định cấu hình tệp khóa để giải mã lưu lượng được mã hóa:

1. Từ menu **`Edit`**, chuyển đến tab **`Preferences`**.
2. Tìm **`TLS`** trong **`Protocols`**.
3. Trong "**`Pre-Master-Secret log filename`**", nhập đường dẫn đến tệp được viết bởi **SSLKEYLOGFILE**.

<figure><img src="/files/5yJltlZ6DHifHQLDb7TQ" alt=""><figcaption></figcaption></figure>

Đầu tiên, khi kiểm tra cài đặt trên trong Wireshark, bạn sẽ thấy rằng lưu lượng HTTPS không được giải mã.

Ví dụ: bạn sẽ không thể đọc dữ liệu trong lưu lượng mạng đã thu thập ở dạng văn bản rõ ràng khi đăng nhập vào [https://letsdefend.io](https://letsdefend.io/).

<figure><img src="/files/FMC9299Va1ljcSgpSAJA" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/Nqn8lumscY9tPKe0fwOj" alt=""><figcaption></figcaption></figure>

Sau khi thực hiện các cài đặt cần thiết trong Wireshark, nếu chúng ta tạo lại cùng một lưu lượng mạng và phân tích nó, chúng ta có thể thấy rằng lưu lượng đang được đọc ở dạng văn bản rõ ràng.

<figure><img src="/files/nOzgcMSFOndKvt9WJmeW" alt=""><figcaption></figcaption></figure>

**Phát Hiện Bất Thường trong Lưu Lượng Mạng Được Mã Hóa**

* **Các mẫu mã hóa bất thường:** Quan sát các thay đổi không mong muốn trong các mẫu lưu lượng mạng được mã hóa. Điều này có thể chỉ ra hoạt động độc hại như đánh cắp dữ liệu hoặc lưu lượng máy chủ C2 (điều khiển và chỉ huy).
* **Lượng lưu lượng được mã hóa:** Khối lượng lưu lượng mạng được mã hóa bất ngờ, đặc biệt là sự gia tăng lưu lượng mạng được mã hóa, có thể chỉ ra hoạt động đáng ngờ.
* **Các lỗi bắt tay TLS:** Các lần bắt tay TLS thất bại hoặc không mong muốn thường xuyên có thể chỉ ra sự gián đoạn hoặc hoạt động độc hại.

**Kết luận**

TLS/SSL là các giao thức quan trọng để liên lạc mạng an toàn và việc phân tích các phương pháp mã hóa này có tầm quan trọng lớn trong lĩnh vực pháp y mạng. Đặc biệt, các hệ thống được cấu hình kém và phần mềm lỗi thời có thể làm tăng rủi ro bảo mật bằng cách sử dụng các giao thức cũ hoặc không an toàn. Sử dụng các công cụ như Wireshark, có thể phân tích lưu lượng HTTPS bằng cách làm cho nó có thể đọc được nếu các khóa thích hợp và cấu hình chính xác được sử dụng. Điều này đặc biệt hữu ích để phát hiện các sự cố bảo mật quan trọng như rò rỉ dữ liệu, lưu lượng mạng từ các máy chủ điều khiển và chỉ huy và các mối đe dọa bảo mật khác. Phân tích như vậy là quan trọng để cải thiện bảo mật mạng, ứng phó nhanh chóng với các vi phạm bảo mật và liên tục giám sát bảo mật của lưu lượng mạng.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://viettaliii.gitbook.io/home/soc-and-dfir/dfir/network-forensics.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
