SQL Server в Интернете

SQL Server в Интернете

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

  • Масштабируемость, балансировка нагрузки и другие критерии производительности не являются проблемой для моего сценария.
  • Мое приложение должно работать локально (с локальным SQL Server) или с удаленным репозиторием, чтобы несколько пользователей могли обмениваться данными (размещенный SQL Server, о котором я и говорю)

Я заметил, что подключение к SQL Azure очень похоже на подключение к стандартному удаленному SQL Server (http://www.windowsazure.com/en-us/develop/net/how-to-guides/sql-database/#using-sql-server)

Я понимаю, что открытие любых портов является наследуемой уязвимостью, но это не может быть единственной причиной. Должно быть, я что-то упускаю, но не уверен, что именно?

Какая реальная альтернатива существует, кроме развертывания нижней половины моего приложения в качестве веб-сервиса?

решение1

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

Например, для подключения вы можете использовать логин SQL «sa», который является учетной записью системного администратора по умолчанию и обеспечивает полный контроль над сервером SQL.

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

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

Вот несколько хороших мер по защите от самых простых удаленных атак:

  • ограничить подключение к тем IP-адресам и клиентам, которым вы доверяете
  • используйте встроенную аутентификацию Windows, когда это возможно, и отключите любые входы со слабыми паролями
  • если вам необходимо использовать аутентификацию SQL Server, переименуйте/отключите имя пользователя sa и установите надежные пароли (>10 символов) для всех имен входа

Связанный контент