Od dawna jest wiadomym, że mam w zwyczaju zaglądać na różne fora internetowe. Zadawać pytania ludziom i im na nie odpowiadać, o ile mieszczą się one w zakresie mojej wiedzy. Odkąd pierwszy raz zetknąłem się z technologia jaką jest Next-Generation Firewall zbierałem się aby napisać o tym artykuł. Aż pewnego dnia…
Aż pewnego dnia, suma wydarzeń dziejących się wokół mnie spowodowała, że miałem czas, Palo-Alto i pretekst, aby napisać kilka słów. Ale zanim cokolwiek technicznego, trochę wyjaśnień. Nazwijmy to F.A.Q do tego arta.
- Nie, to Palo Alto nie jest moje.
- Ceny można sprawdzić na stronie Palo Alto Networks. Jednakże należy pamiętać, że kupując u pośrednika który kupuje duże ilości u producenta, można dostać rabat.
- Nie jest to sprzęt domowego użytku. Inaczej, można z powodzeniem używać w domu, jeżeli ktoś potrzebuje, ewentualnie współdzieli łącze z niezaufanymi osobami.
- Najmniejsze palo to pa-200. Spokojnie nadaje się do biura.
- Next Generation Firewall charakteryzuje się tym, że posiada możliwość blokowania ruchu na L7 (warstwa aplikacji)
Ok, myślę, że moje odpowiedzi zaspokoi większość pytań, inne można kierować do mnie. Oczywiście pamiętajcie, aby podać swój username i hasło.
Post który mnie przekonał o potrzebie napisania tego artykułu to ten zamieszczony poniżej.
Oczywiście, zaskoczyło mnie, że ktoś posiadający wiedzę, iż znajduje się w sieci zabezpieczonej za pomocą cisco i fortigate, zamiast użyć googla i dowiedzieć się co nieco o temacie, zadaje pytania na forum. No cóż, widocznie niektórych google boli.
W tytule wspomniałem POPR’a, kto śledzi w jakikolwiek moja działalność na IRC, na pewno spotkał się już z tym określeniem, jeżeli nie – Linkuję.
Jak można się domyślić po opisie POPR’a, jest to człowiek utrudniający życie użytkownikom (spojrzenie od strony użytkowników), natomiast ja uważam, że jest to osoba, która poważnie traktuje swoja pracę. Oczywiście nie mówię o POPR’ze z opowiadań. POPR z opowiadań to po prostu znudzony psychol w pracy jakich wielu. Dzisiaj, do postaci administratora z opowiadań porównuję się bezpieczników czy ogólnie adminów zarządzających sekcjami dostępu lub stykiem sieci z internetem. Dlaczego? Odpowiedź na to pytanie jest prosta. Do ich obowiązku należy zapewnienie sieci jak najwyższy poziom bezpieczeństwa i „jak najniższą ilość czerwonych komunikatów” (określenie „jak najniższa ilość czerwonych komunikatów” jest tłumaczona jako „święty spokój”. Określenie to, usłyszałem od znajomego adminów, gdy Ci składali sobie świąteczne życzenia). Rozwiązania są dwa. Jedno proste, ale nieskuteczne. Drugie, mozolne, ale w końcowym efekcie mające upragniony efekt braku czerwonych komunikatów.
Sposób pierwszy.
Oczywiście, można by wyłączyć blokowanie, torentów, tora, vpn’ów czy wychodzące ssh. Oczywiście, będziemy wtedy cieszyć się spokojem. Do pierwszej kontroli szefostwa, lub pentestów (zamówionych lub nie).
Sposób drugi.
Stajemy się POPR’em i konsekwentnie blokujemy cały niepożądany ruch. Simple is not it? Nope! A teraz do sedna…
Czas na wikisekcje:
Zapora sieciowa (ang. firewall – ściana przeciwogniowa) – jeden ze sposobów zabezpieczania sieci i systemów przed intruzami. Termin ten może odnosić się zarówno do dedykowanego sprzętu komputerowego wraz ze specjalnym oprogramowaniem, jak i do samego oprogramowania blokującego niepowołany dostęp do komputera, na którego straży stoi. Pełni rolę połączenia ochrony sprzętowej i programowej sieci wewnętrznej LAN przed dostępem z zewnątrz tzn. sieci publicznych, Internetu, chroni też przed nieuprawnionym wypływem danych z sieci lokalnej na zewnątrz. Często jest to komputer wyposażony w system operacyjny (np. Linux, BSD) z odpowiednim oprogramowaniem. Do jego podstawowych zadań należy filtrowanie połączeń wchodzących i wychodzących oraz tym samym odmawianie żądań dostępu uznanych za niebezpieczne.
Cóż, dziś myślę, że nie muszę tłumaczyć tego co w wikisekcji. Jedynie krótko podsumuję. Większość z czytelników tego posta na codzień ma styczność z typowymi zaporami sieciowymi, które działają, w mojej ocenie, dosyć upośledzony. Aby omówić działanie nextgeneration firewall, musimy przytoczyć jakiś przykład. Załóżmy więc sytuacje biurową – moja ulubioną, największe pole do popisu.
*Poniższe literki dotyczą sytuacji biurowej, gdzie w sieci znajduje się około 20-30 osób, a nie serwerowni, gdzie stosuję się bardziej zaawansowane firewalle starego typu niż użyty przeze mnie. Nie mniej, przykład ten jest oparty na tych samych mechanizmach działania i po uprzednim zmodyfikowaniu względem sytuacji może być stosowany jako przykład dla większych sieci.*
Wytyczne:
Administrator ma obowiązek wynikający z regulaminu firmowego obserwacji ruchu, aby wykrywać i zgłaszać naruszenia dotyczące odwiedzania stron www, połączeń z serwerami nie należącymi do firmy w godzinach pracy.
Co to znaczy?
Facebook, gmail, torenty, vpn, ssh są zabronione
Co robi admin?
Admin, który ma zwykły firewall po swojej stronie, pierwszym co robi, to łapie się za głowę, bo wie, że czeka go trochę pracy. Może wyciąć ruch na zewnątrz po następujących portach: wszystkie prócz 80 i 443. Oczywiście nie uda mu się wyciąć w ten sposób torenty, vpn, i ssh. A co z Facebookiem i gmailem?
Standardowy firewall pozwala nam na blokowanie ruchu po IP oraz portach. Co w przypadkach, w których użytkownik zmienił konfiguracje ssh/vpn?
W tym momencie, najczęściej dużo nie zrobimy. I znów musimy siedzieć i selekcjonować dane do raportów.
Natomiast admin posiadający w swoim władaniu palo może wiele. Zacznijmy od tego, że nasz firewall, w tym konkretnym przypadku użyjemy Palo-Alto 3020. Podaruję sobie opowiadanie o specyfikacji (dostępna na stronie palo). Dziś zajmiemy się kwestiami podstawowej konfiguracji.
Co będziemy robić?
- Nawiązanie połączenia z Palo Alto
- Zaadresujemy port na którym damy dostęp do zarządzania,
- Zaktualizujemy sygnatury aplikacji na palo oraz wersje systemu.
- Stworzymy sieć w której będzie pracował user przed wdrożeniem palo oraz po.
- Zgodnie z specyfikacją zablokujemy możliwość korzystania z ssh, tora, openvpn, bittorent na stardowym firewallu korzystając z routera ON NETWORKS N300. Będzie on symulował standardowy firewall
- Umieścimy na styku sieci Palo Alto. Będzie ono pracowało jako transparentny bridge warstwy drugiej.
- Korzystając z aplipedii Palo Alto określimy, co musimy wpisać do regułek blokujących
- Zgodnie z specyfikacją zablokujemy konkretne usługi używając Palo Alto
- Dokonamy obserwacji efektów.
- Odtworzymy sytuacje z posta, w której wycięty jest tor i omówimy ewentualne metody ominięcia zabezpieczenia w celu dostania się do sieci tor.
- Omówimy metody zapobiegania naruszeniom wspomnianych w punkcie 10.
To tyle teorii na chwile obecną. Czas zacząć przygotowywaniu sprzętu.
*Informacje prze zemnie podawane znajdują się w manualach dostępnych na stronach Palo Alto Networks. Gorąco zapraszam do zapoznania się z nimi.*
1. Nawiązanie połączenia z Palo Alto
Otwieramy Centrum Sieci i Udostępniania uruchamiamy okno edycji ustawień kart sieciowych.
Klikamy prawym na naszym porcie ethernet i wybieramy „Właściwości”
Następnie modyfikujemy ustawienia protokołu IPv4. U mnie są to:
- IP Adres 192.168.6.100
- Maska Sieciowa 255.255.255.255
- Brama Sieciowa 192.168.6.1
- DNS 8.8.8.8
Spowodowane jest to tym, że mam już wcześniej skonfigurowane palo. Standardowo należy podać dane:
- IP Adres 192.168.1.2
- Maska Sieciowa 255.255.255.255
- Brama Sieciowa null
- DNS null
Następnie połączyć kablem ethernetowym port naszego komputera z portem zarządzania (MGT) Palo.
2. Adresacja portu zarządzania, podłączenie do sieci internet.
Domyślnym panelem zarządzania jest https://192.168.1.1. U mnie jest to natomiast https://192.168.6.200. Domyślny login i hasło to admin:admin. Zaleca się zmianę, tego jednak nie będę robił ponieważ jest to palo testowe a nie produkcyjne.
Obecnie, jeśli właśnie konfigurujecie jakieś palo większe niż seria 200, to pewnie obok niego stoicie i cierpicie z względu na szum, który generuje. Przejdźmy zatem najpierw do zaadresowania i podpięcia managementu do sieci w której jesteśmy podpięci po wifi. W ten sposób dalsza konfiguracje przeprowadzimy siedząc przy naszym wygodnym biurku.
Aby zaadresować port MGT, należy wejść w zakładkę Device -> Management, następnie klikamy tak jak na obrazku.
Tutaj ustawiamy adresacje portu MGT. Aby dokonać aktualizacji musimy podłączyć MGT do sieci internet. Adresujemy tak, by umożliwić podłączenie do naszej sieci.
- IP Adres 192.168.6.200
- Maska 255.255.255.255
- Brama 192.168.6.1
Klikamy ok i przechodzimy dalej.
W zakładce Device -> Service ustawiamy serwery DNS.
W prawym górnym rogu znajdziemy opcje „Commit” w ten sposób wcielamy konfiguracje w życie.
3. Aktualizacja systemu oraz sygnatur aplikacji.
Aby nasz firewall poprawnie funkcjonował należy go zaktualizować. W tym celu przechodzimy do Device -> Software i pobieramy aktualna wersje systemu.
Uwaga! Wersje należy aktualizować kolejno, tak jak w tym przypadku do 6.1.0 a dopiero potem do 6.1.1.
Przed instalacja, dobrze jest kliknąć „Check” w lewym dolnym rogu. To pozwoli nam pobrać aktualna listę wersji systemu. Następnie klikamy „Install”.
Gdy instalacja się zakończy, ponownie uruchamiamy nasze palo.
Następnie chwila oczekiwania na restart, palo samo załaduje panel logowania gdy będzie gotowe.
Jak widzimy poniżej, zainstalowaliśmy wersje 6.1.0. Teraz należny ponowić zabieg instalacji dla wersji 6.1.1
Już po chwili na naszym palo pojawia się najnowsza wersja 6.1.1.
Następnym krokiem będzie aktualizacja sygnatur aplikacji. Aktualizacje wykonywane na bieżąco pozwalają nam na wczesne wykrywanie zagrożenia.
Tak jak w przypadku wersji systemu, najpierw należy pobrać aktualna listę aktualizacji. Następnie pobieramy aktualizacje i instalujemy.
4. Sieć produkcyjna, przed wdrożeniem Palo Alto.
Kilka słów o sieci w której pracuje user. Jest ona prosta. Składa się z modemu/routera/firewalla oraz AP. User może łączyć się po wifi lub po kablu. Jako element stykowy użyto routera ON NETWORKS N300. Router ten, posiada możliwość rozgłaszania własnego wifi. My dziś z niego nie skorzystamy później wytłumaczę dlaczego. Dodatkowo w tym konkretnym scenariuszu został użyty router dlinka ustawiony w tryb Acces Point’a. Poniżej schemat sytuacyjny.
5. Blokowanie usług określonych w specyfikacji bezpieczeństwa korzystając ON NETWORKS N300.
W założonej przez nas sytuacji, dział bezpieczeństwa it otrzymał wytyczne aby w sieci mu podlegającej zablokowane były konkretne usługi:
- Tor
- Ssh
- Gadu-Gadu
- Skype
- Gmail
- Transfer torentów
- VPN
Dozwolone ma być korzystanie klientów pocztowych. Dalsze restrykcje maja być wprowadzane w miarę wykrywania nadużyć.
Blokowanie na standardowych firewallach odbywa się poprzez blokowanie IP/portu.
Poniżej przedstawiam widok pulpitu użytkownika przed wdrożeń restrykcji. Jak widzimy użytkownik lubi używać tora, Skype i GG zamiast pracować.
Czas zalogować się do naszego routera i zablokować usługi wymienione w specyfikacji.
Zablokowaliśmy wszystkie porty prócz 80 i 443. Można by rzec, że sukces. Spójrzmy do specyfikacji. Po chwili zastanowienia odkrywamy, że wycięliśmy przy okazji ruch klientów pocztowym. Gdybyśmy zrobili to na produkcji, w ciągu 10 minut pojawiła by się u nas pani z działy handlu, że nie może ofert wysłać, a przecież nie o to nam chodzi. Oczywiście można zmienić konfiguracje tak by wyciąć ruch poza klientami poczty. Ale! Właśnie, gdy zaczniemy działać w ten sposób:
- Musimy otworzyć ruch na 8 portach (80, 110, 143, 443, 465, 587, 993, 995). W ten sposób dajemy możliwość poruszania się tymi portami a więc zostawiamy dziurę w naszej „ścianie ognia”.
- Z czasem może się okazać, że metoda „deny all, allow list” czyli zablokowanie wszystkiego prócz konkretnych portów spowoduje dużą ilość późniejszych rekonfiguracji.
Zakładamy iż odblokowaliśmy klientów pocztowych i mamy zestaw wolnych portów: 80, 110, 143, 443, 465, 587, 993, 995.
Czy wiesz, że…. Aplikacje takie jak GG, Skype, Tor, Torenty posługują się dynamicznymi portami? To znaczy, że do momentu, gdy chociaż jeden port otwarty, tak długo będą one funkcjonować. Słabo prawda? VPN i SSH możba dowolnie konfigurować tak by używały np portu 443 (bardzo popularna praktyka). Oczywiście nie mówię o Gmailu którego używamy za pomocą przeglądarki, która używa portów 80 i 443.
Co teraz? Czas na popis Palo Alto. Usuwamy wprowadzone zmiany i przechodzimy do wdrożenia next generation firewall.
6. Umieszczenie Palo Alto – Gdzie i dlaczego?
W momencie gdy postanawiamy wdrożyć Palo Alto, musimy zastanowić się gdzie chcemy je umieścić. Najlepszym rozwiązaniem będzie umieszczenie go na styku, zaraz za firewallem. Oto schemat:
W ten sposób przez palo będzie szedł cały ruch od użytkowników.
7. Wyszukiwanie w Aplipedii – Co blokować i jak?
Palo Alto udostępnia applipedie. Z niej dowiemy się co chcemy blokować.
Robimy szybki rekonesans i dowiadujemy się, że Palo Alto pozwoli nam spełnić specyfikacje.
8. Wprowadzanie polityk bezpieczeństwa zgodnie z specyfikacja zadania.
Dochodzimy do sedna całego artykułu. Teraz dodamy do naszego nowego firewall’a nowe polityki bezpieczeństwa blokujące wymienione w specyfikacji usługi.
Logujemy się do naszego palo alto, przechodzimy do zakładki „Policies”. W tej zakładce wylistowane są polityki bezpieczeństwa
Aby dodać nową politykę klikamy „Add”. Uzupełniamy pole „Name”.
Pierwsza nowość, której niema w zwykłych firewallach. Zakładka user, to zakładka w której możemy spiąć nasze firmowe AD z palo i wybierać konkretnie per user jaki ruch ma być puszczany. Zostawiamy puste, nie mamy AD w specyfikacji.
W zakładce „Destination” ustalamy kierunek ruchu. Obecnie mamy dwie strefy, „Trust: i „untrust” gdzie trust to nasza lokalna a untrust to internet. Możemy ustawić na trust (czyli na ruch wychodzący). Jednakże jeżeli wystawiamy jakieś porty na zewnątrz, warto jest dać „any”.
W zakładce „Application” określamy jakie aplikacje maja być blokowane. Aplikacje? Przecież to niemożliwe! A jednak. Jak juz pisałem palo alto to next generation firewall działający na L7 a wiec na warstwie aplikacyjnej.
Korzystając z wyszukiwarki dodajemy kolejna aplikacje
Pełna lista zablokowanych prze zemnie aplikacji:
- bittorrent
- bittorrent-sync
- checkpoint-vpn
- ciscovpn
- cyberghost-vpn
- droidvpn
- gadu-gadu
- gmail
- gmail-drive
- kerio-vpn
- open-vpn
- packetix-vpn
- skype
- ssh
- ssh-tunnel
- steganos-vpn
- tinyvpn
- tor
- vipnet-vpn
- wallcooler-vpn
Zakładka „Service/Url Category” To tutaj wybieramy co dokładnie ma być brane pod uwagę. Czy typowe dla aplikacji porty i linki, czy wszystkie gdzie zostanie wykryty protokół danej aplikacji.
Zakładka „Actions” to tutaj podejmujemy decyzje – blokujemy czy pozwalamy na ruch.Poniżej widać dodana regułkę. Oczywiście następnie klikamy „Commit” aby zatwierdzić zmiany.
Po zatwierdzeniu zmian, przechodzimy do zakładki „Monitor”, aby zaobserwować zmiany.
9. Obserwacja efektów wprowadzenia restrykcji zgodnych z specyfikacja bezpieczeństwa.
Po uruchomieniu odpowiedniego filtra widzimy ruch generowany przez użytkownika. Widać, iż osobnik ten generuje ruch z aplikacji tor, GG, Skype i Facebook. Zgodnie z ta specyfikacją ruch ten jest blokowany. Dzieje się tak, ponieważ nasz firewall blokuje ruch na danym porcie, ale przede wszystkim rozszywa ruch i identyfikuje rodzaj pakietów które przez niego przechodzą.
10. Odtworzenie sytuacji z posta, w której wycięty jest tor i omówimy ewentualne metody ominięcia zabezpieczenia w celu dostania się do sieci TOR.
W wcześniej przytoczonym prze zemnie poście z forum, mamy kilka informacji oto one:
- W sieci jest Cisco, zapewne ISE.
- W sieci jest Next Generation Firewall – Fortigate
Długo zastanawiałem się czy na pewno jest to Fortigate a nie na przykład po prostu Cisco ASA, ale postanowiłem zaufać postowi. W poście mamy jeszcze informacje, że cały problem leży w tym że nie możliwym jest nawiązanie połączenia z siecią tor. Log który został tam zaprezentowany mówi jedynie, że połączenie nie może zostać nawiązane
Bazując na informacjach z posta w najbardziej optymistycznej opcji należy sprawdzić czy blokowany jest ruch:
- ssh
- vpn
Jeżeli któryś z powyższych nie jest blokowane należy wykorzystać to do tunelowania do maszyny która ma podpięty tor do interfejsu sieciowego. W przypadku vpn, jest to o tyle proste, że należy zainstalować tora oraz serwer vpn na zewnętrznej maszynie. Następnie zestawić połączenie tunelem do tej maszyny. Będziemy wtedy wychodzić z maszyny lokalnej do serwera vpn który będzie kierował ruch do sieci tor.
Można również użyć opcji tunelowania za pomocą ssh, ale odradzam, ponieważ zgodnie moją wiedzą, zostanie to szybko wykryte i zablokowane. Należy pamiętać, aby podczas działania nie zwracać na siebie uwagi. Oprócz blokowania możemy zostać oskarżeni o naruszenia regulaminu sieci i zostać ukarani.
11. Zapobieganie naruszeniom wymienionym w punkcie 10.
Zapobieganie naruszeniom jest obszernym tematem. Jak wcześniej wykazałem, z pomocą Next Generation Firewall jest to proste. Ważnym jest, aby podczas projektowania polityk bezpieczeństwa kierować się nie tylko ryzykiem, ale zakładać, iż użytkownik jest w stanie obejść nasze zabezpieczenie i blokować niepotrzebne usługi tak jak ja to zrobiłem. Blokując TOR należy zablokować vpn i ssh. Gdzie mówiąc o blokowaniu nie mam na myśli blokowaniu portów a blokowanie protokołu. Dodatkowym sposobem jest regularne sprawdzanie logów w celu identyfikacji zagrożeń i dostosowania polityk bezpieczeństwa.