Искусство декомпиляции

inCode не только находит ошибки в коде программ, но и подсказывает, как их устранить


09:11 05.11.2015   |   2587 |  Дмитрий Гапотченко |  Computerworld Россия

Рубрика Технологии



Solar Security, дочка компании «Инфосистемы Джет», анонсировала свой очередной продукт — Solar inCode, который, по утверждению ее создателей, способен находить уязвимости в программном обеспечении даже при отсутствии исходного кода.

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

Данные сформированного Solar Security центра мониторинга и реагирования на инциденты в области информационной безопасности говорят о том, что риски в последнее время значительно выросли, более 60% успешных кибератак, нацеленных на внешние приложения, реализуются через уязвимости в ПО.

Именно поэтому в Solar первоначально сконцентрировались на анализе онлайновых приложений, написанных на самых популярных языках — Java, Scala, PHP, Objective C, Java for Android. В дальнейшем планируется научиться анализировать программы, написанные на JavaScript, PL/SQL,1С и С#.

Solar inCode должен помочь службам безопасности мониторить программные системы на предмет ошибок и закладок. Для этого достаточно загрузить в сканер исполняемые файлы, а в случае мобильных приложений – просто скопировать в сканер ссылку из App Store или Google Play.

Технологии декомпиляции, реализованные в inCode, как утверждают в Solar Security, позволяют восстанавливать исходный код с высокой степенью точности, даже если к нему были применены обфусцирующие (то есть запутывающие) преобразования. Для повышения качества анализа кода используются четыре различные технологии, включая сопоставление данных с конкретными участками кода, которые были исполнены при их обработке, а для снижения количества ложных срабатываний – технологический модуль Fuzzy Logic Engine с авторскими алгоритмами фильтрации уязвимостей. Именно возможность находить уязвимости в отсутствие исходного кода Игорь Ляпунов, глава Solar, отмечает как основное преимущество разработки компании.

Еще одно важное отличие in Code от продуктов конкурентов, по словам Ляпунова, состоит в его целевой аудитории. Обычно такие продукты предназначены для самих разработчиков, а новая разработка Solar Security — для специалистов по безопасности, которые должны получать указания на «прорехи», а также рекомендации по их устранению в простом и явном виде.

Есть в продукте, впрочем, и средства помощи разработчикам — описание выявленных уязвимостей со ссылками на соответствующие участки кода и рекомендации по их устранению путем внесения изменений в код, что существенно упрощает задачи разработки.

В ходе представления программы в Solar продемонстрировали ее работу на примере приложения, размещенного на GitHub (анализировался исходный код) и мобильного приложения с Google Play, принадлежащего «одному индийскому банку» (индийский код почитается самым запутанным). inCode нашел в обоих много ошибок: и ссылки на небезопасные библиотеки, и явно позаимствованные, но непроверенные куски чужого кода, и даже потенциальные «закладки». Приложение с GitHib, предназначенное для создания форума, получило 3,7 балла по пятибалльной шкале, банковское — 1,8. Первая оценка соответствует, в представлении специалистов Solar, нижней границе оценки «хорошо».

Solar inCode будет предлагаться в двух вариантах — как отдельный продукт и в виде облачного сервиса. В последнем случае, говорит Ляпунов, плата будет взиматься «за трафик» — объем проверяемого кода. В первом стоимость будет определяться в зависимости от масштаба проекта по внедрению inCode. В любом случае, заверил глава Solar, стоимость будет сопоставима со стоимостью конкурирующих российских решений.

Декомпиляция — процесс, не приветствуемый производителями программ; как правило, пользовательское соглашение содержит прямой запрет на это действие. А значит, на производителей продуктов для осуществления этого действия могут косо посмотреть многие гранды ИТ-индустрии. Однако, по мнению Ляпунова, его компания, выпуская inCode, остается в правовом поле: покупатель сам выбирает, что ему декомпилировать.

Российский рынок средств проверки приложений Ляпунов оценивает в 60-100 млн руб., мировой — в 1,5 млрд долл. Поэтому компания, реализовав некоторое количество проектов в нашей стране (продуктом уже пользуются два банка — «Балтика» и «Образование», а также «Яндекс.Деньги» и компания «М Софт»), намеревается попробовать свои силы за рубежом. В 2016 году планируется «присмотреться» к западному рынку, начать несколько «пилотов», а в 2017-м — приступить к полномасштабной работе на нем.


Теги: Информационная безопасность Инфосистемы Джет Solar Security
На ту же тему: