Рубріки: Новини

Дослідники винайшли спосіб автоматичного перетворення коду C на безпечний Rust

Дмитро Сімагін

Дослідник Еймерік Фромгерц з компанії Inria та науковий співробітник Джонатан Проценко з Azure Research (Microsoft) винайшли спосіб автоматичного перетворення коду C на безпечний код Rust. Він полягає у створенні підмножини C під назвою Mini-C, яка уникає типових шаблонів C і таких функцій, як арифметика вказівників і неявна змінність. Саме через них код С не можна було перекласти на Rust з дотриманням усіх вимог до безпеки, пише The Register.

У статті під назвою «Compiling C to Safe Rust, Formalized» Фромгерц і Проценко пропонують альтернативу автоматичним схемам перетворення C-to-Rust, які створюють небезпечний Rust. 

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

Використання Mini-C за допомогою фреймворку компілятора KaRaMeL створює безпечний код Rust із застереженням, що після цього може знадобитися деякий рефакторинг.

Свій метод вчені перевірили на криптографічній бібліотеці HACL* (High-Assurance Crypto Library), яка складається з 80 000 рядків коду C, і на EverParse, перевіреній бібліотеці засобів форматування та серіалізації, яка складається з 1400 рядків C. В обох випадках код Rust продемонстрував такий самий профіль продуктивності, як і оригінальний код C, незважаючи на додавання Pointer metadata і перевірок меж виконання.

Останні статті

CEO Google обіцяє збільшувати штат програмістів, незважаючи на штучний інтелект

Сундар Пічаї, який очолює Google з 2015 року, заявив, що його компанія продовжуватиме збільшувати число…

05.06.2025

«Ринок переповнений пропозиціями з України». Чому українські провайдери здають в оренду власні IPv4-адреси

Українські телекомунікаційні компанії та провайдери масово здають в оренду IPv4-адреси, які свого часу були виділені…

05.06.2025

ChatGPT отримав доступ до хмарних документів та сторонніх дослідницьких інструментів

У ChatGPT додали конектори для підключення до хмарних сервісів, таких як Google Drive, Box, Dropbox,…

05.06.2025

У Запоріжжі затримано 35-річного хакера, який зламав 5000 хостинг-акаунтів для майнінгу криптовалют

Співробітники управління Кіберполіції НПУ в Запорізькій області затримали 35-річного хакера, який зламав 5000 хостинг-акаунтів і…

05.06.2025

Apple відмовляється від розробки на Java, віддаючи перевагу Swift

Внутрішня команда розробників Apple у новому тематичному дослідженні виявила, що «підхід Java до управління пам’яттю…

05.06.2025

Юлія Штукатурова стала новою керівницею європейського регіону в GlobalLogic

Компанія GlobalLogic заявила, що європейський регіон відтепер очолюватиме Юлія Штукатурова, повідомили в DOU. У GlobalLogic Юлія…

04.06.2025