Sobre seguridad, pal que le interesse :) __________________________________________________ _________________
/ \
/ \
| |
| SEGURIDAD, PORQUE, COMO, PROTEGEMONOS! |
| |
| Por Petitxai |
| De uZz Underground Zero Zone |
\ /
\_________________________________________________ _________________/
En este articulo quiero explicar un poco como va la seguridad, porque hay ataques y como resolverlos. Espero que os sea de utilidad, nos vemos
Indice:
=======
1.Por que hay ataques?
2.Tipos de ataques
3.Seguridad Básica
3.1 Seguridad física
3.2 Seguridad lógica
4.Métodos de seguridad
4.1 Prevención
4.2 Detección
4.3 Recuperación
5.Pasos para la detección
5.1 Archivos de loggeo
5.2 Comandos útiles
6.Recomendaciones de seguridad
7.Nos Vemos
1. ¿POR QUÉ HAY ATAQUES?
Hay muchas razones por la que alguien pueda motivarse para realizar un ataque, pero primero tenemos que tener claro QUÉ es un ataque.
Hay gente que puede considerar que alguien que entra en un ordenador (ajeno) simplemente, se está produciendo un ataque, y en parte es así. Pero en este texto hablaremos de dos tipos de ataques diferentes, que estan condicionados por las acciones realizadas después de la intrusión. Hay el que llamaremos "ataque hacker": que es el que se realiza saltando las barreras de seguridad, borrando las huellas y saliendo sin hacer daño a la empresa o al usuario al que pertenece el equipo asaltado. En este tipo de ataque el atacante esta motivado por aprender sobre seguridad informática: quizás quiera saber como está montada la red a la que esta accediendo, etc... pero sin la intención de causar daño, por eso sólo modificará lo necesario para no ser encontrado.
El otro tipo de ataque es el llamado "ataque cracker": ataque motivado por motivos económicos, (robar dinero, conseguir información ...), por venganza o simplemente por afán de destruir.
Los dos atacantes pueden tener los mismos conocimientos pero mientras el primero los usa como es debido el segundo se limita a usarlos para hacer daño.
2. TIPOS DE ATAQUES
Hay demasiados tipos de ataques como para nombrarlos o explicarlos aquí todos, por eso sólo me limitare a explicar los más comunes y, principalmente, los que nos pueden hacer más daño. Estos tipos de ataques son los realizados normalmente por crackers, mientras que los más técnicos o sólo para averiguar información seran los usados por hackers. En cada ataque explicaremos un poco quien es normalmente el que lo realiza.
dDOS: Denegacion de servicio. Este ataque es uno de los mas usados por los crackers, no tienen merito alguno y lo que se consigue normalmente es hacer caer a la maquina contra la que se realiza. La mayoria de veces consiste en mandar mucha informacion, demasiada para la maquina objetivo, hasta que este cae.
sniffing: El arte del sniffing es muy usado por los hackers. Consiste en filtrar todos los paquetes que pasan por una red abriendo cada uno de ellos para mirar el interior, en busca de contraseñas o informacion útil. Aqui vemos un ejemplo de un ataque que puede ser usado tanto por hackers como por crackers. Mientras el hacker buscaria contraseñas para poder ganar privilegios en la maquina (por ejemplo) el cracker buscaria numeros de credito o las mismas contraseñas que el hacker pero para usarlas de otra forma...por ejemplo falsificando e-mails de negocios, acceso a una cuenta bancaria, etc...
troyano: Este es un metodo que mayoritariamente (y en mi opinion) es muy usado por los novatos en el mundo del hacking, no tiene demasiado merito. Consiste en un programa que simula ejecutar una funcion mientras que realmente ejecuta otra (por eso es llamado Caballo de Troya, por lo que hicieron los troyanos). Normalmente la tarea secundaria del troyano consiste en dar un control sobre el ordenador victima al atacante, inmobilizar el ordenador victima, etc... Realmente este es un ataque muy expandido pero no tendria que causar demasiados destrozos, ya que un equipo minimamente protegido puede repeler estos ataques. Aunque a veces podemos encontrarnos con troyanos programados por el atacante, no bajados de alguna pagina famosa de internet, que nos pueden causar grandes daños.
xploits: Estos son programas que se aprovechan de algun tipo de vulnerabilidad en el sistema donde se usan y mayoritariamente sirven para ganar privilegios en el equipo. Un ejemplo seria usar un xploit en un servidor remoto de shells para ganar acceso como root.
fuerza bruta: Aunque estos terminos pueden generalizar mucho, aqui me refiero a usar programa que manden contraseñas con nombre de usuario consecutivamente hasta conseguir acceso a una maquina. Las contraseñas podrian ser mandadas, por ejemplo, por ftp o telnet.
3. SEGURIDAD BASICA
Aqui hablaremos sobre la seguridad basica que se tiene que tener en una red (como podria ser la de un instituto) para evitar ataques.
Dentro del ambito de seguridad podemos encontrar dos tipos de seguridad, la seguridad fisica y la seguridad "logica" la primera se refiere a todo aquello que tiene que ver con el entorno fisico de los equipos o de la red, mientras que la segunda se refiere a todo aquello que tiene que ver con la configuracion de la red, del ordenador, el software, etc...
3.1. Seguridad Física
A pesar de que la seguridad logica sea la mas preciada en cuanto a preparacion para seguridad se refiere, la seguridad fisica es tambien un factor a tener en cuenta. Los equipos de deben proteger como es debido de manos ajenas al recinto para que no pueda entrar alguien y hecharnos al aire todo lo que nos habia costado tanto hacer. Tambien tenemos que saber que la gente que toque los ordenadores importantes para el buen funcionamiento de estos, tiene que tener al menos un minimo conocimiento de informatica, así no podemos dejar que un usuario que no tenga ni idea de informatica se hacerque a nuestro servidor web, ftp, mail, etc... para escribir un simple documento en word, para eso hay otros ordenadores no?
3.2 Seguridad Logica
La seguridad logica es la que se tiene que tener mas en cuenta, ya que al estar conectados con la red la mayoria de ataques que podamos recivir iran hacia el software del ordenador. Para una buena seguridad logica se tienen que tener en cuenta muchos factores, pero principalmente hablaremos de los factores que dependen de los usuarios, y no del equipo en si.
Una buena contraseña: Fijar una buena contraseña es una de las cosas mas importantes a tener en cuenta a la hora de empezar con la seguridad, no podemos dejar que nuestros usuarios se pongan contraseñas facilmente adivinables. Por ejemplo un usuario llamado "pepe" no puede tener una contraseña que sea "pepito" ni el nombre del perro, ninguna data conocida, etc... Tendria que ser algo que no tuviese nada que ver con ese usuario. Por eso es muy importante que a la hora de que los usuarios pongan contraseñas creemos una politica de seguridad fuerte que no permita, por ejemplo, una palabra con solo letras y obligue a meter numeros, una palabra que tenga mas de ocho caracteres, etc... Aunque tambien es bueno no dejar al abaste de todos esos guiones a seguir por las contraseñas, ya que si un atacante sabe que tienen que haber numeros, al menos ocho caracteres, maximo 12, etc...son demasiadas pistar para el crackeador de claves (en caso de que consiguiese alguna)
Para meter esas politicas en el archivo de claves tienes que configurar debidamente el archivo "login.defs" ubicado en /etc/
IDS: Para tener una buena seguridad del sistema es muy recomendado tener IDS (Introducer Detection System) y NIDS (Network Introducer Detection System) ya que nos pueden dar muchas pruebas sobre los ataques y nos pueden informar rapidamente sobre los ataques que se estan cometiendo. A parte de eso hay muchos IDS que van aprendiendo automaticamente, por ejemplo si ven que desde una IP se estan realizando muchos intentos de meter una contraseña y va fallando, es posible que sea algun hacker/cracker usando metodos de fuerza bruta, cosa que por supuesto no queremos, por lo que el IDS bloquea todas las conexiones que lleguen de esa ip hasta que el administrador no diga lo contrario. Tambien podemos encontrar IDS que estan configurados para mandar e-mails a los administradores de la red, asi como (en redes muy, muy avanzadas) manden un sms al mobil del administrador o a su busca.
Permisos: Tambien se tiene que ir muy con cuidado con todo lo que tiene que ver con los permisos sobre los ficheros. Es bueno dejar todos los comandos innecesarios para los usuarios normales inabilitados, ya que algunos comandos nos pueden traer problemas. Tambien tenemos que mirar bien los permisos que se le dan a los ficheros, refiriendonos a permisos con los de escritura (w) lectura (r) y ejecucion (x). En un sistema linux esto es facil de hacer, en uno en windows es quizas mas facil pero...menos seguro? :)
Periodos: Tambien se tiene que realizar cambios en la politica de seguridad periodicamente, por ejemplo podriamos obligar a nuestros usuarios a cambiar su contraseña cada X tiempo, dificultando así la tarea de un atacante para averiguar las contraseñas. Tambien es recomendable, en caso de hacer esto de las contraseñas, cambiar los guiones para establecer las contraseñas, por ejemplo si la primera vez tenia que ser de mas de 4 caracteres, la segunda vez puede ser de mas de 6, y la tercera de mas de 8, etc...
4. METODOS DE SEGURIDAD
Para tener una buena seguridad tenemos que tener en cuenta tres factores :) la prevencion, la recuperacion y la deteccion.
4.1. Prevencion
La prevencion se encarga de preparar el equipo para recivir los ataques, mantener una buena politica de seguridad y poder reaccionar al momento, para así evitar el ataque. Con la prevencion podemos encontrar los firewalls, IDS, etc... Que son lo que nos ayuda a evitar el ataque. Dentro de prevencion podemos encontrar tambien todo lo que se refiere a hacer unas buenas copias de seguridad, mantener diferentes equipos encargandose de la seguridad a la vez, etc...
4.2. Deteccion
La deteccion se encarga de detectar los ataques en el momento que se estan realizando, y asi poder contrarrestarlos debidamente. Un ejemplo de deteccion seria u IDS bien configurado, que sepa al momento lo que esta ocurriendo y nos avise debidamente.
4.3. Recuperacion
Esta es la parte mas fatidica, es cuando no hemos podido evitar el ataque y ya se ha realizado, es la parte mas costosa de la operacion. Esta parte consiste en recuperar todo el equipo como lo teniamos en un principio borrando el ataque para poder continuar normalmente. Dentro de la recuperacion podemos encontrar tambien la localizacion del atacante :)
5. PASOS PARA LA DETECCION
Aqui explicaremos un poco que es lo que tenemos que hacer para detectar si se ha realizado un ataque contra nosotros.
Revisar los logs: Esta es una de las partes mas importantes para la deteccion de una intrusion, consiste en revisar los logs periodicmante en busca de indicios de ataques. En logs podemos encontrar los logs del s.o, los logs del firewall, los logs del IDS, etc...
Comprueba todos los archivos del sistema que pueden haber sido modificados, hablando de UNIX (o algun s.o. de su familia) podemos referirnos al telnet, su, etc...que pueden haber sido cambiados por otros binarios troyanizados.
Busca todos los archivos sospechosos que puedan ser backdoors y igualmente todos los procesos que puedan ser keyloggers del sistema, sniffers, etc...
Busca indicios de sniffing, si crees que en esos momentos alguien esta ejecutando un sniffer puedes averiguarlo haciendo por ejemplo un netstat, buscando alguna ip que este en modo promiscuo.
Inspecciona tus puertos en busca de puertos abiertos de los que no tuvieras consciencia, en caso de que haya algun atacante es posible que haya dejado algun programa en escucha en algun puerto. Fijate tambien en los puertos UDP, no solo en los TCP.
Examina los ficheros de contraseñas para asegurarte de que no hay usuarios no autorizados con permisos de root, etc...
Examina el equipo en busca de ficheros ocultos que puedan contener puertas traseras, no te dejes engañar por el archivo "..." usado muchas veces por hackers/crackers para confundir con el ".." y el "."
5.1 Archivos de logeo
Hay una serie de archivos en linux que se encargan de realizar el loggeo de diferentes cosas. Creo que en los windows tambien existen pero como eso yo no lo se, se lo dejo pa otro! :)
En linux hay diversos archivos que nos pueden mostrar informacion importante...
.bash_history : Este es un archivo oculto del sistema que se encarga de loggear todos los comandos que son realizados por un usuario (a ver...todos todos no, pero si los ultimos) y se guardan en el archivo .bash_history en el home de cada usuario (si no lo veis con un ls...haced ls -a coñe!).
console: Este archivo loggea todos los mensajes que lanza el kernel a la consola, la verdad es que como motivo de seguridad contra un atacante no es muy necesario. Se encuentra en /dev/console
secure: Este archivo loggea todas las conexiones que se realizan hacia mi maquina... /var/log/secure
messages: Este archivo la misma funcion que wtmp en algunos linux y en UNIX, informandonos de cuando entra un usuario, cuando sale, la hora y fecha, etc... Se encuentra en /var/log/messages
httpd: Si tenemos servidor web, aqui se loggean nuestras conexiones, en mi equipo el archivo se llama httpd pero no se en cada uno como se llamara...esta en la carpeta /var/log/httpd
maillog: Loggea todos los mails en un archivo: /var/log/maillog
cron: loggea el cron /var/log/cron
boot.log : loggea los mensajes de arranque del sistema
Yo tengo mas archivos pero la mayoria son hechos por mi firewall. Hablando de firewall os recomiendo el batille-firewall. A parte de crearnos un script para una buena seguridad de la red, nos ayuda en otras tareas de seguridad como la de loggear, dar permisos de ejecucion a algunos archivos SOLO para el root, etc... Realmente es muy recomendado para pequeñas redes o un solo equipo.
5.2 Comandos
Hay algunos comandos que nos pueden servir especialmente para poder mantener controlada nuestra red, algunos que os pongo aqui os pueden servir:
ps -aux : Nos permite saber los procesos en ejecucion, nos puede ser util para ver los procesos que nos suenan estraños.
who: Nos muestra los usuarios conectados actualmente, es como el finger pero para ejecutar de forma local.
6.RECOMENDACIONES DE SEGURIDAD
Para mantener una buena seguridad os recomiendo meter un buen firewall, con un buen antivirus (como SOPHOS) y loggear todo lo que podais, realizando periodicamente pruebas prara provar la seguridad y revisando los logs. Tambien os recomiendo el TCP-Wrapper, un programa que sirve para loggear todo lo que tiene que ver con el demonio interd, yo lo tengo :)
7.NOS VEMOS
Con este archivo os paso un par de scripts que uso yo para mantener una buena configuracion, llamalo "securescript", es realmente bueno, aunque tendrias que cambiarle cosas, ya que te paso un script "beta" y no te dejara conectarte al msn, por ejemplo, pero con un minimo conocimiento de iptables podras hacer lo que quieras. Este script hace que no responda al ping ni a otro tipo de peticiones, nos vemos en proximos articulos!!! |