Oracle wycofuje uwierzytelnianie systemu operacyjnego zgodnie z Oracle Database Security Guide , który mówi
Należy pamiętać, że parametr REMOTE_OS_AUTHENT został uznany za przestarzały w Oracle Database 11g Release 1 (11.1) i jest zachowany tylko dla kompatybilności wstecznej.
Ponadto większość informacji i narzędzi bezpieczeństwa uważa uwierzytelnianie systemu operacyjnego (zewnętrznego) za problem z bezpieczeństwem. Próbuję zrozumieć, dlaczego tak jest. Oto niektóre zalety uwierzytelniania systemu operacyjnego:
- Bez uwierzytelniania systemu operacyjnego aplikacje muszą przechowywać hasła w różnych aplikacjach, z których każda ma własny model zabezpieczeń i luki w zabezpieczeniach.
- Uwierzytelnianie domeny musi już być bezpieczne, ponieważ jeśli tak nie jest, zabezpieczenia bazy danych spowalniają dostęp do bazy danych, ale nie można temu zapobiec.
- Użytkownicy, którzy muszą zapamiętać tylko jedno hasło do domeny, mogą łatwiej tworzyć bezpieczniejsze hasła do domen niż do tworzenia jeszcze mniej bezpiecznych haseł do baz danych, ponieważ liczba różnych baz danych, z którymi muszą się łączyć, wzrasta.
oracle
oracle-11g-r2
security
Leigh Riffel
źródło
źródło
Odpowiedzi:
Rozważ następujący scenariusz:
gaius
na serwerze Oracle z zewnętrznym uwierzytelnieniem, więc w Oracle istnieje odpowiedni użytkownik o nazwieops$gaius
. Po zalogowaniu do powłoki mogę również zalogować się bezpośrednio do mojego schematu Oracle, a moje zadania cron również nie potrzebują hasła osadzonego w skrypcie.rlogin
/rsh
kiedyś normalnie dozwolone)gaius
i uruchamia SQL * Plus jako ten użytkownikOSUSER
wV$SESSION
) jestgaius
i że zdalny użytkownik loguje się jakoops$gaius
To nie tylko śmiesznie łatwe do sfałszowania, ale zakładając czapkę mojego cynika, Oracle nie może zarobić więcej pieniędzy, sprzedając ci swój wymyślny produkt jednokrotnego logowania ... Który, nawiasem mówiąc , spełnia wszystkie punkty, które podniosłeś jako zalety systemu operacyjnego -poziom autoryzacji Dwa hasła lepsze od jednego są całkowicie fałszywe; większość ludzi i tak ustawi je tak samo (nie ma w Oracle mechanizmu, który mógłby temu zapobiec).
Ogólna zasada jest taka, że niezwykle trudno jest bronić się w oprogramowaniu, gdy osoba atakująca ma fizyczny dostęp. I nigdy nie ufaj klientowi.
źródło
Zwiększa pojedyncze punkty awarii i powiększa powierzchnię ryzyka danych.
Osoba atakująca, która uzyska dostęp do systemu, dzięki uwierzytelnieniu systemu operacyjnego będzie miała dostęp do bazy danych. Wymagając bardziej bezpiecznego dostępu do bazy danych, potencjalny atakujący musi zwiększyć swoje uprawnienia w zaatakowanym systemie, aby uzyskać dostęp do konta root lub Oracle, a nie żadnego użytkownika.
Ten problem jest funkcją zewnętrznego dostępu do bazy danych. Jeśli nie ma dostępu zewnętrznego, a maszyna jest w pełni zabezpieczona, wówczas kwestia uprawnień jest dyskusyjna. Jeśli jednak programiści mają dostęp, uprawnienia użytkownika na poziomie systemu operacyjnego zwiększają zakres potencjalnych katastrof bezpieczeństwa.
Rozważ użycie dostępu wielopoziomowego w celu ograniczenia zakresu naruszeń bezpieczeństwa i zapewnienia każdemu użytkownikowi, aplikacji lub klientowi dostępu, którego potrzebują, bez potrzeby tworzenia kont na poziomie systemu operacyjnego dla każdej instancji.
źródło
Gaius wskazał już, dlaczego zdalne uwierzytelnianie systemu operacyjnego (w przeciwieństwie do uwierzytelniania waniliowego systemu operacyjnego, w którym zezwalasz użytkownikom komputerów lokalnych na dostęp do bazy danych bez podawania osobnego hasła) jest stosunkowo niepewne.
Spodziewałbym się, że Oracle zmierza w tym kierunku, ponieważ chce zachęcić ludzi do korzystania z użytkowników korporacyjnych (lub pełnego pakietu zarządzania tożsamością), a nie ze zdalnych użytkowników uwierzytelnionych w systemie operacyjnym. Użytkownicy korporacyjni mają te same zalety, co użytkownicy uwierzytelnieni w zdalnym systemie operacyjnym, ale Oracle faktycznie wychodzi na serwer Active Directory w celu uwierzytelnienia użytkownika. Otrzymujesz ten sam pojedynczy znak na korzyści bez pozostawiania kontroli bezpieczeństwa na komputerze klienta.
źródło
W szczególności wskazujesz na uwierzytelnianie w identycznym stylu, ale chciałbym również zauważyć, że inne metody wiązania bazy danych lub innych loginów z logowaniami systemu operacyjnego są równie złe. (czy to lokalne pliki haseł, LDAP, czy cokolwiek innego do faktycznego przechowywania poświadczeń)
Jeśli zezwalasz na zdalne połączenia z bazą danych (lub serwerem WWW lub czymkolwiek, co wykonuje uwierzytelnianie), niektóre systemy operacyjne będą ignorować reguły, które mogą być ustawione, aby utrudnić brute force force (np. Blokowanie adresów IP, z których pochodzą nieudane próby; blokowanie użytkowników przez określony czas po określonej liczbie awarii itp.). Zwykle reguły te są powiązane
sshd
, a nie cały system uwierzytelniania.Tak więc, jeśli ktoś może połączyć się z bazą danych / serwerem WWW / cokolwiek zdalnie, może brutalnie wymusić hasło, ponieważ bazy danych nie mają zwykle takich samych mechanizmów powolnych prób, a następnie ssh po znalezieniu niezbędnych poświadczeń.
źródło
mod_auth_apple
imod_auth_digest_apple
dla wersji standardowych, chociaż nie testowałem, czy problem nadal istnieje w 10,6)