بنقرة واحدة
report-generation
Generate a Markdown security report from aggregated DNS exfiltration scores.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Generate a Markdown security report from aggregated DNS exfiltration scores.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Merge Stage 2 DNS analysis scores and calculate final exfiltration verdicts.
Capture live DNS queries with tcpdump for a configurable duration, save the traffic to a PCAP file, and process it through the existing PCAP reader. Use when a user explicitly requests timed live DNS capture from a network interface.
Compute DGA probabilities using a pre-trained RandomForest model.
Score DNS queries for anomalies using the trained embedding similarity model.
Calculate DNS subdomain entropy scores for exfiltration and DGA detection.
Normalize DNS input from PCAP or CSV into one unified JSON dataset.
| name | report-generation |
| description | Generate a Markdown security report from aggregated DNS exfiltration scores. |
Generate a Markdown security report from aggregated DNS exfiltration scores.
Used by report_agent in Stage 3 after orchestrator_agent writes
outputs/<run_timestamp>/scores.json.
generate_report(input_path: str, output_path: str, top_n: int = 10) -> dict
Use this skill after Stage 2 scores have been aggregated into scores.json.
The input must be a JSON array where each record contains the final combined
score and verdict for one DNS query.
| Parameter | Type | Required | Description |
|---|---|---|---|
input_path | str | yes | Path to aggregated scores.json |
output_path | str | yes | Path to write the Markdown report |
top_n | int | no | Number of top records to list |
Each score record should contain:
| Field | Type | Description |
|---|---|---|
query_id | int | Query identifier from Stage 1 |
domain | str | Full DNS domain |
label | str | Ground-truth label if available |
source | str | Data source, such as pcap or csv |
entropy_score | float | Raw entropy score |
dga_score | float | DGA probability |
embed_score | float | Embedding anomaly score |
combined_score | float | Final weighted score |
verdict | str | benign or suspected |
Returns a dict with processing summary:
| Field | Type | Description |
|---|---|---|
total_queries | integer | Number of records in scores.json |
suspected_count | integer | Count where verdict is suspected |
report_file | string | Path where the report was written |
Also writes a Markdown file to output_path.
The generated report includes:
{"error": "file_not_found", ...}{"error": "invalid_json", ...}{"error": "invalid_format", ...}from tools.generate_report import generate_report
result = generate_report(
input_path="outputs/<run_timestamp>/scores.json",
output_path="outputs/<run_timestamp>/exfil_report.md",
top_n=10,
)
print(f"Report written to {result['report_file']}")
orchestrator_agent preserving the source
field from Stage 2 score records.