【合格ノートの裏表紙】73個の攻撃手法(情報処理安全確保支援士)
このNoteには、私がSCに合格した時に学習ノートの裏表紙にまとめていた攻撃を載せました。
「SCに合格するなら、これぐらいは覚えていて当たり前」と目安にしてください。73個って数字にすると多いですが、学習してたら自然と結構な数覚えていますよ。
当時、過去問演習をして遭遇した攻撃を網羅しています。
合格以降の問題を解ききれていないので、漏れはあるでしょうし、今では出題されないものも少しありそうです。
しかし基礎として有効です。
このNoteの攻撃+あなたが過去問演習で遭遇した攻撃を、学習ノートの裏表紙にまとめれば完璧になりますね。
それでは始めましょう!
DoS攻撃たち
DoS攻撃:大量のパケットを送り付けてサービス不能にする攻撃
DDoS攻撃:多数の機器から1つのサーバにDoS攻撃をする
DRDoS攻撃:送信元を攻撃対象に詐称し、サーバに多数の問い合わせをし、返答を攻撃対象に集中させる攻撃
DNSamp攻撃:DRDoS攻撃の一種。DNSサーバに問い合わせをして、返答を攻撃対象に集中させる
ITパスポート試験用ですが解説も作ったのでどうぞ。>Dos攻撃の解説Note
DoS攻撃
DoS攻撃は、攻撃対象のサーバに「大量のパケット」を送り付けて、高負荷にすることで「サービス提供を阻害・停止」をねらう攻撃です。
DoS攻撃では攻撃の送信元が分かるため、通信を受け付けなければ対策できました。
DDoS攻撃
DDoS攻撃では、複数のコンピュータからパケットを送り付けます。総じて大量のパケットを受け付けることになります。
よくある手口としては、複数のコンピュータに「ボット」を感染させ、ボットに指示して一斉攻撃を開始します。
先生で例えると、クラス全員で12:00に先生に質問しようと決めて実行すると、先生は一人一人に対応してパンクしちゃいますね。
1つ1つの送信元からのパケットは多くないため攻撃と気づけないため、対策できません。
DRDoS攻撃
DRDoS攻撃は、送信元を攻撃対象のIPアドレスに詐称して、複数のサーバに問い合わせを行い、サーバからの返答を攻撃対象に集中させます。
学校の先生方に「xx君が探してましたよ」と言いふらせば、学校中の先生がxx君に「どうしたの?」と襲い掛かりに行くのを想像しましょう。
DRDoSは、悪用するサーバによって名前が色々です。NTPサーバを使うNTPリフレション攻撃、DNSサーバを使うDNSリフレクション(DNSamp)攻撃など。
悪用するプロトコルでも変わります。とはいえ出題実績はないので流して下さい。ネットワーク機器の管理プロトコルを悪用した「SNMPリフレクション攻撃」。ネットワーク機器であるルーターを踏み台とする「SSDPリフレクション攻撃」、「Portmapリフレクション攻撃」など。>参考Webサイト様
出題されたDRDoS攻撃は「DoS系の詳細」節で紹介しますね。「~Flood」という名前が多いです。
EDoS攻撃
EDoS攻撃は課金制のクラウドサービスに大量のリクエストを送り付け、契約者の「経済的な損失」を与える攻撃です。
クラウドサーバへのアクセス量、クラウドサーバでのプログラムの実行回数などで料金が決まるサービスに対して行われます。
DoS系の詳細
DoS攻撃は、サーバに大量のデータを送り付けますが、使う通信プロトコルや手順によって名前が付いています。
ここでは出題実績のある攻撃を、私が合格した当時に学習ノートを基に書きました。
SYN Flood:TCP接続のSYNパケットを大量に送りつける
connection flood:TCP接続を大量に確立して、データ通信せず放置する
UDP Flood:UDPパケットを大量に送り付ける
ICMP Flood (ping flood):ICMPパケットを大量に送り付ける
smurf攻撃:送信元を詐称して行うICMP flood攻撃
HTTP GET flood:HTTP通信のうちGETリクエストを大量に送り付ける
HTTP POST flood:HTTP通信のうちPOSTリクエストを大量に送り付ける
これらのDoS攻撃を複数の端末、または1つの端末でも偽装した複数のIPアドレスから行えば、DDoS攻撃になります。
さらにICMP Flood攻撃などは、サーバから返答が返ってくるので、IPアドレスを詐称して返答を1点集中させられば、DRDoS攻撃にもできます。smurfと別名が付けられています。
SYN Flood
SYN Floodは「通信できますか?(SYN)」という問い合わせを大量に送り付ける攻撃です。
TCPでは「3ウェイハンドシェイク」を行って通信を確立します。サーバへ「通信できますか?(SYN)」と送り、サーバから「できますよ(SYN+ACK)」を受信し、サーバへ「では送ります(ACK)」という3回の通信をしてから、本格的な通信が行われます。
SYN Floodは、サーバからの返事を無視して、ひたすら「通信できますか?(SYN)」と問い合わせ、サーバに返答処理の負荷をかけます。
connection flood
connection floodは、サーバが確立できるTCP接続数を全て占拠して、他のユーザがサーバと接続することを妨げる攻撃です。
私たちだと、つなげる手は2本。3本目も4本目も手をつなんぎましょう!と言われても対応できませんよね。サーバの通信接続を確立できる個数を独占する攻撃です。
UDP Flood
UDP Floodは、UDPパケットを大量に送り付けて、サーバを高負荷にする攻撃です。
パケットを送り付けるのは、TCPのSYN Flood攻撃と変わりません。使っているプロトコルと特性がちょっと違うだけです。
UDPはTCPのような接続手順(3ウェイハンドシェイク)をする必要がないため(コネクションレス)、攻撃者が少ない手間でできる攻撃です。
ICMP Flood (ping flood)
ICMP Flood攻撃は、サーバに「通信が通じてますか?(ping)」と大量の問い合わせをして、サーバを高負荷にする攻撃です
pingコマンドは「通信が通じてますか?」と確認するために使われます。pingに使われているプロトコルが、ICMPです。
AMIIが解ける程度でよく深く学ぶことはないです。>SCH27年秋AMII問10
ICMP flood攻撃をDRDoSで行うのが、次にやるsmurf攻撃です。
smurf攻撃
smurf攻撃は、送信元を詐称してサーバで反射させるのでDRDoS攻撃の一種。ICMPを使ったDoS攻撃なので、ICMP Flood攻撃の一種でもあります。
攻撃名は分類というよりは、属性に近いかも。漫画の女の子に、メガネ+金髪+ツインテール+ツンデレ、みたいな。
攻撃対象のIPアドレスに詐称して、サーバに「通信が通じてますか?(ping)」と問い合わせると、サーバは攻撃対象に返答を返します。
pingの問い合わせを多数のサーバに行えば、多数の返答を攻撃対象に送り付けることができるので、DRDoS攻撃に該当します。
HTTP GET flood
HTTP GET floodは、WebサーバへのHTTPリクエストを悪用した攻撃です。
HTTPで利用者の入力内容をWebサーバに伝えるには、GETとPOSTが代表的です。
GET:URLにパラメータとして挿入する
POST:HTTPボディに挿入する
まずはGETから。google検索してたら実は見えているんですよ。
GETでは、サーバへ送る内容をURLに埋込みます。
googleで「kensaku」と検索してみると「https://www.google.com/search?q=kensaku」というURLに変わります。「xxx」という言葉で探して欲しいとURLで伝えているのです。
HTTP GET floodは、GETによるリクエストを大量に送り付けて、サーバを高負荷にする攻撃です。
なお、検索文字が日本語だとアルファベットに変換されます。%とか一杯になります。「URLエンコーディング」と云います。「検索」の場合は、「https://www.google.com/search?q=%E6%A4%9C%E7%B4%A2」となります。
HTTP POST flood
HTTP POST floodもHTTP GET floodと同じく、Webサーバに大量のリクエストを送り付ける攻撃です。
Webサーバへデータを送るもう一つの方法がPOST。POSTではHTTP通信の中身にデータを埋め込みます。URLにはデータは表れません。
POSTを悪用して大量のリクエストを送り付ける攻撃は、HTTP POST floodと言います。
私は「GETとPOSTどっちがどうだったっけ」とよく混乱しちゃいます。同じ方は、何か屁理屈で覚えるか、学習ノートの裏表紙にメモしておくと良いですね。
パスワードクラック
パスワードを特定するのは代表的攻撃ですね。
ブルートフォース攻撃:パスワードにあらゆる文字の組み合わせを入力して試す
リバースブルートフォース攻撃:IDにあらゆる文字の組み合わせを入力して試す
パスワードリスト攻撃:別サイトで入手したIDとパスワードを流用して試す
辞書攻撃:パスワードでよく使われそうな言葉を組み合わせて試す(sytem2023など)
以上の4つがAPまでは基本ですが、更に1つ追加しておきます。
ジョーアカウント攻撃:IDとPWDを同じにしたアカウントがないか試す
ブルートフォース攻撃
ブルートフォース攻撃は、「あらゆる文字」を組み合わせてパスワードの特定を図ります。
例えば「a」を試して「b」を試して、「z」まで試したら、「aa」を試して、というようにです。
IDは固定してパスワードだけ変えるのが一般的です。
対策は「ロックアウト」。ログインに一定回数だけ間違えば、パスワードクラック攻撃だと見なしアカウントを一時的に凍結して、ログインできない状態にします。
私たちがついつい間違えてもロックアウトされてしまうので注意ですね。
リバースブルートフォース攻撃
リバースブルートフォース攻撃は、IDを特定する攻撃です。ブルートフォースはIDを固定してPWDを特定していたので、逆(リバース)ですね。
パスワードを固定してIDだけを変えるのが一般的です。ブルートフォース攻撃のように、あらゆる文字を組み合わせて、IDを特定します。
ブルートフォース攻撃がパスワードを特定する攻撃だったので、IDを特定することを「反対」と捉えてリバースと名付けられています。
対策はブルートフォース攻撃と同じで「ロックアウト」。ログインに一定回数失敗すれば攻撃と見なして、アカウントを一時凍結します。
パスワードリスト攻撃
何らかの手段で不正入手した、IDとパスワードのリストを流用して不正ログインを図る攻撃です。
複数のサービスでIDとパスワードを同じしているユーザを狙っています。
対策はサーバー側では難しいです。IDとパスワードが毎回違うので。送信元IPアドレスが同じなら攻撃とは分かりますが、詐称されれば分かりません。
ユーザー側での対策として、複数のサービスで同じIDとパスワードを使わないことはできます。パスワードの末尾を変えるだけでも、対策にはなるので少しだけでも工夫してくださいね。
Webブラウザ「chrome」では、「入力したパスワードは、パスワードリスト攻撃に使われたことがある」旨の注意アナウンスが出る時があります。(自分のIDとパスワードが流出したとは限らないので、慌てないでくださいね)
辞書攻撃
辞書攻撃は、「よく使われる単語」を登録した辞書に登録された単語を組み合わせてパスワードの特定を図ります。
例えば、sytemと2023を組み合わせて、system2023を試すなど。
ブルートフォース攻撃は、機械的で闇雲に全部試していきますが、辞書攻撃は存在する単語で特定を試みています。
対策は、ユーザーがパスワードに単語を使わないことです。とはいえ、ランダムな文字列が良いですが、覚えるのが大変なので、単語の母音だけ・子音だけを取り出すのもありですね。
ジョーアカウント攻撃
ジョーアカウント攻撃は、IDとパスワードを同じにしているアカウントを探し出す攻撃です。
対策は、ユーザーがIDとPWDを違えて登録するしかありません。あまり薦めませんが、PWDの末尾に「_PWD」と加えるだけでも、IDとPWDが違うようにはなります。
簡単すぎる問題なので、AP以降では見たことないです。情報セキュリティマネジメント試験では出ますね。>SGR1年秋問19(過去問道場様)
オンライン/オフライン攻撃
攻撃をオンラインでするか、オフライン(自分のPC内だけ)でするかでも分類されます。
大したことではないので、「そうだね」ぐらいに流して大丈夫。
オンライン攻撃:ネットワーク経由によるパスワードクラック攻撃
オフライン攻撃:手に入れたパスワードファイルを解読するなど、ネットワークを使わない攻撃
オンライン攻撃
オンライン攻撃は、システムに直接アクセスする攻撃。
要は私たちが考えるサーバへの攻撃ですね。
ブルートフォース攻撃や辞書攻撃によるパスワードを特定する試行、リバースブルートフォース攻撃によるIDを特定する試行なども含みます。
サーバの対策は、同じIPアドレスから大量の試行を遮断、などが考えられます。
パスワードクラック攻撃に限れば、ログインに一定回数失敗したアカウントを一時凍結する「ロックアウト」が、サーバができる対策です。
ユーザ側としては、IDとパスワードの設定ですね。IDとPWDを同じにせず、PWDに単語を使わない、各サービスで使うPWDを別々に設定するなど。
オフライン攻撃
オフライン攻撃は、システムにアクセスしないで、自分のコンピュータ内で解析します。
例えば、不正に入手したパスワードのハッシュ値のリストを分析して、パスワードの平文を特定するなど。
攻撃者のPC内のことなので、対策のしようがないですが。ファイルを暗号化して分析時間を増大させるなどの時間稼ぎをして、攻撃者に諦めてもらうしかありません。
なお、現在の暗号化やハッシュ関数などは、分析時間が膨大であることを担保としています。しかし、因数分解の困難さを利用した暗号化アルゴリズムなどは、量子コンピュータが実現されると、現実的な時間で解けるようになる危惧もあります。
量子コンピュータはロマンがありますが、一方で計算能力の高さはセキュリティを脅かす原因にもなっているんですね。
レインボー攻撃
レインボー攻撃は、ハッシュ値から平文を特定する分析です。
予め平文からハッシュ値を生成して対応表を作っておき、不正に入手したパスワードのハッシュ値と同じものを探せば、平文のパスワードを特定できます。
レインボー攻撃は基本情報技術者試験に一時期出題されていました。最近は見ていない気がします。
>FEH28年秋問44(過去問道場様)
>FER2年問39(過去問道場様)
スキャン
攻撃者は、サーバやパソコンに直接攻撃をする前に調査をすることもあります。怪盗が侵入する前に防犯カメラの位置や警備システムを下調べするのと同じです。
「スキャン」は、侵入路として使える窓(ポート)や侵入を試みれる弱点(脆弱性)を探す行為です。
なお管理者も「自分のサーバに隙がないか」を確認するために、行います。攻撃と防御は表裏一体、「スキャン」は攻撃行為と断じることもできません。
ポートスキャン
ポートとは窓口です。
HTTPなら80番、SMTPなら25番でしたね。
>プロトコルの解説Note(Iパス用)
>プロトコルの解説Note(FE用)
攻撃者が侵入口を探すだけではなく、サーバ管理者が侵入口がないかをチェックするためにも行います。
ステルススキャン
スキャンは泥棒の下見。攻撃者としてもサーバ側に感知されてたくなりません。
ファイアウォール(FW)などのネットワーク機器の記録(ログ)に残らないようなスキャン方法を「ステルススキャン」と云います。
ハーフオープンスキャンなど細かい分類があるようですが、試験対策としては不要です。「ポートスキャン、さらにステルススキャンがあるんだ」程度、AMII程度で充分。>参考サイト様
スタックフィンガープリンティング
サーバーのOSやバージョンを特定する通信行為です。
ポートスキャンは窓口探しでしたが、サーバの脆弱性を調べるために。OSによってTCP/IPの設定(開いているポート番号など)に違いがあるので、通信への反応からOSの特定を試みます。
スキャンはたくさんありますが、AMII対策で終わり。「プロトコルが違うから名前が違う」程度で充分ですよ。箇条書きで、名前と出題実績をさらっと流しましょう。
TCPハーフスキャン >SCH27秋AMII問15(過去問道場様)
UDPスキャン: >上と同じ(過去問道場様)
SYNスキャン:ハーフスキャンorステルスキャンと云われる>参考サイト様
DNS系
DNSはネットワーク通信の根幹です。
なぜなら私たちが入力するドメイン名(やURL)と、コンピュータが使うIPアドレスを紐づける仕組みですから。
例えば自社のDNSサーバには2つの役割がありますね。
社外の人が、自社のWebサーバやメールサーバにアクセスできるようにIPアドレスを教えてあげる
社内の人が、インターネットのWebサイトにアクセスできるようにIPアドレスを教えてあげる
社外向けが権威サーバ(コンテンツサーバ)、社内向けがキャッシュサーバです。
>DNSサーバの配置(AP, SC, NW)
>DNSレコードの全て(SC出題実績)
ここでは、DNSサーバへの攻撃・悪用する攻撃をまとめておきます。
ゾーン転送を悪用した情報収集
ゾーン転送要求による情報収集によって、DNSサーバの情報を入手して、ネットワーク構造を推測できるようになります。
DNSサーバはプライマリとセカンダリの2台で運用しますが、プライマリサーバのレコードをセカンダリに定期的にコピーします。コピーするための通信が「ゾーン転送」です。
攻撃者はプライマリサーバにゾーン転送要求を出して、レコードの内容を入手し、ネットワークの構成を推測できるようになります。
>SCH22春AMII問8(過去問道場様)
>SCH21春AMII問1(過去問道場様)
DNSリフレクション(DNSamp)攻撃
DNSamp攻撃は、DRDoS攻撃でDNSサーバを悪用するサーバです。
送信元IPアドレスを攻撃対象にして、DNSサーバに問い合わせをし、DNSサーバからの返答を攻撃対象に集中させる手口です。>SCH21春AMII問1(過去問道場様)
私は授業でよく例えるんですが、「学校の先生全員にA君が呼んだ増した!」と嘘をついたら、全先生がA君に「どうしたのー?」と一斉に襲い掛かりますよね!これはヤバイ!>DoS攻撃を学校で例えてみたNote
DNSキャッシュポイズニング攻撃
DNSサーバは問合せのあったドメイン名に対応するIPアドレスを教えてくれます。
社内から「googleのWebサーバのIPアドレスは?」と聞かれても答えます。ドメイン名とIPアドレスの対応表は、キャッシュに記録されています。
もしキャッシュに嘘が書かれていたら大変です。社員さんを間違ったサイトに道案内してしまいますから。
攻撃者はキャッシュに間違った情報を登録させ、DNSサーバの利用者を偽サイトに誘導するのを狙います。
名前連鎖攻撃
名前連鎖攻撃は、DNSキャッシュポイズニング攻撃の一種。攻撃者が管理するドメイン名を大量生成して、DNSサーバに大量に記録(キャッシュ)させて上書きします。>SCH29春AMII問6(過去問道場様)
DNS水責め攻撃(ランダムサブドメイン攻撃)
DNS水責め攻撃(ランダムサブドメイン攻撃)は、DNSサーバに大量の問い合わせをするDoS攻撃です。相手DNSサーバが管轄するドメインのサブドメインをランダムに問い合わせます。
例えばgoogle社のDNSサーバに、「a.google.comってありますか?」と聞けば、「ないです」と答えが来ます。実在しないから。aがサブドメイン。
そこで「b.google.comは?」「dee.google.comは?」「gxfx.google.comは?」「lad.google.comは?」「zzp.google.comは?」とサブドメインをランダムにデッチ挙げて大量の問い合わせをします。>SCH29春AMII問6(過去問道場様)
全然余談なんですが、「m.google.com」ってあるんですね。google workspaceサービスらしいです。上のサブドメンがないか確認してたら偶然みつけました。
ARPキャッシュポイズニング
ARPキャッシュポイズニングは、DNSとは無関係ですが、DNSキャッシュポイズニングと似ているためまとめました。
DNSはドメイン名とIPアドレスの変換でした。ARPはMACアドレスとIPアドレスの変換をします。
MACアドレスは機器のネットワークインタフェースカード(NIC)に直接書かれた番号。データをバケツリレーで送るときに、次に送る機器のアドレスとして使われます。
SC午後1でテーマになり「ARPキャッシュポイズニングで、中間者攻撃・盗聴ができるんだぁ」って理解が捗りました。
>SCH23秋AMII問7(過去問道場様)
>SCH29春PMI問1(過去問道場様に解説なし)
Webアプリ系
Webサイトには、利用者が入力すると動作するものがありますよね。
例えばSNSや電子掲示板は入力した内容が表示されるようになります。立派なWebページの変更ですよね。文章の代わりにプログラムを入力したら悪用できます。
また通販サイトでは入力した内容に応じて商品が表示されますよね。サーバ側でプログラムが動いています。商品の特徴ではなく、SQL文やコマンドを入力した悪用できます。
ここではプログラム(スクリプト)やSQL文などをWebページに入力(インジェクション)した攻撃をまとめました。
XSS(クロスサイトスクリプティング)
XSSは、Webサイトに「悪意のあるスクリプト」を埋め込んで、閲覧者の訪問時に実行させ「偽サイトに誘導」する攻撃です。>SCR3春AMII問12(過去問道場様)
偽サイトでIDやPWDを入力させたら、あなたのアカウントでログインできちゃいますね。
スクリプトはプログラムのこと。
例えばJavascriptは、利用者のWebブラウザで解釈されて実行されるのが特徴です。
Webページにはページの内容・画像やリンクなどのHTML文に加え、簡単なプログラム(スクリプト)も載っています。Webブラウザはこれらを解釈して画面に表示してくれています。
さて攻撃の話。
例えば電子掲示板にJavascriptを投稿しておきます。訪問者のWebブラウザがWebページを表示する時に、Javascriptが解釈され実行されます。Javascriptに、Webページ遷移するようなプログラムを書いておけば、攻撃者が用意したWebページに誘導できます。
攻撃者のWebページを銀行などの公式Webページに似せてつくり、IDとPWDや個人情報を入力させれば情報を入手できます。
XSSでよくある記述は「偽サイトに誘導してアカウント情報や個人情報を入力させる」。次に出てくるXSRFと区別するために必要です。
XSRF(CSRF, クロスサイトリクエストフォージェリ)
XSRFは、Webサイトに「悪意のあるスクリプト」を埋め込んで、閲覧者が気づかないうちに別サイトで意図しない操作をする攻撃です。
XSSと同じくスクリプトを埋め込む点は同じで、その後の動作が異なります。利用者が気づかないうちに、別サイトで意図しない操作をする点です。>SCR3春AMII問12(過去問道場様)
SQLインジェクション
SQLインジェクション攻撃は、データベースを不正利用して情報を引き出す攻撃です。
通販サイトの検索システムでは、利用者が入力した文字列からSQL文を作って、データベースへアクセスして結果を表示します。
普通は「歯ブラシ 赤」など言葉を入力しますよね。
入力する文字列に小細工すると、SQL文を作った時に「全てのデータを表示せよ」などのようにできます。
対策は「プレースホルダ」「バインド機構」を用いて、SQL文と解釈させないようにすること。無害化することを「サニタイジング」と云います。
>SCH28秋AMII問17(過去問道場様)
>SCR3春AMII問12(過去問道場様)
OSコマンドインジェクション
OSコマンドインジェクションは、サーバーのOSへの命令(コマンド)を悪用した攻撃です。
コマンドとは、コンピュータに命令する特別な文字列のこと。
例えばWindowsだったら「dir」でファイル一覧表示ができます。Linuxだったら「ls」コマンドを使います。
Webアプリ内に、利用者の入力した文字列を使ってOSのコマンドを呼び出す部分があると悪用されてしまいます。
>SCR5春PMI問2の解説Note
>SCR4秋PMI問2の解説Note
>SCH28秋AMII問17(過去問道場様)
>参考サイト様
ディレクトリトラバーサル攻撃
ディレクトリトラバーサル攻撃は、Webページのリンクを用いずに、直接ファイルやフォルダへのアクセスを試みる攻撃です。
webページの住所「URL」は、Webサーバ内でのファイルの場所を指しています。
そこで、「https://www.なんたら.com/IPA.html」を見ていたけど、「https://www.なんたら.com/image/」に直接アクセスすると全て画像ファイルが見えるかもしれません。
このように、Webサーバ内のファイル・ディレクトリ構造を推測して、直接アクセスする攻撃が、ディレクトリトラバーサル攻撃です。
もしログインしてから、「https://www.なんたら.com/secret/index.html」にアクセスするようになっていた場合も、URLを推測して直接アクセスすれば、ログインしなくても見れることもあります。
Webサーバ内には外部に公開したくないファイルやフォルダがあります。攻撃者は、URLを推測するなどして直接ファイルやフォルダへアクセスすることを試みます。>SCH28秋AMII問17(過去問道場様)
SCの午後問題でもテーマになりました。>SCR04春PMI問2の解説Note
最近の過去問ではURLエンコーディング(後述)を利用して、ディレクトリトラバーサル攻撃を成立させていました。>SCR04春PMI問2の解説Note
BoF(バッファオーバーフロー)
BoFは、プログラム開発者の想定よりも多いデータを入力し、プログラムの受け皿を溢れさせ(オーバーフロー)、誤作動を起こさせ、入力値に仕込んだ悪意のプログラムを実行させる攻撃です。>SCH23秋AMII問7(過去問道場様)
まとめ
XSS(クロスサイトスクリプティング):Webサイトに悪意のあるスクリプトを埋め込んで、閲覧者の訪問時に実行させ偽サイトに誘導する
XSRF(CSRF, クロスサイトリクエストフォージェリ):Webサイトに悪意のあるスクリプトを埋め込んで、閲覧者が気づかないうちに別サイトで意図しない操作をする
SQLインジェクション:データベースを不正利用する
OSコマンドインジェクション:コマンドを不正利用する
ディレクトリトラバーサル:公開側が意図していない領域にアクセスする
BoF(バッファオーバーフロー):想定外の長大な入力をしてバッファをあふれさせ、攻撃者の用意したプログラムを実行させるなど誤動作させる
HTML系
セッションハイジャックとURLエンコーディングが特に重要です。
Webサーバへのなりすましをする
セッションハイジャック
セッションID固定化攻撃
WebサーバやWebブラウザへ不正な動作をする
URLエンコーディング攻撃
HTTPの仕様を悪用した攻撃
HTTPヘッダインジェクション
HTTPレスポンス分割
メールヘッダインジェクション(似ているので)
残りのHTTPヘッダインジェクション, HTTPレスポンス分割, メールヘッダインジェクションは、「ヘッダを想定とは違う使い方して、攻撃に使っているだな」ぐらいでOK。>SCR06年春午後問1の解説Note
セッションハイジャック
セッションハイジャックは、セッションIDを盗んでなりすます攻撃です。
セッションIDはお客様番号のようなもので、Webページが訪問者を区別するために割り当てる番号です。
攻撃者がセッションIDを、盗聴なり推測するなりして不正に使って、訪問者になりすましてWebページにアクセスします。
>SCR3春AMII問12(過去問道場様)
>SCH28秋AMII問17(過去問道場様)
セッションID固定化攻撃
セッションID固定化攻撃は、攻撃者が入手した正規のセッションIDを、利用者に配布してアクセスさせる攻撃です。
攻撃者がセッションIDを指定しているので「固定」と表現されています。
セッションハイジャックを成立させる原因にもなります。攻撃者はセッションIDを入手し、正規利用者にセッションIDを渡しログインさせ、攻撃者はログイン済みとなったセッションIDでアクセスします。
セッションフィクセーションとも云いますが、覚えなくて良いでしょう。>SCH29春AMII問5(過去問道場様)
URLエンコーディング攻撃
URLエンコーディング攻撃では、URLで英数字以外を使えようにするエンコードを悪用して、Webブラウザやプラグインで誤作動を起こさせます。>SCH23秋AMII問7(過去問道場様)
本来URLには英数字しか使えないです。URLエンコードによって日本語のURLをも使えるようにしています。
例えばgoogleさんで「kensaku」と検索すると「https://www.google.com/search?q=kensaku」というURLに変わります。「xxx」という言葉で探して欲しいとURLで伝えているのです。
「検索」を検索するとURLエンコードによって「https://www.google.com/search?q=%E6%A4%9C%E7%B4%A2」に変換されます。
HTTPヘッダインジェクション
HTTPヘッダインジェクションは、利用者からのHTTPリクエストに仕込みをして、サーバから利用者へのHTTPレスポンスに悪意あるデータを含めさせる攻撃です。言葉では複雑ですね。>参考Web
攻撃者が用意したURLを、利用者にクリックさせる
HTTPヘッダに「攻撃者の意図させたリンク」などを含めた状態で正規Webにアクセスさせる
正規Webから返ってきたHTTPレスポンス内に「攻撃者の意図させたリンク」などを含め、利用者を誘導する
最近の過去問でも、ヘッダに攻撃コードを含める手口がテーマになりました>SCR06年春午後問1の解説Note
HTTPレスポンス分割
HTTPレスポンス分割は、HTTP通信のヘッダとメッセージが改行コードで区別されていることを悪用する手口です。>参考Web
HTTPヘッダインジェクションでは、HTTPレスポンス分割によって正規のHTTPレスポンスを分割させ、攻撃者が意図した内容を表示させたり誘導したりします。
メールヘッダインジェクション
メールヘッダインジェクションは、送信メールのヘッダの仕様を悪用する攻撃です。
メールヘッダは、メールアドレスなどを記載する部分です。メールヘッダの文字列を細工して、送信者が意図していない相手にメールを送信させたり、受信者側に意図しないメッセージを表示させたりできます。>参考Web
マルウェアの種類
まず大きな3つの分類から。
ウイルス:感染する宿主(ホスト)が必要
ワーム:宿主(ホスト)は不要
トロイの木馬:正常なソフトと見せかけて裏工作する
>Iパス3問:3つのマルウェアNote
>Iパス7問:ランサムウェアNote
>Iパス5問:スパイウェアNote
>Iパス9問:ボット・マクロウィルスNote
ウイルス
コンピュータウイルスは、病気のウイルスと一緒で、単体では存在できません。細胞に感染するように、プログラムにくっついて感染します。
宿主をホストと云います。
ワーム
ワームはホスト(宿主)は不要です。プログラムにくっつかず、ワーム(プログラム)単体でコンピュータ内に存在でき、活動をします。
ワームは、イモ虫という意味。イモ虫は単体で存在できますよね。
トロイの木馬
トロイの木馬は、潜んで悪さはしますが、感染拡大など積極的にはしません。
トロイの木馬は、昔話で聞いたことあるでしょうか。木馬の中に兵士を潜ませて、敵陣に侵入させる話です。一見有益で正常なソフトの動きをするんですが、裏で悪さをするプログラムです。
スパイウェア (キーロガーなど)
スパイウェアは、スパイ活動をするマルウェア。
スパイウェアは、ファイルやキーボードの入力などの情報を収集して、攻撃者のサーバに送信するプログラムです。特にキーボード入力を窃取するスパイウェアをキーロガーと云います。
キーロガーは、スパイウェアの一種で、キーボード入力を盗み見ます。
アドウェア
アドウェアは、広告が表示され開発者に収入が入るコンセプトで、本来は有益な機能を持つソフトウェアです。
Youtubeさんやabemaさんだって無料で使える代わりに、動画投稿主さんや運営に広告収入が入る仕組みですよね。ソフトウェアも同じです。
しかし、過剰な広告表示をさせたり、スパイ機能がつけられたりしているものも多くあり、「アドウェアはスパイウェアの一種」と分類される場合も多いです。
ランサムウェア
ランサムウェアは、感染すると「ファイルを勝手に暗号化」して使えなくし、解除するための金銭を「脅迫」するマルウェアです。
ランサムウェアに感染するとファイルを暗号化して使えなくし、復号するための脅迫がされます。ファイルをPC外にバックアップしておけば、対策になります。
ボット
ボットは、攻撃者から遠隔操作できるマルウェアです。
ロボットが語源で、いわば工作員。スパイ行為やDDoS攻撃に悪用されます。
なお、ボットに指示を出すサーバをC&Cサーバと云います。
ボットは攻撃者からの指示(遠隔操作)で不正を働く
ボットに指示するのは攻撃者サーバ(C&Cサーバ)
新しいボット用語に「RAT」があります。RATは、特定のPCから情報を不正入手するなどの標的型攻撃に利用され、攻撃対象のPCへ遠隔操作して、ファイルの送受信やコマンドの実行します。>Iパス9問:ボット・マクロウィルスNote
マクロウイルス
マクロウィルスはマクロで作られたマルウェアです。
ワープロや表計算ソフトでは簡単なプログラム「マクロ」を実行できる機能があります。エクセルシートにボタンがあるものを使ったことはないでしょうか。例えば確定申告のエクセルなど。
マクロウイルスを組み込んだワープロ/表計算ファイルをメールなどで送り、開かせることで実行させる手口です。マクロウイルスを組み込んだワープロ/表計算ファイルをメールなどで送り、開かせることで実行させる手口です。>Iパス9問:ボット・マクロウィルスNote
ルートキット
ルートキット(rootkit)システムログを改ざんし、発見されにくくする攻撃者が用意したソフトウェア。
攻撃者がPCに侵入した後に利用するツールで、ログ消去やバックドアなどの攻撃ツールをパッケージ化して隠しておきます。
>IパスH31年春問94(過去問道場様)
>FEH28年秋問41(過去問道場様)
バックドア
バックドアは、攻撃者が仕掛ける裏口。一度侵入したら次回侵入しやすくする仕組みです。トロイの木馬が仕掛ける場合もあります。
マルウェア対策ソフト(アンチウイルスソフト)
Windows8ぐらいから標準搭載のWindowsDefenderが、なかなか優秀なので、別途インストールする方は少なくなったかもです。
有名どころだと、Symantec社, TrendMicro社(ウィルスバスター), カスペルスキー社, ノートン(現社名が異なる), McAfee社, ESET社, Avast社。どれか一つぐらいは見たこと聞いたことありませんか?
2024年のニュースでは、クラウドストライク社が有名になりましたね。
マルウェアの手口
マルウェアは分類名だけでなく、もう少し細かく具体的な手口やソフトウェア名も出題されます。
ドライブバイダウンロード攻撃
ドライブバイダウンロード攻撃は、新たにマルウェアをダウンロードさせる手口。
WebサイトにダウンロードするURLやスクリプトを仕込んでおいたり、感染させたマルウェアから更にダウンロードさせたりなどします。基本情報技術者試験・応用情報技術者試験・セキスペと幅広く出題されていますね。
>FER05問9(過去問道場様)
>FEH30春問36(過去問道場様)
>APH29秋問40(過去問道場様)
>SCH27秋AMII問8(過去問道場様)
Gumblar
Gumblar(ガンブラー)は、Webサイトの管理アカウントに不正アクセスしWebサイトを改ざん、訪問者を不正なサイトに誘導する手口です。>SCR05秋AMII問6(過去問道場様)
Mirai
Mirai(みらい)は、IoT機器を標的にしたマルウェアです。
感染するとIPアドレスを検索し、感染を拡大します。IoT機器はセンサー網など多数使われているので、ボットとして大規模なDDoS攻撃に悪用などされます。>SCR05秋AMII問6(過去問道場様)
標的型攻撃
標的型攻撃は、特定の個人・組織に向けた攻撃全般を指します。
よく例にされるのはメール。業務に関係ある件名や内容で、マルウェアを仕込んだ添付ファイルを開かせたり、偽サイトのURLを書いて誘導させたりします。>IパスH29秋問96(過去問道場様)
APT(新しいタイプの攻撃, 持続的標的型攻撃)
APT(新しいタイプの攻撃)は、標的型攻撃の中でも長い期間に渡ったり、複数の手法を組み合わせたりするなどして攻撃が成立するまで執拗に繰り返します。
>SCH25春AMII問1(過去問道場様)
>SCH27秋AMII問8(過去問道場様)
水飲み場攻撃
水飲み場は動物が良く来る所ですよね。
転じて水飲み場攻撃とは、ターゲットがよくアクセスWebサイトに罠を仕掛ける攻撃手法を指します。>SCH27秋AMII問8(過去問道場様)
中間者攻撃
Man-in-the Middle Attack(中間者攻撃)
Man-in-the Middle Attack(中間者攻撃)は、攻撃者が利用者とサーバの間に割り込んで、通信情報を一旦受け取り、盗聴や改善をして再度送信先に送る攻撃です。
令和前のSC午後で御用達でした。>SCH22春AMII問13(過去問道場様)
Man-in-the-Brawser
Man-in-the-Brawserは、中間者攻撃の一種で、Webブラウザが中間者となります。>SCH29春AMII問11(過去問道場様)
スニッフィング
通信経路上で通信パケットを不正に盗み見る攻撃です。>SCH23春AMII問8(過去問道場様)
サイドチャネル攻撃
電力解析攻撃/テンペスト攻撃/故障利用攻撃(フォルトアタック)/タイミング攻撃
サイドチャネル攻撃は、機器外部から情報を集めて、内部の仕組みを探る攻撃です。
電力解析攻撃:消費電力に注目
テンペスト攻撃:電磁波に注目
故障利用攻撃(フォルトアタック):誤動作に注目
タイミング攻撃:処理時間に注目
>5問:サイドチャネル攻撃のNote
>SCH29春AMII問3(過去問道場様)
>SCH25秋AMII問6(過去問道場様)
>SCH23秋AMII問11(過去問道場様)
>SCR03秋AMII問13(過去問道場様)
プロービング
プローブは検査針のことです。
テスターやオシロスコープの電圧を測定するために、回路に充てる金属針などを指します。
転じてプロービングとは、システムや機器などを調べる/内部構造を明らかにする行為を指します。耐タンパ性と相性の良い言葉です。
SC-AMIIでも出題されますが、Iパスレベルですよ。
>耐タンパ性が学べるNote(Iパス3問)
>SCH23春AMII問15(過去問道場様)
線形解読法・関連鍵攻撃・差分解読法
暗号と平文の関係を手掛かりに鍵を特定する攻撃です。
線形解読法:線形式で近似して特定を試みる
関連鍵攻撃:平文と暗号文の一部の比較を手掛かりにする
差分解読法:入力が変わった(差)ことで、出力がどう変わったか(差)を分析する
POODLE攻撃/ Heart Blood攻撃/ ダウングレード攻撃(Logjam, バージョンロールバック)
POODLE攻撃:「SSL3.0」の暗号「CBCモード」の欠陥を突いて解読を試みる
Heart Blood攻撃:「SSL3.0」の脆弱性を突き、サーバのメモリに不正アクセスする
ダウングレード攻撃
Logjam攻撃:「DH鍵」の脆弱性をついて、使う暗号をダウングレードさせる
バージョンロールバック攻撃:古いバージョンのTLSにダウングレードさせる
午後問題のメインテーマにはならないので、AMII過去問に正解できれば問題ありません。
>SCH28秋AMII問3(過去問道場様)
>SCH29春AMII問2(過去問道場様)
DLLインジェクション
プログラム開発では、予め作られたプログラムも使います。ライブラリと云って、良く使う計算や機能のプログラムの集まりです。私たちは自分でもプログラムを書きますが、ライブラリのプログラムを呼び出して利用もできます。
プログラムコードを書いたら、実行形式ファイル(.exe)にまとめます。私たちのプログラムもライブラリも1つのファイルにします。
DLLは、1つのファイルにはまとめないライブラリです。DLLファイルは実行ファイルとは別にあるので、DLLファイルを変更すればプログラムの動作を変えられます。
普通のライブラリでは、作ったプログラムとライブラリを1つにまとめる作業をやり直さないといけません。DLLはやり直さなくて良いので便利ですね。
さて、DLLインジェクション攻撃は、不正なDLLを送り込んで実行させる攻撃です。
最近も出ていますよ。新SCは4問になり、PG内・PG外・ネットワーク・他、のような傾向なのかもしれません。
>SCR6年春午後問1の解説Note
>SCR4年秋午後1問3の解説Note
>SCH28春PMII問2(過去問道場さんに解説なし)
まとめ
DoS攻撃は「大量のパケットを送り付ける」のが共通点。各攻撃の違いだけはしっかり理解しておいてください。特段深く知る必要はありません。
DoS攻撃たち
DoS攻撃:送信元が1つなので遮断すれば対策可。
DDoS攻撃:分散するので特定困難。ボット。
DRDoS攻撃:サーバの返答を集中させる。反射。
EDoS攻撃:サービス料金を引き上げる。経済的ダメージ。
DoS系の詳細
SYN Flood, connection flood, UDP Flood, ICMP Flood (ping flood), smurf攻撃, HTTP GET flood, HTTP POST flood
パスワードクラックはIパスレベルで充分です。対策は「ロックアウト」だけ覚えておいてください。
パスワードクラックたち
ブルートフォース攻撃
リバースブルートフォース攻撃
パスワードリスト攻撃
辞書攻撃
ジョーアカウント攻撃
深い学習は不要です。「ネットを介さない分析はオフライン攻撃に分類されるんだなぁ」程度で。
オンライン/オフライン攻撃
オンライン攻撃
オフライン攻撃
レインボー攻撃
用語として知ってください。スタックフィンガープリンティングは午後に用語問題ででるかもしれません。
スキャン
ポートスキャン:開いているポートを探す。
ステルススキャン:機器のログに残らないスキャン。
スタックフィンガープリンティング:サーバのOSなどを調べる。
午前対策の中でも深めに学習し、過去問で遭遇したら仕組みを完全に理解してください。特にDNSサーバ2種類の役割・レコードの書き方は必須です。
DNS系
ゾーン転送を悪用した情報収集:DNSキャッシュポイズニングへ。
DNSリフレクション(DNSamp)攻撃:DNSサーバを使ったDRDoS攻撃。
DNSキャッシュポイズニング攻撃:DNSレコードを改変して偽サイトに誘導。
名前連鎖攻撃:DNSレコードに大量記録させて上書きする。
DNS水責め攻撃(ランダムサブドメイン攻撃):DNSサーバへのDoS攻撃。
ARPキャッシュポイズニング:DNSキャッシュポイズニングと同様、APRテーブルに偽情報を書きこむ
ARPキャッシュポイズニングは、DNSとは無関係ですが、DNSキャッシュポイズニングと似ているためまとめました。
Webアプリ系
XSS(クロスサイトスクリプティング):スクリプトを埋め込み、偽サイトに誘導。
XSRF(CSRF, クロスサイトリクエストフォージェリ):スクリプトを埋め込み、別サイトで不正操作させる。
SQLインジェクション:SQL文を入れてデータベースを不正利用。
OSコマンドインジェクション:OSコマンドの実行機能を悪用。
ディレクトリトラバーサル攻撃:Webサーバーの特定領域に直接アクセス。
BoF(バッファオーバーフロー):プログラムへの入力データを溢れさせて誤動作させる。
セッションIDとCookie、URLエンコードは午後問題のテーマになるので、午後の過去問題で深く深~~~く理解してください。
HTML系
セッションハイジャック
セッションID固定化攻撃
URLエンコーディング攻撃
HTTPヘッダインジェクション
HTTPレスポンス分割
メールヘッダインジェクション
マルウェアの分類はAMII対策で終わりです。種類は多いですが、キーワードで覚えておくだけでOK。
マルウェアの種類
ウイルス:宿主(ホスト)が必要。
ワーム:宿主が不要。
トロイの木馬:有益と見せかけて裏工作。
スパイウェア (キーロガーなど):情報の窃取。
アドウェア:大量広告とスパイ行為。
ランサムウェア:勝手に暗号化し復号の金銭脅迫。
ボット:ロボットプログラム。DDoS攻撃に利用。
マクロウイルス:文書や表計算ソフトの簡易プログラムを悪用。
マルウェア絡みの個別用語もAMII対策で終わりです。
マルウェア系
ルートキット(rootkit):侵入した攻撃者が隠し置いた道具。
バックドア:侵入口になる裏口。
ドライブバイダウンロード攻撃:さらにマルウェアをダウンロードさせる。
Gumblar:Webサイトを乗っ取り改ざんする。
Mirai:IoTを対象にしたマルウェア。DDoS攻撃に。
標的型攻撃のAMII対策で終わりです。
標的型攻撃
APT(新しいタイプの攻撃, 持続的標的型攻撃):長期間・色々な手法を組み合わせる。
水飲み場攻撃:攻撃対象がよくアクセスするサイトに罠を仕掛ける。
中間者攻撃
Man-in-the Middle Attack(中間者攻撃)
Man-in-the-Brawser
スニッフィング
SCAMIIやSGで高頻度の出題です。午後問題には絡みません。
サイドチャネル攻撃
電力解析攻撃/テンペスト攻撃/故障利用攻撃(フォルトアタック)/タイミング攻撃:各測定値・手法で分類。
プロービング:機器やシステムを外から調べること。
平文と暗号の関係です。AMIIでもマイナーなので、正答にはなりませんが、不正答選択肢には混ざってはきます。余裕があれば。
線形解読法/関連鍵攻撃/差分解読法
暗号通信の仕様や脆弱性を突いた攻撃です。午後問題の用語にはなるかもしれません。仕組みまでは知らなくて良いです。
POODLE攻撃/ Heart Blood攻撃/ ダウングレード攻撃(Logjam, バージョンロールバック)
プログラムを本来と異なる動きをさせます。アプリの改ざんやライブラリに不正プログラムを仕込むのは、午後問題のテーマになります。
DLLインジェクション:不正なDLLを混ぜ込む
以上になります。お疲れ様でした!(私も疲れました…w)
\私の3ヶ月の学習履歴/
p.s. 普段は >> 専門学校とIT就職のブログ << をやってます。
でわでわ(・ω・▼)ノシ