Kultura Pracy a Bezpieczeństwo w Projekcie

583
views

Wstęp

Wyobraź sobie, drogi czytelniku, że nagle dowiadujesz się, iż firma, w której pracujesz została „zhakowana”. Wszystkie urządzenia firmowe zostały całkowicie wyczyszczone z danych. Wszystkie projekty i bazy danych zostały wrzucone na publiczne serwery. Co gorsza, zostały również upublicznione dane wszystkich pracowników wliczając w to emaile, numery telefoniczne, prywatne numery kont oraz informacje o zarobkach. Natychmiastowo uświadamiasz sobie, że zostałeś obdarty z części swojej prywatności, będąc teraz łakomym kąskiem dla różnego rodzaju oszustów.

Jak do tego mogło dojść? Czy można było temu zapobiec?

W tym artykule skupimy się na jednym z możliwych scenariuszy, które mogą doprowadzić do opisanej sytuacji: na zaniedbaniach wynikłych z kultury pracy. Czym takim jest kultura pracy? Na to pojęcie składają się między innymi:

  • Narzędzia, które są używane przez zespół (sprzęt, programy, usługi sieciowe czy też internet sam w sobie),
  • Sposób, w jaki te narzędzia są wykorzystywane.

Czym są więc zaniedbania w kulturze pracy? Przedstawi to poniższa historyjka, która opisuje najczęściej popełniane grzechy oraz ukazuje, z jakimi konsekwencjami mogą one się wiązać.

Zarysowanie fabuły

Tomek, Ania i Adam, trójka dobrych znajomych, wpadli na pomysł napisania platformy, która zrzeszałaby niezależnych twórców gier. Projekt miał nazywać się Playtform. Nasi bohaterowie zdawali sobie sprawę z tego, że konkurencja na tym rynku jest już dość spora. Jednak ich platforma – w odróżnieniu od innych – miała charakteryzować się kilkoma nowatorskimi rozwiązaniami, które miały pozwolić im wybić się ponad resztę. Poza tym, oczywiście, wszystko miało być prostsze, szybsze, lepsze. Młody zespół postanowił skorzystać z usług platform pokroju KickStartera i Patreona, za pomocą których fani mogli wspierać naszych bohaterów drobnymi datkami. By utrzymać fanów przy sobie, zespół zobowiązał się do dzielenia się z nimi swoimi postępami, dodając nowe wpisy na bloga czy też nagrywając krótkie filmiki.

Pierwszy kontakt

Pewnego dnia Tomek uruchomił swój komputer. Po zalogowaniu jego oczom ukazał się niespodziewany widok. Ktoś podmienił jego wspaniałą tapetę z idyllą na kompletnie czarną, z wielkimi czerwonymi strzałkami wskazującymi w jeden punkt na ekranie. Punkt, w którym znajdował się plik o nazwie „CV.txt”.

– Yyy… – zająkał się Tomek – Czy to ktoś z was? – zapytał, wskazując palcem monitor.

Adam i Ania, nie wiedząc, o co chodzi, podeszli do Tomka. Widząc dziwny obraz na ekranie kręcili przecząco głowami. Przez chwilę cała trójka patrzyła się tępo w ekran. W końcu Ania postanowiła przerwać ciszę:

– Czy powinniśmy otworzyć ten plik? – Nie wiem. Wygląda na zwykły plik tekstowy… – Odparł Tomek, niepewnie przesuwając kursorem wokół tajemniczego pliku. Po dłuższej chwili w końcu odważył się go otworzyć.

Plik okazał się być swoistą ofertą współpracy. Współpracy z – jak się okazało – włamywaczem, który w jakiś sposób zdobył dostęp do komputera Tomka. Autor pliku zapewnił, że wszystkie dane są bezpieczne i że chętnie nauczy zespół, jak zwiększyć poziom bezpieczeństwa danych i pracy w projekcie. Oczywiście, za drobną opłatą. Na samym końcu znajdowały się dane kontaktowe. Nastąpiła konsternacja. Nikt nigdy z czymś takim się nie spotkał. Podjąć ryzyko kontaktu czy może udawać, że nic się nie stało? Pod długiej dyskusji zespół postanowił skontaktować się z włamywaczem.

Zaniedbania

Kilka dni później do drzwi biura ktoś zapukał. Zespół przywitał nieznajomego, który przedstawił się jako Sebastian. To on był tajemniczym włamywaczem.

Po krótkich formalnościach Sebastian przeszedł do rzeczy i zaczął tłumaczyć, jak zdobył dostęp do komputera:

– Bardzo mi się podoba wasz pomysł na Playtform. W związku z tym sumiennie śledzę aktualizacje na waszym blogu. Wszystko zaczęło się od jednego z filmików, który wrzuciliście na YouTube. Kręcąc go, Adam chodził z kamerą po waszym biurze opowiadając o kolejnych planach na najbliższe tygodnie. Na jednym z ujęć zauważyłem tablicę korkową z notatkami, które bardzo mnie zainteresowały. Niestety, jakość nagrania nie pozwalała na ich odczytanie.

Zauważyłem jednak, że na jednej ze ścian była zainstalowana kamera monitoringu budynku. Taki sprzęt bardzo często jest podłączony do internetu bez wiedzy użytkownika. Postanowiłem sprawdzić, czy w tym przypadku było tak samo. Skorzystałem więc z serwisu Shodan, który idealnie sprawdza się w wyszukiwaniu urządzeń „wystawionych na świat”. Można tam znaleźć wszystko: kamery, lodówki, całe budynki a nawet elektrownie. Wszystko to jest liczone w milionach, jeśli nie miliardach. Jak więc gąszczu tego wszystkiego miałem znaleźć tę jedną kamerkę?

W filmiku, o którym wspomniałem wcześniej, w tle zostało uchwycone okno, przez które zobaczyłem znajomy widok: charakterystyczny zegar na placu, który znajduje się w naszym mieście. Stąd też wiedziałem, jak zawęzić obszar poszukiwań – wystarczyło ograniczyć wyniki wyszukiwania do naszej miejscowości (i ewentualnie miast sąsiadujących).

Na moje szczęście (i wasze nieszczęście), wśród wyników znalazłem waszą kamerkę. Żeby tego było mało, była ona idealnie skierowana na wspomnianą tablicę korkową! Obraz był na tyle dobry, że udało mi się odczytać adres waszej Jiry (portalu do planowania pracy zespołów).

By wejść na Jirę, potrzebowałem konta. W związku z tym wróciłem do waszego profilu KickStarterze w celu zdobycia waszych nazwisk. Następnie udało mi się znaleźć wasze konta na Facebooku. Tam natrafiłem na mail kontaktowy Adama. Jako jedyny był publiczny i widoczny dla ludzi spoza grona znajomych.

Po co mi był ten mail? Wiem, że nie macie serwera dedykowanego dla swojej działalności ani dla swojego projektu. Założyłem więc, że na Jirze zarejestrowaliście korzystając z waszych prywatnych maili. Jeżeli się nie myliłem, to musiałem jeszcze „tylko” znaleźć hasło.

W związku z tym skorzystałem z serwisów takich jak HaveIBeenPwned oraz Gotcha, które prowadzą bazy wycieków i pozwalają sprawdzić, czy dane powiązane z danym kontem wyciekły do internetu i – jeśli tak – to z jakiego serwisu.

Okazało się, że dane związane z mailem Adama wyciekły kilka lat temu z pewnego sklepu internetowego. Po długich poszukiwaniach udało mi się znaleźć tę bazę w sieci. Okazało się, że powiązane z mailami hasła są zahashowane za pomocą funkcji skrótu MD5. Nie stanowiło to jednak dla mnie problemu, gdyż MD5 od dawna już nie uchodzi za bezpieczny.

Następnie posłużyłem się serwisem HashKiller, który umożliwia łamanie różnorakich hashy. Otrzymałem tym samym surowe hasło. Z ciekawości odwiedziłem różne bazy haseł, by sprawdzić, jak często jest ono stosowane przez użytkowników na całym świecie.

Mając parę mail-hasło spróbowałem się zalogować do waszej Jiry i… udało się! Znalazłem tam kilka ciekawych PDF-ów zawierających między innymi adresy IP waszych komputerów. Mając dane dostępowe Adama oraz adres IP jego komputera, grzechem byłoby nie spróbować zalogować się do niego.

Niestety, okazało się, że zebrane dotąd dane nie były akceptowane przez komputer. W takim razie wróciłem do dalszych przeszukiwań Jiry. Znalazłem jeden dokument będący instrukcją konfiguracji czegoś-tam. Każdy opisany krok był uzupełniony zrzutem ekranu. Jednym z nich był screenshot File Explorera wskazującego pewną ścieżkę. W ścieżce tej była zawarta nazwa użytkownika systemu Windows. Okazało się, że autorem dokumentu był Tomek. Czyli najprawdopodobniej to był jego login. Świetnie! Potrzebowałem jeszcze tylko hasła.

Ponownie wróciłem do przeglądania Jiry. Znalazłem tam linka do waszego repozytorium, które stało na platformie BitBucket. Jako, że obie usługi były ze sobą sprzężone, dane Adama służące do logowania się do Jiry pasowały również do BitBucketa.

Wystarczyło, że wyszukałem tam wszystko, co zawierało słowo „password”. Znalazłem wszystkie miejsca i commity zawierające tę magiczna frazę. Z doświadczenia wiem, że serwisy tego rodzaju są wypełnione commitami, gdzie nieuważni deweloperzy „wrzucali” swoje hasła i następnie nadpisywali je za pomocą następnej zmiany mając nadzieję, że już jest „po sprawie”. Jednak nic nie ginie! Nic nie stoi na przeszkodzie, by cofnąć się w historii zmian i podejrzeć tajemnicze hasła, hehe… – Zaśmiał się Sebastian.

Znalazłem więc wszystkie commity, które w komentarzu lub zmianach zawierały szukane przeze mnie słowo. Nie było tego dużo, ale znalazłem to, czego szukałem: hasło Tomka, które było zacommitowane wraz z loginem, jaki znalazłem wcześniej w PDF-ie.

Teraz już bez problemu mogłem dostać się do komputera Tomka. Mogłem w nim robić wszystko, co mi się żywnie podoba, przykładowo: dokonać całkowitego zniszczenia wszystkich danych lub dopisać drobnego backdora do waszej aplikacji.

Sebastian skończył. W biurze nastała martwa cisza.

– Yyy… To mówisz, że chciałbyś z nami współpracować…? – Odezwał się niepewnie Tomek.

Lepiej zapobiegać niż żałować

Może się wydawać, że Sebastian w swojej opowieści przedstawił tylko w jaki sposób po okruszkach doszedł do celu. Jednak w rzeczywistości zrobił znacznie więcej – pokazał naszej trójce bohaterów, jakie błędy popełnili – a bez wątpienia, popełnili ich wiele. Pomimo tego, że wydawały się one nieszkodliwe, tak naprawdę – odpowiednio ze sobą połączone – stały się znacznie groźniejsze, niż można było przypuszczać.

Jak można było temu zapobiec?

Kontrola dostępu

Większość wpadek, jakie zostały tutaj opisane wynikała z tego, że upublicznione zostało coś, co światła dziennego nigdy nie powinno ujrzeć. Upublicznienie to zostało dokonane w różnych formach:

  • Obraz kamery ujawnił adres do Jiry,
  • Wycieki upubliczniły hasła,
  • Nierozważne zarządzanie dostępem do danych nie ukryło adresu mailowego Adama,
  • Nieuwaga podczas robienia screenshotów poskutkowała ujawnieniem nazwy użytkownika.

O ile oczywistym wydaje się być, że hasła i loginy zawsze powinny być poufne, to wspomniany adres Jiry może budzić wątpliwości. Czy faktycznie powinien on być niepubliczny?

Należy pamiętać, że w kontekście bezpieczeństwa informacji każdy powinien wiedzieć tylko tyle, by móc wykonywać swoją pracę, ani grama informacji więcej. Każda dodatkowa porcja danych niepotrzebnie zwiększa ryzyko niekontrolowanego rozprzestrzenienia informacji (innymi słowy: wycieku).

Zatem można zadać sobie pytanie: dla kogo informacja o dostępie do Jiry była krytyczna do wypełniania swoich obowiązków? Oczywiście: dla Adama, Ani i Tomka. Dla nikogo więcej. Zatem informacja o adresie powinna być chroniona w taki sposób, by tylko te trzy osoby miały do niej dostęp.

To samo konto – różne cele

A co z adresem mailowym Adama – czy on też powinien być niepubliczny? Tak długo, jak był on wykorzystywany w celach prywatnych, Adam mógł dawać do niego dostęp komu tylko chciał. Jednak błąd, który popełnił to fakt, że postanowił tego samego maila wykorzystać do celów projektowych. Dodatkowo, w niektórych serwisach był on wykorzystywany jako login.

Funkcja maila zatem całkowicie się zmieniła. Zgodnie ze wcześniej poznaną zasadą, adres ten powinny znać tylko osoby, które powinny móc kontaktować się z Adamem. W tym przypadku byli to Tomek, Ania i ewentualne „osoby z biznesu”. Każdy inny, kto poznałaby ten adres, mógłby w jakikolwiek sposób zaszkodzić Adamowi lub projektowi (np. poprzez spamowanie skrzynki lub włamanie się na konto Adama, co właśnie zrobił Sebastian).

Co więc powinien zrobić Adam? Przede wszystkim: użyć osobnej skrzynki mailowej do celów projektowych. Następnie powinien zastanowić się, kto powinien móc się z nim kontaktować przez nowy adres i przekazać go tylko powołanym do tego osobom.

Podsumowanie

Celem artykułu było zwrócenie uwagi, że zaniedbywanie podstawowych zasad bezpieczeństwa w pracy może nieść za sobą druzgoczące w skutkach konsekwencje. Stąd też, jednym z koniecznych kroków na drodze do zmaksymalizowania poziomu bezpieczeństwa w projekcie i firmie jest przestrzeganie przez zespół kilku prostych zasad:

  • Nie zostawiaj poufnych danych (zwłaszcza loginów i haseł) w widocznych i łatwo dostępnych miejscach.
  • Każdy powinien wiedzieć tylko tyle, by móc wykonywać swoje zadania, ani grama informacji więcej.
  • Twórz konta o minimalnym wymaganym dostępie do informacji – nie używaj tego samego konta do wielu różnych celów
  • Jeżeli masz najmniejsze podejrzenie, że twoje hasło zostało ujawnione – natychmiastowo je zmień.