Anàlisi de registres
Analitza 5.000 esdeveniments de seguretat sintètics i els resumeix en un informe d’incidents amb quatre taules.
Seguretat · Python · Demo navegable
El problema
Qualsevol servidor escriu milers de línies al dia i un atac s’amaga just aquí, en el soroll. La primera feina d’un centre d’operacions de seguretat no és respondre: és separar el senyal, comptar els intents fallits i ordenar les adreces per insistència.
Què fa
- Genera un registre sintètic amb llavor fixa, barrejant trànsit normal i maliciós, perquè l’informe publicat correspongui sempre al registre publicat.
- Llegeix cada línia amb expressions regulars i classifica el tipus de succés.
- Ordena les cinc adreces amb més accessos fallits i compta els successos de cada tipus, incloses les línies que no va saber llegir.
- Escriu un informe d’amenaces en Markdown, sense ni una dependència externa.
El que es va decidir en construir-lo
- Comptar i maquetar són dues coses diferents
- Les xifres es calculen en una funció i l’informe es compon en una altra. Quan vivien juntes, l’única manera d’arribar a un número era tornar-lo a llegir del text ja maquetat, així que el panell i l’informe recomptaven el fitxer cadascun pel seu costat i se separaven així que canviava una regla.
- Una línia il·legible és una troballa, no un buit
- Les línies que l’analitzador no entén es compten i es publiquen. Descartar-les en silenci és el que converteix «no vaig saber llegir la meitat del registre» en «no hi ha amenaces», i aquestes dues frases s’assemblen molt en un informe i gens en la realitat.
- Rellotge i llavor fixos, perquè l’informe correspongui al registre
- La finestra temporal partia de l’hora actual, així que cada execució produïa un fitxer diferent i l’informe publicat deixava de correspondre al registre publicat. Ara la data d’inici i la llavor estan fixades: el mateix codi produeix el mateix registre i el mateix informe.
- Sense ni una dependència
- Tota l’anàlisi corre amb la biblioteca estàndard: expressions regulars i comptadors. Un analitzador de registres que cal instal·lar és un analitzador que no s’executa a la màquina on hi ha el problema, que sol ser justament on fa falta.
Fins on arriba
- Els cinc mil esdeveniments són sintètics i els genera el mateix repositori amb una llavor fixa. No hi ha ni una línia d’una xarxa real, i les adreces són de rang privat inventades.
- Els esdeveniments de força bruta vénen ja etiquetats pel generador: l’anàlisi els compta, no els descobreix. El que sí que es calcula a partir de les dades és el rànquing de les adreces amb més accessos fallits.
- Entén el seu propi format de registre i res més. Un registre de sistema real, un journal de Linux o un visor de successos de Windows caurien sencers al comptador de línies il·legibles.
- No hi ha alertes, ni llindars configurables, ni connexió amb un tallafocs o un gestor d’esdeveniments. La sortida és un informe i uns fitxers de dades.
Construït amb
- Python
D’on surten les dades
Dades sintètiques generades pel mateix repositori: no hi ha informació de cap client.