0% encontró este documento útil (0 votos)
8 vistas5 páginas

Sast

Descargar como pdf o txt
Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1/ 5

Instituto Tecnológico de Las Américas

Seguridad de aplicaciones
Asignatura

Sección
Jorge Isaac
Docente
SAST
Tema
Diego Jael Peña Castillo – 2023-0366

Estudiantes

17 de julio del 2024, Boca Chica


CodeQL

CodeQL es un motor avanzado de análisis semántico de código desarrollado por Semmle y


posteriormente adquirido por GitHub. Permite a los desarrolladores consultar el código
como si fuera datos. Si lo piensas, esta es una idea bastante profunda. Así como podrías
consultar una base de datos para encontrar información específica, puedes usar CodeQL
para encontrar patrones específicos en tu código.

Por ejemplo, supongamos que quieres encontrar cada declaración if en tu base de código
que no tenga una correspondiente declaración else. Con medios tradicionales, esto sería una
tarea bastante tediosa, pero con CodeQL, puedes escribir una consulta para obtener todas
esas instancias fácilmente.

Aquí tienes un ejemplo simple de cómo podría verse una consulta de CodeQL (nota que
esto es pseudocódigo):

from IfStmt ifstmt


where not(ifstmt.hasElseBranch())
select ifstmt, "This 'if' statement doesn't have an 'else' branch."

Esta consulta sencilla escanea la base de código en busca de declaraciones if (IfStmt) que
no tienen una rama else (not(ifstmt.hasElseBranch())) y luego selecciona esas declaraciones
if, junto con un mensaje explicativo.

Sin embargo, el uso principal de CodeQL no se limita solo a encontrar patrones sintácticos
como en el ejemplo anterior, sino que también identifica patrones semánticos más
complejos que pueden revelar posibles vulnerabilidades de seguridad. De hecho, es una de
las herramientas más potentes disponibles actualmente para el análisis semántico de código
en el contexto de la seguridad.

SonarQube

SonarQube es una plataforma de código abierto para la inspección continua de


la calidad del código a través de diferentes herramientas de análisis estático de
código fuente. Proporciona métricas que ayudan a mejorar la calidad del
código de un programa permitiendo a los equipos de desarrollo hacer
seguimiento y detectar errores y vulnerabilidades de seguridad para mantener
el código limpio.

Es una herramienta esencial para la fase de testing y auditoría de código


dentro del ciclo de desarrollo de una aplicación y se considera perfecta para
guiar a los equipos de desarrollo durante las revisiones de código. Soporta una
etapa de inspección continua.
SonarQube está escrito en Java, pero puede analizar y administrar código 29
lenguajes de programación importantes, incluidos c / c ++, PL / SQL, Cobol,
etc., a través de conjuntos de reglas incorporados que pueden ser ampliados
con varios complementos.

Esta herramienta al centrarse en el nuevo código ayuda a la detección de


muchos problemas, facilitando su solución de manera rápida en cuanto
aparece por lo que permite mantener el código limpio, sencillo y fácil de leer.

Los desarrolladores se apoyan en esta plataforma para lograr la integración e


implementación continuas del código, que no solo funciona para detectar los
problemas, sino también, para rastrear, controlar y verificar la calidad
continua del código.

Características

• Admite los lenguajes de programación más populares como Java, C / C


++, Objective-C, C #, PHP, Flex, Groovy, JavaScript, Python, PL /
SQL, COBOL, etc.

• Realiza revisiones automáticas con análisis de código


estático detectando problemas que afectan la calidad del código.

• Facilita informes ofreciendo información objetiva de la calidad actual


de los proyectos utilizando métricas y gráficos de prueba de calidad
avanzados. Esto incluye datos sobre código duplicado, estándares de
codificación, pruebas unitarias, cobertura de código, complejidad del
código, errores potenciales, comentarios, diseño y arquitectura.

• Se integra con toda la cadena de herramientas de DevOps ayudando al


flujo de trabajo productivo, incluidos los sistemas de compilación, los
motores de CI, utilizando webhooks y su RestAPI integral.

FindBugs

FindBugs es una herramienta de análisis estático de código para el lenguaje de


programación Java. Su función principal es identificar posibles errores y problemas en el
código fuente o bytecode de aplicaciones Java. Esta herramienta no requiere ejecutar el
programa para detectar problemas, ya que se centra en analizar el código directamente.
Funcionalidades principales de FindBugs:

1. Análisis de Código Estático: FindBugs examina el código Java en busca de


patrones conocidos que puedan indicar errores, vulnerabilidades de seguridad o
malas prácticas de programación. Utiliza un conjunto de reglas predefinidas y
patrones de código para realizar estas evaluaciones.
2. Detección de Problemas Comunes: La herramienta está diseñada para detectar una
amplia gama de problemas, desde errores simples como referencias nulas o manejo
incorrecto de excepciones, hasta vulnerabilidades de seguridad más complejas como
problemas de manejo de datos sensibles o vulnerabilidades de inyección.
3. Integración en el Flujo de Desarrollo: FindBugs se puede integrar en el entorno
de desarrollo integrado (IDE) o en sistemas de integración continua (CI/CD) para
automatizar el proceso de análisis y asegurar que los problemas sean identificados
lo antes posible durante el ciclo de desarrollo.
4. Personalización y Configuración: Los usuarios pueden personalizar las reglas de
análisis según las necesidades específicas del proyecto. Esto incluye la capacidad de
definir reglas personalizadas o ajustar las configuraciones de análisis para adaptarse
a estándares de seguridad internos o externos.
5. Soporte y Comunidad Activa: FindBugs es una herramienta de código abierto con
una comunidad activa de desarrolladores. Esto significa que hay soporte continuo y
actualizaciones frecuentes que mejoran la capacidad de detección y la
compatibilidad con nuevas versiones de Java y entornos de desarrollo.

Importancia de FindBugs:

FindBugs desempeña un papel crucial en el aseguramiento de la calidad y la seguridad del


software Java. Al identificar problemas en una etapa temprana del desarrollo, los equipos
pueden corregir errores antes de que afecten a los usuarios finales. Esto ayuda a mejorar la
fiabilidad, la seguridad y el rendimiento del software, así como a reducir costos asociados
con la resolución de problemas en etapas avanzadas del ciclo de desarrollo.

Fortify

Fortify by Micro Focus, es una plataforma de seguridad de aplicaciones que


automatiza las pruebas en todo el proceso de CI / CD para que los
desarrolladores puedan resolver los problemas rápidamente. Fortify permite
encontrar vulnerabilidades directamente en el IDE del desarrollador con
análisis de seguridad en tiempo real y ahorrar tiempo con la auditoría
impulsada por el aprendizaje automático.

Otras características de Fortify


• Las pruebas de seguridad rápidas identifican vulnerabilidades en el
código fuente, incluido el análisis de código abierto.
• Integra cadenas de herramientas de CI / CD con Jenkins, Azure, IDE y
extensiones de API.
• Brinda precisión y profundidad de cobertura al permitir el cumplimiento
de la mayoría de los estándares.
• Flexibilidad de realizar pruebas: on-premises, on-demand or as a
service.
• Permite automatizar y escalar con capacidades de escaneo centralizadas.
• Los procesos son amigables para el desarrollador, con navegación por
línea de código para encontrar vulnerabilidades más rápido.
• Cobertura de lenguaje amigable para desarrolladores: compatibilidad
con: ABAP/BSP, ActionScript, Apex, ASP.NET, C# (.NET), C/C++,
Classic, ASP (with VBScript), COBOL, ColdFusion CFML, Go,
HTML, Java (including Android), JavaScript/ AJAX, JSP, Kotlin,
MXML (Flex), Objective C/C++, PHP, PL/SQL, Python, Ruby, Swift,
T-SQL, VB.NET, VBScript, Visual Basic, and XML.

Casos de uso de Fortify:


• Seguridad impulsada por el desarrollador: Al incorporar prácticas de
codificación seguras en el proceso de desarrollo, puede minimizar los
riesgos de seguridad de sus aplicaciones.
• DevSecOps: Fortify ofrece AppSec de extremo a extremo con escala
empresarial, con SAST y DAST, además de SCA con nuestra
asociación con Sonatype para software de código abierto (OSS).
• Enterprise DAST: Permita que los equipos de desarrollo ejecuten
escaneos dinámicos por su cuenta, con políticas e informes
preconfigurados para cumplir con los estándares de cumplimiento.
• Integrando la seguridad en CI / CD: Las actividades de seguridad se
ejecutan sin problemas a lo largo del proceso de desarrollo, por lo que
los problemas de seguridad se detectan temprano y se solucionan a la
velocidad de DevOps.
• Reducir el riesgo de software: Las organizaciones pueden cumplir con
los estándares de cumplimiento de seguridad con políticas e informes
preconfigurados para las principales regulaciones de cumplimiento.
• Software Seguro: Las capacidades de escaneo centralizado admiten
programas maduros de AppSec que ejecutan miles de escaneos por día.

También podría gustarte