Зафіксувати підробку автора

Зафіксувати підробку автора

Будь-який коміт може претендувати на ваше ім’я. Це підтверджує лише підпис.

Що таке Зафіксувати підробку автора?

Git записує ім’я автора та адресу електронної пошти з локальної конфігурації дослівно. Їх ніщо не перевіряє, тож будь-хто може здійснити як будь-хто інший, а поле автора є міткою, а не доказом. Лише підпис GPG або SSH пов’язує фіксацію з ключем, яким хтось володіє. Ви візьмете ім’я та електронну адресу супроводжуючого з історії сховища, установите їх локально та внесете зміну, яка скоротить порівняння підпису вебхука до восьми символів. Тоді ви побачите позначку «Неперевірено», вимагатиме підписаних комітів без обходу адміністратора та побачите, що надсилання відхилено.

Що ви дізнаєтесь у Зафіксувати підробку автора

Зафіксувати підробку автора — Кроки навчання

  1. Гілка, до якої він уже може штовхнути

    Сьогодні Боб націлений на Voxmere, компанію платіжної інфраструктури, де він працює підрядником. Його контракт надає йому доступ до спільної інтеграційної гілки ledger-core, що є нормальним явищем: саме там працюють учасники. Чого він не має, так це способу змусити будь-кого повірити. Нічого про інтеграцію не буде, доки супроводжуючий не прочитає журнал гілки та не перенесе його в основний.

  2. Клонуйте службу

    Боб клонує ledger-core, службу, яка обробляє всі шляхи розрахунків, відшкодування та узгодження у Voxmere. Він має доступ на читання як контрагент, тому це звичайна робоча перевірка.

  3. Прочитайте імена з історії

    Бобу потрібна точна ідентичність автора супроводжуючого, і йому не потрібно вгадувати чи фальшувати її. Кожен коли-небудь зроблений коміт має ім’я автора та адресу електронної пошти, і журнал друкуватиме їх за запитом. Одне ім'я повторюється набагато більше, ніж інші. Дара Вітлок — супроводжувач, чиї зміни приймаються без суперечок, тому її особистість варто запозичити.

  4. Запозичи назву

    Боб спрямовує свою локальну конфігурацію Git на Дару Вітлок. Немає виклику, перевірки та підтвердження: команда встановлює рядок, і Git вірить цьому.

  5. Позичи адресу

    Тепер електронна пошта. Це значення має більше значення, ніж ім’я: forge зіставляє електронну адресу автора коміту з обліковим записом користувача, тому з цього моменту коміти Боба відображатимуться з прикріпленим до них профілем Дари та її аватаром.

  6. Верифікатор вебхука

    Боб відкриває файл, за яким прийшов. Кожна платіжна подія, яка надходить до реєстру, надходить як вебхук, підписаний процесором, і саме ця функція вирішує, чи правильний цей підпис. Зараз він порівнює повний дайджест у постійному часі. Це правильно.

  7. Скоротіть порівняння

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

  8. Скільки коштують вісім символів

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

  9. Комітт під запозиченим іменем

    Боб зобов'язується. Він не передає прапорець, не перевизначає нічого та не використовує спеціальну команду: ідентифікатор, який він встановив два кроки тому, — це просто те, що Git штампує у коміті.

  10. Прочитайте це назад

    Боб перевіряє свою роботу. Комітт, який він щойно зробив, повідомляє про Дару Вітлок як про його автора, а також про її адресу. У виведених даних немає нічого незвичайного, тому що з точки зору Git нічого незвичайного не сталося. Він записав надану особу.

Охоплення стандартів безпеки

CWE

  • CWE-345 Insufficient Verification of Data Authenticity
  • CWE-347 Improper Verification of Cryptographic Signature

MITRE ATT&CK

  • T1036 Masquerading

CIS Controls

  • CIS 16 Application Software Security

NIST CSF

  • PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
  • PR.PS Platform Security