LINUX.ORG.RU

А ларчик открывался просто.


0

0

А тем временем, пока все прогрессивное человечество отмечает первый день зимы и скорое приближение рождественских праздников, бравые парни из Red Hat и Suse kernel и security teams наконец-то разобрались в хитром экслойте, повергшим в ужас мировую общественность кощунственным взломом нескольких серверов проекта Debian. Все оказалось проще, нехороший человек воспользовался уязвимостью integer overflow в в системном вызове brk ядра Linux версий до 2.4.23, приводящей к доступу из пользовательской программы к kernel address space. Что любопытно, еще в сентябре Эндрю Мортон (Andrew Morton) указал на эту ошибку, но исправления были отложены до выхода новой версии ядра.

P.S. Любопытно то, что для Debian пакеты с исправлениями для были доступны и ранее, но apt-get update оказалось непосильной командой для администраторов, отвественных за безопасность проекта. Подробности по ссылке.

>>> Подробности

★★

Проверено: ivlad

Ответ на: комментарий от anonymous

Ну тогда почему этот патч был в ядре Fedora и RHAS/ES/WS v.3.0?
Дырку нашли гораздо раньше, но ей никто не придал особого внимания....

McMCC ★★★
()
Ответ на: комментарий от poliakov

2 poliakov: ты случаянно не с физтеха ?

anonymous
()
Ответ на: комментарий от anonymous

>proof of concept exploit tut: http://security.nnov.ru/search/news.asp?binid=3289

Бредовый какой-то proof.

То, что VMA можно сделать на всё ядро ясно уже из сообщений с debian. Это и без всякого ассемблера можно:

char mystack[4096];

void do_main (long esp) {
munmap (esp & ~(4096 - 1), 0xc0000000 - (esp & ~(4096 - 1)));
brk (0xfffff000);
}

int main () {
register long esp asm ("esp");
register long oldesp = esp;

esp = mystack+4096;

do_main(oldesp);

return 0;
}


Вопрос в том - как это проэксплуатировать.

Murr ★★
()

Кстати, а почему на серверах Debian'a не сделали noexec на домашние каталоги или откуда там эксплоит запускался?

anonymous
()

Murr, ты кажется хотел разбогатеть на ламании вин-банкоматов? Такой шанс провтыкал ! news.netcraft.com/archives/2003/11/25/nachi_worm_turned_cash_machines_into_scann ing_engines.html

anonymous
()
Ответ на: комментарий от poliakov

2poliakov

>как ты представляешь себе потом работу пользователей, на домашних директориях которых стоит noexec?

mount /home -o noexec ? Почему нет ?

sS ★★★★★
()
Ответ на: комментарий от anonymous

anonymous (*) (03.12.2003 1:43:26)

Эх
не пришел еще мой час ;)

А чего ты под anonymous пишешь? ;) iXBTшная культура не привилась?

Murr ★★
()

Я не иксбитишник. Фигли тусоваться на сайте, где ламаков рыбниковых держат.

anonymous
()
Ответ на: комментарий от Sun-ch

Пофиксили 26-го числа.

Просто после взлома серверов Debian дополнительно объявили что эту дыру уже пофиксили и чтоб народ не нервничал :)

MrKooll ★★★
()
Ответ на: комментарий от anonymous

> Кстати, а почему на серверах Debian'a не сделали noexec на домашние каталоги или откуда там эксплоит запускался?

raorn@hell:pts/7 ~ $ cd tmp
raorn@hell:pts/7 ~/tmp $ cp /bin/ls .
raorn@hell:pts/7 ~/tmp $ chmod 444 ls
raorn@hell:pts/7 ~/tmp $ ls -l ls
-r--r--r--    1 raorn    raorn       72236 Dec  3 11:41 ls
raorn@hell:pts/7 ~/tmp $ /lib/ld-linux.so.2 ./ls /
bin  boot  dev  etc  home  initrd  lib  lost+found  mnt  opt  proc  root  sbin  tmp  usr  var

raorn
()
Ответ на: комментарий от anonymous

Потомучто noexec не остановит желающего запустить програмку c партиции с noexec

anonymous
()
Ответ на: комментарий от anonymous

про noexec

2 anonymous (*) (03.12.2003 1:17:59):

> Кстати, а почему на серверах Debian'a не сделали noexec на домашние каталоги или откуда там эксплоит запускался?

Потому, что это до заднего места. [vanilla] kernel не предоставляет возможности запретить MAP_EXEC, не запретив READ_OPEN. Домашние директории, которые нельзя читать, никому не нужны.

Dselect ★★★
()
Ответ на: комментарий от raorn

можно проще: /lib/ld-2.x.x.so /home/user/proga

и никакие noexec не спасут ;)
помогут только rsbac или grsec...

Rost ★★★★★
()
Ответ на: про noexec от Dselect

Он имел ввиду монтирвать партицию домашних директорий с опцией noexec. Вроде бы работает. Или я не въезжаю?

bzImage
()
Ответ на: комментарий от anonymous

про noexec. часть 2

2 anonymous (*) (03.12.2003 13:23:35):

> Странно! Это даже в WinXP можно сделать

ACL в NT хорошие, но можно mmap'-нуть код в стек и там его исполнить. x86 suxx!

2 Rost:

> помогут только rsbac

RSBAC не запрешает исполнять код в стеке. Конечно, безобразие вида

/lib/ld.so.xxx /home/pupkin/blah

легко отсекается (с помощью RC, или ACL, или FF, или MAC, или ....) , но для полного счастья нужен еще PaX.

2 bzImage: > Он имел ввиду монтирвать партицию домашних директорий с опцией noexec. Вроде бы работает.

И я имел в виду это. Но толку с этого -- ноль. См. пример несколькими сообщениями выше...

> Или я не въезжаю?

Похоже на то.

Dselect ★★★
()
Ответ на: комментарий от anonymous

anonymous:

>Странно! Это даже в WinXP можно сделать

Что именно? Вот что точно можно делать в XP - так это менять права на файлы, владельцем которых ты являешься.

Murr ★★
()
Ответ на: комментарий от Murr

про права в NT

2 Murr:

> Что именно? Вот что точно можно делать в XP - так это менять права на файлы, владельцем которых ты являешься.

1) Отличие состоит в том, что файлы в домашней директории пользователя _не обязаны_ ему принадлежать ( и тем не менее, пользователь имеет возможность их изменять/создавать/удалять).

2) Не факт, что пользователь сможет поменять права доступа даже для тех файлов, которые ему принадлежат -- какая-нибудь политика безопасности может это запрещать, или унаследованные ACL.

Dselect ★★★
()
Ответ на: комментарий от anonymous

про язык программирования.

2 anonymous (*) (03.12.2003 16:20:06):

> Пишите на Pascal'е и не будет подобных дырок

Шагом марш на первый курс. Если не поможет -- в морг.

Dselect ★★★
()
Ответ на: комментарий от bzImage

> Он имел ввиду монтирвать партицию домашних директорий с опцией noexec.

а почему это дети лишены права компилировать и запускать свои погремушки?

dilmah ★★★★★
()

Ну да да! По-крайней мере письмо от бравых парней с Ред Хата мне пришло только сегодня, а вот про находки Debian Security я прочитал ещё вчера. Очевидно одно - встрепенулись они (бравые парни) последними.

anonymous
()
Ответ на: про права в NT от Dselect

> 1) Отличие состоит в том, что файлы в домашней директории пользователя _не обязаны_ ему принадлежать ( и тем не менее, пользователь имеет возможность их изменять/создавать/удалять).

В linux можно удалить файл, не принадлежащий тебе (нужно права на запись в директорию). Можно изменять чужой файл, если входишь в группу или есть права для others. Вот _создать_ чужой файл нельзя :) Все создают свои файлы, и имхо это разумно. Поменять владельца может root.

> 2) Не факт, что пользователь сможет поменять права доступа даже для тех файлов, которые ему принадлежат -- какая-нибудь политика безопасности может это запрещать, или унаследованные ACL.

В патченых линукс ядрах таких аклов - навалом

anonymous
()
Ответ на: про права в NT от Dselect

> Отличие состоит в том, что файлы в домашней директории пользователя _не обязаны_ ему принадлежать ( и тем не менее, пользователь имеет возможность их изменять/создавать/удалять).

И чего? В Linux файлы тоже не обязаны принадлежат владельцу их содержащей директории.

Пример совсем не в тему.

Поясняю: проблема заключается в том, что пользователь может притащить с собой программу и ее запустить. В Win всё тоже самое (то есть в этом ключе нет никакой разницы) - если тебе разрешено создавать файлы в своей директории, то никто тебе не сможет помешать прицепить к ним любые угодные тебе ACL.

>Не факт, что пользователь сможет поменять права доступа даже для тех файлов, которые ему принадлежат -- какая-нибудь политика безопасности может это запрещать,

Политики тут не при чем. Это ключевой момент в подсистеме безопасности NT - владелец всегда может поменять ACL на своих объектах.

>или унаследованные ACL.
Дык это твое личное дело - наследовать или не наследовать. Форсировать это никак нельзя.

Murr ★★
()

Да, от noexec действительно толку мало. Посмотрел grsecurity. Там есть опция trusted path execution. Пользователи из группы untrusted users имеют право исполнять программы лишь из каталогов, куда может писать только рут. Фокус с ld не работает. Будут идеи, как запустить эксплоит?

Не подскажите, почему эта опция включается при security->high с ней что какие-то проблемы?

anonymous
()

Похоже, Debian - только начало. Один из гентушных серверов rsync.gentoo.org поимели и установили руткит. Вот так вот, линуксоидам есть о чем задуматься. GENTOO LINUX SECURITY ANNOUNCEMENT 200312-01 - ---------------------------------------------------------------------------

GLSA: 200312-01 summary: rsync.gentoo.org rotation server compromised severity: normal date: 2003-12-02 CVE: None exploit: remote

DESCRIPTION:

On December 2nd at approximately 03:45 UTC, one of the servers that makes up the rsync.gentoo.org rotation was compromised via a remote exploit. At this point, we are still performing forensic analysis. However, the compromised system had both an IDS and a file integrity checker installed and we have a very detailed forensic trail of what happened once the box was breached, so weare reasonably confident that the portage tree stored on that box wasunaffected.

poliakov
()
Ответ на: комментарий от poliakov

А дайте кто-нибудь эксплоит, хочу проверить свою машинку, дюже неохота ядро менять(2.4.21 grsec)

anonymous
()

Очень похоже это сообщение на черный ПР или клевету.

И что особенно смущает, что называются хорошими именно те два дистрибутива (RH и SuSE), которые крупные корпорации активно комерциализируют. Оставляют в них минимум от свободного Linux и набивают под завязку всяким частно-собственеческим программным обеспечением (Java, реализации DCOM, закрытые библиотеки и пакеты с обычными (наглыми) лицинзионными соглашениями и т.д.)

ignat

anonymous
()
Ответ на: комментарий от anonymous

запуск exploit'-а в системе с RSBAC | grsec | SELinux

2 anonymous (*) (03.12.2003 21:31:38):

> Посмотрел grsecurity. Там есть опция trusted path execution. Пользователи из группы untrusted users имеют право исполнять программы лишь из каталогов, куда может писать только рут.

Можно на#$ать и grsec TPE, и RC.

> Фокус с ld не работает.

Естественно.

> Будут идеи, как запустить эксплоит?

Вызвать переполнение буфера в _ЛЮБОЙ_ -- не обязательно SUID!, bug-то у kernel'-а, -- программе, которую разрешено выполнять юзверю ( а в /usr/bin их более, чем достаточно ), закинуть ей в стек этот код, и исполнить его.

Dselect ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.