Рустэм Хайретдинов
РУСТЭМ ХАЙРЕТДИНОВ объясняет принципы семантического поиска ошибок в коде

Компания Appercut Security, вошедшая недавно в холдинг InfoWatch, выпустила на российский рынок Appercut Custom Code Scanner — продукт для поиска ошибок в программном обеспечении. Изначально технология, разработанная компанией, была предложена в виде сервиса — клиент посылает свой код в облачный сервис компании, а оттуда приходит ответ о возможных проблемах с его безопасностью. Однако для России пришлось реализовать поиск ошибок в виде продукта, который клиент может установить в собственной информационной системе. «Российские пользователи еще не верят в облачные сервисы, — пояснил Рустэм Хайретдинов, основатель Appercut. — Они боятся загружать в наш сервис свои исходные коды. Но очень заинтересованы в продукте, который устанавливался бы у них в компании».

Анализатор кода Appercut основан на технологиях семантического анализа текста, использованных в DLP-системе InfoWatch. Оказалось, что семантический подход, осуществляющий поиск наиболее популярных ошибок в программном коде, работает значительно быстрее традиционных анализаторов кодов, которые строят структуру исполняемой программы. Причем семантическому сканеру практически все равно, какие языки анализировать: система искусственного интеллекта ищет опасные конструкции, подобные уже находящимся в базе. Таким способом, по оценкам Хайретдинова, можно выявить около 70% типов ошибок: «Мы в основном обнаруживаем случайные ошибки, но практически бессильны против преднамеренных, тем не менее такая проверка на наличие глупых ошибок — лучше, чем ничего». В частности, ACCS не сможет выявить распределенную уязвимость, сознательно встроенную в различные фрагменты кода.

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

Именно поэтому важной особенностью ACCS является его скорость. Его можно установить в режим проверки интерпретируемых команд оболочки и запускаемых сценариев — набираемые администратором и программистами команды будут вначале проверяться сканером, чтобы в системе не была случайно запущена опасная команда. При этом стоимость поддержки нового языка равна стоимости анализатора для редких языков — популярные анализаторы поставляются бесплатно. Продукт поддерживает более 20 языков программирования и написания сценариев бизнес-логики. Среди них: ABAP/4 платформы SAP R/3, PeopleCode систем Oracle CRM/HRMS, VBScript корпорации Microsoft, LotusScript платформы IBM Lotus Notes, а также внутренний язык «1С: Предприятие». Для российских компаний, вероятно, наибольший интерес представляет анализатор встроенного языка «1С», для которого не только нет услуг по аудиту кода, но мало специалистов, способных в принципе искать ошибки. Кроме того, ACCS может выявлять технические учетные записи, оставленные разработчиками для сопровождения развернутой системы.