web-dev-qa-db-ja.com

本番サーバーに開発ツールをインストールしますか?セキュリティリスク?

Amazon Linux EC2インスタンスをウェブサーバーとして使用しています。私のWebアプリはImageMagickを使用しています。 Amazon Linux(CentOS)リポジトリにはImageMagickの最新バージョンが含まれていないため、ソースからコンパイルしています。これを行うには、次のコマンドを実行します。

yum groupinstall 'Development Tools'

本番環境に開発ツールをインストールすると、セキュリティリスクが発生しますか?その場合、インストールしてはいけないものを安全に削除するにはどうすればよいですか?

12
evan

システムの一般的なルールは、必要がない場合はインストールしないことです。おそらくそれを次のように変更する必要があります:不要になったらアンインストールしてください。

どうして?システムで利用可能な「攻撃面」を減らすため。つまり、侵害されたり、侵害の一部として使用される可能性のあるプログラムやユーティリティ。それが一般的な正当化です。

開発ツールの特定のリスクは、攻撃者が権限のないユーザーにアクセスした場合、say gccを使用してボックスで任意のコードをコンパイルできる可能性があることです。とはいえ、Pythonなどのインタープリターを実行している可能性や、Webアプリケーションなどでjavacを使用している可能性も高いため、実際のマテリアルへの影響はそれほど変わらない場合があります。

私は個人的に、開発ツールのインストールに問題はなく(yum install <tool>を使用して手動でプルしたので、後でyum removeすることができます)、目的が達成されたら削除します。結局のところ、特権のないユーザーの下での任意のコードのコンパイルに関するこのすべての話は、実際には要点を逃しています。その段階で、誰かがすでにシステムの足がかりを築いており、それはあなたが防止したいものです。

ポリシー的には、Webサーバー上に開発ツールがないことは、私の考えでは良い考えです。「ライブで行う」ことを開発者に思いとどまらせます。私たちはそうするつもりはありませんが、まあ...私たちはおそらく:)

11
user2213

@Karraxの正解に加えて、潜在的なハッカーに対する攻撃面の増加、潜在的なエクスプロイト、およびより簡単な攻撃環境に関して、私はすべきであるもう1つの問題を指摘したいと思いました明白であるが、しばしば痛々しいほどではない。

これらは開発ツールです。 productionサーバー上。
私はそれから、開発者が本番サーバーにアクセスできるだけでなく、明らかに その上で開発する意図 であると推測します。
これ自体、それに関連するリスクが山ほどあります。

  • 本番データへの不正アクセス
  • 最小権限はありません
  • 職務分掌なし(SoD)
  • おそらく、古い、テスト、および未使用のコードファイルがたくさんあります。
  • おそらく、古い、テスト、未使用の構成ファイルがたくさんあります。とともに .bakファイルタイプ。すべてのユーザーがパスワードをダウンロードして盗むことができます。
  • 展開前のセキュリティテストなし
  • 隠されたバックドアにポップしやすい
  • 明らかに、SDL(セキュリティ開発ライフサイクル)はありません
  • もっと。

私のポイントは、問題は開発ツールのインストールだけではないということです。そのより大きな問題は、そのような計画を引き起こすプロセスと環境です。そもそも。

18
AviD

はい、環境にインストールするソフトウェアに追加すると、攻撃者があなたとシステムを危険にさらすために使用する可能性のある攻撃面が増加します。

このパッケージのツールには、既知のエクスプロイトや、システムをさらに危険にさらす可能性のある未発見のエクスプロイトを含めることができます。

一般的に、私はそれを開発と生産を可能な限り分離するためのベストプラクティスと言いますが、各ビジネスには独自のリスク/結果とコスト分析なので、多分あなたの特定のケースではそれは許容可能なリスクかもしれません。

あなたのケースでは「開発ツール」をインストールしていることに注意してください!この特定のシステム用に設計された完全に優れたコンパイラー(およびその他のツール)を基本的にシステムに残しているため、これは追加のセキュリティリスクをもたらす可能性があります。多くの場合、これにより、攻撃者が危険にさらされた後、攻撃者がより多くのエクスプロイトコードをコンパイルして実行するのが簡単になります。あなたは妥協しました。

編集: Gillesがコメントしているように、後者の例は特定のケースではほとんどありません。それが私の例に持ち込むつもりだったので、Gillesを引用します。

攻撃者の帯域幅が限られているシステム、または印刷可能な文字のみを挿入できるシステム、またはコンパイラの入手や独自のビルドの作成にコストがかかるエキゾチックなシステム。しかし、ここでは高速ネットワーク接続を備えたシステムと、攻撃者が数ドルで再現できるシステムについて話しています。

10
Chris Dale