Skip to main content

A powerful scanner to scan your Filesystem, S3, MySQL, Redis, Google Cloud Storage and Firebase storage for PII and sensitive data.

Project description

HAWK Eye

🦅 HAWK Eye - Highly Advanced Watchful Keeper Eye

HAWK Eye is a powerful and versatile CLI (Command-Line Interface) tool designed to be your vigilant watchkeeper, guarding against potential data breaches and cyber threats across various platforms. Inspired by the precision and vision of majestic birds of prey, HAWK Eye swiftly scans multiple data sources, including S3, MySQL, Redis, Firebase, filesystem, and Google Cloud buckets (GCS), for Personally Identifiable Information (PII) and secrets.

Why "HAWK Eye"?

The name "HAWK Eye" captures the essence of a Highly Advanced Watchful Keeper. Like the keen vision of a hawk, this tool enables you to monitor and safeguard your data with precision and accuracy, ensuring data privacy and security.

HAWK Eye in Action

See how this works on Youtube - https://youtu.be/LuPXE7UJKOY

HAWK Eye Demo HAWK Eye Demo

Key features

  • Swiftly scans multiple data sources (S3, MySQL, Redis, Firebase, filesystem, and GCS) for PII data and malware exposure.
  • Advanced algorithms and deep scanning capabilities provide thorough security auditing.
  • Real-time alerts and notifications keep you informed of potential data vulnerabilities using Slack and other integrations, with more coming soon.
  • New command support for S3, MySQL, Redis, Firebase, filesystem, and GCS expands the tool's capabilities.
  • --debug flag enables printing of all debugging output for comprehensive troubleshooting.
  • Save output in JSON format using the --json flag and specify a file name like --json output.json.
  • Proudly crafted with love and a sense of humor to make your security journey enjoyable and stress-free.

Installation

HAWK Eye is a Python-based CLI tool that can be installed using the following steps:

  1. Clone the HAWK Eye repository to your local machine.
    git clone https://github.com/rohitcoder/hawk-eye.git
    
  2. Navigate to the HAWK Eye directory.
  3. Run the following command to install the required dependencies:
    pip3 install -r requirements.txt
    
  4. Create a connection.yml file in the root directory and add your connection profiles (see the "How to Configure HAWK Eye Connections" section for details).
  5. Run the following command to install HAWK Eye:
    python3 main.py
    

Usage

To unleash the power of HAWK Eye, simply follow the steps mentioned in the "Usage" section of the "README.md" file.

Options

Note: If you don't provide any command, it will run all commands (firebase, fs, gcs, mysql, redis, s3) by default.

Option Description
firebase Scan Firebase profiles for PII and secrets data.
fs Scan filesystem profiles for PII and secrets data.
gcs Scan GCS (Google Cloud Storage) profiles for PII and secrets data.
mysql Scan MySQL profiles for PII and secrets data.
redis Scan Redis profiles for PII and secrets data.
s3 Scan S3 profiles for PII and secrets data.
--connection Provide a connection YAML local file path like --connection connection.yml, this file will contain all creds and configs for different sources and other configurations.
--fingerprint Provide a fingerprint file path like --fingerprint fingerprint.yml, this file will override default fingerprints.
--debug Enable Debug mode.
--json Provide --json file name to save output in json file like --json output.json
--shutup Use --shutup flag if you want to hide Hawk ASCII art from your terminal 😁

How to Configure HAWK Eye Connections (Profiles in connection.yml)

HAWK Eye uses a YAML file to store connection profiles for various data sources. The connection.yml file is located in the config directory. You can add new profiles to this file to enable HAWK Eye to scan additional data sources. The following sections describe the process for adding new profiles to the connection.yml file.

Your connection fille will look like this

notify:
  slack:
    webhook_url: https://hooks.slack.com/services/T0XXXXXXXXXXXXXX/B0XXXXXXXXXXXXXX/1CIyXXXXXXXXXXXXXX

sources:
  redis:
    redis1:
      host: 127.0.0.1

  s3:
    s3_1:
      access_key: YOUR_S3_ACCESS_KEY
      secret_key: YOUR_S3_SECRET_KEY
      bucket_name: YOUR_S3_BUCKET_NAME
      cache: True

  gcs:
    gcs1:
      credentials_file: /Users/rohitcoder/Downloads/credential_file.json
      bucket_name: test-proj.appspot.com
      cache: True
      exclude_patterns:
        - .pdf
        - .docx
        - private

  firebase:
    firebase1:
      credentials_file: /Users/rohitcoder/Downloads/credential_file.json
      bucket_name: test-proj.appspot.com
      cache: True
      exclude_patterns:
        - .pdf
        - .docx

  mysql:
    mysql1:
      host: localhost
      port: 8889
      user: YOUR_MYSQL_USERNAME
      password: YOUR_MYSQL_PASSWORD
      database: YOUR_MYSQL_DATABASE_NAME

  fs:
    fs1:
      path: /Users/rohitcoder/Desktop/Projects/pii-search/data/google_cloud_storage/
      exclude_patterns:
        - .pdf
        - .docx
        - venv
        - node_modules

You can add or remove profiles from the connection.yml file as needed. You can also configure only one or two data sources if you don't need to scan all of them.

Adding New Commands

HAWK Eye's extensibility empowers developers to contribute new security commands. Here's how:

  1. Fork the HAWK Eye repository to your GitHub account.
  2. Create a new Python file for your security command inside the commands directory, with a descriptive name.
  3. Define a function execute(args) within the new Python file, containing the logic for your command.
  4. Provide clear documentation and comments explaining the purpose and usage of the new command.
  5. Thoroughly test your command to ensure it works seamlessly and aligns with the existing features.
  6. Submit a pull request from your branch to the main HAWK Eye repository.
  7. The maintainers will review your contribution, provide feedback if needed, and merge your changes.

Contribution Guidelines

We welcome contributions from the open-source community to enhance HAWK Eye's capabilities in securing data sources. To contribute:

  1. Fork the HAWK Eye repository to your GitHub account.
  2. Create a new branch from the main branch for your changes.
  3. Adhere to the project's coding standards and style guidelines.
  4. Write clear and concise commit messages for your changes.
  5. Include appropriate test cases for new features or modifications.
  6. Update the "README.md" file to reflect any changes or new features.
  7. Submit a pull request from your branch to the main branch of the HAWK Eye repository.
  8. The maintainers will review your pull request and work with you to address any concerns.
  9. After approval, your contributions will be merged into the main codebase.

Join the HAWK Eye community and contribute to data source security worldwide. For any questions or assistance, feel free to open an issue on the repository.

Donation

If you find HAWK Eye useful and would like to support the project, please consider making a donation. All 100% of the donations will be distributed to charities focused on education welfare and animal help.

How to Donate

Feel free to make a donation directly to the charities of your choice or send it to us, and we'll ensure it reaches the deserving causes. Just reach out to us on LinkedIn or Twitter to let us know about your contribution. Your generosity and support mean the world to us, and we can't wait to express our heartfelt gratitude.

Your donations will play a significant role in making a positive impact in the lives of those in need. Thank you for considering supporting our cause!

💪 Contributors

We extend our heartfelt appreciation to all contributors who continuously improve this tool! Your efforts are essential in strengthening the security landscape. 🙏

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

hawk_scanner-0.1.0.tar.gz (19.8 kB view details)

Uploaded Source

Built Distribution

hawk_scanner-0.1.0-py2.py3-none-any.whl (21.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file hawk_scanner-0.1.0.tar.gz.

File metadata

  • Download URL: hawk_scanner-0.1.0.tar.gz
  • Upload date:
  • Size: 19.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.4

File hashes

Hashes for hawk_scanner-0.1.0.tar.gz
Algorithm Hash digest
SHA256 30c958f1fa13c38bd4a47a17f4f9139e220f7de103b1249f349bba0eb97cdf31
MD5 b26619776188b968ce3a1366db470314
BLAKE2b-256 c73277ca4d01196aee5af28c33beefd54d2e5ec4113bfcb078732a0acc04b520

See more details on using hashes here.

File details

Details for the file hawk_scanner-0.1.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for hawk_scanner-0.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 422688b805478c3a78a869b39db4060e7376e06d55596282e6669f0c7b78e096
MD5 6a25411f014014ccd99b47af4c5f7f13
BLAKE2b-256 74a5dd60cb92658dc9bf0a39c1e5057b01f85c0d26035b4b9ff20a73905fe808

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