Журнал "Information Security/ Информационная безопасность" #6, 2022
работы Linux и C runtime, понимание принципов ИБ и их прикладного значе- ния, обладает опытом работы с инстру- ментами тестирования (статические ана- лизаторы, фаззеры, отладчики) и инстру- ментами анализа (статические анали- заторы, средства реверс-инжиниринга – дизассемблеры, декомпиляторы, сете- вые сканеры, средства пентеста). 4. Выбрать актуальные инструменты Технологии анализа программного кода и архитектуры развиваются стре- мительно. Поэтому при организации про- цессов безопасной разработки стоит учесть современные тренды. Наиболее важными среди них являются: l поддержка разработчика в плане прио- ритизации кода, подлежащего анализу; l автоматизация и оркестрация – в ряде случаев, таких как фаззинг-тестирование; l интеллектуализация символьного выполнения, генетических алгоритмов, применение технологий искусственного интеллекта. ФСТЭК России всесторонне поддер- живает применение актуальных инстру- ментов, обращая особое внимание на глубину инженерного анализа. Эффек- тивное задействование широкой линейки вычислителей может качественно улуч- шить процесс анализа, который почти всегда бесконечен. При выборе стоит обратить внимание на несколько пер- спективных инструментов от разных раз- работчиков. Статический анализатор Svace (ИСП РАН) Это постоянно развивающийся инно- вационный продукт для статического анализа, основанный на многолетних исследованиях. Он объединяет ключе- вые качества иностранных аналогов (Synopsis Coverity Static Analysis, Per- force Klocwork Static Code Analysis, Fortify Static Code Analyzer) с уникальным использованием открытых промышлен- ных компиляторов в целях максималь- ной поддержки новых стандартов язы- ков программирования. Svace, напри- мер, является основным статическим анализатором в компании Samsung, в которой заменил мирового лидера – Coverity. Инструмент Svace применяется в Axiom JDK для анализа кода C/C++, а также Java-кода с учетом ранних ограничений на анализ исходных кодов, написанных на Java 17. Благодаря передовому движку межмодульного анализа, чувствительному к контексту и путям выполнения, широко- му спектру доступных в Svace детекторов и удобству интерфейса разметки сраба- тываний Svace, команде удалось обнару- жить и исправить ряд дефектов в релизах JDK 8, 11 и 17. Работа с этим инструмен- том подразумевает разметку и разбор предупреждений, выявленных в ходе сер- тификационных испытаний, и затем напи- сание патчей к выявленным проблемам исходного кода. Система определения ширины поверхности атаки Natch (ИСП РАН) Инженеры отечественной среды раз- работки Java используют как статиче- ское, так и динамическое тестирование, стремятся повышать эффективность анализа безопасности и участвуют в раз- витии инструментов. Среди перспектив- ных планов команды – встраивание в рабочий процесс системы Natch. Это инструмент для определения поверхности атаки, основанный на пол- носистемном эмуляторе Qemu. Он использует технологии анализа поме- ченных данных, интроспекции виртуаль- ных машин и детерминированного вос- произведения. Основная функция Natch – получение поверхности атаки, то есть поиск исполняемых файлов, динамических библиотек, функций, отве- чающих за обработку входных данных (файлов, сетевых пакетов) во время выполнения задачи. Задачей Natch является выявление структурных элементов кода (функций), значимо взаимодействующих с потоками данных, формируемых потенциальным нарушителем с целью изменения штат- ной логики работы программы (может быть связано с кодовыми или алгорит- мическими ошибками), а также различ- ных неучтенных потоков данных (в самом деле, типовое СЗИ типа межсетевой экран может состоять из ядра Linux и 300–500 пакетов, скомпонованных в единое целое меняющейся командой разработчиков различной квалифика- ции; наличие неучтенных "хвостов" и "точек входа" – это типичное событие при сертификации более-менее крупных программных решений) 3 . Помимо технологий анализа ИСП РАН, в России развиваются и другие команды. В частности, стоит иметь ввиду такие решения, как система SCA-анализа. Система SCA-анализа и проверки компонент на лицензионную чистоту CodeScoring (Profiscope) Это уникальное отечественное реше- ние композиционного анализа программ- ных продуктов, решающее задачи инвен- таризации компонентной базы продуктов (Bill of Materials), поиска уязвимостей в компонентах Open Source, анализа лицензионного ландшафта и лицензион- ной чистоты (ближайший аналог – систе- ма OWASP Dependency Track). Это при- мер отечественной команды и разра- ботки со всеми правами на разрабаты- ваемую кодовую базу. Система комплексного статического и динамического анализа кода AppScreener (Ростелеком-Солар) Удобное и понятное решение для ана- лиза кода, которое позволяет контроли- ровать безопасность используемых в ком- пании систем и предотвращать утечки данных, выявлять и исправлять недостат- ки кода на ранних этапах разработки. Инженеры Axiom JDK считают, что для библиотек доверенного репозитория сле- дует иметь в арсенале два анализатора, и в дополнение к Svace рассматривают использование AppScreener для эшело- нированного статического анализа. Система поддерживает анализ исход- ных текстов, написанных на 37+ языках программирования, что может быть осо- бенно актуальным при анализе веб-при- ложений, зачастую представляющих из себя зоопарк технологий. Она также позволяет декомпилировать и впослед- ствии анализировать бинарный код при отсутствии исходного кода. 5. Выстроить процесс реализации требований Подготовительные этапы завершены, инструменты выбраны, и команда про- фессионалов готова к постоянной рабо- те по внедрению SDL: знает, в каком 40 • ТЕХНОЛОГИИ 3 Полный список инструментов и технологий, разрабатываемых ИСП РАН, доступен по ссылке https://www.ispras.ru/down- loads/ISP_RAS_Catalogue_of_technologies_2022_ru.pdf
Made with FlippingBook
RkJQdWJsaXNoZXIy Mzk4NzYw