29 de julio de 2010

Nuevas versiones de PHP solucionan varios fallos de seguridad

Se han publicado recientemente nuevas versiones de PHP (versiones 5.2.14 y 5.3.3) que solucionan múltiples problemas de seguridad, que podrían permitir evitar restricciones de seguridad, provocar denegaciones de servicio, obtener información sensible o comprometer los sistemas afectados.

PHP es un lenguaje interpretado de propósito general ampliamente usado, que está diseñado para desarrollo web y puede ser embebido dentro de código HTML. PHP está orientado a la creación de páginas web dinámicas, ejecutándose en un servidor web (server-side scripting), de forma que primero se toma el código en PHP como entrada y se devuelven las páginas web como salida.

Los fallos están relacionados con errores de diseño, desbordamientos de búfer, errores de validación de entradas, y afectan a funciones como "shm_put_var()", XOR operator, "ArrayObject::uasort()", "parse_str()", "pack()", "strchr()", "strstr()", "substr()", "chunk_split()", "strtok()", "addcslashes()", "str_repeat()", "trim()", "addcslashes()", "fnmatch()", "substr_replace()", extensión sqlite, extensión phar, "mysqlnd_list_fields", "mysqlnd_change_user" y mysqlnd.

De todos estos errores sólo se han asignado cuatro CVEs. Dos comunes en ambas versiones y uno específico para cada una de ellas; un total de tres fallos (con CVE asignado) por versión.

CVE-2010-2225:
Esta vulnerabilidad fue anunciada en la conferencia SyScan'10 de Singapore y posteriormente publicada en "el mes de los fallos en PHP". Este fallo se provoca cuando se llama a la función "unserialize" con un objeto "SplObjectStorage". La función "unserialize" no filtra adecuadamente los datos al cargar el objeto. Esto podría permitir a un atacante remoto ejecutar código arbitrario y obtener información sensible. Para la versión 5.2.x solo son vulnerables la versiones de 32 bits. El impacto puede mitigarse con el módulo "Suhosin" pero sigue
siendo vulnerable.

CVE-2010-0397:
Este error había sido publicado por Debian en marzo. Es causado por no procesar correctamente los datos del primer parámetro de la función "xmlrpc_decode_request". Este error en el módulo "xmlrpc" puede provocar una referencia a puntero nulo. Un atacante remoto podría aprovechar este fallo para causar una denegación de servicio a través de una llamada a "xmlrpc_decode_request" especialmente manipulada. Existe una prueba de concepto que permite explotar esta vulnerabilidad.

En la versión 5.3.3 se ha solucionado un error (CVE-2010-2531) en la función "var_export" que podría permitir la fuga de información si ocurre un error grave. El fallo se debe a que los datos se van imprimiendo durante el transcurso de la función en vez de esperar al final para imprimir todo el contenido. Para solucionar esto se ha creado una variable de tipo "smart_str" donde se aloja el texto para imprimirlo tras comprobar que no hay errores.

En la versión 5.2.14 se ha solucionado un error (CVE-2010-2484) en la función "strrchr". Esta función no valida correctamente el valor del parámetro "$haystack". Un atacante remoto podría utilizar esto para obtener información de la memoria.

Las nuevas versiones se encuentran disponibles para descarga desde:

http://www.php.net/downloads.php

Referencias:

PHP Released:
http://www.php.net/archive/2010.php

Info sobre CVE-2010-2225:
http://www.php-security.org/2010/06/25/mops-2010-061-php-splobjectstorage-deserialization-use-after-free-vulnerability/index.html
http://svn.php.net/viewvc?view=revision&revision=300843
https://bugzilla.redhat.com/show_bug.cgi?id=605641

Info sobre CVE-2010-0397:
http://bugs.debian.org/573573
http://bugs.php.net/51288

Info sobre CVE-2010-2531:
http://svn.php.net/viewvc?view=revision&revision=301143

Info sobre CVE-2010-2484:
http://svn.php.net/viewvc?view=revision&revision=300916

27 de julio de 2010

Sistemas de alimentación ininterrumpida

Ya estamos en el último apartado de "Aplicación de medidas de seguridad pasiva" de estos apuntes de dirigidos para el "Módulo Profesional de Seguridad informática" que pertenece a el FP. de grado medio de "Técnico en Sistemas Microinformáticos y Redes".

El punto anterior a este apartado es "Ubicación y protección física de los equipos y servidores".

Sistemas de alimentación ininterrumpida.


Para que los sistemas informáticos funcionen adecuadamente es necesario que la alimentación eléctrica sea correcta. La corriente eléctrica tiene fluctuaciones que pueden afectar a los sistemas electrónicos.

Cada equipo dependiendo de su función tendrá distintas características de alimentación électrica. Es lógico pensar que un equipo compuesto por diez discos duros necesitará más potencia que un equipo de procesado o que un switch de red. Por tanto tendremos que saber que necesidades eléctricas necesita cada equipo, para ello consultaremos el manual de cada elemento de un equipo y haremos la suma de potencias.

Es recomendable que las fuentes de alimentación sean superiores a la suma de potencias, de este modo la fuente trabajará en mejores condiciones y evitaremos riesgos. En algunos servidores en normal ver fuentes de alimentación duplicadas, para evitar que fallen.

En la corriente eléctrica convencional podemos encontrar fenomenos adversos tales como:

  • Sobretensión/Picos de tensión.

  • La sobretensión abarca una gran variedad de fenómenos, pero todos implican el agotamiento de los transportadores de carga en la superficie del electrodo. Esto quiere decir que la tensión en bornas del enchufe sube por encima del 110% de la tensión habitual.
  • Caída de tensión.

  • Se provoca por cambios en la resistencia de la red eléctrica. Para que este efecto sea relevante la tensión ha de estar sobre el 80% de la tensión habitual.
  • Ruido eléctrico.

  • Se denomina ruido eléctrico o interferencias a todas aquellas señales, de origen eléctrico, no deseadas y unidas a la señal principal, de manera que la alteran el comportamiento normal de la señal produciendo efectos perjudiciales. Pueden producirse por efectos de inducción entre cables.

Como todos sabemos las empresas suministradoras de corriente no aseguran su suministro durante las 24 horas los 365 días, por tanto, es esperable que en algún momento falle el suministro.

Los sistemas de alimentación ininterrumpida son conocidos como SAIs o UPSs por sus siglas en castellano e ingles respectivamente.
Son elementos con la propiedad de ser activos encargados de alimentar a los sistemas conectados a ellos. Se sitúan entre la fuente de alimentación de los equipos y la red eléctrica. Algunos de ellos posen soporte para apagar los equipos de forma correcta si fuera necesario.

Es tan importante tener los equipos informáticos conectados a un SAI como los sistemas de red, ya que si se falla el suministro eléctrico y se pierde la conectividad con los equipos es igual que si estos estuvieran apagados.

Los equipos SAI se componen de varias partes:

  • Rectificador:

  • Este elemento permite convertir la corriente alterna procedente de la red eléctrica convencional a corriente continua. Esto es posible gracias a el uso de diodos rectificadores.
  • Inversor:

  • Este elemento opera de forma opuesta al rectificador, convierte la corriente continua procedente de la batería o del rectificador a corriente alterna con los valores de frecuencia, tensión y corriente deseados. A diferencia del rectificador la electrónica de este elemento es bastante compleja.
  • Batería:

  • Una batería es un acumulador eléctrico. Almacenamos la energía eléctrica que proviene del rectificador para poder usarla cuando sea necesario. Las baterías eléctricas son fabricada de distintas maneras según las necesidades:

    TipoEnergía/ pesoTensión (V)Duración
    (nun. recargas)
    Tiempo de cargaAuto-descarga
    por mes (% del total)
    Plomo30-50 Wh/kg2 V10008-16h5 %
    Ni-Cd48-80 Wh/kg1,25 V50010-14h *30%
    Ni-Mh60-120 Wh/kg1,25 V10002h-4h *20 %
    Li-ion110-160 Wh/kg3,16 V40002h-4h25 %
    Li-Po100-130 Wh/kg3,7 V50001h-1,5h10%
Otra manera de prevenir los cortes de alimentación es usar líneas redundantes de alimentación, a ser posible con diferentes origenes, es decir, que la energía provenga de subestaciones distintas, o fuentes renovables; esto protegerá ante la caída en una de las dos subestaciones.

Es habitual que los CPDs con muchas máquinas tengan sus propios generadores (de gasolina) eléctricos para caso de la caída del suministro eléctrico general. En un futuro los generadores de gasolina podrían sustituirse por generadores con hidrógeno o biomasas.

23 de julio de 2010

Ubicación y protección física de los equipos y servidores

Continuamos en el apartado de "Aplicación de medidas de seguridad pasiva" de estos apuntes de dirigidos para el "Módulo Profesional de Seguridad informática" que pertenece a el FP. de grado medio de "Técnico en Sistemas Microinformáticos y Redes".

Ubicación y protección física de los equipos y servidores


Los incidentes de tipo físico se pueden dividir en dos tipos básicos.

  • Incidentes Naturales: Incendios, inundaciones, temperatura, alimentación eléctrica, ... .

  • Incidentes Humanos: Robos, fraudes, sabotajes, ... .


Para minimizar el impacto de un posible problema físico tendremos que imponer condiciones de seguridad para los equipos y sistemas de la organización. Por otra lado para que los equipos informáticos funcionen correctamente deben de encontrarse en bajo ciertas condicines.

Como es lógico pensar no todos los equipos informáticos de una organización tiene el mismo valor. Para poder tener una buena seguridad debemos saber que equipos y datos son más importantes para la organización. Ej. Un sevidor y un puesto de trabajo no tendrán las mismas medidas de seguridad, ni fisicas ni lógicas.

Los servidores dado que su funcionamiento ha de ser continuo deben de situarse en un lugar que cumpla las condiciones optimas para el funcionamiento de estos.

Para asegurar los sistemas y equipos que han de mantenerse siempre operativos se crean lugares que se conocen como "Centro de Procesamiento de Datos" o por sus siglas CPD.
Para poder asegurar un CPD lo primero que debemos hacer es asegurar el recinto con medidas de seguridad física.

  • Sistemas contra incendios.

  • Existen varios tipos de sistemas de extinción de incendios, como: extracción de oxigeno, inserción de gases nobles o extintores especiales que eviten el riesgo de electrocución.

    Es importante intentar evitar los sistemas contra incendios que usen materiales conductores, dado que, de lo contrario pueden perderse datos de los dispositivos.
  • Sistemas de control de acceso.

    • Sistemas de Llaves (tradicionales).

    • Sistemas de contraseña.

    • Estos sistemas son los más usados por si simplicidad de uso y bajo coste. En estos tipos de sistemas se ha de establecer politicas de contraseñas. Por tanto la organización que implemente un sistema de contraseña tendrá que indicar a sus usuarios con que periodicidad son cambiadas y que caracteristicas tienen que tener para ser seguras. Sobre las politicas de contraseñas hablaremos más adelante.
    • Sistemas Targeta manética.

    • Estos sistemas se componen de una targeta con una banda magnética que contiene un código para acceder.
    • Sistemas RFID:

    • Son las siglas de identicicación por radio frecuencia en Ingles (Radio Frequency IDentification), estos sistemas se componen de un elemento que reacciona ante una señal, devolviendo un resultado. Existen dispositivos RFID con identificadores únicos certificados por la casa de la moneda.
    • Sistemas de Token.

    • Un sistema de token se compone de un elemento movil llamado "Token" que genera claves aleatorias, para poder funcionar correctamente el token ha de estar sincronizado con el sistema de acceso. Para poder acceder el usuario ha de insertar la clave generada por el token en el sistema, este generará una clave usando el mismo algoritmo y la comparará. Actualmente se están usando sistemas de "Token" mediante el envío de un sms.
    • Sistemas Biométricos.

    • Son sistemas que otorgan acceso mediante la identificación por elementos fisicos de cada indibiduo, vease iris del ojo, huellas dactilares, voz, sistema de venas palmares, u otros rasgos unicos. Este tipos de sistemas son más complejos para ser saltados dado es muy complejo copiar este tipo de datos.


  • Sistemas de control de temperatura.

  • Para que los sistemas informáticos funcionen correctamente los elementos físicos de los mismos han de encontrase a ciertas temperaturas.

    Debido a que los equipos infomáticos funcionan mediante semiconductores se tienen que mantener entre cierto valores de temparatura, de lo contrario los semiconductores pierden sus propiedades y dejan de funcionar adecuadamente. La temperatura adecuada de un CPD no debe de superar los 30º.

En el siguiente post veremos más información sobre las necesidades eléctricas de los CPDs.

21 de julio de 2010

Aplicación de medidas de seguridad pasiva

Como ultimamente no encuentro nada sobre lo que escribir he decidido hacer unos apuntes sobre seguridad informática.

Estos apuntes están dirigidos para el "Módulo Profesional de Seguridad informática" con "Código 0226". Este modulo pertenece a el FP. de grado medio de "Técnico en Sistemas Microinformáticos y Redes" y podéis obtener más información en formato pdf del boe y en formato web de juridicas. Dado que se diferencian ambos texto realizaré una mezcla según mejor me venga.

Estos apuntes están pensados para servir de guia y tratan de cumplir los criterios de evaluación de esta signatura.

Introducción


Para una organización la información es su mayor valor. Sin información las organizaciones no pueden funcionar o funcionan con serios problemas, es por tanto de vital importancia asegurar estos datos para evitar filtraciones, perdidas, etc.

Cuando nos encontramos en un entorno de red, todos los sistemas se encuentran interconectados, por tanto, un ataque a uno de ellos puede afectar al resto.

Dado que es la información un bien preciado para las organizaciones tenemos que asegurarnos que ante un incidente tenemos todos o el mayor numero de recursos y procedimientos que eviten una catástrofe aun mayor. Lo más importante para una empresa es que ante un incidente el problema se solucione lo antes posible. Para un encargado de seguridad la mayor preocupación deber ser minimizar las posibilidades de un incidente así como su impacto.

Para facilitar el trabajo de análisis de la seguridad podemos dividir la labor en distintas partes según queramos enfocar y/o abarcar la labor de asegurar nuestros sistemas.

Si dividimos el problema dependiendo del comportamiento de los elementos que actúan sobre los sistemas podremos diferenciar entre:

  • Seguridad Pasiva: Al igual que ocurre en la automoción, son elementos de seguridad pasiva todos aquellos elementos que minimizan el impacto de un accidente o incidencia.

  • Seguridad Activa: Nos referimos a seguridad activa cuando hablamos de elementos que evitan de forma proactiva las incidencia. En caso de detectar un incidente genera un evento para evitar el problema.


Podemos dividir de igual modo según desde un plano material:

  • Seguridad Física: Es la encargada de asegurar los equipos y sistemas necesarios para que el acceso (físico) solo se realice por personal autorizado. Es la seguridad desde un punto de vista Hardware.

  • Seguridad Lógica: Es la encargada de asegurar los procesos y aplicación necesarios para que el acceso (lógico) a los datos se realice solo por el personal autorizado. Es la seguridad desde un punto de vista Software.


Dado el funcionamiento de los sistemas actuales de información, la mayor parte de los sistemas de seguridad física son elementos pasivos, del mismo modo que la seguridad lógica es principalmente seguridad activa, aunque no es necesariamente siempre así.

15 de julio de 2010

Proyecto Honeypot

Con el termino Honeypot (Tarro de miel) hacemos referencia a un sistema preparado para simunar una aplicación o sistema vulnerable, facil de explotar. La idea es atraer atacantes a este sistema para poder ver que hacen; de este modo podemos conocer el "modu soperandi".

El proyecto Honepot no solo analiza "tarros de miel", sino que también analiza Darknets (redes oscuras), es decir, redes en las cuales no debería existir ningún trafico, o el trafico solo debe ser privado, bien porque no hay servicios en ellas y ellas no acceden a servicios, bien porque son redes coorporativas que no tienen uso desde el internet global.

IANA es la organización encargada en distribuir las IPs en el mundo.

Una darknet sería, por ejemplo, el rango de IPs "179/8", ya que no están en uso y por tanto no debería nadie de acceder a esta red, sin embargo, existen automatismo que no comprueban esto, e intentan explotar todas las IPs que encuentren accediendo a sitios que no son conocidos o públicos.

Por ejemplo si una empresa de hosting piene 100 IPs de las cuales 50 no están en uso no debería recibir comunicación alguna con estas IPs. Del mismo modo si nosotros tenemos una web "ejemplo.com" con un subdominio "honey.ejemplo.com" pero esta url no es pública, sería lógico pensar que nadie puede obtener esta dirección y por tanto solo nosotros accederemos a este equipo, pero esta dirección puede ser recogida por malware, servidores DNSs, ... y por tanto pude ser accedida por alguien no autorizado.

Para colaborar con el proyecto Honeypot podemos poner nuestro propio "enlace oscuro". Yo he instalado uno, el un subominio y para que los robots y sistemas automatizados accedan a ellos tenemos que realizar algún truco que oculte estas direcciones a todo aquel que no sea una máquina.

Por ejemplo:
<a href="http://hp.rollanwar.net/feverishvirgin.php"><!-- awestruck-mosaic --></a>
<a href="http://hp.rollanwar.net/feverishvirgin.php"><img src="awestruck-mosaic.gif" height="1" width="1" border="0"></a>
<a href="http://hp.rollanwar.net/feverishvirgin.php" style="display: none;">awestruck-mosaic</a>
<div style="display: none;"><a href="http://hp.rollanwar.net/feverishvirgin.php">awestruck-mosaic</a></div>
<a href="http://hp.rollanwar.net/feverishvirgin.php"></a>
<!-- <a href="http://hp.rollanwar.net/feverishvirgin.php">awestruck-mosaic</a> -->
<div style="position: absolute; top: -250px; left: -250px;"><a href="http://hp.rollanwar.net/feverishvirgin.php">awestruck-mosaic</a></div>
<a href="http://hp.rollanwar.net/feverishvirgin.php"><span style="display: none;">awestruck-mosaic</span></a>
<a href="http://hp.rollanwar.net/feverishvirgin.php"><div style="height: 0px; width: 0px;"></div></a>

Todos estos enlaces no son vistos por un usuario normal, por tanto quien acceda desde un navegador web no verá nada, sin embargo los robots analizan este código y siguen el enlace. De este modos podemos recopilar direcciones de robots y posibles ataques automáticos.

También podemos donar servidores de correo.

De este modo podemos crear una dirección de correo como "aversicaes@mail.rollanwar.net" o cualquier otra cullo fin es recibir correo no deseado, dado que esta dirección no existe. Cuando donamos un servidor de correo este aceptará todos los correos.

Más Info:
http://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.xml

Stop Spam Harvesters, Join Project Honey Pot

10 de julio de 2010

Publicada la Ley sobre ataque informáticos

Como ya comenté hace tiempo en el post "Los ataques informaticos serán delito" en España se pondrán límites a los accesos informáticos con fines de atacar a sistemas.

Esta ley que viene impulsada por la Unión Europea ya ha sido publicada en el BOE (Boletín oficial del estado) y entrará en vigor en Diciembre de este año.

Dado que ya hablamos de esta Ley anteriormente no voy a repetirme, pero quienes estén interesados en saber más pueden ver el siguiente post del Blog "Del derecho y las normas" de David Maeztu.