Bezpieczeństwo aplikacji

Najważniejsze elementy, które powinieneś wziąć pod uwagę, by wdrożyć bezpieczny software w Twojej firmie.

 

Właśnie podchodzisz do realizacji ważnego projektu IT. Chcesz, aby wdrożone rozwiązanie software’owe działało bez zarzutu, a przechowywane w nim dane były bezpieczne. Na co powinieneś zwrócić uwagę, aby realizacja tego projektu zakończyła się sukcesem?

Na początku dokładnie zweryfikuj kompetencje partnera, któremu planujesz powierzyć tworzenie narzędzia. Jego wiedza i doświadczenie w zakresie zapewnienia bezpieczeństwa powinny być potwierdzone portfolio, referencjami i zewnętrznymi audytami.

Sprawdź też narzędzia, z których partner korzysta do tworzenia oprogramowania. Muszą być aktualne i systematycznie aktualizowane. Dlaczego to takie ważne? Dobór aktualnych narzędzi w znacznym stopniu chroni aplikację przez zagrożeniami, które ewoluują i wykorzystują pojawiające się z czasem podatności.

3 etapy tworzenia bezpiecznego rozwiązania

Ważne, by zarówno Twój partner, jak i Ty myślał o bezpieczeństwie na każdym etapie tworzenia oprogramowania. Już zbierając wymagania trzeba zaplanować, w jaki sposób rozwiązanie będzie wykorzystywane, a także zdefiniować ryzyka i zawczasu na nie odpowiedzieć. Wytwarzanie oprogramowania jest procesem, który przebiega w kilku etapach – każda firma może mieć swój własny proces, chodzi tutaj o ogólną wizję:

  1. Analiza i zbieranie wymagań

Etap rozumiany jako szereg spotkań organizowanych w celu zebrania przez analityków szczegółowych wymagań do narzędzia. Na tym etapie powstają niezbędne dokumenty do jego stworzenia np. dokumentacja projektowa wraz z prototypami czy mapa procesów, które odzwierciedlają 1:1 docelowe rozwiązanie. To tutaj definiujemy m.in:

wymagania funkcjonalne i pozafunkcjonalne, czyli co i jak ma działać,

potencjalne ryzyka i sposoby zapobiegania ich wystąpieniu np. ryzyko utraty danych,

role użytkowników, sposoby ich uwierzytelnienia i autoryzacji oraz związane z nimi uprawnienia,

wydajność infrastruktury serwerowej, czyli jaki serwer wybrać, żeby obsłużyć przewidywany ruch.

2.  Programowanie i testy bezpieczeństwa

W oparciu o przygotowaną wcześniej dokumentację projektową i bieżący feedback Twój partner tworzy narzędzie. Na tym etapie zespół testerów przygotowuje nawet kilkaset scenariuszy testowych, uwzględniających liczne sposoby korzystania z narzędzia weryfikując działanie i bezpieczeństwo aplikacji na różnych poziomach za pośrednictwem m.in. testów: regresyjnych, jednostkowych, akceptacyjnych. Dobrze, by zespół Twojego partnera stosował system kontroli wersji np. GIT, aby móc w łatwy sposób zarządzać zmianami w kodzie np. przez wycofanie zmian wprowadzających błąd do oprogramowania.

3. Wdrożenie

Po serii testów rozwiązanie zostaje wdrożone. Sam proces deploymentu również powinien być odpowiednio zabezpieczony – ma w końcu gwarantować ciągłość działania systemu produkcyjnego oraz integralność danych. Jako że w większości przypadków dane produkcyjne są newralgiczne, Twój partner na środowiskach testowych powinien posługiwać się jedynie mockupami danych. Dzięki temu dostęp do poufnych informacji będzie ograniczony.

Co po wdrożeniu?

Bezpieczeństwo jest procesem ciągłym i nie kończy się na wdrożeniu rozwiązania. Gdy Twoje narzędzie ujrzy światło dzienne, zainwestuj w jego utrzymanie. Bieżący monitoring pozwoli Twojemu partnerowi wykryć błędy i zagrożenia jeszcze przed ich zgłoszeniem przez Ciebie.

Narzędzie trzeba też stale aktualizować, tworzyć kopie danych i rozwijać. Nieaktualny kod i brak kopii bezpieczeństwa jest jak zaproszenie do ataku. W każdej godzinie Twoje rozwiązanie będzie atakowane dziesiątki, setki, tysiące, a nawet dzięsiątki tysięcy razy. A gdy utracisz dane… to już za późno, by myśleć o bezpieczeństwie. Myśl o nim od samego początku.