Skip to main content

Introduction

Integrating Prowler with external tools enhances its functionality and enables seamless workflow automation. Prowler supports a variety of integrations to optimize security assessments and reporting.

Supported Integration Targets

  • Messaging Platforms – Example: Slack
  • Project Management Tools – Example: Jira
  • Cloud Services – Example: AWS Security Hub

Integration Guidelines

To integrate Prowler with a specific product: Refer to the Prowler Developer Guide to understand its architecture and integration mechanisms.
  • Identify the most suitable integration method for the intended platform.

Steps to Create an Integration

Defining the Integration Purpose

  • Before implementing an integration, clearly define its objective. Common purposes include:
    • Sending Prowler findings to a platform for alerting, tracking, or further analysis.
    • For inspiration and implementation examples, please review the existing integrations in the prowler/lib/outputs folder.

Developing the Integration

  • Script Development:
    • Write a script to process Prowler’s output and interact with the target platform’s API.
    • If the goal is to send findings, parse Prowler’s results and use the platform’s API to create entries or notifications.
  • Configuration:
    • Ensure the script supports environment-specific settings, such as:
      • API endpoints
      • Authentication tokens
      • Any necessary configurable parameters.

Fundamental Structure

  • Integration Class:
    • To implement an integration, create a class that encapsulates the required attributes and methods for interacting with the target platform. Example: Jira Integration
    Jira Class
  • Test Connection Method:
    • Validating Credentials or Tokens To ensure a successful connection to the target platform, implement a method that validates authentication credentials or tokens.

    Method Implementation

    The following example demonstrates the test_connection method for the Jira class:
    Test connection
  • Send Findings Method:
    • Add a method to send Prowler findings to the target platform, adhering to its API specifications.

    Method Implementation

    The following example demonstrates the send_findings method for the Jira class:
    Send findings method

Testing the Integration

  • Conduct integration testing in a controlled environment to validate expected behavior. Ensure the following:
    • Transmission Accuracy – Verify that Prowler findings are correctly sent and processed by the target platform.
    • Error Handling – Simulate edge cases to assess robustness and failure recovery mechanisms.

Documentation

  • Ensure the following elements are included:
    • Setup Instructions – List all necessary dependencies and installation steps.
    • Configuration Details – Specify required environment variables, authentication steps, etc.
    • Example Use Cases – Provide practical scenarios demonstrating functionality.
    • Troubleshooting Guide – Document common issues and resolution steps.
    • Comprehensive and clear documentation improves maintainability and simplifies onboarding.