Zarządzanie podatnościami to identyfikacja, ocena, klasyfikacja i wybór rozwiązania w celu wyeliminowania podatności. Zarządzanie podatnościami opiera się na repozytoriach informacji o podatnościach, z których jednym jest Advanced Monitoring Vulnerability Management System.

Nasze rozwiązanie kontroluje pojawianie się informacji o podatnościach system operacyjny(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 oprogramowanie„Monitoring perspektywiczny” jest automatycznie uzupełniany z następujących źródeł:

  • Bank Danych Zagrożeń Bezpieczeństwa Informacji (BDU BI) FSTEC Rosji.
  • Krajowa Baza Danych Podatności (NVD) NIST.
  • Czerwony Kapelusz Bugzilla.
  • Śledzenie błędów bezpieczeństwa Debiana.
  • Lista mailingowa CentOS.

Używamy również zautomatyzowanej metody do uzupełniania naszej bazy podatności. Opracowaliśmy robota indeksującego i parser danych nieustrukturyzowanych, który każdego dnia analizuje ponad sto różnych źródeł zagranicznych i rosyjskich dla wielu słowa kluczowe- grupy w sieciach społecznościowych, blogi, mikroblogi, media dedykowane technologia informacyjna oraz bezpieczeństwo informacji. Jeśli narzędzia te znajdą coś, co spełnia kryteria wyszukiwania, analityk ręcznie sprawdza informacje i wprowadza je do bazy podatności.

Kontrola luk w zabezpieczeniach oprogramowania

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

Na przykład w modelu firmy Secure Software Developer Life Cycle (SSDLC) Hewlett Packard Kontrola korporacyjna bibliotek zewnętrznych jest jednym z głównych miejsc.

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

Działa to tak:

1. Deweloper przesyła nam listę bibliotek i komponentów firm trzecich, które są używane w produkcie.

2. Codziennie sprawdzamy:

b. czy istnieją metody na wyeliminowanie wcześniej wykrytych luk.

3. Powiadamiamy programistę, jeśli status lub punktacja luki uległa zmianie, zgodnie z określonym wzorem do naśladowania. Oznacza to, że różne zespoły programistyczne w tej samej firmie zostaną powiadomione i zobaczą stan luk w zabezpieczeniach produktu, nad którym pracują.

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

Integracja z ViPNet TIAS

Kompleks oprogramowania i sprzętu ViPNet Threat Intelligence Analytics System automatycznie wykrywa ataki komputerowe i identyfikuje incydenty na podstawie zdarzeń pochodzących z różnych źródeł bezpieczeństwo informacji. Głównym źródłem zdarzeń dla ViPNet TIAS jest ViPNet IDS, który analizuje przychodzący i wychodzący ruch sieciowy na podstawie reguł decyzyjnych AM Rules opracowanych przez Perspective Monitoring. Niektóre sygnatury są napisane w celu wykrywania wykorzystania luk.

Jeżeli ViPNet TIAS wykryje incydent bezpieczeństwa informacji, w którym została wykorzystana podatność, wówczas wszystkie informacje związane z podatnością, w tym metody eliminacji lub kompensacji negatywnego wpływu, są automatycznie wprowadzane do karty incydentu z SMS-a.

System zarządzania incydentami pomaga również w badaniu incydentów bezpieczeństwa informacji, dostarczając analitykom informacji o wskaźnikach naruszenia oraz potencjalnych węzłach infrastruktury informatycznej, których dotyczy incydent.

Monitorowanie obecności podatności w systemach informatycznych

Innym scenariuszem korzystania z systemu zarządzania lukami w zabezpieczeniach jest skanowanie na żądanie.

Klient samodzielnie generuje listę oprogramowania systemowego i aplikacyjnego oraz komponentów zainstalowanych na węźle (stacja robocza, serwer, DBMS, SZI SZI, sprzęt sieciowy) za pomocą wbudowanych narzędzi lub opracowanego przez nas skryptu, przesyła tę listę do SMS-a i odbiera raport o wykrytych podatnościach i okresowe powiadomienia o ich stanie.

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

  • Nie wymaga instalacji agentów monitorowania na hostach.
  • Nie powoduje obciążenia sieci, ponieważ sama architektura rozwiązania nie przewiduje agentów i serwerów skanujących.
  • Nie obciąża sprzętu, ponieważ tworzona jest lista komponentów polecenia systemowe lub lekki skrypt open source.
  • Eliminuje możliwość wycieku informacji. „Monitorowanie prospektywne” nie może wiarygodnie dowiedzieć się niczego o fizycznej i logicznej lokalizacji lub funkcjonalnym celu węzła w systemie informacyjnym. Jedyną informacją, która opuszcza kontrolowaną granicę klienta, jest plik txt z listą komponenty oprogramowania. Ten plik jest sprawdzany pod kątem zawartości i przesyłany do wiadomości SMS przez samego klienta.
  • Aby system działał, nie potrzebujemy kont na kontrolowanych węzłach. Informacje są zbierane przez administratora węzła we własnym imieniu.
  • Bezpieczna wymiana informacje o ViPNet VPN, IPsec lub https.

Połączenie z usługą zarządzania podatnościami „Prospektywne monitorowanie” pomaga klientowi spełnić wymaganie ANZ.1 „Identyfikacja, analiza podatności System informacyjny i szybkie wyeliminowanie nowo zidentyfikowanych luk w zabezpieczeniach ”zlecenia FSTEC Rosji nr 17 i 21. Nasza firma jest licencjobiorcą FSTEC Rosji na działania na rzecz ochrona techniczna poufna informacja.

Cena £

Minimalny koszt to 25 000 rubli rocznie za 50 węzłów podłączonych do systemu z ważną umową na połączenie z

Innym sposobem spojrzenia na ten problem jest to, że firmy muszą szybko reagować, gdy aplikacja ma lukę w zabezpieczeniach. Wymaga to, aby dział IT był w stanie ostatecznie śledzić zainstalowane aplikacje, komponenty i poprawki za pomocą narzędzi automatyzacji i standardowych narzędzi. Trwają wysiłki na rzecz standaryzacji w branży znaczników oprogramowania (19770-2), które są plikami XML instalowanymi z aplikacją, komponentem i/lub poprawką, które identyfikują zainstalowane oprogramowanie, a w przypadku komponentu lub poprawki, jaką aplikacją są część. Tagi zawierają informacje o autorytecie wydawcy, informacje o wersji, listę plików z nazwą pliku, bezpieczny skrót pliku oraz rozmiar, który można wykorzystać do potwierdzenia, że ​​zainstalowana aplikacja znajduje się w systemie i że pliki binarne nie zostały zmodyfikowane przez strona trzecia. Te etykiety są podpisane podpis cyfrowy wydawca.

Gdy usterka jest znana, działy IT mogą wykorzystać swoje oprogramowanie do zarządzania zasobami, aby natychmiast zidentyfikować systemy z podatnym oprogramowaniem i podjąć kroki w celu aktualizacji systemów. Tagi mogą być częścią poprawki lub aktualizacji, której można użyć do sprawdzenia, czy poprawka została zainstalowana. W ten sposób działy IT mogą wykorzystywać zasoby, takie jak NIST National Vulnerability Database jako sposób zarządzania swoimi narzędziami do zarządzania aktywami, dzięki czemu po przesłaniu luki przez firmę do NVD, dział IT może natychmiast porównać nowe luki ze swoimi.

Istnieje grupa firm współpracująca z rządem USA poprzez organizację non-profit IEEE/ISTO o nazwie TagVault.org (www.tagvault.org) nad standardową implementacją normy ISO 19770-2, która umożliwi osiągnięcie tego poziomu automatyzacji. W pewnym momencie te znaczniki odpowiadające tej implementacji będą najprawdopodobniej obowiązkowe dla oprogramowania sprzedawanego rządowi Stanów Zjednoczonych w pewnym momencie w ciągu najbliższych kilku lat.

Ostatecznie więc dobrą praktyką jest nie publikowanie używanych aplikacji i konkretnych wersji oprogramowania, ale może to być trudne, jak wspomniano wcześniej. Chcesz mieć pewność, że posiadasz dokładny, aktualny spis oprogramowania, który jest regularnie porównywany z listą znanych luk w zabezpieczeniach, takich jak NVID NVD, oraz że dział IT może podjąć natychmiastowe działania w celu usunięcia zagrożenia. wraz z najnowszymi intruzami wykrywania, skanowaniem antywirusowym i innymi średnimi metodami blokowania co najmniej bardzo utrudnią narażenie środowiska, a jeśli/kiedy tak się stanie, nie zostanie wykryte przez długi czas .

W niektórych przypadkach występowanie podatności wynika z wykorzystania narzędzi programistycznych różnego pochodzenia, które zwiększają ryzyko wystąpienia w kodzie programu defektów typu sabotaż.

Luki pojawiają się w wyniku dodania do oprogramowania komponentów stron trzecich lub swobodnie rozpowszechnianego kodu (open source). Kod innych osób jest często używany „tak jak jest” bez dokładnej analizy i testowania bezpieczeństwa.

Nie można wykluczyć, że w zespole są poufni programiści, którzy celowo wprowadzają do tworzonego produktu dodatkowe nieudokumentowane funkcje lub elementy.

Klasyfikacja luk w oprogramowaniu

Luki powstają w wyniku błędów, które wystąpiły podczas fazy projektowania lub pisania kod programu.

W zależności od etapu pojawienia się tego typu zagrożenie dzieli się na podatności projektowe, implementacyjne i konfiguracyjne.

  1. Błędy projektowe są najtrudniejsze do wykrycia i naprawienia. Są to nieścisłości algorytmów, zakładki, niespójności w interfejsie między różne moduły lub w protokołach interakcji ze sprzętem wprowadzenie nieoptymalnych technologii. Ich eliminacja jest procesem bardzo czasochłonnym, również dlatego, że mogą pojawić się w nieoczywistych przypadkach - na przykład przy przekroczeniu natężenia ruchu lub podłączeniu dużej ilości dodatkowego sprzętu, co komplikuje zapewnienie wymaganego poziomu bezpieczeństwa i prowadzi do pojawienia się sposobów na ominięcie zapory.
  2. Luki wdrożeniowe pojawiają się na etapie pisania programu lub wprowadzania do niego algorytmów bezpieczeństwa. Są to nieprawidłowa organizacja procesu obliczeniowego, wady składniowe i logiczne. Istnieje jednak ryzyko, że usterka doprowadzi do przepełnienia bufora lub innych problemów. Ich odkrycie zajmuje dużo czasu, a eliminacja polega na naprawieniu pewnych fragmentów kodu maszynowego.
  3. Błędy konfiguracji sprzętu i oprogramowania są bardzo częste. Ich częstymi przyczynami są niedostateczny rozwój jakości i brak testów do prawidłowej pracy. dodatkowe funkcje. Również w tej kategorii są proste hasła a konta domyślne pozostawiono bez zmian.

Według statystyk podatności najczęściej znajdują się w popularnych i rozpowszechnionych produktach – stacjonarnych i mobilnych systemach operacyjnych, przeglądarkach.

Ryzyko korzystania z podatnych programów

Programy, w których się znajdują Największa liczba luki są instalowane na prawie wszystkich komputerach. Ze strony cyberprzestępców istnieje bezpośredni interes w znajdowaniu takich wad i pisaniu dla nich.

Ponieważ od wykrycia luki do opublikowania poprawki (łatki) mija dość długi czas, istnieje wiele okazji do zainfekowania systemy komputerowe przez luki w zabezpieczeniach w kodzie. W takim przypadku użytkownik musi tylko raz otworzyć np. złośliwy plik PDF z exploitem, po czym atakujący uzyskają dostęp do danych.

Zakażenie w tym drugim przypadku następuje według następującego algorytmu:

  • Użytkownik otrzymuje e-mail wiadomość phishingowa od zaufanego nadawcy.
  • Do listu dołączony jest plik z exploitem.
  • Jeśli użytkownik spróbuje otworzyć plik, komputer jest zainfekowany wirusem, trojanem (szyfratorem) lub innym złośliwym oprogramowaniem.
  • Cyberprzestępcy uzyskują nieautoryzowany dostęp do systemu.
  • Kradzież cennych danych.

Badania przeprowadzone przez różne firmy (Kaspersky Lab, Positive Technologies) pokazują, że w prawie każdej aplikacji, w tym w programach antywirusowych, istnieją luki w zabezpieczeniach. Dlatego prawdopodobieństwo ustawienia oprogramowanie, zawierający wady o różnym stopniu krytyczności, jest bardzo wysoki.

Aby zminimalizować ilość luk w oprogramowaniu, konieczne jest użycie SDL (Security Development Lifecycle, secure koło życia rozwój). Technologia SDL służy do ograniczania liczby błędów w aplikacjach na wszystkich etapach ich tworzenia i obsługi. Dlatego podczas projektowania oprogramowania specjaliści ds. bezpieczeństwa informacji i programiści modelują cyberzagrożenia w celu znalezienia podatności. Podczas programowania proces obejmuje: środki automatyczne, natychmiast zgłaszając potencjalne wady. Deweloperzy dążą do znacznego ograniczenia funkcji dostępnych dla niezweryfikowanych użytkowników, co pomaga zmniejszyć powierzchnię ataku.

Aby zminimalizować wpływ luk w zabezpieczeniach i wynikających z nich szkód, musisz przestrzegać kilku zasad:

  • Szybko instaluj wydane przez programistów poprawki (łatki) dla aplikacji lub (najlepiej) włącz tryb automatyczny aktualizacje.
  • Jeśli to możliwe, nie instaluj podejrzanych programów, których jakość i pomoc techniczna powstają pytania.
  • Korzystaj ze specjalnych skanerów luk w zabezpieczeniach lub specjalistycznych funkcji produktów antywirusowych, które umożliwiają wyszukiwanie błędów zabezpieczeń i w razie potrzeby aktualizowanie oprogramowania.

Obecnie opracowano wiele narzędzi do automatyzacji wyszukiwania luk w oprogramowaniu. W tym artykule omówimy niektóre z nich.

Wstęp

Statyczna analiza kodu to analiza oprogramowania, która jest wykonywana na kodzie źródłowym programów i jest implementowana bez faktycznego wykonywania badanego programu.

Oprogramowanie często zawiera różne luki spowodowane błędami w kodzie programu. Błędy popełnione w rozwoju programów w niektórych sytuacjach prowadzą do awarii programu, a zatem normalne działanie programu zostaje zakłócone: w tym przypadku dane są często zmieniane i uszkodzone, program lub nawet system zatrzymuje się . Większość podatności związana jest z nieprawidłowym przetwarzaniem danych otrzymanych z zewnątrz lub niewystarczająco ścisłą ich weryfikacją.

Do identyfikacji podatności wykorzystywane są różne narzędzia, na przykład analizatory statyczne kod źródłowy programy omówione w tym artykule.

Klasyfikacja luk w zabezpieczeniach

Gdy naruszony zostanie wymóg poprawnego działania programu na wszystkich możliwych danych wejściowych, możliwe staje się pojawienie się tzw. luk bezpieczeństwa (luki bezpieczeństwa). Luki w zabezpieczeniach mogą spowodować, że jeden program zostanie użyty do przezwyciężenia ograniczeń bezpieczeństwa całego systemu.

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

  • Przepełnienie bufora. Ta luka występuje z powodu braku kontroli nad tablicą out-of-bounds w pamięci podczas wykonywania programu. Gdy pakiet danych, który jest zbyt duży, przepełnia ograniczony bufor, zawartość obcych komórek pamięci jest nadpisywana, a program ulega awarii i ulega awarii. Poprzez położenie 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).
  • Luki „skażone dane wejściowe” (skażone dane wejściowe). Uszkodzone dane wejściowe mogą wystąpić, gdy dane wejściowe użytkownika są przekazywane bez wystarczającej kontroli do interpretera jakiegoś języka zewnętrznego (zwykle powłoki Unix lub języka SQL). W takim przypadku użytkownik może określić dane wejściowe w taki sposób, aby uruchomiony interpreter wykonał zupełnie inne polecenie niż zamierzone przez autorów podatnego programu.
  • Błędy formatowanie ciągów(podatność na ciąg formatu). Ten typ Luka w zabezpieczeniach jest podklasą luki „uszkodzone dane wejściowe”. Wynika to z niedostatecznej kontroli parametrów podczas korzystania z funkcji formatu I/O printf, fprintf, scanf itp. standardowej biblioteki C. Funkcje te przyjmują jako jeden z parametrów łańcuch znaków A, który określa format wejściowy lub wyjściowy dla kolejnych argumentów funkcji. Jeśli użytkownik może samodzielnie ustawić typ formatowania, ta luka może wynikać z awarii funkcji formatowania ciągów.
  • Luki w wyniku 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 uważać, że na przykład pliki, których używa podczas działania, nie mogą zostać zmienione przez inny program. W rezultacie osoba atakująca, która na czas zastępuje zawartość tych działających plików, może zmusić program do wykonania określonych działań.

Oczywiście poza wymienionymi 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 podczas jego działania.
  • Analizatory statyczne (debuggery statyczne). Narzędzia wykorzystujące informacje zgromadzone podczas statycznej analizy programu.

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

Ten artykuł zawiera omówienie kilku istniejących analizatorów statycznych. Przyjrzyjmy się każdemu z nich.

Podczas uruchamiania inteligentne skanowanie Avast sprawdzi Twój komputer pod kątem następujących rodzajów problemów, a następnie zaproponuje ich rozwiązanie.

  • Wirusy: pliki zawierające złośliwy kod, co może mieć wpływ na bezpieczeństwo i wydajność komputera.
  • Podatne oprogramowanie: Programy, które muszą zostać zaktualizowane i mogą być użyte przez atakujących 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 rachunek w Internecie i może być łatwo zhakowany lub zhakowany.
  • Zagrożenia sieciowe: Luki w Twojej sieci, które mogą umożliwić ataki na twoją urządzenia sieciowe i routera.
  • Problemy z wydajnością: obiekty ( niepotrzebne pliki i aplikacje, problemy związane z ustawieniami), które mogą uniemożliwić działanie komputera.
  • Sprzeczne antywirusy: oprogramowanie antywirusowe zainstalowane na komputerze z oprogramowaniem Avast. Wiele programy antywirusowe spowalnia komputer i zmniejsza skuteczność ochrony antywirusowej.

Notatka. Niektóre problemy wykryte przez Smart Scan mogą wymagać oddzielnej licencji do rozwiązania. Wykrywanie niepotrzebnych typów problemów można wyłączyć w programie .

Rozwiązywanie znalezionych problemów

Zielony znacznik obok obszaru skanowania oznacza, że ​​nie znaleziono problemów z nim związanych. Czerwony krzyżyk oznacza, że ​​skanowanie wykryło co najmniej jeden powiązany problem.

Aby wyświetlić szczegółowe informacje o znalezionych problemach, kliknij rozwiązać wszystko. Inteligentne skanowanie pokazuje szczegóły każdego problemu i oferuje opcję natychmiastowego rozwiązania go poprzez kliknięcie elementu Zdecydować, 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 Ochrona Antywirus.

Zarządzanie ustawieniami inteligentnego skanowania

Aby zmienić ustawienia Inteligentnego skanowania, wybierz Ustawienia Ogólne Inteligentne skanowanie i określ, dla którego z wymienionych typów problemów chcesz uruchomić inteligentne skanowanie.

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

Domyślnie wszystkie typy spraw są włączone. Aby zatrzymać sprawdzanie konkretnego problemu podczas wykonywania inteligentnego skanowania, kliknij suwak Dołączony obok typu sprawy, aby zmienił status na Wyłączony.

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