Size: a a a

2017 April 29

SB

Sam Becket in SONM Public Rus
Законы математики вечны в отличии от законов людских :)
источник

SB

Sam Becket in SONM Public Rus
И оптимизации процесса тут увы ну никак не выходит, если мы каждый раз будем менять алгоритм и размерность
источник

DD

DR2073 Denis Rysev in SONM Public Rus
Все зависит от ума людей пишущих код - если тот кто будет писать защиту будет умнее всех кто будет пытаться взломать - то все ок - если же кто то из хакеров окажется умнее - все пропало - но конечно можно надеятся на Принцип Неуловимого Джо и надеятся что это никому будет не нужно
источник

DD

DR2073 Denis Rysev in SONM Public Rus
Кроме того не забывай что уже скоро (да и сейчас) взломом заниматься будут уже не люди а ИИ
источник

SB

Sam Becket in SONM Public Rus
DR2073 Denis Rysev
Все зависит от ума людей пишущих код - если тот кто будет писать защиту будет умнее всех кто будет пытаться взломать - то все ок - если же кто то из хакеров окажется умнее - все пропало - но конечно можно надеятся на Принцип Неуловимого Джо и надеятся что это никому будет не нужно
Увы нет, это зависит не от ума людей пишущих код, а от непреложных математических законов и умении их использовать
источник

DD

DR2073 Denis Rysev in SONM Public Rus
То что сложность дезасемблировать в 10 раз выше сложности компиляции - лишь требует использования большего количества ресурсов - но это не жесткое препятствие
источник

SB

Sam Becket in SONM Public Rus
DR2073 Denis Rysev
То что сложность дезасемблировать в 10 раз выше сложности компиляции - лишь требует использования большего количества ресурсов - но это не жесткое препятствие
мы можем сделать сложность дизассембляции в 10000 раз больше и в 100к раз больше. и даже до миллиона дойти
источник

DD

DR2073 Denis Rysev in SONM Public Rus
Можешь привести конкретный пример чего либо что в 100к раз сложнее дизассемблировать? Любой код это код и сложность его преобразования в другой вид конечна и более того взламывать можно и без дезасемблировния прям на уровне машинных кодов :) я таким в детстве занимался и для ИИ тоже нет особой необходимости в дезасемблировании - оно может анализировать код в любом его виде
источник

DD

DR2073 Denis Rysev in SONM Public Rus
Кроме того чем сложнее будет защита тем больше на неё будет расходов и сильнее будет снижаться производительность системы и следовательно у неё будет пропадать конкурентное преемущества по сравнению с обычном облаком без таких сложных замоорочек с защитой
источник

SB

Sam Becket in SONM Public Rus
дизассембляция - это запуск двоичного кода в паралелльных тредах и побайтовое его сравнение с другими текущими процессами с известным исходным кодом, таким образом позволяющая получить исходный код конкретной программы имея на руках лишь двоичное предстваление. Ну условно по крайней мере. Причем конечно оптимизация идет на основе уже дизассемблированного кода, т.е. допустим, если взять ту же EVM и стандарт ERC20, то можно относительно легко декодировать любой токен ERC20, т.к. их существует огромное множество с открытыми исходниками. С другой стороны, если тот же контракт нигде не публиковался, то подобрать исходные функции попадающие под текущий байт-код практически не возможно. Ну т.е. это уже сложность близкая к экспоненте, но еще недостаточной, т.к. алгоритм кодирования один для всех функций - keccak-256.
А мы можем на каждый экземпляр движка ставить ватермарку и, допустим, менять положение функций местами - уже будет получаться другой байт-код, менять алгоритмы кодирования, переставлять некоторые байты местами, менять размерности, типы данных, и прочее и прочее, причем учитывая небольшой вес движка мы это можем делать буквально не останавливаясь.

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

I

Ilya in SONM Public Rus
взлом-взломом, а всё же расскажите, как ваша система защищает от такой ситуации - крутить хостинг на вашей платформе вряд ли будут в больших объемах, поэтому мне кажется основной юскейс - расчёт и, преимущественно, аренда gpu-шных мощностей...что мешает майнеру, имитировать (фековые) расчеты gpu на обычном процессоре, причем, имея рут доступ в память контейнера, ему не нужно особо что-то каждый раз дисасемблировать - достаточно найти в памяти вызовы каких-нибудь scikit-learn библов, и возвращать рандомный результат или снижать количество итераций например, то есть вместо 1000 итераций обучения нейорсети выдавать результат после 10
источник

SB

Sam Becket in SONM Public Rus
Ilya
взлом-взломом, а всё же расскажите, как ваша система защищает от такой ситуации - крутить хостинг на вашей платформе вряд ли будут в больших объемах, поэтому мне кажется основной юскейс - расчёт и, преимущественно, аренда gpu-шных мощностей...что мешает майнеру, имитировать (фековые) расчеты gpu на обычном процессоре, причем, имея рут доступ в память контейнера, ему не нужно особо что-то каждый раз дисасемблировать - достаточно найти в памяти вызовы каких-нибудь scikit-learn библов, и возвращать рандомный результат или снижать количество итераций например, то есть вместо 1000 итераций обучения нейорсети выдавать результат после 10
хаб будет видеть, что контейнер был изменен
источник

I

Ilya in SONM Public Rus
как? мы не контейнер меняем, а код в памяти
источник

I

Ilya in SONM Public Rus
в итоге, майнер экономит электричество, а результат не проверяем
источник

DD

DR2073 Denis Rysev in SONM Public Rus
дизассембляция по сути это преобразование кода в более понятный для человека вид (потому что человек тупой и ему трудно читать напрямую в машинных кодах) - для ИИ-хакера она не нужна в принципе, он может анализировать код в таком виде в каком ему его прислали
источник

I

Ilya in SONM Public Rus
для фейкования результатов вычислений дизасм кода сонм не нужна вообще, например
источник

SB

Sam Becket in SONM Public Rus
DR2073 Denis Rysev
дизассембляция по сути это преобразование кода в более понятный для человека вид (потому что человек тупой и ему трудно читать напрямую в машинных кодах) - для ИИ-хакера она не нужна в принципе, он может анализировать код в таком виде в каком ему его прислали
не совсем так, это процесс не преобразования, а выстроения статичных программных констант из потока динимических данных. То о чем ты говоришь - это опкод
источник

SB

Sam Becket in SONM Public Rus
Ilya
как? мы не контейнер меняем, а код в памяти
Мы можем поставить Intel SGX и выполнять контейнер в защищенном сегменте, в таком случае код вообще нельзя будет ни декодировать, ни изменить. Но правда работать будет только на процах интела
источник

SB

Sam Becket in SONM Public Rus
к нему просто не будет доступа даже у рута
источник

DD

DR2073 Denis Rysev in SONM Public Rus
если на пальцах - ИИ получает от хаба код - ему надо понять как он работает и вытащить из него ключ - он тупо эмулирует его работу - следит что там происходит и отслеживает тот момент когда ключ использовали для подписи отправляемых обратно данных - извлекает этот ключ - меняет данные так как ему надо - оставляя нетронутым хеш кода контейнера и отсылает обратно - все - без проблем можно автоматизировать и делать в реальном времени
источник