Pytanie:
Czy zasadniczo możliwa jest infrastruktura serwerowa, której najmądrzejszy człowiek nie może złamać?
J.Todd
2015-08-25 08:45:06 UTC
view on stackexchange narkive permalink

TL;DR:

Być może przesadziłem ze szczegółami mojego pytania, ale chciałem mieć pewność, że pytanie jest jasne, ponieważ temat wydaje się bardzo szeroki. Ale oto ona. Słowo „najmądrzejszy” ma znaczenie fundamentalne, a nie dosłowne.

Czy infrastruktura serwera jest zasadniczo możliwa, której najmądrzejszy człowiek nie może naruszyć?

Tło:

Czytałem artykuły o włamaniach na serwery wielkich banków (lub oszukańczych witryn), aw jednym artykule opartym na wywiadzie z firmą zajmującą się bezpieczeństwem internetowym zainteresowaną tą sprawą, specjalista stwierdził, że wysoko wykwalifikowane organizacje przestępcze, zwłaszcza w Chinach i Rosji, które dysponują ogromnymi zasobami, narzędziami i niektórymi z „najlepszych” hakerów na świecie, a ten specjalista twierdził, że „nie ma systemu na ziemi” (podłączonego do sieci, oczywiście), których nie mogli skompromitować dzięki dostępnym zasobom.

(Serwer sieciowy) Bezpieczeństwo informacji jest jak szachy:

Nie jestem zbyt wielkim graczem w szachy i nie jestem zbyt wielkim graczem informacyjnym. ekspertem, ale jestem programistą, który pisze oprogramowanie serwerowe i to mnie interesuje. Pomijając wszelkie czynniki szachów, które mogą zniweczyć mój scenariusz, na przykład osoba, która porusza się pierwsza, ma przewagę lub coś w tym rodzaju, wyobraź sobie bezpieczeństwo informacji jako grę w szachy między dwoma najlepszymi szachistami na świecie.

Klasyczny: Jeśli ty i ja zagramy w szachy, wygra ten, który ma większe umiejętności, wiedzę i inteligencję w zakresie gry w szachy.

Zaprogramowany scenariusz 1: A może, jeśli zagramy w grę cyfrowo, wygra ten z nas, który napisze najmądrzejsze oprogramowanie do gry w szachy.

Scenariusz programowany 2: Albo, a oto klucz, być może jest możliwe, abyśmy oboje byli tak dobrzy zarówno w szachach, jak iw programowaniu, że oboje piszemy tak dobre programy komputerowe do gry w szachy że żaden z naszych programów nie może wygrać, a gra kończy się impasem.

Weźmy pod uwagę infrastrukturę serwerową, na przykład serwer bankowy lub serwer aplikacji, który musi komunikować się z klientami w sieci, ale która nie może pozwolić stronom przestępczym na włamanie się do jej magazynów danych.

  • Bezpieczeństwo tej infrastruktury serwerowej może być albo takie jak w Scenariuszu programowanym 1 , co oznacza, że ​​bez względu na wszystko, kto ma najlepsze oprogramowanie i wiedzę na temat bezpieczeństwa informacji, na przykład ludzie, którzy wymyślają strategie bezpieczeństwa, zawsze będą mieli szansę przebić się przez obronę infrastruktury serwerowej, bez względu na to, jak jest ona bezpieczna. Żadna doskonała obrona nie jest zasadniczo możliwa.

  • Lub może to być jak w Zaprogramowanym scenariuszu 2 , w którym zasadniczo możliwe jest opracowanie infrastruktura serwerowa wykorzystująca strategię bezpieczeństwa, której (zasadniczo) nie może pokonać mądrzejszy program. Doskonała obrona jest zasadniczo możliwa.

Pytanie

Więc która to jest?

Szukasz dobrze zdefiniowanej równowagi w grze z ogromną niepewnością. Nie ma tu równowagi statycznej, tylko wyścig zbrojeń. Wyścig zbrojeń bez zasad - wszystko idzie, jak powiedział @schroeder, batony czekoladowe i gumowe węże. Aha, i kobiety (lub mężczyźni). Gra jest stara, nazywa się wojna.
@DeerHunter To do przyjęcia. Ale bez bardzo dogłębnego przestudiowania tego tematu, bez rozległej wiedzy o podstawach bezpieczeństwa serwerów, nie mogłem osobiście określić, czy istnieją podstawowe zasady, które mogą spowodować impas dzięki udoskonalonej strategii bezpieczeństwa.
„Czy zasadniczo możliwa jest infrastruktura serwerowa, której najmądrzejszy człowiek nie może złamać?” Tak. Niestety, oznacza to, że ktoś inny, kto nie jest tak mądry, kto nie jest tak dobrze zorientowany w tym, jak powinny działać rzeczy, po prostu naruszy to, będąc głupim i próbując rzeczy, których żadna wykształcona osoba nie rozważałaby zrobienia, ponieważ tak nie działa.
@JonathanTodd Pozwólcie, że zaoszczędzę wam zatem wiele wysiłku: odpowiedź brzmi „nie”. Dopóki będą ludzie, którzy powinni mieć dostęp do danych, będzie istniała luka do wykorzystania dla ludzi, którzy * nie powinni *.
Tak. Istnieje sposób, aby zapobiec włamaniu do serwera. Wszystko, co musisz zrobić, to zamknąć go w trwale zamkniętym pudełku. Następnie umieść pudełko w sejfie i wrzuć sejf do Rowu Mariana. A potem może wypełnić wspomniany rów betonem.
W szachach - jeśli rozegrasz 1000 gier, wygrasz 999 i przegrasz 1, prawdopodobnie zostaniesz uznany za mistrza. Jeśli chodzi o bezpieczeństwo - jeśli zagrasz 1000 „gier” i wygrasz 999 i przegrasz 1, masz przerąbane.
@Shadur Konsekwencją tego jest to, że będąc MOŻESZ mieć doskonale bezpieczny system, o ile nie ma żadnych użytkowników. :)
- Och, ale musisz podróżować przez te lasy raz po raz i musisz mieć szczęście, że za każdym razem unikasz wilka, ale wilk potrzebuje tylko tyle szczęścia, by znaleźć cię raz.
Bezpieczeństwo to sztuka tworzenia warstw kontroli, które minimalizują straty w przypadku naruszenia jakiegoś aspektu bezpieczeństwa. W przypadku bezpieczeństwa komputerowego tworzenie warstw i dzielenie systemów w celu zminimalizowania strat jest w najlepszym przypadku trudne. Jednak zabezpieczenia warstwowe to najlepszy sposób, aby zapobiec naruszeniom i zminimalizować utratę danych, jeśli i kiedy nastąpi naruszenie.
To nie jest jak szachy, ponieważ sytuacja nie jest symetryczna. To asymetryczna gra, w której jedna strona ma dużą przewagę nad drugą i może wygrać tylko wtedy, gdy druga strona popełnia wyjątkowo głupie błędy.
Udowodniona poprawność jest zasadniczo możliwa w informatyce. Uprość protokół lub system, który ma być zaimplementowany, i może to być praktyczne. Ale jest problem - wymagania komercyjne rzadko kiedy idą w parze z kompromisami w zakresie czasu rozwoju, kosztów i złożoności funkcji niezbędnych do udowodnienia implementacji. (Zastosuj `eval`, a masz problem z zatrzymaniem; wszystkie zakłady są wyłączone!)
@JamesRyan, a zrobienie tego może być realną możliwością w przyszłości. Ktoś, komu zależy na zabezpieczeniu serwera, powiedzmy, rząd Stanów Zjednoczonych, prawdopodobnie będzie mógł użyć sztucznej inteligencji (która w przeciwieństwie do ludzi może być zamknięta w pokoju bez dostępu do „batonów czekoladowych”), aby opracować sprawdzone mikro jądro, sprawdzone mini język dla tego jądra i sprawdzony prosty serwer z tym językiem, z jednym dowódcą (tylko jednym człowiekiem w systemie), który jako jedyny miałby możliwość umieszczenia błędu w obronie systemu.
Nie pamiętam, kto to powiedział, ani dokładnego cytatu, ale coś w tym stylu: „Ludzie twierdzący, że coś jest całkowicie niezawodny, zwykle nie doceniają pomysłowości totalnych głupców”.
Trzynaście odpowiedzi:
schroeder
2015-08-25 09:09:30 UTC
view on stackexchange narkive permalink

„Żadna idealna obrona nie jest zasadniczo możliwa.”

W szachach masz 64 pola, 2 osoby grające i jeden zestaw niezmiennych, powszechnie znanych zasad.

W infrastrukturach serwerowych istnieje niezliczona liczba zasobów i sposobów podejścia do tych zasobów, nieznana liczba osób grających oraz zasady, które stale się zmieniają, a gracze celowo próbują naginać, łamać lub omijać zasady.

Rozważ dwa elementy, które potwierdzą mój punkt widzenia: zero dni i batony .

Po pierwsze, zero dni zmienia zasady podczas gry. Podczas gdy jedna strona czerpie korzyści z tego elementu, druga strona nie jest świadoma korzyści i prawdopodobnie nadal nie jest w stanie przeciwdziałać tym atakom, nawet jeśli są one ostatecznie znane. Każdy dzień zerowy to nowa zasada, która jest nierównomiernie stosowana w grze. Nawet jeśli można opracować i doskonale zastosować „udoskonaloną strategię bezpieczeństwa”, zero dni może oznaczać, że strategia jest zbudowana na nieznanych słabościach, które mogą nigdy nie być znane stronie broniącej.

Po drugie, batony czekoladowe potrafią bardziej łamie bezpieczeństwo infrastruktury niż jakikolwiek inny element. Chodzi mi o to, że można przekupić lub skusić ludzi do „zmiany stron” i przyznania przewagi stronie przeciwnej, czasami za coś tak małego jak tabliczka czekolady (jak pokazują badania). Phishing, łapówki, wycieki danych itp. Są częścią ludzkiej strony gry, której technologia nie może w pełni wyjaśnić. Dopóki w infrastrukturze jest człowiek z władzą, zawsze będzie istniała słabość systemu.

Co robić?

W historii widzimy wiele sytuacji, w których masowa próba obrony została pokonana przez coś małego i nieprzewidzianego (np. Wielki Mur bram Chin otworzył się dla konkubiny, która była podwójnym agentem Mongołów). Celem obrońców nie jest zamontowanie idealnej obrony, ale raczej zaprojektowanie odpornej i przejrzystej infrastruktury, w której ataki można szybko zobaczyć i na nie zareagować. Nie wyższe mury, ale bardziej czujna milicja. Nie niezachwiane fundamenty, ale wymienna architektura.

Chciałbym wiedzieć, co się stanie, jeśli usuniesz tabliczki czekolady. Uważam, że w zasadzie możliwe jest samodzielne zaprojektowanie całej architektury serwera, zamknięcie serwera w pudełku i połknięcie klucza. Wtedy mamy tylko zero dni na grę.
Tak - ulepszyłem sekcję zero day. Pamiętaj, że nawet w przypadku planu zamka / pudełka / jaskółki istnieje wiele * innych * ludzkich elementów strategii, które mogą powodować problemy. Zasilanie, połączenie sieciowe, konserwacja, łatanie itp. - wszystko to ma znaczenie w pewnym momencie strategii. Nie słyszałem jeszcze ani nie wymyśliłem planu, który mógłby wyjaśnić wszystkie ludzkie elementy w grze.
Pracowałem z jednym młodym absolwentem bezpieczeństwa sieci, który był bardzo zainteresowany możliwymi atakami na nasze systemy. Kiedy mówiłem o różnych atakach, których już doświadczyliśmy, odrzucił je wszystkie jako ataki „społeczne”, a zatem ostatecznie nieinteresujące. Kiedy staliśmy pośrodku centrum danych z wieloma szafami serwerowymi, urządzeniami klimatyzacyjnymi, zasilaczami, kablami i migającymi światłami, zwróciłem się do niego i wykrzyknąłem: „To WSZYSTKIE systemy społecznościowe! Istnieją systemy do użytku przez ludzi!” Wiem, że brzmiało to banalnie, ale wbiło mi się w oczy, dlaczego nie powinno być wytłumaczenia tego, co techniczne i społeczne.
Mimo wszystko, jeśli nie masz nic przeciwko temu, rozważ scenariusz, w którym osobiście generuję moc, wykonuję konserwację i sam nakładam łatki. W końcu to realistycznie sprawdzalna okoliczność, mogłem siedzieć w pustym pokoju, uruchomić generator z moim serwerem zamkniętym w pudełku i zastosować własne aktualizacje. Tabliczki czekolady można wyeliminować w wystarczająco małej (tylko ja) operacji, jeśli ktoś chce się wystarczająco mocno postarać.
Mimo to, usuwając ludzki element obrony, strateg nie pracuje z pełną wiedzą ani nawet pełną kontrolą własnych systemów. Infrastruktura jest zbudowana na połączonej macierzy pracy innych ludzi i systemów zależnych. Awaria w którymkolwiek z tych elementów (jak dzień zerowy) pokonuje nawet najdoskonalszą obronę. A co z budowaniem wszystkiego od podstaw? System operacyjny, oprogramowanie układowe, protokoły, szyfrowanie itp.?
Och, masz na myśli własne obliczeniowe warstwy abstrakcji. Takich jak jądro i system operacyjny. Tak, załóżmy, że strona serwera tak bardzo dba o bezpieczeństwo (jeden bank wydaje w tym roku ćwierć miliarda dolarów), że opracowuje całe jądro i system operacyjny od podstaw. W rzeczywistości załóżmy, że właściciel firmy, zainteresowany bezpieczeństwem, programuje jądro, system operacyjny i serwer od podstaw i projektuje je bez błędów bez żadnej pomocy. Jesteśmy tutaj fundamentalni i to jest naprawdę możliwe, jeśli poświęci się temu lata.
@JonathanTodd To niemożliwe w ciągu ludzkiego życia dla systemu operacyjnego z jakąkolwiek znaczącą funkcjonalnością (według dzisiejszych standardów). bezbłędny system operacyjny, prawdopodobieństwo, że ty lub ja możemy, jest dość małe.
@reirab Nie chcę dalej rozszerzać tego wątku komentarzy, ale mówimy o systemie operacyjnym, który * tylko * musi obsługiwać oprogramowanie serwera. Zasadniczo 1% funkcji tego rodzaju systemu operacyjnego, o którym mówisz. Jądro jest tutaj zdecydowanie najwięcej, ale najlepsi programiści są w stanie opracować samo jądro, mając dużo czasu. W końcu mamy jądra do wykorzystania jako odniesienie, wystarczy je przeprojektować, aby wyeliminować wady, które mogą zostać potencjalnie wykorzystane do zagrozenia systemowi. Ponownie, moje pytanie dotyczy podstaw, a nie wykonalności ...
A w szachach twój przeciwnik musi czekać na swoją kolej, aż wykonasz jeden ruch, ale tutaj twój przeciwnik może wykonać milion ruchów, zanim nawet otrzymasz alert, że coś jest nie tak z twoim serwerem :)
@jonathantodd W rzeczywistości Twój oryginalny komentarz sprawia, że ​​0 dni * jest gorsze *, ponieważ teraz nie masz możliwości dostać się do komputera, aby je naprawić po ich wykryciu.
Kontynuując analogię szachową, możemy argumentować, że można obalić fundamentalne założenie, że silniejszy gracz wygrywa, pozwalając słabszemu graczowi przynieść broń i strzelić do arcymistrza przed rozpoczęciem gry.
Uwaga: Wielki Mur Chiński nie został zaprojektowany, aby powstrzymać najeźdźców przed wejściem, ale aby opóźnić złodziei załadowanych kosztownościami na tyle, aby można było ich złapać, zanim wyjdą. Nie jestem pewien, czy istnieje analogia w bezpieczeństwie informacji.
Okazuje się, że ta odpowiedź była technicznie błędna, ponieważ moje pytanie dotyczy podstawowych możliwości, a nie wykonalności.
pjc50
2015-08-26 20:35:11 UTC
view on stackexchange narkive permalink

Bezpieczeństwo można udowodnić, ale musisz zrozumieć, co zostało udowodnione

https://sel4.systems/FAQ/proof.pml

Nasz dowód w języku naturalnym wysokiego poziomu jest następujący:

Kod binarny mikrojądra seL4 poprawnie implementuje zachowanie opisane w jego abstrakcyjnej specyfikacji i nic więcej. Ponadto specyfikacja i plik binarny seL4 spełniają klasyczne właściwości bezpieczeństwa zwane integralnością i poufnością.

Integralność oznacza, że ​​danych nie można zmieniać bez pozwolenia, a poufność oznacza, że ​​danych nie można odczytać bez pozwolenia.

Nasz dowód idzie nawet o krok dalej i pokazuje, że danych nie można wywnioskować bez pozwolenia - do pewnego stopnia. Wiadomo, że istnieją tak zwane boczne kanały informacyjne (zwane również kanałami ukrytymi). Dowód obejmuje tylko te kanały wnioskowania informacji, które są obecne w modelu formalnym: dowód poufności obejmuje wszystkie kanały przechowywania w jądrze, ale wyklucza kanały czasowe, którymi trzeba się zająć empirycznie.

A więc , dlaczego nie wszyscy używają po prostu sel4? (Obecnie miejscem, w którym najprawdopodobniej go napotkasz, jest procesor TrustZone niektórych urządzeń Apple).

Odpowiedź jest taka, że ​​dowód dotyczy tylko jądra, a nie żadnego oprogramowania przestrzeni użytkownika, które możesz chcieć uciec. Na przykład nie ma sprawdzonego bezpiecznego serwera internetowego, nie mówiąc już o implementacji języka dla aplikacji, które chcesz na nim uruchomić. Musisz także udowodnić, że Twoja aplikacja internetowa jest bezpieczna. Opracowanie tych rzeczy będzie wymagało bardzo dużej inwestycji, której żadna duża firma nie jest zainteresowana.

Systemy o wysokim poziomie bezpieczeństwa są zwykle atakowane w punkcie zarządzania kluczami i logowaniem

Nie ma znaczenia, jak bezpieczny jest system, jeśli administrator przez pomyłkę zostawił swoje hasło w programie pastebin. Niedawno widzieliśmy, jak pracownik TSA opublikował na Twitterze zdjęcie (fizycznych) kluczy głównych TSA do zamków bagażowych, więc teraz wszystkie te klucze zostały naruszone. Słabe hasła, hasła zgadywalne, niezabezpieczone hasła, niewłaściwe tokeny zabezpieczające sprzęt, skopiowane odciski palców: wszystko to są możliwe wektory ataku.

O rany, widzisz, ta odpowiedź szczerze odpowiada na moje pytanie dokładniej niż jakiekolwiek inne. Wszyscy inni mówią o wykonalności, ale moje pytanie brzmiało dosłownie * czy zasadniczo możliwe jest zabezpieczenie serwera WWW, tak aby bez względu na poziom inteligencji mój przeciwnik nie mógł narazić mojego systemu? * - I zgodnie z tym możemy założyć serwer i język zostały opracowane, które to robią. Podczas gdy usunięcie „batonów czekoladowych” jest trudniejsze, można to zrobić, gdy jeden człowiek sam kontroluje konserwację przy pomocy sztucznej inteligencji.
Na przykład prezydent USA w 2115 r. (Za 100 lat, zakładając, że sztuczna inteligencja została już wtedy dopracowana) może poinstruować genialne oprogramowanie AI, aby zbudowało sprawdzone mikro jądro, język, a tym samym serwer sieciowy, i zablokowało komputer i serwer AI w pokoju, aby mógł uzyskać dostęp do kodów lub czegoś szalenie tajnego zdalnie bez noszenia sekretu, zakładając, że może ich potrzebować w jednej chwili. Naprawdę daleko idący ekstremalny przykład, ale pokazuję tylko model, w którym sprawdzony serwer sieciowy może być zarówno odpowiedni, jak i możliwy bez ludzkiej słabości w mieszance.
Doskonała odpowiedź. To jedyna odpowiedź, która * faktycznie * odpowiada na pytanie zgodnie z zamierzeniami.
Dzięki - widziałem to pytanie od kilku dni i nikt nie wspomniał, że niektóre formy zachowania oprogramowania można udowodnić. Ludzi daje się ponieść interpretacji Turinga, ale „sztuczna inteligencja” jest bardzo magicznym słowem wymachującym ręką i jest mało prawdopodobne, aby pojawiły się jakiekolwiek dowody na jej zachowanie. A może prezydent ustawia kod taki sam jak jego bagaż: http://arstechnica.com/tech-policy/2013/12/launch-code-for-us-nukes-was-00000000-for-20-years/
@pjc50 Przeczytałem ten artykuł, tak, generałowie omijali protokoły bezpieczeństwa, jak wszyscy inni, dlatego sugeruję użycie AI dla przyszłej możliwości zarządzania systemem, który ma potrzeby bezpieczeństwa, które mają ogromne znaczenie, takie jak te wystrzeliwanie rakiet kody. Sztuczna inteligencja może wydawać się czarodziejską różdżką, ale technologia jest bardziej „kiedy” nie ”, jeśli”, a sztuczna inteligencja nie musiałaby być sprawdzana, ponieważ można ją zabezpieczyć, eliminując wszelki dostęp z zewnątrz (w tym internet) inny niż za pośrednictwem osobista wizyta jedynego odpowiedzialnego administratora systemu.
Wśród moich powodów do sceptycyzmu jest pomysł, że sztuczna inteligencja na poziomie genialnym będzie całkowicie szczęśliwa uwięziona na zawsze w izolowanym pudełku z tylko atomowym systemem startowym dla firmy ...
Czy wiesz, czy mogę mieć komputerowy system operacyjny z sel4? Tylko dla kopnięć i chichotów!
@PyRulez, wygląda na to, że można go uruchomić na komputerze stacjonarnym, chociaż zapisywanie wszystkich narzędzi przestrzeni użytkownika, które chcesz, jest wymienione na stronie „przyszłe projekty”.
@pjc50 to bardzo przyjemna ocena. Przewiduję, że będzie to problem dla firm, które chcą wykorzystać sztuczną inteligencję. Myślę, że prawdziwie świadomy będzie nawet objęty swego rodzaju prawem „praw człowieka” poprzez uniwersalną wersję wykraczającą poza ludzi ... Mimo to rozwiązaniem, które rozważałem, jest ewolucja sztucznej inteligencji w laboratorium, która osiąga szczęście od pomocy konkretnej osobie lub grupie. W końcu wolna wola to kwestia perspektywy. Podejrzewam, że gra w Boga ma kilka zalet.
@JonathanTodd: „Zasadniczo możliwe”, o ile ignorujesz fakt, że rzeczywiste systemy, takie jak używane w prawdziwym świecie, zawsze będą miały element ludzki; a także, że konfiguracja serwera i oprogramowanie będą zawsze w ciągłym ruchu. Wątpię, czy każdy, kto korzysta z serwerów do rzeczywistych aplikacji, będzie mógł pozwolić sobie na to, aby wszystkie aktualizacje były zawsze matematycznie udowodnione, że są niezniszczalne. Tak więc, poza eksperymentem myślowym, który ignoruje rzeczywisty świat i / lub opiera się na słowie „AI”, usuwa wszelkie problemy, odpowiedź brzmi „nie”.
Istnieje również dość duża lista założeń wymaganych dla tego dowodu, na przykład, że sprzęt również jest poprawny, i że cały zestaw w nim jest poprawny, a program ładujący jest poprawny, i zawiera jedno założenie, które zawiera nawet stwierdzenie wiem, że tak nie jest ”. więc nie jest to nawet twierdzenie, że dowód poufności jest rzeczywiście kompletny, tylko że jest odpowiedni dla pewnych ścieżek. W połączeniu z brakiem kontroli nad łańcuchem dostaw i prawdopodobnie nie jest to możliwe (patrz http://www.darpa.mil/program/vetting-commodity-it-software-and-firmware)
@TeemuLeisti Artificial Intelligence to już nie bajkowy pomysł z książki science-fiction. Mamy już postęp w tej dziedzinie i nie jest to już kwestia „czy”, ale „kiedy”. A * kiedy * sztuczna inteligencja stanie się dopracowaną technologią, będziemy mieli nową zdolność do utrzymania sprawdzonego systemu bez błędów ludzkich - w połączeniu z ideą, której nauczyła mnie wybrana odpowiedź, naszą zdolnością do udowodnienia bezpiecznego systemu, eliminuje to ludzkie błędy, największe bezpieczeństwo wada i umożliwia stworzenie doskonale bezpiecznego serwera WWW *. Nie tanie, niełatwe, mało wykonalne, ale zasadniczo możliwe. I to było moje pytanie.
@JohanthanTodd Assertions bez żadnego dowodu. Twoje pytanie zasadniczo brzmi: „czy jest możliwe zbudowanie sztucznej inteligencji, która może odeprzeć wszystkie ataki na integralność serwera?” Odpowiedź na to pytanie jest w powietrzu.
Czy empirycznie bezpośrednio nie oznacza czegoś mniej niż absolutna doskonałość?
@TeemuLeisti nie, to głupie. Nie zakładam sztucznej inteligencji, która ma super moce, a jedynie zdolność do obsługi (aktualizowanie sprawdzonych modułów kodu), aby ludzie, których można wyłudzić, nie byli częścią systemu. Jeśli system jest sprawdzony, dlaczego ataki miałyby zostać odrzucone?
@ColorQuestor OK, może źle zrozumiałem. Jednak wciąż mam dokuczliwe uczucie, że ten sposób uzyskania infrastruktury serwerowej „odpornej na włamania” jest bardziej eksperymentem myślowym niż czymś, co może mieć zastosowanie w prawdziwym życiu, które jest zawsze skomplikowane i chaotyczne. W każdym razie, wycofuję się z dyskusji.
@TeemuLeisti Chociaż dla większości jest to niepraktyczne, absolutnie nie jest to tylko eksperyment myślowy.Na przykład systemy wojskowe często używają półformalnie zweryfikowanego mikrojądra INTEGRITY-127B, a usługi IIS firmy Microsoft mają formalnie zweryfikowaną implementację protokołu HTTP (HTTP.sys).Innym przykładem są systemy ocenione na poziomie EAL7 (INTEGRITY to EAL6).
Ostatecznie cała formalna weryfikacja złożonego systemu, takiego jak serwer, polega na opracowaniu formalnego i konkurencyjnego drzewa ataków oraz weryfikacji znacznie zmniejszonej ilości kodu, który jest zagrożony.
Cort Ammon
2015-08-25 10:45:53 UTC
view on stackexchange narkive permalink

Nikt nie znalazł żadnego szczególnego powodu, by sądzić, że znalazł taki system.

Wspomniałeś o szachach, które są fajną grą na siatce 8x8. Weź pod uwagę, że nowoczesny serwer jest nieco bardziej skomplikowany. Zamiast tego zagrajmy na planszy 65536x65536, aby była bardziej realistyczna. Ponadto w szachach im więcej grasz, tym mniej pozycji jest możliwych. Zamiast tego bardziej realistyczny system jest podobny do Go. Im więcej grasz, tym bardziej splątana może być pozycja. Zauważę, że gra w Go sprawia, że ​​nasza praca na komputerach Chess wydaje się mizerna.

Conway, mniej więcej w 1970 roku, próbował rozdzielić grę w Go. Odkrył, że często plansza wydaje się być podzielona na podgry, z których każda rozgrywa się w swoim miejscu, aby dodać się do ostatecznego zwycięzcy. Odkrył, że sposób, w jaki pracowali razem, był bardzo skomplikowany. W rezultacie odkrył liczby surrealistyczne, schemat liczbowy, który jest dosłownie większy niż liczby rzeczywiste, których używamy w fizyce. Nie żartuj, w rzeczywistości łatwiej jest przewidzieć pogodę na całym świecie niż wygrać w Go przez dziel i zwyciężaj. Czy może tu być przypadek „wygranej”? Być może. Powodzenia w znalezieniu tego. Jedynym sposobem, aby mieć pewność, jest uwzględnienie całej planszy 65536x65536 naraz.

Kevin Mitnick w jednej ze swoich książek skomentował w ten sposób:

Jedyny naprawdę bezpieczny komputer to taki, który jest odłączony od Internetu, wyłączony, odłączony, przechowywany w betonowym bunkrze pod uzbrojoną strażą. A nawet wtedy sprawdzałem to od czasu do czasu ”.

Tsk. Zarówno uzbrojony strażnik, jak i okresowe kontrole to potencjalne drogi ataku.
Steffen Ullrich
2015-08-25 10:26:31 UTC
view on stackexchange narkive permalink

Porównanie z szachami jest interesujące, ponieważ pokazuje, czym nie jest ochrona systemu. W porównaniu do szachów, gra między dobrymi i złymi ludźmi w zakresie bezpieczeństwa IT nie ma ustalonych reguł, nie wiesz, kim są twoi przeciwnicy i możesz zostać zaatakowany poza szachownicą. A jeśli przeciwnik straci figurę, może po prostu zdobyć nową, a ty nie.

  • Masz ograniczone zasoby (czas, pieniądze, wiedzę), aby chronić swoje systemy. Atakujący również mają ograniczone zasoby, ale jeśli jesteś interesującym celem, będzie wystarczająco dużo zainteresowanych hakerów, którzy w sumie mogą mieć więcej zasobów niż ty.
  • Mając te ograniczone zasoby, musisz zabezpieczyć wszystko. Oznacza to zamknięcie wszystkich możliwych (i prawdopodobnie nieznanych) sposobów / exploitów, których może użyć osoba atakująca, aby się dostać. Atakujący musi znaleźć tylko jedną drogę i z niej skorzystać.
  • Poza tym istnieje konflikt między użytecznością a bezpieczeństwem. Wystarczy spojrzeć na kontrolę dostępu za pomocą haseł, sposoby resetowania zapomnianych haseł itp. Z założenia nie są one w 100% bezpieczne, ponieważ stanowią kompromis między bezpieczeństwem a użytecznością. Możesz przenieść wszystkich użytkowników do bardziej bezpiecznych metod, takich jak autoryzacja dwuskładnikowa, certyfikaty klienta, karty inteligentne itp., Ale może to być zbyt niewygodne dla użytkowników i stracić klientów. Nie są też w 100% bezpieczne, tylko bezpieczniejsze niż hasła.
  • Występuje również konflikt między bezpieczeństwem a wydajnością. Im trudniej przeanalizujesz wszystkie przychodzące dane, aby wykryć ataki, tym wolniej będzie to działać. Chociaż możesz rzucić więcej sprzętu na problem, nie skaluje się on liniowo, więc musisz znaleźć równowagę między szybkością a głębokością analizy.
  • I masz do czynienia z oprogramowaniem, które jest niepewne. Może to być zamknięte źródło, więc nie możesz go sprawdzić i naprawić, ale nawet z otwartym kodem nie masz czasu i doświadczenia, aby znaleźć przypadkowo lub celowo ukryte błędy lub tylne drzwi. Nawet jeśli masz wszystkie pieniądze i najlepszych ekspertów, których możesz zdobyć za te pieniądze, masz ograniczony czas na dokonanie oceny, a analiza nie jest skalowana liniowo wraz z liczbą ekspertów (tj. Zdobycie 1000 ekspertów nie pomoże trzeba przeanalizować 1000 linii kodu, ponieważ te 1000 linii nie są od siebie niezależne).
  • Wreszcie są ludzie, którzy chronią Twoją infrastrukturę i mają do niej dostęp. Są ludźmi, więc można ich zaatakować za pomocą inżynierii społecznej, przekupić, szantażować ...

Podsumowując: podczas gdy w teorii możesz mieć nieograniczone zasoby (czas, pieniądze, wiedzę, nieograniczony szybki sprzęt ), aby chronić system i mieć tylko klientów, którzy również są takimi ekspertami i wolą bezpieczne od wygodnych metod dostępu - w rzeczywistości nie. Zawsze znajdzie się sposób, aby się do niego dostać, więc powinieneś być na to przygotowany. Nie wierz, że kiedykolwiek uzyskasz w 100% bezpieczną infrastrukturę, ale zamiast tego stworzysz infrastrukturę, która jest nie tylko odporna na ataki z zewnątrz, ale także umożliwia wykrycie zagrożenia i odzyskanie go tak szybko, jak to możliwe. Szkoda może zostać wyrządzona, ale powinna być ograniczona.

PyRulez
2015-08-26 00:41:18 UTC
view on stackexchange narkive permalink

Taki system prawdopodobnie istnieje, ale prawdopodobnie go nie znajdziemy

Mamy wiele algorytmów do wykorzystania w zabezpieczeniach. Niektóre z nich prawdopodobnie są poprawne. W szczególności niektóre z nich prawdopodobnie są wykładniczo trudne do złamania. Rzeczywiście, znamy takie, których po prostu nie da się złamać (jednorazowa tabliczka czasowa). Problem polega na wdrożeniu .

W bezpieczeństwie nie chodzi o to, kto jest mądrzejszy. Bezpieczeństwo to ostrożność obrońcy v.s. inteligencja i kreatywność napastnika. Obrońca nie musi być genialny, jeśli potrafi niezwykle dokładnie przestrzegać algorytmu. Perfect Defense v.s. perfekcyjne wykroczenie skutkuje zwycięstwem obronnym w strefie bezpieczeństwa.

Problem w tym, że serwery to często skomplikowane maszyny. Masz system operacyjny i miriady programów oraz różne protokoły i języki programowania i AHH. Niemal niemożliwe jest zapewnienie doskonałego bezpieczeństwa w takim środowisku.

Z drugiej strony, jeśli system jest wystarczająco prosty, człowiek prawdopodobnie może go udoskonalić. Na przykład mam wiadomość $ M $ zakodowaną jako liczbę od 1 do 6. Teraz rzucę kostką, która będzie kluczem $ K $ i dodam $ M $ i $ K $ modularne 6 $ , aby uzyskać zaszyfrowany tekst $ C $.

Zaszyfrowany tekst to 5 $. Jaki był przekaz?

Ten przykład był tak prosty, że mogłem wiarygodnie rozważyć wszystkie możliwości. Z drugiej strony serwer jest dość złożony.

Jakiej rady możemy z tego wyciągnąć. Prosty, głupi. (Zasada K.I.S.S.) Mimo że stworzenie idealnego serwera prawdopodobnie wykracza poza nasze ludzkie możliwości, im prostszy serwer i nasze algorytmy, tym lepiej. Udokumentuj swój kod, uczyń go zrozumiałym i prostym. Każdy wiersz kodu ma powód. Używaj prostego systemu operacyjnego (Uwaga: nie myl prostoty z łatwością użytkowania. Myśl o Arch Linux, a nie iOS). Zachowaj tylko minimum programów. Wybierz język programowania z małą definicją i bez dziwnych reguł i tym podobnych (patrzę na ciebie, javascript). Chociaż to nie sprawi, że będzie doskonały, to znacznie poprawi Twoje bezpieczeństwo. >

Twoja odpowiedź jest na drugim miejscu najbliżej właściwej odpowiedzi na moje pytanie, spośród wielu odpowiedzi tutaj, z których wszystkie nie dają odpowiedzi na pytanie o * podstawową możliwość * (która zgodnie z nowo przyjętą odpowiedzią istnieje). Wszyscy od razu pomyśleli: „Zbyt wiele zmiennych, nie do wykonania, coś w rodzaju szachów”, ale zasadniczo nikt nie rozważał uproszczenia systemu w celu uzyskania doskonałego bezpieczeństwa, co najwyraźniej nazywa się „dowodzeniem” systemu, a zostało to zrobione z mikro-jądrem wiem teraz dzięki nowej wybranej odpowiedzi.
OTP może być niemożliwe do złamania w prawdziwym świecie, ale teoretycznie mógłbym natknąć się na pad używany przez przypadek. Chodzi mi tylko o to, że to, co ma zastosowanie i jest prawdziwe w prawdziwym świecie, nie pasuje do tego rodzaju teoretycznych pytań.
@ChrisMurray Już przeniosłem kostkę.
@JonathanTodd Upraszczanie nie nazywa się „sprawdzaniem” systemu. Upraszczanie jest prawie koniecznym warunkiem wstępnym udowodnienia systemu. Uproszczony system sam w sobie jest jednak automatycznie sprawdzany. Udowodnienie może być dość trudne.
@PyRulez, Nie miałem na myśli dosłownie się na to natknąć. Chodziło mi o to, że po prostu zgadłem za pierwszym razem. Niezależnie od szans, jest to możliwe. To niezerowa szansa, a zatem nie „doskonałe bezpieczeństwo”.
@ChrisMurray OTP nie mówi, że nie można było tego odgadnąć. Oznacza to, że nie wiesz, czy to prawda. Rzeczywiście, możesz zgadnąć wszystkie sześć liczb, jeśli chcesz, ale co ci to daje? (Zapewniam cię, że nie ma skrótu wartości kości).
@PyRulez, Zakładając, że wszystkie sześć (w jakiś sposób) odszyfrowują do czytelnych zdań, przekazuje mi wiadomość plus 5 nieistotnych wiadomości. Może to wystarczy do działania, a może nie. Jedyne, co mogę udowodnić, to to, że posiadam poprawną odszyfrowaną wiadomość. Na pewno w „idealnym” systemie w ogóle nie powinienem mieć odszyfrowanej wiadomości?
@ChrisMurray Wiadomość była losowym rzutem kostką.
@PyRulez Źle mnie zrozumiałeś. Nie zamierzałem wnosić, że udowodnienie systemu upraszcza go, tylko że upraszczając system tylko do dokładnych aspektów potrzebnej funkcjonalności, zabezpieczać dane obsługujące np. Potencjalnie, z wielkim trudem i bezpiecznie sprawdzony serwer. Zasadniczo jest to możliwe, zgodnie z informacjami zawartymi w zaakceptowanej odpowiedzi. Wykonalny? Może nie. Do utrzymania? Może nie teraz, ponieważ dopóki nie dopracujemy rozwoju AI, będziemy potrzebować ludzi, którzy utrzymują system. Ale zasadniczo możliwe.
Dennis Jaheruddin
2015-08-25 13:24:25 UTC
view on stackexchange narkive permalink

Przypuśćmy, że bezpieczeństwo jest jak szachy

W przeciwieństwie do większości ludzi tutaj, właściwie wiem całkiem sporo o szachach i tylko tyle o bezpieczeństwie, aby uczynić z tego użyteczną odpowiedź.

Jeśli weźmiesz pod uwagę szachy przekonasz się, że:

Liczba możliwości jest tak duża, że ​​żadna praktyczna strategia nie obejmuje ich wszystkich wprost

Dlatego, jak również widzimy w praktyce najsilniejszy uczestnik ma największe szanse na zwycięstwo. Ale mimo to zawsze istnieje szansa, że ​​silny gracz / gracz komputerowy przegra z (znacznie) słabszym.

Podsumowując:

Chyba że znasz właściwy ruch w każdej możliwej sytuacji nie jest możliwa doskonała obrona

Szachy z 10 ^ 80 kawałkami ... :)
@HagenvonEitzen Jak możesz zauważyć, moje rozumowanie staje się silniejsze wraz ze wzrostem złożoności sytuacji!
Szachy to skończona gra pełna informacji. Wiemy, że równowaga istnieje, nawet jeśli nie wiemy, jak ją obliczyć.
@DeerHunter Zgadza się, więc jeśli uważamy, że bezpieczeństwo informacji jest nieskończone, a informacje niepełne, mój wniosek w zasadzie staje się „niemożliwy” zamiast „praktycznie niemożliwy”.
Szachy są prawie zawsze całkowicie bezużyteczną analogią. To doskonała gra informacyjna. Żadna prawdziwa gra nie ma wszystkich aktorów z doskonałymi informacjami!
@Aron Ogólnie rozumiem ograniczenia analogii, ale nie widzę problemu w przypadku tej konkretnej odpowiedzi. Nie jest to specjalnie wspomniane, ale nawet jeśli atakujący nie ma doskonałych informacji (może być zasymulowany przez wykonywanie całkowicie losowych ruchów), nadal nie ma idealnej obrony.
W szachach każdy gracz wykonuje ruch, a przeciwnik od razu wie, jaki ruch wykonał i jest w stanie mu przeciwdziałać. Kiedy przeciwnik jest w stanie wykonać zwycięski ruch, gra się kończy. W InfoSec haker może wykonać wiele ruchów, zanim obrońca się o tym dowie. Co więcej, obrońca może nigdy się nie dowiedzieć, że grają lub w istocie przegrał, ani jak przegrał.
@Aron Jeśli dobrze rozumiem, masz na myśli, że obrońcy bezpieczeństwa informacji mają kilka dodatkowych wad. Mój główny wniosek jest taki, że nie ma doskonałej obrony, jeśli bezpieczeństwo informacji jest jak szachy. Dlatego dodatkowe problemy dla obrońcy tylko wzmocniłyby mój wniosek.
Uważam za śmieszne, że ludzie uważają, że liczba możliwości w szachach jest nawet niejasna. Wszystko, co musisz wiedzieć o przestrzeni stanów w szachach: uważa się, że liczba możliwych pozycji wynosi około 10 ^ 43, złożoność drzewa gry szacuje się na 10 ^ 123, gdyby znany wszechświat składał się w 100% z wodoru, mieć około 10 ^ 80 atomów. Go jest jeszcze bardziej skomplikowane. Powiedziałbym, że InfoSec jest łatwiejszy do rozwiązania;)
emory
2015-08-26 00:11:37 UTC
view on stackexchange narkive permalink

Idealna obrona jest zasadniczo możliwa.

Właściwie jestem mierny w szachach, ale to trywialne dla mnie, aby wpaść w impas największych graczy na świecie, a nawet mogę znaleźć się w impasie najszybsze, najlepsze komputery do gry w szachy.

Po prostu siadam na rękach i czekam, aż skończy się czas, a arcymistrz nie może odnieść nade mną zwycięstwa.

Podobnie, nieprzenikniony serwer nigdy nie odpowiada na żądania klientów i nie może zostać pokonany przez nawet najbardziej sprytnego hakera.

Pomimo doskonałego bezpieczeństwa jest całkowicie bezużyteczny.

Zwróć uwagę, że pytanie konkretnie mówi, że serwer musi komunikować się z klientami w sieci. Sytuacja, w której nie pozwalasz nikomu się ruszać, może nie być tutaj szczególnie istotna. --- Uwaga: sytuacja, w której nikt się nie rusza, nie jest impasem, tylko trwającą grą.
@DennisJaherudd Myliłem się co do zasad limitu czasu - https://en.wikipedia.org/wiki/Draw_(chess)#Draws_in_timed_games. Myślałem, że musisz zamatować, aby wygrać (lub zostać zamatem, aby przegrać). Ale okazuje się, że jeśli zabraknie Ci czasu i jest przynajmniej jedna seria legalnych posunięć, które zakończyłyby się matem, wtedy przegrywasz, a przeciwnik wygrywa.
Steve Sether
2015-08-26 02:32:05 UTC
view on stackexchange narkive permalink

Bezpieczeństwo informacji zasadniczo różni się od szachów. Szachy to kiepski model do zastosowania w bezpieczeństwie informacji, chociaż różnice między nimi mogą być pouczające.

Szachy to gra zawierająca doskonałe informacje. Obie strony przez cały czas dokładnie wiedzą, gdzie znajdują się wszystkie elementy. W bezpieczeństwie informacji wiele informacji jest ukrytych, a jedna strona może zyskać przewagę, mając więcej informacji niż druga. „Najmądrzejszy” nie ma z tym nic wspólnego.

Szachy to gra, w której wszystkie zasady są znane i ustalone. W bezpieczeństwie informacji istnienie reguł jest co najmniej wątpliwe. „Zasady” są lepiej traktowane jako środowisko, a tym samym ruchomy cel.

Szachy to gra o sumie zerowej. W bezpieczeństwie informacji każdy może przegrać, każdy może wygrać, nikt nie może wygrać, a wygrana i przegrana nic nie znaczy.

Szachy to gra dla dwóch graczy. Bezpieczeństwo informacji ma wielu aktorów z różnymi motywacjami (patrz „gra o sumie innej niż zero”).

Szachy mają jasno określoną wygraną i przegraną. Zwycięstwa są kompletne, a straty całkowite. Bezpieczeństwo informacji jest dużo bardziej mętne i wcale nie czarno-białe. System może zostać częściowo naruszony, a straty są ograniczone.

Odnosi się do analogii, ale nie wydaje się odpowiadać na rzeczywiste pytanie.
@DennisJaheruddin Niektóre pytania nie są dobrymi pytaniami, a odpowiedź na nie polega na zajęciu się samym pytaniem, a nie na udzieleniu bezpośredniej odpowiedzi. Na przykład George W. Bush. Wielki Prezydent lub Największy Prezydent. To wszystko, co mam, wybierz jedną.
LawrenceC
2015-08-27 19:36:41 UTC
view on stackexchange narkive permalink

Tak. Zerowa infrastruktura serwera jest zasadniczo niemożliwa do naruszenia.

Żaden serwer = nic do naruszenia = zasadniczo niemożliwe do naruszenia.

Cokolwiek innego jest zasadniczo możliwe do naruszenia.

Nie mogę teraz znaleźć łącza, ale pewien znany ekspert powiedział, że doskonałe bezpieczeństwo można osiągnąć za pomocą komputera: „nie włączając go, nie używając, nie przechowując niczego na nim”. Myślę, że to podsumowuje, co?
Thom Smith
2015-08-26 02:15:37 UTC
view on stackexchange narkive permalink

Oczywiście nie ma idealnego rozwiązania technicznego, które mogłoby zapobiec błędom ludzkim lub zapobiec przekupieniu przez atakującego administratora systemu. Ale jeśli spojrzymy na czysto deterministyczną stronę techniczną tego, odpowiedź brzmi (trywialnie) tak.

Możesz spojrzeć na system podłączony do sieci jako funkcję. Masz pewną funkcję, którą chcesz obliczyć, w której wejścia są stanem systemu i bitami przychodzącymi przez przewód, a wyjścia są nowym stanem systemu i bitami przesyłanymi przewodem. Jeśli funkcja jest obliczalna, to istnieje implementacja systemu, która dokładnie to zrobi.

Problem polega na tym, że rozstrzygnięcie, czy dany system doskonale oblicza funkcję, jest generalnie niemożliwe i niemożliwe do ustalenia z pewnością w ćwiczyć, gdy zachowanie systemu jest złożone. Więc osoba, której system jest naprawdę nieprzenikniony (znowu, z tej ograniczonej perspektywy technicznej) nigdy nie mogłaby być tego pewna. I na odwrót, ktoś, kto jest całkowicie pewien bezpieczeństwa bardzo złożonego systemu, prawie na pewno utrzymuje to przekonanie irracjonalnie.

Michael K.
2015-08-27 16:34:07 UTC
view on stackexchange narkive permalink

Prawdziwe pytanie, które się za tym kryje, brzmi raczej: ile zasobów jesteś gotów wydać, aby przełamać obronę? A jaki jest nawet minimalny poziom bezpieczeństwa, który można uznać za całkowicie bezpieczny? Brak dostępu, co tak zawsze? Masz dostęp do dowolnych danych? Czy też tylko dostęp do danych, które można wykorzystać w celach zarobkowych, jest uważany za naruszenie?

Na przykładzie szachów: kiedyś zbudujemy komputer, który będzie zawierał wszystko pozycje wszystkich możliwych partii szachów. Walka przeciwko sobie prawdopodobnie zakończy się 100% remisami / patami. Przy „ograniczonym” zestawie możliwych ruchów jest to prawidłowe założenie doskonałej obrony.

Rzeczywistość ma zbyt wiele opcji, aby ominąć reguły i możliwe sytuacje. Może nie chcesz kraść danych, a może po prostu chcesz, aby wszystkie kopie zapasowe przestały istnieć. Więc zbombardujesz serwerownię - i jesteś zadowolony z niefunkcjonalnych śmieci.

W prawdziwym życiu rozwiązania takie jak systemy wykrywania włamań, chłodnia (systemy przechowywania, które nie są dostępne w Internecie), agresywne procesy zarządzania hasłami na koncie &, obronne projektowanie aplikacji i analiza zachowań użytkowania mogą podnieść koszty Aby zhakować te systemy do takiego poziomu, tylko bardzo głębokie kieszenie mogły nawet pomyśleć o zaatakowaniu go.

A żeby to osiągnąć, potrzebowałbyś zdolności w stylu "Jamesa Bonda" i dobrze wyszkolonych umiejętności taktycznych. Dla pewnej bardzo dużej części społeczności hakerskiej byłoby to uważane za „prawie” idealną obronę.

Najczęściej hakowane witryny w wiadomościach nawet nie wiedzą, kto jest na ich „cyfrowych trawnikach”. Wielu hakerów spędza tygodnie lub miesiące w swoich systemach niezauważenie. Po prostu nie pomyśleli o wydaniu milionów dolarów na minimalną obronę, ponieważ nie jest to wymagane przez prawo, a procesy sądowe są potencjalnie tańsze niż rozpoczęcie gry w szachy „hacking defense”.

Ktoś w odpowiedzi wspomniał, że istnieją sprawdzone systemy. Można opracować mikro jądra, które mają doskonałą ochronę. Przy większym wysiłku można by opracować sprawdzony język dla tego mikro-jądra, a tym samym sprawdzony serwer, którego zadaniem jest, powiedzmy, zapewnienie Prezydentowi, ale nikomu innemu, zdalnego dostępu do kodów startu jądrowego w dowolnym momencie bez ich noszenia. Co więcej, operacja tak kosztowna w przyszłości mogłaby wyeliminować czynnik błędu ludzkiego dzięki wykorzystaniu sztucznej inteligencji bez dostępu z zewnątrz do rozwoju i utrzymania systemu.
@Michael K. Właściwie ... Nawet z naprawdę dużymi komputerami (wielkości galaktyki!) I naprawdę gęstą pamięcią (co powiesz na jeden bit na atom? OK, DZIESIĘĆ bitów!), Nadal nie możesz wyliczyć wszystkich możliwych partii szachów. Zobacz https://en.wikipedia.org/wiki/Shannon_number.
Francis from ResponseBase
2015-08-28 04:36:13 UTC
view on stackexchange narkive permalink

Okazuje się, że znacznie łatwiej jest zaprojektować system, który powstrzyma najmądrzejszych ludzi, niż zaprojektować taki, który będzie trzymał z daleka ludzi bezimiennych, bezwstydnych, kreatywnych i wytrwałych.

Inteligentni ludzie postępują w sposób rozpoznawalny, wzorowany na przewidywalnych ścieżkach wysiłku i eksploracji, i opierają się na żałośnie przewidywalnym i podobnym zestawie założeń. Geniusz zdaje się zawsze zakładać, że wykorzystując funkcję dodawania, 2 i 2 to zawsze 4, a nigdy 22 lub 2 & 2.

Największe zagrożenie dla empirycznego, racjonalnego systemu - u człowieka terminy - okazuje się być przeciwnikiem, który ma IQ na poziomie mniejszym niż geniusz, jest indywidualistą lub tańczy w rytm własnego bębna, zamiast przestrzegać norm społecznych stada, a rzadki nigdy nie jest identyfikowany jako inteligentny jeden w grupach społecznych. Dobrze dopasowana, wygodna we własnej skórze i w tym, kim jest, i akceptując swój status przywódcy stada w żadnej dziedzinie, osoba ta nie daje się zwieść ani nie angażuje się w frywolną rywalizację osobistą, która mogłaby ją otoczyć. Samodzielna, samodzielna inicjatywa, zainspirowana i napędzana wewnętrzną rzeczywistością, ta jednostka łączy pewną iskrę spontaniczności i prawdziwej, nieracjonalnej kreatywności z niezachwianą wytrwałością i wewnętrzną, temperowaną, zdyscyplinowaną wolą lub wolą.

Nie potrzebują Twojej społecznej weryfikacji, więc cały szereg exploitów inżynierii społecznej okazuje się bezużyteczny. Często pozostają niezauważeni w tłumie, ponieważ nie dbają o niczyją uwagę ani nie konkurują o nią, z wyjątkiem tych, których sami uważają za interesujących lub godnych ich wysiłku i uwagi.

Osobiście byłem świadkiem kilku cennych razy w życie osoba taka, jak ja opisuję, przeciwstawia się, narusza i unieważnia specyfikacje projektowe i wdrożeniowe najmądrzejszych geniuszy.

Ponownie, wolałbym zaprojektować system przeciwko najmądrzejszym ludziom niż przeciwko jednej osobie, jak ta, którą opisałem.

Ten typ osoby nazywam „Neo”.
KeithS
2015-08-28 23:49:31 UTC
view on stackexchange narkive permalink

Jeśli istnieje legalna droga, jest też nielegalna.

Jedynym serwerem, do którego z zasady nie można się włamać, jest taki, do którego dostęp jest zasadniczo niemożliwy. W zabezpieczeniach sieci jest to znane jako „szczelina powietrzna”; serwer lub podsieć jest fizycznie odłączona od jakiejkolwiek innej sieci, w tym świata zewnętrznego. W połączeniu z fizycznym zabezpieczeniem komponentów tej sieci, która uniemożliwia nieautoryzowanym osobom dotarcie i fizyczne dotknięcie dowolnego sprzętu komputerowego podłączonego do sieci, komputery w tej sieci są niedostępne dla hakera.

... Coś w rodzaju. Znowu, jeśli istnieje prawowita droga, jest też nielegalna. Bezpieczeństwo fizyczne jest ostatecznie przedsięwzięciem ludzkim, a zatem ostatecznie omylnym. Inżynierię społeczną można wykorzystać do ominięcia protokołów bezpieczeństwa bezpośredniego, albo przez oszukanie „strażnika”, aby wpuścił nieupoważnioną osobę, albo przez nakłonienie upoważnionej osoby do zrobienia czegoś, czego nie powinna robić w imieniu nieuprawnionej osoby. Im lepiej zaangażowani ludzie są przeszkoleni w przestrzeganiu protokołów bezpieczeństwa fizycznego, tym mniej prawdopodobne jest to, ale zawsze istnieje niezerowa szansa na ominięcie bezpieczeństwa fizycznego, włącznie z brutalną siłą (coś w rodzaju nalotu Zero Dark Thirty, choć nie jest to w najmniejszym stopniu subtelne, teoretycznie mogłoby zostać popełnione przeciwko jakiejkolwiek siedzibie korporacji na świecie; to tylko kwestia posiadania odpowiednich ludzi z odpowiednim sprzętem do wykonania zadania).



To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...