Wiem, że hasło sudo chroni komputer przed lokalnym włamaniem przez osobę mającą do niego fizyczny dostęp ( edytuj: w rzeczywistości tak nie jest ). Moje hasło jest wystarczająco silne do tego celu, ale wiem, że nie jest wystarczająco silne, jeśli ktoś może zdalnie go wymusić.
Czy ktoś może uzyskać dostęp do mojego komputera w trybie root przy użyciu mojego hasła sudo bez fizycznego dostępu do komputera, w standardowej instalacji na komputerze Ubuntu?
- Jeśli masz dostęp do sieci, zdecydowanie tak (krótka odpowiedź)
- Jeśli nie zwracasz wystarczającej uwagi na bezpieczeństwo, tak (długa odpowiedź)
- Jeśli masz uruchomione „ssh” i nie ma 2FA , tak ( komentarze i odpowiedzi)
- Można uzyskać dostęp do komputera jako root bez sudo / hasła użytkownika
Odpowiedzi:
Nie chcę cię zbytnio straszyć, ale jeśli ktoś ma fizyczny dostęp, przekazujesz mu dostęp bez względu na to, jak silne jest twoje hasło. Ktoś będzie potrzebował 1 restartu, aby ta osoba mogła zmienić twoje hasło roota (można to zrobić z „grub rat” bez konieczności podawania twojego aktualnego hasła). Nawiasem mówiąc: ta metoda jest uważana za prawidłową i stanowi funkcję oraz zaakceptowane ryzyko bezpieczeństwa (w przeciwnym razie nigdy nie będziesz w stanie naprawić swojego systemu w przypadku naruszenia hasła).
Oto coś innego: ROUTER powinien być wystarczająco inteligentny, aby zablokować dostęp z zewnątrz, jeśli jest to powtarzające się żądanie z prośbą o te same informacje w krótkim czasie. Zasadniczo masz tutaj atak DOS (lub DDOS, jeśli atakują Cię 2+ komputery). Router powinien zabić to połączenie i wymusić okres oczekiwania przed zaakceptowaniem nowych żądań z tego połączenia.
Najpierw muszą się połączyć, a następnie podać hasło sudo. Tryb „root” jest wyłączony i nie można zalogować się bezpośrednio do monitu „#”.
Pamiętaj, że można nadużyć usługi. Jeśli masz „ssh” uruchomione na tym komputerze, a oni mogą „ssh” do twojego systemu i uzyskać nazwę użytkownika i hasło dla tego użytkownika (a ponieważ jest to użytkownik administracyjny, twoje hasło sudo również) mogą uzyskać dostęp do twojego komputera i zepsuć to. Nawiasem mówiąc: jeśli robią to w ten sposób, muszą najpierw znać Twój system (np. Hasło).
Ale wtedy jest problem z tą (i każdą inną metodą): w jaki sposób uzyskali twoje hasło? NIE mogą go pobrać z samego systemu. I generalnie zgadywanie nie jest warte kłopotów. Jeśli został opracowany społecznie ... oznacza to, że masz problem, nie dotyczy to modelu bezpieczeństwa twojego systemu, Ubuntu czy Linuksa w ogóle.
Tak długo, jak twoje hasło sudo jest twoje, będzie / powinno być w porządku. Będzie Ci jeszcze lepiej, jeśli będzie to silne hasło (być może łatwe do zapamiętania dla ciebie, ale nie do odgadnięcia przez innych). Przykład, którego użyłem wcześniej podczas omawiania tego: jeśli Twój pies nazywa się „Abwegwfkwefkwe”, używając hasła „Abwegwfkwefkwe” jako hasła, jest ZŁY, mimo że wygląda dobrze (ponieważ ktoś może zapytać: „jak ma na imię Twój pies” i spróbuje darmowe przypuszczenie). Jeśli nie masz związku z „Abwegwfkwefkwe”, jest to dobre hasło.
Najlepsza rada, jaką mogę udzielić:
nie wpisuj hasła administratora, gdy zostaniesz o to poproszony, chyba że wiesz, że było to wymagane. Jeśli otworzysz przeglądarkę i pojawi się wyskakujące okienko, które wygląda jak nasze „prośba o hasło do konta administratora” ... przestań ... i pomyśl najpierw.
nie pozostawiaj systemu bez nadzoru, gdy okres karencji „sudo” jest aktywny.
sudo --reset-timestamp
usuwa bieżący okres karencji i poprosi o hasło ponownie przy następnym użyciu „sudo”. Zablokuj ekran, gdy przejdziesz do AFK.nie instaluj usług ani oprogramowania dla zabawy. Jeśli nie potrzebujesz
ssh
, nie instalujssh
, jeśli nie korzystasz z serwera, nie instaluj serwera. I spójrz na aktualnie uruchomione usługi. Jeśli nie używasz BT na notebooku, wyłącz go. Jeśli nie korzystasz z kamery internetowej, wyłącz ją (jeśli jest aktywna). Usuń oprogramowanie, którego już nie używasz.a dla naprawdę paranoików (i tak, Paranoiczna Panda, patrzę na ciebie): zmieniaj hasło co jakiś czas. Możesz nawet zainstalować łowców rootkitów, aby sprawdzić, czy dostęp jest niewłaściwy.
wykonaj kopię zapasową ważnych danych do czegoś, co utrzymasz w trybie offline. Więc nawet jeśli znajdziesz kogoś w systemie, możesz go sformatować i zacząć od nowa z nową instalacją, a dane zostaną przywrócone.
źródło
sudo --reset-timestamp
dosudo -k
lubsudo -K
dla naprawdę paranoiczne (konieczne tylko wtedy, gdy atakujący może ustawić czas systemowy do dowolnych wartości, przy której prawdopodobnie już utracone).Tak, moga.
Można to jednak zrobić na wiele sposobów, a brutalne wymuszanie
sudo
hasła prawdopodobnie nie jest pierwszym.Po pierwsze,
sudo
hasło to hasło użytkownika; więc naprawdę musieliby dostać twoje hasło.Po drugie, złamanie hasła użytkownika za pomocą brutalnej siły w celu uzyskania dostępu do systemu jest prawdopodobnie ostatecznością.
Istnieją znacznie bardziej eleganckie (ale przede wszystkim bardziej skuteczne) sposoby włamania się do innego systemu.
Zazwyczaj atakujący albo po prostu próbuje wykorzystać najczęstsze luki w zabezpieczeniach (najbardziej znane jest uzyskiwanie powłoki użytkownika w jakikolwiek sposób i wykorzystanie ShellShock w celu uzyskania powłoki roota) lub wykonać najlepszą robotę w następujący sposób:
Brutalne wymuszanie
sudo
hasła / użytkownika może być próbą w przypadku, gdy nie można uzyskać powłoki roota w inny sposób, ale na przykład wykorzystanie usługi działającej jako root nie wymaga od atakującego brutalnego wymuszeniasudo
hasła / użytkownika.źródło
sudo
hasła. Co więcej, jeśli uda mu się wykorzystać usługę działającą jako root, jest on bezpośrednio rootowany.sudo
uprawnień (= ~ użytkownik, który jest zalogowany, ale którego atakujący nie zna hasła) może uzyskać root po prostu wykorzystując znane błędy (w tym przypadku niesławny ShellShock).Jeśli w ciągu ostatnich kilku lat nauczyłem się czegoś o bezpieczeństwie, to jedno: nic nie jest niemożliwe .
Tak długo, jak masz dostęp do sieci, zdecydowanie. Każda usługa działająca w twoim systemie, do której można uzyskać dostęp przez sieć, jest teoretycznie podatna na atak, a zatem potencjalną słabość.
Dlatego dla atakującego z wystarczającą liczbą pomysłów jest to możliwe. Możesz uczynić swój system tak bezpiecznym, jak to możliwe, ale nigdy nie możesz uzyskać 100% bezpieczeństwa.
Dlatego ważne jest, aby ocenić, co jest możliwe przy uzasadnionym wysiłku technicznym i co tak dobrze cię chroni, że sam nie możesz już pracować.
źródło
hasło sudo nie służy wyłącznie do lokalnej ochrony, jego celem jest dodanie dodatkowej warstwy zabezpieczeń w celu korzystania z uprawnień administratora. Dobre dyskusje można znaleźć tutaj /superuser//a/771523/467316
Twoje hasło może nie być tak silne, jak myślisz. Obecnie łamie 20-40% skrótów Active Directory mojego klienta dla tych, które widziałem wcześniej, te, które mają złe reguły haseł, są łamane w 70%. Polecam 16-znakowe, złożone hasła. Karty graficzne oclHashcat i Radeon mogą wyrządzić wiele szkód. Dodaj wszystkie zrzuty haseł od każdego naruszenia w ciągu ostatnich 5 lat, a masz dobry słownik, z którego możesz pracować.
Jeśli w ogóle korzystasz z SSH, dokonaj pewnych zmian w sshd_config
MUSI od razu przejść przez bramę (ostatnia, aby wyłączyć serwer ftp, jeśli go nie używasz).
Zapisz, uruchom ponownie ssh
Użyj szyfrowania klucza publicznego Rozpocznij od stworzenia sobie klucza na zdalnym komputerze (za pomocą puttygen lub innego smaku dostępnego w systemie operacyjnym). Skopiuj klucz publiczny na maszynę Ubuntu jako użytkownik, którego chcesz się zalogować jako plik autoryzowanych_kluczy (prawdopodobnie będziesz musiał go utworzyć)
skopiuj klucz publiczny w tym formacie
zapisz go i skonfiguruj sshd_config, aby umożliwić logowanie za pomocą klucza publicznego
zapisz i uruchom ponownie ssh
Spróbuj SSHing na hoście Ubuntu z komputera z kluczem prywatnym, używając szyfrowania klucza publicznego. Jeśli wszystko poszło dobrze, wróć do hosta Ubuntu i wyłącz uwierzytelnianie hasła.
Zapisz i uruchom ponownie ssh
Spróbuj ponownie sshing z komputera z kluczem prywatnym, aby potwierdzić.
Chcesz dodać więcej? skonfiguruj konto nieuprzywilejowane, włącz PermitRootLogin nie, zrestartuj ssh, dodaj swój klucz publiczny do kluczy autoryzowanych nowego konta, zaloguj się jako konto nieuprzywilejowane, su do konta root lub uprzywilejowanego, gdy chcesz zrootować lub uprościć sobie drogę.
źródło
Cel sudo nie jest związany z hasłem, ale zamiast tego daje niektórym użytkownikom uprawnienia rootowania, jednocześnie ograniczając innych na maszynie, bez konieczności przedstawiania loginu root (hasło / klucz / token bezpieczeństwa / itp.). Na przykład w mojej pracy codzienni pracownicy mogą uruchamiać / zamykać / instalować i aktualizować swoje stacje (z firmowego repozytorium) za pośrednictwem sudo. Nie otrzymują innych podstawowych uprawnień, takich jak celowe usuwanie /, formatowanie urządzeń, dodawanie i usuwanie użytkowników, decydowanie, które moduły jądra powinny znaleźć się na czarnej liście lub co działa w crontabie (itp. Itp.). Natomiast w domu sudo umożliwia pełny dostęp do maszyny. Jeśli chodzi o hasło, w rzeczywistości to hasło do konta użytkownika jest wymagane przez sudo (to samo hasło, którego używałbyś do logowania, jeśli automatyczne logowanie nie jest włączone.
Zła wskazówka : jeśli chcesz, aby root był zwykłym kontem na uniksowym systemie sudo (linux / apple osx), uruchom następujące polecenie
W tym momencie root ma zwykłe hasło i możesz się po prostu wylogować i zalogować jako root przy użyciu wspomnianego hasła w „stary sposób”.
Jeśli chodzi o bezpieczeństwo, jeśli jeden program (powiedzmy serwer WWW, mysql, demon php, sshd) działa jako konto z podwyższonym poziomem uprawnień .. powiedzmy root i ma znany exploit, wtedy napastnicy mogą nie potrzebować żadnych poświadczeń bezpieczeństwa, aby uzyskać dostęp. Mogą skorzystać z podatności programu i po prostu spawnować nową powłokę z tego programu działającego jako root. Jest to jednak dość rzadkie, ponieważ menedżerowie dystrybucji zdają sobie sprawę z podobnych problemów i wykonują znakomitą pracę, budując dobrze przemyślane i zwykle bezpieczne domyślne środowisko.
W innym systemie operacyjnym operacją podobną do sudo byłoby kliknięcie prawym przyciskiem myszy i uruchomienie jako administrator systemu (lub utrudnianie uprawnień UAC).
źródło