Automatyzacja polityki sieciowej K8s w Falco Talon

Ustawienie solidnego bezpieczeństwa sieci w Kubernetes jest wyzwaniem, które wymaga zarówno precyzji, jak i zdolności adaptacyjnych. NetworkPolicy oferuje możliwość wysoce specyficznych konfiguracji sieci, umożliwiając lub blokując ruch w oparciu o kompleksowy zestaw kryteriów. Jednak dynamiczny charakter topologii sieci i złożoność zarządzania implementacjami polityk stanowią ciągłe wyzwania. Potrzeba ciągłych aktualizacji zasad, zwłaszcza w odpowiedzi na zmieniające się zagrożenia, wprowadza ryzyko, takie jak możliwość błędnej konfiguracji i niezamierzonego upuszczania pakietów.

Wyzwanie polityki sieciowej opartej na protokole IP

Tworzenie polityk sieciowych w oparciu o adresy IP jest niezwykle trudne. Na przykład, źródła zagrożeń, które zawierają listę znanych złośliwych adresów IP, stale się zmieniają. Adres IP powiązany ze złośliwym podmiotem w jednym tygodniu może zostać ponownie przypisany i uznany za bezpieczny w następnym. Ta płynność wymaga elastycznego podejścia do zarządzania polityką sieciową, integrując rozwiązania takie jak NetworkSets, aby dynamicznie aktualizować zasady w oparciu o najnowsze informacje. Jednak sama ilość źródeł informacji o zagrożeniach – od list adresów IP Tor po listy blokowania wydobycia kryptowalut – komplikuje tę integrację, sprawiając, że utrzymanie dokładnej kontroli sieci jest trudnym zadaniem.

Tutaj Falco Talon wyłania się jako rozwiązanie transformacyjne. Wykorzystując możliwości wykrywania Falco, takie jak identyfikacja Połączenia wychodzące do serwerów C2Falco Talon może natychmiast zaktualizować zasady sieci Kubernetes, aby zablokować cały ruch wychodzący z wyjątkiem dozwolonych zakresów CIDR. Jest to możliwe dzięki funkcji kubernetes:networkpolicy Działanie Talon, demonstrujące płynną integrację dynamicznego wykrywania zagrożeń z egzekwowaniem polityki sieciowej.

- action: Disable outbound connections
  actionner: kubernetes:networkpolicy
  parameters:
    allow:
      - "192.168.1.0/24"
      - "172.17.0.0/16"
      - "10.0.0.0/32"

- rule: Suspicious outbound connection
  match:
    rules:
      - Outbound Connections to C2 Servers
  actions:
    - action: Disable outbound connections

Chociaż z pewnością zablokowałoby to połączenia sieciowe wychodzące, nie jest to zbyt wygodne dla niektórych organizacji, ponieważ jest to podejście do blokowania ruchu, ale nadal opiera się na liście dozwolonych adresów IP w każdej regule Talon – zamiast blokować rzeczywisty podejrzany adres IP określony w regule Falco. Zamiast tego zaproponujemy użycie etykiet jako akcji odpowiedzi w Talon, aby lepiej izolować ruch sieciowy w czasie wykonywania.

Przejście od adresów IP do etykiet dla bezpieczeństwa sieci

Chociaż blokowanie oparte na adresach IP jest skuteczne w odpowiedzi na konkretne zagrożenia wykryte przez Falco, nie jest to najbardziej skalowalne rozwiązanie do bieżącego zarządzania polityką sieciową w środowiskach produkcyjnych. Alternatywne podejście koncentruje się na wykorzystaniu etykiet do tworzenia polityk sieciowych w stylu kwarantanny. Metoda ta polega na skonfigurowaniu polityki sieciowej, która stosuje domyślną odmowę dla całego ruchu przychodzącego i wychodzącego dla podów pasujących do określonych etykiet, skutecznie izolując potencjalnie zagrożone obciążenia. Można to łatwo osiągnąć za pomocą poniższego jednolinijkowego kodu:

kubectl label pod <pod-name> -n <namespace-name> quarantine=true

Jest to z pewnością czystsze podejście niż poprzednia implementacja wymuszonej polityki sieciowej. Wyzwaniem jest jednak ręczny proces etykietowania podejrzanych obciążeń, który może być uciążliwy i powolny w reakcji na pojawiające się zagrożenia. Ile minut zajmie naszemu zespołowi ds. bezpieczeństwa wymuszenie tej akcji etykietowania i co się stanie, jeśli stanie się to w weekend?

Falco Talon rozwiązuje tę lukę dzięki kubernetes:labelize akcja odpowiedzi. Po wykryciu zagrożenia, takiego jak Wykrywanie połączeń wychodzących do wspólnych portów puli górnikówTalon może automatycznie zastosować quarantine:true etykietę do dotkniętego poda, uruchamiając egzekwowanie polityki sieciowej kwarantanny w czasie rzeczywistym. Ta funkcja nie tylko zwiększa szybkość i wydajność działań reakcyjnych, ale także podkreśla siłę integracji dynamicznego wykrywania zagrożeń z egzekwowaniem polityki sieciowej.

- action: Quarantine Pod in Network Policy
  actionner: kubernetes:labelize
  parameters:
    labels:
      quarantine: true

- rule: Suspicious outbound connection
  match:
    rules:
      - Detect outbound connections to common miner pool ports
  actions:
    - action: Quarantine Pod in Network Policy

Podczas gdy Talon może zastosować etykietę, nadal potrzebny jest komponent, który będzie egzekwował kwarantannę. Większość CNI może to zrobić, ale na potrzeby tego bloga dodam przykład z Calico:

apiVersion: projectcalico.org/v3
kind: GlobalNetworkPolicy
metadata:
  name: quarantine
spec:
  selector: quarantine == "true"
  ingress:
    - action: Deny
      source: {}
      destination: {}
  egress:
    - action: Deny
      source: {}
      destination: {}
  types:
    - Ingress
    - Egress

Wnioski

Integracja Falco Talon ze strategiami bezpieczeństwa sieci Kubernetes stanowi znaczący postęp w tej dziedzinie. Automatyzując egzekwowanie polityk sieciowych w oparciu o wykrywanie zagrożeń w czasie rzeczywistym, Falco Talon upraszcza złożoność związaną z zarządzaniem bezpieczeństwem sieci w stale zmieniającym się krajobrazie. Niezależnie od tego, czy reaguje na bezpośrednie zagrożenia za pomocą polityk opartych na adresach IP, czy też proaktywnie izoluje obciążenia za pomocą polityk kwarantanny opartych na etykietach, Falco Talon zapewnia elastyczne, potężne narzędzie do zwiększania bezpieczeństwa i odporności środowisk Kubernetes. W miarę jak organizacje radzą sobie z wyzwaniami związanymi z bezpieczeństwem natywnym dla chmury, rozwiązania takie jak Falco Talon oferują zdolność adaptacji i skuteczność, zapewniając, że bezpieczeństwo sieci dotrzymuje kroku dynamicznemu charakterowi wdrożeń kontenerowych.