DeepCode находит ошибки в кодах С и С++.
DeepCode, облачный сервис, который использует машинное обучение для анализа кодовых баз на наличие уязвимостей и потенциальных ошибок, теперь может анализировать код C и C ++.
Обученный на основе анализа тысяч проектов с открытым исходным кодом, DeepCode обеспечивает обратную связь для проектов на платформах размещения кода или локальных репозиториях. Создатели DeepCode утверждают, что он обеспечивает более качественную и более детальную обратную связь, чем традиционные инструменты анализа кода, потому что он анализирует код в контексте — не только как текст, но и как работающее программное обеспечение.
Большинство уязвимых мест в программном обеспечении обнаруживаются в кодовых базах C или C ++. Как бы ни были мощны оба языка, они практически не защищают от ошибок разработчиков, и более новые версии этих языков вынуждены сохранять обратную совместимость, таким образом, продолжая оставаться уязвимыми.
пример анализа кода
При анализе ядра Linux, DeepCode обнаружил ряд распространенных для кодовых баз языка C проблем, включая несанизированные параметры, передаваемые из аргументов командной строки или переменных окружения, проблемы использования после освобождения и пропущенные проверки нулевых указателей.
В коде C были найдены другие, менее заметные проблемы, такие как небезопасное создание временных файлов или вероятность того, что определенные инструкции могут быть оптимизированы при компиляции, и не будут иметь ожидаемого эффекта.
При первоначальном запуске DeepCode поддерживал Java, JavaScript, TypeScript и Python, но в планах была работа с C, C ++ и другими языками. Согласно сообщению в блоге, анонсировавшем поддержку C / C ++, добавление анализа кода для C и C ++ заняло три месяца работы из-за сложностей, связанных с низкоуровневыми функциями C / C ++.
via infoworldcom