How can someone inject code on my server without my server credentials?
Utilizzo delle chiavi rubate SSH, della connessione anonima FTP o dei file eseguiti dal server (es .: file PHP che scrivono nelle FS del server)
How can I know from where this code was injected?
Vedi i log (bash / FTP / il tuo sistema di registrazione del codice server se ce n'è uno). È possibile cercare quando è stato scritto (utilizzando la data di modifica del file o confrontando i backup) e controllare i log di accesso del server per scoprire quale IP e come hanno inserito il codice. Inoltre, poiché i server sono ora associati al database, potrebbe essere un'iniezione in due passaggi: inserire il codice nel DB e lasciare che un'altra chiamata (chiamata CRON o HTTP) scriva il contenuto del DB in un file.
How to prevent future injections?
Rinnovare le credenziali del server (incluso il DB) e non scrivere alcun file dal codice eseguito. Inoltre, non chiamare alcuna funzione di esecuzione della shell dal codice del server (ad esempio: una chiamata PHP exec
può scrivere cose nei file). Favorire il lavoro di comunità (es: soluzioni open-source) piuttosto che cose personalizzate: spesso sono più sicure.