Сценарии безопасности приложений в SQL Server

Скачать ADO.NET

Не существует единого правильного способа создания безопасного клиентского приложения SQL Server. Каждое приложение отличается уникальными требованиями, средой развертывания и категорией пользователей. Достаточно безопасное приложение при первоначальном развертывании может стать менее безопасным с течением времени. Невозможно предсказать, какие именно угрозы могут возникать в будущем.

SQL Server развивался с каждой новой версией: в него добавляли новейшие функции безопасности, позволяющие разработчикам создавать защищенные приложения для баз данных. Однако безопасность не поставляется в готовом виде. Для этого требуется непрерывный мониторинг и обновление.

Распространенные угрозы

Разработчикам необходимо понимать угрозы безопасности, средства, предоставляемые для их устранения, и способы того, как избежать брешей в системе безопасности, вызванных пользователем. Безопасность лучше всего рассматривать как цепочку, разрыв одного звена которой нарушает надежность всей цепи. В следующем списке перечислены некоторые распространенные угрозы безопасности, которые более подробно обсуждаются в разделах этой статьи.

атака SQL Injection

Внедрение кода SQL — это процесс, с помощью которого злонамеренный пользователь вводит инструкции Transact-SQL вместо допустимых входных данных. Если входные данные передаются непосредственно на сервер без проверки и если приложение случайно выполняет введенный код, атака может повредить или уничтожить данные. Можно предотвратить атаки на SQL Server путем внедрения кода, используя хранимые процедуры и параметризованные команды, избегая использования динамического кода SQL и ограничив разрешения для всех пользователей.

повышение привилегий.

Атаки с повышенными правами возникают, когда пользователь может использовать привилегии доверенной учетной записи, например владельца или администратора. Всегда запускайте приложения под наименее привилегированными учетными записями пользователей и назначайте только необходимые разрешения. Не используйте учетные записи администратора или владельца для выполнения кода. Это ограничит объем урона, который может возникнуть в случае успешной атаки. При выполнении задач, требующих дополнительных разрешений, используйте подписывание процедур или олицетворение только на время выполнения задачи. Можно подписывать хранимые процедуры при помощи сертификатов или использовать олицетворение для временного назначения разрешений.

Зондирование и интеллектуальное наблюдение

Атака с зондированием может использовать создаваемые приложением сообщения об ошибках для поиска уязвимостей системы безопасности. Реализуйте обработку ошибок во всем процедурном коде, чтобы предотвратить возвращение сведений об ошибках SQL Server пользователю.

Аутентификация

Атака путем внедрения строки подключения может возникнуть при использовании учетных данных SQL Server, если строка подключения на основе вводимых пользователем данных создается во время выполнения. Если строка подключения не проверяется на допустимость пар ключевых слов, злоумышленник может вставить дополнительные символы, потенциально обращающиеся к конфиденциальным данным или другим ресурсам на сервере. По возможности используйте проверку подлинности Windows. Если необходимо использовать учетные данные SQL Server, применяйте SqlConnectionStringBuilder, чтобы создать и проверить строки подключения во время выполнения.

Пароли

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

Всегда назначайте надежный пароль учетной записи sa, даже если используется проверка подлинности Windows.

Содержание раздела

Написание безопасного динамического кода SQL в SQL Server
Здесь описываются методы написания безопасного динамического кода SQL с использованием хранимых процедур.

Дальнейшие действия