19:45
7/4/2010

MalaRIA to narzędzie typu proxy, które pozwala atakującemu na wykonywanie połączeń poprzez przechwyconą sesję przeglądarki internetowej należącej do ofiary. MalaRIA daje atakującemu wgląd w ciasteczka ofiary i pozwala na przeglądanie wszystkich zasobów, do których dostęp ma przechwycona sesja przeglądarki.

Jak działa MalaRIA?

Od dawna wiemy, że nielimitowany dostęp do plików crossdomain.xml oraz clientaccesspolicy.xml może być problemem. Wystarczy, że atakujący zmusi ofiarę do odwiedzenia strony na której zainstalowano złośliwą aplikację RIA (Rich Internet Application), a ta w tle przeprowadzi atak CSRF. Ponieważ aplikacje RIA są w stanie nie tylko wysyłać ale i odczytywać żądania, normalne zabezpieczenia przed CSRF nie zadziałają, bo tokeny mogą być odczytane.

MalaRIA to właśnie przykład takiej złośliwej aplikacji RIA, z backendem napisanym w Javie i frontendem w technologiach Silverlight lub Flex. Na poniższym nagraniu możecie zobaczyć MalaRIĘ w akcji:

Atak przy pomocy MalaRIA można opisać w następujący sposób:

MalaRIA - Schemat ataku przy pomocy (fot. erlend)

  1. Ofiara ma dostęp do chronionych zasobów na stronie A
  2. Atakujący zwabia ofiarę na stronę B, w kodzie której znajduje się MalaRIA
  3. Uruchomiona przez ofiarę MalaRIA łączy się z backendem w Javie
  4. Atakujący ustawia w swojej przeglądarce adres Javowego backendu jako proxy
  5. Żądania atakującego trafiają do proxy, tam odbiera je MalaRIA, która z następnie zmusza przeglądarkę ofiary do ich wykonania, a wyniki odsyła do atakującego

Skutki ataku

Atakujący nie tylko ma dostęp do wszystkich stron internetowych w ramach sesji i na prawach ofiary — może on również odczytywać zasoby z intranetu.

Aby domyślić się ich adresów można skorzystać z opisywanego przez nas CSS-History-Hack lub uruchomić jeden z javascriptowych skanerów. Erlend, twórca MalaRII, jako pożyteczne źródło wiedzy w tym zakresie wskazuje na BlackHatową prelekcję Jeremiaha Grossmana, której tematem były ataki na intranet przy pomocy JavaScriptu.

crossdomain.xml – WTF?

Z powodów bezpieczeństwa, aplikacje Macromedia Flash odtwarzane w przeglądarcie internetowej nie mogą uzyskać dostępu do danych, które umieszczane są poza ich domeną. Same origin policy to dobre rozwiązanie, ale w niektórych przypadkach, bardzo uciążliwe (tzw. bogate, multimedialne serwisy internetowe i całe Web 2.0).

Dlatego Macromedia wprowadziła obsługę pliku crossdomain.xml, który umieszczony na danym serwerze pozwala aplikacjom Flash/Flex na dostęp do niego z wymienionych w ich treści hostów. Problem w tym, że niektórzy z programistów/developerów/administratorów idą na łatwiznę i jako jako dozwolony host wpisują *, co pozwala na dostęp do API wszystkim, także tym złym ;-)

<cross-domain-policy>
<allow-access-from domain="*"/>
</cross-domain-policy>

Przykłady innych serwerów z plikiem crossdomain.xml dającym dostęp dla wszystkich znajdziecie za pomocą Google Hackingu:

inurl:crossdomain.xml

To, że któryś z nich ma ustawiony dostęp ze wszystkich hostów nie oznacza jeszcze, że jest podatny na atak — wszystko zależy od tego, jakie usługi/funkcje w danej domenie są dostępne… Z reguły jednak, jeśli jest to serwer, który zawiera jakiekolwiek “prywatne”, niepubliczne dane (np. konta użytkowników), da się coś popsuć :>

Jak poprawnie skonfigurować crossdomain.xml?

Usunąć “*” i nałożyć restrykcje w dostępie — w konfiguracji na pewno pomoże strona pomocy Flasha.

Aby ochronić się przed atakiem warto wyrzucić API serwisu na dedykowaną subdomenę. Można też wszelkie publiczne dane, które mają być odczytywane przez wszystkich umieścić w osobnym katalogu do którego wgramy mniej restrykcyjny plik crossdomain.xml

To co, zaczynamy przeszukiwanie polskiego internetu pod kątem serwerów z wildcardem w crossdomain.xml? Trochę ich jest, bez większego wysiłku udało nam się namierzyć kilkanaście… Wpisujcie swoje znaleziska w komentarzach.

Przeczytaj także:


6 komentarzy

Dodaj komentarz
  1. “Z powodów bezpieczeństwa, aplikacje Macromedia Flash” nie powinno być Adobe Flash?

  2. […] wyraził na to zgodę. Tego rodzaju zgodę można wyrazić poprzez umieszczenie pliku “crossdomain.xml” w katalogu głównym domeny. Aplikacja flashowa przed odwołaniem do danego serwisu, […]

Twój komentarz

Zamieszczając komentarz akceptujesz regulamin dodawania komentarzy. Przez moderację nie przejdą: wycieczki osobiste, komentarze nie na temat, wulgaryzmy.

RSS dla komentarzy: