mirror of
https://github.com/Security-Onion-Solutions/securityonion.git
synced 2026-04-02 10:51:51 +02:00
Compare commits
17 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
664f3fd18a | ||
|
|
2a37ad82b2 | ||
|
|
80540da52f | ||
|
|
e4ba3d6a2a | ||
|
|
bbfb58ea4e | ||
|
|
c91deb97b1 | ||
|
|
dcc67b9b8f | ||
|
|
cd886dd0f9 | ||
|
|
37a6e28a6c | ||
|
|
434a2e7866 | ||
|
|
79707db6ee | ||
|
|
0707507412 | ||
|
|
c7e865aa1c | ||
|
|
a89db79854 | ||
|
|
812f65eee8 | ||
|
|
cfa530ba9c | ||
|
|
cd0d88e2c0 |
547
.github/.gitleaks.toml
vendored
547
.github/.gitleaks.toml
vendored
@@ -1,547 +0,0 @@
|
|||||||
title = "gitleaks config"
|
|
||||||
|
|
||||||
# Gitleaks rules are defined by regular expressions and entropy ranges.
|
|
||||||
# Some secrets have unique signatures which make detecting those secrets easy.
|
|
||||||
# Examples of those secrets would be GitLab Personal Access Tokens, AWS keys, and GitHub Access Tokens.
|
|
||||||
# All these examples have defined prefixes like `glpat`, `AKIA`, `ghp_`, etc.
|
|
||||||
#
|
|
||||||
# Other secrets might just be a hash which means we need to write more complex rules to verify
|
|
||||||
# that what we are matching is a secret.
|
|
||||||
#
|
|
||||||
# Here is an example of a semi-generic secret
|
|
||||||
#
|
|
||||||
# discord_client_secret = "8dyfuiRyq=vVc3RRr_edRk-fK__JItpZ"
|
|
||||||
#
|
|
||||||
# We can write a regular expression to capture the variable name (identifier),
|
|
||||||
# the assignment symbol (like '=' or ':='), and finally the actual secret.
|
|
||||||
# The structure of a rule to match this example secret is below:
|
|
||||||
#
|
|
||||||
# Beginning string
|
|
||||||
# quotation
|
|
||||||
# │ End string quotation
|
|
||||||
# │ │
|
|
||||||
# ▼ ▼
|
|
||||||
# (?i)(discord[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z0-9=_\-]{32})['\"]
|
|
||||||
#
|
|
||||||
# ▲ ▲ ▲
|
|
||||||
# │ │ │
|
|
||||||
# │ │ │
|
|
||||||
# identifier assignment symbol
|
|
||||||
# Secret
|
|
||||||
#
|
|
||||||
[[rules]]
|
|
||||||
id = "gitlab-pat"
|
|
||||||
description = "GitLab Personal Access Token"
|
|
||||||
regex = '''glpat-[0-9a-zA-Z\-\_]{20}'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "aws-access-token"
|
|
||||||
description = "AWS"
|
|
||||||
regex = '''(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}'''
|
|
||||||
|
|
||||||
# Cryptographic keys
|
|
||||||
[[rules]]
|
|
||||||
id = "PKCS8-PK"
|
|
||||||
description = "PKCS8 private key"
|
|
||||||
regex = '''-----BEGIN PRIVATE KEY-----'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "RSA-PK"
|
|
||||||
description = "RSA private key"
|
|
||||||
regex = '''-----BEGIN RSA PRIVATE KEY-----'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "OPENSSH-PK"
|
|
||||||
description = "SSH private key"
|
|
||||||
regex = '''-----BEGIN OPENSSH PRIVATE KEY-----'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "PGP-PK"
|
|
||||||
description = "PGP private key"
|
|
||||||
regex = '''-----BEGIN PGP PRIVATE KEY BLOCK-----'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "github-pat"
|
|
||||||
description = "GitHub Personal Access Token"
|
|
||||||
regex = '''ghp_[0-9a-zA-Z]{36}'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "github-oauth"
|
|
||||||
description = "GitHub OAuth Access Token"
|
|
||||||
regex = '''gho_[0-9a-zA-Z]{36}'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "SSH-DSA-PK"
|
|
||||||
description = "SSH (DSA) private key"
|
|
||||||
regex = '''-----BEGIN DSA PRIVATE KEY-----'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "SSH-EC-PK"
|
|
||||||
description = "SSH (EC) private key"
|
|
||||||
regex = '''-----BEGIN EC PRIVATE KEY-----'''
|
|
||||||
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "github-app-token"
|
|
||||||
description = "GitHub App Token"
|
|
||||||
regex = '''(ghu|ghs)_[0-9a-zA-Z]{36}'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "github-refresh-token"
|
|
||||||
description = "GitHub Refresh Token"
|
|
||||||
regex = '''ghr_[0-9a-zA-Z]{76}'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "shopify-shared-secret"
|
|
||||||
description = "Shopify shared secret"
|
|
||||||
regex = '''shpss_[a-fA-F0-9]{32}'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "shopify-access-token"
|
|
||||||
description = "Shopify access token"
|
|
||||||
regex = '''shpat_[a-fA-F0-9]{32}'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "shopify-custom-access-token"
|
|
||||||
description = "Shopify custom app access token"
|
|
||||||
regex = '''shpca_[a-fA-F0-9]{32}'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "shopify-private-app-access-token"
|
|
||||||
description = "Shopify private app access token"
|
|
||||||
regex = '''shppa_[a-fA-F0-9]{32}'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "slack-access-token"
|
|
||||||
description = "Slack token"
|
|
||||||
regex = '''xox[baprs]-([0-9a-zA-Z]{10,48})?'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "stripe-access-token"
|
|
||||||
description = "Stripe"
|
|
||||||
regex = '''(?i)(sk|pk)_(test|live)_[0-9a-z]{10,32}'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "pypi-upload-token"
|
|
||||||
description = "PyPI upload token"
|
|
||||||
regex = '''pypi-AgEIcHlwaS5vcmc[A-Za-z0-9\-_]{50,1000}'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "gcp-service-account"
|
|
||||||
description = "Google (GCP) Service-account"
|
|
||||||
regex = '''\"type\": \"service_account\"'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "heroku-api-key"
|
|
||||||
description = "Heroku API Key"
|
|
||||||
regex = ''' (?i)(heroku[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "slack-web-hook"
|
|
||||||
description = "Slack Webhook"
|
|
||||||
regex = '''https://hooks.slack.com/services/T[a-zA-Z0-9_]{8}/B[a-zA-Z0-9_]{8,12}/[a-zA-Z0-9_]{24}'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "twilio-api-key"
|
|
||||||
description = "Twilio API Key"
|
|
||||||
regex = '''SK[0-9a-fA-F]{32}'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "age-secret-key"
|
|
||||||
description = "Age secret key"
|
|
||||||
regex = '''AGE-SECRET-KEY-1[QPZRY9X8GF2TVDW0S3JN54KHCE6MUA7L]{58}'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "facebook-token"
|
|
||||||
description = "Facebook token"
|
|
||||||
regex = '''(?i)(facebook[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-f0-9]{32})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "twitter-token"
|
|
||||||
description = "Twitter token"
|
|
||||||
regex = '''(?i)(twitter[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-f0-9]{35,44})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "adobe-client-id"
|
|
||||||
description = "Adobe Client ID (Oauth Web)"
|
|
||||||
regex = '''(?i)(adobe[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-f0-9]{32})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "adobe-client-secret"
|
|
||||||
description = "Adobe Client Secret"
|
|
||||||
regex = '''(p8e-)(?i)[a-z0-9]{32}'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "alibaba-access-key-id"
|
|
||||||
description = "Alibaba AccessKey ID"
|
|
||||||
regex = '''(LTAI)(?i)[a-z0-9]{20}'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "alibaba-secret-key"
|
|
||||||
description = "Alibaba Secret Key"
|
|
||||||
regex = '''(?i)(alibaba[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z0-9]{30})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "asana-client-id"
|
|
||||||
description = "Asana Client ID"
|
|
||||||
regex = '''(?i)(asana[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([0-9]{16})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "asana-client-secret"
|
|
||||||
description = "Asana Client Secret"
|
|
||||||
regex = '''(?i)(asana[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z0-9]{32})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "atlassian-api-token"
|
|
||||||
description = "Atlassian API token"
|
|
||||||
regex = '''(?i)(atlassian[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z0-9]{24})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "bitbucket-client-id"
|
|
||||||
description = "Bitbucket client ID"
|
|
||||||
regex = '''(?i)(bitbucket[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z0-9]{32})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "bitbucket-client-secret"
|
|
||||||
description = "Bitbucket client secret"
|
|
||||||
regex = '''(?i)(bitbucket[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z0-9_\-]{64})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "beamer-api-token"
|
|
||||||
description = "Beamer API token"
|
|
||||||
regex = '''(?i)(beamer[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"](b_[a-z0-9=_\-]{44})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "clojars-api-token"
|
|
||||||
description = "Clojars API token"
|
|
||||||
regex = '''(CLOJARS_)(?i)[a-z0-9]{60}'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "contentful-delivery-api-token"
|
|
||||||
description = "Contentful delivery API token"
|
|
||||||
regex = '''(?i)(contentful[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z0-9\-=_]{43})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "databricks-api-token"
|
|
||||||
description = "Databricks API token"
|
|
||||||
regex = '''dapi[a-h0-9]{32}'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "discord-api-token"
|
|
||||||
description = "Discord API key"
|
|
||||||
regex = '''(?i)(discord[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-h0-9]{64})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "discord-client-id"
|
|
||||||
description = "Discord client ID"
|
|
||||||
regex = '''(?i)(discord[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([0-9]{18})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "discord-client-secret"
|
|
||||||
description = "Discord client secret"
|
|
||||||
regex = '''(?i)(discord[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z0-9=_\-]{32})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "doppler-api-token"
|
|
||||||
description = "Doppler API token"
|
|
||||||
regex = '''['\"](dp\.pt\.)(?i)[a-z0-9]{43}['\"]'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "dropbox-api-secret"
|
|
||||||
description = "Dropbox API secret/key"
|
|
||||||
regex = '''(?i)(dropbox[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z0-9]{15})['\"]'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "dropbox--api-key"
|
|
||||||
description = "Dropbox API secret/key"
|
|
||||||
regex = '''(?i)(dropbox[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z0-9]{15})['\"]'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "dropbox-short-lived-api-token"
|
|
||||||
description = "Dropbox short lived API token"
|
|
||||||
regex = '''(?i)(dropbox[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"](sl\.[a-z0-9\-=_]{135})['\"]'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "dropbox-long-lived-api-token"
|
|
||||||
description = "Dropbox long lived API token"
|
|
||||||
regex = '''(?i)(dropbox[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"][a-z0-9]{11}(AAAAAAAAAA)[a-z0-9\-_=]{43}['\"]'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "duffel-api-token"
|
|
||||||
description = "Duffel API token"
|
|
||||||
regex = '''['\"]duffel_(test|live)_(?i)[a-z0-9_-]{43}['\"]'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "dynatrace-api-token"
|
|
||||||
description = "Dynatrace API token"
|
|
||||||
regex = '''['\"]dt0c01\.(?i)[a-z0-9]{24}\.[a-z0-9]{64}['\"]'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "easypost-api-token"
|
|
||||||
description = "EasyPost API token"
|
|
||||||
regex = '''['\"]EZAK(?i)[a-z0-9]{54}['\"]'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "easypost-test-api-token"
|
|
||||||
description = "EasyPost test API token"
|
|
||||||
regex = '''['\"]EZTK(?i)[a-z0-9]{54}['\"]'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "fastly-api-token"
|
|
||||||
description = "Fastly API token"
|
|
||||||
regex = '''(?i)(fastly[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z0-9\-=_]{32})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "finicity-client-secret"
|
|
||||||
description = "Finicity client secret"
|
|
||||||
regex = '''(?i)(finicity[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z0-9]{20})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "finicity-api-token"
|
|
||||||
description = "Finicity API token"
|
|
||||||
regex = '''(?i)(finicity[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-f0-9]{32})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "flutterwave-public-key"
|
|
||||||
description = "Flutterwave public key"
|
|
||||||
regex = '''FLWPUBK_TEST-(?i)[a-h0-9]{32}-X'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "flutterwave-secret-key"
|
|
||||||
description = "Flutterwave secret key"
|
|
||||||
regex = '''FLWSECK_TEST-(?i)[a-h0-9]{32}-X'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "flutterwave-enc-key"
|
|
||||||
description = "Flutterwave encrypted key"
|
|
||||||
regex = '''FLWSECK_TEST[a-h0-9]{12}'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "frameio-api-token"
|
|
||||||
description = "Frame.io API token"
|
|
||||||
regex = '''fio-u-(?i)[a-z0-9\-_=]{64}'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "gocardless-api-token"
|
|
||||||
description = "GoCardless API token"
|
|
||||||
regex = '''['\"]live_(?i)[a-z0-9\-_=]{40}['\"]'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "grafana-api-token"
|
|
||||||
description = "Grafana API token"
|
|
||||||
regex = '''['\"]eyJrIjoi(?i)[a-z0-9\-_=]{72,92}['\"]'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "hashicorp-tf-api-token"
|
|
||||||
description = "HashiCorp Terraform user/org API token"
|
|
||||||
regex = '''['\"](?i)[a-z0-9]{14}\.atlasv1\.[a-z0-9\-_=]{60,70}['\"]'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "hubspot-api-token"
|
|
||||||
description = "HubSpot API token"
|
|
||||||
regex = '''(?i)(hubspot[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-h0-9]{8}-[a-h0-9]{4}-[a-h0-9]{4}-[a-h0-9]{4}-[a-h0-9]{12})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "intercom-api-token"
|
|
||||||
description = "Intercom API token"
|
|
||||||
regex = '''(?i)(intercom[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z0-9=_]{60})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "intercom-client-secret"
|
|
||||||
description = "Intercom client secret/ID"
|
|
||||||
regex = '''(?i)(intercom[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-h0-9]{8}-[a-h0-9]{4}-[a-h0-9]{4}-[a-h0-9]{4}-[a-h0-9]{12})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "ionic-api-token"
|
|
||||||
description = "Ionic API token"
|
|
||||||
regex = '''(?i)(ionic[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"](ion_[a-z0-9]{42})['\"]'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "linear-api-token"
|
|
||||||
description = "Linear API token"
|
|
||||||
regex = '''lin_api_(?i)[a-z0-9]{40}'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "linear-client-secret"
|
|
||||||
description = "Linear client secret/ID"
|
|
||||||
regex = '''(?i)(linear[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-f0-9]{32})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "lob-api-key"
|
|
||||||
description = "Lob API Key"
|
|
||||||
regex = '''(?i)(lob[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]((live|test)_[a-f0-9]{35})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "lob-pub-api-key"
|
|
||||||
description = "Lob Publishable API Key"
|
|
||||||
regex = '''(?i)(lob[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]((test|live)_pub_[a-f0-9]{31})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "mailchimp-api-key"
|
|
||||||
description = "Mailchimp API key"
|
|
||||||
regex = '''(?i)(mailchimp[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-f0-9]{32}-us20)['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "mailgun-private-api-token"
|
|
||||||
description = "Mailgun private API token"
|
|
||||||
regex = '''(?i)(mailgun[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"](key-[a-f0-9]{32})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "mailgun-pub-key"
|
|
||||||
description = "Mailgun public validation key"
|
|
||||||
regex = '''(?i)(mailgun[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"](pubkey-[a-f0-9]{32})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "mailgun-signing-key"
|
|
||||||
description = "Mailgun webhook signing key"
|
|
||||||
regex = '''(?i)(mailgun[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-h0-9]{32}-[a-h0-9]{8}-[a-h0-9]{8})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "mapbox-api-token"
|
|
||||||
description = "Mapbox API token"
|
|
||||||
regex = '''(?i)(pk\.[a-z0-9]{60}\.[a-z0-9]{22})'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "messagebird-api-token"
|
|
||||||
description = "MessageBird API token"
|
|
||||||
regex = '''(?i)(messagebird[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z0-9]{25})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "messagebird-client-id"
|
|
||||||
description = "MessageBird API client ID"
|
|
||||||
regex = '''(?i)(messagebird[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-h0-9]{8}-[a-h0-9]{4}-[a-h0-9]{4}-[a-h0-9]{4}-[a-h0-9]{12})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "new-relic-user-api-key"
|
|
||||||
description = "New Relic user API Key"
|
|
||||||
regex = '''['\"](NRAK-[A-Z0-9]{27})['\"]'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "new-relic-user-api-id"
|
|
||||||
description = "New Relic user API ID"
|
|
||||||
regex = '''(?i)(newrelic[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([A-Z0-9]{64})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "new-relic-browser-api-token"
|
|
||||||
description = "New Relic ingest browser API token"
|
|
||||||
regex = '''['\"](NRJS-[a-f0-9]{19})['\"]'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "npm-access-token"
|
|
||||||
description = "npm access token"
|
|
||||||
regex = '''['\"](npm_(?i)[a-z0-9]{36})['\"]'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "planetscale-password"
|
|
||||||
description = "PlanetScale password"
|
|
||||||
regex = '''pscale_pw_(?i)[a-z0-9\-_\.]{43}'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "planetscale-api-token"
|
|
||||||
description = "PlanetScale API token"
|
|
||||||
regex = '''pscale_tkn_(?i)[a-z0-9\-_\.]{43}'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "postman-api-token"
|
|
||||||
description = "Postman API token"
|
|
||||||
regex = '''PMAK-(?i)[a-f0-9]{24}\-[a-f0-9]{34}'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "pulumi-api-token"
|
|
||||||
description = "Pulumi API token"
|
|
||||||
regex = '''pul-[a-f0-9]{40}'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "rubygems-api-token"
|
|
||||||
description = "Rubygem API token"
|
|
||||||
regex = '''rubygems_[a-f0-9]{48}'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "sendgrid-api-token"
|
|
||||||
description = "SendGrid API token"
|
|
||||||
regex = '''SG\.(?i)[a-z0-9_\-\.]{66}'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "sendinblue-api-token"
|
|
||||||
description = "Sendinblue API token"
|
|
||||||
regex = '''xkeysib-[a-f0-9]{64}\-(?i)[a-z0-9]{16}'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "shippo-api-token"
|
|
||||||
description = "Shippo API token"
|
|
||||||
regex = '''shippo_(live|test)_[a-f0-9]{40}'''
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "linkedin-client-secret"
|
|
||||||
description = "LinkedIn Client secret"
|
|
||||||
regex = '''(?i)(linkedin[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z]{16})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "linkedin-client-id"
|
|
||||||
description = "LinkedIn Client ID"
|
|
||||||
regex = '''(?i)(linkedin[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z0-9]{14})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "twitch-api-token"
|
|
||||||
description = "Twitch API token"
|
|
||||||
regex = '''(?i)(twitch[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([a-z0-9]{30})['\"]'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "typeform-api-token"
|
|
||||||
description = "Typeform API token"
|
|
||||||
regex = '''(?i)(typeform[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}(tfp_[a-z0-9\-_\.=]{59})'''
|
|
||||||
secretGroup = 3
|
|
||||||
|
|
||||||
[[rules]]
|
|
||||||
id = "generic-api-key"
|
|
||||||
description = "Generic API Key"
|
|
||||||
regex = '''(?i)((key|api[^Version]|token|secret|password)[a-z0-9_ .\-,]{0,25})(=|>|:=|\|\|:|<=|=>|:).{0,5}['\"]([0-9a-zA-Z\-_=]{8,64})['\"]'''
|
|
||||||
entropy = 3.7
|
|
||||||
secretGroup = 4
|
|
||||||
|
|
||||||
|
|
||||||
[allowlist]
|
|
||||||
description = "global allow lists"
|
|
||||||
regexes = ['''219-09-9999''', '''078-05-1120''', '''(9[0-9]{2}|666)-\d{2}-\d{4}''', '''RPM-GPG-KEY.*''', '''.*:.*StrelkaHexDump.*''', '''.*:.*PLACEHOLDER.*''', '''ssl_.*password''', '''integration_key\s=\s"so-logs-"''']
|
|
||||||
paths = [
|
|
||||||
'''gitleaks.toml''',
|
|
||||||
'''(.*?)(jpg|gif|doc|pdf|bin|svg|socket)$''',
|
|
||||||
'''(go.mod|go.sum)$''',
|
|
||||||
'''salt/nginx/files/enterprise-attack.json''',
|
|
||||||
'''(.*?)whl$''',
|
|
||||||
'''salt/stig/files/sos-oscap.xml'''
|
|
||||||
]
|
|
||||||
22
.github/pull_request_template.md
vendored
Normal file
22
.github/pull_request_template.md
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
## Description
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Explain the purpose of the pull request. Be brief or detailed depending on the scope of the changes.
|
||||||
|
-->
|
||||||
|
|
||||||
|
## Related Issues
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Optionally, list any related issues that this pull request addresses.
|
||||||
|
-->
|
||||||
|
|
||||||
|
## Checklist
|
||||||
|
|
||||||
|
- [ ] I have read and followed the [CONTRIBUTING.md](https://github.com/Security-Onion-Solutions/securityonion/blob/3/main/CONTRIBUTING.md) file.
|
||||||
|
- [ ] I have read and agree to the terms of the [Contributor License Agreement](https://securityonionsolutions.com/cla)
|
||||||
|
|
||||||
|
## Questions or Comments
|
||||||
|
|
||||||
|
<!--
|
||||||
|
If you have any questions or comments about this pull request, add them here.
|
||||||
|
-->
|
||||||
24
.github/workflows/contrib.yml
vendored
24
.github/workflows/contrib.yml
vendored
@@ -1,24 +0,0 @@
|
|||||||
name: contrib
|
|
||||||
on:
|
|
||||||
issue_comment:
|
|
||||||
types: [created]
|
|
||||||
pull_request_target:
|
|
||||||
types: [opened,closed,synchronize]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
CLAssistant:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- name: "Contributor Check"
|
|
||||||
if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target'
|
|
||||||
uses: cla-assistant/github-action@v2.3.1
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
PERSONAL_ACCESS_TOKEN : ${{ secrets.PERSONAL_ACCESS_TOKEN }}
|
|
||||||
with:
|
|
||||||
path-to-signatures: 'signatures_v1.json'
|
|
||||||
path-to-document: 'https://securityonionsolutions.com/cla'
|
|
||||||
allowlist: dependabot[bot],jertel,dougburks,TOoSmOotH,defensivedepth,m0duspwnens
|
|
||||||
remote-organization-name: Security-Onion-Solutions
|
|
||||||
remote-repository-name: licensing
|
|
||||||
|
|
||||||
17
.github/workflows/leaktest.yml
vendored
17
.github/workflows/leaktest.yml
vendored
@@ -1,17 +0,0 @@
|
|||||||
name: leak-test
|
|
||||||
|
|
||||||
on: [pull_request]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
fetch-depth: '0'
|
|
||||||
|
|
||||||
- name: Gitleaks
|
|
||||||
uses: gitleaks/gitleaks-action@v1.6.0
|
|
||||||
with:
|
|
||||||
config-path: .github/.gitleaks.toml
|
|
||||||
@@ -23,7 +23,7 @@
|
|||||||
|
|
||||||
* Link the PR to the related issue, either using [keywords](https://docs.github.com/en/issues/tracking-your-work-with-issues/creating-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword) in the PR description, or [manually](https://docs.github.com/en/issues/tracking-your-work-with-issues/creating-issues/linking-a-pull-request-to-an-issue#manually-linking-a-pull-request-to-an-issue).
|
* Link the PR to the related issue, either using [keywords](https://docs.github.com/en/issues/tracking-your-work-with-issues/creating-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword) in the PR description, or [manually](https://docs.github.com/en/issues/tracking-your-work-with-issues/creating-issues/linking-a-pull-request-to-an-issue#manually-linking-a-pull-request-to-an-issue).
|
||||||
|
|
||||||
* **Pull requests should be opened against the `dev` branch of this repo**, and should clearly describe the problem and solution.
|
* **Pull requests should be opened against the current `?/dev` branch of this repo**, and should clearly describe the problem and solution.
|
||||||
|
|
||||||
* Be sure you have tested your changes and are confident they will not break other parts of the product.
|
* Be sure you have tested your changes and are confident they will not break other parts of the product.
|
||||||
|
|
||||||
|
|||||||
@@ -1,46 +1,46 @@
|
|||||||
### 2.4.210-20260302 ISO image released on 2026/03/02
|
### 3.0.0-20260331 ISO image released on 2026/03/31
|
||||||
|
|
||||||
|
|
||||||
### Download and Verify
|
### Download and Verify
|
||||||
|
|
||||||
2.4.210-20260302 ISO image:
|
3.0.0-20260331 ISO image:
|
||||||
https://download.securityonion.net/file/securityonion/securityonion-2.4.210-20260302.iso
|
https://download.securityonion.net/file/securityonion/securityonion-3.0.0-20260331.iso
|
||||||
|
|
||||||
MD5: 575F316981891EBED2EE4E1F42A1F016
|
MD5: ECD318A1662A6FDE0EF213F5A9BD4B07
|
||||||
SHA1: 600945E8823221CBC5F1C056084A71355308227E
|
SHA1: E55BE314440CCF3392DC0B06BC5E270B43176D9C
|
||||||
SHA256: A6AA6471125F07FA6E2796430E94BEAFDEF728E833E9728FDFA7106351EBC47E
|
SHA256: 7FC47405E335CBE5C2B6C51FE7AC60248F35CBE504907B8B5A33822B23F8F4D5
|
||||||
|
|
||||||
Signature for ISO image:
|
Signature for ISO image:
|
||||||
https://github.com/Security-Onion-Solutions/securityonion/raw/2.4/main/sigs/securityonion-2.4.210-20260302.iso.sig
|
https://github.com/Security-Onion-Solutions/securityonion/raw/3/main/sigs/securityonion-3.0.0-20260331.iso.sig
|
||||||
|
|
||||||
Signing key:
|
Signing key:
|
||||||
https://raw.githubusercontent.com/Security-Onion-Solutions/securityonion/2.4/main/KEYS
|
https://raw.githubusercontent.com/Security-Onion-Solutions/securityonion/3/main/KEYS
|
||||||
|
|
||||||
For example, here are the steps you can use on most Linux distributions to download and verify our Security Onion ISO image.
|
For example, here are the steps you can use on most Linux distributions to download and verify our Security Onion ISO image.
|
||||||
|
|
||||||
Download and import the signing key:
|
Download and import the signing key:
|
||||||
```
|
```
|
||||||
wget https://raw.githubusercontent.com/Security-Onion-Solutions/securityonion/2.4/main/KEYS -O - | gpg --import -
|
wget https://raw.githubusercontent.com/Security-Onion-Solutions/securityonion/3/main/KEYS -O - | gpg --import -
|
||||||
```
|
```
|
||||||
|
|
||||||
Download the signature file for the ISO:
|
Download the signature file for the ISO:
|
||||||
```
|
```
|
||||||
wget https://github.com/Security-Onion-Solutions/securityonion/raw/2.4/main/sigs/securityonion-2.4.210-20260302.iso.sig
|
wget https://github.com/Security-Onion-Solutions/securityonion/raw/3/main/sigs/securityonion-3.0.0-20260331.iso.sig
|
||||||
```
|
```
|
||||||
|
|
||||||
Download the ISO image:
|
Download the ISO image:
|
||||||
```
|
```
|
||||||
wget https://download.securityonion.net/file/securityonion/securityonion-2.4.210-20260302.iso
|
wget https://download.securityonion.net/file/securityonion/securityonion-3.0.0-20260331.iso
|
||||||
```
|
```
|
||||||
|
|
||||||
Verify the downloaded ISO image using the signature file:
|
Verify the downloaded ISO image using the signature file:
|
||||||
```
|
```
|
||||||
gpg --verify securityonion-2.4.210-20260302.iso.sig securityonion-2.4.210-20260302.iso
|
gpg --verify securityonion-3.0.0-20260331.iso.sig securityonion-3.0.0-20260331.iso
|
||||||
```
|
```
|
||||||
|
|
||||||
The output should show "Good signature" and the Primary key fingerprint should match what's shown below:
|
The output should show "Good signature" and the Primary key fingerprint should match what's shown below:
|
||||||
```
|
```
|
||||||
gpg: Signature made Mon 02 Mar 2026 11:55:24 AM EST using RSA key ID FE507013
|
gpg: Signature made Mon 30 Mar 2026 06:22:14 PM EDT using RSA key ID FE507013
|
||||||
gpg: Good signature from "Security Onion Solutions, LLC <info@securityonionsolutions.com>"
|
gpg: Good signature from "Security Onion Solutions, LLC <info@securityonionsolutions.com>"
|
||||||
gpg: WARNING: This key is not certified with a trusted signature!
|
gpg: WARNING: This key is not certified with a trusted signature!
|
||||||
gpg: There is no indication that the signature belongs to the owner.
|
gpg: There is no indication that the signature belongs to the owner.
|
||||||
|
|||||||
@@ -305,7 +305,7 @@ clone_to_tmp() {
|
|||||||
# Make a temp location for the files
|
# Make a temp location for the files
|
||||||
mkdir -p /tmp/sogh
|
mkdir -p /tmp/sogh
|
||||||
cd /tmp/sogh
|
cd /tmp/sogh
|
||||||
SOUP_BRANCH="-b 2.4/main"
|
SOUP_BRANCH="-b 3/main"
|
||||||
if [ -n "$BRANCH" ]; then
|
if [ -n "$BRANCH" ]; then
|
||||||
SOUP_BRANCH="-b $BRANCH"
|
SOUP_BRANCH="-b $BRANCH"
|
||||||
fi
|
fi
|
||||||
@@ -924,7 +924,7 @@ run_network_intermediate_upgrade() {
|
|||||||
if [[ -n "$BRANCH" ]]; then
|
if [[ -n "$BRANCH" ]]; then
|
||||||
local originally_requested_so_branch="$BRANCH"
|
local originally_requested_so_branch="$BRANCH"
|
||||||
else
|
else
|
||||||
local originally_requested_so_branch="2.4/main"
|
local originally_requested_so_branch="3/main"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Starting automated intermediate upgrade to $next_step_so_version."
|
echo "Starting automated intermediate upgrade to $next_step_so_version."
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ echo ""
|
|||||||
sleep 3
|
sleep 3
|
||||||
|
|
||||||
rm -rf /tmp/nids-testing/output
|
rm -rf /tmp/nids-testing/output
|
||||||
mkdir -p /tmp/nids-testing/output
|
mkdir -p /tmp/nids-testing/output/suripcap
|
||||||
chown suricata:socore /tmp/nids-testing/output
|
chown suricata:socore /tmp/nids-testing/output
|
||||||
mkdir -p /tmp/nids-testing/rules
|
mkdir -p /tmp/nids-testing/rules
|
||||||
|
|
||||||
@@ -45,7 +45,7 @@ echo "==== Begin Suricata Output ==="
|
|||||||
-v /opt/so/conf/suricata/bpf:/etc/suricata/bpf:ro \
|
-v /opt/so/conf/suricata/bpf:/etc/suricata/bpf:ro \
|
||||||
-v /tmp/nids-testing/output/:/nsm/:rw \
|
-v /tmp/nids-testing/output/:/nsm/:rw \
|
||||||
{{ MANAGER }}:5000/{{ IMAGEREPO }}/so-suricata:{{ VERSION }} \
|
{{ MANAGER }}:5000/{{ IMAGEREPO }}/so-suricata:{{ VERSION }} \
|
||||||
--runmode single -v -k none -r /input.pcap -l /tmp --init-errors-fatal --set outputs.6.pcap-log.enabled=no
|
--runmode single -v -k none -r /input.pcap -l /tmp --init-errors-fatal
|
||||||
echo "==== End Suricata Output ==="
|
echo "==== End Suricata Output ==="
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
sigs/securityonion-3.0.0-20260331.iso.sig
Normal file
BIN
sigs/securityonion-3.0.0-20260331.iso.sig
Normal file
Binary file not shown.
Reference in New Issue
Block a user