Mac OSX:.appまたはその他のフォルダーをuser / admin / rootによる削除/移動からパスワードで保護する方法


4

セキュリティエージェントに取り組んでいます。ここで、ユーザー/管理者/ルートがセキュリティエージェントアプリケーションを正常に削除することは許可しません。

user / admin / rootが.appファイルを削除しようとすると、OSはパスワードダイアログを表示します。ユーザーがパスワードを知っている場合は、そのパスワードのみを削除する必要があります。

これに関するポインタは役に立ちます。


3
ユーザーはUnixファイルのパーミッションを見てのためとして、あなたは何も(またはsudoのRMを)やってからルートを止めることはできない
マーク・

sudoはパスワードを要求します。
dwightk

あらゆる点で、マークは間違っています。以下の私の答えをご覧ください。sudoパスワードは管理ユーザーに知られているので、Unixファイルのパーミッションはopの質問に対する答えではありません。
コンマトースト

回答:


10

免責事項

この回答は、一般ユーザー向けのセキュリティアドバイスとして意図されたものではありません。Macのセキュアレベルを1に設定すると、特定のソフトウェアまたはハードウェアドライバーが誤動作する可能性があるため、これらの手順の実行に望ましくない影響があるかどうかを判断するために、独自のデューデリジェンスと独立した調査とテストを行うことをお勧めします。

スーパーユーザーのセキュリティ制限に関連するBSDの機能に関する以下のリンク記事のセクション5.4.2は、開始するのに適した場所です。http://docstore.mik.ua/orelly/other/puis3rd/0596003234_puis3-chp-5-sect-4.html

そのリンクが将来中断する場合、記事の最も重要なセクションに設定の効果がリストされていますkern.securelevel=1

rawディスクパーティションへの書き込みアクセスは禁止されています。(これにより、ディスクに対するすべての変更がファイルシステムを通過するように強制されます。)

SCSIバスコントローラーへのrawアクセスは禁止されています。

不変フラグが設定されているファイルは変更できません。追加専用ビットが設定されているファイルは、追加のみが可能で、変更または削除はできません。

IPパケットの内容は記録できません。

システムコンソールへのRaw I / Oは禁止されています。

ユーザープログラムからシステムメモリまたはI / Oデバイスコントローラーへの未加工の書き込みは禁止されています。

Linuxの/ procファイルシステムへのアクセスが一部拒否されています。

追加のカーネルモジュールをロードできません。

システムクロックを逆方向に設定することはできません。さらに、最大1秒を超えて前方に設定することはできず、1秒間に1回だけ前方に設定できます(事実上、クロックは最大で2倍の時間までプッシュできます)。

このリストは包括的なものではありません。

TLDR:設定kern.securelevel=1は、以下の手順で説明されているものよりも多くの結果をもたらす可能性があります。注意してください。

とはいえ、OS X 10.10.2を搭載した通常のiMacでこれらの手順をテストしましたが、結果として問題に気付きませんでした。以前securelevel 1は、OS Xのデフォルト設定でしたが、OS X 10.10のマンページはそれ1が間接的にデフォルト設定であることを示しています(schgを削除するにはシングルユーザーモードで再起動する必要があると言われていますsecurelevel 0)。

ただし、実際にsecurelevel 0は、OS X 10.5以降のデフォルト設定です。オンラインコミュニティがAppleがデフォルトを静かに0に変更したことを知ったとき、Apple Discussionsスレッドの一部のシステム管理者は、これを行うことをAppleの「無慈悲」と呼びました。またkern.securelevel=1、設定がMacを保護するための重要なステップであると言うセキュリティガイドをオンラインで見つけました。YMMV。

回答の要約

Macでファームウェアパスワードを設定している限り、次の単純なターミナルコマンドを使用するだけで、そのMac上のファイルを誰でも削除できないようにすることができます。

sudo chflags schg /path/to/file

次に、以下を実行して、Macが常にセキュアレベル1で起動することを確認します。

sudo vi /etc/sysctl.conf

viエディターで、i入力して挿入モードに入り、を入力しますkern.securelevel=1。次にEnterキーを押し、次にコロンを押してから、入力してEnterキーを押しwqます。

最後に、ターミナルタイプで:

sudo chflags schg /etc/sysctl.conf
sudo sysctl kern.securelevel=1

これでsecurelevelが1になり、schgフラグが設定されたため、システムをシングルユーザーモードで再起動しない限り、ファイルを削除できません。

ファームウェアのパスワードが設定されている場合、シングルユーザーモードに入るにはそのパスワードが必要です。さらに、ターゲットディスクモードに入るか、起動ディスクを変更するために必要です。

schgフラグを設定すると、rootでもファイルを削除できません。Finderやターミナルからは誰も変更できません。Finderでロックされているように見えますが、ロックされたチェックボックスは、たとえ管理パスワードがあっても、常にグレー表示のままです。ターミナルでsudo rm /path/to/fileは、「操作は許可されていません」と言って失敗します。また、sudo SetFile -a l /path/to/file「ERROR:Unexpected error。(-5000)」で失敗します。:D

このファイルを削除するには、ファームウェアパスワードを使用してシングルユーザーモードで再起動し、次のコマンドを使用してschgフラグを設定解除する必要があります。

sudo chflags noschg /path/to/file

その後、削除できます。

更新:作業への回答に必要な重要な追加手順

追加された水を更新します。2015年3月18日〜1:20 PM PDT:この回答へのコメントで、システム上のsudoアクセスを持つユーザーが/ private / etcディレクトリの名前を変更して保護されたファイルを削除してから、 sysctl.confファイルを新しい/ private / etcディレクトリに入れ、再起動します。これにより、セキュアレベルがゼロに戻ります。

これを防ぐには、上記の手順を実行した後、次のコマンドも実行する必要があります。

sudo chflags schg /private
sudo chflags -h schg /etc

最初のコマンドは、/ privateディレクトリとそのサブディレクトリの名前を変更できません。2番目のコマンドは、/ private / etcへのルートレベルのシンボリックリンクの名前変更または削除を不可能にします。(-h引数は、シンボリックリンクのターゲットに作用するのではなく、シンボリックリンク自体に作用するchflagsを作成します。)

主な注意事項

  1. 公式のAppleファームウェアまたはそれと機能的に同一のものでフラッシュされていない非公式のPCグラフィックカードを搭載したHackintoshまたはMac Proを使用している場合、このトリックは機能しません。彼らがシングルユーザーモードで起動できるかどうかはわかりません。したがって、sysctl.confファイルを確立し、それをschgに設定すると、永久にそのようになる可能性があります。つまり、schgに設定されたファイルは削除できません。

  2. RAMを削除してファームウェアのパスワードをリセットしたり、SSD / HDDを削除して別のコンピューターに接続してファイルを削除したりする物理的な方法がいくつかあります。

回答の説明

Googleで表示された手順「Macでファームウェアパスワードを設定する方法」を使用してMacのファームウェアパスワードを設定するには。手順を簡単に説明します:

  • 回復モードで再起動する

  • [ユーティリティ]メニューから[ファームウェアパスワードユーティリティ]を選択し、パスワードを設定します

  • ...

  • 利益!

警告の説明

リムーバブルRAMを搭載したMacの場合、ハッカーはRAMの容量を変更し、PRAMを何度もクリアすることでファームウェアパスワードをリセットできる場合があります。そのようなMacでは、適切な物理的セキュリティ対策を講じて、コンピューターの内部コンポーネントへの手動アクセスを防止します。

動作するにはセキュアレベル0に到達する必要があると言えば十分です。chflags noschg通常、セキュアレベル0に戻る唯一の方法はシングルユーザーモードで再起動することです。繰り返しますが、MacにAppleファームウェアがない場合、これは不可能かもしれません。妄想/不明な場合は、「sysctl kern.securelevelターミナル」と入力して現在の安全レベルを確認できます。シングルユーザーモードでない限り、手順が実行された後は常に1になります。

さらなるメモ

私の知る限り、間違っている場合は修正しますが、ファームウェアのパスワードを回避する唯一の方法は、問題のコンピューターからプライマリハードディスクまたはSSDを削除することです(RAM削除トリックを使用してリセットする以外)。 SATA-USBアダプタなどを使用して別のコンピュータからアクセスします。(政府機関やAppleには秘密の機密のバックドアがあるかもしれませんが、もし彼らがあなたの後を追っているなら、おそらく削除を防止するのではなく、ファイルを削除したいでしょう:D。)

技術的に言えば、schgの設定は、交換可能なRAMと交換可能なハードドライブ(つまり、Retina MacBook Pro、MacBook Airなど)のない新しいMacの場合、100%確実に問題を解決します。 EFIパスワードを設定します。これは、リムーバブルRAMまたはリムーバブルSSDを搭載していないMacのみであるためです。(もちろん、誰かがファイルを削除するためだけにドライブを取り出した場合、おそらく、あなたはおそらくもっと悪い問題を抱えているでしょう。例えば、私のハードドライブはどこにあるのでしょうか?)

21.5インチのiMacには「ユーザーが交換可能な」RAMがないため、EFIパスワードを回避し、RAMを盗むのが非常に難しくなります。セキュリティ対策:D

非21.5インチのiMacでは、iMacのMaclocksブランドのロックに40〜50ドルを投資することで、RAMの取り外し/ファームウェアパスワードのリセットを防ぐことができます。セキュリティポートに挿入され、電源を覆う金属プレートがありますRAMのハッチのリリースがあるソケットです。その物理ロックを使用すると、誰かがあなたのschgで保護されたファイルを削除するためにダイヤモンドソーなどを必要とします。ファイルが削除されることよりも心配する必要がある問題、たとえば、私のコンピューターはどこにあるのでしょうか?


sudo chflags noschg /path/to/file; sudo rm /path/to/fileシングルユーザーモードに頼らずに私のために動作します。
nohillsideの

どのようなMacを使用していますか?Mac ProまたはHackintoshの場合、どのようなGPUがありますか?OS Xのバージョンは何ですか?sysctl kern.securelevelターミナルで実行した結果はどうなりますか?
コンマトースト

システムは、10.10.2を実行している2012年末のMac miniで、kern.securelevel0を参照されpastebin.com/b2LNg7S1転写物。
nohillsideの

1
確認してみましょう
。securelevel

2
これを回避するいくつかの方法を考えることができます。まず、ファイルがロックされている可能性がありますが、それが入っているディレクトリの名前を変更して、ほぼ重複したファイル(「ロックされた」ファイルが欠落しているだけ)に置き換えることができます。これを防ぐには、少なくともパス上の他のすべてのディレクトリをロックする必要があります... /またはその下のトップレベルのフォルダをロックすると問題が発生する可能性があります。第二に、カーネル拡張機能は、schgフラグを強制するファイルシステムの一部をバイパスでき、rootは拡張機能をロードできると思います。
ゴードンデイヴィソン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.