Wszystkie procesy związane z bezpiecznym cyklem rozwoju oprogramowania oparte zostały na modelu DevOps [klienci] lub SAMM [Yetiforce], który znacząco zmniejsza ryzyka związane z częstym wydawaniem wersji oraz wdrażaniem wielu systemów YetiForce w tym samym czasie. Każde wdrożenie, zmiana lub rozbudowa YetiForce przechodzi przez podstawowe i bezpieczne etapy tj.:
Dodatkowo korzystamy z wielu narzędzi, które pozwalają automatyzować zadania na każdym etapie cyklu rozwoju oprogramowania. Do największych platform wspomagających mozna zaliczyć m.in. GitHub, na którym oparty został projekt oraz szereg narzędzi do automatyzacji.
Do najważniejszych frameworków, którym posługujemy się podczas tworzenia bezpiecznego cyklu, można zaliczyć: Software Assurance Maturity Model (SAMM) [https://www.opensamm.org/]. Uproszczony proces związany z rowojem oprogramowania, jest zblizony do modelu opisanego poniżej. W praktyce model ten może ulec rozbudowie lub uproszczeniu w momentach w których to odbiorca systemu zdecyduje o zmianie modelu tworzenia oprogramowania.
Główny system powstaje przy zachowaniu najwyższych standardów opisanych w SAMM jednakże praca z klientem często wymaga zwinnej pracy w oparciu o DevOps.
YetiForce posiada na starcie ponad 80 funkcjonalności po stronie użytkownika oraz tysiące pól i zależności. System został tak zaprojektowany, aby wszystkie scenariusze użytkownika oraz mechanizmy, funkcjonalności i narzędzia były oparte o jeden centralny system zarządzania uprawnieniami i dostępem. Logika wdrożona po stronie użytkownika, jest taka sama na każdej warstwie systemu [np. API] a więc wszystkie polityki i reguły zostały scentralizowane. W praktyce oznacza to, że wszystkie formularze, pola a nawet zapytania za pomoca API mają ustalone te same centralne zasady bezpieczeństwa.
Wdrożone automatyczne skrypty wyszukujące podatności i niepoprawności w kodzie, potrafią automatycznie zweryfikować reguły i ograniczenia we wszystkich modułach [typu entity] w całym systemie.
Do najwazniejszych mechanizmów systemu, jest zbiór kilkunastu narzędzi, za pomocą których administrator ma pełną kontrolę nad tym do jakich danych, funkcjonalności, narzędzi i pól mają dostęp użytkownicy, ale również mogą w pełni konfigurować poziomy dostępu czy też sposób realizacji przepływu danych dla wszystkich uprawnionych [użytkownicy, super użytkownicy, użytkownicy zewnętrzni [np. API, Portal, Serwis WWW].
Inspektor uprawnień wbudowany w system, pozwala na weryfikacją uprawnień również od strony użytkownika, gdzie osoby będące wyżej w hierarchii organizacji mogą weryfikować poziom dostępu do danych osobom znajdującym się niżej w hierarchii organizacji. System nie posiada dokumentacji opisującej granice zaufania dla komponentów i ważnych przepływów danych, ponieważ jest to realizowane dla każdego klienta indywidualnie i za pomocą wbudowanych mechanizmów ogólnych konfigurowalne zgodnie z oczekiwaniami i wymaganiami biznesowymi.
Zachowanie wszystkich usług i użytkowników jest monitorowane na wielu warstwach systemu m.in.
System pozwala przeglądać nieprawidłowości, które następnie stają się podstawą do poprawiania mechanizmów bezpieczeństwa i weryfikują pierwotne założenia dla bezpieczeństwa. Za pomocą wbudowanych narzędzi, administrator ma pełną wiedzę i kontrolę nad tym co się dzieje i może w czasie rzeczywistym reagować na incydenty.
W przypadku naruszeń i incydentów na innych warstwach takich jak system operacyjny, aplikacje serwera www i baz danych, sprzęt, wizualizacja, to jest to monitorowane poza główną aplikacją YetiForce. System YetiForce można tak rozbudować, aby stał się centralnym systemem do zbierania danych z innych systemów tj. SIEM czy DLP.
Oprócz scentralizowanych mechanizmów kontroli błędów, naruszeń i bezpieczeństwa dla administratora, w systemie został zaimplementowany zaawansowany mechanizm debugowania, który pozwala wyłapać wszystkie błędy aplikacji [tak samo wszystkie narzędzia zalecane w stosie technologicznym przez producenta, mają taką możliwość].
Dla usług zewnętrznych, aplikacja posiada gotowe rozwiązania API Proxy, które ma wbudowane niezależne mechanizmy zbierania informacji o zapytaniach, błędach i naruszeniach, które zabezpieczają samą komunikację i mogą zablokowac usługę, która zachowuje się podejrzanie.
Wieloetapowe mechanizmy kontroli i weryfikacji, pozwalają na wyłapywanie nieprawidłowości na każdej warstwie komunikacji, co znacząco zwiększa bezpieczeństwo i pozwala monitorować bezpieczeństwo i nieprawidłowości niezależnie przez różne zespoły w organizacji.
Każdy etap wytawarzania kodu przez zespoły programistyczne i zespoły testerów jest ściśle zaprojektowany i realizowany zgodnie z politykami opisanymi w dokumencie OpenSAAM. Przyjęto ustalenia wdrożone w organizacji producenta [które obowiązują wszystkich pracowników pracujących w cyklu tworzenia oprogramowania]:
Na każdej warstwie aplikacji, mamy możliwość kontrolowania dostępu do modułów, pól, narzędzi, widoków oraz danych. Dla systemu operacyjnego, serwera WWW oraz baz danych są stosowane standardy normujące bezpieczny sposób konfiguracji tych usług:
W praktyce, nadajemy zawsze najniższy możliwy poziom uprawnień, dla każdej aplikacji, usługi oraz użytkownika.
Poziom uprawnień każdego komponentu jest sterowane przez administratora systemu tak samo jak dla każdego użytkownika, w praktyce oznacza to, że mamy nieograniczone możliwości sterowania dostęp do funkcjonalności, pól, operacji czy też danych na jakich pracuje komponent. Dostęp jest scentralizowany i dla wszystkich mechanizmów działa zawsze tak samo.
Wszystkie mechanizmy i usługi bazują na jednym scentralizowanym mechanizmie autoryzacji [można też zintegrować się z LDAP], który był audytowany przez niezależnych eksportów bezpieczeństwa a dodatkowo można go wzmianać za pomocą 2FA. Każda operacja wykonywana przez użytkownika, aplikację lub komponent jest monitorowana i logowana [zgodnie z poziomiem konfiguracji logowania]. Dodatkowo dla komponentów utworzono mechanizmy API Proxy, mające dodatkowe zabezpieczenia i dodatkową warstwę komunikacyjną.
Aplikacja pozwala na konfigurowanie poziomu zabezpieczeń poszczególnych mechanizmów z możliwością ich rozbudowy lub rozszerzenia o niestandardowe rozwiązania szyfrujące. Nawet jeżeli aplikacja posiada ograniczenia, w bardzo łatwy sposób na etapie wdrożenia można dowolnie zwiększyć oczekiwane parametry i ustawić poziom zabezpieczeń adekwatny do danych, które są w systemie przetwarzane, bez żadnych ograniczeń, których nie można w łatwy sposób zmodyfikować.