Skip to main content

No project description provided

Project description

pypanther

pypanther is a Python library for building Panther analysis content for the Panther cybersecurity product. It provides a simple and intuitive interface for creating, managing, and deploying detections to enhance your security posture. Included is a pypanther CLI tool to interact with your content and upload it to the Panther web app.

Features

  • Rule Creation: Easily create rules using Python classes and inheritance.
  • Management: Organize and manage rules efficiently with native Python.
  • Deployment: Upload detections and more to Panther for real-time detection.

Installation

To install pypanther, use pip:

pip install pypanther

Prerequisites

  • Python 3.11 or higher
  • Panther account and API access

Usage

  1. Import pypanther: Start by importing pypanther into your Python script.
  2. Create Rules: Subclass the Rule class to define new rules.
  3. Register Rules: Register your custom rules and Panther managed rules inside your main.py file.
  4. Test Rules: Test all your registered rules using pypanther test.
  5. Upload Rules: Upload all registered rules with your Panther deployment using the CLI tool (pypanther upload).

Getting Started

Here is a simple example to get you started:

from pypanther import Rule, register, LogType, Severity


# Create a new rule
class MyRule(Rule):
    id = "MyRule"
    default_severity = Severity.HIGH
    log_types = [LogType.OKTA_SYSTEM_LOG]

    def rule(self, event):
        return event.get("status") == "breached"


# register the rule
register(MyRule)

Check out the pypanther-starter-kit for more examples on how to use pypanther.

You can view detailed docs on the package and CLI tool on the panther docs.

Local Development

We use Poetry for dependency management and packaging. Poetry makes it easy to set up a consistent and isolated development environment.

Setting Up for Local Development

  1. Install Poetry: Follow the instructions on the Poetry website to install Poetry.

  2. Clone the repository: Clone the pypanther repository to your local machine.

    git clone git@github.com:panther-labs/pypanther.git
    cd pypanther
    
  3. Install dependencies: Use Poetry to install the project's dependencies.

    poetry install
    

    This will create a virtual environment and install all necessary dependencies specified in the pyproject.toml file.

  4. Activate the virtual environment: You can activate the virtual environment created by Poetry using:

    poetry shell
    
  5. Testing Locally: You can create a main.py file within the pypanther directory to test commands and functionality locally. This file can be used to run test commands or interact with pypanther features.

    • Create a main.py file: Here is an example main file. Assumes you have a folder called custom_rules with all your test rules.

      # pypanther/main.py
      
      from pypanther import register, get_panther_rules, get_rules
      import custom_rules
      
      
      register(get_panther_rules())
      register(get_rules(custom_rules))
      
    • Running the CLI: Use the following command to run main.py with Poetry:

      poetry run python ./pypanther/main.py <cmd>
      

      Replace <cmd> with any specific commands you want to test (e.g. test and upload)

  6. Adding Dependencies: If you need to add new dependencies, use the following command:

    poetry add <package-name>
    

    This will update the pyproject.toml file with the new dependency.

Contributing

We welcome contributions! Please fork the repository and submit a pull request for review. For major changes, please open an issue first to discuss what you would like to change.

Issues

If you encounter any issues or have questions, please open a support ticket.

License

pypanther is released under the GNU Affero General Public License.

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

pypanther-0.1.1a46.tar.gz (451.7 kB view details)

Uploaded Source

Built Distribution

pypanther-0.1.1a46-py3-none-any.whl (949.1 kB view details)

Uploaded Python 3

File details

Details for the file pypanther-0.1.1a46.tar.gz.

File metadata

  • Download URL: pypanther-0.1.1a46.tar.gz
  • Upload date:
  • Size: 451.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.9 Darwin/23.6.0

File hashes

Hashes for pypanther-0.1.1a46.tar.gz
Algorithm Hash digest
SHA256 a105515e7c82a34664b94a269d3cb1b9beea5c0e40b20ee99a452575a801e778
MD5 ffecf8d888e53e7c046445922ffcb3e1
BLAKE2b-256 29e6a52535e1b4350e679207a28b40aad53c01bf5e6c61484e5424bdcd04c7c2

See more details on using hashes here.

File details

Details for the file pypanther-0.1.1a46-py3-none-any.whl.

File metadata

  • Download URL: pypanther-0.1.1a46-py3-none-any.whl
  • Upload date:
  • Size: 949.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.9 Darwin/23.6.0

File hashes

Hashes for pypanther-0.1.1a46-py3-none-any.whl
Algorithm Hash digest
SHA256 e70f46cd5599d5c8d0fa7bb09a49e9ceb4050ef6ac272683dd54902c6a3f33cf
MD5 0877c2ac9eee5be35c3ea7b34abf01e6
BLAKE2b-256 354687bb1a69e6997204b1d60a9a1f3d196f53ff12253f7d8c29e2180857880b

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