Programy zawierające luki. Inteligentne skanowanie. Ryzyko związane z używaniem podatnych programów

Obecnie opracowany duża liczba narzędzia zaprojektowane w celu automatyzacji wyszukiwania podatności programów. W tym artykule omówimy niektóre z nich.

Wstęp

Analiza kodu statycznego to analiza oprogramowanie, który jest tworzony na kodzie źródłowym programów i jest wdrażany bez faktycznego wykonania badanego programu.

Oprogramowanie często zawiera różne luki wynikające z błędów w kodzie programu. Błędy popełnione podczas opracowywania programów w niektórych sytuacjach prowadzą do awarii programu, a w konsekwencji do zakłócenia normalnego działania programu: często skutkuje to zmianami i uszkodzeniem danych, zatrzymaniem programu lub nawet systemu. Większość podatności związana jest z nieprawidłowym przetwarzaniem danych otrzymanych z zewnątrz lub niewystarczająco rygorystyczną ich weryfikacją.

Do identyfikacji podatności stosuje się różne metody narzędzia na przykład analizatory statyczne kod źródłowy programów, których przegląd znajduje się w tym artykule.

Klasyfikacja luk w zabezpieczeniach

Kiedy wymaganie prawidłowe działanie program na wszystkich możliwych danych wejściowych zostanie naruszony, możliwe staje się pojawienie się tak zwanych luk w zabezpieczeniach. Luki w zabezpieczeniach mogą oznaczać, że jeden program może zostać wykorzystany do pokonania ograniczeń bezpieczeństwa całego systemu.

Klasyfikacja luk bezpieczeństwa w zależności od błędów oprogramowania:

  • Przepełnienie bufora. Luka ta wynika z braku kontroli nad przekroczeniem zakresu tablicy w pamięci podczas wykonywania programu. Gdy zbyt duży pakiet danych przepełni bufor o ograniczonym rozmiarze, zawartość dodatkowych komórek pamięci zostanie nadpisana, co spowoduje awarię i zamknięcie programu. Na podstawie lokalizacji bufora w pamięci procesu rozróżnia się przepełnienia bufora na stosie (przepełnienie bufora stosu), stercie (przepełnienie bufora sterty) i obszarze danych statycznych (przepełnienie bufora bss).
  • Luka w zabezpieczeniach skażonych danych wejściowych. Luki w zabezpieczeniach związanych ze zepsutymi danymi wejściowymi mogą wystąpić, gdy dane wejściowe użytkownika zostaną przekazane do interpretera jakiegoś języka zewnętrznego (zwykle powłoki Unix lub SQL) bez wystarczającej kontroli. W takim przypadku użytkownik może określić dane wejściowe w taki sposób, że uruchomiony interpreter wykona zupełnie inne polecenie, niż było to zamierzone przez autorów podatnego programu.
  • Usterka w ciągu formatowania. Ten typ Luki w zabezpieczeniach stanowią podklasę luki w zabezpieczeniach „skażonych danych wejściowych”. Dzieje się tak z powodu niewystarczającej kontroli parametrów podczas korzystania z funkcji formatu I/O printf, fprintf, scanf itp. biblioteka standardowa Język C. Funkcje te przyjmują jako jeden z parametrów ciąg znaków określający format wejściowy lub wyjściowy kolejnych argumentów funkcji. Jeśli użytkownik może określić typ formatowania, luka ta może wynikać z nieudanego użycia funkcji formatowania ciągów.
  • Luki w zabezpieczeniach wynikające z błędów synchronizacji (warunki wyścigu). Problemy związane z wielozadaniowością prowadzą do sytuacji zwanych „warunkami wyścigu”: program, który nie jest przeznaczony do działania w środowisku wielozadaniowym, może sądzić, że na przykład używanych przez niego plików nie można zmienić za pomocą innego programu. W rezultacie osoba atakująca, która na czas podmieni zawartość tych plików roboczych, może zmusić program do wykonania określonych działań.

Oczywiście oprócz wymienionych istnieją inne klasy luk w zabezpieczeniach.

Przegląd istniejących analizatorów

Do wykrywania luk w zabezpieczeniach programów wykorzystywane są następujące narzędzia:

  • Debugery dynamiczne. Narzędzia umożliwiające debugowanie programu w trakcie jego wykonywania.
  • Analizatory statyczne (debuggery statyczne). Narzędzia wykorzystujące informacje zgromadzone podczas analizy statycznej programu.

Analizatory statyczne wskazują te miejsca w programie, w których może znajdować się błąd. Te podejrzane fragmenty kodu mogą zawierać błąd lub być całkowicie nieszkodliwe.

W tym artykule omówiono kilka istniejących analizatorów statycznych. Przyjrzyjmy się bliżej każdemu z nich.

Zarządzanie podatnościami to identyfikacja, ocena, klasyfikacja i wybór rozwiązania w celu usunięcia podatności. Podstawą zarządzania podatnościami są repozytoria informacji o podatnościach, a jednym z nich jest System Zarządzania Podatnościami „Forward Monitoring”.

Nasze rozwiązanie kontroluje pojawianie się informacji o podatnościach w system operacyjny(opartych na systemach Windows, Linux/Unix), oprogramowanie biurowe i aplikacyjne, oprogramowanie sprzętowe, narzędzia bezpieczeństwa informacji.

Źródła danych

Baza danych Systemu Zarządzania Podatnościami Oprogramowania Perspective Monitoring jest automatycznie aktualizowana z następujących źródeł:

  • Bank danych o zagrożeniach bezpieczeństwa informacji (BDU BI) FSTEC Rosji.
  • Krajowa baza danych o lukach w zabezpieczeniach (NVD) NIST.
  • Bugzilla Red Hata.
  • Narzędzie do śledzenia błędów bezpieczeństwa Debiana.
  • Lista mailingowa CentOS.

Korzystamy również z automatycznej metody aktualizacji naszej bazy danych o lukach w zabezpieczeniach. Opracowaliśmy robota sieciowego i analizator danych nieustrukturyzowanych, który codziennie analizuje ponad sto różnych źródeł zagranicznych i rosyjskich w wielu słowa kluczowe- grupy w sieciach społecznościowych, blogach, mikroblogach, mediach poświęconych technologia informacyjna i zapewnienie bezpieczeństwa informacji. Jeśli narzędzia te znajdą coś, co spełnia kryteria wyszukiwania, analityk ręcznie sprawdza te informacje i wprowadza je do bazy danych podatności.

Monitorowanie podatności oprogramowania

Korzystając z systemu zarządzania lukami, programiści mogą monitorować obecność i status wykrytych luk w komponentach swojego oprogramowania innych firm.

Na przykład w modelu bezpiecznego cyklu życia programisty oprogramowania (SSDLC) firmy Hewlett Packard Enterprise kontrola nad bibliotekami stron trzecich ma kluczowe znaczenie.

Nasz system monitoruje obecność luk w równoległych wersjach/kompilacjach tego samego oprogramowania.

Działa to w ten sposób:

1. Twórca udostępnia nam listę bibliotek i komponentów innych firm zastosowanych w produkcie.

2. Codziennie sprawdzamy:

B. czy pojawiły się metody eliminujące wcześniej wykryte luki.

3. Powiadamiamy dewelopera, jeżeli zmienił się status lub punktacja podatności, zgodnie z określonym wzorem do naśladowania. Oznacza to, że różne zespoły programistów w tej samej firmie otrzymają alerty i zobaczą stan luk w zabezpieczeniach tylko dla produktu, nad którym pracują.

Częstotliwość alertów systemu zarządzania lukami można konfigurować, ale jeśli wykryta zostanie luka z wynikiem CVSS większym niż 7,5, programiści otrzymają natychmiastowe powiadomienie.

Integracja z ViPNet TIAS

Oprogramowanie i sprzęt systemu ViPNet Threat Intelligence Analytics System automatycznie wykrywa ataki komputerowe i identyfikuje incydenty na podstawie zdarzeń otrzymanych z różnych źródeł bezpieczeństwo informacji. Głównym źródłem zdarzeń dla ViPNet TIAS jest ViPNet IDS, który analizuje przychodzące i wychodzące ruch sieciowy wykorzystanie podstaw reguł decyzyjnych AM Zasady opracowywania „Monitoringu Prospektywnego”. Niektóre sygnatury są zapisywane w celu wykrycia wykorzystania luk.

Jeżeli ViPNet TIAS wykryje zdarzenie związane z bezpieczeństwem informacji, w którym wykorzystano podatność, wówczas wszystkie informacje związane z podatnością, w tym dotyczące metod eliminacji lub kompensacji negatywnego wpływu, zostaną automatycznie wprowadzone do karty zdarzenia z systemu zarządzania.

System zarządzania incydentami pomaga także w badaniu incydentów związanych z bezpieczeństwem informacji, dostarczając analitykom informacji o wskaźnikach naruszenia i potencjalnych węzłach infrastruktury informatycznej dotkniętych incydentem.

Monitorowanie obecności podatności w systemach informatycznych

Innym scenariuszem wykorzystania systemu zarządzania podatnościami jest skanowanie na żądanie.

Klient samodzielnie generuje, korzystając z wbudowanych narzędzi lub opracowanego przez nas skryptu, listę tego, co jest zainstalowane na węźle (stacja robocza, serwer, DBMS, pakiet oprogramowania zabezpieczającego informacje, sprzęt sieciowy) oprogramowania systemowego i aplikacyjnego oraz komponentów, przekazuje tę listę do systemu kontroli i otrzymuje raport o wykrytych podatnościach oraz okresowe powiadomienia o ich statusie.

Różnice pomiędzy Systemem a popularnymi skanerami podatności:

  • Nie wymaga instalacji agentów monitorujących na węzłach.
  • Nie powoduje obciążenia sieci, ponieważ sama architektura rozwiązania nie zapewnia agentów i serwerów skanujących.
  • Nie powoduje obciążenia sprzętu, ponieważ lista komponentów jest tworzona za pomocą poleceń systemowych lub lekkiego skryptu open source.
  • Eliminuje możliwość wycieku informacji. „Monitorowanie prospektywne” nie jest w stanie wiarygodnie dowiedzieć się niczego o fizycznej i logicznej lokalizacji lub przeznaczeniu funkcjonalnym węzła w systemie informatycznym. Jedyną informacją opuszczającą kontrolowany obszar klienta jest plik txt z listą komponentów oprogramowania. Plik ten jest sprawdzany pod kątem zawartości i przesyłany do systemu kontroli przez samego Klienta.
  • Aby system działał nie potrzebujemy kont na kontrolowanych węzłach. Informacje zbierane są przez administratora serwisu we własnym imieniu.
  • Bezpieczna wymiana informacji poprzez ViPNet VPN, IPsec lub https.

Połączenie z usługą zarządzania podatnościami Perspective Monitoring pomaga klientowi spełnić wymaganie ANZ.1 „Identyfikacja i analiza podatności System informacyjny I szybka eliminacja nowo zidentyfikowane luki” w zamówieniach FSTEC Rosji nr 17 i 21. Nasza firma jest licencjobiorcą FSTEC Rosji na działalność związaną z techniczną ochroną informacji poufnych.

Cena

Minimalny koszt - 25 000 rubli rocznie za 50 węzłów podłączonych do systemu, jeśli istnieje ważna umowa na przyłączenie

Innym sposobem spojrzenia na ten problem jest to, że firmy muszą szybko reagować, gdy aplikacja zawiera lukę w zabezpieczeniach. Wymaga to od działu IT możliwości ostatecznego śledzenia zainstalowanych aplikacji, komponentów i poprawek przy użyciu automatyzacji i standardowych narzędzi. W branży podejmuje się wysiłki mające na celu ujednolicenie znaczników oprogramowania (19770-2), które są plikami XML instalowanymi wraz z aplikacją, komponentem i/lub łatką, identyfikującymi zainstalowane oprogramowanie, a w przypadku komponentu lub poprawki – jaką aplikacją są część. Tagi zawierają wiarygodne informacje o wydawcy, informacje o wersji, listę plików z nazwą pliku, są bezpieczne skrót pliku i rozmiar, na podstawie których można potwierdzić, że zainstalowana aplikacja znajduje się w systemie i że pliki binarne nie zostały zmodyfikowane przez osoby trzecie. Tagi te są podpisane podpis cyfrowy wydawca.

Gdy znana jest luka, działy IT mogą użyć oprogramowania do zarządzania zasobami, aby natychmiast zidentyfikować systemy zawierające podatne oprogramowanie i podjąć kroki w celu aktualizacji systemów. Tagi mogą stanowić część łatki lub aktualizacji, których można użyć do sprawdzenia, czy łatka została zainstalowana. W ten sposób działy IT mogą korzystać z zasobów, takich jak Krajowa baza danych o lukach w zabezpieczeniach NIST, jako środka do zarządzania narzędziami do zarządzania zasobami, dzięki czemu po zgłoszeniu luki do NVD przez firmę dział IT może natychmiast porównać nowe luki z posiadaną przez nią luką.

Istnieje grupa firm współpracujących za pośrednictwem organizacji non-profit IEEE/ISTO o nazwie TagVault.org (www.tagvault.org) wraz z rządem USA nad standardowym wdrożeniem ISO 19770-2, które umożliwi ten poziom automatyzacji. W pewnym momencie te znaczniki odpowiadające tej implementacji będą prawdopodobnie obowiązkowe w przypadku oprogramowania sprzedawanego rządowi USA w pewnym momencie w ciągu najbliższych kilku lat.

Podsumowując, dobrą praktyką jest nie publikowanie informacji o tym, jakich aplikacji i konkretnych wersji oprogramowania używasz, ale jak wspomniano wcześniej, może to być trudne. Chcesz mieć pewność, że masz dokładny i aktualny spis oprogramowania, że ​​jest on regularnie porównywany z listą znanych luk w zabezpieczeniach, takich jak NVID z NVD, i że dział IT może podjąć natychmiastowe działania w celu usunięcia zagrożenia dzięki najnowszemu wykrywaniu włamań, skanowaniu antywirusowemu i innym technikom blokowania środowiska co najmniej bardzo utrudnią naruszenie bezpieczeństwa Twojego środowiska, a jeśli/kiedy tak się stanie, nie zostanie ono wykryte przez długi czas.

Na starcie inteligentne skanowanie programu Avasta sprawdzi Twój komputer pod kątem następujących typów problemów, a następnie zaproponuje rozwiązania ich rozwiązania.

  • Wirusy: pliki zawierające złośliwy kod, co może mieć wpływ na bezpieczeństwo i wydajność komputera.
  • Wrażliwe oprogramowanie: Programy wymagające aktualizacji, które mogą zostać wykorzystane przez osoby atakujące w celu uzyskania dostępu do Twojego systemu.
  • Rozszerzenia przeglądarki o złej reputacji: Rozszerzenia przeglądarki, które są zwykle instalowane bez Twojej wiedzy i wpływają na wydajność systemu.
  • Słabe hasła: Hasła używane do uzyskania dostępu do więcej niż jednego konto online i można je łatwo zhakować lub naruszyć.
  • Zagrożenia sieciowe: luki w zabezpieczeniach Twojej sieci, które mogą pozwolić na ataki na Twoje urządzenia sieciowe i router.
  • Problemy z wydajnością: obiekty ( niepotrzebne pliki i aplikacjami, problemy związane z ustawieniami), które mogą zakłócać pracę komputera.
  • Konfliktowe programy antywirusowe: programy antywirusowe zainstalowane na komputerze z programem Avast. Dostępność kilku programy antywirusowe spowalnia komputer i zmniejsza skuteczność ochrony antywirusowej.

Notatka. Rozwiązanie niektórych problemów wykrytych przez funkcję Smart Scan może wymagać osobnej licencji. Wykrywanie niepotrzebnych typów problemów można wyłączyć w .

Rozwiązywanie wykrytych problemów

Zielony znacznik wyboru obok obszaru skanowania oznacza, że ​​nie wykryto żadnych problemów w tym obszarze. Czerwony krzyżyk oznacza, że ​​podczas skanowania zidentyfikowano jeden lub więcej powiązanych problemów.

Aby wyświetlić szczegółowe informacje o wykrytych problemach, kliknij Rozwiąż wszystko. Inteligentne skanowanie pokazuje szczegóły każdego problemu i oferuje opcję natychmiastowego naprawienia go poprzez kliknięcie elementu Decydować lub zrób to później, klikając Pomiń ten krok.

Notatka. Dzienniki skanowania antywirusowego można zobaczyć w historii skanowania, do której można uzyskać dostęp, wybierając opcję Ochrona antywirusowa.

Zarządzaj ustawieniami inteligentnego skanowania

Aby zmienić ustawienia Inteligentnego skanowania, wybierz Ustawienia Ogólne Inteligentne skanowanie i określ, dla których z poniższych typów problemów chcesz przeprowadzić inteligentne skanowanie.

  • Wirusy
  • Przestarzałe oprogramowanie
  • Dodatki do przeglądarki
  • Zagrożenia sieciowe
  • Problemy ze zgodnością
  • Problemy z wydajnością
  • Słabe hasła

Domyślnie wszystkie typy problemów są włączone. Aby zatrzymać sprawdzanie konkretnego problemu podczas uruchamiania inteligentnego skanowania, kliknij suwak Dołączony obok typu problemu, tak aby zmienił stan na Wyłączony.

Kliknij Ustawienia obok napisu Skanowanie wirusów aby zmienić ustawienia skanowania.