# F5

### Wtyczka Netacea F5

Integracja z load balancerami F5 opiera się na module iRules LX.

'**iRules**' to ogólne określenie skryptów w środowisku F5. Zazwyczaj służą do definiowania sposobu równoważenia obciążenia żądań przez F5 z wykorzystaniem prostych narzędzi bezpieczeństwa. Bloki kodu są podzielone na fazy żądania, a skrypty można pisać w całkowicie specyficznym dla F5 języku. Dokumentacja iRules jest dostępna [tutaj](https://clouddocs.f5.com/api/irules/).

'**iRules LX**' to rozszerzenie iRules umożliwiające korzystanie z mniej specjalistycznych języków skryptowych (np. JavaScript). Równolegle z integracją F5 na serwerze działa kompletny proces node, a funkcje można wywoływać poprzez zdalne wywołania procedur (RPC). Dokumentacja jest dostępna [tutaj](https://clouddocs.f5.com/api/irules-lx/).

<figure><img src="https://1527802543-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fu9Wa2WiFkCND3fktx8wd%2Fuploads%2Fgit-blob-0a48335d485b03714ef091e388941ec7c1974a78%2Fimage%20(13)%20(1).png?alt=media" alt=""><figcaption></figcaption></figure>

Implementacja integracji F5 składa się z trzech głównych elementów. Opracowaliśmy ogólne moduły do komunikacji z platformą Netacea, specyficzną dla F5 nakładkę do obsługi RPC przez ILXServer (moduł dostarczany przez F5) oraz regułę iRule obsługującą logikę przetwarzania żądań i wywołania metod zdalnych.

### Przepływ żądań

Gdy użytkownik po raz pierwszy odwiedza stronę chronioną przez Netacea/F5, wtyczka wysyła zapytanie do usługi Netacea Protector API. Jeśli użytkownik jest rozpoznany jako złośliwy, wtyczka podejmuje odpowiednie działanie mitygacyjne.

Na urządzeniu klienta umieszczane jest ciasteczko zawierające informacje o ważności użytkownika, które służy do dalszej identyfikacji i jest okresowo weryfikowane.\
\
Wtyczka przesyła strumieniowo dane logów o użytkowniku i sesji do usługi Netacea Monitor Ingest, gdzie silnik wykrywania Netacea przeprowadza dalszą analizę w celu potwierdzenia, czy jest to prawidłowy użytkownik. Ta operacja jest wykonywana asynchronicznie, więc nie wprowadza opóźnień w przetwarzaniu żądania.\
\
Jeśli w dowolnym momencie aktywność użytkownika zostanie uznana za złośliwą, usługa Netacea Protector API zostanie zaktualizowana, a wtyczka podejmie odpowiednie działanie mitygacyjne.

Poniższy diagram wraz z opisem wyjaśnia przepływ ruchu w tej implementacji (na wysokim poziomie ogólności).\ <br>

<figure><img src="https://1527802543-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fu9Wa2WiFkCND3fktx8wd%2Fuploads%2Fgit-blob-a63f79567595a5623d6b823713aee6b14b8bba99%2FGitbook_diagrams_F5.jpg?alt=media" alt=""><figcaption></figcaption></figure>

1. Użytkownik wysyła żądanie do strony chronionej przez Netacea/F5.
2. Wtyczka Netacea F5 wysyła zapytanie do usługi Netacea Protector API, aby sprawdzić, czy użytkownik jest rozpoznany jako złośliwy lub bezpieczny.
3. Kopia żądania web jest wysyłana jako dane logów do analizy z wykorzystaniem zbiorowej inteligencji zagrożeń, uczenia maszynowego i analizy behawioralnej w celu określenia, czy żądanie jest bezpieczne.
4. Wyniki analizy są publikowane, aby wtyczka Netacea F5 mogła je odczytać i określić, jaka strategia mitygacji powinna zostać zastosowana dla tego ruchu.
5. Jeśli żądania są nieszkodliwe, są przekazywane do serwera źródłowego w normalny sposób.
6. Jeśli żądania wymagają mitygacji, podejmowane jest odpowiednie działanie, a odpowiedź jest przesyłana do klienta.
