Безопасность IIS

       

ПРОБЛЕМА


Иван, молодой разработчик, работающий над новым сайтом электронной коммерции, создает сценарии ASP для подключения веб-сайта к базе данных Microsoft SQL Server, содержащей информацию о клиентах, т.е. их имена, адреса, заказы и т.д. В понедельник утром Иван заявляет, что немедленно увольняется из компании и начинает новую карьеру. Время, отведенное на разработку сайта, неумолимо истекает, поэтому необходимо привлечь на место Ивана другого сотрудника. Вас устраивало качество выполнения Иваном своей работы, однако нужно удостовериться в том, что ее можно использовать.

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

Так как Иван имел доступ к базе данных SQL Server, он знает имя пользователя и пароль доступа, используемый страницами ASP для открытия соединения. У него могла быть и своя собственная учетная запись SQL Server с повышенными привилегиями, позволявшими ему проводить работу по разработке. Проинформируйте администратора базы данных о том, что учетная запись Ивана в базе данных должна быть удалена, а также об изменении пароля, используемого страницами ASP. Кроме этого, необходимо сменить остальные системные пароли, которые мог знать Иван.

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

  • Каждая страница содержит в начале строку, устанавливающую кодировку.
  • Все данные, вводимые пользователем в формы, или данные из элементов cookie проверяются на наличие запрещенных символов.
  • Все данные, получаемые из базы данных для отображения на веб-странице, подвергаются кодировке.
  • В коде отсутствует опасный или вредоносный код, например, ненужный вызов почтового сервера.
  • В коде не используются системные пароли, доступ к ним осуществляется с помощью компонента COM+.
  • Все вызовы базы данных выполняются посредством сохраненных процедур.

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

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



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