PDA

Просмотр полной версии : Защита проекта



Dmitry
21.01.2009, 20:15
Меня интересует возможность привязать проект к конкретному ПЛК. Нужно чтобы заказчик не смог скопировать скомпилированные файлы с одного ПЛК на другой с сохранением работоспособности. Хотя не знаю, может быть файлы компилируются уже с привязкой к ПЛК?
Просветите пожалуйста.
P.S. Может есть функция получения серийного номера?

Kirill
22.01.2009, 10:04
Меня интересует возможность привязать проект к конкретному ПЛК. Нужно чтобы заказчик не смог скопировать скомпилированные файлы с одного ПЛК на другой с сохранением работоспособности. Хотя не знаю, может быть файлы компилируются уже с привязкой к ПЛК?
Просветите пожалуйста.
P.S. Может есть функция получения серийного номера?

Если вы не загружаете в ПЛК исходники вашего проекта, а только скомпилированный код, то воспользоваться им никто кроме вас не сможет.

Дмитрий Артюховский
22.01.2009, 14:02
неправда ... загружаю проект Кодесисом в контроллер, проверяю работу. Затем утилиткой PLC_IO копирую 3 файла и заливаю этой же утилитой файлы в другой контроллер. Все.
Программкой EASY_PLC выставляю дату и время.

... я так обновления распространяю

Dmitry
22.01.2009, 21:12
То-то и оно, что конечный проект компилируется в файлы и записывается на флеш-память. Файлы эти можно свободно копировать.
Вот ещё мысль. А можно ли как-то из программы узнать MAC-адрес сетевухи, что в ПЛК? Если можно, тогда вопрос решён, т. к. сэмулировать MAC-адрес на ПЛК без отдельной программы невозможно (в отличие от компа).

Филоненко Владислав
22.01.2009, 23:56
Можно, прочитав и проанализировав файл local_adress.dat

Kirill
23.01.2009, 10:06
тогда попробуйте запаролить связь с ПЛК.
делается это в projects-options-passwords.

Dmitry
23.01.2009, 10:32
Можно, прочитав и проанализировав файл local_adress.dat
Спасибо, буду знать. Только есть ли смысл анализировать файл, который так же можно скопировать

Филоненко Владислав
23.01.2009, 11:26
Может быть Вам пересмотреть концепцию получения денег с клиентов. И перейти от продажи лицензий за деньги (для чего нужны все эти привязки, аппаратные ключи и пр.) к обслуживанию и тех. поддержке.
Клиенту всё равно потребуется Ваша помощь для модификации программы. А деньги за каждый экземпляр программы - ИМХО деньги ни за что.

aven
26.01.2009, 15:54
Может быть Вам пересмотреть концепцию получения денег с клиентов.

8-) Это кто же у нас лизенции покупает? "Вы, - говорит, - мне сделайте чтоб работало." Какие там лицензии? В щите всё электрическое - сгорело надо купить и поменять.

Дмитрий Артюховский
26.01.2009, 17:16
то только кодесис будет спрашивать пароль.... утилитке PLC_IO он пофигу )))) странно что сами разработчики этого не знают.
Кстати, MAC-адрес также храниться в файле, который можно переписывать.

Для защиты проекта следует запаролить соединение с контроллером, создать файлик с именем, говорить которое никому не надо, написать туда что-то и программой ПЛК проверять его наличие и содержимое.

Филоненко Владислав
26.01.2009, 18:24
8-) Это кто же у нас лизенции покупает? "Вы, - говорит, - мне сделайте чтоб работало." Какие там лицензии? В щите всё электрическое - сгорело надо купить и поменять.

А зачем тогда защита?

Dmitry
04.03.2009, 20:41
Лицензий и нет никаких, просто хорошо бы было, чтобы заказчик не смог другой фирме заказ отдать с тем же оборудованием и с той же готовой программой. Просто у нас несколько проектов с похожими задачами.

Dmitry
04.03.2009, 20:49
А насчет специального файла на флешпамяти - мысль хорошая, но только секретным имя не сделать: посылаешь команду filedir и на экране список файлов в контролере. Опять же копируем и юзаем.
Хотя, может быть все это перестраховка, компания-заказчик может и не догадаться о самой возможности копировать.

Филоненко Владислав
04.03.2009, 21:18
Возьмите разово деньги за программу. Она теперь не Ваша, а заказчика. И копировать её он может до посинения.
А лучший способ защиты от ухода к конкурентам - техподдержка и качество. Стоимость разработки аналогичной программы сторонним программистом - 1-1,5 т. у.е. никого у не удержит, если нет качества и поддержки.

Dmitry
04.03.2009, 21:38
Ладно, если нельзя защитить, то нельзя.
А насчёт разовой продажи программы - мы ж не только её ставим, мы ж "к ней" ещё оборудования кучу ставим и систему налажиаем. И всё это куда дороже контроллеров. А вот если кто-то ещё станет нашу систему копировать - не есть гуд. Система-то наша тем и отличается, что интелектуально управлется.

Sniper007
04.03.2009, 21:52
Все таки считаю г-н Филоненко, что ваши советы не совсем корректны. Ну хорошо, на данном этапе защищать проект нельзя. Но в будущем то вы хоть это планируете сделать?

Dmitry
04.03.2009, 22:08
Все таки считаю г-н Филоненко, что ваши советы не совсем корректны. Ну хорошо, на данном этапе защищать проект нельзя. Но в будущем то вы хоть это планируете сделать?

Прав, т.к. каждому-своё. У разных фирм разная ситуация и разная политика ведения дел.

Филоненко Владислав
04.03.2009, 22:57
Единственно возможная невзламываемая защита - это реализация части функционала программы г-на Dmitry на отдельном физическом устройстве, защищённом от считывания.
Это может быть и не кусок программы, а какое-то техническое устройство, ноу-хау, доп. контроллер и пр. В этом направлении, если будет интерес, я могу подсказать пару приёмов. Пишите на plc_prog@owen.ru

Любые другие защиты - не проблема для мало-мальски знающих специалистов.
Защита в CoDeSys тут откровенно слаба. Пароль - это сервис протокола GetWay, защита от дурака и оператора производства, можно и без него работать, как и сделано в PLC_IO. Нормальный (не супер) специалист взломает протокол GetWay, имея контроллер, за 1-2 дня.

Но, как и пиратство, копирование можно сделать экономически невыгодным.

Sniper007
05.03.2009, 08:38
Но вам ведь предложили сделать аппаратную привязку. Т.е. возможность получения из программы некоего уникального номера. Это возможно технически реализовать?

Малышев Олег
05.03.2009, 09:10
Ок,намекаю - это возможно, но кричать на всех углах КАК это сделать не нужно. Пишите расскажем.
З.Ы. - ничего сложного кстати :)

Chupakabra
05.03.2009, 17:37
А если в Retain записать ключ? Нет ключа - не работает программа. И из Retain ведь не украсть?

Dmitry
05.03.2009, 19:22
Украсть - Retain переменная храниться в энергонезависимой памяти, а значит банально в файле на флешпамяти. А файл опять же копируется.

Dmitry
05.03.2009, 19:24
Ок,намекаю - это возможно, но кричать на всех углах КАК это сделать не нужно. Пишите расскажем.
З.Ы. - ничего сложного кстати :)

Мой мейл bykovdm@mail.ru Если не сложно расскажите, пригодиться.

Дмитрий Артюховский
10.03.2009, 09:44
А насчет специального файла на флешпамяти - мысль хорошая, но только секретным имя не сделать: посылаешь команду filedir и на экране список файлов в контролере. Опять же копируем и юзаем.
Хотя, может быть все это перестраховка, компания-заказчик может и не догадаться о самой возможности копировать.


Для посылки команды filedir нужно иметь подключение кодесисом, а его можно запаролить. (правда пароль тоже храниться в файле открытым текстом :D ). Но защита это и есть комплекс многошаговых мероприятий, время на обход которых дороже разработки пректа. Да и человек, который знает эти фишки уже может сам поднять приличную задачу.

Chupakabra
10.03.2009, 13:38
Аппаратный ключ на RS232.

Николай Суриков
13.03.2009, 09:55
Ок,намекаю - это возможно, но кричать на всех углах КАК это сделать не нужно. Пишите расскажем.
З.Ы. - ничего сложного кстати :)

kipovec@mail.ru если не трудно. Заранее спасибо.

izwerg
18.03.2009, 19:37
Ок,намекаю - это возможно, но кричать на всех углах КАК это сделать не нужно. Пишите расскажем.
З.Ы. - ничего сложного кстати :)

И мне тоже очень интересно. Если не трудно: andkost@yandex.ru

nikita
24.06.2009, 13:23
Ок,намекаю - это возможно, но кричать на всех углах КАК это сделать не нужно. Пишите расскажем.
З.Ы. - ничего сложного кстати :)

и мне, и мне тоже: niktemp@mail.ru

sergsm
24.06.2009, 17:04
и мне sergienkosm@meta.ua

Getmanov
24.06.2009, 22:52
и мне, и мне, и мне тоже: getmanov(гав)ukr(точка)net

Controller
20.10.2009, 09:52
Нашему заказчику потребовалась дополнительная библиотека для ПЛК. Ввиду ответственности задачи, для удобства и быстроты отладки (C против ST) реализовали ее на внешнем микроконтроллере, связь с ПЛК через RS-485. Уложились в себестоимость 8 usd/компл.
Эти же устройства заказчик использует для защиты CoDeSys проектов.

Основы реализации:

1) аппаратная реализация защиты кода программы обеспечена производителем микросхем.
2) прозрачность и открытость принципов программирования
3) встроенный загрузчик для записи новых алгоритмов

Малышев Олег
20.10.2009, 10:45
имеется в виду себестоимость по железу. но более интересна конечная цена - т.е. с учетом разработки маржи и мелкосерийности

Controller
22.10.2009, 16:01
имеется в виду себестоимость по железу. но более интересна конечная цена - т.е. с учетом разработки маржи и мелкосерийности это и есть входящая себестоимость для нашего заказчика

Михаил@
26.10.2009, 08:35
Ок,намекаю - это возможно, но кричать на всех углах КАК это сделать не нужно. Пишите расскажем.
З.Ы. - ничего сложного кстати :)

Пожалуйста расскажите..., столкнулся с этим,а как самому защититься не знаю:( . Но нет худа без добра,теперь немножко программировать умею:D
saveliev@mail.vrfs.ru
или
saveliev2009@yandex.ru

Mantysh
26.10.2009, 13:52
вопрос Малышеву Олегу или Филоненко Владиславу:


возьмите разово деньги за программу. она теперь не ваша, а заказчика. и копировать её он может до посинения.
а лучший способ защиты от ухода к конкурентам - техподдержка и качество. стоимость разработки аналогичной программы сторонним программистом - 1-1,5 т. у.е. никого у не удержит, если нет качества и поддержки.

В ПЛК 63 и других новых контроллерах
копирование пользовательских программ так же доступно как и в ПЛК1хх?

Филоненко Владислав
26.10.2009, 14:19
не так все просто и есть дополнительные защиты. но, как я уже писал, экономические методы борьбы гораздо эффективнее любой защиты.

Mantysh
26.10.2009, 15:09
не так все просто и есть дополнительные защиты. но, как я уже писал, экономические методы борьбы гораздо эффективнее любой защиты.
не понял вас, архитектура плк63 и новых контроллеров изменена и пользовательский проект хранится внутри микроконтроллера или как в плк1хх?

Филоненко Владислав
26.10.2009, 15:27
1. проект хранится внутри. там вообще другой процессор :)
2. есть дополнительные методы защиты.

nobug
28.10.2009, 18:42
Ок,намекаю - это возможно, но кричать на всех углах КАК это сделать не нужно. Пишите расскажем.
З.Ы. - ничего сложного кстати :)

И мне расскажите gamak.ru@gmail.com

Сергей_К
28.10.2009, 21:12
Сообщение от Малышев Олег Посмотреть сообщение
Ок,намекаю - это возможно, но кричать на всех углах КАК это сделать не нужно. Пишите расскажем.
З.Ы. - ничего сложного кстати
и мне в личку, пожалуйста.

DARNER
28.10.2009, 23:51
и мне пож... ildarbakirov@mail.ru

Avgur
11.11.2009, 15:04
Предлагаемый вариант защиты проекта только для ПЛК Овен или можно использовать для других контроллеров, программируемых под Codesys?
Просьба отправить описание на почту vvbaskov [тузик] mail [тчк] ru

Назаров Александр
29.11.2009, 21:22
Ок,намекаю - это возможно, но кричать на всех углах КАК это сделать не нужно. Пишите расскажем.
З.Ы. - ничего сложного кстати :)
Хотелось бы тоже знать. stint_nag@bk.ru

Малышев Олег
30.11.2009, 09:31
Вообщем несколько смущает количество желающих знать и узнавших уже... В принципе привязку к конкретному контроллеру можно осуществить считывая калибровочные коэффициенты ЦАП. Примечание на - на ПЛК100 этот сервис тоже доступен. Соответствующие библиотеки можно получить на PLC@owen.ru

Александр Ч.
30.11.2009, 22:16
т.е. после новой перепрошивки и калибровки проект перестанет выполняться?
может кол-во желающих связано не с защитой, а с взломом? а для этого надо знать все средства защиты...

Филоненко Владислав
01.12.2009, 09:22
Тoлько после заводской калибровки
Нормально поддерживаемый и доступный продукт взламывать не будут, а если навар 1000% - тут никакие защиты не спасут :)

Игорь Петров
02.12.2009, 12:23
ИМХО: несколько преувеличенная проблема. В ПЛК размещаем только скомпилированный код программы. CoDeSys компилирует программу. Восстановить ее текст из машинного кода не реально! Это очень сильная защита сама по себе.
Если устройство работает, то в ПО постепенно корректируются ошибки, вносятся доработки. Можно содрать скомпилированный код, но у заказчика обязательно возникнет нужда в сопровождении, а делать его не имея исходного проекта нельзя. Поэтому тут важно защищать данные в своем компьютере. Защищать код в ПЛК сродни идее приковывать кошелек к ноге цепью.

dima-profi
01.02.2010, 13:17
Ок,намекаю - это возможно, но кричать на всех углах КАК это сделать не нужно. Пишите расскажем.
З.Ы. - ничего сложного кстати :)

напишите и мне, как защитиь...
dima-profi@ya.ru

saniyo
07.02.2011, 22:14
Как на счет плк 110 ? тогда и мне сбросьте saniyo.work сабака gmail.com

Дмитрий Артюховский
08.02.2011, 09:56
.... установка нормально работает... потом раз, перерыв на месяц, ретайн записался, но часики со временем сожрали аккумулятор... установку включили и тут же выключили... ретайн потерян... здраствуй :eek: новый год! нестойкая штука ретайн (((

.... о мысль пришла!!! записывать на диск файлик (файлики) случайного размера, чтобы получить случайное смещение в каталоге... затем записывать еще один... и проверять привязку файла к номеру кластера.... нужно только подумать как вытащить этот номер !

ustas
18.02.2011, 14:32
Подскажите, как получить калибровочные коэффициенты для ПЛК100. Прошу ответить на адрес a_i_bolotovi@mail.ru
Спасибо.

Николаев Андрей
18.02.2011, 17:13
Никак.
Пожалуйста.
Что Вы в ПЛК100 калибровать собрались?

ustas
21.02.2011, 09:46
Я собрался защитить программу.
На ПЛК150 все работает, там есть возможность считать калибровочные коэффициенты из соответствующего файла, к которым привязана программа. Что делать с ПЛК100, где этого файла нет, как добраться до индивидуальных особенностей конкретного контроллера.

swerder
21.02.2011, 10:26
ustas в плк100 нет аналоговых входов, соответственно и нет файла с коэффициентами

ustas
21.02.2011, 11:01
Вообщем несколько смущает количество желающих знать и узнавших уже... В принципе привязку к конкретному контроллеру можно осуществить считывая калибровочные коэффициенты ЦАП. Примечание на - на ПЛК100 этот сервис тоже доступен. Соответствующие библиотеки можно получить на PLC@owen.ru

Каким образом этот сервис доступен на ПЛК100?
Какие библиотеки нужны?

drvlas
25.02.2011, 10:19
ИМХО: несколько преувеличенная проблема. ...
Можно содрать скомпилированный код, но у заказчика обязательно возникнет нужда в сопровождении

Действительно, что "несколько". Ситуации бывают разные.
Пример не с Луны. Я отдаю запрограммированный ПЛК заводу для включения в состав готового изделия. Это изделие завод продает конечному потребителю и тот юзает его совершенно просто: включи и молись :)

Я --> завод --> пользователь

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

Реальная ситуация?

Если у того конечного потребителя и возникнет некая хотелка по улучшению, то ко мне он не обратится - он покупал полное изделие у завода, служба сервиса там есть, пусть она и работает на необъятных просторах 1/6++ суши.
Если изменения все же будут внесены (да хоть по моей инициативе, хоть по требованию Клиента), то на завод начнут поступать ПЛК с новой программой - которая сразу становится доступной в скомпилированном виде.

Я не параноик, предполагаю, что завод не будет предпринимать серьезных шагов по ущемлению моих авторских прав. Но искушение есть? Есть. Зачем провоцировать? Лучше принять простые меры по тому, чтобы слить программу с ПЛК и потом вливать ее в новые было трудно.

Уже не говорю о том, что есть люди, которые могут повторить полное изделие за границами завода. Толковый парнишка в Армении берет у меня старый вариант контроллера и спокойно лепит некое устройство, выполняющее те же функции (не мне оценивать их качество, но рынок у него есть). Так ведь в старых (не ПЛК) программа контроллера просто залочена - никак ее не скопируешь. Я спокоен, что оно купит у меня ровно столько контроллеров, сколько изделий он создат своими усмелыми ручками...

Итак, продавая свою работу в виде проги в серийно выпускаемом ПЛК, встроенного в "мелкомассовое" изделие, я должен побеспокоиться о том, чтобы повторять изделие можно было только с моего одобрямса.

Вы согласны, что в таком случае защита нужна? Да, не слишком изощренная, но... Все ведь познается в сравнении. Поработав с микроконтроллерами от Атмела и Фуджи, я стал немного разбалован простым средством: шьешь прогу и ставишь лок-биты. И - вуаля! Нужны героические усилия, чтобы это преодолеть.

Считаю необходимость защиты в моем конкретном случае доказанной.

А про реализацию защиты... Абсолютно недопустимо опираться на сохранность инфо в RETAIN. Хорошенькое себе дело, она меня покусала! Где-то в Узбекистане аккумулятор прикажет долго жить и что? Ехать туда сравнимо со стоимостью изделия. Чушь.
FLASН - тоже под вопросом. Да главное, что я здесь и не увидел, как же его использовать, чтобы выпускник КИПовского коллежда это не сломал за бутылку.

Поэтому... Вопрос для меня открыт.

Кстати, путь со внешним ключом у меня есть. Есть девайс, работающий по Модбасу на RS485, куда я ключик и могу прописать. Но получается чуточку коряво. Тот девайс иногда требует ремонта. В старом поколении изделий (до ПЛК-шная эра) его снимали, ставили подменный - и гоу-гоу! А теперь как-то изделие надо бы запустить с девайсом из ЗИПа. А ЗИП может быть один на группу изделий. КАРОЧИ, путь есть, но несколько геморный. Поэтому и читаю данную тему с интересом.

А что есть уникального в ПЛК, к чему можно привязать ключ? Ну, саму прошивку программы можно делать с номером (дико как-то, или нет?). Ну, МАС-адрес (а его нельзя сыммитировать с другого ПЛК?). К чему привязать ключик?

Дмитрий Артюховский
25.02.2011, 10:56
ну, когда есть внешняя защищенная штучка, то привязка к железу уже не нужна.... строится обмен динамическими посылками..... ПЛК берет случайное значение, например текущее время, слегонца кодирует его по плавающему алгоритму и посылает внешнему контроллеру.... тот принимает посылочку, проверяет ее на осмысленность, еще чуток химичит и отправляет обратно.....
таким образом ПЛК получает из "ключа" некие динамические данные, сравнивает их со своими ожиданиями и принимает решение о продолжении работы.... данные не статичны - просто подмену не поставишь, закон кодирования в ПЛК не виден без текста программы, а код хоть обкопируйся... прога в ключе не копируется и не считывается.... динамический обменный код, даж простенький, за бутылку не сломаешь )))))
ПЛК и прибор из ЗИПа вполне могут меняться независимо друг от друга.... работоспособна только связка...

drvlas
25.02.2011, 11:08
Похоже, это замечательная идея! Уточню, потому как мало с данными вопросам сталкивался.

Значит, контроль количества одновременно работающих устройств - по количеству девайсов-ключей, так? Каждый ключ имеет, считаем, достаточную степень защиты от копирования. А все изделие будет работать с каким-угодно из ПЛК, куда залили (пусть скопированную) программу, если в него вставить ключик. Так?

А сам ключик - универсальный? Есть ли возможность вынуть ключ, поставить не его место другой, а тот отправить на ремонт или просто выбросить?
Если именно так и задумано, то речь идет о количестве ключиков, не ПЛК. Я верно понял?

Дмитрий Артюховский
26.02.2011, 11:04
Да, совершенно верно. Только очевидно, что количество работающих ПЛК равно количеству используемых ключей. Количество ЗИП не ограничено. А количество ПЛК будет тем же... никому не нужен самостоятельный геморрой с покупкой, программированием контроллеров, если выгоды нету. Кроме того, "Овен" нас, разработчиков, без работы не оставит.... новые поставляемые контроллеры далеко не всегда работают с ранними программами )))

ustas
27.02.2011, 14:23
Внешние ключи это конечно хорошо, но это дополнительная заморочка. У каждого контроллера есть уникальный номер, есть номер процессора и ряд других особенностей. Просто производитель не предоставляет соответствующих библиотек для доступа к этим параметрам. А всего то надо выложить библиотеку и все.

Pointer
27.02.2011, 15:14
ustas, +1000... Абсолютно с вами согласен... Вместо этого убеждают, что это никому не нужно :)

Логвиненко Андрей
28.02.2011, 10:44
Добрый день всем.Давно слежу за темой, но заинтересовался по другому поводу. Сейчас планирую проект , где ПЛК будет подключен в локальную сеть предприятия, и озадачился следующим вопросом: любой пользователь, зная IP адрес контроллера, по злому умыслу, или нечайно, может подключиться к нему, и нарушить его работу, что приведет к аварии технологического процесса. Нашел средство защиты- в ПЛК-браузере есть возможность установить установить пароль, что в принципе будет достаточно, также можно исключить возможность копирования файлов средствами CoDeSys.
Но есть еще один путь для злоумышленника - программа записи чтения файлов с ПЛК.
Решил проверить, будет ли работать парольная защита , и увидел, что эта программа обходит пароль с уровнем защиты 0 и с уровнем защиты 1.
Получилась замечательная програмка для взломщиков и диверсантов.
Обращаюсь с разработчикам ПЛК - доведите до ума парольную защиту, и вопрос будет снят.

Andy
28.02.2011, 18:29
Сегментация сети на управляемых свичах спасет Вас.

Логвиненко Андрей
28.02.2011, 18:34
Сегментация сети на управляемых свичах спасет Вас.
Меня спасать не надо, для того, чтобы впарить заказчику красивую картинку на компьютере, я должен буду предложить ему перетряхнуть всю локальную сеть предприятия. Угадайте, куда он меня пошлет.

BETEP
28.02.2011, 22:11
зачем перетягивать? свою подсеть для оборудования и нужных компов, на компе второй IP и маску. если не прошло, значит сисадмин не дремлет, тогда к нему что-бы маршруты оформил.

swerder
01.03.2011, 09:42
зачем перетягивать? свою подсеть для оборудования и нужных компов, на компе второй IP и маску. если не прошло, значит сисадмин не дремлет, тогда к нему что-бы маршруты оформил.

и как же это поможет от диверсанта с программой чтения флеша контроллера?

Andy
01.03.2011, 11:47
Меня спасать не надо, для того, чтобы впарить заказчику красивую картинку на компьютере, я должен буду предложить ему перетряхнуть всю локальную сеть предприятия. Угадайте, куда он меня пошлет.
"Впарить" - это по-нашему :) Объясните, что если такие вопросы возникают, то от хакера надо защищать и другие узлы сети, не только ПЛК. Что и решается во многих случаях сегментацией.
На крайняк, можно поставить роутер перед ПЛК, который по VPN связать с сервером (уж оттуда-то можно разграничить доступ?)

Логвиненко Андрей
01.03.2011, 12:36
Организация локольной сети - компетенция её хозяина, моего заказчика, моя задача как подрядчика-обеспечить надежность оборудования. Мне дают точку доступа и всё. Дальше выясняется, что любой пользователь, скачавший несколько программ из интернета, получает полный доступ к файловой системе ПЛК, может удалять, подменять файлы, считать файл пароля и получить полный доступ к ресурсам контроллера через CoDeSys.
Защищать надо ПЛК, и не думаю что это представляет невыполнимую задачу.

Pointer
01.03.2011, 13:00
Странная реакция на найденные пользователем дыры... да производитель должен быть благодарен за это, всёравно рано или поздно всплывёт, лучше уже заранее начать латать...

BETEP
01.03.2011, 14:25
Защищать надо ПЛК
ещё нужно защитить все кнопки, панели и компы со скадами от диверсантов операторов, любое действие через парочку паролей.

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

Может безопасностью должны заниматься админы и охранники?

не, молотком проще.

Логвиненко Андрей
01.03.2011, 15:58
Утрировать не надо. Если злоумышленник обрушит сеть, контроллер будет работать, если удастся подключиться к ПЛК, встанет производство, возможны и более тяжелые последствия.
Безопасность сетей- это забор, пусть этим занимаются сисадмины, а на ПЛК нужен замок, то есть пароль, кстати на панелях пароль предусмотрен, как защита от шаловливых ручек, на каждом компьютере в сети стоит антивирус и фаерволл, стоит ограничение на общий доступ. ПЛК не защищен никак не от хитрых вирусов, а от общедоступных программ.
Я занимаюсь технологией а не сетями, и навязывать заказчику особые требования по безопасности не должен. Меня просто не поймут.

BETEP
01.03.2011, 17:30
да нет здесь никаких особых требований, просто доступ к порту коммутатора на котором висит контроллер, должен быть настроен только на нужные компы, (домашний длинк подобное может) если вместо коммутаторов свичи, (маловероятно, 2011 на дворе) тут сложнее, но можно замаскировать сеть с контроллерами через другую подсеть.
с паролями не так всё просто, но они на самом деле нужны, забыл кодесис про такую мелочь.

А почему Вы так уверенны что овеновский ПЛК нельзя перезагрузить через эзернет без использования кодесиса и прочих инструментов?

Логвиненко Андрей
01.03.2011, 17:55
А почему Вы так уверенны что овеновский ПЛК нельзя перезагрузить через эзернет без использования кодесиса и прочих инструментов?
При наличии желания и умения возможно все. Уровень защиты должен соответствовать уровню опасности.
Я не админ и не суперхаркер, обратил внимание на уязвимость файловой системы ПЛК средствами, находящимися в свободном доступе.

Olegis
01.03.2011, 21:21
Даже если поставить пароль на программу, можно очень просто скачать из контроллера загруженные компилированные файлы программы и загрузить их в любое количество ПЛК. Можно сделать это так:
1.Создать пустой проект.
2.Пытаемся загрузить его.
3.На предложение о загрузке новой программы отвечаем "Нет"
4.Связь устанавливается без загрузки новой программы
5.Входим через браузер ПЛК и считываем список загруженных файлов и их названия
6.Копируем компилированные файлы из ПЛК
7.Заливаем их в другой ПЛК.
Получается запоролить соединение с ПЛК не возможно.Можно только закрыть исходник, так он в контроллере храниться в компилированном виде. Защиты от копирования в другие ПЛК(для ПЛК100) нет!!!

Nazar
02.03.2011, 07:13
Согласен с Olegis, скопировать так можно. Защиту вижу в привязке каждого проекта к своему железу (контроллер, ключ и т.д.).

Olegis
02.03.2011, 09:38
Господа Разработчики! Услышьте нас, автоматчиков. Выделите немного времени,сделайте,пожалуйста, свою библиотеку для чтения серийного номера процессора или файл, защищенный от чтения-копирования (чтобы доступ был только из программы ПЛК). Зачем мне лепить аппаратный ключ и занимать порт, если можно стандартным путем пойти (как у многих производителей). Сейчас защита есть у любого дешевенького китайского контроллера.

Andy
02.03.2011, 10:04
Уровень защиты должен соответствовать уровню опасности.
Так купите более другой ПЛК, за более другие деньги. Вы хотели сэкономить на дешевом контроллере, так пользуйтесь тем, что дают. Добавлю, что меры безопасности не ограничиваются техническими вопросами; организационных никто тоже не отменял: ограничение доступа в операторскую, разграничение полномочий, ответственность оператора... А Вы в штыки встречаете мое вполне адекватное предложение. Вы вот уверены, что DDoS Сименса не свалит? А еще хакер может подключиться к шине от ПЛК к удаленным модулям (ну пусть у Вас их нет), так надо обмен с ними шифровать и паролировать?

Николаев Андрей
02.03.2011, 10:12
На самом деле подход интересный, с библиотекой, считывающей номера какой-либо микросхемы... При создании новых ПЛК попробуем внедрить.
С большой вероятностью в существующих ПЛК такую функцию "просто" реализовать не получится...
А по поводу защиты проекта - мое ИХМО Вы знаете. А от атак по сети никакая привязка к номерам микросхем не поможет... Разные задачи - разное оборудование...

Логвиненко Андрей
02.03.2011, 12:15
Так купите более другой ПЛК, за более другие деньги. Здесь обсуждается продукция Овена.
На сколько дороже станет ПЛК если в нем нормально реализовать парольную защиту?

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

А Вы в штыки встречаете мое вполне адекватное предложение. Заказчик может посчитать такое предложение неадекватным, далее см п.1.

Andy
02.03.2011, 12:41
То есть, над орг. мерами Вы даже не задумываетесь. Можете не отвечать.

PAVEL_EKB
10.07.2015, 09:42
Добрый день. Скажите, пожалуйста, кто-нибудь смог защитить программно проект от копирования в ПЛК63? Если да, то подскажите, пожалуйста,как, нууу ооооооочень надо. Можно и на почту pasha_sh@e1.ru .

Николаев Андрей
12.07.2015, 15:18
Добрый день.
Это не надо делать - проект из ПЛК63 достать невозможно.

PAVEL_EKB
14.07.2015, 07:47
Проект достать невозможно это я понимаю, но его можно растиражировать на другой ПЛК63. Объясню почему я не могу отдать коды. Нами разработана серийная установка (клапана, датчики и т.д.) и она управляется контроллером(на данный момент импортным, но стоит задача импортозамещения). Конкуренты легко могут повторить все железо, но не имея алгоритма управления или контроллера с программой все это железо ничего не стоит. Так вот подскажите, пожалуйста, как защититься от тиражирования.

ASo
14.07.2015, 07:52
Скажем так. Достать "стандартными" методами скомпилированную программу именно из ПЛК63 - невозможно.
От "нестандартных" методов, типа выпаять память, прочитать ее программатором, записать впаять - Вы принципиально не защититесь. Информация копируется - это ее фундаментальное свойство.

kolyan
14.07.2015, 09:11
Скажем так. Достать "стандартными" методами скомпилированную программу именно из ПЛК63 - невозможно.
От "нестандартных" методов, типа выпаять память, прочитать ее программатором, записать впаять - Вы принципиально не защититесь. Информация копируется - это ее фундаментальное свойство.

Вот хотел бы поподробнее услышать про "стандартные" методы.
А зачем нужна тогда программа тиражирования?
Вот выдержка из ее описания:

"...Программа тиражирования предназначена для копирования программы из одного контроллера на другой без использования CoDeSys. Данная программа не позволяет считать исходный код проекта, она копирует образ памяти с программой(в компилированном виде) и позволяет распространить его на подобные устройства. Программа позволяет копировать данные только на аналогичные устройства, например с ПЛК73M только на ПЛК73М."

То есть, я могу купить один ПЛК63 или ПЛК-73 с программой, а потом с помощью программы тиражирования попросту распространять ее на "пустые" ПЛК.

Не так ли?

petera
14.07.2015, 10:18
А Вы после программирования ПЛК сломайте ему порт Debug, замкнуть перемычкой Tx и Rx, или откусить что-либо на плате. И ПЛК с такой "доработкой" - в шкаф управления, пусть конкуренты голову ломают.

ЗЫ. А можно не ломать порт,
Т.к. программа тиражирования работает через кабель КС2, то нужно припаять перемычку между 4 и 5 конт. в разьеме ПЛК, в результате КС2 будет восприниматься ПЛК как КС1. В результате КДС будет подключаться к ПЛК нормально, а программа тиражирования - нет:rolleyes:

"Параметр "dev" считать не удалось. Прибор не ответил на запрос."

Только Ваши потенциальные конкуренты то же сидят на этом форуме:)

kolyan
14.07.2015, 11:08
А Вы после программирования ПЛК сломайте ему порт Debug, замкнуть перемычкой Tx и Rx, или откусить что-либо на плате. И ПЛК с такой "доработкой" - в шкаф управления, пусть конкуренты голову ломают.

ЗЫ. А можно не ломать порт,
Т.к. программа тиражирования работает через кабель КС2, то нужно припаять перемычку между 4 и 5 конт. в разьеме ПЛК, в результате КС2 будет восприниматься ПЛК как КС1. В результате КДС будет подключаться к ПЛК нормально, а программа тиражирования - нет:rolleyes:


Только Ваши потенциальные конкуренты то же сидят на этом форуме:)

Да, интересные способы. В принципе, мне просто интересно. Я сам не изготовляю ничего на продажу. Всё только внутри своего же производства.
:D

PAVEL_EKB
14.07.2015, 11:23
Еще есть какие-нибудь варианты, а то про разные перемычки я тоже думал, но их не так сложно вычислить. Можно и на почту pasha_sh@e1.ru .

ASo
14.07.2015, 11:34
НЯЗ, эта программа копирования так и не появилась.

kolyan
14.07.2015, 11:53
Ну, защититься программно никто не запрещал.
Про это не раз говорили на форуме.
Первое, что в голову пришло - простейший счетчик организовать.
И, например, нажимать после загрузки программы в ПЛК 10 раз кнопку "альт" на плк.
Результат счета записать в переменную ретайн.
Если значение переменной= 10, то начать работу.

kolyan
14.07.2015, 12:00
НЯЗ, эта программа копирования так и не появилась.

В смысле - не появилась?
Сейчас только что проделал следующее.
Взял лишний кабель КС1, раскусил внутри разъёма перемычку - получился КС2;
С помощью программы тиражирования ( http://www.owen.ru/catalog/codesys_v2/72830689 ), считал в файл свою программу из ПЛК;
Создал простейший проект ( ; ) ;
Записал его в ПЛК-73 с помощью КС-1;
Присоединил КС-2, запустил программу тиражирования - и пожалуйста! Моя старая программа из файла в компьютере прекрасно переместилась в ПЛК, затерев при этом только что созданную.
Таким образом я бы мог за полчаса более десятка ПЛК запрограммировать. Безо всяких КДС. И не факт, что своим кодом.:)

Так что - вопрос остаётся.

Гарчев Евгений
14.07.2015, 18:40
Программный способ с ретайн-переменными не поможет, т.к. они тоже тиражируются, так что остается задать пароль/комбинацию на каждый пуск установки при включении (не только на первый).

PAVEL_EKB
15.07.2015, 06:54
Где-то на форуме читал, что вроде бы у каждого контроллера есть некие калибровочные коэффициенты аналоговых входов, у всех они разные. Кто-нибудь может прокомментировать, возможно ли их использовать и как к ним обращаться?

Nts
15.07.2015, 17:27
Программный вариант защиты от тиражирования есть..но Вы же не хотите,чтобы тут его описали-враг не дремлет и тоже читает форумы :)
А вообще,любую защиту можно обойти,если знать,как она работает.
п.с. даю подсказку-обычно в электрической схеме бывает не только контроллер.но и ...и не один...

Филоненко Владислав
17.07.2015, 09:45
Не надо ничего выпаивать.
Делаем просто.
1. Заводим параметр, защищённый паролем и с атрибутом "не редактировать по сети(или вообще без сети)", тип "конфигурационный"
2. В программе привязываем работоспособность программы к значению параметра, при этом программа должна считывать значение при старте. Также можно поменять значение на другое на время работы программы через канал I/O(значение в EEPROM не поменяется)
3. Задаем параметру нужное значение с панели.
4. Программа тиражирования не сможет записать значение в параметр, запрещенный к изменению по сети
5. Программу желательно сделать так, чтобы она не совсем ломалась, а немного сбоила.
6. Для надёжности завести несколько параметров.

Конечно, взломать можно, но это уже не тривиальное скопировал и вперёд.

Альтернативно, можно привязывать программу к значениям калибровочных коэффициентов (они уникальны для кажого прибора), но не пробовал, пока чисто теория

Irgy
08.06.2016, 10:37
Не надо ничего выпаивать.
Альтернативно, можно привязывать программу к значениям калибровочных коэффициентов (они уникальны для кажого прибора), но не пробовал, пока чисто теория

Кто знает, как реализовать, поделитесь, пожалуйста. irgyska@mail.ru

Филоненко Владислав
09.06.2016, 13:37
есть файл калибровки, для ПЛК15х. Считываем, сравниваем с забитыми в программе, решаем можно ли работать программе.

Yegor
09.06.2016, 13:48
Разве этот файл не попадёт с остальными на другой контроллер, если я попытаюсь скопировать программу на новое железо (понятно, что калибровки не подходящие)?

Филоненко Владислав
16.06.2016, 08:06
Есть 2 варианта:
1. ПЛК запаролен - скачать файлы не удастся, защита работает 100%
2. ПЛК не запаролен, файл копируют, но его аналоговые I/O работают с погрешностью.

melky
23.05.2017, 17:11
от тиражирования надо привязываться к устройству (например панели или еще чему, откуда можно считать уникальный идентификатор). В остальных случаях копируются все файлы с ПЛК и зашиваются в новый.

Как пример, например программа считывает показания счетчика электроэнергии, из него можно считать серийный номер. Отдавать DEFAULT для прошивки по месту (если слетела). Если обновление - делать по воздуху самостоятельно.