All Projects → AhmedZerouali → ConPan

AhmedZerouali / ConPan

Licence: GPL-3.0 License
ConPan: Analyze your Docker container in peace

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to ConPan

easybuggy4django
EasyBuggy clone built on Django
Stars: ✭ 44 (-2.22%)
Mutual labels:  vulnerabilities, bugs
polscan
Zero-setup SSH-based scanner with extensive visualizations for Debian server inventory, policy compliance and vulnerabilities
Stars: ✭ 57 (+26.67%)
Mutual labels:  debian, vulnerabilities
pacstall-programs
Pacstall's official program repository
Stars: ✭ 63 (+40%)
Mutual labels:  debian
deber
📦🐋 Debian packaging with Docker
Stars: ✭ 20 (-55.56%)
Mutual labels:  debian
mmb
Set of Dockerfiles and assets related to them for building Docker images with different services
Stars: ✭ 34 (-24.44%)
Mutual labels:  debian
dist-detect
Try to determine what Linux/Unix distribution is running on a remote host and get a hint if security updates are applied.
Stars: ✭ 14 (-68.89%)
Mutual labels:  debian
ansible-role-containerized-wordpress
Deploy & run Docker Compose project for WordPress instance with Let's Encrypt HTTPS encryption
Stars: ✭ 15 (-66.67%)
Mutual labels:  debian
debian-rpi-image-script
Shell script to build Debian and Devuan SD card image booting the Raspberry Pi series
Stars: ✭ 15 (-66.67%)
Mutual labels:  debian
ufw-docker-automated
Manage docker containers firewall with UFW!
Stars: ✭ 114 (+153.33%)
Mutual labels:  debian
8821au-20210708
Linux Driver for USB WiFi Adapters that are based on the RTL8811AU and RTL8821AU Chipsets - v5.12.5.2
Stars: ✭ 40 (-11.11%)
Mutual labels:  debian
MisakaLinuxToolbox
御坂妹妹们的Linux VPS工具箱
Stars: ✭ 237 (+426.67%)
Mutual labels:  debian
linux-installer
Universal GNU+Linux installer script
Stars: ✭ 16 (-64.44%)
Mutual labels:  debian
ansible-ssh-keys
Ansible role to manage ssh keys in Debian-like systems
Stars: ✭ 26 (-42.22%)
Mutual labels:  debian
qctf-school-2018
QCTF School 2018. Developed with ♥ by Hackerdom team
Stars: ✭ 13 (-71.11%)
Mutual labels:  vulnerabilities
dawgmon
dawg the hallway monitor - monitor operating system changes and analyze introduced attack surface when installing software
Stars: ✭ 52 (+15.56%)
Mutual labels:  debian
docker-debian-releases
Creates docker images of historic Debian-based distribution releases
Stars: ✭ 19 (-57.78%)
Mutual labels:  debian
debian-lightdm-webkit-greeter
LightDM Webkit Greeter for Debian
Stars: ✭ 20 (-55.56%)
Mutual labels:  debian
vulnerabilities
List of every possible vulnerabilities in computer security.
Stars: ✭ 14 (-68.89%)
Mutual labels:  vulnerabilities
docker-lemonldap
Docker LemonLDAP-NG Image w/S6 overlay, Zabbix Monitoring based on Debian or Alpine
Stars: ✭ 20 (-55.56%)
Mutual labels:  debian
bugsnag-symfony
Bugsnag notifier for the Symfony PHP framework. Monitor and report errors in your Symfony apps.
Stars: ✭ 42 (-6.67%)
Mutual labels:  bugs

ConPan: Analyze your Docker container in peace

ConPan inspect Docker containers and extract their installed packages to analyze them.

ConPan analyzes packages technical lag, vulnerabilities and other type of bugs. The output is a four pandas dataframes that contain general information about the analyzed DockerHub image, information about installed packages, how outdated they are, their vulnerabilities and other kind of bugs.

How it works

ConPan workflow is very simple:

  • Pulls the Docker image.
  • Runs it and extract installed packages.
  • Tracks installed packages from their package managers.
  • Inspects their technical lag: checks if they are outdated and how much they are lagging behind the latest available versions.
  • Identifies vulnerable packages.
  • Identifies other kind of bugs for installed packages.

Requirements

Python modules:

  • pandas>=0.22.0
  • requests>=2.18.2
  • psycopg2-binary>=2.7.4
  • matplotlib>=3.0.0
  • tqdm>=>=4.36.0

Other:

How to install/uninstall

ConPan is developed and tested mainly on GNU/Linux platforms. Thus it is very likely it will work out of the box on any Linux-like (or Unix-like) platform, upon providing the right requirements and version of Python (3.5, 3.6).

To install, run:

$> git clone https://github.com/neglectos/ConPan
$> python3 setup.py install

Or simply:

$> pip3 install git+https://github.com/neglectos/ConPan

To uninstall, run:

$> pip3 uninstall conpan

How to use

ConPan can be used from command line or directly from Python, both usages are described below.

You will need permission to use the Docker tool first.

From command line

Launching ConPan from command line does not require much effort.

$ conpan -p <package_type> -c <image> 

Example:

$ conpan -p debian -c 127labs/blog -d 

Output:

Results: 
General information about the Docker image:  127labs/blog
- pull_count: 12870
- star_count: 0
- description: 127Lab's blog powered by Ghost
- last_updated: 2017-04-29T16:34:03.485881Z
- full_size: 114209000

Results about installed packages in:  127labs/blog
# installed packages: 130
# tracked packages: 130
# vulnerabilities: 326
# bugs: 2047

alt text

From Python

ConPan can be embedded in your Python scripts. Again, the effort of using it is minimum.

#! /usr/bin/env python3
from conpan.conpan import ConPan

# With 2 parameters
image_community = '127labs/blog'
image_official = 'debian:buster-slim'

cp = ConPan(packages="debian", image=image_official)

# extracting all information
general_info, installed_packages, tracked_packages, vulnerabilities, bugs = cp.analyze()

OR

# Extracting some specific information

cp.general_info()
cp.installed_packages()
cp.tracked_packages()
cp.vulnerabilities()
cp.bugs()

You can cite the associated research paper using:

@inproceedings{zerouali2019conpan,
  title={ConPan: a tool to analyze packages in software containers},
  author={Zerouali, Ahmed and Cosentino, Valerio and Robles, Gregorio and Gonzalez-Barahona, Jesus M and Mens, Tom},
  booktitle={2019 IEEE/ACM 16th International Conference on Mining Software Repositories (MSR)},
  pages={592--596},
  year={2019},
  organization={IEEE}
}
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].