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!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Kernel 3.2.43, Grsecurity-2.9.1-3.2.43
1. Na [b]nie[/b]zaszyfrowanym systemie zpatchowany kernel podnosi się normalnie bez initrd. Wyskakuje tylko:
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:
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
[quote=loop]Pytanie: Czy w przypadku zaszyfrowanego systemu i grsecurity konieczne jest używanie initrd?[/quote]
W przypadku każdego zaszyfrowanego systemu (partycji root) potrzebny jest obraz initrd, inaczej nie zostaną wykryte zaszyfrowane partycje — dlatego dostajesz kernel panic.
Offline
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 [url=http://www.funtoo.org/Rootfs_over_encrypted_lvm]jeden z lepszych howto[/url], jakie widziałem ( dla Gentoo/Funtoo), do tego [url=http://forums.gentoo.org/profile.php?mode=viewprofile&u=137888]Autor[/url] jest pod ręką w razie czego. ;)
Ostatnio edytowany przez Jacekalex (2013-04-14 18:48:23)
Offline
Ok dzięki.
A na tego iceweasel'a nic nie poradzicie?
Offline
midori nie działa:
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:
epiphany-browser :error while loading shared libraries: /usr/lib/libjavascriptcoregtk-3.0.so.0: cannot make segment writable for relocation: Permission denied
Offline
Jeszcze dmesg po odpaleniu (właściwie nieodpaleniu) iceweasela:
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:
[url]http://en.wikibooks.org/wiki/Grsecurity/Application-specific_Settings#Firefox_.28or_Iceweasel_in_Debian.29[/url]
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:
[url]https://bugs.gentoo.org/show_bug.cgi?id=278698#c11[/url]
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
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)
Offline
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
31
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 00:35:50)
Offline
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ć: [url]http://hardenedgentoo.blogspot.com/search/label/mprotect[/url] 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:
# 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
[quote=uzytkownikubunt]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.[/quote]
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-1001-mprotect-strikes-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 [url=https://wiki.ubuntu.com/Security/Features]Ubuntu[/url].
EDYTA:
[quote=loop]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ć: [url]http://hardenedgentoo.blogspot.com/search/label/mprotect[/url] 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:
# 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
???[/quote]
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:
qlist -ICv gradm sys-apps/gradm-2.9.1.201301041755-r1
i chodzi.
Pozdrawiam
Ostatnio edytowany przez Jacekalex (2013-04-19 19:26:47)
Offline
[quote=Jacekalex]Skąd masz ten gradm?[/quote]
Z repo Sid'a, wersja niby ta sama co na stronie grsecurity:
root@night:/dev# apt-cache policy gradm2 gradm2: Zainstalowana: 2.9.1~201301041755-1
Spróbuję ze źródeł.
[b]EDIT:[/b]
Ze źródeł działa ok.
Ostatnio edytowany przez loop (2013-04-20 18:20:35)
Offline
32
Ostatnio edytowany przez uzytkownikubunt (2016-12-01 00:35:52)
Offline
[quote=uzytkownikubunt]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.
......[/quote]
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:
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):
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)
Offline
Time (s) | Query |
---|---|
0.00012 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00103 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.225.56.78' WHERE u.id=1 |
0.00111 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.225.56.78', 1732374189) |
0.00044 | SELECT * FROM punbb_online WHERE logged<1732373889 |
0.00060 | SELECT topic_id FROM punbb_posts WHERE id=230150 |
0.00005 | SELECT id FROM punbb_posts WHERE topic_id=23340 ORDER BY posted |
0.00082 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=23340 AND t.moved_to IS NULL |
0.00009 | SELECT search_for, replace_with FROM punbb_censoring |
0.00286 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=23340 ORDER BY p.id LIMIT 0,25 |
0.00123 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=23340 |
Total query time: 0.00839 s |