Site icon Персональный блог

Особенности проектирования и построения защищенных web-систем

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

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

В настоящее время в Украине эта деятельность осуществляется по трем направлениям:

Не затрагивая проблематику нормативно-правовой базы и организационных мероприятий, одним из аспектов безопасного информационного обмена является проектирование, построение и реализация защищенных WEB-систем. С развитием информационно-коммуникационных технологий, коммерческие и государственные организации все чаще

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

Для многих организаций WEB-приложения являются критически значимым ПО, ежедневно обслуживающим многомиллионные транзакции и передачу важнейших сведений. Согласно проведенному анализу возможных угроз наиболее распространенных и широко используемых информационных систем до 70% уязвимостей приходится на WEB-приложения.

Всего в 2006 году было проведено 111 936 сканирований, в ходе которых было обнаружено 129 197 различных уязвимостей высокого и среднего уровня риска. Уязвимыми оказались 31 113 сайтов. Уязвимости низкой степени риска в данное исследование включены не были, в связи с низкой достоверностью обнаружения подобных ошибок в ходе полностью автоматического сканирования.

Наиболее распространенные виды уязвимостей WEB-приложений можно представить в виде шести классов:

  1. Процесс аутентификации (Authentication).
  2. Процесс авторизации (Authorization).
  3. Атаки на клиентов (Client-side Attacks).
  4. Выполнение кода (Command Execution).
  5. Разглашение информации (Information Disclosure).
  6. Логические атаки (Logical Attacks).

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

Таблица 1

Распределение обнаруженных уязвимостей по различным классам

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

К этому классу следует также отнести недостаточную аутентификацию (Insufficient Authentication) и небезопасное восстановление паролей (Weak Password Recovery Validation).

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

К классу атак на клиентов относятся:

Уязвимости, связанные с разглашением информации:

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

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

  1. Составление схемы потоков данных и определение точек входа.
  2. Проведение моделирования угроз для web-приложения.
  3. Ввод допущения, что все данные, вводимые в систему, считаются злонамеренными. При этом, на этапе проектирования необходимо четко описать:
  1. В целях обеспечения безопасности данные, используемые для передачи между объектами бизнес логики приложения, также должны быть описаны и формализованы.
  2. Разработка алгоритмов или методов проверки целостности данных.
  3. Минимизация области системы, доступная для атак, с проведением анализа вероятности вторжения,
  4. Установка параметров безопасности, используемых в системе по умолчанию (например, доступ к системе по умолчанию блокируется),
  5. Использование эшелонированной обороны (при этом нельзя полагаться на защиту, предоставляемую другими частями системы).
  6. Составление четкого описание ресурсов, которые будут предоставляться WEB-сервисом и схему доступа к этим ресурсам. Схема должны включать в себя описание прав доступа к ресурсу как рабочего процесса WEB-приложения, так и внешних клиентов.
  7. Анализ и внедрение требуемой схемы аутентификации и авторизации.
  8. Разработка схемы аудита безопасности.
  9. Составление плана тестирование на проникновение (penetration testing)., с проведением тестирования на: возможность напрямую получить доступ к его данным, чтобы выявить проблемы до того, как это сделают другие. Проведение тестирования на работу приложения «на пределе», передавая ему некорректные или наиболее неподходящие данные. Кроме того, необходимо проверить приложение на прочность, использовав свои знания о его внутреннем устройстве. Хотя эти знания дают вам принципиальное преимущество перед типичными злоумышленниками, у вас появляется шанс обнаружить уязвимости, которые иначе бы таились глубоко в коде. Кроме того, для тестирования на проникновение существует довольно много готовых инструментальных средств.

Необходимо отметить, что корректность выполнения всех вышеописанных особенностей во многом определяет защищенность создаваемых приложений. Так согласно проведенным исследованиям суммарная вероятность обнаружения уязвимостей различной степени риска при глубоком анализе Web-приложений: высокая – 65 проц, средняя – 93 проц, низкая – 99 проц. То есть в 65 проц сайтов были обнаружены критичные уязвимости, и в 93 случаев из ста в программном обеспечении Web-приложения содержатся уязвимости средней степени риска.

На основании проведенного исследования можно сделать следующие выводы:

  1. Выполнена классификация уязвимостей web-систем. Установлено, что основной причиной всех описанных уязвимостей является некорректный подход к их проектированию и построению, а зачастую интеграция функций безопасности на этапе внедрения приложения.
  2. На основе выполненной классификации уязвимостей и анализа существующего практического подхода к реализации защиты системы по базовым компонентам, которые наиболее часто подвергаются атакам с использованием рассмотренных уязвимостей предложен набор базовых действий, направленных на совершенствование безопасности web-систем на этапах проектирования и построения.
  3. Выполненное исследование в целом позволяет в дальнейшем провести теоретическое исследование описанных закономерностей предложить теоретические основы подхода к созданию защищенных web-систем.
Exit mobile version