Assumi la seguente configurazione;
- Un server di hosting condiviso, che condivide un singolo IP con molti piccoli siti web.
- Un sottoinsieme del set di siti Web sta inviando e-mail. Alcune di queste e-mail potrebbero essere di dominio proprio.
- Un altro sottoinsieme del set di siti Web ospita la propria posta su un'altra piattaforma.
- Un terzo sottoinsieme che ospita è vulnerabile a una vunerabilità di esecuzione di codice in modalità remota.
- Nel diagramma di Venn per i sottoinsiemi (2), (3), (4), supponiamo che qualsiasi parte possa essere non vuota.
Ci sono problemi con gli spammer che diventano sempre più competenti nell'eludere le misure di sicurezza installate. Con l'accesso completo all'esecuzione del codice, un hacker può aggirare il solito stack di posta di Linux e implementare il proprio server di posta elettronica, comunicando direttamente tramite codice socket a server di posta esterni e inviando una quantità enorme di spam.
Un server è una macchina piuttosto potente, quindi un tale codice di roaming gratuito può inviare quantità significative di spam per entrare nel radar dei Big Boy, come Microsoft e Google. Queste aziende hanno i loro propri sistemi proprietari offuscati che tendono a bloccare in base all'IP. So che questa è una cosa stupida da fare: IP non è uguale a una macchina unica. Ovviamente un piccolo fornitore di servizi di hosting può fare poco su queste grandi politiche aziendali e non è possibile ignorarle; molti consumatori (ad esempio utenti dei siti Web sulla piattaforma) avranno indirizzi e-mail sulle piattaforme dei grandi provider.
C'è anche un elemento di segretezza coinvolto; le grandi aziende stanno attivamente cercando di combattere le botnet degli spammer, quindi non forniscono informazioni minime o minime su alcun blocco in modo che gli spammer non possano usare queste informazioni. Con l'invio di spam che è "indicizzato", potrebbero aver identificato la particolare botnet e aver contrassegnato il server di hosting come uno strumento sospettato di cybercriminal. Non è del tutto irragionevole, perché in realtà è a questo punto che viene utilizzato il server.
L'esaurimento dell'indirizzo IPv4 significa che l'hosting non condiviso è solo un'opzione non valida per questi piccoli siti web. È finanziariamente appena non realizzabile.
Nota; Supponiamo che ci saranno sempre dei siti vulnerabili, questa è una debolezza intrinseca di una piattaforma condivisa, non ogni cliente avrà il suo codice ugualmente sicuro.
Dopo essere stato violato, il cliente viene ovviamente avvisato. La procedura standard consiste nel portare il sito offline e ripristinare una versione pulita, richiedendo agli sviluppatori di risolvere i problemi di sicurezza prima di quello.
Tuttavia, rimane un grosso problema; Un piccolo errore per uno di molti siti Web spegne efficacemente l'e-mail per l'intero server, e ripristinarne il tutto può richiedere giorni, piuttosto che prevenire questo tipo di problema. Man mano che i siti invecchiano, più siti iniziano a utilizzare lo stesso IP e gli spammer diventano sempre più competenti, la situazione peggiorerà nel tempo.
Anche se posso pensare ad alcune soluzioni parziali, finora non sono state in grado di mantenere l'intero set di funzionalità che stiamo fornendo. Ad esempio, ho provato a bloccare il traffico in uscita sulla porta e-mail standard (25) attraverso il firewall del server per tutti gli utenti tranne root e un utente di posta elettronica attendibile. Ciò impedirà completamente i nostri problemi di spam, poiché ciò significa che i siti Web devono utilizzare lo stack standard ed è semplice configurare cose come limitazione della velocità e filtri antispam per la posta in uscita su questo stack standard.
La piccola quantità di spam che può ancora passare non ci metterebbe su questi elenchi di blocco ip segreti.
Questo funziona per la maggior parte dei siti Web; ma non tutto. Sottoinsieme (3) sta lanciando una chiave inglese nelle opere se combinate con (2). Illustriamo:
Il nostro host (IP = H) dovrebbe inviare un messaggio a un host Microsoft (IP = M), attraverso il suo server di posta. Diciamo che inviamo da "[email protected]" a "[email protected]". Se questo messaggio viene inviato direttamente, tutto funziona. Tuttavia, quando viene inviato tramite il server di posta, ha bisogno di record DNS. Ma poi tenta di inviare a localhost (H), questo fallisce, perché (H) non ha il "contatto" della casella di posta, che dovrebbe esistere solo sul microsoft host ...
Inoltre, il semplice blocco di tutto ciò potrebbe non funzionare per tutti i siti web; alcuni possono avere il proprio motore di posta integrato, anche se se con qualche giochino riusciremo a superare il problema sopra, non sono imparziale a dire a queste persone di riparare il loro software per usare il programma di posta corretto.
Mi interessano le opinioni sui modi intelligenti (e) di affrontare questo enigma.