Codificar secretos de la empresa en su código es un riesgo de seguridad grave y evitable.
Traducido de Cómo evitar que los secretos se introduzcan en el código , autor Robert Curlee.
La información confidencial suele aparecer en el código publicado, lo que expone a los propietarios a riesgos de seguridad. Esta información confidencial incluye contraseñas, claves API, claves de cifrado, tokens, credenciales de bases de datos y otra información privada de la empresa.
Codificar información confidencial en el código fuente es peligroso y, a pesar de los esfuerzos más concienzudos del desarrollador, la información confidencial aún puede filtrarse. Los desarrolladores pueden tomar atajos y pasar información confidencial al código al escribir el código, o es posible que no se den cuenta del impacto de la información confidencial en el código. Además, la mayoría de las soluciones de escaneo dejan en manos del desarrollador determinar por qué el código se marcó como un problema. Finalmente, la mayoría de las herramientas solo buscan secretos en el repositorio de código después de que se ha producido una filtración, lo que requiere una reparación dolorosa (es decir, rotación de secretos).
Debido a limitaciones de tiempo, gestionar, almacenar y proteger adecuadamente la información confidencial puede resultar complicado, malinterpretado o simplemente omitido. Además, si las empresas no saben cuándo y dónde ingresa información confidencial a un proyecto, no pueden evitar que se filtre a medida que se publica el proyecto y comprometa su seguridad.
Las credenciales y otra información confidencial que se filtra regularmente en el código aparecen en los titulares , y el número de exposiciones está aumentando debido a errores humanos . Las herramientas que capturan información confidencial en el IDE y en todo el proceso de CI/CD, antes de que tengan la posibilidad de causar problemas, son revolucionarias.
Descubra cómo la información confidencial llega al código
Ser capaz de detectar información confidencial antes de que se filtre en el código permite a las organizaciones reducir su exposición al riesgo. Al detectarlos en el IDE, se evita la molestia de rotar secretos para remediarlos. Pero primero, debe comprender cómo termina la información confidencial en su código. Hay varias razones:
1. Falta de conocimiento
Posiblemente debido a la falta de experiencia o capacitación inadecuada, es posible que algunos desarrolladores simplemente no comprendan la gestión adecuada de la información confidencial y la seguridad del código fuente. Solo hace falta un desarrollador que no conozca las mejores prácticas para manejar información confidencial en código para poner una empresa en manos de actores de amenazas. Si el conocimiento es poder, entonces la mejor línea de defensa es un equipo bien informado.
2. Por error
Un desarrollador podría codificar temporalmente credenciales o secretos para realizar pruebas locales rápidas con la intención de eliminarlos más adelante. Sin embargo, a veces estos archivos se envían accidentalmente al repositorio público, lo que hace que estos cambios temporales sean permanentes. Incluso si el código se elimina posteriormente, es posible que alguien haya copiado el código que contiene información confidencial antes de limpiarlo. Es humano cometer errores, pero cuando las consecuencias pueden ser enormes, es mejor prevenirlos de forma proactiva siempre que sea posible.
3. Confianza ciega
Resolver problemas usted mismo es una excelente manera de aprender y, a veces, los problemas son tan específicos que la única forma de resolverlos es hacerlo usted mismo. Si lleva mucho tiempo y no puede encontrar una solución, es mejor buscar ayuda en la documentación del producto y en sitios como Stack Overflow. Sin embargo, si bien estos materiales brindan explicaciones y ejemplos útiles, no deben copiarse y pegarse simplemente y tomarse al pie de la letra.
El código en Stack Overflow y la documentación pueden responder la pregunta, pero no es la forma más segura de implementar una solución. Por ejemplo, la documentación suele contener fragmentos de código para ilustrar las características del producto, pero es posible que no mencione si se debe utilizar con precaución y si existen opciones más seguras. ¿resultado? Mal código . Cualquier solución que introduzca en su base de código debe evaluarse adecuadamente para confirmar que cumple con los estándares de calidad y no causa problemas al código.
Otro problema de confianza que conduce a la filtración de información confidencial en el código es el mayor uso de código generado por IA . A medida que la IA generativa se vuelve más popular en el desarrollo de código, verá un aumento en la cantidad de líneas de código que necesita escanear y la cantidad de problemas de información confidencial. El código generado por IA podría hacerle pensar que la forma correcta de conectarse al servicio es codificar un token o un secreto. Dependiendo de la calidad de las pistas y del conocimiento del problema, es posible que la IA no genere un código limpio y provoque una filtración de información confidencial. El código generado por IA puede servir como base para comprender cómo conectarse al servicio, pero debe modificarlo para utilizar la Bóveda de información confidencial.
En última instancia, debes desafiar cualquier código que encuentres o generes usando IA. Las organizaciones deben asegurarse de que sus equipos de desarrolladores cuenten con las herramientas de calidad de código adecuadas para evitar que información confidencial se filtre en el código y abordar cualquier fuga en la etapa más temprana posible del desarrollo del código.
Capture información confidencial desde el principio
Cuando la información públicamente confidencial se marca en el momento de su introducción, ya sea en tiempo real durante la codificación o justo antes de una confirmación, puede ahorrarle al equipo muchos dolores de cabeza. Los errores humanos ocurren, pero al realizar las comprobaciones adecuadas en el momento adecuado, se pueden prevenir las consecuencias de los errores desde el principio.
El mejor lugar para detectar y resolver estos problemas en el flujo de trabajo de desarrollo es al principio, en el IDE. Las capacidades de detección de información confidencial en SonarLint, SonarQube y SonarCloud permiten a las organizaciones detectar información confidencial disponible públicamente en el código fuente, eliminar su exposición y reducir el riesgo de seguridad del acceso ilegal o no autorizado a datos privados. Los desarrolladores que utilizan SonarQube Enterprise Edition 10.3 y posteriores también pueden crear reglas de detección de patrones secretos personalizadas . Combinarlos con los métodos Clean as You Code (CaYC) y Learn as You Code respalda la entrega de código limpio , código que produce software mantenible, confiable y seguro.
Al eliminar la información confidencial del código en el IDE desde el comienzo del desarrollo, los equipos pueden evitar que la información confidencial ingrese a sus repositorios. La detección y eliminación de información confidencial en las primeras etapas del desarrollo del proyecto reduce la compleja y costosa reparación necesaria cuando se descubre información confidencial expuesta más adelante en el ciclo de lanzamiento.
Decidí renunciar al software industrial de código abierto. Eventos importantes: se lanzó OGG 1.0, Huawei contribuyó con todo el código fuente y se lanzó oficialmente Ubuntu 24.04. El equipo de la Fundación Google Python fue despedido por la "montaña de código de mierda" . ". Se lanzó oficialmente Fedora Linux 40. Una conocida compañía de juegos lanzó Nuevas regulaciones: los obsequios de boda de los empleados no deben exceder los 100.000 yuanes. China Unicom lanza la primera versión china Llama3 8B del mundo del modelo de código abierto. Pinduoduo es sentenciado a compensar 5 millones de yuanes por competencia desleal. Método de entrada en la nube nacional: solo Huawei no tiene problemas de seguridad para cargar datos en la nube.Este artículo se publicó por primera vez en Yunyunzhongsheng ( https://yylives.cc/ ), todos son bienvenidos a visitarlo.