All Projects → m-mizutani → octovy

m-mizutani / octovy

Licence: MIT license
Trivy based vulnerability management service

Programming Languages

go
31211 projects - #10 most used programming language
typescript
32286 projects

Projects that are alternatives of or similar to octovy

Nginx Ultimate Bad Bot Blocker
Nginx Block Bad Bots, Spam Referrer Blocker, Vulnerability Scanners, User-Agents, Malware, Adware, Ransomware, Malicious Sites, with anti-DDOS, Wordpress Theme Detector Blocking and Fail2Ban Jail for Repeat Offenders
Stars: ✭ 2,351 (+4509.8%)
Mutual labels:  vulnerability-scanners
Sec Admin
分布式资产安全扫描核心管理系统(弱口令扫描,漏洞扫描)
Stars: ✭ 222 (+335.29%)
Mutual labels:  vulnerability-scanners
LogMePwn
A fully automated, reliable, super-fast, mass scanning and validation toolkit for the Log4J RCE CVE-2021-44228 vulnerability.
Stars: ✭ 362 (+609.8%)
Mutual labels:  vulnerability-scanners
Shodanwave
Shodanwave is a tool for exploring and obtaining information from Netwave IP Camera.
Stars: ✭ 183 (+258.82%)
Mutual labels:  vulnerability-scanners
Grinder
🔎 Python framework to automatically discover and enumerate hosts from different back-end systems (Shodan, Censys)
Stars: ✭ 209 (+309.8%)
Mutual labels:  vulnerability-scanners
Ary
Ary 是一个集成类工具,主要用于调用各种安全工具,从而形成便捷的一键式渗透。
Stars: ✭ 241 (+372.55%)
Mutual labels:  vulnerability-scanners
Patrowlengines
PatrOwl - Open Source, Free and Scalable Security Operations Orchestration Platform
Stars: ✭ 162 (+217.65%)
Mutual labels:  vulnerability-scanners
dep-scan
Fully open-source security audit for project dependencies based on known vulnerabilities and advisories. Supports both local repos and container images. Integrates with various CI environments such as Azure Pipelines, CircleCI and Google CloudBuild. No server required!
Stars: ✭ 346 (+578.43%)
Mutual labels:  vulnerability-scanners
Angularjs Csti Scanner
Automated client-side template injection (sandbox escape/bypass) detection for AngularJS.
Stars: ✭ 214 (+319.61%)
Mutual labels:  vulnerability-scanners
Insectsawake
Network Vulnerability Scanner
Stars: ✭ 252 (+394.12%)
Mutual labels:  vulnerability-scanners
Sbt Dependency Check
SBT Plugin for OWASP DependencyCheck. Monitor your dependencies and report if there are any publicly known vulnerabilities (e.g. CVEs). 🌈
Stars: ✭ 187 (+266.67%)
Mutual labels:  vulnerability-scanners
Enumy
Linux post exploitation privilege escalation enumeration
Stars: ✭ 210 (+311.76%)
Mutual labels:  vulnerability-scanners
Saucerframe
python3批量poc检测工具
Stars: ✭ 242 (+374.51%)
Mutual labels:  vulnerability-scanners
Rebel Framework
Advanced and easy to use penetration testing framework 💣🔎
Stars: ✭ 183 (+258.82%)
Mutual labels:  vulnerability-scanners
inthewilddb
Hourly updated database of exploit and exploitation reports
Stars: ✭ 127 (+149.02%)
Mutual labels:  vulnerability-scanners
Vulscan
Advanced vulnerability scanning with Nmap NSE
Stars: ✭ 2,305 (+4419.61%)
Mutual labels:  vulnerability-scanners
Progpilot
A static analysis tool for security
Stars: ✭ 226 (+343.14%)
Mutual labels:  vulnerability-scanners
yamburger
YAML syntax got you down? That's a YAMBURGER!
Stars: ✭ 32 (-37.25%)
Mutual labels:  github-app
scalafmt-probot
🤖Github bot for checking code formatting with scalafmt
Stars: ✭ 15 (-70.59%)
Mutual labels:  github-app
Dr checker
DR.CHECKER : A Soundy Vulnerability Detection Tool for Linux Kernel Drivers
Stars: ✭ 251 (+392.16%)
Mutual labels:  vulnerability-scanners

Octovy Go Report Card Unit test Vulnerability scan Security scan

SampleView Demo site: https://octovy.dev

Overview

Octovy is a vulnerability management tool for 3rd party OSS packages based on Trivy. It works as GitHub App and scan source code of a repository that is installed the GitHub App by Trivy. The scan result is stored into database and developer and security administrator can see and manage vulnerability via Web console.

Features

  • Organization-wide vulnerability detection: Vulnerability detection and handling needs an organization-wide effort. Octovy scans all repositories that are installed GitHub App. It prepends misconfiguration of each repository. Also Octovy stores all scanned vulnerability package list and presents the necessary information to security administrator.
    • List newly detected vulnerabilities in your organization
    • List all repositories that have specified vulnerability
  • Vulnerability management: Octovy provides Web user interface to manage vulnerability status. A user can change status and put a comment to share vulnerability handling decision with a team. Status can be selected from below:
    • To be fixed: Vulnerability should be fixed later
    • Snoozed: Waiting vulnerability fix. E.g.) a package author have not update vulnerable code.
    • Unaffected: The vulnerability is not used in your product.
    • Mitigated: Developer have changed settings to disable the vulnerability.

Also, Octovy notifies changes of vulnerability in Pull Request of GitHub. Developer can see new/fixed package vulnerabilities by own commit in a comment of the PR.

Comment to PR

Architecture

architecture

Usage

Prerequisite

  • Prepare your own domain name. (e.g. octovy.dev)
  • PostgreSQL 13 database

Setup GitHub App

Replace {your-domain} to your own domain name.

  1. Create your own GitHub app at https://github.com/settings/apps/
  2. Configure General tab
    • Set Callback URL to https://{your-domain}/auth/github/callback
    • Set Webhook URL to https://{your-domain}/webhook/github
    • (Optional) Set Webhook secret if you need. The secret value should be provided as environment variable OCTOVY_GITHUB_WEBHOOK_SECRET to octovy runtime.
    • Generate Client secrets
    • Generate Private keys
  3. Configure Permissions & events tab
    • In Repository permissions
      • Change Contents to Read-only
      • Change Pull requests to Read & Write
    • In Subscribe to events
      • Enable Pull request
      • Enable Push

If you want to use auto generated URL (e.g. provided by API gateway of AWS or Cloud Run of Google Cloud), Callback URL and Webhook URL can be configured later.

Please note to remember to push Save changes button.

Deploy container image

Octovy container image is published into both of GitHub Container Registry ghcr.io/m-mizutani/octovy and Google Container Registry gcr.io/octovy/octovy.

Registry Commit Release Latest
GitHub Container Registry x x x
Google Container Registry x x
  • Commit: Images built by all push event on main branch. Tag is commit ID (e.g. ghcr.io/m-mizutani/octovy:2e96dedacb63c7c8ddf51fccac7780822081057a)
  • Release: Image built by release. Tag is version number (e.g. ghcr.io/m-mizutani/octovy:v0.1.0)
  • Latest: Image built by latest release. Tag is latest.

Run container image with following environment variables.

  • General
    • OCTOVY_FRONTEND_URL: Set https://{your-domain}
    • OCTOVY_ADDR: Recommend to use 0.0.0.0
    • OCTOVY_PORT: (Optional) Can change port number of octovy if you needed
    • OCTOVY_LOG_LEVEL: (Optional) Choose log level from trace, debug, `
    • OCTOVY_LOG_FORMAT: (Optional) Recommend to use json in cloud environment.
    • GIN_MODE: (Optional) Set release if you want to avoid debug log of gin-gonic.
  • GitHub App
    • OCTOVY_GITHUB_APP_ID: Set App ID of your GitHub App
    • OCTOVY_GITHUB_CLIENT_ID: Set Client ID of your GitHub App
    • OCTOVY_GITHUB_APP_PRIVATE_KEY: Set private key value (content of key file) of your GitHub App
    • OCTOVY_GITHUB_SECRET: Set Client secret of your GitHub App
    • OCTOVY_GITHUB_WEBHOOK_SECRET: (Optional) Set webhook secret that you set
  • Database
    • OCTOVY_DB_TYPE: Database type. Recommend to use postgres
    • OCTOVY_DB_CONFIG: DSN of your database. Example: host=x.x.x.x port=5432 user=octovy_app dbname=octovy_db password=xxxxxx
  • Custom GitHub check rule by Rego policy
    • OCTOVY_CHECK_POLICY_DATA: Check result policy in Rego (plain text)
    • OCTOVY_CHECK_POLICY_FILE: Check result policy in Rego (file path)
  • Custom GitHub check rule by OPA server
    • OCTOVY_OPA_URL: OPA server URL (e.g. https://opa.example.com)
    • OCTOVY_OPA_PATH: Additional path of OPA. For example, octovy accesses https://opa.example.com/v1/data/mypolicy/check by setting OCTOVY_OPA_PATH = mypolicy.
    • OCTOVY_OPA_IAP: Set "1" if you want to access OPA server through Google IAP

OCTOVY_GITHUB_APP_PRIVATE_KEY, OCTOVY_GITHUB_SECRET, OCTOVY_GITHUB_WEBHOOK_SECRET and OCTOVY_DB_CONFIG may contain secret values. I highly recommend to use secret variable management service (e.g. Secret Manager of Google Cloud and AWS Secrets Manager).

An example of deploy script to Cloud Run is available in tools/deploy_cloud_run.sh.

Custom GitHub check policy

You can define custom policy for result of GitHub check run by Rego.

Example

A following example is a policy to make CI fail if the commit has a package that has CVE-2021-0000 vulnerability.

package octovy.check

default result = "success"

result = "failure" {
    vulnID := input.sources[_].packages[_].vuln_ids[_]
    vulnID == "CVE-2021-0000"
}

Policy specification

  • Package
    • package octovy.check is required at head line of policy
  • Input
    • model.ScanReport of scan result
  • Output:
    • result as string type (required): It must be either one of conclusion in GitHub check parameters.
    • msg as string type (optional): The message will be appeared in title of check result if given.

License

The MIT License, Copyright 2021 Masayoshi Mizutani [email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].