No project description provided
Project description
PyPanther
pypanther is a Python framework for writing detection rules with Panther. It provides an intuitive interface for creating, managing, and deploying detections to enhance your security operations. Included is a pypanther CLI tool to interact with your content and upload it to a Panther instance.
Features
- Rule Creation: Easily create rules using Python classes and inheritance
- Type Safety: Built with type hints for better IDE support and code quality
- Testing Framework: Built-in testing utilities for rule validation
- CLI Tool: Command-line interface for managing and deploying rules
- Helper Functions: Common security detection patterns and utilities
- Log Type Support: Native support for major cloud and security log types
Installation
From PyPI
To install pypanther from PyPI, use pip:
pip install pypanther
From Source
To install from source:
git clone https://github.com/panther-labs/pypanther.git
cd pypanther
pip install -e .
Development Setup
For development, we recommend using Poetry:
-
Install Poetry: Follow the instructions on the Poetry website to install Poetry.
-
Clone and Install:
git clone git@github.com:panther-labs/pypanther.git cd pypanther poetry install
-
Activate the Environment:
poetry shell
Prerequisites
- Python 3.11 or higher
- Panther instance with API access
- Poetry (for development)
Quick Start
Here is a simple main.py to get you started with development. Place this in the base directory:
from pypanther import get_panther_rules, register
register(get_panther_rules())
$ poetry run pypanther list rules --log-types Panther.Audit
+-------------------------------------+---------------+------------------+---------+
| id | log_types | default_severity | enabled |
+-------------------------------------+---------------+------------------+---------+
| Panther.Detection.Deleted-prototype | Panther.Audit | INFO | True |
| Panther.SAML.Modified-prototype | Panther.Audit | HIGH | True |
| Panther.Sensitive.Role-prototype | Panther.Audit | HIGH | True |
| Panther.User.Modified-prototype | Panther.Audit | HIGH | True |
+-------------------------------------+---------------+------------------+---------+
For more detailed examples and implementation patterns, check out the pypanther-starter-kit.
Documentation
Development
Running Tests
poetry run pytest
Code Style
We use ruff for code formatting and linting, and mypy for type checking. To format and lint your code:
# Format code
poetry run ruff format .
# Check and fix imports
poetry run ruff check --select I --fix .
# Run all linting checks
poetry run ruff check --fix .
# Run type checking
poetry run mypy .
You can also use the provided Makefile commands:
# Format code and fix imports
make fmt
# Run all linting and type checking
make lint
Development Guidelines
- Follow PEP 8 style guide
- Use
rufffor code formatting and linting - Use
mypyfor type checking - Add tests for new features
- Update documentation as needed
- Keep commits clean and well-documented
- Add type hints to all new code
Code of Conduct
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code.
Architecture
PyPanther is built with the following design principles:
- Modularity: Rules are self-contained and easily composable
- Type Safety: Comprehensive type hints for better development experience
- Extensibility: Easy to add new rule types and log sources
- Testability: Built-in testing framework for rule validation
License
pypanther is released under Apache License 2.0.
Acknowledgments
- Thanks to all our contributors
- Built with ❤️ by Panther Labs
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pypanther-0.1.1a61.tar.gz.
File metadata
- Download URL: pypanther-0.1.1a61.tar.gz
- Upload date:
- Size: 576.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.11.11 Darwin/24.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4a9e73bf5bf788dcfe670dee64e66c693ba1ff87b3db0aa08fb7511628a99246
|
|
| MD5 |
2745f6218887e1f6550fa9f928189103
|
|
| BLAKE2b-256 |
d142d5a9d329ba368978750dd166f097db8484aada5665d1f9c20ac94949fbd6
|
File details
Details for the file pypanther-0.1.1a61-py3-none-any.whl.
File metadata
- Download URL: pypanther-0.1.1a61-py3-none-any.whl
- Upload date:
- Size: 1.2 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.11.11 Darwin/24.6.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
923ef882d253ac1305877ae66536807cadf68f5952db37ad246f93ab390961c2
|
|
| MD5 |
70f7e2a70225891751bdaf93d04e5cc3
|
|
| BLAKE2b-256 |
dbb207c8a21df9495d7c004d7e198e797173da8cfb55c0a6232f9a3bacc3417d
|