github

sottlmarek / DevSecOps

  • воскресенье, 28 ноября 2021 г. в 00:31:59
https://github.com/sottlmarek/DevSecOps


Ultimate DevSecOps library



Ultimate DevSecOps library

Contribution rules

If you want to contribute to this Library of knowledge please create proper PR (Pull request) with description what you are adding following these set of rules:

  • Clear description of PR
  • Keep it simple
  • Fact over feelings or personal opinions
  • Add source and follow the Library style

Note: Currently this is early version of the library. I recommend PR after first official release.

DevSecOps Library info:

stars watchers watchers

This library contains list of tools and methodologies accompanied with resources. The main goal is provide to the engineers guide trough opensource DevSecOps tooling. This repository covers only cyber security in cloud and DevSecOps scope.

Table of Contents

What is DevSecOps

DevSecOps fosuses on security automation, testing and enforcement during DevOps - Release - SDLC cycles. The whole meaning behind this methodology is connecting together Development, Security and Operations. DevSecOps is methodology providing diffeent methods, techniess and processes backed mainly with tooling focusing on developer / secuirty experience.

DevSecOps takes care that security is part of every stage of DevOps loop - Plan, Code, Build, Test, Release, Deploy, Operate, Monitor.

Various definitions:

Tooling

Pre-commit time tools

In this section you can find lifecycle helpers, precommit hook tools and threat modeling tools. Threat modeling tools are specific category by themselves allowing you simulate and dicover potential gaps before you start to develop the software or during the process.

Modern DevSecOps tools allow to use Threat modeling as code or generation of threat models based on the existing code annotations.

Name URL Description Meta
git-secrets https://github.com/awslabs/git-secrets AWS labs tool preventing you from committing secrets to a git repository Git Secrets
git-hound https://github.com/tillson/git-hound Seachers secrets in git git-hound
goSDL https://github.com/slackhq/goSDL Security Development Lifecycle checklist goSDL
ThreatPlaybook https://github.com/we45/ThreatPlaybook Threat modeling as code GitLeaks
Threat Dragon https://github.com/OWASP/threat-dragon OWASP Threat modeling tool ThreatDragon
threatspec https://github.com/threatspec/threatspec Threat modeling as code threatspec
pytm https://github.com/izar/pytm A Pythonic framework for threat modeling pytm
Threagile https://github.com/Threagile/threagile A Pythonic framework for threat modeling Threagile
MAL-lang https://mal-lang.org/#what A language to create cyber threat modeling systems for specific domains Mal
Microsoft Threat modleing tool https://docs.microsoft.com/en-us/azure/security/develop/threat-modeling-tool Microsoft threat modeling tool MS Threat modeling tool
Talisman https://github.com/thoughtworks/talisman A tool to detect and prevent secrets from getting checked in Talisman
SEDATED https://github.com/OWASP/SEDATED The SEDATED® Project (Sensitive Enterprise Data Analyzer To Eliminate Disclosure) focuses on preventing sensitive data such as user credentials and tokens from being pushed to Git. Talisman
Sonarlint https://github.com/SonarSource/sonarlint-core Sonar linting utility for IDE Sonarlint
DevSkim https://github.com/microsoft/DevSkim DevSkim is a framework of IDE extensions and language analyzers that provide inline security analysis DevSkim
detect-secrets https://github.com/Yelp/detect-secrets Detects secrets in your codebase DevSkim

Secrets management

Secrets management includes managing, versioning, encrypting, discovery, rotating, provisioning of passwords, certificates, configuration values and other types of secrets.

Name URL Description Meta
GitLeaks https://github.com/zricethezav/gitleaks Gitleaks is a scanning tool for detecting hardcoded secrets GitLeaks
TruffleHog https://github.com/trufflesecurity/truffleHog TruffleHog is a scanning tool for detecting hardcoded secrets TruffleHog
Hashicorp Vault https://github.com/hashicorp/vault Hashicorp Vault secrets management Vault
Mozilla SOPS https://github.com/mozilla/sops Mozilla Secrets Operations SOPS
AWS secrets manager GH action https://github.com/marketplace/actions/aws-secrets-manager-actions AWS secrets manager docs AWS Secrets manger action
GitRob https://github.com/michenriksen/gitrob Gitrob is a tool to help find potentially sensitive files pushed to public repositories on Github GitRob
git-wild-hunt https://github.com/d1vious/git-wild-hunt A tool to hunt for credentials in the GitHub git-wild-hunt
aws-vault https://github.com/99designs/aws-vault AWS Vault is a tool to securely store and access AWS credentials in a development environment aws-vault
Knox https://github.com/pinterest/knox Knox is a service for storing and rotation of secrets, keys, and passwords used by other services Knox
Chef vault https://github.com/chef/chef-vault allows you to encrypt a Chef Data Bag Item Chef vault
Ansible vault Ansible vault docs Encryption/decryption utility for Ansible data files Ansible vault

OSS and Dependecy management

Dependecny security testing and analysis is very important part of disocvering supply chain attacks. SBOM creation and following depenceny scanning (Software composition analysis) is critical part of Continuous integration. Data series and data trends tracking should be part of CI tooling. You need to know what you produce and what you consume in context of libraries and packages.

Name URL Description Meta
CycloneDX https://github.com/orgs/CycloneDX/repositories CycloneDX format for SBOM CycloneDX
Snyk https://github.com/snyk/snyk Snyk scans and monitors your projects for security vulnerabilities Snyk
vulncost https://github.com/snyk/vulncost Security Scanner for VS Code Vulncost
DependencyTrack https://github.com/DependencyTrack/dependency-track Dependency security tracking platfrom DependencyTrack
DependencyCheck https://github.com/jeremylong/DependencyCheck Simple dependecny security scanner good for CI DependencyCheck
Retire.js https://github.com/retirejs/retire.js/ Helps developers to detect the use of JS-library versions with known vulnerabilities Retire.js
PHP security checker https://github.com/fabpot/local-php-security-checker Check vulnerabilities in PHP dependecies Retire.js
bundler-audit https://github.com/rubysec/bundler-audit Patch-level verification for bundler Bundler audit
gemnasium https://gitlab.com/gitlab-org/security-products/analyzers/gemnasium Dependency Scanning Analyzer based on Gemnasium
Dependabot https://github.com/dependabot/dependabot-core Automated dependency updates built into GitHub providign security alerts Dependabot
npm-check https://www.npmjs.com/package/npm-check Check for outdated, incorrect, and unused dependencies. npm-check

SAST

Static code review tools working with source code and looking for known patterns and relationships of methods, variables, classes and libriaries. SAST works with the raw code and usualy not with build packages.

Name URL Description Meta
Brakeman https://github.com/presidentbeef/brakeman Brakeman is a static analysis tool which checks Ruby on Rails applications for security vulnerabilities Brakeman
Semgrep https://semgrep.dev/ Hi-Quality Open source, works on 17+ languages Semgrep
Bandit https://github.com/PyCQA/bandit Python specific SAST tool Bandit
libsast https://github.com/ajinabraham/libsast Generic SAST for Security Engineers. Powered by regex based pattern matcher and semantic aware semgrep libsast
ESLint https://eslint.org/ Find and fix problems in your JavaScript code
nodejsscan https://github.com/ajinabraham/nodejsscan NodeJs SAST scanner with GUI NodeJSscan
FindSecurityBugs https://find-sec-bugs.github.io/ The SpotBugs plugin for security audits of Java web applications FindSecuritybugs
SonarQube community https://github.com/SonarSource/sonarqube Detect security issues in code review with Static Application Security Testing (SAST) SonarQube
gosec https://github.com/securego/gosec Inspects source code for security problems by scanning the Go AST. SonarQube

OWASP curated list of SAST tools : https://owasp.org/www-community/Source_Code_Analysis_Tools

DAST

Dynamic application security testing (DAST) is a type of application testing (in most cases web) that checks your application from the outside by active communication and analysis of the responses based on injected inputs. DAST tools rely on inputs and outputs to operate. A DAST tool uses these to check for security problems while the software is actually running and is actively deploed on the server (or serverless function).

Name URL Description Meta
Zap proxy https://owasp.org/www-project-zap/ Zap proxy providing various docker containers for CI/CD pipeline ZAP
Wapiti https://github.com/wapiti-scanner/wapiti Light pipeline ready scanning tool Wapiti
Nuclei https://github.com/projectdiscovery/nuclei Template based security scanneing tool Nuclei
purpleteam https://github.com/purpleteam-labs/purpleteam CLI DAST tool incubator project purpleteam
oss-fuzz https://github.com/google/oss-fuzz OSS-Fuzz: Continuous Fuzzing for Open Source Software osss-fuzz
nikto https://github.com/sullo/nikto Nikto web server scanner nikto
skipfish https://code.google.com/archive/p/skipfish/ Skipfish is an active web application security reconnaissance tool skipfish

Kubernetes

Name URL Description Meta
KubiScan https://github.com/cyberark/KubiScan A tool for scanning Kubernetes cluster for risky permissions Kubiscan
Kubeaudit https://github.com/Shopify/kubeaudit Audit Kubernetes clusters for various different security concerns kube-audit
Kubescape https://github.com/armosec/kubescape The first open-source tool for testing if Kubernetes is deployed according to the NSA-CISA and the MITRE ATT&CK®. kubescape
kubesec https://github.com/controlplaneio/kubesec Security risk analysis for Kubernetes resources kubesec
kube-bench https://github.com/aquasecurity/kube-bench Kubernetes benchmarking tool Kubiscan
kube-score https://github.com/zegl/kube-score Static code analysis of your Kubernetes object definitions kube-score
kube-hunter https://github.com/aquasecurity/kube-hunter Active scanner for k8s (purple) kube-hunter
Calico https://github.com/projectcalico/calico Calico is an open source networking and network security solution for containers Calico
Kyverno https://github.com/kyverno/kyverno/ Kyverno is a policy engine designed for Kubernetes kyverno
Krane https://github.com/appvia/krane Simple Kubernetes RBAC static analysis tool krane
Starboard https://github.com/aquasecurity/starboard Starboard inegrates security tools by outputs into Kubernetes CRDs starboard
Gatekeeper https://github.com/open-policy-agent/gatekeeper Open policy agent gatekeeper for k8s gatekeeper
Inspektor-gadget https://github.com/kinvolk/inspektor-gadget Collection of tools (or gadgets) to debug and inspect k8s inspector
kube-linter https://github.com/stackrox/kube-linter Static analysis for Kubernetes kube-linter

Containers

Name URL Description Meta
Harbor https://github.com/goharbor/harbor Trusted cloud native registry project Harbor
Anchore https://github.com/anchore/anchore-engine Centralized service for inspection, analysis, and certification of container images Anchore
Clair https://github.com/quay/clair Docker vulnerability scanner Clair
Deepfence ThreatMapper https://github.com/deepfence/ThreatMapper Apache v2, powerful runtime vulnerability scanner for kubernetes, virtual machines and serverless. ThreatMapper
Docker bench https://github.com/docker/docker-bench-security Docker benchmarking agaist CIS docker bench
Falco https://github.com/falcosecurity/falco Container runtime protection Falco
Trivy https://github.com/aquasecurity/trivy Comprehensive scanner for vulnerabilities in container images Trivy
Notary https://github.com/notaryproject/notary Docker signing Notary
Cosign https://github.com/sigstore/cosign Container signing Cosign
watchtower https://github.com/containrrr/watchtower Updates the running version of your containerized app watchtower

Multi-Cloud

Name URL Description Meta
Cloudsploit https://github.com/aquasecurity/cloudsploit Detection of security risks in cloud infrastructure Cloudsploit
ScoutSuite https://github.com/nccgroup/ScoutSuite NCCgroup mutlicloud scanning tool ScoutSuite
CloudCustodian https://github.com/cloud-custodian/cloud-custodian/ Multicloud security analysis framework CloudCustodian

AWS

AWS specific DevSecOps tooling. Tools here coverdifferent areas like inventory management, misconfiguration scanning or IAM roles and policies review.

Name URL Description Meta
Dragoneye https://github.com/indeni/dragoneye Dragoneye Indeni AWS scanner Dragoneye
Prowler https://github.com/toniblyx/prowler Prowler is a command line tool that helps with AWS security assessment, auditing, hardening and incident response. Prowler
aws-inventory https://github.com/nccgroup/aws-inventory Helps to discover all AWS resources created in an account aws-inventory
PacBot https://github.com/tmobile/pacbot Policy as Code Bot (PacBot) pacbot
Komiser https://github.com/mlabouardy/komiser Monitoring dashboard for costs and security komiser
Cloudsplaining https://github.com/salesforce/cloudsplaining IAM analysis framework cloudsplaining
ElectricEye https://github.com/jonrau1/ElectricEye Continuously monitor your AWS services for configurations ElectricEye

Policy as code

Policy as code is the idea of writing code in a high-level language to manage and automate policies. By representing policies as code in text files, proven software development best practices can be adopted such as version control, automated testing, and automated deployment. (Source: https://docs.hashicorp.com/sentinel/concepts/policy-as-code)

Name URL Description Meta
Open Policy agent https://github.com/open-policy-agent/opa General-purpose policy engine that enables unified, context-aware policy enforcement across the entire stack OPA
Inspec https://github.com/inspec/inspec Chef InSpec is an open-source testing framework for infrastructure with a human- and machine-readable language for specifying compliance, security and policy requirements. Inspec
Cloud Formation guard https://github.com/aws-cloudformation/cloudformation-guard Cloud Formation policy as code cf-guard

Chaos engineering

Chaos Engineering is the discipline of experimenting on a system in order to build confidence in the system’s capability to withstand turbulent conditions in production.

Reading and manifestos: https://principlesofchaos.org/

Name URL Description Meta
chaos-mesh https://github.com/chaos-mesh/chaos-mesh It is a cloud-native Chaos Engineering platform that orchestrates chaos on Kubernetes environments Chaos mesh
Chaos monkey https://netflix.github.io/chaosmonkey/ Chaos Monkey is responsible for randomly terminating instances in production to ensure that engineers implement their services to be resilient to instance failures. Chaos monkey
chaoskube https://github.com/linki/chaoskube Test how your system behaves under arbitrary pod failures. chaoskube
Kube-Invaders https://github.com/lucky-sideburn/KubeInvaders Gamified chaos engineering tool for Kubernetes chaoskube
kube-monkey https://github.com/asobti/kube-monkey Gamified chaos engineering tool for Kubernetes kube-monkey
Gremlin https://github.com/gremlin/gremlin-python Chaos enginnering SaaS platform with free plan and some open source libraries Gremlin
AWS FIS samples https://github.com/aws-samples/aws-fault-injection-simulator-samples AWS Fault injection simulator samples AWS
CloudNuke https://github.com/gruntwork-io/cloud-nuke CLI tool to delete all resources in an AWS account CloudNuke

Infrastructure as code security

Scanning your infrascructure when it is only code helps shift-left the security. Many tools offer in IDE scanning and providing real-time advisory do Cloud engineers.

Name URL Description Meta
KICS https://github.com/Checkmarx/kics Checkmarx security testing opensource for IaC Checkmarx
Checkov https://github.com/bridgecrewio/checkov Checkov is a static code analysis tool for infrastructure-as-code Checkov
tfsec https://github.com/aquasecurity/tfsec tfsec uses static analysis of your terraform templates to spot potential security issues. Now with terraform CDK support tfsec
terrascan https://github.com/accurics/terrascan Terrascan is a static code analyzer for Infrastructure as Code terrascan
cfsec https://github.com/aquasecurity/cfsec cfsec scans CloudFormation configuration files for security issues cfsec
cfn_nag https://github.com/stelligent/cfn_nag looks for insecure patterns in CloudFormation cfnag

Methodologies, whitepapers and architecture

List of resources worth investigating:

AWS DevOps whitepapers:

AWS blog:

Microsoft whitepapers:

Other

Training - https://www.practical-devsecops.com/devsecops-university/ DevSecOps videos - Hackitect playground

License

Apache 2.0 License

Marek Šottl (c) 2021