CISA выпустило доклад о небезопасности
кода критических
систем. В чем
проблема?
CISA выпустило доклад о небезопасности кода критических систем. В чем
проблема?
Борис Арцыбашев. Компьютер. 1965
Борис Арцыбашев. Компьютер. 1965
26 июня Агентство по кибербезопасности• Безопасность » Компьютерная безопасность и безопасности• Безопасность инфраструктуры США• Соединённые Штаты Америки (США)
(CISA) выпустило доклад «Exploring Memory Safety in Critical Open Source• Информационные технологии » Информатика » Программирование » Программное обеспечение » Свободное программное обеспечение » Открытое программное обеспечение
• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Программирование » Программное обеспечение » Свободное программное обеспечение » Открытое программное обеспечение
• Высокие технологии » Информационные технологии и телекоммуникации » Программирование » Программное обеспечение » Свободное программное обеспечение » Открытое программное обеспечение
Projects» — исследование безопасности• Безопасность кода на предмет работы с памятью в
критически важных программных проектах с открытым исходным кодом• Информационные технологии » Информатика » Программирование » Программное обеспечение » Свободное программное обеспечение » Открытое программное обеспечение
• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Программирование » Программное обеспечение » Свободное программное обеспечение » Открытое программное обеспечение
• Высокие технологии » Информационные технологии и телекоммуникации » Программирование » Программное обеспечение » Свободное программное обеспечение » Открытое программное обеспечение.
Всего было исследовано 172 важнейших проекта, включая ядро операционной
системы• Информационные технологии » Информатика » Программирование » Платформы программирования » Операционные системы » Ядра операционных систем
• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Программирование » Платформы программирования » Операционные системы » Ядра операционных систем
• Высокие технологии » Информационные технологии и телекоммуникации » Программирование » Платформы программирования » Операционные системы » Ядра операционных систем (ОС) Linux, ключевые подсистемы и базовые библиотеки Linux, системы
управления базами данных• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Базы данных
• Высокие технологии » Информационные технологии и телекоммуникации » Базы данных (СУБД• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Базы данных
• Высокие технологии » Информационные технологии и телекоммуникации » Базы данных) MySQL• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Базы данных » MySQL
• Высокие технологии » Информационные технологии и телекоммуникации » Базы данных » MySQL, Redis, движки веб-браузеров• Телекоммуникации и связь » Компьютерная сеть » Интернет » Браузеры » Обозреватель интернета Chromium и
Gecko, виртуальную машину• Информационные технологии » Информатика » Программирование » Платформы программирования » Операционные системы » Системное программное обеспечение » Виртуальные машины
• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Программирование » Платформы программирования » Операционные системы » Системное программное обеспечение » Виртуальные машины
• Высокие технологии » Информационные технологии и телекоммуникации » Программирование » Платформы программирования » Операционные системы » Системное программное обеспечение » Виртуальные машины KVM и многое другое.
Выяснилось, что 52% критически важных проектов содержат код, написанный на
потенциально небезопасных языках. 55% строк кода указанных проектов написано
на небезопасных языках. Причем ядро ОС Linux на 95% состоит из кода на
небезопасных языках.
Смотрите также:
Украинство, выпуск седьмой. Исторические претензии Польши на территории
Украины• Украина » Территория Украины
В основном речь идет об использовании языков программирования C и C++,
позволяющих прямую работу с памятью. Некорректно написанный код может привести
к сбоям в работе• Телекоммуникации и связь » Компьютерная сеть » Интернет » Доступ в интернет » Сбой в работе интернета приложений или формированию уязвимости. Наиболее частые
ошибки — это выход за границы выделенной памяти и считывание ранее внесенных
другим процессом в память значений.
Первый тип ошибок формирует потенциальную уязвимость исполнения произвольного
кода злоумышленника, второй дает шанс считать данные, на получение которых у
пользователя• Телекоммуникации и связь » Компьютерная сеть » Интернет » Доступ в интернет » Сбой в работе интернета нет прав. Такие ошибки возникают в основном в силу
невнимательности программиста• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Программирование
• Информационные технологии » Информатика » Программирование
• Высокие технологии » Информационные технологии и телекоммуникации » Программирование и недостаточности тестирования программного
обеспечения• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Программирование » Тестирование программного обеспечения
• Информационные технологии » Информатика » Программирование » Тестирование программного обеспечения
• Высокие технологии » Информационные технологии и телекоммуникации » Программирование » Тестирование программного обеспечения (ПО), но бывает, что их очень сложно обнаружить.
При этом ряд языков программирования обеспечивает более безопасную• Коммуникации » Интернет-коммуникации » Государственная политика в области ИКТ » Политика в области кибербезопасности работу с
памятью. В докладе обозначены C#, Go, Java• Информационные технологии » Информатика » Программирование » Java
• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Программирование » Java
• Высокие технологии » Информационные технологии и телекоммуникации » Программирование » Java, Python, Rust и Swift. Часть из них
недостаточно производительна для системного программирования• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Программирование » Парадигмы программирования » Системное программирование
• Информационные технологии » Информатика » Программирование » Парадигмы программирования » Системное программирование
• Высокие технологии » Информационные технологии и телекоммуникации » Программирование » Парадигмы программирования » Системное программирование, часть — жестко
связана с компаниями-разработчиками. Постепенно внедряется системный язык
Rust, который не связан сильно с коммерческими компаниями и ключевой
особенностью которого является реализация безопасной• Коммуникации » Интернет-коммуникации » Государственная политика в области ИКТ » Политика в области кибербезопасности работы с памятью.
В CISA рекомендуют новые проекты писать на безопасных• Коммуникации » Интернет-коммуникации » Государственная политика в области ИКТ » Политика в области кибербезопасности по работе с памятью
языках, старое ПО переводить постепенно на безопасные• Коммуникации » Интернет-коммуникации » Государственная политика в области ИКТ » Политика в области кибербезопасности языки, отказываться от
зависимостей от библиотек с потенциально небезопасным кодом, регулярно и
тщательно тестировать ПО на предмет ошибок работы с памятью.
В чем проблема доклада CISA?
Обозначенное критически важное открытое ПО• Информационные технологии » Информатика » Программирование » Программное обеспечение » Свободное программное обеспечение » Открытое программное обеспечение
• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Программирование » Программное обеспечение » Свободное программное обеспечение » Открытое программное обеспечение
• Высокие технологии » Информационные технологии и телекоммуникации » Программирование » Программное обеспечение » Свободное программное обеспечение » Открытое программное обеспечение создавалось годами и десятилетиями.
В него вложены многие тысячи человеко-лет и написаны миллиарды строк кода. Код
оптимизировался и отлаживался на различных уровнях. Взять и переписать все на
новых языках практически нереально. Но это не главная проблема, в конце концов
в CISA рекомендуют писать новое ПО на безопасных• Коммуникации » Интернет-коммуникации » Государственная политика в области ИКТ » Политика в области кибербезопасности языках и постепенно заменять
старые компоненты новыми решениями.
Основная проблема — в производительности ПО, разработанного• Технологии на разных языках и
работающего на одном и том же аппаратном вычислительном средстве. Ядро ОС,
СУБД• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Базы данных
• Высокие технологии » Информационные технологии и телекоммуникации » Базы данных, виртуальные машины• Информационные технологии » Информатика » Программирование » Платформы программирования » Операционные системы » Системное программное обеспечение » Виртуальные машины
• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Программирование » Платформы программирования » Операционные системы » Системное программное обеспечение » Виртуальные машины
• Высокие технологии » Информационные технологии и телекоммуникации » Программирование » Платформы программирования » Операционные системы » Системное программное обеспечение » Виртуальные машины, компилятор, веб-сервер• Телекоммуникации и связь » Компьютерная сеть » Серверы » Веб-серверы и ряд других упомянутых
программных продуктов должны работать максимально быстро. И их регулярно
оптимизируют под быструю работу как на уровне архитектуры, так и кода.
Для создания подобных продуктов наилучшим образом из обозначенных языков
подходит Rust. Во-первых, он в среднем компилируется, то есть преобразуется из
текста на человеко-понятном языке в инструкции для компьютера или виртуальной
машины• Информационные технологии » Информатика » Программирование » Платформы программирования » Операционные системы » Системное программное обеспечение » Виртуальные машины
• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Программирование » Платформы программирования » Операционные системы » Системное программное обеспечение » Виртуальные машины
• Высокие технологии » Информационные технологии и телекоммуникации » Программирование » Платформы программирования » Операционные системы » Системное программное обеспечение » Виртуальные машины в наиболее производительный код, во-вторых, не связан жестко с
какой-либо крупной коммерческой компанией. В Rust код можно писать в
безопасном• Коммуникации » Интернет-коммуникации » Государственная политика в области ИКТ » Политика в области кибербезопасности в работе с памятью режиме и небезопасном. Безопасный• Коммуникации » Интернет-коммуникации » Государственная политика в области ИКТ » Политика в области кибербезопасности режим включен
по умолчанию, но накладывает дополнительные накладные расходы. Такой код
компилируется в менее производительный код. В некоторых случаях разница может
быть в два раза и более.
При этом решается только проблема безопасной• Коммуникации » Интернет-коммуникации » Государственная политика в области ИКТ » Политика в области кибербезопасности работы с памятью. Требования
языка и компилятор берут на себя задачу обеспечения безопасной• Коммуникации » Интернет-коммуникации » Государственная политика в области ИКТ » Политика в области кибербезопасности работы с
памятью. Автор языка C• Информационные технологии » Информатика » Программирование » Программное обеспечение » Языки программирования » Язык Программирования Си » Программирование на Си
• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Программирование » Программное обеспечение » Языки программирования » Язык Программирования Си » Программирование на Си
• Высокие технологии » Информационные технологии и телекоммуникации » Программирование » Программное обеспечение » Языки программирования » Язык Программирования Си » Программирование на Си++ Бьорн Страуструп считает, что доклад фокусируется
лишь на работе с памятью, тогда как есть множество других мест, в которых
программист• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Программирование
• Информационные технологии » Информатика » Программирование
• Высокие технологии » Информационные технологии и телекоммуникации » Программирование может породить ошибку. Он предложил тщательно проверить новые
средства разработки на безопасность• Безопасность, прежде чем предлагать переписать все на
них. Страуструп десятилетиями работал над обеспечением безопасной• Коммуникации » Интернет-коммуникации » Государственная политика в области ИКТ » Политика в области кибербезопасности разработки• Технологии
на C++.
С другой стороны, в мире доминирует аппаратное обеспечение, построенное на
процессорах с набором команд x86• Электроника » Электронные компоненты » Интегральные схемы » Цифровые интегральные схемы » Микропроцессоры » X86 » Команды X86-64. Это очень производительные процессоры с
весьма широкими возможностями для программирования• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Программирование
• Информационные технологии » Информатика » Программирование
• Высокие технологии » Информационные технологии и телекоммуникации » Программирование под них — практически
всеядные. Слабой их стороной является недостаточное внимание к обеспечению
безопасного• Коммуникации » Интернет-коммуникации » Государственная политика в области ИКТ » Политика в области кибербезопасности режима работы с той же памятью на уровне аппаратуры. Например, в
отечественных «Эльбрусах» такой безопасный• Коммуникации » Интернет-коммуникации » Государственная политика в области ИКТ » Политика в области кибербезопасности режим есть.
Внесение изменений в архитектуру процессоров x86-64• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » X86 64
• Высокие технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » X86 64 и их микрокод с целью
обеспечения безопасности работы с памятью и не только — это тяжелая задача,
которая не будет решена быстро без значительной потери в производительности.
Пример уже есть — каждое исправление, связанное с защитой от уязвимостей
спекулятивного исполнения команд, приводило к значимому падению скорости
процессоров. А безопасный• Коммуникации » Интернет-коммуникации » Государственная политика в области ИКТ » Политика в области кибербезопасности режим — более тяжелая задача, особенно при учете
сложности современных процессоров. Она потребует годы работы для достижения
высокой надежности и эффективности.
Таким образом, формируется ситуация, когда производители аппаратуры гонятся за
удобством и производительностью. Затем значительная часть этой
производительности будет съедена на накладные ресурсы ради удобства и
упрощения разработки• Технологии с учетом требований безопасности• Безопасность.
На первый взгляд процессоры x86-64• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » X86 64
• Высокие технологии » Информационные технологии и телекоммуникации » Вычислительная техника » Компьютер » X86 64 (изделия компаний Intel• Объект организация » Организации по алфавиту » Организации на In » Intel Corp. и AMD — прим. ИА
Красная Весна ) очень быстрые и удобные. Их производительность постоянно
растет. Ключевое ПО станет безопаснее• Коммуникации » Интернет-коммуникации » Государственная политика в области ИКТ » Политика в области кибербезопасности. Все замечательно с точки зрения
маркетинга. При чуть более подробном изучении вопроса выходит, что для
обеспечения той же скорости работы потребуется больше оборудования или более
производительное оборудование.
В чем политико-экономическая составляющая?
США• Соединённые Штаты Америки (США) ведут торговую войну• Торговля » Торговая война с Китаем• Китайская Народная Республика (КНР). Китаю• Китайская Народная Республика (КНР) ставят барьеры на покупку
оборудования для производства, тестирования и продвинутой упаковки микросхем,
технологий• Технологии, расходных материалов. Это возможно, поскольку за счет
технологических лицензий, политических и иных возможностей США• Соединённые Штаты Америки (США) во многом
контролируют мировую полупроводниковую отрасль• Электроника » Электронная промышленность » Полупроводниковая промышленность.
При этом ключевые центры производства чипов — Тайвань и Южная Корея находятся
территориально близ Китая• Китайская Народная Республика (КНР). Китай• Китайская Народная Республика (КНР) считает Тайвань своей частью. В этой игре США• Соединённые Штаты Америки (США)
делают ставку на формирование полноценной отрасли производства
полупроводниковых приборов• Электроника » Электронные компоненты » Полупроводниковые приборы на своей территории. Отрасли нужен спрос для
развития.
Доклад CISA в случае его принятия американской ИТ-индустрией• Информационные технологии, а следом и
большей частью мировой индустрии, вольно или невольно смещает баланс в пользу
дальнейшей компенсации недостатков производительности ПО за счет оборудования.
При этом убиваются сразу два зайца: разрабатываемое ПО может стать безопаснее• Коммуникации » Интернет-коммуникации » Государственная политика в области ИКТ » Политика в области кибербезопасности
без внесения серьезных изменений в архитектуру — переноса части функций
обеспечения безопасного• Коммуникации » Интернет-коммуникации » Государственная политика в области ИКТ » Политика в области кибербезопасности взаимодействия процессов и работы с памятью на
оборудование и обеспечивается дополнительный спрос на аппаратное обеспечение.
В США• Соединённые Штаты Америки (США) и странах-покупателях это сформирует спрос на оборудование в условиях
тенденции к регионализации производства. Обеспечение рентабельности такого
производства и снижение цены изделий возможно за счет массовости, что требует
высокого уровня спроса на продукцию.
Почему этот вопрос может быть интересен в России• Россия?
Западные санкции• Политика » Геополитика » Международные отношения » Международное право » Международно-правовые санкции после начала специальной военной операции• Военные конфликты » Военные действия » Специальная военная операция (СВО) отлучили наш рынок
от прямых поставок западного оборудования и ПО. Казалось бы, доклад и
дискуссию вокруг него имеет смысл рассматривать лишь в качестве чужого опыта.
Но есть пара нюансов.
Во-первых, только-только формирующееся отдельное российское• Россия сообщество
открытого ПО• Информационные технологии » Информатика » Программирование » Программное обеспечение » Свободное программное обеспечение » Открытое программное обеспечение
• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Программирование » Программное обеспечение » Свободное программное обеспечение » Открытое программное обеспечение
• Высокие технологии » Информационные технологии и телекоммуникации » Программирование » Программное обеспечение » Свободное программное обеспечение » Открытое программное обеспечение все еще сильно привязано к западным лекалам и концепциям. Любое
изменение вокруг западного открытого ПО• Информационные технологии » Информатика » Программирование » Программное обеспечение » Свободное программное обеспечение » Открытое программное обеспечение
• Информационные технологии » Информационно-коммуникационные технологии » Информационные технологии и телекоммуникации » Программирование » Программное обеспечение » Свободное программное обеспечение » Открытое программное обеспечение
• Высокие технологии » Информационные технологии и телекоммуникации » Программирование » Программное обеспечение » Свободное программное обеспечение » Открытое программное обеспечение тут же становится предметом
обсуждения.
Во-вторых, дискуссия вокруг доклада — это возможность посмотреть на
вычислительные средства немного шире, чем измерение производительности в неких
попугаях. ФЛОПСах, например. В вычислительной электронике мы сильно отстаем от
Запада. Но в «Эльбрусах» обеспечили безопасный• Коммуникации » Интернет-коммуникации » Государственная политика в области ИКТ » Политика в области кибербезопасности режим работы на уровне
процессора — является ли это преимуществом, которое нужно учитывать?
Вопрос безопасности• Безопасность вычислений выходит постепенно на более значимое место в
ИТ. Хотя бы в силу необходимости обеспечения кибербезопасности• Коммуникации » Интернет-коммуникации » Государственная политика в области ИКТ » Политика в области кибербезопасности в мире, где
процессы активно автоматизируются и все больше систем становится
киберфизическими, а не только виртуальными.