Dwa w jednym

W dobie powszechności pracy zdalnej, z szerokim wykorzystaniem dostępu przez Internet niezmiernej wagi nabiera zapewnienie bezpieczeństwa. Zapewnienie bezpieczeństwa to złożone zagadnienie dotyczące wielu obszarów aktywności – ochrona przesyłania danych, zapewnienie ciągłości działania, zapewnienie poufności przetwarzanych danych, itp.

Zatem w jaki sposób zabezpieczyć konta w naszej Jirze? Zwykle zalecamy stosowanie szeregu technik, które pozwalają na obniżenie ryzyka związanego z nieuprawnionym przechwyceniem i wykorzystaniem naszego hasła. Niestety, reguły te są bardzo trudne do realizacji. Dobre, złożone hasło trudno zapamiętać, zwłaszcza gdy musimy je zmieniać odpowiednio często. Chcąc poradzić sobie z tym wyzwaniem część osób korzysta z menedżerów haseł, aplikacji umożliwiających bezpieczne przechowywanie wielu haseł. To dobre rozwiązanie, jednakże może się okazać zbyt skomplikowane dla wielu osób.

Zatem co robić?

Na początek powinniśmy uświadomić sobie, że niewątpliwie najpoważniejsze konsekwencje może mieć kompromitacja konta administracyjnego naszego serwera Jira. Nawet najlepsze „utwardzenie” naszego serwera nie pomoże, jeżeli z dowolnych powodów hasło administratora zostanie ujawnione. Zajmijmy się zatem ochroną konta administratora. Pomogą nam w tym rozwiązania MFA.

Wychodząc naprzeciw opisanym powyżej potrzebom rozwijana jest od pewnego czasu technologia MFA (MultiFactor Authentication) – uwierzytelnienie wieloczynnikowe. Mówimy, że dobre uwierzytelnienie winno uwzględniać jak najwięcej z podanych poniżej czynników:

  1. Coś co wiesz – unikalne hasło, które tylko ty znasz.
  2. Coś co masz – jakieś unikalne urządzenie, które posiadasz.
  3. Coś czym jesteś – komponent biologiczny, np. tęczówka oka lub odciska palca.

Najlepsze hasło to takie, które łączy wszystkie ww. komponenty. Im więcej wymienionych powyżej komponentów wykorzystamy w budowie hasła tym jest ono silniejsze.

Popatrzmy zatem jak możemy podnieść bezpieczeństwo dostępu do aplikacji Jira lub Confluence. Przedstawimy rozwiązania dedykowane dla środowiska Atlassian.

W celu skorzystania z dwuczynnikowego uwierzytelnienia proponuję skorzystać z propozycji firmy Alpha Serve oferującej dodatek 2FA for Jira:U2F&TOTP. Ten dodatek jest przeznaczony do implementacji dwu-czynnikowego uwierzytelnienia w aplikacji Jira. Użytkownik może skorzystać w dwóch typów mechanizmów uwierzytelnienia – algorytmu opartego o czas AUTH-TOTP.

Dodatek zapewnia m.in. następujące funkcjonalności umożliwiające zarządzanie :

  1. Indywidualne włączanie dwuczynnikowego uwierzytelnienia dla indywidualnych użytkowników, dla grup użytkowników, dla wszystkich użytkowników.
  2. Tworzenie list adresów IP, z których dopuszczone jest logowanie dwuczynnikowe.
  3. Resetowanie haseł dynamicznych.
  4. Logowanie zdarzeń uwierzytelnienia.

Do wygenerowanie dynamicznego hasła możemy wykorzystać klucz bezpieczeństwa firmy Nitrokey – Nitrokey Pro.

Jest to urządzenie umożliwiające tworzenie haseł w oparciu o algorytmy TOTP (Time-based One-time Password), HOTP (HMAC-based One-time Password algorithm). Dodatkowo urządzenie umożliwia przechowywanie kilkunastu haseł statycznych oraz certyfikatów standardu OpenPGP albo X.509. Jak widać z opisu jest to uniwersalne urządzenie, które umożliwi utworzenie złożonych haseł dostępu do naszej aplikacji, zapewni możliwość podpisania naszej poczty elektronicznej oraz przechowa bezpiecznie hasła dostępowe dla wielu innych naszych aplikacji.

Po zainstalowaniu dodatku dla każdego z użytkowników należy skonfigurować jego unikalne urządzenie i powiązać z dodatkiem. Konfiguracja w zasadzie ogranicza się do ustawienia unikalnego kodu wygenerowanego w dodatku Jira, oraz odpowiedzi na ten kod przez urządzenie zewnętrzne. Do utworzenia dynamicznego hasła wykorzystywany jest algorytm TOTP.

Aplikację Google Authenticator możemy wykorzystać podobnie jak klucz sprzętowy. Konfiguracja przebiega całkiem podobnie. Aplikacja generuje kolejne hasła, które należy wpisać w drugie okno logowania.

Szybkie hasło na żądanie

Kolejne rozwiązanie mające na celu zabezpieczenie dostępu do kont naszej Jira’y będzie wykorzystywać następujący zestaw:

  1. Dodatek WebAuthn for Jira firmy Alpha Serve realizujący uwierzytelnienie zgodnie ze standardem WebAuthn.
  2. Klucz bezpieczeństwa Yubikey firmy Yubico.

Standard WebAuthn umożliwia uwierzytelnienie z wykorzystaniem klucza publicznego, ten sposób uwierzytelnienia wprowadzony w 2019 roku jest obecnie wspierany przez przeglądarki Chrome, Firefox, Edge czy Safari. Mechanizm działa w następujący sposób – klucz prywatny jest przechowywany na bezpiecznym urządzeniu zgodnym ze standardem FIDO2, zaś klucz publiczny wraz z losowo generowanym identyfikatorem jest przesyłany do przeglądarki. Serwer może zatem uwierzytelnić użytkownika z wykorzystaniem klucza publicznego.

Specyfikacja WebAuthn została opracowana przez konsorcjum W3C. W opracowaniu uczestniczyły takie firmy jak Google, Mozilla, Microsoft. Będzie zatem to rozwiązanie, które będzie coraz bardziej popularne. Zalecane jest jako skuteczne zabezpieczenie dostępu do kont w aplikacjach jak Facebook, Google, a także Office, OneDrive. Spektrum zastosowań niewątpliwie będzie rosło.

Rozpoczynamy od konfiguracji dodatku po stronie serwera. Konfiguracja dodatku WebAuthn for Jira umożliwia:

  1. Definiowania, czy uwierzytelnienie z wykorzystaniem standardu WebAuthn jest wymagane dla określonych osób czy określonych grup użytkowników.
  2. Konieczności podawania dodatkowo kodu PIN podczas logowania.
  3. Rejestrowania operacji logowania w logu.
  4. Ustawianie czasu przechowywania logów.
  5. Określenie zasad weryfikacji użytkownika (attestation type), zgodnie z wymaganiami standardu WebAuthn.
  6. Określenie typów systemów uwierzytelniających (Authenticator Type).

W kolejnym kroku rejestrujemy posiadany klucz. Dodatek WebAuthn for Jira umożliwia przypisanie wielu kluczy standardu FIDO2, mamy zatem możliwość utworzenia kluczy zapasowych na wypadek zgubienia klucza podstawowego.

Tym razem wykorzystamy jako klucz sprzętowy Yubikey 5. Klucz sprzętowy oferuje pełne wsparcie dla wielu standardów bezpieczeństwa – może przechowywać klucze openPGP lub X.509, hasła statyczne, może zapewniać uwierzytelnienie oparte o mechanizm challenge-response, oraz tworzenie haseł dostępu dla standardów OATH-HOTP.

Przedstawiony model to wersja bardzo rozbudowana, do szerszego wykorzystania wystarczy wykorzystać znacznie tańszą wersję Yubikey Security Series.

Użytkowanie tego rozwiązania jest bardzo proste. Otwieramy okno logowania aplikacji i wprowadzamy nasz login. Wkładamy klucz do gniazda USB (dostępne są warianty złącza USB-A i USB-C).

Po połączeniu z aplikacją przycisk na kluczu zaczyna migotać ikona. Pojawia się okienko, w którym należy wprowadzić kod PIN (min. 4 znaki) a następnie należy nacisnąć na migający przycisk i logowanie zostanie wykonane.

Potencjalnie istnieje możliwość takiego skonfigurowania dodatku, aby podczas logowania nie był wymagany PIN. Jest to jednak podejście niebezpieczne gdyż oznaczałoby, że osoba posiadająca klucz (nawet jeśli przejęło go bezprawnie) może zalogować się.

Zaproponowane rozwiązanie jest uniwersalne, może być wykorzystywane na potrzeby zapewnienia bezpieczeństwa innych aplikacji.

Jak pisałem wcześniej uwierzytelnienie z wykorzystaniem WebAuthn może być stosowane także w wielu innych aplikacjach.

Klucz Yubikey, oprócz przedstawionych powyżej możliwości:

  1. Udostępnia możliwość przechowywania 2 kluczy statycznych.
  2. Generowania kluczy dynamicznych.
  3. Umożliwia przechowywanie certyfikatu zgodnego ze standardem OpenPGP oraz X.509.
  4. Wyposażony jest w interfejs NFC, co umożliwia wykorzystanie go także na wielu urządzeniach mobilnych.

Mamy zatem możliwość wykorzystania posiadanych narzędzi do zapewnienia bezpieczeństwa innych rozwiązań.

Integracja Jira i Raspberry PI cz. 1

Jira firmy Atlassian to popularne narzędzie w środowisku informatycznym i nie tylko w informatycznym. Może służyć do wsparcia realizacji testowania, zarządzania projektami i rejestrowania i zarządzania incydentów. I wiele, wiele innych. Warto jednakże wyjść poza obudowę komputera i wykorzystać Jira w połączeniu z otaczającym nas światem. Stąd narodził się pomysł połączenia Jira z Raspberry PI. Czytaj dalej Integracja Jira i Raspberry PI cz. 1