Conocer la seguridad de aplicaciones
Objetivos de aprendizaje
Después de completar esta unidad, podrá:
- Describir lo que es una aplicación.
- Definir la seguridad de aplicaciones y su función en relación con el desarrollo de aplicaciones.
¿Qué es una aplicación?
Si alguna vez usó una computadora, utilizó una aplicación. Según su definición, una aplicación es un paquete de software de computadora que ejecuta una o varias tareas y permite la interacción directa de los usuarios. Ahora veamos algunos ejemplos de aplicaciones y la forma de usarlas para comprender el verdadero significado de esto.
Las aplicaciones adoptan muchas formas como programas de bases de datos, navegadores web, clientes de email, hojas de cálculo, reproductores de medios, procesadores de texto y software de edición de fotos/imágenes, entre otras. En cada uno de estos paquetes de software, el usuario puede interactuar directamente con la aplicación. Por ejemplo, cuando se utiliza un software de procesamiento de texto, se interactúa directamente con la aplicación al escribir, eliminar o copiar y pegar texto. Es posible interactuar con las aplicaciones de diferentes maneras, ya sea con un paquete de software de edición de fotos como Photoshop desde una computadora, una aplicación móvil desde un smartphone o una aplicación bancaria desde la Web para realizar transacciones comerciales. Eso es bastante directo, ¿verdad?
Los desarrolladores pueden crear aplicaciones de dos maneras. Pueden desarrollar un código de propiedad que no se comparta fuera de la organización o desarrollar un código a través de proyectos de código abierto, los cuales se diseñan y se desarrollan mediante el trabajo conjunto de los desarrolladores en un ámbito público de colaboración.
Las aplicaciones de código abierto otorgan a los desarrolladores el derecho de utilizar, estudiar y modificar el software, con lo que es posible adaptarlas y aplicarlas a diversos casos de uso. Existe una comunidad completa dedicada al desarrollo de proyectos de código abierto. Si espera ser un ingeniero de seguridad de aplicaciones algún día, la colaboración en proyectos de código abierto es una excelente manera de obtener experiencia práctica en el desarrollo de aplicaciones y la seguridad, así como de perfeccionar y probar sus habilidades. Como resultado, conocerá el proceso de desarrollo y el funcionamiento de las aplicaciones, y comenzará a comprender la función de la seguridad de aplicaciones en el ciclo de vida de codificación y desarrollo de software.
La función de la seguridad de aplicaciones
En la pila tecnológica de una organización, la capa de aplicaciones es la más cercana al usuario. Es la que permite la interacción con el usuario y, por consiguiente, ofrece la mayor superficie de ataque para los intrusos. Debido a esto, las vulnerabilidades de las aplicaciones generan un gran número de infracciones de seguridad.
Las aplicaciones también presentan un tesoro oculto de datos personales que los atacantes adoran robar, falsificar o destruir, entre los que se incluyen información de identificación personal (PII), como nombres, datos de identificación nacional (por ej., números de seguridad social) y direcciones de email. Esto significa que la protección de las aplicaciones es una pieza clave de la ciberseguridad con la que es posible minimizar los riesgos de pérdida de datos y los efectos negativos resultantes sobre las finanzas, la reputación, la privacidad y los aspectos legales de una organización y sus clientes.
Los ingenieros de seguridad de aplicaciones deben pensar como atacantes para comprender las posibles formas de uso indebido de una aplicación, así como garantizar que la aplicación corrija, valide y procese de forma segura los datos que introducen los usuarios legítimos.
Los ingenieros de seguridad de aplicaciones se enfocan en proteger las aplicaciones para evitar que los atacantes obtengan acceso a datos confidenciales. Como la detección de deficiencias de seguridad es mucho más sencilla y menos costosa en las primeras etapas de desarrollo de software, los ingenieros de seguridad de aplicaciones deben reunir los requisitos de seguridad antes de que se inicien los trabajos de diseño o desarrollo.
Los ingenieros de seguridad de aplicaciones trabajan con los equipos de desarrollo y las unidades de negocio para diseñar, crear, documentar, codificar, probar, implementar y mantener aplicaciones seguras. El proceso de diseño y creación de aplicaciones se conoce como el ciclo de vida de desarrollo de software (SDLC). Los desarrolladores de aplicaciones son los responsables de documentar y programar (codificar) los pasos de este proceso. Son los que escriben el código por el que una aplicación lleva a cabo las tareas esperadas. Los ingenieros de seguridad de aplicaciones se asocian con los desarrolladores de aplicaciones y otros miembros durante el SDLC para proteger las aplicaciones mediante el diagnóstico, la documentación y la corrección de las vulnerabilidades de seguridad de las aplicaciones.
Generalmente, el principal objetivo de un desarrollador de aplicaciones en una organización es producir códigos de funcionamiento en el menor tiempo posible para satisfacer los requisitos de negocio. Como resultado, la seguridad de los códigos que se escriben suele ser una consideración posterior. Aquí es donde los ingenieros de seguridad de aplicaciones pueden ser sumamente útiles. Su aporte de seguridad al proceso de desarrollo garantiza que los datos confidenciales permanezcan protegidos. A tal efecto, su objetivo es asegurar que una aplicación brinde lo que comúnmente se conoce como CIA por sus siglas en inglés: confidencialidad, integridad y disponibilidad.
Por ejemplo, los ingenieros de seguridad de aplicaciones ayudan a los desarrolladores a diseñar e implementar la aplicación de modo que se requiera una autenticación apropiada (para proteger la confidencialidad de los datos), la información confidencial se transfiera de forma segura para evitar su modificación (su integridad) y se garantice el acceso de los usuarios a sus datos (su disponibilidad).
A menudo, los ingenieros de seguridad de aplicaciones son integrados a los equipos de desarrollo de aplicaciones y actúan como asesores para los diseñadores y desarrolladores. Se aseguran de que los requisitos de la aplicación abarquen consideraciones de seguridad, sugieren protocolos de autenticación segura durante la fase de diseño, implementan revisiones de código para comprobar las vulnerabilidades de seguridad comunes, prueban las aplicaciones antes de su implementación, y brindan asesoramiento sobre los plazos y los métodos de aplicar parches a las vulnerabilidades.
En esta unidad, aprendió qué es una aplicación, y cómo las funciones de desarrollo y seguridad trabajan juntas en la práctica. En la próxima unidad, conocerá el impacto de la seguridad de aplicaciones sobre el negocio, las habilidades que necesitan los ingenieros de seguridad de aplicaciones y las situaciones comunes de seguridad de aplicaciones.