仮想サーバーインスタンスのセットアップ中に、を使用していくつかのアプリケーションを構築する必要がありますmake
。make
インストールしたことに関連するセキュリティ上のリスクはありますか?または、インスタンスをデプロイする前にクリーンアップする必要がありますか?
またgcc
、サーバー上にコンパイラーがあり、デプロイする前にアプリケーションをビルドするために使用します。
仮想サーバーインスタンスのセットアップ中に、を使用していくつかのアプリケーションを構築する必要がありますmake
。make
インストールしたことに関連するセキュリティ上のリスクはありますか?または、インスタンスをデプロイする前にクリーンアップする必要がありますか?
またgcc
、サーバー上にコンパイラーがあり、デプロイする前にアプリケーションをビルドするために使用します。
回答:
一部の人々は、実動マシン上に開発ツールが存在すると攻撃者の生活が楽になると主張します。しかし、これは攻撃者にとって非常に小さな道のりであり、開発ツールのインストールに対して賛成または反対することができる他の議論はさらに重くなります。
攻撃者がこれまでにシステムに侵入し、サーバーに存在するあらゆるツールを呼び出すことができた場合、すでに重大なセキュリティ侵害が発生しています。開発ツールがなければ、バイナリデータをファイルに書き込み、そのファイルでchmodを実行する他の多くの方法があります。この時点でシステム上でカスタムビルド実行可能ファイルを使用したい攻撃者は、自分のマシン上でそれをビルドしてサーバーに転送することもできます。
他にももっと重要なものがあります。インストールされたソフトウェアにセキュリティバグが含まれている場合、攻撃者にさらされる可能性があるいくつかの方法があります。
開発ツールが上記のいずれかに一致するとは思わないため、リスクの高いパッケージではありません。
開発ツールを使用するワークフローがある場合は、まずそれらが妥当なワークフローであるかどうかを判断する必要があります。そうである場合は、開発ツールをインストールする必要があります。
サーバー上でこれらのツールを実際に必要としない場合は、複数の理由でそれらのツールをインストールしないでください。
セキュリティ上の理由で、権限のないユーザーがサーバーに独自のexecutabelsを配置することを許可しない場合、避けるべきは開発ツールではなく、実行権限でマウントされたファイルシステム上のユーザーに書き込み可能なディレクトリです。そのような状況下でも開発ツールの使用はまだあるかもしれませんが、そうではありません。
gcc
は、これらよりも高いリスクを提示したくないと考えています。あなたが言うように、システムにインストールされたコンパイラを使用する立場にある攻撃者は、通常、自分の(おそらく静的にリンクされた)実行可能ファイルをアップロードするなど、もっと悪いことをする立場にあります。
echo
ステートメントを使用してバイナリをサーバーに移動する実際の例。同じリンクにあるスクリプトを使用して、プロセス全体が自動化されます。
make
は、とは異なる構文を持つシェルですbash
。
のようなコンパイラgcc
は、awk
標準でawk
はサポートされていない一連の置換で構成された強力なものです。POSIXに準拠していsort
ないかcat
、出力にゴミを挿入します。これは、vi
起動時に編集を行い、ユーザーインターフェイスを表示する前に終了するように構成された対話型テキストエディター(思考)です。
本質的に安全ではないものはありません。これらは、bash + cat
+シェルリダイレクトがあるマシンよりもあなたのマシンをより安全にしません。
make
それ自体は大丈夫です。make
単なる依存関係追跡および自動化フレームワークです。ただし、通常はコンパイラと組み合わせて使用されますが、コンパイラは完全に不要であるため、実稼働システムでは使用できないことが望ましいです。共有ライブラリー、インタープリターなど、不要なすべてのパッケージについても同じことが言えます。実動システムにインストールされるソフトウェアは厳密に制御される必要があり、アプリケーションに必要なパッケージのみが存在する必要があります。
ビルドサーバーでアプリケーションをビルドし、パッケージ化してから、バイナリパッケージを運用システムに展開する必要があります。
注:ネイティブのパッケージングツールは不愉快です。わざわざそれらをいじろうとしてもいけない。代わりに、Jordan Sisselのをご覧くださいfpm
。パッケージングは絶対的な喜びになります。
echo
とを使用してバイナリを侵害されたボックスに移動しましたbase64
。実際、他のツールを使用せずに、一連のecho
ステートメントでそれを行うこともできます。
運用make
サーバーにインストールする必要があるかどうかを尋ねていますが、私の本当の質問は、その運用サーバーに誰がアクセスでき、侵入に対処するためにどのような保護手段がありますか?場合はmake
インストールされているが、誰かのゲインはなかったroot
アクセス、何を思いますか?手動でインストールしmake
たり、必要なものをインストールしたりできます。
コンピューターのセキュリティに関する厳しい現実は、不要なアクセスを防止するのと同じくらい重要です。アクセスをブロックすることに取り付かれることは、それほど重要ではありません。
これは、あなたがどのような仕事をするかにかかっています。私は主にウェブサーバーの世界で仕事をしており、基本的に、私から本番サーバーにアクセスするには誰もがスキル、知識、成熟度を証明する必要があります。それでおしまい。時には数日かかります。時には数ヶ月かかります。しかし、基本的に、運用サーバーでのセキュリティの最善のラインは、サーバーを強化するために行うその他のさまざまなことに加えて、アクセスを制御することです。