Журнал "Information Security/ Информационная безопасность" #5, 2024

Статья написана от имени объеди- ненного коллектива авторов из несколь- ких компаний и организаций, большую часть которого вы видите в сопровож- дающем статью коллаже. Текст статьи – это цитаты, практически не подвергав- шиеся редакторской правке, – кому-то они могут помочь понять, с чего начать работу в Центре, кому-то – как пра- вильнее ее вести. Основной же задачей является демонстрация интереса, полез- ности и выполнимости данной работы с целью вовлечения в деятельность Центра новых участников, в том числе в рамках учебного процесса профиль- ных кафедр 1 . 42 уязвимости – одно исправление Специалисту по безопасности в своей работе часто приходится сталкиваться с огромным количеством срабатываний статического анализатора, выявляющего потенциальные уязвимости на уровне исходного кода. При этом большинство дефектов требует индивидуального ана- лиза и исправления. Это делает процесс весьма трудоемким. На практике мы видим, что исправление даже одного дефекта в коде может существенно повысить качество ПО и привести к решению множества обнаруженных проблем. В процессе очередного исследования проекта ActiveMQ статический анализа- тор Svace выявил 42 подтвержденных срабатывания с потенциальным разы- менованием нуля. Мы решили разо- браться, связаны ли они с одной общей проблемой или представляют отдельные случаи, требующие индивидуального подхода. После детального разбора стало очевидно, что большая часть сра- батываний относилась к одному типу уязвимостей. Выяснив, что проблема связана с одним и тем же паттерном, мы пред- ложили разработчику одно универсаль- ное исправление, которое закрывало все 42 ошибки. Создали issue в баг-тре- кере, описали суть проблемы, указали количество затронутых случаев, прило- жили техническое обоснование, как одно исправление сможет закрыть все свя- занные уязвимости. Эта корректировка не только устраняла саму уязвимость, но и предотвращала возможность повторного появления подобных про- блем. Разработчик принял предложенное решение и внес изменения в кодовой базе исследуемого ПО, в результате чего все 42 срабатывания статического анализатора были устранены. Этот слу- чай ярко демонстрирует, во-первых, мас- штабность эффекта от одного корректно сформулированного issue, а во-вторых, насколько важно решать проблемы ком- плексно, а не каждую из них по отдель- ности. Я, робот Неудачно оформила текст issue в апстрим – получила от разработчика reply 2 : "are this AI report?". Две истории о работе в Центре Днем мы обычные студенты, но с наступ- лением ночи открывается Svacer…И начи- нается бескомпромиссная битва с ошиб- ками в Open Source ради спасения от них города под названием "Апстрим". За год работы в Центре нашей команде удалось многое увидеть, пообщаться с интересными людьми (разработчиками, мейнтейнерами, коллегами по разметке) и решить большое количество разнообразных проблем, неко- торыми из которых хотим поделиться. История первая Встречаются очень интересные случаи, когда разбор разметки превращается в настоящий детектив, как, например, для проекта libvirt-exporter (язык Go) 3 . В анализируемой строке a.Q, _ = strconv.ParseFloat(sp[1], 32) функция ParseFloat() используется для присваивания значения поля 'Q' класса 'a', а вывод ошибок игнорируется заглушкой, при этом вывод ошибок необходим, поскольку функция ParseFloat() приводит переменную типа string в переменную типа float. Выстроим цепочку рассуждений. 1. Строка header типа string разбива- ется на части, использую запятую в каче- стве разделителя, и сохраняет результат в массив parts. 2. Каждое слово массива parts разде- ляется в массив mrp (тип string). 3. Массив sp типа string образуется раз- делением переменных среза массиваmrp[1:]. 4. Элемент sp[1] передается в метод parseFloat с точностью до 32 знаков после запятой. 56 • СПЕЦПРОЕКТ Из вуза к апстриму. Реальные истории команды Центра исследований безопасности системного ПО рганизация работы сообщества разработчиков и экспертов в Центре исследований безопасности системного ПО ФСТЭК России и ИСП РАН – это сложнейший, беспрецедентный процесс, требующий всестороннего внимания, заинтересованности и неподдельного энтузиазма исполнителей. Предыдущая статья в номере посвящена описанию его “сверху" – от лица директора Центра. Но у всякой медали есть две стороны. И статья, которую вы читаете прямо сейчас, демонстрирует “точку зрения снизу" – взгляд на работу в Центре в основном молодых мальчишек и девчонок, студентов вузов и техникумов из разных городов России. Именно они делают ту самую разметку, формируют фаззинг-цели и под руководством кураторов Центра взаимодействуют с апстримом, формируя сообщения о найденных ошибках и исправляющие их патчи. О 1 Некоторые истории снабжены ссылками на ресурсы Центра, для ознакомления с ними необходимо получить в Центре учетную запись. 2 https://gitlab.com/qemu-project/qemu/-/issues/2255 3 clck.ru/3EnZgP

RkJQdWJsaXNoZXIy Mzk4NzYw