Pobierz
najnowszy numer

Newsletter

Zapisz się do naszego Newslettera, aby otrzymywać informacje o nowościach z branży!

Jesteś tutaj

Bezpieczeństwo aplikacji biznesowych (cz. 2). Infrastruktura i oprogramowanie

Printer Friendly and PDF

lead.jpgW pierwszej części artykułu przedstawiono aspekty związane z bezpieczeństwem aplikacji biznesowych w odniesieniu do bezpieczeństwa sieci. Niniejsza część jest poświęcona bezpieczeństwu infrastruktury oraz oprogramowania – w tym bezpieczeństwu systemu operacyjnego i bazy danych, na której działają aplikacje, oraz wewnętrznym mechanizmom zabezpieczającym, osadzonym już w samych aplikacjach

Bezpieczeństwo infrastruktury

Bardzo ważnym zagadnieniem związanym z bezpieczeństwem infrastruktury, na której uruchomione są aplikacje biznesowe, jest ich wysoka dostępność (w skrócie HA – High Availability). Jest ona wymagana, aby zwiększyć dostępność aplikacji z punktu widzenia użytkownika końcowego. Wysoka dostępność aplikacji jest czymś więcej niż „dostępność” infrastruktury technicznej, ponieważ:

  • redukuje planowane przerwy, występujące np. podczas tworzenia kopii zapasowych, aktualizacji, wgrywania poprawek,
  • implementuje scenariusze odtwarzania awaryjnego, minimalizując skutki awarii,
  • podwyższa poziom SLA (ang. Service Level Agreement
  • umowa o poziomie świadczenia usługi).

Dzięki podwyższeniu dostępności można także minimalizować „nieplanowane przestoje”, które są wynikiem awarii sprzętowych, awarii aplikacji, błędów operatorskich, kataklizmów itp. zdarzeń. Aby dobrze zaplanować wysoką dostępność, należy zbadać wszystkie tak zwane pojedyncze punkty awarii (ang. Single Point of Failures – SPOF) i w odpowiedni sposób je zabezpieczyć.
Koszty przestoju nie są liniowe, rosną w czasie. Podczas długotrwałych przestojów koszty rosną progresywnie. Przykład: gdy proces SCM (ang. Supply Chain Management – zarządzanie łańcuchem dostaw) ma przestój dłuższy niż trzy godziny, cała produkcja staje, co znacząco podwyższa koszty prowadzenia działalności.

rys1.gif
Rys. 1. Rozkład kosztów przestoju w czasie

W zapobieganiu przestojom pomocne są:

  • zdublowanie komponentów (zabezpieczenie przed pojedynczymi punktami awarii),
  • centrum zapasowe (na przykład w technologii klastrowej),
  • narzędzia do zarządzania (odpowiednie oprogramowanie jest w stanie monitorować krytyczne komponenty i ostrzegać przed awarią),
  • zespół IT (doświadczony zespół IT jest w stanie sprawnie reagować i zapobiegać awariom),
  • planowanie zasobów (odpowiednie planowanie jest w stanie zabezpieczyć krytyczne zasoby),
  • gwarantowane SLA (odpowiednie umowy są w stanie gwarantować odpowiedni poziom usług i wsparcia w razie awarii),
  • proaktywne usługi.
tab1.gif
Tab. 1. Skala wysokiej dostępności
 
tab2.gif
Tab. 2. Możliwości eliminacji pojedynczych punktów awarii
 

Aby w pełni sprawnie realizować obsługę wysokiej dostępności, można korzystać z pomocy dostawców platformy sprzętowej, jak również systemu operacyjnego. Przykładami produktów, które to umożliwiają, mogą być:

  • Microsoft Cluster Service (MSCS),
  • HP Service Guard,
  • SUN Cluster,
  • Veritas Cluster Server,
  • ORACLE Failsafe, ORACLE RAC,
  • IBM HACMP.

Należy również pamiętać o podwyższeniu dostępności:

  • sprzętu wewnętrznego (zasilaczy, wentylatorów itp.),
  • rozwiązań składujących dane,
  • elementów sieciowych (i rozkładaniu ich obciążenia).

Rozwiązania HA są oferowane przez dostawców sprzętu i wymagają dodatkowych usług lub konsultacji.

Następujące kryteria determinują wybór rozwiązania HA:

  • stopień funkcjonalności HA (w szczególności SPOF) – czy wszystkie SPOF są zabezpieczone i wyeliminowane, jak dużo z nich pozostało?
  • implementacja – ile czasu zajmie wdrożenie rozwiązania HA?
  • wykrywanie „przełączenia” – jak oprogramowanie klastrowe wykryje, że należy przełączyć zasoby?
  • czas przełączenia – ile czasu potrzeba, aby po przełączeniu wszystkie zasoby powróciły?
  • liczba potrzebnych maszyn – ile serwerów (maszyn) potrzeba, aby zaimplementować rozwiązanie HA?
  • architektoniczna otwartość i rozwijalność – czy rozwiązanie HA jest rozwijalne i możliwe do wykorzystania w przyszłości?

Wysoka dostępność jest wynikiem współpracy dostawcy sprzętu, oprogramowania i klienta. Należy redukować pojedyncze punkty awarii poprzez stosowanie komponentów nadmiarowych, co prowadzi do minimalizacji przestojów. Wszystkie krytyczne komponenty (takie jak baza danych czy serwer aplikacyjny) powinny być zabezpieczone. Można obniżać planowane wyłączenia poprzez odpowiednie procedury. Innym aspektem bezpieczeństwa infrastruktury jest stworzenie odpowiedniego centrum tworzenia kopii zapasowych wszystkich komponentów programowych aplikacji biznesowej, od systemu operacyjnego do samej aplikacji.

Bezpieczeństwo systemu operacyjnego i bazodanowego

Bardzo ważny ze względu na bezpieczeństwo aplikacji biznesowej jest system operacyjny, w którym jest ona uruchomiona. Każdy system operacyjny posiada swoją specyfikę i powinno się go należycie zabezpieczyć i wzmocnić (OS hardening). Wzmacnianie systemu polega na eliminacji zbędnych usług wewnętrznych i sieciowych, zastosowaniu najnowszych poprawek i aktualizacji aplikacji, które w nim są uruchomione. Powinno się stosować zasadę: „co nie jest dozwolone, jest zabronione”.

Obecnie najczęściej używane są dwa typy systemów:

  • Windows Server,
  • Unix/Linux/BSD.

W systemach Windows należy zadbać przede wszystkim o:

  • użytkowników i ich uprawnienia,
  • uprawnienia do systemu plików,
  • dostęp z zewnątrz (konsola),
  • ochronę współdzielonych zasobów,
  • usługi katalogowe i domeny,
  • ochronę pamięci dzielonej,
  • ochronę antywirusową.

W systemach typu Unix należy zadbać o:

  • użytkowników i ich uprawnienia,
  • uprawnienia do systemu plików,
  • dostęp z zewnątrz (SSH) (konsola),
  • ochronę współdzielonych zasobów.

Następnym bardzo ważnym komponentem jest baza danych. Większość obecnie używanych aplikacji wiodących producentów używa baz danych (np. Oracle, SAP, Microsoft, TETA, Comarch).

Baza danych jest krytyczna dla takich aplikacji i bez niej nie są one w stanie działać, dlatego na jej zabezpieczenia należy zwrócić odpowiednio dużą uwagę.

Najczęściej używane bazy danych to:

  • Oracle,
  • MS SQL,
  • DB2/Informix,
  • mySQL.

Każda baza danych ma specyficzne zabezpieczenia, jednak ze standardowych mechanizmów należy zwrócić uwagę na:

  • użytkowników dostępowych do bazy danych,
  • dostęp do samej bazy danych (zdalny/lokalny),
  • uprawnienia do plików bazy danych,
  • backup/restore.

Baza danych, jak również system operacyjny, na którym uruchamiana jest aplikacja biznesowa, są bardzo ważnymi komponentami w budowaniu całościowych mechanizmów związanych z bezpieczeństwem. Błąd w zabezpieczeniu dowolnego z tych komponentów może skutkować skompromitowaniem aplikacji biznesowej.

Role i mechanizmy wbudowane w samej aplikacji

Każda aplikacja posiada własny wewnętrzny mechanizm zarządzania rolami i uprawnieniami.

Obecnie w aplikacjach biznesowych jest dużo tematów, które wiążą się z wnętrzem aplikacji. Wyzwania, z jakimi mamy do czynienia, to:

  • powszechne ryzyko podziału obowiązków,
  • kosztowna ręczna eliminacja słabych punktów,
  • niekontrolowane zarządzanie rolami,
  • nadmierny dostęp administratora,
  • nieskuteczna i nieaudytowalna obsługa użytkownika,
  • kosztowne podejście reakcyjne w kontekście zapobiegania naruszaniu bezpieczeństwa.
rys2.jpg
Rys. 2. Mechanizm zarządzania rolami i uprawnieniami w aplikacji biznesowej
 

Rozdział obowiązków (ang. Segregation of Duty – SoD) jest obecnie tematem bardzo ważnym z punktu widzenia audytów zewnętrznych i zgodności z SOX. Aplikacje, które kontrolują rozdział obowiązków, chociażby pakiet SAP GRC Access Control, umożliwiają kontrolę uprawnień od strony biznesowej i posiadają wbudowaną macierz konfliktów.

Na rysunku 3 pokazano działanie aplikacji wykrywającej konfl ikt w uprawnieniach na przykładzie osoby, która z jednej strony może dokonywać zamówień u dostawców zewnętrznych, jak również może ich dodawać, a z drugiej ma możliwość akceptacji pochodzących od nich faktur.

rys3.jpg
Rys. 3. Przykład działania aplikacji wykrywającej konflikt w uprawnieniach
 

Z drugiej strony niektóre aplikacje posiadają swoje wewnętrzne mechanizmy kontroli i audytu (kto wystawił fakturę, kto ją zmienił itp.) oraz mechanizmy logowania zdarzeń. Ważna jest też ochrona plików aplikacji, które są przechowywane w systemie plików. Jeżeli te pliki są krytyczne (jak np. logi), to można ustawić opcję ich natychmiastowego wydruku. W takim przypadku intruz nie jest już w stanie fizycznie ich zmienić.

Podsumowanie

Obecnie wiele firm prowadzi działania związane z bezpieczeństwem typu „zamek średniowieczny”, zabezpieczając się poprzez firewalle, skanery antywirusowe itp. Bezpieczeństwo rozdziela się w tym przypadku na „wewnętrzne” i „zewnętrzne”. Przewaga takiego podejścia to: łatwość instalacji i administracji, duża niezależność od aplikacji, jasno zdefiniowane koszty. Ma ono jednak również wady:

  1. brak ochrony przed nowoczesnymi zagrożeniami
    • ciągły wyścig pomiędzy atakami a technologiami ochrony
    • potrzeba kooperacji z wykorzystaniem metod coraz potężniejszych, lecz potencjalnie bardziej narażonych na ataki (XML, Web Services itp.)
  2. ograniczenia w rozszerzeniu 
    • miasta rozszerzają się, przekraczając dawne granice
    • biznes rośnie ponad stare granice
  3. zbyt duża liczba restrykcji w handlu międzynarodowym.

Z tego powodu należy pamiętać, że nie można żadnego systemu zabezpieczyć w 100%, ponieważ występują błędy ludzkie (popełniane w rozwoju oprogramowania, przy konfiguracji systemu, podczas jego obsługi). Zabezpieczenie pojedynczego systemu często jest zbyt drogie. Dlatego należy zawsze stosować mieszane rozwiązania i podejście zdroworozsądkowe.

Jacek Bugajski
SID Group

Zabezpieczenia 1/2009 

Wszelkie prawa zastrzeżone. Kopiowanie tekstów bez zgody redakcji zabronione / Zasady użytkowania strony