Ciberseguridad en las aplicaciones

  • Opinión

Francisco Calvo, atSistemas

Francisco Calvo, director de Desarrollo de Negocio de atSistemas asegura en esta tribuna de opinión que debemos redoblar nuestros esfuerzos en ciberseguridad, concienciarnos, aprender qué prácticas son peligrosas, qué mecanismos son más vulnerables e impulsar su sustitución por otros más seguros.

El 23 de julio de 2020 el presidente del gobierno ha presentado la nueva agenda digital, denominada España Digital 2025, con la que persigue “impulsar el proceso de transformación digital del país, de forma alineada con la estrategia digital de la Unión Europea, mediante la colaboración público-privada y con la participación de todos los agentes económicos y sociales”.

Dentro de esta agenda se incluyen 50 medidas, agrupadas en 10 ejes estratégicos de actuación: conectividad digital, redes 5G, capacitación digital, capacidad en ciberseguridad, digitalización de las AAPP, digitalización de las empresas, digitalización del modelo productivo, atractivo de España, economía del dato y garantía de derechos.

En el eje de ciberseguridad “se busca disponer de 20.000 especialistas en ciberseguridad, Inteligencia Artificial y datos en 2025”, y se despliega a través de:

- Líneas de ayuda, potenciando el servicio público de ciberseguridad que ofrece el Instituto Nacional de Ciberseguridad (www.INCIBE.es).

- Fortalecimiento de la ciberseguridad de ciudadanos, pymes y profesionales, con foco en el desarrollo del eCommerce y la implantación de la Directiva de pagos digitales (PSD2):

- Sensibilización y formación de los ciudadanos.

- Generación, identificación y desarrollo del talento en ciberseguridad.

- Líneas de ayuda a empresas y profesionales.

- Impulso del ecosistema empresarial del sector de la ciberseguridad.

- Impulso de España como nodo internacional en el ámbito de la ciberseguridad.

- Despliegue y operación del centro de operaciones de ciberseguridad del INCIBE.

Por otro lado, hace un mes la Asociación Española de Consultoría publicó su informe anual del sector con los resultados del 2019. En el preámbulo, la presidenta Elena Salgado resalta que “Las tecnologías que lideran el cambio de las organizaciones son el big data & analytics, el cloud computing, la ciberseguridad, y la automatización y robotización”.

La ciberseguridad ya es tercer ámbito tecnológico que más ingresos aporta al sector de la consultoría con una previsión de crecimiento importante en los próximos años, aspecto este del crecimiento en el que destaca principalmente la Inteligencia Artificial (IA) que encontrará precisamente en la ciberseguridad uno de sus principales “clientes”.

Pero, ¿qué es eso de la ciberseguridad? ¿Por qué parece tan importante y se apunta a que va a seguir ganando relevancia en el futuro? Ciberseguridad se ha convertido en el término que agrupa todos los conceptos asociados a la protección de la información y las tecnologías de la información y comunicaciones que la soportan. Su relevancia, por tanto, crece con el aumento en el uso de las TIC: con casi 4,3 billones de usuarios en internet en la última estadística, con la llegada de millones de dispositivos inteligentes (IoT) que se unen a los dispositivos de usuario, y con el crecimiento del volumen de información que cada uno de nosotros maneja.

Las cifras que se manejan en el mercado de los fabricantes de productos de seguridad son que entre el 15% y el 20% del valor creado por la economía digital se pierde por el cibercrimen, estando por encima de los 500 mil millones de euros en el mundo, y con un impacto estimado en la Unión Europea de 150.000 empleos perdidos. Curiosamente, sigue faltando sensibilización entre el público en general. Según el análisis del Dr. Sandman la percepción del riesgo (outrage) frente al riesgo real (hazard) no suele estar alineado: existen factores como el terrorismo o los accidentes de avión que tienen una percepción muy alta, cuando el riesgo real es bajo, mientras que en otros que tienen un riesgo alto como el cáncer o los accidentes de coche, la percepción es baja. En este caso, el cibercrimen se encuentra en la segunda categoría, aunque existe una percepción media, el riesgo real es alto y está en continuo crecimiento.

Los modelos de ciberseguridad se suelen representar como una cebolla, por capas, en el centro el dato a proteger, la información, y por encima las aplicaciones que los manejan, siguen los equipos donde se ejecutan, las comunicaciones que los habilitan, las infraestructuras físicas que los soportan, para llegar a las personas que los usan con su concienciación y las políticas y reglas que deben cumplir.

En todas las capas hay activos que proteger siendo el principal la información en el centro de la cebolla. En cada capa encontramos vulnerabilidades (puntos débiles que se pueden atacar) y hay amenazas que defender y para evitar que pasen a la capa interior siguiente. En la intersección de los tres: un activo con vulnerabilidad que es atacado, es donde aparecen los riesgos. Para contrarrestar o minimizar esos riesgos necesitamos definir mecanismos y procedimientos de defensa, en cada nivel.

Lástima que no podamos levantar murallas infranqueables en cada capa. Necesitamos puertas para que los usuarios u otros sistemas lleguen a la información que necesitan, y debemos entregar llaves a los usuarios, a equipos y dispositivos, a los accesos de la red, y a las aplicaciones, o más bien, a sus componentes (llamadas, transacciones, servicios, microservicios o API’s – Application Program Interface). El riesgo cero no existe y la seguridad perfecta tampoco, por eso debemos analizar los riesgos e implantar los mecanismos y procedimientos según el valor que protegemos y los recursos que podemos dedicarle. Debemos detectar y gestionar los ataques y responder con rapidez cuando el daño está hecho, para garantizar la continuidad del negocio, y fortalecer la resiliencia de nuestra presencia digital.

Con el tiempo, las tecnologías de seguridad han ido cubriendo las capas de fuera hacia adentro, trabajando en las infraestructuras, las comunicaciones y los equipos, en el perímetro de defensa. Sin embargo, en un estudio de SAP reciente se destaca que el 84% de los ataques que se producen llegan a la capa de aplicación. A pesar de esto, la inversión sigue yendo principalmente a la capa de comunicaciones y no a la protección de las aplicaciones.

La creación de aplicaciones ha evolucionado mucho, desde los grandes monolitos que funcionaban en un gran ordenador y pantallas de acceso, a las actuales aplicaciones creadas a partir de componentes que se ejecutan en distintos equipos y dispositivos, se conectan por diferentes redes y protocolos y finalmente terminan entregando información en algún canal interactivo (web, móvil, …) o a otro sistema (interfaces de servicios y API’s). La seguridad en las aplicaciones podríamos decir que es la próxima frontera; desde el inicio del proceso, en el diseño de la arquitectura ya se han de contemplar los criterios de seguridad.

Existen decenas de lenguajes de programación y tantas formas de codificar como programadores, así que se utilizan herramientas (IDE) y “frameworks” de base que proveen los servicios básicos y guían la forma de trabajar, junto con las políticas y buenas prácticas de referencia. Más del 90% de las nuevas aplicaciones que se crean utilizan componentes de código abierto (Forrester, 2017), y muchas aplicaciones no alcanzan ni el 20% de código nuevo. Para construir este tipo de aplicaciones es más eficiente utilizar formas ágiles de desarrollo, y es conveniente contemplar un ciclo de vida completo del software (SDLC) desde su planificación y codificación hasta su operación y monitorización, conocido como DevOps ya que integra los ámbitos antaño independientes del Desarrollo (Dev), y las Operaciones (Ops), minimizando el paso entre uno y otro dentro de un “tren” (pipe, tubería en inglés) continuo de integración de todos los componentes y despliegue, en cuanto van estando disponibles (conocido como CD/CI).

DevOps contempla las mejores prácticas y herramientas para conseguir que todo el proceso ocurra sin fisuras, de forma automatizada, y controlando la calidad y seguridad de todo lo que se va construyendo, entregando y poniendo en producción, donde se mantiene en monitorización. Cada error, problema, incidencia o punto de mejora que se detecta es trazado al origen e integrado de nuevo en el “tren”. Para mejorar la seguridad en la construcción de las aplicaciones es imprescindible incorporar esos procesos de seguridad en el “tren”, enfoque que se ha denominado DevSecOps, aunque los puristas prefieren no añadir el Sec de seguridad al término.

Para controlar la seguridad de las aplicaciones existen una serie de herramientas que se recomienda incorporar al proceso DevOps y se puede hacer tanto en local, como SaaS (Software as a Service), servicios de escaneo de aplicaciones desde un portal en la nube:

- Análisis estáticos (sobre el código fuente y los binarios): SAST (Static Application Security Testing) que permiten analizar la codificación desde la herramienta en la que se está y para la gran mayoría de los lenguajes. Además de problemas de seguridad detectan problemas de calidad y de cumplimiento de políticas. La bondad de la herramienta no está sólo en que identifique los errores como sino en que no alerte de muchos falsos positivos que dan trabajo innecesario para eliminarlos; SCA (Software Component Analysis) que permiten registrar y analizar los componentes de software libre que estamos utilizando en nuestra aplicación, las vulnerabilidades que se van identificando día a día, la falta de actualización y parcheo para eliminarlas y, en definitiva, vigilan el código que introducimos en nuestras aplicaciones que no hemos escrito nosotros.

- Análisis dinámicos, sobre los componentes en funcionamiento, que entran en funcionamiento cuando ya están construidos y llegan hasta el final del proceso en operación, sin necesidad de acceder al código: DAST (Dynamic Application Security Testing) permiten probar dinámicamente, o sea, en funcionamiento, los componentes que responden a entradas de datos de usuarios y de sistemas (API’s); IAST (Interactive Application Security Testing) permiten atacar los interfaces interactivos en canales web o móvil desde el exterior, añadiendo a las DAST instrumentación que mejora la simulación de las interacciones de usuario; Pen-Testing, utilizando tecnologías tipo “fuzzing “de lógica difusa y tests manuales, atacan los protocolos más habituales, cambiando los tipos de datos y inyectando datos donde no se esperan, … consiguiendo detectar vulnerabilidades fuera de la lógica previsible que se utiliza en el resto de las herramientas.

Cuanto antes se detecte la vulnerabilidad en la aplicación menor es el tiempo y el coste necesario para corregirlo y, por tanto, menor es el riesgo. Automatizar el proceso de pruebas de seguridad incorporando las herramientas o servicios anteriores dentro de los procesos DevOps se está convirtiendo en el foco de los esfuerzos en ciberseguridad en la actualidad.

En el mundo que vivimos cada vez más abierto (Open Economy) y más digital (expuesto en la red y en los múltiples usuarios y dispositivos conectados) en nuestros negocios y en nuestra vida diaria, debemos redoblar nuestros esfuerzos en ciberseguridad, concienciarnos, aprender qué prácticas son peligrosas, qué mecanismos son más vulnerables e impulsar su sustitución por otros más seguros.

Ya no es una cuestión de si me van a atacar o me voy a librar, eso sólo es cuestión de tiempo, es una cuestión de si aguantaré el ataque lo suficiente como para que mis defensas lo identifiquen y contrarresten, y en caso contrario, si seré capaz de volver a la normalidad rápidamente y con el menor daño. Eso marcará nuestra capacidad de resiliencia en el futuro.

 

Francisco Calvo, director de Desarrollo de Negocio, atSistemas