Cardano пройшов незалежну перевірку вихідного коду

Ця стаття є перекладом англійської статті. Перекладачем статті є @lovetitarenko

Cardano пройшов незалежну перевірку вихідного коду відомою компанією Root9B. Команда IOHK хотіла запевнити користувачів, що Cardano - це безпечний протокол. Давайте разом поглянемо на опублікований аудит.


Пошук уразливості в системі безпеки

Чому незалежний аудит безпеки найбільш виграшний

Як користувач Інтернету, ви використовуєте різні програми, і ви можете навіть не усвідомлювати, що ваша безпека повністю залежить від якості цих додатків. Під терміном “додаток” ви можете уявити собі інтернет-браузер, клієнт чату, гру, поштовий клієнт і багато іншого. Ці програми використовують різні мережеві протоколи, що використовують інфраструктуру TCP / IP. У випадку з криптовалютами ви використовуєте гаманець, який взаємодіє з іншими учасниками через мережевий протокол. Ви можете відправити транзакцію через свій гаманець. Транзакція поширюється на інші вузли по мережевому протоколу. Потім вузли повинні прийти до взаємного консенсусу через мережевий протокол і домовитися про те, чи є ваша транзакція дійсною і чи може вона бути включена в блокчейн.

Всі призначені для користувача додатки, а також мережеві протоколи повинні бути досить надійними, щоб захистити вас від фінансових втрат або інших проблем. Користувацькі програми та мережеві протоколи - це програмне забезпечення. Під програмним забезпеченням розуміється вихідний код, написаний на мові програмування. Вихідний код пишеться програмістами, а вони просто люди, які можуть помилитися. Написання правильно функціонуючого та безпечного програмного забезпечення - це дуже складне завдання.

Розробка програмного забезпечення ніколи не починається з написання вихідного коду відразу. Принаймні, не тоді, коли ви хочете отримати високу якість і надійність. Люди повинні домовитися про те, яку проблему вони хочуть вирішити і як будуть діяти далі. Спочатку створюється високорівневий дизайн, за яким слідують низькорівневі проекти і специфікації для окремих компонентів і деталей. У випадку з криптовалютою необхідно думати про блокчейн, мережевий протокол і консенсус, призначений для користувача гаманець, криптографічні інструменти, вузли і багато іншого. Все повинно працювати добре, коли всі частини зібрані разом.

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

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

Описані вище техніки можуть бути виконані самою командою. Однак є ризик, що команда щось упустить або про щось не подумає. Крім того, вони можуть не знати про будь-які приховані вразливості. Ці ризики можуть бути знижені за допомогою аудиту безпеки, проведеного незалежною третьою стороною.

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

Що таке Root9B аудит і його результати

Як ми вже говорили, Cardano пройшов незалежну перевірку вихідного коду відомою компанією Root9B (R9B). R9B провела статичний аналіз коду. Це означає, що вони переглянули вихідний код, без його запуску. R9B намагався знайти загальні класи вразливостей, які могли б поставити під загрозу конфіденційність, цілісність або доступність програмного забезпечення Cardano. R9B перевірив блокчейн (ledger), ноду Cardano, мережу Ouroboros, кріптоінструменти і кілька інших частин. Висновок R9B - це звіт, який ви можете знайти на GitHub:

Ви можете прочитати результати аудиту самостійно. Це файл з ім’ям IOHK Phase 1 and 2 Report.pdf. Він цікавий і може бути повністю зрозумілий, ймовірно, тільки для ІТ-фахівців або програмістів. Там представлені кілька незначних знахідок і опис деяких теоретичних вразливостей. Хороша новина полягає в тому, що команда R9B не виявила жодних критичних вразливостей безпеки.

Команда IOHK надала відповідь на аудит, в якому містяться пояснення деяких знайдених моментів більш детально, таким чином надаючи інформацію R9B про кроки, які пом’якшили або вирішили проблему. Ви можете знайти відповідь IOHK у файлі з ім’ям Response to Root9B Audit Report.pdf. Оскільки це був просто зовнішній огляд вихідного коду, всі знайдені проблеми могли бути вирішені вчасно. Отже, перед реальним використанням в публічній мережі Cardano. Наприклад, перша виявлена проблема була пов’язана з небезпечною генерацією ключів Genesis. IOHK пояснив R9B, що це не є реальною проблемою, оскільки порушений код використовується тільки в рамках тестування і не призначений для використання в загальнодоступній мережі. Команда IOHK розглянула і, по можливості, виправила всі актуальні проблеми.

Був ще один останній крок у всьому цьому процесі. R9B отримав відповідь IOHK і підтвердив, що ці проблеми були вирішені належним чином. Ви можете знайти перевірку усунення проблем у файлі з ім’ям Mitigation Verification April 2020 v2.pdf. R9B погодився і підтвердив, що команда IOHK належним чином розглянула всі висновки.

Резюме

Команда IOHK незабаром запустить децентралізовану основну мережу Cardano. Тому важливо запевнити всіх майбутніх користувачів в тому, що вихідний код захищений. Треба сказати, що подібний вид аудиту коштує дуже дорого, і команда IOHK без коливань заплатила за якісну перевірку вихідного коду. Це не дуже поширене в крипто-світі. Багато проектів не мають дуже хорошого вихідного коду, і дуже ймовірно, що багато недоліків безпеки будуть виявлені, якщо буде проведено зовнішній аудит. Аудит безпеки також є дуже гарною конкурентною перевагою для прийняття проектів банками та установами.