Como autor do NetGuard, tenho experiência em primeira mão neste campo.
Uma desvantagem de um firewall baseado em uma VPN local é que nem todos os tipos de tráfego podem ser manipulados, porque o kernel Linux (Android) não permite o encaminhamento de todos os tipos de tráfego por uma conexão baseada em soquete. Um exemplo é o IPsec, que está sendo usado para chamadas IP por alguns fabricantes. Uma solução parcial (não para IPsec) para isso seria usar um servidor VPN remoto para encaminhar tráfego, mas isso não é aceitável em termos de privacidade para muitas pessoas e viria com complexidade adicional e provavelmente também com o uso extra de bateria. Na prática, lidar com o tráfego TCP e UDP parece ser suficiente para 99,9% dos usuários do NetGuard. Desde o Android 5, é possível impedir que os aplicativos sejam roteados para a VPN (o aplicativo de implementação da VPN decide se isso é obrigatório ou opcional), que pode ser usado para solucionar problemas decorrentes da impossibilidade de encaminhar todo o tráfego. Outra opção é excluir endereços (intervalos), que o NetGuard usa para 'corrigir' a chamada IP de alguns fabricantes.
Outra desvantagem é que o tráfego de encaminhamento aumentará o uso da bateria em dispositivos móveis, pois envolve algum processamento, porque os pacotes precisam ser inspecionados e encaminhados. O uso do iptables, integrado no kernel do Linux, é mais eficiente e, portanto, mais amigável à bateria.
Em geral, parece que o Android direciona todo o tráfego para a VPN, mesmo tráfego de aplicativos e componentes do sistema, mas um fabricante pode decidir excluir determinados tipos de tráfego, reduzindo a segurança que pode ser alcançada por um firewall baseado em VPN.
O NetGuard não analisa os dados em si, exceto as solicitações de DNS para fornecer bloqueio de anúncios, mas, se isso acontecer, poderia suscitar uma preocupação com a privacidade. No entanto, tecnicamente, isso é uma vantagem de um firewall baseado em VPN (se você ainda quiser chamá-lo dessa maneira), porque permitiria a inspeção completa do estado dos fluxos de dados além do que é possível com o iptables. Provavelmente, isso custaria o uso da bateria, devido ao processamento envolvido. Observe que seria necessário um ataque MiT local para inspecionar fluxos SSL.
Outra desvantagem é que o Android não permite o encadeamento de VPNs; portanto, o uso de uma VPN local para implementar um firewall impedirá o uso de um serviço VPN real, a menos que o firewall forneça esse serviço ou alternativamente um mecanismo de encaminhamento ou proxy para outra VPN. inscrição.
Por fim, um firewall baseado em VPN depende do aplicativo que fornece o serviço VPN de firewall em execução. Isso parece trivial, mas não é, porque algumas versões / variantes de fabricantes do Android estão matando processos de forma muito agressiva em condições de pouca memória (IMHO é um bug se o Android matar aplicativos que fornecem um serviço VPN).
Finalmente, o enraizamento de dispositivos Android está se tornando cada vez mais difícil, deixando um firewall baseado em VPN como a única opção para muitas pessoas. Não espero que o Google adicione um firewall com base no sistema em breve, pois isso pode afetar significativamente a receita com anúncios. O iOS possui um firewall baseado no sistema.
Informe-me se houver alguma dúvida e tentarei respondê-las.
Que eu saiba, é a abordagem:
Os firewalls baseados em raiz usam IPFilter / iptables para controlar o fluxo. Isso se aplica automaticamente a todos os aplicativos, independentemente de haver ou não uma conexão de rede, se o roteamento está funcionando completamente ou não, ou se você está em um "ambiente fechado" (Intranet) sem acesso ao "mundo exterior" "(Internet). Os aplicativos bloqueados estão bloqueados. Em um nível bastante baixo.
Os firewalls não raiz não têm acesso a esse nível baixo, portanto, eles devem usar soluções alternativas. Na maioria dos casos, isso é feito usando os recursos de VPN do Android . Dependendo da implementação, isso funciona completamente no dispositivo (ou seja, novamente, independentemente da conexão de rede disponível) ou por meio de "serviços externos" (conectando você à VPN do provedor de aplicativos). Neste último caso, as coisas quebram assim que esse serviço deixa de estar disponível - um fato que você pode perceber ou não. Em ambos os casos, não tenho certeza se realmente todos os aplicativos respeitam a VPN ou se existem maneiras de contornar isso. 1 Outro fato desagradável com as VPNs sobre as quais eu li é a notificação permanente e irritante que aparece, dizendo "Sua rede pode ser monitorada"- mas o AFAIK que deve aparecer apenas se o aplicativo em questão precisar de seu próprio certificado instalado. 2
Veredicto: eu pessoalmente confiaria mais em uma solução baseada em raiz. Mas onde o enraizamento não é uma opção, as soluções não raiz devem ser quase tão boas. Nesse caso, minha recomendação iria para soluções de código aberto como o NetGuard (seu desenvolvedor também criou o Xprivacy e é bem confiável). Falando nisso: Para obter mais detalhes, dê uma olhada na introdução do NetGuard para XDA , que explica os antecedentes com mais alguns detalhes.
1 Não estou familiarizado com os detalhes técnicos por trás da implementação da VPN do Android, mas citando o WhiteWinterWolf (veja o comentário abaixo), cabe ao sistema básico do Android impor isso, não há razão para pensar que isso não foi feito corretamente.
2 Mais uma vez citando o WhiteWinterWolf: a API da VPN usada pelo NetGuard permite que todos os dados sejam interceptados por um aplicativo não privilegiado; é isso que o Android considera efetivamente como "monitoramento", não tem relação com nenhum certificado e esse aviso é uma consequência inevitável e esperada do usando esta API.
fonte
Eu acho que um recurso importante a ser observado sobre o Netguard seria a capacidade de filtrar endereços específicos por aplicativo. Esta é uma opção paga.
Não posso dizer VPN baseada em certificado vs iptables. Isso provavelmente dependeria do seu kernel e da versão do Android para o iptables e para o NetGuard, os algoritmos usados para criptografar os dados, se eles estão sendo registrados e onde estão armazenados. Minha resposta pode não ser tão técnica quanto a que você estava procurando e, desde que sou usuário do AFWall + (versão doada), estou definitivamente inclinado a isso. No entanto, eu sei que o desenvolvedor do NetGuard também mantém ativamente o XPrivacy, um gerenciador de privacidade Android muito conhecido / confiável e robusto. O AFWall + não foi abandonado, mas definitivamente não recebeu uma atualização tão recentemente quanto o NetGuard. Ambos empregam métodos diferentes para manter o controle do tráfego, mas, em última análise, acho que depende principalmente do usuário a segurança de qualquer parte do dispositivo.
fonte