2013-03-15 24 views
5

Linux üzerinde güvenilmeyen uygulamayı çalıştıran Biz bir cihaz Linux çalıştıran var ve biz bu konuda güvenilmeyen uygulamaları çalıştırmak gerekir. kum havuzunda

  • güvenilmeyen uygulama olumsuz başka bir uygulamanın veri ve ikili dosyaları etkileyen mümkün olmamalıdır güvenilmeyen uygulama olumsuz çekirdek işletim sistemi verilerini ve ikili dosyaları etkileyen mümkün olmamalıdır

    1. - Biz aşağıdaki güvenlik kaygıları ortadan kaldırmak için çalışıyoruz
    2. güvenilir olmayan bir uygulama fazla işlemci, bellek ve disk tüketir mümkün ve çekirdek OS durum veya güvenilir olmayan bir uygulama bekleme diğer uygulamalar

    gibi bir DoS/kaynak açlık neden olmamalıdır Bir test ortamı olarak kullanılması SELinux'u - 1

    Yaklaşım - nokta, sadece okumak ve kendi dizin ve Biz aşağıdaki yaklaşımlardan birini kullanarak düşünüyorsun

    belki monte USB sürücüye yazabilmek gerekiyor

    • Bu mümkün mü? Ben biraz SELinux okudum ve bir politika dosyası oluşturma ve çalışma zamanında zorlama açısından biraz karmaşık görünüyor. SELinux bunu yapabilir ve güvenilmeyen uygulamayı sadece kendi dizinini okumak/yazmak için kısıtlayabilir ve kota sınırlarını ayarlamak

    Yaklaşım 2 -

    • tüm uygulama Damga her güvenilmeyen uygulama için yeni bir uygulama kullanıcı oluşturun zaman bizim kendi

      • yeni sandbox oluşturma sırasında yüklemek izinli dizin ve dosyalar, böylece sadece uygulama kullanıcısı

      • okuyabilir ve yazabilir çalışma süresi sırasında ulimit kullanarak uygulama kullanıcı için
      • Seti kotaları/kota
    • ,

      • Tüm açık dosya tanımlayıcıları/root ayarlamak için
      • Kullanım chroot'u kolları kullanarak güvenilmeyen uygulamayı başlatmak Uygulama dizini uygulama dizisine uygulama
    • Yukarıda üzerinde

    Düşünceler? Hangi yaklaşım diğerinden daha güvenli? Daha iyi çalışabilecek başka bir yaklaşım var mı? Android'i bazı nedenlerden dolayı taşımak için bir seçeneğimiz yok, dolayısıyla Android'in doğal olarak sağladığı korumalı alan özelliklerini kullanamıyoruz ...

    beni SELinux'un kullanıcı hakları daha da karmaşık olarak biraz benzer uygular olan kurallar bütünüdür

  • +0

    Seçiminiz 2 aslında Android'in kum havuzu özellikleri (chroot hariç) gibi bir çok kulağa hoş geliyor. Çekirdek kullanıcı güvenlik modelinin bozulma derecesini koruyanlar ... –

    +0

    @ chris-stratton - Android nedir Approach-2'mizi bulmak için referans olarak kullandık. Maalesef, bu noktada Android'e kendimizi taşıyamıyoruz. Bu nedenle Android kum havuzunu kutudan çıkarma seçeneğine sahip değilsiniz ... – user967973

    +0

    Linux'un ad alanı ve gruplarını nasıl kullanıyorsunuz? Dürüst olmak gerekirse, ben çok aşina değilim, ama alçakgönüllü bilgime göre, bir sürecin kaynaklarını sadece sizin belirlediğiniz şeye ayırabilirsiniz. Diğer bir deyişle, Docker gibi kendi konteynerizasyon sisteminizi yaratıyorsunuz. Her işlem/uygulama sadece kendisine neyin atandığını görmek ve tüketmekle sınırlıdır. –

    cevap

    0

    Teşekkür, bildirin. Her işlem için, bu işlemin bir etki alanını ayarlamak ve neredeyse tüm erişime izin vermek veya reddetmek için kullanabilirsiniz. Dosyalara, ağa veya süreçlere/konulara erişim anlamına gelir. Bu şekilde bir çeşit sanal alan olarak kullanılabilir. Bununla birlikte, her işlem için bir kural kümesi hazırlamanız veya korumalı uygulamadan önce kuralların kendisini hazırlamak için çalıştırılması gereken bir komut dosyası hazırlayabilirsiniz.

    CPU tüketimini kontrol altına almak istiyorsanız, SELinux'un bir işlemci planlayıcısı yoktur, çünkü herhangi bir kural iki mantıksal sonuca 'izin ver' veya 'reddetme' erişiminden sadece birine sahiptir. CPU'ların tüketimini kontrol etmek için 'gruplarını' öneririm.

    0

    legato project, daha üst düzey bir kum havuzu kullanır. Uygulamaları içermek için chroot ve bind bağlama kullanır. Bunun önemli bir özelliği resmi bir bildirim api'dir, bu yüzden uygulama bileşenleri yönetilen bir güvenlik yapılandırması altında sistem hizmet bileşenleriyle konuşabilir. Ve servisler ve uygulamalar ihtiyaç duyulduğu kadar hava eklendiğinde de eklenebilir ve kaldırılabilir. Uygulama belleği kullanımı, işlemci paylaşımı, depolama, vb. De yakından yönetilmektedir. Uygulama geliştirmeyi daha kolay hale getirdiğini iddia ediyor.

    İlgili konular