Linux tabanlı işletim sistemleri Windows'dan neden daha güvenli kabul edilir? [kapalı]


19

Linux tabanlı sistemlerin güvenlik için daha iyi olduğunu duydum. Görünüşe göre virüsleri yoktur ve antivirüs yazılımlarına ihtiyaç duymazlar. Üniversitem bile bunu iddia ediyor - sunucularında Windows bulundurmayı reddediyorlar, bu gerçekten utanç verici çünkü bazı web siteleri oluşturmak için .NET çerçevesini kullanmak istedik.

Linux'un daha güvenli olduğunu görebilmemin tek nedeni açık kaynaklı olması, dolayısıyla teorik olarak hataların daha erken yakalanması ve düzeltilmesi.

İşletim sistemlerinin nasıl çalıştığı hakkında biraz bilgim var, ancak Linux ve Windows işletim sistemlerini nasıl uyguladıklarını gerçekten araştırmadım. Birisi Linux tabanlı sistemleri daha güvenli kılan farkı açıklayabilir mi?


5
Sorunuza tam olarak cevap vermiyorum, ancak okulunuzun seçimini biraz savunmak istiyorum. Okulum ortak bir dosya sistemini paylaşmaya çalışan bir windows sistemi ve linux sistemi işletiyor. Ancak pratikte bu pahalı olabilir, çünkü ağdaki pencereler ve unix alanları gerçekten ne yazık ki bir araya gelmez. Bazı açık kaynak bileşenlerini tersinden daha fazla kullanması gereken Windows kullanıcılarının gördüğümüz göz önüne alındığında (.net için üzgünüm), o zaman sadece sunucular gibi temel temel donanımda Linux'u desteklemeleri saygın bir seçimdir. Linux bugün en önemli hizmetleri desteklemektedir
Notmyfault

Cevabınız için teşekkürler - ve diğer yanıtlayanlara da, kesinlikle benim için temizlenmiş şeyler yardımcı oldu. Kayıt için, üniversitemin iddiasına kızgın olmaktan daha şüpheliydim.
echoblaze

Yanıtlar:


55

Bir işletim sisteminin "güvenli" olduğunu düşünmüyorum. Bir işletim sisteminin belirli bir yapılandırması saldırılara karşı belirli bir direnç derecesine sahiptir.

Muhtemelen burada bir "Microsoft özürcü" olduğum için alevleneceğim, ancak bu konu doğru olmayan "Windows" ile ilgili genellemelere doğru ilerliyor.

Windows 1.0 - 3.11, 95, 98 ve ME DOS tabanlı. İşletim sistemlerinin bu soyunun resmi anlamda herhangi bir güvenliği yoktu (korumalı adres alanları, çekirdek / kullanıcı modu ayrımı, vb.). Neyse ki, bugün "Windows" hakkında konuşurken, bu işletim sistemlerinden bahsetmiyoruz.

Windows NT işletim sistemleri ailesi (Windows NT 3.5, 3.51, 4.0, 2000, XP, 2003, Vista, 2008 ve 7) 1992'deki ilk sürümden bu yana "tasarlanmış" bir güvenlik sistemine sahipti. TCSEC "Turuncu Kitap" göz önünde bulundurularak tasarlanmıştır ve mükemmel olmasa da, oldukça iyi tasarlanmış ve uygulanmış olduğunu düşünüyorum.

  • Windows NT en başından itibaren "çok kullanıcılı" idi (ancak aynı sunucudan aynı anda bir grafik kullanıcı arabirimi alan birden çok kullanıcının işlevselliği, Windows NT 3.51 döneminde Citrix WinFrame'e kadar gerçekleşmedi). MMU ve CPU'nun temel donanım işlevlerine dayanan adres alanı koruması olan bir çekirdek / kullanıcı modu ayrımı vardır. (Bunun çok "Unix-y" olduğunu söyleyebilirim, ama aslında çok "VMS-y".)

  • NTFS'deki dosya sistemi izin modeli oldukça "zengindir" ve "kalıtım" a göre bazı siğiller olsa da (veya eksikliğidir - bkz . NTFS Taşıma / Kopyalama tasarım hatası nasıl çözülür ? ) Unix tarzı işletim sistemleri de benzer işlevler uyguladı. (Novell NetWare, Microsoft'u bu konuda yumruk attı, ancak MULTICS'in her ikisini de yendiğini düşünüyorum ...> smile <)

  • Servis kontrol yöneticisi, başlatma / durdurma / duraklatma servis programlarına erişimi kontrol etmek için izin sistemi de dahil olmak üzere çok iyi tasarlanmış ve çeşitli "init.d" script "mimarileri" (daha çok "centilmenlik anlaşmaları gibi) tasarımında çok daha sağlam ") birçok Linux dağıtımında.

  • Yönetici nesne yöneticisi (bkz. http://en.wikipedia.org/wiki/Object_Manager_(Windows) ), / proc dosya sistemine ve / dev dosya sistemine çok benzeyen ve dosya sistemine çok benzeyen ve çok daha zengin bir ACL modeline sahiptir. herhangi bir Linux dağıtımında / proc veya / dev için farkında olduğum herhangi bir izin modeli.

  • Kayıt defterinin esaslarını ve dezavantajlarını tartışabilmemize rağmen, kayıt defterindeki anahtarlar için izin modeli, / etc dizinindeki dosyalarda izinleri ayarlama modelinden çok daha ayrıntılıdır. (Özellikle Rob Short'un yorumlarını yeniden seviyorum: "Kodun Arkasında" röportajındaki kayıt: Başlangıçta http://channel9.msdn.com/shows/Behind+The+Code/Rob-Short-Operating-System-Evolution Rob, Windows kayıt defterinin arkasındaki ana kişilerden biriydi ve bence olmadığını söyledi her şey nasıl sonuçlandıysa mutlaka mutlu olur)

Linux'un kendisi sadece bir çekirdek, Windows ise bir Linux dağıtımına daha benzer. Elma ve portakalları böyle karşılaştırmak için karşılaştırıyorsunuz. Windows'un bazı Linux tabanlı sistemlerden "ayrılması" daha zor olduğunu kabul ediyorum. Bazı Linux dağıtımları ise çok fazla "bok" açılmış olarak gelir. Windows'un çeşitli "gömülü" lezzetlerinin ortaya çıkmasıyla (genel halka olmasa da), Windows'un davranışlarında Microsoft varsayılanlarından farklı olan (çeşitli hizmetler hariç, varsayılan izinleri değiştirme vb.) "Dağıtımları" oluşturmak mümkündür. .

Windows'un çeşitli sürümlerinde, kötü seçilmiş varsayılanlar, yetkisiz kullanıcıların ayrıcalık kazanmasına izin veren hatalar, hizmet reddi saldırıları vb. Payları vardı. Unix çekirdekleri (ve varsayılan olarak root olarak çalışan çok sayıda Unix tabanlı uygulama) aynı sorunlar. Microsoft, Windows 2000'den beri uygulamaları bölümlendirmeyi, en az ayrıcalıkla programları çalıştırmayı ve işletim sisteminin gereksiz özelliklerini kaldırmayı kolaylaştırmak için inanılmaz bir iş çıkardı.

Kısacası, söylediğim gibi, güvenlik açısından, ihtiyaçlarınız için belirli bir işletim sisteminin özel yapılandırmasının, kullandığınız işletim sistemi türünden daha önemli olduğu. Windows ve Linux dağıtımları, güvenlik özellikleri açısından çok benzer özelliklere sahiptir. Her iki işletim sistemine de katı güvenlik teknikleri (en az ayrıcalık, isteğe bağlı bileşenlerin sınırlı kurulumu, kriptografik olarak güvenli kimlik doğrulama mekanizmaları vb.) Uygulayabilirsiniz. Aslında İster yapmak ya da ne önemli olan bu yılların Ben-.


benim gibi pencerelerin ve linux sistemlerinin nasıl inşa edildiğine dair hiçbir fikri olmayan biri için, gönderiniz inanılmaz derecede bilgilendiriciydi
echoblaze

Kabul. Güzel nokta.
Kyle Hodgson

1
+1 - Evde bir Linux kullanıcısıyım ve çoğunlukla işyerinde Windows güvenlik uzmanıyım. Yapılandırma kendi başına işletim sisteminden çok daha önemlidir ve kesinlikle Linux dağıtımlarını Windows ile karşılaştırmanız yeterlidir, sadece 'Linux' ve çekirdek olarak değil.
romandas

3
Yavaş alkış +1
chickeninabiscuit

Windows dünyasına gerçekten uzun zamandır zarar veren bir şey (şimdi çoğunlukla tarih olsa bile), çok uzun bir süre için yerel yönetici olmanız gerektiğinden, * nix dünyasında o makinede sudoer olun. Sorun açıkça bir şey yerel bir yönetici tarafından koştu om çoğu makine makine ile her şeyi yapabilirdi. Her zaman köklü değil, gerektiğinde sudo / su yapmak iyi bilinen bir uygulama olmasaydı linux / unix için eşit bir tehdit olurdu. Sanırım gerçekten bir windows sorunu değildi ama bir yazılım ve UAC ile çoğunlukla düzeltildi.
Fredrik

16

Bahsetilmeyen bir diğer şey, Windows güvenliğinin Linux'tan çok daha opak olmasıdır.

Örneğin, birkaç metin dosyasına bakabilir ve web sunucumun tam olarak ne çalıştığını görebilirim. IIS? Çok değil - konfigürasyonun sonuçlarını GUI aracıyla görebilirsiniz, ancak gizli ayarlar var. Ardından, dosyalardaki ACL'leri incelemek için farklı bir araç seti kullanmanız gerekir.

Windows dünyasındaki çoğu programla aynıdır - kayıt defteri ve ACL'ler arasında çalışma zamanı ortamını neyin etkilediğini tam olarak anlamak çok zordur.


11

Bu dosya izinleri karşılaştırmasını bilmiyorum ... UNIX / Linux yöneticisi olduğumda, NT4, UNIX / Linux geleneksel '777' stil izinlerinden çok daha ayrıntılı dosya ACL'lerine sahipti. İzinler elbette her şey değildir ve modern Linux dağıtımlarının varsayılan olarak uygulanmamış olsalar bile en azından ince taneli ACL'leri kullanılabilir hale getirdiğinden eminim. Benim görüşüme göre, sudo ve kök kavramları UNIX'te her zaman var olmuş olsa da, Windows bu kavramları sürekli olarak eklemiştir ve muhtemelen şu an eşittir.

Benim kendi yorumum, Linux çekirdek kodu ve sürücülerinin ve yardımcı programlarının birçoğunun açık olması nedeniyle - muhtemelen çok daha kapsamlı bir şekilde inceleniyor ve bir bilgisayar korsanının yararlanabileceği uzaktan güvenlik açıklarına yol açabilecek kodlama hataları için çok daha sık düzeltiliyor. Teori, kafamda, Linux'un bir şirkete ait olmadığı için, güvenlik hedefini bir şirketin yapabileceğinden daha kapsamlı bir şekilde keşfedebileceği yönünde. İşletmeler para kazanmalıdır; açık kaynak gruplarında ise bu kısıtlama yoktur.

Bir Linux sistemine girmek ve tüm pencereleme sistemini, RPC artalan süreçlerini vb. Kapatmak çok daha kolaydır - Linux veya BSD tabanlı bir sistemi minimum kurulu paketlerle bir veya iki açık bağlantı noktasına ve yine de alabilirsiniz çok kullanışlı bir sisteme sahipler. Bunun muhtemelen bir geliştiricinin işletim sistemi olarak UNIX mirası ile ilgisi vardır; her şey modüler olacak şekilde inşa edildi, aşırı birbirine bağlı değil. Bu, ilgili olmayan şeyleri kolayca kaldırabileceğiniz çok daha yapılandırılabilir bir sisteme yol açar. Ben Windows sunucularını bu şekilde sertleştirmek kadar kolay olduğunu sanmıyorum.

OpenBSD grubu bu konsepti aşırıya taşımıştır. Programın bir numaralı amacı, olası güvenlik kusurları için her kod satırını gözden geçirmektir. Kanıt pudingde, ayrıntılara neredeyse fanatik olan (saygıyla kelimeyi kullanıyorum) dikkat nedeniyle yıllar boyunca OpenBSD için inanılmaz derecede düşük sayıda güvenlik açığı bulundu.

Şirketler, harika yazılımlar üretirken (MSSQL, Exchange, Windows Server 2003 kitabımda hepsi harika), sadece farklı hedefleri var.


5
Evet; Windows ACL'leri, ACL'ler olmadan Linux / Unix'ten daha hassastır (çoğu modern sürümde ACL kullanma seçenekleri vardır). Önemli fark, insanların Windows'ta Yönetici olarak oturum açma eğiliminde olmasıdır - bu, şirket tarafından sağlanan XP dizüstü bilgisayarlarda hala standart kurulumdur - Linux / Unix'teki insanlar ise çoğu işlemi kök olarak yapmazlar. Bu, varsayılan olarak Windows ile karşılaştırıldığında Linux / Unix'te yapılabilecek hasarı sınırlar. Birisi tüm zaman boyunca root olarak çalışırsa, tüm bahisler kapalıdır (er ya da geç pişmanlık duyan ve pişman olan bir kaza olması dışında).
Jonathan Leffler

"Sudo ve kök kavramlarının her zaman UNIX'te olduğu ve sadece Windows'a geldiği çok doğru." Neden bahsediyorsun? Windows NT, Unix kadar eski değil, ancak Windows NT, 1992'de piyasaya sürüldüğünden beri "tasarlanmış" çok makul bir güvenliğe sahip. Birçok Windows yöneticisinin "sınırlı kullanıcı" hesaplarıyla kullanıcıları dağıtmaması talihsiz bir durumdur ( başından beri olması gerekirdi), ancak bu işletim sistemine zarar vermemeliydi.
Evan Anderson

Sunucu açısından bakıldığında. Ancak tipik bir Windows kullanıcısının Vista'ya kadar oldukça rahat bir ortama sahip olması için Yönetici erişimine ihtiyacı vardı. Vista'nın "sağ tıklama, yönetici olarak çalıştırma" işlevini sudo ile karşılaştırılabilir olarak görüyorum.
Kyle Hodgson

3
Tamamen katılmıyorum. Sınırlı kullanıcı hesapları ile Windows NT 4.0 beri binlerce masaüstü depoyed ettik. "Sudo" ile biraz benzer olan "RunAs", Windows 2000'den beri işletim sisteminde ("sağ tıklama, Farklı Çalıştır işlevselliği"). Kullanıcı hesabı kontrolünün aptalca bir özellik olduğunu ve işletim sistemine dahil edilmemesi gerektiğini söyleyeceğim. Microsoft, geliştiricileri emmeyen (yani "Yönetici" hakları gerektiren) yazılımlar üzerinde çalışmaya teşvik ederken daha zor ve acı verici hale getirmek yerine "Yönetici" olarak çalıştırmayı "daha güvenli" yaparak yanlış bir şey yaptı.
Evan Anderson

2
Müşteri sitelerimdeki Vista kullanıcıları, sınırlı kullanıcı hesabı olarak çalıştıkları için UAC'yi asla görmezler. UAC'yi yalnızca "Yönetici" olarak çalıştırıyorsanız görürsünüz. UAC'yi grup ilkesi ile devre dışı bırakabilirsiniz, ancak bunu yapmanız gerekmez.
Evan Anderson

9

Bence, yeterince iyi yapılandırılmışsa Linux tabanlı sistemler Windows sistemlerinden daha güvenlidir. Sebeplerden bazıları:

  1. Şeffaflık ve çok sayıda basit ağ aracı: Örneğin, Linux yöneticisinin kabukta "iptables -L -n" yazarak mevcut güvenlik duvarı yapılandırmasını görmesi çok kolaydır. Diğer Linux makinelerinden "nmap" komutunu çalıştırarak hangi bağlantı noktalarının makinede açık olduğunu da görebilirsiniz. Bu, yaşamı çok daha kolay hale getirir, çünkü hangi portların erişilebilir ve hangi adreslerden vb.

  2. Tek bir yerde metin günlük dosyaları: Tek bir konumda "/ var / log" metin tabanlı günlük dosyalarını yedeklemek ve analiz etmek kolaydır. Ayrıca bu günlük dosyalarını izleyebilen ve size önemli satırları e-posta ile gönderebilen logwatch gibi araçlar da işleri kolaylaştırır. Günlük dosyalarını analiz etmek ve ilgilendiğimiz bilgileri bulmak için kendi araçlarımızı bile yazabiliriz. Günlüklerin aynı sunucuda bulunmasını istemiyorsak günlükler uzak syslog sunucusuna bile aktarılabilir.

  3. Virüsler hakkında endişelenmeyin: Linux'ta virüslerin daha az olup olmadığı, çünkü Linux tabanlı sistemler daha azdır VEYA tüm kullanıcılar Linux'u sevdiği veya Linux daha güvenli olduğu için. Nedeni önemli değil. Sonunda Linux daha az virüs tehdidine sahipse, Linux hakkında iyi bir şeydir. Şahsen insanların aynı makineye iki adet anti-virüs, anti-spyware ve anti-adware kurduğunu gördüm. Tüm bu koruma araçları çok fazla CPU ve bellek tüketir.

  4. Birçok programlama dili desteği: Linux'ta kod yazmak çok kolaydır. C, C ++, Python, Perl, Java, vb. Ek paket yüklemeye gerek kalmadan çalışır. (Bu, DVD'de gelen Fedora gibi büyük bir dağıtım yüklemeniz durumunda.) Kodlama ile tekrarlayan görevleri gerçekleştirebileceğimiz için güvenliği arttırır. Yani hata yaparsanız ve bir sorun varsa tüm hesaplarda olur ve tespit edilmesi ve düzeltilmesi kolay olur. El ile çok sayıda hesap / dizin üzerinde aynı değişiklikleri yapmak zorunda kalsaydık, bir ya da ikide hata yapabiliriz ve bu tür hataları bulmak uzun zaman alabilir. Ayrıca hataları düzeltebilir ve kod kullanarak basit hatalar arayabiliriz. Tüm yapılandırma dosyaları, kullanıcı bilgi dosyaları, günlük dosyaları vb. Metin içerdiğinden, elde etmek istediğimiz her şeyi kodlamak çok kolaydır ve aynı şeyleri yapmanın birçok yolu vardır.

  5. Açık kaynak kodu: Muhtemelen birçok kişi kodu gördüğü için, bazı casus yazılımların / reklam yazılımlarının Linux ile gelen uygulamaların bir parçası olması çok nadirdir. Güvenlik bazı servisler için çok önemliyse kaynak kodunu görebilir ve nasıl çalıştığını görebilirsiniz. Nasıl çalıştığını tam olarak biliyorsanız, sınırlamaları ve ne zaman kırılacağını biliyorsunuz. Aslında, man sayfalarında, paket web sitesinde ve yapılandırma dosyalarındaki yorumlarda belgelenebilecek iyi bilinen güvenlik sınırlamaları varsa. Geliştiricilerin, aracımızı böyle bir senaryoda kullanırsanız riskli olduğunu söylerken kaybedecek hiçbir şeyleri yoktur. Yazılım satan kuruluşlar için yazılım sınırlamaları söylemek kazançlı olmayabilir ve yazılımlarının kötü görünmesini sağlayabilir ve satış / karı azaltabilir.

  6. Serbest ve birlikte çalışabilirlik: Her ne kadar bu güvenlikle ilgili olmasa da. Maliyetlerin önemli olduğu Üniversite için, Linux tabanlı sistemler Windows tabanlı sistemlerden çok daha ekonomiktir ve işletim sistemi yükledikten sonra yükleyeceğimiz ek yazılımların yanı sıra işletim sistemi için lisans satın almaya gerek yoktur. Birlikte çalışabilirlik söz konusu olduğunda, Linux makinelerinden diğer işletim sistemlerine bağlanabilir ve dosyaları kolayca paylaşabiliriz. Linux'ta FAT, NTFS, HFSPLUS dahil birçok dosya sistemi kurabiliriz. Bir şeyleri ftp, http, ssh, samba, nfs, vb. Kullanarak paylaşabiliriz ve tüm bunlar tek bir komutla yüklenebilir veya kurulabilir. Diğer işletim sistemleri genellikle bir şeyleri paylaşma seçeneği sunar.

Ancak düzgün yapılandırılmazsa Linux tabanlı sistemler daha fazla soruna neden olabilir. Birçok kullanıcı aynı anda makineye giriş yapabilir ve neredeyse her şeyi kabuktan yapabilir. Güvenlik duvarının düzgün yapılandırılmaması durumunda arka kapıları, truva atlarını bırakmak çok kolaydır. Saldırgan izlerini gizlemek için günlük dosyasını silebilir veya kurcalayabilir. Saldırgan, saldırganın kabuk erişimine sahip olduktan sonra tüm düzenleyiciler, derleyiciler, hata ayıklayıcılar hazır olduğu için saldırıya uğrayan makineyi kodlayabilir. Tüm sunucular ftp, http, güvenli bağlantı noktalarında değil (1-1024) kullanıcı hesabından çalıştırılabilir. Böylece saldırgan, X sunucusu gibi görünmesi için http sunucu kodunu indirebilir, derleyebilir ve 6000 numaralı bağlantı noktasında http sunucusunu çalıştırabilir.

Bu nedenle, Linux sistemleri daha güvenli olduğundan, yöneticinin ne yaptığını bilmesi veya en azından bazı yeni değişiklikler yapmadan önce man sayfalarındaki ve belgelerdeki bilgileri aramak için rahatsız etmesi.


6

Sunucu güvenliği yalnızca işletim sisteminden daha fazlasıdır. Sunucu güvenliğinde daha büyük bir faktör sunucuyu çalıştıran kişi olduğunu ve ne kadar dikkatli şeyler kilitleme hakkında olmuştur söyleyebilirim.

Bununla birlikte, eğer üniversite bir Linux mağazasıysa, Windows sunucu güvenliğinde hangi verileri bulduğunuza bakılmaksızın bir Windows Server kullanmanıza izin vermezler. .Net çerçevesini kullanmak istiyorsanız Mono (www.mono-project.com) kullanarak araştırma yapacağım.


6

transparan

  • Çalıştırın ps auxfve hangi hizmetlerin, hangi hesap altında çalıştığını biliyorsunuz.
  • Çalıştırın netstat -lnpve hangi programların hangi TCP bağlantı noktalarının açıldığını biliyorsunuz.
  • Çalıştırın iptables -Lve güvenlik duvarınızın hangi kurallara sahip olduğunu biliyorsunuz.
  • İşlemi etkinleştirmek için çalıştırın straceveya lsofinceleyin.
  • Çalıştırın ls -lahveya tree -pugtam bir klasörün sahipliğini ve izinlerini tam olarak bilirsiniz.
  • Günlükler içeridedir /var/logve basit bir "dosyalar arasında arama" ile denetlenebilir.
  • Gizli ayar yok. Her şey insan tarafından okunabilir /etc. Metin dosyaları arasında arama yapmak veya bunları arşivlemek veya sürüm denetimi (subversion / git) uygulamak gerçekten çok kolaydır.

Açık izin sistemi

  • Temelde yalnızca dosya izinleri vardır. "Normal ifade anahtarlarında izin", devralınan ACL izinleri, işlem başına güvenlik bağlamları veya diğer gizli özellikler yoktur.
  • İzin bitleri basittir:
    • Dosyalara yaz = dosya içeriğini düzenle
    • Klasörlere yazma = dosya düğümleri oluştur / yeniden adlandır / kaldır.
    • Yapışkan = sadece kendi dosyalarını düzenle.
    • Yürütme veya setuid izinlerine sahip dosyalar vurgulanır ( lsrenk modunda).
  • Basit bir "tüm dosyaları bul", kullanıcının hangi izinlere sahip olduğunu gösterir.
  • Ek olarak, ACL'ler yalnızca bunun gerekli olduğu yerlerde kullanılabilir.
  • Kullanıcı hesaplarında varsayılan olarak dosya yazmak için yalnızca iki yer vardır: ve $HOMEve /tmp.

Gelişmiş güvenlik seçenekleri

  • SELinux / AppArmor, süreçleri yalnızca belirli bir dosya grubuna erişmeye kısıtlayabilir (dosya izinlerinin üstünde)
  • Chroot hapishanesi, yöneticilerin diğerlerinden tamamen izole olan programı çalıştırmasını sağlar. Sanki boş bir sabit sürücüye yüklenmiş gibi, sadece gerçekten ihtiyaç duyduğu dosyalarla.
  • İle sudokullanıcılara ve işlemlere yalnızca birkaç yönetim komutunu çalıştırma izni verilebilir.

Giriş ve ayrıcalık yükseltme için tek puan

  • Bir süreç kendi başına daha fazla ayrıcalık kazanamaz. Bunun tek yolu, başka bir "SetUID Root" programı çalıştırmak sudoya da önce PolicyKit'i kontrol eden bir DBus hizmeti ile bağlantı kurmaktır. Bu SetUID programları tek bir "Tüm dosyaları ara" komutuyla bulunabilir.
  • İşlemler arasındaki IPC oldukça sınırlıdır ve saldırı vektörlerini azaltır.
  • Sisteme erişim (metin konsolu, uzak masaüstü, RPC, komut çağırma kaldırma vb.) Üzerinden gerçekleşir ssh. Bu, genel / özel anahtar denetimine sahip bir SSL tüneli.

Güvenli arka plan işlemleri

  • Arka plan hizmetleri mümkün olan en kısa sürede daha düşük ayrıcalıklarla çalışır. Apache, Dovecot ve Postfix gibi hizmetler, gelen bağlantıyı mümkün olan en kısa sürede düşük ayrıcalıklı bir sürece aktarır.
  • Varsayılan olarak kilitlidir. Microsoft bu yaklaşımı şimdi Windows Server 2008'de de benimsemiştir.

İyi denetim araçları

  • Araçlar gibi nmap, ncatkolay yapmak güvenlik denetimi.
  • Arka plan hizmetleri komut satırından denetlenebilir.
  • Günlük denetim araçları yaygındır.
  • Güvenli bir servisi kodlamak daha kolaydır, çünkü modüler bir şekilde yapılabilir.
  • Çok sayıda ücretsiz İzinsiz Giriş Tespiti aracı vardır.
  • Komut satırı araçları komut dosyası olarak yazılabilecek şekilde tasarlanmıştır, böylece yöneticiler görevleri otomatikleştirebilir.

İyi güvenlik güncellemeleri

  • İşletim sisteminin her parçası güvenlik güncelleştirmeleri alır. Apache, Python veya PHP paket yöneticisi aracılığıyla kurulduğunda, güncellemeleri de alacaklar.
  • Bir güvenlik güncellemesinin düzelttiklerinde çok açıklık vardır, böylece bunun sizi nasıl etkilediğini anlayabilirsiniz.
  • Yazılım paketleri aynı kütüphaneleri paylaşır. Ayrı kopyalar göndermezler, etrafında sömürülebilir sürümler bırakırlar.
  • Salı günleri Yama yok, hackerlar vahşi doğada hatayı zaten sömürüyorken bir düzeltme bekliyor.
  • Geliştiricilerin güvenlik güncellemelerini test etmesi ve dağıtması kolaydır.
  • Güncelleme yapmak için hiçbir yeniden başlatma planlanmamıştır. Varolan işlemler diskteki eski verilere erişmeye devam ederken dosyalar değiştirilebilir. Daha sonra hangi hizmetlerin yeniden başlatılması ( lsof | grep =) gerektiğini öğrenebilirsiniz .
  • Tüm işletim sistemi yeniden yüklenmeden yükseltilebilir!

Burada bahsedilen her şey veya Red Hat, Debian, openSUSE veya Ubuntu gibi tüm ana Linux dağıtımları teslim edilir.


5

Linux başından beri çok kullanıcılı bir sistem olarak tasarlandığından, Windows'dan çok daha güçlü bir izin sistemine sahiptir. Ayrıca yönetici haklarıyla (root erişimi) çalışmamanız için tasarlanmıştır, bu nedenle tüm programlar haklara ihtiyaç duymayacak şekilde tasarlanmıştır. Bu, hesabınızın güvenliğinin ihlal edilmesi durumunda tüm sistemin olmadığı anlamına gelir.

Bunun bir kısmı muhtemelen Linux çalıştıran insanların (genellikle konuştukları), daha teknik oldukları ve dolayısıyla bilgisayarların saldırıya uğramasına neden olan aptalca hatalar yapma olasılıklarının düşük olmasından kaynaklanmaktadır.


2
Çok kullanıcılı ve tek kullanıcılı işletim sistemleri arasındaki bazı farklılıklar: jdurrett.ba.ttu.edu/courseware/opsys/os01a.htm
moshen

7
Tamam, 12 yıldan uzun süredir Linux ve daha uzun süredir UNIX benzeri işletim sistemleri kullanıyorum. Linux'u sevdiğim kadarıyla, Windows'dan daha güçlü bir izin sistemine sahip olduğunu söyleyemezsiniz . Erken Windows sürümlerinden daha iyi bir güvenlik modeline sahiptir (yani, her zaman yönetici olmayın), ancak WinNT ve daha sonra, iyi bir etki için kullanılmayan güçlü bir izin sistemine sahiptir. Son Linux sürümleri daha güçlü olan selinux'a sahiptir, ancak bu nispeten yeni (çok güçlü ise) bir eklemedir.
Eddie

5

'Güvenlik kontrol ile ilgilidir'

Benim açımdan, Windows'da Linux'tan daha az kontrole sahipsiniz. Pencereleri sertleştirmek ... daha zor :). Herhangi bir araç, wielder'ın becerilerine bağlı olsa da, aşağıdakileri göz önünde bulundururum:

  • Windows daha yüksek riskli güvenlik açıklarına ve daha otomatik sömürüye (virüs, botnet) sahiptir
  • Windows yöneticileri paranoyaktır (veya izinsiz girme korkusu nedeniyle) ve bir çeşit sertleştirme yapmışlardır.
  • Linux sistem yöneticileri bazen işletim sistemi güvenliğine çok fazla güvenir ve sertleşmeyi unutur
  • Saldırıya uğradığında, bir Linux sisteminde bir Windows sistemindekinden daha fazlasını yapabilirsiniz, çünkü daha güçlü komut satırı araçları vardır

Bu yüzden Windows üzerinden Linux'u tercih etsem de, varsayılan yüklemelere güvenmemeniz gerektiğini düşünüyorum.


3

Önceki yazıların çoğu saldırıya odaklanmıştı ve bu noktayı kapsayan iyi bir iş yapıldı, sorunuzun noktalarından biri virüsler hakkındaydı. Linux dağıtımlarının virüslerle ilgili daha az sorunlarının en büyük nedenleri, Linux ve Mac'in bir araya getirilenden daha fazla Pencere kutusu olmasıdır. Virüs yazarları paranın karşılığını almak istiyorlar, bu yüzden Windows için yazıyorlar.

Tüm sistemler saldırı ve enfekte olabilir. Size farklı söyleyen herkes, eğitmenleriniz ya da diğerleri, ya aptallar olsun, sizi satmak için Utah'ta okyanus ön mülküne sahipler.


3

Bugünlerde TÜM yazılımlardaki güvenlik düzeltmelerinden yola çıkarak, sorunun yazılım değil, Windows çalıştıran masaüstlerinin sayısı olduğunu düşünüyorum. Botnet oluşturmak için hedef budur. Linux gerçekten masaüstü alanında büyürse, o zaman daha fazla saldırıya uğrayacaktır. Bence Mac OSX bunu zaten görüyor.


2

Linux ve OpenBSD'nin pencerelerden daha güvenli olma potansiyeline sahip olmasının çok önemli bir nedeni var. Bu, işletim sisteminin ağ saldırılarına karşı kendini güvenlik duvarına bağlayabilmesidir.

Windows'ta, gelen ağ paketleri, bir Windows güvenlik duvarının paketi reddedebilmesinden çok önce işletim sisteminin önemli bölümlerine maruz kalmıştır. Linux'ta, IPTable'ları veya PF'yi kullanarak OpenBSD'de, yeni bir ağ paketi alma işletim sisteminde hileli paketleri çok daha erken yalıtabilirsiniz - pozlamayı azaltır.

Ancak, bir bağlantı noktasını açıp üzerinde bir hizmet çalıştırdığınızda - yani ağa bağlı bir bilgisayarı kullanışlı hale getirdikten sonra - yalnızca bu hizmeti çalıştıran kod kadar güvende olursunuz.


2

İşletim sistemi olarak diğerinden daha güvenli bir şey yoktur. Her şey sistemi yöneten insanların bilgisine bağlıdır.

Yıllar boyunca bazı son derece yetenekli * nix yöneticileriyle tanıştım ve çalıştım ve son derece güvenli bir * nix sunucusu yapılandırabilirler. Ancak bunları bir Windows ana bilgisayarının önüne yapıştırın ve makineyi nasıl kilitleyeceklerine dair hiçbir fikirleri olmazdı. Aynı şekilde başka bir yol gidiyor, bir Windows ana bilgisayar güvenliğini sağlama hakkında iyi bir miktar biliyorum, ama beni bir * nix kutusunun önüne koydu ve ne yaptığım hakkında hiçbir fikrim yok.

Her iki işletim sistemi de diğerlerinden daha fazla veya daha az güvenli değildir. Tabii platformların geçmişi hakkında konuşabiliriz ve zaman içinde daha güvenli olanı tartışmak için kullanabiliriz, ancak 10 yıl öncesinden * nix OS'lerden bahsetmiyoruz ve Windows NT 4'ü üretim ortamlarına yerleştiriyoruz . Modern işletim sistemlerinden (veya en azından öyle olmalıyız) ve hangilerinin daha iyi güvence altına alınabileceğinden bahsediyoruz.

Birisinin Windows güvenlik duvarına gelen paketlerle ilgili olarak işletim sisteminin Linux güvenlik duvarından daha fazla bölümüne dokunan bir şey söylediğini gördüm. Ona göre, ana bilgisayar üzerinde çalışan bir yazılım güvenlik duvarına kim güvenir? Bitiş noktası / ön uç güvenlik duvarları bunun içindir. Ağı korumak için. Bir hizmeti çalıştıran ana bilgisayar bir hizmet maruz. Bu hizmetin tehlikeye atılmamasını sağlamak ana bilgisayar işidir. Diğer paketlerin Internet'ten ana bilgisayarlara diğer hizmetleri almasını önlemek için önündeki ağ cihazları işi.

Ağ uygun şekilde güvenli hale getirildikten sonra, her şey ana bilgisayarda çalışan uygulamanın ne kadar güvenli olduğuna bağlıdır. Bu uygulamada, kullanılabilecek arabellek taşmaları var mı? Maruz kalan uygulama içinde işletim sistemine ulaşmak ve bir şekilde daha yüksek düzeyde izin almanın herhangi bir yolu var mı? Daha iyi değilse, güvenli bir uygulamadır. Eğer varsa, ortaya çıkması gereken bir probleminiz var.

Birisi veri merkezlerinde bir cehalet işareti olan başka bir işletim sistemini düşünmezse (tüm bir Linux mağazasının yanı sıra tüm bir Windows mağazasına gider). Her iki işletim sistemi de orada kullanır ve kullanılmalıdır. İkisi de diğerinden daha iyi ya da daha kötü değildir. (Ve evet, üretim hizmetlerimizi işleyen çevremizde birkaç Linux makinemiz var.)


1
Her şeyin yöneticilerin bilgisine bağlı olduğu kanaatindeyim. Eğer bir kaleyi çadırdan saldırıya karşı savunmanız istenirse, bir kale ile biraz avantajınız olduğunu düşünüyorum. Burada karşılaştırılan ikisi Linux ve Windows ise, birden fazla kullanıcıyı yönetmek ve aynı anda sisteme erişmek için iki farklı felsefe ile tasarlanmıştır. İyi yöneticiler eksikliklerin giderilmesine yardımcı olsa da, bir başlangıç ​​noktası olarak birinden diğerine avantajlar vardır.
Bart Silverstrim

1

AdamB'nin söylediği gibi özel gereksinimleriniz için linux sunucularını kullanmak için üniversitenizi lanetlemeye gerek yoktur, Mono'yu kullanın (www.mono-project.com). OS ile ilgilenen profesör, linux'u tercih eder, hatta herhangi bir OS meraklısı bile kitapların pratikte nasıl çalıştığını basit meraklar için linux'u tercih eder.

  • Şimdi güvenlikle ilgili olarak,

linux artık daha akıllı bir Erişim kontrolü sistemi olan DAC'yi (isteğe bağlı erişim kontrolü) takip ediyor. Diğer cevaplarda belirtildiği gibi, evet linux çok kullanıcılı bir geri dönüştü ve bu nedenle erişim kontrol sistemi diğerlerinden daha iyi oldu.

Ancak, bahsettiğiniz güvenlik, sunucu güvenliği sorunlarının tamamına, işletim sistemi sorunu kadar değil. yani Güvenlik Duvarları Erişim Kontrol Listeleri, yönlendirici vs ... Güncellemeler ücretsiz, ömür boyu. çok açık olduğu için çok test edildi.

güvenlik dışında, ekonomik uygulanabilirlik linux'u çok az olan sunucular için en iyi seçenek haline getirir, ancak uygulamaların hizmetleri çalıştırması veya barındırması beklenir. Ve bu uygulamalar onlara çok iyi taşındı. Örnek - Apache.

Bence bu sadece güvenlik değildi, ama diğer üniversitelerin çoğunu sizin gibi sunucularda linux'u tercih eden diğer faktörler.


1

Burada birçok harika yanıt olsa da, sadece güvenli bir işletim sistemi diye bir şey olmadığını da eklemek istiyorum.

Bir insan 'güvenli' bir platform oluşturduysa, o zaman başka bir insan o platformda zamanla delikler bulabilir.

Evan'ın ilk iki cümlesinin OS güvenliğini en iyi şekilde özetlediğini kabul ediyorum:

Bir işletim sisteminin "güvenli" olduğunu düşünmüyorum. Bir işletim sisteminin belirli bir yapılandırması saldırılara karşı belirli bir direnç derecesine sahiptir.

GNU / Linux, BSD sistemleri (Serbest / Açık / Net), Microsoft, Windows, Mac OSX, Symbian, PalmOS, Cisco IOS, AIX, QNX, Solaris, z / OS veya herhangi birini karşılaştırmamızın önemi yoktur. TV, MP3 çalar, mikrodalga fırın vb. gibi şeyleri çalıştıran diğer "işletim sistemleri"

Bunların her biri, kararlı bir birey tarafından sömürülebilen bütünün bir parçasına sahiptir.

Bu nedenle, çoğu satıcı, sistemlerinin mümkün olduğunca güvenli bir yapılandırma olarak nasıl ayarlanacağına dair beyaz kağıtlara sahiptir. Bu, yüzey alanını en aza indirmek için diğer teknolojilerin kullanılması anlamına gelir.

Örneğin:

  • NAT
  • ters proxy
  • güvenlik duvarları

1
hala paramı "en az uzaktan savunmasız olma olasılığı" için openbsd'ye koyardım.
Kyle Hodgson

Ben de paramı seninkine karşı koymayacağım! DOS <= 4 hakkında konuşmadıkça (5.5'ten önce NDIS sürücüsü yok mu?)
Wayne

1

İşletim Sistemi Güvenliği'nin çerçevelerle ilgili olması, çekirdek tipi sorunlarından biraz daha fazlasıdır. Tek tek çerçevelerin her birinin uyumlu güvenlik mekanizmaları vardır. Microsoft Windows'daki çok kullanıcılı hesap belirtimi, toplu dağıtım açısından biraz daha fazla esnekliğe izin verir, ancak Linux ile izinleri ve yetkilendirme giriş ve çıkışlarını kontrol edebilirsiniz.

.NET Framework güvenlik düzeyi temel olarak grup ilkeniz, powershell ve netsh konsol ayarlarınızla ilgilidir. Bunun nedeni, bellekte dinamik erişim istekleri olan düşük seviye erişim parametrelerinde çekirdek telemetrisidir. Linux çerçeveleri genellikle benzer bir dikkat gerektirir, ancak bunun temel olarak dili yapılandırırken belirttiğiniz bayraklarla ilgilidir. Düzgün yapılandırıldığında Linux'un Microsoft Windows yapılandırılmış güvenliğinden daha güvenli olduğu kanıtlanmıştır. "İyi" bir yapılandırma düzeyinde olsa da; araçlar doğrudan IIS'nizde kayabilir ve belirli bir GUID kullanarak doğrudan hizmetlerinize dalabilir. Genel Linux daha fazla boyut kontrolüne izin verir

Önemli noktalar:

inodes and NTFS index primers and permissions in Windows (including registry) 
    are easier to sift through than an EXT hardnened Linux 

protocol traversal within Linux for exception handling are easier to find 
    than a solid configured Windows Firewall. 

cache indexes within ASP.NET are easier to violate than cache management    
    technologies which are well handled within GNU and C++ libraries
    they are practically built for parallel systems now. 

SQL parse queries, have been proven over and over again; MySQL is faster. 
    than MSSQL, though Oracle has been pushing the belt. Transactional 
    security is proven to be more secure on Windows, but for performance 
    and sheer flexibility shows that MySQL should be used or something 
    along the lines of a iSQL or NSQL (not SQLAB like Berkeley SQL which 
    MSSQL is based on) 

Gateway permissions, Linux has an amazing ability to fondle packets and tiny 
    little things that Windows can only put into sorting bins. This being 
    said, if you are running a Windows network, you have more network auditing 
    than a Linux network because the packages are easier to apply walls to 
    than DLL files and protocol requests. 

Surface layer GUI, .NET Framework offers strict field definitions; while Linux 
    allows intense PCRE and other Regular Expressions. 

Hükümet Yapıları:

OWASP proves over and over again that it is harder to crack a hardened Linux Server 
than it is to crack a hardened Windows Server. Why? Because the firewall and Group 
Policy does not allow as far a tuned key for aspects of the closed source framework 
within ASP.NET; Linux will let you choose a color for every letter on your command. 

NIST Shows over time that SQL management permissions are harder to parse with Windows 
while Linux PCRE makes it harder to bypass SQL queries whether it be within a GUI or 
a Web Interface. 

Carnagie Mellon shows that ASP.NET can hold higher regulations because it is built 
in a more module based context which employs the use of MVC frameworks and can potentially 
have a higher restriction. Meanwhile PHP and Java show that they are incredibly robust 
with their Obfuscation and encapsulation methodologies.

Kişisel Görüşler:

Her İşletim Sistemi, kutudan geri kalandan daha güvenli olma potansiyeline sahiptir. Linux veya Windows ile daha yüksek bir güvenlikle çalışan çerçevelerin ham karşılaştırması yapıldığında, web güvenliğinin ana bölümünün en uyumlu olmayan ancak verimli çerçeveyi kullandığını söylemeliyim. Bu şekilde yerel sabit sürücü erişim izinlerine ve kitaplık tanıtıcılarına takmak çok daha zorlaşır. Bu şekilde, işletim sisteminizin üzerinde kaynaklı bir kaseye sahip olursunuz. Evan'ın NTFS ve / proc veya / dev izinleriyle söylediği gibi. Konuşamayan bir şey kullanırsanız; çatlamak daha zor.

Web geliştirmeden öğrendiğim şey, çerçevenizi asla hafife almamanızdır. .NET, SQL Server kümeleri için paylaşılan birleştirilmiş birimler ve denetim mekanizmaları yapma iznine sahiptir; Apache Source, Linux kullanan İşletim Sistemleri için de aynı şeyi yapabilir. Bu, oldukça iyi bir soru olsa da, Linux bireysel en boy kontrolü ve çok dilli kısıtlamalar ve izleme konusunda daha fazla güvenlik sağlar; Windows, üst düzey mantık hata ayıklama arabirimi ile kapsamlı denetim ve günlük kaydı gücüne sahiptir. Her ikisi de karşılaştırılabilir, nihayetinde "ne kadar iyi kilitliyorsun" ve "kaç tane çanlar ve ıslık var?" çerçeve içinde. Apache'nin ek güvenlik artırımları daha fazladır;

Şu anda Linux veya Windows üzerinde PHP'yi karşılaştırırken, bir Linux İşletim Sisteminde kullanabileceğiniz daha fazla uzantı olduğu oldukça açıktır; Windows, PHP üzerinde farklı bir izin yönetimi düzeyine sahiptir ve bu da dizinleri ve dosya erişimini yönetmeyi zorlaştırır. Örneğin Apache içinde XAMPP, LAMPP veya WAMP içinde, güvenlik duvarı üzerindeki kısıtlamalarının ihlal edilmesi daha kolay olduğu için web tarayıcınızla aynı tünel kurallarını paylaştığı için Windows'un biraz daha az güvenli olduğunu hissediyorum. Öte yandan Linux, uygulama havuzlarını ve taklit edilmesi çok daha karmaşık olan paket seviyesi güvenlik mekanizmalarını kullanabilir. Windows, ağı daha güvenli hale getirmek için işletim sisteminin tüm yönlerini kullanmanızı gerektirir.

En son SEC_ATL karışımlarına sahip ASP.NET içeren Windows'ta IIS (Windows Server'da değil Microsoft Server'da) da çok güvenli olabilir.

Sadece Apache tek başına, daha yüksek ve daha düşük seviye sürücü, SMIME, kodek ve paket seviyesi güvenlik sağlamak için Linux ile çalıştırmak isteyebilirsiniz. Windows, aksi takdirde binlerce sunucunun çalıştırılması söz konusu olduğunda trafiğinizi istediğinizden biraz daha fazla tıkayan üst üste binen güvenlik mekanizmaları yüklemenizi gerektirir.

Linux ile çekirdek ne kadar ince ve net güvenlik için o kadar iyi olur (Apache'de NSLUG ile kaynaşmak gibi).

Windows ile Powershell modüllerini programlamayı ve ASP.NET çerçeveniz için ek kaplama güvenliğini programlamayı ve grup politikanızı USGS'ye yapılandırmayı seviyorsunuz çünkü çoğu zaman Linux'un otomatik olarak reddedeceği ve düşünmeyeceği trafiği kapatmak için gerçekten gerekli hakkında.

Aynı derecede güçlü olabilirler. Kutunun dışında, Linux'un canlı dağıtımı, Sihirbazla ayarlanan yapılandırılmamış bir Microsoft Windows Server'dan daha güçlü olacaktır.

Zamanla, Linux güvenlik oyununda Windows'u geçecek. Debian 3 sunucuları bugün hala Microsoft Server 2008 R2'den daha güçlüdür ve çekirdek yeniden yapılandırılmadan aynı teknolojileri neleri destekleyebileceklerini tahmin edin. Debian hala sigara içebilir ve bunu kendi gözlerimle gördüm.

Eminim daha önce de söylendiği gibi. Birlikte çalıştığınız personele ve detaylara dikkat edin. Büyük bir sunucu ağında çalışmak her zaman en büyük farkı yaratır.


0

Ağırlıklı olarak, açık kaynak kodlu yazılımların yaygın kullanımı nedeniyle Linux'un daha güvenli bir seçim olduğuna inanıyorum.

Kolaylık, "topluluk" bir yere balık bir şey eklenirse fark edeceği fikrinden gelir (diyelim ki, openSSH aniden parolalarla eve telefon etmeye başlarsa), uzun süre yapışmazdı.

Ancak yukarıdaki diğerlerinin zaten söylediklerini yeterince tekrarlayamıyorum: güvenlik büyük ölçüde yapılandırmaya bağlıdır: güvenlik duvarı, boş bir root parolası ve sshd'de PermitRootLogin yoksa;


0

Kısa cevap: başlangıçta, UNIX güvenli olacak şekilde tasarlanmıştır; Windows basit olacak şekilde tasarlanmıştır. Şimdi, UNIX'in torunları kullanıcıları için daha basit gibi davranacaklar; Windows daha güvenli gibi davranıyor.

Henüz tanışmadılar


2
Bah! Windows NT, ilk tasarımında Unix'ten daha fazla güvenlik öngörüldü. Unix, sonradan düşünülen bir güvenlik olarak daha sonra civatalandı. Modern Unix benzeri işletim sistemleri (tamamen yeni bir kod tabanı olduğundan gerçekten "Unix" işletim sistemi olmayan Linux gibi) orijinal Unix'ten büyük ölçüde gelişti, ancak Windows NT başlangıçtan itibaren ABD DoD "Turuncu Kitap" güvenlik gereksinimlerini karşılar.
Evan Anderson

0

Windows'un önceki sürümlerinde aynı adres alanında çalışan uygulamalar vardı, bu nedenle işaretçileri birbirinden geçebiliyorlardı. Ayrıca kooperatif çoklu görevlerine de güveniyorlardı ve bazen işbirliği yapmıyorlardı.

Linux / Unix'in çok erken sürümlerinde bile uygulamalar arasında ve O / S ile uygulama katmanı arasında bölümleme vardı. Görev dilimleme, her zaman ideal olmasa da, en azından adil idi.

Bu nedenle, daha yüksek kullanılabilirliğe ihtiyaç duyan daha sağlam sistemler için Unix'in (veya Linux'un) mirası.

Bütün bunlar bugün hala geçerli mi? Bu başka bir soru.


Tabii ki değil. Windows'un Linux topluluğundan aldığı olumsuz basının çoğu, doğrudan bu önceki sürümleri hedef alıyor ve işlerin devam ettiği gerçeğini dikkate almıyor. Coop m / t kullanmak için Windows'un son sürümü 3.1 ve kalbindeki DOS'u atan Windows'un son sürümü ME'ydi.
Maximus Minimus

0

Artık NT, daha önce eksik olan yerlerin çoğunda Unix'e yetiştiğine göre, Dosya izinleri ve bellek koruması artık çok büyük farklılıklar değil.

Ancak. Unix sistemlerinde, tüm cihazlara tüm erişim, güvenliğin kolayca yönetilebileceği dosyalardan geçer. Örneğin, X kullanıcısının hala Y kullanıcısına izin verirken Windows'ta ses kartına erişmesini nasıl engelleyeceğinizi biliyor musunuz? Unix'te bu tür şeyler kolaydır.

b. Dizin yapısı çok daha aklı başında. (Örneğin, bir kullanıcı uygulamasının yalnızca ana klasörünüze yazma erişimine sahip olması gerekir.) Ancak bu, birkaç yıl içinde pencerelerde de gelişmiştir.

d. Bu bir biggie: SELinux (ve Güvenilir Solaris ve Mac OS'nin "Emniyet Kemeri" korumalı alan özelliği). Bu NDAC (İsteğe Bağlı Olmayan Erişim Kontrolü) olarak bilinir. Bu özelliklerle bir OS dağıtımı çalıştırıyorsanız, aynı anda devam eden iki güvenlik katmanı vardır, Unix'in her zaman sahip olduğu normal DAC (izinler sistemi) ve modern Windows sürümleri - ve bunun üzerine SELinux ve benzeri sistemlerin uyguladığı "uygulama güvenlik duvarı". Örneğin, Apache web sunucusunun / tmp dosyasına yazmasına ve / var / www ve / etc / apache'den okumaya izin verildiğini belirten bir politika ayarlayabilirsiniz. Diğer tüm disk erişimine izin verilmeyecek olursa olsun/ izinler. Benzer şekilde, yalnızca 80 numaralı bağlantı noktasından gelen bağlantıları kabul edebileceğini ve giden bağlantı yapamayacağını belirtebilirsiniz. Daha sonra, birisinin çok kötü bir şey yapmasına izin verecek bir hata olsa bile ve apache kök olarak çalışsa bile, sorun olmaz - politika bunu önler. Bu, (çok küçük) bir hız cezası gerektirir ve olağandışı bir yapılandırma kullanıyorsanız bir acı olabilir, ancak normal durumda güvenlik düzeyinizi hem eski stil Unix hem de Windows üzerinde büyük miktarda artırabilir.

e. Katmanlar - Unix sistemleri, değiştirilebilen daha birçok farklı katman ve hizmetten oluşur. Bu, doğruluk ve güvenlik için ayrı ayrı analiz edilebileceği, değiştirilebileceği vb. Anlamına gelir. Bunların neredeyse tamamı için yeniden başlatmaya gerek yoktur. Bu, sunucu tipi sistemlerde büyük bir artıdır. Ayrıca, bir Unix sisteminde ihtiyacınız olmayan şeyleri devre dışı bırakmak (ve kaldırmak) daha kolaydır. Örneğin, bir web sunucusu kutusunda neden GUI çalıştırıyorsunuz? Saldırı yüzeyini arttırır ve RAM alır.

f. Windows NT'nin sıfırdan güvenlik için tasarlandığını söyleyenler için ... bu doğru, çekirdek başlangıçtan itibaren gelişmiş güvenlik ve çok kullanıcılı özelliklerle tasarlandı, ancak iki ana sorun var: 1. Microsoft'un güvenlikle ilgili kötü performansı İşletim sistemi bir bütün olarak, birçok uzlaşma anlamına gelen eski Windows uygulamalarıyla uyumluluk sağlayacak şekilde tasarlanmıştır. Unix her zaman çok kullanıcılıdır ve bu nedenle güvenlik uygulandığında uygulamaların büyük bir sürprizi yoktur - bu da daha az uzlaşma demektir.


Windows NT'de "aygıt dosyalarına" güvenlik erişimi, yönetici nesne yöneticisine uygulanan ACL'ler aracılığıyla yapılır. Dosya sistemiyle kabaca aynı ACL modeline sahiptir. Yanıt: "a" noktanız: Microsoft geliştirme yönergelerine uygun logo'lu uygulamaların, kullanıcının ana dizininin dışında da yazma erişimine gerek yoktur. re: "b": Windows'ta sınırlı MAC işlevselliği olduğunu kabul edeceğim. Vista'ya eklenen bütünlük düzeyleri bir MAC biçimidir. "Gelişmiş güvenlik duvarı" (Vista'da da eklenmiştir), giden trafiği bu şekilde yapılandırmayı seçerseniz tanımladığınız şekilde sınırlandırabilir.
Evan Anderson

re: "e": Prensip olarak, daha az yazılımın daha az arıza şansı anlamına geldiğini kabul ediyorum. GUI'si olmayan dahili Windows yapıları vardır, ancak Microsoft bunları serbest bırakmamayı seçmiştir. re: "f": 3. taraf geliştiriciler, Windows'da Microsoft'tan daha akıllı varsayılan güvenlik ilkeleri ayarlamak gibi bir sorun daha olmuştur. Şahsen, Microsoft'un kötü davranış gösteren uygulamalar konusunda daha zor olması gerektiğini düşünüyorum, ancak Müşterilerinin uygulamalarının çalıştığından emin olmak için ücretsiz ve açık kaynaklı işletim sistemlerinin geliştiricilerinden farklı bir "alanda" yaşıyorlar.
Evan Anderson

re: "Bir bütün olarak işletim sistemi ... uyumluluk için tasarlanmış ..." Win32 bir çekirdek alt sistemidir - NT değildir. Microsoft, Win32 alt sistemi, GUI'si olmayan ve "Interix" POSIX çekirdek alt sistemi ile önyüklenmiş bir Windows NT "dağıtımı" oluşturmak isterse (veya başka birine izin verirse). Bir NT OS'deki neredeyse tüm kullanıcı arayüzü Win32 tabanlıdır, ancak çekirdek Win32 olmayan bir ortamı mükemmel şekilde destekleyebilir.
Evan Anderson

0

Linux tabanlı sistemlerin genellikle Windows sistemlerinden daha güvenli kabul edilmesinin birkaç nedeni vardır.

Biri sahibinin becerisidir. Best Buy veya Wal-mart'a (burada ABD'de) girip çok fazla düşünmeden bir bilgisayar satın alırsanız, Microsoft Windows çalışacaktır. Bu, hiçbir fikri olmayan insanlar tarafından çalıştırılan çok sayıda Windows sisteminin olduğu anlamına gelir. Neredeyse hiç kimse kazara bir Linux bilgisayarı satın almadığından (en azından Microsoft, netbooklara karşı saldırıya geçtiği için), çoğu Linux kullanıcısı ya bilgisayarlar hakkında bir şey biliyor ya da bilgisayarlarını yapan biri tarafından kurulmuş. Bu, ne yaptığını bilmeyen insanlara sahip olduğunuz tüm ortamlar için geçerlidir; Windows kullanmayanlar ve farklı işletim sistemleri çalıştıranlar.

Biri saldırgan sayısıdır. Microsoft Windows, kötü yönetilen tüm makineler nedeniyle çok daha çekici bir hedef. Çok sayıda yüksek değerli Linux hedefi vardır, ancak genellikle iyi yönetilirler (birçok yüksek değerli Windows hedefi ile birlikte). Makul bir yaklaşım için, kimse genel olarak Linux bilgisayarları hedeflemez.

Birincisi kültür. Herhangi bir Unix / Linux ortamında, root ve kullanıcı hesapları arasında açık bir ayrım vardır ve neredeyse tüm durumlarda insanlar root olmaları gerekmediğinde kullanıcı hesaplarında çalışır. Deneyimime göre, bu fark Windows ortamlarında o kadar güçlü değil, her kullanıcının normalde bir ayrıcalıkla ilişkilendirilmiş bir hesabı olması. Şu anda iş bilgisayarımdayım, burada bir hesabım, bir yönetici hesabım var. Yaptığım her şey yüksek ayrıcalıklara sahip bir hesap tarafından yapılıyor. Linux kutusuna eve gittiğimde, sınırlı ayrıcalıklar hesabında neredeyse her şeyi yapacağım ve gerektiğinde tırmandım. Eşim, iş yerinde bilgisayarında iki hesap almak için çok zorlanmak zorundaydı, biri normal yönetici hesabı ve bir sınırlı ayrıcalık hesabı, böylece düzenli kullanıcıların yazdıklarını çalıştırma ayrıcalıklarına sahip olup olmadığını görebiliyordu.

Bunlardan biri geriye dönük uyumluluktur. Unix güvenli bir işletim sistemi olarak başlamasa da, daha erken bir zamanda güvenlik aldı. Linux programları, kök işlevleri gerçekleştirmedikçe root olarak çalışmayı gerektirmez. Windows, diğer yandan, yönetici hesapları gerektiren çok sayıda program çalıştırır, çünkü geliştiricilerin çalıştırdığı ve test ettiği budur (yukarıdaki paragrafa bakın) ve bu geliştiriciler genellikle güvenlik bilincine sahip değildi ve bu iyi çalışıyor. Microsoft'un UAC ile çözmeye çalıştığı büyük sorun budur. Bunun özellikle iyi bir çözüm olduğunu düşünmüyorum, ancak dürüst olmak gerekirse Microsoft burada iyi bir çözüm bulamayacak (burada geriye dönük uyumluluğu bırakmak iyi bir çözüm olduğunu düşünmüyorum).

Bunlar, güvenlik modellerinin avantajlarından ve Microsoft'un büyük güvenlik sorunlarını aldığından bağımsız olarak, büyük ölçekli güvenlik sorunlarının çoğunun Microsoft sistemlerinde olacağı gerçeğine yol açar. Kullanılabilirlik sezgiselliği sayesinde, insanların daha fazla Microsoft güvenlik problemini düşünebilmeleri kararlarını önyargılar.

Bunlar bence geçerli nedenlerdir. Bilgili bir yönetici tarafından çalıştırıldığında Windows veya Linux dağıtımının diğerinden daha savunmasız olduğunu bilmediğim için gerçek işletim sistemi güvenliğine dokunmadım. Linux açık kaynak avantajına sahiptir, çünkü herkes hataları bulabilir ve düzeltebilirken, Microsoft daha iyi çalışabilecek veya çalışmayabilecek güvenlik uygulamaları geliştirmiştir. (Gerçekten güvenli bir işletim sistemi çalıştırmak istersem, güvenli olmaya çalışan açık kaynaklı bir işletim sistemi olan OpenBSD'yi seçerdim.) Her iki işletim sisteminin de iyi izin sistemleri vardır (benim tercihim Unix'tir, ancak diğer makul insanlar aynı fikirde değildir).

Elbette, işletim sistemlerini daha az güvenli bulmanın kötü nedenleri vardır. Bazı insanların en sevdiği işletim sistemi vardır ve diğerlerini kötü kullanma şansı yoktur. Bazı insanlar Microsoft veya Richard Stallman'ı veya başka bir kişi veya kuruluşu sevmez ve ilgili işletim sistemlerini kötüleştirir. Bazı insanlar, Microsoft'un yıllar boyunca değiştiğini fark etmedi, çünkü Microsoft'un güvenliği gerçekten umursamaması ve Windows gerçekten de Linux'tan daha az güvenli değildi.


-1

Atalet dışında gerçek bir neden yoktur. Yüzeyde geçerli görünen, ancak - biraz kazdığınızda - sadece Windows 3.1 veya 95/98 için geçerli olan Windows'a (ve sadece güvenlik tarafında değil) karşı argümanlar yapan bir çok Linux savunucusu gördüm.

Daha önce söyledim, ancak Windows daha fazla yamaya / benzerine sahip olsa da, bunlar tanımlanan güvenlik açıkları için düzeltmelerdir . Ve düzeltilmiş olanlar değil endişelenmen gereken , değil mi? Açık kaynak olmanın da kendinden daha güvenli olduğuna inanmıyorum. Kendi yamalarınızı yuvarlamak bir ev kullanıcısı için iyi olabilir, ancak kurumsal bir kullanıcı veya yönetici her zaman çeşitli uygulamalarla çalıştığı (ve tamamen test edildiği) ve işin kırılmayacağı onaylanan Real Thing'i isteyecektir. bir sonraki çekirdek güncellemesi. Aynı şey FOSS topluluğundan yapılan düzeltmeler için de geçerlidir.

Yani, kitabımda, atalet, önyargı ve UNIX kültürüne alternatiflerin dışlanması için gömülmüş bir karışım.


-2

Linux / Unix'teki işlemler, kullanıcı atandıktan sonra ayrıcalıklarını değiştiremez, pencerelerdeki işlemler, kullanıcı ayrıcalıklarını değiştirebilir ve orta işlem sırasında kullanıcılarını değiştirebilir.

Pencerelerin neden linux / unix'ten daha az güvenli olmasının özü budur.


2
Bu, yalnızca işlemin çalıştığı bağlamın "İşletim Sisteminin Bir Parçası Olarak Harekete Geç" (SE_TCB PRIVILEGE) haklarına sahip olması durumunda geçerlidir. Bir işlemi SE_TCB PRIVILEGE olmayan bir güvenlik bağlamıyla başlatırsanız, işlem başka bir kullanıcıyı rasgele "taklit edemez" (başka bir güvenlik bağlamını varsaymak için NT-ism) olamaz. SE_TCB PRIVILEGE ile iyi bir nedenden ötürü bir uygulama çalıştırıyorsanız, hak ettiğiniz şeyi IMO alırsınız.
Evan Anderson

Bu nedenle, güvenlik, sistem genelinde bir kuralın aksine bir "bağlam" tarafından uygulanır; bu nedenle, pencereler unix / linux'dan daha az güvenlidir.
Fire Crow
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.