Napisał: Patryk Krawaczyński
03/07/2021 w Bezpieczeństwo
W
yobraźmy sobie następujący scenariusz. Wyciekł klucz SSH umożliwiający zalogowanie się do zwykłego konta platformy wdrożeniowej. Był on używany do wdrażania i aktualizacji repozytoriów za pomocą ansible. Umożliwia on zalogowanie się na powłokę systemową grupy serwerów, na której są budowane i uruchamiane kontenery Docker. Samo konto nie posiada żadnych dodatkowych uprawnień ani grup. Zastanówmy się teraz w jaki sposób możemy dokonać eskalacji uprawnień wykorzystując jedną z przestrzeni nazw (ang. namespace) kontenera Docker oraz rozszerzonej zdolności Linuksa (ang. capabilities).
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
30/06/2021 w Bezpieczeństwo
S
erwis NewsBlur 3 godziny po zakończeniu migracji swojej infrastruktury MongoDB na kontenery Docker doświadczył usunięcia danych. Otóż sam serwer miał włączoną zaporę sieciową UFW (ang. Uncomplicated Firewall) z ścisłą listą dozwolonych adresów IP. Co takiego się stało? Otóż okazało się, że decydując się na publikację portu MongoDB na kontenerze – Docker w standardzie robi swoją sztuczkę (znaną od 2014 roku) pod postacią dziury w zaporze otwierając dany port (tutaj: 27017) na świat. Proces ten jest opisany w dokumentacji:
This creates a firewall rule which maps a container port to a port on the Docker host to the outside world.
Wielu użytkowników jest zdziwiona takim zachowaniem – spodziewając się raczej odwrotnej polityki: świadomego włączenia funkcji otwierania portów niż konieczności ich wyłączenia (--iptables=false
), czy potrzebę definiowania reguł iptables na poziomie łańcucha mangle, a nie filter. Oczywiście cała ta sytuacja nie tłumaczy uruchomienia niezabezpieczonej bazy NoSQL w kontenerze.
Więcej informacji: How a Docker footgun led to a vandal deleting NewsBlur’s MongoDB database, Docker Network bypasses Firewall, no option to disable
Napisał: Patryk Krawaczyński
10/06/2021 w Bezpieczeństwo
B
ardzo wiele firm utrzymuje repozytoria publicznych projektów na popularnych serwisach takich jak Github oraz Gitlab. Na przykład listę loginów poszczególnych użytkowników w serwisie Github można uzyskać bardzo łatwo – wystarczy odwiedzić adres: https://github.com/orgs/$firma/people.
Plus iterując po poszczególnych projektach: https://github.com/$firma/$projekt/graphs/contributors można zebrać dość dużą ilość unikatowych użytkowników. Gdzie następuje wyciek? Otóż Github używa adresów e-mail powiązanych z kontem Github (można mieć ich więcej niż jeden – a często na jednym koncie łączy się prywatne i firmowe adresy) przy zatwierdzaniu kodu (ang. commit) oraz innych aktywnościach w profilu użytkownika. Kiedy użytkownik zatwierdza kod w publicznym repozytorium jego adres e-mail jest publikowany i staje się publicznie dostępny.
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
24/05/2021 w Bezpieczeństwo
Z
nalezienie tylnego wejścia (ang. backdoor) uruchomionego w systemie Linux nie zawsze może być trywialne. Tylne furtki służą do interakcji atakującego z hostem w czasie rzeczywistym i są konsekwencją / kolejnym krokiem włamania do systemu. Sposród różnych backdoorów, które można wykorzystać w środowisku *nix jest bardzo dobrze znany bindshell, czyli powłoka, która nasłuchuje na określonym porcie TCP/IP. Uruchomi ona wszystko, co zostanie wysłane do tego portu i odpowie danymi wyjściowymi z przesłanych poleceń. Jej wariantem jest odwrócona powłoka (ang. reverse shell), ponieważ zamiast łączenia się atakującego z ofiarą, napastnik powoduje (np. poprzez podatną webaplikację), że to system ofiary łączy się do niego z powrotem. Dlaczego to takie ważne? Ponieważ większość funkcji filtrowania sieci jest skonfigurowana tak, aby szczegółowo blokować ruch przychodzący z internetu. Jednak bardzo często ruch wychodzący jest nieograniczony lub znacznie mniej filtrowany. Dlatego odwrócony bindshell jest świetnym sposobem na przeskakiwanie zapór ogniowych i innych mechanizmów ochrony.
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
05/05/2021 w Bezpieczeństwo
P
hishing korzysta z różnych technik przy rejestracji domen: typosquatting, cybersquatting, punycode, bitsquatting, homoglyph oraz homograph – ponieważ przekonująca nazwa domeny ma kluczowe znaczenie dla powodzenia każdego ataku phishingowego. Użytkownicy często popełniają błąd podczas pisania nazw domenowych – staje się to problemem kiedy klienci docierają do witryny naszej firmy, która ich zdaniem jest prawdziwa, a w rzeczywistości jest złośliwą kopią. W najlepszym przypadku tylko dezorientuje użytkownika, a w najgorszym instaluje złośliwe oprogramowanie i powoduje straty finansowe. Dlatego, jeśli jesteśmy odpowiedzialni za utrzymanie i bezpieczeństwo firmowej witryny – możemy wyszukiwać domeny o podobnych nazwach i sprawdzać, czy domeny te nie rozpowszechniają niebezpiecznych treści za pomocą strony (HTTP) lub poczty (SMTP) pod szyldem naszej firmy.
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
18/04/2021 w Bezpieczeństwo
U
sługa Colaboratory, w skrócie „Colab” to produkt firmy Google, który umożliwia każdemu pisanie i wykonywanie dowolnego kodu Pythona za pośrednictwem przeglądarki. Najczęściej wykorzystuje się go w szybkim przygotowaniu jakiegoś dowodu koncepcji w analizie danych lub napisania kawałka skryptu. Z technicznego punktu widzenia Colab to hostowana usługa oparta na rozwiązaniu Jupyter, która nie wymaga żadnej konfiguracji, a jednocześnie zapewnia bezpłatny dostęp do zasobów obliczeniowych, w tym procesorów graficznych*.
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
13/04/2021 w Bezpieczeństwo, Pen Test
W
yobraźmy sobie taki scenariusz – jesteś członkiem zespołu Red Team, który ma kompetencje w zakresie systemu Linux. Twoim zadaniem jest opracowanie ćwiczenia, w którym musisz zachować dostęp do skompromitowanego systemu przez jak najdłuższy czas. Posiadając uprawnienia administratora myślisz o dodaniu jakiegoś zadania w cron
lub innej klasycznej lokalizacji (np. rc.local
), ale wiesz że Blue Team je systematycznie sprawdza. Przez chwilę myślisz o doczepieniu tylnej furki jakieś binarce, tylko problem w tym, że dostęp ma być utrzymany jak najdłużej, a skompromitowana maszyna jest ustawiona na regularną aktualizację łatek bezpieczeństwa, więc wszelkie pliki wykonawcze lub inne krytyczne komponenty systemu mogą zostać nadpisane wersjami domyślnymi.
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
07/04/2021 w Bezpieczeństwo
F
irma OVH stworzyła modułowy framework napisany głównie w języku powłoki bash, który za pomocą skryptów sprawdza rekomendacje z CIS (ang. Center for Internet Security) dla systemu Debian w wersji 9/10. Zgodnie z filozofią „zjedz własną karmę dla psa” (ang. eat your own dog food), która opisuje wykorzystywanie własnych produktów lub usług do swoich, wewnętrznych działań firmowych – projekt ten jest wykorzystywany do hartowania systemów OVH, które mają spełniać standard PCI DSS (ang. Payment Card Industry Data Security Standard). Na postawie tego projektu powstał również inny o nazwie harbian-audit, który rozszerzył działanie o wytyczne z STIG (ang. Security Technical Implementation Guide) dla systemu CentOS 8 oraz Ubuntu 16.04. Możemy w nim również znaleźć autorskie wytyczne stworzone przez społeczność HardenedLinux.
Napisał: Patryk Krawaczyński
05/04/2021 w Bezpieczeństwo
J
eśli w katalogu domowym użytkownika istnieje plik ~/.ssh/rc
– sh(1) uruchomi go po przeczytaniu plików środowiskowych, ale przed uruchomieniem powłoki lub polecenia użytkownika (nawet jeśli wyłączymy alokację TTY). Plik ten nie może generować żadnych danych na standardowy strumień wyjścia (stdout
); zamiast tego należy użyć standardowego strumienia błędów (stderr
). Przykład:
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
22/03/2021 w Bezpieczeństwo
O
d samego początku Uniksa (na którym oparty jest Linux) wszystko jest plikiem. Możemy spierać się o szczegóły, ale w większości przypadków jest to prawda. W dodatku w systemach Unix i pokrewnych systemach operacyjnych istnieje taki obiekt, jak deskryptor pliku (ang. file descriptor – FD, rzadziej fildes), który jest abstrakcyjnym wskaźnikiem / uchwytem (ang. handle) używanym do uzyskiwania dostępu do pliku lub innego zasobu wejścia / wyjścia, takiego jak potok (ang. pipe) lub gniazdo sieciowe (ang. network socket). Deskryptory plików stanowią część interfejsu programowania aplikacji POSIX – są nieujemną liczbą całkowitą, zwykle reprezentowaną w języku programowania C jako typ int
(ang. integer) (wartości ujemne są zarezerwowane, aby wskazać „brak wartości” lub stan błędu).
[ czytaj całość… ]
Ostatni komentarz :