Новости ИСП РАН


Новости ИСП РАН

23 Января, 2017

Арутюн Аветисян в интервью Rambler об информационной безопасности, уязвимости компьютерных программ, совместных проектах с Samsung и Свемел

Можно сейчас сравнивать академический Институт системного программирования, например, с американской Кремниевой долиной или индийским технопарком в Бангалоре?

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

В части образования мы имеем три кафедры в МГУ, Физтехе и Высшей школе экономики. Выстроена целая система отбора и работы с талантливыми студентами. Элитарное образование очень сильно ограничено масштабируемостью. В первую очередь, это связано с тем, что с каждым студентом большую часть времени необходимо работать индивидуально. Тем не менее сегодня 90% наших сотрудников — наши бывшие студенты. С генерацией интересных идей проблем нет. Но если не проводить их правильную селекцию, можно уйти в научную фантастику. Для этого как раз и нужны исследования, которые дают понимание передового фронта идей. Это второе направление нашей деятельности.

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

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

Для нас важно еще, конечно, наличие академической среды и некоторого бюджетного финансирования, которое дает стабильность. Перед нами не стоит задача заработать деньги на рынке, на каком-то конкретном направлении.

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

Что на выходе?

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

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

У нас такой опыт был. В свое время компания Oracle хотела купить нашу систему. Переговоры шли долго. Кончилось тем, что они открытым текстом нам сказали: хотим купить команду. Мы, естественно, отказались. Переманить людей они не смогли. Так у них ничем все и кончилось.

Как удается держать кадры?

С 1994 по 2000 год 80% сотрудников нашего института уехали в США, Западную Европу, Израиль и даже в Новую Зеландию. Последние из этих ребят уехали в 1999 году в США. Когда мы были не так давно в израильской «силиконовой долине», ее руководители не скрывали, что одним из пяти факторов, определивших бурное развитие программирования в Израиле, была именно эмиграция классных программистов из СССР и России в 1990-е годы.

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

Каждое новое внедрение технологии — это искусство. И успех определяется, как говорится, «последней милей». Цена этого этапа очень велика. Он самый наукоемкий. Чтобы его пройти, нужно владеть всем багажом знаний, включая оборудование, аппаратуру, срез системного программного обеспечения, приложения. Без знания всего этого внедрение и использование технологии невозможно. Поэтому центры компетенций, которые могли бы потенциально генерировать такие кадры и делать новые технологии, становятся чрезвычайно важными. Наш институт является именно таким центром компетенций в области системного программного обеспечения. Все последние годы мы росли. Сейчас в институте чуть больше 200 человек. Из них почти 80% попадают в категорию «молодой ученый». Даже в последние два кризисных года мы создали у себя 40 новых рабочих мест. В кадровой политике задача обеспечения преемственности — самая острая. Эта проблема будет давить в нашей экономике в ближайшие годы. Мы в институте эту проблему смогли решить. У нас есть слой программистов, так скажем, «полевых командиров», в возрасте 30–35 лет, которые способны поставить и организовать решение задачи практически любой сложности.

Средняя зарплата в институте для научных работников — порядка 150 тыс. рублей. Это, конечно, ниже, чем в США, но вполне сопоставимо с уровнем зарплат в крупных российских hi-tech-компаниях. Сейчас в кадрах у нас, кстати, основная конкуренция не с американцами, а внутри России: с IT-компаниями, где есть хорошие места для программистов. Сейчас люди уезжают за рубеж, как правило, не из-за зарплат, а по жизненным обстоятельствам. И отток этот совсем небольшой.

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

Как формируется бюджет института?

В 90-е годы у нас более 90% выручки давали контракты с западными компаниями. Мы платили налогов больше, чем получали совокупно из всех бюджетов. В конце прошлого десятилетия ситуация начала существенно меняться. При том что общий бюджет института рос без всяких падений, как и количество сотрудников, доля поступлений от отечественных заказчиков росла. Мы постепенно пришли к тому, что из денег, получаемых по коммерческим контрактам, сегодня примерно 40% — это деньги отечественных компаний. Например, «Вымпелкома». На западные приходится 60%. Это без учета бюджетного финансирования, в том числе по линии Российского фонда фундаментальных исследований, министерства образования и науки.

Соотношение варьируется от 70 на 30% до 55 на 45% пока в пользу западных контрактов. Я вижу тенденцию, что доля отечественных заказов постепенно наращивается. Я думаю, это хорошо.

«Вымпелком» какие работы заказывает?

У нас есть отдел тестирования и верификации программных продуктов. А «Вымпелкому» очень важно, чтобы надежность его работы была высокая. Поэтому у нас с этой компанией сотрудничество долгосрочное, уже более пяти лет.

Какие еще проекты реализуются институтом в интересах промышленности?

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

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

Это все должно удобно и эффективно работать. Должна быть переносимость и многое что еще. Мы именно так думаем, проектируя вычислительную платформу для авионики. Через три года мы ее сдадим с набором необходимых материалов для сертификации. Но работать она, думаю, начнет раньше.

У нас не «водопадная» модель разработки. Хотя некоторые контракты мы подписываем, к сожалению, по «водопадной» модели. А работаем по итеративной модели. Как только подписываем контракт, а иногда и раньше, начинаем писать код. Это, кстати, помогает лучше понять требования. Обратная связь нужна. Так что в части решений для авионики у нас уже кое-что есть.

А есть примеры успешного взаимодействия института с крупными западными компаниями?

Мы, например, в сотрудничестве с Samsung были одними из основателей платформы Tizen в России. Мы приняли участие в этом проекте, несмотря на то что входим в структуру Российской академии наук. Я считаю, что единственный способ создать платформу, конкурентную Android и Apple, это иметь сопоставимую по качеству систему, но на открытом коде, вокруг которой можно создать сообщество разработчиков и потребителей. Я в этом долго убеждал Samsung и, надеюсь, был услышан. Tizen — попытка создать такое сообщество. Удастся или нет — я не знаю, но моя идея именно в этом.

Tizen сейчас установлен на все телевизоры Samsung, на все носимые устройства. Так как мы делали оптимизацию Tizen, могу сказать, что эта платформа работает быстрее Android с точки зрения работы с памятью. Хорошей новостью является то, что следующая версия платформы Tizen будет включать C#. То есть и Microsoft к этому подключился. С другой стороны, Samsung готов отдать этот проект в open source полностью. В аспектах технологической независимости и возможности использования и развития платформы в России это уже произошло.

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

Что касается основного вклада ИСП РАН в Tizen, это разработка средств анализа кода на предмет дефектов и уязвимостей. Такие инструменты — неотъемлемая часть жизненного цикла разработки безопасного программного обеспечения (на Западе называется security development lifecycle). Это полностью наша разработка, реализованная в технологии Svace. В ближайшее время наши инструменты станут частью платформы, причем на международном уровне. Я надеюсь, что это хорошие предпосылки для полноценного партнерства в международной кооперации.

Возможно, такие проекты должны поддерживаться правительством, причем не только нашим. Игроки по ту сторону океана очень мощные: Google находится в мощнейшей экосистеме, вокруг которой работают университеты, Кремниевая долина, и компания, как пылесос, может втягивать ресурсы. У нас этих ресурсов не так много, а надеяться, что мы оттуда их перетянем, не приходится — это сверхдорого, мы просто не конкуренты.

Сейчас много говорят о кибервойнах и кибероружии. Насколько реальны угрозы?

Все индустриальные системы принципиально уязвимы. Так как все в IT, везде чипы, интернет вещей и так далее. Безусловно, мир становится все более уязвимым. Более того, невозможно отделить уязвимость от закладки. Любая уязвимость может быть представлена как ошибка программиста. С учетом того, что у нас большая часть систем поставляется из-за рубежа, код должен проверяться специальными инструментами. И на это не нужно жалеть денег.

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

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

Никто у нас этим не занимается. Мы давно предлагаем: давайте сделаем компилятор, который будет промышленно компилировать тот же «Линукс», но уберем в нем такого рода ошибки. Сейчас мы сами их все не знаем. Составим картотеку таких ошибок, будем ее пополнять.

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

Считается, что мы менее уязвимы для кибератак, потому что у нас меньше распространены IT-технологии, чем в США, например.

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

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

Кроме того, у нас есть в руках промышленные инструменты запутывания кода для традиционных языков программирования С, С++, для двух наиболее распространенных открытых компиляторных инфраструктур: GCC и LLVM. Но самое интересное: к нам пришел российский заказчик, компания «Свемел», которая делает свою операционную систему. Мы даже не знали, для чего они ее используют. Они внедрили наше решение по запутыванию кода в погранслужбе ФСБ и в МИДе.

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

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

Правительство обязало госкомпании закупать отечественный софт вместо импортного. Один из аргументов: в импортных программах могут быть «шпионские закладки». Действительно ли такая угроза есть? И второй вопрос: а что, в отечественном софте закладок или ошибок не может быть? Его ведь тоже надо проверять?

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

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

Законсервировать свою платформу и держать ее десятилетиями вы все равно не сможете. Вам все равно придется ее синхронизировать с основной ветвью разработки. Раз в два года или в три — неважно. И оттуда к вам может прийти все что угодно. То есть вы все равно упретесь в то, что вам будут нужны современные технологии, которые будут отфильтровывать дефекты, будь то закладки или ошибки. Но такие технологии удорожают разработку, и для создания их рынка нужна соответствующая законодательная база. Мы принимаем участие в такой работе в рамках совместных работ со ФСТЭК.

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

А как все же быть, если поставили компании или госучреждению программу, а потом с ее же помощью украли информацию или что-то захватили?

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

Если вернуться к теме закладок. В чем может быть их опасность?

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

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

Импортным компьютерам тоже доверять нельзя?

А как вы думаете? Мне непонятно, например, как можно обеспечить безопасность аппаратно-программной платформы, если аппаратура в ней не ваша. Как технологический человек, могу сказать, что современные методы аппаратной виртуализации, технологии виртуализации, которыми мы занимаемся много лет, показывают, что вы никогда не можете быть уверенными в том, что именно то, что есть в вашем софте, ровно и делается. Потому что в любой аппаратуре есть микрокоды, есть просто недокументированные возможности «железа», которые могут сделать все что угодно.

Да, есть возможность скрыть эту систему, держать в каком-то контуре и тем самым гарантировать безопасность. Но снова: это защита только от внешнего воздействия. Допустим, вы ее гарантировали. А если внутри эскалация прав? Например, внутри системы человек, у которого права секретаря, а на самом деле он за счет эскалации получил доступ к правам генерала. Если у вас в «железе» «дырка», он это может сделать. Именно поэтому, мне кажется, в совсем критических вещах, о которых я уже говорил, желательно иметь и свой софт, и свое «железо». Хотя я понимаю, что могут быть разные способы, как снизить эти риски, управлять ими. Это понятно. Для этого есть специальные люди, службы. Они умеют это делать. И тут мы им можем даже помочь, наверное. Но повторю: желательно, чтобы в критических вещах все было ваше, где вы точно все знаете.

Источник: Rambler News Service


Все новости