5 consejos para crear aplicaciones seguras, sin necesidad de experiencia
27 de diciembre de 2022
0 minutos de lecturaLa mayoría de los desarrolladores no son expertos en seguridad. No es porque no nos importe la seguridad; simplemente, el día tiene un número limitado de horas y las funcionalidades son prioridad. Por suerte, los desarrolladores no necesitan ser expertos en seguridad para crear aplicaciones seguras: solo necesitan las herramientas adecuadas.
En este artículo, quiero presentarte las herramientas de seguridad para desarrolladores de Snyk que te ayudarán a mejorar tus habilidades para encontrar y corregir vulnerabilidades de seguridad en el código que escribes y las dependencias que usas. Observa que dije seguridad para desarrolladores, porque Snyk es una herramienta de seguridad creada específicamente para desarrolladores. Bien, comencemos…
1. Encuentra y corrige código inseguro directamente desde tu IDE
A pesar de lo que hayas experimentado antes, el análisis estático para la seguridad de las aplicaciones puede ser rápido, útil y estar disponible directamente desde tu IDE. Para nosotros, es lógico que los desarrolladores —que pasan la mayor parte del tiempo escribiendo y leyendo código en sus IDE— también reciban información sobre las vulnerabilidades de su código mientras lo escriben.
Al obtener resultados del análisis estático y recomendaciones prácticas para corregir los problemas mientras escribes código, ahorras tiempo valioso. Ya no tienes que volver más tarde al código para refactorizarlo y aplicar medidas y controles de seguridad que resuelvan un problema. Es el tipo de cambio de contexto que los desarrolladores preferimos evitar por completo.
La siguiente captura de pantalla muestra la extensión de Snyk en acción en el IDE VS Code, donde encuentra vulnerabilidades en el código y en componentes de código abierto:

Primero, se enfoca en la línea de código que introduce la vulnerabilidad y muestra información detallada en el panel derecho. En este caso, encontró una vulnerabilidad de recorrido de rutas en el código, en una ruta de código que atraviesa el programa (detectada mediante análisis estático de código). Por último, debajo muestra una de tres correcciones de código sugeridas, basadas en la forma en que se han corregido vulnerabilidades similares en proyectos de código abierto.
2. Agrega integraciones de seguridad para pre-commit y CI mediante la CLI
Quizás ya usas ESLint o GitHub Actions con algunas pruebas antes de enviar pull requests. ¡Excelente! Usa la CLI de Snyk (npm install -g snyk) para encontrar problemas de código de alta gravedad antes de confirmar los cambios y en tu flujo de trabajo de CI antes de una fusión.
Esta captura de pantalla muestra los resultados de un análisis de Snyk en una terminal. Se ejecutó la prueba de código de la CLI de Snyk con opciones de línea de comandos para filtrar solo los problemas de código de alta gravedad:

La CLI de Snyk realizó un análisis estático del código mediante snyk code test y encontró 5 vulnerabilidades. Tres estaban relacionadas con inyecciones NoSQL (una variante de la inyección SQL) y 2 eran secretos codificados de forma rígida en el código de la aplicación. Si te preguntas cuánto tardó, el análisis estático de seguridad del código se ejecutó en menos de un minuto. Ni siquiera alcanza para ir por un café.
INFO: Cuando el análisis estático de código se aplica específicamente a la seguridad, se llama pruebas estáticas de seguridad de aplicaciones o SAST.
3. Protege fácilmente las dependencias de tu aplicación
Cuantas más dependencias agregas, mayor es el riesgo de seguridad de la aplicación. Esto se debe a que hay más líneas de código y más software (bibliotecas, paquetes, etc.), lo que aumenta la posibilidad de que haya vulnerabilidades o configuraciones inseguras que pongan en riesgo la aplicación.
Como desarrollador, básicamente intercambias tiempo de desarrollo por riesgos de seguridad y mantenimiento cuando usas una biblioteca de terceros existente (y su licencia). La mayoría estamos dispuestos a aceptar esta compensación, así que es importante usar herramientas que nos ayuden a mantener la seguridad al utilizar dependencias de terceros.
Para ayudarte a mantenerte seguro, la extensión de Snyk para VS Code anotará el archivo package.json (un archivo de metadatos de paquetes que se usa en proyectos de JavaScript), así como las instrucciones require o import, para mostrarte el costo en vulnerabilidades de las dependencias npm de terceros que usas en tu aplicación.
Esta es otra captura de pantalla del IDE VS Code, ahora centrada en un archivo de manifiesto package.json que se encuentra en proyectos de JavaScript:

El administrador de paquetes npm gestiona este archivo de manifiesto de dependencias para proyectos de JavaScript. La extensión de Snyk para VS Code anotó las líneas de código en el IDE para mostrar que las dependencias importadas de terceros y de código abierto tienen vulnerabilidades que deben corregirse.
4. Evita usar código vulnerable de StackOverflow (o sitios similares)
Usa el verificador de código en línea de Snyk para pegar fragmentos de código y analizarlos en busca de código inseguro antes de usarlos en tu propia aplicación. Esta herramienta gratuita actualmente funciona con Python, JavaScript, Go, Java, PHP y más.
En el siguiente video, puedes ver cómo una pregunta popular de StackOverflow ofrece código útil para crear servidores HTTP estáticos básicos en Node.js. Pero ¿cómo sabes si este código es lo suficientemente seguro como para copiarlo, pegarlo y ejecutarlo?

Si pegamos ese mismo fragmento de código para servidores de archivos estáticos en el verificador de código de Snyk y lo analizamos en busca de problemas de seguridad en código JavaScript, encontramos 2 problemas, uno de ellos es una vulnerabilidad de recorrido de rutas de alta gravedad.
5. Nunca dejes de aprender
Para los desarrolladores, mantenerse al día con el rápido ritmo de la innovación tecnológica es un esfuerzo diario, pero vale la pena. Del mismo modo, es importante mantener afiladas tus habilidades para escribir código seguro. Visita Snyk Learn y toma una lección interactiva sobre seguridad de aplicaciones:

Snyk Learn es un recurso educativo gratuito en línea que permite a los desarrolladores adquirir habilidades y capacitación en seguridad de aplicaciones mediante lecciones prácticas, interactivas y breves. Incluye lecciones sobre todos los riesgos del OWASP Top 10 y lecciones específicas de seguridad, como inyección de código, redirección abierta, contaminación de prototipos y más. También ofrece guías específicas para lenguajes de programación y ecosistemas como Java, Python, JavaScript, Go, PHP y más.
Te recomiendo instalar la extensión de Snyk para VS Code y dedicar tiempo a ponerte al día con temas de seguridad en Snyk Learn.
Mejora tus habilidades de programación segura
Capacitación gratuita y de alta calidad en seguridad para desarrolladores, cuando y donde quieras.
