Coletar registros do Appian Cloud
Versão do analisador:4.0
Este documento explica como ingerir registros do Appian Cloud no Google Security Operations usando o agente do Bindplane.
O Appian Cloud é uma plataforma de automação com pouco código que permite às organizações criar aplicativos e fluxos de trabalho empresariais. O streaming de registros fornece registros de eventos de auditoria e segurança do seu ambiente do Appian Cloud por uma conexão VPN IPsec.
Antes de começar
Verifique se você tem os pré-requisitos a seguir:
- Uma instância do Google SecOps
- Windows Server 2016 ou mais recente ou host Linux com
systemd - Se você estiver executando por trás de um proxy, verifique se as portas do firewall estão abertas de acordo com os requisitos do agente do Bindplane.
- Licença Professional ou Signature com o Appian Cloud
- Registro dos URLs do seu ambiente do Appian
- VPN IPsec entre o Appian Cloud e o ambiente em que o agente do Bindplane será implantado
Receber o arquivo de autenticação de ingestão do Google SecOps
- Faça login no console do Google SecOps.
- Acesse Configurações do SIEM > Agentes de coleta.
- Baixe o arquivo de autenticação de ingestão.
Salve o arquivo com segurança no sistema em que o agente do Bindplane será instalado.
Receber o ID de cliente do Google SecOps
- Faça login no console do Google SecOps.
- Acesse Configurações do SIEM > Perfil.
Copie e salve o ID do cliente na seção Detalhes da organização.
Instalar o agente do BindPlane
Instale o agente do Bindplane no seu sistema operacional Windows ou Linux de acordo com as instruções a seguir.
Instalação do Windows
- Abra o prompt de comando ou o PowerShell como administrador.
Execute este comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietAguarde a conclusão da instalação.
Execute o seguinte comando para confirmar a instalação:
sc query observiq-otel-collectorO serviço vai aparecer como EM EXECUÇÃO.
Instalação do Linux
- Abra um terminal com privilégios de root ou sudo.
Execute este comando:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shAguarde a conclusão da instalação.
Execute o seguinte comando para confirmar a instalação:
sudo systemctl status observiq-otel-collectorO serviço vai aparecer como ativo (em execução).
Outros recursos de instalação
Para mais opções de instalação e solução de problemas, consulte o guia de instalação do agente do Bindplane.
Configurar o agente do Bindplane para ingerir syslog e enviar ao Google SecOps
Localizar o arquivo de configuração
Linux:
sudo nano /etc/bindplane-agent/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
Editar o arquivo de configuração
Substitua todo o conteúdo de
config.yamlpela seguinte configuração:receivers: tcplog: listen_address: "0.0.0.0:6514" exporters: chronicle/appian_cloud: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: APPIAN_CLOUD raw_log_field: body service: pipelines: logs/appian_to_chronicle: receivers: - tcplog exporters: - chronicle/appian_cloud
Parâmetros de configuração
Substitua os seguintes marcadores de posição:
Configuração do receptor:
listen_address: endereço IP e porta a serem detectados:0.0.0.0para ouvir em todas as interfaces (recomendado)- A porta
6514é a recomendada para o streaming de registros do Appian Cloud.
Configuração do exportador:
creds_file_path: caminho completo para o arquivo de autenticação de ingestão:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
customer_id: ID do cliente copiado do console do Google SecOpsendpoint: URL do endpoint regional:- EUA:
malachiteingestion-pa.googleapis.com - Europa:
europe-malachiteingestion-pa.googleapis.com - Ásia:
asia-southeast1-malachiteingestion-pa.googleapis.com - Consulte a lista completa em Endpoints regionais.
- EUA:
Salvar o arquivo de configuração
- Depois de editar, salve o arquivo:
- Linux: pressione
Ctrl+O,EntereCtrl+X. - Windows: clique em Arquivo > Salvar.
- Linux: pressione
Reinicie o agente do Bindplane para aplicar as mudanças.
Para reiniciar o agente do Bindplane no Linux, execute o seguinte comando:
sudo systemctl restart observiq-otel-collectorVerifique se o serviço está em execução:
sudo systemctl status observiq-otel-collectorVerifique se há erros nos registros:
sudo journalctl -u observiq-otel-collector -f
Para reiniciar o agente do Bindplane em Windows, escolha uma das seguintes opções:
Prompt de comando ou PowerShell como administrador:
net stop observiq-otel-collector && net start observiq-otel-collectorConsole de serviços:
- Pressione
Win+R, digiteservices.msce pressione Enter. - Localize o Coletor do OpenTelemetry da observIQ.
- Clique com o botão direito do mouse e selecione Reiniciar.
Verifique se o serviço está em execução:
sc query observiq-otel-collectorVerifique se há erros nos registros:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- Pressione
Ativar o streaming de registros para o Appian Cloud
- Abra um caso de suporte com a Appian, com o assunto Ativar o streaming de registros, e inclua os seguintes detalhes:
- URLs do ambiente
- Caminho de rede desejado, como uma VPN IPsec
- Endereço IP do agente do Bindplane
- Número da porta TCP do agente do Bindplane (por exemplo, 6514)
- O suporte do Appian agenda uma janela de manutenção e implanta a configuração.
Tabela de mapeamento de UDM
| Campo de registro | Mapeamento do UDM | Lógica |
|---|---|---|
available_heap_space_label |
additional.fields |
Mesclado |
cpu_core_count_label |
additional.fields |
Mesclado |
daemon_thread_count_label |
additional.fields |
Mesclado |
data_store_label |
additional.fields |
Mesclado |
devicetimestamp_label |
additional.fields |
Mesclado |
entity_label |
additional.fields |
Mesclado |
execute_time_label |
additional.fields |
Mesclado |
load_average_label |
additional.fields |
Mesclado |
operation_name_label |
additional.fields |
Mesclado |
operation_type_label |
additional.fields |
Mesclado |
permanent_generation_available_label |
additional.fields |
Mesclado |
permanent_generation_used_label |
additional.fields |
Mesclado |
prepare_time_label |
additional.fields |
Mesclado |
retcode_label |
additional.fields |
Mesclado |
session_count_label |
additional.fields |
Mesclado |
tenured_collection_count_label |
additional.fields |
Mesclado |
tenured_collection_time_label |
additional.fields |
Mesclado |
tenured_generation_available_label |
additional.fields |
Mesclado |
tenured_generation_usage_after_collection_label |
additional.fields |
Mesclado |
tenured_generation_used_label |
additional.fields |
Mesclado |
thread_label |
additional.fields |
Mesclado |
total_swap_space_label |
additional.fields |
Mesclado |
total_system_memory_label |
additional.fields |
Mesclado |
total_thread_count_label |
additional.fields |
Mesclado |
transform_time_label |
additional.fields |
Mesclado |
used_heap_space_label |
additional.fields |
Mesclado |
used_swap_space_label |
additional.fields |
Mesclado |
used_system_memory_label |
additional.fields |
Mesclado |
young_cllection_time_label |
additional.fields |
Mesclado |
young_collection_count_label |
additional.fields |
Mesclado |
has_principal_user |
extensions.auth.type |
Mapeado: true → AUTHTYPE_UNSPECIFIED |
src_host |
intermediary.hostname |
Mapeado diretamente |
src_ip |
intermediary.ip |
Mesclado |
time |
metadata.event_timestamp |
Analisado como yyyy-MM-dd HH:mm:ss |
event_type |
metadata.event_type |
Mapeado diretamente |
device |
metadata.product_event_type |
Mapeado diretamente |
product_type |
metadata.product_event_type |
Mapeado diretamente |
http_method |
network.http.method |
Mapeado diretamente |
useragent |
network.http.parsed_user_agent |
Renomeado/mapeado |
useragent |
network.http.user_agent |
Mapeado diretamente |
connectionid |
network.session_id |
Mapeado diretamente |
sessionID |
network.session_id |
Mapeado diretamente |
session_id |
network.session_id |
Mapeado diretamente |
domain |
principal.administrative_domain |
Mapeado diretamente |
application |
principal.application |
Mapeado diretamente |
host |
principal.asset.hostname |
Mapeado diretamente |
hostname |
principal.asset.hostname |
Mapeado diretamente |
IpAddress |
principal.asset.ip |
Mesclado |
host |
principal.hostname |
Mapeado diretamente |
hostname |
principal.hostname |
Mapeado diretamente |
IpAddress |
principal.ip |
Mesclado |
src_port |
principal.port |
Mapeado diretamente |
process_id |
principal.process.pid |
Mapeado diretamente |
url |
principal.url |
Mapeado diretamente |
roles |
principal.user.attribute.roles |
Mesclado |
companyname |
principal.user.company_name |
Mapeado diretamente |
email |
principal.user.email_addresses |
Mesclado |
user_id |
principal.user.email_addresses |
Mapeado: N/A → user_id |
modified_by_uuid |
principal.user.product_object_id |
Mapeado diretamente |
user |
principal.user.product_object_id |
Mapeado diretamente |
modified_by_username |
principal.user.userid |
Mapeado diretamente |
userId |
principal.user.userid |
Mapeado diretamente |
user_id |
principal.user.userid |
Mapeado diretamente |
username2 |
principal.user.userid |
Mapeado diretamente |
versionDetails |
security_result.about.platform_version |
Mapeado diretamente |
outcome_result |
security_result.action |
Mesclado |
security_result_action |
security_result.action |
Mesclado |
act |
security_result.action_details |
Mapeado diretamente |
status |
security_result.action_details |
Mapeado diretamente |
sec_result_category |
security_result.category |
Mesclado |
category |
security_result.category_details |
Mesclado |
desc |
security_result.description |
Mapeado diretamente |
details |
security_result.description |
Mapeado diretamente |
details_label |
security_result.detection_fields |
Mesclado |
endpoint_label |
security_result.detection_fields |
Mesclado |
execution_count_label |
security_result.detection_fields |
Mesclado |
maximum_execution_time_label |
security_result.detection_fields |
Mesclado |
maximum_response_size_label |
security_result.detection_fields |
Mesclado |
maximum_response_time_label |
security_result.detection_fields |
Mesclado |
mean_execution_time_label |
security_result.detection_fields |
Mesclado |
mean_response_size_label |
security_result.detection_fields |
Mesclado |
minimum_execution_time_label |
security_result.detection_fields |
Mesclado |
minimum_response_size_label |
security_result.detection_fields |
Mesclado |
model_label |
security_result.detection_fields |
Mesclado |
rolesAllow_label |
security_result.detection_fields |
Mesclado |
sqlcmd_label |
security_result.detection_fields |
Mesclado |
status_code_1xx_count_label |
security_result.detection_fields |
Mesclado |
status_code_2xx_count_label |
security_result.detection_fields |
Mesclado |
status_code_3xx_count_label |
security_result.detection_fields |
Mesclado |
status_code_4xx_count_label |
security_result.detection_fields |
Mesclado |
status_code_5xx_count_label |
security_result.detection_fields |
Mesclado |
type_label |
security_result.detection_fields |
Mesclado |
uuid_label |
security_result.detection_fields |
Mesclado |
severity |
security_result.severity |
Mapeado: "INFORMATIONAL","INFORMATION","INFO" → INFORMATIONAL, "WARNING", "MEDIUM" → `M... |
detail |
security_result.severity_details |
Mapeado diretamente |
action1 |
security_result.summary |
Mapeado diretamente |
msg |
security_result.summary |
Mapeado diretamente |
object |
security_result.summary |
Mapeado diretamente |
operation_detail |
security_result.summary |
Mapeado diretamente |
reason |
security_result.summary |
Mapeado diretamente |
summary |
security_result.summary |
Mapeado diretamente |
server_host |
target.asset.hostname |
Mapeado diretamente |
tar_host |
target.asset.hostname |
Mapeado diretamente |
src_ip1 |
target.asset.ip |
Mesclado |
hash |
target.file.md5 |
Mapeado diretamente |
document_name |
target.file.names |
Mesclado |
server_host |
target.hostname |
Mapeado diretamente |
tar_host |
target.hostname |
Mapeado diretamente |
src_ip1 |
target.ip |
Mesclado |
commandline |
target.process.command_line |
Mapeado diretamente |
action_label |
target.resource.attribute.labels |
Mesclado |
environment_label |
target.resource.attribute.labels |
Mesclado |
filters_label |
target.resource.attribute.labels |
Mesclado |
new_value_label |
target.resource.attribute.labels |
Mesclado |
original_value_label |
target.resource.attribute.labels |
Mesclado |
page_group_invoved_label |
target.resource.attribute.labels |
Mesclado |
page_involved_label |
target.resource.attribute.labels |
Mesclado |
record_identifier_label |
target.resource.attribute.labels |
Mesclado |
record_type_name_label |
target.resource.attribute.labels |
Mesclado |
record_type_url_stub_label |
target.resource.attribute.labels |
Mesclado |
setting_new_value_label |
target.resource.attribute.labels |
Mesclado |
setting_old_value_label |
target.resource.attribute.labels |
Mesclado |
site_involved_label |
target.resource.attribute.labels |
Mesclado |
site_url_stub_label |
target.resource.attribute.labels |
Mesclado |
view_label |
target.resource.attribute.labels |
Mesclado |
database |
target.resource.name |
Mapeado diretamente |
property |
target.resource.name |
Mapeado diretamente |
record_type_name |
target.resource.name |
Mapeado diretamente |
resourcename |
target.resource.name |
Mapeado diretamente |
site_involved |
target.resource.name |
Mapeado diretamente |
id |
target.resource.product_object_id |
Mapeado diretamente |
oid |
target.resource.product_object_id |
Mapeado diretamente |
queryid |
target.resource.product_object_id |
Mapeado diretamente |
sessionID |
target.resource.product_object_id |
Mapeado diretamente |
transactionId |
target.resource.product_object_id |
Mapeado diretamente |
action |
target.resource.resource_subtype |
Mapeado diretamente |
name |
target.resource.resource_subtype |
Mapeado diretamente |
user_uuid |
target.user.product_object_id |
Mapeado diretamente |
username1 |
target.user.userid |
Mapeado diretamente |
| N/A | extensions.auth.type |
Constante: AUTHTYPE_UNSPECIFIED |
| N/A | metadata.event_type |
Constante: GENERIC_EVENT |
| N/A | metadata.log_type |
Constante: APPIAN_CLOUD |
| N/A | metadata.product_name |
Constante: Cloud Platform |
| N/A | metadata.vendor_name |
Constante: Appian |
| N/A | security_result.severity |
Constante: INFORMATIONAL |
sessionID |
event.idm.read_only_udm.network.session_id |
Mapeado do registro de mudanças |
transactionId |
event.idm.read_only_udm.target.resource.product_object_id |
Mapeado do registro de mudanças |
versionDetails |
event.idm.read_only_udm.security_result.about.platform_version |
Mapeado do registro de mudanças |
application |
event.idm.read_only_udm.principal.application |
Mapeado do registro de mudanças |
IpAddress |
event.idm.read_only_udm.principal.ip |
Mapeado do registro de mudanças |
IpAddress |
event.idm.read_only_udm.principal.asset.ip |
Mapeado do registro de mudanças |
userId |
event.idm.read_only_udm.principal.user.userid |
Mapeado do registro de mudanças |
rolesAllow |
event.idm.read_only_udm.additional.fields |
Mapeado do registro de mudanças |
userRole |
event.idm.read_only_udm.additional.fields |
Mapeado do registro de mudanças |
status |
event.idm.read_only_udm.section_result.action_details |
Mapeado do registro de mudanças |
resourcename |
event.idm.read_only_udm.target.resource.name |
Mapeado do registro de mudanças |
commandline |
event.idm.read_only_udm.target.process.command_line |
Mapeado do registro de mudanças |
devicetimestamp |
event.idm.read_only_udm.additional.fields |
Mapeado do registro de mudanças |
email |
event.idm.read_only_udm.principal.user.email_addresses |
Mapeado do registro de mudanças |
document_name |
target.files.names |
Mapeado do registro de mudanças |
msg" and "reason |
security_result.summary |
Mapeado do registro de mudanças |
original_value", "setting_new_value", "setting_old_value", and "new_value |
target.resource.attribute.labels |
Mapeado do registro de mudanças |
page_involved", "site_involved", and "page_group_involved |
target.resource.attribute.labels |
Mapeado do registro de mudanças |
total_thread_count", "daemon_thread_count", used_heap_space", "available_heap_space", "tenured_generation_usage_after_collection", "tenured_generation_used", "tenured_generation_available", "permanent_generation_used", and "permanent_generation_available |
additional.fields |
Mapeado do registro de mudanças |
young_collection_count", "young_cllection_time", "tenured_collection_count", "tenured_collection_time", "cpu_core_count", "total_system_memory", "used_system_memory", "total_swap_space", "used_swap_space", "load_average", and "session_count |
additional.fields |
Mapeado do registro de mudanças |
record_identifier", "record_type_url_stub", "view", "filters", "environment", and "site_url_stub |
target.resource.attribute.labels |
Mapeado do registro de mudanças |
data_store", "entity", and "operation_type |
additional.fields |
Mapeado do registro de mudanças |
operation_name", "prepare_time", "transform_time", and "execute_time |
additional.fields |
Mapeado do registro de mudanças |
connectionid |
network.session.id |
Mapeado do registro de mudanças |
minimum_execution_time", "execution_count", "status_code_1xx_count", "status_code_2xx_count", "status_code_3xx_count", "status_code_4xx_count", "status_code_5xx_count", "minimum_response_size", "maximum_response_time", "maximum_response_size", "mean_execution_time", and "maximum_response_size |
security_result.detection_fields |
Mapeado do registro de mudanças |
Registro de alterações
Ver o registro de alterações deste analisador
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.