Безопасность облачных технологий, новые методы выявления уязвимостей программного кода, создание безотказных программных компонентов для работы в космосе - эти и другие темы обсуждались на 11-й Ершовской конференции PSI-2017, авторитетном российском форуме ИТ-специалистов, состоявшемся в главном здании РАН в конце июня. Участники – представители прикладной и фундаментальной науки – приехали в Москву со всего мира.
«PSI занимает особое место среди российских ИТ-конференций, – рассказал Андрей Воронков, сопредседатель программного комитета, профессор Университета Манчестера. - Это, наверное, самая большая и старейшая международная конференция по информатике, традиционно проводящаяся в России. Она славится своей прекрасной организацией, традициями, хорошей комбинацией теоретических и практических работ и приглашенных докладчиков, что позволяет гордиться почти каждой из этих конференций».
Сохранение баланса между фундаментальной и прикладной наукой, предоставление площадки для общения теоретиков и практиков – главная задача PSI. «В большинстве своем конференции по Computer Science становятся узкоспециализированными. Есть мероприятия, посвященные базам данных, инструментам программирования, информационному поиску, менеджменту, даже социальным вопросам. А конференций по программированию в целом практически единицы, один из таких примеров – как раз PSI-2017. Кроме того, это хорошая площадка для общения и создания мостов между представителями науки и индустрии», – уточнил Александр Петренко, сопредседатель программного комитета конференции, заведующий отделом Института системного программирования РАН.
В результате вопросы прикладные соседствовали в докладах с теоретическими выкладками из области «чистой» математики, а сообщения о новых инструментах для обеспечения безопасности программного кода – с рассуждениями о математическом моделировании кризисных ситуаций. Большое внимание на конференции уделили вопросам методологии и технологии программирования, высокопроизводительных вычислений, моделирования и анализа систем реального времени и гибридных систем, программирования в ограничениях, понимания и визуализация программ, онтологии в информационных системах.
Сразу несколько докладов было посвящено безопасности облачных технологий. В частности, на эту тему выступил Шрирам Раджамэни, управляющий директор Microsoft Research India. «В современном мире облачные вычисления используются все чаще, поскольку выгодны с точки зрения цены и удобства для пользователей, – отметил он. – Однако безопасность и конфиденциальность по-прежнему остаются главными проблемами. Мы хотим защититься от мощного противника, который может поставить под угрозу CloudOS и использовать возможности этой технологии, чтобы поставить под угрозу целостность и конфиденциальность пользовательских приложений. Разумеется, основным оружием защиты в наших руках стало безопасное аппаратное обеспечение и доверенные гипервизоры. Однако вопрос построения полноценного сервиса облачных вычислений с использованием доверенного безопасного аппаратного обеспечения, который одновременно был бы доверенным, высокопроизводительным, и гарантировал безопасность вычислений конечного пользователя остается открытым». В докладе Шрирама Раджамэни описывался один из вариантов такого сервиса - проект Trusted Cloud, опирающийся на методы, охватывающие аппаратные средства, операционную систему, компиляторы и инструменты верификации.
Впрочем, как подчеркнул Майкл Хинчи, директор Ирландского исследовательского центра программного обеспечения при университете Лимерика: «Абсолютную безопасность можно обеспечить только в очень узких рамках строго определенных условий. В общем смысле все возможные кризисные ситуации нам просто не охватить».
Такое состояние дел осознают сегодня решительно все. «Как только какие-то методы становятся действенными для защиты некоторых уязвимостей, хакеры начинают искать другие уязвимости, – уточнил Андрей Сабельфельд, профессор факультета компьютерных наук и инженерии Технического университета Чалмерса и Гётеборгского университета. – Поэтому любая защита должна быть комплексной – от предотвращения, до смягчения эффектов атак, до мониторинга и аудита. А также многоуровневой – от уровня компьютерной архитектуры, до уровня операционной системы, уровня приложений и сетевого уровня».
«Безопасность для нас – краеугольный камень, наряду с эффективностью и продуктивностью программного обеспечения, – согласился с ним Арутюн Аветисян, член-корреспондент РАН, директор Института системного программирования РАН. – Мы рассматриваем этот вопрос прежде всего с точки зрения современных подходов, анализа кода, позволяющего минимизировать появление уязвимостей в процессе создания ПО и возможность их использования в процессе эксплуатации программ».
Сегодня объем программного кода может доходить по объему до нескольких миллионов строк, – предела, за которым «ручной» анализ становится практически бесполезен. Это значит, что вероятность ошибки, дефекта кода возрастает многократно, а шанс эту ошибку обнаружить, напротив, стремится к нулю. Между тем, уязвимости ПО, критические ошибки, не выявленные в ходе тестирования и не декларированные спецификацией разработчика, а то и заложенные преднамеренно, могут дать злоумышленникам исключительные возможности для получения несанкционированного доступа к информации, ее разглашения, модификации, блокирования или уничтожения, дестабилизации либо контроля работы различных систем. Майкл Хинчи, в частности, выразил глубокую озабоченность тем, что объектами хакерских атак могут стать авиация или системы безопасности крупных предприятий, - в том числе энергетических. В этой ситуации возникает острая необходимость в своевременном обнаружении дефектов программного кода на этапах разработки и проектирования программного обеспечения, проверки его соответствия заявленной политике безопасности и реализации механизмов защиты. Точность отслеживания уязвимостей в данном случае становится основным критерием эффективности предназначенных для этого инструментов: для того, чтобы быть анализ уязвимостей был практичным, количество ложных срабатываний должно быть не слишком большим.
Технологии анализа программного кода SVACE, уже внедренной в ряде промышленных компаний, был посвящен доклад старшего научного сотрудника ИСП РАН Андрея Белеванцева о многоуровневом статическом анализе для поиска шаблонов ошибок и дефектов в исходном коде. В докладе рассматривались теоретические методы и алгоритмы, положенные в основу инструмента SVACE – одной из наиболее востребованных производителями программного обеспечения технологий, разработанных Институтом системного программирования РАН. Его использование для анализа больших объемов кода, таких как полномасштабные ОС Android и Tizen, показало масштабируемость подхода и приемлемое соотношение ложных и истинных срабатываний: от 50% до 80% найденных ошибок оказываются истинными.
Подводя итоги PSI-2017, участники отметили важность непосредственного общения, обмена идеями и концепциями. «Отличительная черта Ершовской конференции – атмосфера продуктивного общения, – сказал Арутюн Аветисян. – Это не просто сухие доклады, но уже сложившаяся как традиция очень интересная, продуктивная атмосфера общения. Эта атмосфера и высокий, мировой уровень докладов создают определенное волшебство, приносящее прекрасные результаты». Его в полной мере поддержал Динес Бьорнер, почетный профессор Технического университета Дании, один из основателей PSI: «На конференции было озвучено много интересных идей, в том числе – оригинальных мыслей относительно решения вопросов с несанкционированным доступом к программному коду через уязвимости. Это была настоящая встреча больших умов».
[Редакция портала "Научная Россия" благодарит пресс-службу Института системного программирования Российской академии наук за предоставленные материалы]