Que classe de software devo usar para interceptar solicitações HTTP e executar uma ação?

1

Nós herdamos um aplicativo da Web antigo que precisa ser estendido com algumas capacidades de registro para fins de conformidade. Infelizmente, não podemos alterar o aplicativo. O aplicativo recebe solicitações XML POST. Precisamos capturar vários valores XML específicos e registrá-los em um arquivo separado. Então, isso envolve análise XML e algum código personalizado. Estamos pensando em colocar um tipo de proxy na frente do servidor. Existem proxies que permitem o processamento do corpo da solicitação personalizada sem programação de baixo nível? Ou um IDS é melhor para esse fim?

    
por test1839 31.01.2013 / 03:33

1 resposta

0

Você não especificou qual ação você deve fazer antes do registro, então, por enquanto, vou pular isso.

Primeiro, sugiro configurar o Snort para logar em um banco de dados (provavelmente MYSQL). Na verdade, eu sugeriria enviar logs binários para o Barnyard para exportar para o DB, dependendo da sua carga para esse aplicativo.

De qualquer forma, mais do que você está interessado é como registrar os dados. Felizmente, o Snort tem todos os tipos de maneiras para combinar contra pacotes. O que eu sugiro é escrever uma regra para usar o pré-processador HTTP. Você pode usar uma correspondência de conteúdo para encontrar o identificador de serviço.

Por razões que explicarei em um segundo, queremos usar uma informação específica que sempre aparece na mesma área geral em cada pacote. Isto é porque nós podemos otimizar a regra dizendo ao Snort onde também olhar dentro do pacote para o jogo. Você pode usar uricontent para combinar com o URI, mas podemos ir melhor e especificidade exatamente onde no pacote os dados estarão com o modificador de profundidade e deslocamento.

O mod de profundidade por si só irá definir o tamanho da pesquisa desde o início do pacote, mas quando você usa o mod offset, ele irá definir o ponto inicial para a profundidade. EX. Se eu disser offset 10 de profundidade 50, o Snort irá verificar apenas os bytes 10-50 da carga útil. A correspondência de conteúdo é feita apenas na carga útil e você precisa usar outros processadores para verificar o cabeçalho.

Isso deve ser o suficiente para obter os dados que você precisa, mas você também precisa lembrar da segurança da instância do Snort e do DB se estiver registrando dados confidenciais.

Um bom recurso sobre isso é o kit de ferramentas do Snort IDS publicado pela Syngress.

    
por 31.01.2013 / 04:47