29

私はよく、次のようなことを言っている記事を読みます。

chmod 777 が悪い!

私は考えていた:

chmod 777ファイルで実行すると脆弱になるにはどうすればよいですか?

私が再現できるこれの実世界の例は何ですか?

4

5 に答える 5

23

誰でもファイルシステムのコンテンツを表示および/または変更できます。攻撃者が共有ホスティングプラットフォームで非常に一般的な一般的なシステムアクセスを既に持っていると仮定すると、最初から他のものよりも「強化」されているものがあります。可能な攻撃ベクトルの不完全なリストを次に示します。

  1. 「あなたの安全なコード」は、同じWebサーバーコンテキスト内で実行される「悪意のあるコード」で上書きされる可能性があります..パスワード/トロイの木馬を盗み、DBを公開し、コンテンツを削除する可能性があります.つまり、他の誰かのコードがあなたのセキュリティの下で実行される可能性があります.コンテキスト
  2. コンテンツ (「スクリプト ソース」など) は、Web サーバー(または所有者) のコンテキスト外で表示される可能性があります。DBに接続するための「安全な」パスワードをお持ちですか? いや、もう…
  3. コンテンツが許可によって保護されていた場合 (たとえば、以前は Web サーバーがアクセスできなかった)、Web サーバーは機密情報にアクセス/一覧表示できる可能性があります...共有するつもりがなければ、良くありません。Web サーバーの構成が異なれば、「リスト」の扱いも異なり、必要以上に公開される可能性があります。

上記では、「グループ」には Web サーバー プリンシパルが含まれ、主要な攻撃ベクトルおよび/またはセキュリティの脆弱性として使用できる Web サーバー (および/または共有ホスティング) が含まれていることも想定しています。ただし、これをもう一度強調します。上記のリストは完全ではありません

「安全性が保証されている」わけではありませんが、最も具体的なアクセス許可を使用すると、一部の脆弱性や露出を軽減できます。

于 2012-06-30T05:14:53.333 に答える
2

攻撃者が Web インターフェースにしかアクセスできない (たとえば、同じ共有ホスティングの別のアカウントを介してファイルにアクセスできない) 場合、モード 777 は脆弱性を直接開くことはありません。これが行うことは、攻撃者が別の方法で侵入した場合に、サイト上の内容を変更しやすくすることです。

たとえば、WordPress サイトがあり、どこかにバグがあり、攻撃者がサーバー デーモンの資格情報の下で任意の PHP コードを実行できるとします (これは過去に何度も発生しており、今後も間違いなく発生するでしょう)。WordPress 自体のコードは.php、サーバー デーモンが読み取ることができるファイルに保存されます。それらのファイルがモード 777 の場合、攻撃者はそれらに書き込むことができます。つまり、コードを変更して、サイトの動作を変更できます。おそらく彼らは「ドライブ バイ エクスプロイト」キットをインストールし、あなたのサイトにアクセスするすべての人がブラウザをハッキングされます。おそらく、彼らは SEO スパム キットをインストールし、Google はあなたがバイアグラを販売していると判断します (ただし、サイトに直接アクセスしても、バイアグラは表示されません。そうです、これは実際に起こります)。

ファイル.phpがモード 755 で、サーバー デーモンではないユーザーが所有している場合、攻撃者はサイトの動作を永続的に変更することはできません。

これは、WordPress が自分自身を変更できる場合にのみ機能するため、WordPress の管理者パネルからの自己アップグレード機能が危険であることを意味することに注意してください。任意の PHP。

サーバーデーモンが変更できるファイルやディレクトリない場合は、この点で 100% 安全であることに注意してください。単一のディレクトリへのファイルのアップロードを許可するだけでも、問題になる可能性があります。たとえ、そこに誰でも入れられるのが画像ファイルだけであってもです。(それが不可能だと思われる場合は、http://lcamt​​uf.coredump.cx/squirrel/をご覧ください。)

于 2016-08-19T16:20:17.300 に答える
1

コマンドの各桁はchmod8 進数 (3 ビット) を表します。3 桁なので、合計 9 ビットです。各ビットは許可を表します。1 == 許可あり、0 == 許可なし。

各桁の 3 ビットは、読み取り (2 進数 100 == 10 進数 4)、書き込み (2 進数 010 == 10 進数 2)、および実行 (2 進数 001 == 10 進数 1) を表します。10 進数の 7 は、読み取り + 書き込み + 実行許可です。

コマンドの最初の桁はchmod、ファイルまたはディレクトリの所有者の権限を表します。2つ目はグループ用です。3 つ目は「宇宙」、つまり他のすべての人のためのものです。

したがって、chmod 777は、あなた、グループ、および全員の読み取り、書き込み、および実行の許可を表します。これは通常、必要以上に大きなアクセスです。

実際の例として、 というファイルmy_bank_account_credentialsが で変更されたと想像してくださいchmod 777。あまり安全ではありません!悪意のあるユーザーは、そこにあるものを変更したり、単に読んだり、喜んでお金を受け取ったりする可能性があります.

サーバーの場合、主な危険は、サーバー コードの悪用されたバグにより、攻撃者がサーバー プロセスが権限を持っているものすべてにアクセスできるようになること777です。

于 2012-06-30T05:17:52.317 に答える
0

chmod は、CHange MODE コマンドです。777 は権限を示します。権限を持つことができるグループは 3 つあります (それぞれが独自の数字を取得します)。次の順序で: 所有者 (ファイルまたはディレクトリの最初の 7)、グループ (所有者と同じグループに属するすべてのユーザー、2 番目の 7) )、および世界 (3 番目の 7)。

所有者はファイルのユーザーです - それはあなたです。*nix の世界では、ユーザーはグループに属しています。したがって、あなたはグループ Marketing のユーザー/所有者 Bob である可能性があります。このモデルを使用すると、ボブはファイルの読み取り/書き込みが可能で、残りのマーケティング担当者はファイルの読み取りのみ可能で、他のユーザーはファイルの読み取りが可能であると言うことができます。

777 の各桁は、rwx (読み取り/書き込み/実行) のバイナリ表現です。したがって、755 の chmod は次のことを意味します。 111(7) - 所有者は読み取り書き込み可能 実行 101(5) - グループ内の他のユーザーは実行または読み取り可能、書き込み不可 101(5) - 残りの世界は読み取りおよび実行可能、書き込み不可。

このセットアップは、ファイルの読み取り/書き込みと実行ができることを意味しますが、サイトにアクセスする人はファイルの読み取りまたは実行しかできません。したがって、cgi-bin のプログラムを 755 に設定する必要があります。これにより、人々はファイルをプログラムとして実行できるようになります。

パーミッションを 'chmod 644' に設定すると、自分が書き込むことはできますが、それ以外の人だけが読み取ることができるファイルが得られます。これは、単純な HTML ファイルに適しているため、面倒な問題が発生することはありません。ただし、アクセス許可が 644 のファイルを実行しようとすると、エラーが発生します。

CHMOD 777 を使用すると、誰でもサーバーのファイルを変更できるようになり、WRITE 状態になり、誰もがそれが悪いことだとわかります。

于 2012-07-02T12:19:23.070 に答える
-3

悪意のあるエントリがアプリや Web サイトなどに到達した場合。コードが何をされようとも。重要なポイントはデータベースにあり、データベースへの「書き込み」に対する保護はありません。したがって、chmod 777 パーミッションはまったく危険ではありません。

于 2016-05-12T01:32:28.620 に答える