miércoles, 18 de noviembre de 2015

Medidas de seguridad preventivas y correctivas aplicables a un firewall 

Generalmente, los firewalls son configurados para proteger contra accesos desde el mundo exterior. Esto ayuda a prevenir a los accesos no autorizados a máquinas de tu red. Firewalls más sofisticados bloquean tráfico del exterior al interior, pero se permite a los usuarios del interior comunicarse con el exterior de una forma más flexible. 

La primera de ellas, la más importante, hace referencia a la política de seguridad de la organización propietaria del firewall: evidentemente, la configuración y el nivel de seguridad potencial será distinto en una empresa que utilice un firewall para bloquear todo el tráfico externo hacia el dominio de su propiedad (excepto, quizás, las consultas a su página web) frente a otra donde sólo se intente evitar que los usuarios internos pierdan el tiempo en la red, bloqueando por ejemplo todos los servicios de salida al exterior excepto el correo electrónico. Sobre esta decisión influyen, aparte de motivos de seguridad, motivos administrativos de cada organismo. 

La segunda decisión de diseño a tener en cuenta es el nivel de monitorización, redundancia y control deseado en la organización; una vez definida la política a seguir, hay que definir cómo implementarla en el firewall indicando básicamente qué se va a permitir y qué se va a denegar. Para esto existen dos aproximaciones generales: o bien se adopta una postura restrictiva (denegamos todo lo que explícitamente no se permita) o bien una permisiva (permitimos todo excepto lo explícitamente negado).

Por último, la tercera decisión a la hora de instalar un firewall es meramente económica: en función del valor estimado de lo que deseemos proteger, debemos gastar más o menos dinero, o no gastar nada. Un firewall puede no entrañar gastos extras para la organización, o suponer un desembolso de varios de miles de pesos: seguramente un departamento o laboratorio con pocos equipos en su interior puede utilizar un PC con Linux, Solaris o FreeBSD a modo de firewall. 



Números de puertos Los números de puertos son divididos en 3 rangos:
  • - Puertos bien conocidos (0 al 1023) 
  • - Puertos registrados (1024 al 49151) 
  • - Puertos dinámicos o privados (49152 al 65535)


Algunos Protocolos TCP/UDP y Puertos de servicio 

TCP y UDP poseen campos de 16 bits (2 bytes) en su respectivo encabezado para almacenar el número de puerto. Esto significa que pueden tener hasta 65.536 diferentes puertos o servicios, los cuales se numeran desde 0 a 65.535. 

Es importante tener en cuenta que a pesar de que un servicio está normalmente asignado a su número de puerto, nada garantiza que esto se cumpla. Telnet, por ejemplo, se encuentra normalmente en el puerto 23 de TCP. Nada lo detiene de ofrecerse en el puerto 31337.Cualquier servicio se puede ejecutar en cualquier puerto. Pero si desea trabajar en red con otros hosts, lo mejor es seguir las normas.  

Los puertos y servicios mas comunes se encuentran en el archivo /etc/services de los hosts basados en UNIX (Como Linux y MAC), este es un excelente recurso para hacer coincidir servicios TCP y UDP con los números de puertos mas comunes. (Ver la lista de los puertos de servicio en este Enlace)

El siguiente es un extracto con algunos de los servicios y sus puertos asociados mas comunes, Algunos de estos son ofrecidos en protocolos TCP y UDP simultaneamente. Esto es normal pero inusual, la mayoría de servicios se ofrecen en TCP o UDP.

 


DMZ (Zona desmilitarizada)
El concepto de Aislamiento
Los sistemas Firewall permiten definir las reglas de acceso entre dos redes. Sin embargo, en la práctica, las compañías cuentan generalmente con varias subredes con diferentes políticas de seguridad. Por esta razón, es necesario configurar arquitecturas de firewall que aíslen las diferentes redes de una compañía. Esto se denomina "aislamiento de la red".



Cuando algunas máquinas de la red interna deben ser accesibles desde una red externa (servidores web, servidores de correo electrónico, servidores FTP), a veces es necesario crear una nueva interfaz hacia una red separada a la que se pueda acceder tanto desde la red interna como por vía externa sin correr el riesgo de comprometer la seguridad de la compañía. El término "zona desmilitarizada" o DMZ hace referencia a esta zona aislada que posee aplicaciones disponibles para el público. La DMZ actúa como una "zona de búfer" entre la red que necesita protección y la red hostil.

Los servidores en la DMZ se denominan "anfitriones bastión" ya que actúan como un puesto de avanzada en la red de la compañía.
Por lo general, la política de seguridad para la DMZ es la siguiente:
  • El tráfico de la red externa a la DMZ está autorizado
  • El tráfico de la red externa a la red interna está prohibido
  • El tráfico de la red interna a la DMZ está autorizado
  • El tráfico de la red interna a la red externa está autorizado
  • El tráfico de la DMZ a la red interna está prohibido
  • El tráfico de la DMZ a la red externa está denegado




Protocolos y control de acceso ala red

La siguiente entrada es para compartir información acerca de 4 protocolos que pueden brindarnos dicha seguridad en la redes. AAA, KERBEROS,TACACS Y RADIUS

AAA

La sigla AAA puede traducirse en español como Autenticación, Autorización y Auditoría (originalmente, Authentication, Authorization y Accounting). Cuando hablamos de AAA (triple A), no nos estamos basando en un solo protocolo o en algunos en especial, sino en una familia de protocolos que proveen los servicios anteriormente mencionados. Si le adicionamos el concepto de Auditoría, tendríamos lo que a veces se conoce como AAAA, o cuádruple A. Para comprender mejor estos sistemas de autenticación, debemos recordar primero los conceptos que representan:

Autenticación 
La autenticación es el proceso por el que una entidad prueba su identidad ante otra. Normalmente la primera entidad es un cliente (usuario, ordenador, etc.) y la segunda un servidor (ordenador). La Autenticación se consigue mediante la presentación de una propuesta de identidad (vg. un nombre de usuario) y la demostración de estar en posesión de las credenciales que permiten comprobarla. Ejemplos posibles de estas credenciales son las contraseñas, los testigos de un sólo uso (one-time tokens), los Certificados Digitales, ó los números de teléfono en la identificación de llamadas. Viene al caso mencionar que los protocolos de autenticación digital modernos permiten demostrar la posesión de las credenciales requeridas sin necesidad de transmitirlas por la red (véanse por ejemplo los protocolos de desafío-respuesta).

Autorización 
Autorización se refiere a la concesión de privilegios específicos (incluyendo "ninguno") a una entidad o usuario basándose en su identidad (autenticada), los privilegios que solicita, y el estado actual del sistema. Las autorizaciones pueden también estar basadas en restricciones, tales como restricciones horarias, sobre la localización de la entidad solicitante, la prohibición de realizar logins múltiples simultáneos del mismo usuario, etc. La mayor parte de las veces el privilegio concedido consiste en el uso de un determinado tipo de servicio. Ejemplos de tipos de servicio son, pero sin estar limitado a: filtrado de direcciones IP, asignación de direcciones, asignación de rutas, asignación de parámetros de Calidad de Servicio, asignación de Ancho de banda, y Cifrado.

Contabilización 

La contabilización se refiere al seguimiento del consumo de los recursos de red por los usuarios. Esta información puede usarse posteriormente para la administración, planificación, facturación, u otros propósitos. La contabilización en tiempo real es aquella en la que los datos generados se entregan al mismo tiempo que se produce el consumo de los recursos. En contraposición la contabilización por lotes (en inglés batch accounting) consiste en la grabación de los datos de consumo para su entrega en algún momento posterior. La información típica que un proceso de contabilización registra es la identidad del usuario, el tipo de servicio que se le proporciona, cuando comenzó a usarlo, y cuando terminó.

RADIUS
El Protocolo de servicio de usuario de acceso telefónico de autenticación remota (RADIUS) fue desarrollado por Livingston Enterprises, Inc., como un protocolo de autenticación del servidor de acceso y de contabilidad. La especificación RADIUS RFC 2865 sustituye a la RFC 2138. El estándar de contabilidad RADIUS RFC 2866 sustituye al RFC 2139
RADIUS surgió inicialmente con una solución para la administración en el control de acceso para usuarios que soportaban su conexión mediante enlaces seriales y módems, facilitando el control y supervisión de la seguridad, la autorización, la auditoria, verificación de nombres de usuarios y contraseñas, así como una detallada información de configuración sobre el tipo de servicio que se pretendía entregar al usuario.

-Flujo de mensajes en un proceso de autenticación/autorización Radius

RADIUS es un protocolo estándar de seguridad para Internet, desarrollado por Livingston Enterprises y que la IETF (Internet Engineering Task Force) ha recogido en los RFCs 2865 y 2866. Fue diseñado como un protocolo de servicio para TCP/IP con funcionalidad de autenticación de acceso a servidores para autentificar usuarios.

Los elementos característicos que posee RADIUS le han permitido guardar un alto grado de compatibilidad con la arquitectura dispuesta por las redes inalámbricas IEEE 802.11, una razón primordial por la cual es éste el servidor recomendado, según la norma, para prestar los servicios de autenticación en redes inalámbricas.
El servicio RADIUS comprende tres componentes:
  •  Protocolo: Sobre la base de la UDP, RFC 2865 y 2866 define el formato de trama RADIUS y el mecanismo de transferencia de mensajes, y usa 1812 como el puerto de autenticación y 1813 como el puerto de auditoria.
  • Servidor: El servidor RADIUS se ejecuta en el ordenador o estación de trabajo en el centro, y mantiene la información para la autenticación de usuarios y servicio de de acceso red.
  • Cliente: El cliente RADIUS se ejecuta en el NASS situado en toda la red.

TACACS
Abreviatura de erminal Access Controller Access Control System T ERMINAL A cceso C ontroller A cceso C ontrol Sistema, una autenticación de protocolo que se utiliza comúnmente en UNIX redes. TACACS permite a un servidor de acceso remoto para comunicarse con una autenticación del servidor con el fin de determinar si el usuario tiene acceso a la red.
TACACS está ahora un poco anticuado y no se utiliza con tanta frecuencia como lo era antes. Una versión posterior de TACACS fue llamado XTACACS (E x tendía). Estas dos versiones generalmente han sido sustituidos por TACACS + y RADIUS en las redes nuevas o actualizadas. TACACS + es un nuevo protocolo y, por tanto, no es compatible con TACACS o XTACACS.
TACACS se detalla en el RFC 1492.

KERBEROS
Es un protocolo de seguridad muy difundido en entornos Unix, aunque adoptado también por otros sistemas operativos como Windows 2000. Kerberos es un sistema de autentificación de usuarios, que posee un doble objetivo:
Impedir que las claves sean enviadas a través de la red, con el consiguiente riesgo de su divulgación. 
Centralizar la autentificación de usuarios, manteniendo una única base de datos de usuarios para toda la red.
Operación de Kerberos 

Kerberos, como protocolo de seguridad, usa una criptografía de claves simétricas, lo que significa que la clave utilizada para cifrar es la misma clave utilizada para descifrar o autenticar usuarios. Esto permite a dos computadores en una red insegura, demostrar su identidad mutuamente de manera segura.
Kerberos entonces restringe los accesos sólo a usuarios autorizados y autentica los requerimientos a servicios, asumiendo un entorno distribuido abierto, en el cual usuarios ubicados en estaciones de trabajo acceden a estos servicios en servidores distribuidos a través de una red.

jueves, 5 de noviembre de 2015

Historia

SSL fue diseñado e implementado por Netscape Communications en los noventas para proveer a sus productos (su navegador y sus servidores) con la capacidad de abrir conexiones seguras entre ellos.
Desde entonces SSL se ha convertido en el estándar internacional de comunicaciones seguras ya que ha sido adoptado por bancos, gobierno y empresas. 

Funcionamiento

SSL opera mediante el intercambio de llaves entre el cliente y el servidor para poder descifrar la información que ha sido codificada por un cipher simetrico. Lo que esto significa es que los datos encriptados solo pueden ser desencriptados por el poseedor de la llave correcta.
La informacion que viaja por SSL puede ser encriptada con diferentes algoritmos simetricos, tipicamente DES, Triple DES, Rijndael, o IDEA. El termino simétrico en este caso implica que los datos que han sido encriptados, pueden ser desencriptados después (a diferencia de hashes como SHA1 o MD5 que solo son "hacia un lado"). 

Problemas de SSL

SSL intenta resolver tres problemas principales:
  1. Seguridad de la Información: SSL garantiza que terceros no tengan acceso a la información mientras viaja por internet al encriptarla.
  2. Integridad de los datos: La información recibida desde un servidor por SSL puede ser "validada" para comprobar que no ha sido alterada en la trayectoria.
  3. Autenticidad de los Datos: Mediante los algoritmos de encriptación, es posible comprobar que los datos realmente han llegado del servidor que el cliente espera. Esto evita que alguien se haga pasar por un sitio para cometer fraudes. (evitando ataques como Phishing, Man in the Middle, etc).
    Mediante el uso de certificados digitales avalados por autoridades certificadoras SSL incorpora una eslabon más en la cadena de confianza. (Ver siguiente sección).

 Variantes de SSL

Protocolo de seguridad ampliamente difundido. Es usado en la mayoría de los navegadores y servidores web (https) y en transferencias de comercio electrónico. Fue diseñado originalmente por Netscape en 1993. Existen variantes como TLS: transport layer security [RFC 2246]. Provee de confidencialidad, integridad y autenticación. Los objetivos originales eran:
  • Permitir el comercio electrónico en la Web
  • Cifrado (especialmente de números de tarjetas de credito)
  • Autenticación de servidores Web
  • Opcionalmente autenticación de clientes
  • Minimizar riesgos al hacer negocios con nuevos clientes
  • Disponible para toda conexión TCP
  • Interfaz de socket segura
kk

Como herramientas de cifrado tenemos:
  • Algoritmos de clave pública.
  • Algoritmo de cifrado simétrico.
  • Algoritmos MAC (Message Authentication Code)
SSL permite varios mecanismos de cifrado. El cliente y el servidor deberán de acordar el mecanismo de cifrado en una negociación. El cliente ofrecerá diferentes opciones y el servidor será quien elija entre las ofrecidas.
El propósito del Handshaking será el de autenticar al servidor, acordar el algoritmo de cifrado en la negociación, establecer las claves y autenticar al cliente:
  1. El cliente envía una lista de algoritmos que soporta, junto con un número de unicidad del cliente (para evitar la replicación de mensajes)
  2. El servidor elige un algoritmo de la lista.
  3. El servidor envía su elección, el certificado y el número de unicidad del servidor.
  4. El cliente verifica el certificado, extrae la clave pública del servidor, genera el “pre-master secret”, lo cifra con la clave pública de servidor y lo envía al servidor.
  5. El cliente y el servidor calculan independientemente las claves de cifrado y MAC a partir del “pre-master secret” y los números de unicidad (ambos comparten estas cuatro claves).
  6. El cliente envía un MAC de todos los mensajes de handshake.
  7. El servidor envía un MAC de todos los mensajes de handshake.
kk3

¿En qué casos se debe usar un certificado SSL?

Independientemente de la información que se esté transmitiendo (por ejemplo, desde un formulario alojado en su página web hasta su servidor), debería contar con un certificado SSL, ya que estos certificados no sirven simplemente para proteger transacciones de tarjetas de crédito. Cualquier tipo de información personal es confidencial y debe protegerse. Ya se trate de suscripciones a boletines de noticias o accesos a cuentas, debería contarse como mínimo con un certificado SSL para proteger los datos recogidos y enviados.

  • Para proteger las transacciones online con tarjetas de crédito.
  • Para ofrecer protección online para los accesos al sistema, la información confidencial transmitida a través de formularios web o determinadas áreas protegidas de páginas web.
  • Para proteger el correo web y las aplicaciones como el acceso web a Outlook o los servidores Exchange y Office Communications.
  • Para proteger los procesos de trabajo y la virtualización de aplicaciones como plataformas Citrix Delivery o las plataformas de cloud computing.
  • Para proteger la conexión entre un cliente de correo como Microsoft Outlook y un
    servidor de correo como Microsoft Exchange.
  • Para proteger la transferencia de archivos sobre https y servicios de FTP, como podrían ser las actualizaciones de nuevas páginas por parte de un propietario de una página web o la transmisión de archivos pesados.
  • Para proteger los accesos y la actividad en paneles de control como Parallels o cPanel entre otros.
  • Para proteger el tráfico en una intranet como es el caso de las redes internas, la función compartir archivos, las extranets o las conexiones a bases de datos.
  • Para proteger los accesos a redes y cualquier otro tráfico de red con VPNs de SSL como podrían ser los servidores de acceso VPN o las aplicaciones como Citrix Access Gateway