SCW 아이콘
영웅 배경, 구분선 없음
블로그

Los codificadores conquistan la infraestructura de seguridad como series de códigos: errores de configuración de seguridad: permisos incorrectos

마티아스 마두, Ph.
게시일 : 2020년 6월 8일
마지막 업데이트: 2026년 3월 6일

Las amenazas a la ciberseguridad en estos días son omnipresentes e incesantes. La situación ha empeorado tanto que tratar de mantenerse al día con ellos después de implementar los programas se ha vuelto casi imposible. En cambio, las organizaciones inteligentes están adoptando el concepto de infraestructura como código, mediante el cual los desarrolladores contribuyen a crear aplicaciones seguras mientras aún se están creando. El objetivo de esta serie es prepararlo para la seguridad, de modo que pueda comprender los pasos que debe seguir como desarrollador para empezar a implementar una infraestructura segura como código en su propia organización.

Los errores de configuración de seguridad, especialmente los de permisos inadecuados, ocurren con mayor frecuencia cuando un desarrollador crea un nuevo usuario o concede permiso para una aplicación como herramienta para realizar una tarea. Por ejemplo, esto podría hacerse para recopilar información de una base de datos. Sin embargo, si los permisos del nuevo usuario son demasiado altos o no están configurados de forma predeterminada para la tarea en cuestión, se puede introducir una vulnerabilidad grave en el código.

Antes de empezar, ¿por qué no pones a prueba tus habilidades ahora mismo? Intente encontrar y corregir algunas vulnerabilidades de permisos incorrectas:

¿Cómo te fue? Profundicemos un poco más:

Otorgar permisos completos a un usuario o aplicación, o simplemente no molestarse en definir lo que el nuevo usuario debería poder lograr y qué comportamientos están restringidos, es sin duda la forma más rápida de implementar un nuevo código. Y si todo va perfectamente bien, la aplicación utilizará esos permisos para llevar a cabo la tarea asignada. El peligro es que un pirata informático descubra este proceso y luego comprometa a ese usuario. Aunque el usuario se creó para realizar una función específica para una aplicación en particular, si se pone en peligro, puede permitir que un atacante ponga en peligro otras aplicaciones, datos o incluso la red.

¿Cómo se aprovechan los errores de configuración de seguridad?

Para visualizar el peligro, veamos cómo a veces se codifica una tarea común en el entorno de nube de Docker. Supongamos que un desarrollador utiliza el servicio MySQL Exporter de Prometheus para recopilar información de una base de datos. La forma más sencilla de permitir que eso suceda es conceder al exportador permiso para acceder a la base de datos. Así que el código podría ser algo así como:

DE mysql:latest
COPIAR. /scripts/create_users.sh /docker-entrypoint-initdb.d/
USUARIO 999
CREAR USUARIO EXPORTADOR@% IDENTIFICADO POR $EXPORTER_PASSWORD;
CONCEDE TODO EL *.* AL EXPORTADOR@%;
OTORGUE SELECT ON performance_schema.* AL EXPORTADOR@%;

Esto sin duda permitiría que el exportador pudiera cumplir su tarea. Sin embargo, debido a que los permisos no están definidos, el exportador en realidad tiene la capacidad de hacer casi cualquier cosa. Obviamente, el propio exportador nunca actuaría fuera de sus comportamientos programados. Pero, ¿qué pasaría si un atacante pudiera comprometer el servicio al exportador? En ese caso, dado que se le concedieron todos los permisos, el atacante podría realizar todo tipo de tareas no autorizadas con el servicio SQL.

Asegurar y eliminar los permisos incorrectos

Una vez más, volvemos al concepto de infraestructura como código. Si codificas la seguridad en tus aplicaciones a medida que se crean, la red siempre tendrá una posición mucho mejor en términos generales en lo que respecta a la ciberseguridad.

En el ejemplo anterior de Docker, si un desarrollador quiere que el Prometheus MySQL Exporter pueda consultar una base de datos, puede hacerlo de forma más segura definiendo lo que se le debe permitir realizar. Un buen ejemplo de esto sería:


DE mysql:latest
COPIAR. /scripts/create_users.sh /docker-entrypoint-initdb.d/
USUARIO 999
CREAR USUARIO EXPORTADOR@% IDENTIFICADO POR $EXPORTER_PASSWORD;
PROCESO DE CONCESIÓN, CLIENTE DE REPLICACIÓN ACTIVADO *.* AL EXPORTADOR@%;
OTORGUE SELECT ON performance_schema.* AL EXPORTADOR@%;

En este caso, el usuario de MySQL configurado para el servicio MySQL Exporter de Prometheus solo tiene permisos restringidos sobre el servicio MySQL. En concreto, solo se permiten los privilegios PROCESS y REPLICATION CLIENT. Esto evitaría que un usuario malintencionado aprovechara un servicio exportador de Prometheus MySQL comprometido.

Restringir los permisos a nivel de código puede garantizar que los usuarios y las aplicaciones solo tengan los permisos suficientes para la tarea en cuestión. Y eso puede contribuir en gran medida a proteger sus redes y a adoptar el concepto de infraestructura como código.

Eche un vistazo a la Secure Code Warrior páginas de blog para obtener más información sobre esta vulnerabilidad y sobre cómo proteger a su organización y a sus clientes de los estragos de otras fallas de seguridad. También puedes prueba nuestro escaparate de la plataforma de formación Secure Code Warrior para mantener todas sus habilidades de ciberseguridad perfeccionadas y actualizadas.

리소스 보기
리소스 보기

Los errores de configuración de seguridad, especialmente los de permisos inadecuados, ocurren con mayor frecuencia cuando un desarrollador crea un nuevo usuario o concede permiso para una aplicación como herramienta para realizar una tarea.

더 알고 싶으신가요?

마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.

더 알아보세요

Secure Code Warrior 귀사의 조직이 소프트웨어 개발 라이프사이클 전반에 걸쳐 코드를 보호하고 사이버보안을 최우선으로 하는 문화를 조성하도록 Secure Code Warrior . AppSec 관리자, 개발자, CISO 또는 보안 관련 담당자라면 누구든, 저희는 귀사의 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.

데모 예약하기
공유하기:
링크드인 브랜드사회적x 로고
저자
마티아스 마두, Ph.
게시일: 2020년 6월 8일

마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.

Matias는 15년 이상의 소프트웨어 보안 경험을 가진 연구원이자 개발자입니다. 그는 Fortify 소프트웨어와 같은 회사와 자신의 회사를 위한 솔루션을 개발했습니다. Sensei 안전. 그의 경력을 통해, Matias는 상용 제품으로 주도하고 자신의 벨트 아래 10 개 이상의 특허를 자랑하는 여러 응용 프로그램 보안 연구 프로젝트를 주도하고있다. 마티아스는 책상에서 떨어져 있을 때 고급 응용 프로그램 보안 교육을 위한 강사로 일했습니다. courses RSA 컨퍼런스, 블랙 햇, 데프콘, BSIMM, OWASP AppSec 및 브루콘을 포함한 글로벌 컨퍼런스에서 정기적으로 강연합니다.

마티아스는 겐트 대학교에서 컴퓨터 공학 박사 학위를 취득했으며, 프로그램 난독화를 통해 응용 프로그램 보안을 연구하여 응용 프로그램의 내부 작동을 숨깁니다.

공유하기:
링크드인 브랜드사회적x 로고

Las amenazas a la ciberseguridad en estos días son omnipresentes e incesantes. La situación ha empeorado tanto que tratar de mantenerse al día con ellos después de implementar los programas se ha vuelto casi imposible. En cambio, las organizaciones inteligentes están adoptando el concepto de infraestructura como código, mediante el cual los desarrolladores contribuyen a crear aplicaciones seguras mientras aún se están creando. El objetivo de esta serie es prepararlo para la seguridad, de modo que pueda comprender los pasos que debe seguir como desarrollador para empezar a implementar una infraestructura segura como código en su propia organización.

Los errores de configuración de seguridad, especialmente los de permisos inadecuados, ocurren con mayor frecuencia cuando un desarrollador crea un nuevo usuario o concede permiso para una aplicación como herramienta para realizar una tarea. Por ejemplo, esto podría hacerse para recopilar información de una base de datos. Sin embargo, si los permisos del nuevo usuario son demasiado altos o no están configurados de forma predeterminada para la tarea en cuestión, se puede introducir una vulnerabilidad grave en el código.

Antes de empezar, ¿por qué no pones a prueba tus habilidades ahora mismo? Intente encontrar y corregir algunas vulnerabilidades de permisos incorrectas:

¿Cómo te fue? Profundicemos un poco más:

Otorgar permisos completos a un usuario o aplicación, o simplemente no molestarse en definir lo que el nuevo usuario debería poder lograr y qué comportamientos están restringidos, es sin duda la forma más rápida de implementar un nuevo código. Y si todo va perfectamente bien, la aplicación utilizará esos permisos para llevar a cabo la tarea asignada. El peligro es que un pirata informático descubra este proceso y luego comprometa a ese usuario. Aunque el usuario se creó para realizar una función específica para una aplicación en particular, si se pone en peligro, puede permitir que un atacante ponga en peligro otras aplicaciones, datos o incluso la red.

¿Cómo se aprovechan los errores de configuración de seguridad?

Para visualizar el peligro, veamos cómo a veces se codifica una tarea común en el entorno de nube de Docker. Supongamos que un desarrollador utiliza el servicio MySQL Exporter de Prometheus para recopilar información de una base de datos. La forma más sencilla de permitir que eso suceda es conceder al exportador permiso para acceder a la base de datos. Así que el código podría ser algo así como:

DE mysql:latest
COPIAR. /scripts/create_users.sh /docker-entrypoint-initdb.d/
USUARIO 999
CREAR USUARIO EXPORTADOR@% IDENTIFICADO POR $EXPORTER_PASSWORD;
CONCEDE TODO EL *.* AL EXPORTADOR@%;
OTORGUE SELECT ON performance_schema.* AL EXPORTADOR@%;

Esto sin duda permitiría que el exportador pudiera cumplir su tarea. Sin embargo, debido a que los permisos no están definidos, el exportador en realidad tiene la capacidad de hacer casi cualquier cosa. Obviamente, el propio exportador nunca actuaría fuera de sus comportamientos programados. Pero, ¿qué pasaría si un atacante pudiera comprometer el servicio al exportador? En ese caso, dado que se le concedieron todos los permisos, el atacante podría realizar todo tipo de tareas no autorizadas con el servicio SQL.

Asegurar y eliminar los permisos incorrectos

Una vez más, volvemos al concepto de infraestructura como código. Si codificas la seguridad en tus aplicaciones a medida que se crean, la red siempre tendrá una posición mucho mejor en términos generales en lo que respecta a la ciberseguridad.

En el ejemplo anterior de Docker, si un desarrollador quiere que el Prometheus MySQL Exporter pueda consultar una base de datos, puede hacerlo de forma más segura definiendo lo que se le debe permitir realizar. Un buen ejemplo de esto sería:


DE mysql:latest
COPIAR. /scripts/create_users.sh /docker-entrypoint-initdb.d/
USUARIO 999
CREAR USUARIO EXPORTADOR@% IDENTIFICADO POR $EXPORTER_PASSWORD;
PROCESO DE CONCESIÓN, CLIENTE DE REPLICACIÓN ACTIVADO *.* AL EXPORTADOR@%;
OTORGUE SELECT ON performance_schema.* AL EXPORTADOR@%;

En este caso, el usuario de MySQL configurado para el servicio MySQL Exporter de Prometheus solo tiene permisos restringidos sobre el servicio MySQL. En concreto, solo se permiten los privilegios PROCESS y REPLICATION CLIENT. Esto evitaría que un usuario malintencionado aprovechara un servicio exportador de Prometheus MySQL comprometido.

Restringir los permisos a nivel de código puede garantizar que los usuarios y las aplicaciones solo tengan los permisos suficientes para la tarea en cuestión. Y eso puede contribuir en gran medida a proteger sus redes y a adoptar el concepto de infraestructura como código.

Eche un vistazo a la Secure Code Warrior páginas de blog para obtener más información sobre esta vulnerabilidad y sobre cómo proteger a su organización y a sus clientes de los estragos de otras fallas de seguridad. También puedes prueba nuestro escaparate de la plataforma de formación Secure Code Warrior para mantener todas sus habilidades de ciberseguridad perfeccionadas y actualizadas.

리소스 보기
리소스 보기

다음 양식을 작성하여 보고서를 다운로드하십시오.

귀하의 허락을 받아 당사 제품 또는 안전한 암호화 관련 주제에 대한 정보를 보내드리고자 합니다. 귀하의 개인정보는 항상 최대한 신중하게 처리하며, 마케팅 목적으로 타사에 판매하지 않을 것을 약속드립니다.

보내기
scw 성공 아이콘
scw 오류 아이콘
양식을 보내려면 '분석' 쿠키를 활성화하세요. 완료 후에는 언제든지 다시 비활성화해도 됩니다.

Las amenazas a la ciberseguridad en estos días son omnipresentes e incesantes. La situación ha empeorado tanto que tratar de mantenerse al día con ellos después de implementar los programas se ha vuelto casi imposible. En cambio, las organizaciones inteligentes están adoptando el concepto de infraestructura como código, mediante el cual los desarrolladores contribuyen a crear aplicaciones seguras mientras aún se están creando. El objetivo de esta serie es prepararlo para la seguridad, de modo que pueda comprender los pasos que debe seguir como desarrollador para empezar a implementar una infraestructura segura como código en su propia organización.

Los errores de configuración de seguridad, especialmente los de permisos inadecuados, ocurren con mayor frecuencia cuando un desarrollador crea un nuevo usuario o concede permiso para una aplicación como herramienta para realizar una tarea. Por ejemplo, esto podría hacerse para recopilar información de una base de datos. Sin embargo, si los permisos del nuevo usuario son demasiado altos o no están configurados de forma predeterminada para la tarea en cuestión, se puede introducir una vulnerabilidad grave en el código.

Antes de empezar, ¿por qué no pones a prueba tus habilidades ahora mismo? Intente encontrar y corregir algunas vulnerabilidades de permisos incorrectas:

¿Cómo te fue? Profundicemos un poco más:

Otorgar permisos completos a un usuario o aplicación, o simplemente no molestarse en definir lo que el nuevo usuario debería poder lograr y qué comportamientos están restringidos, es sin duda la forma más rápida de implementar un nuevo código. Y si todo va perfectamente bien, la aplicación utilizará esos permisos para llevar a cabo la tarea asignada. El peligro es que un pirata informático descubra este proceso y luego comprometa a ese usuario. Aunque el usuario se creó para realizar una función específica para una aplicación en particular, si se pone en peligro, puede permitir que un atacante ponga en peligro otras aplicaciones, datos o incluso la red.

¿Cómo se aprovechan los errores de configuración de seguridad?

Para visualizar el peligro, veamos cómo a veces se codifica una tarea común en el entorno de nube de Docker. Supongamos que un desarrollador utiliza el servicio MySQL Exporter de Prometheus para recopilar información de una base de datos. La forma más sencilla de permitir que eso suceda es conceder al exportador permiso para acceder a la base de datos. Así que el código podría ser algo así como:

DE mysql:latest
COPIAR. /scripts/create_users.sh /docker-entrypoint-initdb.d/
USUARIO 999
CREAR USUARIO EXPORTADOR@% IDENTIFICADO POR $EXPORTER_PASSWORD;
CONCEDE TODO EL *.* AL EXPORTADOR@%;
OTORGUE SELECT ON performance_schema.* AL EXPORTADOR@%;

Esto sin duda permitiría que el exportador pudiera cumplir su tarea. Sin embargo, debido a que los permisos no están definidos, el exportador en realidad tiene la capacidad de hacer casi cualquier cosa. Obviamente, el propio exportador nunca actuaría fuera de sus comportamientos programados. Pero, ¿qué pasaría si un atacante pudiera comprometer el servicio al exportador? En ese caso, dado que se le concedieron todos los permisos, el atacante podría realizar todo tipo de tareas no autorizadas con el servicio SQL.

Asegurar y eliminar los permisos incorrectos

Una vez más, volvemos al concepto de infraestructura como código. Si codificas la seguridad en tus aplicaciones a medida que se crean, la red siempre tendrá una posición mucho mejor en términos generales en lo que respecta a la ciberseguridad.

En el ejemplo anterior de Docker, si un desarrollador quiere que el Prometheus MySQL Exporter pueda consultar una base de datos, puede hacerlo de forma más segura definiendo lo que se le debe permitir realizar. Un buen ejemplo de esto sería:


DE mysql:latest
COPIAR. /scripts/create_users.sh /docker-entrypoint-initdb.d/
USUARIO 999
CREAR USUARIO EXPORTADOR@% IDENTIFICADO POR $EXPORTER_PASSWORD;
PROCESO DE CONCESIÓN, CLIENTE DE REPLICACIÓN ACTIVADO *.* AL EXPORTADOR@%;
OTORGUE SELECT ON performance_schema.* AL EXPORTADOR@%;

En este caso, el usuario de MySQL configurado para el servicio MySQL Exporter de Prometheus solo tiene permisos restringidos sobre el servicio MySQL. En concreto, solo se permiten los privilegios PROCESS y REPLICATION CLIENT. Esto evitaría que un usuario malintencionado aprovechara un servicio exportador de Prometheus MySQL comprometido.

Restringir los permisos a nivel de código puede garantizar que los usuarios y las aplicaciones solo tengan los permisos suficientes para la tarea en cuestión. Y eso puede contribuir en gran medida a proteger sus redes y a adoptar el concepto de infraestructura como código.

Eche un vistazo a la Secure Code Warrior páginas de blog para obtener más información sobre esta vulnerabilidad y sobre cómo proteger a su organización y a sus clientes de los estragos de otras fallas de seguridad. También puedes prueba nuestro escaparate de la plataforma de formación Secure Code Warrior para mantener todas sus habilidades de ciberseguridad perfeccionadas y actualizadas.

웹 세미나 보기
시작하다
더 알아보세요

아래 링크를 클릭하고 이 자료의 PDF를 다운로드하세요.

Secure Code Warrior 귀사의 조직이 소프트웨어 개발 라이프사이클 전반에 걸쳐 코드를 보호하고 사이버보안을 최우선으로 하는 문화를 조성하도록 Secure Code Warrior . AppSec 관리자, 개발자, CISO 또는 보안 관련 담당자라면 누구든, 저희는 귀사의 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.

보고서 보기데모 예약하기
리소스 보기
공유하기:
링크드인 브랜드사회적x 로고
더 알고 싶으신가요?

공유하기:
링크드인 브랜드사회적x 로고
저자
마티아스 마두, Ph.
게시일: 2020년 6월 8일

마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.

Matias는 15년 이상의 소프트웨어 보안 경험을 가진 연구원이자 개발자입니다. 그는 Fortify 소프트웨어와 같은 회사와 자신의 회사를 위한 솔루션을 개발했습니다. Sensei 안전. 그의 경력을 통해, Matias는 상용 제품으로 주도하고 자신의 벨트 아래 10 개 이상의 특허를 자랑하는 여러 응용 프로그램 보안 연구 프로젝트를 주도하고있다. 마티아스는 책상에서 떨어져 있을 때 고급 응용 프로그램 보안 교육을 위한 강사로 일했습니다. courses RSA 컨퍼런스, 블랙 햇, 데프콘, BSIMM, OWASP AppSec 및 브루콘을 포함한 글로벌 컨퍼런스에서 정기적으로 강연합니다.

마티아스는 겐트 대학교에서 컴퓨터 공학 박사 학위를 취득했으며, 프로그램 난독화를 통해 응용 프로그램 보안을 연구하여 응용 프로그램의 내부 작동을 숨깁니다.

공유하기:
링크드인 브랜드사회적x 로고

Las amenazas a la ciberseguridad en estos días son omnipresentes e incesantes. La situación ha empeorado tanto que tratar de mantenerse al día con ellos después de implementar los programas se ha vuelto casi imposible. En cambio, las organizaciones inteligentes están adoptando el concepto de infraestructura como código, mediante el cual los desarrolladores contribuyen a crear aplicaciones seguras mientras aún se están creando. El objetivo de esta serie es prepararlo para la seguridad, de modo que pueda comprender los pasos que debe seguir como desarrollador para empezar a implementar una infraestructura segura como código en su propia organización.

Los errores de configuración de seguridad, especialmente los de permisos inadecuados, ocurren con mayor frecuencia cuando un desarrollador crea un nuevo usuario o concede permiso para una aplicación como herramienta para realizar una tarea. Por ejemplo, esto podría hacerse para recopilar información de una base de datos. Sin embargo, si los permisos del nuevo usuario son demasiado altos o no están configurados de forma predeterminada para la tarea en cuestión, se puede introducir una vulnerabilidad grave en el código.

Antes de empezar, ¿por qué no pones a prueba tus habilidades ahora mismo? Intente encontrar y corregir algunas vulnerabilidades de permisos incorrectas:

¿Cómo te fue? Profundicemos un poco más:

Otorgar permisos completos a un usuario o aplicación, o simplemente no molestarse en definir lo que el nuevo usuario debería poder lograr y qué comportamientos están restringidos, es sin duda la forma más rápida de implementar un nuevo código. Y si todo va perfectamente bien, la aplicación utilizará esos permisos para llevar a cabo la tarea asignada. El peligro es que un pirata informático descubra este proceso y luego comprometa a ese usuario. Aunque el usuario se creó para realizar una función específica para una aplicación en particular, si se pone en peligro, puede permitir que un atacante ponga en peligro otras aplicaciones, datos o incluso la red.

¿Cómo se aprovechan los errores de configuración de seguridad?

Para visualizar el peligro, veamos cómo a veces se codifica una tarea común en el entorno de nube de Docker. Supongamos que un desarrollador utiliza el servicio MySQL Exporter de Prometheus para recopilar información de una base de datos. La forma más sencilla de permitir que eso suceda es conceder al exportador permiso para acceder a la base de datos. Así que el código podría ser algo así como:

DE mysql:latest
COPIAR. /scripts/create_users.sh /docker-entrypoint-initdb.d/
USUARIO 999
CREAR USUARIO EXPORTADOR@% IDENTIFICADO POR $EXPORTER_PASSWORD;
CONCEDE TODO EL *.* AL EXPORTADOR@%;
OTORGUE SELECT ON performance_schema.* AL EXPORTADOR@%;

Esto sin duda permitiría que el exportador pudiera cumplir su tarea. Sin embargo, debido a que los permisos no están definidos, el exportador en realidad tiene la capacidad de hacer casi cualquier cosa. Obviamente, el propio exportador nunca actuaría fuera de sus comportamientos programados. Pero, ¿qué pasaría si un atacante pudiera comprometer el servicio al exportador? En ese caso, dado que se le concedieron todos los permisos, el atacante podría realizar todo tipo de tareas no autorizadas con el servicio SQL.

Asegurar y eliminar los permisos incorrectos

Una vez más, volvemos al concepto de infraestructura como código. Si codificas la seguridad en tus aplicaciones a medida que se crean, la red siempre tendrá una posición mucho mejor en términos generales en lo que respecta a la ciberseguridad.

En el ejemplo anterior de Docker, si un desarrollador quiere que el Prometheus MySQL Exporter pueda consultar una base de datos, puede hacerlo de forma más segura definiendo lo que se le debe permitir realizar. Un buen ejemplo de esto sería:


DE mysql:latest
COPIAR. /scripts/create_users.sh /docker-entrypoint-initdb.d/
USUARIO 999
CREAR USUARIO EXPORTADOR@% IDENTIFICADO POR $EXPORTER_PASSWORD;
PROCESO DE CONCESIÓN, CLIENTE DE REPLICACIÓN ACTIVADO *.* AL EXPORTADOR@%;
OTORGUE SELECT ON performance_schema.* AL EXPORTADOR@%;

En este caso, el usuario de MySQL configurado para el servicio MySQL Exporter de Prometheus solo tiene permisos restringidos sobre el servicio MySQL. En concreto, solo se permiten los privilegios PROCESS y REPLICATION CLIENT. Esto evitaría que un usuario malintencionado aprovechara un servicio exportador de Prometheus MySQL comprometido.

Restringir los permisos a nivel de código puede garantizar que los usuarios y las aplicaciones solo tengan los permisos suficientes para la tarea en cuestión. Y eso puede contribuir en gran medida a proteger sus redes y a adoptar el concepto de infraestructura como código.

Eche un vistazo a la Secure Code Warrior páginas de blog para obtener más información sobre esta vulnerabilidad y sobre cómo proteger a su organización y a sus clientes de los estragos de otras fallas de seguridad. También puedes prueba nuestro escaparate de la plataforma de formación Secure Code Warrior para mantener todas sus habilidades de ciberseguridad perfeccionadas y actualizadas.

목차

PDF 다운로드
리소스 보기
더 알고 싶으신가요?

마티아스 마두는 보안 전문가, 연구원, CTO이자 Secure Code Warrior 의 공동 설립자입니다. 마티아스는 겐트 대학교에서 정적 분석 솔루션에 중점을 둔 애플리케이션 보안 박사 학위를 취득했습니다. 이후 미국의 Fortify에 입사하여 개발자의 보안 코드 작성을 지원하지 않고 코드 문제만 탐지하는 것만으로는 충분하지 않다는 것을 깨달았습니다. 이를 계기로 개발자를 지원하고 보안에 대한 부담을 덜어주며 고객의 기대를 뛰어넘는 제품을 개발하게 되었습니다. 팀 어썸의 일원으로 책상에 앉아 있지 않을 때는 RSA 컨퍼런스, 블랙햇, 데프콘 등의 컨퍼런스에서 무대에 올라 발표하는 것을 즐깁니다.

더 알아보세요

Secure Code Warrior 귀사의 조직이 소프트웨어 개발 라이프사이클 전반에 걸쳐 코드를 보호하고 사이버보안을 최우선으로 하는 문화를 조성하도록 Secure Code Warrior . AppSec 관리자, 개발자, CISO 또는 보안 관련 담당자라면 누구든, 저희는 귀사의 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.

데모 예약하기다운로드
공유하기:
링크드인 브랜드사회적x 로고
자원 센터

시작하기 위한 자료

더 많은 게시물
자원 센터

시작하기 위한 자료

더 많은 게시물