LINUX.ORG.RU

История изменений

Исправление Moisha_Liberman, (текущая версия) :

На клиенте, что ли? Сервер должен вернуть подпись клиенту. В противном случае недоверенный удаленный сервер уже наименьшая из твоих проблем :)

Теперь я объясню почему я плохо реагирую на деление «клиент-сервер». Проблема проста.

Предположим, у Вас есть некое решение, где есть клиент и сервер. Сервер (или серверы) живут в своём ДЦ. И возвращают подписи клиентам, которых ни один и ни два. Всё хорошо, всё как-то, но работает.

Дальше некие уроды-злоумышленники кладут канал на этот ДЦ или на этот сервер (сервера). Банально длительным DDoS. Всё. Звиздец, приехали. Сервера отъехали, канал прилёг. И что, работа всё, встала?

Очевидно, что для данного случая в клиентах должен быть предусмотрена смена ролей, когда какой-то из клиентов берёт на себя функции генерации/возврата подписей и он в этом случае должен сам стать доверенным сервером. Ближайший аналог здесь – перевыборы контроллера домена в виндах. Лёг основной, всё равно найдётся какой-то хост, который будет обеспечивать работу домена.

Можем мы заранее сказать как мы будем резервировать и реализовывать эту возможность? Кто и на основании каких критериев станет доверенным сервером для всей этой сети в случае отказа основных серверов? Нет конечно. Мы эту возможность не рассматриваем изначально. У нас просто и тупо – сервера прилегли, всё, работа кончилась, все по домам. Это называется уязвимость by design. Вот почему я крайне косо смотрю на принятую среди коллег идеологию «клиент-сервер» без оглядки на реалии. Ибо внезапно вечер может перестать быть томным и всё станет грустно и печально.

Тут же ещё до кучи возникает проблема с тем, что в отношении ряда клиентов может быть проведена атака типа DNS cache poison. Т.е., ряд клиентов, которые используют какой-либо общий для них DNS server, вообще могут оказаться в ситуации, когда им навязали вообще левый сервак с обновами и они могут в принципе начать качать обновление не с доверенного сервера, а с фейкового. И что там за обновление они в таком случае скачают, можно только догадываться. Но скажу сразу – ничего хорошего.

Это чисто навскидку и крупными мазками. Сейчас нет плоских, однонаправленных атак. Сейчас есть атаки по разным направлениям и сразу. Я, собственно, вот что пытаюсь объяснить.

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

Здесь, как всегда, два вопроса:

  • От чего и от кого мы защищаемся? Если от Василия-the-хаккИра, с gdb наперевес или radare2 с IDA Pro, то хватит в принципе проверки хэша на уровне локального хоста, где функционирует данное приложение. Даже по сети таскать ничего ненадо, изобретая аналоги гуглёвых сервисов для платных андроидных приблуд. У гугля это тоже не получилось, да они и в курсе почему не получится (как только мы перестаём контролировать корень доверия, при чём похрен на сервере или на клиенте, мы приплыли).

Если от ребятишек, которые в курсах поверхностей атаки для того же TEE/TrustZone/Intel SGX, то я Вас просто умоляю – не тратьте время. =))) «Защита» всегда будет отставать от «атаки» и служить только временной мерой. И её постоянно нужно будет менять и апгрейдить. Т.е., программисты начнут заниматься не наращиванием функционального наполнения приложения, а реализацией всё более хитро вые… реализованных алгоритмов защиты.

  • Какова реальная стоимость защищаемой информации? В ряде случаев просто создают два информационных контура. Один для использования публичных сетей, с ним всё ясно. И другой, ни как не пересекающийся с первым даже на уровне инфраструктурного оборудования и каналов передачи данных, до немогусеньки герметичный, короче. И нет, там даже usb-флешку без «контроля» не вставишь. Чужие там не ходят в принципе.

Тогда проблема, которую пытается решить ТС решается сама собой. И так сеть доверенная, пользователи тоже, так что остальные примочки это просто от делать нефиг. Даже если софт кто-то зачем-то и ломанёт внутри герметичного контура, то толку-то с того?

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

Повторю ещё раз. Любая защита, это как замок. Она от честных людей. Хотите защиты? Реализуйте её на базе комплекса мероприятий. И организационных в том числе.

Ну или не майтесь фигнёй. Тоже вариант. ;)

Исходная версия Moisha_Liberman, :

Вот зря. Вообще зря.

На клиенте, что ли? Сервер должен вернуть подпись клиенту. В противном случае недоверенный удаленный сервер уже наименьшая из твоих проблем :)

Теперь я объясню почему я плохо реагирую на деление «клиент-сервер». Проблема проста.

Предположим, у Вас есть некое решение, где есть клиент и сервер. Сервер (или серверы) живут в своём ДЦ. И возвращают подписи клиентам, которых ни один и ни два. Всё хорошо, всё как-то, но работает.

Дальше некие уроды-злоумышленники кладут канал на этот ДЦ или на этот сервер (сервера). Банально длительным DDoS. Всё. Звиздец, приехали. Сервера отъехали, канал прилёг. И что, работа всё, встала?

Очевидно, что для данного случая в клиентах должен быть предусмотрена смена ролей, когда какой-то из клиентов берёт на себя функции генерации/возврата подписей и он в этом случае должен сам стать доверенным сервером. Ближайший аналог здесь – перевыборы контроллера домена в виндах. Лёг основной, всё равно найдётся какой-то хост, который будет обеспечивать работу домена.

Можем мы заранее сказать как мы будем резервировать и реализовывать эту возможность? Кто и на основании каких критериев станет доверенным сервером для всей этой сети в случае отказа основных серверов? Нет конечно. Мы эту возможность не рассматриваем изначально. У нас просто и тупо – сервера прилегли, всё, работа кончилась, все по домам. Это называется уязвимость by design. Вот почему я крайне косо смотрю на принятую среди коллег идеологию «клиент-сервер» без оглядки на реалии. Ибо внезапно вечер может перестать быть томным и всё станет грустно и печально.

Тут же ещё до кучи возникает проблема с тем, что в отношении ряда клиентов может быть проведена атака типа DNS cache poison. Т.е., ряд клиентов, которые используют какой-либо общий для них DNS server, вообще могут оказаться в ситуации, когда им навязали вообще левый сервак с обновами и они могут в принципе начать качать обновление не с доверенного сервера, а с фейкового. И что там за обновление они в таком случае скачают, можно только догадываться. Но скажу сразу – ничего хорошего.

Это чисто навскидку и крупными мазками. Сейчас нет плоских, однонаправленных атак. Сейчас есть атаки по разным направлениям и сразу. Я, собственно, вот что пытаюсь объяснить.

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

Здесь, как всегда, два вопроса:

  • От чего и от кого мы защищаемся? Если от Василия-the-хаккИра, с gdb наперевес или radare2 с IDA Pro, то хватит в принципе проверки хэша на уровне локального хоста, где функционирует данное приложение. Даже по сети таскать ничего ненадо, изобретая аналоги гуглёвых сервисов для платных андроидных приблуд. У гугля это тоже не получилось, да они и в курсе почему не получится (как только мы перестаём контролировать корень доверия, при чём похрен на сервере или на клиенте, мы приплыли).

Если от ребятишек, которые в курсах поверхностей атаки для того же TEE/TrustZone/Intel SGX, то я Вас просто умоляю – не тратьте время. =))) «Защита» всегда будет отставать от «атаки» и служить только временной мерой. И её постоянно нужно будет менять и апгрейдить. Т.е., программисты начнут заниматься не наращиванием функционального наполнения приложения, а реализацией всё более хитро вые… реализованных алгоритмов защиты.

  • Какова реальная стоимость защищаемой информации? В ряде случаев просто создают два информационных контура. Один для использования публичных сетей, с ним всё ясно. И другой, ни как не пересекающийся с первым даже на уровне инфраструктурного оборудования и каналов передачи данных, до немогусеньки герметичный, короче. И нет, там даже usb-флешку без «контроля» не вставишь. Чужие там не ходят в принципе.

Тогда проблема, которую пытается решить ТС решается сама собой. И так сеть доверенная, пользователи тоже, так что остальные примочки это просто от делать нефиг. Даже если софт кто-то зачем-то и ломанёт внутри герметичного контура, то толку-то с того?

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

Повторю ещё раз. Любая защита, это как замок. Она от честных людей.