Com he fet els meus logs de servidor immutables amb Polygon
Sellat és una eina que permet certificar qualsevol arxiu en blockchain. Avui us explico com l’he aplicat al meu propi servidor per fer els logs d’Nginx immutables.
El problema: logs vulnerables
En el món de la ciberseguretat, s’acostuma a dir que «si no hi ha logs, no ha passat». Però, què passa quan no pots confiar en els teus propis logs perquè algú amb prou permisos podria haver-los editat?
En qualsevol VPS, els logs són fitxers de text pla. Un administrador o un atacant pot modificar-los per esborrar rastres d’un accés o canviar una IP. Sense una referència externa, és impossible saber si el que llegeixes avui és el que realment es va escriure ahir.
La solució: Sellat + Blockchain
Sellat actua com una capa de verificació externa que connecta la realitat del meu servidor amb la immutabilitat de la xarxa Polygon.
Mitjançant la creació d’empremtes criptogràfiques (hashes) encadenades i la seva publicació a Polygon, qualsevol intent de modificar el passat del servidor deixa una marca indeleble. Ja no es tracta només d’emmagatzemar dades, sinó de donar-los una capa de veritat matemàtica.
Com funciona el flux de treball
1. Rotació horària Un script de Bash al VPS fa una «foto» del log d’Nginx cada hora, l’arxiva i buida l’original. Així convertim un flux constant de dades en peces estàtiques i manejables.
2. Hashing extern L’script calcula el hash SHA-256 del fitxer de log i envia només aquesta empremta a l’API de Sellat. El servidor mai llegeix el log original, protegint la privacitat.
3. Encadenament (Chaining) Cada vegada que Sellat rep un hash, el vincula amb el hash del segell anterior creant un chainHash. És com un ADN que uneix cada hora de log amb tota la història prèvia. Si mous una anella, totes les posteriors es trenquen.
4. Àncora a Polygon Un worker processa la cua i registra el chainHash a Polygon. Aquesta és l’última paraula: una prova pública i immutable que serveix de referència per a qualsevol auditoria.
La clau: la verificació
Molta gent pensa que la blockchain ho soluciona tot com per art de màgia. En el sistema que he muntat, la blockchain és l’àncora final, no la solució màgica.
Si vull verificar tot un dia de logs:
- Recalculo els hashes de cada fitxer
.loglocalment - Reconstrueixo la cadena de hashes (
chainHash) - Comparo l’últim valor de la meva cadena amb el que hi ha registrat a Polygon
Si un sol bit ha canviat en les últimes 24 hores, la cadena es trenca i el hash final no coincidirà amb el de la blockchain.
Aquí és on rau l’elegància del sistema: no necessito verificar cada hora individualment. Amb comprovar l’última anella, valido automàticament tota la cadena anterior. És escalable i molt eficient en cost de gas.
L’estat del projecte
Vull ser transparent: l’API de Sellat ja és plenament operativa. El meu servidor s’hi connecta cada hora i el segellat a la blockchain és una realitat constant i automatitzada.
El següent pas és la interfície de verificació pública. Tot i que la cadena de hashes ja és a la blockchain, estic desenvolupant l’eina que permetrà a qualsevol auditor confirmar que la cadena no s’ha trencat amb un sol clic.
En resum: la «notaria» (l’API) ja està oberta i signant documents; ara estem polint la «lupa» (el verificador) per poder-los llegir sense esforç.
Conclusions
Amb Sellat, he passat de «confiar» en els meus logs a poder auditar-los matemàticament.
No impedeixo que un root malintencionat esborri dades, però li trec el poder de mentir sobre el que ha passat. Qualsevol manipulació deixa un rastre d’inconsistència que ara puc detectar en segons.
Si us interessa provar Sellat per als vostres propis casos d’ús, podeu accedir-hi a sellat.app.