Głębokie ukrycie

Z Wikipedii, wolnej encyklopedii
Przejdź do nawigacji Przejdź do wyszukiwania

Głębokie ukrycie (zwane też zagłębieniem lub niejawną lokalizacją) – praktyka ochrony danych komputerowych, polegająca na umieszczeniu ich w nieprzewidywalnej i trudnej do odgadnięcia dla przeciętnego użytkownika ścieżce dostępu, zazwyczaj połączone z ukryciem faktu zapisania danych w tejże lokalizacji.

Głębokie ukrycie nie jest metodą ochrony czynnej, gdyż nie zabezpiecza przed dostępem do danych; jest natomiast sposobem steganografii, czyli ukrywania istnienia niejawnego pliku. Dostęp do tak chronionych danych posiada każdy, który dysponuje ścieżką dostępu. Z tego też tytułu w bardziej wymagających przypadkach stosowane jest najczęściej wraz z metodami kryptograficznymi, choć nie jest to regułą.

Przykłady głębokiego ukrycia[edytuj | edytuj kod]

W większości wypadków pliki z danymi osiągalnymi przez użytkownika znajdują się w katalogu głównym witryny oraz tematycznych podkatalogach i posiadają nazwy jednoznacznie określające przeznaczenie i typ pliku. Dla przykładu:

http://example.com/index.htm
http://example.com/uzytkownicy/lista.php

Plik poddany głębokiemu ukryciu ma z definicji nazwę oraz lokalizację zupełnie nieprzewidywalną, co ma utrudnić jego rozpoznanie:

http://example.com/29d9283aba927109a289b03812738d89201/2873944786672/10284.pdf

Dodatkowo ukrywany jest przed wyświetlaniem w indeksie katalogów, przygotowywanym zwykle przez serwer WWW (jeśli ta opcja jest w ogóle włączona). Tym sposobem zakłada się, iż tylko osoby znające dokładny adres do pliku będą w stanie go odczytać.

Zgodnie z podaną wyżej definicją, ukrywana informacja jest niejawna lub przeznaczona dla ścisłego grona odbiorców. Nie można zatem nazwać głębokim ukryciem ukrywania np. nazw przechowywanych plików, jeśli te mają być wyświetlane na dowolnym komputerze w sposób inny, niż bezpośrednie otwarcie pliku (dane przechowywane przez CMS-y, systemy forów dyskusyjnych, agregacji pamięci podręcznej i podobne), choć nierzadko błędnie używa się tutaj tej nazwy.

Pochodzenie nazwy oraz przykłady złej implementacji[edytuj | edytuj kod]

Nazwa „głębokie ukrycie” powstała od określenia, którym pierwszy raz nazwał tę metodę przedstawiciel PKO Banku Polskiego po wykryciu w swoich systemach użycia jej do zabezpieczenia poufnych danych, co spowodowało udostępnienie ich w Internecie[1][2].

Innym znanym przykładem nienależycie wykonanej implementacji głębokiego ukrycia była baza podań o pracę dwóch internetowych pośredników pracy: Terazpraca.pl i Loccoevent.pl[3]. Błędów w wykonaniu tego rodzaju technik dopatruje się także w poważanych, zagranicznych serwisach[4], a także na stronach wsparcia frameworków, języków programowania oraz systemów zarządzania treścią[5].

Słabości metody[edytuj | edytuj kod]

Ze względu na fakt, iż głębokie ukrycie nie zabezpiecza przed dostępem do danych, a jedynie ukrywa fakt ich istnienia, należy zachować szczególną ostrożność przy jego stosowaniu.

  • Brak szyfrowania. W przypadku użycia protokołu HTTP (a nie HTTPS) należy przyjąć, że adres jest w zasadzie jawny, ponieważ każde połączenie HTTP przechodzi przez co najmniej parę urządzeń i komputerów nad którymi nadawca ani odbiorca nie mają żadnej kontroli. Użycie HTTPS powoduje, że jedynie domena jest jawna.
  • Łatwy do przewidzenia adres. Problem może pojawić się także jeśli na podstawie innego adresu łatwo jest odgadnąć inny. Najbardziej trywialnym przykładem złej implementacji może być użycie kolejnych liczb do identyfikacji kolejnych zasobów. Zakres identyfikatorów zasobów musi być znacznie większy od liczebności udostępnianego zbioru (mało wysycony) i możliwie losowy.
  • Brak zabezpieczenia przed zgadywaniem. Nawet jeśli prawidłowe identyfikatory są rzadkie w zbiorze możliwych adresów, to można je w końcu wykryć sprawdzając systematycznie kolejne adresy. Zablokowanie wielokrotnych żądań do serwera utrudni automatyczne odkrycie „ukrytych” danych.
  • Adres niezmienny w czasie. Jeśli dany identyfikator jest stały i niezmienny w czasie to rośnie ryzyko jego odgadnięcia. Np. film udostępniony na Youtube jako „prywatny” z czasem może stać się publiczny – wystarczy, że ktoś udostępni link publicznie w serwisie społecznościowym. Adres powinien wygasać po pewnym czasie (lub zasób powinien być po prostu usuwany po użyciu).
  • Jawny indeks ukrytych zasobów. Jeśli istnieje niezabezpieczony indeks ukrytych zasobów, to dodatkowo zwiększa to ryzyko – wykrycie jednego zasobu powoduje wtedy wykrycie wszystkich pozostałych. W szczególności niektóre serwery mają domyślnie włączone pokazywanie wszystkich plików w podkatalogu. Należy wyłączyć lub zabezpieczyć indeksowanie ukrytych zasobów, a także zablokować indeksowanie takich zasobów przez wyszukiwarki.

Niezależnie od wszystkich powyższych słabości sama forma udostępniania danych przez zwykły adres może być ryzykowna. Dla odbiorcy takiego linka może nie być jasne, że udostępniany mu zasób jest niejawny. Ponadto jeśli osoba udostępniająca nie ma dostępu do rejestru pobrań, to nawet nie będzie wiedziała, że dane zostały ujawnione szerokiemu gronu odbiorców. Brak mechanizmu klasycznej autoryzacji przy dostępie dodatkowo utrudnia określenie komu zostały ujawnione dane.

Przypisy[edytuj | edytuj kod]