Introducción bugscout es una herramienta de análisis estático de código (SAST) que nace con el objetivo de automatizar el proceso de la revisión manual de código para encontrar vulnerabilidades de seguridad en el software. La motivación de bugscout se centra en los siguientes puntos: Las soluciones SAST* existentes en el mercado generan un gran número de falsos positivos, lo que requiere que un auditor experimentado revise uno a uno los resultados. Además estas herramientas no están diseñadas para ser usadas por un programador con pocos conocimientos de seguridad. bugscout surge de la experiencia de nuestro equipo de auditores de seguridad, expertos reconocidos en hacking ético y desarrollo de exploits. En base al feedback reportado por nuestros clientes, observamos la existencia de una necesidad no cubierta a la hora de estrechar la frontera entre desarrolladores y analistas de seguridad. Creemos en el modelo SaaS (Software as a Service) por medio de un modelo de Cloud Computing para que el servicio pudiera ser utilizado por software factories deslocalizadas geográficamente. Colaborar con el cumplimiento del estándar PCI DSS (www.pcisecuritystandards.or g/security_standards). Ayudar a reducir costes de desarrollo, identificando los problemas desde las fases iniciales mientras el software está siendo programado-, cuando aún la corrección es sencilla y no supone un riesgo de seguridad. * Las herramientas SAST (Static Application Security Testing) nacen con la motivación de automatizar el proceso de la revisión manual de código para encontrar vulnerabilidades de seguridad. En pocas palabras, el análisis estático de código consiste en evaluar el software sin ejecutarlo. 1
bugscout representan una evolución más sofisticada del análisis de flujo que los modelos clásicos basados en las semánticas de los lenguajes, empleando ambos recorridos de flujo: de inicio a fin y de fin a inicio. Además se soportan sistemas heterogéneos, de forma que el sistema puede contener diferentes fuentes que serán analizadas en conjunto. Ambas versiones soportan sistemas donde sólo están disponibles partes parciales del código. Algunas características de bugscout Funciona de manera descentralizada en la nube, permitiendo ajustar los niveles de escalabilidad a las necesidades de nuestros clientes. Permite a sus partners, mediante su solución de appliances, la creación y gestión de sus propias nubes para dar servicio a sus propios clientes. Está orientado a un usuario que no tiene por qué disponer de elevados conocimientos de seguridad. Mayor rendimiento. La arquitectura distribuida de cores tiene una capacidad de análisis de hasta 300.000 líneas por minuto. Está diseñado para auditar simultáneamente múltiples códigos, sin penalización en el rendimiento. Se trata de una plataforma multitarea y multiusuario con granularidad de permisos. Las interfaces de usuario son personalizables para poder adaptarse a distintas matrices de acceso definidas por nuestros clientes. Permite la clasificación de proyectos para un mejor seguimiento desde cualquier perspectiva del nivel de seguridad de los aplicativos auditados. Incorpora un gestor documental y facilita enormemente la gestión de vulnerabilidades, incorporando para ello diferentes cuadros de mando adaptables. Appliance Cloud Software factory Código fuente Nueva versión bugscout Resultados SOC vulnerabilidades Desarrollador Publicación del software Envío de logs Internet 2
Ventajas de bugscout Incremento de la Eficiencia El modelo tecnológico de cloud de bugscout, permite la interconexión de unidades lógicas virtualizadas, a través de las cuáles, es posible detectar en tiempo real cuellos de botella en el procesamiento de ficheros. Las controladoras de las unidades de virtualización, permiten tener un procesamiento distribuido que conlleva una mejora significativa de la eficiencia. En otras palabras, el BackEnd de bugscout es capaz de reaccionar, en tiempo real, a las necesidades de acceso a datos que se producen durante las fases que comprende la auditoría. Escalabilidad El BackEnd de bugscout, incorpora novedosas tecnologías de almacenamiento en cloud como multi tenancy, que unidas a la virtualización de unidades y la aproximación por capas, permite aumentar el parque de sistemas de BackEnd de manera sencilla y rápida. De esta manera, es posible aumentar el BackEnd de manera considerable en tiempos muy competitivos, lo que convierte a bugscout en una herramienta flexible de fácil gestión. Flexibilidad El BackEnd de bugscout, está diseñado siguiendo el principio de la modularidad aplicada en capas. Esto permite una gestión sencilla gestión del cambio de la arquitectura. Esta modularidad, permite obtener una flexibilidad de gestión, administración y control sobre la arquitectura sorprendentes, manteniendo los más altos niveles de seguridad. Disponibilidad El BackEnd de bugscout, cuenta con una tecnología que permiten reaccionar en tiempo real ante fallos de indisponibilidad, acceso a disco, saturación de proceso, etc. De esta manera es posible obtener un 99 % de uptime y una velocidad de proceso y lectura/escritura extremadamente elevada, sin renunciar por ello a la seguridad. Gestión La escalabilidad permite realizar grandes provisiones en un tiempo muy reducido. Adicionalmente, el BackEnd de bugscout, comprende las herramientas de gestión interna que permiten controlar todo el proceso de provisión de manera ordenada y eficaz. Seguridad La seguridad es un proceso esencial en el diseño y desarrollo de bugscout. Comprende desde el control de accesos a la herramienta, hasta la seguridad de las comunicaciones internas, el cifrado de los datos en discos, etc. 3
Ventajas de bugscout Interoperabilidad bugscout se integra con herramientas de control de versiones de amplia difusión, como Subversion. Los datos de las vulnerabilidades pueden también ser exportados en formatos CSV y XML para ser integrados con herramientas de terceros. Para herramientas de desarrolladores, la API de bugscout provee una integración aún más estrecha, permitiendo que bugscout sea utilizado como un motor de análisis más completo. Cloud Appliance Manual API SVN 4
Funcionalidades de bugscout Gestor de Proyectos El sistema de gestión de proyectos permite la gestión integral de proyectos y aplicaciones a auditar. El objetivo principal del módulo es llevar un control de las actuaciones realizadas, registrando información sobre todo el ciclo de desarrollo de software. Para ello, la aplicación utiliza y trabaja con los conceptos de Proyectos y Aplicaciones, implementando la capacidad de definir estructuras jerárquicas y llevando un control total sobre las revisiones de código que se van realizando. En resumen, el Gestor de Proyectos: Permite registrar proyectos de desarrollo de aplicaciones. Permite establecer jerarquía proyectos, aplicaciones y revisiones de código. Permite definir de forma granular el acceso por usuario y proyecto. Gestor documental El sistema de gestión documental permite el manejo avanzado de los recursos documentales relacionados con la gestión de la seguridad. El objetivo principal del módulo, es el de permitir la ordenación, clasificación y publicación de documentos que afecten o estén relacionados con cada una de las actuaciones realizas para resolver las vulnerabilidades de código. Asimismo, se utiliza como repositorio centralizado de procedimientos, informes, códigos fuente, políticas y manuales de actuación, siendo el marco de referencia o base de conocimiento para los grupos de desarrollo de aplicaciones. 5
Funcionalidades de bugscout Panel de control (Dashboard) En el contexto de la herramienta bugscout, el Panel de Control o Dashboard, es el elemento utilizado para definir las distintas gráficas de trabajo o cuadros de mando asociados con diferentes indicadores estadísticos de los proyectos y las auditorías de código. El objetivo principal del módulo es permitir que los usuarios puedan personalizar su entorno de trabajo, seleccionado desde una biblioteca de gráficas y consultas, todos los contenidos que se reflejan en la herramienta. De esta forma, se consigue que cada usuario ajuste el portal a las acciones que utiliza en su operativa diaria, resultando ser un panel de control sencillo y ante todo selectivo. Estas gráficas, funcionan como pequeños proveedores de información. El usuario tiene acceso a datos facilitados en tiempo real y que dan visión sobre los distintos aspectos de las auditorías de código. 6
Funcionalidades de bugscout Generación de informes bugscoutimplementa un módulo de generación de informes bajo demanda. Los informes de bugscoutcomprenden toda la información referente a la auditoría, desde la información del código, hashses de los ficheros, número de líneas y distribución de lenguajes, hasta los detalles de cuándo se ejecutó el análisis. Para cada vulnerabilidad se anexa una extensa información, seguida de detalles concretos y personalizados para cada ocurrencia detectada. También se incluyen las recomendaciones y las conclusiones derivadas del análisis. bugscout permite exportar los resultados de los análisis en diversos formatos, entre los que se incluyen XML, PDF, RTF y DOCX. De esta manera es posible cargar dichos resultados de manera estándar en cualquier tipo de herramienta. Las recomendaciones emitidas por bugscoutson claras y precisas. En ellas se indican dónde hay que aplicar los cambios (fichero y línea) y la naturaleza de los mismos. Adicionalmente, bugscouttambién ofrece una estimación del esfuerzo asociado a la corrección de las vulnerabilidades detectadas, de modo que proporciona un argumento adicional a la criticidad a la hora de llevar a cabo la programación de las acciones correctivas. Existen 4 tipos de informes: Informe técnico de SCA por análisis. Informe técnico de SCA por aplicación. Informe de cumplimiento PCI-DSS. Informe del servicio SCA por uso. 7
Funcionalidades de bugscout Gestor de vulnerabilidades. En él se sitúa la clasificación global de todos los tipos de vulnerabilidades encontradas, así como las ocurrencias para cada una y las asociaciones correspondientes para cada aplicativo. Permite gestionar el estado de las vulnerabilidades encontradas de manera globalizada o individual sobre todos los resultados de las auditorías realizadas en la herramienta de análisis de código. Permite realizar consultas avanzadas sobre los resultados de las auditorías mediante filtros avanzados de búsqueda. Permite hacer búsquedas simples o compuestas sobre los resultados obtenidos. Permite trabajar con los datos de los resultados, de la misma manera que se hace en una hoja de cálculo. 8
Características técnicas Lenguajes de programación soportados bugscout soporta los siguientes lenguajes de programación de aplicativos web: PHP 3, 4, 5 (incluyendo framework Smarty). Java (SE 6/EE 5 y anteriores), incluyendo los frameworks más utilizados, como los siguientes: Spring (SpringSource). Hibernate 3 (JBoss). Struts 1/2 (Apache). ibatis (Apache) and MyBatis. LDAP. GWT (Google). Amazon API. Java EE Servlets. logging (Java logging, log4j, etc.) Visual Basic, C#, ASPX.NET 2.0, 3.0 y 3.5. ASP. HTML5 y anteriores. XML. ABAP. COBOL. PL-SQL. Android/BlackBerry/Windows La herramienta no está limitada a un número de lenguajes preestablecido, sino que dependiendo de las necesidades que se vayan localizando en el sector del desarrollo de software empresarial, aumentará el catálogo de lenguajes soportados. Cabe resaltar que OBJETIVE-C será añadido al catálogo de lenguajes soportados en los próximos meses. Como garantía adicional, el equipo de hacking ético de buguroo apoyará con auditorías manuales los lenguajes no soportados en un momento dado. Rendimiento de ejecución bugscout es una herramienta eficiente auditando código. Gracias a su avanzada tecnología, el core tiene una capacidad de análisis de hasta 300.000 líneas por minuto, lo que le permite auditar grandes volúmenes de código en muy poco tiempo. Además, la arquitectura modular de bugscout permite que varias auditorías puedan ser ejecutadas simultáneamente, por lo que es capaz de analizar millones de líneas de código de manera concurrente. 9
Características técnicas Clases de vulnerabilidades detectadas bugscout detecta alrededor de 18.000 casuísticas distintas de vulnerabilidades. bugscout se apoya en los estándares de la industria a la hora de nombrar y catalogar las vulnerabilidades. Estos estándares son los siguientes: CWE (http://cwe.mitre.org/). CVSS (http://www.first.org/cvss/cvss-guide.html). OWASP (http://www.owasp.org). WASC (http://projects.webappsec.org). Granuralidad de permisos bugscout define varios Roles en el Framework. Gracias a estos roles es posible controlar que distintos usuarios tengan distintos perfiles de acceso a la información y características de la herramienta. En la siguiente tabla se muestra un resumen de los permisos para cada Rol preestablecido: 10
Características técnicas Tunning de políticas bugscout permite llevar a cabo procesos de tunning de las políticas asociadas al analizador estático. De este modo, es posible ampliar las reglas de detección de las diferentes vulnerabilidades, reducir la tasa de falsos positivos y personalizar las características de detección a medida del cliente. Esta flexibilidad en la ejecución permite que virtualmente pueda llegar a hacerse cualquier tipo de operación sobre el código. 11