Eskejpovani pro su
Pavel Kankovsky
peak na argo.troja.mff.cuni.cz
Pondělí Říjen 15 15:39:42 CEST 2012
On Mon, 15 Oct 2012, Ladislav Vaiz wrote:
> su -c 'dpkg -i $1' root
>
> Chtel bych, aby se $1 predal dpkg tak, jak je a nebylo mozno predhodit
> shellu spoustenem pod rootem nejaky skodlivy kod.
>
> Jak to udelat bezpecne?
To jsou dva různé problémy. Přesněji řečeno ta první záležitost (jak
znemožnit manipulaci se shellem) je podmínka nutná ale nikoli postačující
pro druhou (jak to udělat bezpečně).
Samotné předání parametru by zase až tak složité být nemělo, mělo by
stačit něco jako: su -c 'dpkg -i "$0"' root "$1"
Problém je ale spíš jinde.
V první řadě je to otázka za tomu, kdo to su spouští (root to asi není,
to by to su bylo celkem zbytečné), můžete věřit, že tam pošle očekávaný
příkaz a nepřidá si k tomu dpkg něco vlastního.
Druhá otázka je, do jaké míry lze věřit samotnému dpkg, že se nezachová
nějakým nepěkným způsobem, když mu někdo předhodí nějaký opravdu ošklivý
parametr. Nebo nějaká ošklivá environmentová proměnná.
A konečně třetí, nejobecnější, otázka zní, zda lze instalaci balíku
považovat za bezpečnou operaci. Ten, kdo by mohl chtít do cesty k balíku
strkat shellové příkazy, by tam stejně dobře mohl zkusit dát balík, jehož
instalací se vyrobí nějaká (nová) bezpečnostní díra.
--
Pavel Kankovsky aka Peak / Jeremiah 9:21 \
"For death is come up into our MS Windows(tm)..." \ 21st century edition /
Další informace o konferenci Linux