
Realice un análisis de malware basado en archivos en sus servidores on-prem con AWS
Para los equipos de seguridad, puede ser difícil monitorear continuamente todos los servidores on-premises debido a restricciones presupuestarias y de recursos. Un antivirus basado en firmas es insuficiente, ya que el malware moderno utiliza diversas técnicas de ofuscación. Los administradores de servidores pueden carecer de visibilidad histórica de eventos de seguridad en todos los servidores. Determinar sistemas comprometidos y copias de seguridad seguras para restaurar durante incidentes es un desafío sin una supervisión y alertas centralizadas. Configurar y mantener herramientas de seguridad adicionales para la detección avanzada de amenazas es una carga para los administradores. El tiempo medio rápido para detectar y remediar infecciones es crítico, pero difícil de lograr sin la solución automatizada adecuada.
Determinar qué imagen de respaldo es segura para restaurar durante incidentes sin inteligencia de amenazas integral es otro problema difícil. Incluso si hay copias de seguridad disponibles, sin saber cuándo exactamente un sistema fue comprometido, es arriesgado restaurar ciegamente desde ellas. Esto aumenta la posibilidad de restaurar malware y perder datos y sistemas aún más valiosos durante la respuesta a incidentes. Se necesita una solución automatizada que pueda identificar la línea de tiempo de la infiltración y recomendar copias de seguridad seguras para la restauración.
La solución aprovecha AWS Elastic Disaster Recovery (AWS DRS), Amazon GuardDuty y AWS Security Hub para abordar los desafíos de la detección de malware en servidores on-premises.
Esta combinación de servicios proporciona una forma rentable de monitorear continuamente los servidores on-premises en busca de malware sin afectar el rendimiento. También ayuda a determinar puntos de restauración seguros en el tiempo para la recuperación a partir de copias de seguridad, identificando la línea de tiempo de los compromisos mediante análisis de amenazas centralizados.

La solución de escaneo de malware asume que los servidores on-premises ya están siendo replicados con AWS DRS, y que Amazon GuardDuty y AWS Security Hub están habilitados. El stack cdk en este repositorio solo implementará los cuadros etiquetados como DRS Malware Scan en el diagrama de arquitectura.
Una cuenta de AWS.
Amazon Elastic Disaster Recovery (DRS) configurado, con al menos 1 servidor fuente en sincronización. Si no es así, consulte esta documentación. La Configuración de Replicación debe considerar el cifrado de EBS utilizando una Clave Administrada por el Cliente (CMK) de AWS Key Management Service (AWS KMS). Amazon GuardDuty Malware Protection no admite la clave administrada por defecto de AWS para EBS.
Privilegios IAM para implementar los componentes de esta solución.
Amazon GuardDuty habilitado. Si no es así, consulte esta documentación.
Amazon Security Hub habilitado. Si no es así, consulte esta documentación.
Advertencia
Actualmente, Amazon GuardDuty Malware scan no admite volúmenes EBS cifrados con claves administradas por EBS. Si desea utilizar esta solución para escanear sus servidores on-premises (o de otras nubes) replicados con DRS, debe configurar la replicación de DRS con su propia clave de cifrado en KMS. Si actualmente utiliza claves administradas por EBS con sus servidores replicantes, puede cambiar la configuración de cifrado para usar su propia clave de KMS en la consola de DRS.
Cree un entorno Cloud9 con imagen Ubuntu (al menos t3.small para mejor rendimiento) en su cuenta de AWS. Abra su entorno Cloud9 y clone el código de este repositorio. Nota: Amazon Linux 2 tiene node v16, que ya no tiene soporte desde el 2023-09-11.
git clone https://github.com/aws-samples/drs-malware-scan
cd drs-malware-scan
sh check_loggroup.sh
Implemente el stack CDK ejecutando el siguiente comando en el terminal de Cloud9 y confirme la implementación.
npm install
cdk bootstrap
cdk deploy --all
Nota
La solución consta de 2 stacks:
cdk deploy DrsMalwareScanStackcdk deploy ScanReportStackSi desea implementar ambos stacks, puede ejecutar cdk deploy --all
Asegúrese de que los servidores fuente de DRS se estén replicando continuamente y en un estado de replicación saludable. Esto es necesario debido a una limitación en la API de GuardDuty: al momento de redactar este documento, no hay una API pública de AWS para escanear instantáneas de DRS. La única forma de realizar un escaneo de malware sobre los datos de los servidores fuente de DRS es realizar un escaneo en los Servidores de Replicación (instancias de Amazon EC2) administrados por AWS DRS. Si la replicación no se está ejecutando en un estado saludable, su escaneo de malware de DRS puede no completarse con éxito. Debe confirmar ReadyforRecovery=Ready.
Identifique los Servidores Fuente a escanear. De todos los servidores que se están replicando con AWS DRS, debe determinar la lista de servidores candidatos a escanear. Desde la consola de AWS DRS, copie los nombres de los servidores fuente que desea que la solución escanee y péguelos en un editor de texto. Esto se utilizará en el siguiente paso.





Opcional: Verifique el archivo de informe de escaneo de malware en S3. En caso de que haya implementado el stack ScanReportStack, puede programar un informe para que se ejecute con la frecuencia que mejor se adapte a sus necesidades. El informe extraerá el contenido de la tabla DynamoDB DRSVolumeAnnotationsDDBTable y lo escribirá en el bucket de Amazon S3 creado por el stack (con prefijo scanreportstack-scanreportbucket). Este informe se sobrescribe (y es acumulativo) cada vez que se activa la regla.


Opcional: Para configuración de múltiples cuentas. En caso de que tenga una cuenta de seguridad designada para centralizar todos los hallazgos de seguridad como parte de una estrategia de múltiples cuentas, esta solución también funcionará. El equipo de seguridad puede realizar el mismo análisis en la cuenta de seguridad; los hallazgos de Security Hub y GuardDuty reportados en las cuentas vinculadas se copian automáticamente a la cuenta de seguridad centralizada.
Todas las funciones lambda enrutan registros a Amazon CloudWatch. Puede verificar la ejecución de cada función inspeccionando los grupos de registros de CloudWatch adecuados para cada función; busque el patrón /aws/lambda/DrsMalwareScanStack-*.
La duración de la operación de escaneo de malware dependerá de la cantidad de servidores/volúmenes a escanear (y su tamaño). Cuando Amazon GuardDuty encuentra malware, genera un hallazgo en SecurityHub: la solución intercepta este evento y ejecuta la lambda $StackName-SecurityHubAnnotations para aumentar el hallazgo de SecurityHub con una nota que contiene los nombres de los servidores fuente de DRS con malware.
Las colas SQS FIFO se pueden monitorear utilizando las métricas Messages available y Message in flight desde la consola de AWS SQS.
La tabla DynamoDB de Anotaciones de Volumen DRS realiza un seguimiento del estado de cada operación de escaneo de malware.
Amazon GuardDuty tiene razones documentadas para omitir operaciones de escaneo. Para obtener más información, consulte Razones para omitir un recurso durante el escaneo de malware.
Para analizar los registros de las operaciones de escaneo de malware de Amazon GuardDuty, puede consultar el grupo de registros de Amazon CloudWatch /aws/guardduty/malware-scan-events. El período de retención de registros predeterminado para este grupo de registros es de 90 días, después del cual los eventos de registro se eliminan automáticamente.
Ejecute los siguientes comandos en su terminal:
cdk destroy --all
(Opcional) Elimine los grupos de registros de CloudWatch asociados con las funciones Lambda.
Para los fines de este análisis, hemos asumido un escenario ficticio como ejemplo. Las siguientes estimaciones de costos se basan en servicios ubicados en la región de Norte de Virginia (us-east-1).
| Costo Mensual | Costo Total por 12 Meses |
|---|---|
| 171,22 USD | 2.054,74 USD |
Nota Las cifras presentadas aquí son estimaciones basadas en los supuestos descritos anteriormente, derivadas de la Calculadora de Precios de AWS. Para más detalles, consulte esta calculadora de precios como referencia. Puede ajustar la configuración de los servicios en la calculadora referenciada para hacer su propia estimación. Esta estimación no incluye posibles impuestos o cargos adicionales que pudieran ser aplicables. Es crucial recordar que las tarifas reales pueden variar según el uso y cualquier servicio adicional no cubierto en este análisis. Para entornos críticos, se recomienda incluir el Plan de Soporte Empresarial (no considerado en la estimación)
Consulte CONTRIBUTING para obtener más información.
Este código de muestra está licenciado bajo la Licencia MIT-0. Consulte el archivo LICENSE.
| Nombre del Servicio | Descripción | Costo Mensual (USD) |
|---|
| AWS Elastic Disaster Recovery | 2 Servidores Fuente / 1 Servidor de Replicación / 4 discos / 100 GB / 30 días de Período de Retención de Instantáneas EBS | 71,41 |
| Amazon GuardDuty | 3 TB Escaneados por malware/mes | 94,56 |
| Amazon DynamoDB | 100 MB / 1 Lectura/segundo / 1 Escritura/segundo | 3,65 |
| AWS Security Hub | 1 Cuenta / 100 Verificaciones de Seguridad / 1000 Hallazgos Ingresados | 0,10 |
| AWS EventBridge | 1M eventos personalizados | 1,00 |
| Amazon CloudWatch | 1 GB ingerido/mes | 0,50 |
| AWS Lambda | 5 Funciones Lambda ARM - 128 MB / 10 segundos | 0,00 |
| Amazon SQS | 2 SQS FIFO | 0,00 |
| Total | 171,22 |