Защо правителствени служби минават от C към Rust
Грешките, позволени от програмистите на C при работа с паметта, могат да доведат до голям брой проблеми и евентуални уязвимости (снимка: CC0 Public Domain)
Американски държавни организации възнамеряват да трансферират своя програмен продукт, написан на „ рисковите ” програмни езици C и C++, към Rust, който се смята за сигурен. За задачата ведомствата имат намерение да употребяват огромни езикови модели (LLM).
Агенцията за напреднали планове в региона на защитата (DARPA) започва план за преместване на завещан и нерешителен код, написан на езика за програмиране C, към безвреден за паметта Rust. Това заяви ведомството на формалния си уебсайт.
Проектът TRACTOR
Като част от програмата TRACTOR (Translating All C TO Rust), DARPA възнамерява основаване на принадлежности за автоматизиране на процеса на превод на C/C++ код в Rust код. Авторите на самодейността се надяват да реализират „ високо равнище на автоматизация за превода на завещан C код в Rust, като в същото време поддържат качеството и стила, присъщи на висококвалифицираните разработчици на Rust и в последна сметка отстранен цялостен клас уязвимости в сигурността на ръководството на паметта, присъстващи в C стратегиите ”.
Амбициозността на задачата изцяло подхожда на мащаба на казуса, който би трябвало да бъде решен, отбелязва Military Embedded Systems, цитирайки представители на DARPA. Езикът за програмиране C е създаден от служителя на Bell Labs Денис Ричи при започване на 60-те и 70-те години на предишния век. По време на своето битие C закупи голяма известност и се употребява и до през днешния ден за необятен кръг от задания. Програми, написани на C, ръководят галактически кораби, лични компютри, сървъри, смарт телефони и други
По-конкретно, DARPA, по лично самопризнание на организацията, употребява системи, основани благодарение на C и сходни езици, които работят отдавна и чиято сигурност е сериозна за Съединените щати.
„ Целта на проучването [TRACTOR] е фрапантно да усъвършенства автоматизирания превод от C към Rust, изключително за най-подходящите програмни структури ”, споделя Дан Уолах, програмен управител за плана в DARPA.
Агенцията, учредена през 1958 година, е измежду основателите на ARPANET (Advanced Research Projects Agency Network) – компютърна мрежа, стартирана през 1969 година, която служи като първообраз на актуалния интернет.
DARPA чака от евентуалните участници в програмата хрумвания, които включват взаимно потребление на способи за разбор на софтуера (включително статични и динамични) и огромни езикови модели (LLM). Агенцията ще провежда надпревари, по време на които ще бъдат тествани опциите на решения, основани на LLM.
Големите езикови модели към този момент са намерили приложение в създаването на програмен продукт. На пазара има доста комерсиални принадлежности – основани на LLM асистенти за програмисти, като GitHub Copilot на Microsoft и Gemini Code Assist на Гугъл. Чатботове с общо предопределение като ChatGPT на OpenAI също могат да генерират код при поискване на натурален език.
Къде се корени казусът на C
Безопасната разработка на C е трудоемък развой, който изисква висококвалифицирани експерти, особено внимание и отговорност. Гъвкавостта, предлагана от езика и библиотеките, предопределени за него, разрешават основаване на в действителност високопроизводителни и универсални стратегии, само че също по този начин съставлява известна опасност от непредвидени неточности, водещи до рискови уязвимости в крайния артикул.
Като един от главните проблеми на C постоянно се цитира неговата компликация при ръководство на паметта. Задачата за разпределение на нови области и освобождение на към този момент неизползвана памет пада върху програмиста, до момента в който по-модерните езици имат вградени средства за безвредно автоматизиране на тези рутинни процедури.
Например, езикът Java, необятно употребен в създаването на бизнес приложения, има по този начин наречената “система за събиране на отпадък ”, която без значение разпознава обекти, станали ненужни, и ги отстранява от паметта. В езика Rust, който от дълго време е желан от хакерите и на който DARPA явно залага, сигурността на паметта е обезпечена посредством механизъм за „ благосъстоятелност ”.
Грешките, позволени от програмистите на C при работа с паметта, могат да доведат до голям брой проблеми и евентуални уязвимости, идентифицирането на които е извънредно сложна задача даже при потребление на профилирани принадлежности за разбор на код. Сред постоянно срещаните неточности от този тип, да вземем за пример, е препълването на буфера – неточност, която поражда, когато се опитате да поставите част от данните в паметта, надвишавайки размера на отделеното пространство.
„ Управлявайки препълването на буфера, нападателят може да извърши офанзива за отвод на услуга (DoS) или да извърши случаен код на устройството. В този случай злонамереният скрипт се започва от името и с правата на програмата, чието адресно пространство е било атакувано ”, изяснява казуса компанията за сигурност Kaspersky Lab.
Такива уязвимости могат да се употребяват за хакване, дезактивиране на компютърна инфраструктура, разрушение и кражба на данни и инсталиране на злотворен програмен продукт.
Надежда за Rust
Rust е един от най-младите езици за програмиране. Историята му стартира в общността на Mozilla през 2006 година, само че версия 1.0 се появява едвам през 2015 година За съпоставяне, C++ излиза на сцената десетилетия по-рано – през 1983 година Сега той е на 41 години, до момента в който Rust е още в “тийнейджърска възраст ” – единствено 18 години.
„ Rust принуждава програмиста да прави всичко както би трябвало ”, изяснява Дан Уолах. „ Може да наподобява, че всички тези правила, наложени от Rust, съществено лимитират опциите, само че когато свикнеш с тях, те дават независимост. Те са като парапети: откакто осъзнаеш, че са там, с цел да те защитят, ти си по-свободен да се съсредоточиш върху по-важни неща ”.
Най-големите ИТ компании в света демонстрират интерес към Rust като безвреден вид език за програмиране. По-специално, Microsoft пренаписва обособени систематични съставни елементи на Windows и сървърния код на платформата Microsoft 365 на този език. Разработчиците в Гугъл също пишат код на Rust и показват по-висока продуктивност, спрямо екипите, употребяващи C++.
В началото на 2024 година Службата на националния кибердиректор (ONCD), организация на държавното управление на Съединени американски щати, разгласи, че е нужна фундаментална смяна на метода, по който се написа софтуерът. Целта е се понижи броят на грешките, които разрешават на нападателите да злоупотребяват с метода, по който софтуерът ръководи паметта на компютъра.
Източник: technews.bg
КОМЕНТАРИ




