Article

emagine-blog-supply-chain-main

Category: Expertise strategy

Najlepsze praktyki w zakresie bezpieczeństwa łańcucha dostaw oprogramowania.

Czy znasz je wszystkie?

Mateusz Pruchniak, Software Architect / Cloud Native Architect, 01/08/2023

Łańcuch dostaw oprogramowania to „proces dostarczania produktu do klienta” w domenie IT, odnosi się do procesu projektowania, budowania, dostarczania i utrzymania.

Bezpieczeństwo łańcucha dostaw oprogramowania jest nie tylko ważnym, ale wręcz kluczowym aspektem współczesnego świata IT. W miarę jak technologia ewoluuje, coraz większa liczba organizacji i przedsiębiorstw zależy od oprogramowania, które jest dostarczane przez różnorodne źródła, w tym zewnętrznych dostawców, zespoły zlokalizowane na całym świecie oraz zasoby open-source. Taka różnorodność i globalna natura procesu tworzenia oprogramowania stwarzają wiele możliwości dla potencjalnych zagrożeń i ataków cybernetycznych.

Na zagadnienie bezpieczeństwa łańcucha dostaw świat IT zwrócił olbrzymią uwagę po głośnym ataku na SolarWinds (zwanym Sunburst). Był to jeden z najpoważniejszych incydentów cybernetycznych, a miało to miejsce w grudniu 2020 roku.

Atak rozpoczął się poprzez naruszenie infrastruktury dostawcy oprogramowania SolarWinds, by wstrzyknąć złośliwy kod do popularnego oprogramowania SolarWinds Orion, które odpowiedzialne jest monitorowanie i zarządzanie sieciami komputerowymi. Był to zaawansowany i złożony atak, który spowodował naruszenie bezpieczeństwa wielu ważnych instytucji, w tym rządów, firm i organizacji na całym świecie. Zainfekowana wersja oprogramowania została zainstalowana u ponad 18000 klientów.

Niezabezpieczenie łańcucha dostaw oprogramowania może więc prowadzić do katastrofalnych konsekwencji, takich jak wycieki danych, naruszenie prywatności użytkowników, unieruchomienie systemów krytycznych oraz negatywny wpływ na reputację firmy. Dlatego też rozwijanie i stosowanie najlepszych praktyk w zakresie bezpieczeństwa stało się niezbędnym elementem strategii biznesowych opartych na technologii.

Niniejszy artykuł poświęcony będzie przedstawieniu kluczowych praktyk w zakresie bezpieczeństwa łańcucha dostaw oprogramowania, które pozwalają organizacjom minimalizować ryzyko wystąpienia luk w zabezpieczeniach i zagrożeń związanych z dostawą oprogramowania. Omówimy różne aspekty bezpieczeństwa łańcucha dostawy oprogramowania, począwszy od zabezpieczenia kodów źródłowych, aż po zabezpieczenie procesów wdrożeń.
Praktyki w zakresie bezpieczeństwa łańcucha dostaw oprogramowania przedstawię w podziale na 5 etapów.

emagine-blog-supply-chain-middle_1

Zabezpieczenie kodu źrodłowego

 

Podstawą każdego łańcucha dostaw oprogramowania jest jego kod źródłowy. Repozytorium kodu należy traktować jako standardowy system produkcyjny i zabezpieczać w ten sam sposób, uwzględniając zasadę najmniejszych uprawnień oraz rozdział obowiązków.

Rekomendowane praktyki:

  1. Włącz MFA w celu uzyskania dostępu do systemu SCM (Source Code Managment) - uwierzytelnianie wieloskładnikowe (MFA) powinno być wymagane i egzekwowane.
  2. Użyj kluczy SSH, aby zapewnić programistom dostęp do repozytoriów kodu źródłowego - zamiast polegać na poświadczeniach login/hasło, które są podatne na typowe techniki hakerskie, takie jak ataki siłowe, zgadywanie haseł, zaleca się używanie kluczy SSH lub certyfikatów SSH. Jeśli nie jest to możliwe, to jako alternatywa wybierz często zmieniany token dostępowy.
  3. Wymagaj podpisanych commitów (signed commits) - podpisywanie kodu źródłowego (commit i tag) zapewnia integralność, niezaprzeczalność kodu, a także audytowalność. Najpopularniejszymi mechanizmami podpisywania są mechanizmy oparte na kluczu GPG, chociaż do tego celu wykorzystywane są również certyfikaty S/MIME.
  4. Włącz lub zaimplementuj mechanizm skanujący zmiany -  oraz blokujący możliwość zapisania w repozytorium kodu haseł, certyfikatów, kluczy, tokenów.
  5. Rozdziel odpowiedzialności i obowiązki pomiędzy rozłączne zespoły -  odpowiedzialne za modyfikacje kodu źródłowego i administratorów, którzy odpowiedzialni są za konfiguracje, walidacje i polityki nałożone na repozytorium kodu źródłowego.
  6. Wymuszaj wzajemny przegląd zmian kodu (Code Review) - zanim zmiany zostaną scalone (Pull Request, Merge Request). Autor (autorzy) zmian nie mogą być jednocześnie osobą zatwierdzającą zmianę (four-eyes principle).
  7. Regularnie rób kopie zapasowe – wykonuj kopie zapasowe kodu, przechowuj je w bezpiecznym miejscu. Kopia zapasowa może być używana przez narzędzia weryfikacyjne do weryfikacji integralności repozytorium.

 

Niezabezpieczenie łańcucha dostaw oprogramowania może więc prowadzić do katastrofalnych konsekwencji, takich jak wycieki danych, naruszenie prywatności użytkowników, unieruchomienie systemów krytycznych oraz negatywny wpływ na reputację firmy.

 


Zabezpieczanie zależności

 

Zależności od zewnętrznych bibliotek są nieodłącznym elementem procesu budowania oprogramowania. Jednak wiążą się także z pewnymi wyzwaniami, takimi jak zarządzanie wersjami bibliotek, zapewnienie, że biblioteki są bezpieczne i aktualne, oraz identyfikowanie i rozwiązywanie konfliktów między różnymi bibliotekami.

Rekomendowane praktyki:

  1. Weryfikuj źródło zewnętrznych bibliotek - przed użyciem zewnętrznej biblioteki należy zweryfikować jej autentyczność i pochodzenie. Najlepiej pobierać biblioteki z oficjalnych źródeł, takich jak oficjalne strony internetowe, oficjalne repozytoria lub inne znane kanały dystrybucji. Dobrą praktyką jest kopiowanie zależności to bezpiecznego, chronionego prywatnego repozytorium.
  2. Weryfikuj integralność - upewnij się, że pobrane biblioteki nie zostały zmodyfikowane w trakcie transportu lub pobierania. Weryfikacja sumy kontrolnej (checksum) może pomóc w upewnieniu się, że pobrana biblioteka jest identyczna z oryginalnym plikiem.
  3. Weryfikuj podatności - przed użyciem zewnętrznej biblioteki warto przeprowadzić analizę potencjalnych podatności, które mogą występować w danej wersji biblioteki. Istnieją specjalistyczne narzędzia do automatycznego skanowania bibliotek pod kątem znanych podatności, takie jak narzędzia SAST (Static Application Security Testing), czy OWASP Dependency-Track.
  4. Monitoruj podatności - warto śledzić aktualne informacje o bezpieczeństwie dotyczące używanych bibliotek, takie jak powiadomienia o wykrytych podatnościach i dostępność poprawek. Dzięki temu można szybko zareagować na ewentualne zagrożenia i dokonać aktualizacji.
  5. Weryfikuj licencje – należy pamiętać nie tylko o bezpieczeństwie. Istotnym aspektem, jest także aspekt prawny. Oprogramowanie często korzysta z bibliotek open-source lub komercyjnych, które są dostępne na różnych licencjach. Należy skrupulatnie weryfikować licencje tych bibliotek lub innych zależności.
emagine-blog-supply-chain-middle_2

Zabezpieczanie potoków kompilacji

 

Zabezpieczenie procesów kompilacji i budowy oprogramowania jest zasadniczym elementem zapewnienia bezpieczeństwa i integralności docelowego oprogramowania, ponieważ na tym etapie oprogramowanie jest kompilowane czy budowane z kodu źródłowego i zewnętrznych zależności. Poprzez błędną i niezabezpieczoną konfiguracje cały trud związany z zabezpieczeniem kodu źródłowego i zewnętrznych zależności może zostać zmarnowany.

Rekomendowane praktyki:

  1. Zabezpiecz infrastrukturę - infrastruktura wykorzystywana do kompilacji i budowy powinna być zabezpieczone w ten sam sposób jak produkcyjna infrastruktura. Reżim środowiska produkcyjnego zapewni nam odporność na nieautoryzowane zmiany infrastruktury (four-eyes principle) czy konfiguracji, a również objęcie monitoringiem (SIEM), procesem aktualizacji i także skanowania podatności.
  2. Minimalizuj współdzielenie infrastruktury - współdzielone środowisko infrastrukturalne (np. maszyny wirtualne) może skutkować tym, że podatności w jednej technologii mogą zostać wykorzystane, by skompromitować proces kompilacji czy budowy innego oprogramowania. Najlepszą praktyką jest wykorzystywanie wcześniej przygotowanych zabezpieczonych obrazów kontenerowych do jednokrotnego uruchomienia procesu i kasowania po zakończeniu. Obrazy powinny zawierać tylko niezbędne narzędzia i pliki binarne wymagane przez proces, za który są odpowiedzialne, jak również najwęższy zakres uprawnień i dostępów sieciowych.
  3. Przechowuj konfiguracje potoku jako kod - konfiguracja powinna być zaimplementowana jako kod i traktowana jako niezmienna ("pipeline as a code). Należy zastosować te same praktyki, które mamy powyżej dla kodu źródłowego.
  4. Uwzględnij testy i bramy jakościowe - dodawaj automatyczną ocenę jakości oprogramowania na różnych etapach potoku. Bramy jakościowe mogą być konfigurowane i dostosowywane do specyficznych potrzeb projektu oraz wymagań organizacji.
  5. Podpisuj wynikowe i pośrednie artefakty – w celu zapewnienia integralności, powtarzalności procesu i artefaktów wymaga podpisania każdego pojedynczego kroku w procesie, dzięki temu zestaw podpisów jest zawarty w ostatecznym pakiecie artefaktów, zapewniając integralność całego artefaktu i powiązanych z nim metadanych.

 

Weryfikuj licencje – należy pamiętać nie tylko o bezpieczeństwie. Istotnym aspektem, jest także aspekt prawny.

 


 

Zabezpieczanie artefaktów

 

Priorytetem dla każdego zespołu deweloperskiego jest dostarczenie wysokiej jakości i bezpiecznego oprogramowania do środowiska produkcyjnego. W toku pracy nad oprogramowaniem tworzone są różne artefakty, tak więc ważnym elementem jest zabezpieczanie tych artefaktów wynikowych pochodzących z poprzednich kroków procesu budowy oprogramowania. Dzięki temu zapewniamy integralność, bezpieczeństwo oraz niezawodność finalnej wersji oprogramowania, która trafia do produkcji. To z kolei gwarantuje, że nasze produkty są gotowe do pracy w realnym środowisku i spełniają najwyższe standardy jakości i bezpieczeństwa.

Rekomendowane praktyki:

  1. Weryfikuj podpisy artefaktów - weryfikacja podpisów artefaktów powinna być w momencie dodawania artefaktu do repozytorium.
  2. Ogranicz dostępy - ogranicz dostęp do repozytorium tylko do osób, które go potrzebują. Wykorzystaj uwierzytelnianie oparte na silnych hasłach, kluczach SSH lub certyfikatach.
  3. Segreguj odpowiedzialności - (ang. Separation of Duties) rozdziel odpowiedzialności za repozytorium artefaktów, aby uniknąć konfliktu interesów, nadużyć i ograniczyć ryzyko potencjalnych zagrożeń. Kluczowe jest również regularne monitorowanie i przeglądanie przydzielonych uprawnień.
  4. Regularnie rób kopie zapasowe – wykonuj kopie zapasowe repozytorium artefaktów i przechowuj je w bezpiecznym miejscu. Sprawdź, czy procedury odzyskiwania danych są poprawne.
  5. Audytuj dostęp - monitoruj i rejestruj próby dostępu do repozytorium artefaktów. Przeglądaj logi w celu identyfikacji podejrzanych aktywności i prób nieautoryzowanego dostępu, w szczególności na operacje modyfikacji poza automatyzowanym procesem.

 

Zabezpieczanie potoku wdrożeń

 

Posiadając bezpieczne źródło poprawnych artefaktów (co oznacza, że przechowujemy zaufane i zweryfikowane oprogramowanie), należy wypracować bezpieczny potok wdrożeniowy artefaktów na różne środowiska, w tym również na środowiska produkcyjne. Potok wdrożeniowy powinien być zaprojektowany w sposób, który umożliwia automatyczne i kontrolowane wdrażanie artefaktów, z zachowaniem najwyższych standardów bezpieczeństwa.

Rekomendowane praktyki:

  1. Segreguj środowiska - zastosuj segregację środowisk, aby środowiska nieprodukcyjne i produkcja były oddzielone od siebie. Ogranicz dostęp do produkcji tylko dla upoważnionych osób, co zmniejszy ryzyko wprowadzenia błędów do środowiska produkcyjnego.
  2. Segreguj odpowiedzialności - podobnie jak w poprzednich krokach. Osoby odpowiedzialne za wdrażanie oprogramowania w środowisko produkcyjne powinny być niezależne od osób odpowiedzialnych za rozwijanie i testowanie oprogramowania.
  3. Automatyzuj - użyj narzędzi do automatycznego wdrażania oprogramowania z tylko zaufanego źródła artefaktów i weryfikuj integralność artefaktów poprzez walidacje podpisów.
  4. Monitoruj i loguj – monitoruj proces wdrożeń i loguj w celach informacyjnych i audytowych.

 

Mateusz-Pruchniak-emagine

Mateusz Pruchniak

Software Architect, Konsultant emagine
Absolwent Politechniki Warszawskiej. Czynny kontrybutor w CNCF. W branży IT od 2008 r. Pracował m.in. dla marek AXA, LuxMed i mBank. Z emagine związany od 2017 r. Realizuje głównie projekty dla skandynawskich klientów firmy.

Chcesz wiedzieć więcej?

Pomożemy Ci odnieść sukces w roli niezależnego konsultanta IT.

Blog

Więcej wpisów na blogu

left-arrow
right-arrow

Grafowa baza danych rewolucjonizuje zarządzanie informacjami
Expert stories
Webinar

Grafowa baza danych rewolucjonizuje zarządzanie informacjami – odpal zapis webinaru

Już jest! Zapis webinaru pt. Grafowa baza danych rewolucjonizuje zarządzanie informacjami… czyli o Neo4j z perspektywy front-endowca.

Expert stories

Crunch w IT – czy wiesz, jak mu zapobiec?

Temat crunchu pojawia się zwykle w kontekście branży, która tworzy gry komputerowe. Problem jednak nie dotyczy tylko tego sektora rynku. Crunch zdarza się wszędzie. Są jednak sposoby, aby mu zapobiec.

Expert stories

Idealna współpraca testera z programistą – czy to w ogóle możliwe?

W idealnym zespole programistycznym feedback od klienta przekłada się na świetne wymagania. Są one następnie zamieniane na dokładnie opisane zadania, w których jest wszystko ,co niezbędne do wykonania i testowania aplikacji. W rzeczywistości jednak taka sytuacja nigdy nie występuje. Jak to zmienić?

Wszystko o pracy testera oprogramowania - odpal zapis webinaru
Expert stories
Webinar

Wszystko o pracy testera oprogramowania – odpal zapis webinaru

„5 najważniejszych lekcji, które wyniosłem w ciągu 5 lat testowania oprogramowania” … czyli o ewolucji tego obszaru IT, umiejętnościach testera oraz efektywności w zawodzie opowiada konsultant emagine – Piotr Tuński.

Expert stories

Różne podejścia do generowania kodu front-end – czy znasz je wszystkie?

Jak pisałem w poprzednim artykule, kod front-endowy jest w pewnej mierze powtarzalny. Szczególnie dużo powtarzalności jest na granicy back-endu i front-endu. Ponieważ obiekty z bazy są przesyłane z back-endu, frontend odbiera je i typuje (jeśli używamy np. TS) w celu dalszego przetwarzania. Co dzieje się dalej?

Expert stories

AI zbuduje aplikację webową? To możliwe!

Od jakiegoś czasu dysponujemy narzędziem, które jest w stanie przezwyciężyć początkowe trudności w zbudowaniu prototypu aplikacji webowej. Jest nim oczywiście Sztuczna Inteligencja, która – w odpowiednich rękach – może pomóc rozwiązać wiele problemów deweloperów.

Expert stories

Nx dla Angular jako niezawodne narzędzie upraszczające pracę przy projektach IT

Nx to narzędzie, które upraszcza budowanie projektów typu monorepo. W tym artykulę skupię się na jego głównych zastosowaniach w aplikacjach używających Angulara. Narzędzie pozwala także na współpracę z wieloma innymi technologiami, jak React czy Node.

Expert stories

7 grzechów głównych w zapewnianiu jakości: błędy, których powinien unikać każdy tester!

Zagłębimy się w mroczne zakamarki branży testowania oprogramowania. Odkryjemy siedem grzechów głównych, które mogą zaszkodzić dążeniu do doskonałej jakości produktu. Poznaj, jakie pułapki czyhają na testerów i jak unikać tych błędów, prowadząc swój zespół ku ścieżce doskonałości w testowaniu.

Expert stories

Zarządzanie finansami w chmurze, czyli wszystko o FinOps

W miarę jak organizacje coraz bardziej polegają na chmurze obliczeniowej, pojawia się potrzeba skutecznego zarządzania kosztami i optymalizacji wydatków związanych z usługami chmurowymi. FinOps to obszar działalności, który w znacznym stopniu zmienia sposób tego zarządzania. Chcesz wiedzieć więcej?

Dyrektywa NIS2 dot. cyberbezpieczeństwa
Expert stories
Webinar

Już jest – zapis webinaru “Dyrektywa NIS2 dot. cyberbezpieczeństwa”

W obliczu coraz bardziej skomplikowanych zagrożeń związanych z cyberprzestrzenią, bezwzględnym priorytetem dla organizacji na całym świecie staje się zabezpieczenie danych oraz infrastruktury online. Nasz ekspert Grzegorz Powichrowski wesprze Was w ocenie przygotowania firm do spełnienia wymogów Dyrektywy NIS2 w dziedzinie cyberbezpieczeństwa.

Expert stories

Dla specjalistów IT: W jaki sposób odciążyć umysł w pracy

Od kilku lat interesuję się wydajnością pracy i w tym artykule chciałbym przedstawić najważniejsze metody, które wg mnie pozwolą pracować łatwiej i wydajniej w środowisku IT.

Expert stories

Microsoft Dev Box – nowoczesna maszyna robocza

Microsoft Dev Box to zwirtualizowane rozwiązanie, które umożliwia inżynierom IT szybkie uruchamianie samoobsługowych stacji roboczych wstępnie skonfigurowanych do ich zadań, przy jednoczesnym zachowaniu scentralizowanego zarządzania w celu maksymalizacji bezpieczeństwa i zgodności ze standardami w organizacji. Czy już je znasz?

Expert stories

Wymagania niefunkcjonalne w procesie tworzenia aplikacji

Podczas rozwijania aplikacji webowej zwykle odkrywamy szereg specyficznych funkcjonalności, wedle których ma ona działać. Niektóre z nich mogą wydawać się oczywiste dla części członków zespołu IT pracującego nad rozwiązaniem, jednak inni wolą mieć je spisane w szczegółowej formie, aby móc je wszystkie zaimplementować lub testować.

Expert stories

Najlepsze praktyki w zakresie bezpieczeństwa łańcucha dostaw oprogramowania

Łańcuch dostaw oprogramowania to „proces dostarczania produktu do klienta” w domenie IT, odnosi się do procesu projektowania, budowania, dostarczania i utrzymania. Jego bezpieczeństwo jest nie tylko ważnym, ale wręcz kluczowym aspektem współczesnego świata IT.

AI: Nowa fala przyszłości"
Expert stories
Webinar

Obejrzyj zapis webinaru “AI: Nowa fala przyszłości”

Szansa cywilizacyjna, czy też zagrożenie? Algorytmy sztucznej inteligencji od wielu lat stanowią jeden z centralnych punktów dyskusji o przyszłości technologii. Rozwiązania oparte na AI, niezależnie od poziomu organizacji na którym zostaną wykorzystane, pomogą stworzyć nowatorskie modele biznesowe. Sprawdźcie zatem, czy Wasza organizacja jest do tego dobrze przygotowana. Czego się spodziewać? Jak wykorzystać AI, aby tworzyć przewagę konkurencyjną na rynku?

Expert stories

Snapshot testing w aplikacjach front-endowych – czy wiesz już wszystko?

Jednym z największych wyzwań podczas tworzenia aplikacji front-endowych jest unikanie wprowadzania niechcianych zmian. Testowanie logiki biznesowej jest możliwe za pomocą testów jednostkowych, jednak nie sprawdzają one zwykle całej struktury HTML. Rozwiązaniem problemu regresji w plikach HTML może być snapshot testing.

Expert stories

Przyszłość sztucznej inteligencji – jakie wyzwania i możliwości stoją przed światem IT?

Przyszłość sztucznej inteligencji (SI) niesie ze sobą zarówno wyzwania, jak i ogromne możliwości rewolucji technologicznej. Zewsząd słyszymy, że SI przejmie we wszystkim kontrolę i my jako ludzie będziemy już mniej potrzebni lub wręcz zbędni – czy aby na pewno?

Expert stories

Efektywne sposoby na pracę z back-endem

Aby tworzyć rozwiązania front-endowe, zwykle pobieramy dane z aplikacji back-endowej. W tym artykule chciałbym przedstawić, w jaki sposób możemy udoskonalić i przyspieszyć tę pracę. Podstawowe czynniki, które wziąłem pod uwagę podczas analizy, to elastyczność pracy oraz to, czy programista używający API, może edytować dane zwracane przez back-end.

Expert stories

Neo4j: Grafowa baza danych rewolucjonizuje zarządzanie informacjami

Wraz z gwałtownym wzrostem ilości danych na znaczeniu zyskują nowoczesne rozwiązania bazodanowe. Jednym z najciekawszych i najbardziej innowacyjnych rozwiązań jest neo4j – grafowa baza danych, która rewolucjonizuje sposób przechowywania i analizy informacji. W tym artykule przyjrzymy się bliżej temu fascynującemu narzędziu, poznamy jego zalety, funkcje oraz praktyczne zastosowanie.

Expert stories

Jak AI wspiera pracę Front-end developerów – praktyczny poradnik

Z perspektywy front-endowca w ostatnim roku zauważyłem jak bardzo zastosowanie nowoczesnych narzędzi pomaga w szybszym tworzeniu aplikacji i sprawia, że pozbawione są one błędów. W artykule opisuję zastosowanie ChatGPT, Github Copilot oraz Github Copilot Chat, określając je skrótowo mianem AI.

Expert stories

Wypalenie zawodowe specjalistów IT – jak je przewidzieć i jak mu zapobiec?

Na pewno każdy z nas chociaż raz czuł, że w jego pracy coś idzie inaczej, niż by chciał. Dochodzi to tego zmęczenie, stres, spadek motywacji i nagle cały zawodowy świat się wali – zaczynamy myśleć, czy to, co robimy ma sens, czemu dotychczasowe działania nie przynoszą pożądanych efektów. Innymi słowy, wpadamy w rozmyślania nad tym, jak jest ciężko. Najczęściej to tylko zmęczenie, brak odpoczynku, stres, natomiast kiedy warto zadbać o siebie bardziej i przekonać się, czy to nie jest wypalenie zawodowe?

Expert stories

Jak skutecznie zbudować i utrzymać relację z kandydatem podczas procesu rekrutacyjnego w IT

Branża IT od dawna  jest  jedną z najbardziej dynamicznie rozwijających się dziedzin rynku, niezależnie od szerokości geograficznej. Tym bardziej, znalezienie odpowiedniego kandydata do realizacji projektów IT, który spełniałby wszystkie wymagania zarówno pod względem wiedzy i umiejętności technicznych, jak i kompetencji miękkich nigdy nie było czymś prostym.

Expert stories

Poznaj kompetencje miękkie przyszłości w obszarze sprzedaży

Inwestycja w kompetencje miękkie może szczególnie opłacić się w zawodach przyszłości. W przeciwieństwie do twardych, kapitałem nie jest wykształcenie czy fachowa wiedza. Soft skills pozwolą tym, którzy je wdrożą i oswoją, z lekkością adaptować się do zmian jakie czekają rynek pracy.

Paweł Pancerz
Expert stories

Rozwój Chmury – co czeka nas w najbliższej przyszłości?

W ciągu ostatnich lat rozwój technologii chmurowych zmienił się bardzo dynamicznie. Wymogi rynkowe oraz coraz większa świadomość w zakresie potencjału technologii chmurowych sprawiają, że obawy przed tą technologią IT są coraz mniejsze.

Marcin Kosiński
Expert stories

Efektywna praca zdalna w innej strefie czasowej

Zdalna praca w innej strefie czasowej  jest możliwa, gdy w zespole panuje odpowiednia dyscyplina.

ichał Mrozowski, Starszy Analityk Biznesowy, Scrum Master
Expert stories

10 cech dobrego Scrum Mastera

Czy każdy nadaje się na Scrum Mastera? Jeśli zespół poszukuje Scrum Mastera, który wniesie wartość dodaną i będzie dla niego wsparciem – a nie tylko prowadzącym ceremonie – powinien szukać osoby posiadającej konkretne cechy.