Thanks to visit codestin.com
Credit goes to github.com

Skip to content

2024-scable/scable

Repository files navigation

Start secure your software supply chain with ease!

SCABLE is an open-source solution that systematically and automatically analyzes software components, providing comprehensive support for open-source security and license management.

SCABLE Main Image

More About SCABLEView DemoDownload BrochureReport Bug


Table of Contents


[1] About the Project

Why SCABLE?

SCABLE is designed to help organizations build a secure software supply chain by automating software component analysis and license management.

It leverages CodeQL Taint Analysis to efficiently identify real security threats and focuses on supply chain security management with features like:

  • Typosquatting detection
  • License compliance
  • Real-time CI/CD integration

Features

SCABLE provides six key functionalities:

  • 🛠️ Automated SBOM Generation
    Generate SBOMs in CycloneDX, SPDX, and SWID formats.

  • 🛡️ Identification of Real Threats
    Identify real security threats among vulnerabilities detected in SBOMs using advanced analysis.

  • 🔍 Open-Source License Analysis
    Ensure compliance by analyzing open-source licenses in your software.

  • 🕵️ Detection of Typosquatting & Malicious Packages
    Detect typosquatting attempts and analyze dependency reputation.

  • 📊 Dashboard Reporting
    Visualize SBOM analysis results in a user-friendly dashboard.

  • ⚙️ Seamless CI/CD Integration
    Integrate into CI/CD pipelines for automated security and compliance checks.

Technologies

  • CDXGEN: CycloneDX SBOM generation (Apache-2.0 License).
  • OSV-DEV: Vulnerability lookup based on OSV and NVD databases (Apache-2.0 License).
  • CodeQL: Taint Analysis for identifying vulnerable components (MIT License).
  • OSORI DB: Open-source license information (ODC-By 1.0 License).
  • React Tailwind Admin Template: Reporting dashboard (MIT License).

Supported Languages

  • Python (current support): SCABLE provides comprehensive analysis for Python-based projects.
  • Future Expansion: Support for additional programming languages is actively under development to meet diverse project needs.

[2] Getting Started

Prerequisites

SCABLE requires three ports for smooth operation:

  • 8282: Initial setup and SBOM generation/analysis requests.
  • 5173: Dashboard for viewing analysis results.
  • 8080: Used for Jenkins integration (optional).

Installation

1. Using Docker

git clone https://github.com/2024-scable/scable
docker compose up -d

2. Direct Installation on Linux

apt update && apt install -y curl
curl -s https://raw.githubusercontent.com/2024-scable/scable/main/setup.sh | bash

[3] API Reference

1. /sbom

Generates SBOM (Software Bill of Materials) in three standard formats: CycloneDX, SWID, and SPDX.

Tracks "Reachable Components" affected by user input and visualizes the analysis results on the web page.

⚠️ Important Note:
SCABLE currently provides robust analysis for Python-based projects and is actively evolving to include support for additional programming languages in the near future.
This will enable broader compatibility and adaptability for various development environments.

HTTP Request

GET http://127.0.0.1:8282/sbom

Request Patameters

Parameter Type Required Description
repo_url string Yes Git Repository URL or absolute path of the project to be analyzed
lan string Yes Fixed value: python

Example Request 1(Public Git URL Test)

curl "http://127.0.0.1:8282/sbom?repo_url=https://github.com/example/python-example&lan=python"

Example Request 2(Private Git URL Test)

curl "http://127.0.0.1:8282/sbom?repo_url=https://<USERNAME>:<TOKEN>@github.com/<OWNER>/<REPO>&lan=python"

Example Request 3(Absolute path of the project Test )

curl "http://127.0.0.1:8282/sbom?repo_url=/home/test/python-example&lan=python"

Example Response

[*] SCABLE ANALYZE START
[+] CREATE SBOM COMPLETE
[+] REACHABLE ANALYZE COMPLETE
[+] PACKAGE ANALYZE COMPLETE
[+] FINISHING WORK COMPLETE

{
  "date": "2024-12-03",
  "start_time": "20-24-26",
  "repository": "python-example",
  "language": "python",
  "reporting_url": "http://localhost:5173/2024-12-03_20-24-26_python-example"
}

2. /package-check

Evaluates the potential risk of a package by analyzing its age, days since the last modification, number of release versions, download count, GitHub stars, and typosquatting suspicion.

Assigns a score and risk level to identify potentially malicious packages.

HTTP Request

GET http://127.0.0.1:8282/package-check

Request Patameters

Parameter Type Required Description
package_name string Yes The name of the PyPI package to check

Example Request

curl "http://scable.kr:8282/package-check?package_name=requests"
curl "http://scable.kr:8282/package-check?package_name=numppy"

Example Response

#Example 1. Trusted Package
{
  "message": "Matches TOP 8000 PyPI packages",
  "package_name": "requests",
  "risk_level": "Green",
  "score": 0
}
#Example 2: Typosquatting Suspected
{
  "message": "Typosquatting suspected",
  "package_name": "numppy",
  "platform": "pypi",
  "reasons": {
    "Downloads < 300": "+20 points",
    "GitHub stars < 30": "+10 points",
    "Last modified > 2 years": "+10 points",
    "Versions count < 5": "+10 points"
  },
  "risk_level": "Red",
  "score": 50,
  "similar_packages": [
    [
      "numpy",
      90.9090909090909
    ]
  ],
  "status": "Warning",
  "version": null
}

[4] Usage Screenshots

SBOM DashBoard

SCABLE Dashboard

Vulnerable Components

SCABLE Vulnerabilities

Additional Vulnerability Details

SCABLE Vulnerabilities Detailed

Malicious Package Reporting DashBoard

SCABLE Dashboard Insights

Package Details

SCABLE Package Analysis

License Analysis DashBoard

SCABLE Advanced Dashboard

License Details

SCABLE License Analysis

Dependency Tree

SCABLE Dependency Tree

[5] SCABLE's VISION

"SCABLE ensures the reliability and security of software supply chains, empowering organizations to manage supply chain security efficiently and systematically."

✔️ Enhancing Transparency Across the Supply Chain

SCABLE enables organizations to clearly understand the components of their software supply chain through SBOM generation and license analysis. By adhering to global standards, SCABLE ensures trust and transparency.

✔️ Efficient and Practical Vulnerability Management

With CodeQL-based analysis and typosquatting detection, SCABLE identifies critical risks in the supply chain, allowing organizations to focus on resolving real security challenges.

✔️ Accessible and Scalable Solution

As an open-source and free security platform, SCABLE provides an easy-to-use solution for managing software supply chain security, ensuring accessibility for organizations of all sizes.

[6] Contact

SCABLE is an open-source project where everyone is welcome to contribute and collaborate. We look forward to hearing from you to improve and expand the project together.

Feel free to reach out for:

  • Questions about SCABLE
  • Suggestions for new features
  • Reporting issues or bugs
  • Collaboration opportunities

Let’s build a more secure software supply chain together!

[7] License

This project is licensed under the Apache License 2.0. SCABLE integrates open-source technologies, including CDXGEN (Apache-2.0), OSV-DEV (Apache-2.0), CodeQL (MIT), OSORI DB (ODC-By 1.0), and React Tailwind Admin Template (MIT). For details, refer to the respective project licenses.

License information can be found in the LICENSE file.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •