Coder Social home page Coder Social logo

lwindolf / polscan Goto Github PK

View Code? Open in Web Editor NEW
54.0 9.0 15.0 1.53 MB

Zero-setup SSH-based scanner with extensive visualizations for Debian server inventory, policy compliance and vulnerabilities

License: Other

Shell 40.70% HTML 6.26% JavaScript 48.48% CSS 3.06% PHP 0.62% NASL 0.87%
devops sysadmin infosec debian auditing scanner vulnerabilities kubernetes puppet debsecan

polscan's Introduction

Build Status

polscan

polscan (short for "Policy Scanner")

  • Makes your DevOps server configuration/security/automation policies explicit
  • Easily detects configuration drift (Puppet 2/3/4)
  • Provides details on package updates (Debian, PHP, Gem, CVEs via debsecan)
  • Provides basic security checks (SSH, NFS, sysctl)
  • Explains policies by
    • linking references
    • having reasonable descriptions
    • suggesting quick fixes
    • referencing to security standards
  • Agent less scanner with zero setup, no dependencies: Bash 4.2, SSH
  • Scales up to at least 2000 hosts * 50 scanners ~ 100k findings

Policies are implemented by small shell snippets and thus polscan is easily extensible by your own specific policies. To make it easy to use it comes with host discovery solutions for typical automation setups (Chef, Puppet, MCollective).

Features

Detecting automation issues...

Product Host Discovery Resource Coverage
kube-bench y kube-bench results per host
Puppet2/3/4 y Mounts, Users, SSH Keys, ulimit, sysctl, sudoers, 3rd party APT repos, Crons
Chef y %
Ansible y %
SaltStack y %
Mcollective y %

Detecting package issues...

Providers Detection Upgrade Check Error Check CVE Check
Helm2 yes no
apt % yes yes
dpkg % % yes yes (debsecan)
Gem yes yes
PECL yes yes
PIP yes yes
CPAN no
NPM no

Collects inventories for

  • kubernetes clusters (node count, sizing)
  • NTP / DNS Servers
  • OS Releases, Kernel Version
  • External IPs, IPv6 Adresses
  • 3rd party APT repos used
  • CPU-RAM size, CPU type, Server type
  • RAID Vendor ...

Graphs network topologies

  • TCP Connections
  • Remote FS Mounts
  • Nginx Upstreams / Apache ProxyPass
  • SSH Key Equivalencies
  • Network Routes

Provides vulnerabilities statistics per CVE using debsecan.

Screenshots

Overview Page

screenshot

Host Map per Finding Type

screenshot

Visualizing Network Connections

screenshot

Note: polscan is intentionally limited to Debian and for simplicity tries not to implement any distro-specific dependencies.

Running the Scanner

polscan keeps results on a daily basis so it makes sense to set up a daily cron.

Or just run it from the source directory

./polscan                          # To re-scan all hosts
./polscan -l 'server1 server2'     # To scan specific hosts

./polscan -t systemd-no-failed.sh               # Test scanner on all hosts
./polscan -t systemd-no-failed.sh -l server1    # Test scanner on single host
./polscan -t all -l server1                     # Test results on single host

./polscan -r 2017-10-09		# Recreate result JSON

Running the GUI

Start the GUI server with

 npm start

polscan's People

Contributors

er4z0r avatar lwindolf avatar stephengroat avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

polscan's Issues

Vulnerabilities View

There needs to be a separate vulnerabilities view allow to group, track and filter all or specific vulnerabilities reported by one of the vulnerability type scanners.

Needed for this:

  • New result type "vulnerability
  • JSON vulnerability details
  • Maybe a vulnerability/hosts reverse index
  • New map and result table view type

Running Services should always be added in netmap

Even if they have no connection running services should be added in the netmap.

This avoids empty diagrams for connection-less hosts.

This also is a precondition for per-service details via backend live queries.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.