Mastodon

Losowe MAC adresy w OS X

2
Dodane: 10 lat temu

Jedną z nowości, z jaką spotkamy się w iOS 8 będzie losowe generowanie MAC adresów podczas wyszukiwania nowych sieci Wi-Fi. Jak słusznie zauważył Wojtek Pietrusiewicz ma to za zadanie zwiększyć nasze bezpieczeństwo oraz prywatność poprzez utrudnienie śledzenia przez firmy zbierające takie dane. Tymczasem podobne zabezpieczenie można sobie stworzyć również na komputerze.

Oczywiście wpis ten dotyczy przede wszystkim komputerów przenośnych działających pod kontrolą OS X, ponieważ to z nimi zazwyczaj się przemieszczamy (choć znajdzie się parę przypadków mobilnego korzystania z iMaców). Poniższą metodę losowego generowania MAC adresów utworzył niejaki Jonatan Zdziarski, człowiek zajmujący się między innymi testowaniem różnych zabezpieczeń.

Tak jak wiele laptopów również i MacBooki podczas wyszukiwania sieci Wi-Fi umożliwiają wyśledzenie ich adresów MAC. Zapobiec temu ma poniższy skrypt, którego zasada działania jest dość prosta – kiedy komputer nie jest podłączony do żadnej sieci Wi-Fi, to co 30 sekund zmienia MAC adres na losowy wybierany na podstawie „sklejania” dwóch połówek adresu w formie listy w pliku tekstowym. Dany plik tekstowy możecie pobrać stąd. Następnie przenosimy go w jakieś konkretne miejsce, np. do folderu Dokumenty.

Kolejnym krokiem jest utworzenie w dowolnym edytorze zwykłego tekstu poniższego skryptu:

#!/bin/bash

INTERFACE=en0
OUI="/Users/$USER/Documents/oui.txt"
OUI_LEN=19004

while [ true ]; do
    STATUS=`ifconfig ${INTERFACE} | grep status: | awk '{print $2}'`
    if [ "$STATUS" = "inactive" ]; then
        R=$(((RANDOM % ${OUI_LEN})+1))
        PREFIX=`head -$R $OUI | tail -1`
        CMD="sudo ifconfig ${INTERFACE} ether ${PREFIX}:"
        for i in `seq 1 6`; do
            R=$(((RANDOM % 15)+1))
            C=`echo "obase=16; $R" | bc`
            CMD="$CMD$C"
            if [ $((i % 2)) = 0 ] && [ $i != 6 ]; then
                CMD="$CMD:"
            fi
        done
        RESULT=`$CMD`
        echo $CMD
    fi
    sleep 30
done

Warto zwrócić w powyższym skrypcie uwagę na dwie linijki:

  • INTERFACE=en0 – posiadacze najnowszych MacBooków nie posiadających złącza Ethernet nie będą musieli tutaj nic zmieniać. Jeśli jednak macie starszy model, w którym jest złącze Ethernet, jak również wbudowana karta Wi-Fi, to w niektórych przypadkach ta druga może być jako en1.
  • OUI="/Users/$USER/Documents/oui.txt" – w tym miejscu wskazane jest położenie pobranego wcześniej pliku tekstowego. Jeśli umieściliście go gdzie indziej niż folder Documents, to należy to odpowiednio zmienić. (warto zauważyć, że użyta zmienna $USER wskazuje na nazwę folderu domowego).

Zapisany skrypt (najlepiej z rozszerzeniem sh) zapisujemy w wygodnym dla nas miejscu. Kiedy przyjdzie moment, że będziemy zabierać gdzieś nasz komputer, to uruchamiamy skrypt poniższym poleceniem:

sh /ścieżka/do/skryptu.sh

Uwaga: Należy wziąć pod uwagę, że korzystanie z powyższego skryptu wymusi zrezygnowanie z zabezpieczenia sieci domowej jakim jest filtrowanie komputerów wg ich MAC adresów (bo nasz będzie zmienny). To samo się tyczy, gdy zamierzamy korzystać z płatnego dostępu do Wi-Fi w hotelach czy innych miejscach.

Źródło: Jonathan Zdziarski’s Domain

Maciej Skrzypczak

Użytkownik sprzętu z nadgryzionym jabłkiem, grafik komputerowy, Redaktor iMagazine.pl. Mastodon: mcskrzypczak@c.im

Zapraszamy do dalszej dyskusji na Mastodonie lub Twitterze .

Komentarze: 2

Czy będzie można wyłączyć tą funkcję ?. Dużo operatorów ma w regulaminie klauzule co do ilości korzystających z internetu komputerów w ramach jednej umowy (UPC), a taka „nowość” może namieszać na routerze.