LINUX.ORG.RU
ФорумTalks

Насчет подписанных бинарей

 


0

2

В связи с недавней акцией на тему терабайта в мылрушном облаке и мутноватым клиентом под онтопик, почитал тут на швабре прошлогоднее нытье по поводу мейлрушного гарда. Народ возмущался ихней файловой партнеркой, в которой через загрузчик, подписанный валидной мылрушной эцп, раздавалась всякая гниль. У меня глаз почему-то зацепился за маленький фактик - мылру на ходу генерила подписи для этих самых даунлодеров. В момент отдачи. Тут мне вспомнилась одна из моих задачек в прошлой конторе, давности так двухлетней. Суть в том, что там стоял вопрос о трекинге дистрибуции одной гамнософтинки под оффтопик (чистая статистика), ну и надо было в каждый дистрибутив при отдаче вшивать некий уникальный идентификатор (потом дошло даже до небольшого предконфига). Естественно тоже надо было подписывать после модификации. Желания делать так не было, поэтому я, хм, на коленке склепал свой сигнтул на опенссле, в котором воспользовался одной забавной особенностью этих ваших подписей. В итоге был у нас дистрибутив, подписанный валидной подписью, но при этом в нем был произвольной длины блок, который можно было произвольным образом менять без всякого нарушения подписи. В общем, я удивился, что такая расфуфыренная контора, как мыл, до такого решения не дошла (хотя, признаться, я нигде такого не встречал ни до, ни после).

А тут мне пришла в башку идея, что это же бомба. Можно один раз склепать маленькую херь (даже потенциально полезную), которая будет оборачивать произвольный бинарничек, коий и будет из себя вытаскивать, складировать во временный каталожек и запускать не понижая привилегий. У себя в конторе, например, во вполне легальных целях. Потом эта хренька совершенно случайно окажется кем-то замеченной и использованной в паскудных целях. Ой-вей, мне кажется, или что-то сильно не так с подписями в шинде?

Линукс тут при том, что идея в башку взбрела после знакомства с мылрушным клиентом, который черт знает что делает в вашей уютной убунтачке.


А я знал, что там все нечисто.

dvrts ★★★
()

мылрушным клиентом, который черт знает что делает в вашей уютной убунтачке.

Потому что гладиолус!

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

Ну ладно, ладно. ОН тут при том, что подписчик на опенссл написан. Или при том, что на главной висит новость про подписи пакетов в опенке. При чем-то, в общем.

vsn
() автор топика

В итоге был у нас дистрибутив, подписанный валидной подписью, но при этом в нем был произвольной длины блок, который можно было произвольным образом менять без всякого нарушения подписи.

Можно подробнее? Речь идет о том что Microsoft Authenticode не подсчитывает хэш для некоторых кусков PE файла?

edigaryev ★★★★★
()

При развертывании дистрибутива можно вообще сертификат Васи Пупкина пхнуть в системное хранилище корневых сертификатов.
И выплясывай потом, сколько душе угодно.

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

Совсем подробнее - за корзину печенья и новый макбук, но говоря в общем - его можно заставить не включать в хэш некие куски PE-файла. Причем тянется это с хрюши по восьмерочку, бгг.

vsn
() автор топика

Мылорушный даунлоадер, емнип, был подписан сам (его подпись светилась в запросе на UAC-повышение), но тянул и запускал неподписанный payload. Не генерируя ничего на лету.

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

При чем тут развертывание. Я такой добрый днем на работе напишу полезный бинарничек, который будет запускать из себя другой (или дллку грузить, не суть), а потом такой злой дядя возьмет его с сервера моей гипотетической конторы, напихает туда злобныя поделия и будет распространять унутрь твоей венды. А ты ничего и не заметишь - подпись же, ДОВЕРЯТЬ МОЖНО!

vsn
() автор топика
Ответ на: комментарий от edigaryev

Ну, мой подход был примерно из той же области, только работает, зараза, и на хрюше, такие дела.

А так ладно, раз об этом уже знают, значит буду спать спокойно.

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

Хотя щас пересмотрел презентацию повнимательнее. В общем, у меня взгляд на проблему был несколько с другой стороны. И работает везде и несмотря на некий хотфикс. До сих пор.

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

То есть, получается эти подписи не защищают от вирусов, а реально работают только для лучшего контроля МСом софта, что пишут под их виндовс :)

goingUp ★★★★★
()

Эм... тут встает вопрос, это только с помощью своего специальным образом оскверненного самоподписанного сертификата такое можно сделать или же с помощью кошерного верисайновского тоже можно? У меня большие сомнения на счёт последнего

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

Неважно какой. Тогда все подписывалось замечательным верисайновским сертом за $400 - и усё везде работало.

На маке, кстати, эцп - еще более бредовая сущность.

vsn
() автор топика
Ответ на: комментарий от goingUp

его можно заставить не включать в хэш некие куски PE-файла.

То есть, получается эти подписи не защищают от вирусов, а реально работают только для лучшего контроля МСом софта, что пишут под их виндовс :)

Всё же до определённой степени защищают. Насколько мне известно, все исполняемые куски PE-файла подписываются, неподписанный кусок встроить можно, но не как часть программы.

Но если программа потом читает собственный .exe, находит там ссылку не пойми куда, скачивает по ней не пойми что и безо всякой проверки запускает, то тут уж никакая подпись не поможет.

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

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

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

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

Что значит «хороший легальный бинарь» и как это он превращается в херь?

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

Хороший - выполняющий полезную, нужную функцию и не выполняющий злобных, плохих. Заменой куска кода внутри без нарушения подписи.

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