Skip to main content

Kestrel Threat Hunting Language CLI Multi-tool

Project description

Kestrel Threat Hunting Language

Documentation Status Latest Version PyPI Downloads Code Coverage Code Style: Black


Kestrel is a threat hunting language aiming to make cyber threat hunting fast by providing a layer of abstraction to build reusable, composable, and shareable hunt-flow. Starting with:

  1. Black Hat USA 2022 session recording

  2. Black Hat USA 2022 Kestrel hunting lab

  3. Kestrel live tutorial in a cloud sandbox

News

The Goal

Software developers write Python or Swift than machine code to quickly turn business logic into applications. Threat hunters write Kestrel to quickly turn threat hypotheses into hunt-flow. We see threat hunting as an interactive procedure to create customized intrusion detection systems on the fly, and hunt-flow is to hunts as control-flow is to ordinary programs.

What does it mean by hunt fast?

  • Do NOT write the same IoB pattern in different data source queries.

  • Do NOT write one-time-use adapaters to connect hunt steps.

  • Do NOT waste your existing analytic scripts/programs in future hunts.

  • Do construct your hunt-flow from smaller reuseable hunt-flow.

  • Do share your huntbook with your future self and your colleagues.

  • Do get interactive feedback and revise hunt-flow on the fly.


Kestrel Hunting Demo

Kestrel in a Nutshell

Kestrel overview.
  • Kestrel language: a threat hunting language for a human to express what to hunt.

    • expressing the knowledge of what in patterns, analytics, and hunt flows.

    • composing reusable hunting flows from individual hunting steps.

    • reasoning with human-friendly entity-based data representation abstraction.

    • thinking across heterogeneous data and threat intelligence sources.

    • applying existing public and proprietary detection logic as analytic hunt steps.

    • reusing and sharing individual hunting steps, hunt-flow, and entire huntbooks.

  • Kestrel runtime: a machine interpreter that deals with how to hunt.

    • compiling the what against specific hunting platform instructions.

    • executing the compiled code locally and remotely.

    • assembling raw logs and records into entities for entity-based reasoning.

    • caching intermediate data and related records for fast response.

    • prefetching related logs and records for link construction between entities.

    • defining extensible interfaces for data sources and analytics execution.

Basic Concepts and Howto

Visit Kestrel documentation to learn Kestrel:

Kestrel Huntbooks And Analytics

Kestrel Hunting Blogs

  1. Building a Huntbook to Discover Persistent Threats from Scheduled Windows Tasks

  2. Practicing Backward And Forward Tracking Hunts on A Windows Host

  3. Building Your Own Kestrel Analytics and Sharing With the Community

  4. Setting Up The Open Hunting Stack in Hybrid Cloud With Kestrel and SysFlow

  5. Try Kestrel in a Cloud Sandbox

  6. Fun with securitydatasets.com and the Kestrel PowerShell Deobfuscator

  7. Kestrel Data Retrieval Explained

Talks And Demos

Talk summary (visit Kestrel documentation on talks to learn details):

Connecting With The Community

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kestrel_tool-2.0.0b0.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

kestrel_tool-2.0.0b0-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file kestrel_tool-2.0.0b0.tar.gz.

File metadata

  • Download URL: kestrel_tool-2.0.0b0.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for kestrel_tool-2.0.0b0.tar.gz
Algorithm Hash digest
SHA256 55023829c5cacd8f9fef60b142ca3fd8e237d596df6f780fad1387a4ad118d8f
MD5 b10bac49c34f7beeef62bc0f2fc255d5
BLAKE2b-256 3e35aa3a6faec970a12634a9c8719c74662c6c29934b4e5e2247767333adcc96

See more details on using hashes here.

File details

Details for the file kestrel_tool-2.0.0b0-py3-none-any.whl.

File metadata

File hashes

Hashes for kestrel_tool-2.0.0b0-py3-none-any.whl
Algorithm Hash digest
SHA256 7499f41e889251ea07264eef3e3a64fcb282f20ff408555e6dec31d2199b7497
MD5 4d28a8c15006b4c016286e7cd5276992
BLAKE2b-256 20fec90bd685e99361f35bf1ed75849f0332ec8fb8876bd700f7698e61f49f72

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page