Sintaxe:
SecRule $Variavel(is) “$Operador” “$Ações, $TFNS”

Exemplos de regra:

1- Criando regra para bloquear requisições que utilizam o Cookie quem contém as palavras alfa_canruncmd e alfacgiapi_mode

SecRule REQUEST_HEADERS:Cookie "@contains alfa_canruncmd" "chain,phase:1,id:'1001',deny,block,msg:'Dropando Requisições'"
SecRule REQUEST_HEADERS:Cookie "@contains alfacgiapi_mode" "t:none,ctl:ruleRemoveById=960015"

2- Regra referente a bloqueio de conexão para caso a tenha a string alfav4.1-tesla.php na URI

SecRule REQUEST_URI "alfav4.1-tesla.php" "phase:1,id:99017,deny,block,t:none,t:lowercase,t:urlDecode"

Variáveis

REQUEST_HEADER: Contém dados http request header

REQUEST_BODY: Contém dados http request body

RESPONSE_HEADER: Contém dados http response header

RESPONSE_BODY: Contém dados http response body

ARGS:Coleção de argumentos. É possível acessar apenar um único argumento ex: ARGS:foo

ARGS_NAMES: Similar a ARGS, mas contém apenas os nomes do argumentos

ARGS_GET: Similar a ARGS, mas contém apenas valores dos argumentos enviados via GET

ARGS_GET_NAMES: Similiar a ARGS, mas contém apenas os nomes do argumentos enviados via GET

ARGS_POST:Similar a ARGS, mas contém apenas valores dos argumentos enviados via POST

ARGS_POST_NAMES: Similiar a ARGS, mas contém apenas os nomes do argumentos enviados via POST

QUERY_STRING: Contém a query string

STREAM_INPUT_BODY: Similar a RESPONSE_BODY. Utilizado para operadores que transformam dados da transação ex @rsub

REMOTE_HOST: Contém o hostname remoto

REMOTE_ADDR: Contém o endereço IP do host remoto

TX: Coleção de variaveis geralmente utilizadas para armazenar dados durante uma determinada transação pelos operadores

Operadores

beginsWith: Detecta se os dados em analise começam com “string”

contains: Detecta se “string” está contida nos dados em análise

eq,gt,ge,lt,le: Operadores igual, maior que, maior igual, menor que, menor igual

geoLookup: Realiza geo lookup

rbl: Realiza inspeção em uma black list

gsbLookup: Realiza operação de lookup na base google safe browsing

rx: Similar a contains, mas permite utilização de uma regex

rsub <s/regex/string/[id]: Realiza operação de substituição de dados. Utilizando apenas com as variáveis STREAM_*

pm: Similar a contains, mas pode-se utilizar vários strings

pmf: Similar a pm, entretanto as strings não carregadas de um arquivo

streq: Similar a contains, mas a string e a totalidade dos dados em análise devem ser exatamente iguais

verifyCC: Verifica a presença de números de cartões de crédito

VerifyCPF: Verifica a presença de números de CPF

Ações

allow: Para o processamento das regras em caso de match e permite a transação

append: Adiciona um texto no fim do response body

auditlog: Indica que a regra deverá ser registrada no audit log

noauditlog: Indica que a regra não devrá ser registrada no audit log

capture: Alguns operadores quando utilizado com essa ação salvam os resultados da operação de string/regex match em variaveis tx

chain: Indica que a regra pertence a uma cadeia de regras. A última regra da cadeia não deve conter essa ação

ctl: Permite modificar algumas diretivas em tempo de transação

  • AuditEngine
  • AuditLogParts
  • debugLogLevel
  • RuleEngine
  • ruleEngine
  • ruleRemoveById
  • ruleUpdateTargetById

deny: Para o processo das regras e intercepta a transação

id: Numero de identificação da regra

log: Indica que a regra deverá ser regitrada em audit e error log

nolog: Indica que a regra não deverá ser registrada em audit e error log

msg: Define a mensagem que será salva nos arquivos de log para a regra ou chain

pass: Continua a processar as regras mesmo em caso de match

prepend: Adiciona um texto no inicio do response body

redirect: Redireciona o usuário para outra URL qualquer

skip: Modifica o fluxo de execução do arquivo de regras para depois de N regras

skipafter: Modifica o fluxo de execução do arquivo de regras para depois de uma SecMarker

sanitizeMacthedBytes, sanitizeArgs,sanitizeRequestHeaders,sanitizeMatched: Permite sanitizar os dados que estão sendo registrados em log

TFNs (transformações)

base64Decode, base64Encode, base64DecodeEx: Funções para encode e decode de dados em base64

hexDecode, hexEncode: Funções para encode e decode de dados em hexadecimal

jsDecode: Função para decodificação de dados javascript em formato \uHHHH

Lowercase: Função utilizada para normalizar todos os dados para minúsculo.

Md5: Realiza operação de hash md5 para os dados da variável em questão

Sha1: Realiza operação de hash sha1 para os dados da variável em questão

urlDecodeUni: Função para decodificar dados em unicode.

removeNulls: Função para remoção de null bytes.

replaceComments: Substitui caracteres de comentário como /* */ por espaço (0x20).

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *