SORU
22 Kasım 2010, PAZARTESİ


Güvenilmeyen bir C program Dosyaları, bölmek, vb açılmasını engelleyen Linux spam.?

Eğer Linux bir kum altında güvenilmeyen C bir programı çalıştırmak için bir yol varsa orada merak ediyordum. Dosyaları, ağ bağlantıları, veya çatallaşma, exec, vb açılış programı önleyecek bir şey?

Bir sunucuya yükleniyor, bu küçük bir program, bir ev ödevi, olur ve birim testleri üzerinde yürütüldü. Program kısa ömürlü olur.

CEVAP
22 Kasım 2010, PAZARTESİ


Systrace hem etkileşimli ve otomatik modda güvenilmeyen programları sanal için kullandım. Çekirdek düzeltme gerektiren özel ayrıcalıklar olmadan bir Linux sistemi üzerinde kullanım sağlar ptrace()tabanlı arka uç olarak çok daha hızlı ve daha güçlü bir arkaplana sahiptir.

Bu kadar kolay ve güvenli kadar olmasa da aynı zamanda Unix-benzeri sistemlerde bir kum havuzu chroot(1), kullanarak oluşturmak için. Linux Containers FreeBSD jails kök için daha iyi bir alternatif vardır. Linux üzerinde başka bir alternatif SELinux veya üretim sistemleri için yapmayı öneriyorum olan AppArmor gibi bir güvenlik çerçevesi kullanmaktır.

Eğer söyleseydin daha yapmak istediğiniz ne kadar yardımcı oluruz.

DÜZENLEME:

Systrace davanız için AppArmor veya SELinux gibi Linux Security Model dayalı bir şey daha standart ve böylece tercih edilen bir alternatif, sizin dağıtımınıza bağlı olduğunu düşünüyorum.

EDİT 2:

chroot(1) en kullanılabilir (?) Unix benzeri sistemlerde, birkaç sorunları var:

  • Dışarı kırık olabilir. Aslında derleme veya güvenilmeyen C programları çalıştırmak sisteminizde yapacaksanız, bu konuya özellikle savunmasız. Ve eğer öğrenciler benim gibi bir şey varsa, biri hapisten kaçmaya çalışacaktır.

  • Görev için gerekli olan her şeyi ile tam bağımsız bir dosya sistemi hiyerarşi oluşturmak zorunda. Bu kök bir derleyici olması gerekmez, ama derlenmiş programları çalıştırmak için gerekli olan her şeyi dahil edilmelidir. Bu konuda yardımcı olan uygulamalar olmasına rağmen, yine de önemsiz değildir.

  • Bu kök korumak zorundayız. Bağımsız olduğu için, kök dosya dağıtımı ile birlikte güncelleştirilmiş olmayacak. Bu kök düzenli olarak yeniden, ya da aslında tam anlamıyla bir Linux dağıtımı olması gerekir ki, gerekli güncelleme araçları vardır. Ayrıca, sistem ve kullanıcı verileri (şifreler, giriş dosyaları e.tutmak zorunda kalacaklar t.c.) ana sistem ile senkronize.

  • chroot() sadece dosya sistemini korur. Elimizdeki tüm kaynakları yalakalık ağ yuva ya da kötü yazılmış bir açılış kötü amaçlı bir program engellemez.

Kaynak kullanımı sorunu, tüm alternatifleri arasında yaygındır. Filesystem quotas disk dolum programları engeller. ulimit (setrlimit() C) uygun ayarları aşırı bellek kullanımı ve herhangi bir çatal bombalara karşı korumak gibi bir domuzu durdurmak için CPU koyabilirsiniz. nice(1) bilgisayarı hiçbir sorun ile daha önemli sayılır, tüm işler için kullanılabilir, böylece bu programların önceliğini düşürebilirsiniz.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Andrea Lewis

    Andrea Lewis

    14 Mart 2013
  • hitcreatormusic2

    hitcreatormu

    21 Mayıs 2010
  • Jonathan D.

    Jonathan D.

    3 Kasım 2006