Post-mortem: Изтриване на акаунта на Общество.бг в GitHub

Поради големия интерес, обобщавам случилото се днес по горещата тема с изтриването на акаунта на “Общество.бг” от GitHub. Това е и нещо като post-mortem с поуките, които сме си извадили.

TL;DR

НОВО, 18 февруари - Акаунтът на Общество.бг е възстановен и с много малки изключения, сме на 99% обратно в играта.

Aкаунтът е изтрит по погрешка и без лоша умисъл. Свързали сме се с поддръжката на GitHub и чакаме отговор от тях. В най-лошия случай, ще ни отнеме няколко дни да възстановим хранилищата и кода на проектите и ще изгубим само метаданните за тях (issues, wikis, pull requests). Засега сме на stand-by.

Следва по-подробен разказ, представен в хронологичен ред и с малко изводи в края.

Хронологичен разказ

Днес (17 февруари), в 12:17 на обяд, 54 човека получихме автоматизиран имейл от GitHub, че акаунтът ни https://github.com/obshtestvo е изтрит, заедно с всички хранилища.

Както може да си представите, това предизвика голямо объркване. Реакциите бяха бързи, като Боян Юруков пръв зададе публично въпрос какво се случва. Под въпроса му във Facebook се оформи бурно развиваща се дискусия.

С предположението, че това може да е злонамерен акт, създадохме отново организация със същото име, за да си запазим името и да не позволим на някой да направи “take over” на github.com/obshtestvo. Това се случи със закъснение от 5-6 минути след известието за изтриване, така че беше възможно злонамерен човек да ни изпревари.

След това писахме на поддръжката на GitHub, следния текст:

Hello,

Someone deleted our NGO’s organization account a few minutes ago. The account’s name was:

obshtestvo

  1. First, is there a way to see who from the owners team initiated the deletion?
  2. Second, are there any backups of the content? Issues, wikis? We have most of the repos and will be able to restore them, but we’ll lose the issues.

We created a new org. account with the same name a few minutes ago so that a malicious person does not take over it.

The situation is our own fault as we gave too much people owner accounts. We also know that deletion is permanent. However, we’d be very grateful for any help you could provide us with. Thanks.

Чакаме отговор.

След това ни обърнаха внимание, че в профила на всеки потребител в GitHub има раздел “Сигурност” (https://github.com/settings/security), в който има лог на извършените манипулации с потербителя. Там, всеки от администраторите в акаунта на Общество.бг, има информация, че е бил премахнат от групата на администраторите. Това вероятно е станало автоматично, като част от изтриването на организацията. Пишеше и кой потребител го е направил.

team.remove_member: Remove mitio from team obshtestvo/owners at 2015-02-17 12:17:18 +0200

Изпратихме имейл до него със следния текст:

Относно: “Изтриване на организацията на Общество.бг от твоя потребител”

Здрасти,

Преди около час, организацията на Общество.бг в GitHub - https://github.com/obshtestvo - беше изтрита. Ние ще възстановим изгубената информация, това не е голям проблем за нас.

Журналът на сигурността сочи, че действието е извършено от твоя профил.

Това действие умишлено ли е направено от твоя страна?

След това споделихме информация за GitHub профила му в нишката във Facebook, където се обсъждаше ситуацията. Хората, следящи коментарите, се активизираха - изрови се LinkedIn профила на човека, Facebook профила му, след това старото му CV (което вече не е онлайн), накрая станаха ясни имена и телефон.

Тони Стойчев се свърза с него по телефон и стана ясно, че действието не е било злонамерено и че той не е разбирал, че е администратор в профила на Общество.бг в GitHub и не е станало ясно, че изтрива цялата организация.

След като се свързахме с него, той написа следното:

Здравейте на всички! Искам най-напред да се извиня за голямото недоразумение, което съм направил. Не знаех, че имам админски права към “общество”. Днес реших да ъпдейтна портфолиото си с нови мои разработки и проекти. Обаче преди 2 месеца смених компютъра си. Смених операционна система и поднових програмите. Дали от това или от друга причина ГитХъб-а все ми даваше грешки и не искаше да синхронизира новите промени. Затова реших да изтрия бранчовете от моя акаунт. Така стигнах до “общество” и без много да се замислям изтрих папката. Нямам никакви лоши намерения и не съм искал по никакъв начин да ви създавам неприятности. Много съжалявам и моля да ме извините за причиненото неудобство. Благодаря на Антон Стойчев, че ми се обади по телефона и ме уведоми за случилото се.

(…) Изтрих “общество” от моя профил на ГитХъб-а. Работил съм към Auxionize и там каквото изтриеш го изтриваш само от своя компютър. Ръководителят на проекта допълнително одобряваше всяка една промяна. Не знаех, че имам админски права и мислех, че изтривам папката само от моя профил (компютър).

Отговор от GitHub (18 февруари)

От поддръжката на GitHub възстановиха цялата организация и всички хранилища в нея. Единственото различно е, че на някои хранилища пише, че са fork-нати от такива на други хора, но всичко друго изглежда запазено изцяло.

I’m sorry for the delay in getting back to you about restoring your deleted obshtestvo organization.

“We created a new org. account with the same name a few minutes ago so that a malicious person does not take over it.”

That was a good instinct, but I cannot restore the organization while another account has the same name. I renamed the new organization to obshtestvo-temp so that I could restore the deleted account and repositories.

I’m happy to tell you that we were able to restore the obshtestvo organization and the deleted repositories. You will soon be receiving an invitation to the organization’s Owners team for the @mitio user account associated with this email address.

You’ll see that my user account (aden) is on that team as well. That is a temporary part of the restoration process. Feel free to remove me from the organization, or I will do myself in the near future. You’ll also need to re-invite any other users to the organization because the team structure was not restored.

It sounds like you already know how and why the account was deleted, but you can review all the logs for the account here:

https://github.com/orgs/obshtestvo/audit-log

Good luck with your projects! Please let me know if you have any questions or if there’s anything else I can do to help.

All the best, Aden

Изводи и мерки

Възстановяване на данните

В момента все още очакваме отговор от поддръжката на GitHub, за да видим дали ще могат да ни помогнат с възстановяване на данните от някакъв архив.

В противен случай, ще възстановим хранилищата и кода в тях от клонираните копия по машините на разработчиците или от сървъра на Общество.бг, който не е засегнат от ситуацията. В този случай, процесът ще отнеме поне няколко дни и ще изгубим метаданните за проектите - issues, pull requests, wikis.

Засега изчакваме отговора. Ако стигнем до ръчно възстановяване на хранилищата, ще пишем за съдействие във Facebook групата.

В най-лошия случай, вероятно след седмица над 90% от хранилищата ще са възстановени на същия адрес, на който са били преди.

Ограничаване на администраторските права

До момента сме били много либерални в раздаването на пълен администраторски достъп до организацията на Общество.бг в GitHub – всеки е имал право да прави всичко. Имахме 54 администраторски акаунта към момента на инцидента. Причината за това е принципна и тя е във вярата в доброжелателството на всички участници и в желанието Общество.бг да е нещо, притежавано от всички нас.

Хубавото е, че очакванията ни за доброжелателство не останаха излъгани.

Въпреки това, от тук нататък ще се наложи да предприемем по-рестриктивни мерки за достъп, за да ограничим опасността от подобни случки. Пълен административен достъп ще имат няколко човека и те ще се грижат да създават нови хранилища и да управляват правата за тях. Достъпът до всяко хранилище ще бъде индивидуален и ще има един или двама администратори за хранилището, а всички останали ще бъдат contributors.

Разбира се, политиката ни за създаване на нови хранилища в организацията, ще остане същата и всеки човек, който иска да започне проект под шапката на Общество.бг, отговарящ на критериите, ще може да го направи и ще получи достъп до там. Същото важи и за сървъра на Общество - продължаваме да го предоставяме за хостване на проекти с обществена насоченост.

Активизиране на участници в кризисни ситуации

Всички си извадихме много поуки от случилото се.

За нас беше интересно и изумително каква мобилизация настъпи в следствие на ситуацията. В момента, в който стана ясно кой е инициирал изтриването, няколко човека направиха едно колаборативно разследване, за да изкопаят лични данни за него. Хора, които принципно не са били или в момента не са активни в Общество.бг, допринесоха.

Тъжното е, че е необходима кризисна ситуация и драма, за да се мобилизира човек. Би било чудесно, ако можехме да влагаме същата енергия и пъргавост в преследване и на другите цели, които имаме в Общество.бг.

Ставаме, изтупваме се и продължаваме напред.

Митьо

Този текст беше оригинално публикуван тук, поради липсата на хранилище, от което да се обнови status.obshtestvo.bg.


comments powered by Disqus