En Genbeta hablamos de software e Internet, y algunos de esos artículos hablan de seguridad informática: vulnerabilidades en aplicaciones, ataques a servidores, protocolos poco seguros… Por eso, hoy en Genbeta vamos a tratar, sin entrar en detalles técnicos, algunos temas de seguridad informática.
Como en todo, conviene saber sobre qué estamos trabajando (Internet en este caso), y cómo protegemos nuestra seguridad. Y qué mejor lugar que Genbeta (tanto en artículos como en los comentarios) para entrar un poco en materia. Aunque no soy un experto en seguridad, voy a tratar de explicaros algunos conceptos básicos de la seguridad en Internet y cómo nos afectan como usuarios.
¿Cómo se mantienen nuestras contraseñas seguras?
Las contraseñas son la primera barrera que ponemos para que nadie puede entrar en nuestra cuenta. En Genbeta os dimos consejos para mantener vuestras contraseñas seguras, pero, ¿qué hacen los servidores, los que las guardan, para que también estén seguras por su parte?
Si vosotros mandáis la contraseña “pepe” al servidor, en su base de datos no se guarda “pepe”, sino algo llamado el hash. Por así decirlo, el hash es la huella digital de una palabra. Teóricamente es único, y a partir de él no se puede recuperar la palabra original. De esta forma, aunque un atacante lograse todos los hashes de un servidor, le resultaría difícil recuperar las contraseñas.
Sin embargo, como bastantes medidas de seguridad, los hashes se pueden saltar a lo bruto, en este caso, probando. Al final, este método consiste en probar muchas combinaciones de letras y palabras de diccionario a ver si alguna coincide. Por eso es importante que vuestra contraseña no sea una palabra o algo sencillo. Si usáis como contraseña “patata”, por mucho hash que haya estáis vendidos.
OAuth (Twitter y Facebook Connect), más seguro que las contraseñas

En algunos sitios tenéis la opción de entrar no con usuario y contraseña, sino con vuestra cuenta de Facebook o Twitter a través del protocolo OAuth. Además de ser más cómodo, este método de autenticación es bastante más seguro.
Este método es bastante sencillo. Cuando entras en un sitio web con Twitter o Facebook, te redirigen a la página de la red social. Ahí, tu das la autorización para que la web pueda acceder (con más o menos privilegios) a tu cuenta. La web recibe un par _token / token_secret_, que son una especie de usuario y contraseña. Con ellos, la web puede acceder a tu cuenta de Twitter o Facebook.
Lo bueno es que cada par de tokens es único. Cada sitio web tiene un par distinto para cada usuario, así que aunque alguien consiguiese todos los pares de todos los usuarios, no le servirían de nada porque sólo sirven para acceder a Twitter/Facebook desde un único sitio. Además, tienen la ventaja de que se pueden revocar: en cualquier momento prohíbes el acceso de la web a tu cuenta sin cambiar ni una sola contraseña.
¿Y nuestros datos? ¿Cómo viajan los datos sin que nadie los vea?

Un certificado que nos indica que la conexión es segura.
Seguro que alguna vez os habéis preguntado cómo funcionan eso que llaman las conexiones seguras, que supuestamente impiden que nadie vea los datos. Es sencillo: cifran los datos (que no encriptan, eso es sólo una mala traducción del inglés). El cifrado consiste en transformar un mensaje de forma que sólo se pueda recuperar el original con una clave, que puede ser o no la misma con la que se cifró.
Cuando establecemos una conexión con un servidor seguro, el navegador y el servidor intercambian las claves en un proceso llamado hand-shaking o apretón de manos. Con esas claves se cifra todo el tráfico entre ambos, así que nadie más puede ver los mensajes. Además, con esto se evita los llamados ataques man in the middle, literalmente hombre en el medio.
Estos ataques consisten en que alguien se convierte en el intermediario entre el servidor y el navegador. Todos los datos transmitidos en cualquier sentido pasan por él, de forma que tú, como usuario, podrías estar recibiendo cosas falsas y enviando datos a alguien que no es quien tú esperas. Las conexiones seguras evitan estos ataques, ya que garantizan que el servidor es quien dice ser.
Las conexiones seguras no sólo aplican a la navegación normal, también a las conexiones WiFi. Por eso es peligroso usar una Wifi abierta. No sólo se te puede colar cualquiera, sino que también pueden ver todo lo que transmites. El tráfico no está cifrado, y es como si estuvieses gritando a los cuatro vientos lo que estás haciendo. Cualquiera podría copiar a su ordenador todo el tráfico que generáis, o incluso manipularlo. Resumiendo: si podéis, no os conectéis a redes wifi abiertas.
¿Qué pasa cuando atacan a un servidor?
Que levante la mano el que no haya oído hablar de la palabra DDoS estas últimas semanas. Nadie, ¿verdad? Y es que últimamente, los DDoS están de moda de la mano de Anonymous. Pero, ¿qué es un DDoS?
Los ataques DDoS son ataques de fuerza bruta. Consisten en dar mucho la lata al servidor saturándole a peticiones, hasta que el servidor dice basta y deja de responder. Es un método muy burdo y simple, pero tremendamente efectivo cuando tenemos a un montón de gente haciendo peticiones a ese servidor.
Además de los DDoS, hay ataques a servidores más sutiles, algunos aprovechándose de aplicaciones no actualizadas. Otros están basados en la pieza entre el teclado y la silla, el querido usuario. Efectivamente, muchas veces el usuario se deja un archivo con las claves visible para todos, deja contraseñas por defecto, da pistas de dónde y cómo atacar…
Si tenéis un blog o algo similar, probablemente deberíais revisar este tipo de cosas. Recordad, nunca dejéis las contraseñas por defecto, y no guardéis nada confidencial, como contraseñas, en archivos de texto que estén accesibles.
Por último, también hay otro tipo de ataque muy conocido, los XSS. Son fallos en las webs que permiten que, cambiando algunos parámetros de la URL podamos mostrar cualquier cosa en la web: un texto, un script, una imagen de Mr Bean… No suelen ser demasiado peligrosos, y algunos navegadores (Chrome por ejemplo) ya lo evitan desde el propio navegador.
¿Y a mí? ¿Pueden atacarme a mi ordenador personal como hacen con los servidores?
Esto es bastante más difícil. Además de las medidas de seguridad que ponga el operador, vuestro ordenador está detrás de un router. Aunque alguien consiguiese tu dirección IP, sería complicado llegar a tu ordenador personal ya que habría que pasar por encima de un router que, salvo que hayáis tocado algo raro (como activar la DMZ, que deja el camino libre a vuestro ordenador), no debería dejar pasar ninguna conexión de este tipo.
De todas formas, que sea más difícil atacar a tu ordenador personal no quita que seas invulnerable. Siempre hay virus, troyanos y malware en general esperando a que algún despistado se lo instale en el ordenador, y para eso sólo vale tener sentido común y un buen antivirus.
¿Por qué es peligroso usar aplicaciones no actualizadas?

Una actualización como esta no sólo trae cosas bonitas y brillantes, también evita problemas de seguridad.
En Genbeta, tanto editores como lectores solemos tener versionitis, y siempre estamos instalando la última versión de todo para tener todas las características. Pero no todas las actualizaciones traen novedades, de hecho, la mayoría de ellas corrigen problemas de seguridad.
¿Qué problemas de seguridad de las aplicaciones nos pueden afectar a nosotros como usuarios? Hay muchos tipos, pero el más peligroso es el llamado buffer overflow, o desbordamiento de búfer.
El desbordamiento de búfer es un fallo que hace que un programa escriba en la memoria RAM más de la cuenta. Así, sobrepasa el espacio que tenía asignado y escribe encima de otra cosa. El problema llega cuando esa otra cosa son instrucciones para que las ejecute el sistema. Aprovechándose de estos fallos, un atacante podría escribir en esa zona de memoria y ejecutar el código que le diese la gana en nuestro ordenador. No suena bien, ¿verdad?
Por eso es tan importante que mantengáis vuestras aplicaciones actualizadas. Ya no es sólo tener lo último de lo último, es una cuestión de seguridad.
Y hasta aquí llega este artículo. Espero que os haya servido para saber un poco más de Internet y cómo podéis estar más seguros en él. Si tenéis algo que añadir o que corregir, no dudéis en hacerlo en los comentarios.
En Genbeta | Cinco consejos que todos deberíamos seguir para evitar problemas mayores
Imagen | Sebastián Piraña | Johan Larrson
Ver 48 comentarios
48 comentarios
acerswap
Vamos a ampliar un poco el post: Para el tema de las contraseñas y los hashes, lo primero es explicar que es el metodo de fuerza bruta: supongamos que tenemos una tarjeta bancaria de las de toda la vida, con clave de cuatro digitos. Atacar por fuerza bruta es ir probando "0000", "0001", "0002"..."9999".
Uno de los sistemas que se usan para sacar contraseñas es usar ataques "de diccionario": Volvemos a las tarjetas de credito. Estadisticamente la gente usa mas unos numeros que otros. Hay gente que pone numeros sencillos como "1234", "0000" o cosas asi. Tambien se suelen usar las fechas, por ejemplo poner "2512" si cumples años en Navidad, o años de nacimiento (si tu hijo nacio en 1993, por poner un ejemplo). En un ataque de diccionario, en vez de probar desde el principio, se da prioridad a ciertas palabras, probando antes "Jennifer" que "gl82·5%%&9=?".
No esta de mas recordar que con tiempo y ganas, se pueden saltar TODOS los sistemas de encriptacion (eso si, si tardamos 3 años en descodificar "quedamos esta tarde a las 5 en la Plaza de Sol" pues no es muy util hacerlo). Si lo poneis dificil, poniendo una clave larga y compleja al menos tendreis mas tiempo antes de que hagan maldades con vuestra cuenta y podreis cambiar la clave por otra aun mas segura.
Se menciona tambien el uso de OAuth (tambien OpenID entre otros sistemas) para acceder de forma segura. Eso es util para mantener la autenticacion segura si el servidor al que quereis acceder no permite el acceso cifrado o no almacena las contraseñas con suficiente seguridad pero tiene un gran fallo: si alguien averigua vuestra contraseña "maestra" el problema adquiere unas dimensiones descomunales. Con una unica clave, por ejemplo la de Facebook, podrian acceder a Facebook, a Genbeta y a chorrocientos servicios mas que hayais asociado a esa cuenta. Pero no vamos a ser tan negativos. Os voy a dar una recomendacion que (al menos a los españoles) os sera muy util.
Hay muchos servidores que permiten asignar una direccion de correo electronico a la que quereis que os envien una clave nueva si se os olvida, pero ese servicio de correo puede ser tambien vulnerable. Si y no. Seguro que habeis oido hablar alguna vez del "DNI electronico", sobre todo si visitais esta pagina. El DNI electronico contiene un certificado en un soporte FISICO y tambien protegido por clave. Es, por tanto, un soporte seguro. Aprovechemoslo.
Si accedemos a la pagina https://cep.correos.es/ tendremos acceso al llamado APE (Apartado Postal Electronico). Existe un servicio de webmail integrado al que se puede acceder, ya sea con una clave que querais poner o con el DNIe. ¿Por que no crear una cuenta (podeis poner una contraseña al azar, ya que no la necesitareis) y acceder con el DNI electronico, que os permitira acceder SIEMPRE que tengais el soporte fisico y la clave asignada? Asi tendreis un correo al que os podran enviar la clave en caso de robo de vuestra cuenta y que en teoria es dificil de vulnerar (ya seria mala suerte que os robaran el DNI y la clave a la vez).
Pedro Garcia
Una noticia muy interesante, me quedo con la frase que he leido en otros blogs y que tiene mucha razon.
"El eslavon mas débil en la seguridad de un sistema es el elemento que se encuentra entre el teclado y la silla".
Si todo el mundo conociera esta verdad, casi todas las empresas de antivirus hubieran cerrado ya por mercado nulo.
josua92
Una noticia perfecta.
Usuario desactivado
Y segundo, lo que evita el ataque de 'man in the middle' no es el cifrado sino el certificado digital. Una conexion solo cifrada (https) puede perfectamente sufrir el ataque; el ordenador de en medio intercanvia las claves contingo con una mano y con el servidor remoto con la otra.
Luego simplemente descifra cada paquete tuyo con tu clave y lo reencripta con la del servidor remoto, y se lo pasa. Y las respuestas alreves. El usuario piensa que habla con su banco, y el banco piensa que habla con su cliente. Sin embargo ambos estan hablando con un loro en medio que retransmite todos los paquetes.
De ahi la necesidad de los certificados garantizados por una autoridad central como verisign, para que una ip no pueda decir que es tu banco y quedarse tan ancha.
noctuido
De lo que más me prevengo es de los keyloggers. Si tengo posibilidad uso saltos de cursor a la hora de poner la contraseña. Si usáis un teclado ajeno o manipulable por terceros, os recuerdo que pueden modificarlo para fines nada altruistas, ya no hablamos del sistema operativo siquiera.
55829
"Si vosotros mandáis la contraseña “pepe” al servidor, en su base de datos no se guarda “pepe”, sino algo llamado el hash. Por así decirlo, el hash es la huella digital de una palabra. Teóricamente es único, y a partir de él no se puede recuperar la palabra original."
Es prácticamente y no teóricamente, ya que en teoría hay un número máximo de combinaciones posibles y ese es nº de caracteres elevado a la longitud.
Los ataques DDos no se han puesto de moda ahora, es solo que ahora están haciendo eco en la prensa, pero esto no es nada nuevo, las botnets (redes de zombies) llevan tiempo en Internet.
Los fallos XSS (persistentes y no persistentes) no solo pueden ser explotados vía URL, vale cualquier argumento de entrada que esté al alcance del usuario y se le debe de dar más importancia de la que tiene ya que abre la posibilidad de entrada a posibles gusanos en la Web, aunque navegadores como Chrome o extensiones de Firefox ya bloquean este tipo de fallos.
cancamo dice: $pass = md5("/4.-pOI-".md5($user_input)."ZMjh·#");
Ya puestos utiliza sha1 y a modo de optimización utiliza comillas simples en vez de dobles.
apolon
Uno de los conceptos básicos de seguridad que también deberían conocer por aquí es el de Virus y Troyanos que aunque suene a parodia abundan los que creen que "Virus es el afecta a Windows, si es Linux sólo puede ser Troyano y el Virus llega sólo se ejecuta sólo y hasta se crea sólo porque Windows es inseguro y mal hecho por diseño, en cambio en Linux jamás pasaría eso a menos que el usuario lo lleve y lo instale y antes formatee el Linux y copie Windows".
byhanzo
Muy buen artículo, como siempre por parte de Guillermo Julián. Lo único que ha faltado han sido las inyecciones SQL que en mi opinión son de lo más comunes y uno de los métodos de ataque más usados.
También decir que el tener la DMZ no significa que comprometa la seguridad de tu ordenador, sino del ordenador o aparato que esté en ella (en la DMZ). Yo y como yo bastante gente tiene activada la DMZ y en ella tiene puesta la PS3/Xbox 360 para que no haya problemas de puertos ni NAT restricta y no les pasa nada a los demás ordenadores, solo a los que estén dentro de la DMZ.
Y respecto a lo del certificado SSL, me parecen un autentico engaño y un autentico robo. A parte de que baratos no son, al usuario no le asegura que se esté conectando con el servidor que dice ser. Simplemente certifica que te estás conectando a (por ejemplo) www.genbeta.com y nada más. Luego este servidor puede redirigir el trafico a otro servidor donde poder manipular los datos y listo...
En fin, buen artículo!!!
Saludos!!!
cancamo
La seguridad de las contraseñas en servidores ajenos depende exclusivamente de los dedos de frente del desarrollador web.
Yo empiezo a quedarme tranquilo con:
$pass = md5("/4.-pOI-".md5($user_input)."ZMjh·#");
Respecto a la peligrosidad de un ataque XSS no sería tan moderado porque son de los más fáciles de encontrar y explotar... tan sencillo como leer la cookie y enviarla a un servidor propio con un script (location.href)... le haces llegar el enlace al admin de la web y zas!
Te llegas a sorprender viendo algunas chapuzas que hacen las grandes y no tan grandes empresas. Internet es muy grande.
Otra cosa: Nunca repetir contraseñas en distintos sitios.
electron222
Ya había escuchado de varios eso de los router inalámbrico en redes caseras, que dan una protección extra a la red, Pero también me comentaron que si el Router tenia S.O linux como dd-wrt, openwrt o tomato la protección seria un poco mejor :D
s22
Hay concepto mas básico que todo esto y es saber actualizar el antivirus, yo todavia conozco a gente que sabe moverse en facebook y no es capaz de instalar el antivirus.
nemigo
nuestros abuelos metían el dinero en el colchón, era lo más seguro. Degún ellos
Nosotros deberíamos volver a los proxys y a eso de usar wifi ajena
Alan Garcia
Un excelente post con mucho información útil a la hora de crear y resguardar contraseñas.
89098
Muy buen artículo, y bien explicado.
Usuario desactivado
Un par de precisiones, lo que protege a los usuarios domesticos no es el router sino el firewall. De hecho cada paquete pasa por un monton de routers hasta llegar a tu pc, de forma abierta y transparente.
Lo que pasa que dentro de el cacharrito que tenemos en casa y que llamamos 'router' hay tambien un firewall.
fhernd
Interesante artículo.
El término XSS no lo había leído antes. Esto me hace tomar algunas medidas al respecto. Lo digo por algunos servicios Web que brindan el almacenamiento de contraseñas. O también de extensiones para los navegadores que sirven como "baúl" de passwords.
Sinceramente, no me confío de ese tipo de extensiones. En un de los servicios de los que provee Google quizás me atreva a almacenar una contraseña.
Hasta pronto.
atoi
Yo diría bastante menos probable, pero no mas difícil. Al contrario, atacar un servidor es mucho mas complicado que vulnerar un ordenador domestico. En cuanto a que estos últimos suelen estar detrás de un router, es claro que ayuda, pero hay muchos servicios y programas que se pueden alcanzar. Por poner un ejemplo, si mi cliente msn tiene una vulnerabilidad remotamente explotable, cualquier usuario con el que esté chateando me puede atacar. En esta coyuntura, el router no va sirve de protección, ya que esta redirigiendo los paquetes que recibe del ISP a a la maquina blanco. Los mismo pasa con un browser respecto de un sitio web.
Además, algunos ordenadores tienen servicios corriendo detrás de un router configurado para redirigir las paquetes a la ip local y puerto correspondiente. En mi caso tengo un apache sirviendo un repo svn, y como quiero acceder desde cualquier parte, configuré las reglas de enrutamiento para que las peticiones desde fuera de la red local lleguen al webserver. Aquí una buena práctica es usar un puerto distinto del que viene por defecto.
81886
OK, duda; ¿Mi navegacion en una pagina HTTPS es segura aun usando una red WiFi abierta? Si la respuesta es no, ¿exista alguna forma para lograr que sea segura?
ichmaginternet
Con base en su experiencia, ¿recomiendan adquirir certificados de seguridad y protocolo SSL? soy totalmente neófito en el tema y agradeceré su valiosa opinión, considerando la inversión que tendría que realizar para ello. Anexo referencia como ejemplo, gracias por la valiosa retroalimantación.