Para asegurar que los datos dentro de algún sistema de información permanezcan seguros y que no sean accesibles por usuarios no aprobados, realizamos pruebas de seguridad.
Las pruebas de seguridad ayudan a proteger los sistemas y aplicaciones de amenazas; detectan fallos, errores y otras ineficiencias, y evitan que dichas aplicaciones se bloqueen o dejen de funcionar de la manera esperada.
Los principales objetivos de la implementación de pruebas de seguridad son:
- Ayudar a mejorar la seguridad y la vida útil del producto.
- Identificar y solucionar varios problemas de seguridad en la etapa inicial de desarrollo.
- Calificar la estabilidad en el estado actual.
Pero sería un error si estas pruebas las hacemos solamente en la fase de producción, ya que ayudan a descubrir lagunas y fallos de una aplicación desde la etapa de desarrollo. Para empezar, es muy importante determinar si se ha escrito correctamente el código, para ello nos ayudaremos de distintas herramientas que nos permita evaluarlo y que, a su vez, brinden retroalimentación del estado del mismo. Por ejemplo:
SONARQUBE
Es una herramienta de prueba de seguridad de código abierto. Permite realizar un análisis estático de código, función esta que resulta muy útil para verificar la calidad del mismo.
Además, es una de las que estudiamos en nuestro Máster en Dirección de Ciberseguridad, Hacking ético y Seguridad Ofensiva, específicamente en la asignatura “Seguridad en desarrollo de software”.
Esta herramienta es capaz de exponer vulnerabilidades existentes en la codificación, que pueden llevar a futuras incidencias de seguridad.
Una de sus ventajas es que soporta más de 20 lenguajes de programación. Cada uno de ellos cuenta con una serie de reglas que permiten detectar problemas generales o específicos de un lenguaje particular. Se integra fácilmente con herramientas como Jenkins, por ejemplo, clasifica los problemas en función del nivel de riesgo, entre otras.
WAPITI
Si nuestra intención es conocer las vulnerabilidades existentes en una aplicación o página web, podemos utilizar herramientas como Wapiti.
De código abierto gratuito. Encuentra posibles vulnerabilidades desde la seguridad de caja negra. Esta herramienta sólo escanea la página web, no el código fuente de la misma. Es considerada muy útil en las fases iniciales de los test de intrusión y, además, es sencilla de utilizar.
Wapati es capaz de detectar las siguientes vulnerabilidades
- Database Injection (PHP/ASP/JSP SQL Injections and XPath Injections)
- Cross Site Scripting (XSS)
- File disclosure detection
- Command Execution detection
- XXE (Xml eXternal Entity) injection
- CRLF Injection
¿Cómo se instala?
Si estamos trabajando sobre nuestra máquina Kali o cualquier sistema basado en Debian o Ubuntu, podemos utilizar la siguiente línea de comando:
sudo apt install wapiti
SQLMap
Herramienta que nos ayudará a testear/automatizar el proceso de detección y explotación de inyecciones SQL.
Soporta una gran variedad de motores de bases de datos como ser MySQL, Oracle, PostgreSQL, Microsoft SQL Server, SQLite, etc, el cual permite testear muchas características específicas de cada uno de ellos y para comprobar su seguridad.
Una vez que la herramienta detecta las vulnerabilidades y las inyecciones de código que se pueden realizar, el usuario puede elegir entre una variedad de opciones para llevar a cabo el test de intrusión; recuperar el usuario y la base de datos, enumerar usuarios, hashes de contraseña, privilegios, bases de datos, volcar tablas / columnas completas o específicas del usuario, y más.
¿Quieres saber qué otras herramientas podemos utilizar para auditar, testear nuestro código o aplicación?
¡Realiza nuestro máster de ciberseguridad y te convertirás en un auténtico crack!