Un esquema temporal del estado de la seguridad

Hace unos meses, como parte del trabajo en seguridad que habitualmente realizamos, nos vimos en la obligación/necesidad de desarrollar el esquema gráfico que les muestro en la imagen inferior, cuya versión es la 1.0. Como pueden ver, en éste se relacionan entre ellos, de una manera temporal, y desde el punto de vista de la seguridad, la aparición de reglamentos y leyes, la creación de nuevos organismos y entidades, incidentes, amenazas de seguridad, y el surgimiento de avances tecnológicos. Sin duda faltará alguno, y quizá disientan en algún punto (¿Windows Vista, como amenaza o avance tecnológico?), pero lo considero una buena aproximación a la evolución del estado del arte en materia de seguridad. Tengan en cuenta, a la hora de estudiar el documento, que la escala temporal no es aritmética, y que a medida que nos movemos hacia el futuro, buena parte de los activos pasan de ser tangibles a intangibles por lo que las amenazas e incidentes varían.

Aunque en un principio pensé en incluir una marca de agua en el documento, no me gustaría que eso disuadiese a ninguno de ustedes de utilizar el documento en algún informe o presentación (por pretencioso que eso pueda sonar); de hecho, como verán las referencias a la fuente son suficientemente pequeñas para no resultar agresivas en un entorno corporativo “ajeno”. En cualquier caso, confío en que, teniendo en cuenta la licencia bajo la que se distribuye, si lo utilizan y lo modifican tendrán la cortesía de mencionar la fuente.

Por último, se agradecerán todas aquellas sugerencias y modificaciones que se les ocurran, y por mi parte, me comprometo a publicar de manera periódica (¿cada dos meses?) una actualización del documento, siempre que hayan habido cambios. Pueden descargarse el fichero, en formato PDF, de este enlace o pinchando en la imagen.


Actualización 06/03: El fichero (y parte de este post) ha cambiado ligeramente, incluyendo una leyenda con la versión y fecha del documento (1.0, 06/03/08).

VoIP: Funcionamiento básico del protocolo SIP

Como se vió en posts anteriores, SIP (Session Initiation Protocol) es un protocolo de control desarrollado por el IETF, basado en arquitectura cliente/servidor similar al HTTP, legible por humanos, con el que comparte muchos códigos de estado y sigue una estructura de petición-respuesta; estas peticiones son generadas por un cliente y enviadas a un servidor, que las procesa y devuelve la respuesta al cliente. El par petición-respuesta recibe el nombre de transacción. Al igual que el protocolo HTTP, SIP proporciona un conjunto de solicitudes y respuestas basadas en códigos.

El protocolo SIP define principalmente seis tipos de solicitudes:

» INVITE: establece una sesión.
» ACK: confirma una solicitud INVITE.
» BYE: finaliza una sesión.
» CANCEL: cancela el establecimiento de una sesión.
» REGISTER: comunica la localización de usuario (nombre de equipo, IP).
» OPTIONS: comunica la información acerca de las capacidades de envío y recepción de teléfonos SIP.

[Read more…]

FFCCSE, delitos y nuevas tecnologías: introducción

Que las nuevas tecnologías han cambiado la forma de cometer delitos es algo claro para cualquiera que trabaje, directa o indirectamente, en el ámbito de la seguridad de la información, y también en muchos casos también para aquellos que no trabajan en este ámbito: ataques de phishing, clonaciones de tarjetas, robos de móviles o portátiles, uso ilegítimo de redes WiFi…

En el Convenio de Ciberdelincuencia del Consejo de Europa (2001) se tipifican cuatro grandes tipos de delitos tecnológicos que posteriormente se han complementado con la contemplación del racismo, xenofobia, amenazas, calumnias… realizados a través de sistemas informáticos. Estos cuatro tipos son los siguientes:

— Delitos contra la confidencialidad, la integridad y la disponibilidad de los datos y sistemas informáticos.
— Delitos informáticos (falsificación, fraude…).
— Delitos relacionados con el contenido (como pornografía infantil).
— Delitos relacionados con infracciones de la propiedad intelectual y derechos afines

[Read more…]

VoIP: Protocolos de transporte

Dentro de la serie sobre VoIP, como previo al material específicamente de seguridad, y una vez comentados los protocolos de señalización, entraremos brevemente en los protocolos de transporte. Éstos se encargan de asegurar que todos los datos hayan llegado intactos desde el origen al destino, cumpliendo con los requerimientos de calidad de servicio y ancho de banda adecuados.

Los paquetes de VoIP se encuentran en el protocolo RTP, el cual va encapsulado en paquetes UDP; no usa TCP porque éste es demasiado pesado para las aplicaciones de tiempo real. Puesto que el datagrama UDP no tiene control sobre el orden en el cual los paquetes son recibidos, o de cuanto tiempo requiere su transmisión, RTP resuelve este problema permitiendo que el receptor ponga los paquetes en el orden correcto y que no “espere” a los paquetes que se hayan perdido el camino o tarden mucho en ser recibidos. En la línea de lo comentado, a continuación podemos ver un esquema de la pila TCP/IP, en la cual observamos los distintos tipos de protocolos de transporte y su posición dentro de la pila.

voip_prot.jpg

Vamos a describir muy brevemente los protocolos de transporte más empleados para la integración de voz y datos: RTP y su protocolo de control RTCP, RTSP para sistemas de vídeo bajo demanda, y RSVP.

RTP (Real-time Transport Protocol) es un protocolo de nivel de aplicación utilizado para la transmisión de información en tiempo real (audio o vídeo), extremo a extremo sobre una red de paquetes. Fue publicado por primera vez como estándar en 1996 como RFC 1889, y actualizado posteriormente. Éste ofrece entrega de datos multicast para aplicaciones de streaming, videoconferencia, etc., siempre que la red proporcione los servicios. Es importante destacar en este caso que RTP no ofrece garantías sobre la calidad del servicio ni sobre el retraso de la entrega de datos, por lo que necesita el apoyo de capas más bajas que controlen la reserva de recursos (como por ejemplo el uso de RSVP que comentaremos al final).

RTP va de la mano de su protocolo de control, RTCP: RTP envía los datos y RTCP proporciona servicios de control y otras funcionalidades. Existe una variante llamada SRTP (Secure RTP) usada para aportar características de cifrado al canal RTP, pero en la que no entraremos aquí.

RTCP (RTP Control Protocol) se encarga de monitorizar la calidad del servicio y de proporcionar información acerca de los participantes en una sesión de intercambio de datos. El protocolo, definido en el RFC 3550, no está diseñado para soportar todas las necesidades de comunicación de una aplicación, sólo las más básicas. La principal función de RTCP es proporcionar una retroalimentación útil para mantener una calidad de distribución adecuada: los receptores de una sesión emplean RTCP para informar al emisor sobre la calidad de su recepción, incluyendo el número de paquetes perdidos, jitter (la variación en la latencia) y RTT (Round Trip Time, tiempo empleado por un paquete en realizar todo el circuito: llegar al receptor y volver de nuevo al emisor).

Los paquetes RTCP se envían de modo que el tráfico en la red no aumente linealmente con el número de agentes participantes en la sesión, ajustando el intervalo de envío de acuerdo al tráfico. Para ello, RTCP se encarga de transmitir periódicamente paquetes de control a todos los participantes de una sesión.

RTSP (Real-Time Streaming Protocol) es un protocolo a nivel de aplicación que optimiza el flujo de datos multimedia. En sintaxis y funcionamiento, es similar al protocolo HTTP, donde tanto el cliente y el servidor pueden hacer peticiones. No obstante, a diferencia de HTTP, el protocolo RTSP necesita mantener información de estado. Entre sus principales ventajas, podemos destacar que debido a sus similitudes con el HTTP, hace que sea adaptable a proxys y firewalls, y es compatible con el modo de difusión multicast, siendo capaz de enviar la información a un grupo de clientes en un solo paso. Además, es independiente de la capa de transporte usada: puede utilizar tanto TCP como UDP.

Por el contrario, como desventajas podemos destacar que depende de la congestión de red, por lo que la pérdida de paquetes durante la transmisión es imprevisible, y si se trabaja en modo unicast, necesita un ancho de banda importante.

Finalmente, y como se ha comentado anteriomente, debemos mencionar el protocolo RSVP (Resource ReSerVation Protocol), usado para manejar la calidad de servicio de la comunicación, ya que hay que tener en cuenta que los paquetes IP son de longitud variable y el tráfico de datos suele ser a ráfagas. El propósito de RSVP es eliminar aquellas situaciones en las que la voz se pierde porque tenemos una ráfaga de datos en la red. Para ello, éste solicita ancho de banda, divide los paquetes de datos grandes y da prioridad a los paquetes de voz cuando hay una congestión en un router. Si bien este protocolo ayudará considerablemente al tráfico multimedia por la red, hay que tener en cuenta que RSVP no garantiza una calidad de servicio como sucede en redes avanzadas como ATM, que proporcionan servicios de QoS (Quality of Service, calidad de servicio) de forma estándar.

Y esto es todo en referencia a los protocolos de transporte. En la siguiente entrada, entraremos en detalle en el protocolo SIP, visto en el anterior post, para acabar con los detalles de la captura de una conversación VoIP.

Seguridad: ¿gasto o inversión?

Ni que decir tiene que todos los que nos dedicamos al ámbito de la seguridad tenemos clara la respuesta a esta pregunta que de hecho, es retórica, por no decir estúpida (si ha respondido A en vez de B, antes de ofenderse siga leyendo por favor). Veamos otra pregunta: ¿de quién es culpa que determinadas personas en puestos de decisión en las organizaciones vean la seguridad como un gasto más que como una inversión, o al menos como una inversión aplazable hasta el infinito y más allá? Esta pregunta es igualmente retórica e igualmente estúpida, aunque no se me ofendan ahora los profesionales de la seguridad (o antes de hacerlo, lean…)

El problema es el siguiente: ¿por qué hablamos de inyección SQL, cuando no de SQL-Injection, en vez de hablar de obtener información de una base de datos a través de la Web? ¿Por qué hablamos de hacking ético o de auditorias de seguridad en vez de hablar de planes que permitan a las empresas seguir trabajando lo antes posible después de un incidente grave en su organización? ¿Que no es lo mismo? Disculpen pero sí, es lo mismito. Porque al final de lo que se trata es de mejorar la seguridad de las organizaciones, y es nuestra responsabilidad, y de nadie más, acercar estos conceptos al lenguaje de la humanidad; y éste no es C, ni scripting, ni usa NESSUS para detectar vulnerabilidades en nuestro lenguaje, ni Nagios.

¿Es responsabilidad del neófito en seguridad entender los beneficios de la seguridad de la información junto con toda la terminología técnica asociada? Obviamente no. Todos los tecnólogos tenemos una tendencia natural a utilizar un lenguaje que a nosotros nos puede parecer normal, siendo inexcusablemente erróneo para nuestro interlocutor, pero como me dijo el otro día un compañero, los tecnólogos hablamos español, los directivos griego y los financieros arameo, y esa es una difícil mezcla como para entendernos.

El hacking ético “mola mazo”, y prácticamente todo responsable TIC entiende el concepto, comparte la necesidad e incluso estaría encantado de abordar estas cuestiones mañana mismo (eso sí, en el mundo de Huxley, que por feliz, dispone de recursos infinitos, tanto humanos como económicos). Pero como en la mayoría de los casos los puestos de decisión no suelen coincidir en última instancia con los puestos TIC, es nuestra responsabilidad adaptar nuestro lenguaje y la definición de nuestros servicios profesionales al lenguaje de la persona que te escucha directa o indirectamente, sea este español, griego o arameo. Y si quién escucha no decide, tendrá que contarlo después a quien sí decide, por lo que estas segundas partes, aunque indirectamente, escuchan.

Para acabar, ¿quieren un ejemplo de abuso de lenguaje tecnológico no adecuado? Fácil, retrocedan esta entrada y vean cuantas veces he dicho “TIC” sin explicar qué leches es eso de “TIC”. Todos los que se han sorprendido y/o no han caído en la cuenta, es que necesitan revisar su lenguaje para acercarlo al del resto de personas que no saben (ni tienen por qué saber) que Internet está ubicado en ordenadores de todo el mundo que, en esencia, son como el que tienen en su casa para bucear por la propia red. Y por cierto, TIC significa “Tecnologías de la Información y las Comunicaciones”.

Saludos cordiales y, solo por contradecirme una vez más y parafraseando a otro compañero:

:wq!

Siempre pagan justos por pecadores…

La LOPD puede a veces verse como una ley sin sentido y exagerada, pero cuando te paras a pensar y analizas el uso que gente sin escrúpulos puede hacer de la información que se maneja en el mundo hoy en día se te ponen los pelos como escarpias. Es en este momento cuando empiezas a entender el significado y el alcance de esta ley que está pensada sobre todo y ante todo para proteger el derecho de los individuos en una sociedad moderna y protectora como la sociedad en la que vivimos.

Les cuento uno de los casos que personalmente me hizo reflexionar sobre el sentido de la ley.

En un colegio indeterminado de Valencia —al menos para este post— se entregó un día a todos los alumnos entre 3 y 14 años un pequeño formulario en un papel cochambroso dónde se pedían una serie de datos aparentemente sin importancia alguna. Preguntaban a los padres por los hábitos de los niños, por su tez, por el número de pecas, por la sensibilidad de su piel y un largo etcétera. El objetivo del “papelito” era bueno a priori, pero uno, por esto de trabajar en lo que trabaja, se ha vuelto un poco paranoico y ve amenazas hasta en los recortes de la prensa.

El hecho es que con las contestaciones del “papelito”, un grupo “indeterminado” de personas con un “indeterminado” conocimiento en la materia iban a pronosticar la probabilidad de que un niño, de los anteriores, desarrollase, en algún momento “indeterminado” de su vida, algún tipo de afección maligna en su piel.

Hasta el momento el único problema es la “indeterminación” con la que se trata el asunto. Eso sí, he de decir que el cochambroso papelito llevaba un sello de una institución, aunque si me preguntan diría que, por el papelito y por el sello, la institución también era “indeterminada”.

Seamos serios, por favor, hablamos de datos de salud de un colectivo de niños de un colegio. Hablamos de predicciones de desarrollo de enfermedades muy serias y muy graves. Hablamos de recopilar de forma “indeterminada”, por parte de gente “indeterminada”, con unas medidas de seguridad “indeterminadas” y con posibilidad de acceso para un colectivo “indeterminado” de datos que para gente sin escrúpulos puede tener bastante valor. Al fin y al cabo toda esta información se convierte fácilmente en una base de datos de salud presente o futuro de 2000 o 3000 niños.

En mi humilde opinión es sobre estas iniciativas sobre las que debería caer todo el peso de la ley. Y no vale eso de decir que desconocía el alcance de la ley y de su régimen sancionador. No dudo en que el fin pueda ser incluso bueno pero no hay derecho que, a pesar de que el fin último sea bueno, se hagan las cosas de esta manera tan irresponsable…

A quién corresponda.

VoIP: Protocolos de señalización

[Como segunda entrada sobre VoIP, en este post vamos a describir los principales protocolos de señalización utilizados por VoIP, y en el siguiente entraremos en los protocolos de transporte. Estas tres entradas permitirán que los siguientes artículos, de carácter técnico, sean más accesible a aquellos no duchos en esta tecnología.]

En los últimos años, los protocolos de señalización para el servicio de transmisión de voz han experimentado una fuerte evolución, puesto que cada vez más, se están usando las redes de conmutación de paquetes para transportar tráfico de voz. Las necesidades de calidad de servicio hacen que sea necesaria una gestión de recursos que asegure la optimización de la capacidad de transporte de la voz extremo a extremo, para ello surgen los protocolos de la señalización.

Por señalización se entiende el conjunto de informaciones intercambiadas entre los dos extremos de la comunicación que permiten efectuar operaciones de:

  • Supervisión (detección de condición o cambio de estado).
  • Direccionamiento (negociación y establecimiento de llamada).
  • Explotación (gestión y mantenimiento de la red).

Para cumplir los requerimientos de señalización existen principalmente tres protocolos: H.323, SIP y MGCP.

[Read more…]

Cuando saltan chispas en la seguridad

No son muy amigas, la seguridad y las chispas, o tal vez la seguridad y los chispas. No lo son y no conozco realmente la razón, porque es habitual ver como empresas importantes invierten sumas nada despreciables en protecciones tecnológicas de sus infraestructuras TIC y olvidan de forma recurrente su protección física, en su más amplio sentido: la protección de las instalaciones que soportan sus sistemas de información. Instalaciones básicas (en el sentido de vitales) que en un porcentaje muy importante de los casos están descuidadas, mal diseñadas o mal ejecutadas y que en TODOS los casos tienen consecuencias negativas sobre alguna de las dimensiones de la seguridad: Confidencialidad, Disponibilidad o Integridad.

Sistemas de alimentación ininterrumpida mal dimensionados, elementos de protección incorrectos, cuadros eléctricos accesibles, instalaciones no documentadas, protecciones que no protejen, ausencia de selectividad en protecciones de circuitos, equipos de aire acondicionado mal dimensionados y mal colocados, tuberías de agua encima de las máquinas más críticas, armónicos y un largo etcétera son un breve ejemplo de las amenazas a las que nos enfrentamos en esta dimensión, y que he tenido el dudoso privilegio de ver a lo largo de mi carrera.

A la hora de enfrentarnos a un análisis de riesgos es habitual que, siguiendo más o menos lo que nos sugieren metodologías como MAGERIT, estructuremos nuestros activos de forma piramidal desde los procesos de negocio hasta llegar a las personas que lo soportan todo, pasando por las instalaciones y suministros. Según esto, si somos capaces de identificar los cimientos sobre los que se sustentan nuestros sistemas de información e indirectamente muchos de nuestros procesos de negocio, ¿por qué nos empeñamos en proteger solo parte de los niveles de la pirámide? Y es que por pequeñas que sean las instalaciones, son MUY grandes los activos que almacenan: información de nuestro negocio, de nuestros clientes, empleados, de las personas con las que trabajamos y para las que trabajamos. Cconocimiento al fin y al cabo… el alma de nuestras organizaciones.

Alguien podría esgrimir la lanza del presupuesto, pero lo cierto es que entre las instalaciones autoportantes e hiper-seguras de marcas muy conocidas para las que podemos necesitar hasta 60.000 euros para una sala de escasos metros cuadrados, y lo que habitualmente tenemos la oportunidad de ver, hay un abismo. Como cualquier otra instalación crítica, y el CPD en muchos casos lo es, necesitamos diseñar de forma adecuada las instalaciones, teniendo en cuenta que no es lo mismo hacer una instalación eléctrica en una casa o en una nave industrial que en una sala técnica, y que no podemos tratar las condiciones ambientales de la misma como si fuese una cámara frigorífica o una sala de cine. A lo que voy, es que cada una de las instalaciones que hospedan físicamente nuestros sistemas requieren un cuidado especial y unos conocimientos específicos.

La selectividad no es sólo la prueba de acceso a la universidad“. Esta será la próxima entrada de esta serie sobre seguridad física que comenzamos en Security Artwork, en la que, en la línea de lo dicho hasta ahora, hablaremos de un concepto poco conocido —o poco aplicado— a la hora de diseñar las instalaciones eléctricas de los CPDs.

Virtualización: una breve introducción.

Hace ya algún tiempo que nos encontramos en un tremendo boom de la virtualización de sistemas informáticos. Gran cantidad de empresas están migrando sus sistemas a entornos virtualizados seducidos por las grandes ventajas que aportan estos sistemas encuanto a comodidad y eficiencia.

La virtualización consiste en una capa software que corre en un sistema operativo anfitrión, y que proporciona una capa de abstracción con el hardware y con el sistema operativo que hay por debajo de dicho software. Dicha abstracción es realizada de tal manera que resulte transparente al software que se ejecuta por encima de ella, es decir, cuando instalemos un sistema operativo sobre dicha capa de abstracción, esté verá el mismo tipo de procesador, espacio de direcciones y demás características hardware que vería en una máquina física, permitiendo la ejecución sin necesidad de modificaciones del software.

Dado que multiples instancias pueden ser lanzadas, la capa de abstracción es la encargada de asignar los recursos a cada una de ellas (tiempo de CPU, memoria RAM, espacio en disco, etc), permitiendo un control centralizado de las mismas desde la máquina anfitrión. Otra de las principales ventajas que aporta esta nueva vertiente es la independencias del hardware y del sistema operativo anfitrión ya que, en caso de un fallo hardware del equipo, es posible trasladar la máquina virtual a una nueva máquina física, aunque el hardware y el sistema operativo instalado en dicha máquina sean completamente diferentes a los de la máquina original, simplemente con que dicha arquitectura sea soportada por el fabricante del sofware de virtualización.

Como podéis imaginar, la aplicación de las arquitecturas virtualizadas en los planes de contingencia de los sistemas de información es inmediata, ya que en caso de desastre, simplemente con tener hardware disponible (sin necesidad de que sea igual al original) y una copia de las máquinas virtuales es posible restaurar el funcionamiento en muy poco tiempo. Sin embargo, como suele pasar en la mayoría de los casos, ninguna solución es la panacea, sino que aporta unas ventajas y unas desventajas que hay que valorar.

Concretamente, el uso de entornos virtualizados tiene algunas implicaciones de seguridad que hay que tener muy en cuenta a la hora de diseñar este tipo de entornos, con el fin de poder controlar sus riesgos de seguridad intrínsecos y reducir dicho riesgo a un nivel residual asumible por la organización.

Pero eso será otro artículo.

El Talón de Aquiles del estandar 802.11i: Proceso de autenticación PSK (y III)

Tras la introducción teórica del funcionamiento del proceso de autenticación, comentada la semana pasada (I y II), es hora de abordar la metodología utilizada por las herramientas de seguridad inalámbricas que permiten realizar ataques de diccionario a la PSK, aplicaciones como Airolib (de la suite Aircrack) o Cowpatty. Aunque en un inicio pensamos separar esta entrada en dos, hemos llegado a la conclusión de que no tiene sentido, y que aunque sea un poco largo, aquellos interesados lo agradecerán.

El estándar 802.11i, y en concreto WPA, conforma un protocolo de seguridad complejo y fiable, si es utilizado de la manera adecuada. No obstante, no esta exento de ser susceptible a ataques de diccionario y fuerza bruta. En este post se detalla de forma teórica el principal “Talón de Aquiles” que presenta este protocolo. Éste reside en el proceso de autenticación entre las estaciones de la red y el punto de acceso, el llamado saludo a cuatro vías o “4 way-handshake“; dicho proceso consta del intercambio de 4 paquetes para la gestión del acceso a la red. La brecha de seguridad a la que nos referimos, y que un atacante podría utilizar, se encuentra tanto en el segundo como en el cuarto paquete, ya que en ambos la estación transmite al AP el MIC o control de integridad, y el mensaje EAPoL en claro. (Recordad que el valor MIC conforma el resultado de aplicar el algoritmo de control de integridad “Michael” al mensaje EAPoL. Dicha función toma como entrada el paquete de datos mismo, las direcciones MAC origen/destino, y parte de la PTK; todo ello genera mediante la función de HASH HMAC_MD5 la cadena de control de integridad.)

[Read more…]