V10.3.3 Application Integrity
Requirement:#
Verify that the application has protection from subdomain takeovers if the application relies upon DNS entries or DNS subdomains, such as expired domain names, out of date DNS pointers or CNAMEs, expired projects at public source code repos, or transient cloud APIs, serverless functions, or storage buckets (autogen-bucket-id.cloud.example.com) or similar. Protections can include ensuring that DNS names used by applications are regularly checked for expiry or change.
Explanation:#
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ DNS-ΠΈΠΌΠ΅Π½Π° ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ ΠΏΠΎΠ΄Π΄Π΅Π»Π°ΡΡ ΠΈΠ»ΠΈ ΡΠΎΠΎΠ±ΡΠΈΡΡ Π½Π΅Π²Π΅ΡΠ½ΠΎ, Π° ΠΏΡΠΎΠ΄ΡΠΊΡΡ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π±ΡΠ» Π»ΠΈ ΡΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠΈΡΠΎΠ²Π°Π½ Π΄ΠΎΠ²Π΅ΡΠ΅Π½Π½ΡΠΉ DNS-ΡΠ΅ΡΠ²Π΅Ρ, DNS-ΠΈΠΌΠ΅Π½Π° Π½Π΅ ΡΠ²Π»ΡΡΡΡΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΌ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠΌ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. ΠΠΎΠ³Π΄Π° ΠΏΡΠΎΠ΄ΡΠΊΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ DNS Π΄Π»Ρ IP-Π°Π΄ΡΠ΅ΡΠ°, Π΅ΡΠ»ΠΈ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ DNS-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ IP-Π°Π΄ΡΠ΅ΡΠ°, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΡΡΠ°Π²ΠΈΡΡ ΡΠ΅ΡΠ²Π΅Ρ Π²Π΅ΡΠ½ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΠΎΠ΅ ΠΈΠΌΡ Ρ ΠΎΡΡΠ°. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΠΎΠΉΡΠΈ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ, Π²ΡΠ·Π²Π°ΡΡ Π·Π°ΠΏΠΈΡΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠΌΠ΅Π½ΠΈ Ρ ΠΎΡΡΠ° Π² ΡΠ°ΠΉΠ»Ρ ΠΆΡΡΠ½Π°Π»Π°, ΡΡΠΎΠ±Ρ ΡΠΊΡΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΈΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π΄ΡΡΠ³ΠΈΠ΅ Π°ΡΠ°ΠΊΠΈ. ΠΠ»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ΄Π΄Π΅Π»ΡΠ²Π°ΡΡ DNS-ΠΈΠΌΠ΅Π½Π° Π»ΠΈΠ±ΠΎ (1) ΡΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠΈΡΠΎΠ²Π°Π² DNS-ΡΠ΅ΡΠ²Π΅Ρ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² Π΅Π³ΠΎ Π·Π°ΠΏΠΈΡΠΈ (ΠΈΠ½ΠΎΠ³Π΄Π° ΡΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊΡΡΠ° DNS), Π»ΠΈΠ±ΠΎ (2) ΠΏΠΎΠ»ΡΡΠΈΠ² Π·Π°ΠΊΠΎΠ½Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ DNS-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌ Ρ ΠΈΡ IP-Π°Π΄ΡΠ΅ΡΠΎΠΌ.
Remediation:#
ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΡ ΡΠ°Π³ΠΎΠ² ΠΏΠΎ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΠΎΡ Π·Π°Ρ Π²Π°ΡΠ° ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ΠΎΠ²:
- Π Π΅Π³ΡΠ»ΡΡΠ½ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠΉΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ DNS: ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠΉΡΠ΅ Π²ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ DNS, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΡΡΠΎΠ±Ρ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ Π°ΠΊΡΡΠ°Π»ΡΠ½Ρ ΠΈ ΡΡΠΎΠΊ ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π½Π΅ ΠΈΡΡΠ΅ΠΊ. ΠΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°ΠΊΠΈΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠ°ΠΊ ΡΠ»ΡΠΆΠ±Π° ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π° Π΄ΠΎΠΌΠ΅Π½Π° ΠΈΠ»ΠΈ ΡΡΡΠ½Π°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°.
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠ³ΡΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ DNS: ΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠ³ΠΎΠΉ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ DNS, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ DNS. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ Π΄Π²ΡΡ ΡΠ°ΠΊΡΠΎΡΠ½ΡΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ².
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ Π·Π°Ρ Π²Π°ΡΠ° ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ΠΎΠ². ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ Π·Π°Ρ Π²Π°ΡΠ° ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ΠΎΠ², ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ Π»ΡΠ±ΡΠ΅ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΡΠΊΠΈ Π·Π°Ρ Π²Π°ΡΠ° ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ΠΎΠ². ΠΡΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΌΠΎΠ³ΡΡ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°ΡΡ Π·Π°ΠΏΠΈΡΠΈ DNS ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π°ΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠ² Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π·Π°Ρ Π²Π°ΡΠ°. Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Π½Π°Π΄Π»Π΅ΠΆΠ°ΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
- Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Π²ΡΠ΅ ΠΎΠ±ΡΠ΅Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, ΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ Π΄ΠΎΠ»ΠΆΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈ ΡΡΠΎ Π΄ΠΎΡΡΡΠΏ ΠΊ Π½ΠΈΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ.
- ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ±Π΄ΠΎΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ². ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ±Π΄ΠΎΠΌΠ΅Π½Ρ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΡΠ΅ΡΡΡΡΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ API, Π±Π΅ΡΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°, ΡΡΠΎΠ±Ρ ΡΠ½ΠΈΠ·ΠΈΡΡ ΡΠΈΡΠΊ Π·Π°Ρ Π²Π°ΡΠ° ΡΡΠ±Π΄ΠΎΠΌΠ΅Π½ΠΎΠ². ΠΡΠΎ Π·Π°ΡΡΡΠ΄Π½ΡΠ΅Ρ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠ°ΠΌ ΠΏΠΎΠΈΡΠΊ ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΡΠ±ΡΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΉ Π² ΡΡΠΈΡ ΡΠ΅ΡΡΡΡΠ°Ρ .
- ΠΠ½Π΅Π΄ΡΠΈΡΠ΅ ΡΡΡΠΎΠ³ΡΡ ΡΡΠ°Π½ΡΠΏΠΎΡΡΠ½ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ HTTP (HSTS). ΠΠ½Π΅Π΄ΡΠΈΡΠ΅ HSTS, ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅Ρ ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Π΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ. HSTS ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ Π·Π°Ρ Π²Π°Ρ ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ΠΎΠ², ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΈ ΡΠ½ΠΈΠΆΠ°Ρ ΡΠΈΡΠΊ Π°ΡΠ°ΠΊ ΡΠΈΠΏΠ° Β«Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ ΠΏΠΎΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅Β».
- ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π² Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ: ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠΉΡΠ΅ Π²ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ DNS ΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ Π·Π°Ρ Π²Π°ΡΠ° ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ΠΎΠ², ΡΡΠΎΠ±Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ ΠΈΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ ΠΈ Π½ΠΎΠ²Π΅ΠΉΡΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° Π·Π°ΡΠΈΡΡ.Β
ΠΡΠΏΠΎΠ»Π½ΡΡ ΡΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΏΠΎ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ½ΠΈΠ·ΠΈΡΡ ΡΠΈΡΠΊ Π·Π°Ρ Π²Π°ΡΠ° ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π½Π°Π΄Π»Π΅ΠΆΠ°ΡΠ΅Π΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΡΠΈΡΡ DNS-Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Additional:#
CWE - CWE-350: Reliance on Reverse DNS Resolution for a Security-Critical Action (4.10) (mitre.org)