Remediación de exposiciones para funciones de Lambda
nota
Security Hub se encuentra en versión preliminar y, por lo tanto, puede experimentar cambios.
AWS Security Hub puede generar resultados de exposición para funciones de AWS Lambda (Lambda).
En la consola de Security Hub, la función de Lambda involucrada en un resultado de exposición y su información de identificación aparecen en la sección Recursos de los detalles del resultado. Puede recuperar los detalles del recurso mediante programación con la operación GetFindingsV2 de la API de Security Hub.
Después de identificar el recurso involucrado en un resultado de exposición, puede eliminar el recurso si no lo necesita. Eliminar un recurso que no es esencial puede reducir el perfil de exposición y los costos de AWS. Si el recurso es esencial, siga estos pasos de remediación recomendados para ayudar a mitigar el riesgo. Los temas de remediación se dividen según el tipo de condición.
Un único resultado de exposición puede incluir problemas identificados en varios temas de remediación. También es posible abordar un resultado de exposición y disminuir su nivel de gravedad con solo tratar uno de los temas de remediación. El enfoque de remediación adecuado depende de los requisitos y cargas de trabajo de la organización.
nota
La guía de remediación que se presenta aquí puede requerir que consulte información adicional disponible en otros recursos de AWS.
nota
La guía de remediación que se presenta aquí puede requerir que consulte información adicional disponible en otros recursos de AWS.
Contenido
Condiciones de configuración incorrecta para funciones de Lambda
Aquí se presentan condiciones de configuración incorrecta para funciones de Lambda y pasos de remediación sugeridos.
La función de Lambda ejecuta un tiempo de ejecución que no es compatible
Lambda permite a los desarrolladores ejecutar código sin aprovisionar ni administrar servidores, mediante tiempos de ejecución que ejecutan el código en un entorno administrado. Lambda aplica automáticamente parches y actualizaciones de seguridad a los tiempos de ejecución administrados y a sus imágenes base de contenedor correspondientes. Cuando una versión en tiempo de ejecución deja de ser compatible, ya no recibe actualizaciones de seguridad, correcciones de errores ni soporte técnico. Las funciones que se ejecutan en tiempos de ejecución obsoletos pueden presentar vulnerabilidades de seguridad y, eventualmente, dejar de funcionar debido a problemas como la expiración de certificados. Además, los tiempos de ejecución que no son compatibles pueden ser vulnerables a nuevas vulnerabilidades de seguridad sin parches disponibles. Según las prácticas recomendadas de seguridad, recomendamos utilizar tiempos de ejecución con parches aplicados y compatibles para las funciones de Lambda.
Actualización del tiempo de ejecución de la función
En la pestaña Recursos del resultado de exposición, abra el recurso mediante el hipervínculo. Esto abrirá la ventana de la función de Lambda. Para actualizar la función a un tiempo de ejecución compatible, configure la administración del tiempo de ejecución. Puede optar por que la función se actualice automáticamente a la versión más reciente del tiempo de ejecución, pero antes de seleccionar esta opción, evalúe si las actualizaciones automáticas podrían afectar la aplicaciones en ejecución. Para obtener más información, consulte Descripción de cómo Lambda administra las actualizaciones de versión del tiempo de ejecución.
La función de Lambda se implementa fuera de una Amazon VPC
Las funciones de Lambda, de forma predeterminada, se implementan con acceso a Internet pública. Esta configuración predeterminada permite que las funciones de Lambda accedan a puntos de conexión de servicios de AWS y a API externas, pero también las expone a posibles riesgos de seguridad. Las funciones con acceso a Internet se podrían utilizar para exfiltrar datos, comunicarse con servidores no autorizados o convertirse en puntos de entrada para actores externos si se ven comprometidas. Amazon VPC proporciona aislamiento de red al restringir que las funciones de Lambda se comuniquen únicamente con recursos dentro de la red privada definida. Según los principios estándar de seguridad, recomendamos implementar las funciones de Lambda dentro de una VPC para mejorar la seguridad mediante aislamiento de red.
Asociación de la función a la VPC
En el resultado de exposición, abra el recurso mediante el hipervínculo. Esto abrirá la ventana de la función de Lambda. Para proteger la función de Lambda mediante la limitación del acceso de red, asóciela a una VPC que tenga los controles de red adecuados. Antes de asociar la función a una VPC, planifique cualquier acceso a servicios de AWS que pueda necesitar, ya que las funciones en subredes privadas sin puertas de enlace de NAT o puntos de conexión de VPC no podrán comunicarse con las API de servicios de AWS. Para obtener información sobre cómo asociar una función de Lambda a una Amazon VPC en la cuenta, consulte Asociación de funciones de Lambda a una Amazon VPC en la Cuenta de AWS. Considere utilizar puntos de conexión de VPC para conectarse a servicios sin necesidad de acceso a Internet si la función requiere acceder a servicios de AWS desde una subred privada. Configure una puerta de enlace de NAT si necesita conectividad de salida a Internet desde subredes privadas.
La función de Lambda puede asumir un rol de IAM.
Las funciones de Lambda utilizan roles de IAM para interactuar con servicios de AWS. Estos roles otorgan permisos para que la función de Lambda acceda a recursos de AWS durante la ejecución. Si bien estos roles a veces son necesarios para que las funciones de Lambda realicen sus tareas, deben seguir el principio de privilegios mínimos. Según los principios estándar de seguridad, AWS recomienda revisar si los permisos asociados al rol son adecuados según la funcionalidad prevista de la función.
-
Cómo determinar si el rol de IAM asociado es necesario
Determine si la función de Lambda requiere que se configure un rol de ejecución de IAM. La mayoría de las funciones de Lambda necesitan permisos básicos para operar, como escribir registros en CloudWatch. Revise los permisos asociados al rol de ejecución de la función y determine si el rol de IAM es necesario para la función. Para obtener información sobre los roles de ejecución de Lambda, consulte Definición de permisos de funciones de Lambda con un rol de ejecución en la Guía del desarrollador de AWS Lambda.
-
Implementación del acceso a los privilegios mínimos
Reemplace las políticas excesivamente permisivas por otras que otorguen únicamente los permisos específicos necesarios para que la función opere. Para obtener información sobre las prácticas recomendadas de seguridad para roles de IAM, consulte Aplicación de permisos de privilegios mínimos en la Guía del usuario de AWS Identity and Access Management. Para identificar permisos innecesarios, puede usar el Analizador de acceso de IAM y así entender cómo modificar la política en función del historial de acceso. Para obtener más información, consulte Resultados de acceso externo y no utilizado en la Guía del usuario de AWS Identity and Access Management. Como alternativa, puede crear un nuevo rol de IAM para evitar afectar a otras funciones de Lambda que utilicen el rol existente. En este caso, cree un nuevo rol de IAM y luego asócielo a la instancia. Para obtener instrucciones sobre cómo reemplazar un rol de IAM para una función, consulte Actualización del rol de ejecución de una función en la Guía del desarrollador de AWS Lambda.
El rol de IAM asociado a la función de Lambda tiene una política de acceso administrativo
Las políticas de acceso administrativo otorgan a las funciones de Lambda permisos amplios para servicios y recursos de AWS. Estas políticas normalmente incluyen permisos que no son necesarios para la funcionalidad. Proporcionar a una identidad de IAM una política de acceso administrativo en una función de Lambda, en lugar del conjunto mínimo de permisos que requiere el rol de ejecución, puede aumentar el alcance de un ataque si la función se ve comprometida. De acuerdo con los principios estándar de seguridad, AWS recomienda conceder privilegios mínimos, lo que significa otorgar únicamente los permisos necesarios para realizar una tarea.
-
Revisión e identificación de políticas administrativas
En el resultado de exposición, identifique el nombre del rol. Vaya al panel de IAM y busque el rol con el nombre identificado previamente. Revise la política de permisos asociada al rol de IAM. Si la política es una política administrada de AWS, busque
AdministratorAccessoIAMFullAccess. De lo contrario, en el documento de la política, busque declaraciones que incluyan las declaraciones"Effect": "Allow", "Action": "*"y"Resource": "*"juntas. -
Implementación del acceso a los privilegios mínimos
Reemplace las políticas administrativas por aquellas que otorguen únicamente los permisos específicos necesarios para que la función opere. Para obtener más información sobre las prácticas recomendadas de seguridad para roles de IAM, consulte Aplicación de permisos de privilegios mínimos en la Guía del usuario de AWS Identity and Access Management. Para identificar permisos innecesarios, puede usar el Analizador de acceso de IAM y así entender cómo modificar la política en función del historial de acceso. Para obtener más información, consulte Resultados de acceso externo y no utilizado en la Guía del usuario de AWS Identity and Access Management. Como alternativa, puede crear un nuevo rol de IAM para evitar afectar a otras funciones de Lambda que utilicen el rol existente. En este caso, cree un nuevo rol de IAM. Luego asocie el nuevo rol a la instancia. Para obtener información sobre cómo reemplazar un rol de IAM para una función, consulte Actualización del rol de ejecución de una función en la Guía del desarrollador de AWS Lambda.
-
Consideraciones para configuraciones seguras
Si la instancia requiere permisos de acceso administrativos, considere implementar estos controles de seguridad adicionales para mitigar el riesgo:
-
Autenticación multifactor (MFA): MFA agrega una capa adicional de seguridad al requerir una forma adicional de autenticación. Esto ayuda a evitar accesos no autorizados incluso si las credenciales se ven comprometidas. Para obtener más información, consulte Requisito de autenticación multifactor (MFA) en la Guía del usuario de AWS Identity and Access Management.
-
Condiciones de IAM: la configuración de elementos de condición permite restringir cuándo y cómo se pueden usar permisos administrativos en función de factores como la dirección IP de origen o la antigüedad del MFA. Para obtener más información, consulte Uso de condiciones en las políticas de IAM para restringir aún más el acceso en la Guía del usuario de IAM.
-
Límites de permisos: los límites de permisos establecen los permisos máximos que un rol puede tener, con barreras de protección para roles con acceso administrativo. Para obtener más información, consulte Uso de límites de permisos para delegar la administración de permisos dentro de una cuenta en la Guía del usuario de AWS Identity and Access Management.
-
El rol de IAM asociado a la función de Lambda tiene una política con acceso administrativo a un servicio de AWS.
Las políticas administrativas de servicio permiten que las funciones de Lambda realicen todas las acciones dentro de un servicio de AWS específico. Estas políticas normalmente otorgan más permisos de los necesarios para la operación de la función. Si una función de Lambda con una política administrativa de servicio se ve comprometida, un atacante podría utilizar esos permisos para acceder o modificar potencialmente datos o servicios sensibles dentro del entorno de AWS. Según principios estándar de seguridad, recomendamos conceder el menor privilegio, lo que significa otorgar únicamente los permisos necesarios para realizar una tarea.
-
Revisión e identificación de políticas administrativas
En el resultado de exposición, identifique el nombre del rol en el ARN. Vaya al panel de IAM y busque el nombre del rol. Revise la política de permisos asociada al rol. Si la política es una política administrada de AWS, busque
AdministratorAccessoIAMFullAccess. De lo contrario, en el documento de la política, busque declaraciones que incluyan las instrucciones"Effect": "Allow", "Action": "*"y"Resource": "*". -
Implementación del acceso a los privilegios mínimos
Reemplace las políticas administrativas por aquellas que otorguen únicamente los permisos específicos necesarios para que la función opere. Para obtener más información, consulte Aplicar permisos de privilegio mínimo en la Guía del usuario de AWS Identity and Access Management. Para identificar permisos innecesarios, puede usar el Analizador de acceso de IAM y así entender cómo modificar la política en función del historial de acceso. Para obtener más información, consulte Resultados de acceso externo y no utilizado en la Guía del usuario de AWS Identity and Access Management. Como alternativa, puede crear un nuevo rol de IAM para evitar afectar a otras funciones de Lambda que utilicen el rol existente. En este caso, cree un nuevo rol de IAM y luego asócielo a la instancia. Para obtener instrucciones sobre cómo reemplazar un rol de IAM para una función, consulte Actualización del rol de ejecución de una función en la Guía del desarrollador de AWS Lambda.
-
Consideraciones para configuraciones seguras
Si la instancia requiere permisos administrativos a nivel de servicio, considere implementar estos controles de seguridad adicionales para mitigar el riesgo:.
-
Autenticación multifactor (MFA): MFA agrega una capa adicional de seguridad al requerir una forma adicional de autenticación. Esto ayuda a evitar accesos no autorizados incluso si las credenciales se ven comprometidas. Para obtener más información, consulte Requisito de autenticación multifactor (MFA) en la Guía del usuario de AWS Identity and Access Management.
-
Condiciones de IAM: la configuración de elementos de condición permite restringir cuándo y cómo se pueden usar permisos administrativos en función de factores como la dirección IP de origen o la antigüedad del MFA. Para obtener más información, consulte Uso de condiciones en políticas de IAM para restringir el acceso en la Guía del usuario de AWS Identity and Access Management.
-
Límites de permisos: los límites de permisos establecen el máximo de permisos que un rol puede tener, con lo que se establece una barrera de protección para roles con acceso administrativo. Para obtener más información, consulte Uso de límites de permisos para delegar la administración de permisos en la Guía del usuario de AWS Identity and Access Management.
-
Condiciones de accesibilidad para funciones de Lambda
A continuación se describen las condiciones de accesibilidad para funciones de Lambda y los pasos de remediación recomendados.
La función de Lambda se puede invocar de forma pública
Las políticas basadas en recursos de Lambda determinan quién puede invocar las funciones. Una función con una política de recursos que incluya "*" como entidad principal (o sin entidad principal en lo absoluto) permite que cualquier usuario autenticado de AWS la invoque. Esta configuración supone un riesgo considerable, especialmente para funciones que procesan información confidencial, modifican recursos o tienen permisos elevados. Los usuarios no autorizados podrían aprovechar esta configuración para realizar operaciones no deseadas, exponer datos, manipular recursos o abusar de las capacidades de la función. Según las prácticas recomendadas de seguridad, recomendamos restringir el acceso a la función de Lambda únicamente a las entidades principales autorizadas.
Modificación de la política basada en recursos de la función
En la pestaña Recursos del resultado de exposición, abra el recurso mediante el hipervínculo. Esto abrirá la ventana de la función de Lambda. Restrinja el acceso a la función de Lambda al indicar únicamente los ID de cuenta de AWS autorizados o las entidades principales de IAM específicas (usuarios, roles o servicios) dentro de la política basada en recursos. Solo puede modificar políticas basadas en recursos mediante programación.
Condiciones de vulnerabilidad para funciones de Lambda
A continuación se presentan las condiciones de vulnerabilidad para funciones de Lambda y los pasos de remediación sugeridos.
La función de Lambda tiene vulnerabilidades de software explotables a través de la red
Los paquetes de software utilizados en el código de la función de Lambda pueden contener vulnerabilidades y exposiciones Comunes (CVE) con una alta probabilidad de explotación. Los CVE críticos representan riesgos de seguridad significativos para el entorno de AWS. Los atacantes pueden aprovechar las vulnerabilidades no parcheadas y poner en riesgo la confidencialidad, integridad o disponibilidad de los datos, así como acceder a otros sistemas. Las vulnerabilidades críticas con alta probabilidad de explotación representan amenazas de seguridad inmediatas, ya que el código de explotación puede estar disponible públicamente y ser utilizado activamente por atacantes o por herramientas automatizadas de detección. Según las prácticas recomendadas de seguridad, recomendamos aplicar parches a estas vulnerabilidades para proteger la función frente a ataques.
Actualización de las funciones afectadas
Revise la sección Referencias en la pestaña Vulnerabilidad correspondiente a esa condición. La documentación del proveedor puede incluir instrucciones específicas de remediación. Actualice las bibliotecas vulnerables a sus versiones seguras más recientes según los procedimientos recomendados por el proveedor. Normalmente, el flujo de trabajo de remediación depende de si implementó el paquete de Lambda mediante la carga de un archivo ZIP o la creación de una función de Lambda con una imagen de contenedor. Después de actualizar las bibliotecas, actualice el código de la función de Lambda para usar la versión corregida. Luego implemente la versión actualizada.
La función de Lambda tiene vulnerabilidades de software
Las funciones de Lambda suelen utilizar bibliotecas y dependencias de terceros que pueden contener vulnerabilidades de seguridad con una gravedad o capacidad de explotación menor en comparación con los CVE críticos. Si bien es posible que estas vulnerabilidades no críticas no se puedan explotar de inmediato, aún constituyen debilidades de seguridad que se podrían combinar con otras vulnerabilidades y poner en riesgo la función. Con el tiempo, pueden aparecer nuevas técnicas de explotación que aumenten el riesgo asociado a estas vulnerabilidades. Según las prácticas recomendadas de seguridad, recomendamos aplicar parches a estas vulnerabilidades para mantener un entorno seguro.
Revise la sección Referencias en la pestaña Vulnerabilidad correspondiente a esa condición. La documentación del proveedor puede incluir instrucciones específicas de remediación. Actualice las bibliotecas vulnerables a sus versiones seguras más recientes según los procedimientos recomendados por el proveedor. Normalmente, el flujo de trabajo de remediación depende de si implementó el paquete de Lambda mediante la carga de un archivo ZIP o la creación de una función de Lambda con una imagen de contenedor. Después de actualizar las bibliotecas, actualice el código de la función de Lambda para usar la versión corregida. Luego implemente la versión actualizada.