Pergunta

Estou planejando implantar um aplicativo interno que tem dados sensíveis. Eu sugeri que nós colocá-lo em uma máquina que não está exposta à internet em geral, apenas a nossa rede interna. A coisa. departamento rejeitou esta sugestão, dizendo que não vale a pena deixar de lado a máquina inteira para um aplicativo. (O aplicativo tem seu próprio domínio no caso em que é relevante, mas me disseram que eles não podem bloquear solicitações com base na URL.)

Dentro do aplicativo I programado a respeitar única solicitações se eles vêm de um I.P., interna endereço, caso contrário ele só mostra uma página dizendo "você não pode olhar para isso." Nossos endereços internos todos têm um padrão distinto, por isso estou verificando o I.P. pedido contra um regex.

Mas eu estou nervoso sobre esta estratégia. Ela se sente tipo de janky para mim. É este razoavelmente seguro?

Foi útil?

Solução

filtragem de IP é melhor do que nada, mas tem dois problemas:

  1. Os endereços IP podem ser falsificados.

  2. Se uma máquina interna está comprometida (que inclui uma estação de trabalho cliente, por exemplo, através da instalação de um Trojan), em seguida, o atacante pode usar isso como uma série salto ou proxy para atacar seu sistema.

Se este for realmente dados sensíveis, não necessariamente precisa de uma máquina dedicada (embora que é a melhor prática), mas você deve pelo menos autenticar os usuários de alguma forma, e não correm menos sensível (e mais facilmente atacado) aplicativos na mesma máquina.

E se é realmente sensível, obter uma segurança profissional para revisar o que está fazendo.

edit: aliás, se você pode, vala a regex e usar algo como tcpwrappers ou os recursos de firewall dentro do OS se ele tem alguma. Ou, se você pode ter um endereço IP diferente para a sua aplicação, use o firewall para bloquear o acesso externo. (E se você não tem nenhum firewall, então você pode muito bem desistir e enviar e-mail seus dados para os atacantes: -)

Outras dicas

Eu preferia ir com SSL e alguns certificados, ou uma proteção de nome de usuário / senha simples em vez de filtragem de IP.

Depende exatamente o quão seguro você realmente precisa que ele seja.

Eu estou assumindo que o seu servidor está hospedado externamente e não ligado através de uma VPN. Portanto, você está verificando que os endereços que pedem para a sua HTTPS (você estiver usando HTTPS, não é você ??) site são dentro das redes de sua própria organização.

Usando um regex para coincidir com sons endereços IP duvidoso, você não pode simplesmente usar uma rede / máscara de rede como todos os outros?

Como seguro que isso realmente precisa ser? falsificação de endereço IP não é fácil, pacotes falsos não pode ser usado para estabelecer uma conexão HTTPS, a menos que eles também manipular roteadores upstream para habilitar os pacotes de retorno para ser redirecionado para o atacante.

Se você precisa que ele seja realmente seguro, é só pegar o seu departamento de TI para instalar uma VPN e rota mais espaço de endereço IP privado. Configure suas restrições de endereços IP para esses endereços privados. IP restrições de endereço onde o encaminhamento é através de uma VPN baseada em host ainda são seguros mesmo se alguém compromete um gateway padrão upstream.

Se seu aplicativo está verificando o endereço IP, então é extremamente vulnerável. Nesse ponto, você não tem nenhuma proteção no roteador que é onde IP filtragem realmente precisa ser. Seu aplicativo provavelmente está verificando HTTP cabeçalho informações para o endereço IP de envio e isso é extremamente fácil de paródia. Se você bloquear o endereço IP para baixo no roteador, que é uma história diferente e vai comprar-lhe alguma segurança real sobre quem pode acessar o site de onde.

Se você está fazendo está acessando o aplicativo internamente, então SSL não vai comprar-lhe muito a menos que você está tentando proteger as informações de partes internas para a organização, ou você exigir certificados de cliente. Isso supõe que você nunca vai acessar o site a partir de uma conexão externa (VPNs não contam, porque você é tunelamento para a rede interna e são tecnicamente parte dela nesse ponto). Ele não vai doer tanto e que não é difícil de configurar, só não acho que ele vai ser a solução para todos os seus problemas.

Se ele é limitado por endereço IP, em seguida, embora eles podem falsificar o endereço de IP, eles não serão capazes de obter a resposta. Claro, se ele é exposto à internet, ele ainda pode ser atingido por outros do que contra o aplicativo ataques.

Meu primeiro pensamento sobre a questão ressource seria perguntar se não seria possível fazer algo mágico com uma máquina virtual?

Outras que - se os endereços IP que você verificar-se contra ou são IPs você SABE pertence a computadores que são supostamente para acessar o aplicativo ou no intervalo IP local, então eu não posso ver como ele não poderia ser o suficiente segura (I estou realmente usando uma abordagem semelhante atm em um projeto, embora não seja extremamente importante que o site é mantido "oculto").

Só porque todos os seus IPs internos coincidir com um determinado regex, isso não significa que todos os IPs que correspondem um determinado regex são internos. Assim, seu regex é um ponto de possível falha de segurança.

Eu não sei o que a tecnologia usada para construir o seu site, mas se é Windows / ASP.net, você pode verificar as permissões da máquina solicitante com base em suas credenciais do Windows quando o pedido é feito.

Como toda a segurança, é inútil, por si própria. Se você tem que colocá-lo em um servidor web voltados para o público, whitelisting uso IP, com nome de usuário básica / senha auth, com SSL, com uma configuração de monitoramento decente, com um aplicativo de servidor up-to-date.

Dito isso, qual é o ponto em que o servidor ser acessível ao público, então restringi-la para apenas endereços IP internos? Parece que é basicamente reinventar o NAT dá-lhe de graça, e com um servidor interno somente, e você tem que se preocupar com exploits web-servidor e os gostos.

Você não parecem ganhar nada por tê-lo acessível externamente, e há muitos benefícios a ter ter que ser somente de interno ..

A sua segurança é tão forte quanto seu elo mais fraco. No grande esquema das coisas, spoofing um IP é brincadeira de criança. Use SSL e exigir certificados do cliente.

Tornou-se útil primeiro a distinguir entre diferentes tipos de IP vpn baseado no administrativa relacionamentos, e não a tecnologia, interligando os nós. Uma vez que as relações foram definidas, poderiam ser usadas tecnologias diferentes, dependendo dos requisitos como segurança e qualidade de serviço.

Talvez isto ajude? Eu estive olhando para a mesma resposta, e encontrei este stackoverflow, bem como a ideia de Red Hat Linux Ent. Vou tentar isso em breve. Espero que ajude.

iptables -A FORWARD -s 192.168.1.0/24 -i eth0 -j DROP

Onde 0/24 é o intervalo LAN que deseja proteger. A ideia é bloquear "internet" voltado para dispositivos (Forward) de ser capaz de falsificar a rede IP local.

Ref: http://www.centos.org/docs/4/html/rhel-sg-en-4/s1-firewall-ipt-rule.html

Um firewall adequada pode proteger contra spoofing IP, e não é tão fácil como dizer spoofing sua identidade, então o argumento / não / usar filtragem IP por causa do perigo spoofing é um pouco antiquado. Segurança é melhor aplicado em camadas, para que você não está confiando em um único mecanismo. É por isso que temos sistemas WAF, nome de usuário + senha, a camada 3 firewalls, camada 7 firewalls, criptografia, AMF, SIEM e uma série de outras medidas de segurança, cada qual adiciona proteção (com o aumento do custo).

Se esta é uma aplicação web que você está falando (que não foi claro da sua pergunta), a solução é bastante simples, sem o custo dos sistemas de segurança avançados. Seja usando IIS, Apache, etc. você tem a capacidade de restringir conexões para seu aplicativo para um URL de destino específico, bem como o endereço IP de origem - nenhuma alteração para o aplicativo necessário - em uma base por aplicativo. Impedindo a navegação na web baseada em IP do seu aplicativo, juntamente com restrições IP de origem, deve dar-lhe proteção significativa contra casuais navegação / ataques. Se isto não é um aplicativo web, você vai ter que ser mais específico que as pessoas saibam se a segurança com sistema operacional (como foi proposto por outros) é sua única opção ou não.

IP Whitelisting é, como já foi mencionado, vulneráveis ??ao IP spoofing e ataques man-in-the-middle. Em um MITM, considere que alguns switch ou roteador foi comprometida e vai ver as "respostas". Ele pode monitorar ou mesmo alterá-los.

Considere também vulnerabilidades com criptografia SSL. Dependendo do esforço, isto pode ser frustrada num MITM, bem assim como os apês bem conhecidos com a reutilização dos números primos, etc.

Dependendo da sensibilidade de seus dados, eu não iria se contentar com SSL, mas iria com strongSwan ou OpenVPN para mais segurança. Se tratada adequadamente, estes serão muito menos vulneráveis ??a uma MITM.

A dependência de whitelisting sozinho (mesmo com SSL) eu consideraria "baixo grau", mas pode ser suficiente para suas necessidades. Basta ter plena consciência das implicações e não cair na armadilha de uma "falsa sensação de segurança".

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top