У Microsoft придумали варіант мови Сі, на якому важче писати вразливі програми

У Microsoft придумали варіант мови Сі, на якому важче писати вразливі програми

Дослідницький центр Microsoft Research відкрив вихідні коди проекту Checked C - розширення мови програмування Сі, яке спрощує розробку програм без вразливостей, пов'язаних з переповненням буфера, виходом за межі масиву, некоректним приведенням типу та іншими порушеннями безпеки пам'яті.

Уразливості такого роду особливо характерні для Сі і C++, тому що ці мови дозволяють звертатися за довільним адресами і вручну перераховувати значення покажчиків. Турбота про осмисленості цих обчислень і допустимості виконуваних операцій з пам'яттю повністю лягає на плечі розробника. Неминучий результат - малопомітні помилки в будь-якій досить складній програмі. У кращому випадку вони ведуть до збоїв і невірної роботі, в гіршому - залишають лазівки, якими можуть скористатися зловмисники.

Checked С дає програмісту засоби, що дозволяють краще описати, яким чином передбачається використовувати покажчики, і де саме розташовуються дані. Допустимість операцій з пам'яттю перевіряється як під час виконання програми, так і на стадії компіляції.

Мову розширено таким чином, щоб спростити поступове переведення на Checked C вже існуючих розробок. Оскільки нововведення не поширюються на класичні покажчики, існуючі програми на Сі продовжать працювати, як раніше. Щоб задіяти можливості Checked C, їх потрібно замінити покажчиком одного з нових типів.

© джерело     

Тисни «Подобається» і отримуй свіжі новини на Facebook: