Kali Linux

Combobulator : Framework To Detect And Prevent Dependency Confusion Leakage And Potential Attacks

Combobulator is an Open-Source, modular and extensible framework to detect and prevent dependency confusion leakage and potential attacks. This facilitates a holistic approach for ensuring secure application releases that can be evaluated against different sources (e.g., GitHub Packages, JFrog Artifactory) and many package management schemes (e.g., ndm, maven).

Intended Audiences

The framework can be used by security auditors, pentesters and even baked into an enterprise’s application security program and release cycle in an automated fashion.

Main features

  • Pluggable – interject on commit level, build, release steps in SDLC.
  • Expandable – easily add your own package management scheme or code source of choice
  • General-purpose Heuristic-Engine – an abstract package data model provides agnostic heuristic approach
  • Supporting wide range of technologies
  • Flexible – decision trees can be determined upon insights or verdicts provided by the toolkit

Easly exstensible

The project is putting practicionar’s ability to extend and fit the toolkit to her own specific needs. As such, it is designed to be able to extend it to other sources, public registries, package management schemes and extending the abstract model and accompnaied heuristics engine.

Installation

Dependency Combobulator is ready to work with as it is – just git clone or download the package from https://github.com/apiiro/combobulator

Make sure to install required dependencies by running:

pip install -r requirements.txt

Arguments (–help)

-h, –help show this help message and exit
-t {npm,NuGet,maven}, –type {npm,NuGet,maven}
Package Manager Type, i.e: npm, NuGet, maven
-l LIST_FROM_FILE, –load_list LIST_FROM_FILE
Load list of dependencies from a file
-d FROM_SRC, –directory FROM_SRC
Extract dependencies from local source repository

-p–package SINGLE Name a single package.
-c CSV, –csv CSV Export packages properties onto CSV file
-gh GITHUB_TOKEN, –github GITHUB_TOKEN
GitHub Access Token (Overrides .env file setting)
-a {compare,comp,heuristics,heur}, –analysis {compare,comp,heuristics,heur}
Required analysis level – compare (comp), heuristics
(heur) (default: compare)

Supported package types (-t, –t): npm, maven

Supported source dependency assessment:

  • From file containing the dependency identifiers line-by-line. (-l, –load_list)
  • By analyzing the appropriate repo’s software bill-of-materials (e.g. package.json, pom.xml) (-d, –directory)
  • Naming a single identifier (-p, –package)

Analysis level is customizable as you can build your own preferred analysis profile in seconds. Dependency Combobulator does come with several analysis levels out-of-the-box, selected by -a, –analysis

Supported output format:

  • Screen stdout (default)
  • CSV export to designated file -(-CSV)
R K

Recent Posts

git fetch vs git pull: How They Work and When to Use Each

Both git fetch and git pull talk to a remote repository, but they do very different things to your…

3 days ago

git cherry-pick Command: Apply Commits from Another Branch

Sometimes the change you need already exists, just on the wrong branch. A hotfix lands…

3 days ago

Best Email APIs for Secure Business Email: Why Developers Are Moving Beyond SMTP

Email is still one of the most important communication channels inside modern applications. Password resets,…

4 days ago

Nginx Commands in Linux: Start, Stop, Reload, Test, and Log

Nginx is a high-performance web server and reverse proxy trusted by some of the largest…

7 days ago

ufw Command in Linux: Manage Firewall Rules with Examples

ufw (Uncomplicated Firewall) sits on top of iptables (or nftables on newer systems) and replaces…

7 days ago

who Command in Linux: Show All Logged-In Users and Sessions

When you share a server with a team or investigate unexpected activity, the first question…

7 days ago