Лидеры форума
Popular Content
Showing content with the highest reputation on 10/17/12 in all areas
-
5 pointsУважаемые CISO слукавили Дело в том, что любая современная АСУТП по сути представляет собой некий набор контроллеров, которые связаны в единую сеть (причем не важно - будет это беспроводная сеть любого типа, RS-485, Ethernet ...) и каких-то управляющих центров (это может быть сервер, промышленный микрокомпьютер - что угодно). Контроллеры собирают информацию, опрашивая многочисленные датчики, и передают ее на управляющие сервера. Там все это обрабатывается, записывается в БД, анализируется, и принимаются решения о том, что делать. Эти решения доводятся до контроллеров, и они их исполняют. Вот собственно и все (точнее не все - контроллер тоже может иметь право управлять процессом в определенных рамках, без команд свыше ... равно как в этой системе могут быть некие рабочие места операторов, где собранные данные визуализируются и в человеко-читаемом наглядном виде отображается технологический процесс с возможностью вмешаться в управление вручную. В итоге можно полностью автоматизировать производство, причем получить "разумную автоматизацию" с многоуровневой защитой от разных сбоев. Однако как будет устроен контроллер ? Собственно путей несколько, давайте порассуждаем: 1. Применяются заказные контроллеры, при этом 1.1 программисты с нуля напишут программу контроллера. Это неэффективно с точки зрения стоимости и универсальности, так как придется все строить с нуля, но такая программа будет идеально "заточена" строго под конкретную задачу управления. Однако чем сложнее программа, тем больше придется трудиться и извращаться программисту, и если у него не программа с мертвым циклом типа "украл -> выпил -> в тюрьму -> sleep(100 мс)", в котором идет опрос пары датчиков и принятие простейших решений типа "включить реле №2", то рано или поздно программист станет думать "а как быть ?". Можно конечно натаскать из Инет или написать библиотеки для работы с сетью, накопителями типа флеш-карточки ... промежуточным вариантом может быть установка на контроллер JAVA, или использованный в Arduino подход и т.п. - но это повышение удобства программирования, а не полноценная встраиваемая ОС для решения сложных задач. И в итоге рано или поздно наступает п.п. 1.2 1.2 на контроллер ставится некий обрезанный диструбутив Linux, и программист уходит от низкоуровневого программирования, и его работа мало чем отличается от написания программ под *nix. Это значительно проще, но вопросы защиты в этом самом обрезанном Linux нередко на последнем месте. Я лично видел "перлы" типа работающего терминального доступа на контроллере АСУТП (юзер ROOT, пароль ROOT), "kernel panic" в ответсвенный момент управления чем-то... и так далее. Возможны аналоги - системы типа MSDOS (яркий пример более чем десятилетней давности - промышленные компьютеры Octagon, мне с ними довелось плотно поработать лет 12-14 назад), RTDOS, WinCE и т.п. - но это не меняет ситуации, т.е. применяется микроконтроллер и некая встраиваемая операционка на борту, под которую пишется ПО. Кстати, именно так устроено большинство роутеров, медиапроигрывателей, спутниковых ресиверов и т.п. 1.3 берется промышленный ПК (а если нет денег на него - обычный ПК, засунутый в железный ящик), на него ставят к примеру XP или Linux, под которой работает управляющий софт Причем доходит до абсурда - БКК (Большая Красная Кнопка - аварийный стоп) на некоем автоматизированном посредством АСУТП агрегате может тупо заводиться на LPT порт и опрашиваться программно По понятным причинам в случае "синего экрана" жать на нее можно до опупения, и если такой ПК управляет чем-то важным типа робота, то можно лишиться или робота, или конечностей 2. Применяется некий готовый стандартный ПЛК, который просто конфигурируется и программируется под конкретную задачу. Для таких решений нередко программирование ведется на некоем стандартизированном высокоуровневом языке, зачастую полувизуальным способом. Просто, быстро, не требует лезть в тонкости аппаратной реализации контроллера, но далее это некий "черный ящик", и как несложно догадаться, сделанный по методикам п.п. 1. Один из известных производителей - Siemens. Универсальность ПЛК, простота их программирования и стандартизация протоколов обмена с минимумом их защиты может стать ахиллесовой пятой построенных на их базе систем. Ключевое слово - Stuxnet Замечу, что я видел ряд сложнейших АСУТП, управляющих целыми заводами, и где в сетевых протоколах вообще не было понятий типа "авторизация" или "проверка подлинности" ... равно как термин "защищенность" не был применим к контроллерам. И вот тут проявляется "лукавство CISO" Конечно, куда проще отсечь сегмент сети, образующей АСУТП, от внешнего мира - и далее считать, что все хорошо, замечательно и неуязвимо. Однако в случае заражения любого управляющего ПК в этой сети получим полный капут. Равно как получим тот-же капут, если некий злодей подключит небольшое устройство к такой сети (мудрить сильно не нужно - обычный нетбук с сотовым модемом, котрый в нужный момент отдаст нужные команды и устроит небольшой тарарам ...).
This leaderboard is set to Москва/GMT+03:00