2016-07-14 2 views
0

Я использовал this MS link, чтобы собрать TCP-сервер в C# на ПК. Я держу порт открытым и ожидаю, что соединения будут установлены различными клиентами ПЛК. ПЛК находятся в движении автономных ботов, поэтому они перемещаются в диапазон Wi-Fi и выходят из него. Я использую эту настройку для получения текущих переменных (батарея% и т. Д.) От ботов и отображения их в пользовательском интерфейсе для системного администратора для мониторинга.C# TCP Server-Socket Security с PLC

Я настраиваю маршрутизатор с пересылкой портов, чтобы данные поступали на серверный ПК от разных клиентов. Я использую ПЛК Siemens S7-1200, и я не верю, что они поддерживают высокопроизводительные функции безопасности, такие как ПК.

Итак, мой вопрос в том, что если на компьютере администратора работает служба Windows, которая постоянно контролирует открытый порт, есть ли риск для безопасности? И если есть риски, можете ли вы объяснить и поддержать ссылки или ресурсы, чтобы помочь мне исправить эти дыры (на C#)?

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

+1

Наличие открытого порта имеет элемент риска, это зависит от вашего приложения от того, как вы его обрабатываете. обычно вы слышите о переполнении буфера и т. д., давая людям доступ .. уровень риска также зависит от того, что могут делать ваши боты .. так, например, если кто-то может попасть на Wi-Fi, а проводы затормозить трафик, и эти боты могут быть отключены машинами, ваш риск будет ... ваша техника может быть постоянно отключена элементом-изгоем .. или это может привести к сбою приложения, чтобы ничто не могло его отключить .. и т. д. – BugFinder

+1

Угроза безопасности от сохранения порта не открыта, поскольку исполняемый код не является выполняются на сервере. Вы склонны к атаке трафика, где клиент постоянно отправляет данные на порт и блокирует других пользователей от соединений. – jdweng

+0

@BugFinder, если вы должны обрабатывать переполнение буфера и отбрасывать любые неизвестные сообщения, тогда система не должна терпеть неудачу? – tdwolff

ответ

0

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

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

Если вы сделаете шаг аутентификации, вы захотите зашифровать канал до аутентификации, используя что-то вроде SSL или SSH. В противном случае, кто-то другой мог бы посмотреть ваш трафик, наблюдать за транзакцией аутентификации, а затем просто скопировать его.

Удачи! Безопасность - это глубокое отверстие кролика, но очень ценное умение!

Смежные вопросы