Seguridad Informatica

De Daniel Pecos

Contenido

Introducción

La Seguridad Informática es una disciplina que trata de asegurar la integridad y la privacidad de los sistemas de la información. Cubre todos los componentes que forma un sistema de información: datos, software, hardaware, redes, usuarios, etc.

En este documento se va a profundizar en la Seguridad Informática centrada al software, más concretamente en la Criptología. La Criptología es la rama de la Seguridad Informática que estudia los criptosistemas (sistemas que permiten la comunicación segura de mensajes entre un emisor y un receptor). La Cripotología está dividida en diferentes áreas de estudio:

  • Criptografía: consiste en una serie de técnicas que permiten el cifrado y descifrado de mensajes.
  • Criptoanálisis: métodos utilizados para la extracción de información a partir de un mensaje cifrado, sin hacer uso de la información secreta que normalmente sería requerida.
  • Esteganografía: técnicas que permiten ocultar mensajes dentro de objetos portadores, sin que sean fácilmente detectados.

¿Qué es la seguridad Informática?

Aspectos principales en los que se divide la Seguridad Informática:

  • Confidencialidad
  • Autenticidad
  • Integridad
  • Disponibilidad

La Política de Seguridad es un documento donde se analizan las debilidades del Sistema Informático, así como los mecanismos que se van a seguir para conseguir un máximo alcance de cada uno de los aspectos anteriores. No siempre es posible llegar a alcanzar un alto grado de consecución en todos los aspectos puesto que algunos son excluyentes entre sí (p.ej. Disponibilidad <-> Autenticidad), por lo que hay que conseguir el balance ideal.

Tipos de contramedidas

  • Físicas: soluciones hardware que aseguren la disponibilidad (p.ej. SAI) y la integridad (p.ej. RAID), principalmente.
  • Lógicas (informáticas): métodos algorítmicos que aseguran la autenticidad (p.ej. Firma electrónica) y confidencialidad.
  • Administrativas: conjunto de reglas que marcan el uso del sistema informático y que son de obligado cumplimiento.
  • Legales: sistema de medidas o normas que define la ley y cuya principal cualidad es el ser de caracter represiva.

Principios de la Seguridad Informática

  • Mínimos privilegios
  • Evitar basar la seguridad en el secretismo
  • Participación universal
  • Mecanismos de defensa construidos en profundidad (encadenados)
  • Recuperación en caso de fallo de seguridad

Aspectos legales

Es importante conocer los aspectos legales que afectan a la seguridad informática, puesto que muchas de las veces vamos a estar moviéndonos en el límite de la legalidada. Estas leyes varían en función del país y del momento, por lo que es necesario mantenerse informado sobre estos aspectos y actualizarnos, si pretendemos realizar consultorías o simplemente experimentar los conceptos que se tratan en la Seguridad Informática.

Seguridad Informática

Según la Wikipedia, se entiende como Seguridad un estado de cualquier tipo de información (informático o no) que nos indica que ese sistema está libre de peligro, daño o riesgo.

Cabe plantearse la siguiente pregunta: ¿Estamos hablando de Seguridad Informática o bien de Seguridad de la información? La segunda se puede considerar una parte de la primera, y muchas veces resulta díficil discernir dónde está el límite entre una y otra (por ejemplo, es posible ofrecer Seguridad de la Información con una simple política de backups, mientras que los sistemas hardware están totalmente desprotegidos, por lo que la Seguridad Informática en global resulta bastante baja).

Según la norma UNE-ISO/IEC 17799, la seguridad de la información se define como la preservación de:

  • Su confidencialidad
  • Su integridad
  • Su disponibilidad

Además pueden tenerse en cuenta estas otras dimensiones:

  • Autenticidad
  • Trazabilidad (permite determinar todas y cada una de las acciones que realiza cada usuario)

Para conseguir un máximo cumplimiento en cada una de estas dimensiones (ya se ha comentado que esto puede ser imposible puesto que algunas de estas dimensiones pueden llegar a plantear un conflicto entre sí, siendo posible alcanzar un equilibrio óptimo entre ellas), se debe definir una Política de Seguridad, pero no se debe terminar aquí, ya que la seguridad es un proceso continuo de planificación, implantación, verificación y ajuste de cada uno de los mecanismos que se establezcan para conseguir mejorar alguna de las dimensiones de la Seguridad de la Información.

Para definir la Política de Seguridad es necesario realizar un Análisis del Riesgo el cual nos permitirá discernir cuáles son los Activos que se deben proteger en función del valor que se le atribuya. Dicho valor puede ser de diferentes índoles: económico, estratégico, sentimental, etc. A partir del análisis de riesgo, debemos proceder con la Gestión del Riesgo que permite preparar una defensa contra el o los riesgos que se consideren oportunos, así como un plan de contigencia en caso de que los riesgos lleguen a ocurrir con el fin de que la afectación causada por dicho riesgo conlleve un impacto lo más bajo posible. Para discernir qué activos conviene proteger, es posible utilizar un Mapa de Activos, que no es más que un grafo en el que se visualizan las relaciones entre los distintos activos, permitiendo identificar los que son de mayor criticidad.

En el ejemplo de diagrama anterior (ínfraestructura típica de un sitio web) se pueden ver los siguientes activos:
  • Los clusters para atender peticiones webs, formados por servidores (web y base de datos) interconectados. Normalmente se dispone de dos clusters, haciendo uno las funciones de backup, por lo que resulta necesario replicar toda la infraestructura en el backup.
  • Cada uno de estos clusters suele tener su equipo de mantenimiento y suelen estar en sitios fisicamente distanciados.
  • El firewall y switch que protegen y comunican los dos clusters.
  • Los usuarios que intentan acceder al sistema.

Se ha comentado que los Activos son los recursos que se deben proteger y que su selección se realizará en función del valor que se determine que dicho activo posee. Un activo puede ser material (equipos informáticos, joyas, obras de arte, etc) o inmaterial (proyectos, diseños, habilidades tecnológicas, etc). En el caso de la Seguridad Informática, los Activos de Información principalmente, serán los objetivos a proteger de posibles riesgos.

Los activos que se ven afectados por un riesgo (bien por su frecuencia o bien por el impacto que puedan causar cuando el riesgo aparezca) se denomina Activo Degradado. La función de la Seguridad Informática es la de definir salvaguardas que reduzcan tanto la frecuencia como el impacto o degradación que puedan causar dichos riesgos. Estos valores de frecuencia o impacto son valores estimados y en función de los cuales se justificará la implantación de salvaguardas. Así pues, se puede decir que los principales aspectos que hay considerar en la Gestión del Riesgo son:

  • El impacto que puede causar el riesgo: Daño posible
  • La frecuencia con la que dicho riesgo puede manifestarse: Daño probable

Según MAGERIT (Metodología de Análisis y Gestión de Riesgos de los Sistemas de Información), la Gestión del Riesgo debe:

  1. Establecer una Política de la Organización al respecto: directrices generales de quién es responsable de cada cosa.
  2. Establecer una Norma: objetivos a satisfacer para poder decir con propiedad que la amenaza ha sido conjurada.
  3. Establecer unos Procedimientos: instrucciones paso a paso de qué hay que hacer.
  4. Desplegar salvaguardas técnicas que efectivamente se enfrenten a las amenazas con capacidad para conjurarlas.
  5. Desplegar controles que permitan saber que todo lo anterior está funcionando según lo previsto.

Conviene llegar a un cierto equilibrio entre:

  • Salvaguardas Técnicas: en aplicaciones, equipos y comunicaciones.
  • Salvaguardas Físicas: protegiendo el entorno de trabajo de las personas y los equipos.
  • Medidas de Organización: de prevención y gestión de las incidencias.
  • Política de Personal: que, a fin de cuentas, es el eslabón imprescindible y más delicado: política de contratación, formación permanente, Organización de reporte de incidencias, plan de reacción y medidas disciplinarias.

Por otra parte, actualmente en España existen las siguientes protecciones legales de activos:

  • Ley Orgánica de protección de datos de carácter personal.
    • RD 1720/2007 contempla las medidas de seguridad seguridad.
  • Ley de Servicios de la Sociedad de la Información.
  • Ley General de Telecomunicacione

Delitos Informáticos

Hablando con propiedad, los Delitos Informáticos como tal no existen, aunque es común referirse como tal a los delitos que tienen, bien como vía, bieno como objeto del delito, medios tecnológicos o informáticos. Así pues, se considerá, comúnmente hablando, un delito informático aquel que:

  • Usa la tecnología como medio para cometer un delito, como por ejemplo, la duplicación de tarjetas de crédito mediante dispositivos ocultos en cajeros automáticos, el phising realizado sobre bancos para obtener los datos de acceso de los usuarios, etc.
  • Atenta directamente contra un activo que forma parte de un Sistema de Información, como por ejemplo el ataque mal intencionado a servidores, la creación de virus, etc.

Casos típicos de delito informático, entre otros, son los siguientes:

  • Revelación de secretos
  • Daños a la propiedad ajena
  • Estafa
  • Violación del secreto de las telecomunicaciones
  • Vulneración de la propiedad intelectual o industrial
  • Calumnias e injurias
  • Incitación al odio o a la violencia
  • Apología de delitos
  • Amenazas
  • Pornografía infantil

Curiosamente, en la jurisdicción española se están dando casos de delitos informáticos en los que el acusado de sale absuelto de cargos debido a que argumenta que él no fue el que realizó el delito, sino una persona anónima que utilizó su red inalámbrica, la cual estaba desprotegida, para realizarlo. En caso de que su red wifi hubiera estado protegida, hubiera sido díficil esta argumentación, por lo que en este caso dejar la conexión abierta te puede meter en un lío pero al mismo tiempo es tu salvaguarda (Fuente).

Criptografía

- ¿Qué significa habla, amigo y entra? -preguntó Merry.
- Es bastante claro -dijo Gimli-. Si eres un amigo, dices la contraseña y las puertas se abren y puedes entrar.
- Sí -dijo Gandalf-, es posible que estas puertas estén gobernadas por palabras...

El Señor de los Anillos
J.R.R. Tolkien

Historia

Fuente: Historia de la criptografía

Algoritmos Hash

Algoritmos Cifrado

Criptografía en Internet

PGP

PGP o "Pretty Good Privacy" (Privacidad bastante buena), es el sistema de cifrado de correo más popular y más extendido hoy por hoy. Este sistema cifra el correo que vayamos a enviar para que solo el destinatario sea capaz de leerlo, pudiendo ser también utilizado para certificar que el autor de dicho correo soy yo y no otro cualquiera.

El PGP se basa en sistema de clave asimétrica o de clave pública, con lo que cualquiera que desee utilizarlo precisa tener las 2 claves. PGP basa su seguridad en la incapacidad actual de factorizar numeros enormemente grandes, ya que no se conoce ningún algoritmo que sea capaz de hacerlo, y la única forma de conseguirlo es por fuerza bruta, con la correspondiente tardanza que ello conlleva. En el momento de escribir este documento, se utilizan claves de 1024 y 2048 bits de longitud, siendo las primeras poco recomendadas, ya que con los sistemas actuales pueden ser destrozadas en cuestión de semanas. En cambio con las de 2048 bits, la cosa se alarga durante años, llegando incluso a ser cosa de siglos (si no recuerdo mal).

El modo de funcionamiento del PGP es sencillo: una vez te hayas creado tu par de claves, y hayas firmado tu clave publica con la privada (esto suele ser automático), deberías proporcionar tu clave a alguien de forma segura, para que así te la pudiera firmar, con lo que obtendrías mayor fiabilidad ante el resto de personas. Normalmente cuando se crea o modifica una clave, se suele subir a un servidor de claves gpg, para que pueda estar disponible para la mayor cantidad de gente posible. Hecho esto ya estás en disposición de usar el sistema PGP correctamente, sabiendo que quien reciba el correo podrá certificar que es tuyo.

Es muy importante y obligación tuya, no perder ni poner en peligro tu clave privada, ya que si así ocurriese, deberías anular dicha clave con unos certificados de revocación que deberas generar. El problema que tiene esto es que para crearlos es necesario la clave privada, con lo que si la has perdido no serás capaz de revocar dicha clave, y alguien se podría estar haciendo pasar por ti. Por ello es buena costumbre crear dichos certificados a la vez que el de claves, y guardar la clave privada y el certificado en un lugar seguro.

Aunque este sistema es mejor que no usar nada, tampoco es infalible, ya que como hemos dicho antes, este sistema puede ser franqueado por fuerza bruta, aunque no es éste el único incoveniente que tiene (ya que se puede solucionar usando claves de mayor longitud). Uno de los mayores inconvenientes de este sistema es el propio funcionamiento del sistema, ya que al basarse en anillos de confianza, no hay forma segura de acreditar que una clave es de quien dice ser, mas que por la confianza que tengamos en el que haya firmado dicha clave. Es decir, yo no tengo ninguna otra forma de comprobar que una clave es de alguien mas que por un amigo común a ambos que me certifica que dicha clave es verdaderamente de quien dice ser. Si este esquema lo proyectamos a mayor tamaño, obtenemos un esquema de confianza mutua y cíclica, al que se le denomina "anillo de confianza".

Debido a este problema, es totalmente imprescindible que no se firmen claves de las que su procedencia no sea totalmente segura, ya que sino se estaría introduciendo una clave falsa en el anillo, y sería totalmente indetectable para los demás. Por eso se suele recomendar que las claves se intercambien mano a mano, y no por Internet.

Otro gran problema, aunque este sea relativo a todos los sistemas de seguridad basados en claves, es que el tiempo que transcurre desde que tú revocas una clave hasta que el resto de Internet sabe de ello puede ser muy grande, o incluso podría pasar que nunca sabrían que esto ha ocurrido. Durante dicho tiempo, podría haber alguien haciendose pasar por otro, si la clave de éste hubiera sido comprometida. Este problema no tiene solución fácil, y es uno de los puntos negros de los sistemas de claves asimétricas.

Como nota final, comentar que hay varios programas que nos permiten usar este sistema de cifrado, como por ejemplo PGP que usa claves del tipo RSA, o GnuPG, que es una versión libre de PGP, por lo que usa claves del tipo DSA y ElGamal, aunque desde la liberación del algoritmo del RSA también es capaz de usar claves de este otro tipo. En The International PGP Home Page encontrarás las útlimas noticias y acceso a diversos documentos en relación con el PGP.

PKI

Este sistema de encriptación se asemeja mucho en el funcionamiento al PGP, ya que también un sistema de clave asimétrica, aunque no son compatibles entre ellos. PKI es un stándard (ISO), en el que se definen los certificados x509, y es una de las diferencias entre el PGP y el PKI. Estos certificados no son más que los datos personales del propietario (DN o "Distinguised Name"), junto con su clave pública, todo ello firmado por una Autoridad Certificadora.

Con este sistema, la clave pública de la que vayamos a hacer uso, es, con total seguridad, la clave de la persona que pretendíamos, ya que los datos que la acompañan así lo demuestran, y además y muy importante, está certificado por la Autoridad Certificadora en cuestión.

Debido a que tenemos gran seguridad de que la clave es auténtica, el PKI se suele usar en transacciones seguras a través de Internet (en conjunto con el SSL, que se encargará de cifrar los datos, ya que el PKI solo se usa a modo de identificación), o cualquier otro tipo de operación que requiera de una identificación segura.

El modus operandi es el siguiente: debes crear un PKCS 10 o "Certificate Request" autofirmado, que contendrá todos tus datos personales, y enviárselo a la autoridad certificadora que creas conveniente. Esta autoridad comprobará de alguna forma que los datos que le has proporcionado son verdaderos, bien citándose contigo, bien reclamando algún documento oficial que te identifique. Una vez que la autoridad se haya cerciorado de que los datos son correctos, creará un certificado x509 a partir del Certificate Request que tú le enviaste y lo firmará. Para una mayor comodidad, podrás crear un objeto PKCS 12, que no es más que un conjunto de certificados y sus claves privadas correspondientes, todo ello protegido con una clave. Este tipo de ficheros es el que más se suele usar en el PKI, y es el sistema usado por Netscape y Explorer.

Cada vez que una pagina web requiera identificacion a través de un certificado válido, el explorador te pedirá el password de la base de datos de certificados que posee, y irá comprobando uno a uno hasta que encuentre alguno que le permita acceder. Todos los certificados que importes a la base de datos del navegador, serán comprobados a través de la autoridad certificadora correspondiente, y serás avisado si algún certificado no es correcto, o la autoridad certificadora que lo ha firmado no es de tu confianza.

Este sistema también se puede usar para el cifrado y firmado de correo, siendo su uso muy parecido al PGP, pero con la fiabilidad que le confiere las autoridades certificadoras.

Si estás interesado en usar PKI, puedes usar OpenSSL, que es una implementación libre de PKI y SSL, teniendo siempre en cuenta las leyes vigentes sobre el uso de la criptografía de tu pais.

SSL

El "Secure Socket Layer" es un capa software, utilizado para cifrar las transmisiones entre ordenadores. Fue concebido por Netscape, aunque hoy en día es uno de los más ampliamente extendidos.

El primer paso que se debe realizar para establecer una transmisión segura es el "Handshake", después del cual el SSL fragmentará los paquetes a enviar, hará un resumen y los cifrará, para asi poder ser enviados. Dicho así parece muy sencillo, aunque es en el "Handshake" donde tenemos que centrar la atención. Durante este paso, las computadoras realizan varios pasos:

  1. Client Hello: Identificación del cliente.
  2. Server Hello: Identificación del servidor.
  3. Server Key Exchange: El servidor manda su certificado al cliente, el cual comprobará la validez de éste.
  4. Certificate Request: El servidor pide identificación para que el proceso siga adelante.
  5. Certificate Verify: Se comprueba la validez del certificado del cliente.
  6. Client Key exchange: Se generan una claves de sesión que serán cifradas con la clave pública del receptor, y serán enviadas.
  7. Cambio a modo seguro: A partir de este momento se usará algún algoritmo de cifrado simétrico (DES, 3DES, etc) para cifrar los datos, para lo que se usará la clave de sesión recibida, asegurando así que el otro será capaz de descifrar los datos.
  8. Finalización: Intercambio de un resumen de las acciones llevadas a cabo, para una posible comprobación.

Según el tipo de cifrado simétrico que usemos, determinaremos una mayor o menor seguridad de conexión. Por ejemplo cuando hacemos una conexión segura a nuestro servidor de webmail, seguramente estaremos usando 3DES de 40 bits, en cambio si la conexión es a una entidad bancaria, sera muy probablemente 3DES de 128 bits, el cual hasta Septiembre de 2000, sólo podía ser usado con permiso de EEUU, ya que era un algoritmo patentado, no siendolo así el 3DES de 40 bits, que aunque ofrece algo de seguridad, esta es mínima.

Criptoanálisis

[1]

Introducción a protocolos utilizados en Internet

TCP/IP

DNS

HTTP

Ataques

Herramientas

Addons para Firefox

Web Developer
The Web Developer extension adds a menu and a toolbar with various web developer tools.
Firebug
Firebug integrates with Firefox to put a wealth of development tools at your fingertips while you browse. You can edit, debug, and monitor CSS, HTML, and JavaScript live in any web page...
UrlParams
Shows you the GET and POST parameters of the current website in the sidebar...
HackBar
Simple security audit / Penetration test tool.
X-Forwarded-For Spoofer
Spoofs the X-Forwarded-For header.
Live HTTP Headers
View HTTP headers of a page and while...
http://livehttpheaders.mozdev.org/
Tamper Data
Use tamperdata to view and modify HTTP/HTTPS headers and post parameters
SQL Injection
SQL Injection is an Upgrade from the old form free, it is a component to transform checkboxes, radio buttons, select elements to a input text and enable disabled elements from all forms in a page.
It makes easier to test and identify SQL injection vulnerabilities in web pages.
SQL Inject Me
SQL Injection vulnerabilites can cause a lot of damage to a web application. A malicious user can possibly view records, delete records, drop tables or gain access to your server. SQL Inject-Me is Firefox Extension used to test for SQL Injection vulnerabilities.
XSS Me
Cross-Site Scripting (XSS) is a common flaw found in todays web applications. XSS flaws can cause serious damage to a web application. Detecting XSS vulnerabilities early in the development process will help protect a web application from unnecessary flaws. XSS-Me is the Exploit-Me tool used to test for reflected XSS vulnerabilities.
Access Me
Access vulnerabilities in an application can allow an attacker to access resources without being authenticated. Access-Me is a Firefox extension used to test for Access vulnerabilities.
Herramientas personales