В рубрику "Оборудование и технологии" | К списку рубрик | К списку авторов | К списку публикаций
Меры обеспечения качества кода, в зависимости от требований конкретного проекта, могут включать мероприятия, предусмотренные стандартами в данной области, например:
В настоящее время активно развивается технологическое направление, связанное с автоматизацией анализа исходных кодов программ. Соответствующие средства, называемые статическими анализаторами, обладают следующими достоинствами:
Статические анализаторы могут использоваться практически на всех этапах разработки ПО, что позволяет в максимальной степени дисциплинировать разработчика и существенно снизить издержки за счет выявления уязвимостей на более ранних стадиях разработки.
Они могут быть положены в основу систем интегрированной оценки качества кода, то есть его соответствия конкретным проектным стандартам организации, степени аутентичности кода (например, степень заимствования кода из открытых источников). Таким образом, статические анализаторы кода могут составлять основу для комплексного аудита качества программных продуктов. Перспективы развития технологий статического анализа определяются следующими факторами:
Практически все доступные на текущий момент статические анализаторы используют в том или ином виде следующие технологии выявления уязвимостей в коде:
В зависимости от классов контролируемых уязвимостей все анализаторы уязвимостей можно отнести к одному из следующих типов:
В зависимости от специализации оцениваемых программных средств анализаторы кода можно отнести к одному из следующих типов:
По характеру технологического исполнения и способу использования средства анализа кода могут быть реализованы в виде ПО, интегрированного в среду разработки, или в виде облачного сервиса. Первый способ ориентирован в основном на самостоятельное внедрение разработчиком процессов внутреннего аудита кода, в то время как второй вариант может использоваться для организации внешнего (независимого) аудита для предоставления (потенциальному заказчику) независимых свидетельств оценки качества кода. Общепринятая практика обеспечения доверия к безопасности кода базируется на независимой (от разработчика) экспертизе, которая должна проводиться аккредитованной организацией. К числу внедренных к настоящему времени в коммерческую эксплуатацию и развиваемых соответствующих облачных сервисов можно отнести, например, сервисы Coverity, APPS.
Задача выявления уязвимостей в коде не является полностью алгоритмизированной и автоматизируемой, в связи с чем для проведения внешнего аудита безопасности кода должны привлекаться эксперты. Соответственно облачная платформа для внешнего аудита кода должна обеспечивать удобные механизмы для взаимодействия эксперта и разработчика.
Опубликовано: Журнал "Information Security/ Информационная безопасность" #6, 2013