Cinco sencillos pasos para mantenerse en la lista de verificación de seguridad de DevOps de su organización
El descubrimiento de un importante exploit basado en contenedores (runc) provocó escalofríos en Internet. explotación de CVE-2019-5736 se puede lograr con una «interacción mínima del usuario»; posteriormente, permite a los atacantes obtener la ejecución de código de nivel raíz en el host.
Aterrador, para estar seguro. Sin embargo, lo más aterrador es que la interacción mínima del usuario se hizo más fácil al no seguir una regla única y simple: cerrar la puerta con llave. Los estudios han demostrado un número cada vez mayor de entornos en contenedores de acceso público que no requieren credenciales. Eso significa que cualquiera, tal vez usted, tal vez yo, podría obtener el control e implementar el contenedor malicioso apropiado requerido para obtener acceso a nivel de raíz.
Sabemos que la velocidad (de entrega e implementación) es fundamental para el éxito en la economía digital y que, a menudo, representa eludir las barreras de seguridad en el camino al mercado. Pero sacrificar la seguridad por la velocidad puede convertir fácilmente ese éxito en un desastre.
Afortunadamente, hay una variedad de pasos simples que puede seguir para ayudar a mejorar la seguridad sin sacrificar la velocidad. Aquí hay cinco pasos sencillos que debe considerar seriamente para evitar convertirse en el próximo hashtag en Twitter.
1. Localizar componentes
Los estudios coinciden en que el 80-90 % de su aplicación se compone de componentes de terceros. Con demasiada frecuencia, estos componentes se cargan en tiempo de ejecución desde sitios externos y se excluyen de los análisis de análisis de código fuente existentes. Una de las formas en que el correr La vulnerabilidad podría explotarse envenenando un contenedor que posteriormente se extrae y se usa en una aplicación.
Lo mismo se aplica a los componentes de UX cargados desde fuentes de terceros. Siempre que sea posible, aloje componentes de terceros en su propio sitio para reducir el riesgo de manipulación. Si cree que esto no es realmente un riesgo, le sugiero que lea sobre el paquetes ESLint comprometidos descubierto en 2018?
2. Escanear componentes
Los componentes de terceros pueden, y lo hacen, contener vulnerabilidades. Si es parte de su aplicación, debería ser parte de su proceso de seguridad. Y ahora que ha seguido el paso uno, puede incluir fácilmente el escaneo de esos componentes en su canalización de CI/CD. Al escanear componentes en busca de vulnerabilidades, no olvide este punto importante. Todo el código, sin importar dónde se ejecute, debe escanearse en busca de riesgos potenciales.
3. Cierra la puerta
Este es un medio simple pero efectivo para disuadir a los atacantes de obtener fácilmente el control de su entorno. Ya sea un servidor web, de aplicación, de base de datos o de middleware o un entorno de orquestación de contenedores, no olvide solicitar credenciales para acceder a las consolas administrativas.
Esto incluye cualquier repositorio público que pueda estar usando. Esto no solo es importante para los contenedores que tienden a ocupar los titulares en estos días. Muchos compromisos se deben a la falta de protección de las consolas en la nube y los cubos de almacenamiento.
4. Esconde la llave
Ahora que ha cerrado la puerta, no deje la llave encima del felpudo. La gestión de secretos es difícil cuando se hace correctamente, pero es esencial para proteger las aplicaciones y las operaciones del acceso no autorizado. No codifique credenciales y otros secretos (como claves y certificados) en archivos que envíe a un repositorio. Y no use su repositorio como un almacén de administración de claves.
Nuevamente, si necesita un ejemplo público de lo que sucede cuando no tiene cuidado con sus secretos, leer sobre la violación de Uber.
5. Incluir API
APIS, incluso fachadas, toma la entrada del usuario. Eso significa que cae bajo la regla de seguridad cero: nunca confiarás en la entrada del usuario. Asegúrese de no estar utilizando API para simplemente pasar datos a aplicaciones internas o microservicios. Escanee y proteja las API con el mismo celo que el de sus aplicaciones. Para obtener una lista de infracciones de alto perfil relacionadas con las API, Dale una lectura a este artículo de Forbes.
Ahora es cierto que hay mucho más que puede y debe hacer para proteger las aplicaciones y los entornos en los que se ejecutan. Pero muchos de ellos se vuelven ineficaces al no seguir estos cinco pasos simples. Debido a que abarcan la amplitud de la canalización de CI/CD, es importante incorporar DevOps y agregar estos pasos a su lista de verificación de seguridad.