[Gelistirici] Smash that stack harder aka Pardus 2008 C(XX)FLAGS
Ismail Dönmez
ismail at pardus.org.tr
3 Şub 2008 Paz 22:21:20 EET
At Sunday 03 February 2008 around 22:09:58 S.Çağlar Onur wrote:
> 03 Şub 2008 Paz tarihinde, Ismail Dönmez şunları yazmıştı:
> > Pardus 2008 en güvenli Pardus olsun çalışması kapsamında şu flagları
> > öneriyorum :
> >
> > -mtune=generic -march=i686 -O2 -pipe -fomit-frame-pointer
>
> Halen -O2/O3 veya Os arasında kararsızım ben :)
-Os optimizasyonları öldürür
-O3 gcc geliştiricileri tarafından bile önerilmiyor, test edilmediği için.
Sadece glibc için kullanıyoruz bunu onu da patlatıyordu daha geçen gün
düzeltildi.
> > bunlar temel optimizasyon flagleri, ek güvenlik için
> >
> > -fstack-protector
> >
> > Bu flag ile stack smashing [0] saldırıları önleniyor daha önceden
> > yazdığım ASLR özelliğine ek bir koruma sistemi. Stack protector genel
> > olarak açılınca bazı paketlerde özel olarak kapatılması gerekicek (
> > kernel kendisi kapatıyor mesela).
>
> 1.0 -fstack-protector-all ile derlenmişti ve o zamanki gcc'miz SPP
> yamalarını yanında taşıyordu, multimedia hedelerindeki sorunlar dışında (ne
> olduklarını hatırlamıyorum) bir sorun yaşadığımızı hatırlamıyorum,
Stack protector çok gelişti zaten ama Fedora -fstack-protector
kullanmış, -fstack-protector-all sadece wireshark, gaim ve birkaç başka
programda kullanılmış.
> > -D_FORTIFY_SOURCE=2
> >
> > Derleme sırasında buffer overflowlara karşı önlem alıyor. Gcc 4.3 ve
> > glibc 2.7+ ile birlikte artık C++ programlarını da destekliyor. [1]
>
> Bunu her paket için mi yapmalı yoksa SUSE'nin yaptığı gibi sadece glibc
> için mi bunu kullanmalı bilemiyorum.
Glibc ile ne alakası var şimdi anlamadım? Programları böyle derleyeceğiz ve
C++ programları da bundan yararlanıcak eskiden bu flagi görseler de gcc
birşey yapamıyordu.
> > Yorumlar/fikirler/öneriler ?
>
> Diğer dağıtımların ne yaptığı ile ilgili kesin bilgi var mı elimizde? Suse
> wiki'sinde toplantı notları arasında bir seri tartışma var şu mu olsun bu
> mu olsun diye ama kesin sonuç bulamadım (aslında çok da aramadım ne yalan
> söyleyeyim). Onları da öğrensek fena olmayacak.
Ubuntu: PIE, ASLR(sadece son çıkacak sürümde) ,stack protector default.
Fedora: Server programlarında pie , ASLR, Exec Shield, stack protector default
Suse: Stack protector (ASLR yok ondan eminim, PIE konusunda emin değilim)
Pardus için önerim: PIE, stack protector, ASLR, Exec Shield
ki bu Linux üzerinde elde edilebilecek tüm güvenliği sağlıyor son aşama
AppArmor/SELinux/Tomoyo Linux gibi en üst seviye katman.
--
Never learn by your mistakes, if you do you may never dare to try again.
Gelistirici mesaj listesiyle ilgili
daha fazla bilgi