Funkcjonariusz: platforma open source do szybkiej eksfiltracji danych z komputerów, serwerów, telefonów, tabletów, aparatów cyfrowych i innych urządzeń USB.

kontakt@funkcjonariusz.com

Funkcjonariusz jest konfigurowany za pomocą specjalnych repozytoriów konfiguracyjnych, wgrywanych do katalogu /opt/drivebadger/config. Każde takie repozytorium powinno zawierać 1 lub więcej plików konfiguracyjnych, o nazwach i zawartości opisanych niżej.

Pliki konfiguracyjne

Poszczególne typy plików konfiguracyjnych są rozpoznawane po nazwach:

Każdy z powyższych plików może występować w więcej niż jednym repozytorium - zawartość wielu plików jest wówczas łączona. Większość plików (z wyjątkiem exclude.list) obsługuje komentarze i puste linie - są one wycinane podczas ładowania konfiguracji.

Repozytoria konfiguracyjne

Repozytoria konfiguracyjne powinny być klonowane do katalogu /opt/drivebadger/config jako podkatalogi - np. /opt/drivebadger/config/exclude-windows czy /opt/drivebadger/config/keys-luks-twojanazwa.

Każdy taki lokalny katalog /opt/drivebadger/config/twojanazwa tak naprawdę może być:

  • kopią roboczą repozytorium Git
  • kopią roboczą repozytorium Subversion
  • zwykłym katalogiem (wgranym i zarządzanym ręcznie, albo generowanym przez jakieś narzędzia zewnętrzne)

Katalogi będące prawidłowymi kopiami roboczymi można zaktualizować za jednym podejściem, skryptem /opt/drivebadger/update.sh (obsługuje on również repozytoria prywatne pod warunkiem, że prawidłowo skonfigurujesz klucze ssh pozwalające na dostęp do nich) - w przypadku zwykłych katalogów musisz samodzielnie zadbać o ich aktualność.

Jeśli nie jesteś pewien, czy jakiś element konfiguracji może być jawny, lepiej dla pewności umieść go w repozytorium prywatnym.

Gotowe repozytoria

Poniższe repozytoria są rozwijane jako element projektu, możesz więc polegać na ich aktualności i jakości. Możesz również wykonać forka każdego z tych repozytoriów i rozwijać go samodzielnie w pożądanym kierunku.

Repozytoria demonstracyjne

Poniższe repozytoria nie są przeznaczone do bezpośredniego użytku, ale jako przykłady. Docelowe repozytoria powinieneś stworzyć od zera - ze względów bezpieczeństwa powinny to być repozytoria prywatne.

Instalacja repozytorium publicznego

Do instalacji publicznego repozytorium konfiguracyjnego wystarczy jedno polecenie (wykonane z konsoli jako root na etapie konfigurowania nowego dysku):

git clone https://github.com/drivebadger/nazwa-repozytorium /opt/drivebadger/config/nazwa-repozytorium

Instalacja repozytorium prywatnego

W przypadku repozytoriów prywatnych procedura jest nieco bardziej skomplikowana:

  1. Dla każdego repozytorium prywatnego utwórz tzw. deploy key - najlepiej osobny dla każdego operatora, któremu chcesz dać dostęp do Funkcjonariusza:
/opt/drivebadger/internal/git/key.sh nazwa-repozytorium

Wygenerowany klucz zostanie wyświetlony na konsoli i będzie się kończył nazwą hosta komputera, na którym go wygenerowałeś - możesz tą nazwę podmienić na taką, która będzie możliwie najlepiej identyfikować konkretny dysk lub kartę pamięci (na wypadek zgubienia lub odebrania, gdyby trzeba było ten klucz szybko odnaleźć i usunąć).

  1. Podaj ten klucz pod następującym adresem:

https://github.com/twoj-uzytkownik-github/nazwa-repozytorium/settings/keys

  1. Możesz już zainstalować repozytorium poleceniem:
GIT_SSH=/opt/drivebadger/internal/git/helper.sh \
    GIT_KEY=~/.ssh/id_github_nazwa-repozytorium \
    git clone \
    git@github.com:twoj-uzytkownik-github/nazwa-repozytorium.git \
    /opt/drivebadger/config/nazwa-repozytorium

Aktualizacja konfiguracji

Do aktualizacji służy skrypt /opt/drivebadger/update.sh, uruchamiany z konsoli jako użytkownik root. Skrypt ten aktualizuje po kolei wszystkie repozytoria konfiguracyjne, a także hooki, injectory i moduły zewnętrzne, a następnie przebudowuje pliki UUID używane przez Funkcjonariusza Mobilnego.

Tworzenie własnych plików konfiguracyjnych

Pliki exclude.list

  1. Puste linie są dozwolone.
  2. Komentarze NIE są dozwolone.
  3. Zduplikowane linie są dozwolone (również pomiędzy wieloma plikami).
  4. Wielkość nazw plików i katalogów w regułkach ma znaczenie.

Pliki *.keys

  1. Puste linie są dozwolone.
  2. Komentarze są dozwolone.
  3. Komentarze muszą zaczynać się od znaku # jako pierwszego w linii (spacje przed nim nie są dozwolone).
  4. Wszystkie klucze i hasła mogą być podzielone na wiele plików *.keys.
  5. Zduplikowane klucze i hasła są dozwolone (również pomiędzy wieloma plikami).

Pliki *.uuid

  1. Puste linie są dozwolone.
  2. Komentarze są dozwolone.
  3. Komentarze muszą zaczynać się od znaku # jako pierwszego w linii (spacje przed nim nie są dozwolone).
  4. Wszystkie UUID-y mogą być podzielone na wiele plików *.uuid.
  5. Zduplikowane UUID-y są dozwolone (również pomiędzy wieloma plikami).
  6. Po każdej aktualizacji tych plików musi zostać uruchomiony skrypt /opt/drivebadger/internal/mobile/rebuild-uuid-lists.sh (skrypt /opt/drivebadger/update.sh uruchamia go automatycznie).