Bu Yüksek Sierra güvenlik hatasından yan etki olarak oluşturulan kök hesabı nasıl devre dışı bırakabilir veya kaldırabilirim?


40

Bu makalede, bir kilit açma istendiğinde kök girmenin herhangi bir kullanıcının sistem tercihlerinin kilidini açmasına izin verdiği bir hata açıklanmaktadır . Bu uyardı:

Doğrulamak için bunu kendiniz yapmanız gerekmez. Bunu yapmak, devre dışı bırakmamanız durumunda başkalarının yararlanabileceği bir “kök” hesap oluşturur.

Makale, çok istekli bir mühendisin sorunu yeniden üretmesi durumunda ne yapılması gerektiğini tarif etmiyor ve şimdi kök hesabın kaldırılması veya devre dışı bırakılması gerekiyor.

Bu hesap nasıl güvenle devre dışı bırakılabilir veya kaldırılabilir?

Bu Apple sayfası , hesabın nasıl devre dışı bırakılacağını açıklar, ancak hata hesabı yeniden etkinleştirebildiği için bu hataya karşı koruma sağlamaz. Güvenlik hatası giderildikten sonra root devre dışıyken sistemi normal durumuna geri yüklemek için çalışacaktır.

Güncelleme 2017-11-29 16:43 UTC

Yönetici şifresini sağlamadan yönetici kimlik doğrulamasını atlamaktan korumak amacıyla macOS High Sierra'yı güncellemek için bkz. Güvenlik Güncellemesi 2017-001'in güvenlik içeriği hakkında .


Bu sorunun başlığı, halihazırda belirtildiği gibi bir XY'dir, çünkü hesabın kaldırılması veya devre dışı bırakılması istenmemektedir.
Monty Harder

Yanıtlar:


40

Yama mevcut, buraya tıklayın veya makineyi güncelleyin

İlginçtir ki, OSX'in beta ve geliştirici sürümleri için henüz bildiğim kadarıyla bir yama yok. Bu cevabı duydukları anda güncelleyeceğim.

Yukarıdaki yamayı indirin. Tarihin geri kalan kısmından ayrılmak :-)

CVE, CVE-2017-13872'dir ve NIST , yakın bir gelecekte analizi güncelleyecektir .

Orijinal cevap, düzeltme eki olmadan alakalı

Öncelikle, do not bir "engelli" kök hesabı sorunun nedeni olan olan GUI aracılığıyla kök hesabı devre dışı.

Sen edecektir etkinleştirmek kök kullanıcıyı ve bunu bir şifre vermek. Bu, güvenlik açığının VNC ve Apple Remote Desktop aracılığıyla (bir kaç adla) uzaktan da (başka bir kaynaktan) alınabileceği için önemlidir .

Bunu yapmanın iki temel yolu vardır; GUI ve terminal.

İlk olarak, GUI

Kök hesabı etkinleştirmek için "Directory Utility" ye gidin, örn. Cmd + boşluk ve arama. "Yönetici modunun" kilidini açmak için kilide basın, sonra da düzenleme -> "Kök Kullanıcısını Etkinleştir" komutunu kullanarak kök hesabı etkinleştirin.

Kök nasıl etkinleştirilir?

Bir root şifresi ister, çünkü şimdi normal şifrenizi girin (böylece unutmazsınız). Bir şifre sormuyorsa, yukarıdaki Düzenle -> "Kök Şifreyi Değiştir ..." seçeneğini kullanın.

terminal

Daha çok terminal kişiyseniz, aşağıdakileri kullanın:

sudo passwd -u root
## Enter passwords as needed.... 
## (if you are using the terminal you should know what you are doing...)

Bu bir terminal için yeterlidir, GUI yolundaki sorun, hesabın terminalde olması gerekmeyen bir şifre belirlemesini sağlamak zorunda olmamızdır.

notlar

Kök hesap için bir parola ayarlamış olsanız bile, bilgisayarınız kök hesabı devre dışı bırakırsanız korunmasız hale gelir. Root hesabını devre dışı bırakma eylemi suçlu gibi görünüyor. Bu yüzden , GUI'yi kullanıyorsanız , root kullanıcısı etkin olmalı ve bir parolaya sahip olmalı , terminali kullanarak sadece '' passwd '' kullanarak "tamam" dır (bu duruma sadece GUI ile erişilemese de). "Directory Utility" deki "Root User'ı Devre Dışı Bırak" ın, kök hesabın şifresini kaldırdığı, bir şekilde size savunmasız olan bir şifresiz kök hesabı sağladığı görülmektedir.

Daha önce devre dışı bırakılmışsa, bir sistem giriş penceresinde "root" ile giriş yapmaya çalışmak gibi görünüyor. Yani, devre dışı bırakılmış bir root hesabıyla, root erişimi elde etmek için bir sistem giriş penceresine iki kez root girmeniz gerekir (ilk denememe göre) root hesabının etkin olduğunu (eğer ayarlanmamışsa şifre olmadan passwd) ve ikinci denediğin zaman geçiyorsun.

Sorunun, Apple destek forumunda bahsedildiği zaman, en az 2017-11-13 (13 Kasım) tarihinden beri açık olduğu görülüyor .

Lütfen yanlış olduğumu kanıtla, şu anda yanlış olduğum için gerçekten minnettar olurum.

Korkutucu güncelleme

Parolasız root hesabını etkinleştirdikten sonra (yani, sistem tercihleri ​​panelinden ve bir "kilitleme" ye tıklayıp "root" a boş parola ile bir, iki veya üç kez girdikten sonra (kaç kez başlangıç ​​durumuna bağlı)) oturum açmak mümkündür. "root" ve boş bir parola (!) kullanarak ana giriş ekranından bilgisayar. SSH / Telnet çalışmıyor gibi görünüyor, ancak Apple Remote Desktop, Ekran Paylaşımı ve VNC savunmasız durumda.

Bu nedenle, ağ yöneticileri için paketleri geçici olarak aşağıdaki bağlantı noktalarına bırakmak ilgi çekici olabilir:

  • En yaygın VNC portlarını almak için 5900-5905 (ish, ninja güvende olmak). VNC, varsayılan olarak 5900'den başlar ve birden fazla ekran kullanıyorsanız (nadir olsa da) yukarı doğru numaralandırır. Ekran Paylaşımı ve Apple Remote Desktop da bu portları kullanıyor gibi görünüyor ( Apple yazılım portlarının listesi )
  • Apple Remote Desktop için 3283 ve 5988 ( Apple yazılım bağlantı noktalarının listesi )

Ek okuma:

Konuyla ilgili diğer kaynaklara atıfta bulunma çabası. Daha fazla varsa, cevabımı düzenle ve güncelle


5
Tamam, neden cevapların yanlış olduğunu anladım. Kök devre dışı bırakmak, bu hata düzeltilinceye kadar bir yarar sağlamaz, çünkü hatanın kendisi hesabı yeniden etkinleştirir. Yorum yapabilmeniz için bazı olumlu oylara sahip olun!
Freiheit

1
Ben mac bir adam değilim, ama * nix dünyasında, root şifresini devre dışı bırakmak güvenli bir şifreye sahip olmaktan daha az güvenli olmamalıdır. Aslında, şifreyi devre dışı bırakmak ve kabuğu /dev/nullkök için ayarlamak çok yaygındır . Bu şekilde kök hesaba erişim su, bu izne sahip kullanıcılar için sistemler aracılığıyla gerçekleştirilir.
17:17

1
@crasic AFAIK OSX, sisteme giriş pencereleriyle garip bir şey yapıyor. Görünüşe göre genel olarak hesapları etkinleştiriyorlarsa denenirse belirli bir kökü kullanıyorlar. Ve bu davranış için neredeyse hiçbir dokümantasyon mevcut değil. BSD özelliklerinin (yani komut satırı / bash kullanımı) problemli olmadığını unutmayın.
flindeberg

Böylece Terminal komutuyla, root şifresini etkinleştirmeden root şifresini ayarlayabilirsiniz. Bu en güvenli seçenek gibi görünüyor.
WISBucky

1
@jcm Nah, aslında metni biraz gezdirdikten sonra sadece çok kötü bir şekilde ifade edilmiyor. Biraz temizlemeye çalışacağım, bir dakikada bakalım mı?
flindeberg

10

Eğer yapamıyorsanız resmi yamayı yüklemek veya daha sonra, işe yaradı o güvene istemiyoruz

Kök kullanıcısını yalnızca High Sierra'da devre dışı bırakmak istemezsiniz.

Mac'inizi korumak için, uzun ve güvenli bir parola ile root'u etkinleştirin.

Bunu işyerinde değiştirmeyeceğiz, bir sonraki tam puan yayınlanıncaya kadar macOS için 10.13.2 olacaktır.


Harekete geçmediğiniz sürece, kök kullanıcı kutudan çıkarılır ve Mac'iniz doğru şekilde yamalanmazsa bu kötüdür.

İsterseniz, isteğe bağlı olarak Apple resmi bir düzeltme eki veya düzeltme işlemi gerçekleştirene kadar kabuğu sertleştirin.

Rasgele bir kök şifre belirlemek ve kök kabuğunu değiştirmek / ayarlamak için harika bir script: /usr/bin/falseşifre tahmin edilse bile, kök kabuk giriş yapamaz:

Temelde üç anahtar şey yapar:

rootpassword=$(openssl rand -base64 32)
/usr/bin/dscl . -passwd /Users/root "$rootpassword"
/usr/bin/dscl . -create /Users/root UserShell /usr/bin/false

UserShell oluşturma, kabuk ayarlanmamışsa ve tam komut dosyası varolan bir kabuğu denetler ve -changebunun yerine onu bulur -create.

MacOS Yüksek Sierra'daki kendimi kök güvenlik açığından nasıl koruyabilirim?


1
Genellikle böyle bir şifreyi geçici olarak saklamamak tercih edilir. Dcsl adam sayfası anlaşılacağı "komutu parçası olarak şifreyi sağlamaz ve güvenli istenir"
Josh Caswell

1
Anlaşılan @JoshCaswell - Değişken dışa aktarılmadığı ve oluşturulduğu için bir komut dosyasında olması daha iyidir. İyi haber, Apple'ın bu hack'i kısa ömürlü bir zorunluluk haline getiren resmi bir yaması var - bunu aynı filodaki şifreyi şifrelemenin ya da şifresiz olmanın çok daha büyük bir zararı olduğu için profilaktik olarak kullandık. Kesinlikle bir uzlaşmaydı, bir çözüm değildi.
bmike

Saf meraktan, cevabın sonunda neden bu soruya bir bağlantın var?
reirab

1
@reirab tamamen berbattı. Doğru bağlantıyı düzeltmek için düzenlemeye bakın. Teşekkürler!
bmike


0

Root kullanıcısı olarak giriş yapmalı ve şifreyi güçlü bir şeyle değiştirmelisin. Aslında yeni bir hesap oluşturuyorsa (mevcut kök hesabın etkinleştirilmesi yerine) önce bu hesabı silmelisiniz.


Benim kendi cevabımı gör. Güçlü bir şifre belirleme öneriniz makul ancak hesabı tamamen devre dışı bırakmak daha sıkı bir koruma gibi gözüküyor ve OS X'i varsayılan durumuna geri yüklüyor. support.apple.com/en-us/HT204012 . Kök hesabı yeniden etkinleştirilse bile, güçlü bir parola belirlemek, açıklanan hatayı istismar etmeye karşı korunur mu?
Freiheit

High Sierra, 10.13.0 ve 10,13.1 üzerinde, kesinlikle yok kök hesabı devre dışı etmek istiyorum. Sorun şu ki, root devre dışı bırakılmışsa ve root olarak giriş yapmak için herhangi bir Login Window kullanmaya çalışırsanız, Login Window , root hesabını boş bir parola ile etkinleştirecektir . Kök zaten güçlü bir parola ile etkinleştirilmişse, Giriş Penceresi parolayı silmez. Tek azaltma kök güvenli bir parola ile etkinleştirmek için .
Brian Reiter

0

Apple sorunu çözmek için bir güncelleme yayınladı.

Güvenlik Güncelleştirmesi 2017-001 https://support.apple.com/en-us/HT208315

Ayrıca, Mac bilgisayarlarınıza yetkisiz erişimi önlemek için, kök kullanıcı hesabını etkinleştirmeli ve özellikle kök kullanıcı için bir şifre belirlemelisiniz.

https://support.apple.com/en-ph/HT204012

Kök kullanıcı hesabınız zaten etkinse, yalnızca boş şifre güvenlik açığının ayarlanmadığından emin olmak için şifreyi değiştirdiğinizden emin olun.


0

Hayır! Kök hesabı kaldırmayın!

Her şeyden önce, roottüm işletim sistemlerinde macOS, Mac OS X, Mac OS ve hatta eski sürümlerinde mevcuttu. macOS kısa bir süre önce bu güvenlik açığı nedeniyle bu hesabı yaratmadı. Sadece kazara ortaya çıkardı.

Çıkarmak rootçok kötü bir fikir olur ve nedenini size söyleyeyim.

Makosun tamamen sakat kalmasına neden olacaktı çünkü kritik hizmetleri (GUI'yi çalıştıran WindowServer gibi) çalıştırmak için yeterli ayrıcalıklara sahip bir hesap olmazdı . İpucu olmayan kullanıcıların kaldırılmasını önlemek için önlemler var rootve bunları atlamaya çalışmamalısınız.

Sistemdeki ilk süreçleri kimin çalıştığını, en önemli süreçleri (Aktivite İzleyicisi kullanarak) öğrenelim :

kernel_task ve launchd da ait

Hey, rootyine dost komşumuz ! İlk işlem (PID 0 ile) aslında çekirdek tarafından kontrol edilir ve muhtemelen yine de tam izinlere sahip olur, ancak alt süreci launchd(giriş penceresi ve pencere sunucusu gibi hizmetlerin başlatılmasından sorumlu olan) ayrıcalıklarıyla başlar root. Eğer rootolmasaydı, bu işlem hiç başlamazdı ya da izni yoktu.

Kök hesabın güvenliğini sağlama

Diğer yanıtlar, Apple tarafından yayınlanan ve sorunu çözmesi gereken bir düzeltme eki sağlamıştır. Ancak, yüklemek mümkün veya istekli değilseniz ...

MacOS, girilen parolayı "yükseltme" olarak yeniden bağladığından, devre dışı bırakılmış hesabın (root) eski bir karma olduğu yanlış algılandığından çalışır. Yine de yanlış olduğunu söyleyecek, ancak bir dahaki sefere, karma eşleşecek (çünkü macOS bunu değiştirdi) ve içeri girmenize izin verecek.

Güvence altına rootalmak için Directory Utility programını kullanmanız gerekir. Erişmenin iki yolu vardır:

  1. Spotlight kullanın. Spotlight kullanarak Directory Utility programını başlatma
  2. Finder'ı kullanın. Finder’ı açın, Command + Shift + G tuşlarına basın (veya seçin, girin /System/Library/CoreServices/Applications/ve Git tuşuna basın (veya Enter tuşuna basın). Sonra buradan Directory Utility programını açın.Go Seçme Nereye gideceğinizi seçme Dizin yardımcı programını açma

Directory Utility programını açtıktan sonra değişiklik yapmak için kilidi tıklayın

Bunu yaptıktan sonra , Düzen menüsünden Change Root Passwordveya Enable Root Useröğesini seçin. Ben göstermek Change Root Passwordbenim kök hesabı zaten güçlü bir parola ile etkin olduğundan.

Kök Parolasını Seçme

Bir şifre seçin ve şimdi boş şifre artık çalışmayacak.

Bir şifre seçmek

Tebrikler! Artık kök saldırısına açık değilsin.


"Saf spekülasyon ile tahmin etmek, sistem kök hesabınızı tekrar etkinleştirir çünkü doğru şifreyi girdiniz (bu durumda boş)." - tam olarak doğru değil. Eski bir karma mekanizmasını kullanarak şifreleri güncellemek için bir geçiş yolu var ve işlem yapmıyor !(bir UNIX türü olarak muhtemelen tanıyacağınız) doğru.
Charles Duffy

Bkz objective-see.com/blog/blog_0x24.html bir sebep-sonuç analizi için.
Charles Duffy

Doğru - yani benim spekülasyonum doğru değildi. Yani boş bir parolayı "yükseltme" olarak yeniden bağlar, çünkü devre dışı bırakılmış hesap yanlış bir şekilde eski bir karma olduğu tespit edildi. Doğrumuyum?
Dev

Teoride, bu codepath'te yapılması gereken, eski karma algoritmasının girilen şifreyi doğruladığını kontrol etmek ve ardından yeni bir karma (eski şifreyle eşleştiği bilinen şifrenin girilen şifresiyle) güncellemesidir. Uygulamada, eski hash'ı "ShadowHash" alanından alması gereken fonksiyondaki hataları kontrol etmiyor (ya da, sadece dönüş değerini kontrol ediyor, ama geri dönmek için kullanılan referans değerini değil. karşılaştırma sonucu), ve sonra şifreden yeni bir karma üretir (boş ya da değil!).
Charles Duffy

... yani, hemen hemen evet, haklısın. :)
Charles Duffy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.