Карта сайта | Контакты | Прайс-лист
Home  Защита веб сайта

В.А.Мазалов

Защита веб сайта

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

В данной статье исследуются некоторые средства защиты Интернет ресурсов от несанкционированного доступа (НСД). Для простоты, в качестве языка программирования будем рассматривать PHP 5.0 в силу его распространенности.

Перед тем, как рассматривать потенциальные атаки, постараемся произвести классификацию хакеров. Среди взломщиков, можно выделить несколько основных категорий:

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

"Фракеры" – производят взлом в целях получения информации о структуре ресурса, используемого в нем программно-аппаратного обеспечения, а также реализованных средствах защиты.

"Взломщики-профессионалы" - производят взлом системы с целями кражи или подмены хранящейся там информации. Часто работают по найму. Их деятельности присуща системность и организованность действий (исследование вычислительной системы с выявлением изъянов в ней, разработка программной реализации атаки и непосредственное ее осуществление). Разновидностью этой категории хакеров являются взломщики программного обеспечения и специалисты по подбору паролей.

"Вандалы" – осуществляют взлом системы для ее разрушения: порча и удаление данных. [1].

Очевидно, что наиболее опасной категорией хакеров являются взломщики-профессионалы. В сети существуют целые сообщества хакеров, аккумулирующих в себе огромный потенциал аппаратно-программных и информационных ресурсов. Это создает реальную угрозу практически любому информационному объекту, представленному в Интернет и заставляет серьезно подходить к обеспечению его безопасности.

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

  • оценку ценности информации, хранящейся в системе;
  • оценку затрат времени и средств на вскрытие системы, допустимых для злоумышленников;
  • построение модели хакера, другими словами, оценка того, от кого нужно защищаться – от постороннего лица, пользователя системы, администратора и т.д.;
  • оценку допустимых затрат времени, средств и ресурсов системы на организацию ее защиты.

При таком анализе, эксперт фактически ставит себя на место хакера. При этом полезно осознавать, что в лице хакера могут быть не только постороннее лицо (лицо, не имеющее легального доступа к системе и проводящее атаку с использованием общедоступных глобальных средств), но и администратор системы, а в некоторых случаях даже программист, осуществлявший разработку системы. В последнем случае, в систему может быть встроен «люк» (недокументированные возможности), который позволяют в дальнейшем осуществлять НСД к системе. [2]

Одним из наиболее простых и часто используемых средств похищения паролей являются «фальшивые страницы» (fake pages). Обычно такие страницы располагаются на доменных адресах, написание которых незначительно отличается от написания доменов банков или Интернет-магазинов, и их дизайн является копией дизайна истинных страниц. Смысл работы заключается в том, что пользователь по ошибке набирает неправильное доменное имя и попадает на фальшивую страницу, думая при этом, что он находится на официальном сайте организации. После прохождения процесса аутентификации (процесс, при котором система проверят, что некто, желающий получить доступ к ресурсам действительно имеет право на доступ к этим ресурсам), его имя и пароль сохраняются и ему выдается сообщение, что в системе произошла внутренняя ошибка. На этой же странице пользователю предлагается произвести аутентификацию снова, но уже со ссылкой на истинный сайт организации. В клиент-серверных интранет приложениях, называется закладками-перехватчиками первого рода. В качестве средства предотвращения использования фальшивых страниц, можно порекомендовать регулярный анализ доменных имен, похожих доменное имя компании на существование страниц клонов на них.

Использование открытых систем управления динамическим содержанием веб-сайта (Open Course Content Management System) –– также представляет собой большую опасность, так как хакеру становится доступным ядро программы. Большинство CMS, представленных в Интернет сегодня, имеют обширную функциональность (маркетинговая политика – стремление предоставлять больше возможностей). Эта функциональность обычными сайтами не используется и наполовину. В то же время, с ростом дополнительной функциональности CMS, увеличивается риск появления дыр в системе, что всегда на руку хакеру. В некоторых случаях такие CMS (например, WebSite v1.1f.) по умолчанию позволяют удаленно запустить /cgi-win/uploader.exe, что приводит к возможности загрузки на сервер средства удаленного администрирования, такие как ВО или NetBus с последующим их запуском. Это приводит к тому, что хакер получает полный контроль на веб-порталом. Практически для всех открытых систем CMS, в Интернет можно найти инструкции по взлому, использующие те или иные ошибки конкретной CMS. Эти ошибки, в большинстве случаев, исправляются, но происходит это медленнее, чем хотелось бы и очень часто не до конца. Причина очевидна – открытая CMS не рассматривается как коммерческий продукт, следовательно, ее поддержка и развитие организованы не на достаточно высоком уровне. В качестве рекомендации по минимизации риска взлома веб-ресурса, содержащего ценную информацию (номера кредитных карт, личные данные пользователей) предлагается не использовать открытых CMS. Предполагается, что организация создает свою собственную CMS, но более разумным было бы использование коммерческих CMS.

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

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

Обратим внимание на обеспечение безопасности «закрытой» части приложения. Для этих целей в PHP существует механизм сессий, реализованный на уровне ядра. Механизм сессий достаточно надежен, но и здесь существуют несколько нюансов, которые надо учитывать. Работа сессий организована так, что идентификация пользователя происходит с помощью уникального идентификатора сессии, который передается браузеру и возвращается при каждом запросе. Это значит, возможен перехват идентификатора и подмена сессии.

Для обеспечения безопасности сессии, мы сделаем две вещи: запомним (в туже сессию) браузер и ip адрес пользователя. Оба этих параметра можно взять из переменных окружения сервера.

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

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

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

При разработке защищенного сайта, следует также уделять внимание созданию зон с ограниченным доступом. Для этого можно использовать встроенную аутентификацию Web сервера Apache, которая работает примерно следующим образом. При попытке доступа к защищенной директории сервера, Apache отправляет код с заголовком 401 (401 authentication required header). Получив такой код, браузер отображает окно авторизации с полями для ввода имени пользователя и пароля. После ввода данных они отправляются серверу и в ответ браузер получает область действия, которая им кэшируется, равно как имя пользователя и пароль. Это позволяет получать доступ к директориям, находящимся в области действия без повторного ввода имени пользователя и пароля. Для защиты сайта, необходимо сделать следующие действия: создать файл с паролями и файл .htaccess и переписать их на сервер. Файл с паролями создается утилитой htpasswd.exe, которая находится в директории установленного Apache в подкаталоге bin. После создания файла паролей и записи его на сервер с помощью любого ftp-клиента. Желательно размещать его выше корневой директории сайта, куда пользователь не будет иметь доступ. Если это невозможно, следует обязательно защитить директорию с помощью файла .htaccess

Литература

  1. Проскурин В.Г. Академия ФСБ России
  2. http://www.kamaikin.ru/artical/protected/2/9/
  3. http://www.kamaikin.ru/artical/protected/2/10/
  4. http://articles.org.ru/cfaq/index.php?qid=1648&frommostrecent=yes

 

Контакты

г. Краснодар
ул. Зиповская, 3
+7-961-512-39-80,
+7-905-404-72-54

г. Москва
м. Фрунзенская
Фрунзенская набережная
д. 30, стр. 5, офис 37
+7-916-902-61-21

info@apeksoft.com

Отзывы

“Я хотел бы поблагодарить компанию ApekSoft за отлично сделанную работу. Программная оболочка, которую они написали, избавила меня от головной боли и позволила в считанные минуты решать задачи, на которые я раньше тратил часы.”  ... далее

Левицкий О.В., турагенство “Окно в Европу”