Giter VIP home page Giter VIP logo

kestrel-lang's Introduction

Kestrel Threat Hunting Language

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

[News] Kestrel hunt at Infosec Jupyterthon 2022 [IJ'22 live hunt recording]

[News] Kestrel session at Black Hat USA 2022 [BH'22 recording | BH'22 hunting lab]


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.

Try Kestrel in a cloud sandbox without install (Blog: Try Kestrel in a Cloud Sandbox).

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 TTP 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

Talks And Demos

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

Connecting With The Community

kestrel-lang's People

Contributors

subbyte avatar pcoccoli avatar tingdai avatar leila-rashidi avatar cmadam avatar imolloy avatar kinzhong avatar jmcasava avatar claurau avatar jasonkeirstead avatar oasis-op-admin avatar charliewutw1 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.