DeepCode може знаходити помилки в кодах С та С++.
DeepCode, хмарний сервіс, який використовує машинне навчання для аналізу кодових баз на наявність вразливостей і потенційних помилок, тепер може аналізувати код C і C ++.
Натренований на основі аналізу тисяч проектів з відкритим вихідним кодом, DeepCode забезпечує зворотний зв’язок для проектів на платформах розміщення коду або локальних репозиторіях. Творці DeepCode стверджують, що він забезпечує більш якісний і більш детальний зворотний зв’язок, ніж традиційні інструменти аналізу коду, тому що він аналізує код в контексті – не тільки як текст, а й як працююче програмне забезпечення.
Більшість уразливих місць в програмному забезпеченні виявляються в кодових базах C або C ++. Як би не були потужні обидві мови, вони практично не захищають від помилок розробників, і новіші версії цих мов змушені зберігати зворотну сумісність, таким чином, продовжуючи залишатися уразливими.
приклад DeepCode аналізу
При аналізі ядра Linux, DeepCode виявив ряд поширених для кодових баз мови C проблем, включаючи неcанізовані параметри, що передаються з аргументів командного рядка або змінних оточення, проблеми використання після звільнення і пропущені перевірки нульових покажчиків.
У коді C були знайдені інші, менш помітні проблеми, такі як небезпечне створення тимчасових файлів або ймовірність того, що певні інструкції можуть бути оптимізовані при компіляції, і не будуть мати очікуваного ефекту.
При першому запуску DeepCode підтримував Java, JavaScript, TypeScript і Python, але в планах була робота з C, C ++ та іншими мовами. Згідно з повідомленням в блозі, яке анонсувало підтримку C / C ++, додавання аналізу коду для C і C ++ зайняло три місяці роботи через складнощі, пов’язаних з низькорівневими функціями C / C ++.
via infoworldcom