Miért rossz ötlet strings-t futtatni megbízhatatlan helyről származó fájlokon?

A Google biztonsági csapatát erősítő Michał "lcamtuf" Zalewski a napokban arról blogolt, hogy a számítógép kriminalisztikában és a számítógépes biztonság egyéb területein tevékenykedő biztonsági szakemberek (is) előszeretettel futtatják a "strings" segédprogramot az internetről származó, kétes eredetű binárisokon. Teszik ezt abban a tudatban, hogy a strings úgysem nem csinál semmi mást, mint végigszkenneli a fájlt és a talált stringeket kitolja a stdout-ra - ez pedig nem hangzik túl veszélyesnek.

Pedig nem kéne ezt tenniük, kiváltképp akkor nem, ha a strings GNU Binutils-ban fellelhető verzióját használják. Szóval érdemes változtatni a szokásokon, vagy rászokni a "-a" kapcsoló használatára. A disztribútoroknak pedig érdemes lenne megfontolniuk a "-a" alapértelmezetté tételét.

A részletek itt olvashatók.

Hozzászólások

Hasznos tanács, de én azt hittem, hogy ezek a szakemberek az ilyen játszódást sandbox-ban, játszós PC-n futó, eldobható virtuális gépben vagy ilyen szarokban csinálják. Pont azért mert bármikor beüthet valami szar.

--
trey @ gépház

Köszönöm a fejlesztőknek ezt a funkciót. A jó isten áldja már meg őket mind a két kezével, ha én sztringeket keresek random fájlban, akkor nekem ne optimalizálja már ki a szoftver, hogy mely részéről olvas annak az adatkupacnak, hanem induljon el az elejéről, és menjen el a végéig. Értelmezni meg kb az isascii/isprint szintjéig értelmezzen! Mi a tökömnek kellett ezt is elbonyolítani, mint a GNUHello-t.

Emlékeztet az ldd arbitrary code execution veszélyére, és az sem új...

Kíváncsiságból, hogy mi is lehet az a -a kapcsoló elkövettem azt a hibát, hogy beírtam a google-be a man strings keresőszavakat.

Érdekes a "változtassunk a szokásokon" következtetés a "várjuk meg amíg kijavítják a sebezhetőséget" helyett. Ennyire nehéz lenne a GNU fejlesztőkkel megbeszélni a dolgot?