この記事では、応用情報で出題されるサイバー攻撃について、初心者にも分かりやすく、図解付きで丁寧に解説しています!
マルウェア
- トロイの木馬は、無害な普通のプログラムを装って侵入し、データの漏洩や改ざん等の様々な攻撃を行う
- ワームは、ネットワークを通じてコンピュータ間を移動しながら自己複製する。
- ボットは、正常なコンピュータを外部から操って攻撃を行う。
- バックドアは、正規の方法以外でネットワークやサーバにアクセスするために組み込んだ裏口。
サイバー攻撃
- サイドチャネル攻撃は、ICカード等のハードウェアの内部に隠されている情報を抜き取る攻撃。
- パスワードリスト攻撃は、どこかのサイトで流出したIDとパスワードを用いて、他のサイトへのログインを試みる攻撃。
- レインボーテーブル攻撃は、ハッシュ値からパスワードを解読して、パスワードを不正に入手する攻撃。
- ストレッチングは、文字列をハッシュ値に変換するとき、何回もハッシュ関数を適用することで、ハッシュ値が盗まれてもパスワードを解析させないようにする技術。
- OSコマンドインジェクションは、Webアプリの入力欄にOSを操作するような命令文(OSコマンド)を入力し、サーバ内のファイルを削除・改ざん・流出させる攻撃。
- オープンリダイレクトは、攻撃者が用意した、特的のWebサイトに偽装したリンクを、一般ユーザがクリックすることで、攻撃者が用意したWebサイトに誘導する攻撃。
- ディープフェイクは、AI技術を用いて生成された偽の画像・動画・音声。
マルウェア
悪意あるソフトウェアをマルウェアと言います。マルウェアには次のようなものがあります。
トロイの木馬 | 無害な普通のプログラムを装って侵入し、データの漏洩や改ざん等の様々な攻撃を行う。 |
---|---|
ワーム | ネットワークを通じてコンピュータ間を移動しながら自己複製する。自己複製しながら移動するので大規模感染になりやすい。 |
ボット | 正常なコンピュータを外部から操って攻撃を行う。操られているコンピュータをボットと言い、ボットに命令をするコンピュータをC&Cサーバと言う。 |
バックドア | 正規の方法以外でネットワークやサーバにアクセスできるよう、あらかじめ裏口を仕込む。 |

様々なサイバー攻撃
サイバー攻撃とは悪意を持って、個人情報を不正に取得したり、データの改ざんを行ったり、第三者になりすます行為のことです。ここからは応用情報で出題されたサイバー攻撃を紹介します。
サイドチャネル攻撃
サイドチャネル攻撃とは、ICカード等のハードウェアの内部に隠されている情報を抜き取る攻撃です。ICカード等の半導体チップは外部から不正にアクセス出来ないように暗号化技術が使われていますが、チップから漏れ出る電磁波・処理に掛かる時間・処理に必要な電力などを観測することで、内部の情報を抜き取ろうとします。

パスワードクラック
パスワードクラックは、不正にパスワードを入手する攻撃の総称です。パスワードクラックにはいくつか種類があります。
パスワードリスト攻撃
どこかのサイトで流出したIDとパスワードを用いて、他のサイトへのログインを試みる攻撃です。

レインボーテーブル攻撃
一般的にパスワードはハッシュ化されてデータベースに保存されています。レインボーテーブル攻撃はハッシュ値からパスワードを解読して、パスワードを不正に入手する攻撃です。
ハッシュ化とは
文字列をハッシュ化すると、ハッシュ値になりますが、ハッシュ値から元の文字列は復元できません。ハッシュ値を不正に入手しても元のパスワードを解析することができません。だから、データベースにはハッシュ値を保存します。仮にデータベースに不正アクセスされて、ハッシュ値を盗まれても、パスワードは分からないからですね。

また、元の文字列が同じであれば、生成されるハッシュ値は同じであるという特徴を持ちます。「りんご」から生成されるハッシュ値は絶対に「ti4&」です。だから、データベースに保存されているハッシュ値と照合することができるんですね。

レインボーテーブル攻撃ならハッシュ値からパスワードを解析できる
還元関数
レインボーテーブル攻撃には還元関数を使います。還元関数はハッシュ値から特定の条件を満たす文字列を生成します。ただし、元の文字列が得られる訳ではありません。なんの意味があるんだ?と思いますよね。

チェイン化
チェイン化は次のような手順で行います。
- 「りんご」にハッシュ関数を適用して「ti4&」を得る
- 「ti4&」に還元関数Aを適用して「みかん」を得る
- 「みかん」にハッシュ関数を適用して「64%j」を得る
- 「64%j」に還元関数Bを適用して「すいか」を得る
- これを繰り返して出来たのがチェイン。ハッシュ関数は常に同じものを使い、還元関数は毎回違うものを使う。
- チェインはデータ量が多いので、最初の文字列と最後の文字列だけを保存する。下の例だと「りんご・タコス」だけを保存する。

同じようにチェインを何個も作っていきます。この時、1個目に使う還元関数は全て同じもの、2個目に使う還元関数は全て同じもの、のように、チェイン間で使う還元関数は一緒にします。

レインボーテーブルは、沢山作ったチェインの最初と最後の文字列を集めたものです。

盗んだハッシュ値からパスワードを解析する
レインボーテーブル攻撃は不正に入手したハッシュ値からパスワードを解析します。不正に入手したハッシュ値に対して、チェインを作るときに最後に使った還元関数を適用します。これで得た文字列がレインボーテーブルの最後の文字列と一致するか確かめます。下の例だとハッシュ値「q2e4」から「めがね」を生み出して、「めがね」はレインボーテーブルに存在します。

さて、同じ文字列が見つかったので、「きりん・めがね」のチェインを復元します。これで、不正に入手したハッシュ値の一つ前の文字列がパスワードだと分かります。

今回の例では、不正に入手したハッシュ値「q2e4」から生成した「めがね」が偶々レインボーテーブルにありましたが、無かったらどうするんでしょう。
それを確かめるために、次は「h7h8」からパスワードを解析します。「h7h8」に最後の還元関数を使うと「サウナ」になりました。「サウナ」はレインボーテーブルにありません。
その場合、「h7h8」に最後から2番目の還元関数を使い、ハッシュ関数を使い、最後の還元関数を使います。この結果「マウス」が得られました。「マウス」はレインボーテーブルに存在します。

同じ文字列が見つかったので、「さくら・マウス」のチェインを復元します。すると、不正に入手したハッシュ値がチェインの中に出てきます。これで、不正に入手したハッシュ値の一つ前の文字列がパスワードだと分かります。

ストレッチング
ストレッチングはパスワードクラック対策の一つです。レインボーテーブル攻撃で見たように、ハッシュ値からパスワードを解析することも可能になってきています。
そこで、ストレッチングでは、文字列をハッシュ値に変換するとき、何回もハッシュ関数を適用します。ストレッチングによって、攻撃者は何回ハッシュ関数を適用すれば良いのか分からなくなり、仮にそれが分かったとしても、パスワード解析に必要な計算量が増えるため、パスワードの特定が困難になります。

OSコマンドインジェクション
OSコマンドインジェクションは、Webアプリの入力欄にOSを操作するような命令文(OSコマンド)を入力し、サーバ内のファイルを削除・改ざん・流出させる攻撃です。OSコマンドインジェクションは攻撃者が入力したOSコマンドを受け取ったWebアプリがシェルに渡すことで起きてしまいます。
シェルとはOSの中核であるカーネルとアプリケーションを繋ぐプログラムで、アプリケーションからカーネルにOSコマンドを渡します。

OSコマンドインジェクション対策ですが、そもそもWebアプリからシェルが起動しないようにすれば、OSコマンドがカーネルに行かないので問題が起きません。シェルが起動しないような実装をすればOKなんですね。
こちらの記事でOSの詳しい解説をしています。

オープンリダイレクト
オープンリダイレクトはWebアプリケーションの脆弱性の一つです。攻撃者は特的のWebサイトに偽装したリンクを作成し、一般ユーザがそのリンクをクリックすると攻撃者が用意したWebサイトに誘導されます。これがオープンリダイレクトを悪用した攻撃です。
オープンリダイレクトの仕組みを見てみましょう。こんな感じでURLを作ります。一般ユーザは「https://anshin.com」だと思ってクリックしますが、攻撃者が用意した「https://kougeki-site.com」に飛ばされます。

ディープフェイク
ディープフェイクとは、AI技術を用いて生成された偽の画像・動画・音声のことを言います。ディープフェイクを悪用したなりすまし詐欺などの攻撃が問題となっています。
応用情報技術者試験での出題例
令和7年度春期問36
応用情報技術者
午前試験 令和7年度春期問36
Webサーバのログを分析したところ,Webサーバへの攻撃と思われるHTTPリクエストヘッダーが配置されていた。次のHTTPリクエストヘッダーから推測できる,攻撃者が悪用しようとしていた可能性が高い脆弱性はどれか。ここで,HTTPリクエストヘッダー中の”%20″は空白を意味する。
[HTTPリクエストヘッダーの一部]
GET /cgi-bin/submit.cgi?user=;cat%20/etc/passwd HTTP/1.1
Accept: */*
Accept-Language: ja
UA-CPU: x86
Accept-Encording: gzip, deflate
User-Agent: (省略)
Host: test.example.com
Connection: Keep-Alive
ア HTTPヘッダーインジェクション(HTTP Response SpLitting)
イ OSコマンドインジェクション
ウ SQLインジェクション
エ クロスサイトスクリプティング
正解は”イ”
OSコマンドインジェクションは、Webアプリの入力欄にOSを操作するような命令文(OSコマンド)を入力し、サーバ内のファイルを削除・改ざん・流出させる攻撃です。
1行目に出てくる「cat」はUNIX系のOSにおいて、ファイルを出力するためのコマンドです。
令和7年度春期問37、令和5年度秋期問36
応用情報技術者
午前試験 令和7年度春期問37、令和5年度秋期問36
暗号機能を実装したIoT機器における脅威のうち,サイドチャネル攻撃に該当するものはどれか。
ア 暗号化関数を線形近似する式を導き,その線形近似式から秘密情報の取得を試みる。
イ 機器が発する電磁波を測定することによって機密情報の取得を試みる。
ウ 二つの平文の差とそれぞれの暗号文の差の関係から,秘密情報の取得を試みる。
エ 理論的にあり得る復号鍵の全てを機器に入力して秘密情報の取得を試みる。
正解は”イ”
サイドチャネル攻撃とは機器の内部に隠されている情報を抜き取る攻撃です。機器から漏れ出る電磁波・処理に掛かる時間・処理に必要な電力などを観測することで、内部の情報を抜き取ろうとします。
令和7年度春期問42
応用情報技術者
午前試験 令和7年度春期問42
Webアプリケーションソフトウェアの開発におけるOSコマンドインジェクション対策はどれか。
ア SQL文の組立ては全てプレースホルダで実装する。
イ シェルを起動できる言語機能を利用した実装を避ける。
ウ 直接メモリにアクセスできる言語機能を利用した実装を避ける。
エ 利用者が入力したファイル名にディレクトリが含まれていないかのエラーチェックを実装する。
正解は”イ”
OSコマンドインジェクションは、Webアプリの入力欄にOSを操作するような命令文(OSコマンド)を入力し、サーバ内のファイルを削除・改ざん・流出させる攻撃です。
シェルはOSの中核であるカーネルとアプリケーションを繋ぐプログラムで、アプリケーションからカーネルにOSコマンドを渡します。なので、シェルを起動するような実装を避ければOSコマンドインジェクション対策となります。
令和7年度春期問44
応用情報技術者
午前試験 令和7年度春期問44
パスワードクラックの対策のうち,ストレッチングに該当するものはどれか。
ア あらかじめ利用者だけが知っている質問と答えをシステムに登録しておき,普段と異なるログイン方法の場合に追加で質問を行う。
イ 一定時間内にパスワードを一定回数誤ったとき,それ以降のログインを試行できないようにする。
ウ パスワードの照合のためのハッシュ値を,パスワードに対してハッシュ化を繰り返して,求める。
エ パスワードの照合のためのハッシュ値を,パスワードに利用者IDごとに異なる文字列を付加してからハッシュ化して,求める。
正解は”ウ”
ストレッチングは、パスワードをハッシュ値に変換するとき、何回もハッシュ関数を適用することで、パスワードクラック対策をする手法です。
令和6年度秋期問39
応用情報技術者
午前試験 令和6年度秋期問39
ディープフェイクを悪用した攻撃に該当するものはどれか。
ア AI技術によって加工したCEOの音声を使用して従業員に電話をかけ,指定した銀行口座に送金するよう指示した。
イ 企業のPCをランサムウェアに感染させ,暗号化したデータを復号するための鍵と引き換えに,指定した方法で暗号資産を送付するよう指示した。
ウ 企業の秘密情報を含むデータを不正に取得したと誤認させる電子メールを従業員に送付し,不正に取得したデータを公開しないことと引き換えに,指定した方法で暗号資産を送付するよう指示した。
エ ディープウェブにて入手した認証情報でCEOの電子メールアカウントに不正にログインして偽りの電子メールを従業員に送付し,指定した銀行口座に送金するよう指示した。
正解は”ア”
ディープフェイクとは、AI技術を用いて生成された偽の画像・動画・音声のことを言います。ディープフェイクを悪用したなりすまし詐欺などの攻撃が問題となっています。
令和6年度秋期問40
応用情報技術者
午前試験 令和6年度秋期問40
パスワードリスト攻撃に該当するものはどれか。
ア 一般的な単語や人名からパスワードのリストを作成し,インターネットバンキングへのログインを試行する。
イ 想定し得るパスワードとそのハッシュ値との対のリストを用いて,入手したハッシュ値からパスワードを効率的に解析する。
ウ どこかのWebサイトから流出した利用者IDとパスワードのリストを用いて,他のWebサイトに対してログインを試行する。
エ ピクチャパスワードの入力を録画してリスト化しておき,それを利用することによってタブレット端末へのログインを試行する。
正解は”ウ”
パスワードリスト攻撃は、どこかのサイトで流出したIDとパスワードを用いて、他のサイトへのログインを試みる攻撃です。
令和5年度秋期問36、令和4年度春期問42
応用情報技術者
午前試験 令和5年度秋期問36、令和4年度春期問42
パスワードクラック手法の一種である,レインボーテーブル攻撃に該当するものはどれか。
ア 何らかの方法で事前に利用者IDと平文のパスワードのリストを入手しておき,複数のシステム間で使い回されている利用者IDとパスワードの組みを狙って,ログインを試行する。
イ パスワードに成り得る文字列の全てを用いて,総当たりでログインを試行する。
ウ 平文のパスワードとハッシュ値をチェーンによって管理するテーブルを準備しておき,それを用いて,不正に入手したハッシュ値からパスワードを解読する。
エ 利用者の誕生日,電話番号などの個人情報を言葉巧みに聞き出して,パスワードを類推する。
正解は”ウ”
レインボーテーブル攻撃はハッシュ値とパスワードの組合せを作っておき、それを用いてパスワードを不正に入手する攻撃です。
令和5年度春期問36
応用情報技術者
午前試験 令和5年度春期問36
ボットネットにおいてC&Cサーバが担う役割はどれか。
ア 遠隔操作が可能なマルウェアに,情報収集及び攻撃活動を指示する。
イ 攻撃の踏み台となった複数のサーバからの通信を制御して遮断する。
ウ 電子商取引事業者などへの偽のデジタル証明書の発行を命令する。
エ 不正なWebコンテンツのテキスト,画像及びレイアウト情報を一元的に管理する。
正解は”ア”
正常なコンピュータを外部から操って攻撃を行うマルウェアがあります。この時、操られているコンピュータをボットと言い、ボットに命令をするコンピュータをC&Cサーバと言います。
令和4年度秋期問37
応用情報技術者
午前試験 令和4年度秋期問37
サイドチャネル攻撃に該当するものはどれか。
ア 暗号アルゴリズムを実装した攻撃対象の物理デバイスから得られる物理量(処理時間,消費電力など)やエラーメッセージから,攻撃対象の秘密情報を得る。
イ 企業などの秘密情報を不正に取得するソーシャルエンジニアリングの手法の一つであり,不用意に捨てられた秘密情報の印刷物をオフィスの紙ごみの中から探し出す。
ウ 通信を行う2者間に割り込み,両者が交換する情報を自分のものとすり替えることによって,その後の通信を気付かれることなく盗聴する。
エ データベースを利用するWebサイトに入力パラメータとしてSQL文の断片を送信することによって,データベースを改ざんする。
正解は”ア”
サイドチャネル攻撃とは機器の内部に隠されている情報を抜き取る攻撃です。機器から漏れ出る電磁波・処理に掛かる時間・処理に必要な電力などを観測することで、内部の情報を抜き取ろうとします。
令和3年度秋期問44
応用情報技術者
午前試験 令和3年度秋期問44
オープンリダイレクトを悪用した攻撃に該当するものはどれか。
ア HTMLメールのリンクを悪用し,HTMLメールに,正規のWebサイトとは異なる偽のWebサイトのURLをリンク先に指定し,利用者がリンクをクリックすることによって,偽のWebサイトに誘導する。
イ Webサイトにアクセスすると自動的に他のWebサイトに遷移する機能を悪用し,攻撃者が指定した偽のWebサイトに誘導する。
ウ インターネット上の不特定多数のホストからDNSリクエストを受け付けて応答するDNSキャッシュサーバを悪用し,攻撃対象のWebサーバに大量のDNSのレスポンスを送り付け,リソースを枯渇させる。
エ 設定の不備によって,正規の利用者以外からの電子メールやWebサイトへのアクセス要求を受け付けるプロキシを悪用し,送信元を偽った迷惑メールの送信を行う。
正解は”イ”
オープンリダイレクトとは、あるWebサイトにアクセスすると自動的に別のサイトに遷移する機能のことです。
攻撃者は特的のWebサイトに偽装したリンクを作成し、一般ユーザがそのリンクをクリックすると攻撃者が用意したWebサイトに誘導されます。これがオープンリダイレクトを悪用した攻撃です。