LOS MEJORES IDIOMAS DE PROGRAMACIÓN PARA LA SEGURIDAD CIBERNÉTICA
C
Casi todos los sistemas operativos vienen con C y casi todas las bibliotecas y marcos con los que se tratará se construirán o construirán parcialmente con C. ¿Por qué? Es un lenguaje sencillo y eficiente (cuando se hace correctamente) que puede hacer básicamente cualquier cosa, desde el uso de redes de socket para hacer el procesamiento de imágenes.
Desde la perspectiva de Info / CyberSec, este lenguaje es excelente para aprender (algo o mucho) porque te hace comprender cómo funcionan ciertas cosas ‘básicas’. También le facilita comprender cómo funciona un exploit o herramienta específica y cómo puede modificarla para que haga más por usted.
C se usa en una gran cantidad de software, pero generalmente veo que se usa en el desarrollo de sistemas integrados y en otros programas de bajo nivel (donde trabaja cerca del hardware, como las tarjetas de red).
Inherentemente, la mayoría de las bibliotecas criptográficas se basan en el código C, por lo que C sería una gran apuesta si desea entrar en la criptografía.
Aquí hay una gran lista de libros desde principiantes hasta avanzados. ¡Realmente no puedes equivocarte demasiado con StackOverflow!
C ++
Hay una gran cita de Bjarne Stroustrup, el fundador del lenguaje (o biblioteca):
“C hace que sea fácil dispararte en el pie; C ++ lo hace más difícil, pero cuando lo haces, te vuela toda la pierna ”.
Básicamente, puedes pensar en C ++ como el hermano mayor de C en crack, metanfetamina y esteroides, todo al mismo tiempo. Es un lenguaje absolutamente fantástico que creo que todos deberían al menos aprender un poco, aunque solo sea para comprender cuán difícil es trabajar y apreciar el tipo de personas que trabajan con él a diario.
Como se mencionó anteriormente, se basa en el mismo código fuente que C, con un montón de bibliotecas que hacen que C ++ sea mucho más fácil de trabajar y al mismo tiempo le brinde el tipo de acceso de bajo nivel que esperaría de C.
Literalmente, hay TONELADAS de buenos programas construidos o que usan C ++ para partes de él. Uno que sobresale es nmap, una herramienta ampliamente utilizada que le permite escanear y enumerar un servidor.
C ++ se usa en muchas configuraciones de recursos limitados y de rendimiento crítico, como en servidores de comercio electrónico y en aplicaciones de inventario, por lo que todo lo que necesita ser rápido y seguro.
Aquí hay otro gran artículo con algunos buenos ejemplos de libros si quieres aprender C ++. Me mantendría alejado del manual de C ++ si eres un principiante completo. Lo tengo en casa, pero cada vez que lo recojo para obtener algunas referencias cada vez que estoy programando algo, encuentro que me siento aún más confundido y que sé mucho menos que cuando lo recogí inicialmente. Sin embargo, es un libro fantástico: solo necesita tener un conocimiento previo de C ++ u otros lenguajes.
PITÓN
Dios, ¿por dónde empiezo? Me encanta este lenguaje
Si eres nuevo en programación y quieres aprenderlo como una habilidad, entonces te sugiero comenzar con este lenguaje. La sintaxis no solo es muy fácil de entender (cuando superas las malditas sangrías), sino que también tiene una gran cantidad de bibliotecas para hacer básicamente cualquier cosa que quieras hacer.
Puede hacer cualquier cosa, desde programación multiproceso para usar sus bibliotecas para enviar paquetes TCP a las máquinas. El potencial del lenguaje aumenta aún más por lo fácil que es conectar el código C en él, que combina la velocidad de desarrollo de Python con la eficiencia de C.
Python también se usa ampliamente cuando se realizan análisis de criptografía y malware. Entonces, si quieres trabajar con eso, ¡deberías echar un vistazo a Python! (Lo sé, ¡es increíble!).
En el caso de aprender Python, sugiero buscar este sitio web y usarlo junto con los documentos de Python. Cuando tenga una base sólida y haya escrito uno o algunos programas medianos y grandes, le sugiero que obtenga una copia de Violent Python, ya que tiene mucho que enseñar. Está orientado principalmente al lado de seguridad ofensivo de las cosas, pero si comprende cómo piensa el lado ofensivo, ¡puede usar eso para construir guiones defensivos también!
Confía en mí, si no sabes este idioma, ¡ deberías !
GOLPETAZO
Bash es un excelente lenguaje de secuencias de comandos para aprender en caso de que esté principalmente en un sistema operativo Linux (o si está usando ‘Bash para Windows’).
Desde mi punto de vista personal, es una gran herramienta para usar en las pruebas de penetración, ya que generalmente viene incluido en la mayoría de las máquinas que he atacado, lo que significa que puedo enviar fácilmente un script que podría automatizar los procesos que necesito realizar (como limpiar registros) )
Sugeriría a las personas que no están familiarizadas con Linux que aprendan algo del lenguaje, ya que no solo ayudaría a automatizar las tareas domésticas, sino que probablemente también le presentará nuevos comandos.
Aquí hay un enlace a TLDP que introduce conceptos de principiante-intermedio a los scripters.
JAVASCRIPT
Lo sé, algunos de ustedes podrían estar rascándose la cabeza ahora, pero desnudos conmigo.
Simplemente no puede ir a ningún lado hoy en día donde al menos no está viendo algo hecho en JavaScript, lo que significa que es importante para nosotros al menos comprender los fundamentos básicos de cómo funciona este lenguaje, independientemente de si queremos usarlo para exploits o si necesitamos fortalecer nuestro sistema.
Solía ser que JavaScript era principalmente un lenguaje del lado del cliente (lo que significa que ejecutaba código en el sistema invitado en lugar de en el servidor), pero hoy en día lo vemos tanto en el servidor como en el lado del cliente.
Esto significa que (dependiendo de su mentalidad) hay el doble de la cantidad de exploits potenciales o el doble de las cosas que necesitan ser endurecidas.
Entonces, ¿qué haces realmente con JavaScript? Principalmente vemos JavaScript utilizado en nuestros navegadores o en servidores web. Algunos marcos comunes (a partir del 16/02-17) son NodeJS, AngularJS, ReactJS, jQuery, etc. El primero (NodeJS) es un marco del lado del servidor que le permite crear API para transferir datos desde el servidor y los otros tres son principalmente del lado del cliente con sus propias fortalezas y debilidades individuales.
La razón para aprender este idioma es simple: se usa en todas partes, por lo que saber que siempre será beneficioso para usted, independientemente de cuál sea su propósito. Además de ser utilizado en todas partes, también es muy fácil de aprender, por lo que incluso si es un principiante, aprenderá fácilmente cómo usar el idioma para cosas básicas como mostrar texto en una página web.
Aquí hay algunos buenos recursos para aprender el idioma. Como dice el título, es para principiantes que desean aprender el idioma en un corto período de tiempo.
IDIOMAS DE ESCRITURA PROPIETARIOS
Esto incluye todos los idiomas de varios proveedores de redes como Cisco.
Estos idiomas le beneficiarían principalmente si trabaja con su hardware respectivo. Como si estuviera trabajando con Cisco IOS, estaría trabajando con TCL para automatizar las cosas.
Tengo una experiencia extremadamente limitada con este tipo de lenguajes, y todo lo que realmente puedo decir es que conocer estos lenguajes de scripting te beneficiaría si vas a trabajar con cierto tipo específico de hardware o un tipo particular de red y su seguridad.
Sé que hay un montón de otros idiomas que he echado de menos (Ruby, Java, etc.) y me doy cuenta de que muchos de ustedes podrían estar en desacuerdo con que coloque JavaScript en la lista. Pero sí creo que es cada vez más importante para nosotros al menos tener una comprensión básica de cómo funciona ese idioma simplemente porque está en todas partes.
Espero que esto sea una lista decente y ayude a algunos de ustedes en su búsqueda de aprender sobre la parte del lenguaje de programación de Info / CyberSec.
Si me perdí algún idioma importante, ¡no dudes en enviarme un mensaje!