Debugging feroviar cu bastonul Smart
Aerul din Pasajul Basarab mirosea a ozon și cafea prăjită. La o masă pliantă, instalată ilegal dar strategic pe o pasarelă tehnologică din care se vedea tot Triajul Gării de Nord, Daria își potrivea o pereche de căști de protecție. Lângă ea, Victor încerca să desfacă o pungă de covrigi cu o singură mână, în timp ce cu cealaltă manevra o antenă direcțională ce semăna suspect de mult cu o umbrelă veche de ploaie îmbrăcată în foiță de aluminiu.
Pe ecranul monitorului lui portabil, o linie galbenă unduia violent, descriind un grafic care arăta mai degrabă a atac de panică decât a semnal de rețea.
— Deci, a zis Daria, ridicând vocea peste uruitul distant al unui tren de marfă. Mi-ai zis că e vorba de „optimizarea fluxului de călători”. De ce arătăm ca doi tipi care încearcă să prindă extratereștri cu o umbrelă?
— Pentru că, draga mea, a răspuns Victor fără să privească în sus, sistemul de informare al Gării de Nord a dezvoltat o personalitate pasiv-agresivă. Sau, tehnic vorbind, un race condition psihologic.
Daria a luat un covrig și a privit spre panoul electronic uriaș din holul central, vizibil prin ferestrele înalte ale gării. Literele portocalii se schimbau convulsiv, afișând întârzieri aberante.
— Săptămâna trecută, garnitura de Pitești figura cu o întârziere de 40 minute, a amintit ea. Oamenii s-au apucat să joace șah pe peron.
— 40, exact, a confirmat Victor. Not Found. Trenul era deja ajuns la destinație de trei ore, dar serverul central susținea cu tărie că garnitura e încă blocată undeva lângă Chitila. Astăzi e mai rău. Trenul de Constanța este marcat pe panou ca plecând de la Linia 3, dar când ajungi acolo, panoul de pe peron zice Linia 8, iar aplicația mobilă notifică utilizatorii că trenul a plecat deja ieri.
— Un simplu desincronizat de bază de date, a dat Daria din umeri. Un UPDATE fără clauză WHERE, vreun stagiar obosit.
— Așa am crezut și eu, a spus Victor, ajustând antena. Am dat flush la cache-ul central, am repornit microserviciile, am refăcut sincronizarea NTP cu ceasul atomic de la Măgurele. Totul nominal. Și totuși, în fiecare zi la 14:30, tabela de sosiri/plecări o ia razna complet. Se comportă de parcă un utilizator invizibil, cu privilegii de root, rescrie panoul în timp real doar ca să tachineze navetiștii.
Daria s-a aplecat peste ecranul lui.
— Ai făcut un packet capture pe rețeaua gării?
— Evident. Și aici devine fascinant. Toate pachetele de date care corup afișajul nu vin din serverul central. Vin prin wi-fi-ul public al gării, printr-un port obscur, sub formă de comenzi de diagnosticare.
— Stai puțin, a spus Daria, privind în jos spre mulțimea de oameni care forfotea pe peroane. Cineva face injection de cod pe panoul principal din gară? Un hacker de trenuri?
— Am analizat traseul semnalului, a rânjit Victor. Nu e niciun hacker rus, nici vreun puști din Hackerville. Sursa semnalului e mobilă și se mișcă fix cu 5 km/h prin interiorul gării, pe traseul Bilet-Grefă-Chioșc de ziare-Terasă.
Daria a privit prin binoclu spre mulțime. A scanat peronul 4, magazinul de produse de patiserie, linia caselor de bilete. Apoi s-a oprit.
— Victor… vezi bătrânelul ăla cu beretă carouri și baston din lemn de nuc? Cel care plimbă un teckel dolofan?
— Nea Gelu, a spus Victor cu un oftat resemnat. Fost inginer de semnalizare feroviară, pensionat în '98.
— Ce are pe baston, Victor?
— O proteză de cauciuc printată 3D, dotată cu un modul RFID și un microcontroler alimentat de o baterie de ceas.
Daria și-a pus mâinile în cap, râzând în surdină.
— Nu-mi spune...
— Ba da, a încuviințat Victor. Nea Gelu are reumatism. În ultimii zece ani, a observat că atunci când plouă, scările rulante de la ieșirea spre metrou sunt mereu oprite pentru mentenanță. Așa că și-a construit un mic fob portabil care emite o comandă de test override când trece la doi metri de senzorul gării. El doar atinge balustrada cu bastonul, iar scara pornește instantaneu ca să nu-l doară genunchii.
— Genial! a exclamat Daria. Dar ce legătură are asta cu panoul central de sosiri?
— Bastonul lui Nea Gelu funcționează pe frecvența de 2.4 GHz. În fiecare zi la 14:30, el coboară să-și ia ziarul, își pornește scara rulantă, dar când trece pe lângă biroul de informații, bastonul emite un pachet de date broadcast. Iar tabloul electronic – un model vechi din anii '90, la care cineva a lipit recent un modul de wi-fi ieftin fără filtrare de pachete – interpretează semnalul lui Nea Gelu ca fiind un cod de urgență pentru reconfigurarea tuturor liniilor.
Daria s-a lăsat pe spate, amuzată de absurdul situației.
— Deci un fost inginer feroviar își tratează durerile de genunchi cu un exploit de IoT, iar din cauza asta 500 de oameni aleargă zilnic cu valizele de la Linia 1 la Linia 12?
— Exact, a spus Victor, închizând aplicația de analiză spectrală. Avem de-a face cu o vulnerabilitate de securitate de nivel fizic.
— Și cum ai de gând să rezolvi problema? Rescrii firmware-ul de pe panou? Izolezi rețeaua wi-fi?
Victor a băgat mâna în rucsac și a scos un baston telescopic nou-nouț, din aluminiu eloxat, cu un mâner ergonomic din piele și o etichetă elegantă pe care scria Smart-Walker 2000.
— Rescrierea de firmware durează șase luni și trece prin trei comisii de licitație, a zâmbit Victor. Așa că am optat pentru hardware replacement direct la utilizatorul final.
— I-ai cumpărat un baston nou?
— I-am montat în mâner un senzor dedicat pe 5.8 GHz, ecranat, care comunică direct și exclusiv cu motorul scării rulante. În plus, am adăugat un buton secret care îi comandă un espresso scurt de la automatul din gară când ajunge pe peron.
Daria a izbucnit în râs, privind spre bătrânelul care tocmai își continua plimbarea liniștită alături de teckel.
— Refactorizare de infrastructură prin mituire tehnologică a pensionarilor. Victor, ești un vizionar.
— Ce să zic, a spus el, strângându-și echipamentul și luând o gură de cafea. În orașul ăsta inteligent, cele mai bune pachete de update nu se trimit din cloud. Se dau de mână, la pachet cu un ziar și un espresso.

Comentarii