Я не уверен, что это по теме или нет, но это так специфично для .NET WinForms, что, я считаю, здесь имеет больше смысла, чем на сайте стека безопасности Security.Общие уязвимости для приложений WinForms
(Кроме того, это строго связано с безопасного кодирования, и я думаю, что это, как на тему, как и любой вопрос с просьбой об общих уязвимостей, которые я вижу во всем сайте.)
В течение многих лет, наша команда разрабатывает моделирование угроз на проектах веб-сайта. Часть нашего шаблона включает в себя10 лучших и других известных уязвимостей, поэтому, когда мы делаем моделирование угроз, мы всегда следим за тем, чтобы у нас был документированный процесс для устранения каждой из этих распространенных уязвимостей.
Пример:
SQL-инъекция (OWASP-1)
- Стандартная практика
- использовать хранимые Параметризованные процедуры, если это возможно для доступа к данным, где это возможно
- Использование параметризованных запросов если Хранимые процедуры не осуществимы. (Использование 3-й партии DB, что мы не можем изменить)
- побег одиночные кавычки только тогда, когда вышеуказанные варианты не представляется возможным
- разрешения баз данных должны быть разработаны с учетом принципа наименьших привилегий
- По умолчанию, пользователи/группы имеют нет доступа
- При разработке документируйте доступ, необходимый для каждого объекта (Таблица/Вид/Хранимая процедура) и бизнес-потребность для доступа.
- [надрез]
Во всяком случае, мы использовали OWASP Top 10 в качестве отправной точки для широко известных уязвимостей, специфичных для веб-сайтов.
(Окончательно вопрос)
В редких случаях мы разрабатываем WinForms или приложения службы Windows, когда веб-приложение не отвечает потребностям. Мне интересно, есть ли эквивалентный список общеизвестных уязвимостей безопасности для приложений WinForms.
Off верхней части моей головы, я могу думать о нескольких ....
- SQL Injection все еще остается проблемой.
- Переполнение буфера, как правило, предотвращается CLR, но более возможно, если используется не управляемый код, смешанный с управляемым кодом
- Код .NET может быть декомпилирован, поэтому хранение конфиденциальной информации в коде, в отличие от зашифрованного в app.config ...
Есть ли такой список или даже несколько версий такого списка, из которого мы можем брать кредиты, чтобы создать собственный? Если да, где я могу его найти?
Я не смог его найти, но если он есть, это будет большой помощью для нас, а также других разработчиков WinForms.
Это очень интересный вопрос. Я не уверен, как сообщество в целом будет относиться к теме вашего вопроса для SO, но, тем не менее, это хороший вопрос. –
Как развертывается ваше настольное приложение? Вы передаете это приложение всем, кто этого хочет, или ограничивается доверенными лицами на месте? – JDB
Это для внутреннего использования внутри нашей компании. Мы находимся в розничном бизнесе с довольно большим количеством торговых точек (магазинов). Приложение развертывается с использованием программного обеспечения для управления конфигурацией, но по сути это простое развертывание XCOPY. Мы доверяем нашим коллегам, но с несколькими тысячами сотрудников на этих сайтах всегда существует риск инсайдерских атак. Приложения, которые мы создаем, могут иметь или не иметь дело с конфиденциальной информацией. Наш шаблон включает в себя флажок «N/A», поэтому в незащищенных приложениях мы можем не беспокоиться обо всех элементах в списке. Мы просто хотим создать хороший список. – David