Skip to main content

Rekor Transparency Log Verifier

Project description

Software Supply Chain Security

Project Overview

This project is an implementation of software supply chain security tools and technologies.

Assignments Overview

The project is divided into the following assignments:

Assignment 1: Artifact Signing and Verification

Tasks

  1. Create a text file artifact (artifact.md) containing your NYU Net ID.
  2. Install Sigstore’s cosign tool and sign the artifact, uploading its signature to the Rekor transparency log.
  3. Write Python code to:
    • Fetch entry details from the Rekor log.
    • Extract signature and certificate.
    • Verify the signature using the public key from the certificate.
    • Verify the inclusion proof of the artifact.
  4. Implement code to check the consistency between older and latest checkpoints in the transparency log.

Assignment 2: Code Quality Improvement

Tasks

  1. Code Review:

    • Collaborate with teammates to conduct a code review on their GitHub repositories.
    • Create issues linked to specific lines of code for feedback and discussion.
    • Resolve all raised issues in the following week.
  2. Static Analysis Tools:

    • Black for formatting
    • Flake8, ruff, and pylint for linting
    • mypy for type checking
    • Bandit for SAST (Static Application Security Testing)

Assignment 3: Git Best Practices and Dependency Management

Tasks

  1. Git Best Practices:

    • Add the following files to the repository:
      • README.md for project documentation.
      • SECURITY.md to outline security policies.
      • CONTRIBUTING.md to guide contributions.
      • LICENSE for legal permissions.
      • CODEOWNERS to define code ownership.
      • .gitignore to exclude unnecessary files.
    • Configure branch protection rules to prevent direct commits to main without a pull request.
  2. Prevent Secrets Leakage:

    • Set up trufflehog and pre-commit hooks to prevent committing secrets.
    • Configure pre-commit to scan only the latest commit for secrets.
  3. Scrub Old Secrets:

    • Add a personal.txt file containing sample data and commit it.
    • Use git-filter-repo to remove the file from the repository history.
    • Document the steps in part3-writeup.txt.
  4. Build System Configuration:

    • Set up Poetry for dependency management and create a pyproject.toml file.
    • Add tools like mypy, black, ruff, flake8, pylint, and bandit to pyproject.toml.
  5. Testing and Coverage:

    • Add unit tests using pytest with at least 10 test cases.
    • Install pytest-cov to measure code coverage and ensure at least 75% coverage.

More assignments to come

Tools and Technologies

  • Programming Language: Python
  • Version Control: Git (GitHub for repository management)
  • Signing Tool: Sigstore (cosign)
  • Transparency Log: Rekor
  • Static Analysis Tools: Black or Ruff for formatting, Flake8 or Ruff for linting, Bandit for SAST, mypy for type checking
  • Dependency Management: Poetry
  • Testing Framework: pytest with pytest-cov for coverage measurement

Note: This document will be updated as more assignments are released.

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

rektor-4.0.0.tar.gz (9.6 kB view details)

Uploaded Source

Built Distribution

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

rektor-4.0.0-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

Details for the file rektor-4.0.0.tar.gz.

File metadata

  • Download URL: rektor-4.0.0.tar.gz
  • Upload date:
  • Size: 9.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.12.7 Darwin/24.1.0

File hashes

Hashes for rektor-4.0.0.tar.gz
Algorithm Hash digest
SHA256 0776c9a177aac216418f177b14b15124889dd7769a31bcee5a84caf7f5ae444f
MD5 e54858d424cd8b0fece95f104a6b2cd5
BLAKE2b-256 a4a165a1507335721446ca218b870ee3f34ca6b9000daa4274d04c95916f3481

See more details on using hashes here.

File details

Details for the file rektor-4.0.0-py3-none-any.whl.

File metadata

  • Download URL: rektor-4.0.0-py3-none-any.whl
  • Upload date:
  • Size: 9.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.12.7 Darwin/24.1.0

File hashes

Hashes for rektor-4.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 44c4dc5c391a1c6255c059140e9a25cc710a0865d4d2737667182371c8052ed4
MD5 3216c130f17b3af781ee66fcece9b316
BLAKE2b-256 5768f63e36aff3fcc5ec385d57948d9fbf3129a3e183b7644031d8c091559270

See more details on using hashes here.

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