Zastosowanie sztucznej inteligencji w życiu oraz bezpieczeństwie systemów informatycznych, cz. 2.

W ostatnim artykule na temat używania sztucznej inteligencji pisaliśmy o jej zastosowaniu w życiu codziennym. Opisane tam przykłady dotyczące sterowania ruchem drogowym, samo-prowadzących się samochodów oraz narzędzi do sprawdzania prac studentów już wkrótce na stałe będą stosowane przez ludzi. Jednak sztuczna inteligencja jest już powszechnie używana w narzędziach mających poprawiać bezpieczeństwo systemów informatycznych, a tym samym i nasze bezpieczeństwo jako internautów. Nie każdy jednak potrafi dostrzec zastosowanie sztucznej inteligencji w bezpieczeństwie systemów informatycznych zatem druga część artykułu ma za zadanie uświadomić czytelnika w tym temacie.

AI w oprogramowaniu antywirusowym

Trudno sobie wyobrazić lepszy przykład zastosowania sztucznej inteligencji jak użycie jej do celów analizy i wykrywania złośliwego oprogramowania. Złośliwe oprogramowanie ciągle ewoluuje i każdy nowo powstały wirus może mutować powodując, że ponownie stanie się nieuchwytny. Jeszcze do niedawna analiza malware'u w celu określenia stopnia zagrożenia przez niego powodowanego oraz wdrożenie rzeczywistej procedury rozwiązania problemu w postaci usunięcia szkodliwych plików oraz przywrócenia prawidłowych parametrów komputera musiała być wykonywana jedynie przez analityków zagrożeń bezpieczeństwa, czyli przez ludzi. Obecnie są oni wspierani przez narzędzia sztucznej inteligencji zaprojektowane specjalnie do tego celu.

Jednym z takich narzędzi jest oprogramowanie Cyber Helper rozwijane przez firmę Kaspersky Lab. Podsystemy składające się na całe narzędzie ściśle współpracują ze sobą i w większości korzystają z logiki rozmytej w celu rozwiązywania różnych problemów. Należy jednak pamiętać, że podsystemy te potrafią niezależnie definiować swoje zachowanie.

Głównym podsystemem Cyber Helper-a jest narzędzie AVZ, którego zadaniem jest zbieranie danych z potencjalnie zainfekowanych komputerów oraz przechowywanie ich w postaci nadającej się do dalszego przetwarzania przez inne podsystemy. Zasadę działania systemu Cyber Helper ilustruje poniższy rysunek.

Rysunek 1: Działanie systemu Cyber Helper. Źródło: www.viruslist.pl
Rysunek 1: Działanie systemu Cyber Helper. Źródło: www.viruslist.pl

Zastosowanie sztucznej inteligencji w narzędziu Cyber Helper wyraża się w analizie protokołu dostarczonego przez podsystem AVZ. Analiza ta oparta jest o ogromną ilość wcześniej zgromadzonych danych oraz działań naprawczych podjętych w innych podobnych przypadkach, a także innych czynników. Na podstawie takiej analizy definiowane są hipotezy sugerujące, który z przeskanowanych obiektów może stanowić zagrożenie. Na podstawie tych hipotez automatycznie pisane są skrypty, które mają za zadanie usunięcie zagrożenia. Cyber Helper potrafi także uczyć się na wynikach swoich działań co powoduje, że to narzędzie jest dużym krokiem w kierunku wytworzenia autonomicznej sztucznej inteligencji.

Więcej na temat tego narzędzia można przeczytać tutaj

Filtr Bayesa

Czym jest spam każdy wie, a jak nie wie doczyta . Istnieje wiele metod walczenia ze spamem jednak jedną z najskuteczniejszych o ile nie najskuteczniejszą są narzędzia mające zaimplementowany filtr Bayesa. Działanie tego filtru oparte jest o reguły Bayesa znane z rachunku prawdopodobieństwa i jest stosunkowo proste do wyjaśnienia.

Na serwerze gdzie uruchomiony jest program mający zaimplementowany filtr Bayesa każda przychodząca wiadomość jest analizowana pod kątem występujących w niej słów. Każdemu ze słów przypisywana jest wartość prawdopodobieństwa wystąpienia w wiadomości spamowej czego skutkiem jest zdefiniowanie pewnej tablicy wartości. Wartości te to 0,999 dla słowa, które może wystąpić w wiadomości spamowej i 0,001 w przeciwnym wypadku. Przykładem słowa często występującego w wiadomościach spamowych, a tym samym otrzymującym najwyższą wartość prawdopodobieństwa wystąpienia w wiadomości spamowej jest słowo „Gratulujemy”. Kontr przykładem jest słowo „Pozdrawiam”, które jest najczęściej używane w korespondencji pomiędzy prawdziwymi internautami. Na podstawie tak zdefiniowanych wartości obliczane jest prawdopodobieństwo całkowite pojedynczych wyrazów znajdujących w wiadomości oraz podejmowana jest decyzja czy daną wiadomość zaklasyfikować jako spam, czy tez nie.

Oczywiście tego typu aplikacje, należy do nich CRM114 oraz SpamProbe, przed wdrożeniem na serwerach produkcyjnych należy odpowiednio wytrenować, narażając je na odbieranie kontrolowanego przez nas spamu. W przypadku błędnego zaklasyfikowania wiadomości jako spam należy wskazać, to danemu narzędziu celem jego dostrojenia. Dzięki temu z pewnością zyskamy potężne narzędzie potrafiące wyeliminować od 90% do 99% przychodzącego spamu. Ponadto filtry bayesowskie uczą się na podstawie rzeczywistych wiadomości przesyłanych do danego użytkownika co w znakomity sposób dostraja dany filtr do indywidualnych potrzeb internauty.

Oczywiście spamerzy bronią się jak mogą przed działaniem takich filtrów. Jedną z najczęściej używanych metod jest rozsyłanie spamu nie jako tekstu, a jako grafiki. Wtedy do analizy takiej wiadomości należy użyć algorytmów OCR wspieranych przez sztuczne sieci neuronowe (http://www.mini.pw.edu.pl/MiNIwyklady/sieci/neuronowe.html). To jednak nie zawsze działa dobrze, ponieważ spamerzy do takich obrazków dodają szumy lub umieszczają tekst wiadomości pod kątem.

Oczywiście istnieją także inne filtry adaptacyjne zaimplementowane w różnych aplikacjach. Więcej na temat różnych filtrów można przeczytać tutaj

CAPTCHA

Zastosowanie mechanizmu o długiej anglojęzycznej nazwie Completely Automated Public Turing test to tell Computers and Humans Apart na stronach internetowych ma za zadanie dopuszczenie do przesyłania danych np. z formularza wypełnionych tylko przez człowieka. Istnieje kilka rodzajów tego zabezpieczenia:

  • dźwiękowe (odczytanie liter z rysunku lub zadanie pytania w postaci „podaj kolor koszulki z rysunku?”)

  • obliczeniowe (podaj wynik działania)

  • Rysunek 2: Obliczeniowe CAPTCHA. Źródło: www.ibc.pl
    Rysunek 2: Obliczeniowe CAPTCHA. Źródło: www.ibc.pl
  • tekstowe (przepisz tekst z obrazka)

  • Rysunek 3: Tekstowe CAPTCHA. Źródło: www.wired.com
    Rysunek 3: Tekstowe CAPTCHA. Źródło: www.wired.com
  • graficzne (wskaż buta spośród widocznych rysunków)

  • Rysunek 4: Graficzne CAPTCHA. Źródło: www.drupal.org
    Rysunek 4: Graficzne CAPTCHA. Źródło: www.drupal.org

Mechanizm CAPTCHA potrafi w świetny sposób zweryfikować czy mamy do czynienia z człowiekiem czy maszyną. Jednak sztuczna inteligencja jest rozwijana także w kierunku łamania tego mechanizmu, tu nasuwa się jednak pytanie, jak wtedy udowodnimy, że jesteśmy ludźmi, a nie botami?

W związku z tym, że mechanizm pomimo swojej skuteczności jest też nieco denerwujący rozwinięto jego drugą wersję. W CAPTCHA 2 użytkownik ma za zadanie jedynie kliknąć literkę, o której wskazanie jest proszony, jak zademonstrowano to na rysunku nr 5.

Rysunek 5: CAPTCHA 2. Źródło: www.captcha2.com
Rysunek 5: CAPTCHA 2. Źródło: www.captcha2.com

Łamanie omówionych mechanizmów weryfikacji człowieka udaje się cyberprzestępcom z mniejszym bądź większym skutkiem, ale jest już rozwijana alternatywa dla mechanizmu CAPTCHA. Chodzi o test na empatię. Mechanizm taki rozwijany przez organizację Civil Rights Defenders można przetestować tutaj

Aby poprawnie przejść weryfikację, której jesteśmy poddawani przez dany mechanizm musimy odpowiedzieć na to jakie emocje wiążą się z podaną w przykładzie sytuacją.

Rysunek 6: Emocjonalna CAPTCHA. Źródło: www.civilrightsdefenders.org
Rysunek 6: Emocjonalna CAPTCHA. Źródło: www.civilrightsdefenders.org

Po udzieleniu poprawnej odpowiedzi możemy korzystać z funkcjonalności serwisu na którym mechanizm emocjonalnego CAPTCHA został zaimplementowany. Logicznym jest, że maszyna nie czuje i nie rozumie słów zawartych w pytaniu, a zanim się tego nauczy minie jeszcze sporo czasu. Zatem mechanizm ten w doskonały sposób utrudni działanie botów, które starają się łamać takie zabezpieczenia. Jednak problem będą mieli też ludzie, którzy z jakiś powodów są pozbawieni empatii, a wyrażania emocji uczą się na pamięć rozumiejąc je, ale nie odczuwając ich.

Wnioski

Sztuczna inteligencja rozwija się nieustannie, ale jeszcze wiele brakuje do wytworzenia prawdziwie autonomicznej sztucznej inteligencji. W dalszym ciągu implementowane mechanizmy zawierają sztywne reguły i wzory dzięki którym mogą działać.

Samo-prowadzące się auta czy też programy automatycznie sprawdzające prace studentów mogą pozwolić na poświęcenie czasu innym sprawą niż rutynowe obowiązki, dzięki czemu potencjalnie będziemy mieć więcej czasu dla siebie. W rzeczywistości jednak nawet gdy technologia rozwinie narzędzia sztucznej inteligencji do tego stopnia, że maszyny będą wyręczać nas w większości teraźniejszych obowiązków, to i tak człowiek wymyśli sobie inne zadania, które pochłoną jego czas.

Największy sens zastosowania narzędzi sztucznej inteligencji zauważalny jest w zapewnianiu bezpieczeństwa systemów informatycznych. Analiza złośliwego oprogramowania jest bardzo żmudna i męcząca, co sprawia że człowiek może popełnić błąd. Maszyna wykona jednak rutynowe czynności bez zawahania, bezbłędnie i w bardzo krótkim czasie.

Bardzo ciekawy jest także pewnego rodzaju wyścig pomiędzy cyberprzestępcami i naukowcami. Jedni mają na celu użycie sztucznej inteligencji w celu złamania mechanizmów bezpieczeństwa, drudzy mają na celu dostarczenie mechanizmów, które wymagają ludzkiego podejścia do rozwiązania zadania. Wszystko to w konsekwencji prowadzi do rozwoju badań na temat sztucznej inteligencji i wypracowywania coraz to wyższych standardów bezpieczeństwa.

Źródło: Redakcja