Python y la Ciberseguridad ¿Cómo sacarle provecho?
La ciberseguridad es la práctica de proteger redes, sistemas y programas de ataques digitales. Es una industria con un valor de $149.67 mil millones de USD que se estimó en 2019 y se espera que alcance los $300 mil millones de USD para 2027. Es también una rama de la industria que constantemente padece de un déficit de talento con un estimado de 3,5 millones de puestos de trabajo sin cubrir para 2021 se espera que este número de puestos laborares sin cubrir crezca más de 10 millones para 2024.
Pero ¿qué tiene que ver la ciberseguridad con un lenguaje de programación?
Muchos lenguajes de programación se utilizan para realizar tareas cotidianas relacionadas con la ciberseguridad, pero uno de ellos se ha convertido en el estándar de la industria: Python.
Python tiene una sintaxis fácil de leer, de comprender y posee una amplia gama de aplicaciones que lo convierten en un lenguaje de programación muy versátil para cualquier aspirante a profesional de la ciberseguridad. Tener conocimiento de este lenguaje es una ventaja técnica a la hora de buscar ocupar un puesto en esta industria. Sin mencionar las aptitudes necesarias para lograrlo.
El crecimiento de Python en los últimos años ha sido increíble y ahora se considera uno de los lenguajes más populares en todas las industrias según Stack Overflow.
En 2017 claramente se observaba como el crecimiento de este lenguaje era importante y las expectativas para 2020 y 2021 solo indicaban que su adopción seguiría la misma tendencia.
https://stackoverflow.blog/2017/09/06/incredible-growth-python/
Y en los sitios de desarrollo no ha sido diferente. El uso de este lenguaje es muy amplio y ha rebasado a otros lenguajes que se consideraban legendarios y con usa base de desarrolladores más que consolidada.
Programación en python y la ciberseguridad
Si eres un profesional que está pensando en hacer la transición a la ciberseguridad, este artículo te mostrará cómo puedes utilizar tus habilidades en una industria de altos ingresos y bajo desempleo. Puede hacerlo, por ejemplo, automatizando procesos repetitivos para ahorrarle a tu equipo innumerables horas o creando herramientas de seguridad que puedan usarse para probar la seguridad de aplicaciones o sistemas.
Swimlane es una poderosa herramienta de automatización (SOAR) que TrustDimension ofrece a sus clientes y que tiene como base python. Swimlane tiene una enorme gama de integraciones para permitir interactuar con una gran lista de tecnologías, obtener información, así como enviar datos y detonar acciones como la automatización de respuesta a amenazas, investigación, remediación, etc.
Python es la columna vertebral de Swimlane porque casi cualquier tecnología o proveedor puede generar un API y un binding que puede ser usado en Python. Puedes ver la lista de integraciones con las que Swimlane puede interactuar en https://apphub.swimlane.com/
Imperva, un proveedor líder de software y servicios de ciberseguridad informa que el 77% de los sitios web que protegen fueron atacados por una herramienta basada en Python. Como profesionales de la seguridad, parte de nuestro trabajo consiste en imitar los ataques de la vida real para garantizar que las empresas estén preparadas cuando se produzca una amenaza real, y esto puede hacerse entendiendo el lenguaje y las bibliotecas que se utilizan en los ataques reales. La replicación de esas herramientas basadas en Python es un conjunto de habilidades muy valioso.
En el campo de la ciberseguridad es necesario centrarse en aprender el uso de las bibliotecas y los frameworks de Python adecuados para esta industria. Así que veamos algunas de las diferentes bibliotecas de Python que necesitas conocer para prosperar en la ciberseguridad.
Automation Tools
En el tema de automatizar tareas Python es vasto, pero aquí listamos algunas de la librerías o módulos más útiles e importantes para este fin.
Boto3 (https://aws.amazon.com/sdk-for-python/)
Boto3 es el kit de desarrollo de software (SDK) de Amazon Web Services (AWS) para Python, que permite a los programadores escribir scripts que pueden interactuar con servicios de AWS como Amazon Simple Storage Service (S3), Amazon Elastic Compute Cloud (EC2) y Amazon Virtual. Nube privada (VPC).
Con Boto3 puede iniciar y detener servidores a pedido, cancelar instancias que no se ajusten a los estándares de seguridad de su organización, realizar actualizaciones y administración de parches, y mucho más.
Regex (https://docs.python.org/3/howto/regex.html)
Regex significa expresiones regulares y es una herramienta que permite buscar patrones específicos dentro de un bloque de texto. Esta es una función muy útil para extraer información de los archivos de registro durante una investigación o cuando se extrae información de Internet.
Al combinar esta biblioteca con otras bibliotecas estándar de Python, puede crear algunos programas muy útiles.
Pyautogui y el módulo Web Browser (https://pyautogui.readthedocs.io/en/latest/)
Pyautogui permite que sus scripts controlen las funciones del mouse y el teclado, lo que le permite imitar el comportamiento inteligente del usuario. El módulo del navegador web le permite iniciar un nuevo navegador a una URL específica.
Puede usarlos en programas para automatizar cualquier acción que requiera ir a un sitio web y realice cualquier función, como completar un formulario web, descargar archivos, etc. Esto se puede usar para automatizar funciones, por ejemplo, que requieran que se inicie sesión en un sitio web y creé una nueva publicación, pero de forma «automatizada», es decir, sin intervención de personal alguna.
Pyperclip o pyclip
(https://github.com/asweigart/pyperclip https://github.com/spyoungtech/pyclip )
Estos módulos de python brindan la posibilidad de acceder al portapapeles directamente desde sus scripts de Python. Si bien esto se puede hacer con la biblioteca pyautogui, pyperclip o pyclip hacen que este proceso sea mucho más simple y agrega flexibilidad a sus scripts.
Faker (https://faker.readthedocs.io/en/master/)
Esta biblioteca está dedicada a producir datos falsos que pueden usarse para probar sus programas. Esto es importante para garantizar que los scripts o herramientas que escribas puedan realizar la acción según lo previsto.
Por ejemplo, si se tiene una secuencia de comandos que extrae una URL, es posible que se desee generar un texto falso que contenga esa información y probar el programa para asegurarse de que la secuencia de comandos pueda encontrar la URL de manera efectiva.
Pen Testing
Las operaciones de pentesting son también una parte importante en las áreas de ciberseguridad y Python tiene una enorme cantidad de recursos de comunicaciones, desde cosas básicas hasta sofisticadas herramientas que se incluyen por ejemplo en Kali Linux o algunas otras herramientas conocidas en el campo de Ciberseguridad. Algunos módulos en Python que son extremadamente útiles para pentesting son:
Python Nmap (https://pypi.org/project/python3-nmap/)
Nmap es un escáner de puertos muy utilizado. El escaneo de puertos es el proceso de verificar qué puertos están abiertos en una computadora y qué servicios se están ejecutando en esa máquina para que pueda comenzar a determinar cómo esa máquina puede ser vulnerable a ser pirateada.
La biblioteca Python Nmap le facilita el uso de la funcionalidad nmap a través de sus scripts de Python
Socket (https://docs.python.org/3/library/socket.html)
El módulo de socket de Python proporciona una interfaz para la Berkeley sockets API. Python proporciona una forma conveniente y consistente que se asigna directamente a ese tipo de llamadas al sistema, sus contrapartes C.
Como parte de su biblioteca estándar, Python también tiene clases que facilitan el uso de estas funciones de socket de bajo nivel así como un marco para servidores de red. También hay módulos disponibles que implementan protocolos de Internet de nivel superior como HTTP, SMTP y otros protocolos de Internet.
Scapy (https://scapy.net/)
Scapy es una biblioteca de manipulación de paquetes que puede falsificar y decodificar paquetes en muchos protocolos de red diferentes.
En ciberseguridad, hay situaciones en las que es necesario controlar los paquetes que se envían a través de una red informática. Podría ser para determinar si alguien hackeó su entorno, ver qué puertos y servicios se están ejecutando en una máquina o solucionar un problema de red.
Cualquiera sea la razón, esta biblioteca es excelente para realizar análisis de paquetes y puede permitir la misma funcionalidad que herramientas populares como Nmap, Wireshark y tcpdump.
Requests (https://docs.python-requests.org/en/master/)
Esté módulo de python se explica por sí mismo. Permite a los programadores enviar solicitudes HTTP a través de sus scripts, este tipo de solicitudes son útiles para las actividades de pruebas de penetración al permitir la creación de cargas útiles o payloads personalizadas y ataques dirigidos contra aplicaciones web.
Requests puede lograr la misma funcionalidad que una herramienta como burp suite pero con más personalización según tus necesidades. Los investigadores de Imperva descubrieron que Requests era la biblioteca de Python más popular utilizada en ataques basados en la web, utilizada en el 89% de los ataques basados en Python.
Beautiful Soup (https://www.crummy.com/software/BeautifulSoup/bs4/doc/)
Esta biblioteca se especializa en ayudar en la fase de recopilación de información de las pruebas de penetración.
Beautiful Soup permite analizar datos de archivos HTML y XML para automatizar las tareas de extracción de datos. Estas pueden ser importantes durante la fase de inteligencia en una prueba de penetración, ya que esta fase está dedicada a encontrar tanta información sobre el objetivo como sea posible.
Por esta razón, es posible que desee crear scripts para automatizar esta fase, buscando en lugares como Github para encontrar información sobre un objetivo. Esta información podría incluir direcciones IP o IDs de usuario y contraseñas que los desarrolladores a menudo asignan accidentalmente a un repositorio público.
Esta es solo una breve e insignificante muestra de todo un arsenal de módulos, librerías y herramientas que Python tiene disponible para un profesional de la ciberseguridad y las posibilidades, literalmente, solo están limitadas por el conocimiento y la perseverancia en utilizarlas para mejorar la seguridad de tu organización.
Automatizar es importante hoy, en el futuro será indispensable…
Uno de los principales elementos en las causas de los ataques informáticos es el error humano, esta es la causa de al rededor del 90% de los incidentes. Así que siempre es importante buscar la respuesta a la siguiente pregunta ¿Cómo puedo aprender a automatizar un proceso como este?
Automatizar tareas con herramientas como Swimlane permite detectar y actuar en minutos en vez de horas o días si el factor humano está relacionado de forma importante en la detección, identificación y remediación de incidentes de ciberseguridad. Y el primer paso es saber usar Python.
Hay cientos de cursos y material disponible en la red para aprender Python y muchos de ellos te enseñan como descargar e instalar este lenguaje que es prácticamente gratuito, por lo que solo depende de ti que decidas aprenderlo.
Y ya que te encuentras en la búsqueda de mejorar tu ciberseguridad, te invitamos a conocer las herramientas y servicios que TrustDimension puede ofrecerte para atender, mejorar y mantener la ciberseguridad de tu organización. Recuerda, automatizar es importante, contáctanos hoy.