
このプロジェクトでは、悪意のあるコンテナを介した最近の攻撃を発見し、それを阻止するセキュリティメカニズムを実装しました。
サイバー攻撃は、ITリソースのさまざまなコンポーネントの脆弱性が主な原因となり、企業と中小企業の両方にとって重大な課題となっています。これらの脅威を理解することは、組織のデータと資産を保護するための第一歩です。攻撃の一般的な形態には、マルウェア、ランサムウェア、フィッシングなどがあります。最近の研究では、コンテナインフラストラクチャを標的とした攻撃の増加が指摘されています。攻撃者は、公開検索エンジンやスキャンツールを使用して、設定ミスのあるコンテナを見つけ出し、悪用することがよくあります。
そこで、このプロジェクトでは、CVE-2019-5736のDocker脆弱性を利用した攻撃を実装し、攻撃を防ぐためのセキュリティメカニズムを特定しました。
私たちは、攻撃とセキュリティメカニズムを安全に実装するために、以下の環境を使用しました。Windows OSを搭載したベースマシン上に、VMwareワークステーションでUbuntu 18.04 OSの仮想マシンを展開しました。さらに、Ubuntu 18.04にはDocker 18.03.1-ce(Runc 1.0.0-rc5)コンテナアプリケーションをインストールしました。
"usr/docker/runc" は、第三者のユーザーが変更できないようにすべき、機密性の高い内部実行ファイルです。しかし、Dockerバージョン18.03には、"runc" Dockerファイルの変更をログに記録しないという脆弱性があります。その結果、攻撃者はこの脆弱性を利用して"usr/docker/runc"ファイルを変更し、Linuxシステムへのルートアクセスを取得できます。
その結果:
この脆弱性の根本的な原因は、悪意のあるDockerイメージが“/usr/docker/runc”ファイルを変更し、実行ファイルに悪意のあるコードを組み込むことができることです。
この攻撃を防ぐために、"Chattr"コマンドを使用して“/usr/docker/runc”ファイルを不変にします。その結果、エクスプロイトは実行に失敗し、攻撃者側には応答がありません。
私たちが適用したセキュリティメカニズムは確かに攻撃を阻止します。つまり、見つけた特定のDockerファイルの脆弱性を悪用する悪意のあるコードを防ぐことができたということです。セキュリティメカニズムとして、'chmod'コマンドは使用できませんでした。なぜなら、私たちが使用したこの特定の脆弱性では、攻撃者にルートアクセスが許可されるからです。したがって、"chmod"コマンドは攻撃を防ぐことができません。
このプロジェクトでは、HIGH CVSSスコアを持つCVE-2019-5736の脆弱性を悪用した攻撃を実装することを選択しました。この脆弱性により、攻撃者はユーザーのマシンにルート権限でリモートアクセスできます。私たちは攻撃を正常に実行し、それを防ぐためのセキュリティメカニズムを見つけました。
課題: