Recoger registros de auditoría de administrador de Atlassian Cloud

Disponible en:

En este documento se explica cómo ingerir registros de auditoría de administrador de Atlassian Cloud en Google Security Operations mediante AWS S3. El analizador primero intenta procesar el mensaje entrante como un objeto JSON. Si no funciona, usa expresiones regulares (patrones Grok) para extraer campos de varios formatos de registro de Atlassian Jira y, por último, asigna los datos extraídos al modelo de datos unificado (UDM).

Antes de empezar

Asegúrate de que cumples los siguientes requisitos previos:

  • Instancia de Google SecOps
  • Acceso privilegiado a AWS
  • Acceso privilegiado a Atlassian

Configurar AWS IAM y el segmento de S3

  1. Crea un segmento de Amazon S3 siguiendo esta guía del usuario: Crear un segmento.
  2. Inicia sesión en la consola de AWS.
  3. Ve a S3 > Crear segmento.
  4. Asigna un nombre al segmento (por ejemplo, atlassian-admin-audit-logs).
  5. Deja los demás valores predeterminados (o configura el cifrado y el control de versiones si es necesario).
  6. Haz clic en Crear.
  7. Guarda el nombre y la región del contenedor para consultarlos más adelante.
  8. Crea un usuario siguiendo esta guía: Crear un usuario de gestión de identidades y accesos.
  9. Selecciona el usuario creado.
  10. Selecciona la pestaña Credenciales de seguridad.
  11. En la sección Claves de acceso, haz clic en Crear clave de acceso.
  12. Selecciona Servicio de terceros como Caso práctico.
  13. Haz clic en Siguiente.
  14. Opcional: añade una etiqueta de descripción.
  15. Haz clic en Crear clave de acceso.
  16. Haz clic en Descargar archivo CSV y guarda el ID de acceso y la clave de acceso secreta para futuras consultas.
  17. Haz clic en Listo.
  18. En la pestaña Permisos de Políticas de permisos, haz clic en Añadir permisos.
  19. Seleccione Adjuntar políticas directamente.
  20. Busca la política AmazonS3FullAccess.
  21. Selecciona la política.
  22. Haz clic en Siguiente.
  23. Haz clic en Añadir permisos.

Configurar la clave de API en Atlassian

  1. Inicia sesión en Atlassian.
  2. Ve a Ajustes > Claves de API.
  3. En la parte superior derecha, haz clic en Crear clave de API.
  4. Proporciona un nombre único y descriptivo para la clave.
  5. Elige una nueva fecha de vencimiento en Vence el.
  1. Haz clic en Crear para guardar los datos.
  2. Copia y guarda los valores de API Key (Clave de API) y Organization ID (ID de organización).
  3. Haz clic en Listo.

Configurar los paquetes necesarios

  1. Inicia sesión en tu host de recogida de registros (por ejemplo, una VM de AWS) y ejecuta lo siguiente para configurar las credenciales de AWS:

    pip install boto3 requests
    aws configure
    

Crear una secuencia de comandos de extracción de registros de Atlassian

  1. Crea el siguiente archivo introduciendo sudo vi area1_to_s3.py y copia el siguiente código:

    • Ajusta lo siguiente:
    #!/usr/bin/env python3
    import os, requests, boto3, datetime
    
    # Settings
    TOKEN = os.environ["ATL_TOKEN"]
    ORG_ID = os.environ["ATL_ORG_ID"]
    AWS_PROFILE = os.getenv("AWS_PROFILE")
    BUCKET = "atlassian-admin-audit-logs"
    
    def fetch_events(cursor=None):
        url = f"https://api.atlassian.com/admin/v1/orgs/{ORG_ID}/events"
        headers = {"Authorization":f"Bearer {TOKEN}"}
        params = {"limit":100, "cursor":cursor} if cursor else {"limit":100}
        resp = requests.get(url, headers=headers, params=params)
        resp.raise_for_status()
        return resp.json()
    
    def upload_json(data, filename):
        session = boto3.Session(profile_name=AWS_PROFILE) if AWS_PROFILE else boto3.Session()
        session.client("s3").put_object(Bucket=BUCKET, Key=filename, Body=data, ContentType="application/json")
        print(f"Uploaded {filename}")
    
    def main():
        today = datetime.datetime.utcnow().strftime("%Y-%m-%d")
        cursor = None
        count = 0
        while True:
            resp = fetch_events(cursor)
            key = f"audits/{today}/events_{count}.json"
            upload_json(resp["data"], key)
            count += 1
            cursor = resp.get("links",{}).get("next")
            if not cursor: break
    
    if __name__=="__main__":
        main()
    
  2. Para guardar y salir de vi, haz clic en esc > escribe :wq**.

Almacenar variables de entorno

  1. Crea un archivo seguro para almacenar las variables de entorno en /etc/atlassian_audit.env:

    export ATL_TOKEN="your_atlassian_key"
    export ATL_ORG_ID="your_org_id"
    export AWS_PROFILE="atlassian-logs"
    
  2. Asegúrate de que el archivo sea seguro:

    chmod 600 /etc/atlassian_audit.env
    

Automatizar con Cron

  1. Crea un script de envoltorio para Cron ejecutando sudo vi /usr/local/bin/run_atlassian_audit.sh y, a continuación, copia el siguiente código:

    #!/usr/bin/env bash
    source /etc/atlassian_audit.env
    python3 /opt/scripts/export_atlassian_audit.py
    
  2. Haz que el archivo sea ejecutable:

    chmod +x /usr/local/bin/run_atlassian_audit.sh
    
  3. Configúralo para que se ejecute todos los días a las 02:00 UTC:

    crontab -e
    0 2 * * * /usr/local/bin/run_atlassian_audit.sh >> /var/log/atl_audit.log 2>&1
    

¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.