NESTA PÁGINA
Entender nossa abordagem para lidar com vulnerabilidades conhecidas e desconhecidas
Entender objetos de ataque EDP predefinidos e grupos de objetos
Listando condições de teste de IDP para um protocolo específico
Exemplo: Assinatura composta para detectar a exploração de uma vulnerabilidade HTTP
Exemplo: usando parâmetros de vinculação de tempo para detectar um ataque de força bruta
Referência: Números de protocolo de objetos de ataque personalizados
Exemplo: configuração de ataques baseados em anomalias de protocolo IDP
Atacar objetos e grupos de objetos para políticas de IDP
Este tópico explica detalhes sobre objetos e grupos de ataque IDP. Ele explica como criar, modificar e usar objetos e grupos de ataque para proteger as redes contra várias ameaças e vulnerabilidades. Isso garante que medidas de segurança robustas estejam em vigor.
Objetos de ataque, objetos com assinaturas de aplicativos e objetos de serviço são usados na definição de regras de política de IDP. Como resposta a novas vulnerabilidades, a Juniper Networks fornece periodicamente um arquivo contendo atualizações de banco de dados de ataque no site da Juniper. Você pode baixar este arquivo para proteger sua rede contra novas ameaças. Esses objetos e grupos de ataque são projetados para detectar padrões de ataque conhecidos e anomalias de protocolo dentro do tráfego de rede. Você pode configurar objetos e grupos de ataque como condições de correspondência nas regras da política de IDP.
Para obter mais informações, veja os seguintes tópicos:
Entender nossa abordagem para lidar com vulnerabilidades conhecidas e desconhecidas
Este tópico inclui as seguintes seções:
Vulnerabilidades conhecidas
Vulnerabilidades conhecidas são aquelas documentadas na comunidade de segurança da Internet. A comunidade de segurança da Internet é composta por várias organizações de segurança, analistas de segurança e fóruns de segurança. A comunidade de segurança descobre e analisa continuamente novos ataques e troca essas informações pela Internet. Dessa forma, eles podem localizar, identificar e realmente entender um ataque rapidamente.
Alguns avisos de segurança incluem o código de ataque real. Você pode usar as informações de ataque e o código de ataque para capturar informações de pacotes e contextos de serviço. Você pode usar essas informações para criar um objeto de ataque de assinatura personalizada.
Infelizmente, a maioria dos avisos não publica o código de ataque com a descrição do ataque. Se você não conseguir obter o código de ataque, leia o aviso cuidadosamente e tente reconstruir o básico do pacote de ataque.
Lembre-se de isolar o código adquirido de fontes desconhecidas.
As seguintes organizações estão ativas na comunidade de segurança e são um bom recurso para localizar informações de ataque:
NVD — Banco de dados nacional de vulnerabilidades (http://nvd.nist.gov). O repositório governamental dos EUA de dados de gerenciamento de vulnerabilidades representados usando o Protocolo de Automação de Conteúdo de Segurança (SCAP).
SANS — SysAdmin, Audit, Network, Security Institute (www.sans.org). Uma organização de pesquisa, certificação e educação de segurança da informação que fornece alertas de segurança. Também hospeda o Internet Storm Center (ISC) em http://www.incidents.org.
CVE — Vulnerabilidades e exposições comuns (http://cve.mitre.org). Uma lista padronizada de vulnerabilidades e outras exposições de segurança da informação.
BugTraq (http://securityfocus.com/archive/1). Uma lista de discussão moderada hospedada pelo Security Focus que discute e anuncia vulnerabilidades de segurança de computadores.
Centro de coordenação de CERT (http://www.cert.org). Uma organização de alerta de segurança financiada pelo governo federal que fornece avisos de segurança.
Segurança de tempestade de pacotes (http://packetstormsecurity.nl). Uma organização sem fins lucrativos de profissionais de segurança que fornece informações de segurança por meio de notícias de segurança, avisos, fóruns e código de ataque.
Metasploit (http://www.metasploit.com). A Metasploit fornece informações úteis para realizar testes de penetração, desenvolvimento de assinaturaS IDS e pesquisa de exploração.
FrSIRT — Equipe francesa de resposta a incidentes de segurança (http://www.frsirt.com). O FrSIRT é uma organização independente de pesquisa de segurança que oferece avisos de segurança e serviços de alerta de vulnerabilidades e notificação em tempo real.
ISS — Internet Security Systems (http://www.iss.net). Uma empresa de segurança de Internet que fornece alertas e níveis de ameaças na Internet.
Vulnerabilidades desconhecidas
Vulnerabilidades desconhecidas são aquelas que não foram documentadas em avisos da comunidade de segurança da Internet. Nesses casos, os logs de eventos de eventos de segurança da Série IDP, firewall ou IDP gerados em seu ambiente de produção alertam você para atividades suspeitas e tráfego anormal. Em seu ambiente de produção, você usará ferramentas de registro de pacotes para capturar pacotes e informações de contexto de serviço com as quais você pode analisar e experimentar posteriormente em seu laboratório.
Teste de um objeto de ataque personalizado
Recomendamos o fluxo de trabalho a seguir para testar um objeto de ataque personalizado. Observe que o procedimento a seguir consiste em etapas gerais e é destinado a usuários especializados que estejam familiarizados com essas tarefas.
Para testar um objeto de ataque personalizado:
- Crie uma nova política de segurança e uma nova regra de base de regras de IDP que inclua apenas o objeto de ataque personalizado a ser testado. Habilite o registro de logs e pacotes.
- Empurre a política para o dispositivo de laboratório da Série IDP.
- Do computador invasor, reproduz o ataque que tem como alvo o computador da vítima.
- Use o Security Director Log Viewer para ver se o tráfego gerou logs como esperado.
Se o seu teste falhar, analise o aviso de ataque, o RFC de protocolo e o código de ataque ou capturas de pacotes para identificar informações adicionais que possam ajudá-lo a ajustar suas configurações. O problema mais frequente que requer afinação é a sintaxe da expressão DFA.
Criação de um objeto de ataque de assinatura
Um objeto de ataque assinatura é um padrão que você deseja que o sistema detecte. Você usa uma expressão DFA para representar o padrão. Todas as outras propriedades de assinatura que você pode definir (como contexto de serviço ou protocolo, direção e outras restrições) são fornecidas para que você possa otimizar o desempenho do sistema na detecção do padrão e eliminar falsos positivos. Em geral, você deseja ajustar as configurações de um objeto de ataque de assinatura para que o sistema o procure em todos os contextos onde ele possa ocorrer e em nenhum outro contexto.
Para configurar um objeto de ataque de assinatura:
Entender objetos de ataque EDP predefinidos e grupos de objetos
O pacote de segurança para detecção e prevenção de intrusões (IDP) contém um banco de dados de objetos de ataque IDP predefinidos e grupos de objetos de ataque IDP que você pode usar em políticas de IDP para combinar o tráfego com ataques conhecidos e desconhecidos. A Juniper Networks atualiza regularmente os objetos e grupos de ataque predefinidos com padrões de ataque recém-descobertos.
As atualizações do banco de dados de objetos de ataque podem incluir:
Novas descrições ou gravidades para objetos de ataque existentes
Novos objetos de ataque
Exclusão de objetos de ataque obsoletos
Este tópico inclui as seguintes seções:
Objetos de ataque predefinidos
Objetos de ataque predefinidos estão listados em uma ordem alfabética. Esses objetos de ataque têm nomes únicos que ajudam você a identificar o ataque. A primeira parte do nome indica o grupo ao qual o objeto de ataque pertence. Por exemplo:
FTP:USER:ROOT
— Pertence aoFTP:USER
grupo. Ele detecta tentativas de fazer login em um servidor FTP usando aroot
conta.HTTP:HOTMAIL:FILE-UPLOAD
— Pertence aoHTTP:HOTMAIL
grupo. Ele detecta arquivos anexados a e-mails enviados pelo serviçoHotmail
de e-mail baseado na Web.
Grupos predefinidos de objetos de ataque
A lista de grupos de ataque predefinidos exibe os objetos de ataque nas categorias descritas abaixo. Um conjunto de objetos de ataque recomendados que a Juniper Networks considera serem ameaças graves também estão disponíveis nesta lista. Os objetos de ataque recomendados são organizados nas seguintes categorias:
Grupo de objetos de ataque |
Descrição |
---|---|
Tipo de ataque |
Grupos atacam objetos por tipo (anomalia ou assinatura). Dentro de cada tipo, os objetos de ataque são agrupados por gravidade. |
Categoria |
Grupos atacam objetos por categorias predefinidas. Dentro de cada categoria, os objetos de ataque são agrupados por gravidade. |
Sistema Operacional |
Grupos atacam objetos pelo sistema operacional ao qual se aplicam: BSD, Linux, Solaris ou Windows. Em cada sistema operacional, os objetos de ataque são agrupados por serviços e gravidade. |
Severidade |
Grupos atacam objetos pela gravidade atribuída ao ataque. O IDP tem cinco níveis de gravidade: Crítico, Maior, Menor, Aviso, Informações. Dentro de cada gravidade, os objetos de ataque são agrupados por categoria. |
Serviços Web |
Grupos atacam objetos por serviços web comuns. Esses serviços são agrupados por níveis de gravidade — Aviso, Crítico, Maior, Menor, Informações. |
Variado |
Grupos atacam objetos pelo nível de desempenho. Objetos de ataque que afetam o desempenho do IDP em um determinado nível estão agrupados nesta categoria. |
Resposta |
Grupos atacam objetos no tráfego que flui no servidor até a direção do cliente. |
Entender objetos de ataque personalizados
Você pode criar objetos de ataque personalizados para detectar novos ataques ou personalizar objetos de ataque predefinidos para atender às necessidades exclusivas de sua rede.
Para configurar um objeto de ataque personalizado, você especifica um nome único para ele e depois especifica informações adicionais, como uma descrição geral e palavras-chave, o que pode facilitar a localização e manutenção do objeto de ataque.
Determinadas propriedades nas definições de objetos de ataque são comuns a todos os tipos de ataques, como nome de ataque, descrição, nível de gravidade, ligação de serviço ou aplicativo, vinculação de tempo, ação recomendada e protocolo ou ligação de portas. Alguns campos são específicos para um tipo de ataque e estão disponíveis apenas para essa definição de ataque específica.
O recurso IDP é habilitado por padrão, nenhuma licença é necessária. Ataques personalizados e grupos de ataque personalizados em políticas de IDP também podem ser configurados e instalados mesmo quando uma licença válida e um banco de dados de assinatura não são instalados no dispositivo.
Este tópico inclui as seguintes seções:
- Nome do ataque
- Severidade
- Vinculações de serviços e aplicativos
- Ligações de protocolo e portas
- Vinculações de tempo
- Propriedades de ataque (ataques de assinatura)
- Propriedades de ataque (ataques de anomalias de protocolo)
- Propriedades de ataque (ataques compostos ou em cadeia)
Nome do ataque
Especifique um nome alfanumérico para o objeto. Você pode querer incluir o protocolo que o ataque usa no nome do ataque.
Começando pelo Junos OS Release 15.1X49-D140, o número máximo de caracteres permitidos para um nome de objeto de ataque personalizado é 60. Você pode validar a declaração usando o set security idp custom-attack
comando.
Severidade
Especifica a brutalidade do ataque em sua rede. As categorias de gravidade, por ordem de crescente brutalidade, são informações, alerta, menores, principais, críticas. Ataques críticos são os mais perigosos — normalmente, esses ataques tentam quebrar seu servidor ou obter o controle de sua rede. Ataques informativos são os menos perigosos, e normalmente são usados pelos administradores de rede para descobrir buracos em seus próprios sistemas de segurança.
Vinculações de serviços e aplicativos
O campo de vinculação de serviços ou aplicativos especifica o serviço que o ataque usa para entrar em sua rede.
Especifique o serviço ou a ligação de protocolo em um ataque personalizado. Caso você especifique ambos, a vinculação de serviços tem precedência.
any
— Especifiqueany
se não tem certeza do serviço correto e deseja combinar a assinatura em todos os serviços. Como alguns ataques usam vários serviços para atacar sua rede, você pode querer selecionar a ligação deAny
serviço para detectar o ataque, independentemente de qual serviço o ataque escolhe para uma conexão.service
— A maioria dos ataques usa um serviço específico para atacar sua rede. Você pode selecionar o serviço específico usado para perpetrar o ataque como a ligação de serviço.Para lista de serviços, vinculações de serviço e contextos, veja Como entender os contextos de serviço de objetos de ataque personalizados do IDP
Ligações de protocolo e portas
As ligações de protocolo ou porta permitem que você especifique o protocolo que um ataque usa para entrar em sua rede. Você pode especificar o nome do protocolo de rede ou o número do protocolo.
Especifique o serviço ou a ligação de protocolo em um ataque personalizado. Caso você especifique ambos, a vinculação de serviços tem precedência.
IP — você pode especificar qualquer um dos protocolos de camada de rede suportados usando números de protocolo. A Tabela 11 lista números de protocolo para diferentes protocolos.
Tabela 11: Protocolos suportados e números de protocolo Nome do protocolo
Número do protocolo
IGMP
2
IP-IP
4
EGP
8
CACHORRINHO
12
Papel higiênico
29
IPV6
41
ROTEAMENTO
43
FRAGMENTO
44
RSVP
46
GRE
47
ESP
50
AH
51
ICMPV6
58
NENHUM
59
DSTOPTS
60
MTP
92
ENCAP
98
PIM
103
COMP
108
CRU
255
ICMP, TCP e UDP — Ataques que não usam um serviço específico podem usar portas específicas para atacar sua rede. Alguns ataques de TCP e UDP usam portas padrão para entrar em sua rede e estabelecer uma conexão.
RPC — O protocolo de chamada de procedimento remoto (RPC) é usado por aplicativos de processamento distribuídos para lidar com a interação entre processos remotamente. Quando um cliente faz uma chamada de procedimento remoto para um servidor RPC, o servidor responde com um programa remoto; cada programa remoto usa um número de programa diferente. Para detectar ataques que usam RPC, configure a ligação de serviço como RPC e especifique o ID do programa RPC.
A Tabela 12 exibe formatos de amostra para protocolos chave.
Nome do protocolo |
Número do protocolo |
Descrição |
---|---|---|
ICMP |
|
Especifique o nome do protocolo. |
IP |
|
Especifique o número de protocolo da camada de rede. |
RPC |
|
Especifique o número do programa de RPC. |
TCP ou UDP |
|
Especificar a porta é opcional para protocolos TCP e UDP. Por exemplo, você pode especificar qualquer um dos seguintes:
|
Vinculações de tempo
Use vinculações de tempo para configurar os atributos de tempo para o objeto de ataque personalizado de vinculação de tempo. Os atributos de tempo controlam como o objeto de ataque identifica ataques que se repetem por um certo número de vezes. Ao configurar o escopo e a contagem de um ataque, você pode detectar uma sequência dos mesmos ataques durante um período de tempo ao longo das sessões.
A partir do Junos OS Release 18.4R1, você pode configurar o intervalo de tempo máximo entre qualquer duas instâncias de um ataque personalizado de vinculação de tempo e o intervalo para o intervalo de tempo máximo é de 0 minutos e 0 segundos a 60 minutos e 0 segundos. Nas versões do Junos OS antes do 18.4R1, o intervalo de tempo máximo entre qualquer duas instâncias de um ataque de ligação de tempo é de 60 segundos, para que a contagem de gatilhos de ataque atinja a contagem configurada na vinculação de tempo. A interval interval-value
declaração é introduzida na [edit security idp custom-attack attack-name time-binding]
hierarquia para configurar uma vinculação de tempo personalizada.
Âmbito
Especifique o escopo em que a contagem de ataques ocorre:
Fonte — Especifique essa opção para detectar ataques a partir do endereço de origem para o número especificado de vezes, independentemente do endereço de destino. Isso significa que, para um determinado ataque, um valor limite é mantido para cada ataque a partir do endereço fonte. O endereço de destino é ignorado. Por exemplo, são detectadas anomalias a partir de dois pares diferentes (
ip-a
,ip-b
) e (ip-a
, ) que têm o mesmo endereçoip-a
de origem,ip-c
mas endereçosip-b
de destino diferentes eip-c
. Em seguida, o número de partidas paraip-a
incrementos para2
. Suponha o valor limite ou count também esteja definido para 2, então a assinatura desencadeia o evento de ataque.Destino — Especifique essa opção para detectar ataques enviados ao endereço de destino para o número especificado de vezes, independentemente do endereço fonte. Isso significa que, para um determinado ataque, um valor limite é mantido para cada ataque a partir do endereço de destino. O endereço de origem é ignorado. Por exemplo, se forem detectadas anomalias de dois pares diferentes (
ip-a
,ip-b
) e (ip-c
, ) que tenham o mesmo endereçoip-b
de destino,ip-b
mas endereçosip-a
de origem diferentes eip-c
. Em seguida, o número de partidas paraip-b
incrementos para2
. Suponha que o valor limite ou count também esteja definido para2
, em seguida, a assinatura desencadeia o evento de ataque.Peer — Especifique essa opção para detectar ataques entre endereços IP de origem e destino das sessões para o número especificado de vezes. Isso significa que o valor limite é aplicável a um par de endereços de origem e destino. Suponha que anomalias sejam detectadas a partir de dois pares de origem e destino diferentes (
ip-a
ip-b
) e (ip-a
,ip-c
). Em seguida, o número de correspondências para cada par está definido,1
embora ambos os pares tenham um endereço de origem comum.
Contar
O valor de contagem ou limite especifica o número de vezes que o objeto de ataque deve detectar um ataque dentro do escopo especificado antes que o dispositivo considere o objeto de ataque compatível com o ataque. Se você vincular o objeto de ataque a várias portas e o objeto de ataque detectar esse ataque em diferentes portas, cada ataque em cada porta é contado como uma ocorrência separada. Por exemplo, quando o objeto de ataque detecta um ataque TCP/80
e depois em TCP/8080
diante, a contagem é de dois.
Uma vez que a count
partida é alcançada, cada ataque que corresponde aos critérios faz com que a contagem de ataques aumente em um. Esse ciclo de contagem dura uma duração definida pelo usuário (configurada usando a opção), após a interval
qual o ciclo se repete.
Intervalo
O intervalo especifica o intervalo de tempo máximo entre duas instâncias de um ataque personalizado de ligação de tempo. O intervalo para o intervalo de tempo é de 0 segundos a 1 hora e o valor padrão é de 60 segundos.
Propriedades de ataque (ataques de assinatura)
Objetos de ataque assinatura usam uma assinatura de ataque stateful (um padrão que sempre existe dentro de uma seção específica do ataque) para detectar ataques conhecidos. Eles também incluem o protocolo ou serviço usado para perpetrar o ataque e o contexto em que o ataque ocorre. As propriedades a seguir são específicas para ataques de assinatura e você pode configurá-las ao configurar um ataque de assinatura:
Contexto de ataque, tipo de fluxo e direção são campos obrigatórios para a definição de ataque de assinatura.
- Contexto de ataque
- Direção de ataque
- Padrão de ataque
- Parâmetros específicos do protocolo
- Definição de ataque de assinatura de amostra
Contexto de ataque
Um contexto de ataque define a localização da assinatura. Se você conhece o serviço e o contexto de serviço específico, especifique esse serviço e especifique os contextos de serviço apropriados. Se você conhece o serviço, mas não tem certeza do contexto de serviço específico, especifique um dos seguintes contextos gerais:
first-data-packet
— Especifique este contexto para detectar o ataque apenas no primeiro pacote de dados.first-packet
— Especifique este contexto para detectar o ataque apenas no primeiro pacote de um fluxo. Quando a direção de fluxo para o objeto de ataque é definidaany
, o dispositivo verifica o primeiro pacote do servidor para o cliente e os fluxos de cliente para servidor. Se você sabe que a assinatura do ataque aparece no primeiro pacote de uma sessão, escolherfirst packet
em vez depacket
reduzir a quantidade de tráfego que o dispositivo precisa monitorar, o que melhora o desempenho.packet
— Especifique este contexto para combinar com o padrão de ataque em um pacote. Ao selecionar essa opção, você também deve especificar a vinculação de serviço para definir as opções de cabeçalho de serviço. Embora não seja necessário, especificar esses parâmetros adicionais melhora a precisão do objeto de ataque e, assim, melhora o desempenho.line
— Especifique este contexto para detectar uma correspondência de padrão dentro de uma linha específica em seu tráfego de rede.normalized-stream
— Especifique este contexto para detectar o ataque em todo um fluxo normalizado. O fluxo normalizado é uma das várias maneiras de enviar informações. Neste fluxo, as informações no pacote são normalizadas antes que uma partida seja realizada. Suponha quewww.yahoo.com/sports
seja o mesmo quewww.yahoo.com/s%70orts
. A forma normalizada para representar ambos esses URLs pode serwww.yahoo.com/sports
. Escolhanormalized stream
em vez destream
, a menos que você queira detectar algum padrão em sua forma exata. Por exemplo, se você quiser detectar o padrãowww.yahoo.com/s%70orts
exato, selecionestream
.normalized-stream256
— Especifique este contexto para detectar o ataque apenas nos primeiros 256 bytes de um fluxo normalizado.normalized-stream1k
— Especifique este contexto para detectar o ataque apenas nos primeiros bytes de 1024 de um fluxo normalizado.normalized-stream-8k
— Especifique este contexto para detectar o ataque apenas nos primeiros bytes 8192 de um fluxo normalizado.stream
— Especifique este contexto para remontar pacotes e extrair os dados para procurar uma correspondência de padrão. No entanto, o dispositivo não pode reconhecer os limites dos pacotes para contextos de fluxo, de modo que os dados para vários pacotes são combinados. Especifique essa opção apenas quando nenhuma outra opção de contexto contém o ataque.stream256
— Especifique este contexto para remontar pacotes e procurar uma correspondência de padrão nos primeiros bytes de 256 de um fluxo de tráfego. Quando a direção de fluxo é definida,any
o dispositivo verifica os primeiros 256 bytes dos fluxos de servidor para cliente e cliente para servidor. Se você sabe que a assinatura de ataque aparecerá nos primeiros 256 bytes de uma sessão, optandostream256
por não reduzir a quantidade destream
tráfego que o dispositivo deve monitorar e cache, melhorando assim o desempenho.stream1k
— Especifique este contexto para remontar pacotes e procurar uma correspondência de padrão nos primeiros bytes de 1024 de um fluxo de tráfego. Quando a direção de fluxo é definida,any
o dispositivo verifica os primeiros bytes de 1024 dos fluxos de servidor para cliente e cliente para servidor. Se você sabe que a assinatura de ataque aparecerá nos primeiros bytes de 1024 de uma sessão, optandostream1024
por não reduzir a quantidade destream
tráfego que o dispositivo deve monitorar e cache, melhorando assim o desempenho.stream8k
— Especifique este contexto para remontar pacotes e procurar uma correspondência de padrão nos primeiros bytes 8192 de um fluxo de tráfego. Quando a direção de fluxo é definida paraany
, o dispositivo verifica os primeiros bytes 8192 dos fluxos de servidor para cliente e cliente para servidor. Se você sabe que a assinatura de ataque aparecerá nos primeiros bytes 8192 de uma sessão, escolhendostream8192
em vez de reduzir a quantidade destream
tráfego que o dispositivo deve monitorar e cache, melhorando assim o desempenho.
Direção de ataque
Você pode especificar a direção de conexão do ataque. Usar uma direção única (em vez de Any
) melhora o desempenho, reduz falsos positivos e aumenta a precisão da detecção.
Cliente a servidor (detecta o ataque apenas no tráfego de cliente para servidor)
Servidor a cliente (detecta o ataque apenas no tráfego de servidor para cliente)
Qualquer (detecta o ataque em qualquer direção)
Padrão de ataque
Padrões de ataque são assinaturas dos ataques que você deseja detectar. Uma assinatura é um padrão que sempre existe dentro de um ataque; se o ataque estiver presente, a assinatura também está. Para criar o padrão de ataque, você deve primeiro analisar o ataque para detectar um padrão (como um segmento de código, uma URL ou um valor em um cabeçalho de pacote), em seguida, criar uma expressão sintática que representa esse padrão. Você também pode negar um padrão. Negar um padrão significa que o ataque é considerado compatível se o padrão definido no ataque not corresponder ao padrão especificado.
A negação de padrões é suportada apenas para contextos baseados em pacotes, linhas e aplicativos, e não para contextos de fluxo e fluxo normalizados.
Parâmetros específicos do protocolo
Especifica determinados valores e opções existentes nos cabeçalhos de pacotes. Esses parâmetros são diferentes para diferentes protocolos. Em uma definição de ataque personalizada, você pode especificar campos para apenas um dos seguintes protocolos — TCP, UDP ou ICMP. Embora você possa definir campos de protocolo IP com TCP ou UDP em uma definição de ataque personalizada.
Os parâmetros de cabeçalho só podem ser definidos para objetos de ataque que usam um pacote ou contexto de primeiro pacote. Se você especificou uma linha, fluxo, fluxo 256 ou um contexto de serviço, você não pode especificar parâmetros de cabeçalho.
Se você não tiver certeza das opções ou configurações de bandeira para o pacote malicioso, deixe todos os campos em branco e a Detecção e Prevenção de Intrusões (IDP) tenta combinar a assinatura com todo o conteúdo do cabeçalho.
A Tabela 13 exibe campos e bandeiras que você pode definir para ataques que usam o protocolo IP.
Campo |
Descrição |
---|---|
Tipo de serviço |
Especifique um valor para o tipo de serviço. Tipos comuns de serviços são:
|
Comprimento total |
Especifique um valor para o número de bytes no pacote, incluindo todos os campos de cabeçalho e a carga de dados. |
ID |
Especifique um valor para o valor único usado pelo sistema de destino para remontar um pacote fragmentado. |
Hora de viver |
Especifique um valor inteiro na faixa de 0-255 para o valor de tempo de vida (TTL) do pacote. Esse valor representa o número de dispositivos que o pacote pode percorrer. Cada roteador que processa o pacote decrementa o TTL por |
Protocolo |
Especifique um valor para o protocolo usado. |
Fonte |
Digite o endereço fonte do dispositivo de ataque. |
Destino |
Digite o endereço de destino do alvo de ataque. |
Bit reservado |
Essa bit não é usada. |
Mais fragmentos |
Quando definido ( |
Não fragmente |
Quando definida ( |
A Tabela 14 exibe campos de cabeçalho de pacotes e bandeiras que você pode definir para ataques que usam o protocolo TCP.
Campo |
Descrição |
---|---|
Porta de origem |
Especifique um valor para o número de porta no dispositivo de ataque. |
Porta de destino |
Especifique um valor para o número de porta do alvo de ataque. |
Número da sequência |
Especifique um valor para o número de sequência do pacote. Esse número identifica a localização dos dados em relação a toda a sequência de dados. |
Número de ACK |
Especifique um valor para o número ACK do pacote. Esse número identifica o número da próxima sequência; a bandeira ACK deve ser definida para ativar este campo. |
Comprimento do cabeçalho |
Especifique um valor para o número de bytes no cabeçalho TCP. |
Comprimento dos dados |
Especifique um valor para o número de bytes na carga de dados. Para pacotes SYN, ACK e FIN, este campo deve estar vazio. |
Tamanho da janela |
Especifique um valor para o número de bytes no tamanho da janela TCP. |
Ponteiro urgente |
Especifique um valor para o ponteiro urgente. O valor indica que os dados no pacote são urgentes; a bandeira URG deve ser definida para ativar este campo. |
URG |
Quando definida, a bandeira urgente indica que os dados do pacote são urgentes. |
ACK |
Quando definida, a bandeira de reconhecimento reconhece o recebimento de um pacote. |
PSH |
Quando definido, a bandeira de push indica que o receptor deve empurrar todos os dados na sequência atual para o aplicativo de destino (identificado pelo número da porta) sem esperar pelos pacotes restantes na sequência. |
RST |
Quando definido, a bandeira de reset reinicia a conexão TCP, descartando todos os pacotes em uma sequência existente. |
SYN |
Quando definida, a bandeira SYN indica uma solicitação para uma nova sessão. |
BARBATANA |
Quando definido, a bandeira final indica que a transferência de pacotes está completa e a conexão pode ser fechada. |
R1 |
Este bit reservado (1 de 2) não é usado. |
R2 |
Este bit reservado (2 de 2) não é usado. |
A Tabela 15 exibe campos de cabeçalho de pacotes e bandeiras que você pode definir para ataques que usam o protocolo UDP.
Campo |
Descrição |
---|---|
Porta de origem |
Especifique um valor para o número de porta no dispositivo de ataque. |
Porta de destino |
Especifique um valor para o número de porta do alvo de ataque. |
Comprimento dos dados |
Especifique um valor para o número de bytes na carga de dados. |
A Tabela 16 exibe campos de cabeçalho de pacotes e bandeiras que você pode definir para ataques que usam o protocolo ICMP.
Campo |
Descrição |
---|---|
Tipo de ICMP |
Especifique um valor para o código primário que identifica a função da solicitação ou pacote de resposta. |
Código ICMP |
Especifique um valor para o código secundário que identifica a função da solicitação ou pacote de resposta dentro de um determinado tipo. |
Número da sequência |
Especifique um valor para o número de sequência do pacote. Esse número identifica a localização do pacote de solicitação ou resposta em relação a toda a sequência. |
ICMP ID |
Especifique um valor para o número de identificação. O número de identificação é um valor único usado pelo sistema de destino para associar pacotes de solicitação e resposta. |
Comprimento dos dados |
Especifique um valor para o número de bytes na carga de dados. |
Definição de ataque de assinatura de amostra
A seguir, uma definição de ataque de assinatura de amostra:
<Entry> <Name>sample-sig</Name> <Severity>Major</Severity> <Attacks><Attack> <TimeBinding><Count>2</Count> <Scope>dst</Scope></TimeBinding> <Application>FTP</Application> <Type>signature</Type> <Context>packet</Context> <Negate>true</Negate> <Flow>Control</Flow> <Direction>any</Direction> <Headers><Protocol><Name>ip</Name> <Field><Name>ttl</Name> <Match>==</Match><Value>128</Value></Field> </Protocol><Name>tcp</Name> <Field><Name><Match><</Match> <value>1500</Value> </Field></Protocol></Headers> </Attack></Attacks> </Entry>
Propriedades de ataque (ataques de anomalias de protocolo)
Um objeto de ataque de anomalia de protocolo detecta ataques desconhecidos ou sofisticados que violam especificações de protocolo (RFCs e extensões RFC comuns). Você não pode criar novas anomalias de protocolo, mas pode configurar um novo objeto de ataque que controla como seu dispositivo lida com uma anomalia de protocolo predefinida quando detectada.
A ligação de serviços ou aplicativos é um campo obrigatório para ataques de anomalias de protocolo.
As propriedades a seguir são específicas para protocolo de ataques de anomalias. Tanto a direção de ataque quanto a condição de teste são campos obrigatórios para configurar definições de ataque de anomalias.
Direção de ataque
A direção de ataque permite especificar a direção de conexão de um ataque. Usar uma direção única (em vez de Any
) melhora o desempenho, reduz falsos positivos e aumenta a precisão da detecção:
Cliente a servidor (detecta o ataque apenas no tráfego de cliente para servidor)
Servidor a cliente (detecta o ataque apenas no tráfego de servidor para cliente)
Qualquer (detecta o ataque em qualquer direção)
Condição do teste
A condição do teste é uma condição a ser combinada para um ataque de anomalia. A Juniper Networks oferece suporte a determinadas condições de teste predefinidas. No exemplo a seguir, a condição é uma mensagem muito longa. Se o tamanho da mensagem for maior do que o valor pré-configurado para esta condição de teste, o ataque será compatível.
<Attacks> <Attack> <Type>anomaly</Type> ... <Test>MESSAGE_TOO_LONG</Test> <Value>yes</Value> ... </Attack> </Attacks>
Definição de ataque de anomalias de protocolo de amostra
A seguir, uma definição de ataque de anomalia de protocolo de amostra:
<Entry> <Name>sample-anomaly</Name> <Severity>Info</Severity> <Attacks><Attack> <TimeBinding><Count>2</Count> <Scope>peer</Scope></TimeBinding> <Application>TCP</Application> <Type>anomaly</Type> <Test>OPTIONS_UNSUPPORTED</Test> <Direction>any</Direction> </Attack></Attacks> </Entry>
Propriedades de ataque (ataques compostos ou em cadeia)
Um objeto composto ou de ataque em cadeia detecta ataques que usam vários métodos para explorar uma vulnerabilidade. Este objeto combina várias assinaturas e/ou anomalias de protocolo em um único objeto de ataque, forçando o tráfego a combinar um padrão de assinaturas combinadas e anomalias dentro do objeto de ataque composto antes que o tráfego seja identificado como um ataque. Ao combinar e até mesmo especificar a ordem em que assinaturas ou anomalias devem ser combinadas, você pode ser muito específico sobre os eventos que precisam ocorrer antes que o dispositivo identifique o tráfego como um ataque.
Você deve especificar um mínimo de 2 membros (ataques) em um ataque composto. Você pode especificar até 32 membros em ataque composto. Os membros podem ser assinatura ou ataques de anomalias.
As seguintes propriedades são específicas para ataques compostos:
- Âmbito
- Ordem
- Repor
- Expressão (expressão booleana)
- Índice de membros
- Definição de ataque composto de amostra
Âmbito
O Escopo permite que você especifique se o ataque é combinado em uma sessão ou entre transações em uma sessão. Se o serviço especificado suportar várias transações em uma única sessão, você também pode especificar se a correspondência deve ocorrer em uma única sessão ou se pode ser feita em várias transações em uma sessão:
Especifique session para permitir várias correspondências para o objeto na mesma sessão.
Especifique transaction para combinar o objeto em várias transações que ocorrem na mesma sessão.
Ordem
Use correspondência ordenada para criar um objeto de ataque composto que deve combinar com cada assinatura de membro ou anomalia de protocolo na ordem que você especifica. Se você não especificar uma correspondência ordenada, o objeto de ataque composto ainda deve combinar com todos os membros, mas o padrão de ataque ou anomalias de protocolo podem aparecer no ataque em ordem aleatória.
Repor
Especifica que um novo log é gerado cada vez que um ataque é detectado na mesma sessão. Se este campo estiver definido para no
então o ataque é registrado apenas uma vez para uma sessão.
Expressão (expressão booleana)
Usar o campo de expressão Boolean desativa a função de correspondência ordenada. O campo de expressão Boolean faz uso do nome do membro ou propriedades do índice de membros. Os três operadores Boolean a seguir são suportados juntamente com parênteses, o que ajuda a determinar a precedência:
or
— Se algum dos padrões de nome do membro corresponder, a expressão corresponderá.and
— Se ambos os padrões de nome do membro corresponderem, a expressão corresponderá. Não importa em que ordem os membros apareçam.oand (ordered and)
— Se ambos os padrões de nome do membro corresponderem, e se eles aparecerem na mesma ordem especificada na expressão Boolean, a expressão corresponde.
Suponha que você tenha criado cinco membros de assinatura, rotuladoss1
s5
. Suponha que você saiba que o ataque sempre contém o padrãos1
, seguido por ambos s2
ous3
. Você também sabe que o ataque sempre contém s4
es5
, mas suas posições no ataque podem variar. Neste caso, você pode criar a seguinte expressão Boolean:
((s1 oand s2) or (s1 oand s3)) and (s4 and s5)
Você pode definir uma correspondência ordenada ou uma expressão (não ambas) em uma definição de ataque personalizada.
Índice de membros
O Índice de Membros é especificado em ataques em cadeia para identificar um membro (ataque) de forma exclusiva. No exemplo a seguir, o índice de membros é usado para identificar os membros m01
e m02
na expressão definida:
<Expression>m02 AND m01</Expression> <Order>no</Order> <Reset>no</Reset> <ScopeOption/> <Members> <Attack> <Member>m01</Member> <Type>Signature</Type> ... <Pattern><!CDATA[.*/getlatestversion]]></Pattern> <Regex/> </Attack> <Attack><Member>m02</Member> <Type>Signature</Type> ... <Pattern><!CDATA[\[Skype\'.*]]></Pattern> <Regex/> </Attack> <Attack>
Ao definir a expressão, você deve especificar o índice de membros para todos os membros.
Definição de ataque composto de amostra
A seguir, uma definição de ataque composto por amostra:
<Entry> <Name>sample-chain</Name> <Severity>Critical</Severity> <Attacks><Attack> <Application>HTTP</Application> <Type>Chain</Type> <Order>yes</Order> <Reset>yes</Reset> <Members><Attack> <Type>Signature</Type> <Context>packet</Context> <Pattern><![CDATA[Unknown[]></Pattern> <Flow>Control</Flow> <Direction>cts</Direction> </Attack><Attack> <Type>anomaly</Type> <Test>CHUNK_LENGTH_OVERFLOW</Test> <Direction>any</Direction> </Attack></Members> </Attack></Attacks> </Entry>
Criação de um objeto de ataque composto
Use objetos de ataque compostos nos casos em que:
Os ataques usam vários métodos para explorar uma vulnerabilidade e, inspecionados de forma independente, os contextos individuais parecem benignos.
Combinar vários contextos reduz falsos positivos.
Acoplamento de uma assinatura com uma anomalia de protocolo reduz falsos positivos.
Você seleciona objetos de ataque de assinatura ou anomalias predefinidas como "membros" do objeto composto, e usa expressões Boolean para especificar a lógica correspondente.
Para configurar um objeto de ataque composto:
Veja também
Modificação de objetos de ataque personalizados devido a mudanças introduzidas na atualização de assinatura
Este tópico descreve mudanças em alguns contextos de serviço gerados pelo decodificador de protocolo HTTP. Começando com a atualização de assinatura nº 1972, o decodificador de protocolo HTTP não gera mais alguns contextos. Se sua política de segurança de IDP incluir assinaturas personalizadas que usam os contextos que foram removidos, você deve modificar as definições de objetos de ataque conforme descrito abaixo para evitar erros de compilação de políticas. Este tópico inclui as seguintes informações:
- Referência: Contextos removidos
- Exemplo: substituição do contexto por padrões que aparecem no texto HTML
- Exemplo: substituição dos contextos por padrões que aparecem em URLs
Referência: Contextos removidos
Para melhorar o desempenho, o decodificador de protocolo HTTP não gera mais os contextos listados na primeira coluna da Tabela 19. Analise esta tabela para obter diretrizes sobre a substituição dos contextos em objetos de ataque personalizados.
Removido |
Substitua por |
Regra |
---|---|---|
http-text-html-body |
http-text-html |
Altere assinaturas que usam o contexto http-text-html-body para http-text-html. Você não precisa fazer alterações no padrão de assinatura ou outras propriedades. |
|
Use uma combinação dos seguintes contextos:
|
Use uma assinatura composta com um Boolean E para quebrar o padrão de assinatura em várias partes. Garanta que o campo de escopo esteja definido para transação. Usar o contexto do método de http-solicitação é opcional. Você usa o contexto do método http-request para vincular a detecção a transações http GET ou POST ou HEAD. Para o método GET, usamos o padrão ,[GET!'] (caso de GET insensível). Use o método http-request apenas se os resultados que você registrou anteriormente correspondentes no Método de Solicitação vale a pena preservar. Se não, omite-o para melhorar o desempenho. Se você usar o método de http-solicitação, solicite-o primeiro na cadeia composta. Use o contexto http-url-parsed para combinar com uma assinatura de ataque identificável na URL. Use esse contexto para combinar com um padrão na URL que aparece antes dos parâmetros variáveis — a parte da URL antes do ponto de interrogação (?). Use um ou mais contextos analisados por http-variável para combinar com os parâmetros variáveis de URL — a parte da URL após o ponto de interrogação (?), normalmente separada por ampersands (&). |
Exemplo: substituição do contexto por padrões que aparecem no texto HTML
Cada contexto gerado pelo mecanismo de detector de HTTP tem um custo de desempenho. Os contextos http-text-html e http-text-html-body atendem à mesma finalidade. Reduzir o número de contextos melhora o desempenho.
A Tabela 20 mostra as propriedades de uma assinatura antes da Atualização nº 1972 e da assinatura depois. Esta é uma mudança simples. Você muda apenas o contexto. Você não precisa mudar o padrão ou outras propriedades.
Antes da atualização |
Após a atualização |
|
---|---|---|
Contexto |
http-text-html-body |
http-text-html |
Padrão |
.*<span></span>.* |
.*<span></span>.* |
Exemplo: substituição dos contextos por padrões que aparecem em URLs
Esta seção tem duas partes:
- Assinaturas que correspondem aos métodos de solicitação
- Assinaturas que combinam com as variáveis de URL e strings de URL
Assinaturas que correspondem aos métodos de solicitação
Ao modificar objetos de ataque personalizados que previamente correspondia aos métodos de solicitação GET, POST ou HEAD, considere se as correspondências com esses padrões de método de solicitação foram eficazes para você. Lembre-se, cada contexto gerado tem um custo de desempenho. Se o método de solicitação não for essencial para os seus resultados, aproveite esta oportunidade para reformular sua assinatura sem ela.
A Tabela 21 e a Tabela 22 mostram as propriedades de uma assinatura antes da Atualização nº 1972 e da assinatura composta depois. Este exemplo preserva o interesse pelo método de solicitação.
Assinatura antes da atualização |
|
---|---|
Âmbito |
– |
Contexto |
http-get-url-parsed-param |
Padrão |
\[/viper/vegaspalms/\].* |
Assinatura composta após atualização |
||
---|---|---|
|
m01 |
m02 |
Âmbito |
Transação |
|
Contexto |
http-request-method |
http-url-parsed |
Padrão |
|
\[/viper/vegaspalms/\].* |
Assinaturas que combinam com as variáveis de URL e strings de URL
Em geral, a quebra de um único padrão em vários contextos pode afetar positiva ou negativamente o desempenho. Você precisa testar suas mudanças para entender o impacto de desempenho antes de implantar os objetos de ataque em uma rede de produção. O exemplo mostrado na Tabela 23 e na Tabela 24 quebra a correspondência de URL em vários contextos. Nossa equipe de segurança testou o desempenho das recomendações descritas aqui.
Assinatura antes da atualização |
|
---|---|
Âmbito |
– |
Contexto |
http-get-url-param-parsed-param |
Padrão |
|
Assinatura composta após atualização |
||||
---|---|---|---|---|
m01 |
m02 |
m03 |
m04 |
|
Âmbito |
Transação |
|||
Contexto |
http-url-parsed |
http-variável-parsed |
http-variável-parsed |
http-variável-parsed |
Padrão |
|
|
|
|
Veja também
Exemplo: Configuração de ataques compostos ou em cadeia
Este exemplo mostra como configurar ataques compostos ou em cadeia para critérios específicos de correspondência. Um objeto composto ou de ataque em cadeia pode ser configurado para detectar ataques que usam vários métodos para explorar uma vulnerabilidade.
Requisitos
Antes de começar, o IDP deve ser suportado e habilitado no dispositivo.
Visão geral
Um composto ou um objeto de ataque em cadeia podem combinar as assinaturas e anomalias para formar um único objeto de ataque. Um único objeto de ataque pode conter:
Duas ou mais assinaturas
Duas ou mais anomalias
Uma combinação de assinaturas e anomalias
Objetos compostos ou de ataque em cadeia combinam várias assinaturas e/ou anomalias de protocolo em um único objeto de ataque, forçando o tráfego a combinar um padrão de assinaturas combinadas e anomalias dentro do objeto de ataque composto antes que o tráfego seja identificado como um ataque. Esses objetos também são usados para reduzir falsos positivos e aumentar a precisão da detecção. Ele permite que você seja específico sobre os eventos que precisam ocorrer antes que o IDP identifique o tráfego como um ataque.
Configuração
Procedimento
Configuração rápida da CLI
Para configurar rapidamente este exemplo, copie os seguintes comandos, cole-os em um arquivo de texto, remova qualquer quebra de linha, altere os detalhes necessários para combinar com a configuração da sua rede e, em seguida, copie e cole os comandos na CLI no nível de hierarquia e, em seguida, entre no [edit]
commit
modo de configuração.
set security idp idp-policy idpengine rulebase-ips rule 1 match from-zone any set security idp idp-policy idpengine rulebase-ips rule 1 match source-address any set security idp idp-policy idpengine rulebase-ips rule 1 match to-zone any set security idp idp-policy idpengine rulebase-ips rule 1 match destination-address any set security idp idp-policy idpengine rulebase-ips rule 1 match application default set security idp idp-policy idpengine rulebase-ips rule 1 match attacks custom-attacks ftpchain set security idp idp-policy idpengine rulebase-ips rule 1 then action no-action set security idp idp-policy idpengine rulebase-ips rule 1 then notification log-attacks set security idp active-policy idpengine set security idp custom-attack ftpchain severity info set security idp custom-attack ftpchain attack-type chain protocol-binding application ftp set security idp custom-attack ftpchain attack-type chain scope session set security idp custom-attack ftpchain attack-type chain order set security idp custom-attack ftpchain attack-type chain member m1 attack-type signature context ftp-banner set security idp custom-attack ftpchain attack-type chain member m1 attack-type signature pattern .*vsFTPd.* set security idp custom-attack ftpchain attack-type chain member m1 attack-type signature direction server-to-client set security idp custom-attack ftpchain attack-type chain member m2 attack-type signature context ftp-username set security idp custom-attack ftpchain attack-type chain member m2 attack-type signature pattern .*root.* set security idp custom-attack ftpchain attack-type chain member m2 attack-type signature direction client-to-server set security idp custom-attack ftpchain attack-type chain member m3 attack-type anomaly test LOGIN_FAILED set security idp custom-attack ftpchain attack-type chain member m3 attack-type anomaly direction any set security idp traceoptions file idpd set security idp traceoptions flag all
Procedimento passo a passo
O exemplo a seguir exige que você navegue por vários níveis na hierarquia de configuração. Para obter instruções sobre como fazer isso, veja Usando o Editor de CLI no modo de configuração no Guia do usuário da CLI.
Para configurar ataques compostos ou em cadeia para critérios específicos de correspondência:
Crie uma política de IDP.
[edit] user@host# set security idp idp-policy idpengine
Associar uma base de regras à política.
[edit security idp idp-policy idpengine] user@host# edit rulebase-ips
Adicione regras à base de regras.
[edit security idp idp-policy idpengine rulebase-ips] user@host# edit rule 1
Definir os critérios de correspondência para a regra.
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set match from-zone any user@host# set match source-address any user@host# set match to-zone any user@host# set match destination-address any
Especifique um nome definido por aplicativo para combinar com os critérios de regra.
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set match application default
Especifique o objeto e o nome de ataque compatíveis para o objeto de ataque.
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set match attacks custom-attacks ftpchain
Especifique uma ação para a regra.
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set then action no-action
Especifique as opções de notificação ou registro para a regra.
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set then notification log-attacks
Ative a política de IDP.
[edit] user@host# set security idp active-policy idpengine
Especifique um nome para o ataque personalizado.
[edit security idp] user@host# set custom-attack ftpchain
Definir a gravidade para o ataque personalizado.
[edit security idp custom-attack ftpchain] user@host# set severity info
Definir o tipo de ataque e o nome do aplicativo para o ataque personalizado.
[edit security idp custom-attack ftpchain] user@host# set attack-type chain protocol-binding application ftp
Definir o escopo e a ordem em que o ataque é definido.
[edit security idp custom-attack ftpchain attack-type chain] user@host# set scope session user@host# set order
Especifique um nome para o primeiro membro do objeto de ataque em cadeia.
[edit security idp custom-attack ftpchain attack-type chain] user@host# set member m1
Definir o contexto, o padrão e a direção para o primeiro membro do objeto de ataque em cadeia.
[edit security idp custom-attack ftpchain attack-type chain member m1] user@host# set attack-type signature context ftp-banner user@host# set attack-type signature pattern .*vsFTPd.* user@host# set attack-type signature direction server-to-client
Especifique um nome para o segundo membro do objeto de ataque em cadeia.
[edit security idp custom-attack ftpchain attack-type chain] user@host# set member m2
Definir o contexto, o padrão e a direção para o segundo membro do objeto de ataque em cadeia.
[edit security idp custom-attack ftpchain attack-type chain member m2] user@host# set attack-type signature context ftp-username user@host# set attack-type signature pattern .*root.* user@host# set attack-type signature direction client-to-server
Especifique um nome para o terceiro membro do objeto de ataque em cadeia.
[edit security idp custom-attack ftpchain attack-type chain] user@host# set member m3
Especifique um tipo de ataque e direção para o terceiro membro do objeto de ataque em cadeia.
[edit security idp custom-attack ftpchain attack-type chain member m3] user@host# set attack-type anomaly direction any
Especifique as opções de rastreamento e trace informações de arquivos para os serviços IDP.
[edit] user@host# set security idp traceoptions file idpd
Especifique os eventos e outras informações que precisam ser incluídas na saída de rastreamento.
[edit] user@host# set security idp traceoptions flag all
Resultados
A partir do modo de configuração, confirme sua configuração entrando no show security idp
comando. Se a saída não exibir a configuração pretendida, repita as instruções de configuração neste exemplo para corrigi-la.
[edit] user@host# show security idp idp-policy idpengine { rulebase-ips { rule 1 { match { from-zone any; source-address any; to-zone any; destination-address any; application default; attacks { custom-attacks ftpchain; } } then { action { no-action; } notification { log-attacks; } } } } } active-policy idpengine; custom-attack ftpchain { severity info; attack-type { chain { protocol-binding { application ftp; } scope session; order; member m1 { attack-type { signature { context ftp-banner; pattern .*vsFTPd.*; direction server-to-client; } } } member m2 { attack-type { signature { context ftp-username; pattern .*root.*; direction client-to-server; } } } member m3 { attack-type { anomaly { test LOGIN_FAILED; direction any; } } } } } } traceoptions { file idpd; flag all; }
Se você terminar de configurar o dispositivo, entre no commit
modo de configuração.
Quando você entra commit
no modo de configuração, a configuração é verificada internamente e depois comprometida. Se houver algum erro, o commit falhará e os erros serão relatados.
Verificação
Para confirmar que a configuração de ataque em cadeia está funcionando corretamente, execute esta tarefa:
Verificando a configuração
Propósito
Verifique se a configuração de ataque em cadeia está correta.
Ação
A partir do modo operacional, entre no show security idp policy-commit-status
comando para verificar a compilação de políticas ou o status da carga.
A saída do show security idp policy-commit-status
comando é dinâmica, portanto, não há saída única para este comando.
Verifique se os ataques estão sendo detectados de acordo com a configuração, passe tráfego pelo dispositivo para desencadear uma correspondência de ataque. Por exemplo, insira o show security idp status
comando para verificar se a política está carregada ou não.
user@host>
show security idp status
IDP policy[/var/db/idpd/bins/test.bin.gz.v] and detector[/var/db/idpd/sec-repository/installed-detector/libidp-detector.so.tgz.v] loaded successfully. The loaded policy size is:785 Bytes
Entre no show security idp attack table
comando para passar tráfego de ataque e depois verificar se os ataques estão sendo detectados ou não.
O comando só exibirá a saída quando os ataques forem detectados.
user@host>
show security idp attack table
IDP attack statistics: Attack name #Hits FTP:USER:ROOT 1
Exemplo: configuração de grupos de ataque com grupos de ataque dinâmicos e grupos de ataque personalizados
Este exemplo mostra como configurar grupos de ataque com grupos de ataque dinâmicos e grupos de ataque personalizados em uma política de IDP para proteger um servidor FTP ou Telnet.
Requisitos
Antes de começar, instale o pacote de segurança no dispositivo apenas se uma das seguintes declarações for verdadeira:
Grupos de ataque dinâmicos estão configurados.
Grupos de ataque personalizados contêm ataques predefinidos ou grupos de ataque.
Se grupos de ataque personalizados conterem apenas ataques personalizados, a licença de pacote de segurança não é necessária e o pacote de segurança não precisa ser instalado no dispositivo. Para instalar o pacote de segurança, você precisa de uma licença de pacote de segurança IDP.
Visão geral
O IDP contém um grande número de objetos de ataque predefinidos. Para gerenciar e organizar políticas de IDP, objetos de ataque podem ser agrupados. Um grupo de objetos de ataque pode conter dois ou mais tipos de objetos de ataque. Os grupos de ataque são classificados da seguinte forma:
Grupo de ataque dinâmico — contém objetos de ataque com base em determinados critérios de correspondência. Durante uma atualização de assinatura, a associação dinâmica do grupo é atualizada automaticamente com base nos critérios de correspondência para esse grupo. Por exemplo, você pode agrupar dinamicamente os ataques relacionados a um aplicativo específico usando os filtros dinâmicos do grupo de ataque.
Grupo de ataque personalizado — contém uma lista de ataques especificados na definição de ataque. Um grupo de ataque personalizado também pode conter ataques predefinidos específicos, ataques personalizados, grupos de ataque predefinidos ou grupos de ataque dinâmicos. Um grupo de ataque personalizado é de natureza estática, conforme os ataques são especificados no grupo. Portanto, o grupo de ataque não muda quando o banco de dados de segurança é atualizado. Os membros podem ser ataques predefinidos ou grupos de ataque predefinidos a partir do banco de dados de assinaturas ou outros ataques personalizados e grupos de ataque dinâmicos.
Neste exemplo, configuramos um grupo de ataque em uma política de IDP para proteger um FTP ou servidor Telnet contra ataques personalizados e dinâmicos.
Configuração
Procedimento
Configuração rápida da CLI
Para configurar rapidamente este exemplo, copie os seguintes comandos, cole-os em um arquivo de texto, remova qualquer quebra de linha, altere os detalhes necessários para combinar com a configuração da sua rede e, em seguida, copie e cole os comandos na CLI no nível de hierarquia e, em seguida, entre no [edit]
commit
modo de configuração.
set security idp idp-policy idpengine rulebase-ips rule 1 match from-zone any set security idp idp-policy idpengine rulebase-ips rule 1 match source-address any set security idp idp-policy idpengine rulebase-ips rule 1 match to-zone any set security idp idp-policy idpengine rulebase-ips rule 1 match destination-address any set security idp idp-policy idpengine rulebase-ips rule 1 match application default set security idp idp-policy idpengine rulebase-ips rule 1 match attacks custom-attack-groups cust-group set security idp idp-policy idpengine rulebase-ips rule 1 match attacks dynamic-attack-groups dyn2 set security idp idp-policy idpengine rulebase-ips rule 1 then action no-action set security idp idp-policy idpengine rulebase-ips rule 1 then notification log-attacks set security idp active-policy idpengine set security idp custom-attack customftp severity info set security idp custom-attack customftp attack-type signature context ftp-username set security idp custom-attack customftp attack-type signature pattern .*guest.* set security idp custom-attack customftp attack-type signature direction client-to-server set security idp custom-attack-group cust-group group-members customftp set security idp custom-attack-group cust-group group-members ICMP:INFO:TIMESTAMP set security idp custom-attack-group cust-group group-members "TELNET - Major" set security idp custom-attack-group cust-group group-members dyn1 set security idp dynamic-attack-group dyn1 filters category values TROJAN set security idp dynamic-attack-group dyn2 filters direction expression and set security idp dynamic-attack-group dyn2 filters direction values server-to-client set security idp dynamic-attack-group dyn2 filters direction values client-to-server set security idp dynamic-attack-group dyn2 filters age-of-attack less-than value 7 set security idp dynamic-attack-group dyn2 filters vulnerability-type values Injection set security idp dynamic-attack-group dyn2 filters vendor Microsoft set security idp dynamic-attack-group dyn2 filters cvss-score less-than value 7 set security idp traceoptions file idpd set security idp traceoptions flag all
Procedimento passo a passo
O exemplo a seguir exige que você navegue por vários níveis na hierarquia de configuração. Para obter instruções sobre como fazer isso, veja Usando o Editor de CLI no modo de configuração no Guia do usuário da CLI.
Para configurar grupos de ataque com grupos de ataque dinâmicos e grupos de ataque personalizados:
Crie uma política de IDP.
[edit] user@host# set security idp idp-policy idpengine
Associar uma base de regras à política.
[edit security idp idp-policy idpengine] user@host# set rulebase-ips
Adicione regras à base de regras.
[edit security idp idp-policy idpengine rulebase-ips] user@host# set rule 1
Definir os critérios de correspondência para a regra.
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set match from-zone any user@host# set match source-address any user@host# set match to-zone any user@host# set match destination-address any
Especifique um nome definido por aplicativo para combinar com os critérios de regra.
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set match application default
Especifique uma correspondência para o grupo de ataque personalizado.
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set match attacks custom-attack-groups cust-group
Especifique uma combinação para o grupo de ataque dinâmico.
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set match attacks dynamic-attack-groups dyn2
Especifique uma ação para a regra.
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set then action no-action
Especifique as opções de notificação ou registro para a regra.
[edit security idp idp-policy idpengine rulebase-ips rule 1] user@host# set then notification log-attacks
Ative a política de IDP.
[edit] user@host# set security idp active-policy idpengine
Especifique um nome para o ataque personalizado.
[edit security idp] user@host# set custom-attack customftp
Definir a gravidade para o ataque personalizado.
[edit security idp custom-attack customftp] user@host# set severity info
Definir o tipo de ataque e o contexto para o ataque.
[edit security idp custom-attack customftp] user@host# set attack-type signature context ftp-username
Especifique um padrão para o ataque.
[edit security idp custom-attack customftp] user@host# set attack-type signature pattern .*guest.*
Especifique uma direção para o ataque.
[edit security idp custom-attack customftp] user@host# set attack-type signature direction client-to-server
Especifique um nome para o grupo de ataque personalizado.
[edit security idp] user@host# set custom-attack-group cust-group
Especifique uma lista de ataques ou grupos de ataque que pertencem ao grupo de ataque personalizado.
[edit security idp custom-attack-group cust-group] user@host# set group-members customftp user@host# set group-members ICMP:INFO:TIMESTAMP user@host# set group-members "TELNET - Major" user@host# set group-members dyn1
Especifique um nome para o primeiro grupo de ataque dinâmico.
[edit security idp] user@host# set dynamic-attack-group dyn1
Configure um filtro e defina um valor de categoria para o filtro.
[edit security idp dynamic-attack-group dyn1 ] user@host# set filters category values TROJAN
Especifique um nome para o segundo grupo de ataque dinâmico.
[edit security idp] user@host# set dynamic-attack-group dyn2
Configure um filtro para o segundo grupo de ataque dinâmico e defina a direção e seus valores para este campo.
[edit security idp dynamic-attack-group dyn2 ] user@host# set filters direction expression and user@host# set filters direction values server-to-client user@host# set filters direction values client-to-server user@host# set filters age-of-attack less-than value 7 user@host# set filters cvss-score less-than value 7 user@host# set filters file-type MPEG user@host# set filters vendor Microsoft user@host# set filters vulnerability-type values Injection
Especifique as opções de rastreamento e trace informações de arquivos para os serviços IDP.
[edit] user@host# set security idp traceoptions file idpd
Especifique os eventos e outras informações que precisam ser incluídas na saída de rastreamento.
[edit] user@host# set security idp traceoptions flag all
Resultados
A partir do modo de configuração, confirme sua configuração entrando no show security idp
comando. Se a saída não exibir a configuração pretendida, repita as instruções de configuração neste exemplo para corrigi-la.
[edit] user@host# show security idp idp-policy idpengine { rulebase-ips { rule 1 { match { from-zone any; source-address any; to-zone any; destination-address any; application default; attacks { custom-attack-groups cust-group; dynamic-attack-groups dyn2; } } then { action { no-action; } notification { log-attacks; } } } } } active-policy idpengine; custom-attack customftp { severity info; attack-type { signature { context ftp-username; pattern .*guest.*; direction client-to-server; } } } custom-attack-group cust-group { group-members [ customftp ICMP:INFO:TIMESTAMP "TELNET - Major" dyn1 ]; } dynamic-attack-group dyn1 { filters { category { values TROJAN; } } } dynamic-attack-group dyn2 { filters { direction { expression and; values [ server-to-client client-to-server ]; } age-of-attack less-than { value 7; } vulnerability-type { values Injection; } vendor Microsoft; cvss-score less-than { value 7; } } } traceoptions { file idpd; flag all; }
Se você terminar de configurar o dispositivo, entre no commit
modo de configuração.
Quando você entra commit
no modo de configuração, a configuração é verificada internamente e depois comprometida. Se houver algum erro, o commit falhará e os erros serão relatados.
Verificação
Verificando a configuração
Propósito
Verifique se a configuração está correta.
Ação
A partir do modo operacional, entre no show security idp policy-commit-status
comando para verificar a compilação de políticas ou o status da carga.
A saída do show security idp policy-commit-status
comando é dinâmica; portanto, não há saída única para este comando.
Verifique se os ataques estão sendo detectados de acordo com a configuração, passe tráfego pelo dispositivo que desencadeará uma correspondência de ataque. Por exemplo, insira o show security idp status
comando para verificar se a política está carregada ou não.
user@host>
show security idp status
IDP policy[/var/db/idpd/bins/test.bin.gz.v] and detector[/var/db/idpd/sec-repository/installed-detector/libidp-detector.so.tgz.v] loaded successfully. The loaded policy size is:785 Bytes
Entre no show security idp attack table
comando para passar tráfego de ataque e depois verificar se os ataques estão sendo detectados ou não.
O comando só exibirá a saída quando os ataques forem detectados.
user@host>
show security idp attack table
IDP attack statistics: Attack name #Hits FTP:USER:ROOT 1
Expressões DFA de objetos de ataque personalizados
A Tabela 25 oferece exemplos de sintaxe para combinar com um padrão de ataque.
Sintaxe de exemplo |
Descrição |
Correspondências de exemplo |
---|---|---|
Olá.. B.0.1.. 00...... mundo |
Há dois aspectos a serem correspondentes: Deve combinar com o padrão de massa de bits: ×B.0.0.1.. 00,B Deve combinar o número de bytes (sinalizado por .) antes e depois do padrão de massa bit. |
Corresponde: Olá.. 0,11100...... mundoOlá.. 0,10000...... mundo Não combina: Olá,b.0.1.. 00,B.worldOlá. B.0.1.. 11...... mundo |
×X01 86 A5 00 00×X |
Padrão com os cinco bytes especificados. |
01 86 A5 00 00 |
(olá|mundo) |
Padrão com olá ou mundo ocorrendo uma vez. |
Olá mundo |
(olá|mundo)+ |
Padrão com olá ou mundo ocorrendo uma ou mais vezes. |
Helloworld worldhello Hellohello |
Olá, |
Padrão olá, caso insensível. |
Olá Olá Olá |
&uHello,u |
Padrão olá, Unicode insensível. |
Olá 68656c6c6f |
olá,sworld |
Padrão olá mundo, as duas palavras separadas por um whitespace. |
Olá, mundo |
[c-e]a(d|t) |
Padrão com a primeira letra de c, d ou e; a letra do meio a; e terminar em d ou t. |
gato papai comer |
[^c-d]a(d|t) |
Padrão que inicia uma letra diferente de c, d ou e; têm a segunda letra a; e terminar em d ou t. |
moda Zad |
a*b+c |
Padrão com qualquer número de caracteres (incluindo zero); seguido por um ou mais caracteres b; seguido por um personagem c. |
a.C abc aaaabbbbc |
T[Kk] |
Padrão que começa com um T maiúsculo, seguido por um k insensível de caso. |
TK Tk |
([Tt])k |
Padrão que começa com um t caso insensível, seguido por um k minúscula. |
Tk Tk |
Sea[In] |
Padrão que começa com o Mar, seguido por uma minúscula l, m ou n. |
Foca Costura Sean |
([B-D])em |
Padrão que começa com uma maiúsculo B, C ou D, seguido de uma minúscula em. |
Morcego Gato Dat |
0133,[olá],0135 |
Padrão que começa com um suporte de abertura, seguido de olá insensível ao caso, terminando com um suporte de fechamento. Essa expressão usa a expressão de ×0 para significar que a expressão a seguir é um código octal e, em seguida, o código octal para o suporte de abertura (133) ou o suporte de fechamento (135) segue. |
[Olá] [HeLLo] |
Exemplo: Usando negação de padrões
Você pode usar a negação de padrões para excluir um padrão conhecido por ser seguro e compatível com todos os outros.
Por exemplo, suponha que você esteja projetando um objeto de ataque para inspecionar o tráfego em um servidor FTP. Você sabe que o nome de usuário e as senhas da conta são bem mantidos para garantir que apenas usuários autorizados podem acessar recursos internos. No entanto, à medida que as redes crescem e novos componentes são adicionados, as contas de usuários podem se proliferar, aumentando assim o acesso à rede a componentes específicos. Neste exemplo, você tem um servidor FTP em sua rede interna que tem várias contas de usuário habilitadas. Para melhorar a segurança, você deseja restringir o acesso ao administrador FTP.
Você cria um objeto de ataque para o serviço FTP, contexto e padrão adminde nome de usuário ftp; e seleciona a caixa de verificação Negate . O resultado é um objeto de ataque que pode sinalizar tentativas de login de usuários que não admin. Você pode usar este objeto de ataque em uma regra que registra ou derruba tráfego correspondente.
Veja também
Exemplo: Extensões de arquivo correspondentes
Neste exemplo, você deseja detectar metafilos Microsoft Windows, que usam as extensões .emf (Metafilos aprimorados para Windows) e .wmf (Microsoft Windows Metafile).
Para combinar com qualquer um desses tipos de arquivo, use uma expressão DFA simples:
.*\.\[w|emf\]
Nesta expressão:
O período combinado com o asterisco (.*) indica que um ou mais caracteres devem aparecer (correspondência curinga).
O backslash combinado com o caractere de período (\.) indica que o caractere de período é escapado (o período aparece no padrão).
Os parênteses no início e no fim da expressão indicam um grupo. O caractere de tubulação entre o e e e (e|w) indica uma relação de OR entre os caracteres. Para esta expressão, e ou w deve aparecer no padrão para combinar com esta expressão; apenas um deve estar presente.
O suporte de abertura (\[) indica o início de uma combinação insensíveis para todos os caracteres até que o suporte de fechamento (\]) apareça.
O suporte de fechamento (\]) indica o fim de uma combinação insensível ao caso.
Veja também
Exemplo: ataques de negação de serviço apache Tomcat
Neste exemplo, assumimos que você tem um servidor Web executando Apache Tomcat. Seu administrador de segurança notifica você de que uma vulnerabilidade acaba de ser anunciada para o Apache Tomcat, e você decide criar um objeto de ataque personalizado para proteger sua rede até que você possa agendar o tempo de inatividade para corrigir o servidor.
O aviso da CVE para a vulnerabilidade (http://nvd.nist.gov/nvd.cfm?cvename=CAN-2002-0682) contém a seguinte cotação:
A cross-site scripting vulnerability in Apache Tomcat 4.0.3 allows remote attackers to execute script as other web users via script in a URL with the /servlet/ mapping, which does not filter the script when an exception is thrown by the servlet.
Com essas informações, você sabe que o ataque usa HTTP. Agora você deve localizar o código de ataque. O aviso também inclui referências que se ligam a mais informações sobre o ataque. Infelizmente, nenhuma das páginas da Web mencionadas contém código de exploração. Depois de pesquisar na Web usando as informações que aprendeu com o aviso da CVE, você localiza algum código de exploração em http://packetstormsecurity.nl/0210-exploits/neuter.c. Copie o script e mova-o para o computador invasor em seu laboratório de teste.
Para desenvolver este objeto de ataque:
Veja também
Listando condições de teste de IDP para um protocolo específico
Ao configurar ataques personalizados de IDP, você pode especificar condições de teste de lista para um protocolo específico. Listar condições de teste para ICMP:
Liste as condições de teste suportadas para o ICMP e escolha a que deseja configurar. As condições de teste suportadas estão disponíveis na CLI no nível de
[edit security idp custom-attack test1 attack-type anomaly]
hierarquia.user@host#set test icmp? Possible completions: <test> Protocol anomaly condition to be checked ADDRESSMASK_REQUEST DIFF_CHECKSUM_IN_RESEND DIFF_CHECKSUM_IN_RESPONSE DIFF_LENGTH_IN_RESEND
Configure o serviço para o qual deseja configurar a condição de teste.
user@host# set service ICMP
Configure a condição do teste (especificar o nome do protocolo não é necessário).
user@host# set test ADDRESSMASK_REQUEST
Se você terminar de configurar o dispositivo, entre no
commit
modo de configuração.
Entendendo os decodificadores de protocolo IDP
Os decodificadores de protocolo são usados pela Detecção e Prevenção de Intrusões (IDP) para verificar a integridade do protocolo e as informações contextuais de protocolo, procurando anomalias e garantindo que os padrões de RFC sejam atendidos. Uma anomalia pode ser qualquer parte de um protocolo, como o cabeçalho, o corpo de mensagens ou outros campos individuais que se desviam dos padrões de RFC para esse protocolo. Por exemplo, no caso do SMTP, se o SMTP MAIL TO precede o SMTP HELO, isso é uma anomalia no protocolo SMTP.
Quando as informações contextuais de protocolo estão disponíveis, os decodificadores de protocolo verificam ataques nesses contextos. Por exemplo, para SMTP, se um e-mail for enviado para user@company.com, user@company.com são as informações contextuais e o SMTP MAIL TO é o contexto. Ao usar dados contextuais de protocolo, em vez de todo o pacote, para detecção de ataques, os decodificadores de protocolo melhoram o desempenho e a precisão gerais.
Se houver uma política configurada com uma regra que corresponda à verificação do decodificador de protocolo para SMTP, a regra aciona e as medidas apropriadas são tomadas.
O módulo IDP é fornecido com um conjunto pré-configurado de decodificadores de protocolo. Esses decodificadores de protocolo têm configurações padrão para várias verificações contextuais específicas do protocolo que executam. Você pode usar esses padrões ou ajustá-los para atender às necessidades específicas do seu site. Para exibir a lista de decodificadores de protocolo disponíveis, insira o seguinte comando:
user@host # show security idp sensor-configuration detector protocol-name ?
Para ter uma visão mais detalhada do conjunto atual de decodificadores de protocolo e seus valores de contexto padrão, você pode visualizar o arquivodetector-capabilities.xml localizado na pasta /ar/db/idpd/sec-download no dispositivo. Ao baixar um novo pacote de segurança, você também recebe este arquivo que lista protocolos atuais e valores de contexto de decodificadores padrão.
Exemplo: Vulnerabilidade de CDE/dtlogin do UNIX
Neste exemplo, sua rede inclui várias estações de trabalho do usuário e servidores executando o UNIX. Muitos sistemas operacionais unix usam o ambiente de desktop comum (CDE) como uma interface gráfica de usuário. Seu administrador de segurança notifica você de uma nova vulnerabilidade no processo de dtlogin para CDE (o processo de dtlogin lida com um processo de login de GUI para CDE).
O aviso do CERT para a vulnerabilidade (http://www.kb.cert.org/vuls/id/179804) contém as seguintes informações:
...The dtlogin program contains a "double-free" vulnerability that can be triggered by a specially crafted X Display Manager Control Protocol (XDMCP) packet... Block XDMCP traffic (177/udp) from untrusted networks such as the Internet...
A partir dessas informações, você sabe que o ataque usa pacote de protocolo XDMCP e é executado em UDP/177. Agora você deve localizar o código de ataque. O aviso também inclui referências que se ligam a mais informações sobre o ataque. Uma referência, http://lists.immunitysec.com/pipermail/dailydave/2004-March/000402.html, indica que a pessoa que relatou o ataque pela primeira vez também escreveu um script que replica o ataque. Obtenha o script e mova-o para o computador invasor em seu laboratório de teste.
Para desenvolver este objeto de ataque:
Veja também
Exemplo: Detecção de um worm
Worms e Trojans muitas vezes ignoram firewalls e outras medidas de segurança tradicionais para entrar em uma rede. Neste exemplo, você cria um objeto de ataque personalizado para detectar o worm Blaster em sua rede.
O aviso de CERT (http://www.cert.org/advisories/CA-2003-20.html) para o worm Blaster fornece as seguintes informações:
The W32/Blaster worm exploits a vulnerability in Microsoft's DCOM RPC interface...”
A partir dessas informações, você sabe que o ataque usa exploração de DCOM, uma falha de segurança identificada anteriormente. Agora você deve localizar o código de ataque. O aviso também inclui referências que se ligam a mais informações sobre o ataque. Infelizmente, nenhuma das páginas da Web mencionadas contém código de exploração. Depois de pesquisar na Web usando as informações que aprendeu com o aviso do CERT, você localiza o código de exploração no PacketStorm (http://packetstormsecurity.com/0307-exploits/dcom.c).
Para desenvolver este objeto de ataque:
Veja também
Exemplo: Assinatura composta para detectar a exploração de uma vulnerabilidade HTTP
Alguns ataques são criados para parecer benignos quando vistos em um nível de pacote por pacote. Para esses ataques, você pode criar uma assinatura composta que detecta vários padrões de assinatura em vários contextos (serviço, não serviço ou ambos).
Neste exemplo, você tem um servidor Web que usa extensões do Microsoft FrontPage Server. Seu administrador de segurança notifica você sobre uma nova vulnerabilidade de transbordamento de buffer nas extensões do FrontPage Server.
O aviso da BugTraq sobre a vulnerabilidade (http://www.securityfocus.com/bid/9007/discussion/) contém as seguintes informações:
Microsoft FrontPage Server Extensions are prone to a remotely exploitable buffer overrun vulnerability ... It is possible to trigger this condition with a chunked-encoded HTTP POST request...
O exemplo de prova de conceito a seguir também é fornecido:
POST /_vti_bin/_vti_aut/fp30reg.dll HTTP/1.1 Transfer-Encoding: chunked PostLength PostData 0
Além disso, um link para a exploração compilada está incluído.
A partir dessas informações, você sabe que o ataque usa o protocolo HTTP e que pelo menos parte do ataque usa o método POST. Use o link para a exploração compilada para obter o script e movê-lo para o computador invasor em seu laboratório de teste.
Para desenvolver este objeto de ataque:
Veja também
Exemplo: usando parâmetros de vinculação de tempo para detectar um ataque de força bruta
A restrição de vinculação de tempo exige que o padrão ocorra em um determinado número de vezes em um minuto para que o tráfego seja considerado compatível.
Você pode usar o parâmetro de vinculação de tempo junto com a assinatura para detectar sinais de um ataque de força bruta. Um usuário trocando sua senha é um evento inofensivo, e normalmente é visto ocasionalmente na rede. No entanto, milhares de alterações de senha em um minuto são suspeitas.
Em um ataque de força bruta, o atacante tenta romper as defesas do sistema usando pura força, tipicamente sobrecarregando a capacidade do servidor de destino ou por tentativas repetidas, de teste e erro de combinar credenciais de autenticação. Em um ataque de login bruto, os invasores primeiro reúnem uma lista de nomes de usuário e um cookies de senha. Em seguida, o invasor usa uma ferramenta que insira a primeira senha no cookies para o primeiro usuário da lista e, em seguida, tenta cada senha para cada usuário até que ele receba uma correspondência. Se o invasor tentar todas as combinações de nomes de usuário e senhas, ele sempre terá sucesso. No entanto, ataques de força bruta muitas vezes falham porque o encapsulamento de senha é tipicamente limitado (não contém todas as senhas possíveis) e a ferramenta de ataque não executa permutações na senha (como inverter letras ou mudar de caso).
Neste exemplo, você cria um objeto de ataque de assinatura que detecta um número excessivo de alterações de senha para usuários autenticados via HTTP (um aplicativo baseado na Web).
Primeiro, você configura um padrão de ataque:
.*/\[changepassword\.cgi\]
Nesta expressão:
A combinação de estrelas de ponto (.*) indica uma combinação curinga.
O backslash antes de um personagem indica que o personagem representa uma expressão regular e deve ser escapado. Neste caso, o personagem é um suporte de abertura. O backslash também é usado nesta expressão antes do marcador de extensão de arquivo (o ponto) e antes do suporte de fechamento.
O nome do script de cgi usado para alterar senhas do usuário está incluído, bem como a extensão de cgi.
Para o contexto, selecione HTTP-URL-PARSED da lista porque você está tentando detectar alterações de senha que ocorrem para aplicativos baseados na Web. O script changepassword.cgi, quando usado, aparece como parte da URL, mas você precisa dizer ao dispositivo da Série IDP para analisar a URL para encontrar o nome.
Em seguida, você configura a vinculação de tempo.
Nessas configurações:
O escopo é definido para Peer para que o padrão de ataque possa combinar com o evento, independentemente da origem ou destino.
A contagem é definida para um número alto (para 1000) para evitar falsos positivos. Esse valor significa que o script de changepassword.cgi deve aparecer em uma URL 1000 vezes antes que o objeto de ataque seja combinado.
Veja também
Referência: Números de protocolo de objetos de ataque personalizados
Tabela 26 números de protocolo usados no sistema IDP.
Nome do protocolo |
Número do protocolo |
---|---|
HOPOPT |
0 |
ICMP |
1 |
IGMP |
2 |
GGP |
3 |
IPIP |
4 |
ST |
5 |
TCP |
6 |
CBT |
7 |
EGP |
8 |
IGP |
9 |
BBN-RCC-MON |
10 |
NVP-II |
11 |
CACHORRINHO |
12 |
ARGUS |
13 |
EMCON |
14 |
XNET |
15 |
CAOS |
16 |
UDP |
17 |
MUX |
18 |
DCN-MEAS |
19 |
HMP |
20 |
PRM |
21 |
XND-IDP |
22 |
TRONCO 1 |
23 |
TRUNK-2 |
24 |
LEAF-1 |
25 |
LEAF-2 |
26 |
RDP |
27 |
IRTP |
28 |
ISO-TP4 |
29 |
NETBLT |
30 |
MFE-NSP |
31 |
MERIT-INP |
32 |
SETEMBRO |
33 |
3PC |
34 |
IDPR |
35 |
XTP |
36 |
DDP |
37 |
TP_PLUS_PLUS |
39 |
IL |
40 |
IPV6 |
41 |
SDRP |
42 |
ROTEAMENTO IPV6 |
43 |
IDV6-FRAGMENT |
44 |
IDRP |
45 |
RSVP |
46 |
GRE |
47 |
MHRP |
48 |
BNA |
49 |
ESP |
50 |
AH |
51 |
I-NLSP |
52 |
FURTO |
53 |
NARP |
54 |
TELEMÓVEL |
55 |
TLSP |
56 |
SALTITAR |
57 |
IPV6-ICMP |
58 |
IPV6-NONXT |
59 |
IPV6-OPTS |
60 |
AHIP |
61 |
CFTP |
62 |
ALNP |
63 |
SAT-EXPAK |
64 |
KRYPTOLAN |
65 |
RVD |
66 |
IPPC |
67 |
ADFSP |
68 |
SÁB-MON |
69 |
VISTO |
70 |
IPCV |
71 |
CPNX |
72 |
CPHB |
73 |
WSN |
74 |
PVP |
75 |
BR-SAT-MON |
76 |
SUN-ND |
77 |
WB-MON |
78 |
WB-EXPAK |
79 |
ISO-IP |
80 |
VMTP |
81 |
SECURE-VMTP |
82 |
VIDEIRAS |
83 |
TTP |
84 |
NSFNET-IBP |
85 |
DGP |
86 |
TCF |
87 |
EIGRP |
88 |
OSPFIGP |
89 |
SPRITE-RPC |
90 |
LARP |
91 |
MTP |
92 |
AX_25 |
93 |
IPIP |
94 |
MICP |
95 |
SCC-SP |
96 |
ETHERIP |
97 |
ENCAP |
98 |
MACACOS |
99 |
GMTP |
100 |
IFMP |
101 |
PNNI |
102 |
PIM |
103 |
ARIS |
104 |
SCPS |
105 |
QNX |
106 |
A/N |
107 |
IPCOMP |
108 |
SNP |
109 |
COMPAT-PEER |
110 |
IPZ-IN-IP |
111 |
VRRP |
112 |
PGM |
113 |
HOP-O |
114 |
L2TP |
115 |
DDX |
116 |
IATP |
117 |
STP |
118 |
SRP |
119 |
UTI |
120 |
SMP |
121 |
SSM |
122 |
PTP |
123 |
ÍSIS |
124 |
FOGO |
125 |
CRTP |
126 |
CRUDP |
127 |
SSCOPMCE |
128 |
IPLT |
129 |
SPS |
130 |
CACHIMBO |
131 |
SCTP |
132 |
FC |
133 |
RSVP-E2E-IGNORE |
134 |
n/a |
|
n/a |
|
n/a |
|
RESERVADO |
255 |
Referência: Caracteres ASCII não imprimíveis e imprimíveis
As tabelas a seguir fornecem detalhes sobre a representação ASCII de caracteres não imprimíveis e imprimíveis.
Dezembro |
Enfeitiçar |
Outubro |
Queimar |
Comentário |
---|---|---|---|---|
0 |
0 |
000 |
NUL |
Zero |
1 |
1 |
001 |
SOH |
Início do título |
2 |
2 |
002 |
STX |
Início do texto |
3 |
3 |
003 |
ETX |
Fim do texto |
4 |
4 |
004 |
EOT |
Fim da transmissão |
5 |
5 |
005 |
ENQ |
Inquérito |
6 |
6 |
006 |
ACK |
Reconhecer |
7 |
7 |
007 |
BEL |
Sino |
8 |
8 |
010 |
BS |
Backspace |
9 |
9 |
011 |
GUIA |
Guia horizontal |
10 |
Um |
012 |
SE |
Feed de linha |
11 |
B |
013 |
VT |
Guia vertical |
12 |
C |
014 |
FF |
Feed de formulários |
13 |
D |
015 |
CR |
Retorno do transporte |
14 |
E |
016 |
ENTÃO |
Deslocá-lo |
15 |
F |
017 |
SI |
Shift In |
16 |
10 |
020 |
MORRER |
Fuga do link de dados |
17 |
11 |
021 |
DC1 |
Controle de dispositivos 1 |
18 |
12 |
022 |
DC2 |
Controle de dispositivos 2 |
19 |
13 |
023 |
DC3 |
Controle de dispositivos 3 |
20 |
14 |
024 |
DC4 |
Controle de dispositivos 4 |
21 |
15 |
025 |
NAK |
Reconhecimento negativo |
22 |
16 |
026 |
SYN |
Ocioso síncronos |
23 |
17 |
027 |
ETB |
Bloco de fim de transmissão |
24 |
18 |
030 |
PODER |
Cancelar |
25 |
19 |
031 |
EME |
Fim do médio |
26 |
1A |
032 |
SUB |
Substituir |
27 |
1B |
033 |
ESC |
Escapar |
28 |
1C |
034 |
FS |
Separador de arquivos |
29 |
1D |
035 |
GS |
Separador de grupos |
30 |
1E |
036 |
RS |
Separador de registros |
31 |
1F |
037 |
NOS |
Separador de unidade |
Dezembro |
Enfeitiçar |
Outubro |
Queimar |
---|---|---|---|
32 |
20 |
040 |
Espaço |
33 |
21 |
041 |
! |
34 |
22 |
042 |
|
35 |
23 |
043 |
# |
36 |
24 |
044 |
$ |
37 |
25 |
045 |
% |
38 |
26 |
046 |
& |
39 |
27 |
047 |
|
40 |
28 |
050 |
( |
41 |
29 |
051 |
) |
42 |
2A |
052 |
* |
43 |
2B |
053 |
+ |
44 |
2C |
054 |
, |
45 |
2D |
055 |
- |
46 |
2E |
056 |
. |
47 |
2F |
057 |
/ |
48 |
30 |
060 |
0 |
49 |
31 |
061 |
1 |
50 |
32 |
062 |
2 |
51 |
33 |
063 |
3 |
52 |
34 |
064 |
4 |
53 |
35 |
065 |
5 |
54 |
36 |
066 |
6 |
55 |
37 |
067 |
7 |
56 |
38 |
070 |
8 |
57 |
39 |
071 |
9 |
58 |
3A |
072 |
: |
59 |
3B |
073 |
; |
60 |
3C |
074 |
< |
61 |
3D |
075 |
= |
62 |
3E |
076 |
> |
63 |
3F |
077 |
? |
64 |
40 |
100 |
@ |
65 |
41 |
101 |
Um |
66 |
42 |
102 |
B |
67 |
43 |
103 |
C |
68 |
44 |
104 |
D |
69 |
45 |
105 |
E |
70 |
46 |
106 |
F |
71 |
47 |
107 |
G |
72 |
48 |
110 |
H |
73 |
49 |
111 |
Eu |
74 |
4A |
112 |
J |
75 |
4B |
113 |
K |
76 |
4C |
114 |
L |
77 |
4D |
115 |
M |
78 |
4E |
116 |
N |
79 |
4F |
117 |
O |
80 |
50 |
120 |
P |
81 |
51 |
121 |
Q |
82 |
52 |
122 |
R |
83 |
53 |
123 |
S |
84 |
54 |
124 |
T |
85 |
55 |
125 |
U |
86 |
56 |
126 |
V |
87 |
57 |
127 |
W |
88 |
58 |
130 |
X |
89 |
59 |
131 |
Y |
90 |
5A |
132 |
Z |
91 |
5B |
133 |
[ |
92 |
5C |
134 |
\ |
93 |
5D |
135 |
] |
94 |
5E |
136 |
^ |
95 |
5F |
137 |
_ |
96 |
60 |
140 |
` |
97 |
61 |
141 |
um |
98 |
62 |
142 |
b |
99 |
63 |
143 |
c |
100 |
64 |
144 |
d |
101 |
65 |
145 |
e |
102 |
66 |
146 |
f |
103 |
67 |
147 |
g |
104 |
68 |
150 |
h |
105 |
69 |
151 |
Eu |
106 |
6A |
152 |
j |
107 |
6B |
153 |
k |
108 |
6C |
154 |
l |
109 |
6D |
155 |
m |
110 |
6E |
156 |
n |
111 |
6F |
157 |
o |
112 |
70 |
160 |
p |
113 |
71 |
161 |
q |
114 |
72 |
162 |
r |
115 |
73 |
163 |
s |
116 |
74 |
164 |
t |
117 |
75 |
165 |
u |
118 |
76 |
166 |
v |
119 |
77 |
167 |
w |
120 |
78 |
170 |
x |
121 |
79 |
171 |
y |
122 |
7A |
172 |
z |
123 |
7B |
173 |
{ |
124 |
7C |
174 |
| |
125 |
7D |
175 |
} |
126 |
7E |
176 |
~ |
127 |
7F |
177 |
DEL |
128 |
80 |
200 |
Ç |
129 |
81 |
201 |
ü |
130 |
82 |
202 |
é |
131 |
83 |
203 |
â |
132 |
84 |
204 |
ä |
133 |
85 |
205 |
à |
134 |
86 |
206 |
å |
135 |
87 |
207 |
ç |
136 |
88 |
210 |
ê |
137 |
89 |
211 |
ë |
138 |
8A |
212 |
è |
139 |
8B |
213 |
ï |
140 |
8C |
214 |
î |
141 |
8D |
215 |
ì |
142 |
8E |
216 |
Ä |
143 |
8F |
217 |
Å |
144 |
90 |
220 |
É |
145 |
91 |
221 |
á |
146 |
92 |
222 |
AI |
147 |
93 |
223 |
ô |
148 |
94 |
224 |
ö |
149 |
95 |
225 |
ò |
150 |
96 |
226 |
û |
151 |
97 |
227 |
ù |
152 |
98 |
230 |
ÿ |
153 |
99 |
231 |
Ö |
154 |
9A |
232 |
Ü |
155 |
9B |
233 |
¢ |
156 |
9C |
234 |
£ |
157 |
9D |
235 |
¥ |
158 |
9E |
236 |
P |
159 |
9F |
237 |
ƒ |
160 |
A0 |
240 |
á |
161 |
A1 |
241 |
í |
162 |
A2 |
242 |
ó |
163 |
A3 |
243 |
ú |
164 |
A4 |
244 |
ñ |
165 |
A5 |
245 |
Ñ |
166 |
A6 |
246 |
ª |
167 |
A7 |
247 |
º |
168 |
A8 |
250 |
¿ |
169 |
A9 |
251 |
¬ |
170 |
AA |
252 |
|
171 |
AB |
253 |
1/2 |
172 |
Corrente alternada |
254 |
1/4 |
173 |
ANÚNCIO |
255 |
¡ |
174 |
AE |
256 |
" |
175 |
AF |
257 |
" |
176 |
B0 |
260 |
¦ |
177 |
B1 |
262 |
¦ |
178 |
B2 |
262 |
¦ |
179 |
B3 |
263 |
¦ |
180 |
B4 |
264 |
¦ |
181 |
B5 |
265 |
¦ |
182 |
B6 |
266 |
¦ |
183 |
B7 |
267 |
+ |
184 |
B8 |
270 |
+ |
185 |
B9 |
271 |
¦ |
186 |
BA |
272 |
¦ |
187 |
BB |
273 |
+ |
188 |
A.C |
274 |
+ |
189 |
BD |
275 |
+ |
190 |
SER |
276 |
+ |
191 |
BF |
277 |
+ |
192 |
C0 |
300 |
+ |
193 |
C1 |
301 |
- |
194 |
C2 |
302 |
- |
195 |
C3 |
303 |
+ |
196 |
C4 |
304 |
- |
197 |
C5 |
305 |
+ |
198 |
C6 |
306 |
¦ |
199 |
C7 |
307 |
¦ |
200 |
C8 |
310 |
+ |
201 |
C9 |
311 |
+ |
202 |
CA |
312 |
- |
203 |
CB |
313 |
- |
204 |
CC |
314 |
¦ |
205 |
CD |
315 |
- |
206 |
CE |
316 |
+ |
207 |
CF |
317 |
- |
208 |
D0 |
320 |
- |
209 |
D1 |
321 |
- |
210 |
D2 |
322 |
- |
211 |
D3 |
323 |
+ |
212 |
D4 |
324 |
+ |
213 |
D5 |
325 |
+ |
214 |
D6 |
326 |
+ |
215 |
D7 |
327 |
+ |
216 |
D8 |
330 |
+ |
217 |
D9 |
331 |
+ |
218 |
DA |
332 |
+ |
219 |
DB |
333 |
¦ |
220 |
DC |
334 |
_ |
221 |
DD |
335 |
¦ |
222 |
DE |
336 |
¦ |
223 |
DF |
337 |
¯ |
224 |
E0 |
340 |
um |
225 |
E1 |
341 |
ß |
226 |
E2 |
342 |
G |
227 |
E3 |
343 |
p |
228 |
E4 |
344 |
S |
229 |
E5 |
345 |
s |
230 |
E6 |
346 |
μ |
231 |
E7 |
347 |
t |
232 |
E8 |
350 |
F |
233 |
E9 |
351 |
T |
234 |
EA |
352 |
O |
235 |
EB |
353 |
d |
236 |
CE |
354 |
8 |
237 |
ED |
355 |
f |
238 |
EE |
356 |
e |
239 |
EF |
357 |
n |
240 |
F0 |
360 |
= |
241 |
F1 |
361 |
+/- |
242 |
F2 |
362 |
= |
243 |
F3 |
363 |
= |
244 |
F4 |
364 |
( |
245 |
F5 |
365 |
) |
246 |
F6 |
366 |
÷ |
247 |
F7 |
367 |
˜ |
248 |
F8 |
370 |
° |
249 |
F9 |
371 |
﹒ |
250 |
FA |
372 |
﹒ |
251 |
FB |
373 |
v |
252 |
FC |
374 |
n |
253 |
FD |
375 |
² |
254 |
FE |
376 |
¦ |
255 |
FF |
377 |
|
Exemplo: Configuração de decodificadores de protocolo IDP
Este exemplo mostra como configurar os decodificadores de protocolo IDP.
Requisitos
Antes de começar, analise o recurso de decodificadores de protocolo IDP. Veja como entender os decodificadores de protocolo IDP.
Visão geral
O módulo Junos IDP é fornecido com um conjunto de decodificadores de protocolo pré-configurados. Esses decodificadores de protocolo têm configurações padrão para várias verificações contextuais específicas do protocolo que executam. Você pode usar as configurações padrão ou ajustá-las para atender às necessidades específicas do seu site. Este exemplo mostra como ajustar o decodificador de protocolo para FTP.
Configuração
Procedimento
Procedimento passo a passo
Para configurar os decodificadores de protocolo IDP:
Veja a lista de protocolos que têm parâmetros ajustáveis.
[edit] user@host# edit security idp sensor-configuration detector protocol-name FTP
Configure parâmetros ajustáveis para o protocolo FTP.
[edit security idp sensor-configuration-detector protocol-name FTP] user@host# set tunable-name sc_ftp_failed_logins tunable-value 4 user@host# set tunable-name sc_ftp_failed_flags tunable value 1 user@host# set tunable-name sc_ftp_line_length tunable-value 1024 user@host# set tunable-name sc_ftp_password_length tunable-value 64 user@host# set tunable-name sc_ftp_sitestring_length tunable-value 512 user@host# set tunable-name sc_ftp_username_length tunable-value 32
Se você terminar de configurar o dispositivo, confirme a configuração.
[edit] user@host# commit
Verificação
Para verificar se a configuração está funcionando corretamente, insira o show security idp status
comando.
Entendendo o suporte a vários detectores de IDP
Quando um novo pacote de segurança é recebido, ele contém definições de ataque e um detector. Em qualquer versão de um pacote de segurança, as definições de ataque correspondem aos recursos do detector incluído. Quando o envelhecimento da política é desativado no dispositivo (veja a declaração de reset-on-policy para comandos de envelhecimento de políticas), apenas uma política está em vigor a qualquer momento. No entanto, se o envelhecimento da política for habilitado e houver uma atualização de política, a política existente não será descarregada quando a nova política é carregada. Portanto, ambas as políticas podem estar em vigor no dispositivo. Neste caso, todas as sessões existentes continuarão a ser inspecionadas pelas políticas existentes e novas sessões são inspecionadas com novas políticas. Assim que todas as sessões existentes que usam a política mais antiga tiverem terminado ou expirado, a política mais antiga é então descarregada.
Quando uma política é carregada, ela também está associada a um detector. Se a nova política que está sendo carregada tiver um detector associado que corresponda ao detector já em uso pela política existente, o novo detector não será carregado e ambas as políticas usam um único detector associado. Mas se o novo detector não combinar com o detector de corrente, o novo detector é carregado junto com a nova política. Neste caso, cada política carregada usará seu próprio detector associado para detecção de ataques.
Observe que um máximo de dois detectores podem ser carregados a qualquer momento. Se dois detectores já estiverem carregados (por duas ou mais políticas), e o carregamento de uma nova política exigir também o carregamento de um novo detector, pelo menos um dos detectores carregados deve ser descarregado antes que o novo detector possa ser carregado. Antes que um detector seja descarregado, todas as políticas que usam o detector correspondente também são descarregadas.
Você pode visualizar a política atual e a versão correspondente do detector inserindo o seguinte comando:
user@host> show security idp status
A partir do Junos OS Release 18.4R1, quando uma nova política de IDP é carregada, as sessões existentes são inspecionadas usando a política recém-carregada e as sessões existentes não são ignoradas para o processamento de IDP. A inspeção de IDP continua para ataques baseados em contexto criados pelo detector depois que uma nova política de IDP é carregada, com exceção de que a nova política que está carregada com o novo detector.
Entendendo a descompressão de conteúdo
Em protocolos de aplicativos como HTTP, o conteúdo pode ser comprimido e depois transmitido pela rede. Os padrões não corresponderão ao conteúdo comprimido, porque os padrões de assinatura estão escritos para combinar com os dados de tráfego não codificados. Neste caso, a detecção de IDP é evitada. Para evitar a evasão de detecção de IDP no conteúdo comprimido de HTTP, foi adicionado um submodule de IDP que descompprime o conteúdo do protocolo. A correspondência de padrões de assinatura é feita no conteúdo descompactado.
Para exibir o status de todos os valores de contador IPS, insira o seguinte comando:
user@host> show security idp counters ips
Alguns ataques são introduzidos por meio de conteúdo comprimido. Quando o conteúdo é descompactado, ele pode inflar para um tamanho muito grande ocupando recursos valiosos do sistema, resultando em negação de serviço. Esse tipo de ataque pode ser reconhecido pela relação entre o tamanho dos dados descompactados e o tamanho dos dados comprimidos. O contador de relação entre taxas de descomppressão e conteúdo identifica o número de incidentes em que essa taxa foi excedida. A taxa de padrão é considerada consistente com um ambiente típico. Em alguns casos, no entanto, essa relação pode precisar ser ajustada redefinindo o content-decompress-ratio-over-limit
valor. Tenha em mente, no entanto, que uma relação mais alta diminui a chance de detectar esse tipo de ataque.
O contador de memória acima do limite de descomppressão de conteúdo identifica o número de incidentes em que a quantidade de dados descompactados excedeu a memória alocada. A alocação de memória padrão fornece 33 KB por sessão para um número médio de sessões que exigem descompressão ao mesmo tempo. Para determinar se esse valor é consistente com o seu ambiente, analise valores de contadores relacionados à descompressão e o número total de sessões de IDP que atravessam o dispositivo e calcule o número de sessões que exigem descompressão ao mesmo tempo. Supondo que cada uma dessas sessões exija 33 KB de memória para descompressão, compare suas necessidades estimadas com o valor padrão. Se necessário, você pode ajustar a alocação de memória redefinindo o content-decompression-max-memory-kb
valor. Observe que, como a descompressão de conteúdo requer uma alocação significativa de memória, o desempenho do sistema será impactado aumentando a alocação máxima de memória para descompressão.
Exemplo: configuração da descompressão de conteúdo IDP
Este exemplo mostra como configurar a descompressão de conteúdo IDP.
Requisitos
Antes de começar, analise o recurso de descompressão de conteúdo IDP. Veja a compreensão da descompressão de conteúdo
Visão geral
O recurso de descompressão é desativado por padrão. Neste exemplo, você habilita o detector, configura a memória máxima para 50.000 kilobytes e configura uma relação de descompressão máxima de 16:1.
Habilitar a descompressão resultará em uma redução no desempenho em seu dispositivo.
Configuração
Procedimento
Procedimento passo a passo
Para configurar a descompressão de conteúdo IDP:
Habilite o detector.
[edit] user@host# set security idp sensor‑configuration detector protocol‑name HTTP tunable‑name sc_http_compress_inflating tunable‑value 1
Nota:Para desativar o detector, configure o
tunable‑value
0.Se necessário, modifique a memória máxima em kilobytes.
[edit security idp] user@host# set sensor-configuration ips content-decompression-max-memory-kb 50000
Se necessário, configure a relação máxima de descompressão.
[edit security idp] user@host# set sensor-configuration ips content-decompression-max-ratio 16
Se você terminar de configurar o dispositivo, confirme a configuração.
[edit] user@host# commit
Verificação
Para verificar se a configuração está funcionando corretamente, insira o show security idp status ips
comando. Os contadores de descomppressão de conteúdo fornecem estatísticas sobre processamento de descompressão.
Entendendo ataques baseados em assinatura IDP
Para configurar um objeto de ataque personalizado, você especifica um nome único para ele e depois especifica informações adicionais, o que pode facilitar a localização e manutenção do objeto de ataque.
Determinadas propriedades nas definições de objetos de ataque são comuns a todos os tipos de ataques, como nome de ataque, nível de gravidade, ligação de serviço ou aplicativo, vinculação de tempo e protocolo ou ligação de portas. Alguns campos são específicos para um tipo de ataque e estão disponíveis apenas para essa definição de ataque específica.
Objetos de ataque assinatura usam uma assinatura de ataque stateful (um padrão que sempre existe dentro de uma seção específica do ataque) para detectar ataques conhecidos. Eles também incluem o protocolo ou serviço usado para perpetrar o ataque e o contexto em que o ataque ocorre. As propriedades a seguir são específicas para ataques de assinatura e você pode configurá-los ao configurar ataques de assinatura — contexto de ataque, direção de ataque, padrão de ataque e parâmetros específicos de protocolo (TCP, UDP, ICMP ou campos de cabeçalho IP).
Ao configurar ataques baseados em assinatura, lembre-se do seguinte:
Contexto e direção de ataques são campos obrigatórios para a definição de ataque de assinatura.
A negação de padrões é suportada apenas para contextos baseados em pacotes, linhas e aplicativos, e não para contextos de fluxo transmitidos e normalizados.
Ao configurar os parâmetros específicos do protocolo, você pode especificar campos para apenas um dos seguintes protocolos — IP, TCP, UDP ou ICMP.
Ao configurar uma ligação de protocolo, você pode especificar apenas um dos seguintes — IP, ICMP, TCP, UDP, RPC ou aplicativos.
IP — O número do protocolo é um campo obrigatório.
TCP e UDP — Você pode especificar uma única porta (
minimum-port
) ou uma faixa de porta (minimum-port
emaximum-port
). Se você não especificar uma porta, o valor padrão será tomado (0-65535
).RPC — O número do programa é um campo obrigatório.
A partir do Junos OS Release 19.1R1, você pode configurar ataques baseados em assinatura usando parâmetros estendidos hyperscan. Ao definir valores ideais para os parâmetros estendidos do Hyperscan, você pode melhorar significativamente o processo de correspondência de padrões de ataque.
Para configurar os parâmetros estendidos, inclua a opção optional-parameters
no nível de [edit security idp custom-attack attack-name attack-type signature]
hierarquia. Você pode configurar os seguintes parâmetros sob a opção optional-parameters
:
min-offset
max-offset
min-length
Princípio de trabalho breve da Hyperscan API – Hyperscan é um mecanismo de correspondência de expressão regular de software projetado para oferecer alto desempenho e flexibilidade. Quando uma assinatura com um padrão é configurada como parte de uma política de IDP, o padrão é identificado como uma expressão regular. No mecanismo de roteamento, a Hyperscan toma essa expressão regular como uma entrada e a compila para formar um banco de dados que é empurrado para o Mecanismo de encaminhamento de pacotes. Quando um pacote entra no Mecanismo de encaminhamento de pacotes, os dados no pacote são inspecionados para determinar se ele está combinando com a expressão regular usando o banco de dados.
Se uma política de IDP for configurada com um conjunto de assinaturas, grupos de automação finito determinístico (DFA) são formados. Padrões de todas as assinaturas dos grupos DFA são passados à Hyperscan para formar um único banco de dados, que pode ser usado para verificar todos os ataques no pacote de cada vez. Como um único banco de dados é usado em vez de um banco de dados separado para cada ataque, o processo de correspondência de padrões é eficiente.
Quando uma assinatura é configurada com os parâmetros estendidos, a API Hyperscan forma o banco de dados levando em consideração os parâmetros configurados. O processo de correspondência de padrões ocorre no Mecanismo de encaminhamento de pacotes com este novo banco de dados. Esses parâmetros permitem que o conjunto de correspondências produzidas por um padrão seja restringido no momento da compilação, em vez de depender do aplicativo para processar partidas indesejadas em tempo de execução.
Veja também
Exemplo: configuração de ataques baseados em assinatura IDP
Este exemplo mostra como criar um objeto de ataque baseado em assinatura.
Requisitos
Antes de começar, configure interfaces de rede.
Visão geral
Neste exemplo, você cria um ataque de assinatura chamado sig1 e atribui as seguintes propriedades:
Ação recomendada (drop packet) — derruba um pacote correspondente antes de chegar ao seu destino, mas não fecha a conexão.
Vinculação de tempo — especifica o escopo como
source
e a contagem como10
. Quando o escopo ésource
, todos os ataques da mesma fonte são contados, e quando o número de ataques chega à contagem especificada (10
), o ataque é registrado. Neste exemplo, cada 10 ataques da mesma fonte são registrados.Contexto de ataque (pacote)— corresponde ao padrão de ataque em um pacote.
Direção de ataque (qualquer) — detecta o ataque em ambas as direções — tráfego de cliente para servidor e servidor para cliente.
Protocolo (TCP)— especifica o valor de TTL de 128.
Shellcode (Intel)— define a bandeira para detectar o shellcode para plataformas Intel.
Vinculação de protocolo — especifica o protocolo TCP e as portas de 50 a 100.
Depois de configurar um objeto de ataque baseado em assinatura, especifique o ataque como critérios de correspondência em uma regra de política de IDP. Veja exemplo: definindo regras para uma base de regras IDP IPS.
Configuração
Procedimento
Configuração rápida da CLI
Para configurar rapidamente este exemplo, copie os seguintes comandos, cole-os em um arquivo de texto, remova qualquer quebra de linha, altere os detalhes necessários para combinar com a configuração da sua rede e, em seguida, copie e cole os comandos na CLI no nível de hierarquia e, em seguida, entre no [edit]
commit
modo de configuração.
set security idp custom-attack sig1 severity major set security idp custom-attack sig1 recommended-action drop-packet set security idp custom-attack sig1 time-binding scope source count 10 set security idp custom-attack sig1 attack-type signature context packet set security idp custom-attack sig1 attack-type signature shellcode intel set security idp custom-attack sig1 attack-type signature protocol ip ttl value 128 match equal set security idp custom-attack sig1 attack-type signature protocol-binding tcp minimum-port 50 maximum-port 100 set security idp custom-attack sig1 attack-type signature direction any
Procedimento passo a passo
O exemplo a seguir exige que você navegue por vários níveis na hierarquia de configuração. Para obter instruções sobre como fazer isso, veja Usando o Editor de CLI no modo de configuração no Guia do usuário da CLI.
Para criar um objeto de ataque baseado em assinatura:
Especifique um nome para o ataque.
[edit] user@host# edit security idp custom-attack sig1
Especifique propriedades comuns para o ataque.
[edit security idp custom-attack sig1] user@host# set severity major user@host# set recommended-action drop-packet user@host# set time-binding scope source count 10
Especifique o tipo de ataque e o contexto.
[edit security idp custom-attack sig1] user@host# set attack-type signature context packet
Especifique a direção de ataque e a bandeira do shellcode.
[edit security idp custom-attack sig1] user@host# set attack-type signature shellcode intel
Definir o protocolo e seus campos.
[edit security idp custom-attack sig1] user@host# set attack-type signature protocol ip ttl value 128 match equal
Especifique a ligação de protocolo e as portas.
[edit security idp custom-attack sig1] user@host# set attack-type signature protocol-binding tcp minimum-port 50 maximum-port 100
Especifique a direção.
[edit security idp custom-attack sig1] user@host# set attack-type signature direction any
Resultados
A partir do modo de configuração, confirme sua configuração entrando no show security idp
comando. Se a saída não exibir a configuração pretendida, repita as instruções de configuração neste exemplo para corrigi-la.
[edit] user@host# show security idp custom-attack sig1 { recommended-action drop-packet; severity major; time-binding { count 10; scope source; } attack-type { signature { protocol-binding { tcp { minimum-port 50 maximum-port 100; } } context packet; direction any; shellcode intel; protocol { ip { ttl { match equal; value 128; } } } } } }
Se você terminar de configurar o dispositivo, entre no commit
modo de configuração.
Entendendo ataques baseados em anomalias de protocolo IDP
Um objeto de ataque de anomalia de protocolo detecta ataques desconhecidos ou sofisticados que violam especificações de protocolo (RFCs e extensões RFC comuns). Você não pode criar novas anomalias de protocolo, mas pode configurar um novo objeto de ataque que controla como seu dispositivo lida com uma anomalia de protocolo predefinida quando detectada.
As seguintes propriedades são específicas para protocolo de ataques de anomalias:
Direção de ataque
Condição do teste
Ao configurar ataques baseados em anomalias de protocolo, tenha em mente o seguinte:
A ligação de serviços ou aplicativos é um campo obrigatório para ataques de anomalias de protocolo. Além dos aplicativos suportados, os serviços também incluem IP, TCP, UDP, ICMP e RPC.
As propriedades de direção de ataque e condição de teste são campos obrigatórios para configurar definições de ataque de anomalias.
Exemplo: configuração de ataques baseados em anomalias de protocolo IDP
Este exemplo mostra como criar um objeto de ataque baseado em anomalias de protocolo.
Requisitos
Antes de começar, configure interfaces de rede.
Visão geral
Neste exemplo, você cria um ataque de anomalia de protocolo chamado anomalia1 e atribui as seguintes propriedades:
Vinculação de tempo — especifica o escopo e
peer
a contagem para2
detectar anomalias entre endereços IP de origem e destino das sessões para o número especificado de vezes.Gravidade (informações)— Fornece informações sobre qualquer ataque que corresponda às condições.
Direção de ataque (qualquer) — detecta o ataque em ambas as direções — tráfego de cliente para servidor e servidor para cliente.
Serviço (TCP) — combina ataques usando o serviço TCP.
Condição de teste (OPTIONS_UNSUPPORTED)— Corresponde a determinadas condições de teste predefinidas. Neste exemplo, a condição é combinar se o ataque incluir opções sem suporte.
Shellcode (sparc) — define a bandeira para detectar o código de shellcode para plataformas Sparc.
Depois de configurar o objeto de ataque baseado em anomalias de protocolo, você especifica o ataque como critério de correspondência em uma regra de política de IDP. Veja exemplo: definindo regras para uma base de regras IDP IPS.
Configuração
Procedimento
Configuração rápida da CLI
Para configurar rapidamente este exemplo, copie os seguintes comandos, cole-os em um arquivo de texto, remova qualquer quebra de linha, altere os detalhes necessários para combinar com a configuração da sua rede e, em seguida, copie e cole os comandos na CLI no nível de hierarquia e, em seguida, entre no [edit]
commit
modo de configuração.
set security idp custom-attack anomaly1 severity info set security idp custom-attack anomaly1 time-binding scope peer count 2 set security idp custom-attack anomaly1 attack-type anomaly test OPTIONS_UNSUPPORTED set security idp custom-attack sa set security idp custom-attack sa attack-type anomaly service TCP set security idp custom-attack sa attack-type anomaly direction any set security idp custom-attack sa attack-type anomaly shellcode sparc
Procedimento passo a passo
O exemplo a seguir exige que você navegue por vários níveis na hierarquia de configuração. Para obter instruções sobre como fazer isso, veja Usando o Editor de CLI no modo de configuração no Guia do usuário da CLI.
Para criar um objeto de ataque baseado em anomalias de protocolo:
Especifique um nome para o ataque.
[edit] user@host# edit security idp custom-attack anomaly1
Especifique propriedades comuns para o ataque.
[edit security idp custom-attack anomaly1] user@host# set severity info user@host# set time-binding scope peer count 2
Especifique o tipo de ataque e a condição do teste.
[edit security idp custom-attack anomaly1] user@host# set attack-type anomaly test OPTIONS_UNSUPPORTED
Especifique outras propriedades para o ataque de anomalias.
[edit security idp custom-attack anomaly1] user@host# set attack-type anomaly service TCP user@host# set attack-type anomaly direction any user@host# attack-type anomaly shellcode sparc
Resultados
A partir do modo de configuração, confirme sua configuração entrando no show security idp
comando. Se a saída não exibir a configuração pretendida, repita as instruções de configuração neste exemplo para corrigi-la.
[edit] user@host# show security idp custom-attack anomaly1 { severity info; time-binding { count 2; scope peer; } attack-type { anomaly { test OPTIONS_UNSUPPORTED; service TCP; direction any; shellcode sparc; } } }
Se você terminar de configurar o dispositivo, entre no commit
modo de configuração.
Verificação
Visão geral da configuração de políticas de IDP
A política de Detecção e Prevenção de Intrusão (IDP) do Junos OS permite que você aplique seletivamente várias técnicas de detecção e prevenção de ataques no tráfego de rede que passa por um dispositivo habilitado para IDP. Ele permite que você defina regras de política para combinar uma seção de tráfego com base em uma zona, rede e aplicativo e, em seguida, tomar ações preventivas ativas ou passivas nesse tráfego.
Uma política de IDP define como seu dispositivo lida com o tráfego de rede. Ele permite que você aplique várias técnicas de detecção e prevenção de ataques no tráfego que atravessa sua rede.
Uma política é composta por bases de regras, e cada base de regras contém um conjunto de regras. Você define parâmetros de regras, como condições de correspondência de tráfego, ação e requisitos de registro, e depois adiciona as regras às bases de regras. Depois de criar uma política de IDP adicionando regras em uma ou mais bases de regras, você pode selecionar essa política para ser a política ativa em seu dispositivo.
Para configurar a política de IDP, execute as seguintes etapas:
Habilite o IDP em uma política de segurança.
Configure regras de política de IDP, bases de regras de IDP e ações de regras de IDP. Veja exemplo: Insira uma regra na base de regras do IDP , exemplo: definir regras para uma base de regras IDP IPS e exemplo: configurar e aplicar regras de reescrita em tópicos de dispositivos de segurança.
Configure assinaturas personalizadas de IDP. Veja a compreensão de ataques baseados em assinatura IDP e exemplo: configuração de tópicos de ataques baseados em assinatura IDP .
Atualize o banco de dados de assinatura de IDP. Veja atualização da visão geral do banco de dados de assinatura do IDP.
Visão geral dos canais encobertos do IPv6
Um canal encoberto é uma técnica de ataque que permite a comunicação de informações transferindo objetos através de canais de informação existentes de maneira não autorizada ou ilícita. Com a ajuda de canais secretos, um invasor pode realizar atividades maliciosas em uma rede.
A partir do Junos OS Release 19.1R1, a identificação e mitigação de canais secretos para cabeçalhos de extensão IPv6 é suportada na Detecção e Prevenção de Invasões (IDP). É a transferência de informações que viola os sistemas de segurança existentes. O pacote de segurança para IDP contém um banco de dados de objetos de ataque IDP predefinidos para canal secreto que você pode usar em políticas de IDP para combinar tráfego contra ataques.
Como parte desse suporte, você pode detectar e sinalizar anomalias de cabeçalhos de extensão IPv6, que podem estabelecer canais secretos e tomar medidas especificadas na política. Os ataques de canal secretos são exibidos nos Show security idp attack table
outros ataques.
Tabela de histórico de mudanças
O suporte de recursos é determinado pela plataforma e versão que você está usando. Use o Feature Explorer para determinar se um recurso é suportado em sua plataforma.
interval interval-value
declaração é introduzida na
[edit security idp custom-attack attack-name time-binding]
hierarquia para configurar uma vinculação de tempo personalizada.
set security idp custom-attack
comando.