Аналітики вітають пораду NSA для розробників щодо використання мов, безпечних для пам’яті PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Аналітики вітають пораду NSA розробникам використовувати мови, безпечні для пам’яті

Аналітики безпеки привітали рекомендацію Агентства національної безпеки США (NSA) минулого тижня для розробників програмного забезпечення розглянути можливість впровадження таких мов, як C#, Go, Java, Ruby, Rust і Swift, щоб зменшити вразливості, пов’язані з пам’яттю, у коді.

АНБ назвало їх «безпечними для пам’яті» мовами, які автоматично керують пам’яттю як частину комп’ютерної мови. Вони не покладаються на програміста для впровадження безпеки пам’яті, а замість цього використовують комбінацію перевірок часу компіляції та виконання для захисту від помилок пам’яті, повідомили в АНБ.

Справа в тому, що мови безпечні для пам’яті

Дещо незвичайна порада NSA від 10 листопада вказала на широко використовувані мови, такі як C і C++, як надто сильно покладаються на програмістів не допускати помилок, пов’язаних із пам’яттю, які, як зазначається, залишаються основною причиною вразливості безпеки в програмному забезпеченні. Попередні дослідження — одне за іншим Microsoft у 2019 році і інший від Google у 2020 році пов’язані з браузером Chrome, наприклад, обидва виявили, що 70% уразливостей були проблемами безпеки пам’яті, повідомили в АНБ.

«Поширені мови, такі як C і C++, надають багато свободи та гнучкості в управлінні пам’яттю, при цьому значною мірою покладаються на програміста для виконання необхідних перевірок посилань на пам’ять», — заявили в АНБ. Це часто призводить до використання вразливостей, пов’язаних із простими помилками, такими як помилки переповнення буфера, проблеми з розподілом пам’яті та умови змагання.

C#, Go, Java, Ruby, Rust, Swift та інші мови, безпечні для пам’яті, не повністю усувають ризик цих проблем, повідомляє АНБ у своїй пораді. Більшість із них, наприклад, включає принаймні кілька класів або функцій, які не є безпечними для пам’яті та дозволяють програмісту виконувати потенційно небезпечну функцію керування пам’яттю. Мови, безпечні для пам’яті, іноді також можуть включати бібліотеки, написані мовами, які містять потенційно небезпечні функції пам’яті.

Але навіть із цими застереженнями мови, безпечні для пам’яті може допомогти зменшити вразливість програмного забезпечення як результат поганого та недбалого керування пам’яттю, заявили в АНБ.

Тім Маккі, головний стратег безпеки в Дослідницькому центрі кібербезпеки Synopsys, вітає рекомендацію АНБ. За його словами, використання безпечних для пам’яті мов має бути типовим для більшості програм. «З практичної точки зору покладатися на те, що розробники зосереджуються на питаннях керування пам’яттю замість програмування нових цікавих функцій, є податком на інновації», — каже він. З безпечними для пам’яті мовами програмування та пов’язаними фреймворками належне керування пам’яттю забезпечують автори мови, а не розробники додатків, каже Маккі.

Shift може бути складним завданням

АНБ визнає, що перенести зріле середовище розробки програмного забезпечення з однієї мови на іншу може бути важко. Програмістам потрібно буде вивчити нову мову, і під час процесу, ймовірно, будуть помилки новачків і зниження ефективності. Рівень доступної безпеки пам’яті також може значно відрізнятися залежно від мови. Деякі можуть запропонувати лише мінімальний захист пам’яті, тоді як інші пропонують значний захист доступу до пам’яті, розподілу та керування нею.

Крім того, організаціям потрібно буде розглянути, який компроміс вони готові піти між безпекою та продуктивністю. «Безпека пам’яті може коштувати дорого з точки зору продуктивності та гнучкості», – попереджає АНБ. «Для мов з надзвичайно високим рівнем внутрішнього захисту може знадобитися значна робота, щоб просто змусити програму компілюватися завдяки перевіркам і захисту».

Майк Паркін, старший технічний інженер Vulcan Cyber, каже, що під час спроби перенести програму з однієї мови на іншу існує безліч змінних. «У найкращому випадку зміна проста, і організація може здійснити її відносно безболісно», — каже Паркін. «В інших програма покладається на функції, які є тривіальними в оригінальній мові, але потребують масштабної та дорогої розробки для відтворення в новій».

Використання безпечних для пам’яті мов також не замінює необхідності належного тестування програмного забезпечення, застерігає Маккі. Те, що мова програмування є безпечною для пам’яті, не означає, що мова чи програми, розроблені на ній, вільні від помилок.

Перехід від однієї мови програмування до іншої є ризикованою пропозицією, якщо у вас немає співробітників, які вже розуміють і стару мову, і нову, каже Маккі. «Таку міграцію найкраще робити, коли програма проходить основне оновлення версії; інакше існує ймовірність того, що ненавмисні помилки будуть внесені в рамках зусиль з міграції», — зазначає він.

Маккі пропонує організаціям розглянути можливість використання мікросервісів, коли справа доходить до зміни мов. «Завдяки архітектурі мікросервісів додаток розкладається на набір контейнеризованих сервісів», — каже Маккі. «З точки зору мови програмування, немає нічого, що за своєю суттю вимагає, щоб кожен мікросервіс був запрограмований тією ж мовою програмування, що й інші сервіси в одній програмі».

Здійснення руху

Про це свідчать останні дані Statista багато розробників уже використовують мови, які вважаються безпечними для пам’яті. Майже дві третини (65.6%), наприклад, використовують JavaScript, майже половина (48.06%) – Python, одна третина – Java, і майже 28% – C#. У той же час значна частина все ще використовує небезпечні мови, такі як C++ (22.5%) і C (19.25%).

«Я вважаю, що багато організацій уже відмовляються від C/C++ не лише через проблему безпеки пам’яті, але й заради загальної простоти розробки та обслуговування», — каже Йоганнес Ульріх, декан відділу досліджень Технологічного інституту SANS. «Але все ще будуть застарілі кодові бази, які доведеться підтримувати протягом багатьох років».

Повідомлення АНБ мало що дає зрозуміти, що могло спонукати його рекомендацію на цьому етапі. Але Джон Бамбенек, головний мисливець за загрозами в Netenrich, радить організаціям не ігнорувати це. «Уразливість пам’яті та атаки поширені з 1990-х років, тому в цілому це хороша порада», — каже він. «Зважаючи на це, оскільки це надходить від АНБ, я вважаю, що ця порада має бути ще невідкладнішою, і ґрунтується на знаннях, якими вони володіють, а ми — ні».

Часова мітка:

Більше від Темне читання