All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.sonar.plugins.secrets.configuration.aws.yaml Maven / Gradle / Ivy

provider:
  metadata:
    name: AWS
    category: Cloud Provider
  detection:
    pre:
      scopes:
        - main
      include:
        content:
          - aws
          - amazon
      reject:
        ext:
          - .adoc
          - .example
          - .html
          - .md
          - .mdx
          - .template
  rules:
    - rspecKey: S6290
      id: aws-secret-access-keys-1
      metadata:
        name: AWS Secret Access Keys
        message: Make sure this AWS Secret Access Key gets revoked, changed, and removed from the code.
      detection:
        matching:
          pattern: "(?is)aws.{0,30}secret.{0,30}\\b([0-9a-z/+]{40})\\b"
          context:
            matchNot:
              matchEither:
                - patternBefore:
                    pattern: "caver"
                    maxLineDistance: 5
                - patternBefore:
                    pattern: "klaytn"
                    maxLineDistance: 5
        post:
          statisticalFilter:
            threshold: 4.2
          patternNot:
            # Character repeated 5 times
            - "([\\w])\\1{5,}"
            # Common text placeholders
            - "(?i)(?:s|ex)ample|foo|bar|test|abcd|redacted|key"
            # Common numeric placeholders
            - "1234"
      examples:
        - text: |
            # Noncompliant code example
            props.set("aws-secret-access-key", "kHeUAwnSUizTWpSbyGAz4f+As5LshPIjvtpswqGb")
          containsSecret: true
          match: kHeUAwnSUizTWpSbyGAz4f+As5LshPIjvtpswqGb
        - text: |
            # Compliant solution
            props.set("aws-secret-access-key", System.getenv("AWS_SECRET_ACCESS_KEY"))
          containsSecret: false
        - text: |
            var creds = new AWS.Credentials({
                secretAccessKey: 'kHeUAwnSUizTWpSbyGAz4f+As5LshPIjvtpswqGb' 
            });
          containsSecret: true
          match: kHeUAwnSUizTWpSbyGAz4f+As5LshPIjvtpswqGb
        - text: |
            var creds = new AWS.Credentials({
                secretAccessKey: 'kHeUAwnSUizTWpSbyGAz4f+As5LshPIjvtpswqGb' 
            });
          fileName: Doc.md
          containsSecret: false
        - text: |
            aws_secret_access_key=kHeUAwnSUizTWpSbyGAz4f+As5LshPIjvtpswqGb
          containsSecret: true
          match: kHeUAwnSUizTWpSbyGAz4f+As5LshPIjvtpswqGb
        - text: |
            AWS_FECRET_KEY=kHeUAwnSUizTWpSbyGAz4f+As5LshPIjvtpswqGb'
            AWS_SECRET_KEY=EXAMPLEKEYCXCgDCUbJq1h7CKwNqnpA1il4MXL+y
          containsSecret: false
        - text: |
            c.S3SecretAccessKey = c.Get("PRECISE_CODE_INTEL_UPLOAD_AWS_SECRET_ACCESS_KEY", "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "An AWS secret key associated with a user with access to S3.")
          containsSecret: false
        - text: |
            some-aws-key:
              more-aws-metadata:
                line1: true
                line2: false
            caver:
              accessKeyId: KASK8ZXBEY0OG1ZE7V8V55TP
              secretAccessKey: nuGZMoAmbq1v9kC1bg9iK5x1nIHOTXzEogtCivX2
          containsSecret: false
        - text: |
            curl --location --request POST "https://wallet-api.klaytnapi.com/v2/account" \
            -u KASKP6ZDZJ9TDH4OE825GB01:UDGCqEA2wibbsHFj4VL3vgpltaSh1HvlMRLBauEL \
            --header "x-krn: krn:1001:wallet:b73717b4-2bad-4cbe-9517-951ca5af3a15:account-pool:Dawson Lee"
            --header "x-chain-id: 1001" \
          containsSecret: false
    - rspecKey: S6290
      id: aws-secret-access-keys-2
      metadata:
        name: AWS Secret Access Keys
        message: Make sure this AWS Secret Access Key gets revoked, changed, and removed from the code.
      detection:
        matching:
          pattern: "(?i)\\b(?:AWS)?_?SECRET_?(?:ACCESS)?_?KEY\\b.{0,10}\\b([0-9a-z\\/+]{40})\\b"
        post:
          statisticalFilter:
            threshold: 4.2
          patternNot:
            # Character repeated 5 times
            - "([\\w])\\1{5,}"
            # Common text placeholders
            - "(?i)(?:s|ex)ample|foo|bar|test|abcd|redacted|key"
            # Common numeric placeholders
            - "1234"
      examples:
        - text: |
            var creds = new AWS.Credentials({
                secretAccessKey: 'kHeUAwnSUizTWpSbyGAz4f+As5LshPIjvtpswqGb' 
            });
          containsSecret: true
          match: kHeUAwnSUizTWpSbyGAz4f+As5LshPIjvtpswqGb
        - text: |
            aws_secret_access_key=kHeUAwnSUizTWpSbyGAz4f+As5LshPIjvtpswqGb
          containsSecret: true
          match: kHeUAwnSUizTWpSbyGAz4f+As5LshPIjvtpswqGb
        - text: |
            aws_secret_access_key=kHeUAwnSUizTWpSbyGAz4f+As5LshPIjvtpswqGb
          fileName: Doc.html
          containsSecret: false
        - text: |
            AWS_FECRET_KEY=kHeUAwnSUizTWpSbyGAz4f+As5LshPIjvtpswqGb'
            AWS_SECRET_KEY=EXAMPLEKEYCXCgDCUbJq1h7CKwNqnpA1il4MXL+y
          containsSecret: false

    - rspecKey: S6290
      id: aws-session-tokens
      metadata:
        name: AWS Session tokens
        message: Make sure this AWS Session token gets revoked, changed, and removed from the code.
      detection:
        matching:
          pattern: "(?i)session_?token(?:\"?\\s*[=:]\\s*\"?|>\\s*)([0-9a-z/+\"\\s=]{50,})(?:\\s*<|\\s*$|\"[;,]?|$)"
        post:
          patternNot:
            # Common text placeholders
            - "(?i)(?:s|ex)ample|foo|bar|test|redacted"

      examples:
        - text: |
            AWS_SESSION_TOKEN = "IQoJb3JpZ2luX2VjEKL//////////wE" +
            "aDGV1LWNlbnRyYWwtMSJHMEUCIQDFlDUEvUa6slxlkKKn8zbLkN/j1f7lKJdXJ03PQ5T5ZwIgDYlshciO8nyfnmjUfFy4I2+rEuPHBe" +
            "xsvfBo3MlCdgQqugMISxAAGgw4NTk4OTY2NzUzMDYiDFKPV7D/QmnqFWRYpiqXAypJf6TksPZXImVpIUU0Yj0uJhNN0o/HcO8hfQ4BX" +
            "uCvpm1DOiVsH6VXMxgNdpGTWr8CjNpEt/eYwSk6MAVPOtjg5+lY2qoGJrUuxwhiKe+BquVM17h0giZ18h1B4ozDGkfxA/vGSJa/qBzn" +
            "F0yEpLE+fJoesGe4ZpATs8oUN94/XkrL/eYzXsW3ZD1ZX66QzmSFHhgTJc24d9bezGjR32fEJD/dBm9La+7wpc4+jrXCmt6yxHox0gC" +
            "uGrSagcJfPh9pVYneM81fnD/S7Kicb1Pw8MiChfqW0hao1twr4wMgp9N3JlYQNK3fZKbMU/qlvoKTz8D0Joa4elSp4rU4reVUsujCXV" +
            "E95PDyj4LD3IDXHF5SAd/23/M/IucMRyeWlRE4pCtry68ENpojXr0tdyyVs8XSkgCGgup/BqDTkBnEBD+V5hOIrHJv5rJ6KpaxEZG0o" +
            "zUJdaUpCseSSKK4Jn7liqVqF5EzOOXelqTAACcJmILKQHqke8n3imNs72oi8tu1N+oqbFp60K9whtLDm0JZSavpmRDkMODb8/4FOusB" +
            "HFYZCuxMUmotN9Dkzp4InT7kJdKZ/kr61SMhU4hj7vTdjhcRHItO2P+jR7+38kQLDR4O1HR1XkHzLMwDvDwZULeOl6afS1ZpbO8XpeP" +
            "HaaLnEqJeZ8BpnfwBEiylK3HGzGAP7WcAgFlMO9AEqoGnnbUBFcL+IYnZ3JFPy0sGsrH4cOC8Gxy2icQKrGpdIyMqGjb2hZsSc1S4nj" +
            "GpK0AlCEKrAjzpr6SzPSwLnFtAJpztHbgb9Z7D2jdsjugQYdFwi6/9GKOI/slKqt5/vb7dLnSyeAY+jTaoveUZf6D5yM8PCKrvw5/k+" +
            "A1XJw=="
          containsSecret: true
          match: |
            IQoJb3JpZ2luX2VjEKL//////////wE" +
            "aDGV1LWNlbnRyYWwtMSJHMEUCIQDFlDUEvUa6slxlkKKn8zbLkN/j1f7lKJdXJ03PQ5T5ZwIgDYlshciO8nyfnmjUfFy4I2+rEuPHBe" +
            "xsvfBo3MlCdgQqugMISxAAGgw4NTk4OTY2NzUzMDYiDFKPV7D/QmnqFWRYpiqXAypJf6TksPZXImVpIUU0Yj0uJhNN0o/HcO8hfQ4BX" +
            "uCvpm1DOiVsH6VXMxgNdpGTWr8CjNpEt/eYwSk6MAVPOtjg5+lY2qoGJrUuxwhiKe+BquVM17h0giZ18h1B4ozDGkfxA/vGSJa/qBzn" +
            "F0yEpLE+fJoesGe4ZpATs8oUN94/XkrL/eYzXsW3ZD1ZX66QzmSFHhgTJc24d9bezGjR32fEJD/dBm9La+7wpc4+jrXCmt6yxHox0gC" +
            "uGrSagcJfPh9pVYneM81fnD/S7Kicb1Pw8MiChfqW0hao1twr4wMgp9N3JlYQNK3fZKbMU/qlvoKTz8D0Joa4elSp4rU4reVUsujCXV" +
            "E95PDyj4LD3IDXHF5SAd/23/M/IucMRyeWlRE4pCtry68ENpojXr0tdyyVs8XSkgCGgup/BqDTkBnEBD+V5hOIrHJv5rJ6KpaxEZG0o" +
            "zUJdaUpCseSSKK4Jn7liqVqF5EzOOXelqTAACcJmILKQHqke8n3imNs72oi8tu1N+oqbFp60K9whtLDm0JZSavpmRDkMODb8/4FOusB" +
            "HFYZCuxMUmotN9Dkzp4InT7kJdKZ/kr61SMhU4hj7vTdjhcRHItO2P+jR7+38kQLDR4O1HR1XkHzLMwDvDwZULeOl6afS1ZpbO8XpeP" +
            "HaaLnEqJeZ8BpnfwBEiylK3HGzGAP7WcAgFlMO9AEqoGnnbUBFcL+IYnZ3JFPy0sGsrH4cOC8Gxy2icQKrGpdIyMqGjb2hZsSc1S4nj" +
            "GpK0AlCEKrAjzpr6SzPSwLnFtAJpztHbgb9Z7D2jdsjugQYdFwi6/9GKOI/slKqt5/vb7dLnSyeAY+jTaoveUZf6D5yM8PCKrvw5/k+" +
            "A1XJw=="
        - text: |
            
              ASIAIOSFODNN7GUTXNEL
              wJalrXUtnFEMI/K7MDENG/bPxRfiCYzP+jR7+38k
              
                AQoDYXdzEPT//////////wMRyeWlRtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQW
                LWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGd
                QrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU
                9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz
                +scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCR/oLxBA==
              2019-11-09T13:34:41Z
            
          containsSecret: true
          match: |
            AQoDYXdzEPT//////////wMRyeWlRtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQW
                LWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGd
                QrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU
                9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz
                +scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCR/oLxBA==
        - text: |
            
              ASIAIOSFODNN7GUTXNEL
              wJalrXUtnFEMI/K7MDENG/bPxRfiCYzP+jR7+38k
              
                AQoDYXdzEPT//////////wMRyeWlRtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQW
                LWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGd
                QrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU
                9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz
                +scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCR/oLxBA==
              2019-11-09T13:34:41Z
            
          fileName: Doc.example
          containsSecret: false
        - text: |
            AWS_SESS_TOK = "IQoJb3JpZ2luX2VjEKL//////////wEaDGV1" +
              "LWNlbnRyYWwtMSJHMEUCIQDFlDUEvUa6slxlkKKn8zbLkN/j1f7lKJdXJ03PQ5T5ZwIgDYlshciO8nyfnmjUfFy4I2+rEuPHBexsvfB" +
              "o3MlCdgQqugMISxAAGgw4NTk4OTY2NzUzMDYiDFKPV7D/QmnqFWRYpiqXAypJf6TksPZXImVpIUU0Yj0uJhNN0o/HcO8hfQ4BXuCvpm" +
              "1DOiVsH6VXMxgNdpGTWr8CjNpEt/eYwSk6MAVPOtjg5+lY2qoGJrUuxwhiKe+BquVM17h0giZ18h1B4ozDGkfxA/vGSJa/qBznF0yEp" +
              "LE+fJoesGe4ZpATs8oUN94/XkrL/eYzXsW3ZD1ZX66QzmSFHhgTJc24d9bezGjR32fEJD/dBm9La+7wpc4+jrXCmt6yxHox0gCuGrSa" +
              "gcJfPh9pVYneM81fnD/S7Kicb1Pw8MiChfqW0hao1twr4wMgp9N3JlYQNK3fZKbMU/qlvoKTz8D0Joa4elSp4rU4reVUsujCXVE95PD" +
              "yj4LD3IDXHF5SAd/23/M/IucMRyeWlRE4pCtry68ENpojXr0tdyyVs8XSkgCGgup/BqDTkBnEBD+V5hOIrHJv5rJ6KpaxEZG0ozUJda" +
              "UpCseSSKK4Jn7liqVqF5EzOOXelqTAACcJmILKQHqke8n3imNs72oi8tu1N+oqbFp60K9whtLDm0JZSavpmRDkMODb8/4FOusBHFYZC" +
              "uxMUmotN9Dkzp4InT7kJdKZ/kr61SMhU4hj7vTdjhcRHItO2P+jR7+38kQLDR4O1HR1XkHzLMwDvDwZULeOl6afS1ZpbO8XpePHaaLn" +
              "EqJeZ8BpnfwBEiylK3HGzGAP7WcAgFlMO9AEqoGnnbUBFcL+IYnZ3JFPy0sGsrH4cOC8Gxy2icQKrGpdIyMqGjb2hZsSc1S4njGpK0A" +
              "lCEKrAjzpr6SzPSwLnFtAJpztHbgb9Z7D2jdsjugQYdFwi6/9GKOI/slKqt5/vb7dLnSyeAY+jTaoveUZf6D5yM8PCKrvw5/k+A1XJw" +
              "=="
          containsSecret: false




© 2015 - 2025 Weber Informatics LLC | Privacy Policy