Jak zapobiegać atakom zero-day


21

Tradycyjnie wszystkie programy antywirusowe i systemy IPS działają przy użyciu technik opartych na sygnaturach. Jednak to nie pomaga bardzo w zapobieganiu atakom zero-day .

Co zatem można zrobić, aby zapobiec atakom zero-day?


1
Oprócz punktów w odpowiedzi, które zasugerowałem poniżej, nawet jeśli uruchamiasz jakieś oprogramowanie wykorzystujące lukę zero-day. Jeśli nie uruchomisz tego systemu w publicznym Internecie, nie będziesz bezpośrednio narażony na atak. Dlatego zapory ogniowe są twoim przyjacielem, a jeśli naprawdę chcesz uruchomić nowe oprogramowanie zabezpieczające przed zagrożeniami, możesz je skonfigurować w innej sieci w chmurze, gdzie może zostać zhakowany i nie wpływać na żadne inne systemy.
Tom H

0-dniowe i nieznane zagrożenia to właśnie powód, dla którego heurystyka jest używana w każdym oprogramowaniu antywirusowym / anty-malware wartym swojej nazwy. Niestety heurystyka jest często wyłączana z powodu spadku wydajności.
John Gardeniers

0days to tylko kategoria, każdy członek tej kategorii różni się bardzo od innych. Nie możesz mieć podejścia, w którym rozważasz wdrożenie zabezpieczeń przeciwko 0 dniom. To jakość twojego systemu bezpieczeństwa ostatecznie zmieni różnicę między udanym włamaniem a niedziałającym exploitem lub wykrytym exploitem. Jak ktoś powiedział, skup się na wykrywaniu i krótkim czasie reakcji. Monitoruj każdy system, ruch i bądź na bieżąco dzięki aktualizacjom bezpieczeństwa. To praca na pełny etat, a przynajmniej powinna być.
Aki

Prawdopodobnie otrzymają stąd dobre odpowiedzi - security.stackexchange.com
Bratch

linux wszędzie. bez okien. zapytaj google.
Neil McGuigan,

Odpowiedzi:


37

Myślę, że uznajesz tam interesującą prawdę sys-admin, to jest to

chyba że możesz zmniejszyć prawdopodobieństwo zhakowania do zera, to w końcu , w pewnym momencie, zostaniesz zhakowany .

To tylko podstawowa prawda matematyczna i prawdopodobieństwa, że ​​dla każdego niezerowego prawdopodobieństwa zdarzenia. Wydarzenie ostatecznie się dzieje ...

Tak więc są to 2 złote zasady zmniejszania wpływu tego wydarzenia „ostatecznie zhakowanego”;

  1. Zasada najmniejszego przywileju

    Usługi należy skonfigurować tak, aby działały jako użytkownik z możliwie najmniejszymi uprawnieniami niezbędnymi do wykonania zadań usługi. Może zawierać hakera nawet po włamaniu się do komputera.

    Na przykład haker włamujący się do systemu wykorzystujący lukę zero-dniową usługi serwera Apache najprawdopodobniej będzie ograniczony do samej pamięci systemowej i zasobów plików, do których ten proces może uzyskać dostęp. Haker byłby w stanie pobrać pliki źródłowe html i php i prawdopodobnie zajrzałby do twojej bazy danych mysql, ale nie powinien mieć możliwości rootowania ani rozszerzenia swoich ingerencji poza pliki dostępne w apache.

    Wiele domyślnych instalacji serwera Apache domyślnie tworzy użytkownika i grupę „apache” i można łatwo skonfigurować główny plik konfiguracyjny Apache (httpd.conf), aby uruchamiał apache przy użyciu tych grup.

  2. Zasada rozdzielenia przywilejów

    Jeśli witryna wymaga dostępu tylko do odczytu do bazy danych, utwórz konto z uprawnieniami tylko do odczytu i tylko do tej bazy danych.

    SElinux to dobry wybór do tworzenia kontekstu bezpieczeństwa, app-armor to kolejne narzędzie. Bastille było wcześniej wyborem do hartowania.

    Zmniejsz konsekwencje każdego ataku, oddzielając moc usługi, która została naruszona, w jej własnym „pudełku”.

Srebrne zasady są również dobre.

Skorzystaj z dostępnych narzędzi. (Jest mało prawdopodobne, że poradzisz sobie tak dobrze, jak chłopaki, którzy są ekspertami w dziedzinie bezpieczeństwa, więc wykorzystaj ich talenty, aby się chronić.)

  1. szyfrowanie kluczem publicznym zapewnia doskonałe bezpieczeństwo. Użyj tego. wszędzie.
  2. użytkownicy są idiotami, wymuszają złożoność haseł
  3. zrozum, dlaczego robisz wyjątki od powyższych zasad. regularnie sprawdzaj swoje wyjątki.
  4. pociągać kogoś do odpowiedzialności za niepowodzenie. trzyma cię na nogach.

Myślę, że to prawda - z definicji niewiele można zrobić, aby zapobiec exploitowi 0-dniowemu. Jeśli masz wrażliwe oprogramowanie, masz wrażliwe oprogramowanie - dlatego jedynym sposobem działania jest zmniejszenie wszelkiego wpływu i powierzchni ataku. Znakomity punkt dotyczący zapór ogniowych, choć warto pamiętać, że exploit 0-dniowy dla MS Outlook może być na przykład wysłany pocztą elektroniczną.
Dan

2
Tak, punkt na temat produktów poczty MS. Ale istnieją analogie do zapór ogniowych dla poczty, na przykład każdy z wyłączonymi wszystkimi rozszerzeniami VBscript, ActiveX, OLE całkowicie przeoczyłby hakowanie całkowicie, błogo nieświadomy rzezi ... ;-)
Tom H

1
+1, ale wrt do Srebrnej Reguły 1 „Kto myśli, że jego problem można rozwiązać za pomocą kryptografii, nie rozumie jego problemu i nie rozumie kryptografii”. - Needham / Lampson;)
Peanut

@Peanut Lubię klucz publiczny, ponieważ pozwala uniknąć używania haseł. Po teoretycznej ingerencji nie ma potrzeby resetowania haseł, ponieważ nie ma żadnych haseł do zresetowania, a tylko klucz publiczny jest zagrożony. Nawet zaszyfrowana baza danych haseł może służyć do weryfikacji kont w trybie offline.
Tom H

@TomH Mój komentarz był zdziwiony :) Ciekawe, więc w twoim systemie prawdopodobnie serwer wysyła klientowi nonce + inne dane do podpisania, a klient używa nazwy użytkownika + podpisanych danych do zalogowania?
Peanut

16

Biała lista, nie czarna lista

Opisujesz podejście z czarnej listy. Podejście do białej listy byłoby znacznie bezpieczniejsze.

Ekskluzywny klub nigdy nie będzie próbował wymienić wszystkich, którzy nie mogą wejść; będą wymieniać wszystkich, którzy mogą wejść, i wykluczać tych, których nie ma na liście.

Podobnie próba wylistowania wszystkiego, co nie powinno mieć dostępu do komputera, jest skazana na niepowodzenie. Bardziej skuteczne byłoby ograniczenie dostępu do krótkiej listy programów / adresów IP / użytkowników.

Oczywiście, jak wszystko inne, wiąże się to z pewnymi kompromisami. W szczególności biała lista jest bardzo niewygodna i wymaga stałej konserwacji.

Aby pójść jeszcze dalej w kompromisie, możesz uzyskać duże bezpieczeństwo, odłączając urządzenie od sieci.


+1 To świetny dodatek do odpowiedzi Toma H.
Chad Harrison

1
Niebezpieczeństwo polega na tym, że zestaw reguł rośnie do rozmiarów, w których nie można go zrozumieć, utrzymać, wyjaśnić, skontrolować. Co jest śmiertelne.
rackandboneman

11

Wykrywanie jest łatwiejsze (i bardziej niezawodne) niż zapobieganie

Z definicji nie można zapobiec atakowi zero-day. Jak zauważyli inni, możesz wiele zrobić, aby zmniejszyć wpływ ataku zero-dniowego, i powinieneś, ale to nie koniec historii.

Chciałbym zauważyć, że dodatkowo powinieneś poświęcić zasoby na wykrywanie, kiedy wystąpił atak, co zrobił atakujący i jak to zrobił. Kompleksowe i bezpieczne rejestrowanie wszystkich działań, które haker mógłby podjąć, ułatwi zarówno wykrycie ataku, jak i, co ważniejsze, określenie wyrządzonych szkód i środków zaradczych wymaganych do odzyskania po ataku.

W wielu kontekstach związanych z usługami finansowymi koszt bezpieczeństwa w odniesieniu do opóźnień i kosztów ogólnych przy wykonywaniu transakcji jest tak wysoki, że bardziej sensowne jest skoncentrowanie zasobów na wykrywaniu i wycofywaniu fałszywych transakcji, a nie podejmowanie szeroko zakrojonych działań mających na celu zapobieganie im w pierwszej kolejności . Teoria jest taka, że ​​żadna ilość miar nie będzie w 100% skuteczna, więc i tak należy zbudować mechanizmy wykrywania i odwracania. Co więcej, takie podejście przetrwało próbę czasu.


1
+1 Tak, myślę, że nie możesz odpowiedzieć, jeśli nie wiesz, że to się wydarzyło ... mając kolejną szansę na odpowiedź, prawdopodobnie utknąłem w czymś o SANS 6 kroków ...
Tom H

+1, bardzo prawda. Zapobieganie wymagałoby audytu. A audyt nie może udowodnić, że system nie ma żadnych wad.
Aki

@Tom, zawsze możesz edytować swoją odpowiedź.
Old Pro

4

Zero dnia nie oznacza, że ​​podpis nie jest znany. Oznacza to, że nie ma łatki dla użytkowników oprogramowania, która zamyka lukę. Dlatego IPS jest przydatny do ochrony przed wykorzystaniem luk w zerowym dniu. Ale nie powinieneś polegać tylko na tym. Twórz solidne zasady bezpieczeństwa i postępuj zgodnie z nimi, wzmacniaj swoje serwery, aktualizuj oprogramowanie i zawsze miej „Plan B”


3

Grsecurity lub SELinux pomagają zapobiegać atakom 0-dniowym poprzez hartowanie jądra.

Cytat ze strony internetowej „Tylko grsecurity zapewnia ochronę przed zero-day i innymi zaawansowanymi zagrożeniami, które kupują administratorom cenny czas, a poprawki luk w zabezpieczeniach trafiają do dystrybucji i testów produkcyjnych”


2

Jeśli używasz Apache, moduły takie jak mod_security mogą pomóc w zapobieganiu typowym wektorom ataków. Dzięki mod_security możesz

  • blokuj żądania wyglądające jak ataki typu SQL injection
  • blokuj klientów, których adresy IP są na czarnej liście na niektórych RBL
  • przekieruj żądanie do innego miejsca, jeśli określone warunki zostaną spełnione
  • blokuj żądania w oparciu o kraj klienta
  • automatycznie wykrywa i blokuje typowe szkodliwe boty

... i dużo dużo więcej. Oczywiście, używając złożonego modułu, takiego jak mod_security, całkiem możliwe jest również blokowanie twoich rzeczywistych klientów, a po stronie serwera mod_security dodaje pewien narzut.

Obowiązkowe jest również aktualizowanie oprogramowania serwera i upewnienie się, że wyłączono każdy moduł i demona, których nie będziesz używać.

Konieczne są ścisłe zasady zapory ogniowej, aw wielu przypadkach dodatkowe ulepszenia bezpieczeństwa, takie jak SELinux lub grsecurity, mogą zatrzymać atak.

Ale cokolwiek robisz, źli ludzie są bardzo cierpliwi, bardzo kreatywni i bardzo wykwalifikowani. Przygotuj szczegółowy plan postępowania po zhakowaniu.


1

Chciałbym dodać kilka brązowych zasad:

  1. W przypadku ujawnienia nie uruchamiaj tego, co nie wymaga uruchamiania.

  2. Nie stań się celem godnym oddanego, ukierunkowanego ataku.

  3. Zabezpieczenie przed takim ukierunkowanym atakiem jest często nieopłacalne / niepraktyczne. Sprawdź, kto może być poważnie zainteresowany przełamaniem czegoś i zacznij od tego.

  4. Uznanie „minimalizacji dostępnych z zewnątrz informacji” i „odejście od dobrze znanych domyślnych” za nic więcej niż bezpieczeństwo przez niejasność (często źle rozumiane jako „bezwartościowe” w przeciwieństwie do „warstwy, która sama w sobie jest niewystarczająca”) i pominięcie ich jest niebezpieczną arogancją. Zamek do włamania na drzwiach nie powstrzyma złodzieja, ale prawdopodobnie powstrzyma wilka.


1

Rozdęta maszyna z ogromnym pakietem zabezpieczeń często zamienia przeciętne komputery osobiste w dinozaury i czterordzeniowe rdzenie w zwykłe stare komputery. Naprawiłem wystarczająco (tysiące), aby zrozumieć, że to w większości prawda. Jeśli rozumiesz, że nie ma 100% bezpieczeństwa, a koszt wydajności spada wykładniczo jako bezpieczeństwo, podczas gdy prawdopodobieństwo infekcji spada tylko liniowo. Większość wyników, gdy przestałem patrzeć na porównania, wynosiło 90% maksimum w teście tysięcy zagrożeń w świecie rzeczywistym, co oznacza, że ​​10% infekcji nie zostało wykrytych lub było zbyt późno. podczas gdy opóźnienie komputera wzrosło od 200 do 900%. OSX ma idealną sytuację, w której nie ma większego znaczenia pod względem bezpieczeństwa, ale ryzyko ataku było mniejsze ze względu na mniejsze cele z zaledwie 4% udziałem w rynku produktów innych niż telefony / podkładki w 2010 roku. To się zmieni, ale nie zmienię się moja filozofia utrzymywania mojego systemu operacyjnego w czystości, chudego i wrednego. Robię to samo dla XP i Win7. Mam ogromny arsenał narzędzi do naprawy, ale potrzebuję tylko jednej aplikacji, aby naprawić wszystkich zarażonych, a to zajmuje tylko 10 do 20 minut, a nie godziny lub dni.

Moje metody, które działają;

  1. Edukuj użytkowników, nie klikaj ostrzeżeń bezpieczeństwa, chyba że naprawdę wiesz, czym są, w przeciwieństwie do setek ROgu, które są kopiami dobrych alertów. Ci, którzy nie mogą zostać przeszkoleni, łatwo zdobywają konta nieadministracyjne i piaskownicowe przeglądarki z wyłączoną Javą i JS. Ale jeśli włączę je dla nich, nie martw się, tylko 15 ~ 20 minut na przywrócenie lub naprawę.

    1. Przywracanie systemu jest dobre, ale ma wiele ograniczeń, jednym z nich jest to, że elementy w folderze Dokumenty i foldery Temp użytkownika są chronione, gdzie nieuczciwe sterowniki mogą zostać zainstalowane i uruchomione oraz zainfekować cię przy następnym uruchomieniu.

    2. UAC jest użyteczny do wielu rzeczy, ale takiej PITA, której nigdy nie używam i polegam na lepszych narzędziach do wykrywania startupów i / lub nowych procesów, w tym między innymi;

      • Winpatrol.com wciąż jest najlepszą inwestycją, którą poczyniłem dla bezpieczeństwa i nadal jest darmowy dla innych. Obejmuje 80% problemów, w których startupy są dodawane przed uruchomieniem i mogą być wykryte i wyłączone lub usunięte przez monit użytkownika. Jeśli jednak jesteś niespokojny i nie możesz podejmować decyzji, weź pigułkę lub skorzystaj z Windows Defender . Nie najlepszy do pokrycia, ale jeden z najwyższych dla współczynnika huk / buck. Ochrona / utrata wydajności lub wzrost współczynnika opóźnienia.

      • Narzędzie startowe Mike Lin jest najlżejszym przechwytywaniem startupów, które są przechowywane w kilkunastu lokalizacjach rejestru

      • Script Guard to przydatny przechwytywacz skryptów dla skryptów kiddy

      • ProcessGuard to stary niedziałający program, który działa jak zapora ogniowa dla każdego nowego możliwego do wyegzekwowania, ale nie daje ci aprobaty, jednak jest bezpieczny i pochodny po zaakceptowaniu zaufanego źródła lub zignorowaniu lub zablokowaniu niezaufanego źródła.

      • Dodatek do czarnej listy dla przeglądarki jest podobny do Web of trust (WOT) , ale Chrome ma część zawartą w podobny sposób, ale w mniejszym stopniu.

      • czarna lista może stać się ogromna dla plików HOSTS, a jeśli jej użyjesz (> 1 MB jest ogromny, gdy skanowany jest w fragmentach 4KB co 10 minut., Ale jeśli to zrobisz, zdecydowanie zalecamy wyłączenie usługi buforowania DNS, aby zmniejszyć zbędne okresowe skanowanie przez każdą aplikację, która jest aktywny z uprawnieniami zapory ogniowej.

      • Wyłącz indeksowanie plików, jeśli tak naprawdę nie używasz go do wiadomości e-mail i innych rzeczy, ponieważ spawnuje Twój pakiet AV, aby skanować każdy plik, do którego uzyskiwany jest dostęp za każdym razem, raz po raz ... jak redundantne.

Niektórzy mogą zrobić wyjątek od tej częściowej listy z góry mojej głowy, ale oszczędzam czas na zabezpieczanie komputera i pracę w chudym środowisku. Regularne audyty potwierdzające moje bezpieczeństwo przeprowadzane są w nocy, co dowodzi, że moja bezproblemowa praktyka jest uzasadniona. Wciąż mam tysiąc dzienników HJT, dzienników combofix.txt i dzienników Runscanner, aby poprzeć moje opinie na temat leków i lepszego bezpieczeństwa / równowagi między wynikami.

  • Unikaj nieostrożnego pobierania / instalowania plików exe lub Windows Media, które mogą wykonywać skrypty (np. WMA, .WMV) w przeciwieństwie do .mp3 lub .avi.

  • Unikaj wszystkich reklam kierowanych na duże przyciski, aby pobrać lub zaktualizować zabezpieczenia, które mogą odwracać Twoją uwagę od bezpłatnej aktualizacji agregatorów pobierania, takich jak hippo dot com .. cnet nie jest zły. Bądź bardzo ostrożny. Niektóre witryny używają reklam firm zewnętrznych i nie mają kontroli treści.

  • Udokumentowałem jeden perect przykład w 10-stronicowej prezentacji PowerPoint, jeśli ktoś jest zainteresowany, zapytaj. Jak łatwo zignorować powyższy adive może Cię zainfekować.

Wszystko na teraz.

Tony Stewart EE od 1975 roku.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.