# Key Components

## **eBPF Sniffer**

**Purpose:** Intercepts HTTP traffic by hooking into key system calls (`accept`, `read`, `write`, `close`) at the kernel level.\
**Deployment:** Runs as a **DaemonSet** in Kubernetes, ensuring coverage across all nodes.\
**Value:** Captures API traffic in **near real-time** with **low overhead** and **no code instrumentation**.

## **RabbitMQ (Message Queue)**

**Purpose:** Acts as a **scalable message broker** between the Sniffer and Aggregator.\
**Deployment:** Runs as a **Kubernetes Deployment** in the same cluster.<br>

## Aggregator

**Purpose:** Collects, filters, and **deduplicates HTTP session data** before generating HAR files.\
**Deployment:** Runs as a **Kubernetes Deployment**, pulling data from the Sniffer via **RabbitMQ**.\
**Responsibilities:**

* **Filtering** irrelevant traffic.
* **Deduplicating** repeated sessions.
* **Storing** the last X sessions in memory.
* **Providing an API** to generate HAR files on demand.

## **Attacker Container (Soon)**

**Purpose:** Accesses generated HAR files for **automated security scanning** and API testing.\
**Deployment:** Runs as a **sidecar container** within the Aggregator pod.\
**Benefit:** Enables **seamless vulnerability testing** **without extra network hops**.

## Security & Trust Considerations

### **Minimal System Footprint**

eBPF operates **in a sandboxed environment** at the **kernel level**, ensuring **system stability** with **minimal overhead**.

### **Controlled Access & Compliance**

**Strict access controls** allow only authenticated users and **designated microservices** to request HAR files.

**Filtered storage policies** prevent the retention of unnecessary or sensitive data.

### **End-to-End Data Protection**

**All communication is encrypted** between the Sniffer, Aggregator, and RabbitMQ.

Data remains contained **within your Kubernetes cluster**, ensuring **isolation and security compliance**.


---

# 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://docs.pynt.io/documentation/security-testing-integrations/live-traffic-connectors/ebpf/key-components.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.
