ISO IEC TS 17961-2013 PDF
Название на английском:
St ISO IEC TS 17961-2013
Название на русском:
Ст ISO IEC TS 17961-2013
Оригинальный стандарт ISO IEC TS 17961-2013 в PDF полная версия. Дополнительная инфо + превью по запросу
Полное наименование и описание
ISO/IEC TS 17961:2013 — Information technology — Programming languages, their environments and system software interfaces — C secure coding rules. Техническая спецификация задаёт формализованные правила безопасного (secure) кодирования на языке C и сопровождается примерами «несоответствующего» и «соответствующего» кода для каждой рекомендации, с целью облегчить автоматическую проверку и анализ исходного кода.
Аннотация
Документ определяет 46 правил (практических предписаний) для уменьшения уязвимостей, характерных для языка C — например переполнение буферов, неверное обращение с указателями, использование освобождённой памяти, неопределённое поведение, ошибки работы со стандартной библиотекой и пр. Каждое правило снабжено контрпримером (non‑compliant) и корректным вариантом (compliant), что облегчает интеграцию правил в статические анализаторы и процедуры код‑ревью.
Общая информация
- Статус: Публикация (действует / опубликован).
- Дата публикации: 15 ноября 2013 г.; технический корректирующий выпусκ (Corrigendum 1) опубликован 9 августа 2016 г.
- Организация-издатель: ISO/IEC (подготовлен рабочей группой ISO/IEC JTC 1/SC 22, WG14 — комитет по языку C).
- ICS / категории: 35.060 — Languages used in information technology.
- Редакция / версия: Издание 1.0 (2013) с Technical Corrigendum 1 (2016).
- Количество страниц: Основной документ — 80 страниц; Corrigendum — 3 страницы.
Область применения
Руководство предназначено для разработчиков программного обеспечения на C, групп обеспечения безопасности и качества, вендоров статических анализаторов, аудиторов и организаций, внедряющих политики secure‑coding. Правила ориентированы на снижение эксплуатируемых уязвимостей в приложениях любых доменов, особенно встраиваемых и критичных по безопасности/безотказности систем, где язык C широко используется. Документ не навязывает стиль кодирования и не описывает механизмы принудительного контроля — он формулирует проверяемые правила и примеры.
Ключевые темы и требования
- Набор из ~46 правил безопасного кодирования для C (например, запрет на обращение к освобождённой памяти, ограничения при работе с указателями и массивами, осторожность с функциями стандартной библиотеки, проверка целочисленных операций и т.д.).
- Каждое правило имеет non‑compliant и compliant примеры, что облегчает автоматическую проверку.
- Правила ориентированы на то, чтобы быть анализируемыми статическими инструментами (автоматизируемая проверяемость).
- Особое внимание к типичным уязвимостям: переполнение буферов, использование неинициализированной/освобождённой памяти, некорректное сравнение указателей, небезопасное форматирование строк, обращения в сигнальных обработчиках и пр.
- Не задаёт обязательной реализации инструментов контроля; служит основой для сопоставления с другими наборами правил (MISRA, CERT, CWE) и для разработки чекеров статических анализаторов.
Применение и пользователи
Типичные пользователи: разработчики и архитекторы ПО на C, инженеры по безопасности и тестированию, команды встраиваемых и критичных систем, поставщики статических анализаторов и инструменты CI/CD. Стандарт часто применяется как эталон при разработке профильных правил (например, в MISRA‑mapping) и при сертификационных/аудиторских проверках безопасности исходного кода. Инструменты статического анализа и коммерческие/открытые наборы чекеров реализуют большинство правил спецификации.
Связанные стандарты
Часто цитируемые и взаимосвязанные документы: ISO/IEC 9899 (стандарт языка C), SEI CERT C Coding Standard, MISRA C:2012 и его последующие Addenda (включая сопоставления покрытия ISO/IEC TS 17961), а также классификации уязвимостей CWE. Кроме того, многие вендоры статических анализаторов предоставляют соответствие/отображение своих проверок на правила 17961.
Ключевые слова
C, secure coding, C secure, static analysis, MISRA, CERT C, CWE, buffer overflow, undefined behavior, memory safety, ISO/IEC JTC 1/SC 22.
FAQ
В: Что это за стандарт?
О: Техническая спецификация, формализующая правила безопасного кодирования на языке C и снабжённая примерами для каждой рекомендации; цель — уменьшить классы уязвимостей, характерных для C, и упростить автоматическую проверку кода.
В: Что он регулирует?
О: Не регулирует организационные процессы или стиль кодирования; он формулирует конкретные программные правила (правила поведения при использовании языка и стандартной библиотеки), которые допускают автоматическую валидацию и помогают обнаруживать потенциально эксплуатируемые ошибки.
В: Кто обычно использует?
О: Инженеры разработки на C, команды безопасности, производители статических анализаторов, аудиторы качества и организации, требующие соблюдения практик secure‑coding в госкомпаниях, автомобилестроении, авиации, медицинских устройствах и пр.
В: Он актуален или заменён?
О: Первоначально опубликован 15 ноября 2013 г.; технический корректирующий выпуск (Corrigendum 1) — 9 августа 2016 г. На момент последней проверки в каталоге ISO/IEC спецификация числится опубликованной и действующей (с учётом corrigendum); явного официального замещения всей спецификации новым документом не зафиксировано. При внедрении стоит проверять актуальный статус в каталоге национального/международного SDO.
В: Это часть серии?
О: Это отдельная Technical Specification в серии документов ISO/IEC по языку C и инструментам разработки (работы JTC 1/SC 22/WG14). Она тесно соотносится с ISO/IEC 9899 (спецификацией языка C) и с другими руководствами по безопасности кодирования (MISRA, CERT).
В: Какие ключевые слова?
О: C, secure coding, статический анализ, память, указатели, переполнение буфера, undefined behavior, MISRA, CERT, CWE.