Skip to main content

Business information leak - Credentials

Description

A leaked account gives attackers instant access to sensitive data or internal systems. Can be used to compromise customer and employee data, financial records, intellectual property and other sensitive information that could leave you at great risk.

Impact

  • Attempt to compromise the account that the credentials leaked from.
  • Leverage credentials from one application to compromise additional ones.

Recommendation

  • Enable multi-factor authentication on business accounts to add an extra layer of security.
  • Ensure strong passwords creation and management.
  • Establish security policies warranting restrictions and penalties concerning to the use of work related credentials.
  • Network security and access controls should be reviewed.

Threat

Unauthorized attacker with access to business information.

Expected Remediation Time

⌚ 60 minutes.

Score

Default score using CVSS 3.1. It may change depending on the context of the vulnerability.

Base

  • Attack vector: N
  • Attack complexity: L
  • Privileges required: N
  • User interaction: N
  • Scope: U
  • Confidentiality: L
  • Integrity: L
  • Availability: N

Temporal

  • Exploit code madurity: X
  • Remediation level: X
  • Report confidence: X

Result

  • Vector string: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N/E:X/RL:X/RC:X
  • Score:
    • Base: 6.5
    • Temporal: 6.5
  • Severity:
    • Base: Medium
    • Temporal: Medium

Code Examples

Compliant code

Setting a strong password configuration policy

Resources:
MySecret1:
Type: 'AWS::SecretsManager::Secret'
Properties:
Name: MySecretForAppA
Description: "This secret has a dynamically generated secret password."
GenerateSecretString:
SecretStringTemplate: '{"username": "test-user"}'
GenerateStringKey: "password"
PasswordLength: 16
ExcludeCharacters: '"@/\'
ExcludeLowercase: false
ExcludeNumbers: false
ExcludePunctuation: false
ExcludeUppercase: false
IncludeSpace: false
RequireEachIncludedType: true

Non compliant code

Example with a weak password configuration

Resources:
MySecret1:
Type: 'AWS::SecretsManager::Secret'
Properties:
Name: MySecretForAppA
Description: "This secret has a dynamically generated secret password."
GenerateSecretString:
SecretStringTemplate: '{"username": "test-user"}'
GenerateStringKey: "password"
PasswordLength: 8
ExcludeLowercase: true
ExcludeNumbers: false
ExcludePunctuation: true
ExcludeUppercase: false
IncludeSpace: true
RequireEachIncludedType: false

Requirements