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.