Llegamos a ustedes gracias a:



Reportajes y análisis

¿Qué es la seguridad de las aplicaciones?

Un proceso y herramientas para asegurar el software.

[19/02/2019] La seguridad de las aplicaciones es el proceso de hacer que las aplicaciones sean más seguras al encontrar, corregir y mejorar su seguridad. Gran parte de esto sucede durante la fase de desarrollo, pero incluye herramientas y métodos para proteger las aplicaciones una vez que se implementan. Esto se está volviendo más importante a medida que, con cada vez más frecuencia, las aplicaciones son el objetivo de los ataques de los hackers.

La seguridad de las aplicaciones está recibiendo mucha atención. Existen cientos de herramientas disponibles para asegurar varios elementos de su cartera de aplicaciones, desde bloquear los cambios en la codificación hasta evaluar las amenazas de codificación involuntarias, evaluar las opciones de encriptación, así como los permisos de auditoría y los derechos de acceso. Existen herramientas especializadas para aplicaciones móviles, para aplicaciones basadas en la red y para firewalls diseñados especialmente para aplicaciones web.

¿Por qué la seguridad de la aplicación es importante?

Cuanto más rápido y menor el tiempo -en el proceso de desarrollo de software- en el que pueda encontrar y solucionar los problemas de seguridad, más segura estará su empresa.

Y, debido a que todos cometen errores, el desafío es encontrar esos errores de manera oportuna. Por ejemplo, un error de codificación común podría permitir entradas no verificadas. Este error puede convertirse en ataques de inyección SQL y luego en fugas de datos si un hacker los encuentra.

Las herramientas de seguridad de las aplicaciones que se integran en su ambiente de desarrollo de aplicaciones pueden hacer que este proceso y flujo de trabajo sean más simples y más efectivos. Estas herramientas también son útiles si está realizando auditorías de cumplimiento, ya que pueden ahorrar tiempo y gastos al detectar problemas antes de que los auditores los vean.

El rápido crecimiento en el segmento de seguridad de las aplicaciones se ha visto favorecido por la naturaleza cambiante de cómo se están construyendo las aplicaciones empresariales en los últimos años. Se acabaron los días en que un departamento de TI tardaba meses en refinar los requerimientos, crear prototipos, probarlos y producir un producto terminado para un área de usuario final. La idea casi parece extraña hoy en día.

En cambio, tenemos nuevos métodos de trabajo, llamados implementaciones e integraciones continuas, que refinan una aplicación diariamente, en algunos casos cada hora. Esto significa que las herramientas de seguridad tienen que funcionar en este mundo de cambios constantes y encontrar problemas con el código rápidamente.

Gartner, en su informe sobre el ciclo de relevancia de la seguridad de las aplicaciones -(actualizado en septiembre del 2018), afirmó que los gerentes de TI "deben ir más allá de identificar errores de seguridad en el desarrollo de aplicaciones y protección contra técnicas de ataque comunes. Ofrecen más de una docena de categorías diferentes de productos y describen en qué lugar de su "ciclo de relevancia se encuentran.

Muchas de estas categorías todavía están emergiendo y emplean productos relativamente nuevos. Esto muestra la rapidez con la que el mercado evoluciona a medida que las amenazas se vuelven más complejas, más difíciles de encontrar y más potentes en cuanto al daño potencial a sus redes, sus datos y su reputación corporativa.

Herramientas de seguridad de las aplicaciones

Si bien existen numerosas categorías de productos de software de seguridad de las aplicaciones, la cuestión principal tiene que ver con dos: herramientas de prueba de seguridad y productos de protección de aplicaciones. El primero es un mercado más maduro con docenas de proveedoras muy conocidas, algunos de ellas son leones de la industria del software, como IBM, CA y MicroFocus. Estas herramientas son lo suficientemente buenas como para que Gartner haya creado su Cuadrante Mágico y haya clasificado su importancia y éxito. Los sitios de revisión como IT Central Station también han podido encuestar y clasificar a estas proveedoras.

Gartner clasifica las herramientas de prueba de seguridad en varios grupos amplios, y son de alguna manera útiles para decidir qué necesita para proteger su cartera de aplicaciones:

  • Pruebas estáticas, que analizan el código en puntos fijos durante su desarrollo. Esto es útil para que los desarrolladores, con el fin de garantizar que se introduzcan problemas de seguridad durante el desarrollo, verifiquen su código mientras lo escriben.
  • Pruebas dinámicas, que analizan el código en ejecución. Esto es más útil, puesto que puede simular ataques en sistemas de producción y revelar patrones de ataque más complejos que utilizan una combinación de sistemas.
  • Pruebas interactivas, que combinan elementos de pruebas tanto estáticas como dinámicas.
  • Las pruebas móviles están diseñadas específicamente para los ambientes móviles y pueden examinar cómo un atacante puede aprovecharse del sistema operativo móvil y las aplicaciones que se ejecutan en su totalidad.

Otra forma de ver las herramientas de prueba es cómo se producen, ya sea a través de una herramienta local o a través de un servicio de suscripción basado en SaaS, donde envía su código para su análisis en línea. Algunos incluso hacen ambas cosas.

Debe considerar los lenguajes de programación soportados por cada proveedora de pruebas. Algunas limitan sus herramientas a solo uno o dos idiomas. (Java suele ser una apuesta segura). Otras están más involucradas en el universo Microsoft .Net. Lo mismo ocurre con los ambientes de desarrollo integrado (IDEs): algunas herramientas funcionan como complementos o extensiones de estos IDEs, por lo que probar su código es tan simple como hacer clic en un botón.

Otro problema es la posibilidad de que alguna herramienta esté aislada de los resultados de otras pruebas o pueda ser incorporada en su propio análisis. IBM es una de las pocas empresas que puede importar hallazgos de revisiones de códigos manuales, pruebas de penetración, evaluaciones de vulnerabilidad y pruebas de competidores. Esto puede ser útil, especialmente si tiene varias herramientas a las que necesita realizarle un seguimiento.

No olvidemos las herramientas de protección de las aplicaciones. El principal objetivo de estas herramientas es fortalecer la aplicación para que los ataques sean más difíciles de realizar. Este es un territorio menos trazado. Aquí encontrará una amplia colección de productos más pequeños y puntuales que, en muchos casos, tienen un historial y bases de clientes limitados. El objetivo de estos productos es hacer más que solo probar las vulnerabilidades y evitar activamente que sus aplicaciones se corrompan o se vean comprometidas. Abarcan algunas amplias categorías diferentes:

  • Autoprotección de la aplicación en el tiempo de ejecución (RASP, por sus siglas en inglés): estas herramientas podrían considerarse una combinación de prueba y blindaje. Proporcionan una medida de protección contra posibles ataques de ingeniería inversa. Las herramientas de RASP monitorean continuamente el comportamiento de la aplicación, lo cual es útil especialmente en ambientes móviles cuando las aplicaciones pueden reescribirse, ejecutarse en un teléfono rooteado o tener un abuso de privilegios para hacer que generen daños. Las herramientas RASP pueden enviar alertas, terminar procesos errantes o terminar la aplicación en sí misma si se encuentran comprometidas. RASP probablemente se convertirá en el valor predeterminado en muchos ambientes de desarrollo móvil y se integrará como parte de otras herramientas de protección de aplicaciones móviles. Espere ver más alianzas entre las proveedoras de software que tienen soluciones sólidas de RASP.
  • Ofuscación de código: los hackers a menudo utilizan métodos de ocultación para esconder su malware, y ahora existen herramientas que les permiten a los desarrolladores hacer esto para ayudar a proteger su código contra ataques.
  • Herramientas de encriptación y antimanipulación: Estos son otros métodos que se pueden usar para evitar que los malintencionados adquieran información sobre su código.
  • Herramientas de detección de amenazas: estas herramientas examinan el ambiente o la red donde se ejecutan sus aplicaciones y hacen una evaluación sobre amenazas potenciales y relaciones de confianza mal utilizadas. Algunas herramientas pueden proporcionar las "huellas digitales de los dispositivos para determinar si un teléfono móvil ha sido rooteado o se ha visto comprometido.

Desafíos de la seguridad de las aplicaciones

Parte del problema es que TI debe satisfacer a varios superiores diferentes para asegurar sus aplicaciones. Primero tienen que mantenerse al día con la evolución del mercado de herramientas de seguridad y de desarrollo de aplicaciones, pero ese es solo el punto de entrada.

TI también tiene que anticiparse a las necesidades del negocio a medida que más empresas se adentren en productos digitales y las necesidades de su cartera de aplicaciones evolucionen hacia una infraestructura más compleja. También tienen que entender cómo se construyen y aseguran los servicios SaaS. Esto ha sido un problema, ya que una encuesta reciente de 500 gerentes de TI ha encontrado que el nivel promedio del conocimiento de diseño de software ha sido insuficiente. El informe afirma que "los CIO pueden encontrarse bajo el escrutinio del liderazgo de alto nivel, ya que son responsables de reducir la complejidad, mantenerse dentro del presupuesto y de la rapidez con la que se modernizan para mantenerse al día con las demandas empresariales.

Finalmente, la responsabilidad de la seguridad de las aplicaciones se puede distribuir entre varios equipos diferentes dentro de sus operaciones de TI: el equipo de red podría responsabilizarse de ejecutar los firewalls de la aplicación web y otras herramientas centradas en la red, el equipo de desktop podría ser responsable de ejecutar las pruebas orientadas a terminales, y varios grupos de desarrollo podrían tener otras responsabilidades. Esto hace que sea difícil sugerir una herramienta que se ajuste a las necesidades de todos, lo que explica la extensa fragmentación del mercado.

Tendencias en la seguridad de las aplicaciones.

En enero del 2019, Imperva publicó su informe State of Web Application Vulnerabilities in 2018. Los resultados generales fueron positivos. Aunque el número de vulnerabilidades de las aplicaciones web continúa creciendo, ese crecimiento se está desacelerando.

Esto se debe principalmente a una disminución en las vulnerabilidades de IoT -solo 38 nuevas reportadas en el 2018 versus 112 en el 2017. Las vulnerabilidades de API, por otro lado, aumentaron 24% en el 2018, pero a menos de la mitad de la tasa de crecimiento del 56% en el 2017.

Según el informe de Imperva, otra área en la que surgen más vulnerabilidades es en los sistemas de gestión de contenido, WordPress en particular. Esa plataforma experimentó un aumento de 30% en el número de vulnerabilidades reportadas.

El informe señaló que, a pesar de ser mucho menos popular que WordPress, el sistema de administración de contenido de Drupal se está convirtiendo en un objetivo para los atacantes debido a dos vulnerabilidades: Drupalgeddon2 (CVE-2018-7600) y Drupalgeddon3 (CVE-2018-7602). Ambos permiten que los ataques se conecten a bases de datos del backend, escaneen e infecten redes y clientes con malware o minería de criptomonedas. Imperva afirma haber bloqueado más de medio millón de ataques que utilizan estas vulnerabilidades en el 2018.

Por el momento, los dos tipos más comunes de vulnerabilidades de las aplicaciones web fueron las inyecciones (19% del total) y las secuencias de comandos entre sitios (14% del total). La ejecución remota de comandos fue el tipo más común de vulnerabilidad de inyección, con un total de 1.980 reportadas. La inyección de SQL quedó en segundo lugar con 1.354.