Учредитель журнала

Разработка системы защиты веб-приложений от компьютерных атак на производственных объектах

УДК 004.056

DOI 10.52815/0204-3653_2022_03187_16
EDN: OPUDSG

Козьминых Сергей
Профессор департамента информационной безопасности Финансового университета при Правительстве РФ, д. т. н., доцент
E-mail: SIKozminykh@fa.ru

Кулиев Рамиг
Аспирант департамента информационной безопасности Финансового университета при Правительстве РФ
E-mail: ramig.kuliev@mail.ru

Введение

В соответствии с речью П. Кинлана, которую он произнес на саммите Chrome dev summit 2019, можно с уверенностью утверждать, что в самом ближайшем будущем классические версии программных продуктов для персональных компьютеров (ПК) будут заменены на их аналоги, представленные в виде web-приложений. Уже сейчас одна половина программных продуктов реализуется в виде web-приложений, а другая – в виде стандартных консольных программ. Предприятиям сегодня экономически невыгодно иметь в своем штате программистов и разработчиков программного обеспечения (ПО), поскольку проще получить доступ к web-приложению и заключить договор на его обслуживание со сторонней компанией. Сегодняшний рост популярности web-приложений обусловлен не только стоимостью разработки, использования и обслуживания такого продукта, но и кроссплатформенностью, понятным и удобным интерфейсом, невысокими требованиями к технической оснащенности ПК и иного оборудования для использования таких приложений, широкими возможностями их интеграции в существующие корпоративные системы. При этом рост популярности web-приложений на производственных объектах неминуемо приводит к тому, что пользователи и администраторы таких приложений начинают обмениваться большими объемами информации, в том числе по незащищенным сегментам сети интернет. В результате многократно увеличиваются риски утечки или утраты конфиденциальной информации и персональных данных из-за атак хакеров. Для сокращения рисков, связанных с реализациями компьютерных атак, необходимо выстроить комплексную систему защиты веб-приложения.
На федеральном уровне в России была принята Доктрина информационной безопасности [1], в которой указывается на необходимость повышения потенциала России в области информационной безопасности, что позволит защитить интересы государства, общества и каждого человека, проживающего на территории российского государства. Сегодня в связи с развитием глобальной сети интернет и проникновением ее практически во все сферы жизни общества и государства необходимо уделять повышенное внимание уровню защиты при работе именно с интернетом и приложениями, работа которых реализована через данную сеть.
Так как веб-приложения по большей части имеют определённые уязвимости, организации, использующие их, ставят под большой риск свои бизнес-­процессы. Это становится возможным вследствие того, что организации не принимают никаких мер обеспечения информационной безопасности как технических, так и организационных для обеспечения защиты веб-приложений. Таким образом, можно сделать вывод, что на производстве для снижения риска нарушения бизнес-­процессов необходимо разрабатывать системы защиты веб-приложений, чтобы предотвращать угрозы информационной безопасности, обеспечивать бесперебойное функционирование веб-приложения, повышать свой имидж.

Концепция построения системы защиты веб-приложения

В качестве основного метода, используемого для достижения результата используется системный анализ, позволяющий в качестве решаемой проблемы выделить обеспечение комплексной безопасности веб-приложений. Выделить задачи и методы их решения с использованием современных подходов и технологий, применяемых в настоящее время.
Глобальные сети интернета являются агрессивной средой, из которой происходят постоянные злоумышленные действия на веб-ресурсы различными методами, начиная с использования автоматизированных систем сбора конфиденциальной информации и заканчивая атаками, приводящими к отказу в обслуживании ПК. В таблице 1 представлены самые распространённые уязвимости веб-приложений. [5]
Как уже было отмечено, веб-приложения имеют уязвимости и подвержены угрозам атак, поэтому необходимо в отношении каждой угрозы разрабатывать способы противодействия, которые можно поделить на технические и организационные.

Таблица 1. Распространённые уязвимости веб-приложений

Требования к системе защиты веб-приложения

На производственных объектах для предотвращения атак типа SQL-инъекции используют разные технические методы. Данные методы направлены на исходный код веб-приложения и самого сервера. Необходимо изолировать базы данных от команд и запросов, чтобы злоумышленнику не удалось совершить несанкционированный доступ к данным с помощью вредоносного кода. Также следует применять функционал безопасного API, который не позволяет использовать интерпретатор и предоставляет собой параметризованный пользовательский интерфейс. На сервере, который обеспечивает поддержку веб-приложению, также возможно реализовывать белые списки для проверки входных данных, чтобы запросы и команды анализировались на этапе авторизированного доступа к информации. Необходимо обеспечить экранирование спецсимволов, используя соответствующий интерпретатор синтаксис и применять в запросах технологию LIMIT, а для других элементов компьютерного взаимодействия – SQL, чтобы предотвратить утечку данных. [4]
Чтобы предотвратить компрометацию системы аутентификации и авторизации возможны как технические методы, так и организационные. Одним из существующих методов является реализация многофакторной аутентификации, которая позволяет предотвратить реализацию автоматических хакерских атак, DDoS атак, а также блокировку скомпрометированной учетной записи пользователя. Не стоит использовать создаваемые по умолчанию учетные данные, особенно для администраторов, так как это позволит с легкостью скомпрометировать систему. Необходимо периодически проводить проверку надежности паролей и замену паролей через установленный срок. Необходимо в системе вести журнал неудачных попыток входа, а после каждой неудачной попытки устанавливать интервал для повторного введения данных, например, от 1 до 5 минут, кроме того, при превышении максимального количества неправильного ввода пароля (как правило, от 3 до 5) действие учетной записи должно быть временно приостановлено [2].
На производственных объектах также следует уделить особое внимания для предотвращения утечки конфиденциальных и персональных данных. Для их защиты следует, в первую очередь, провести группировку всех используемых в приложении данных на данные, которые имеют персональную и личную информацию и которые находятся под защитой закона о персональных данных; данные, которые составляют коммерческую тайну, и свободно распространяемые данные. Стоит обеспечить шифрование всей хранимой конфиденциальной информации, а также шифровать все передаваемые данные с помощью надежного протокола TLS с совершенной прямой секретностью (PFS). Возможно и отключение кэширования ответов, содержащих конфиденциальную информацию [8].
Избежать внедрение внешнего XML возможно несколькими способами. Конечно, для данного вида угроз лучшим средством является обучение разработчиков XML, которое имеет большое значение для выявления и противодействия злоумышленным действиям. Кроме того, для нейтрализации рассматриваемой угрозы нужно внедрить следующие организационные мероприятия:

– использовать простейшие разрозненные формы данных, что позволит потенциальному злоумышленнику, даже при получении доступа к одному информационному ресурсу, не получить доступ ко всей информационно-­аналитической системе;
– своевременно устанавливать все обновления, которые предлагаются разработчиками прикладного и системного программного обеспечения;
– реализовать процесс проверки зависимостей различных данных;
– отключить обработку внешних сущностей XML и DTD для XML- обработчиков прикладного ПО;
– фильтровать поступающие сообщения на сервер от пользователей путем установки «белых списков» на разрешенные символы, слова и иные символьные конструкции;
– проверять и контролировать тот факт, что загрузочная функция XML или XSL выполняет проверку входящего потока информации с применением XSD или иного подобного метода;
– проводить аналитику программного кода для широкомасштабных приложений или приложений, затрагивающих внутреннюю инфраструктуру организации, не только в автоматическом, но и в ручном режиме.

На производственных объектах недочеты в системе контроля доступа могут привести к несанкционированному доступу к критическим данным. Для того чтобы предотвратить данную угрозу, существуют следующие способы:

– полный запрет свободного доступа к информации, кроме той, которая имеет свободное распространение;
– организация качественного контроля доступа, который подразумевает определенные правила выбора пароля (невозможно установить простой пароль), минимизация возможности сквозной авторизации, применение различных блокировок к скомпрометировавшим себя учетным записям пользователей;
– разделение всех пользователей на группы, например, владелец, администратор, пользователь, при этом каждый участник группы должен быть наделен определенными правами на доступ и изменение информации в системе;
– реализация доменной модели с целью установки специализированных ограничений для безопасной работы приложений;
– отключение возможности просматривать каталог веб-сервера через web-приложение, а также запрет на размещение резервных копий в корневых папках сервера;
– мониторинг доступности авторизации в приложении и при появлении сбоя информирование администратора сервера;
– ограничение периодичности доступа к API и web-контроллерам приложения;
– удаление с сервера токенов JWT незамедлительно после разлогинивания пользователя [9].

Промышленная лаборатория
Источник: AndreyBezuglov / depositphotos.com

Неправильная настройка компонентов безопасности приложения является уязвимостью, которую злоумышленники могут эксплуатировать для компрометации системы. Для того чтобы предотвратить угрозу компрометации, необходимо реализовать процесс безопасной установки, которая включает в себя:
– оперативная воспроизводимость ранее запущенных процессов на сервере для развертывания необходимых виртуальных частных сред для изолированного и безопасного доступа. Все интегрированные среды конфигурируют однообразно с взаимосвязанными процессами, при этом для каждой среды должен быть предусмотрен свой пароль доступа. Максимальный объем информации в данных средах должен обрабатываться в автоматическом режиме, что позволит сократить трудозатраты администраторов;
– применение платформенных решений, в которых содержатся только все самое необходимое для работы программного обеспечения;
– удаление лишних компонентов или фреймворков;
– соответствие параметров антивирусного программного обеспечения, межсетевого экрана, брандмауэра актуальным параметрам настройки и актуальной версии как самой программы, так и антивирусных баз;
– разделение всех пользователей на несколько групп, в которых пользователи разделяются в соответствии с имеющимися у них правами на доступ и изменение тех или иных данных;
– выделение директив безопасности для пользователей;
– автоматизация корректности работы и выполненных настроек автоматизированных сред и программных конфигураций на сервере.
Такое явление, как межсайтовый скриптинг также является угрозой веб-приложения. Это происходит при попытке внедрения кода в HTTP-ответ, получаемый клиентом и выполняющимся на стороне клиента. Для того чтобы предотвратить данную уязвимость, необходимо при помощи программных средств, таких как сканеры уязвимостей, анализировать исходный код на предмет наличия «дыр», которыми злоумышленник может воспользоваться. [14]
Специалисты, занимающиеся информационной безопасностью, также практикуют отделение непроверенных данных от активного контента браузера. Этого можно добиться следующими способами:
– кодирование управляющих HTML-символов, JavaScript, CSS и URL перед отображением в браузере;
– проверка и кодирование входных данных;
– обеспечение безопасности cookies, которая может быть реализована путём ограничения домена и пути для принимаемых cookies.
Данные методы позволяют не допустить внедрение скрипта в страницу, выдаваемую веб-приложением и не допустить выполнение в браузере клиента [15].
Для того, чтобы защитить взаимодействие компонентов веб-приложения, необходимо отклонить объекты, имеющие аналогичные серийные свой­ства и поступившие из не доверительных источников, или запретить применение сред реализации, основанных на самых простейших типах данных. Данное мероприятие обязательно к реализации, так как, чем проще программный код, тем проще хакерам взломать имеющуюся защиту и подменить стандартный код на код вредоносного программного обеспечения.

Диспетчерское управление завода
Источник: veloliza / depositphotos.com

Однако для некоторых оболочек и программных продуктов, реализованных на примитивном уровне, не существует аналогов, поэтому в таких ситуациях необходимо выполнить:
– непрерывный мониторинг целостности объектов одинаковой серийной структуры, к примеру, с использованием цифровых ключей, которые минимизируют возможность получения несанкционированного доступа к данным;
– использование жестких типовых ограничений в процессе десериализации перед созданием объекта, так как в данном случае в качестве ожидаемого будет выступать набор классов, который поддается формализации и определению;
– изолированный от системных процессов и других прикладных программ запуск кода, который производит десериализацию, в минимальной по привилегиям доступа среде;
– ведение журнала для фиксирования и оперативного устранения всех возникающих ошибок;
– анализ всех подключений и проведение обмена информацией между сервером баз данных и пользовательским устройством доступа с целью выявления фактов несанкционированного доступа и блокировки таких пользователей;
– отслеживание каждого факта перевода байтовой информации в информацию, понятную каждому пользователю, при этом основной акцент должен быть сделан на процессах, которые имеют длительный срок реализации.
Применение в производстве программных продуктов с известными уязвимостями – это достаточно популярная угроза информационной безопасности объекта, так как злоумышленники с помощью сканеров уязвимостей могут проанализировать версии компонентов веб-приложения и выявить наиболее чувствительные для системы [17].
Для того чтобы обезопасить веб-приложение от компрометации, необходимо реализовать процесс управления обновлениями:
– удаление неиспользуемых зависимостей, а также лишних функций, компонентов, файлов и сведений из документации;
– регулярная проверка актуальности версий клиентских и серверных компонентов (например, фреймворков и библиотек), а также их зависимостей;
– использование инструментов анализа состава ПО для автоматизации процесса;
– загрузка компонентов из официальных источников по безопасным ссылкам;
– контроль библиотек и компонентов, которые не поддерживаются или не получают обновлений безопасности.
Для безопасной работы каждого веб-приложения на сервере объекта необходимо в автоматизированном режиме вести текстовый журнал, в котором должно фиксироваться время и характер сбойной ситуации, попытки авторизации пользователей, попытки подбора пароля к системе, время и характер проводимых изменений баз данных на сервере и др. Некачественное ведение журналов входа в систему и внесенных изменений приводят к тому, что не происходит своевременное реагирование на инциденты, так как мониторинг либо настроен не правильно, либо полностью отсутствует, в следствии чего, злоумышленник при проведении атак полагается на отсутствие контроля и без своевременных предотвращающих действий может продолжать попытки компрометации системы.
Для ликвидации данной уязвимости применяют различные методы защиты, предназначенные обеспечить неприкосновенность конфиденциальной информации или персональных данных. К этим методам можно отнести:
– регистрирование каждой ошибки доступа с записью в системном журнале с целью последующего анализа этого события силами системного администратора;
– регистрирование каждого подозрительного события в таком формате, чтобы он был понятен любому аналитику, который проводит свою работу в серверном сегменте;
– использование контроля внесения изменений в системный журнал с целью недопущения подмены корректной информации на недостоверную;
– использование высококачественных систем мониторинга и обнаружения подозрительных действий с целью уменьшения времени реакции на такие события, причем реакция может выполняться как в автоматизированном, так и в ручном режиме;
– установка межсетевых экранов веб-приложений.
Для того, чтобы система защиты веб-приложений была комплексной, необходимо применять также организационные меры, которые позволят ограничить реализации атак на веб-приложение:
– необходимо внедрение многофакторной аутентификации (двухфакторная аутентификация);
– уничтожение учетных данных, созданных по умолчанию;
– проведение проверок надежности паролей;
– увеличение интервала между неудачными попытками входа;
– запрет свободного доступа к информации, кроме той, которая размещена в открытом доступе (инструкция, правила использования, лицензионное соглашение и др.);
– внедрение алгоритмов контроля доступа к информационным ресурсам, получаемого посредством web-приложений, в том числе путем минимизации междоменного доступа к ресурсам;
– привлечение специалистов для работы с SIEM-системой и на другие классы-­решений;
– тренинг персонала (курсы по фишингу и спам-атакам).

Заключение

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