ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] Insecure library loading
@ 2010-10-15 17:25 Vladimir Lettiev
  2010-10-15 18:24 ` Igor Vlasenko
  0 siblings, 1 reply; 9+ messages in thread
From: Vladimir Lettiev @ 2010-10-15 17:25 UTC (permalink / raw)
  To: ALT Devel discussion list

Судя по всему в debian провели аудит безопасности shell-скриптов на предмет
наличия небезопасного изменения переменной окружения LD_LIBRARY_PATH.
Уязвимые скрипты используют следующую конструкцию в коде:

export LD_LIBRARY_PATH=/usr/lib/somedir:$LD_LIBRARY_PATH

В случае если переменная $LD_LIBRARY_PATH оказывается пустой, то
ld.so трактует это как '.', т.е. текущий каталог.  Если при
запуске скрипта текущий каталог оказывается под контролем
злоумышленника, то это позволяет выполнить произвольный код.

Я начал развешивать баги ( #24316, #24324 ), но похоже их там ещё
очень много. Мне кажется, что подобная проверка может быть
автоматизированна и выполняться при сборке пакета, что позволит
быстро вычислить все уязвимые пакеты (они не пройдут пересборку)
и предотвратить появление новых программ с подобной уязвимостью.

-- 
Vladimir Lettiev aka crux ✉ theCrux@gmail.com


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [devel] Insecure library loading
  2010-10-15 17:25 [devel] Insecure library loading Vladimir Lettiev
@ 2010-10-15 18:24 ` Igor Vlasenko
  2010-10-15 18:32   ` Vladimir Lettiev
  0 siblings, 1 reply; 9+ messages in thread
From: Igor Vlasenko @ 2010-10-15 18:24 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Fri, Oct 15, 2010 at 09:25:19PM +0400, Vladimir Lettiev wrote:
> Судя по всему в debian провели аудит безопасности shell-скриптов на предмет
> наличия небезопасного изменения переменной окружения LD_LIBRARY_PATH

Владимир, вы случайно готового скрипта для тестирования не встречали?
Я думаю добавить и в repocop тест, готовый скрипт тестирования не помешал бы.

-- 

Dr. Igor Vlasenko
--------------------
Topology Department
Institute of Math
Kiev, Ukraine



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [devel] Insecure library loading
  2010-10-15 18:24 ` Igor Vlasenko
@ 2010-10-15 18:32   ` Vladimir Lettiev
  2010-10-15 22:13     ` Igor Vlasenko
  0 siblings, 1 reply; 9+ messages in thread
From: Vladimir Lettiev @ 2010-10-15 18:32 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Fri, Oct 15, 2010 at 09:24:45PM +0300, Igor Vlasenko wrote:
> On Fri, Oct 15, 2010 at 09:25:19PM +0400, Vladimir Lettiev wrote:
> > Судя по всему в debian провели аудит безопасности shell-скриптов на предмет
> > наличия небезопасного изменения переменной окружения LD_LIBRARY_PATH
> 
> Владимир, вы случайно готового скрипта для тестирования не встречали?
> Я думаю добавить и в repocop тест, готовый скрипт тестирования не помешал бы.

Пока нашёл только это:  http://bugs.debian.org/451559

-- 
Vladimir Lettiev aka crux ✉ theCrux@gmail.com


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [devel] Insecure library loading
  2010-10-15 18:32   ` Vladimir Lettiev
@ 2010-10-15 22:13     ` Igor Vlasenko
  2010-10-16  6:39       ` Vladimir Lettiev
  0 siblings, 1 reply; 9+ messages in thread
From: Igor Vlasenko @ 2010-10-15 22:13 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Fri, Oct 15, 2010 at 10:32:54PM +0400, Vladimir Lettiev wrote:
> > > Судя по всему в debian провели аудит безопасности shell-скриптов на предмет
> > > наличия небезопасного изменения переменной окружения LD_LIBRARY_PATH
> > 
> > Владимир, вы случайно готового скрипта для тестирования не встречали?
> > Я думаю добавить и в repocop тест, готовый скрипт тестирования не помешал бы.
> 
> Пока нашёл только это:  http://bugs.debian.org/451559

Спасибо! Увмдел там же хороший пример сложности задачи.

Жаль никто скрипта не написал.

При ручной проверке достаточно экстрагировать */bin */sbin
каталоги, пройтись по ним grep и вручную поотбрасывать 
false positive. А тесту без false positive нужен парсер sh.

Пока не вник, придется отложить :(

-- 

Dr. Igor Vlasenko
--------------------
Topology Department
Institute of Math
Kiev, Ukraine



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [devel] Insecure library loading
  2010-10-15 22:13     ` Igor Vlasenko
@ 2010-10-16  6:39       ` Vladimir Lettiev
  2010-10-16  9:05         ` Igor Vlasenko
  0 siblings, 1 reply; 9+ messages in thread
From: Vladimir Lettiev @ 2010-10-16  6:39 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Sat, Oct 16, 2010 at 01:13:09AM +0300, Igor Vlasenko wrote:
> On Fri, Oct 15, 2010 at 10:32:54PM +0400, Vladimir Lettiev wrote:
> > > > Судя по всему в debian провели аудит безопасности shell-скриптов на предмет
> > > > наличия небезопасного изменения переменной окружения LD_LIBRARY_PATH
> > > 
> > > Владимир, вы случайно готового скрипта для тестирования не встречали?
> > > Я думаю добавить и в repocop тест, готовый скрипт тестирования не помешал бы.
> > 
> > Пока нашёл только это:  http://bugs.debian.org/451559
> 
> Спасибо! Увмдел там же хороший пример сложности задачи.
> 
> Жаль никто скрипта не написал.
> 
> При ручной проверке достаточно экстрагировать */bin */sbin

%_gamesbindir тоже не забыть

> каталоги, пройтись по ним grep и вручную поотбрасывать 
> false positive. А тесту без false positive нужен парсер sh.

Думаю, что самая надёжная проверка, это запуск скипта в чруте
через `strace -e open` и искать в выводе подстроку `open("./libc.so`

Или вообще `open(".` т.к. открытие любого файла из текущего каталога
потенциально небезопасно

-- 
Vladimir Lettiev aka crux ✉ theCrux@gmail.com


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [devel] Insecure library loading
  2010-10-16  6:39       ` Vladimir Lettiev
@ 2010-10-16  9:05         ` Igor Vlasenko
  2010-10-16  9:15           ` Michael Shigorin
  0 siblings, 1 reply; 9+ messages in thread
From: Igor Vlasenko @ 2010-10-16  9:05 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Sat, Oct 16, 2010 at 10:39:52AM +0400, Vladimir Lettiev wrote:
> > каталоги, пройтись по ним grep и вручную поотбрасывать 
> > false positive. А тесту без false positive нужен парсер sh.
> 
> Думаю, что самая надёжная проверка, это запуск скипта в чруте
> через `strace -e open` и искать в выводе подстроку `open("./libc.so`
> 
> Или вообще `open(".` т.к. открытие любого файла из текущего каталога
> потенциально небезопасно

Я задумываюсь о системе тестирования, условно скажем, repocop2,
которая еще устанавливала бы пакеты в hasher,
что позволяло бы внутри выполнять ряд тестов естественным 
образом. Меня только останавливало осознание того, сколько 
такая система кушала бы ресурсов.
Но закон Мура еще действует, так что пора задумываться и
о repocop2.

В такой системе данный тест действительно написать было бы очень
легко. сначала grep LD_LIBRARY_PATH по файлам пакета,
затем разбор и запуск кандидатов -- несколько строк на shell.



-- 

Dr. Igor Vlasenko
--------------------
Topology Department
Institute of Math
Kiev, Ukraine



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [devel] Insecure library loading
  2010-10-16  9:05         ` Igor Vlasenko
@ 2010-10-16  9:15           ` Michael Shigorin
  2010-10-16  9:49             ` Igor Vlasenko
  0 siblings, 1 reply; 9+ messages in thread
From: Michael Shigorin @ 2010-10-16  9:15 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Sat, Oct 16, 2010 at 12:05:44PM +0300, Igor Vlasenko wrote:
> Я задумываюсь о системе тестирования, условно скажем, repocop2,
> которая еще устанавливала бы пакеты в hasher, что позволяло бы
> внутри выполнять ряд тестов естественным образом.

Может быть разумно реализовывать рядом с проверкой на
устанавливаемость после параллельной сборки, чтоб оставалось
разве что RAM contention (tmpfs), но не дополнительная задержка
по времени.

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [devel] Insecure library loading
  2010-10-16  9:15           ` Michael Shigorin
@ 2010-10-16  9:49             ` Igor Vlasenko
  2010-10-16 10:56               ` Michael Shigorin
  0 siblings, 1 reply; 9+ messages in thread
From: Igor Vlasenko @ 2010-10-16  9:49 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Sat, Oct 16, 2010 at 12:15:44PM +0300, Michael Shigorin wrote:
> On Sat, Oct 16, 2010 at 12:05:44PM +0300, Igor Vlasenko wrote:
> > Я задумываюсь о системе тестирования, условно скажем, repocop2,
> > которая еще устанавливала бы пакеты в hasher, что позволяло бы
> > внутри выполнять ряд тестов естественным образом.
> 
> Может быть разумно реализовывать рядом с проверкой на
> устанавливаемость после параллельной сборки, чтоб оставалось
> разве что RAM contention (tmpfs), но не дополнительная задержка
> по времени.

Не разумно, IMHO.
1) Сборочница и так уже на ладан дышит, сутками приходится
сборки ждать.. вынесли тесты == расспараллеливание.
2) Дизайн. Сборочница это сборочница, она только может
пропустить или не пропустить. И it bring us hate если
сборочница к чепухе придерется.
3) Сборочница _не проверяет_ такущие пакеты.
т.е. в Сизифе может годами пилиться кривой пакет,
а по суслам получит не нерадивый мейнтейнер, а 
энтузиаст, который попытается починить и обновить.

-- 

Dr. Igor Vlasenko
--------------------
Topology Department
Institute of Math
Kiev, Ukraine



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [devel] Insecure library loading
  2010-10-16  9:49             ` Igor Vlasenko
@ 2010-10-16 10:56               ` Michael Shigorin
  0 siblings, 0 replies; 9+ messages in thread
From: Michael Shigorin @ 2010-10-16 10:56 UTC (permalink / raw)
  To: ALT Linux Team development discussions

On Sat, Oct 16, 2010 at 12:49:58PM +0300, Igor Vlasenko wrote:
> 2) Дизайн. Сборочница это сборочница, она только может
> пропустить или не пропустить. И it bring us hate если
> сборочница к чепухе придерется.

Да уже и warning'ам научили...

Понятно про синхронность, я пытался сообразить, что дороже --
перераскручивать пакеты или утаскивать развёрнутые.  Просто для
prometeus'ов в количестве нескольких штук и вытаскивалки спеков
в cvs (была когда-то и такая тут) похожее в своё время вылезло.

> 3) Сборочница _не проверяет_ такущие пакеты.
> т.е. в Сизифе может годами пилиться кривой пакет,
> а по суслам получит не нерадивый мейнтейнер, а 
> энтузиаст, который попытается починить и обновить.

Тоже да.

-- 
 ---- WBR, Michael Shigorin <mike@altlinux.ru>
  ------ Linux.Kiev http://www.linux.kiev.ua/


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2010-10-16 10:56 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-10-15 17:25 [devel] Insecure library loading Vladimir Lettiev
2010-10-15 18:24 ` Igor Vlasenko
2010-10-15 18:32   ` Vladimir Lettiev
2010-10-15 22:13     ` Igor Vlasenko
2010-10-16  6:39       ` Vladimir Lettiev
2010-10-16  9:05         ` Igor Vlasenko
2010-10-16  9:15           ` Michael Shigorin
2010-10-16  9:49             ` Igor Vlasenko
2010-10-16 10:56               ` Michael Shigorin

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git