Os servidores HTTP em uma LAN podem ser invadidos da web?

0

Eu configurei um servidor web em um microcontrolador ESP8266 dentro da minha rede local. Solicitações HTTP GET enviadas para esta unidade podem ligar e desligar uma tomada da rede elétrica, e estou planejando implantar algumas delas em casa.

Esta LAN está conectada à Internet usando uma caixa de internet padrão (roteador + modem). Eu quero impedir que alguém de fora da LAN, incluindo qualquer pessoa da internet, envie qualquer coisa para o microcontrolador.

Vamos supor que as pessoas não podem hackear meu Wifi protegido por WPA-PSK. Minha configuração é uma violação de segurança? Quão difícil é para alguém invadir minhas lojas inteligentes?

    
por Mister Mystère 16.04.2016 / 00:46

2 respostas

1

Embora não seja possível para qualquer pessoa de fora acessar o servidor diretamente (contanto que você não encaminhe nenhuma porta do roteador), você estará vulnerável a algo como Falsificação de solicitações entre sites . Por exemplo, se alguém lhe enviou uma mensagem de e-mail no formato HTML (ou permite que você carregue uma página da Web ou ...), com uma imagem embutida carregada de http://192.168.1.50/control?outlet=all&action=off (ou qualquer que seja seu endereço IP e sintaxe), O cliente de e-mail tentará carregar uma imagem dessa URL e suas tomadas serão desativadas (ou qualquer outra).

Então, se você tiver algum amigo suficientemente nerd que conheça sua configuração de rede, espere ser enganado. Na verdade, você também deve esperar hits aleatórios XSRF tentando explorar outros dispositivos aleatórios que você pode ou não ter; se o servidor web do controller ficar confuso com qualquer um desses, eles podem quebrá-lo acidentalmente.

[Atualizar] Assegurar isso melhor dependerá muito das capacidades de criptografia que o servidor da Web possui - não vi muita informação em uma pesquisa rápida, por isso não tenho certeza do que ela pode fazer. A coisa mais simples a fazer é adicionar uma variável de senha ao pedido. Isso não é particularmente seguro, pois ficará visível na ligação, armazenado no histórico no cliente e conectado ao servidor, etc, mas é melhor que nada (e melhor do que usar uma sintaxe estranha, já que é fácil mudar) . Do not use a mesma senha que você usa para qualquer outra coisa.

Mudar de GET para POST também ajudaria um pouco, especialmente porque o padrão HTTP diz que as solicitações GET não devem alterar o estado do servidor - ou seja, é suposto que seja seguro para os clientes enviarem / não pedidos GET enviados dependendo, por exemplo, o estado de seus caches. Usando HTTPS ajudaria ainda mais (se o servidor suportar isso). Usar a autenticação digest do WebDAV (em vez de uma string de senha) também seria bom (novamente, se o servidor a suportar), mas você precisaria adicionar algum tipo de proteção contra ataques de repetição para que ela seja realmente eficaz.

    
por 16.04.2016 / 04:03
1

Embora tudo seja possível, se você não tiver nenhuma porta mapeada por meio do encaminhamento de porta, às vezes chamado de servidor virtual, especialmente 80, 443 e 8080, ou qualquer porta usada pelo seu servidor ... As chances de um ataque externo a LAN que passa pelo seu roteador até esse dispositivo está próxima de zero.

Mas, novamente, sem uma análise de segurança mais completa, não tome isso como a resposta final. Se houver uma vontade, existe uma maneira, não importa que precauções você tome.

    
por 16.04.2016 / 00:57