Use uma ferramenta de linha de comando para analisar o arquivo de log offline e extrair informações como os 10 principais endereços IP por volume de solicitações, user agents e referrers. Este tópico demonstra como analisar logs de acesso offline do CDN com uma ferramenta de linha de comando em ambiente Linux.
Coletar e preparar dados de log
Consulte Início rápido para obter o arquivo de log
aliyundoc.com_2018_10_30_000000_010000.gz.-
Faça upload do arquivo de log para um servidor Linux local.
Exemplo de entrada de log:
[9/Jun/2015:01:58:09 +0800] 10.10.10.10 - 1542 "-" "GET http://www.aliyun.com/index.html" 200 191 2830 MISS "Mozilla/5.0 (compatible; AhrefsBot/5.0; +http://example.com/robot/)" "text/html" -
Acesse o servidor Linux local e execute o comando a seguir para descompactar o arquivo de log.
gzip -d aliyundoc.com_2018_10_30_000000_010000.gzA descompactação gera um arquivo de log chamado
aliyundoc.com_2018_10_30_000000_010000.Regra de nomenclatura dos arquivos de log: nome_do_domínio_acelerado_ano_mês_dia_hora_inicial_hora_final[campo_de_extensão].gz. O campo de extensão começa com sublinhado (_). Exemplo:
aliyundoc.com_2018_10_30_000000_010000_xx.gz.NotaAlguns nomes de arquivos de log podem não conter o campo de extensão. Exemplo:
aliyundoc.com_2018_10_30_000000_010000.gz.
Identificar e filtrar comportamentos anômalos
Verificar o volume de solicitações
Analise o número de solicitações por IP nos dados de log de acesso offline para identificar volumes anômalos. Um volume de solicitações anômalo geralmente apresenta as seguintes características:
Volume excessivamente alto: revise detalhadamente a frequência de acesso de um único endereço IP de source. Se um IP apresentar volume de solicitações com desvio significativo da linha de base em um período específico, há forte indício de abuso de tráfego.
-
Grande volume em curto período: observe picos repentinos de tráfego ou padrões cíclicos incomuns de solicitações.
Liste os 10 principais endereços IP por volume de solicitações.
cat [$Log_Txt] | awk '{print $3}' |sort|uniq -c|sort -nr |head -10Notaawk '{print $3}': extrai a terceira coluna do arquivo de log, correspondente ao endereço IP. As colunas são separadas por espaços.sort: ordena os endereços IP.uniq -c: conta as ocorrências de cada endereço IP.sort -nr: classifica os resultados por contagem em ordem decrescente.head -n 10: recupera os 10 principais endereços IP com mais solicitações.[$Log_Txt]: substitua pelo nome do seu arquivo de log, por exemplo,aliyundoc.com_xxxxxxx.
Análise de user agent
Examine o user agent no log de acesso offline para identificar solicitações anômalas. User agents anômalos geralmente apresentam as seguintes características:
-
User agent anômalo ou falsificado: muitas ferramentas de scraping usam user agents padrão ou falsificados. Identifique-os filtrando user agents incomuns, suspeitos ou vazios.
Extraia e conte os user agents.
grep -o '"Mozilla[^"]*' [$Log_Txt] | cut -d'"' -f2 | sort | uniq -c | sort -nr | head -n 10Filtre os user agents comuns para identificar os suspeitos.
grep -v -E "Firefox|Chrome|Safari|Edge" [$Log_Txt]Conte o número de solicitações com user agent vazio.
awk '!/Mozilla/' [$Log_Txt] | wc -lNotagrep -o: exibe apenas o conteúdo correspondente.grep -v -E: inverte a correspondência para mostrar linhas que não coincidem com os padrões especificados.wc -l: conta o número de linhas.
Análise de padrões de solicitação
Avalie as URLs solicitadas no log de acesso offline para detectar padrões anômalos. Solicitações de URL anômalas normalmente apresentam as seguintes características:
Alta similaridade de URLs: o scraping de tráfego frequentemente envolve um grande número de solicitações para URLs semelhantes ou idênticas. A análise de padrões de URL ajuda a detectar essas solicitações anômalas.
-
Alta proporção de solicitações para tipos específicos de recursos: um número incomum de solicitações para recursos específicos, como imagens, arquivos CSS e JS, pode indicar scraping de tráfego.
Liste as 10 principais URLs por volume de solicitações.
grep -oP 'https?://[^" ]+' [$Log_Txt] | sort | uniq -c | sort -nr | head -n 10
Análise de códigos de status
Examine os códigos de status no log offline para identificar solicitações anômalas.
Procure uma alta proporção de respostas 4xx ou 5xx: um elevado número de códigos de status 4xx ou 5xx provenientes de um único endereço IP pode indicar tentativas maliciosas de rastreamento.
Conte as ocorrências dos diferentes códigos de status.
awk '{print $9}' [$Log_Txt] | sort | uniq -c | sort -nr
Liste os 10 principais endereços IP que geraram códigos de status 400.
grep ' 400 ' [$Log_Txt] | awk '{print $3}' | sort | uniq -c | sort -nr | head -n 10
Análise de referrer
Identifique a origem do tráfego anômalo analisando o campo Referer no log de acesso offline. Quando seu domínio acelerado apresentar um aumento incomum de tráfego, a análise de referrer ajuda a determinar se o tráfego vem de fontes legítimas, hotlinking ou ataques maliciosos. Valores de referrer anômalos geralmente apresentam as seguintes características:
-
Alta porcentagem de solicitações com referrer vazio: um grande número de solicitações sem referrer pode indicar acesso direto ou scraping por ferramentas. Em circunstâncias normais, solicitações de recursos estáticos, como imagens e vídeos, incluem um referrer da página de source. Se o tráfego de solicitações com referrer vazio for significativamente alto, investigue essas solicitações.
Liste os 10 principais referrers por volume de solicitações.
awk '{print $6}' [$Log_Txt] | sort | uniq -c | sort -nr | head -n 10Conte as solicitações com referrer vazio.
awk '$6=="\"-\"" {count++} END {print count}' [$Log_Txt]Para solicitações com referrer vazio, liste os 10 principais endereços IP por volume de solicitações.
awk '$6=="\"-\"" {print $3}' [$Log_Txt] | sort | uniq -c | sort -nr | head -n 10Nota$6refere-se ao sexto campo na entrada de log, correspondente ao valor do referrer. Um referrer vazio é representado como"-"no log.Se as solicitações com referrer vazio gerarem grande quantidade de tráfego, use o recurso de proteção contra hotlinking baseado em Referer do CDN para configure uma lista de permissões ou lista de bloqueios e restringir o acesso de solicitações com referrer vazio.
-
Caso os principais referrers não pertençam aos seus domínios, outros sites podem estar fazendo hotlinking dos seus recursos.
Filtre as solicitações de um referrer específico e conte os endereços IP correspondentes.
grep 'example.com' [$Log_Txt] | awk '{print $3}' | sort | uniq -c | sort -nr | head -n 10NotaSubstitua
example.compelo domínio de referrer suspeito. Este comando identifica quais endereços IP usam esse referrer para fazer hotlinking dos seus recursos.