Русские программисты поправят ошибки в коде Samsung

Южнокорейская корпорация пользуется разработкой Российской академии наук
Samsung глядит на свои программные продукты русским глазом
Samsung глядит на свои программные продукты русским глазом / Dado Ruvic / REUTERS

Южнокорейский Samsung пользуется разработкой Института системного программирования Российской академии наук (ИСП РАН) под названием Svace, сообщили «Ведомостям» директор ИСП РАН Арутюн Аветисян и GR-директор российского офиса Samsung Марат Гуриев. Svace ищет ошибки в исходном коде операционных систем Android (создает ее Google, а Samsung дорабатывает), а также в кодах собственных приложений Samsung под Android и операционной системы Tizen авторства Samsung, объясняют они.

По словам Гуриева и Аветисяна, Samsung вложил в разработку технологии более $10 млн, но права на продукт остались за ИСП РАН. Samsung инвестировал в разработку и теперь пользуется ею бесплатно, говорит Гуриев: с 2015 г. это единственный анализатор кода, которым пользуется Samsung. Аветисян поясняет, что анализируется код, написанный на языках C, C++, C# и Java.

В среднем при написании 1000 строчек кода программист совершает около 20 ошибок, а с помощью Svace их число можно сократить в несколько раз, рассказывает научный руководитель ИСП РАН Виктор Иванников. Применение инструментов анализа кода сейчас обязательно при разработке безопасного программного обеспечения, продолжает Аветисян, фундаментальными исследованиями в области анализа программного кода ИСП РАН занимается с 2002 г. Samsung заинтересовался разработкой в 2009 г., вспоминает он.

Выручка ИСП РАН за 2015 г. – около $10 млн, говорит Аветисян, институт зарабатывает на услугах анализа кода и анализа данных; в числе заказчиков – Hewlett-Packard, Huawei, Intel, «Вымпелком».

$10 000 за дыру

Компания Илона Маска Tesla Motors выплачивает вознаграждение исследователям, нашедшим уязвимости в ее продуктах: от $10 до $10 000 за каждую, следует из объявления компании на сайте bugcrowd.com. Компанию интересуют уязвимости не только в ее машинах, но и на ее веб-сайтах и в мобильных приложениях.

Исследовательская компания IDC называет Samsung лидером мирового рынка смартфонов: к концу II квартала 2016 г. южнокорейский вендор поставил 78,6 млн аппаратов, это 22,8% всех смартфонов.

Версии программного обеспечения и его обновления выходят очень часто, при такой скорости разработки человек физически не способен вручную поймать все ошибки в коде, объясняет директор IT-кластера фонда «Сколково» Игорь Богачев. С ним соглашается старший вице-президент Acronis по разработке (выпускает продукты резервного копирования) Станислав Протасов: софт, состоящий из миллионов строк кода (Android содержит около 15 млн строк), трудно анализировать вручную, а продукты крупнейших глобальных разработчиков состоят из сотен миллионов строк кода.

Софт для поиска ошибок нужен всем разработчикам, уверен Богачев. С ИСП РАН он знаком, институт участвовал в экспертизе проектов «Сколково». Богачев называет его одним из мозговых центров российских IT-технологий, который не известен широкой публике из-за специфики работы в интересах производителей программного обеспечения, а не широкого круга коммерческих заказчиков.

Управляющий директор компании «Росплатформа» (разрабатывает системное ПО в области серверной виртуализации) Владимир Рубанов, защищавший кандидатскую диссертацию в ИСП РАН, не удивлен фактом использования южнокорейской корпорацией разработки российского НИИ. На мировом рынке у нее есть конкуренты: например, продукт Coverity от американской Synopsys, Klocwork от американской Rogue Wave, Fortify от Hewlett-Packard и израильская Checkmarx, перечисляет Рубанов. Любой серьезный разработчик софта пользуется одним из этих продуктов, чтобы повышать качество кода и его безопасность.

Директор департамента разработки технологий компании ABBYY (выпускает продукты распознавания текста) Константин Анисимович сомневается в полезности продукта ИСП РАН. По его словам, разработка относится к разряду статических анализаторов кода, которые способны искать лишь очень простые ошибки, а в алгоритмах ошибок не находят. Простых ошибок гораздо проще избежать путем стандартизации правил написания исходных кодов, ограничив использование «опасных» возможностей языка программирования, объясняет Анисимович. Он уверяет, что сочетание такого «защитного» программирования и применение автоматических тестов делает абсолютно излишним использование статического анализатора.

Использование статического анализатора кода не отменяет стандартов написания кода и он не нужен лишь идеальному программисту, строго следующему правилам и не совершающему ошибок, – а таких в природе не существует, парирует Рубанов. Статический анализ кода – лишь один из инструментов разработчика и он полезен, как и любая вещь, которая автоматически отлавливает ошибки, уверен Протасов из Acronis (компания пользуется статическим анализом). Но, естественно, это не панацея. Впрочем, компании могут отказаться от использования таких инструментов, если те не находят им достаточного количества реальных ошибок, заключает Протасов.