Se un server Linux apre solo la porta SSH 22 e la porta HTTP 80, dobbiamo passare attraverso una di queste due porte per hackerare il server da Internet?
Se un server Linux apre solo la porta SSH 22 e la porta HTTP 80, dobbiamo passare attraverso una di queste due porte per hackerare il server da Internet?
Non proprio. Direi che dipende dal tuo modello di minaccia. Potrebbero esserci altre minacce che non hanno bisogno di utilizzare quelle porte per compromettere il tuo server. Il primo esempio a cui riesco a pensare in questo momento è un attacco alla catena di approvvigionamento. Quando aggiorni un software sul tuo server, se il software aggiornato è stato compromesso da un attacco alla catena di approvvigionamento, il tuo server verrà infettato. Oppure, se installi programma-esempio
per errore invece di programma_esempio
(nota il trattino invece del trattino basso) e programma-esempio
era dannoso e era stato dato quel nome apposta per confonderti, quindi il tuo server sarà compromesso. Penso che qualcosa di simile sia successo di recente ... oh, ieri ( Bitcoin che ruba app nel repository Ruby). Altri esempi? Forse un po 'di MITM nelle connessioni in uscita dal tuo server. Quindi non dimentichiamoci del phishing o di qualsiasi cosa che coinvolga l'ingegnere sociale.
Quindi, per essere precisi, se mi chiedessi "in generale, posso essere hackerato da una minaccia remota solo attraverso porte aperte?", La mia risposta sarebbe no. La probabilità o meno di alcune minacce dipende dal tuo modello di minaccia, che a sua volta dipende da ciò che fa il tuo server, da come lo gestisci, da chi sei, ecc.
No.
Ci sono molte cose che possono essere attaccate su un computer di destinazione e un'applicazione di servizio (httpd o sshd per esempio) è solo una di quelle cose.
Ricorda, c'è un intero stack di rete tra la porta di rete fisica sulla scheda di rete e l'applicazione che gestisce il traffico effettivo (cioè sshd) - in questo stack ci sono cose come funzionalità del kernel come firewall, driver di rete ecc. attaccato separatamente all'applicazione di gestione.
Vedi il numero di vulnerabilità di esecuzione remota del kernel Linux evidenziate qui che non richiedono alcuna applicazione di gestione per essere sfruttate, e invece consentono un utente malintenzionato deve eseguire codice semplicemente creando un pacchetto di rete non valido.
Ovviamente, è più facile attaccare l'applicazione piuttosto che il kernel, perché il kernel tende ad essere ispezionato molto più pesantemente.
Un tentativo di elencare alcuni modi per hackerare un server senza utilizzare http o ssh:
Esempio per 4.: molto tempo fa, c'è stato un attacco ping of death che sfruttava un bug nel driver del livello IP, nessuna porta aperta necessaria.
La chiusura dei port è una delle prime linee di difesa.
Quando una porta è aperta, ci sarà un software in esecuzione che ha gestito i dati in entrata su quella porta. Quel software può contenere bug che consentono il successo di un attacco. Se apri 100 porte, ci sono 100 software potenzialmente insicuri. Con solo due porte aperte, ci sono solo due parti di software potenzialmente vulnerabili. Ovviamente assicurarsi che 100 pezzi non siano vulnerabili è molto più difficile di due pezzi.
Ma un utente malintenzionato può tentare di entrare attraverso un altro percorso. Il tuo server dovrebbe ricevere blocchi di dati contenenti un numero di porta e il tuo software dovrebbe indirizzare il blocco alla porta giusta o buttarlo via, possibilmente registrarlo. Se il software che invia i blocchi in entrata alle porte ha dei bug, un utente malintenzionato potrebbe sfruttare questi bug e un tale exploit potrebbe essere indipendente dalle porte aperte.
Se il server ha solo servizi ssh e http aperti, dovrai sfruttare le possibili vulnerabilità relative a uno o entrambi i servizi, per hackerare il server.
Un altro modo sarebbe l'accesso fisico alla tastiera del server, ma penso che intendevi solo attaccare attraverso la rete. (ricorda di scansionare tutte le porte 1-65535)