[Gelistirici] COMAR ve yetkiler

Gürer Özen gurer at pardus.org.tr
25 Mar 2007 Paz 19:15:49 EEST


On Sunday 25 March 2007 18:33:28 Faik Uygur wrote:

> TASMA'dan KDE'nin kendi içerisinde şifre sorup sormaması ayarlanabiliyor.
> Bunu bir şekilde COMAR sistemine uyarlamamız acaba mümkün olabilir mi? Ya
> da ne kadar doğru olur?

Yanlış olur. Bütün bu root kullanıcı kavramı yanlış zaten. Biz sistem bozulup 
elle müdahale falan gerekmediği durumlarda kullanıcının root kimliğine 
geçmesini istemiyoruz normal olarak. Bunun ana sebebi güvenlik değil hataları 
önlemek, root olarak kendi ayağını vurmak çok kolay.

Güvenlik tarafından bakınca, kurumsal müşteri adaylarımızın bizden 
istedikleri, ve mesela amerikanın DoD orange book vb gibi örneklerden 
gördüğüm askeri kurumların konuyla ilgili temel istekleri, mesela network'ü 
açıp kapayabilen, ama kullanıcıların dosyalarını okuyamayan kullanıcılar 
oluşturabilmek üzerine kurulu. Yani yetkilerin ince olarak dağıtılabilmesi 
gerekiyor.

Windows bunu gayet güzel sağlıyor, şuraya bir bakın mesela:
http://www.wellesley.edu/Computing/Win2k/w2kgroups.html
şu meşhur "power user" dan bahsediyor :)

Çomarı tasarlarken temel gereklerden biri bunu sağlayabilmekti. Çomarı bir 
nevi sudo-on-steroids gibi düşünebilirsiniz. Çomar kendisinden istenen 
işleri, istekte bulunan kişiye o iş için yetki verilmişse yapıyor.

Root parolası ile işlem yapmaktaki birinci yanlış, her yetki gerektiren işlem 
(mesela internete bağlanmak bile root yetkisi istiyor) yapmak isteyene root 
parolası dağıtırsan hiç bi güvenlik önleminin anlamı kalmaz.

İkinci yanlış ise, asıl yetki gerektiren işlem ufacık bir şeyken, koca bir gui 
programını ve kullandığı kitaplıkların tümünü boşu boşuna root kimliği 
altında çalıştırmak. Bunların içinde mesela dosya silmeyle ilgili bir bug 
olsa, gidip /usr yi silebilir olduğu gibi, ne gerek var buna.

Biz çomar modelinde işlemlerin gerçekten yetki gerektiren, sistem 
yapılandırmasına ait kısımlarını tanımlıyoruz. Yetki verilmiş kişiler de 
bunları kullanabiliyor.

Diyebileceğin bir şey, mesela ben kullanıcıya yetki vermedim, mesela 
kardeşimin kullanıcısı, ama kardeşim abi bana şunu kursana dedi bilgisayarı 
kullanırken, ben de onun çalışmasını kapamadan kurmak istiyorum. E bunun yolu 
da belli, fast user switching, bas menüye, kullanıcı değiştiri seç, kendi 
admin kullanıcında (root demiyorum bak, hiç bir durumda root olmana gerek 
olmamalı) işini yap çık. Yeni bir x açmak istemiyor musun? Program 
çalıştırdan tasmayı seç, alttaki opsiyonları açıp kullanıcı girişini (kendi 
admin kullanıcın gene) yap, işini bitir çık.

Çomar yetki değerlendirmeyi karşısındaki kişiye göre yapıyor. 
Bunu /etc/comar/security-policy.xml içinden istediğiniz gibi ayarlamak 
mümkün. Kişi değiştirmekle ilgili her türlü destek de masaüstü ortamı içinde 
var zaten.

Özetlersek:
1. Root olarak çalışan şeylerin minimum olmasını istiyoruz.
2. Mekanizmalar uzun uzun düşünülerek tasarlandı, çünkü girmek istediğimiz 
corporate desktop pazarının ihtiyaçlarını klasik Linux çözümleri 
karşılamıyor.
3. Kullanıcı değiştirmeyle ilgili çözümler halihazırda mevcut ve diğer 
sorunların da çözümü bu.

Sonuncu madde ile ilgili olarak:

Mesela netten bir binary çektin bunu güvenle çalıştırmak istiyorsun. E o zaman 
yapacağın şey zaten hemen bu iş için hazırlanmış sıfır yetkili bir 
kullanıcıya geçip onla bunu yapmak. Trojanları önlemenin başka yolu yok 
çünkü. Öyle bir program istediği gibi paket kurabilir senin yetkin varsa 
zaten. Parola mı mecburi tuttun? kendini autostart a falan ekler, bir dahaki 
sefer normal bir iş için parola girmeni bekleyip, orada yapar işini, vb bin 
türlü yolu var.

Binlerce parola/onay vb sorusu sormakla güvenlik gelmiyor, sadece günlük hayat 
zorlaşıyor.

Vakit bulunca daha detaylı yazacağım güvenlik modelimizi, uygulamada aksayan 
taraflar var, mesela programlar yetki olmadığı durumları düzgün raporlamıyor 
vb, ama gerekler analizi ve mimari kısmında bir eksiklik yada yanlışlık 
göremiyorum.



Gelistirici mesaj listesiyle ilgili daha fazla bilgi