Atak zwykłym tekstem
Specjaliści z Uniwersytetu Johnsa Hopkinsa uważają, że dzięki ukryciu szkodliwego kodu w zwykłym tekście, cyberprzestępcy mogą ominąć większość wykorzystywanych obecnie systemów antywirusowych. Zespół Josha Masona zaprezentował podczas ACM Conference on Computer and Communications Security technikę ataku, która może odesłać do lamusa współczesne systemy ochronne.
Jej szczegóły nie zostały ujawnione, by nie ułatwiać pracy cyberprzestępcom.
Używane obecnie zabezpieczenia korzystają z faktu, że kod maszynowy, którym posługują się układy scalone, w zasadniczy sposób różni się od języka naturalnego. Wiele ataków polega zaś na wstrzyknięciu szkodliwego kodu do komputera ofiary i jego wykonaniu. Systemy zabezpieczające sprawdzają więc, czy do komputera nie przedostaje się podejrzany zestaw znaków. Przestępcy starają się zyskać kontrolę nad licznikiem rozkazów komputera. Jest to rejestr procesora identyfikujący kolejną instrukcję, która ma zostać wykonana. Dzięki zyskaniu nad nim kontroli można doprowadzić do tego, by istniejący w komputerze kod został wykonany w taki sposób, w jaki chce tego atakujący.
Zespół Masona stworzył narzędzie, które przeszukało ponad 15 000 artykułów z Wikipedii oraz 27 000 książek znajdujących się w Project Gutenberg i wyłowiło z nich frazy, które mogą posłużyć do przeprowadzenia ataku. Program wytłuścił następnie te fragmenty, które powinny zostać wykonane przez komputer, a więc mogą stanowić one kod złośliwego oprogramowania. Fragmenty niewytłuszczone nie zostaną wykonane. Przykładowy tekst może wyglądać tak: There is a major center of economic activity, such as Star Trek, including The Ed Sullivan Show. The former Soviet Union.
Zdaniem Nicolasa Courtoisa z University College London, eksperta ds. bezpieczeństwa i kryptografii, wykrycie szkodliwego kodu w tej formie może być zadaniem niemożliwym do wykonania.
Sam Mason uspokaja jednak, że przeprowadzenie ataku za pomocą tej techniki jest obecnie mało prawdopodobne, gdyż wymaga bardzo dużej wiedzy i jest trudne.
Komentarze (7)
ZolV, 30 listopada 2009, 14:21
Nic nowego, istnieja od dawna rozne pomysly na jezyki programowania.
Wezmy taki WhiteSpace. Tutaj za kod wlasciwy sluza znaki biale : spacja, tabulator, enter. Naprawde zaden antywirus nie sprawdza tego, czy znaki biale zawieraja jakies oprogramowanie A istnieje od dawna dokumentacja i przyklady.
Problem jest tylko taki, zeby wgrac jakis interpreter tego naszego niszowego jezyka na maszyne uzytkowika i przepuscic przez niego nasz programik.
More info : http://en.wikipedia.org/wiki/Whitespace_(programming_language)
wilk, 30 listopada 2009, 21:33
Czytam ten artykuł i czytam, ba nawet czytam w oryginale, i kompletnie nie mam zielonego pojęcia co zagnieździło się w głowach tych naukowców. Dziwnym nie jest, że kod maszynowy zapisany oktetami można zaprezentować jako znaki ASCII i przy odrobinie umiejętności może on nawet tworzyć sensowne ciągi znaków (i vice versa), ale co to ma do rzeczy...?
czesiu, 30 listopada 2009, 23:41
Nie wiesz? Zły haker może "ukrytą wiadomością" sprawić, że dostaniesz oczopląsu i będzie ci się kręciło w głowie
Jurgi, 1 grudnia 2009, 00:02
Czy to takie nowe? W dość starym podręczniku widziałem kod, który jednocześnie się wykonywał jako .com albo jako .bat. Dość zbliżony pomysł.
wilk, 1 grudnia 2009, 00:40
Aaa, no to ma sens. Albo może być jak Schwarzenegger: http://pb.pl/a/2009/10/28/Arnold_mowi_f_you_prawodawcom2
w46, 1 grudnia 2009, 15:41
Po co się trudzić z tekstem, istnieje cała masa multimediów które znacznie łatwiej do tego celu można wykorzystać.
Przemek Kobel, 1 grudnia 2009, 16:20
Ja się przyczepię: licznik rozkazów nie decyduje o sposobie wykonania kodu. On tylko wskazuje gdzie jest następny rozkaz do wykonania.
Zyskanie nad nim kontroli zwykle odbywa się przez przepełnienie stosu. Wygląda to tak, że przed wykonaniem procedury, na stos odkładane są bieżące wartości rejestrów (w różnych procesorach różni się to detalami) oraz wartość licznika rozkazów, aby wiadomo było, gdzie wrócić po zakończeniu procedury. Jeśli owa procedura jest złośliwym lub zmanipulowanym kodem, który "przepełni" stos, a więc nadpisze wartości przechowywane na nim, zakończenie procedury powoduje, że do licznika rozkazów trafia inny adres niż powinien. Tak w skrócie wygląda ostatnich 10 lat internetowego hakerstwa na Windows.