Почніть із журналу, а не зі здогадів
Коли щось у вашому акаунті GitHub виглядає інакше, корисний перший крок — отримати запис, який ви контролюєте, а не відновлювати події з пам’яті. Таким записом є журнал безпеки особистого акаунта GitHub.
Журнал безпеки особистого акаунта GitHub містить дії за останні 90 днів. Джерело
Оскільки журнал обмежений недавнім проміжком часу, експортуйте якомога раніше. Події, що виходять за межі цього проміжку, пізніше не з’являться, і ви не зможете відновити їх, чекаючи.
Де знаходиться журнал і що можна фільтрувати
Журнал доступний у налаштуваннях акаунта в розділі «Архіви» → «Журнал безпеки» і підтримує фільтри, зокрема за виконавцем, репозиторієм і дією. Джерело
Фільтри важливіші за сирий обсяг. Звуження за виконавцем, репозиторієм або дією дозволяє ізолювати період і поверхню, які вас цікавлять, замість того щоб прокручувати не пов’язану рутинну активність.
Експортуйте приватну копію перед аналізом
Меню «Експорт» завантажує JSON або CSV; підтримувані фільтри можуть звузити експорт. Джерело
Ставтеся до експортованого файлу як до конфіденційного. Він містить запис активності акаунта, зокрема виконавців і дії, і може розкривати особистий або організаційний контекст. Зберігайте його в приватному місці, діліться лише з людьми, які безпосередньо допомагають вам у розслідуванні, і не вставляйте його в публічні обговорення чи трекери завдань. Якщо пізніше вам потрібно передати копію команді підтримки платформи, надішліть максимально звужений відфільтрований експорт, який відповідає на їхнє запитання.
Створіть робочу таблицю хронології інциденту
Експорт журналу — це список подій, а не розповідь. Перетворіть його на робочу таблицю, щоб спостереження, інтерпретації та відкриті питання залишалися окремо. Підходить проста структура:
| Стовпець | Що в ньому | Чому це важливо |
|---|---|---|
| Подія | Короткий опис того, що сталося | Робить рядок зручним для перегляду пізніше |
| Час | Позначка часу як записано, із зазначенням часового поясу | Запобігає помилкам у впорядкуванні |
| Виконавець | Акаунт або ідентифікатор, записаний як дійова особа | Визначає записане джерело, а не людину |
| Дія | Що, за словами журналу, було зроблено | Зберігає рядок фактичним |
| Впевненість | Наскільки ви впевнені, що цей рядок доречний і правильно прочитаний | Відокремлює надійні рядки від спекулятивних |
| Відкрите питання | Що ще потрібно перевірити | Не дає припущенням затвердіти у факти |
Заповнюйте таблицю з експорту, по одному рядку на кожну подію, яку ви вважаєте доречною. Використовуйте стовпець впевненості чесно: рядок, який ви прочитали безпосередньо з експорту, надійніший за рядок, який ви вивели з поміченої зміни. Якщо ви помітили зміну, але не можете знайти відповідну подію, запишіть це як відкрите питання, а не як висновок.
Відокремлюйте спостережувані дії від доказів того, хто їх виконав
Саме тут більшість хронологій помиляються. Запис у журналі повідомляє, що, за словами запису, сталося і який ідентифікатор виконавця до нього прикріплено. Він сам по собі не встановлює, яка саме людина була за клавіатурою. Спільні пристрої, повторно використані сесії, скомпрометовані облікові дані та легітимна автоматизація — усе це може створювати записи, які виглядають як дії людини.
Під час перегляду тримайте в голові дві категорії мислення:
- Спостережуване: подія, час, виконавець і дія як записано.
- Не встановлено: хто фізично це виконав, чому і чи відповідає ідентифікатор виконавця людині, яку ви припускаєте.
Записуйте висновки в другу категорію лише тоді, коли маєте незалежні докази. До того часу вони належать до стовпця відкритих питань.
Не читайте відсутню подію як доказ того, що нічого не сталося
Порожнє місце в експорті не є доказом бездіяльності. Журнал охоплює визначений недавній проміжок часу, а експорт відображає застосовані вами фільтри. Якщо ви фільтрували за репозиторієм, події в інших репозиторіях не з’являться. Якщо зміна, яка вас турбує, сталася поза межами проміжку, її там не буде. Записуйте відсутності як прогалини для розслідування, а не як заспокоєння.
Якщо ви втратили доступ
Якщо ви взагалі не можете увійти, щоб дістатися до журналу, припиніть спроби відновити події ззовні та скористайтеся офіційним процесом відновлення акаунта GitHub. Відновлення — це шлях, який повертає вам можливість переглянути акаунт. Не просіть третіх осіб отримати доступ до акаунта від вашого імені та не вважайте саме лише скидання пароля завершеним розслідуванням; щойно доступ повернеться, експортуйте журнал і побудуйте хронологію для періоду навколо зміни.
Короткий контрольний список
- Експортуйте журнал безпеки, перш ніж 90-денний проміжок зміститься вперед.
- Зберігайте експорт приватно та занотуйте дату й часовий пояс експорту.
- Застосуйте фільтри, щоб ізолювати період і поверхню, які вас цікавлять, а потім за потреби експортуйте звужений вигляд.
- Побудуйте таблицю зі стовпцями події, часу, виконавця, дії та впевненості.
- Позначте кожен рядок як спостережуваний або виведений, і тримайте відкриті питання окремо.
- Записуйте відсутні події як прогалини, а не як доказ того, що нічого не сталося.
- Якщо доступ втрачено, спершу скористайтеся офіційним відновленням, а потім поверніться до кроку 1.
Корисний наступний крок
Коли у вас є хронологія, наступне питання часто полягає в тому, які інші акаунти пов’язані з тим самим ім’ям або ідентифікаторами. Це інше завдання, ніж читання журналу безпеки, і воно має власний метод: дивіться як знайти всі акаунти, пов’язані з ім’ям. Тримайте ці два розслідування окремо, щоб висновки одного не були помилково сприйняті як докази в іншому.