Как скрыть мои данные, хранящиеся в базе данных, от администратора домена веб-сервера? - PullRequest
1 голос
/ 22 июля 2010

Я хочу создать защищенный веб-сайт с использованием ASP.NET, но когда я его публикую, администратор домена может видеть все данные, хранящиеся в моей базе данных (SQL Server). Я тоже хочу скрыть свои данные и код от администратора домена. Есть ли процедуры для этого? Пожалуйста, дайте мне адрес хорошего домена, который я могу использовать, что даст мне всю административную власть на моем сайте (владелец домена также не может получить доступ к моим базам данных и файлам.) Спасибо за ваше предложение.

Ответы [ 6 ]

1 голос
/ 22 июля 2010

Если вам нужна полная безопасность, вам нужно реализовать несколько вещей:

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

Вы захотите использовать шифрование web.config

Пошаговое руководство. Шифрование информации о конфигурации с использованием защищенной конфигурации

Как: зашифровать разделы конфигурации в ASP.NET 2.0 с использованием DPAPI

Это довольно сомнительная защита, однако, поскольку для нее требуется установить контейнер с ключами на сервере, было бы возможно, чтобы злобная администрация скопировала ваш ключ и затем использовала его для расшифровки вашего web.config вручную. Чтобы защитить себя дальше, вам необходимо создать защищенную веб-службу (защищенную как для транспорта сообщений, так и для защищенного сообщения, что само содержимое зашифровано в транспортном туннеле SSL, см. Раздел Безопасность служб WCF), с которым ваше приложение постоянно общается. для защищенных данных, таких как логин пользователей для базы данных сервера sql, а затем применить поворотные пароли, чтобы сделать их, если они перехватили один пароль, он может быть недействительным, если он был повернут.

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

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

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

Для обеспечения безопасности, которая делает вас невосприимчивым (или почти невосприимчивым) к такого рода атакам, в основном требуется использование TrueCrypt для встроенного шифрования вашей файловой системы, где он не кэширует ключи / файлы ключей в памяти. На этом этапе единственной последней оставшейся частью безопасности является размещение в авторитетном центре обработки данных, таком как ThePlanet или Rackspace, который имеет электронное наблюдение 24/7, что для гнусного сотрудника будет почти невозможно скомпрометировать ваш сервер без видеозаписей это происходит.

1 голос
/ 22 июля 2010

Рассматривали ли вы использование Виртуальный частный сервер ? Я полагаю, что с VPS вы должны иметь полный контроль над тем, кто имеет доступ к чему-либо на уровне операционной системы.

1 голос
/ 22 июля 2010

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

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

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

0 голосов
/ 22 июля 2010

Вы не сможете скрыть исходный код, но у вас есть несколько вариантов сделать его менее привлекательным для администраторов:

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

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

    1. Каждый раз, когда что-то зашифровано, для использования / просмотра, скорее всего, потребуется расшифровка.Этот процесс отрицательно скажется на производительности.

    2. Когда все зашифровано, особенно с точки зрения администратора, это по сути приглашение, вызывающее тревогу;это создает любопытство.Если это данные, это одно, но код не должен быть зашифрован там, где есть доверие.Это все равно, что сказать, что у вас есть что-то, что вы хотите скрыть, обычно подразумевая что-то «плохое», что вы не хотите, чтобы его обнаружили.

0 голосов
/ 22 июля 2010

Удалите группу BUILTIN\Administrators из роли sysadmin - очевидно, это может сделать только администратор сервера, но в надлежащей среде администраторы домена могут иметь возможность поддерживать только серверы, не видя данных.

В 2008 году по умолчанию это не включено.

Что касается кода, вы можете скрыть свои библиотеки DLL, но нет полного способа скрыть код от кого-то, кто может получить доступ к файловой системе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...