Connect with us

Hi, what are you looking for?

TechJournal – Il Blog Italiano su Apple, Tech, Gaming e SmartHomeTechJournal – Il Blog Italiano su Apple, Tech, Gaming e SmartHome
inps 600 euro 696x464 1
inps 600 euro 696x464 1
inps 600 euro 696x464 1

Tecnologia

#INPSDown, Analisi semi-tecnica del flop

Vorrei cominciare questo articolo spiegando che questa analisi semi-tecnica potrebbe essere intesa dal lettore come uno sfogo personale. Ebbene Sì, non intendo smentire, ma cercherò comunque di mantenere un punto di vista tecnico.

Nella mattinata del 1 Aprile 2020, dopo ben 17 giorni dall’annuncio, INPS finalmente rende possibile ai titolari di partita iva di richiedere il bonus di 600€ (decisamente ridicolo, considerati i danni arrecati all’economia italiana, dove chi ne risente maggiormente sono i piccoli imprenditori, a mio avviso, il bonus andava calcolato sul reddito prendendo come spunto lo stesso periodo dell’anno precedente. ndr)

Dapprima l’annuncio da parte di INPS di un click-day (termine errato ma secondo loro, sta ad indicare che “chi prima arriva meglio alloggia”, ovvero che le domande presentate prima, verranno processate prima), poi smentito nella giornata successiva dato il polverone alzato.

Questo porta ad un’incomprensione per i più, che, nelle prime ore del mattino hanno “affollato” il sito dell’INPS mandandolo al collasso, sperando di aggiudicarsi il “contentino” messo a disposizione dal decreto CuraItalia in merito all’emergenza COVID-19.

Ora, partendo dal presupposto che un portale di tale importanza a livello nazionale debba poter sostenere una tale mole di accessi nello stesso momento, il crash avvenuto nelle prime ore del mattino è stato a dir poco ridicolo.

Facciamo un’esempio, un server ospitante contiene le pagine di nostro interesse, queste, nella maggior parte dei casi, vanno elaborate dall’hardware, (più avanti cercherò di analizzare anche la qualità del codice utilizzato) ovviamente, questa elaborazione ha un costo in termine di risorse che occupano la CPU per un tempo, benchè minimo, non trascurabile.

Una CPU ha un carico massimo del 100%, di cui, solitamente una piccola percentuale viene occupata in modo persistente da servizi essenziali del sistema, quando l’utilizzo supera il 100%, questi servizi essenziali vengono messi in pausa determinando un blocco totale.

Non mi è dato sapere quante VCPU ( parliamo di CPU virtuali, nella maggioranza dei casi, più CPU fisiche vengono utilizzate nell’esecuzione di un “server web”, solitamente ubicate in più macchine che a livello logico vengono unite per servire i contenuti all’utente ed elaborare il codice), ma posso di certo sapere che un’infrastruttura è sottostimata quando, effettuando più richieste al server, chi risponde è sempre uno.

Vi faccio un esempio, arrivate davanti al bancone di un bar, avete 100 persone avanti a voi, quando riuscirete ad ordinare il caffè? Probabilmente vi passa la voglia prima. Ecco perché, nel lato pratico, si utilizza più di una macchina per servire i contenuti, che sono replicati su più server in infrastrutture differenti. Tornando all’esempio, 100 persone devono prendere un caffè, lo prenderanno molto prima se ci sono 10 baristi dietro al bancone.

Questo non accade in un portale, di vitale importanza come quello dell’INPS, suppongo che questo, senza necessariamente puntare il dito contro i tecnici, sia a dir poco ridicolo. La scalabilità di un server e la sua replicazione sono la base che qualsiasi sistemista dovrebbe conoscere. Prevedere un numero massimo di connessioni simultanee e sovrastimare di 10 volte l’infrastruttura, dovrebbe essere, a mio avviso, il minimo indispensabile.

Ovviamente un team tecnico non poteva (oppure sì?) prevedere una tale affluenza, ecco perché, solitamente, le best pratices, prevedono di replicare i contenuti dell’applicativo su più server dormienti (in modo da non consumare risorse = soldi, quando non è necessario) che si attivano automaticamente al momento in cui il server master è sovraccarico.

Dopo la figuraccia insomma, si grida all’attacco Hacker, tra le risate dei più tecnici, per salvare la faccia in corner, si dà la colpa a questa fantomatica elite di smanettoni chiamati hacker, potrei fare un discorso lungo su cosa sono, come agiscono e perché non sono il demonio, ma andrò oltre, spiegando come effettivamente il problema non è stato un’hacker, ma un team tecnico di bassa qualità ( cosa che, chi frequenta il portatale MyINPS da qualche tempo, avrà notato, tra errori di ogni genere, domande perse, down continui dei servizi ecc)

Per finire vorrei analizzare il codice, questo sconosciuto che permette a tutti gli utenti di usufruire di contenuti e funzionalità di un sito web.

Considerando che, negli ultimi anni, il portale INPS ha subito un restyling completo (per fortuna, prima era impraticabile come la maggior parte dei servizi online statali ndr), ci si aspettava l’utilizzo di tecnologie moderne. Non parlo degli ultimi linguaggi di programmazione disponibili, sarebbe di difficile mantenimento un linguaggio che ogni settimana subisce variazioni, bugfixing e quant’altro, ma non ci si aspettava l’utilizzo di ASP, linguaggio di programmazione inventato da Microsoft, che, i programmatori di vecchia data difendono a spada tratta (vuoi per la paura di dover imparare qualcosa, vuoi per il nome altisonante di MS o il fatto che in rete, si trova più o meno già tutto pronto al copia-incolla-compila-errore-quatro mesi di debug e ricomincia).

Tuttavia, ASP, da un decennio rinominato in ASP.NET è un linguaggio considerato morto, sia per la qualità del core, ormai obsoleto, sia per le performance anch’esse obsolete.

Secondo alcuni benchmark, paragonato a PHP, ormai alle porte della versione 8, la sua esecuzione ha un tempo 10 volte superiore, questo tramuta, nel nostro caso, in un minor numero di connessioni simultanee gestite, errori temporanei e compilazione inesatta.

In ultimo, analizziamo la pagina stessa che offre il Bonus di 600€ alle p.iva. Qualcuno nei social l’ha definito “scritto da uno studente alle prime armi” e credetemi, questa potrebbe essere la verità.

variabile "pippo"

Nelle prime ore del mattino, “pippo” (Pippo è il nome che noi italiani molto spesso tendevamo, nei primi anni della programmazione, ad assegnare alle variabili o funzioni negli esercizi svolti nell’imparare la programmazione) di fatto ha esposto i dati più sensibili di migliaia di utenti a chiunque accedeva al portale, problema a detta di INPS manifestatosi nell’arco di massimo 5 minuti ma che poi, si è scoperto essere durato molto più.

Nella pratica, all’accesso, si veniva reindirizzati alla scheda di un’altro utente, potendone vedere tutti i contenuti, quindi posizione fiscale, dati personali ed addirittura agire come se fosse quell’utente.

INPS assicura che le azioni compiute da quei profili nell’arco di tempo verranno annullate, si spera. Ma la fuga di informazioni, quella non si cancella.

Voglio precisare che se, questa svista fosse accaduta ad un’altra azienda, quest’ultima, dopo infinite battaglie legali, sarebbe andata in contro alla sua chiusura. Problemi del genere sono più grandi di quanto si pensi, le ripercussioni possono andare dal semplice agire per conto di qualcun’altro, in una piattaforma dove il semplice “PIN” serve a verificare qualsiasi azione come fossero state firmate fisicamente (il che, di per sè, fà assolutamente ridere oltre ad essere una falla enorme di sicurezza e una misura decisamente sottostimata, basti pensare che quest’ultimo viene generato secondo uno schema, ricordando che la casualità non esiste in programmazione, che molto probabilmente è di facile intuizione), fino ad arrivare dunque al più grave furto di identità, eh si, perchè se ho a disposizione dati personali quali codice fiscale, nome, domicilio ed altri, il furto è presto fatto. Chissà che qualche vostro dato, sia stato manomesso?

Per concludere, sono esterrefatto dal qualunquismo che contraddistingue, come al solito le buffonate all’italiana.

Written By

Andrea è uno sviluppatore PHP classe 1990. Appassionato di tecnologia fin da bambino, si evolve nel tempo come programmatore. "Amo la tecnologia, è il mio lavoro, il mio pane quotidiano, sono appassionato dei prodotti Apple e di tutto ciò che ruota attorno all'ecosistema"