Здравствуйте, пользователи сообщества Хабр.
Цель статьи: Описание способа передачи данных из закрытого контура АСУ ТП (промышленная технологическая сеть), в глобальную сеть интернет, 100% защита от взлома.
Устройства обрастают всевозможными датчиками, что даёт нам возможность удалённого управления и отслеживания состояний, в качестве проводника данных используются компьютерные сети, в частности всемирная паутина.
Промышленность не исключение, менеджмент компаний, различные службы проявляют интерес к системам, предоставляющим удалённый мониторинг технологических данных, их анализ. Иногда в этом есть смысл, иногда это просто хотелки. Ну как говорится — если есть спрос, будет и предложение.
На рынке появляются различные решения. Вопросам информационной безопасности и защите от взлома не всегда уделяется достойное внимание, ведь главное продать решение, да и подрядчик старается не брать на себя ответственность за потенциальный взлом системы, просто потому, что не может это гарантировать. Поэтому изобретаются различные протоколы шифрования, способы разделения сетей, специализированное программное обеспечение и тд и тп.
Вопрос — как можно передать данные во всемирную сеть, при этом гарантировать, чтобы из этой сети не было несанкционированного доступа к управляющим системам асу тп, для этого очевидно, нужно чтобы в качестве проводника данных не была компьютерная сеть, нет сети, нет взлома.
Как «снимать» данные (технологические параметры агрегатов и тд) с закрытого контура асу тп? Итак, из чего состоит система асу тп — датчики, механизмы, контроллеры, scada — системы. Всё это связано между собой различными сетями с разными протоколами, по которым «гуляют» наши данные. Если к сетям не подключаться, остаётся уровень технологической визуализации — scada системы. Мне пришла в идея, почему бы не подключаться и не снимать данные с видео сигнала, допустим операторской станции, далее программным обеспечением «распарсить» картинку и забрать необходимые данные. Современные алгоритмы распознавания делают это быстро и эффективно. Таким образом мы получили данные, не подключаясь к технологической сети.
Задача решена, взлом невозможен.
Спасибо, что дочитали. А что думают специалисты в этой сфере?
Комментарии (67)
ruomserg
21.12.2024 08:01Обождите - но есть же стандартное решение типа data-diode! Обычно это ethernet или оптика у которой на одной стороне только передатчик, а на другой - только приемник. Понятно что TCP через него не едет (потому что ACK не проходят). Но UDP-то посылать никто не запрещает! И уж там как минимум есть контрольные суммы (а никто не мешает прикрутить еще и честный sha256 дайджест для проверки целостности и sequence numbers для контроля на принимающей стороне сколько процентов пакетов теряется). ИМХО это гораздо более реалистично, чем выделение данных из видеосигнала консоли оператора...
Alex_xabr Автор
21.12.2024 08:01да много чего есть, вопрос в стоимости и гарантии, данный метод дешевый и гарантированно безопасный, или я не прав? Если не прав, поправьте.
randomsimplenumber
21.12.2024 08:01Если вопрос в цене - что может быть дешевле Ethernet кабеля с обрезанной парой?
YegorP
21.12.2024 08:01Вот именно, что вопрос в стоимости. Вы как-то очень избирательно этот вопрос применяете. Любая нетривиальная визуализация техпроцесса будет содержать всякую модальность - вылезет какое-нибудь окошко и перекроет показания датчика на экране. А значит придётся делать визуализацию именно под дальнейшее распознавание. Уже недёшево.
Alex_xabr Автор
21.12.2024 08:01в статье просто описан метод, а Вы начинаете в детали, да есть есть нюансы, как то, что вы описали, которые возможно решать разными способами, начиная от самого простого - установкой дополнительной операторской станции или доп. экрана, с выводом только необходимых для передачи параметров.
Alex_xabr Автор
21.12.2024 08:01и почему тогда в этой области нет условно ГОСТА, раз это стандартное решение, вот бери делай так - и будет тебе счастье? ).
nikolz
21.12.2024 08:01Возможно потому, что разработка ГОСТА это долго и дорого и делают это для унификации производства или нормирования технологических параметров. В Вашем случае ничего этого нет.
Решение Вашей задачи ограничено лишь наличием у Вас знаний в данной области.
Вы на самом деле, как уже указал ранее и не только я, просто делаете передачу в одну сторону.
Но это можно сделать разными способами в зависимости от параметров конкретной системы.
Ваш вариант пожалуй самый сложный и избыточный в плане обработки данных.
randomsimplenumber
21.12.2024 08:01бери делай так - и будет тебе счастье?
Наверное, именно так делать никому нафиг не нужно. Какой смысл передавать куда-то какие-то данные без возможности обратной связи? Ну, увидел кто-то что температура в 4 энергоблоке на 400 градусов выше чем обычно, и что? Эту же информацию он и по радио услышит, и даже в газете прочитает.
Alex_xabr Автор
21.12.2024 08:01А вы считаете, что нет систем удалённой диспетчеризации без функций управления, при этом полезных? ну так Вы глубоко заблуждаетесь, их полно.
randomsimplenumber
21.12.2024 08:01Есть, и много. В т. наз спорт кафе;) Когда наблюдают, и комментируют, и даже ставки делают, но никак не влияют.
Alex_xabr Автор
21.12.2024 08:01мы вроде тут общаемся на тему асу тп, при чём тут кафе, есть системы диспетчеризации без управления, разве вы об этом не знали?
Alex_xabr Автор
21.12.2024 08:01даже в заголовке написано - пе-ре-да-ча данных в сеть, а не приём )))
Alex_xabr Автор
21.12.2024 08:01В данном способе есть ещё один плюс, ни какие данные технологической сети (ip адреса, регистры модбас и тп) не доступны, читается только картинка. Но конечно это наверно бредовая мысль )))
kuzzdra
21.12.2024 08:01Если вам нужна односторонняя передача данных - ну так передавайте в одну сторону, а обратно ничего не принимайте. Можете взять обычный советский UART и откусить у него одну ногу.
Alex_xabr Автор
21.12.2024 08:01Отвечу на вопросы всем, во-первых, это статья - "мнение" и не более. В каждом методе есть свои плюсы и минусы. Что касается com (uart) и других методов, в любом случае это разработка/доработка асу тп в части интеграции с другими системами, все системы очень разные. В данном методе передачи данных источник - видеопоток , так что написав этот софт один раз , можно его настраивать и применять. Да - это передача в одну сторону. Возможно избыточный метод, но ведь вопрос в унификации. Ничего, никому не доказываю.
Alex_xabr Автор
21.12.2024 08:01странно, но только что я прочитал пост пользователя, но почему-то он удалил его, суть его была в том, что этот метод уже использовали для считывания данных. Друг, добавь его ))))
Alex_xabr Автор
21.12.2024 08:01Данный метод также может использоваться в случаях, когда нет возможности получить данные асу тп, закрытый софт и др.
jack_lark
21.12.2024 08:01приведу аналогию.
есть такой гарантированно безопастный метод быстрой передачи паролей:записать пароль на бумажку
сфотать бумажку на смартфон
переслать фото по eml/wa/tg/vb (упс, вибер недавно отпал).
бумажку уничтожить. по подтверждению приема и действительности пароля - фото уничтожить.
вопрос: где подводные камни ?
Современные алгоритмы распознавания делают это быстро и эффективно
да. и не только у вас.
Alex_xabr Автор
21.12.2024 08:01пример не корректный , мой способ не сами данные защищает, эти данные никому не интересны, данный способ гарантирует защиту от взлома управляющих систем, контроллеров в технологической сети. А сами данные, если интересна их защита, защищайте другими способами, в асу тп главное предотвратить доступ в технологическую сеть, остальное вторично. И при чём тут бумажки )))
sekuzmin
21.12.2024 08:01Так стримьте данные по UDP наружу. В чем видите уязвимость для систем управления, если трафик обратно не разрешен ?
Alex_xabr Автор
21.12.2024 08:01вижу хотя бы настройке, администрировании, кто-то что-то не так настроил, плюс не всегда есть возможность данный способ реализовать, хотя такая мысль была. Плюс я сомневаюсь в безопасности той же винды, а скада системы в основном работают на винде.
Alex_xabr Автор
21.12.2024 08:01да и про уязвимости данного метода, пусть лучше специалисты по информационной безопасности ответят, если их нет, замечательно ))))
jackgrebe
21.12.2024 08:01эти данные никому не интересны,
большая ошибка с вашей стороны.
чтобу запустить самоходную программу типа stuxnet (помните такое ?) в ваш закрытый контур и чего-нибудь сотворить, данные очень нужны и будут очень полезны.Alex_xabr Автор
21.12.2024 08:01конечно помню, Вы сами то поняли о чём написали? Какие для этого нужны данные? Для написания данного "вируса" нужны данные - где лежат эти данные (адресация), а не сами данные, то есть значения измеряемых параметров. Надеюсь это понятно. Как раз данный метод изолирует технологию, а выдаёт только данные, нет возможности узнать адресацию, ip и тд. Возможно я не правильно выразился, что данные не интересны, они также могут быть интересны, но это уже вторично, цель метода, гарантировать безопасность технологического контура.
sekuzmin
21.12.2024 08:01Мне пришла в идея, почему бы не подключаться и не снимать данные с видео сигнала, допустим операторской станции, далее программным обеспечением "распарсить" картинку и забрать необходимые данные.
Ну нет, "подключаться и снимать данные" это слишком просто. Рекомендую "Извлечение данных из изолированной системы через скрытый канал камера-экран".
Research article: Exfiltrating data from an air-gapped system through a screen-camera covert channel
Longlong Li, Yuliang Lu, Xuehu Yan and Dingwei Tan
National University of Defense Technology, No. 460 Huangshan Road, Hefei 230037, China
Alex_xabr Автор
21.12.2024 08:01забавно, а зачем минусовать статью-мнение ))), автор потратил время, описал метод, ну не понравился не читай, не используй, зачем минусовать, но если так легче Вам жить, то пожалуйста :)
Теперь по факту, в общении в Вами я выяснил, что данный метод имеет место быть и реально применяется, одной из его ниш может быть "съём" данных с изолированных систем.
Далее - на практике мне встречались различные варианты решения подобных задач, начиная от двух сетевых карт, настройки активного сетевого оборудования, udp не встречал, но думал об этом методе, rs232, 485 и тп, также диоды данных, с сертификатами безопасности ))). Все эти методы либо не безопасны, либо "считаются" безопасными (никто ещё не взломал, но теоретически возможно), либо имеют некоторые ограничения при внедрении, скорости передачи данных.
Ещё раз повторюсь, что нужен ГАРАНТИРОВАННО безопасный и быстрый способ передачи данных (большого объема > 100 000 тэгов например), с защитой 100% от взлома извне. Когда вирус шифровальщик "ложит" операторские станции, на серьёзных предприятиях, Вам не кажется, что с безопасностью, что-то не то )))). При этом я не утверждаю, что нужно делать так, как я описал, это лишь одно из решений.
Далее, хотелось бы услышать ответы на вопросы от специалистов в области машинного зрения, допустим у нас есть массив изменяющихся данных 100 000 элементов, на сколько сложно сформировать видеопоток (на серверной стороне), далее реализовать видеозахват на клиентской стороне и разобрать эти данные опять в массив. Как быстро это будет работать, если использовать opencv?
randomsimplenumber
21.12.2024 08:01нужен ГАРАНТИРОВАННО безопасный и быстрый способ передачи данных
Это ТЗ штоле? ;)
Как вы видите гарантии? мамой клянусь? ;) Что такое "безопасность" в вашем понимании? От чего именно вы хотите защититься?
Alex_xabr Автор
21.12.2024 08:01мне кажется я уже написал от чего, от доступа извне в технологическую сеть по каналу передачи данных. При чём тут мамой клянусь, в гарантиях безопасности я вижу, что взлом не возможен чисто технически никак, от слова совсем, при этом данных, получены. Можете считать, что по ТЗ, какое это имеет дело к теме.
randomsimplenumber
21.12.2024 08:01Веб-сервер, который умеет только отдавать информацию.
jackgrebe
21.12.2024 08:01чтобы веб сервер что-то отдал, сперва он должен принять запрос вида
GET /[....1GB мусора SQL-инъекций нащупываний забытых файлов ...]shell-кодrandomsimplenumber
21.12.2024 08:01Если у вас нет sql инъекций/забытых файлов/г-кода на пхп - в чем проблема? не выставляйте админку жолой гопой в интернет и никто вас не взломает.
Alex_xabr Автор
21.12.2024 08:01вы куда собрались веб-сервер ставить? в технологическую сеть? ))) ещё раз гарантированно безопасные, это в моём понимании метод, который взломать не возможно в принципе, даже зная как всё там работает, все пароли рута, админа и тд. А по факту никто не написал практически ничего кроме com порта и udp протокола ))). А, ну ещё веб-сервера )))). Интересно было услышать про скорость обработки данных, при передачи данным способом. И главное, что данное решение люди используют, но по каким-то причинам, не выкладывают своё опыт. Один человек написал, потом удалил комментарий, я уже не знаю по каким причинам )))
randomsimplenumber
21.12.2024 08:01Вы слишком упарываетесь в безопасность. Проконсультируйтесь у любого безопасника, что он думает по поводу самодельных решений.
Alex_xabr Автор
21.12.2024 08:01да, упарываюсь, потому что знаю о случаях, когда всё могло очень плохо закончиться. Мне интересен конструктивный диалог, в чём плюсы, в чем минусы, скорость передачи, обработки, а не просто - нуу, так никто не делает, слишком сложно и тп). У меня нет любого безопасника, я не работаю в этой сфере.
randomsimplenumber
21.12.2024 08:01Ну так вот, не сертифицированные решения у безопасника не котируются. Безопасность - вещь комплексная, и оценивается с разных сторон. Ну, допустим, в вашей самоделке с opencv произошло деление на букву О и она упала. Ваша информация недоступна. А когда вы прибежите с флешкой чинить эту пепяку - тут stuxnet и сработает. Упсь
Alex_xabr Автор
21.12.2024 08:01вот Вы опять не в ту сторону ведёте, тут просто описан метод, метод передачи данных, к самому методу в плане безопасности есть претензии, вопросы? Зачем Вы про деление, флешки. Ну разработает это программное обеспечение "солидная фирма", со всеми сертификатами и тд и тп. Мы в данном контексте рассуждаем чисто теоретически, рассматривая плюсы и минусы, а Вы уводите в сторону. Вот если бы Вы сказали, что время распознавания большое или что-то подобное, другое дело. Я вообще, если на то пошло, не занимаюсь разработкой данного ПО и не планирую, просто поделился идеей, при этом выслушиваю комментарии, вроде - это бред и тд и минусы по статье.
Второй вариант, блин, просто реализую аппаратно захват видеопотока, а программное обеспечение будет делать разбор, и если оно упадёт по делению на О, то приду с флешкой и починю, и при этом угрозы никакого stuxnet'а для технологической сети не будет.
randomsimplenumber
21.12.2024 08:01Ну зачем строить машину Гольдберга на ровном месте? Правильно настроенный веб-сервер (или ftp, или mqtt) решит эту задачу без лишних прослоек.
Короче говоря, плюсов, по сравнению с любым стандартным способом я не вижу, минус - излишне сложно. Работать сможет, почему нет.
Alex_xabr Автор
21.12.2024 08:01объясню - правильно настроенный веб-сервер, не даёт никаких гарантий, а цена ошибки слишком высокая. А данное решение - излишне сложное, зато 100% безопасное, вот и вся разница.
randomsimplenumber
21.12.2024 08:01объясню - правильно настроенный веб-сервер, не даёт никаких гарантий,
Правильно. Гарантии даёт не сервер, а меры безопасности вокруг него. Например, сервер microsoft.com - часто ли его ломают?
цена ошибки слишком высока
Если рядом нет никого кто занимается безопасностью - цена ошибки около 0.
100% безопасное
То есть вы из своего кармана готовы платить неустойки,
или ехать в лес в багажнике, если возле камеры паучок сплетет паутину и opencv распознает чего то не того, например?
Alex_xabr Автор
21.12.2024 08:01камеры нет, есть захват видеопотока с данными и его обработка;
вы уводите в сторону, мы не говорим о мерах безопасности, мероприятиях и тд., речь о методе передачи данных только с точки зрения защиты технологической сети, опять же при передачи этих данных и только. Мы не рассуждаем про флешки и тд и тп.
Ваш метод потенциально уязвим, тк вы не знаете всех уязвимостей вашего веб-сервера и операционной системы, даже если и настроили всё корректно, не говоря уже о том, что пароли можно получить разными способами.
Пока гарантированно безопасный способ, на мой взгляд, это способ, предложенный Anderson064 и kuzzdra, только при условии отключения провода на приём. Тут вопросы к скорости, и к реализации на больших объёмах данных.
Поэтому, рассуждайте с точки зрения - возможна ли успешная атака, если применять предложенный мной способ или нет.
Если Вы применяете веб-сервер, для передачи данных из технологической сети и при этом у Вас всё работает много лет и нет проблем, не означает, что это безопасно.
randomsimplenumber
21.12.2024 08:01Чем ваша технологическая сеть принципиально отличается от сети любого датацентра?
Alex_xabr Автор
21.12.2024 08:01да много чем, требованиями к этим сетям разные, протоколы разные, но если в контексте нашего общения, то выделяю несколько принципиальных отличий - 1. дата-центр это приём и передача информации, на промышленном объекте в большинстве случаев хватает только передачи информации. 2. Масштабы ущерба, дата-центр - потеря информации, промышленный объект сами понимаете, зависит от объекта 3. цель дата-центра - безопасное хранение, промышленность - управление агрегатами в большей степени. Мы отклоняемся от темы.
randomsimplenumber
21.12.2024 08:01Датацентр, или банк - это очень, ОЧЕНЬ много денег. И ничего, живут с этим. Через банкомат пока ещё никому банк не удалось взломать. И вашу технологическую сеть через умный термометр тоже не взломают..
Alex_xabr Автор
21.12.2024 08:01планировал, через карту видеозахвата, в сети есть информация, специалисты в этой области лучше подскажут, как можно это сделать.
sekuzmin
21.12.2024 08:01специалисты в этой области лучше подскажут
специалисты по машинному зрению лучше скажут
специалисты по информационной безопасности ответятВ какой области специализируетесь, если не секрет ?
Alex_xabr Автор
21.12.2024 08:01да не секрет, но не относится к теме. Ну а почему бы и нет, это была статья - мнение, при этом мне было любопытно услышать специалистов, глубоко погруженных в тему - машинного зрения, асу тп и безопасности, что они скажут, какие могут быть проблемы, на сколько сложно это реализовать, является ли метод гарантированно безопасным, как в заголовке статьи.
Alex_xabr Автор
21.12.2024 08:01далее, если интересно - только по существу метода, просто времени мало, спасибо.
randomsimplenumber
21.12.2024 08:01-- я в тренажерке, не могу говорить
-- ты же сам позвонил
-- не могу говорить, пока
:)
nikolz
Взлом невозможен, потому что нет обратной связи. По этой же причине невозможен контроль ошибок получения данных, невозможно управление датчиками, невозможен избирательный выбор данных .
Это подобно наблюдению футбольного матча по телевизору. Вы кричите футболистам, а Вас слышат лишь соседи по квартире.
Alex_xabr Автор
это не способ управления
почему не возможен контроль ошибок, ошибки с датчика сигнализируются на скаде, теоретически это возможно обработать )
nikolz
Невозможен контроль передачи данных. Т е вместо картинки Вы получаете временами черный квадрат. когда картинка восстановится там уже другие данные. Там за сегодня, а вам надо за вчера.
Alex_xabr Автор
наверно я не достаточно описал способ: мы в реальном времени "парсим картинку" и забираем необходимые данные в виде значений технологических параметров, далее сохраняйте это в базе данных, пишите в OPC сервера, делайте и ними что угодно, смысл в том, что данные забираются с видео сигнала в реальном времени и могут также в реальном времени публиковаться в глобальной сети, но угрозы взлома при этом нет.
Moog_Prodigy
Кто мешает подменить\исказить ваш видеопоток?
Почему вы решили что условное распознавание датчиков будет всегда распознавать то, что на самом деле?
Ну и в итоге если вы туда хотите прикрутить нейронку, у вас будут очень веселые открытия. Вы хотите условно говоря, чтобы некая камера считывала параметры с монитора, и так два канала на вход и на выход. Там что-то распозналось, управляется =))) Типа, нет физического соединения с сетью. Так, ага?
А ничего, что у той же оптики тоже нет физического соединения? Короче, вы какой-то бред несете. И ответ на вынесенный заголовок - нет, 100% невозможно.
Alex_xabr Автор
начнём с того, что я соглашусь с Вами, что возможно это бред ))). 1. камеру я и не планировал использовать, в целом правильно, теоретически видеопоток с операторской станции можно исказить, как можно и взломать данные, которые будут публиковаться в сети, но в технологическую сеть доступа нет, а это самое главное. Да и нейронку не планировал прикручивать, хотя наверно специалисты по машинному зрению лучше скажут , как это можно проще реализовать ).
randomsimplenumber
Можно и наоборот. Отображать данные на экране, экран снимать аналоговой камерой, оцифровывать, результаты публиковать. Так ещё лучше.
Alex_xabr Автор
без камеры лучше , нет доп затрат )
nikolz
Т е вы передаете данные в потоковом видео?
Пользователь принимает этот поток и выуживает из него данные.
Например , мне надо сигналы 1 и 10 датчика (по 2 байта каждый). В кадре датчиков 100.
Я вынужден обрабатывать весь поток, чтобы выделить 4 байта. Верно?
Alex_xabr Автор
пользователь ничего не принимает, данные в потоковом видео обрабатывает программа, конечный пользователь получает веб страницу в текущими данными объекта
Anderson064
Ну если очень хочется решение "на коленке" для параноика-безопасника, возьмите com-порт, подключите только землю и провод передачи, инициатором передачи сделайте ПЛК, принимайте данные на машине с интернетом и отдавайте куда угодно. Но в целом будет достаточным решение сделать ПЛК инициатором обмена, с отдельным коммуникационным модулем и картой регистров/тегов, не допускающей прием настроек и команд (для протокола Modbus, например, ПЛК будет только производить запись необходимых данных в удаленный slave и не читать с него никаких регистров).
Alex_xabr Автор
как в любом методе, есть плюсы и минусы, я просто предложил идёю
jogick
Предложенная Вам выше идея - самая простая и защищённая от взлома. Пару раз такое делал, для обмена данными между условно конкурирующими организациями. Сделанный до меня канал вообще был с голосовыми модемами на выделенной паре, а дальше тоже железный контроллер с ограниченным объемом данных
Alex_xabr Автор
возможно, а если нет доступа к плк, нет возможности менять софт, железо. Для каждой задачи - свой метод, для каждой задачи свой язык программирования, технология. Но данное решений имеет место быть и я думаю найдёт своё применение. ИХМО.
Alex_xabr Автор
опять же вопрос вот в чём, что быстрее реализовать, предположим, имея на рука уже данный софт, и, допустим у нас в сети 20 контроллеров разных производителей, также каких-то других систем - городить передачу по com порту, используя модбас или настроить данный софт в диспетчерской операторов со скады? Это спорный вопрос )