Назад | Перейти на главную страницу

Рекомендации и советы по безопасности базы данных

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

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

Я знаю, что это хорошая практика:

Кроме того, я не знаю, что еще я мог бы сделать, чтобы еще больше обезопасить базу данных. Для создания базы данных будет использоваться Microsoft SQL 2005/2008.

Любые советы / предложения о том, как мне поступить с этим?

Заранее спасибо,

-Кристофер

Полное руководство по онлайн-обработке кредитных карт - это стандарт PCIDSS индустрии платежных карт: https://www.pcisecuritystandards.org/security_standards/pci_dss.shtml Все, что есть в вашем списке (и многое, многое другое), находится в этом документе.

Сделать это правильно - это много работы, вы уверены, что нет уже написанного приложения / сервиса, который бы отвечал потребностям клиента?

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

Не только для учетной записи root, но и для всех учетных записей на сервере требуются приличные пароли. Учетная запись root не должна быть доступна даже удаленно. Его следует использовать только локально на сервере, войдя в систему как «обычный» пользователь и введя команды через sudo или su. Мне также нравится идея сделать так, чтобы имена входа в систему были такими же трудными для угадывания, как и пароли. Не только те учетные записи, которые используются для доступа к данным, но и любые учетные записи, в которые можно войти удаленно, поскольку это поможет замедлить атаки методом грубой силы.

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

Я бы рассмотрел:

  • Принудительно зашифрованные подключения к серверу http://msdn.microsoft.com/en-us/library/ms191192.aspx

    • Включить аудит: http://msdn.microsoft.com/en-us/library/dd392015%28SQL.100%29.aspx

    • Рассмотрите возможность отключения учетных записей sql на сервере и разрешите только проверку подлинности Windows

    • Настраивайте, сохраняйте и просматривайте журналы Windows и SQL-сервера, включая аудит попыток входа / выхода.

    • Убедитесь, что файлы резервной копии вашей базы данных зашифрованы, и отслеживайте, куда они попадают.

    • Убедитесь, что ваш сервер находится за запертой дверью.