忍者ブログ
情報処理技術者試験の合格を目指す全受験者のための、1問1問「徹底解説」ブログです。単なる過去問の暗記ではなく、なぜその答えになるのかを本質的に理解できるよう解説します。書籍などでは学べない最新用語やトレンドを踏まえてご紹介します。

【情報セキュリティ】サーバーを操り人形にする!「OSコマンドインジェクション」|情報処理問題1000本ノック

Webアプリの入力欄からOSへの直接命令を送り込む攻撃。サーバーが「踏み台」にされるリスクもある、最恐クラスの脆弱性を攻略しましょう。

1. 【 問題 】:OSコマンドインジェクション

【 問題 】 Webアプリケーションにおいて、OSのシェルを呼び出す際の実装に不備がある場合、攻撃者によって不正なOSのコマンドが実行されることがあります。その結果、Webサーバー内部の情報の漏えいや、別のサーバーへの攻撃の踏み台を招く攻撃手法はどれでしょうか?

① SQLインジェクション
② OSコマンドインジェクション
③ クロスサイトスクリプティング(XSS)
④ ディレクトリトラバーサル

2. 正解:Webセキュリティに関する正解

正解: ② OSコマンドインジェクション

3. 解説:コマンドの「継ぎ足し」による乗っ取り

プログラムが想定している「正しい入力」の後に、特殊な記号(;|)を使って「悪意のある命令」を継ぎ足す手法です。

【図解:被害が全方位に及ぶ理由】

■ 深刻な被害例
1. 機密性の破壊:サーバー内の設定ファイルやパスワードファイルを閲覧・奪取される。
2. 攻撃の踏み台:乗っ取ったサーバーから他の組織へ攻撃を仕掛け、犯人に仕立て上げられる。
3. 制御の奪取:ファイルの削除、マルウェアの設置、OS自体のシャットダウンなど。

★ OSの制御権を直接狙われるため、Webアプリ内だけでなく、サーバー全体が危険にさらされます。
[ 対策のポイント ]
根本的解決:OSのシェルを呼び出す関数(system, exec等)を使わない実装にする。
保険的対策:シェルにとって特別な意味を持つ文字(`;` `&` `|` `>`等)を無害化(サニタイジング)する。

1. 理解のコツ: 役所に「住所変更届」を出したとき、住所の欄に「あと、金庫の鍵も開けておいて」という命令を書き込まれ、職員(OS)がそれをそのまま実行してしまうような事態です。
2. 試験対策の視点: 「シェルの呼び出し」「不正なOSコマンド」「踏み台」というキーワードが出たら、この用語が正解です。SQLインジェクションが「DBの操作」であるのに対し、こちらは「OSそのものの操作」である点に注目しましょう。


4. まとめ

「プログラムの隙間からOSへの命令を流し込む」。これがOSコマンドインジェクションです。一度許してしまうとシステムが完全に支配される恐れがあるため、開発段階での徹底的な対策が求められます。


PR