Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Chema Alonso
MVP Windows Server Security
Informática 64
chema@informatica64.com
Agenda
Principios de Seguridad
Ataques a Sistemas
Actualizaciones de Seguridad
Seguridad en Servidores
Seguridad en Clientes
Principios de Seguridad
Seguridad
La seguridad depende de 3 factores:
Procesos:
Procedimientos y operaciones en nuestros
entornos
Personas
Poca formación
Tecnología:
Estándares (TCP/IP)
Productos de los fabricantes (IIS,Apache)
Desarrollos personales
¿Porque Atacan?
Hacer Daño Motivos Personales
Alterar, dañar or borrar Desquitarse
información Fundamentos políticos o
terrorismo
Denegar servicio
Gastar una broma
Dañar la imagen pública Lucirse y presumir
Motivos Financieros
Robar información
Chantaje
Fraudes Financieros
Impacto de los Ataques
Pérdida de Daños en la
Beneficios reputación
Deterioro de la Datos
confianza de los comprometidos
inversores
Fuente: Wikipedia
Software Seguro
El software Fiable es aquel que hace lo que se
supone que debe hacer.
El software Seguro es aquel que hace lo que se
supone que debe hacer, y nada mas.
Son los sorprendentes “algo mas” los que producen
inseguridad.
Para estar seguro, debes de ejecutar solo
software perfecto :-)
O, hacer algo para mitigar ese “algo mas”
Código y poder
El código fuente es poder
Tanto para defenderse como para atacar
Compartir el código es compartir el poder.
Con los atacantes y defensores
Publicar el código fuente sin hacer nada
más degrada la seguridad
Por el contrario, publicar el código fuente
permite a los defensores y a otros elevar
la seguridad al nivel que les convenga.
Proceso explotación
Vulnerabilidad
1.- Se descubre una vulnerabilidad
a) Por el fabricante
b) Por un tercero
2.- Se aprende a explotarlo
a) Ingeniería inversa de Código
b) Ingeniería inversa de Patch
3.- Se usa un Payload para automatizar
Número de dias transcurridos entre la publicación del update de seguridad y el
impacto del virus
Win32
Linux/Unix
Nombre
del Virus Slammer BugBear Slapper Ramen Klez Lion Scalper Nimda CodeRed Blaster
Vulnerabilidades
http://www.securityfocus.com/bid
Sofisticación de los Ataques vs.
Conocimientos requeridos
Ataques a Sistemas
Ataque:
Envenenamiento ARP
Técnicas de Spoofing
Nombres de dominio
SERVICIO Direcciones de correo electrónico
Nombres de recursos compartidos
RED Dirección IP
ENLACE
ENLACE Dirección MAC
Tipos de técnicas de Spoofing
Spoofing ARP
• Envenenamiento de conexiones.
• Man in the Middle.
Spoofing IP
• Rip Spoofing.
• Hijacking.
Spoofing SMTP
Spoofing DNS
• WebSpoofing.
Ataque ARP Man In The Middle
1.
4
:4
en :88
6: n
1.
:6 a e
99 44
55
5:
1.
77 st
1
8: e
es
:7
:8 1.2
ta
7:
99 1.
66
1.
:5
1.1.1 e
ie n
.1
i ent
¿Qu 1.2?
.
1.1
1.1.1.2 esta en
00:11:22:33:44:55:66
1.1.1
.2
Protección contra Envenenamiento
Medidas preventivas.
• Cifrado de comunicaciones.
IPSec.
Cifrado a nivel de Aplicación:
• S/MIME.
• SSL.
• Certificado de comunicaciones.
Protección contra Envenenamiento
Medidas reactivas.
●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●●
●
● ●
● ●
● ●
● ●
● ●
● ●
●
● ●
● ●
● ●
● ●
● ●
● ●
●●●●●● ●●● ●●●● ●●●●●●●● ●●●●●●● ●●●●●●●● ●●● ●●●● ●●●●●●●● ●●●
Ataque:
SQL – Injection
Explotación del Ataque
Aplicaciones con mala comprobación de datos de entrada.
Datos de usuario.
Formularios
Text
Password
Textarea
List
multilist
Datos de llamadas a procedimientos.
Links
Funciones Scripts
Actions
Permiten al atacante:
Saltar restricciones de acceso.
Elevación de privilegios.
Extracción de información de la Base de
Datos
Parada de SGBDR.
Ejecución de comandos en contexto
usuario bd dentro del servidor.
Tipos de Ataques
Ejemplo 1:
Autenticación de usuario contra base de
datos.
Usuario
Clave ****************
Clave ‘ or ‘1’=‘1
Ejemplo 2:
Acceso a información con procedimientos
de listado.
http://www.miweb.com/prog.asp?parametro1=hola
http://www.miweb.com/prog.asp?parametro1=1
Tipos de Ataques
Ejemplo 2 (cont):
Fortificación de SGBD.
Restricción de privilegios de motor/usuario de acceso desde web.
Aislamiento de bases de datos.
Ataque:
Cross-Site Scripting (XSS)
Explotación del Ataque
Navegación dirigida
Webspoofing
Spyware
Robo de credenciales
Ejecución de acciones automáticas
Defacement
Tipos de Ataques
Mensajes en Foros.
Firma de libro de visitas.
Contactos a través de web.
Correo Web.
Fortificación de aplicación
Comprobación fiable de datos
Fortificación de Clientes
Ejecución de clientes en entorno menos
privilegiado.
Fortificación de navegador cliente.
MBSA.
Políticas.
Ataque:
Troyanos
“Hay un amigo en mi”
Definición
Fallo en la cadena:
Procesos:
Sistema no cerrado.
Tecnología:
Fallo en sw de sistema operativo
Fallo en sw ejecución de códigos.
Personas:
Ingeniería Social: “¡Que lindo programita!”
Navegación privilegiada
Objetivos
Control remoto:
Instalan “suites” de gestión del sistema.
Robo de información
Modificación del sistema:
Phishing
Creación de usuarios
Planificación de tareas
....
Instalación del Troyano
Su difusión es extrema.
Se han hecho famosos debido a su
extensión.
Suelen ser utilizados por principiantes
Casi todos los sistemas Anti-Malware son
capaces de detectarlos.
Aún así siguen siendo útiles porque
mutan.
Algunos
Back Orifice
NetBus
NetDevil
SubSeven
Ptakks
......
Detección de Troyanos
Anti-Mallware
Antivirus
AntiSpyware
Comportamiento anómalo del sistema
Configuraciones nuevas
Cambio en páginas de navegación
Puertos
....
Prevención contra Troyanos
Defensa en Profundidad
Mínimo Privilegio Posible
Mínimo punto de exposición
MODO-USUARIO
NTDLL.DLL
NtQuerySystemInformation
MODO-KERNEL
NTOSKRNL.EXE
Interceptación de APIs a
nivel del Núcleo “KERNEL”
Aplicación
(Ejem., taskmgr, tlist)
PSAPI.DLL
EnumProcesses
MODO-USUARIO
NTDLL.DLL
NtQuerySystemInformation
MODO-KERNEL
Código Malicioso
NTOSKRNL.EXE “RootKit”
Hacker Defender
Es el RootKit mas extendido en los sistemas
Windows.
Ficha:
Autores:
Holy_Father holy_father@phreaker.net
Ratter/29A ratter@atlas.cz
Version: 1.0.0
Home Page: http://rootkit.host.sk, http://
hxdef.czweb.org
Programación: Delphi
SO: NT, 2000, XP
Objetivo
Reescribir algunos segmentos de memoria en todos los
procesos que se ejecuten en una máquina para:
Esconderse a si mismo y esconder:
Ficheros
Procesos
Servicios de sistema
Drivers de sistema
Claves y valores del registro
Puertos abiertos
Engañar con el espacio libre en disco.
Enmascarar los cambios que realiza en memoria.
Instalar una puerta trasera con tecnología de “redirector”
Soporta Procesos “Root”
Configuración I
Se configura mediante un fichero INI que tiene
los siguientes campos:
[Hidden Table]: Listado de directorios ficheros y
procesos que deben ser ocultados
[Root Processes]: Procesos que no serán
infectados por el RootKit.
[Hidden Services]: Servicios que no se listarán
[Hidden RegKeys]: Claves del registro ocultas
[Hidden RegValues]: Valores del registro ocultos.
Configuración II
[Startup Run]: Ejecutables que se ejecutan cada
vez que se inicia el RootKit.
[Free Space]: Espacio que se añade a cada
disco duro.
[Hidden Ports]: Puertos abiertos que han de ser
ocultados de aplicaciones tipo OpPorts, FPort,
Active Ports, Tcp View etc…
[Settings]: 8 valores para configurar diferentes
cosas.
Detección
Lo mejor es no tener que detectarlos, pues no es
tarea fácil. Para ello hay que evitar que entren en
nuestra máquina:
Actualizar los parches del sistema
Utilizar antivirus
Utilizar firewalls
Utilizar Sistemas Operativos modernos
Si entran y somos capaces de detectarlos, la
única solución fiable es formatear.
Detección
Lo mas fácil es detectarlo antes de que se instale. (Antivirus,
antispyware, etc…)
Si ya esta instalado se puede detectar de tres maneras:
Casualidad.
Cuelgues de la máquina
Software AntiRootKit
Tripwire.
http://www.tripwire.com/products/technology/index.cfm
RootkitRevealer de Sysinternals
http://www.sysinternals.com/ntw2k/freeware/rootkitreveal.shtml
Blacklight de F-Secure
http://www.f-secure.com/blacklight/try.shtml
Timpacto
Triesgo
Herramientas de
Monitorización y Auditoria
El objetivo es dejar un Servidor en Día-0.
Zero Day Server es aquel que tiene todo el software
que corre en su sistema actualizado y no tiene
ningún bug conocido.
Es el máximo nivel de seguridad que se puede
alcanzar con el software que corre en un sistema.
Existen Zero Day Exploits
Auditorias de seguridad
No son las únicas que deben hacerse
Se deben realizar de forma automática y de forma
manual [“artesana”].
Con la visión de un atacante y con la visión del
administrador.
Auditoría Caja Negra
Se realiza desde fuera
Ofrece la visión de un hacker
No puede ser ejecutada desde dentro
Falsos positivos
No garantiza “Servidor Seguro”
No todos los escáner ofrecen los mismos
resultados.
SSS, Nessus, GFI Languard, Retina, ISS
Real Secure, etc …
Scanners de Vulnerabilidades
Satan, Saint, Sara
Retina
http://www.eeye.com
Nessus
http://www.nessus.org
NetBrute, R3X
Auditoría Caja Blanca
Se realiza internamente
Security Patch
Critical Update
Update
Hotfix
Update Roll-Up
Service Pack
Niveles de Severidad
Rating Definition
Exploitation could allow the propagation of an Internet
Critical
worm such as Code Red or Nimda without user action
Exploitation could result in compromise of the
Important confidentiality, integrity, or availability of users’ data or
of the integrity or availability of processing resources
Exploitation serious but mitigated to a significant
degree by factors such as default configuration,
Moderate
auditing, need for user action, or difficulty of
exploitation
2.7 billones de
ejecuciones
270 millones de equipos
Resultados MSRT
16 millones de infecciones
5.7 millones de equipos infectados
1 infección cada 311
Reducción del Impacto
Entender las tendencias
Library Code
Previous
Frames
Application Code
Integridad de Sistemas de 64
bit
Application
CreateFile() Interrupt Dispatch Table
Global Descriptor Table
Kernel32.dll System Service Dispatch
CreateFileW()
Table
ntdll.dll
ZwCreateFile()
NtCreateFile()
2E
Cambio fundamental en la
operativa de Windows
Hace que el sistema funcione bien como un usuario
estándar
Proporciona un método seguro para ejecutar aplicaciones
en un contexto elevado
Requiere marcar las aplicaciones que no sean UAC
Deja claro las acciones que tienen un impacto en todo el equipo
Virtualización del registro y ficheros para proporcionar
compatibilidad.
Escrituras en el registro de la maquina son redirigidas a
localizaciones de usuario si el usuario no tiene privilegios
administrativos
Efectivamente: cuentas estándar pueden ejecutar aplicaciones
que necesitan cuentas de administración de manera segura.
Protección de cuentas Usuario
UAC (User Account Control)
Nos ayuda a implementar el principio de menor privilegio
de dos maneras distintas:
1. El usuario no necesita tener privilegios administrativos para
realizar ciertas tareas para las que se necesitas esos privilegios
– En cambio:
Se le pregunta al usuario por credenciales con mas privilegios
2. Aunque el usuario tenga privilegios superiores( Ejem. un
administrador), se le pregunta al usuario por su consentimiento
antes de que esos derechos sean ejercitados
No se necesita volver a proporcionar las credenciales, solo se
necesita el consentimiento
Leer: ww.microsoft.com/technet/windowsvista/evaluate/feat/uaprot.msp x
Internet Explorer 7
Además de ser compatible con UAC, incluirá:
Modo Protegido que solo permite a IE navegar sin mas
permisos, aunque el usuario los tenga. Ejem. Instalar
software
Modo de “Solo-lectura”, excepto para los ficheros temporales de
Internet cuando el navegador esta en Zona de seguridad de
Internet
Filtro contra Phising que actualiza Microsoft cada poco
tiempo y usa una red global de fuentes de datos
ActiveX Opt-in, da al usuario el control de los controles
Activex
Todos los datos de cache se eliminan con un solo click
MIC & UIPI
Mandatory Integrity Control (MIC).
Una aplicación no puede acceder a datos que tengan un Nivel
de integridad superior al suyo.
Niveles de Integridad: Bajo, Medo, Alto y de Sistema
Los objetos con ACL tienen una nueva entrada ACE donde se
les asigna un nivel de Integridad
A cada proceso se le asigna un Nivel de Integridad en su
testigo de acceso
User Interfacer Privilege Isolation (UIPI)
Bloquea el acceso de procesos con Nivel de Integridad inferior
a procesos con Nivel de Integridad superior.
Filtro anti-Phishing
Protección dinámica contra Webs
Realiza 3 chequeos para proteger al usuario de
Fraudulentas
posibles timos:
1. Compara el Sitio Web con la lista local de sitios legítimos conocidos
3. Cheque el sitio con el servicio online que tiene Microsoft sobre sitios
reportados que se actualiza varias veces cada hora
Dos niveles de Aviso y protección en la barra de
Level 1: Warn
estado de IE7 Level 2: Block
Suspicious Website Confirmed Phishing Site
Signaled Signaled and Blocked
Windows Defender
Monitorización
Detección
Limpieza
Software Explorer
SpyNet
10 Immutable Laws of Security
http://www.microsoft.com/technet/columns/security/essays/10imlaws.asp
If an attacker can persuade you to run his program on your computer, it's not your
1 computer anymore.
If an attacker can alter the operating system on your computer, it's not your
2 computer anymore.
If an attacker has unrestricted physical access to your computer, it's not your
3 computer anymore.
If you allow an attacker to upload programs to your website, it's not your website
4 anymore.
5 Weak passwords prevail over strong security.
6 A machine is only as secure as the administrator is trustworthy.
8 An out-of-date virus scanner is only marginally better than no virus scanner at all.
Sistemas http://www.microsoft.com/spain/HOLsistemas
Desarrollo http://www.microsoft.com/spain/HOLdesarrollo
Contacto
Chema Alonso
chema@informatica64.com
http://www.elladodelmal.com
http://www.vista-tecnica.com
http://www.informatica64.com/retohac
king