Uygulamaları nasıl zımparalayabilirim?


66

Güvenilmeyen küçük programlar çalıştırmak istiyorum, ancak klasörlerinin dışındaki herhangi bir dosyaya, ağ erişimine ve gerçekten ihtiyaç duymadıkları her şeye erişmelerini engellemek istiyorum. Bunu başarmanın en basit yolu nedir?


Hiç kullanmadım, bu yüzden tam bir cevap alamıyorum, ancak AFAIK, AppArmor ( wiki.ubuntu.com/AppArmor ) bunu yapabilmelidir.
Javier Rivera

VirtualBox için bir sarmalayıcı olan Vagrant'ı inceleyin. vagrantup.com ve ([Ekşi] en.wikipedia.org/wiki/Vagrant_(software%29) ve github
Janus Troelsen

@JavierRivera FWIW, SELinux de. Yine de Ubuntu’da koşmanın ne kadar kolay olduğu hakkında hiçbir fikrim yok.
TC1

Apparmor zaten Ubuntu'da varsayılan olarak kuruludur, bu yüzden daha kolay olması gerekir.
Javier Rivera

1
Birden çok olasılık gibi görünüyorlar: Virtualbox (Vagrant gibi), chroot, LXC, App Armor ve SE Linux gibi bir şey kullanarak sanallaştırma.
13'te Flimm

Yanıtlar:


26

Gerçekten güvenilmezlerse ve emin olmak istiyorsanız, ayrı bir kutu hazırladınız. Ya gerçekten ya da neredeyse.

Dahası, yeterince paranoyak olmanız durumunda, bu kutunun önemli şeylerinizle aynı ağda olmasını istemezsiniz. Tüm çözümlerde, hak sahibi olmayan ayrı bir kullanıcı kurdunuz, bu yüzden olası müşteri adayına çok fazla araç açmamak için.

  • Bu yüzden en güvenli seçenek ağınızdan fiziksel olarak çıkartılmış ayrı bir kutu olacaktır.
  • Fiziksel ağa ekleyerek biraz verebilirsiniz, ancak farklı bir alt ağda: içinde 'gerçek' bağlantı yok
  • Sanal bir makine bir seçenek olabilir, ancak performanstan vazgeçmek zorunda kalabilir

Aynı kutu üzerinde çalıştırma zorunluluğu varsa, örneğin, bu seçenek

  • chroot. Bu, birçok insan için bunu yapmak için varsayılan bir seçenektir ve spesifik olmayan tehditler için bile işe yarayabilir. Ancak bu bir güvenlik seçeneği DEĞİLDİR ve oldukça kolay bir şekilde kırılabilir. Bunu, güvenlik için değil, amaçlandığı şekilde kullanmanızı öneririm.

Sonunda, sanallaştırma zorluğu veya ayrı kutular veya risk altındaki hal durumu olmadan belirli bir sanal alan modeli kurmanız gerekebilir chroot. Bunun ne demek istediğinden şüpheliyim ama daha ayrıntılı bilgi için bu bağlantıya bakın.


Sanal bir makinede güvenilmeyen bir uygulama çalıştırmak güvenlik açısından ne kadar güvenli olurdu? Ana bilgisayar işletim sistemine hiper yönetici aracılığıyla erişip onu bulaştırabilecek teorik açılımlar duydum.
zuallauz

Şu anda bunun gibi gerçek tehditlerin farkında olmasam da, kesinlikle hedeflenmeyenler olabilir. Saldırganın bir oyunda kötü amaçlı yazılım yazmasının o kadar uzun sürmeyeceğini düşünmelisiniz. Şimdi size mızrak atağı tek başına olabilir, tabii ki düzeninizi biliyorlarsa, ama yine de bunun ilk endişeniz olduğunu sanmıyorum. Eğer onların bu kadar usta olduklarından eminseniz, gerçekten de izole bir kutu kurmalısınız.
Nanne

14

Firejail oldukça yeni ve sürekli gelişim içinde. Kullanımı kolay.

Basitçe:

sudo apt-get install firejail
firejail app

Ubuntu'ya Sormaya Hoş Geldiniz! Bu soruyu teorik olarak cevaplayabilse de , cevabın temel kısımlarını buraya dahil etmek ve referans için bağlantıyı sağlamak tercih edilir.
Mark Kirby,

12

Docker , mevcut çekirdeğinizden kaçabileceğiniz kapları ayarlamanıza yardımcı olur, ancak sisteminizin geri kalanından uzak durun. Oldukça yeni görünüyor ama Ubuntu'da iyi bir dokümantasyon var.


4
Bunun çoğu durumda iyi bir seçenek olduğunu düşünüyorum. Ancak, orijinal sorunun "güvenilmeyen" kısmı, beni biraz endişelendiriyor. Bir uygulamanın konteynırından “kopmasına” izin verebilecek kanıtlanmış kesmeler vardır. Ve liman işçisi konteynerlerinin kök erişiminde çalışması göz önüne alındığında, amacınız uygulamaları birbirinden korumalı bir şekilde silmek ise bu tehlikeli olabilir.
Cris Holdorph

@CrisHoldorph, Docker daha iyi hale gelse de doğru ve ben de bugünlerde ayrıcalıklı bir docker çalıştırmanın mümkün olduğunu düşünüyorum (root olarak değil). Bu kesinlikle LXC ve LXD (bazen LXC arka plan adı verilen daemon) için böyle bir kabın oluşturulmasını büyük ölçüde basitleştirebilir. Bu nedenle, modern ayrıcalıklı olmayan konteynerler, chroot üzerindeki güvenlik açısından bir gelişme olarak kabul edilebilir. Ancak bunlar geçilmez bir engel değildir!
Huygens,

Docker bir güvenlik aracı değildir!
Federico,

10

Tam sanallaştırma / öykünme (VirtualBox)

Olası bir çözüm, yazılım merkezinde bulabileceğiniz VirtualBox gibi sanallaştırma yazılımıdır.

  • Sanal kutu yükle
  • Ağ etkinleştirilmiş bir sanal makine oluşturun
  • Ubuntu'yu veya Lubuntu gibi daha hafif bir masaüstünü kurun.
  • Yüklü işletim sistemini tamamen güncelle (Sanal kutu içinde)
  • Sanal makinede ağ bağlantısını devre dışı bırak
  • Anlık görüntü al

Artık ne yaptığını görmek için güvenmediğiniz yazılımı yükleyebilirsiniz. Dış dünyayı altüst edemez ya da erişimi olmayan bir işletim sistemi barındırırsınız.

Bununla birlikte, sanal makinenizi çöpe atabilir, ancak çıkarırsa, yalnızca anlık görüntünüzden geri yükleyebilirsiniz.

Güvenilmeyen yazılımların yıkıcı gücünü sınırlamak için başka yöntemler olabilir, ancak bu düşünebildiğim en sağlam yöntem.

Konteyner tabanlı sanallaştırma (Docker / LXC)

Başka bir seçenek burada LXC daha fazla bilgi olabilir

LXC, bazen “steroidler üzerinde chroot” olarak tanımlanan hafif bir sanal sistem mekanizması olan Linux Containers için kullanıcı kontrol paketidir.

LXC, Linux'un mevcut süreç yönetimi altyapısına kaynak yönetimi ve izolasyon mekanizmaları ekleyerek eksiksiz sanal sistemleri uygulamak için chroot'tan inşa edilmiştir.

Yazılım merkezinde mevcut. Bununla birlikte hiçbir deneyimim yok.


1
Bu sadece rahatsız edici. Sadece oyunları çalıştırmak için bütün bir sanal makine oluşturun !! bu çok iyi bir çözüm değil. Eğer sürecin GID ve UID olacağını ayarı sanma YOL Bundan daha kolay?
Jack Mayerz

Aslında sanal bir kutu oluşturmak, muhtemelen anlık görüntü almakla uğraşmayacağım için yeterince kolay olduğunu düşünüyorum. Sanal makineme zarar verirse, onu atabilirim.
emory

Aşağı oy: Çözüm sağlam olsa bile gerçek yanlış muhakeme. Programların, bunları çalıştıran kullanıcı ile aynı ayrıcalıklara sahip olması gerekmez. Linux ve Ubuntu yıllardır MAC'i desteklemektedir. Ubuntu bunun için AppArmos kullanır ve kolayca bir dizine bir program içerebilir.
Javier Rivera

@JavierRivera "kolayca" doğru bir kelime değildir, veya bir AppArmor profili ve Firefox için bir SELinux politikası varsayılan olarak her dağıtımda birlikte gönderilir ve durum böyle olmaz. Ubuntu böyle bir profili gönderiyor ancak birkaç "popüler" Firefox özelliğini kırdığı için varsayılan olarak etkin değil. Çoğu GUI uygulaması için çok fazla SELinux politikası yoktur, bu tür uygulamalar hala sanal alan olarak adlandırılmak için çok fazla izin gerektirir. Kabul etmiyorsanız, lütfen buraya AppArmor veya SELinux! Yapabilirsen gerçekten mutlu olurdum :-)
Huygens

Muhtemelen anlamlı bir cevap için "güvenli" tanımlamanız gerekir, ancak Ubuntu'daki varsayılan Firefox politikası benim için oldukça makul. Tabii ki, hiçbir şey kullanmak kadar kullanıcı dostu olmadığı bir şeyi kırıyor, ama benim için tamamen sanal bir makineden daha kullanıcı dostu (aynı zamanda popüler firefox özelliklerini de bozuyor).
Javier Rivera

9

mbox

Mbox, herhangi bir kullanıcının emtia işletim sistemlerinde özel imtiyazlar olmadan kullanabileceği hafif bir kumlama mekanizmasıdır.

Birkaç şey için güvenilir bir şekilde kullandım.



1

Bence, olası bir çözüm, test amacıyla ayrı bir kullanıcı oluşturmak ve ayrıcalıklarını sınırlamaktır. Bu şekilde performans kaybetmezsiniz, sanal makinede kesinlikle ne olur, ama bence daha doğru kurulmazsa, bunun nasıl yapılacağı konusunda tavsiyem edemediğim için daha az güvenli.


2
Bu, sistemi kurmaya veya çalışmaya devam edebilecek kötü amaçlı yazılımlardan korumaz - aynı zamanda bu sorunun anlamıyla sandboxing değildir
Thomas Ward

1

DoSH - Docker Kabuğu

Kullanıcıların aktivitelerini sanallaştırmak istiyorsanız, "DoSH" kullanabilirsiniz.

DoSH (Docker SHell anlamına gelir), kullanıcılar Linux sisteminde oturum açtığında ve içine bir kabuk koyduklarında, kabuk oluşturmak yerine Docker kapları oluşturmak için bir gelişmedir.

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.