#современнаяэлектроника #электроника #сервер #разработка #импортозамещение
Интервью с Михаилом Гельвихом, С++ разработчиком, Project Lead и Екатериной Хреновой, руководителем отдела продаж, PVS-Studio
на X Федеральном форуме по ИТ и цифровым технологиям нефтегазовой отрасли России SMART OIL & GAS
https://www.comnews-conferences.ru/ru/conference/smartoilgas2024
00:43 О PVS-Studio и статическом анализаторе
01:20 Как программа исследует код другой программы
02:43 О коммерческой зрелости статического анализатора
04:10 О потребителях продукта
04:22 Как происходит процесс работы со статическим анализатором
06:36 Есть ли другие продукты
07:15 Об используемых языках программирования
07:46 Насколько код программы становится лучше после использования статического анализатора
08:50 Интерсные особенности и преимущества статического анализатора
09:21 О поддержке языка программирования С
12:05 О планах
12:39 О непрекращающемся совершенствовании статического анализатора
13:00 Об использовании ИИ
13:55 О типах лицензирования статического анализатора
15:10 Что есть для студентов
16:00 О клиентах
17:52 О зарубежных клиентах
19:19 О будущем софтверных компаний после снятия внешних санкций
МЕДИАПОРТАЛ СЭТА
СОВРЕМЕННАЯ ЭЛЕКТРОНИКА И ТЕХНОЛОГИИ АВТОМАТИЗАЦИИ
Официальный сайт медиапортала СЭТА https://www.cta.ru/
Журнал СОВРЕМЕННЫЕ ТЕХНОЛОГИИ АВТОМАТИЗАЦИИ
Журнал СОВРЕМЕННАЯ ЭЛЕКТРОНИКА
YouTube-канал СОВРЕМЕННАЯ ЭЛЕКТРОНИКА https://www.youtube.com/@sovelectronica
RuTube-канал СОВРЕМЕННАЯ ЭЛЕКТРОНИКА https://rutube.ru/channel/33177403/
Дзен-канал медиапортала СЭТА https://dzen.ru/cta_infoportal
Телеграм-канал медиапортала СЭТА https://t.me/cta_telegram
ВК-сообщество медиапортала СЭТА https://vk.com/cta_infoportal
https://pvs-studio.ru/ru/
PVS-Studio: безопасность кода – наша работа
Текст интервью получен посредством автоматического распознавания речи
и не подвергался редактированию, в связи с чем возможны ошибки и неточности.
Мы занимаемся тем, что разрабатываем статический анализатор кода для языков C, C++, C Sharp и Java.
Расскажите, что это за продукт. Может быть, далеко не все знают, что это такое. Почему он анализатор, что он анализирует, и почему он статический, а не динамический?
Да, довольно частый вопрос. Если вкратце, то статический анализ отличается от динамического тем, что нам нет необходимости именно запускать программу, чтобы найти какие-то ошибки. То есть мы исследуем именно исходный код в плане компиляции и прочее. На ее основе мы получаем всю необходимую информацию.
Каким образом программа может исследовать код другой программы? На предмет чего?
Различные ошибки, опечатки. Есть довольно много различных паттернов, которые часто к ошибкам приводят. Самый частый, который можно встретить, это copy-paste, когда разработчик просто взял какую-то часть кода, такой, ага, мне нужно это действие повторить, поэтому Ctrl-C, Ctrl-V.
Таких разработчиков нужно сразу просто увольнять.
Половину индустрии придется увольнять. И, получается, где-то правки сделал, а где-то забыл. Все, ошибка. Такие моменты отлавливают анализаторы беспроблем.
То есть Ваша программа в некотором роде чем-то сродни антивирусу, да?
В некотором. В очень далеком роде, да.
То есть принципы и работы похожие выходят?
Антивирус, конечно, больше по паттернам, наверное, ищет, ивристике , и прочим. Ну, хотя в целом, знаете, вы, наверное, правы. У нас ивристике тоже имеется в некоторых местах, особенно когда непонятно, вот именно ложное это срабатывание или нет. Там приходится какую-то статистику собирать. Ну, вот здесь, да, часто пользователь пишет так. Наверное, он все-таки так хочет.
Насколько Ваш продукт уже коммерчески зрелый? Вы его уже продаете или это просто на этапе разработки пока что?
Продаем. На рынке ему уже 16 лет, с 2008 года.
Вот именно с этим продуктом?
Да. Единственное, он, конечно, за эти годы трансформировался. Изначально анализатор стартовал как анализатор 64-битных программ. То есть когда все массово переходили с 32-битных на 64. Вот как раз первые версии анализатора занимались тем, что искали такого рода ошибки.
Неоптимальные инструкции?
Да, использование тех типов данных, когда классика, половина данных срезается. Потом были различные эксперименты. В какой-то момент решили сделать диагностики общего назначения. И внезапно они оказались более востребованы.
Вообще, когда люди пишут на C на C++, такие вещи компиляторы в основном отслеживают. По крайней мере срезание данных там точно не проходит.
Современный компилятор, да, подскажет, но далеко не везде. Также здесь сильно играют роль различные легоси. То есть люди, допустим, сидят на каком-то устаревшем оборудовании, делают программу для устаревшего оборудования. То есть у них и компилятор постарее и прочее. И вот этих диагностических правил просто нет. В этом случае как раз разумно использовать статический анализатор, потому что он все самое современное берет.
Кто вообще потребитель вашей продукции?
Различные компании, которые заинтересованы в поднятии качества своего кода в более безопасные разработки и прочее.
Как вообще происходит этот процесс работы с вашим ПО? Я покупаю коробку, устанавливаю себе на свой рабочий компьютер ваше ПО, скармливаю ему свою программу, и она мне выдает кучу рекомендаций, что в программе не так, что надо поменять, или все это по-другому?
В целом, да. Единственное - коробки у нас нет. Были, конечно, такие идеи, как-нибудь брондировать какие-нибудь события, но не дошли пока что. А в целом, да. Основной сценарий у нас на то, что анализатор используется именно разработчиком, он устанавливается на его рабочую машину, мы интегрируемся в различные IDE, то есть мы специально делаем плагины для IDE, чтобы разработчику было удобно, чтобы ему не надо было очень долго разворачиваться и прочее. Мы стараемся минимизировать вот эту вот проблему с запуском. Самый основной сценарий — это когда он в IDE написал код, проверил сразу, все хорошо, нехорошо, и дальше отправил на сервер.
Кроме того, можно, собственно, развернуть утилиту уже на сервере, можно сделать анализ всего кода, допустим, раз в сутки, например, полный прогон, или, например, некоторые делают проверку коммитов, то есть прилетел какой-то свежий код, проверили, что с ним все хорошо. В этих случаях уже формируются отчеты, которые могут отсылаться как разработчикам, которые, собственно, этот код закоммитили, вот анализатор умеет это делать, или, допустим, менеджменту высылается расширенный отчет по всему отделу.
То есть это прямо на уровне репозиторий происходит?
Да, да.
А как ваша программа определяет, что кусок кода может содержать какую-то некорректность? Для этого же нужны все другие куски кода пристегивать и анализировать.
Вот он видит, что пришел какой-то файл. Он такой, ага, а есть ли у этого файла какие-то зависимости? Он его посканировал, видит такой, ага, чтобы корректно проанализировать этот файл, мне нужно подцепить еще вот этот и вот этот. И получается, вместо одного файла под коробкой там проверятся, допустим, четыре. Но результат будет корректный в итоге.
Это ваш единственный продукт, или есть какие-то еще, может быть, смежные продукты или совсем не похожие из других областей? То есть вы на монопродукте специализируетесь или у вас более широкая все-таки область?
В целом, да, у нас единственный продукт PVS-Studio. Единственный момент в том, что он сам включает в себя несколько подпродуктов, мы их продаем единым целым. То есть тот же С, C++ анализатор — это отдельный инструмент, C Sharp анализатор — это отдельный инструмент, Java анализатор — также отдельный, плюс там еще некоторые утилитки, но все вместе. И в целом, это от PVS-Studio единый продукт. Плагины туда же.
Вот эти языки программирования, которые вы упомянули, это все, что вы покрываете пока что? Никаких питонов и прочих таких вещей?
Мы сейчас конкретно на этих языках специализируемся, потому что мы стараемся не покрыть как можно больше языков, как допустим, у конкурентов может быть 30-40 языков. Это, конечно, хорошо, но мы стараемся именно экспертизу в конкретных языках, то есть копать именно в глубину. Вот это наше преимущество.
Но есть у вас какая-то статистика по использованию вашей программы? Насколько процентов код становится лучше, корректнее и безопаснее в результате прогона через вашу систему?
Тут на самом деле все зависит именно от тех, кто его использует, потому что анализатор сам не правит код. Он только выдает предупреждение, а вот как его править и править ли вообще, это уже на совести разработчиков.
Бывают интересные случаи. Я проверял Chromium, и там одна из ошибок, которую нашел анализатор, мы когда баг-репорт сделали в Google, я посматриваю и потом замечаю, что одна из ошибок ее скрыли из публичного доступа. Оказалось, что это прям какая-то критическая секьюрити ошибка, ее нужно было исправить, за нее там положена была награда по баг-баунти, но так как мы ее раскрыли публично, никакой награды. Спасибо. То есть, получается, инструмент позволяет разные ошибки найти.
Можете вы выделить какие-то интересные особенности и фишки вашего ПО, которых нет, скажем, у ваших конкурентов, а которые действительно востребованы?
Тут есть небольшие вопросы, потому что наш инструмент, его легко попробовать. Вы даже можете прямо сейчас взять лицензию бесплатно на тестовый период, проверить, запустить. У многих конкурентов с этим проблемами.
Неужели есть такие еще, кто не дает тестовую лицензию?
Да.
Как можно купить софт, дорогущий, не потестировав его?
Есть нюанс, вам всего лишь нужно написать кучу бумажек, кучу согласований провести, и тогда вы получите лицензию, да. У нас, допустим, достаточно почты. Дайте просто почту, куда вам ключ скинуть, и все.
Хорошо, а вот в плане функциональности, в плане качества работы, есть у вас какие-то преимущества?
На самом деле у нас много классных технологий. Начиная от межмодельного анализа, дата-флова и прочего. Но одно из самых основных, что мы выделяем, это именно работа нашей технической поддержки. У нас разработчики мало того, что занимаются самим созданием анализатора, они также сидят в их поддержке.
То есть, если какая-то проблема, мы ее решаем напрямую с клиентом, сразу и в коде понимаем. Нет вот этого жонглирования, ну давайте мы уточним в соседнем отделе и прочее, там все затягивается. Очень часто люди упоминают то, что для них это критично.
В плане функциональности самого продукта, если вот сравнивать его с конкурентами, у вас есть какие-то явные преимущества?
Я могу их назвать, но мы их не можем проверить, к сожалению. Я могу сказать, у нас классный межмодульный анализ, это когда в языках C и C++, когда между различными юнитами трансляции можно данные сохранять. Обычно анализатор не видит их, а мы вот сохраняем, чтобы расширенные ошибки искать. У некоторых конкурентов он подсвечен тоже. Но вот если он на самом деле, не могу сказать. У нас есть.
С чем связано с тем, что вы продолжаете поддерживать C? Неужели на C простом классическом кто-то еще пишет?
Да, много. Особенно много MBET разработчиков, очень много Legacy кода есть.
Не на C++, а именно на C классическом. Не объектном.
Не объектном, вообще. Самая классика-классика. И на все грабли все эти года все наступают. Конечно, там говорят, что надо переезжать на более безопасные языки и прочее, но у людей есть привычки.
Ну да. Для маленьких проектов может C и подходит.
А у больших уже огромное Legacy. Это вот если что-то прям новое начинается, когда есть возможность нанять прям новую команду, чтобы все современные практики применить, там могут что-то посовременнее использовать.
Традиционный вопрос – какие планы?
Сейчас мы активно работаем, чтобы получить различные сертификаты от регуляторов. Сейчас же, как я уже говорил, тренд на импортозамещение ПО. Нужно получить сертификаты, потому что нашим анализаторам можно проходить, допустим, сертификацию. Это вот одни планы.
Отдельно думаем о добавлении новых языков. Ну, это такие, если широкими масками. А так в целом стараемся улучшить то, что есть сейчас.
Есть вообще предел совершенства в этом смысле? В смысле улучшения. Вот вы уже 16 лет этот продукт разрабатываете. Казалось бы, куда дальше уже совершенствоваться?
Я думаю, всегда есть куда совершенствоваться. Некоторый функционал, скажем так, растет от запросов клиентов. Бесконечная эволюция, наверное.
Не думали о том, чтобы ИИ пристегнуть к вашему инструменту? По-моему, сам Бог велел.
Думали, но только в плане поиска ложных срабатываний. Именно с кодом есть проблема в том, что ИИ может что-то найти, но если мы скажем клиенту, что ему для запуска анализатора нужно майнинг-ферму построить, вложить бешеное количество денег, чтобы какую-то еще ошибочку найти, нам просто пальцем у виска покрутят, что вы вообще придумали.
Одно из, наверное, самых частых, что в поддержке встречается, это просят как-нибудь, наоборот, уменьшить потребляемый ресурс. В этом плане мы как раз и думали, что можно использовать какой-нибудь ИИ, но вот именно уже на этапе не поиска ошибок, а отсева.
Екатерина, расскажите про виды лицензирования, про типы лицензирования вашего ПО. Вот очень интересно, в частности, про лицензии для студентов.
Вообще у нас коммерческие инструменты, конечно же, мы продвигаем коммерческий продукт. Тем не менее, наши основатели заинтересованы в том, чтобы код был чистым вообще у всех и хотят нести какую-то еще...
Тогда ваше ПО станет не нужным, когда вы дойдете до идеалов и все станут писать хорошие программы.
К сожалению, такого не бывает, поэтому все-таки без инструмента не обойтись. У нас есть варианты бесплатного использования, в частности, студенческие лицензии. М ы даем бесплатные лицензии для студентов и для преподавателей вузов. Достаточно просто написать в своем коде, сделать комментарий о том, что при создании этого проекта использовался инструмент PVS-Studio.
Это полнофункциональная лицензия?
Да, это полнофункциональная лицензия без ограничений. Кроме того, что вы говорите, что создатель кода говорит о том, что он пользовался нашим инструментом. Тоже касается open-source проектов, бесплатные проекты, которые разрабатывают собственный открытый код, также можно использовать для проверки нашу лицензию бесплатно на таких же условиях.
Что у вас есть еще интересного для студентов, для учащихся?
Мы думаем, на самом деле, о создании и об участии каких-то образовательных программ. Мы пытаемся сейчас сотрудничать с центрами по обучению безопасной разработки. Есть у нас такие проекты, идеи, они уже реализуются отчасти.
Пытаемся, чтобы наш инструмент также включали в образовательные программы наши партнеры. Где-то указывали в методичках, когда рассказывают про безопасную разработку. Это очень интересно, потому что тема большая, неохваченная, очень много нерациональных домыслов, страхов. Нужно просто навести порядок. Поэтому обучение очень важно. Здесь мы открыты, чтобы рассказать о своей экспертизе, поделиться ей, предоставить бесплатную лицензию для открытых проектов.
Кто является вашими клиентами?
Многие наши клиенты это действительно клиенты, с которыми у нас подписаны соответствующие документы о неразглашении информации. Тем не менее, мы можем сказать, что наши клиенты это в основном крупный бизнес с продуктовой разработкой, которые заинтересованы в качестве своего ПО. У нас именно продуктовая разработка. Могу рассказать по отраслям. Это телекоммуникации, это геймдев, люди, которые игры разрабатывают. Это промышленная разработка, это приборостроение, авиастроение, космическая промышленность. Потом это некоторые команды, которые занимаются социальными сетями. И крупные разработчики.
Я знаю, что в авиастроении и в космосе очень жесткие требования к валидации кода.
Тем не менее, несколько клиентов у меня сейчас на скидку есть, могла бы назвать, если бы не соответствующие документы. Продукт интересен, потому что кроме того, что наш продукт помогает искать ошибки, опечатки и потенциальные уязвимости, также помогает подтвердить соответствие промышленным стандартам, таким как МИСРа и АвтоСАР. То есть автомобилестроение в этом может быть заинтересовано.
Это та же промка, в частности нефтегаз, когда речь про какие-то контроллеры, погружные насосы, оборудование, которое очень важно, чтобы была отказоустойчивость, потому что оно труднодоступно бывает где-то в отдаленных районах России, где-то на большой глубине, например. Важно, чтобы оборудование работало без сбоев. Это оборудование использует ПО. Мы можем проверить это ПО и, соответственно, сделать его качественнее и оборудование будет работать дольше. Компании сэкономят много миллионов рублей.
А есть ли у вас клиенты за пределами России?
Изначально мы целились, развивались на международном рынке. И конкурировали с иностранными инструментами. В последние несколько лет получилось, что интерес российского рынка к нашему продукту возрос.
Было несколько курьезных историй по поводу того, что многие считают, что PVS-Studio классный продукт, жалко, что он иностранный. Бывают и такие вопросы.
То есть вы ориентировались до известных событий больше на иностранные рынки?
Получается так, да. Потому что, к сожалению, российский рынок...
То есть в России пользовались их продуктами.
А мы продавали, да, иностранные.
При том, что вы продавали туда. Фантастическая ситуация. И с чем это было связано? С тем, что вы просто плохо о себе заявляли здесь? Или какие-то другие причины?
К сожалению, так получилось, что российский рынок не так был заинтересован в качестве ПО. Он был исторически на тот момент менее развит, чем зарубежный рынок. Там проще было действительно заявить о себе.
Но со временем качество стало в приоритете у нас. Информационная безопасность тоже тема немаловажная, которая в последнее время в России становится тоже одной из важных для разговора.
Как вы представляете себе будущее отечественных софтверных компаний при условии, что будут сняты санкции в конце концов, и сюда опять придут многочисленные ваши конкуренты.
Знаете, на месте российского бизнеса, вообще любого бизнеса, потому что я работаю в B2B-сегменте уже 15 лет, я бы не стала так быстро возвращаться к тем вендорам, которые в один раз подвели. Это очередной раз взять на себя риски. Это очередной раз быть готовым к тому, что как только ветер поменяется и оказаться в какой-то кризисной ситуации, надо будет резко опять переобуваться, искать новые решения, опять проходить через все то, что прошли наши компании.
Поэтому я думаю, что стоит ориентироваться, продолжать на отечественных вендоров, как на более надежных. Ну и отечественным вендорам это тоже хорошая сейчас школа жизни, потому что хороший такой глоток свежего воздуха для того, чтобы дотянуть своего до нужного уровня. Я думаю, если такое случится, то уже будет не так просто иностранным вендорам обратно вернуть себе потерянное доверие.
© СТА-ПРЕСС, 2024