Testy to ważna sprawa. Ważne, by przetestować dokładnie oprogramowanie, z którego będą korzystali klienci. Ważne, by testować regularnie i wszystkie istotne scenariusze. Ważne także, by nie przeprowadzać testów na produkcji.
Dzisiaj około godziny 15:16 telefony tysięcy (jak nie milionów) Polek i Polaków zabrzęczały jednym głosem. To mBank wysłał komunikat, a nawet trzy. Niestety były to komunikaty testowe, które sobie tylko znanym sposobem wyrwały się z okowów środowiska testowego i wylądowały w produkcyjnym. Przyjrzyjmy się temu incydentowi.
ęśąćż
Komunikaty były dość lakoniczne. Wyglądały tak (jeśli jeszcze nie widzieliście):
Jeśli zastanawiacie się, co kryje się pod znaczkami ze środkowego komunikatu, to najwyraźniej ktoś próbował sprawdzić przetwarzanie znaków ASCII w kodowaniu HTML Entity – numerek 58 to dwukropek, a 48 to zamknięcie nawiasu – czyli łącznie popularny uśmieszek :)
Testy najwyraźniej dotyczyły między innymi kodowania znaków – stąd zestaw kilku polskich znaków w jednej z wiadomości (przy okazji – kilku brakuje, test niekompletny!).
Jakie są skutki takiego testu
Wyobraźcie sobie, że jesteście klientami mBanku. Dostajecie niezrozumiały komunikat. Klikacie sprawdzić, czy nic nie zniknęło z konta.
A teraz wyobraźcie sobie, że jesteście serwerem mBanku. Dostajecie naraz kliknięcia tysięcy, jak nie setek tysięcy, klientów banku. Klękacie, by sprawdzić, czy w tej pozycji udźwigniecie ruch. Efekt?
Oczywiście osób sprawdzających, dlaczego serwer przestał odpowiadać, też jest niemało. Tak to wyglądało w serwisie Downdetector.pl.
Przez pierwsze kilkanaście minut były poważne problemy z otwieraniem strony banku i działaniem aplikacji mobilnej. W ten sposób mBank przetestował nie tylko wyświetlanie komunikatów, ale także skalowanie infrastruktury – choć oba testy były, przynajmniej w tej skali, niezamierzone.
Warto także zauważyć, że chyba nigdy żaden bank nie otrzymał w ciągu kwadransa tylu zrzutów ekranu swoich komunikatów – przynajmniej wiedzą teraz, jak się wyświetlają u setek klientów.
Co jeszcze zadziałało
Zaprawiony w bojach dział odpowiedzialny za komunikację kryzysową reagował naprawdę ekspresowo. Nasze pytanie do rzecznika banku doczekało się odpowiedzi w 4 minuty – to nieoficjalny rekord w kategorii „odpowiedź merytoryczna” (nie liczymy odpowiedzi w stylu „jutro odpowiemy”):
Był to błąd, za który przepraszamy.
Wysłaliśmy do klientów powiadomienia przygotowane jako testowe. Przekazanie ich do wszystkich użytkowników spowodowało zwiększoną liczbę logowań do serwisów banków, które w efekcie zwolniły.
Systemy bankowe jednak działają, a my raz jeszcze przepraszamy za ten błąd.
Dział komunikacji próbował też ratować serwery banku:
To chyba pierwszy raz w historii, gdy bank prosił klientów o to, by nie klikali w otrzymane od niego komunikaty.
Co ze sprawcą zamieszania?
Nie znamy losu autorów trzech powiadomień, którym udało się przekazać je do systemu produkcyjnego. Piszemy w liczbie mnogiej, ponieważ mBank to poważna instytucja finansowa, dbająca o unikanie wpadek, więc jesteśmy przekonani, że jedna osoba nie może wypuścić powiadomienia do wszystkich klientów bez przynajmniej drugiego etapu zatwierdzania. Mimo to procedura nie zadziałała. Czy czas dodać trzeci poziom akceptacji? Bez wątpienia stanowić to będzie ostatnią część raportu poincydentalnego, w sekcji o tytule „Rekomendacje”. Jako że mamy nadzieję, że ten artykuł przeczytają także mBankowi decydenci, apelujemy – nie zwalniajcie sprawców z pracy. Jesteśmy przekonani, że od dzisiaj nikt nie będzie skrupulatniej weryfikował wysyłanych komunikatów i środowisk, do których trafiają. Może nawet posadzić ich jako trzeci etap zatwierdzania?
Memy i komentarze
W sieci pojawiły się oczywiście celne komentarze i okolicznościowe memy – w końcu za kilka lat będziemy mogli każdego klienta mBanku zapytać „a co robiłeś, gdy przyszły Trzy Powiadomienia?”.
Nie zabrakło nawiązania do klasyki historycznej:
Komentarz klasyczny:
Wszystkie firmy mają środowiska testowe. Niektóre mają także luksus posiadania środowisk produkcyjnych.
Komentarz empatyczny:
To uczucie, gdy klikasz „send” i w całym biurze rozlega się dźwięk powiadomień.
Powyższy przykład dołączamy do naszego szkolenia dla administratorów. Jeśli chcecie przeszkolić swoje działy IT, to mamy dla nich kilka godzin historii o tym, dlaczego powinni uważać na używane hasła, procedury zarządzania zmianą, kopie bezpieczeństwa, zarządzanie dostępem i konfigurację usług i aplikacji. A wszystko poparte setkami prawdziwych przykładów – z powyższym włącznie. Wystarczy odezwać się do nas i umówić na wykład – zdalny lub lokalny.
Komentarze
Pieprzyęśąćż takie fuckupy. Wielka zbrodnia…
Dziękuję ze w odróżnieniu od takiego innego portalu tego pana co się tak lubi w tvn lansować, podchodzicie do tematu bez pajacowania.
Dlaczego lansować? Zapraszają to przychodzi. Tak się z niebezpiecznika wszyscy śmieją, że w każdym artykule jadą reklamą swoich usług, a tutaj mamy to samo.
I co teras :o
„Tak się z niebezpiecznika wszyscy śmieją, że w każdym artykule jadą reklamą swoich usług”
problem w tym że nie swoich i nie usług
Jest duża różnica klas na korzyść Z3S. „Tamta” strona zaczęła gwiazdorzyć i to dawno.
Jak ktoś śmie konsumować owoce swojej popularności?!? Każdy bloger powinien siedzieć o chlebie i wodzie w ciemnej piwnicy, a nie pałętać się po jakichś telewizjach… Żeby człowiek musiał gębę blogera w telewizorze oglądać. No skandal jakich mało.
problemem jest to ze autorzy krytykowanego tu portalu zrobili takiego pudelka w kategorii sec. Robią ze wszystkiego zawsze wielka afere. Kreują się na wszechwiedzących i jedynych sprawiedliwych. Nich ktos kto ma jakieś pojęcie o sec idzie na ich szkolenia. Metoda jest jedna. Wystraszyć ludzi którzy się nie znają a potem pokazać jakimi jesteśmy specjalistami. Przykro mi ale nie zgadzam się z taką metodyka szkoleń. Zobaczcie sobie wystep pana Koniecznego na ted. Niby nie mowi nieprawdy ale na samym początku sprawił ze większość publiczności poczuła się jak głupcy. Takie są metody działania.
Akurat nie o TV mówię, bo mi to nie przeszkadza. Ale mniejsza o to, praktycznie już tam nie zaglądam, więc wisi mi tamta strona i dyskusja o niej.
Bloger jak najbardziej ma prawo do konsumpcji swojej popularności, pozostaje kwestia sposobu konsumpcji. Mlaskanie, bekanie, ocieranie ust rękawem i klepanie się po brzuchu jest kiepskie.
Wszystkie serwisy skręcają w stronę pudelka. Niestety to konieczność gdy chcą przyciągnąć czytelników, których zamienią w klientów swoich usług.
Zaglądają na nie ludzie bardzo często nie związani z branżą security, często nawet nie są z IT. Ich nie interesuje analiza kolejnego malware czy poradnik używania nmapa. Są w stanie zrozumieć tylko „pudelkowate” treści i nie ma w tym nic złego. W konsekwencji poziom tekstów się obniża, żeby przyciągnąć laików.
@Fff
Mnie w jego wystąpieniu zbulwersowało, że w nagraniu tego szkolenia dostępnym w Internecie wprawdzie jest o tym, że dane wyciekły z Inpostu, ale nazwy banków, z których również były wycieki, nie są pokazane.
Wygląda na to że boi się banksterów bardziej niż pana Rafała Brzoski.
@Marek
>Są w stanie zrozumieć tylko „pudelkowate” treści i nie ma w tym nic złego
Wręcz przeciwnie, to coś bardzo złego.
Do zrozumienia artykułów czy to na Z3S, czy to na Niebezpieczniku nie jest potrzebna specjalistyczna wiedza, wystarczy umiejętność czytania ze zrozumieniem plus czasem (rzadko) sprawdzenia czegoś w Wikipedii. Nie trzeba być z IT.
Niewątpliwie degradacja intelektualna w narodzie postępuje, ale to jej nie usprawiedliwia.
Wg mnie trzeba się pogodzić z tym, że portale mają różne grupy docelowe. Żeby nadal nie wymieniać nazw – inną ma strona czarna, inną ciemnoszara i inną biała ;) My którzy czytamy je od lat, pamiętamy moment, kiedy kierowane były do z grubsza tej samej grupy „osób interesujących się bezpieczeństwem komputerowym”. Ale z czasem okazało się, że wśród tej grupy wyodrębniły się wyraźne podzbiory – upraszczając – początkujący, zaawansowani, zawodowcy, albo w innym podziale – nieIT, IT, admini ;). Każda grupa potrzebuje czegoś innego. Dla mnie jest logiczne, że „wiodące portale” nie rywalizują bezpośrednio o jeden i ten sam podzbiór, tylko kierują swoją ofertę do różnych. Skoro jest zapotrzebowanie i na pudelka i na wyżła i na owczarka, to szkoda byłoby ich wszystkich nie dostarczyć ;) Chociaż ja wiadomego portalu nie przyrównałbym do pudla a do teriera, który jest dużo głośniejszy i jako dzwonek alarmowy sprawdza się bardzo dobrze.
Dzięki temu do szarego odbiorcy trafia także komunikat od osób znających tematykę, a nie tylko wypociny dziennikarza, który 1/3 tematu nie zrozumiał, 1/3 przekręcił, 1/3 wyssał z palca dla przyciągnięcia uwagi, a całość okrasił wypowiedzią nawiedzonego polityka.
aja mam wyłączone powiadomuenua i spokój.
I nie wiesz ile zabawy straciłeś ?
Czyżby testerzy pomylili instancje testową z produkcyjną?
Szczerze współczuję chłopakom, bo zostali już zapewne zgrillowani przez zarząd.
.
Ja gdy kiedyś wdrażałem pewien duży system, wersję testową miałem na środowisku zwirtualizowanym A. Wersja produkcyjna była na środowisku zwirtualizowanym B. Czyli osobne systemy operacyjne (CentOS) i osobne RDBMS (MySQL). Dodatkowo, odmienna szata graficzna (kolor: czerwony na produkcji i niebieski na teście) każdego ze środowisk. Wszystko po to żeby nie pomylić się z instancjami bliźniaczych baz.
A nie jest trudno się pomylić. One mogą się różnić niewielkim szczegółem, np. w pasku adresu przeglądarki.
W nawale pracy, w kieracie codzienności, plus zmęczenie, łatwo o pomyłkę.
.
Jeszcze raz: współczuję ludziom z testów, bo mają ciepło i pewnie premia zniknie.
Na pocieszenie: nie myli się tylko ten, kto nie działa. Nie da się przeżyć życia bez pomyłek.
Co nas nie zabija, to nas wzmacnia! I tyle w temacie.
Jaka premia? :D szeregowi pracownicy tam nic takiego nie dostają. Pensji też im nie obetną. Pewnie nawet nie będą mieć żadnej rozmowy na ten temat bo o czym tu rozmawiać?
w systemach tej klasy nie powinno być w ogóle możliwości „pracy na produkcji”, wszystkie narzędzia testowe, nawet jeśli jakimś cudem mimo CR trafią do systemu nieaktywne przez ustawienie env na prod itp.
nie można winić człowieka za pomyłkę, najwyżej za nieprzestrzeganie procedur (które najwidoczniej nie były dopięte, bo raz jeszcze, nie powinno być w ogóle takiej możliwości)
Jak to powiedział nie pamiętam który mega biznesmenem – nie wini swoich pracowników za pomyłki, ale każe im za nie płacić ;)
Całe szczęście, że testerom nie przyszło do głowy przesłanie w ramach testu jakiegoś niecenzuralnego słowa… W końcu to tylko wiadomość testowa, co mogłoby pójść nie tak? :-)
Jak to 107 117 114 119 97 co?!
Kontemplacje! :)
> Czy czas dodać trzeci poziom akceptacji?
Bez przesady. Takie są uroki Agile – praca postępuje szybciej, ale jest więcej miejsca na błędy, trzeba zaakceptować że od czasu do czasu coś pójdzie nie tak. Funkcja wysyłania powiadomień nie jest na tyle krytyczna żeby obwarowywać ją nie wiadomo jakim procesem.
Pośmialiśmy się, bank przetestował swoje procedury zarządzania kryzysem, do jutra wszyscy zapomną.
Pozdrawiam przy okazji zespół testerski, jestem z Wami.
> naszego szkolenia dla administratorów
Którego szkolenia? Security awareness czy mówimy o jakimś innym?
Awareness, ale dedykowane dla administratorów.
Dokładnie. Błąd zrobił jeden człowiek, może osobiście nawet ktoś z dostawców systemu? Nie ma żadnych poziomów akceptacji, administrator systemu może w nim zrobić wszystko bez pytania nikogo o zgodę. Poprawka był już na produkcji, grupa docelowa to miała być *testerzy, a poszła sama * :)
Błąd był zupełnie nieszkodliwy i wszystko zepsuli klienci próbując naraz logować się do systemu. A gdyby to był jakiś atak i apka nie bya już apką mBanku to ich loginy i hasła byłyby „już w dobrych rękach”.
Poza tym taka ilość darmowej reklamy kosztowałaby majątek, a tak artykuły wszędzie, logo banku w tym artykule pięć razy :) Za free! Nie zdziwiłbym się nawet gdyby to była zaplanowana akcja.
Sezon ogórkowy w pełni powiedział bym gdyby nie fakt że od co najmniej 5 lat w polskim sekjuriti cały czas jest sezon ogórkowy z drobnymi przerwami na spektakularne sukcesy
Zawsze i wszędzie to klient najlepszym testerem jest i będzie.
„(…) teraz wyobraźcie sobie, że jesteście serwerem mBanku” – dla mnie tekst co najmniej tygodnia, uwielbiam <3
A co do meritum, obstawiałbym nie tyle pomyłkę bezpośrednią testera, co odpowiedzialność rozproszoną, dziwnie podpięte środowiska, przekierowanie do przekierowania, copypastowanie kodu procedur itp. I trzeci poziom akceptacji nic tu nie da, natomiast audyt konfiguracji i uporządkowanie jej owszem.
Ojtam, mBank przetestował sobie DDoS-a (znaczy, klienci im przetestowali – również w produkcji…) ;)
ęśąćż…. szkoda ze nie żółć
I gdzie te czasy, gdy wielki napis „dupa” na stronie dużego portalu nikogo w branży nie dziwił, bo testowanie na produkcji było normą. Aż się łezka w oku kręci.
Premie to powinni dostac a nie stracic. Klienci zrobili gratis stress test na produkcji a Zarzad powinien sie zastanowic jak uniknac prawdziwego DDoSa bo niechcacy wyszedl brak skalowania. Klasyczny schemat: niedostepnosc=straty wizerunkowe.
Jest chyba jakiś błąd w opisie „a 48 to zamknięcie nawiasu” powinno być chyba 41.
Piękna historia na Fackup Night :-)
To też test ile osób kliknęło na tę jednak podejrzaną wiadomość.
Ja postanowiłem nie reagować, lecz zweryfikować u źródła, co jest grane.
A skąd pewność, że odpowiedzialnym jest zespół testowy?
Przecież równie dobrze, jakiś nierozważny developer mógł utworzyć migracje do bazy i zapisać klucze autoryzacyjne do produkcyjnego „namespace” API od push notyfikacji.
Podczas wystawiania budowania środowiska testowego, na produkcje mogła wjechać felerna migracja. Szast prast i jaki koń jest, każdy widzi :D
Zawalić mógł każdy, kto położył łapę na kluczach od API.
Jeżeli pushe idą przez zewnętrzną firmę, to wtedy różnica między testem a produkcją to tylko inne dane logowania – a wiadomość wysyłasz dokładnie w ten sam sposób.
Nadal – wysyłasz najpierw do siebie – a dopiero jak zadziała do wszystkich :)
>Dostajecie niezrozumiały komunikat. Klikacie sprawdzić, czy nic nie zniknęło z konta.
Głupotą jest logowanie się do istotnych usług za pomocą urządzenia, które wyświetliło niezrozumiały komunikat.
A ja widząc to uśmiechnąłem się i pomyślałem „Heh, no zdarza się ? ”
Naprawdę trzeba być programistą, by nie wpaść w panikę?
Autor radzi dodać rzeci poziom akceptacji.. A w artykule nic o tym, że mzłodz stosuje takie techniki. :D
Wygląda mi to nieco na błąd w procesie blue-green deployment. Sam popełniłem jeden i wiem jak gorzki jest smak wizerunkowego faux-pas.
Nie do końca można się przed takimi błędami uchronić. Można wprowadzić strategię minimalizacji dotkniętych błędem użytkowników (blast-radius zone). Nawet w przypadku testowania na produkcji minimalizuje to ryzyko blamażu dla firmy i kar dla pracowników.
Niestety – wdrożenie takich strategii kosztuje sporo – gotówki, czasu i nowych potknięć.
Nie mniej jednak życzę powodzenia. Wideo o podobnych strategiach na youtube:
https://www.youtube.com/watch?v=mJZjiwXdKHU
ęBank ;D
Autoatak DDoS
Level: mBank
Jak bank może prosić klientów, aby nie klikali w komunikaty? Przecież to podstawa do potencjalnych problemów. Złodziejaszki wykorzystają to do kradzieży, zamieszczą fake post, że za chwile będzie test – prosimy nie klikać i gotowe :O