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 оказалось непосильной командой для администраторов, отвественных за безопасность проекта. Подробности по ссылке.

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


[#] Ответ на: Re: А ларчик открывался просто. от anonymous 02.12.2003 16:52:36  

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

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

*** ()
[#]  

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

так а эксплоит то где? дайте ссылку

anonymous ()
[#] Ответ на: Re: Re: А ларчик открывался просто. от anonymous 02.12.2003 19:07:10  

Re:

>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;
}


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

** ()
[#]  

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

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

anonymous ()
[#]  

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

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

anonymous ()
[#] Ответ на: Re: А ларчик открывался просто. от anonymous 03.12.2003 1:17:59  

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

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

* ()
[#] Ответ на: Re: Re: А ларчик открывался просто. от poliakov 03.12.2003 1:45:33  

Re: Свободная мультиплатформенная графическая библиотека?

2poliakov

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

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

***** ()
[#] Ответ на: Re: А ларчик открывался просто. от anonymous 03.12.2003 1:43:26  

Re:

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

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

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

** ()
[#]  

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

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

anonymous ()
[#] Ответ на: Re: Re: Re: Re: Re: Re: А ларчик открывался просто. от Sun-ch 02.12.2003 16:47:57  

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

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

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

*** ()
[#] Ответ на: Re: А ларчик открывался просто. от anonymous 03.12.2003 1:17:59  
raorn

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

> Кстати, а почему на серверах 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

* ()
[#] Ответ на: Re: А ларчик открывался просто. от anonymous 03.12.2003 1:17:59  

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

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

anonymous ()
[#] Ответ на: Re: А ларчик открывался просто. от anonymous 03.12.2003 1:17:59  
Dselect

про noexec

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

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

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

*** ()
[#] Ответ на: Re: Re: А ларчик открывался просто. от raorn 03.12.2003 11:43:10  
Rost

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

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

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

** ()
[#] Ответ на: про noexec от Dselect 03.12.2003 11:52:31  

Re: про noexec

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

anonymous ()
[#] Ответ на: про noexec от Dselect 03.12.2003 11:52:31  

Re: про noexec

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

* ()
[#] Ответ на: Re: про noexec от anonymous 03.12.2003 13:23:35  
Dselect

про 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. Вроде бы работает.

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

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

Похоже на то.

*** ()
[#] Ответ на: Re: про noexec от anonymous 03.12.2003 13:23:35  

Re:

anonymous:

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

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

** ()
[#]  

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

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

anonymous ()
[#] Ответ на: Re: от Murr 03.12.2003 15:28:03  
Dselect

про права в NT

2 Murr:

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

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

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

*** ()
[#] Ответ на: Re: А ларчик открывался просто. от anonymous 03.12.2003 16:20:06  
Dselect

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

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

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

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

*** ()
[#] Ответ на: Re: про noexec от bzImage 03.12.2003 13:40:18  

Re: Re: про noexec

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

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

***** ()
[#] Ответ на: Re: Re: про noexec от dilmah 03.12.2003 17:46:36  
jackill

Re: Re: Re: про noexec

А нехрен на сервере что-то компилять.

***** ()
[#]  

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

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

anonymous ()
[#] Ответ на: про права в NT от Dselect 03.12.2003 17:12:00  

Re: про права в NT

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

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

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

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

anonymous ()
[#] Ответ на: про права в NT от Dselect 03.12.2003 17:12:00  

Re:

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

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

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

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

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

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

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

** ()
[#]  

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

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

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

anonymous ()
[#]  

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

Похоже, 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.

* ()
[#] Ответ на: Re: А ларчик открывался просто. от poliakov 03.12.2003 23:04:09  

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

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

anonymous ()
[#]  

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

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

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

ignat

anonymous ()
[#] Ответ на: Re: А ларчик открывался просто. от anonymous 03.12.2003 21:31:38  
Dselect

запуск 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 их более, чем достаточно ), закинуть ей в стек этот код, и исполнить его.

*** ()