# Insertion of Sensitive Information into Log File (CWE-532) Information written to log files can be of a sensitive nature and give valuable guidance to an attacker or expose sensitive user information. **Stack:** Python - Prevalence: Średnia Pokryto 3 języków - Impact: Wysoki 1 reguł o wysokim poziomie - Prevention: Udokumentowane 3 przykładów poprawek **OWASP:** Security Logging and Monitoring Failures (A09:2021-Security Logging and Monitoring Failures) - #9 ## Description When sensitive information like passwords, tokens, or personal data is logged, it becomes accessible to anyone with access to the logs. Log files are often stored with less security than the data they contain. ## Prevention Strategie zapobiegania dla Information Exposure Through Logs oparte na 1 regułach detekcji Shoulder. ### Python Redact sensitive fields before logging; log actions and identifiers, not credentials ## Warning Signs - [HIGH] logging of sensitive data like passwords, API keys, tokens, credit cards, or authentication credenti ## Consequences - Odczyt danych aplikacji - Uzyskanie uprawnień ## Mitigations - Nigdy nie loguj informacji wrażliwych, takich jak hasła czy tokeny - Wdroż klasyfikację i filtrowanie danych w logach - Przed zalogowaniem maskuj lub redaguj dane wrażliwe ## Detection - Total rules: 3 - Languages: go, javascript, typescript, python ## Rules by Language ### Python (1 rules) - **Sensitive Data in Logging** [HIGH]: Detects logging of sensitive data like passwords, API keys, tokens, credit cards, or authentication credentials. Logged sensitive data can be exposed through log files, monitoring systems, or error tracking services. - Remediation: Redact sensitive fields before logging; log actions and usernames, not credentials. ```python import logging logger = logging.getLogger(__name__) SENSITIVE = {'password', 'token', 'api_key', 'secret'} def sanitize(data): return {k: '***' if k in SENSITIVE else v for k, v in data.items()} def login(username, password): logger.info(f"Login attempt for: {username}") # Log username, not password authenticate(username, password) ``` Learn more: https://shoulder.dev/learn/python/cwe-532/sensitive-data-logging