Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2013-04-14 16:09:15

  loop - Członek DUG

loop
Członek DUG
Zarejestrowany: 2013-02-23

Grsecurity - kilka kwestii

Kernel 3.2.43, Grsecurity-2.9.1-3.2.43

1. Na niezaszyfrowanym systemie zpatchowany kernel podnosi się normalnie bez initrd. Wyskakuje tylko:

Kod:

EXT3-fs (sda3): error: couldn't mount because of unsupported optional features (240)
EXT2-fs (sda3): error: couldn't mount because of unsupported optional features (240)

Nie wiem o co z tym chodzi, bo na sda3 jest ext4, a zarówno ext2 jak i ext3 są wkompilowane w kernel. Tak czy inaczej system wstaje i działa.

Niestety na zaszyfrowanym (cały system w szyfrowanym LVM) w przypadku braku initrd wyskakuje kernel panic:

Kod:

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block (0,0)

Identyczna konfiguracja z initrd działa bez problemu zarówno na niezaszyfrowanym jak i zaszyfrowanym systemie.
Pytanie: Czy w przypadku zaszyfrowanego systemu i grsecurity konieczne jest używanie initrd?


2. Iceweasel nie chce wstać. Odpalany z konsoli - nie wypluwa niczego, po prostu się nie włącza. Znalazłem coś o tym, że ma to jakiś związek z mprotect i javascriptem, ale nie bardzo wiem jak to obejść. Jakie jest na to rozwiązanie?

Offline

 

#2  2013-04-14 17:05:45

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Grsecurity - kilka kwestii

loop napisał(-a):

Pytanie: Czy w przypadku zaszyfrowanego systemu i grsecurity konieczne jest używanie initrd?

W przypadku każdego zaszyfrowanego systemu (partycji root) potrzebny jest obraz initrd, inaczej nie zostaną wykryte zaszyfrowane partycje — dlatego dostajesz kernel panic.

Offline

 

#3  2013-04-14 18:34:00

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Grsecurity - kilka kwestii

Szyfrowanie działa niezależnie do Grsec.
I jeśli rootfs nie jest szyfrowany, to nie potrzebuje initrd, (o ile wszystko, co potrzebne do zamontowania rootfs ma wbudowane na sztywno w jajo) jeśli tak, to też initrd nie jest niezbędny, jednak trzeba w partycji boot zrobić mini system, np na bazie busyboxa.
Ale to długa i dość skomplikowana zabawa, i jest na to kilka rożnych sposobów.

Jeśli natomiast to grsec powoduje problemy, to radzę popytać na forum grsec.

Weź najlepiej najpierw skonfiguruj szyfrowany system bez grseca, a potem dopiero weź jajo z grsec do tego systemu.

To jeden z lepszych howto, jakie widziałem ( dla Gentoo/Funtoo), do tego Autor jest pod ręką w razie czego. ;)

Ostatnio edytowany przez Jacekalex (2013-04-14 18:48:23)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#4  2013-04-14 21:23:13

  loop - Członek DUG

loop
Członek DUG
Zarejestrowany: 2013-02-23

Re: Grsecurity - kilka kwestii

Ok dzięki.
A na tego iceweasel'a nic nie poradzicie?

Offline

 

#5  2013-04-14 22:04:38

  morfik - Cenzor wirtualnego świata

morfik
Cenzor wirtualnego świata
Skąd: ze WSI
Zarejestrowany: 2011-09-15
Serwis

Re: Grsecurity - kilka kwestii

A inne przeglądarki działają?

Offline

 

#6  2013-04-14 23:35:14

  loop - Członek DUG

loop
Członek DUG
Zarejestrowany: 2013-02-23

Re: Grsecurity - kilka kwestii

midori nie działa:

Kod:

midori :error while loading shared libraries: /usr/lib/libjavascriptcoregtk-1.0.so.0: cannot make segment writable for relocation: Permission denied

epiphany nie działa:

Kod:

epiphany-browser :error while loading shared libraries: /usr/lib/libjavascriptcoregtk-3.0.so.0: cannot make segment writable for relocation: Permission denied

Offline

 

#7  2013-04-15 15:57:59

  loop - Członek DUG

loop
Członek DUG
Zarejestrowany: 2013-02-23

Re: Grsecurity - kilka kwestii

Jeszcze dmesg po odpaleniu (właściwie nieodpaleniu) iceweasela:

Kod:

PAX: execution attempt in: /usr/lib/i386-linux-gnu/libglapi.so.0.0.0, a0d61000-a0d68000 0000e000
PAX: terminating task: /usr/lib/xulrunner-10.0/xulrunner-stub(firefox-bin):4453, uid/euid: 1000/1000, PC: a0d64280, SP: b4dc828c
PAX: bytes at PC: 65 a1 a0 ff ff ff 90 90 ff a0 4c 04 00 00 66 90 65 a1 a0 ff  
PAX: bytes at SP-4: b4dc831c a2396a23 00001f00 01800002 a3a8f6a0 00000000 00000001 a3f6ca64 00000000 a3c8d540 00000001 00000000 00000001 a3e4d5a0 00000000 00000000 a0d807c0 01800001 01800002 a3a35400 a0d64280 
grsec: bruteforce prevention initiated for the next 30 minutes or until service restarted, stalling each fork 30 seconds.  Please investigate the crash report for /usr/lib/xulrunner-10.0/xulrunner-stub[firefox-bin:4453] uid/euid:1000/1000 gid/egid:1000/1000, parent /usr/lib/xulrunner-10.0/xulrunner-stub[firefox-bin:4449] uid/euid:1000/1000 gid/egid:1000/1000
grsec: denied resource overstep by requesting 4096 for RLIMIT_CORE against limit 0 for /usr/lib/xulrunner-10.0/xulrunner-stub[firefox-bin:4453] uid/euid:1000/1000 gid/egid:1000/1000, parent /usr/lib/xulrunner-10.0/xulrunner-stub[firefox-bin:4449] uid/euid:1000/1000 gid/egid:1000/1000

Tutaj co nieco na ten temat:
http://en.wikibooks.org/wiki/Grsecurity/Application … _in_Debian.29
Samo włączenie Jit'a w about:config nic nie daje.
Rozumiem, że trzeba by wyłączyć mprotect i jeszcze RANDMMAP (tylko jak?), a to by było nie wskazane ze względów bezpieczeństwa jak piszą tu:
https://bugs.gentoo.org/show_bug.cgi?id=278698#c11
Ostatecznie powyższą dyskusję kończy lakoniczny komentarz z 02.2013, że : "obecne wersje są ok". Czyli, że na Gentoo wszystko już z tym ok?
Jacekalex, Ty od Gentoo spec jesteś - jak to tam jest? - działa firefox normalnie z grsec czy nie?

Offline

 

#8  2013-04-15 16:18:37

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Grsecurity - kilka kwestii

Działa, ale przesadziłeś z PAXem - do JIT i zamkniętych sterów graficznych musisz na binarkach Iceweassela, i innych, korzystających np z gtk, wyłączyć mechanizm mprotect.
Na wiki grsecurity masz wszystko opisane.
Sznurki:
http://en.wikibooks.org/wiki/Grsecurity/Application-specific_Settings

Poza tym ja bym na desktopie z Debianem z grseciem nie szalał, do takiej zabawy mam Gentoo Hardened, który automatycznie ustawia flagi kompilatora i paxa, żeby wsio działało w systemie z grsec.

I najpierw postaw system bez mprotect, a jak już się nauczysz go używać, to mprotect włącz później.
Linux z Grsec, to nie jest normalny system, który chodzi jak zwykły.

Ostatnio edytowany przez Jacekalex (2013-04-19 18:46:49)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#9  2013-04-15 16:53:47

  loop - Członek DUG

loop
Członek DUG
Zarejestrowany: 2013-02-23

Re: Grsecurity - kilka kwestii

Dobra popróbuję, zobaczymy co z tego wyjdzie.
Tak właśnie myślę od pewnego czasu o przeprowadzce na gentoo - teraz mam dodatkową motywację :)

Offline

 

#10  2013-04-19 16:19:29

  uzytkownikubunt - Zbanowany

uzytkownikubunt
Zbanowany
Zarejestrowany: 2012-04-25

Re: Grsecurity - kilka kwestii

31

Ostatnio edytowany przez uzytkownikubunt (2016-12-01 00:35:50)

Offline

 

#11  2013-04-19 18:30:14

  loop - Członek DUG

loop
Członek DUG
Zarejestrowany: 2013-02-23

Re: Grsecurity - kilka kwestii

Ano właśnie - tym bardziej, że w przypadku iceweasela (udało mi się uruchomić) trzeba wyłączyć również randmmap. Na gentoo mprotect z firefoxem niby da się pogodzić: http://hardenedgentoo.blogspot.com/search/label/mprotect bez flasha oczywiście.

Teraz mam problem z gradm - zainstalowałem z repo i coś nie bardzo ogarniam.
Właściwie na wszystko wywala mi: Could not open /dev/grsec2.
np:

Kod:

# gradm2 -P
Could not open /dev/grsec2.
open: No such file or directory

I rzeczywiście w systemie nie ma /dev/grsec2 tylko /dev/grsec

???

Offline

 

#12  2013-04-19 18:37:35

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Grsecurity - kilka kwestii

uzytkownikubunt napisał(-a):

Wydaje mi się, że to właśnie przeglądarka stron www jest z jednej strony bardzo powszechna i atakujący może założyć, że ofiara jednak z niej korzysta, a z drugiej strony dzięki kodzie wykonywalnemu w przeglądarce (javascript) atakujący ma więcej metod obchodzenia zabezpieczeń typu ALSR itp, więc według mnie jeśli ktoś na tyle dba o bezpieczeństwo, że docelowo chce mieć linuksa z grsecurity, ale wyłącza mprotect na przeglądarce, to tak jakby ktoś obawiał się włamania do domu, kupił lepsze drzwi z 2 zamkami: bardzo dobrym i gorszym (gorszy porównywalny z tym z poprzednich drzwi), a wyjeżdżając na dłuższy czas zostawiał drzwi zamknięte tylko na ten gorszy zamek. Przeglądarka umożliwia uruchamianie normalnego kodu programu (javascript), ma do czyninia z tysiącami strony www z takim kodem, kodem w wielu przypadkach niezaufanym. Jeśli niebezpieczeństwo ma nadejść, to jest to jedna z najbardziej prawdopodobnych opcji.

Wydawanie niby słuszne, ale jest pewna granica między tym, co można użyć do zabezpieczenia, a tym, co pod takimi zabezpieczeniami ruszy.
Ani binarki firefoxa, ani flasha czy javy nie odpalisz pod mprotect, choćbyś własne kapcie zjadł.
Mprotect to jest najbardziej "mięsożerna" funkcja paxa, zasadniczo do użycia na serwerach, np Xorg pod mprotect przeważnie nie wstaje - choć zależy to od sterownika.
A tu conieco o Firefoxie z mprotect:
http://hardenedgentoo.blogspot.com/2012/02/firefox- … es-again.html

Jeśli natomiast problemem są strony z js i javą, to najlepiej na każdym Linuxie wywalić przeglądarkę do chroota z minimalnymi uprawnieniami, albo objąć ochroną systemu ACL, czy to z Grsecurity ACL czy z Selinuxa albo Apparmora.

PAX nie jest systemem ACL, dziala na zupelnie innej warstwie systemu, ma zasadniczo bronić pamięci RAM przez exploitami stosującymi atak przepełnienia bufora.
Spora czesć funkcji Paxa jest też, w mniej mięsozernej formie, w standardowym kernelu.

Stosuje je też np Ubuntu.


EDYTA:

loop napisał(-a):

Ano właśnie - tym bardziej, że w przypadku iceweasela (udało mi się uruchomić) trzeba wyłączyć również randmmap. Na gentoo mprotect z firefoxem niby da się pogodzić: http://hardenedgentoo.blogspot.com/search/label/mprotect bez flasha oczywiście.

Teraz mam problem z gradm - zainstalowałem z repo i coś nie bardzo ogarniam.
Właściwie na wszystko wywala mi: Could not open /dev/grsec2.
np:

Kod:

# gradm2 -P
Could not open /dev/grsec2.
open: No such file or directory

I rzeczywiście w systemie nie ma /dev/grsec2 tylko /dev/grsec

???

Skąd masz ten gradm?

Lepiej skompiluj najnowszą wersję Gradm ze strony grsec, i zakonotuj sobie, że Debian w zakresie Grsecurity nie oferuje praktycznie żadnego wsparcia, natomiast Grsecurity, to trochę za duża ingerencja w system, zeby bez żadnego  wsparcia dało się prosto i wygodnie używać.

W Gentoo mam:

Kod:

qlist -ICv gradm
sys-apps/gradm-2.9.1.201301041755-r1

i chodzi.

Pozdrawiam

Ostatnio edytowany przez Jacekalex (2013-04-19 19:26:47)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#13  2013-04-19 18:53:54

  loop - Członek DUG

loop
Członek DUG
Zarejestrowany: 2013-02-23

Re: Grsecurity - kilka kwestii

Jacekalex napisał(-a):

Skąd masz ten gradm?

Z repo Sid'a, wersja niby ta sama co na stronie grsecurity:

Kod:

root@night:/dev# apt-cache policy gradm2
gradm2:
  Zainstalowana: 2.9.1~201301041755-1

Spróbuję ze źródeł.

EDIT:
Ze źródeł działa ok.

Ostatnio edytowany przez loop (2013-04-20 18:20:35)

Offline

 

#14  2013-04-20 23:00:07

  uzytkownikubunt - Zbanowany

uzytkownikubunt
Zbanowany
Zarejestrowany: 2012-04-25

Re: Grsecurity - kilka kwestii

32

Ostatnio edytowany przez uzytkownikubunt (2016-12-01 00:35:52)

Offline

 

#15  2013-04-21 04:35:14

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Grsecurity - kilka kwestii

uzytkownikubunt napisał(-a):

Mprotect to funkcja, które jest mięsożerna, gdyż znacząco podnosi bezpieczeństwo.  Dlatego właśnie jej wyłączenie na tak podatnym na ataki miejscu w systemie wydaje mi się strzałem w stopę, gdyż użytkownik wiele czasu poświęci wtedy na przygotowanie systemu do swoich potrzeb, a tylko odrobinę zwiększy swoje bezpieczeństwo. Jak dla mnie jest to zwyczajnie nieołacalne.
......

Od razu widać, że tematu Grsecurity zbyt dobrze nie znasz z autopsji, tylko co najwyżej z wikipedii i innych opisów na necie.
Co prawda zależy to w jakimś stopniu  od stosowanych sterowników, ale srodowiska graficznego przy włączonym mprotect praktycznie nie da się podnieść, jezeli dla Xorga nie zdejmiesz mprotect z binarek.
Tak samo binarka Firefoxa, nawet, jak chodzi na nouveau czy innym otwartym sterze, i można go podniesć na mprotect (z Nvidią czy Ati na sterze binarnym niewykonalne), to ani flash ani java z mprotect nie wstanie, i to żadna java, nawet skompilowana lokalnie Icedtea, nie wspominajac o Oracle.
Jedynym sposobem, zeby używać wtyczke, to wyłączenie mprotect z plugin-containera, podobnie, jak z Opery i Chrome, te z mprotect nie wstają za Chiny ludowe.
Poza tym Grsecurity nie zdejmuje z kernela fabrycznych mechanizmów ochronnych, ale przy mechaniźmie mprotect dodaje drugą linię obrony przed exploitami.

To świetnie widać w tych wynikach:

Kod:

paxtest blackhat
PaXtest - Copyright(c) 2003,2004 by Peter Busser <peter@adamantix.org>
Released under the GNU Public Licence version 2 or later

Writing output to paxtest.log
It may take a while for the tests to complete
Test results:
PaXtest - Copyright(c) 2003,2004 by Peter Busser <peter@adamantix.org>
Released under the GNU Public Licence version 2 or later

Mode: blackhat
Linux localhost 3.8.8-gr1 #2 SMP PREEMPT Thu Apr 18 18:17:16 CEST 2013 x86_64 Intel(R) Core(TM)2 Duo CPU E6750 @ 2.66GHz GenuineIntel GNU/Linux

Executable anonymous mapping             : Killed
Executable bss                           : Killed
Executable data                          : Killed
Executable heap                          : Killed
Executable stack                         : Killed
Executable shared library bss            : Killed
Executable shared library data           : Killed
Executable anonymous mapping (mprotect)  : Killed
Executable bss (mprotect)                : Killed
Executable data (mprotect)               : Killed
Executable heap (mprotect)               : Killed
Executable stack (mprotect)              : Killed
Executable shared library bss (mprotect) : Killed
Executable shared library data (mprotect): Killed
Writable text segments                   : Killed
Anonymous mapping randomisation test     : 33 bits (guessed)
Heap randomisation test (ET_EXEC)        : 23 bits (guessed)
Heap randomisation test (PIE)            : 40 bits (guessed)
Main executable randomisation (ET_EXEC)  : No randomisation
Main executable randomisation (PIE)      : 32 bits (guessed)
Shared library randomisation test        : 33 bits (guessed)
Stack randomisation test (SEGMEXEC)      : 40 bits (guessed)
Stack randomisation test (PAGEEXEC)      : 40 bits (guessed)
Return to function (strcpy)              : paxtest: return address contains a NULL byte.
Return to function (memcpy)              : Killed
Return to function (strcpy, PIE)         : paxtest: return address contains a NULL byte.
Return to function (memcpy, PIE)         : Killed

Po wyłaczeniu mprotect (pax_softmode):

Kod:

paxtest blackhat
PaXtest - Copyright(c) 2003,2004 by Peter Busser <peter@adamantix.org>
....
Executable anonymous mapping             : Killed
Executable bss                           : Killed
Executable data                          : Killed
Executable heap                          : Killed
Executable stack                         : Killed
Executable shared library bss            : Killed
Executable shared library data           : Killed
Executable anonymous mapping (mprotect)  : Vulnerable
Executable bss (mprotect)                : Vulnerable
Executable data (mprotect)               : Vulnerable
Executable heap (mprotect)               : Vulnerable
Executable stack (mprotect)              : Vulnerable
Executable shared library bss (mprotect) : Vulnerable
Executable shared library data (mprotect): Vulnerable
Writable text segments                   : Vulnerable
Anonymous mapping randomisation test     : 28 bits (guessed)
Heap randomisation test (ET_EXEC)        : No randomisation
Heap randomisation test (PIE)            : 28 bits (guessed)
Main executable randomisation (ET_EXEC)  : No randomisation
Main executable randomisation (PIE)      : 28 bits (guessed)
Shared library randomisation test        : 28 bits (guessed)
Stack randomisation test (SEGMEXEC)      : 40 bits (guessed)
Stack randomisation test (PAGEEXEC)      : 40 bits (guessed)
Return to function (strcpy)              : paxtest: return address contains a NULL byte.
Return to function (memcpy)              : Killed
Return to function (strcpy, PIE)         : paxtest: return address contains a NULL byte.
Return to function (memcpy, PIE)         : Killed

Także system z grsec może chodzić i chodzi jak normalny Linux, tylko jest trochę więcej zabawy z konfiguracją, i oczywiście lepiej skompilować cały system kompilatorem z wtyczkami Paxa, wtedy poziom kompatybilności binarek z kernelem jest wyraźnie  większy.
Między innymi dlatego Grsecurity na desktop, to jest zabawa z Gentoo/Funtoo Hardened lub klonami, żadna inna dystrybucja Linuxa nie wspiera na poważnie Grsec i Paxa w kontekście desktopa, a praktycznie nie zauważyłem też żadnej liczącej się, która wspiera użycie Grsec na serwerach.

Sznurki:
http://www.gentoo.org/proj/pl/hardened/pax-quickstart.xml
http://www.gentoo.org/proj/pl/hardened/grsecurity2.xml?style=printable
http://grsecurity.net/gracldoc.htm

Pozdrawiam
;-)

Ostatnio edytowany przez Jacekalex (2013-04-21 04:44:43)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)