É possível criar um firewall que permita apenas o tráfego legítimo do servidor na porta 443 e nenhum outro serviço?

19

Eu sempre usei o truque simples para contornar a maioria dos firewalls, o que me impedia de usar qualquer porta. Eu simplesmente abri o ssh em um dos meus servidores na porta 443 e encapsulou todo o tráfego por lá.

No entanto, estou agora em uma rede com firewall que nunca vi antes e nem sabia que isso é possível.

Nesta rede, você pode usar a porta 443 somente para o tráfego legítimo do servidor da web. Se eu abrir o ssh, ou qualquer outra coisa na porta 443 e tentar conectar-me a partir desta rede, ele será morto imediatamente. Se eu iniciar o apache nesse servidor, isso funciona.

Como isso é possível? Existem alguns firewalls super sofisticados que são capazes de analisar o tráfego criptografado para verificar se é um tráfego https legítimo? Como?

    
por Petr 11.01.2016 / 12:58

1 resposta

26

Sim, e eles não precisam de mágica aqui, apenas correspondência trivial no conteúdo do pacote TCP. Embora o SSH e o TLS (SSL) criptografem suas cargas , os cabeçalhos de protocolo eles ainda são distinguíveis e muito diferentes um do outro. Por exemplo, uma conexão SSHv2 sempre começa com o cliente enviando SSH-2.0-(client name and version) . Da mesma forma, mesmo que o seu firewall não possa realmente saber se a conexão TLS transporta o HTTP para dentro, ele pode reconhecer o próprio TLS .

Essa inspeção de camadas acima do TCP geralmente cai em "Deep Packet Inspection", uma característica relativamente comum.

Uma maneira óbvia de contornar isso é tunelando o SSH dentro TLS - por exemplo, usando stunnel, haproxy ou sniproxy. (Além do tunelamento simples, em que a porta 443 é dedicada ao SSH-over-TLS, eles também podem multiplexar SSH / HTTP / outros protocolos na mesma porta com base em SNI e ALPN.)

Embora isso nem sempre derrote uma análise de tráfego realmente sofisticada, ela ainda ignoraria a maioria dos filtros que apenas verificam "isso parece um cabeçalho TLS".

E depois há o tipo irritante de firewalls - aqueles que interceptam o TLS para descriptografar e recriptografar todo o tráfego. Estes podem realmente ver dentro do TLS, e podem passar solicitações HTTP enquanto bloqueiam todo o resto. (Observe que alguns programas antivírus também fazem a mesma coisa.) Você pode reconhecer esse tipo observando os certificados do servidor; todos os certificados gerados por proxy têm a mesma aparência e geralmente não passam na validação, enquanto os certificados reais são emitidos por várias CAs diferentes.

    
por 11.01.2016 / 13:47