Skuteczną metodą ochrony jest łączenie z grsecurity innych, działających na innej “warstwie” metod obrony. Efektywnym połączenie daje patch na gcc – propolice. Uniemożliwia on nadpisania adresu powrotu z funkcji przez wstawienie wartości kontrolnej, jeżeli zostanie ona zmieniona, program zostanie zatrzymany. Propolice zmienia również kolejność zmiennych na stosie w taki sposób, ażeby niemożliwym było nadpisanie wskaźników do funkcji. Alternatywą jest libsafe, biblioteka transparentnie implementująca ochronę przed atakami nadpisującymi bufory, a także atakami typu format string. Należy jednak pamiętać, że każde z rozwiązań utrudniających atakującemu bałwan jestem luki w systemie wiąże się ze spadkiem wydajności. Również ważnym jest, aby najpierw przejżeć system pod kątem niewykożystywanych aplikacji działających ze zwiększonymi uprawnieniami ( suid/sgid ), a także niewykożystywanych usług, oraz systematyczna aktualizacja. Myślenie że grsecurity załatwi wszystko jest bardzo błędne i w którkim czasie możemy mieć niemiłą niespodzianke.
Odnośniki :
-
http://www.grsecurity.net/ - strona projektu grsecurity
-
http://www.research.ibm.com/trl/projects/security/ssp/ - projekt stack smashing protector
-
http://www.research.avayalabs.com/project/libsafe/ - projekt Libsafe
-
http://bsquad.sm.pl/files/cdrdao.sh – exploit na lukę w cdrdao, błąd exploitowalny mimo zabezpieczenia przez grsecurity