Gli "Ospiti" della Sala Macchine


Home Page | Comments | Articles | Faq | Documents | Search | Archive | Tales from the Machine Room | Contribute | Set language to:en it | Login/Register


Nota: i miei commenti (quando ci sono) sono in italico

Il CMS, questo sconosciuto

Ieri era una domenica sera, e mi accingevo a raggiungere degli amici in un pub, quando mi chiama il capo in preda a panico feroce.

"Hanno bucato il sito di $Cliente_Importantissimo!!!"

Ok, seratina al pub saltata... mi fiondo a casa, mi collego al sito in questione e ci trovo una bella home page di un fantomatico gruppo di hacker brasiliani.

Inizio a chiedermi che diamine è successo, mi collego al server, dò un'occhiatina ai log di IIS e scopro che il sofisticato trucco con cui i terribili hacker hanno violato la sicurezza è stato... una query HTTP di tipo PUT.

Sì, esatto.

Apro IIS, controllo i permessi, e scopro che effettivamente è abilitato l'accesso in scrittura al sito. Al che, improvvisamente, ricordo ciò che avevo voluto rimuovere, spinto da istinto di sopravvivenza.

Digressione: la mia socità ha come punta di diamante un "fantastico" sistema di content management per siti web, che chiameremo $CMS. Tale arnese è in realtà un'orribile accozzaglia di pagine ASP buttate lì alla meno peggio, che già una volta si è reso responsabile di atroci figuracce con gli sfigati di turno a cui l'abbiamo venduto.

Quando ho iniziato a lavorare per il branco di pazzi in questione, alla mia domanda allo sviluppatore dell'aggeggio "di quali permessi ha bisogno questo coso?", la risposta è stata del tipo "non lo so, tu lascia aperto tutto, poi quando va in esercizio vediamo cosa chiudere".

Ovviamente, quando il sito è andato in esercizio nessuo si è preso la briga di chiudere alcunché...

Improvvisamente comprendo la portata del dramma, e ringrazio divinità varie che il sito sia stato colpito da un ragazzino brasiliano che ha solo sovrascritto l'home page, piuttosto che da un hacker vero. Dopodiché, asporto istantaneamente i permessi incriminati, e rimetto in piedi la baracca.

Oggi presento al capo una relazione sull'accaduto, che sostanzialmente dice "se il team di sviluppo di $CMS avesse saputo come funzionava il suo prodotto, avremmo evitato questo casino". Il capo, ovviamente, mi dice di inventare qualche balla perché la verità non può essere detta al cliente... e inizia l'odissea.

"È un buco di IIS" non va bene, potrebbero dirci di cambiare webserver (e poi chi la riscrive l'applicazione da capo?).
"È un buco di Windows, abbiamo messo la patch" non va bene, potrebbero rispondere "perché non l'avevate messa prima?".
"È un errore di configurazione" non va bene, ci facciamo la figura da imbecilli (anche se, in effetti, sarebbe meritata...).
"È colpa del programmatore" non va bene, lavora per noi anche lui (purtroppo).
"È colpa del sistemista"... no, piuttosto che prendermi la colpa di una simile idiozia faccio una strage.

All'improvviso, idea geniale del capo: "qui dobbiamo fare la supercazzola" (chi non riconosce la situazione, si vada a rivedere "Amici miei"). Segue la stesura di un documento ampiamente farcito di termini tecnici incomprensibili, a base di WebDAV e HTTP, che domani finirà in mano al cliente.

Speriamo bene...


Rieccomi di nuovo qui, a narrare le vicende di $CMS, il nostro meraviglioso sistema di content management per siti web, punta di diamante dell'azienda.

Per chi non fosse al corrente, diremo che l'aggeggio in questione è una vera chiavica, un'accozzaglia di pagine ASP scritte da un perfetto idiota, con soluzioni tecniche degne degne di Windows 1.0.

Ovviamente, tale arnese non prevede un'installazione di base e una successiva customizzazione. No, ogni volta che c'è da rivenderlo ad un nuovo malcapitato cliente, viene preso il contenuto dell'ultimo sito, copiato nella directory di quello nuovo e personalizzato a manina.

Qualche tempo fa, doveva andare in produzione il sito di $Cliente_Importantissimo, al che si è preso $CMS, che l'ultima volta era stato usato per il sito di $Altro_Grosso_Cliente, e si è svolta la solita routine... con l'eccezione che, nel frattempo, il programmatore responsabile dello sviluppo originale del terribile ordigno ha pensato bene di cambiare lavoro. Il capo, assiduo sostenitore della teoria secondo la quale i programmatori sono assolutamente intercambiabili tra loro, ha preso un nuovo malcapitato e l'ha messo a lavorare sul progetto... ma, ovviamente, la vittima designata non poteva in alcun modo sapere che il suo illustre predecessore non aveva la minima idea di cosa significassero le parole "costante" e "variabile" dato che in ASP non esistono le costanti posso capirlo....

Tradotto: dentro *ogni singola pagina* di un sito basato su $CMS c'è scritto il nome del sito di cui fa parte.

Incredibilmente, tutto è andato quasi bene... fin quando, un giorno, si è deciso di utilizzare anche il modulo di $CMS che gestisce le mailing list. Qui, purtroppo, la capicatà di search&replace del nuovo programmatore è venuta meno, cosicché sono rimaste in giro alcune pagine con dentro il nome del vecchio sito.

Risultato: un bel giorno, a qualche centinaio di utenti del sito di $Cliente_Importantissimo è arrivata una mail che diceva "Benvenuti nella mailing list di $Altro_Grosso_Cliente".

Al che, qualcuno si è incazzato.

Molto.

Ma ovviamente l'autore originale di quel meraviglioso prodotto che è $CMS era già sparito da un pezzo...

Massimo
03 Agosto 2004

08/03/2004 00:00

Previous elenco Next

le storie degli ospiti sono in ordine sparso, quindi 'precedente' e 'successiva' possono portare su storie di altri autori

Comments are added when and if I (or the story's author) has the time to check them and after removing junk, phishing and so on. So don't hold your breath. Besides, if your comment doesn't get posted, don't write me about it. Evidently it wasn't worth it.

2 messages this document does not accept new posts

Luca V.

Luca V. By Luca V. posted 25/06/2008 20:01

Seguo da un po' le mirabolanti (dis)avventure narrate in questo sito, ed è la prima volta che riesco a coglierti in fallo, Davide. Le costanti in ASP esistono eccome, così come esiste prepararsi dei template vuoti per le nuove pagine, crearsi degli include standard per centralizzare le eventuali modifiche, farsi delle classi e/o delle libreria per gli oggetti/funzioni di uso più comune, ecc... E sto parlando di ASP classico, non di ASP.NET. Sono quasi 2 anni che programmo in ASP e devo dire che, nonostante tutti i limiti di questo linguaggio, si riescono ancora a fare delle belle cose, se si programma con criterio.
Alla prossima, e buone vacanze!

Giepi

Giepi By Giepi posted 24/08/2008 13:35

Mi sono venuti i brividi lungo alla schiena a pensare di essere il parser...ehm nuovo programmatore che magari si è iscritto così per prova alla mailing list del sito appena dato a ATI e vedersi ricevere "Benvenuti alla mailing list di Nvidia"... probabilmente sarei già in Klondike...

Previous tales' list Next


This site is made by me with blood, sweat and gunpowder, if you want to republish or redistribute any part of it, please drop me (or the author of the article if is not me) a mail.


This site was composed with VIM, now is composed with VIM and the (in)famous CMS FdT.

This site isn't optimized for vision with any specific browser, nor it requires special fonts or resolution.
You're free to see it as you wish.

Web Interoperability Pleadge Support This Project
Powered By Gojira