La presión de las organizaciones por ir cada vez más rápido en sus procesos, aumentar sus niveles de productividad y crecer en sus mercados objetivos, puede llevar a que sus productos se vean seriamente comprometidos. Pero, ¿es posible acelerar el desarrollo de tecnología, sin comprometer la seguridad en el proceso?
Para Vladimir Villa, CEO de Fluid Attacks, una compañía dedicada a realizar pruebas de seguridad al software de empresas, las preguntas que debemos hacernos cuando construimos tecnología son: si avanzamos en la dirección correcta, si la velocidad la estamos aplicando en los lugares indicados, y qué tipo de riesgos corremos. “En este sentido, la seguridad debe ser parte de todo el ciclo de desarrollo, para así tener un enfoque preventivo y proactivo. Debemos identificar muy bien cómo podemos acelerar el trabajo sin dejar brechas de seguridad abiertas”.
De acuerdo con el directivo, hoy en día sabemos que hay que ir a la velocidad que demande cada negocio, pero sin olvidar la precisión en términos de seguridad. Esto sólo se consigue con una combinación de automatización efectiva e inteligencia humana, que resulta fundamental para detectar todas las vulnerabilidades en los sistemas evaluados y reducir el número de falsos positivos y negativos. “Así pues, siempre es recomendable que el factor humano esté presente dentro de cada ciclo de vida de desarrollo de un software”, sugiere Villa.
Esta compañía compartió cinco claves sobre cómo agilizar los procesos de desarrollo sin dejar de lado la seguridad, mediante de pruebas integrales a los repositorios y ambientes pares de los sistemas:
- Ataque determinístico: Se trata de una fase donde de forma automática se buscan solamente las vulnerabilidades sobre las cuales no existe duda alguna de que efectivamente son vulnerabilidades.
- ‘Triage’ al código: En este punto se trabaja para acrecentar la velocidad del factor humano mediante una herramienta basada en Machine Learning que permite a hackers éticos priorizar su búsqueda dentro del código y determinar las partes donde hay mayores probabilidades de que existan vulnerabilidades.
- Equipo de ataque: En esta etapa ingresa el equipo de hackers expertos que tienen el conocimiento para atacar el software de manera dinámica y estática. Ellos toman lo reportado por la herramienta de Machine Learning y recorren todo el código con base en la priorización (triage). Es aquí donde logran combinarse la tecnología y el talento humano.
- Equipo de fugas: Ya en este punto se realiza un ataque transversal por parte de un equipo independiente al que encontró las vulnerabilidades en los pasos anteriores. Con esto se pretende validar que no haya falsos negativos y reducir al máximo esa falsa sensación de seguridad que tienen las empresas.
- Equipo de Re-ataque: Finalmente, se llevan a cabo re-ataques sobre la tecnología, para verificar el cierre de las vulnerabilidades encontradas; y es que el objetivo no es sólo hallar las vulnerabilidades, sino que además logren ser cerradas. Todo esto antes de que el ciclo llegue a producción, para que así el software verdaderamente sea seguro.
La automatización es una de las maneras de acelerar los procesos de construcción de software, pero en términos de seguridad, las herramientas de búsqueda automática de vulnerabilidades tienen dos grandes retos: (1) los falsos positivos, que son aquellos reportes que cuando se revisan no corresponden a verdaderas vulnerabilidades (alrededor del 50% de las detectadas por las herramientas no son reales), y (2) los falsos negativos, que son básicamente las que se fugan o se omiten en los procesos de detección (representan para las herramientas cerca del 80% de las vulnerabilidades). Estas últimas son las más complejas y las que realmente pueden afectar al negocio, ya que no se conocen y, por ende, no se puede actuar para mitigar el riesgo que suponen.
“Nuestra metodología conduce a la detección de todas las vulnerabilidades a una gran velocidad, sin falsos positivos y sin falsos negativos. Se trata de una cadena de producción de hacking realizada de manera integral sobre las aplicaciones, que inicia desde el repositorio de código del ambiente, de manera estática, y que pasa luego a un análisis de manera dinámica e interactiva. Automatizamos lo determinístico, usamos Machine Learning, y con el conocimiento de expertos logramos atacar el software y determinar dónde están las vulnerabilidades y cuáles son las más críticas y de mayor impacto para el negocio”, concluye el directivo de Fluid Attacks.