Recolha registos de auditoria de administrador da Atlassian Cloud
Este documento explica como carregar registos de auditoria de administrador do Atlassian Cloud para o Google Security Operations através do AWS S3. O analisador tenta primeiro processar a mensagem recebida como um objeto JSON. Se falhar, usa expressões regulares (padrões Grok) para extrair campos de vários formatos de registo do Atlassian Jira e, por fim, mapeia os dados extraídos para o modelo de dados unificado (UDM).
Antes de começar
Certifique-se de que tem os seguintes pré-requisitos:
- Instância do Google SecOps
- Acesso privilegiado ao AWS
- Acesso privilegiado ao Atlassian
Configure o AWS IAM e o contentor do S3
- Crie um contentor do Amazon S3 seguindo este manual do utilizador: Criar um contentor
- Inicie sessão na consola da AWS.
- Aceda a S3 > Criar contentor.
- Indique um nome para o contentor (por exemplo,
atlassian-admin-audit-logs
). - Deixe as outras predefinições (ou configure a encriptação e o controlo de versões, se necessário).
- Clique em Criar.
- Guarde o Nome e a Região do contentor para referência futura.
- Crie um utilizador seguindo este guia do utilizador: criar um utilizador do IAM.
- Selecione o utilizador criado.
- Selecione o separador Credenciais de segurança.
- Clique em Criar chave de acesso na secção Chaves de acesso.
- Selecione Serviço de terceiros como Exemplo de utilização.
- Clicar em Seguinte.
- Opcional: adicione uma etiqueta de descrição.
- Clique em Criar chave de acesso.
- Clique em Transferir ficheiro CSV e armazene o ID de acesso e a chave de acesso secreta para referência futura.
- Clique em Concluído.
- No separador Autorizações em Políticas de autorizações, clique em Adicionar autorizações.
- Selecione Anexar políticas diretamente.
- Pesquise a política AmazonS3FullAccess.
- Selecione a política.
- Clicar em Seguinte.
- Clique em Adicionar autorizações.
Configure a chave da API no Atlassian
- Inicie sessão no Atlassian.
- Aceda a Definições > Chaves de API.
- Clique em Criar chave da API na parte superior direita.
- Indique um nome exclusivo e descritivo para a chave.
- Escolha uma nova data de validade em Expira a.
- Clique em Criar para guardar.
- Copie e guarde a chave da API e o ID da organização.
- Clique em Concluído.
Configure os pacotes necessários
Inicie sessão no anfitrião de recolha de registos (por exemplo, uma VM da AWS) e execute o seguinte para configurar as credenciais da AWS:
pip install boto3 requests aws configure
Crie um script do Atlassian Log Puller
Crie o seguinte ficheiro introduzindo
sudo vi area1_to_s3.py
e copie o seguinte código:- Ajuste o seguinte:
#!/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()
Guarde e saia do
vi
clicando emesc
> escreva:wq
**.
Armazene variáveis de ambiente
Crie um ficheiro seguro para armazenar variáveis de ambiente em
/etc/atlassian_audit.env
:export ATL_TOKEN="your_atlassian_key" export ATL_ORG_ID="your_org_id" export AWS_PROFILE="atlassian-logs"
Certifique-se de que o ficheiro está seguro:
chmod 600 /etc/atlassian_audit.env
Automatize com o Cron
Crie um script de contentor para o Cron executando
sudo vi /usr/local/bin/run_atlassian_audit.sh
e, em seguida, copie o seguinte código:#!/usr/bin/env bash source /etc/atlassian_audit.env python3 /opt/scripts/export_atlassian_audit.py
Torne o ficheiro executável:
chmod +x /usr/local/bin/run_atlassian_audit.sh
Configuração para execução diária às 02:00 UTC:
crontab -e 0 2 * * * /usr/local/bin/run_atlassian_audit.sh >> /var/log/atl_audit.log 2>&1
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.