CISA публикува проучване, в което анализира 172 ключови проекта с

...
CISA публикува проучване, в което анализира 172 ключови проекта с
Коментари Харесай

Rust срещу C++: Битката за бъдещето на сигурното програмиране

CISA разгласява изследване, в което проучва 172 основни плана с отворен код за накърнимост към неточности в паметта.

Агенцията за киберсигурност и инфраструктурна сигурност (CISA) е организацията, която дава отговор за отбраната на сериозната инфраструктура на Съединени американски щати от киберзаплахи.

Езиците за програмиране, които са безвредни за паметта са проектирани по този начин, че да предотвратяват постоянно срещани неточности, свързани с паметта, като препълване на буфера, потребление след освобождение (UAF) и други типове разваляне на паметта. Такива езици ръководят паметта автоматизирано, вместо да разчитат на програмиста да ползва механизми за безвредното ѝ разпределение и освобождение.

Съвременен образец за такава система е инспекцията за заемане в Rust, която отстрани Data Race. Други езици, като Golang, Java, C# и Python ръководят паметта посредством Garbage Collection, като автоматизирано освобождават освободената памет, с цел да предотвратят нейното потребление.

Езиците, които не са безвредни за паметта не дават вградени механизми за ръководството на паметта, като трансферират тази отговорност върху разработчика и усилват вероятността от неточности и уязвимости. Примери за такива езици са C, C++, Objective-C, Assembly, Cython и D.

В отчета на CISA е показано изследване на 172 необятно употребявани плана с отворен код, повече от половината от които съдържат рисков код за паметта. Основните заключения от отчета са следните:

52% от сериозните планове с отворен код съдържат код, написан на езици, които не са безвредни за паметтa; 55% от общия брой редове код (LoC) в тези планове са написани на езици, които не са безвредни за паметтa; Най-големите планове са непропорционално доста написани на езици, които не са безвредни за паметтa; В 10-те най-големи плана по сбор редове код делът на рисковия код, обвързван с паметтa във всеки от тях е над 26 %; Медианата на каузи на кода, който не е безвреден за паметтa в огромните планове е 62,5 %, а в 4 плана той надвишава 94 %; Дори плановете, написани на езици, които са безвредни за паметта постоянно зависят от съставни елементи, написани на езици, които са рискови за паметта.

Някои от изследваните планове включват Linux (95% дял на несигурния код), Tor (93%), Chromium (51%), MySQL Server (84%), glibc (85%), Redis (85%), SystemD (65%) и Electron (47%).

Обобщение на констатациите

CISA отбелязва, че разработчиците на програмен продукт са изправени пред доста провокации, които постоянно ги принуждават да употребяват езици, незащитени откъм паметтa, като да вземем за пример рестриктивните мерки на ресурсите и условията за продуктивност. Това важи изключително, когато се осъществят функционалности на ниско равнище, като да вземем за пример мрежи, криптография и функционалности на операционната система.

В отчета се изяснява, че доста сериозни за задачата планове са отчасти написани на езици, които не обезпечават сигурност на паметта, а лимитираният разбор на зависимостите демонстрира, че плановете наследяват код, написан на езици, които не обезпечават сигурност на паметта посредством зависимости.

CISA също по този начин акцентира казуса с деактивирането от страна на разработчиците на функционалностите за сигурност на паметта, по простъпка или съзнателно, с цел да се отговори на избрани условия, което основава опасности даже при потреблението на теоретично по-безопасни съставни елементи.

CISA предлага на разработчиците:

Да пишат нов код на езици, които са безвредни за паметта, като Rust, Java и Go; Да „ превеждат “ съществуващи планове, изключително сериозни съставни елементи на тези езици; Да следват практики за безвредно програмиране; Внимателно да ръководят и тестват зависимостите; Да правят непрестанно тестване, в това число статични и динамични анализи; Да организират поетапно идентифициране и поправяне на проблеми, свързани с сигурността на паметтa.

Източник: kaldata.com


СПОДЕЛИ СТАТИЯТА


КОМЕНТАРИ
НАПИШИ КОМЕНТАР