Problemy autonomicznych systemów kontroli dostępu – tam, gdzie się ich nie spodziewano

Dzień dobry wszystkim. Zacznę od kontekstu, co skłoniło mnie do przeprowadzenia tych badań, ale najpierw ostrzegam: wszystkie praktyczne działania zostały przeprowadzone za zgodą struktur rządzących. Jakakolwiek próba wykorzystania tego materiału do wejścia na obszar o ograniczonym dostępie bez prawa do przebywania w tym miejscu stanowi przestępstwo.

Wszystko zaczęło się od tego, że podczas sprzątania stołu przez przypadek przyłożyłem klucz wejściowy RFID do czytnika NFC ACR122 – wyobraźcie sobie moje zdziwienie, gdy Windows odtworzył dźwięk wykrywania nowego urządzenia i dioda LED zmieniła kolor na zielony. Do tego momentu uważałem, że te klucze działają wyłącznie w standardzie Proximity.
Problemy autonomicznych systemów kontroli dostępu – tam, gdzie się ich nie spodziewano
Ale skoro czytelnik to zobaczył, oznacza to, że klucz spełnia jeden z protokołów zgodnych z normą ISO 14443 (aka Near Field Communication, 13,56 MHz). Od razu zapomniano o sprzątaniu, gdyż dostrzegłam możliwość całkowitego pozbycia się kompletu kluczy i zatrzymania klucza do wejścia w telefonie (mieszkanie od dawna wyposażone jest w zamek elektroniczny). Już po rozpoczęciu nauki dowiedziałem się, że pod plastikiem ukryty jest tag Mifare 1k NFC - taki sam model jak w identyfikatorach przedsiębiorstw, kartach komunikacyjnych itp. Próby przedostania się do zawartości sektorów początkowo nie przyniosły skutku, a gdy w końcu złamano klucz, okazało się, że wykorzystano jedynie 3 sektor, a w nim zduplikowano UID samego chipa. Wydawało się to zbyt proste i takie właśnie okazało się, że nie byłoby artykułu, gdyby wszystko poszło zgodnie z planem. Otrzymałem więc podroby klucza i nie ma problemu, jeśli trzeba skopiować klucz do innego tego samego rodzaju. Ale zadaniem było przeniesienie klucza na urządzenie mobilne, co też zrobiłem. I tu zaczęła się zabawa – mamy telefon – iPhone SE z zainstalowanym Wersja beta systemu iOS 13.4.5 17F5044d i niektóre niestandardowe komponenty do swobodnego działania NFC - nie będę się nad tym szczegółowo rozwodzić z pewnych obiektywnych powodów. W razie potrzeby wszystko, co powiedziano poniżej, dotyczy również systemu Android, ale z pewnymi uproszczeniami.

Lista zadań do rozwiązania:

  • Uzyskaj dostęp do zawartości klucza.
  • Zaimplementuj możliwość emulacji klucza przez urządzenie.

Jeśli w pierwszym wszystko było stosunkowo proste, to w drugim były problemy. Pierwsza wersja emulatora nie działała. Problem został wykryty dość szybko – na urządzeniach mobilnych (iOS lub Android) w trybie emulacji UID jest dynamiczny i niezależnie od tego, co jest podłączone do obrazu, pływa. Druga wersja (uruchamiana z uprawnieniami superużytkownika) na sztywno ustaliła numer seryjny na wybranym - drzwi się otwierały. Chciałem jednak zrobić wszystko idealnie i ostatecznie stworzyłem pełną wersję emulatora, która mogła otwierać zrzuty Mifare i je emulować. Poddając się nagłemu impulsowi, zmieniłem klucze sektorowe na dowolne i próbowałem otworzyć drzwi. I ona… OTWIERANY! Po chwili zorientowałem się, że się otwierają dowolny drzwi wyposażonych w ten zamek, nawet tych, do których nie pasował oryginalny klucz. W związku z tym stworzyłem nową listę zadań do wykonania:

  • Dowiedz się, jaki rodzaj kontrolera odpowiada za pracę z kluczami
  • Dowiedz się, czy istnieje połączenie sieciowe i wspólna baza
  • Dowiedz się dlaczego praktycznie nieczytelny klucz staje się uniwersalny

Po rozmowie z inżynierem w firmie zarządzającej dowiedziałem się, że prostych kontrolerów Iron Logic z5r używa się bez podłączania do sieci zewnętrznej.

Czytnik CP-Z2 MF i kontroler IronLogic z5r
Do testów otrzymałem zestaw sprzętu:

Problemy autonomicznych systemów kontroli dostępu – tam, gdzie się ich nie spodziewano

Jak widać, system jest całkowicie autonomiczny i niezwykle prymitywny. W pierwszej chwili myślałem, że sterownik jest w trybie uczenia się - to znaczy, że odczytuje klucz, zapisuje go w pamięci i otwiera drzwi - ten tryb stosuje się, gdy konieczne jest napisanie wszystkich kluczy, np. przy wymianie kluczyka zamek w kamienicy. Ale ta teoria nie została potwierdzona – tryb ten jest wyłączony w oprogramowaniu, zworka jest w pozycji roboczej – a mimo to po podniesieniu urządzenia widzimy, co następuje:

Zrzut ekranu przedstawiający proces emulacji na urządzeniu
Problemy autonomicznych systemów kontroli dostępu – tam, gdzie się ich nie spodziewano
... a kontroler sygnalizuje, że dostęp został przyznany.

Oznacza to, że problem leży w oprogramowaniu kontrolera lub czytnika. Sprawdźmy czytnik - działa w trybie iButton, podłączmy więc płytkę zabezpieczającą Bolid - będziemy mogli zobaczyć dane wyjściowe z czytnika.

Płytka zostanie później podłączona poprzez RS232
Problemy autonomicznych systemów kontroli dostępu – tam, gdzie się ich nie spodziewano

Stosując metodę testów wielokrotnych dowiadujemy się, że czytnik w przypadku niepowodzenia autoryzacji emituje ten sam kod: 1219191919

Sytuacja zaczyna się klarować, jednak na chwilę obecną nie jest dla mnie jasne dlaczego sterownik pozytywnie reaguje na ten kod. Zakłada się, że w momencie zapełnienia bazy danych – przez przypadek lub celowo została przedstawiona karta z kluczami innego sektora – czytnik wysłał ten kod, a kontroler go zapisał. Niestety nie mam autorskiego programisty firmy IronLogic, żeby zajrzeć do bazy kluczy sterownika, ale mam nadzieję, że udało mi się zwrócić uwagę na fakt, że problem istnieje. Dostępny jest film demonstrujący pracę z tą luką по ссылке.

PS Teorii losowego dodawania zaprzecza fakt, że w jednym centrum biznesowym w Krasnojarsku również udało mi się otworzyć drzwi tą samą metodą.

Źródło: www.habr.com

Dodaj komentarz