Skip to main content

A unified orchestration and enrichment layer for C/C++ static analysis tools

Project description

Picuscan

Picuscan (Picus: Latin for woodpecker; a scanner hunting for bugs in source code) is an orchestration and utility tool for C/C++ security code audits. It provides a unified interface for running multiple external static analysis (SAST) tools, aggregates and normalizes their findings, and enriches the results with security metadata such as CWE categories.

Picuscan does not perform static analysis itself; instead, it collects tool outputs and turns them into a single, audit-focused view. It also ranks findings using a heuristic that combines tool feedback with practical experience to help auditors prioritize likely true positives. Additional utilities support audit preparation, including generating compilation databases, preparing source code, and working with SARIF files.

Quick Start

Docker (Recommended)

$ docker pull ghcr.io/fraunhofer-aisec/picuscan:main
$ docker run --rm -it -v $PWD:$PWD:z -w $PWD --entrypoint bash ghcr.io/fraunhofer-aisec/picuscan:main
$ picuscan --help

See Installation → Docker for more details.

From PyPI

$ pipx install picuscan
$ picuscan --help

Note: When installing via pip, you must install the analysis tools separately. See Installation → Dependencies for a list of supported tools.

Usage

You need a compilation database for the analysis to work. Run analysis and generate a SARIF report:

$ picuscan analyze

See Usage for comprehensive documentation.

Documentation

  • Installation - Docker and pip installation
  • Usage - Analysis, compilation databases, preprocessing
  • Analyzers - Tool-specific options and configurations

License

Apache-2.0

Acknowledgments

This work was partly funded by the German Federal Ministry of Economic Affairs and Energy (BMWE) as part of the ATLAS-L4 project (grant no. 19A21048D). This work was partly funded by the German Federal Ministry of Education and Research (BMBF) as part of the SHIQ project (grant no. 16KIS1955).

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

picuscan-1.0.0rc1.tar.gz (73.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

picuscan-1.0.0rc1-py3-none-any.whl (113.4 kB view details)

Uploaded Python 3

File details

Details for the file picuscan-1.0.0rc1.tar.gz.

File metadata

  • Download URL: picuscan-1.0.0rc1.tar.gz
  • Upload date:
  • Size: 73.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for picuscan-1.0.0rc1.tar.gz
Algorithm Hash digest
SHA256 48e5cf1105ea46bb8554abea9e6eee3693251426719753d4f4f35768c040adad
MD5 ba864cbf143ff5fdc114fce67e23bc30
BLAKE2b-256 ed9300f32247e433528646611e0d6f246e763997cd8b5eb8cd05e94fd9d46c29

See more details on using hashes here.

Provenance

The following attestation bundles were made for picuscan-1.0.0rc1.tar.gz:

Publisher: python-publish.yml on Fraunhofer-AISEC/picuscan

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file picuscan-1.0.0rc1-py3-none-any.whl.

File metadata

  • Download URL: picuscan-1.0.0rc1-py3-none-any.whl
  • Upload date:
  • Size: 113.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for picuscan-1.0.0rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 8d3afd956ff88e84a822a3031df41df815332d2926434947e91a36692bdf4d81
MD5 4e652eccbe20e8277c8b0f8165b7f17f
BLAKE2b-256 dc3c5f8b352146a408af1f36648510b731cec569004c2455b843a9461cc5793b

See more details on using hashes here.

Provenance

The following attestation bundles were made for picuscan-1.0.0rc1-py3-none-any.whl:

Publisher: python-publish.yml on Fraunhofer-AISEC/picuscan

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page