V8.1.2 General Data Protection
Requirement:#
Verify that all cached or temporary copies of sensitive data stored on the server are protected from unauthorized access or purged/invalidated after the authorized user accesses the sensitive data.
Explanation:#
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΎ Π½Π° Π·Π°ΡΠΈΡΡ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΡΡΠΈΡΡΡΡΡΡ ΠΈΠ»ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Ρ ΡΠ°Π½ΡΡΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅. ΠΡΠ½ΠΎΠ²Π½Π°Ρ Π·Π°Π΄Π°ΡΠ° ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π·Π°ΡΠΈΡΡ ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΎΡ Π½Π΅ΡΠ°Π½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΈ ΠΈΡ ΠΎΡΠΈΡΡΠΊΡ ΠΈΠ»ΠΈ Π°Π½Π½ΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊ Π½ΠΈΠΌ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡ Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
- Caching and Temporary Storage: ΠΠ½ΠΎΠ³ΠΈΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ°. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π² ΠΏΠ°ΠΌΡΡΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΌ ΠΊΡΡΠ΅ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ.
- Sensitive Data Protection: ΠΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΡΠ½Π°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ (PII), ΡΠΈΠ½Π°Π½ΡΠΎΠ²ΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ, ΠΌΠ΅Π΄ΠΈΡΠΈΠ½ΡΠΊΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°ΡΠΈΡΠ΅Π½Ρ ΠΎΡ Π½Π΅ΡΠ°Π½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ°. ΠΠ΅ΡΠ°Π½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΡΠ΅ΡΠΊΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΠΈ, ΡΡΠΎ ΡΡΠ΅Π²Π°ΡΠΎ Π½ΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΡΠΌΠΈ ΠΈ ΡΡΠΈΠ΄ΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΡΠΌΠΈ.
- Authorized User Access: ΠΠΎΠ³Π΄Π° Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΈΠΌΠ΅ΡΡΠΈΠΉ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠΌ Π΄Π°Π½Π½ΡΠΌ, Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π΅Ρ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΈΡ Π±Π΅Π· ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΠ΄Π½Π°ΠΊΠΎ Π² ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΠΈΡΠ°ΡΡΡΡ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠΌΠΈ ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ ΠΊΡΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΈ Π½Π΅ Ρ ΡΠ°Π½ΠΈΡΡΡΡ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅.
- Purge or Invalidation: ΠΠ»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΠΎΡΠΈΡΡΠΊΠΈ ΠΈΠ»ΠΈ Π°Π½Π½ΡΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Ρ ΡΠ°Π½ΡΡΠΈΡ ΡΡ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΡΠ»Π΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ Π½ΠΈΠΌ Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ΄Π°Π»Π΅Π½Ρ ΠΈΠ· ΠΊΡΡΠ° ΠΈΠ»ΠΈ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΈΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ Π΄Π»Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π½Π΅ΡΠ°Π½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ°.
- Access Control and Authorization: ΠΠ»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π°Π»ΠΈΡΠΈΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠΉ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠΎΠ·Π΄Π°Π½Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΠΎ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Π΄Π»Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ Π΅Π³ΠΎ ΠΏΡΠ°Π².
- Data Encryption: Π ΡΠΈΡΡΠ°ΡΠΈΡΡ , ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Ρ ΡΠ°Π½ΡΡΡΡ, ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Ρ, ΡΡΠΎΠ±Ρ Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ ΠΊΡΠ°ΡΠΊΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΌ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΈ Π² ΠΊΡΡΠ΅ ΠΎΠ½ΠΈ ΠΎΡΡΠ°Π²Π°Π»ΠΈΡΡ Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΠΌΠΈ.
- Logging and Auditing: ΠΠ½Π΅Π΄ΡΠΈΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ ΠΈ Π°ΡΠ΄ΠΈΡΠ° Π΄Π»Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠΌ Π΄Π°Π½Π½ΡΠΌ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΡΠΈ Π΄Π°Π½Π½ΡΠ΅ ΡΠ΄Π°Π»ΡΡΡΡΡ ΠΈΠ»ΠΈ Π°Π½Π½ΡΠ»ΠΈΡΡΡΡΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ.
- Regulatory Compliance: Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΌΠ΅ΡΡ ΠΏΠΎ Π·Π°ΡΠΈΡΠ΅ Π΄Π°Π½Π½ΡΡ , Π²ΠΊΠ»ΡΡΠ°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ Π² ΠΊΡΡΠ΅, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ Π½ΠΎΡΠΌΠ°ΡΠΈΠ²Π½ΡΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΠΌ ΠΏΠΎ Π·Π°ΡΠΈΡΠ΅ Π΄Π°Π½Π½ΡΡ , ΡΠ°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ GDPR, HIPAA ΠΈΠ»ΠΈ PCI DSS, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ ΠΊ Π²Π°ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΄Π²Π° ΡΠΈΠΏΠ° Π°ΡΠ°ΠΊ:
- Web cache poisoning attack - Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΡΡ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π² ΠΊΠ΅ΡΠ΅, ΠΈ ΡΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅Π½Ρ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΈΠ· ΠΊΠ΅ΡΠ° Π΄ΡΡΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
- Web cache deception attack - Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΡΠ°Π½ΠΈΡΡ Π² ΠΊΠ΅ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠΉ Π΄ΡΡΠ³ΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π° Π·Π°ΡΠ΅ΠΌ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ ΡΡΠΎΡ ΠΊΠΎΠ½ΡΠ΅Π½Ρ ΠΈΠ· ΠΊΠ΅ΡΠ°.
Remediation:#
To remediate your application in compliance with the OWASP ASVS Requirement V8.1.2 (General Data Protection), which focuses on protecting cached or temporarily stored sensitive data from unauthorized access and ensuring that it is purged or invalidated after authorized user access, you can follow these steps:
- Data Classification: Start by identifying and classifying sensitive data within your application. This could include personally identifiable information (PII), financial data, health records, or any other type of data that should not be exposed to unauthorized parties.
- Access Control and Authorization: Implement robust access control and authorization mechanisms to ensure that only authorized users can access sensitive data. This includes proper authentication and authorization checks to verify the user's identity and rights.
- Cache Policy: Define a clear cache policy that outlines how sensitive data should be managed. Specify that sensitive data should only be stored temporarily and that it should be purged or invalidated after an authorized user accesses it.
- Encryption: When sensitive data is temporarily stored in cache or other storage mechanisms, ensure that it is encrypted. Encryption protects the data from exposure even if it remains in the cache briefly. Use strong encryption algorithms and key management practices.
- Cache Invalidation: Implement cache invalidation mechanisms that remove sensitive data from the cache or storage after it has been accessed by an authorized user. This ensures that the data is no longer accessible to subsequent unauthorized access.
- Logging and Auditing: Set up comprehensive logging and auditing to track access to sensitive data and verify that it is purged or invalidated as required. Logs should include details about who accessed the data and when.
- Testing and Validation: Thoroughly test the application to ensure that sensitive data is adequately protected and that cache policies are being enforced. Use automated testing tools, manual testing, and code reviews to verify that data protection measures are effective.
- Documentation and Training: Document your data protection measures, including cache policies, encryption practices, and access control. Ensure that your development team is aware of these policies and is trained on best practices for data protection. Regulatory Compliance: Ensure that your data protection policies and practices align with relevant data protection regulations and industry standards, such as GDPR, HIPAA, or PCI DSS, as applicable to your application.
Cache-Control
- Apache: Header set Cache-Control "public, must-revalidate"
- Nginx: add_header Cache-Control "public, must-revalidate";
- IIS: -
- Tomcat: Enabled by default