dodany: 23.11.2012 | tagi: , ,

Autor:

Udostępnianie systemów na zewnątrz firmowej sieci LAN

7

W dzisiejszych czasach nie ma praktycznie firmy czy instytucji, która nie posiadałaby swojej strony internetowej i publicznie dostępnych informacji – czy to o dostępnej ofercie, czy też poradników o procedurach stosowanych w danym urzędzie. Jest to niezbędne, a użytkownicy internetu oczekują jak największej ilości danych dostępnych w ten sposób. Dotyczy to także systemów typu self-care, czyli samodzielnej obsługi przez Klientów.

Uruchomienie takich stron wymaga zapewnienia infrastruktury – serwera, systemu operacyjnego, przestrzeni dyskowych, wymaganych do działania strony komponentów i odpowiedniej wydajności dostosowanej do przewidywanej liczby odwiedzin i aktywności użytkowników.

Często do tego celu wykorzystywane są usługi hostingowe umożliwiające szybkie uruchomienie rozwiązań i udostępnienie ich odbiorcom – w zależności od stopnia zaangażowania, potrzeb i specyfiki usługi jest to podejście PaaS (Platform as a Service) lub IaaS (Infrastructure as a Service). Dzięki temu można uniknąć inwestycji w drogi sprzęt, oprogramowanie czy też personel konieczny do zapewnienia bezproblemowego działania usługi, a sam system może być kompletnie odseparowany od sieci wewnętrznej firmy czy instytucji.

Niestety nie jest to model idealny i nie zawsze się sprawdza. Nie każdy właściciel aplikacji akceptuje to, że informacje przechowywane w bazie danych rozwiązania są zapisywane poza firmą, bez żadnej kontroli co się z nimi dzieje (wiadomo – są regulaminy, zabezpieczenia i przepisy prawne – wszędzie są jednak ludzie i wszystko może się zdarzyć). Awaria usługi hostingowej lub utrudniony kontakt z działem technicznym też mogą być istotną przeszkodą w skorzystaniu z takiej usługi. Bezpieczeństwo danych i świadomość różnic w przepisach prawa pomiędzy UE i USA niekiedy wręcz uniemożliwiają wykorzystanie takiego podejścia.

W takiej sytuacji jedyną opcją jest udostępnienie rozwiązania wykorzystując własne zasoby uruchamiane w sieci firmy. Oczywiście musi to być zrealizowane w sposób umożliwiający zachowanie odpowiedniego bezpieczeństwa i utrudnienie lub uniemożliwienie w krótkim czasie włamania do systemu (lub gorzej – do zasobów wewnętrznych znajdujących się w sieci). Każdy dostępny publicznie system jest potencjalną furtką do sieci LAN i muszą istnieć na tyle dobre mechanizmy, żeby nie stało się to zagrożeniem dla wycieku danych czy spowodowaniem szkód i strat. Dlatego nie jest dobrym pomysłem wystawianie w świat serwera bez odpowiednich zabezpieczeń, najlepiej sprzętowych, dedykowanych do takich celów.

Istnieją różne sposoby uruchamiania publicznie dostępnych usług, a jednym z najpopularniejszych jest zastosowanie DMZ (DeMilitarized Zone – strefa zdemilitaryzowana). W skrócie jest to model, gdzie wszystkie publiczne systemy i aplikacje są zainstalowane w wydzielonym fragmencie sieci dostępnym z zewnątrz i odseparowanym technicznie od sieci wewnętrznej organizacji. Izolacja sieci jest realizowana przy pomocy odpowiednich zabezpieczeń w postaci firewalli, konfiguracji reguł dostępowych oraz dodatkowych mechanizmów. W DMZ są uruchamiane zwykle serwery DNS, proxy, pocztowe, serwery monitorujące i reagujące na próby włamań – IDS (Intrusion Detection System).

Najbardziej typowe konfiguracje są przedstawione na poniższych ilustracjach. Pierwsza z nich przedstawia architekturę  wielowarstwową wykorzystującą co najmniej dwa osobne firewalle stopniowo zabezpieczające kolejne poziomy dostępu aż do sieci LAN.

Druga najczęściej spotykana architektura DMZ wykorzystuje jeden firewall, który separuje dostęp z zewnątrz odpowiednio do DMZ lub sieci wewnętrznej na bazie rozbudowanej konfiguracji i systemu reguł i przekierowań. Jest ona przedstawiona poniżej.

W każdym z powyższych podejść istnieje typowy DMZ (wyseparowana część sieci dostępna publicznie i kontrolowana) oraz sieć wewnętrzna, zabezpieczona przed niepowołanym dostępem. Konfiguracja DMZ nie jest trywialna, ale pozwala uruchamiać dla użytkowników zewnętrznych systemy, których główne elementy są zainstalowane w sieci wewnętrznej w sposób na tyle bezpieczny (oczywiście zależy to dość mocno od właściwej konfiguracji firewalli i mechanizmów), że włamanie nie jest proste i wymaga czasu i środków. Często stosuje się dodatkowe urządzenia – load balancery, switche i inne – wtedy jest jeszcze trudniej uzyskać nieautoryzowany dostęp do informacji.

Oprócz zabezpieczeń typowo sprzętowych i konfiguracyjnych zalecane jest stosowanie dodatkowych mechanizmów. Przykładowo systemy nie powinny być dostępne publicznie bez bezpiecznego połączenia SSL (https) zamiast standardowego http – dzięki temu bardzo trudne lub niemożliwe jest przechwycenie przesyłanych danych i uzyskanie dostępu do danych lub kont użytkowników. Takie połączenie jest zwykle istotne tylko do momentu osiągnięcia poziomu DMZ – w sieci wewnętrznej firmy nie jest potrzebne a powoduje pewien narzut na ilość przesyłanych informacji i stosuje się tzw. „terminację SSL”, czyli w uproszczeniu przełączenie na zwykłe połączenie http po przejściu przez zabezpieczenia sieciowe przed DMZ.

Kolejnym mechanizmem, który jest dość mocno sugerowany jest odpowiednie zestawianie połączeń i unikanie przekierowania ruchu z zewnątrz sieci wprost do wewnątrz. Taka sytuacja występuje, gdy serwery w strefie DMZ są tylko pośrednikami pomiędzy użytkownikiem a serwerami wewnątrz sieci – użytkownik odwiedzający stronę dostaje się do aplikacji lub danych ulokowanych na serwerach w sieci LAN. Jest to pewne zagrożenie bezpieczeństwa, a znacznie lepszym podejściem jest instalacja na serwerach www aplikacji, które mogą działać bez stałego połączenia z serwerami aplikacyjnymi wewnątrz, a aktualizacja danych na serwerach w DMZ jest inicjowana z wewnątrz sieci firmy. To utrudnia nieco zaprojektowanie bezpiecznej architektury rozwiązań, ale unikamy dzięki temu otwierania furtki dla potencjalnego włamywacza.

Zaleceniem dla wszystkich systemów dostępnych publicznie jest cykliczne przeprowadzanie testów bezpieczeństwa systemów zwanych testami penetracyjnymi (w skrócie „pen test”) – są to audyty, podczas których wykwalifikowani specjaliści weryfikują istnienie luk, błędów aplikacyjnych, uchybień, które mogą potencjalnie spowodować podatność systemu lub aplikacji na włamanie, uszkodzenie danych czy awarię. Są one kosztowne, ale warte swojej ceny – dane, które można utracić są często cenniejsze od kosztu takiego testu.

Zaleceń i mechanizmów jest znacznie więcej niż można omówić w tak krótkim artykule, a tematyka bezpieczeństwa aplikacji jest bardzo szeroka. Istnieje wiele książek i artykułów na ten temat, a do lektury szczerze zachęcam – taka wiedza procentuje, niezależnie od pełnionej roli czy stanowiska – programiści, architekci i kierownicy projektów powinni przynajmniej być zorientowani w tej tematyce, aby tworzyć i dostarczać bezpieczne i niezawodne systemy.

avatar
IT Project Manager
Kierownik projektu, analityk i projektant z szeroką wiedzą techniczną i doświadczeniem w procesie tworzenia oprogramowania, zdobytymi w trakcie realizacji projektów, także dofinansowywanych z UE.

7 odpowiedzi na “Udostępnianie systemów na zewnątrz firmowej sieci LAN”

  1. avatar Aleksander napisał(a):

    Witaj
    Piszesz: "Istnieje wiele książek i artykułów na ten temat, a do lektury szczerze zachęcam", a poleciłbyś którąś szczególnie?
    pozdrawiam

    • avatar Marcin Sałaciński napisał(a):

      Ciężko polecić konkretną pozycję, jako że nie wiem co dokładnie chciałbyś się dowiedzieć i nauczyć. Są pozycje specjalistyczne np. o samym szyfrowaniu połączeń sieciowych, o monitorowaniu i zabezpieczeniach itp. Jeżeli chodzi o pozycje przekrojowe myślę że te będą odpowiednie:
      1. Kryptografia i bezpieczeństwo sieci komputerowych. Koncepcje i metody bezpiecznej komunikacji – William Stallings
      2. 101 zabezpieczeń przed atakami w sieci komputerowej – Maciej Szmit, Marek Gusta, Mariusz Tomaszewski
      3. 125 sposobów na bezpieczeństwo sieci. – Andrew Lockhart
      4. Building DMZs For Enterprise Networks – Robert J. Shimonski, Will Schmied, v Chang, Thomas W. Shinder
      5. Advanced Persistent Threat: Understanding the Danger and How to Protect Your Organization – Eric Cole
      6. Fundamentals of Network Security – Eric Maiwald

      Książki anglojęzyczne powyżej są dostępne np. na amazon.com i można zapoznać się z podglądem spisu treści i wybranym rozdziałem – to pomoże stwierdzić czy książka będzie odpowiednia :-)

  2. avatar vizzdoom napisał(a):

    Dość ciekawy temat. W czym robione były ilustracje?

  3. avatar udo napisał(a):

    Marcin ja mam takie samo pytanie jak Aleksander, możesz polecić jakieś teksty źródłowe?

    • avatar Marcin Sałaciński napisał(a):

      Zamieszczam powyżej – są to pozycje, które powinny odpowiedzieć na większość pytań i podsunąć pomysły na projektowanie takich rozwiązań.
      W razie kolejnych pytań czy wątpliwości – zapraszam :-)

  4. avatar correct hairstyle napisał(a):

    Just desire to say your article is ass astonishing. The claritty in your post is just
    cool and i could assume you’re an expert on this subject.
    Fine with your permissipn allow me to grab your feed to keep updated with forthcoming post.

    Thanks a million and please continue the enjoyable work.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *