Dubito che avremo modo di conoscere esattamente i dettagli di come sono stati in grado di inserire il codice JavaScript dannoso su newegg.com. Affinché ciò accada, newegg.com dovrebbe probabilmente fornire al pubblico informazioni non divulgate sulla propria infrastruttura privata.
Parlando in termini generali, la risposta è che ... qualcosa non era sicuro sul loro server o all'interno del loro software. Ci sono possibilità praticamente illimitate su come questo possa essere successo.
Il seguente dettaglio è interessante:
A key date in the Magecart attacks against Newegg come from the
registration data of the neweggstats.com domain
Ciò implica che il team forense di Volexity non è stato in grado di determinare quando l'attacco ha iniziato a utilizzare i dati trovati sul server di newegg.com. Ad esempio, i file che sono stati toccati potrebbero avere i loro timestamp ripristinati alle loro date pre-modificate. La loro stima di quando è iniziato il compromesso si basa su una data di registrazione del dominio ... ma forse l'hacker ha utilizzato un dominio meno convincente per molto tempo prima di decidere di passare a neweggstats.com.
Di seguito sono riportate alcune possibilità comuni.
SQL Injection
Un utente malintenzionato potrebbe scoprire abbastanza informazioni sullo schema del database per apprendere che il contenuto di una determinata tabella / colonna viene inserito in ogni pagina senza sterilizzazione. L'utente malintenzionato può quindi scoprire un punto di iniezione SQL ed essere in grado di INSERIRE un tag di script nella tabella / colonna specificata. Il software includerebbe quindi felicemente il codice JavaScript dannoso dell'attaccante nella pagina.
Phishing per credenziali di amministrazione
La porzione amministrativa del sito Web può consentire in modo aperto l'inclusione di tag di script nel layout del sito in qualche modo. Ciò potrebbe includere la modifica generale del modello (possibilità di apportare modifiche all'HTML del sito Web utilizzando un editor) o potrebbe essere qualcosa di simile a uno strumento di amministrazione che consente di caricare immagini di pagamento per le pagine di checkout (tecnicamente, questo è uguale al primo esempio ).
Il software potrebbe anche consentire a un amministratore di caricare semplicemente un file JavaScript che verrebbe automaticamente incluso nel sito Web.
Posa come terza parte
Qualsiasi JavaScript di terze parti che includi nel tuo sito web ha la capacità di essere malizioso. Si potrebbe semplicemente pubblicizzare un servizio per analisi avanzate di e-commerce per ottenere il loro codice maligno incluso nel tuo sito. Quindi il proprietario del sito farebbe il lavoro duro per te.
Caricamenti di immagine non protetti
Le immagini possono contenere codice eseguibile. Alcuni siti consentono agli utenti di caricare foto con le recensioni dei loro prodotti. Se newegg.com lo consentisse, ma non disinfettasse le immagini, un utente malintenzionato sarebbe in grado di ottenere facilmente il codice eseguibile sul server. Una volta sul server, l'utente malintenzionato dovrebbe far sì che il server "esegua" l'immagine come codice. Questo può essere fatto se il tuo server non è configurato correttamente o se il tuo software ha un buco di sicurezza che permetterebbe di includere l'immagine come codice. L'eseguibile dannoso sarebbe quindi eseguito con le stesse autorizzazioni del server web (o peggio). A quel tempo il software poteva aggiungere il codice a un file JavaScript già incluso sul server.
Sommario
Scrivere software e renderlo sicuro sono compiti molto diversi. A volte una società pone l'accento sull'aggiunta di funzionalità perché le persone che gestiscono l'azienda sono principalmente interessate ai loro profitti. L'idea che il lavoro debba essere investito per proteggere il loro software non passa mai inosservato fino a quando dopo non si è verificata una violazione.
Spesso i dipendenti che potrebbero essere responsabili della protezione del proprio software sono inesperti, sottopagati, oberati di lavoro o ereditano sistemi non sicuri da precedenti dipendenti. Quando nessuno ha il compito di proteggere il tuo server / software, le vulnerabilità trovano la loro strada.
I metodi che un utente malintenzionato può utilizzare per compromettere un sito sono in genere sfaccettati e potrebbero non essere completamente compresi anche dopo la scoperta del compromesso. Assumere una società forense può essere utile, ma le loro capacità potrebbero essere limitate a causa della configurazione del server (ad esempio, i registri possono essere archiviati solo per un breve periodo di tempo).