Quando IP blocca solo il livello OSI 7 e qual è lo scopo di farlo in più sedi?

1

Diciamo che c'è un'applicazione che ha una whitelist IP, tutti gli altri IP sono negati. Questo controllo si svolge in tre luoghi diversi:

  1. iptables,
  2. .htaccess,
  3. Script PHP.

Ora in quali livelli OSI si adattano queste tre posizioni? Immagino qualcosa del tipo:

  1. iptables layer 3 o 4,
  2. .htaccess layer 5,
  3. PHP script layer 7.

Recentemente ho visto un caso in cui questo è stato applicato. Perché qualcuno dovrebbe fare questo e quali sono i vantaggi e gli svantaggi di farlo? E uno o tutti questi metodi possono essere bypassati con un qualche tipo di spoofing IP?

    
posta Bob Ortiz 07.07.2016 - 09:48
fonte

3 risposte

3

I livelli OSI non si preoccupano di dove avviene il controllo, ma a quale livello risiedono le informazioni utilizzate nel controllo. Se il controllo esegue la whitelist per indirizzo IP, non importa dove è configurato il controllo, perché la decisione è sempre basata esclusivamente sull'indirizzo IP, cioè sul livello OSI 3.

Tuttavia, a seconda dell'impostazione e del codice di convalida, il controllo potrebbe effettivamente non testare l'IP di origine reale del client ma contro un IP di origine dichiarato. Ciò si verifica se il controllo è stato eseguito rispetto all'indirizzo IP da X-Forwarded-For o intestazione HTTP simile nella richiesta. Tali verifiche potrebbero essere eseguite in PHP e probabilmente .htaccess e questo sarebbe un controllo basato su informazioni a livello di applicazione, ad esempio il livello OSI 7.

And can one or all of this methods be bypassed with some kind of IP spoofing?

Bypassare i controlli in base alle informazioni del livello 3 (indirizzo IP) può ovviamente essere fatto solo se puoi spoofare le informazioni del livello 3. L'utilizzo di un IP spoofato con UDP è facilmente eseguibile utilizzando un indirizzo IP falsificato con TCP è quasi impossibile a causa dell'handshake a 3 vie, dei numeri di sequenza ecc. Vedi anche È possibile passare l'handshake TCP con un indirizzo IP falsificato?

Le informazioni sullo spoofing layer 7 (X-Forwarder-For) sono facilmente realizzabili con un client personalizzato.

    
risposta data 07.07.2016 - 11:01
fonte
2

Dipende da cosa vuoi proteggere e quando.

Se il tuo server ospita un numero di servizi, o un numero di siti web, allora vorresti il controllo più vicino alla destinazione in modo da non negare l'IP dagli altri servizi / siti.

Se il tuo server ospita un sito web e un server di posta elettronica, e qualcuno che ti sta pentendo fa scatenare giustamente un blocco, non vuoi che impediscano loro di inviarti un'email.

Oppure, se si ospitano più siti Web e un sito viene martellato da un singolo IP, i proprietari degli altri siti potrebbero non gradirlo se quell'IP fosse stato bloccato anche dal loro sito.

Inoltre, obiettivi diversi potrebbero richiedere diversi livelli di protezione. Un sito potrebbe volere essere permissivo mentre un altro potrebbe volersi ingannare dalla parte della cautela.

Se si esegue il dump di tutti i filtri a livello di firewall, si perde il controllo a grana fine.

    
risposta data 07.07.2016 - 21:23
fonte
1

A seconda del tipo di servizio che stai utilizzando, potresti volerlo fare in posti diversi.

Il vantaggio di iptables è che gira su kernel linux e impedisce ai dati di raggiungere i tuoi processi. Ciò significa che se qualcosa di simile a un colpo di cuore o uno shock di shell si ripresenta, l'attaccante non sarà mai in grado di raggiungere l'applicazione vulnerabile. È molto difficile personalizzare e richiede l'accesso come root.

L'utilizzo di htaccess è utile quando si impostano le autorizzazioni condizionali sugli indirizzi IP e quando non si dispone dell'accesso root richiesto per l'uso con iptables. Il rovescio della medaglia è che deve fare la stretta di mano e fare qualche controllo.

L'uso dello script PHP non è efficiente in termini di tempo di calcolo perché prima che qualsiasi dato possa raggiungere l'applicazione, è necessario stabilire una connessione che impiega un po 'di tempo e può causare attacchi DOS se lo script è ad uso intensivo della CPU. Usalo solo se stai facendo controlli addizionali come "Se l'utente è admin, e ignora ip set nel database lascialo passare, altrimenti blocca tutto da quegli IP".

    
risposta data 07.07.2016 - 20:02
fonte

Leggi altre domande sui tag