Bezpieczeństwo aplikacji i systemu operacyjnego
Bezpieczeństwo aplikacyjne i systemu operacyjnego jest bardzo złożonym obszarem, który również powiązany jest z ochroną wbudowaną w resztę infrastruktury IT. Wynika to z tego, że wiele ataków na tą warstwę może zostać powstrzymane przez urządzenia pośredniczące z m.in. funkcją WAF (Web Application Firewall), IPS (Intrusion Prevention System) czy Firewall. Niemniej, nie można opierać bezpieczeństwa tylko na nich. Bezpieczeństwo, a w zasadzie to różne rozwiązania, mechanizmy i procedury ochronne dla systemu operacyjnego oraz jego aplikacji są równie ważne.
Myśląc o ochronie wbudowanej w infrastrukturę, trzeba dziś także pamiętać o sieciach SDN (Software-Defined Network) wewnątrz platform chmurowych, platform do wirtualizacji czy platform kontenerowych, jak Red Hat OpenShift Platform czy Kubernetes. Dostępne tam reguły filtrowania często powiązane są z samą definicją aplikacji. Sprawia to, że zaciera się granica odpowiedzialności inżyniera sieciowego i administratora systemów. A w zasadzie, w ramach idei DevSecOps, to powinni oni wszyscy razem, łącznie z deweloperami, wspólnie kooperować nad ciągłą poprawą bezpieczeństwa aplikacji i jej składowych.
Na pewno kluczowe jest zapewnienie odpowiedniej izolacji pomiędzy poszczególnymi komponentami systemu i jego aplikacjami. Wynika to zarówno z faktu działania w ramach jednego systemu wielu aplikacji, jak i podziału odpowiedzialności pomiędzy różnymi zespołami. Często mamy do czynienia z zespołem odpowiedzialnym za bezpieczeństwo systemów w ramach calej organizacji i wieloma zewnętrznymi zespołami odpowiedzialnymi za bezpieczeństwo ich własnych aplikacji, które to zostały stworzone na życzenie klienta. Wykorzystanie podatności w komponencie takiej aplikacji nie powinno doprowadzić do eskalacji uprawnień i naruszenia bezpieczeństwa systemu operacyjnego czy jego innych aplikacji. Dotyczy to także samego dostępu do plików czy danych poza obszarem wydzielonym dla takiej aplikacji. Te obszary często adresują już dostępne w systemie mechanizmy, jak SELinux czy SCC (Security Context Constraints). Niemniej, należy pamiętać by były one dobrze skonfigurowane i zawsze aktywne.
Często, kiedy mamy do czynienia z aplikacjami tworzonymi "pod klienta", lokalny zespół IT zostaje pozbawiony możliwości samodzielnego implementowania łatek bezpieczeństwa. Ich tworzeniem musi zająć się Twórca aplikacji. To, czy do ich dalszej implementacji wystarczy lokalny zespół IT, najczęściej zależy od sposobu ich dostarczania. Aby zminimalizować ten obszar, warto rozważyć wykorzystanie warstwy middleware dostarczanej przez producenta systemu operacyjnego, tak by mogłobyć ono aktualizowane razem z systemem. Bezpieczeństwo aplikacji to także bezpieczeństwo jej danych. To z koleji powiązane jest zarówno z odpowiednio minimalnymi uprawnieniami do jej zasobów i komponentów, jak i wspieranymi przez Twórców aplikacji procedurami wykonywania kopii zapasowych jej danych. Kwestie te warto poruszyć jeszcze przed rozpoczęciem jej tworzenia.
W sam proces tworzenia aplikacji włączonych może zostać Static Application Security Testing (SAST), który polega na analizie kodu jeszcze w trakcie jego tworzenia pod kątem podatności i jakości, Software Composition Analysis (SCA) badający dodatkowe pakiety i komponenty dołączone do aplikacji pod kątem podatności i zgodności z licencjami oraz Interactive Application Security Testing (IAST) i Dynamic Application Security Testing (DAST), które zajmują się analizą działające aplikacje pod kątem wykorzystania podatności w trakcie jej uruchamiania. Jest to kolejny obszar, który warto poruszyć z dostawcą oprogramowania. Proces ten powinien być wykonywany cyklicznie w sposób zautomatyzowany. W ten sposób, kiedy pojawi się nowa podatność, odpowiedni zespół bezpieczeństwa będzie mógł zareagować. Nowoczesne platformy aplikacyjne, jak te oferowane przez nas, pozwalają ten cały proces tworzenia i sprawdzania aplikacji bardzo łatwo zautomatyzować.
Nie wolno zapomnieć też o zbieraniu danych audytowych oraz zgodność z różnymi normami bezpieczeństwa. Nawet, jeżeli nie ma dla nas wartości sam fakt bycia zgodnym z daną normą czy standardem, jak m.in. Payment Card Industry Data Security Standard (PCI-DSS), ISO 27001 Information Security Management Standard, U.S. Health Insurance Portability and Accountability Act (HIPAA) czy EU General Data Protection Regulation (GDPR), to często dostępne tam zalecenia są rozsądne i warto je zaimplementować. Odpowiednia platforma bezpieczeństwa może takie weryfikacje pod kątem zgodności z różnymi normami wykonać dla nas w dowolnym momencie i bez dodatkowych opłata. Jest to o tyle fajne, że gdy ktoś przez pomyłkę czy "na chwilę" zmieni konfigurację jakiegoś systemu lub jego usługi i zapomni przywrócić konfiguracji do stanu poprzedniego, to wyjdzie to w kolejnym audycie.
Kwestie bezpieczeństwa systemu operacyjnego działającego na sprzęcie fizycznym i maszynie wirtualnej są dość podobne. Sporo się zmienia, gdy mamy do czynienia z coraz to bardziej powszechną konteneryzacją. W świecie kontenerów bardzo ważne jest skanowanie pod kątem podatności wykorzystywanych w ramach organizacji obrazów, w tym aktualnie uruchomionych z nich kontenerów. Dotyczy to też wykrywania działajacych w nich aplikacji i różnych framework-ów. Skanowanie takie powinno również weryfikować udostępnione im zmienne środowiskowe oraz pliki z danymi poufnymi, a także konfigurację i uprawnienia.
Ciągłej analizie powinno podlegać także to co dzieje się w naszym środowisku, czyli to jakie procesy, w którym z systemów czy kontenerów działają lub to, gdzie nawiązują one połączenie. Uruchomienie nowego procesu w kontenerze czy pojawienie się dodatkowego ruchu pomiędzy systemami, które nigdy ze sobą nie rozmawiały powinno budzić naszą uwagę.
Niemniej, weryfikacja tego wszystkiego w złożonych i ciągle rozrastających się środowiskach aplikacyjnych nie jest łatwa. Dlatego polecamy gotowe rozwiązania, które wszystkie te funkcje posiadają już wbudowane.
Odpowiedzialność
Wszelkie prezentowane na naszej stronie treści i grafiki mają wyłącznie charakter poglądowy i nie stanowią oferty handlowej w rozumieniu art. 66 § 1 Kodeksu cywilnego oraz innych właściwych przepisów prawa. Zastrzegamy sobie prawo do wprowadzania zmian w dowolnym momencie i bez uprzedzenia lub następczego informowania o takich zmianach. Dokładamy starań, aby informacje publikowane na naszej stronie były zgodne ze stanem faktycznym i aktualne, nie gwarantuje jednak, że nie zawierają braków lub błędów. Nie ponosimy też żadnej odpowiedzialności za skutki powiązane z dostępnem do publikowanych przez nas informacji, w szczególności za wszelkie decyzje podejmowane na podstawie tych informacji.
Wykorzystane materiały
Grafiki wykorzystane na naszej stronie pochodzą z różnych źródeł. Część z nich została wykonana przez nas, a część pochodzi z zasobów dla Partnerów producentów z którymi współpracujemy oraz sklepów internetowych z gotowymi grafikami i zdjęciami.
Zapraszamy do kontaktu drogą mailową