- Cubadebate - http://www.cubadebate.cu -

¿Un hacker puede robar tus datos?: La verdad detrás de los lenguajes que lo hacen posible

Como cada viernes, mis estimados lectores sean bienvenidos una vez más a Código Seguro. En esta ocasión, siendo un poco valiente, les propongo hablar acerca de un tema, que siempre ha resultado muy polémico entre la comunidad de Ingenieros de Software. Llega así de esta forma la hora de seleccionar el lenguaje más idóneo, si nos vamos a dedicar a la ciberseguridad.

Pero para calentar los motores, supongamos por un momento que nos encontramos en una cafetería, degustando el postre de nuestra preferencia y de un rico capuchino. En ese momento de gran satisfacción decidimos conectarnos a la red Wi-Fi del local, para revisar nuestro correo electrónico. De repente, alguien en otra mesa —sin que lo notes— ejecuta un pequeño programa que captura todo lo que estas escribiendo. ¿Aterrador, no? Porque los hackers (y los expertos en ciberseguridad que los combaten) dominan ciertos lenguajes que les permiten encontrar fallos, automatizar ataques o proteger sistemas.

Pero no todo es al estilo de Scary Movie: estos mismos lenguajes son las herramientas que usan los profesionales para defender bancos, redes sociales y hasta nuestros dispositivos móviles. Si te interesa la ciberseguridad —ya sea porque quieres proteger tu información o porque sueñas con trabajar en este campo y estas valorando estudiar próximamente una carrera relacionada con este perfil, aquí te explicamos qué lenguajes debes aprender y por qué cada uno es indispensable. Empecemos: 

  1. Python: El "arma secreta" de los expertos

Fácil de aprender y muy poderoso, Python es sin dudas el gran favorito de los especialistas en ciberseguridad. Con él, puedes automatizar pruebas de hacking ético, analizar malware e incluso crear tus propias herramientas de protección. Si solo aprendes un lenguaje, te recomiendo que sea este.

¿Por qué es necesario?

 Ejemplo real: Un investigador de seguridad usó Python para crear un programa que detecta si un correo es phishing antes de que procedas a abrirlo.

  1. Bash: El lenguaje de los "magos" de Linux

Si alguna vez has visto a un hacker en películas escribiendo comandos a toda velocidad en una pantalla negra, probablemente estaba usando Bash. Este lenguaje te permite controlar sistemas Linux (los más usados en servidores) y automatizar tareas aburridas en segundos.

¿Por qué es necesario?

Ejemplo real: El famoso ataque WannaCry (que secuestraba computadoras) se propagaba en parte gracias a comandos de Bash maliciosos.

  1. C y C++: Para descubrir agujeros de seguridad

¿Sabes por qué algunos programas se "dejan de funcionar" cuando los atacan? Muchas veces es por errores en el manejo de la memoria, algo que pasa mucho en C y C++. Aprender estos lenguajes te ayudará a entender cómo funcionan los ataques más peligrosos y cómo evitarlos.

¿Por qué es necesario?

Ejemplo real: El fallo Heartbleed, que robaba datos de millones de páginas web, ocurrió por un error en código C. Esta vulnerabilidad es grave y se produjo en la popular biblioteca de software criptográfico OpenSSL. Esto permitía el robo de información protegida, en condiciones normales, por el cifrado SSL/TLS utilizado para proteger Internet. Prometo hablarles más sobre esto en otra edición de la columna.

  1. JavaScript: No solo para páginas web, también para hackearlas

JavaScript mueve casi todo lo que ves en internet, pero también es usado por hackers para engañar a sitios web y robar datos. Si quieres proteger (o probar) la seguridad de una página, necesitas entender cómo funciona este lenguaje.

¿Por qué es necesario?

Ejemplo real: En 2018, hackers usaron JavaScript en un ataque a British Airways y robaron datos de 380,000 tarjetas de crédito.

  1. SQL: El truco para robar (o proteger) bases de datos

¿Recuerdas cuando hackers robaban millones de contraseñas de Facebook o Twitter? Muchas veces lo hicieron con inyecciones SQL, un ataque que engaña a las bases de datos para que revelen información. Aprender SQL te ayudará a evitar (o encontrar) estos fallos.

¿Por qué es necesario?

Ejemplo real: En 2016, hackers usaron una inyección SQL para robar 200 millones de cuentas del correo electrónico de Yahoo.

  1. PowerShell: El "lado oscuro" de Windows

PowerShell es esencial para administradores de sistemas Windows y profesionales de blue team (defensa). Se usa para: automatizar tareas de seguridad, analizar malware en sistemas Windows y gestionar políticas de seguridad, entre otros.

¿Por qué es necesario?

Ejemplo real: El ransomware Ryuk (que cobraba millones en bitcoins) se propagaba con PowerShell.

  1. Ensamblador: Ingeniería inversa y análisis de malware

Si los demás lenguajes vistos hasta el momento son como manejar un auto, Ensamblador es como saber cómo funciona cada pieza del motor bajo el capó. Es complejo, pero te da un superpoder: entender exactamente cómo piensa una computadora. De ahí que sea  crucial para el análisis de malware y exploits, permitiendo reversear código binario y analizar vulnerabilidades en programas sin código fuente.

Ejemplo real: El gusano Stuxnet (que atacó centrifugadoras nucleares) fue analizado instrucción por instrucción en Ensamblador.

Lo cierto es que no necesitas volverte experto o ser un genio en todos estos lenguajes de la noche a la mañana. Recuerda siempre que el aprendizaje es algo complejo al principio, que se cultiva cada día y no hay nada que la dedicación y el esfuerzo no terminen de vencerlo. Ahora bien, si te interesa la ciberseguridad, creo que deberías empezar con Python o Bash ya te pondrá por delante de muchos. ¿Lo mejor de todo es…? Que hay miles de tutoriales gratis en internet para aprender, incluso con buenos materiales audiovisuales.

Tampoco pueden pretender que les haga un compendio de todo un sinnúmero de lenguajes. Ahí seguro estarán los más críticos, aquellos que dirán, pero le faltó este y no habló de este otro que también son muy importantes. Ya nos vamos conociendo estimados, son ya muchas semanas escribiéndoles. Lo que sí es cierto, y estoy más que seguro: la próxima vez que te conectes a una red Wi-Fi pública o cambies tu contraseña, pensarás: Detrás de cada sistema seguro, hay alguien que sabe programar. Y quizás hasta ¿podrías ser tú, sí tú mismo? Entonces. ¿cuál de estos lenguajes te gustaría aprender primero? ¡Déjanos por favor tus impresiones en los comentarios acá abajo! Por hoy nos despedimos, hasta la próxima semana.