Publicaciones Etiquetadas ‘https’

[Howto] Crear certificado de seguridad autofirmado

Hola lectores!

La semana pasada me llegó un requerimiento para generar un archivo CSR (Certificate Signing Request) para la creación de un certificado de seguridad, y pues bien, hoy me doy a la tarea de explicar paso por paso la creación del mismo incluyendo las llaves y todo lo que se tiene que generar.

¿Para qué nos sirve un certificado de seguridad?

Los certificados de seguridad son una medida de confianza adicional para las personas que visitan y hacen transacciones en su página web, le permite cifrar los datos entre el ordenador del cliente y el servidor que representa a la página. El significado más preciso de un certificado de seguridad es que con él logramos que los datos personales sean encriptados y así imposibilitar que sean interceptados por otro usuario. Ahora es muy común ver en nuestros exploradores el protocolo de seguridad https; mediante éste, básicamente nos dice que la información que se envía a través de Internet, entre el navegador del cliente y el servidor donde está alojada la página, se encripta de forma que es casi imposible que otra persona reciba, vea o modifique los datos confidenciales del cliente.

En el mundo de Internet, toda comunicación cifrada el certificado debe ser firmado por una Entidad Certificadora Autorizada (CA) que nos garantiza que el servidor donde está alojada la página es quien dice ser. En algunas ocasiones, es necesario crear certificados auto-firmados para realizar pruebas o para montar servidores internos.

Con un servidor Unix/Linux y con el programa OpenSSL es muy fácil y rápido crear este tipo de certificados.

Pues bien, ahora que ya leímos algo de teoría pasemos a la creación del certificado:

  1. Generar la llave privada.Una de las tantas bondades de OpenSSL es el poder generar una llave RSA privada y un archivo CSR, pero también nos sirve para crear los certificados autofirmados que por lo regular son utilizados para uso interno o para realizar pruebas.
    El primer paso es crear la llave privada RSA. Esta clave es de 1024 bits que se cifra utilizando 3-DES y se almacena en formato PEM para poder ser leído en formato ASCII.

    openssl genrsa -des3 -out server.key 1024



  2. Generar un CSR.
    Ahora que tenemos creada la clave privada procedemos a generar un archivo CSR (Solicitud de firma de certificado, por sus siglas en inglés).  Este archivo tiene 2 utilidades, la primera, enviarlo a una entidad certificadora como Verisign o Thawte, quienes validarán la identidad del solicitante y generarán un certificado firmado; y la segunda, es la de auto firmar el CSR, que es lo que explicaremos más adelante.
    Durante la generación del archivo CSR, se solicitarán ciertos datos informativos que serán los atributos X.509 del certificado.
    Uno de los campos que se solicitan el es “Common Name”, en este campo es muy importante poner el nombre del dominio del servidor que va a ser protegido por SSL. Como ejemplo, si el sitio va a ser https://secure.csimx.net, en el campo se pondría secure.csimx.net.
    El siguiente comando muestra como generar el archivo CSR

    openssl req -new -key server.key -out server.csr

  3. Borrar la contraseña de la clave.
    Un desafortunado efecto secundario de la transmisión de una clave privada con contraseña (passphrase) es que Apache o el servidor web en cuestión te pedirá la frase cada vez que se inicie el servidor web. Esto no siempre es conveniente, sobretodo si el servidor se reinicia automáticamente. Las propiedades mod_ssl  de Apache incluye la capacidad de utilizar un programa externo en lugar de escribir la frase a mano, sin embargo, esto no es necesariamente la opción más segura. Es posible eliminar el cifrado 3-DES de la clave para que no sea necesario escribir una clave. Eso sí, si la clave privada ha dejado de estar cifradas, ¡es fundamental que este archivo sólo pueda ser leído por el usuario root!. Si un tercero obtuviera la clave privada sin cifrar, el certificado correspondiente deberá ser revocado. Para quitar la frase de paso de la clave, utiliza el siguiente comando:

    cp server.key server.key.org
    openssl rsa -in server.key.org -out server.key

     

  4. Crear el certificado autofirmado.
    Si todo lo anterior se llevó a cabo, en este punto podemos crear el certificado autofirmado. Este certificado marcará error en el navegador del cliente ya que la entidad certificadora es desconocida y no confiable.El siguiente comando muestra como generar el certificado con una validez de 1 año.

    openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

  5. Instalar la clave privada y el certificado en el Apache.
    Cuando se instala Apache con mod_ssl, se crean diversos subdirectorios de configuración dependiendo donde y como se configuró e instaló apache.

    cp server.crt /usr/local/apache/conf/ssl.crt
    cp server.key /usr/local/apache/conf/ssl.key

  6. Configurar los Virtual Hostscon SSL.

    SSLEngine on
    SSLCertificateFile /etc/apache2/conf.d/ssl.crt/server.crt
    SSLCertificateKeyFile /etc/apache2/conf.d/ssl.key/server.key
    SetEnvIf User-Agent “.*MSIE.*” nokeepalive ssl-unclean-shutdown
    CustomLog logs/ssl_request_log \
    “%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \”%r\” %b”

  7. Reiniciar apache.

    service apache2 restart

  8. Probar.

    https://secure.csimx.net

 

 

Visto en www.hackplayers.com

Conceptos de Seguridad que debes conocer

Alguna vez haz escuchado cosas raras como ¿Agujero de Seguridad? o ¿Malware? o ¿Análisis de Vulnerabilidades? ¿PenTest? etc??

Bueno, vamos a presentar unos cuantos conceptos que siempre debes tener en la mente:

  1. ¿Qué es un análisis de vulnerabilidades?
    Un análisis de vulnerabilidades es un estudio en busca de debilidades que se realiza a una infraestructura y/o aplicación de manera controlada y con pleno concentimiento del cliente.
    El objetivo principal es asegurar que no está expuesta a un atacante y así poder mantener la disponibilidad, confidencialidad e integridad de la información.
  2. ¿Qué es Malware?
    Es un software malicioso que su objetivo es dañar y/o infiltrarse en equipos computacionales sin el concentimiento de su propietario.
  3. Qué es un agujero de seguridad?
    Es una debilidad en un sistema que puede ser aprovechado por un atacante para violar la seguridad del mismo.
  4. ¿Qué es un troyano?
    Es un tipo de malware que se presenta al usuario como un programa legítimo pero que al ejecutarlo causa daños en los equipos y sistemas. En la mayoría de los casos abre puertas traseras permitiendo a un atacante manipular y tomar control del equipo.
  5. ¿Qué es un certificado de seguridad?
    Es un tipo de seguridad que brinda confianza al usuario cuando realiza transacciones por internet, normalmente económicas o con información sensible. Está diseñado para cifrar toda la información que pasa ente el cliente y el servidor y que no sean interceptados por algún otro usuario. Podemos identificar este tipo de servicio en nuestro navegador cuando la barra de navegacion tiene https:// como son los bancos, Facebook, gmail, entre otras páginas.
  6. ¿Qué es una auditoría de seguridad?
    Es un estudio realizado por profesionales de seguridad informática que pretende el análisis de sistemas para evaluar, identificar, enumerar y describir las diferentes vulnerabilidades que pudieran presentarse en una revisión de servidores, redes y equipos de computo.
  7. ¿Qué son las APT – Advanced Persistent Threat (Amenaza Avanzada Persistente)?
    Son un tipo de malware que se encargan de atacar principalmente entornos corporativos o políticos. La principal característica y por lo que sobresale, es por su alta capacidad de esconderse/ocultarse, por lo que es muy difícil deshacerse de ellas.
  8. ¿Qué es una prueba de Penetración?
    Es una evaluación activa de las medidas de seguridad de la información. El objetivo del PenTest es detectar puntos débiles que pueden ser utilizados por un atacante para violar la seguridad de los sistemas. Durante el PenTest se busca explotar las debilidades simulando ser un atacante para obtener información relevante pero SIN DAÑAR la información, sistemas e infraestructura.

Gracias por leernos, espero dejarles un poco más claro estos conceptos y que les sean de utilidad más adelante.

 

Saludos! }x)

Detecta Firewall de Aplicación con waffit

Hola a tod@s,

En esta ocasión les vengo a platicar de una herramienta que nos permite identificar si un sitio se encuentra detrás de algún firewall de aplicación. Como bien el título de la entrada lo dice, la herramienta se llama waffit.

Waffit también conocida como Wafw00f (Web Application Firewall Detection Tool) es un script desarrollado en python que permite identificar y realizar un reconocimiento de sitios web que se encuentran protegidos por Firewalls de Aplicación ó WAF (Web Application Firewall, por sus siglas en inglés)

El proyecto a pesar de ser funcional se encuentra en fase de desarrollo y se puede acceder a su google code desde aquí.

Así mismo se encuentra ya instalado en el sistema BackTrack r3.

La manera de ejecutar el script es muy simple, desde backtrack solo hay que dirigirse al directorio /pentest/web/waffit y dentro de este directorio se ejecuta el siguiente comando:

./waffw00f.py <url>

Y nos regresa el fabricante del Firewall de Aplicación.

Adicional trae diferentes opciones por si queremos hacer un escaneo mas detallado:

-h, –help                                                Show this help message and exit
-v, –verbose                                        Enable verbosity – multiple -v options increase verbosity
-a, –findall                                            Find all WAFs, do not stop testing on the first one
-r, –disableredirect                          Do not follow redirections given by 3xx responses
-t TEST, –test=TEST                         Test for one specific WAF
-l, –list                                                    List all WAFs that we are able to detect
–xmlrpc                                                 Switch on the XML-RPC interface instead of CUI
–xmlrpcport=XMLRPCPORT        Specify an alternative port to listen on, default 8001
-V, –version                                         Print out the version

 

La herramienta detecta gran cantidad de fabricantes de WAF como se puede observar:

Can test for these WAFs:

Profense
NetContinuum
Barracuda
HyperGuard
BinarySec
Teros
F5 Trafficshield
F5 ASM
Airlock
Citrix NetScaler
ModSecurity
DenyALL
dotDefender
webApp.secure
BIG-IP
URLScan
WebKnight
SecureIIS
Imperva

 

Espero que les sea de utilidad esta herramienta.

Muchas gracias por leernos y no dejen de recomendarnos.

Saludos!

Tus Contraseñas, ¿Son Seguras?

Si han prestado atención en las noticias, se ha mencionado en estos días que a “los famosos”; por llamarlos de alguna manera les han “hackeado” sus cuentas de Twitter y Facebook.

Otras noticias muy sonadas son los ataques que Anonymous realiza a diferentes entidades, como fuerzas policiacas, financieras, sitios de gobierno, escuelas, entre otros, como “protesta” de acciones realizadas o tomadas por dichas entidades.

Y esto no es hackeo, lo que pasa en estos casos es que usan contraseñas muy débiles, o palabras de diccionario, caracteres seguidos; si buscamos en Internet las contraseñas mas usadas veremos ejemplos como los siguientes:

qwerty

q1w2e3r4t5

abc123

123456

zaqxsw

qpwoeiruty

entre otras…

Ayer por la tarde un colega detectó que sitios .gob.mx tienen de usuario y password admin/admin, los passwords default no son cambiados, ni en servidores, ni en routers, firewalls, etc…

Hoy en día hay “ataques” herramientas muy sofisticadas que realizan ataques de diccionario o fuerza bruta y dependiendo del procesador y memoria RAM del equipo se puede conseguir un password sencillo en un par de minutos.

Para que les explico todo esto? Pues para que no caigan en este problema, que cuiden su infraestructura, no dejen los passwords default.

Ustedes se preguntarán como crear contraseñas seguras, existen varias formas; para crear una contraseña robusta es necesario utilizar caracteres especiales, símbolos, se recomienda  que sean mayores de 8 caracteres, que sean alfanuméricas y que no sean fáciles de adivinar; evitar fechas de nacimiento, aniversarios, nombres de los hijos/hermanos, teléfono de la casa o celular, entre mas datos personales.

También es importante tener una contraseña para cada servicio, NO es seguro utilizar la misma para el correo, que para las redes sociales, y mucho menos para las cuentas bancarias.

Estoy consciente que el tener muchas contraseñas es difícil de recordar pero para eso podemos generar una contraseña “base” y agregar el nombre de la aplicación o el nombre del usuario; como en este caso de ejemplo, vamos a utilizar las primeras 4 letras del servicio, la primera con MAYUSCULA y alfanumérico, seguido de “algo” que conocemos o tenemos:

Para redes sociales utilizamos paréntesis:

F4c3(tu apodo)

Para servicios de  correo utilizamos comillas:

S3rv”tu apodo” — Donde S3rv es gmail, hotmail, etc.

Para las cuentas bancarias utilizamos _:

B4nc_tu apodo_la suma de los dígitos de tu fecha de nacimiento — Donde B4nc, pueden ser las primeras 4 letras de tu banco o las 4 últimas y la suma sería de tu día (dd), mes(mm), y año (aaaa)

Aparte de todo esto, les dejo un a liga donde pueden revisar que tan robusta son sus contraseñas:

Revisa tu contraseña

 

Espero les sea de interés y sobre todo de mucha ayuda.

 

Concientización de usuarios ayuda a la seguridad

El termino concientizar o concientización toma parte de una acción educativa, que en los diferentes temas explica a los usuarios las cosas que son buenas y que son malas, poniendo como prioridad la enseñanza.

La seguridad informática es una temática que está teniendo una muy grande repercusión, más que nada en un equipo conectado a internet, que es el foco principal de propagación de malware. Para esto se han generado distintas políticas de seguridad, como por ejemplo la navegación con el protocolo HTTPS, para navegar en sitios que contengan o soliciten información personal, confidencial, o simplemente privada sin temer la pérdida, hurto o mal uso de la misma.

En un principio estas políticas eran utilizadas en sitios web bancarios entre otros, debido a los hurtos de datos de las tarjetas de crédito, y por ende, el robo del dinero. Luego, estas políticas de seguridad informática fueron aplicándose a distintos sitios, tales como redes sociales y servidores de correo por ejemplo:

Google +, la red social de google posee HTTPS, y es posible corroborarlo no solo con la URL, sino que también con el candado ubicado en la esquina inferior derecha:

Gmail, es el servicio de correo de google, el cual se presenta bajo este protocolo para una navegación segura:

Actualmente el buscador más conocido de todo internet posee su gran mayoría de prestaciones bajo el protocolo HTTPS, entre otras políticas, lo cual favorece al resguardo de los datos de los usuarios de estos servicios.

Actualmente existe un centro de seguridad familiar de Google, en el cual muestra, entre muchas otras funciones, la posibilidad de predeterminar una configuración para las búsquedas tanto en Google como en YouTube y así evitar que los menores de edad puedan acceder a sitios web o contenido ofensivo o inadecuado para su edad.

Este centro de seguridad familiar trata de concientizar la correcta utilización de los recursos en internet, para evitar tanto el mal uso de la misma, como la posibilidad de convertirse en objetivos de un ataque, siendo los niños los más vulnerables debido a su grado de desconocimiento acerca del tema.

Para poder generar un mayor porcentaje de protección ante las distintas amenazas es indispensable la concientización de los usuarios en conjunto con una actualización periódica de su software y contar con una solución antivirus con capacidad de detección proactiva, por esto es importante que lo usuarios de internet se asesoren acerca de las distintas problemáticas posibles para, por ejemplo, los menores que utilizan los equipos y así poder enseñarles cómo evitar comprometer la información y el equipo.

VIA ESETLA

Volver a arriba
 

Powered by FeedBurner

Enter your email address:

Delivered by FeedBurner