Vladimir Villa, CEO de Fluid Attacks
La revisión de la seguridad del código fuente de las aplicaciones es un paso primordial cuando se busca garantizar la tranquilidad y el bienestar de la compañía y sus clientes o usuarios.
Según la guía de revisión de código del OWASP, si el código de una aplicación no ha sido revisado en busca de fallas de seguridad, la probabilidad de que esta tenga problemas es prácticamente del 100%.
Una organización que no somete a evaluación el código fuente que desarrolla y usa está siendo irresponsable con sus recursos y los de sus clientes o usuarios. Los problemas de seguridad en el código de una aplicación pueden ser explotados por los ciberdelincuentes para generar fugas de datos, interrupciones de operaciones o robos de recursos monetarios en la compañía comprometida. La revisión de la seguridad del código desde el comienzo de su ciclo de vida de desarrollo es una de las mejores opciones para prevenir dichos incidentes”.
¿Por qué se presentan estos problemas en las aplicaciones?
Son muchos los errores, sea por descuido o ignorancia, que los desarrolladores de software pueden cometer en su trabajo. Algunos de estos errores pueden traer consigo fallas en la funcionalidad de las aplicaciones, pero otros pueden afectar directamente su seguridad. Por ejemplo, existen los problemas de validación de la información que entra a la aplicación. Esta debería ser programada para aceptar solo los inputs que cumplan con características específicas, como tipo, rango y longitud. Cuando la aplicación no logra dicha validación, un atacante puede introducir caracteres que funcionen como comandos y que alteren su comportamiento o funcionalidad.
Otro ejemplo es que los desarrolladores no hayan elaborado algoritmos que restrinjan apropiadamente el acceso a los recursos, sobre todo a los que pueden considerarse confidenciales. La aplicación debería trabajar bajo un principio de mínimo privilegio, donde los usuarios pueden acceder solo a los recursos necesarios para cumplir con sus tareas específicas. También puede haber inconvenientes, por ejemplo, en la encriptación de datos, en los controles de sesiones, en los reportes de errores, en la presencia de información sensible dentro del mismo código, en las actualizaciones de componentes de terceros, etc.
¿Cómo evitar estos inconvenientes de seguridad en las aplicaciones?
Aquí es donde entra en acción la revisión de la seguridad del código fuente. Se trata de un proceso sistemático de identificación, clasificación y reporte de vulnerabilidades de seguridad. Esta evaluación puede ser llevada a cabo tanto por humanos como por herramientas automatizadas o escáneres, pero siempre es preferible tener un complemento de escaneo y pruebas de penetración manuales. Dichas herramientas suelen trabajar de acuerdo con bases de datos de vulnerabilidades conocidas. La intervención humana se hace necesaria para la identificación de vulnerabilidades más complejas —a menudo de mayor severidad— y previamente desconocidas.
Luego de que las herramientas y expertos reporten vulnerabilidades dentro del código, dando de cada una detalles como categoría, ubicación, severidad, y recomendaciones de reparación, la compañía propietaria de la aplicación evaluada debe empeñarse en remediar dichos problemas de seguridad. Estas remediaciones permiten mitigar la exposición al riesgo de sufrir daños por medio de ciberataques.
Para detectar, describir y reportar vulnerabilidades de seguridad existen herramientas automatizadas de análisis de código fuente y aplicaciones. Tanto las pruebas por parte de expertos como por parte de herramientas automatizadas deberían ser procesos continuos dentro de un ciclo de manejo de vulnerabilidades o exposición al riesgo.