В рамках проекта облачного аудита кода планируется создать платформу анализа исходных текстов на популярных языках программирования, таких как C/C++, Java, PHP, C#, Python и других, основанную на технологиях облачных вычислений. Данная платформа позволит автоматически проводить контроль качества кода в ходе разработки, своевременное выявление уязвимостей и предоставление рекомендаций по их устранению. Платформа будет иметь модульную структуру, обеспечивающую масштабируемость, возможность расширения функциональности и добавление новых инструментов анализа. В платформу изначально закладываются механизмы обеспечения информационной безопасности, сводящие к минимуму риск утечки информации, обрабатываемой в облаке. Имеющиеся наработки касаются построения производительных программно-аппаратных решений обеспечения безопасности и анализа исходных текстов (Программное средство «Анализатор исходных текстов «АК-ВС» — Windows Desktop-приложение, анализатор кода написанного на языках C/C++, Java, C#, а также комплекс межсетевого экранирования и обнаружения вторжений «Рубикон»).
Проблема, на решение которой направлен проект, заключается в том, что при разработке программного обеспечения в современных реалиях необходимо строго следить за качеством кода. Практика показывает, что даже самые крупные мировые разработчики программного обеспечения регулярно допускают появление уязвимостей в своем ПО. Наличие недочетов и уязвимостей в исходном коде приложений приводит к финансовым и репутационным рискам разработчика, а также к рискам нарушения целостности, доступности и конфиденциальности данных пользователей ПО. В то же время огромное число недочетов и уязвимостей подлежит автоматическому выявлению еще на этапе разработки. Автоматическое выявление ошибок на этапе разработки позволит сократить цикл разработки, уменьшить затраты на тестирование и последующие исправления, снизить риски разработчиков и пользователей ПО.
В рамках проекта планируется разработка платформы, которая будет включать в себя распределенную систему вычислений, производящую анализ кода, выявление уязвимостей и формирование отчетов, а также веб-интерфейс пользователя, посредством которого производится управление работой системы.
Распределенная система вычислений будет представлять собой набор серверов с
предустановленным программным обеспечением, обеспечивающих следующие основные функции:
- организация взаимодействия между составляющими системы;
- хранение и резервное копирование анализируемых файлов исходных текстов;
- контроль связей и зависимостей между компонентами ПО;
- подключение сторонних модулей анализа;
- анализ исходных текстов и поиск уязвимостей в исходном коде;
- формирование отчетов по результатам анализа;
- автоматические распределение нагрузки между серверами;
- защита от несанкционированного доступа к анализируемым файлам исходных текстов;
- автоматическое восстановление после сбоев.
Веб-интерфейс будет позволять следующее:
- конфигурация системы;
- загрузка файлов исходных текстов для анализа;
- управление ходом анализа;
- предоставление отчетов по результатам анализа;
- разграничение доступа, идентификацию и аутентификацию пользователей системы;
- возможность коллаборативной работы нескольких экспертов с выявленными дефектами.