Brudna krowa
Identyfikator(y) CVE | CVE-2016-5195 |
---|---|
Odkrywca | Phila Oestera |
Oprogramowanie, którego dotyczy problem | Linuksa (<4.8.3) |
Dirty COW ( Dirty copy-on-write ) to luka w zabezpieczeniach jądra systemu Linux , która dotyczy wszystkich systemów operacyjnych opartych na systemie Linux, w tym urządzeń z systemem Android , które korzystały ze starszych wersji jądra systemu Linux utworzonych przed 2018 r. Jest to lokalna eskalacja uprawnień błąd, który wykorzystuje sytuację wyścigu w implementacji mechanizmu kopiowania przy zapisie w podsystemie zarządzania pamięcią jądra. Komputery i urządzenia, które nadal korzystają ze starszych jąder, pozostają podatne na ataki.
Luka została odkryta przez Phila Oestera. Ze względu na warunki wyścigu, w odpowiednim czasie, lokalna osoba atakująca może wykorzystać mechanizm kopiowania przy zapisie, aby przekształcić mapowanie pliku tylko do odczytu w mapowanie z możliwością zapisu. Chociaż jest to lokalna eskalacja uprawnień , osoby atakujące zdalnie mogą jej używać w połączeniu z innymi exploitami, które umożliwiają zdalne wykonanie nieuprzywilejowanego kodu w celu uzyskania zdalnego dostępu administratora do komputera. Sam atak nie pozostawia śladów w dzienniku systemowym.
Luka ma oznaczenie Common Vulnerabilities and Exposures CVE - 2016-5195 . Brudna krowa była jednym z pierwszych problemów bezpieczeństwa, które w przejrzysty sposób rozwiązano w Ubuntu przez usługę Canonical Live Patch.
Wykazano, że luka może zostać wykorzystana do zrootowania dowolnego urządzenia z Androidem do (i z wyłączeniem) Androida w wersji 7 (Nougat).
Historia
Luka istnieje w jądrze Linuksa od wersji 2.6.22 wydanej we wrześniu 2007 roku, a informacje o jej aktywnym wykorzystywaniu pojawiają się co najmniej od października 2016 roku. 4.4.26 i nowsze.
Łatka wydana w 2016 r. nie rozwiązywała w pełni problemu, a poprawiona łatka została wydana 27 listopada 2017 r., jeszcze przed publicznym rozpowszechnieniem luki.
Aplikacje
Luka w zabezpieczeniach Dirty COW ma wiele zauważonych przypadków użycia, w tym sprawdzone przykłady, takie jak uzyskiwanie uprawnień administratora na urządzeniach z Androidem, a także kilka spekulowanych implementacji. Istnieje wiele plików binarnych używanych w Linuksie, które są tylko do odczytu i mogą być modyfikowane lub zapisywane tylko przez użytkownika o wyższych uprawnieniach, takiego jak root. Kiedy uprawnienia są eskalowane, czy to w sposób autentyczny, czy złośliwy – na przykład przy użyciu exploita Dirty COW – użytkownik może modyfikować zwykle niemodyfikowalne pliki binarne i pliki. Jeśli złośliwa osoba mogłaby wykorzystać lukę w zabezpieczeniach Dirty COW do eskalacji swoich uprawnień, mogłaby zmienić plik, taki jak /bin/bash
, tak aby wykonywał dodatkowe, nieoczekiwane funkcje, takie jak keylogger. Gdy użytkownik uruchomi zainfekowany program, nieumyślnie zezwoli na uruchomienie szkodliwego kodu. Jeśli celem exploita jest program uruchomiony z uprawnieniami roota, exploit będzie miał te same uprawnienia.
Środki zaradcze i odwoławcze
Na początku jego odkrycia każdy, kto korzystał z komputera z systemem Linux, był podatny na exploit. Exploit nie ma obejścia zapobiegawczego, jedynym lekarstwem jest łatka lub uruchomienie nowszej wersji, która nie jest już podatna na ataki. Linus Torvalds opublikował łatkę 18 października 2016 r., przyznając, że była to stara luka, którą próbował naprawić jedenaście lat temu. Niektórzy dystrybutorzy dostarczają poprawki, na przykład Canonical , który dostarczył poprawkę na żywo . W przypadku braku łatki istnieje kilka technologii łagodzących, w tym SystemTap , i bardzo mało zabezpieczeń z SELinux lub AppArmor . Oprogramowanie antywirusowe może wykrywać ataki z podwyższonym poziomem uprawnień, ale nie może zapobiec atakowi. Gdy nadarzy się okazja, najbezpieczniejszą drogą jest aktualizacja jądra Linuksa do następujących wersji:
Naprawiono najstarszą wersję jądra | Dystrybucja Linuksa, która tego używa |
---|---|
3.2.0-113.155 | Ubuntu 12.04 LTS |
3.13.0-100.147 | Ubuntu 14.04 LTS (Linux Mint 17.1) |
3.16.36-1+deb8u2 | Debiana 8 |
4,4,0-45,66 | Ubuntu 16.04 LTS |
4.8.0-26.28 | Ubuntu 16.10 |
3.10.0-327.36.3 | RHEL 7, CentOS 7 |
2.6.32-642.6.2 | RHEL 6, CentOS 6 |
2.6.18-416 | RHEL 5, CentOS 5 |
3.0.101-84.1 | SLES 11 SP4 |
3.12.60-52.57.1 | SLES 12 GA LTSS |
3.12.62-60.64.8.2 | SLES 12 SP1 |
Linki zewnętrzne
- CVE-2016-5195 w firmie Red Hat
- CVE-2016-5195 w firmie SUSE