Upload
hacking-bolivia
View
273
Download
0
Embed Size (px)
Citation preview
KAMBAN
WEB SERVICESIng. Saúl Mamani Mamani
Ingeniero Informático
Seguridad en .NET
WSDLXML
UDDIWCFSOAP
• Introducción•Servicios Web •Arquitectura de los Servicios Web•Creación de Servicios Web .NET•Tipos de Ataque•Técnicas Defensivas •Conclusiones
¿Te has imaginado alguna vezprogramar una método en unlenguaje X, y re utilizarlodesde cualquier lenguaje deprogramación, en
(Aplicación de Escritorio,Aplicación Web, o Aplicación Móvil),
(Windows, Linux, etc.)?
Justamente este milagro es lo que nos ofrecen los Servicios
Web
Un Servicio Web (Web Service) esuna aplicación (conjunto defunciones o métodos) que residen enun servidor y que utiliza estándares,tales como, SOAP, WSDL, XML,UDDI. Para intercambiar datos einformación entre aplicacionesindependientemente del lenguaje deprogramación en el que esténdesarrollados y de la plataformadonde se ejecuten
Los archivos de servicios web tienen extensión .asmx
AplicaciónMonolítica
Arquitectura Cliente-Servidor en TresCapas (MVC)
Arquitectura Orientadas a Servicios (n-capas)
¿Cómo se comunicanlos diferentescomponentes?¿Cómo interactúa
con diferentesplataformas?
¿Cómo se invocanlos diferentesservicios?
¿Cómo se comunican los diferentes componentes?
SOAP
-Simple Object Access Protocol-Evolución de XML – RPC , (Microsoft,IBM)-Transparencia de Datos,independencia de la plataforma-Middleware (RPC, RMI, CORBA, etc)-Medio de comunicación entre losdiferentes componentes (HTTP(S) enTCP 80-443, SMTP)-Define cómo se establece elintercambio de información (XML)
Servicios Web RESTFull para dispositivos móviles
¿Cómo se comunican los diferentes componentes?
WSDL
-Web Service DefinitionLanguage-API (Interfaz Pública) basadoen XML-Define que métodos estándisponibles en un Servicio Web.-Cómo invocar los diferentesmétodos.-Qué resultado devuelve unmétodo dentro un Servicio Web.
¿Cómo se comunican los diferentes componentes?
XML
-eXtensible MarkupLanguage-Es un lenguaje deetiquetado cuya funciónprincipal es la de generardocumentos (Datos eInformación).-Texto plano, cualquierlenguaje de programación osistema operativo lo puedeleer
¿Cómo se comunican los diferentes componentes?
UDDI
-Universal DescriptionDiscovery and Integration-Permite la publicación deServicios Web- Cuyo objetivo es seraccedido por los mensajesSOAP y dar paso adocumentos WSDL-Integrado en WindowsServer
Varitas Mágicas y por lo tanto Misteriosas
Clase: *.cs
Servicio:*.asmx
UDDI:
WSDL:
WSDL -XML:
Consumo del ServicioWeb
Consumo del ServicioWeb
http://www.gerentedenegocios.com/whmcs/knowledgebase.php?action=displayarticle&id=3
http://www.service-repository.com/
http://www.xmethods.com/ve2/index.po
Aplicación Local(Escritorio – Móvil)
Cliente Cliente
Servidor ApliccionesIIS
Apache
Tomcat, etc
Servidor de Base de Datos
Red
Red
SOAPWSDL
XMLUDDI
Ataque
AplicaciónWeb(Web-App)
Cliente Cliente
Servidor AplicacionesIIS
Apache
Tomcat, etc
Servidor de Base de Datos
Red
Red
Servidor Frontal
Red
Movil
SOAPWSDLXMLUDDI
Ataque
Ataque
DDoS
FingerPriting
Xphat Injection
MiMt
SQL Injection
XSS
Xploints
XML Injection
Robo de Sesiones
Footpriting
Recolectar información,analizarla y clasificarla paraidentificar los recursostecnológicos utilizados por unobjetivo determinado.
https://w3dt.net//tools/httpreconHTTPRecon
https://www.owasp.org/index.php/Main_Page
http://tools.whois.net/
- Descubrir WSDL.
Descripción, Ubicación y forma de Autenticación de un WS. <service >
- Los Mensajes de Error, siempre muestran información vulnerable
.wsdl
wsScannerhttp://www.blueinfy.com/tools.html
Anubishttp://www.flu-project.com/p/anubis.html
¿Cómo nos protegemos?
Utilizar el fichero robots.txt
Para que ningún buscador indexe donde seencuentren los ficheros wsdl, *.asmx
Deshabilitar la documentación del WSDL
Dentro del archivo Web.config en .NET
Mostrar Mensajes de Error Genéricos
Maneje excepciones a la hora de programar sus Servicios Web
Utilizar Autenticación
Solicitar un recurso alservidor web una grancantidad de veces, de talforma que, el servidor nopueda atender lassolicitudes de los clienteslegítimos.Solicitar Recursos
Muy Pesados (Tamaño y peso) mediante URL.
Buscar deficiencias en la programación que induzcan a errores no controlados (Exploits)
El cliente envía varias Flags SYN en lacabecera, con la dirección de origenfalsificada. Al ser el cliente o la IP falsa,nunca llega la respuesta ACK. (consumenrecursos del servidor)
Envió masivo de paquetes (ping), queimplican una respuesta por parte de lavictima (pong) con el mismo contenido queel paquete de origen. (consumen el ancho debanda de la victima)
Amplifica considerablemente los efectos de un ataque ICMP
VICTIMA
INTERMEDIARIO -VICTIMA
ATACANTE
Ataque de Negación de Servicios Distribuido, utilizando una BotNet(Robot Net). Muy difícil de rastrear al atacante.
Ping de la muerte:
LOIC (Low Orbit Ion Cannon):http://anonopsibero.blogspot.com/p/loic-y-otro-software.html#.U2P60IF5Oa8
Hping3(Linux):
hping3 -q -n -S -i u4000 -p www.infocaloruro.org
¿Cómo nos protegemos?
Del lado del Servidor:- Mantener actualizado el servidor, y los Firewalls con
las últimas revisiones de seguridadhttp://www.microsoft.com/es-es/security
- Balanceo de Carga en Servidores (Windows server -> NLBMgr.exe)
- Proteja la pila del protocolo TCP/IP en su servidor Windows Server
Del lado da la Aplicación:- Mantener actualizado los navegadores para
evitar instalar componentes no deseados que convierta nuestra página en un zombi.
- Limpiar las entradas de datos de las Aplicaciones Web (Validación de datos)
- Utilice Códigos de Seguridad en Formularios de entrada de datos (CAPCHA), para evitar exploit.
Xpath es un lenguajeque permite recuperarinformación de undocumento XML.Un atacante podríadescubrir la estructura deldocumento XML, eincluso acceder a losdatos.
Xpath fue creada para su uso con elestándar XSTL
Por ejemplo, podríamos usar una sentenciaOR.
Por ejemplo, podríamos usar una sentenciaOR.
Por ejemplo, podríamos usar una sentenciaOR.
Xpath BlindExplorer.https://code.google.com/p/xpath-blind-explorer/downloads/list
¿Cómo nos protegemos?
Validación
Validación Validació
n
Validación
Validación Validació
n Validación
Validación
Validación
Validación
Validación
Validación
Validación
Validación
Validación
Validación
Valide los datos, tanto en el Cliente como en el Servidor
Los componentes de validación de Visual Studio,validan los datos en el cliente (Java Script) y en elServidor (C#, VB)
Limpie los datos de entrada, en el servidor
Válido también para SQL Injection, XSS, XMLInjection, entre otros.
Elimine posibles ataques con una Expresión Regular
- Utilice Ajax para enviar datos de formularios
- Evítese e enviar datos por la URL (Método GET)
- No confíe en los datos ingresado por el cliente (Pruebas de Software Caja
Válido también para SQL Injection, XSS, XMLInjection, entre otros.
La nueva plataforma que utiliza .NETFramework(Windows Comunication Fundation)*.svc
- Entendamos como funcionan los Servicios Web
- Conocer que tipo de ataques se pueden realizar
- Para saber cómo defendernos- Mantener actualizados nuestros sistemas- Adoptar buenas políticas de programación-
GRACIAS
KAMBAN
Ing. Saúl Mamani Mamani
Ingeniero Informático
@kanito777
WSDLXML
UDDIWCFSOAP
DAS