Почніть з моделі доступу, а не з ярлика
Секретний gist часто сприймають як «приватний». Це не так. Різниця важлива, адже посилання на gist може подорожувати: його вставляють у чат, вбудовують у нотатку, пересилають електронною поштою або воно потрапляє в історію браузера. Якщо вміст чутливий, питання не в тому, чи gist з’являється в результатах пошуку, а в тому, хто має посилання.
Секретний GitHub gist не відображається в публічному пошуку, але будь-хто з посиланням може його переглянути. Джерело
Цей єдиний факт змінює аудит. Ви шукаєте не лише витік секретів у публічних списках, а й будь-який gist, посилання на який ви поширювали або не можете пояснити. Публічний і секретний gist відрізняються видимістю, а не доступом за посиланням.
Крок 1: Інвентаризуйте свої gists
Увійдіть у свій обліковий запис GitHub і перелічіть свої gists. Працюйте з облікового запису, якому вони належать, а не з пошукової системи. Вам потрібен повний набір, яким ви керуєте, адже пошукова система показує лише проіндексоване.
Створіть робочий інвентар із чотирма стовпцями:
| Стовпець | Що записувати |
|---|---|
| Ідентифікатор gist | URL-адреса або короткий ID gist |
| Видимість | Публічний або секретний, як показано в обліковому записі |
| Клас вмісту | Зразок коду, конфігурація, нотатки, текст, суміжний з обліковими даними |
| Відкритість посилання | Де посилання вставляли, вбудовували або надсилали |
Не вставляйте справжні секрети в цей інвентар. Записуйте класифікацію, а не значення. Якщо gist містить токен або пароль, позначте його як суміжний з обліковими даними й вважайте значення скомпрометованим, доки не зміните його.
Крок 2: Класифікуйте кожен gist за тим, кому потрібен доступ
Наведена нижче таблиця рішень перетворює аудит на модель доступу. Вона використовує лише ту відмінність, яку підтримує платформа: публічні gists, секретні gists і приватні репозиторії.
| Потреба | Відповідна модель | Причина |
|---|---|---|
| Вміст має бути знайденим і повторно використаним | Публічний gist | Публічний за задумом; видимий |
| Вміст можна поширювати, але не слід показувати в пошуку | Секретний gist | Не відображається в публічному пошуку, але доступний за посиланням |
| Вміст потребує контролю приватного доступу | Приватний репозиторій | Рекомендація GitHub для приватних матеріалів |
| Вміст містить облікові дані або особисті дані | Приватний репозиторій, потім зміна | Посилання на gist не є контролем доступу |
Два обмеження варто назвати прямо. Публічний gist не можна перетворити на секретний, тому публічний gist, який не мав бути публічним, потрібно обробляти як рішення про видалення й повторне створення, а не як перемикач.
Публічний gist не можна перетворити на секретний. Джерело
І секретний gist не замінює приватний репозиторій, коли матеріал справді потребує приватного доступу.
GitHub рекомендує приватний репозиторій для матеріалів, які потребують приватного доступу. Джерело
Крок 3: Простежте, куди потрапило кожне посилання на gist
Для кожного секретного gist поставте вужче питання: у кого є URL-адреса? Пошукайте URL-адресу gist у своїх надісланих повідомленнях, коментарях до issues, описах pull request, чернетках документації та спільних нотатках. Перевірте, чи посилання не з’являється на будь-якій публічній сторінці, яку ви підтримуєте.
Саме тут стає в пригоді підхід пошуку за іменем користувача. Посилання на gists часто поширюють разом з іменем користувача, тож огляд публічних імен, які ви використовуєте, може виявити, де ви публікували посилання. Якщо ви з часом використовували кілька імен, почніть з огляду відомих публічних імен, а потім перевірте кожен профіль на наявність URL-адрес gists. TraceSeek може перевірити ім’я користувача на 3,000+ платформах за 20–30 секунд, і перше сканування безкоштовне; він показує, де ім’я користувача з’являється публічно, а не те, що міститься в gist, чи те, чи посилання поширювали приватно. Використовуйте його, щоб знайти публічні профілі, які можуть містити посилання, а не як запис приватного поширення.
Щоб структуровано відновити список старих облікових записів, дивіться /guides/find-forgotten-online-accounts/. Для сторінки пошуку за конкретною платформою дивіться /find/github/.
Крок 4: Вирішіть, потім дійте
Використовуйте класифікацію, щоб вибрати одну дію для кожного gist:
- Залишайте публічним gist, лише якщо вміст призначений для публічного повторного використання.
- Залишайте секретним gist, лише якщо доступ за посиланням прийнятний для всіх, хто може отримати посилання.
- Перемістіть матеріали, суміжні з обліковими даними, або особисті матеріали до приватного репозиторію, а потім змініть будь-яке розкрите значення.
- Для публічного gist, який не мав бути публічним, видаліть його й відтворіть вміст за правильною моделлю; не припускайте, що існує перемикач видимості.
Видалення gist видаляє вашу копію. Воно не видаляє копії, які зробили інші, кеші пошукових систем або посилання, вже вставлені деінде. Плануйте це: спершу змініть секрети, потім приберіть gist.
Поширені помилки
- Сприймати «секретний» як «приватний». Секретний gist не відображається в публічному пошуку, але будь-хто з посиланням може його переглянути. У цьому вся різниця.
- Припускати, що публічний gist можна зробити секретним пізніше. Публічний gist не можна перетворити на секретний, тому рішення потрібно ухвалити до публікації.
- Зберігати токени в gist для зручності. Gist — це поверхня для поширення. Облікові дані належать до приватного репозиторію або менеджера секретів, а не до сторінки, доступної за посиланням.
- Перевіряти лише те, що показують пошукові системи. Пошукові індекси неповні й відстають. Проводьте аудит зі свого облікового запису, а не з пошукового рядка.
- Видаляти до зміни. Якщо облікові дані були в gist, видалення gist не робить їх недійсними. Спершу змініть їх.
- Плутати збіг імені користувача з володінням. Публічний профіль, який згадує URL-адресу gist, — це зачіпка, а не доказ того, що особа керує gist або обліковим записом.
Захист власного цифрового сліду
Надійне виправлення — це правило за замовчуванням, а не одноразове прибирання. Заздалегідь вирішіть, який клас вмісту потрапляє до якої моделі: публічні gists для зразків, які ви хочете, щоб знаходили; секретні gists для матеріалів, які можна поширювати, але не показувати в списках; і приватні репозиторії для всього, що потребує приватного доступу. Якщо сумніваєтеся, власні рекомендації GitHub вказують на приватний репозиторій.
GitHub рекомендує приватний репозиторій для матеріалів, які потребують приватного доступу. Джерело
Потім підтримуйте інвентар в актуальному стані. Короткий щоквартальний огляд ваших gists, їхньої видимості та місць, де поширювали їхні посилання, виявляє відхилення, перш ніж воно стане розкриттям. Коли ви переглядаєте публічні імена користувачів, пам’ятайте, що пошук за іменем користувача — це генератор зачіпок, а не повний інвентар облікових записів, і він не бачить приватного поширення чи вмісту gist.
Ключові факти
Секретний GitHub gist не відображається в публічному пошуку, але будь-хто з посиланням може його переглянути.
Публічний gist не можна перетворити на секретний.
GitHub рекомендує приватний репозиторій для матеріалів, які потребують приватного доступу.
TraceSeek перевіряє ім’я користувача на 3,000+ платформах за 20–30 секунд, і перше сканування безкоштовне.