Точные науки
3303

Кодированные: лаборатория НовГУ смогла создать IT-продукты мирового уровня

Кодированные: лаборатория НовГУ смогла создать IT-продукты мирового уровня

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

Перехватить сигнал

Утро понедельника — всего два слова, но ими всё сказано. Голова соображает туго. В окружении бесконечного множества компьютеров и прочего неопознанного железа технический лидер лаборатории системного программирования НовГУ Павел Довгалюк проявляет чудеса терпения и объясняет на пальцах, что здесь вообще происходит. 

— Наш продукт можно сравнить с микроскопом или томографом, — говорит доцент кафедры информационных технологий и систем. — Как это работает? Вот, к примеру, работают люди в сертификационной лаборатории или антивирусной компании. Они написали программу, но им нужно проверить — насколько «вредной» она получилась. Тут-то им на выручку и придёт софт нашей лаборатории. Они загрузят в него свою программу, проведут исследование, найдут вредоносные функции. 

Во время разговора Павел Довгалюк постоянно посматривает на часы. О том, что он человек занятой, догадаться нетрудно. Но занятость эта для новгородских широт особенная. 

— Павел Михалыч — эксперт мирового уровня, — даёт оценку коллеге руководитель лаборатории системного программирования, доцент кафедры информационных технологий и систем НовГУ Владимир Макаров. — Его не раз звали работать в Европу. Но он бы и в Кремниевой Долине устроился хорошо. Таких профессионалов, как он у нас в городе больше нет, точно вам говорю. 

Щедрый на комплименты коллеге Владимир Макаров о своих заслугах предпочитает говорить уже безоценочно — исключительно фактами. Лабораторию системного программирования он возглавляет с момента создания — 2009 года. Появилась она по инициативе Института системного программирования РАН, которому не хватало рук и мозгов для разработки инновационного софта. Поэтому им понадобился «отряд помощников» в Новгороде. 

— В Институте системного программирования в большом количестве ведутся разработки, и им не хватает людей, — объясняет Павел Довгалюк. — Поэтому они создают лаборатории по стране — и отдают им часть заказов.  

Владимира Макарова руководителем лаборатории выбрали не случайно, у него был послужной список. В 1999 году он организовал в Новгороде филиал компании AstroSoft, где десять лет занимался разработкой программного обеспечения. Эта компания давала заказчикам готовые решения и хорошо зарекомендовала себя на рынке. Но на излёте десятилетия Макарову захотелось большего. 

— В 2004 году я познакомился с академиком Виктором Иванниковым из Института системного программирования, — вспоминает Владимир Макаров. — Этот человек произвёл на меня неизгладимое впечатление — мне очень захотелось работать над проектами вместе с ним. С этого времени мы периодически общались, встречались. И в 2009 году Институт подобрал для нас первый пилотный проект, который решили реализовывать в Великом Новгороде. Под него и создали лабораторию.

В лабораторию системного программирования, помимо директора Макарова и технического лидера Довгалюка, пришли работать разработчики Мария Климушенкова и Анна Мухина. 

— Чем мы занимаемся? — теперь на главный вопрос пытается ответить Владимир Макаров. — Ну, вот смотрите — пример. Есть у ребёнка электронный браслет. С его помощью родители могут отслеживать местонахождение. Но по уровню цифровой защиты такое устройство — проходной двор. Я спокойно могу перехватить сигнал и показать родителям, что ребёнок движется из Новгорода в Санкт-Петербург. Представьте, если кто-то проделает подобное с родителями всего города. Что тогда на улицах будет? 

— Владимир Алексеевич, вы это всё к чему? 

— К тому, что кибербезопасности у нас до сих пор уделяется недостаточное внимание, — ухмыляется Макаров. 

С ним бы согласился и президент. В последнем обращении к федеральному собранию Владимир Путин несколько минут говорил о важности разработок в области кибербезопасности. В Новгородском университете эту важность оценили ещё 12 лет назад. Собственно, тогда лабораторию и открыли. 

Важные люди

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

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

Лаборатория системного программирования — это научно-исследовательский институт. Владимир Макаров с первого дня её работы пытался донести до коллег, что этот статус у неё неспроста. 

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

Лаборатория системного программирования НовГУ специализируется на поддержке виртуальных машин, которые также называют эмуляторами. Это специальный IT-инструмент, который позволяет воспроизводить свойства одних компьютерных систем на других. Можно, например, эмулировать работу других процессоров. Чтобы поддерживать эмуляторы в боеспособном состоянии, нужно своевременно устранять ошибки в программном коде разработчиков. Этим и заняты сотрудники новгородской лаборатории. Они создают безопасную виртуальную среду для разрабатываемой или анализируемой программы.

— Обычно уязвимость — это результат ошибки программиста, её в программу закладывают не специально, — говорит Павел Довгалюк. — Именно для этого мы создаём системы анализа. Они позволяют проверять программы до того, как их выпустит разработчик. Так мы упрощаем работу аналитикам. Но, конечно, серебряной пули нет — и стопроцентного способа убедиться в том, что ошибки отсутствуют, не существует. Всегда что-то остаётся.

Если совсем упростить, то лаборатория разрабатывает инструментарий для создания софта и передаёт его заказчикам. 

— А что люди с ним делают после — даже мы не всегда знаем, — говорит Владимир Макаров. 

— Что ж это за люди такие — ваши заказчики? 

— Ну, так скажем, те, которые обеспечивают информационную безопасность государства. 

Теперь понятно. Тут работают очень важные люди. 

Найти первопричину 

Востребованный компьютерный софт в 99% случаев делают крупные IT-компании. Ими обычно руководят важные дядьки в дорогих костюмах, которые хотят денег. Поэтому они заботятся о том, чтобы их продукт не украли нехорошие люди — пираты, к примеру. Чтобы взлома или воровства не случилось, IT-гиганты используют закрытый программный код. Он не позволяет «мутноватым людям с улицы» залезть в ДНК разработки. 

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

— На открытым коде работает и виртуальная машина QEMU, это эмулятор вычислительных систем, — Павел Довгалюк рассказывает об одном из самых важных проектов лаборатории. — Его используют во всём мире. И наша лаборатория участвует в доработке этого эмулятора — мы сопровождаем определенный фрагмент кода. Поэтому мы можем говорить, что наша работа соответствует мировому уровню. 

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

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

Также лаборатория разработала инструмент для обратной отладки программного обеспечения. И это тоже веха в работе. 

— Если у вас достаточно сложный код, который писался долго и у него довольно сложно найти дефекты, — объясняет Владимир Макаров. — Наш отладчик поможет найти в коде ошибку. Как? Ну, скажем грубо, он при помощи некоторых манипуляций может разворачивать время вспять, чтобы разработчик мог проанализировать предыдущие шаги в создании кода. Ведь ошибка могла случиться давно, но её последствия могли копиться долго и проявиться только сейчас. Наш инструмент помогает откатиться назад и найти первопричину. 

Но кибербезопасность для «простых смертных» — это не сложные слова про коды и эмуляторы. Про хакерские атаки все читают в новостях — в результате боятся, но ни черта не понимают, что же всё-таки делать. Павел Довгалюк рассказывает, что отправной точкой при хакерском взломе большой системы — к примеру, корпоративной, — может стать «письмо счастья». 

— Сотруднику присылают что-то на электронную почту, — рассказывает Павел Довгалюк. — Иногда «письма» приходят на общеизвестный адрес, иногда его подбирают методом перебора. Работник проходит по ссылке, после чего над его компьютером получают контроль злоумышленники. Дальше во всей корпоративной сети находятся слабые места — так её и захватывают.

Павел Довагалюк рассказывает, что бывали случаи, когда взламывали компьютеры, контролирующие банкоматы. В результате деньги уходили безвозвратно и далеко. 

— Процесс взлома могут остановить антивирусные программы. Но проблема в том, что они работают с уже известными вирусами. Если вирус новый, антивирусы могут его пропустить, — говорит Павел Довгалюк. 

Чтобы изучать код новых вирусов и подозреваемых по вредоносности программ, разработчики используют технологии лаборатории системного программирования. 

Ключи к загадкам 

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

— Специалисты нам очень нужны, их катастрофически не хватает, а работы много, — говорит Владимир Макаров. — Но в нашей отрасли не приживаются программисты с узкой специализацией, которые хорошо знают только одно направление. Для работы у нас этого недостаточно — нужно знать целый набор IT-инструментов. На такое обучение нужно потратить огромное количество времени. И решению задач, над которыми работает наша лаборатория, нельзя научиться в теории — только на практике.

При этом, отмечает Владимир Макаров, обучение сугубо внутри одной страны — это прошлый век, так востребованного специалиста не подготовишь. 

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

Сотрудники лаборатории системного программирования этим принципам следуют. Помимо прикладной деятельности, активно ведут и научную. 

— Ведь мы работаем в довольно наукоёмкой отрасли, — говорит Павел Довгалюк. — Фундаментальные знания в нашей сфере обязательно должны сочетаться с прикладными — и для этого мы постоянно участвуем в научных конференциях. Понимаете, у нас цель — наши инструменты должны работать хорошо. И для этого мы постоянно должны придумывать что-то новое. Готового рецепта нет — никто не знает, как правильно. В отличие от олимпиад по программированию, где у заданий точно есть ответ — и нужно просто его найти. Мы же, когда начинаем работу, даже не знаем — а есть ли вообще у поставленной задачи ответ? Поэтому должны всегда развивать нашу научную базу. 

Павел Довгалюк говорит, что ключи к загадкам всегда в науке. Нужно просто смотреть внимательней.

Фото: Светлана Разумовская