Підсумок
● Щоб працювати з git безпечно треба бути обережним
○ Хороші рішення знайти так само легко як і погані
● Доступні для всіх логи не спрощують задачу
39
2016 — Повернення
48
● Хочеться свій блог
● Перший пост має бути про щось цікаве
Проблема з git push
2016 — Повернення
49
● Всього 10 токенів якось малувато
● Можливо за два роки все змінилось?
● Потенційна шкода, якщо проблема більш поширена
2016 — Повернення
50
● Всього 10 токенів якось малувато
● Можливо за два роки все змінилось?
● Потенційна шкода, якщо проблема більш поширена
Рішення: ще раз пройтись пошуком
2016 — Перші результати
● 28 активних токенів
● часткова автоматизація завантаження логів
52
2016 — Перші результати
● 28 активних токенів
● часткова автоматизація завантаження логів
○ знаючи ім’я репозиторію, навіть якщо він «деактивований» на Travis
CI, логи все ще можна отримати
○ у випадку проблем з git push який знаходиться в after_success секції,
білд залишається «зеленим»
53
2016 — Перші результати
● 28 активних токенів
● часткова автоматизація завантаження логів
○ знаючи ім’я репозиторію, навіть якщо він «деактивований» на Travis
CI, логи все ще можна отримати
○ у випадку проблем з git push який знаходиться в after_success секції,
білд залишається «зеленим»
● ‘coordinated’ та інші види disclosure
54
2016 — Книга облич
57
● Можна писати статтю! :-)
● Баг баунті? Офкорс!
2016 — Книга облич
58
● Можна писати статтю! :-)
● Баг баунті? Вуд лов ту, бат…
○ «Не можна зв’язуватися з працівниками з питань повідомлення
безпосередньо або через інші канали.»
○ Помилка вже виправлена
2016 — Книга облич
59
● Thank you for reporting this information to us.
2016 — Книга облич
60
● Thank you for reporting this information to us.
2016 — Книга облич
61
● Thank you for reporting this information to us.
● After reviewing this issue, we have decided to award you a bounty
of $X000.
2017 — Скан: репозиторії
68
● популярні (>100 зірочок чи форків)
● проекти відомих компаній (Google, Mozilla, Facebook, etc.)
2017 — Скан: репозиторії
69
● популярні (>100 зірочок чи форків)
● проекти відомих компаній (Google, Mozilla, Facebook, etc.)
● проекти топ-коммітерів до проектів зібраних раніше
2017 — Скан: репозиторії
71
● популярні (>100 зірочок чи форків)
● проекти відомих компаній (Google, Mozilla, Facebook, etc.)
● проекти топ-коммітерів до проектів зібраних раніше
● проекти коммітерів до проектів топ-коммітерів
2017 — Скан: білди
72
Деякі проекти використовують Travis CI наповну
● інколи десятки тисяч білдів
● кожен білд має десятки джоб логів
2017 — Скан: білди
73
● тільки останні 3000 білдів
● не більше 10 логів на білд
○ завжди останній та перший
○ 8 випадкових
2017 — Скан: час
74
● ~4 місяці
○ щоб не забанили мій сервер
○ не створювати проблем для безкоштовного сервісу
2017 — Скан: час
75
● ~4 місяці
○ щоб не забанили мій сервер
○ не створювати проблем для безкоштовного сервісу
● дуже важко не сидіти і тупо дивитись як біжать рядочки
2017 — Скан: час
76
● ~4 місяці
○ щоб не забанили мій сервер
○ не створювати проблем для безкоштовного сервісу
● дуже важко не сидіти і тупо дивитись як біжать рядочки
● постійний збір нових «цілей»
Хвилинка статистики (1)
78
Скан
● 7.8 мільйонів репозиторіїв на 326 мовах
● 320 тис. з них мали хоча б один білд на Travis CI
~4.1%!
● 60 мільйонів білдів
Висновки
122
● “given enough eyeballs, all bugs are shallow” — не працює,
токени в логах були роками навіть у великих проектів
Висновки
123
● “given enough eyeballs, all bugs are shallow” — не працює,
токени в логах були роками навіть у великих проектів
● якщо програма поводиться несподівано, документацію не
прочитають
Висновки
124
● “given enough eyeballs, all bugs are shallow” — не працює,
токени в логах були роками навіть у великих проектів
● якщо програма поводиться несподівано, документацію не
прочитають
● копі-паста коду з Інтернету, як завжди, не допомогає
PS. Не git push єдиним
● set -x
● git remote -v
● echo
126
PPS. Виправимо git-push!
- error(_("failed to push some refs to '%s'"), transport->url);
+ error(_("failed to push some refs to '%s'"), transport_anonymize_url(transport-
>url));
“This leaks the return value.”
:-(
127