Kök tabanlı güvenlik duvarı (AFWall +) ile kök olmayan tabanlı güvenlik duvarları (NetGuard) arasında herhangi bir güvenlik farkı var mı?


18

Kök tabanlı güvenlik duvarları (AFWall + gibi) ve kök olmayan tabanlı güvenlik duvarları (NetGuard gibi) arasındaki teknik farklar nelerdir?

Böyle bir yazılımın etkin bir şekilde sağladığı güvenlik üzerinde herhangi bir etkisi var mı?

Kendimi bir fikir haline getirmek için NetGuard'ın kaynak kodunda biraz kontrol ettim, ancak bunun hala iyi bir soru olabileceğini düşünüyorum ve konuyla ilgili diğer kişilerin analizini almak istiyorum.

Bu soruyu böyle bir yazılım tarafından sağlanan temel teknik özellikle sınırlamak istiyorum (güvenlik duvarı türü: vatansız veya durum bilgisi gibi, herhangi bir sabit kodlu istisnalar, güvenilir olmayan paketlerin işlenmesinin kod sağlamlığı vb.) Ve ikincil özelliklerde değil veya yazılımın temel amacını somut bir şekilde etkilemedikleri sürece sahip olabilecekleri anti-özellikler (reklamlar, izleme, kozmetik, ...).

Başka bir deyişle: rants lütfen;)!

Sınırlamalar olması durumunda, uygulamaya özel (geliştirme ekibi tarafından yapılan bir seçimin sonucu) veya kullanılan teknolojinin (çok farklı sistemlere dayanarak) bir sonucu olup olmadığından bahsetmeye değer olabilir. diğerinin sahip olmadığı sınırlamalarla).

Yanıtlar:


14

NetGuard'ın yazarı olarak bu alanda ilk elden deneyimim var.

Yerel bir VPN tabanlı bir güvenlik duvarının dezavantajı, (Android) Linux çekirdeği tüm trafik türlerinin soket tabanlı bir bağlantı üzerinden iletilmesine izin vermediğinden, tüm trafik türlerinin ele alınamamasıdır. Bazı üreticiler IP çağrısı için kullanılan IPsec buna bir örnektir. Buna kısmi (IPsec için değil) bir çözüm, trafiği iletmek için uzak bir VPN sunucusu kullanmak olacaktır, ancak bu, birçok insan için kabul edilemez ve ek karmaşıklık ve muhtemelen ekstra pil kullanımı ile birlikte gelecektir. Uygulamada TCP ve UDP trafiği NetGuard kullanıcılarının% 99,9'u için yeterli görünmektedir. Android 5, uygulamaların VPN'ye yönlendirilmesini hariç tutmak mümkündür (VPN uygulama uygulaması bunun zorunlu veya isteğe bağlı olduğuna karar verir), tüm trafiği iletememekten kaynaklanan sorunları ele almak için kullanılabilir. Başka bir seçenek, NetGuard'ın bazı üreticiler için IP çağrısını 'düzeltmek' için kullandığı adresi (aralıkları) hariç tutmaktır.

Diğer bir dezavantaj, yönlendirme trafiğinin mobil cihazlarda pil kullanımını artıracağıdır, çünkü bazı işlemler gerektirir, çünkü paketlerin incelenmesi ve iletilmesi gerekir. Linux çekirdeğine entegre iptables kullanmak daha verimli ve dolayısıyla pil dostu.

Genel olarak, Android'in tüm trafiği, hatta sistem uygulamalarının ve bileşenlerinin trafiğini bile VPN'e yönlendirdiği ortaya çıktı, ancak bir üretici belirli trafik türlerini hariç tutmaya karar verebilir ve VPN tabanlı bir güvenlik duvarı ile elde edilebilecek güvenliği azaltabilir.

NetGuard, reklam engelleme sağlama DNS istekleri dışında verilerin kendisini analiz etmez, ancak gizlilikle ilgili bir endişe yaratabilir. Bununla birlikte, teknik olarak görülen bu, VPN tabanlı bir güvenlik duvarının bir avantajıdır (yine de bu şekilde çağırmak istiyorsanız), çünkü iptables ile mümkün olanın ötesinde veri akışlarının devlet tarafından tam olarak incelenmesine izin verecektir. Bu, ilgili işlem nedeniyle pil kullanımının maliyetine neden olabilir. SSL akışlarını incelemek için yerel bir MiT saldırısı yapılması gerektiğini unutmayın.

Yine bir başka dezavantaj, Android'in VPN'lerin zincirlenmesine izin vermemesi, bu nedenle güvenlik duvarı uygulamak için yerel bir VPN kullanmak, güvenlik duvarı böyle bir hizmetin kendisi veya alternatif olarak başka bir VPN'ye yönlendirme veya proxy mekanizması sağlamadığı sürece gerçek bir VPN hizmetinin kullanılmasını önleyecektir. uygulama.

Son olarak, VPN tabanlı bir güvenlik duvarı, güvenlik duvarı VPN hizmetinin çalışmasını sağlayan uygulamaya bağlıdır. Bu önemsiz gibi görünüyor, ancak öyle değil, çünkü bazı üretici Android sürümleri / varyantları düşük bellek koşullarında işlemleri çok agresif bir şekilde öldürüyor (IMHO, Android bir VPN hizmeti sağlayan uygulamaları öldürürse bir hatadır).

Son olarak, Android cihazların köklenmesi giderek zorlaşıyor ve VPN tabanlı bir güvenlik duvarını birçok insan için tek seçenek olarak bırakıyor. Google'ın yakın zamanda sistem tabanlı bir güvenlik duvarı eklemesini beklemiyorum, çünkü reklam gelirlerini önemli ölçüde etkileyebilir. iOS'ta sistem tabanlı bir güvenlik duvarı vardır.

Herhangi bir sorunuz varsa bana bildirin, ben de cevaplamaya çalışacağım.


1
Cevabınız için teşekkürler. "iptables ile mümkün olanın ötesinde veri akışlarının tam olarak denetlenmesine izin verir" , iptables modülerdir ve AFAIK hiçbir şey böyle Derin Paket Muayene (DPI) tekniklerini sağlamasını engellemez. Hatta bunu uygulayan birkaç proje var ( ndpi-netfilter , https://github.com/thomasbhatia/OpenDPI , l7-filter ), ancak böyle bir şey için gerçek talebin gerekli işe göre çok düşük olduğunu düşünüyorum, böylece hepsi görünüyor şimdi terk edildi.
WhiteWinterWolf

Evet, bir Linux çekirdek modülü kullanılarak da yapılabilir, ancak uygulama düzeyinde yapmak çok daha kolaydır. Linux çekirdek modüllerinin, çekirdekte çok sayıda çekirdek sürümü olan Android'de geçerli bir seçenek olmayacak bir çekirdek sürümü ile uyumlu olması gerekir. Ayrıca, ortalama kullanıcıdan bekleyemeyeceğiniz bir çekirdek modülünün nasıl ekleneceği hakkında kök izinleri ve bilgi gerektirir, ancak bu bir şekilde otomatikleştirilebilir.
M66B

10

Bildiğim kadarıyla bu yaklaşım:

Kök göre güvenlik duvarları kullanmak IPFilter / iptables akışını kontrol etmek için. Bu, bir ağ bağlantısı olsun veya olmasın, yönlendirmenin tamamen çalışıp çalışmadığından veya "dış dünyaya" (Intranet) erişip erişmediğinizden veya "dış dünyaya erişip erişmediğinizden" otomatik olarak tüm uygulamalar için geçerlidir. "(İnternet). Engellediğiniz uygulamalar engellendi. Oldukça düşük bir seviyede.

Kök dışı güvenlik duvarlarının bu düşük seviyeye erişimi yoktur, bu nedenle geçici çözümler kullanmaları gerekir. Çoğu durumda bu, Android'in VPN olanakları kullanılarak yapılır . Uygulamaya bağlı olarak, bu tamamen cihazda (yani, hangi ağ bağlantısının mevcut olduğuna bakılmaksızın) veya "harici hizmetler" (sizi uygulama sağlayıcının VPN'sine bağlayarak) üzerinden çalışır. İkinci durumda, hizmetin kullanılabilirliği durur durmaz işler bozulur - fark edip edemeyeceğiniz bir gerçek. Her iki durumda da, tüm uygulamaların VPN'yi onurlandırdığından veya yolların olup olmadığından emin değilim. 1 VPN'ler hakkında okuduğum bir başka kötü gerçek, "Ağınız izlenebilir" diyerek can sıkıcı kalıcı bildirimin gelmesidir.- ancak AFAIK, yalnızca söz konusu uygulamanın kendi sertifikasının yüklü olması gerekiyorsa açılmalıdır. 2

Karar: Kök tabanlı bir çözüme kişisel olarak daha fazla güvenirim. Ancak bir seçenek olmadığı durumlarda , kök olmayan çözümler neredeyse iyi olmalıdır. Bu durumda tavsiyem NetGuard gibi açık kaynaklı çözümlere yönelecekti (geliştiricisi de Xprivacy yaptı ve güvenilirdi). Yeri gelmişken: Daha fazla detay için bir göz atın ait XDA tanıtımı NetGuard , biraz daha ayrıntı ile arka plan açıklıyor.


1 Android'in VPN uygulamasının arkasındaki teknik ayrıntılara aşina değilim, ancak WhiteWinterWolf'dan alıntı yapıyorum (aşağıya bakın), bunu uygulamak Android taban sistemine bağlı, bunun doğru bir şekilde yapılmadığını düşünmek için bir neden yok.

2 Yine WhiteWinterWolf alıntı: VPN API NetGuard tarafından kullanılan tüm veri ayrıcalığı olmayan bir uygulama tarafından yakalanan sağlar, bu Android etkili bir "izleme" olarak dikkate şeydir, herhangi bir sertifika ile ilgisi yoktur ve bu uyarı kaçınılmaz bir ve beklenen sonucudur bu API kullanarak.


2
Cevabınız için teşekkürler. "Gerçekten tüm uygulamaların VPN'i onurlandırıp kullanmadığından emin değilim" : Bunu uygulamak Android taban sistemine bağlı, bunun doğru bir şekilde yapılmadığını düşünmek için bir neden yok. "sinir bozucu kalıcı bildirim" : NetGuard tarafından kullanılan VPN API , tüm verilerin ayrıcalıksız bir uygulama tarafından ele geçirilmesine izin verir, Android'in etkin bir şekilde "izleme" olarak kabul ettiği şeydir, herhangi bir sertifika ile hiçbir ilişkisi yoktur ve bu uyarı kaçınılmaz ve beklenen bir durumdur. bu API kullanmanın sonucu.
WhiteWinterWolf

Detaylar için teşekkürler! Daha kolay farkedilmeleri için onları cevabımla (verilen krediler) entegre ettim. "İzleme bildirimi" ne gelince: Bahsettiğim her yerde, yüklenen bir kullanıcı sertifikası bağlamındaydı. Ama açıklama için teşekkürler!
Izzy

1
Evet, Android için aynı bildirimi birkaç alakasız amaç için tekrar kullanmak oldukça üzücü. Mevcut bağlamda, bu bildirim daha önce bağlanmış olan VPN API belgelerindeki aşağıdaki ifadeye bağlanacaktır : "Bir VPN bağlantısının ömrü boyunca sistem tarafından yönetilen bir bildirim gösterilir." .
WhiteWinterWolf

1
VPN'lerde yol olup olmadığı konusunda akılda tutulması gereken bir şey, başka bir şey ararken Android 4.4'teki geliştirmelerle ilgili bu notu buldum : " Kullanıcı VPN başına . Çok kullanıcılı cihazlarda, VPN'ler artık kullanıcı başına uygulanır. Bu, bir kullanıcıya izin verebilir cihazdaki diğer kullanıcıları etkilemeden bir VPN üzerinden tüm ağ trafiğini yönlendirmek için. "
WhiteWinterWolf

2
  1. Gerçek güvenliğin köklü cihazlar için pencereden çıktığı ve elbette kullanıcıya bağlı olduğu konusundaki genel fikir birliğinin yanı sıra, AFWall + NetGuard şifreleme kullanırken trafiği filtrelemek için çekirdek düzeyinde bir yaklaşım sunar. Ön planda kalmaya gerek kalmadan Android yöneticisi olarak çalışabilme yeteneğinin önemli olduğunu düşünüyorum ...
  2. AFWall + isteğe bağlı olarak önyükleme sırasında veri sızıntısını önleyen sistem düzeyinde başlatma komut dosyası kullanır (ve kapatma da inanıyorum)
  3. Kullanılırsa, bir bağlantı değişikliği algılandığında profilleri otomatik olarak değiştirme olanağı sunan yerleşik bir tasker eklentisine de sahiptir (bunu gerçekten seviyorum)
  4. Netguard tarafından kullanılan VPN yönteminin aksine Linux tabanlı iptables
  5. Netguard'da uygulamanın ayarlarını şifre ile korumak için herhangi bir seçenek görmüyorum, ancak AFWall + 'da bu özelliği hiç kullanmadım, bu yüzden ...

Netguard hakkında not edilmesi gereken önemli bir özelliğin, uygulama başına belirli adresleri filtreleme yeteneği olacağını düşünüyorum. Bu ücretli bir seçenektir.

Sertifika tabanlı VPN ve iptables karşılaştırması yapamıyorum. Bu muhtemelen iptables ve NetGuard için çekirdeğiniz ve android sürümünüze bağlı olacaktır. Cevabım aradığınız kadar teknik olmayabilir ve uzun zamandır AFWall + kullanıcısı olarak (bağış versiyonu), kesinlikle ona karşı önyargılıyım. Bununla birlikte, NetGuard geliştiricisinin de çok iyi bilinen / güvenilir ve sağlam bir Android gizlilik yöneticisi olan XPrivacy'yi aktif olarak sürdürdüğünü biliyorum . AFWall + hiç terk edilmedi, ancak NetGuard'ınki kadar yeni bir güncelleme almadı. Her ikisi de trafik kontrolünü korumak için farklı yöntemler kullanırlar, ancak sonuçta, çoğunlukla cihazlarının herhangi bir kısmının ne kadar güvenli olduğuna bağlı olarak kullanıcıya bağlı olduğunu düşünüyorum.


Cevabınız için teşekkürler, özellikle mermi çok bilgilendiriciydi. Bilindiği kadarıyla NetGuard herhangi bir şifreleme uygulamaz, sadece Android'in VPN API'sından faydalanır, çünkü bu API tüm veri ağı iletişimini ayrıcalıklı olmayan bir kullanıcı sürecine yönlendirmeye izin verir. Bu API'nin ilk amacı, bu tür bir işlemin uzak bir ana bilgisayara bir VPN bağlantısını (aslında şifreleme vb.) İşlemesine izin vermektir, ancak NetGuard bunun yerine trafiği analiz etmek ve filtrelemek için bu konumu yalnızca yerel olarak kullanır. Bildiğim kadarıyla NetGuard'da gerçek bir VPN seçeneği yok (AFWall + 'ın aksine).
WhiteWinterWolf

Merakımın kesin bir cevabı izlemem için beni zorlamadığı bir şey, uygulamaların yükleme maskaralıklarını tünellemelerinin yaygın olup olmadığı ve bu VPN mekanizması aracılığıyla tünellenen verilerin analizinde ve filtrelenmesinde ne kadar etkili olacağıdır.
cbar.tx

VPN tüneli diğer uygulamalara saydamdır, İnternet'e doğrudan erişime sahip olduklarını düşünürken, Android aslında iletişimi VPN arayüzüne yönlendirir. Bildiğim kadarıyla, NetGuard verilerin kendisini analiz etmiyor, sadece katman-3 protokol bilgisi (IP adresleri ve bayrakları) ve paketi kaynak uygulamaya bağlamak için Android belgesiz bir numara, bu bir paket olup olmayacağına karar vermek için yeterli izin.
WhiteWinterWolf

Paketleri uygulamalara bağlamak için kullanılan belgesiz bir Android hilesi yoktur, ancak belgelenmiş bir Linux çekirdek özelliği vardır.
M66B

M66B @: hassasiyet için teşekkür ederiz, ben dayanıyordu Bunun için XDA makalesinde Izzy'nin yanıtında bağlantılı: "Biz farklı uygulamalardan trafik arasında ayrım yapmak amacıyla, çekirdek yıllardan dosyalara belgesiz erişim yararlanabilir gerekiyordu bulundu Süreçleri uygulama UID'lerine çevirmek için "proc" dosya sistemi Bu erişim Android'in ileriki sürümlerinde SELinux tarafından kolayca engellenebilir ve hatta bazı güvenlik odaklı cihazlarda da engellenebilir " .
WhiteWinterWolf
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.