Al tratar de entender algunas líneas de reglas SNORT, encontré la siguiente sintaxis que no podía entender. No se pudo encontrar ninguna descripción en el manual (aunque hay que reconocer que todavía no lo he leído completamente).
Dos ejemplos con las partes en cuestión resaltadas.
From sid:17166
pcre:"/(?P<var>\w+)\x2Ereplace\x28\s*(?P=var)\s*\x2C\s*(?P=var)\s*\x29/";
: ^^^^^^^^^^^^ ^^^^^^^^
From sid:29503
pcre:"/removeChild\((?<element>\w{1,20})\).*(?P=element)\.getCharNumAtPosition/smi";
: ^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^
Parece que la parte "?" está conectada con el último uso del nombre como "? P = nombre". Pero, no es consistente (como se ve en los dos casos anteriores).
Referencias.
sid: 17166; referencia: bugtraq, 36343; referencia: cve, 2009-3075;
sid: 29503; referencia: bugtraq, 49213; referencia: cve, 2011-0084; referencia: url, osvdb.org / show / osvdb / 74581;