# Анализируем трафик с ZUI (Zed User Interface)

### **Что такое ZUI**

Работает на движе ZED, который написан на Go и сос­тоит различных эле­мен­тов. Чаще его сравнивают с Wireshark. И тут есть несколько принципиальных позитивных отличий: ско­рость работы, под­дер­жка сиг­натур и ана­лиз логов.

Но есть и недостатки: не умеет декоди­ровать пакеты и экспор­тировать най­ден­ные в тра­фике фай­лы.

### **Установка ZUI на Linux**

Выполняем коман­ды:

```
wget "https://github.com/brimdata/brim/releases/download/v0.31.0/Brim-0.31.0.deb"
sudo chmod +x ./Brim-0.31.0.deb; apt install ./Brim-0.31.0.deb
```

> Важно: не забудьте изменить вер­сию в коман­де, что­бы установить самый последний релиз.

### **Установка ZUI на Windows и macOS**

Тут дос­таточ­но ска­чать с офи­циаль­ного страницы файл установки.

### Как использовать ZUI <a href="#kak-ispolzovat-zui" id="kak-ispolzovat-zui"></a>

Нужно найти в логах необходимые поля и отфиль­тро­вать по ним логи. После стро­ка зап­роса будет обрастать новыми и новыми усло­виями поис­ка.

<figure><img src="https://telegra.ph/file/aedd6f163140754014cca.png" alt=""><figcaption><p>Создание фильтрующего правила</p></figcaption></figure>

**Примеры зап­росов поис­ка**

Ко­личес­тво каж­дой катего­рии тегов:

```
count() by _path | sort -r
```

Все уни­каль­ные DNS queries:

```
_path=="dns" | count() by query | sort -r
```

SMB- и RPC-тра­фик в сис­темах Windows:

```
_path matches smb* OR _path=="dce_rpc"
```

HTTP-зап­росы и филь­тра­ция полез­ных колонок:

```
_path=="http" | cut id.orig_h, id.resp_h, id.resp_p, method, host, uri | uniq -c
```

Уни­каль­ные кон­некты и их количес­тво:

```
_path=="conn" | cut id.orig_h, id.resp_p, id.resp_h | sort | uniq
```

Ко­личес­тво передан­ных бай­тов на один кон­нект:

```
_path=="conn" | put total_bytes := orig_bytes + resp_bytes | sort -r total_bytes | cut uid, id, orig_bytes, resp_bytes, total_bytes
```

По­иск переда­ваемых фай­лов:

```
filename!=null | cut _path, tx_hosts, rx_hosts, conn_uids, mime_type, filename, md5, sha1
```

Все зап­росы HTTP Post:

```
method=="POST" | cut ts, uid, id, method, uri, status_code
```

Все IP-под­сети:

```
_path=="conn" | put classnet := network_of(id.resp_h) | cut classnet | count() by classnet | sort -r
```

Де­монс­тра­ция всех сра­баты­ваний сиг­натур Suricata и их количес­тво:

```
event_type=="alert" | count() by alert.severity,alert.category | sort count
```

Де­монс­тра­ция всех сра­баты­ваний сиг­натур Suricata, отфиль­тро­ван­ных по Source IP и Destination IP:

```
event_type=="alert" | alerts := union(alert.category) by src_ip, des
```


---

# 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://notes.kraken-security.ru/kraken/krupicy-znanii/instrumenty/analiziruem-trafik-s-zui-zed-user-interface.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.
