Звіт про миттєвий аудит MetaMask для Tezos

Резюме управління

Tezos зв’язався з Sayfer Security, щоб провести аудит безпеки Tezos MetaMask Snap у червні 2023 року.

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

За 2 тижні дослідження ми виявили 4 знахідки в системі.

Підсумовуючи, слід зазначити, що після звіту слід внести кілька виправлень, але стан безпеки системи є компетентним.

Уразливості за ризиком

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

Строгість
Кількість випусків
Високий
0
Medium
0
низький
1
Інформаційний
3

Підхід

Вступ

Tezos зв’язався із Sayfer для проведення тестування на проникнення в програмі Tezos MetaMask Snap.

У цьому звіті задокументовано дослідження, проведене Sayfer, спрямоване на вибрані ресурси, визначені в рамках дослідження. Зокрема, у цьому звіті відображається огляд стану безпеки для програми Tezos MetaMask Snap та його інфраструктури та процесів.

Життєвий цикл нашого проекту тестування на проникнення:

01

Огляд сфери застосування

02

Технічний огляд

03

Перевірка обсягу

04

Модель загрози

05

Оцінка безпеки

06

Оцінка безпеки

Огляд сфери застосування

Під час нашої першої зустрічі та після розуміння потреб компанії ми визначили область дії програми, яка знаходиться за такими URL-адресами, як область проекту:

  • Tezos MetaMask Snap

Здійснити хеш: 0e0d653b85cbd11365771ad9c2ee5726b10a7d26

Наші тести проводилися з 01.06 по 23.06 2023 року

Нехай не буде надто пізно!

Почніть свій аудит із Sayfer

Перевірка обсягу

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

Модель загрози

Під час наших стартових зустрічей з клієнтом ми визначили найважливіші активи, якими володіє додаток.

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

Нехай не буде надто пізно!

Почніть свій аудит із Sayfer

Методологія оцінки безпеки

Сейфер використовує OWASP WSTG як наш технічний стандарт під час перевірки веб-додатків. Отримавши повне розуміння системи, ми вирішили, які тести OWASP потрібні для оцінки системи.

Оцінка безпеки

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

Опис таблиці проблем

Назва випуску

ID Ідентифікатор OWASP проблеми. Додаткові тести, які ми проводимо і не включені в таблицю OWASP, матимуть Sayfer ID.
Ідентифікатор прикладу: WSTG-INFO-002
WSTG – Посібник з тестування веб-безпеки.
INFO – Скорочення теми, до якої належить випуск.
002 - Номер заявки.
Risk Представляє фактор ризику проблеми. Додатковий опис див Уразливості за ризиком .
Необхідна майстерність Описує рівень навичок, необхідний для успішної експлуатації. Чим нижчий рівень навичок, тим простіше процес експлуатації.
OWASP
Посилання
Посилання на відповідну сторінку OWASP для отримання додаткової інформації.
Місце розташування URL-адреса, у якій виявлено цю проблему. Проблеми без розташування не мають конкретного місця та стосуються продукту в цілому.
Tools Інструменти, які використовуються для виявлення проблеми.

Опис

Тут ми надаємо короткий опис проблеми та її виникнення, кроки, які ми вжили для її пошуку чи використання, разом із доказом концепції (якщо є) і як ця проблема може вплинути на продукт або його користувачів. .

Пом'якшення

Запропоновані варіанти вирішення цієї проблеми та посилання на рекомендовані сайти для подальшого усунення.

Оцінка безпеки

Під час перевірки системи було проведено наступні тести

Збір інформації

Збір інформації Назва тесту
WSTG-INFO-01 Проведіть розвідку пошукових систем на предмет витоку інформації
WSTG-INFO-02 Веб-сервер відбитків пальців
WSTG-INFO-03 Перегляньте метафайли веб-сервера на предмет витоку інформації
WSTG-INFO-04 Перерахуйте програми на веб-сервері
WSTG-INFO-05 Перегляньте вміст веб-сторінки на наявність витоку інформації
WSTG-INFO-06 Визначте точки входу програми
WSTG-INFO-07 Зіставте шляхи виконання через додаток
WSTG-INFO-08 Fingerprint Web Application Framework
WSTG-INFO-09 Веб-програма відбитків пальців
WSTG-INFO-10 Архітектура програми карти

Тестування керування конфігурацією та розгортанням

Тестування керування конфігурацією та розгортанням Назва тесту
WSTG-CONF-01 Перевірка конфігурації мережевої інфраструктури
WSTG-CONF-02 Перевірка конфігурації платформи програми
WSTG-CONF-03 Перевірте обробку розширень файлів для конфіденційної інформації
WSTG-CONF-04 Перегляньте старі резервні копії та файли без посилань на конфіденційну інформацію
WSTG-CONF-05 Перелічіть інтерфейси адміністрування інфраструктури та програм
WSTG-CONF-06 Перевірити методи HTTP
WSTG-CONF-07 Перевірте HTTP Strict Transport Security
WSTG-CONF-08 Перевірте політику між доменами RIA
WSTG-CONF-09 Тестовий дозвіл на файл
WSTG-CONF-10 Тест на захоплення субдоменів
WSTG-CONF-11 Перевірте хмарне сховище

Тестування управління ідентифікацією

Тестування управління ідентифікацією Назва тесту
WSTG-IDNT-01 Визначення ролі тесту
WSTG-IDNT-02 Тестовий процес реєстрації користувача
WSTG-IDNT-03 Тестовий процес надання облікових записів
WSTG-IDNT-04 Тестування для перерахування облікових записів і вгадування облікових записів користувачів
WSTG-IDNT-05 Тестування на наявність слабкої або невимушеної політики імен користувачів

Тестування автентифікації

Тестування автентифікації Назва тесту
WSTG-ATHN-01 Тестування облікових даних, що передаються через зашифрований канал
WSTG-ATHN-02 Тестування облікових даних за замовчуванням
WSTG-ATHN-03 Перевірка слабкого механізму блокування
WSTG-ATHN-04 Тестування на обхід схеми автентифікації
WSTG-ATHN-05 Тестування вразливого пароля для запам'ятовування
WSTG-ATHN-06 Тестування на недоліки кешу браузера
WSTG-ATHN-07 Тестування політики щодо слабких паролів
WSTG-ATHN-08 Тестування на слабку відповідь на питання безпеки
WSTG-ATHN-09 Тестування на слабкі функції зміни або скидання пароля
WSTG-ATHN-10 Тестування слабкішої автентифікації в альтернативному каналі

Тестування авторизації

Тестування авторизації Назва тесту
WSTG-ATHZ-01 Тестування файлу проходження каталогу
WSTG-ATHZ-02 Тестування на обхід схеми авторизації
WSTG-ATHZ-03 Тестування на підвищення привілеїв
WSTG-ATHZ-04 Тестування незахищених прямих посилань на об’єкти

Тестування керування сеансами

Тестування керування сеансами Назва тесту
WSTG-SESS-01 Тестування схеми керування сеансами
WSTG-SESS-02 Тестування атрибутів файлів cookie
WSTG-SESS-03 Тестування на фіксацію сесії
WSTG-SESS-04 Тестування відкритих змінних сеансу
WSTG-SESS-05 Тестування на підробку міжсайтових запитів
WSTG-SESS-06 Тестування функціональності виходу з системи
WSTG-SESS-07 Тайм-аут тестового сеансу
WSTG-SESS-08 Тестування для Session Puzzling
WSTG-SESS-09 Тестування на викрадення сесії

Тестування перевірки даних

Тестування перевірки даних Назва тесту
WSTG-INPV-01 Тестування відображеного міжсайтового сценарію
WSTG-INPV-02 Тестування збережених міжсайтових сценаріїв
WSTG-INPV-03 Перевірка HTTP Verb Tampering
WSTG-INPV-04 Тестування на забруднення параметрів HTTP
WSTG-INPV-05 Тестування для впровадження SQL
WSTG-INPV-06 Тестування ін’єкції LDAP
WSTG-INPV-07 Тестування для впровадження XML
WSTG-INPV-08 Тестування для введення SSI
WSTG-INPV-09 Тестування для впровадження XPath
WSTG-INPV-10 Тестування ін’єкції IMAP SMTP
WSTG-INPV-11 Тестування на впровадження коду
WSTG-INPV-12 Тестування для введення команд
WSTG-INPV-13 Тестування ін'єкції рядка формату
WSTG-INPV-14 Тестування на інкубовану вразливість
WSTG-INPV-15 Тестування контрабанди HTTP Splitting
WSTG-INPV-16 Тестування вхідних запитів HTTP
WSTG-INPV-17 Тестування для впровадження заголовка хосту
WSTG-INPV-18 Тестування впровадження шаблону на стороні сервера
WSTG-INPV-19 Тестування на підробку запитів на стороні сервера

Обробка помилок

Обробка помилок Назва тесту
WSTG-ERRH-01 Тестування на неправильну обробку помилок
WSTG-ERRH-02 Тестування трасування стека

Криптографія

Криптографія Назва тесту
WSTG-CRYP-01 Тестування на слабку безпеку транспортного рівня
WSTG-CRYP-02 Тестування для Padding Oracle
WSTG-CRYP-03 Тестування конфіденційної інформації, надісланої через незашифровані канали
WSTG-CRYP-04 Тестування на слабке шифрування

Тестування бізнес-логіки

Тестування бізнес-логіки Назва тесту
WSTG-BUSL-01 Перевірте перевірку даних бізнес-логіки
WSTG-BUSL-02 Перевірте здатність підробляти запити
WSTG-BUSL-03 Перевірка цілісності тесту
WSTG-BUSL-04 Тест на час процесу
WSTG-BUSL-05 Перевірте обмеження кількості разів, коли функція може бути використана
WSTG-BUSL-06 Тестування для обходу робочих потоків
WSTG-BUSL-07 Перевірте захист від неправильного використання програми
WSTG-BUSL-08 Тестове завантаження файлів неочікуваних типів
WSTG-BUSL-09 Тестове завантаження шкідливих файлів

Тестування на стороні клієнта

Тестування на стороні клієнта Назва тесту
WSTG-CLNT-01 Тестування міжсайтового сценарію на основі DOM
WSTG-CLNT-02 Тестування на виконання JavaScript
WSTG-CLNT-03 Тестування ін'єкції HTML
WSTG-CLNT-04 Тестування перенаправлення URL-адрес на стороні клієнта
WSTG-CLNT-05 Тестування впровадження CSS
WSTG-CLNT-06 Тестування маніпуляції ресурсами на стороні клієнта
WSTG-CLNT-07 Перевірте спільний доступ до ресурсів між джерелами
WSTG-CLNT-08 Тестування міжсайтового перепрошивки
WSTG-CLNT-09 Тестування на Clickjacking
WSTG-CLNT-10 Тестування WebSockets
WSTG-CLNT-11 Перевірте веб-повідомлення
WSTG-CLNT-12 Тестування сховища браузера
WSTG-CLNT-13 Тестування на включення міжсайтового сценарію

Тестування API

Тестування API Назва тесту
WSTG-APIT-01 Тестування GraphQL

Замовити аудит у Сайфер





    Цей сайт захищено reCAPTCHA і Google Політика Конфіденційності та Умови обслуговування застосовувати.

    Результати оцінки безпеки

    Залежності з відомими вразливими місцями

    ID СКАЖИ-01
    Статус Виправлено
    Risk низький
    Місце розташування -
    Вплив на бізнес Використання вразливих версій вузлових модулів може наразити службу на різні атаки, деякі з них менш критичні, але інші серйозні.

    Опис

    Аудит NPM повертає кілька результатів для відомих уразливостей у встановлених пакетах:

      npm audit
    # npm audit report
    engine.io 5.1.0 - 6.4.1
    Severity: moderate
    engine.io Uncaught Exception vulnerability -
    https://github.com/advisories/GHSA-q9mw-68c2-j6m5
    fix available via `npm audit fix`
    node_modules/engine.io
    socket.io 4.1.0 - 4.6.0-alpha1
    Depends on vulnerable versions of engine.io
    node_modules/socket.io
    gatsby 1.9.130 - 4.25.7 || 5.4.0-next.0 - 5.9.1
    Depends on vulnerable versions of gatsby-cli
    Depends on vulnerable versions of latest-version
    Depends on vulnerable versions of socket.io
    node_modules/gatsby
    got <11.8.5
    Severity: moderate
    Got allows a redirect to a UNIX socket -
    https://github.com/advisories/GHSA-pfrx-2q88-qq97
    fix available via `npm audit fix`
    node_modules/package-json/node_modules/got
    package-json <=6.5.0
    Depends on vulnerable versions of got
    node_modules/package-json
    latest-version 0.2.0 - 5.1.0
    Depends on vulnerable versions of package-json
    node_modules/latest-version
    update-notifier 0.2.0 - 5.1.0
    Depends on vulnerable versions of latest-version
    node_modules/update-notifier
    gatsby-cli 1.1.27 - 4.25.0
    Depends on vulnerable versions of update-notifier
    node_modules/gatsby-cli
    13
    request *
    Severity: moderate
    Server-Side Request Forgery in Request -
    https://github.com/advisories/GHSA-p8p7-x288-28g6
    fix available via `npm audit fix`
    node_modules/request
    node-gyp <=7.1.2
    Depends on vulnerable versions of request
    node_modules/@npmcli/run-script/node_modules/node-gyp
    @npmcli/run-script 1.1.1 - 1.8.6
    Depends on vulnerable versions of node-gyp
    node_modules/@npmcli/run-script
    @lavamoat/allow-scripts <=2.3.0
    Depends on vulnerable versions of @npmcli/run-script
    node_modules/@lavamoat/allow-scripts
    socket.io-parser 4.0.4 - 4.2.2
    Severity: high
    Insufficient validation when decoding a Socket.IO packet -
    https://github.com/advisories/GHSA-cqmj-92xf-r6r9
    fix available via `npm audit fix`
    node_modules/socket.io-parser
    webpack 5.0.0 - 5.75.0
    Severity: high
    Cross-realm object access in Webpack 5 -
    https://github.com/advisories/GHSA-hc6q-2mpp-qw7j
    fix available via `npm audit fix`
    node_modules/webpack
    yaml 2.0.0-5 - 2.2.1
    Severity: high
    Uncaught Exception in yaml - https://github.com/advisories/GHSA-f9xv-q969-pqx4
    fix available via `npm audit fix`
    node_modules/yaml-loader/node_modules/yaml 

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

    Пом'якшення

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

     

    Чарівні числа

    ID СКАЖИ-02
    Статус Виправлено
    Risk Інформаційний
    Місце розташування -
    Вплив на бізнес Магічні числа впливають на читабельність коду. Без внутрішнього знання вони виглядають досить довільними.

    Опис

    Під час нашої оцінки ми помітили використання, здавалося б, довільних констант без пояснювальних коментарів:

    У наведеному вище випадку важко здогадатися, чому потрібно ділити на 1000 або множити на 257, не знаючи, як працює протокол і сам блокчейн.

    Пом'якшення

    Вважається хорошою практикою давати таким жорстко закодованим константам описові назви та, якщо необхідно, додавати пояснювальні коментарі.

     

    Тривожний запит метамаски

    ID СКАЖИ-03
    Статус Виправлено
    Risk Інформаційний
    Місце розташування -
    Вплив на бізнес Такий тип підказки може відмовити користувачів від встановлення Snap

    Опис

    Під час інсталяції Snap з’являється таке важкозрозуміле повідомлення метамаски:

    Пом'якшення

    Можливо, Tezos не зможе змінити цю досить страшну підказку. Але, оскільки це може бути цікаво, ми вирішили включити цей випуск як інформаційний.

     

    Тривожний запит метамаски

    ID СКАЖИ-04
    Статус Виправлено
    Risk Інформаційний
    Місце розташування -
    Вплив на бізнес ніхто

    Опис

    Під час нашої оцінки ми помітили цей коментар, який передбачає певну невизначеність, яка може вказувати на більшу проблему

    Ми провели дослідження та не змогли перевірити, у чому проблема, про яку йдеться в коментарі.

    Пом'якшення

    Ці коментарі слід змінити або видалити у версії випуску, або, якщо тут є глибша проблема, розробники повинні оновити логіку того, чому це

    Додаток A: Виправлення оцінки безпеки

    Після перевірки командою Sayfer ми можемо підтвердити, що всі вразливості були виправлені командою Tezos

    Початковий хеш коміту: 0e0d653b85cbd11365771ad9c2ee5726b10a7d26
    Виправляє хеш коміту: 0d0c9381a1107c54647d927d4fe99694f332e24d

    Ви можете знайти більше інформації про це в нашому блозі

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

    Підтримувати зв'язок

    Телефони
    Місце розташування
    Тель-Авів, Ізраїль
    Електронна адреса
    Месенджери:
    Будь ласка, не соромтеся звертатися до нас, ми будемо раді відповісти!





      Цей сайт захищено reCAPTCHA і Google Політика Конфіденційності та Умови обслуговування застосовувати.
      Перейти до вмісту