УДК 004.056.53
АЛГОРИТМ РАСПОЗНАВАНИЯ ТОЧЕК ВХОДА ОБФУСЦИРОВАННЫХ ВЕБ-ПРИЛОЖЕНИЙ МЕТОДОМ ДИНАМИЧЕСКОГО АНАЛИЗА
Д.О. Маркин, С.М. Макеев, А.А. Зверев
Описана система идентификации точек входа веб-приложений, защищенных методом обфускации, основанная на применении программно-управляемых веб-браузеров. В основе системы лежит алгоритм динамического анализа веб-приложений, идентифицирующий точки входа на основе анализа логов, извлекаемых из веб-браузера. Проведенные эксперименты показали, что применение указанного метода динамического анализа обфусцированных веб-приложений позволяет повысить качество формируемой информационной модели удаленного веб-ресурса, что, в свою очередь, будет способствовать повышению эффективности фаззинга приложений данного ресурса для выявления уязвимостей и недекларированных возможностей. Представлена структурная модель средства анализа, описание реализуемых функций и технологий, результаты проведенных экспериментов.
Ключевые слова: распознавание точек входа, динамический анализ, программно-управляемый браузер, фаззинг, веб-приложение.
Современный интегрированный мир построен на миллиардах вебсерверов, поддерживающих работу информационных систем, обеспечивающих выполнение различных функций, начиная от торговых операций и заканчивая поддержкой электронного правительства. Каждый день продолжается повсеместное внедрение информационных технологий, развитие цифровой экономики, а также повышение доступности и цифровизация государственных услуг. Все это множество систем содержит информацию и персональные данные, которые требуют защиты при хранении, передаче и преобразовании.
Данные обстоятельства обуславливают потребность в повышенном внимании к информационной безопасности предоставляемых услуг в целом и обеспечении защищенности веб-ресурсов, в частности. Как показывает статистика [1], современные веб-приложения имеют большое число проблем, связанных с обеспечением информационной безопасности, а поиск уязвимостей требует серьезных вычислительных ресурсов и высокой квалификации персонала, отвечающего за вопросы информационной безопасности. В связи с этим актуальной задачей является создание автоматизированных и автоматических средств поиска уязвимостей веб-приложений, позволяющих осуществлять эффективный анализ защищенности веб-ресурсов.
Одним из способов обнаружения уязвимостей является фаззинг. Фаззинг - это процесс отправки намеренно некорректных данных исследуемому объекту с целью вызова ситуаций сбоя или ошибки, которые могут являться следствиями наличия уязвимостей [2]. Очевидно, что чем более качественно будут формироваться входные данные для очередной итера-
28
ции тестирования, тем выше вероятность обнаружения ошибок либо неде-кларируемых возможностей (НДВ). В то же время, большинство современных фаззеров построено на основе базы данных известных сигнатур разрушающих программных воздействий и практически не учитывают актуальную модель исследуемого объекта. Наличие такой модели позволяет учитывать важную информацию при формировании очередной выборки входных данных и, соответственно, повышает результативность фаззинга. Таким образом, для эффективного распознавания формы представления точки входа веб-приложения необходимо иметь ее описательную модель.
Вопросы оценивания защищенности информационных систем затрагивались в научных трудах Хорева П. Б. и Петрова С. А. [3], Котенко И. В., Степашкина М. В. [4], Машкиной И. В., Саенко И. Б., Азарова А. А., Тулупьева А. Л., Азарновой Т. В. и Полухина П. В. [5,6], Горюнова М. Н. и Мацкевича А. Г. [7] и других. Актуальные практические вопросы и инструменты оценивания защищенности веб-приложений представлены на свободных информационных ресурсах проектов OWASP, MITRE, White Hat, DISA и других. Построение автоматизированных средств анализа защищенности информационных систем и веб-приложений, поиска уязвимо-стей в них рассматривались в работах М. Саттона, П. Амини [2] и других. Однако в связи с постоянным совершенствованием информационных технологий и способов представления информации, кодирования веб-приложений, синтаксической и семантической разметки электронных документов проблема автоматизации тестирования защищенности остается актуальным. Данное обстоятельство указывает на объективную необходимость внедрения новых подходов по распознаванию структурных элементов веб-приложений, отвечающих за ввод данных (запрос) в информационную систему и получение ответа от нее.
В связи с этим используют различные подходы, позволяющие формировать выборки входных данных, позволяющие с большей вероятностью обнаруживать ошибки в объектах тестирования. К ним относятся: схемы фаззинга с псевдослучайной генерацией входных данных; схемы фаззинга с обратной связью, в т.ч. с применением интеллектуальных методов обработки выходных данных [6];
фаззинг на основе данных об известных ошибках и уязвимостях [8], в том числе на основе информации открытых баз данных, списков и метрик (CVE, CWE, NVD, CVSS, бюллетеней Microsoft);
фаззинг на основе данных о составе и структуре объекта тестирования, включая схемы фаззинга, извлекающие данную информацию из объекта тестирования.
Наличие актуальной модели исследуемого объекта позволяет учитывать важную информацию при формировании выборки входных данных и, соответственно, повышает результативность фаззинга. Обобщенная схема фаззинга на основе представленных подходов может выглядеть так, как показано на рис. 1.
Обратная связь для формирования входных данных интеллектуальным способом
Объект тестирования (приложение)
Выходные данные
Отчет
Рис. 1. Схема фаззинга с обратной связью при формировании
входных данных
На сегодняшний день существует множество фаззеров веб-приложений: Web Scarab, BurpSuite, Skyfish, SPIKE Proxy, OWASP WSFuzzer (SOAP), Rfuzz, Fuzzops, PowerFuzzer, w3af, WebFuzz, отдельные средства тестирования веб-приложений есть в составе таких инструментальных средств как X-Spider, Nessus, OpenVAS, nmap и других. Однако указанные средства имеют свои недостатки. Одним из общих существенных недостатков является проблема построения структурной модели произвольного веб-ресурса, которая позволила бы более эффективно направлять входные данные в исследуемые веб-приложения и его программное окружение.
1. Требования к средству анализа структуры веб-приложений информационных ресурсов. Основным требованием к разрабатываемому программному средству является упрощенный процесс взаимодействия с пользователем. Для реализации этого требования необходимо реализовать взаимодействие с помощью веб-приложения. Среди преимуществ можно выделить:
кроссплатформенность - отсутствуют требования к программной среде или аппаратной платформе пользователя, т.к. для работы с приложением необходим только браузер;
отсутствие недостатка классических приложений - необходимость пользователю заботится об установке и настройке пакета;
возможность коллективной работы и синхронного взаимодействия пользователей в независимости от их местоположения, благодаря единому формату представления, единой терминологии, поддержке системой объединения результатов различных этапов исследования;
отсутствие необходимости в каких-либо действиях со стороны пользователя для обновления пакета;
надежность - обеспечивается хранение данных в случае сбоя клиентских компьютеров;
отсутствие требовательности к ресурсам терминала - все действия над данными выполняются на удаленном сервере, где хранится приложение;
увеличение мощности вычислительной системы не влияет на работу пользователя и может производиться без прерывания обслуживания.
Разработанное веб-приложение должно иметь следующие типы требований:
требования к средствам обеспечения и поддержки функционирования, которые содержат типы требований, определяющие программные и аппаратные средства или их уровни, в рамки которых должно вписаться разрабатываемое приложение;
функциональные требования содержат типы требований, определяющие целевые возможности системы, т.е. ограничивает круг непосредственно решаемых с помощью продукта задач; требования общего характера.
Основными функциями, которые реализует автоматизированное средство анализа, являются: поиск точек входа; построение структуры веб-ресурса.
К данным функциям предъявляются следующие требования: охват полного объема содержания целевого веб-ресурса, включая подключаемые расширения;
необходимость исключения возможных зацикливания при обходе веб-страниц, а также продолжительное сканирование;
поиск точек входа должен давать результат в максимально полном объеме, в том числе:
1) веб-страницы;
2) каталоги;
3) поддерживаемые страницами методы;
4) веб-формы;
5) скрытые поля;
6) заголовки;
7) cookies;
обеспечение интеграции с известными базами уязвимостей (CVE, CWE, NVD, CVSS);
обеспечение классификации вывода обнаруженных точек входа по следующим параметрам:
1) глубина страницы;
2) метод HTTP-запроса;
3) тип точки входа;
4) тип анализа (статический, динамический)
5) предполагаемая опасность;
обеспечение представления выходных данных в графическом и табличном видах, позволяющих определить направления тестирования методом фаззинга.
2. Анализ средств обфускацнн и деобфускации исходных текстов веб-приложений. Существенную сложность в распознавании точек входа веб-приложений создают технологии защиты исполняемого, а также интерпретируемого кода приложений от анализа [11,12], такие как обфускация и шифрование.
В настоящее время известно достаточно большое количество обфускаторов скриптовых языков. Наибольшее распространение получили обфускаторы и так называемые "крипторы" JavaScript-приложений [13]. Среди них такие инструменты как JS Packer, JSmin, YUI Compressor, Closure compile, Google Closure Compiler, jjencode, JSUnpack, WebStorage, uglifyjs2, jsfuck, aaencode, Caesar, Webpack. В работе [14] описано приложения для идентификации точек входа веб-приложений с динамически формируемым интерфейсом.
В ряде случаев, распознавание точек входа, после применения обфускаторов, становится практически нереализуемым и не позволит сформировать адекватную модель информационного ресурса.
Основные задачи, которые решают современных обфускаторы JavaScript программного обеспечения - это: замена символов, контроль потока управления, обфускация данных, контроль целостности кода, защита среды выполнения, обеспечение требуемого многообразия и гибкости.
Основные методы деобфускации JavaScript кода [15] представлены на рис. 2.
Инструменты для деобфускации JavaScript кода можно разделить следующим образом.
1. Средства анализа вредоносных программ (JStillery, JSDetox и др.).
2. Деобфускаторы (JStillery, JSDetoxI, JSNice и др.).
3. Оптимизаторы (Prepak.io, Closure compiler, jsbeautfier и др.).
4. Средства эмуляции JavaScript (Google V8, SpiderMonkey, Nodejs 's VM module и др.).
Рис. 2. Методы деобфускации
32
В случаях, когда используемый для защиты кода обфускатор известен либо обфусцированный код имеет ярко выраженные идентифицирующие обфускатор признаки (например, алфавит или особенности компоновки текста), по которому можно выбрать доступный деобфускатор, то задача восстановления кода решается тривиально. Однако для общего случая полное восстановление исходного текста обфусцированного приложения, как известно [11], невозможно. Тем не менее, существующие методы анализа программного обеспечения позволяют повысить качество деоб-фускации, например, за счет динамического анализа кода [16].
3. Синтез средства анализа структуры веб-приложений информационного ресурса. Современные технологии синтаксической и семантической разметки информационных ресурсов, а также средства разработки веб-приложений, функционирующих, в том числе на стороне веб-клиента, позволяют создавать в составе информационного ресурса различные точки входа веб-приложений.
Некоторые варианты точек входа веб-приложений, формируемых в ответе веб-сервера, представлены в работе [16]:
Ряд информационных систем могут строиться на основе так называемой концепции "единой" точки входа в веб-приложение. Суть данной концепции заключается в том, что определяется только одна явная точка входа в веб-приложение, которая параметризируются, за счет чего и формируется все множество ответов веб-клиенту в виде электронных документов. Как правило, это информационные системы на базе ряда PHP и Python-фреймворков, например, Yii2 или Django.
В процессе обработки и выполнения приложений (скриптов), встроенных в разметку электронного документа, расширениями веб-клиента могут формироваться другие варианты точек входа. В связи с этим необходимо учитывать синтаксис и особенности разрабатываемых приложений для этих расширения, для распознавания таких точек входа.
Наиболее известными на данный момент расширениями веб-клиентов являются ActiveX, JavaScript, HTML5, CSS, Google Dart и другие.
Существует большое количество надстроек над данными расширениями - фреймворков, позволяющих создавать приложения в специально сформированном программном окружении со специфическим синтаксисом языка программирования [16]. К ним относятся такие фреймворки
JavaScript как Angular, React, Socket, Polymer, Meteor, Backbone и другие, а также библиотеки JavaScript: jQuery, jQuery UI, MooTools, Dojo, Kendo UI, Webix и другие.
Как точки входа веб-приложений обязательно должны рассматриваться параметры заголовка HTTP-запросов. Они могут обрабатываться как непосредственно веб-приложением, так и программным обеспечением и модулями расширений веб-сервера и, соответственно, приводить к ошибкам либо проблемам безопасности.
33
Наиболее известными веб-серверами в настоящее время являются [16]: Apache, Nginx, Microsoft IIS, LightHTTPd, Google Web Server, Resin, Cherokee, Rootage, Open Server, H20, THTTPD, Jetty, а расширения, отвечающие в том числе за обработку запросов и параметров заголовков - CGI, PHP, Perl, Python, ASP, ISAPI и другие.
Существенную сложность в распознавании точек входа веб-приложений создают технологии защиты исполняемого, а также интерпретируемого кода приложений от анализа [7], такие как обфускация и шифрование [9].
3.1. Структурная модель средства анализа структуры веб-приложений информационного ресурса. Модель, отражающая структуру разрабатываемого программного средства анализа, представлена на рис. 3.
Модель веб-ресурса
Целевой тестируемый веб-ресурс
Рис. 3. Структурная модель системы анализа структуры веб-приложений информационного ресурса
Ключевым элементом автоматизированного средства анализа структуры является сервер. Данный элемент обеспечивает взаимодействие всех модулей входящих в программное средство. Сервер, построенный на UNIX-подобной ОС, имеет в своем составе веб-сервер Apache2, интерпретатор языка программирования Python, модуль создания модели веб-ресурса на базе фреймворка Scrapy, модуль динамического анализа вебстраниц, реализованный с помощью программно-управляемого веб-браузера, фреймворк разработки веб-интерфейса Django, модуль визуализации структуре на базе JavaScript-библиотеки D3.js, система управления базами данных (СУБД) MariaDB и PHPMyAdmin.
34
3.2. Алгоритм динамического анализа веб-приложений. Схема средства идентификации точек входа удаленного веб-приложения на основе динамического анализа [17,18] представлена на рис. 4.
Драйвер веб-браузера
<—► Веб-браузер
Рис. 4. Схема модуля динамического анализа веб-приложений
Алгоритм функционирования модуля динамического анализа вебстраниц реализован на базе программно-управляемого веб-браузера под управлением Selenium. В состав модуля входят следующие дополнительные модули:
- драйвера браузеров средства программного управления веб-браузерами Selenium (пример драйвера для веб-браузера Firefox -geckodriver);
- модуль прокси-сервера на базе Python "browsermobproxy" (browsermob-proxy-2.1.4\bin\browsermob-proxy).
Структурная схема модуля динамического анализа представлена на рис. 5.
Функционирование автоматизированного средства анализа структуры веб-приложений информационного ресурса [18] базируется на работе веб-сервера. Так как разработанное приложение является кроссплатфор-менным, оно может быть развернуто на любых операционных системах: Windows, UNIX-подобные ОС, MAC OS.
Необходимое программное обеспечение:
ОС Lubuntu, веб-сервер Apache2, СУБД MariaDB, PHPMyAdmin, а также интерпретатор Python и пакеты к нему: pymysql, libssl-dev, libcrypto++-dev, mysqlclient.
Для работы модуля динамического анализа требуется установка прокси-сервера и библиотеки Selenium:
Работа библиотеки browsermob-proxy требует распаковки архива с названием jre-8u241-linux-x64.tar.gz в директорию /usr/java.
Для визуализации структуры целевого веб-ресурса используется библиотека D3.js. Для корректной работы данной библиотеки необходимо разметить файлы с названиями '"jquery-1.10.2.min.js", "d3.v3.min.js", "dnd-Tree.js", "graph.html", "tree.json", "buildJson_tree.py" в корневой директории веб-сервера Apache2. Стандартный путь к корневой директории: /var/www/html.
Прокси-сервер {browsermob-proxy)
Модуль анализа /гаг-логов браузера
Рис. 5. Структурная схема модуля динамического анализа на основе программно-управляемого браузера
4. Оценка эффективности средства анализа и предложения по применению средства анализа структуры веб-приложений информационного ресурса. Статистика, полученная по итогам сканирования тестовых веб-ресурсов представлена в таблице.
Статистика обнаруженных точек входа
URL Всего Статический анализ Динамический анализ Прирост, % Общий прирост, %
youtube.com 4686 4338 348 8,02 8,03
royal.uk 9384 8115 1269 15,63
kremlin. ru 3494 3379 115 3,40
hackthissite.org 3654 3388 266 7,85
В результате пробных тестирований разработанного средства было установлено, что использование модуля динамического анализа дает прирост количества обнаруженных точек входа 8,03%. Данный результат говорит о том, что, используя средство анализа структуры, можно получить более полную модель целевого веб-ресурса, что дает новые направления для проверки методом фаззинга.
Целью разработки данного средства является повышение эффективности тестирования веб-приложений методом фаззинга. В условиях полного отсутствия информации о целевом тестируемом веб-ресурсе целесообразно исследовать его на предварительном этапе проведения экспериментов. Вариант использования разработанного автоматизированного средства анализа структуры веб-приложений представлен на рис. 6.
Фаззинг веб-приложения
Рис. 6. Схема фаззинга с обратной связью при формировании
входных данных
В данной схеме для формирования входных данных дополнительно используются данные описания модели веб-ресурса, подготовленные на предварительном этапе средством анализа.
Таким образом, проведены тестовые сканирования длительностью в одну минуту. Несмотря на малое количество времени, средство анализа смогло обнаружить большое количество точек входа. Прирост количества обнаруженных точек входа равный 8,03%, доказывает факт сбора более полного набора входных данных для средства тестирования. Предложен вариант применения автоматизированного средства анализа в составе фаззинга с обратной связью.
Выводы
На основании проведенного анализа можно сделать вывод, что для реализации САЗ удаленных ресурсов необходимо иметь эффективную подсистему анализа модели веб-ресурса. В современных условиях, когда веб-приложения, как правило, защищены методами обфускации, задача построения информационной модели веб-ресурса и распознавания точек входа для дальнейшего использования в средства автоматизированного тестирования (фаззере) успешно решается методом динамического анализа на основе программно-управляемых браузеров. Проведенные в работе эксперименты подтверждают данные выводы.
Список литературы
1. Уязвимости и угрозы веб-приложений в 2019 году // Positive Technologies. [Электронный ресурс] URL: https://www.ptsecurity.com/ru-ru/research/analytics/web-vulnerabilities-2020 (дата обращения 19.04.2020).
2. Саттон М., Грин А., Амини П. Fuzzing: исследование уязвимо-стей методом грубой силы / пер. с англ. Санкт-Петербург: Символ-Плюс, 2009. 560 с.
3. Петров С. А., Хорев П.Б. Методы искусственного интеллекта в задачах обеспечения безопасности компьютерных сетей // 18 МНТК "Радиоэлектроника, электротехника, и энергетика": сборник научных трудов. М.: Издательский дом МЭИ, 2012. Том 2. С. 63.
4. Котенко И.В., Степашкин Е.В., Дойникова Е.В. Анализ защищенности автоматизированных систем с учетом социо-инженерных атак // Проблемы информационной безопасности. Компьютерные системы. М., 2011. № 3. С. 40 - 57.
5. Азарнова Т.В., Полухин П.В. Исследование процесса фаззинга SQL-инъекций веб-приложений на основе динамической сети Байеса // Вестник Воронежского государственного ун-та. Серия: Системный анализ и информационные технологии. 2014. № 1. С. 120-129.
6. Полухин П.В. Байесовские модели и алгоритмы управления процессом тестирования веб-приложений методом фаззинга: дис. ... канд. техн. наук: Воронеж, 2016. 180 с.
7. Горюнов М.Н. Распознавание функциональных объектов программного обеспечения в условиях отсутствия исходных текстов // Информационные системы и технологии. 2013. №5. С. 112 - 120.
8. Аранов В.Ю. Метод и средства защиты исполняемого программного кода от динамического и статического анализа: автореф. дис. ... канд. техн. наук. Санкт-Петербург, 2014. 18 с.
9. Маркин Д.О., Макеев С.М. Система защиты терминальных программ от анализа на основе виртуализации исполняемого кода // Вопросы кибербезопасности. 2020. № 1 (35). С. 29-41. D0I:10.21681/2311-3456-2020 -01-29-41.
10. Волков А. TrustZone: доверенная ОС и ее приложения // Блог компании Аладдин Р. Д. [Электронный ресурс]. URL: http s: //habr .com/ru/ company/aladdinrd/blog/428311 (дата обращения: 24.09.2019).
11. Варнавский Н.П. Современное состояние исследований в области обфускации программ: определение стойкости обфускации / Н. П. Варнавский [и др.] // Труды ИСП РАН. 2014. Т. 26. Вып. 3. С. 167 -198.
12. Казарин О.В., Шубинский И.Б. Надежность и безопасность программного обеспечения. М.: Изд-во Юрайт, 2018. 342 с.
38
13. Кузнецова А.О., Верхотурова Г.Н. Об особенностях применения методов обфускации программного кода языка JavaScript // Информационные технологии интеллектуальной поддержки принятия решений. 2019. С. 117 - 122.
14. Носеевич Г.М., Петухов А.А. Поиск входных точек для веб-приложений с динамическим пользовательским интерфейсом // Безопасность информационных технологий. 2013. № 1. С. 13-20.
15. Pedro F. A methodology for Assessing JavaScript Software Protections // OWASP AppSec Europe. 2018.
16. Маркин Д.О., Зверев А. А., Саклаков А.И., Рыков Д. А. Технологии распознавания моделей точек входа веб-приложений // Безопасные информационные технологии: Десятая международная научно-техническая конференция: сб. трудов (Москва, 3-4 декабря, 2019 г.). М.: МГТУ им. Н.Э. Баумана, 2019. 409 с.
17. Маркин Д.О. Адаптивный фаззинг веб-приложений на основе модели веб-ресурса / Д.О. Маркин, А. А. Зверев ; под ред. С.В. Бачевского; сост. А.Г. Владыко, Е.А. Аникевич // Актуальные проблемы инфотелеком-муникаций в науке и образовании (АПИНО 2019): VIII Международная научно-техническая и научно-методическая конференция : сб. науч. ст. в 4 т. (27-28 февраля 2019, Санкт-Петербург). Санкт-Петербург: СПбГУТ, 2019. Т. 2. 603 с.
18. Автоматизированная система распознавания точек входа веб-приложений: свидетельство о государственной регистрации программы для ЭВМ № 2020610279 Российская Федерация / Д.О. Маркин, А.А. Зверев, А.Н. Вихарев, Д.А. Зверев, А.И. Саклаков, Д.А. Рыков; авторы и правообладатели Д.О. Маркин, А.А. Зверев, А.Н. Вихарев, Д.А. Зверев, А.И. Саклаков, Д.А. Рыков. № 2019667181; заявл. 23.12.2019; зарегистрировано в Реестре программ для ЭВМ 13.01.2020 г.
Маркин Дмитрий Олегович, канд. техн. наук, сотрудник, mdoaacadem.msk.rsnet.ru, Россия, Орёл, Академия ФСО России,
Макеев Сергей Михайлович, канд. техн. наук, сотрудник, maksm5 7a, yandex. ru, Россия, Орёл, Академия ФСО России,
Зверев Артем Александрович, сотрудник, mdoaacadem.msk.rsnet.ru, Россия, Орёл, Академия ФСО России
THE ALGORITHM OF OBFUSCATED WEB APPLICATION ENTRY POINTS IDENTIFICATION BASED ON DYNAMIC ANALYZE METHOD
D.O. Markin, S.M. Makeev, A.A. Zverev
Summary. The works describes entry points identification system based on software controlled algorithm. In fact web applications are secured by obfuscation algorithm now so entry points identification based on signature analyze has no efficiency. The authors present the algorithm of web application dynamic analyze method using software controlled web browsers. The algorithm allows to extract software controlled web browser s logs containing
data about HTTP-requests of obfuscated client web applications. The experiments show efficiency of the offered analyze method. So the method allows to created information model of analyzed web resource which can be used for web fuzzing. The work contains description of offered system structure, its functions and procedures, used technologies and results of the accomplished experiments.
Key words: entry points identification, dynamic analyze, software controlled web browser, fuzzing, web application.
Markin Dmitry Olegovich, candidate of technical sciences, employee, mdo@academ. msk. rsnet. ru, Russia, Oryol, The Academy of Federal Security Guard Service of the Russian Federation,
Makeev Sergey Mihaylovich, candidate of technical sciences, employee, maksm5 7@yandex. ru, Russia, Oryol, The Academy of Federal Security Guard Service of the Russian Federation,
Zverev Artem Aleksandrovich, employee, [email protected], Russia, Oryol, The Academy of Federal Security Guard Service of the Russian Federation
УДК 004.415:04.424; 004.453
ПОДХОД К ПОСТРОЕНИЮ РАСПРЕДЕЛЕННОЙ ВИРТУАЛЬНОЙ МАШИНЫ НА ОСНОВЕ ОБЪЕКТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
И.О. Шальнев
Рассматриваются основные проблемы реконфигурации распределенных информационно-вычислительных систем. Предлагается метод построения виртуальной машины с использованием объектно-ориентированного подхода в качестве решения задачи runtime-реконфигурации распределенных систем, с учетом особенностей реализации асинхронного взаимодействия между фрагментами программного кода для балансировки загруженности узлов сети.
Ключевые слова: языковые виртуальные машины, объектное взаимодействие, клиент-серверное взаимодействие, распределенные информационные системы.
Распределенная система (РС) представляет собой совокупность вычислительных узлов, выполняющих общую сложную задачу [1]. Необходимость в создании подобных систем связана с усложнением программных продуктов и требованием к увеличению качества и отказоустойчивости программного обеспечения. Так, например, систему, которая требует обработки запросов миллионов пользователей (их еще называют высоконагру-женными системами) технически сложно реализовать на одной вычислительной машине. Во-первых, подобное оборудование, способное обеспечить решение такой задачи весьма дорогостоящее, во-вторых, в случае
40