【情報セキュリティ安全確保支援士】情報セキュリティ攻撃手法まとめ | COMMONS NOTE

【情報セキュリティ安全確保支援士】情報セキュリティ攻撃手法まとめ

こんにちはマダラです。

もうすぐ情報処理試験の季節ですね!
わたしは元セキュリティスペシャリストの情報処理安全確保支援士を受けようと思いっています。

そこで、勉強の際にまとめていたセキュリティ攻撃手法のメモをそのままガットはっつけて記事にしようと思います。(そうです。手抜きです)

自分の勉強用メモでかなり簡略化している+勉強メモのほんの一部で抜けもありってことをご了承ください!

ざーと眺めてみて、自分が知らない奴があれば詳しく調べているくらいしましょう!!

情報セキュリティ攻撃手法

  • 総当たり(ブルートフォース)攻撃・辞書(リスト)攻撃・レインボーテーブル
    パスワードを破る攻撃手法。パスが英数字推奨なのは辞書型攻撃への対策。
    対策:ログイン試行回数ロック。推測されないパスワード。

  • SQLインジェクション
    個人情報・データ改ざん消去・設定変更が行われる。膨大な賠償金請求につながる個人情報漏洩リスクが高い
    対策:DB権限の最小化。バインド機構(プレースホルダ)でエスケープ処理をしてSQLを操作する不正な文字を無効化
       サニタイジング:意味を持つ「'」などをエスケープ処理する。HTML等のタグを変換。WAFの利用。

  • クロスサイトスクリプティング
    悪意のあるスクリプトを仕込んだリンクを押させるなどして、別のリンクに飛ばし、個人情報を入力させる
    フォーム処理など入力が必要なページで発生。エロサイトで意図しないサイトに飛ばさせるのもこの一種
    対策:スクリプトの無効化。エスケープ。URLを出力する箇所では「javascript:」を含んだ文字列を排除する

  • OSコマンドインジェクション
    Webアプリケーションに任意のOSコマンドを実行させる攻撃
    GET_cgi-bin/submit.cgi?user=;cat /etc/passwd/ HTTP/1.1
    「;」(セミコロン)は命令の区切りを意味するので、実行されるコマンドは「cat /etc/passwd」
    このような攻撃を受けるため、HTTPリクエストヘッダのサブシェルに渡すコマンドに外部データを含める場合はチェックが必要
    「|, &, `, (, ) 」なども別コマンド実行に使われる。
    対策:Webアプリーケションでシェルを起動しない。choot環境でWebサーバを稼働させる

  • ディレクトリトラバーサル
    対策:パス名やファイル名をパラメタとして受け取らない。重要なファイルを公開領域に置かない
  • セッションハイジャック
    対策:ランダムな値(セッションIDを乱数で生成)をhiddenフィールドで送信する。TLSによって通信内容を秘匿

  • リプレイ攻撃
    正常な認証手段を記録して同じ手順を再現することで認証を突破する手法
  • MITB(Man-In-The-Browser)攻撃
    ユーザPC内でプロキシ動作するマルウェアによって、Webブラウザ~Webサーバ間の送受信をブラウザベースで盗聴・改ざんする攻撃
    MITM攻撃と異なり、クライアント内で書き換えが行われるためWebサーバ側での不正処理を拒否することが難しい
    対策:トランザクション署名
       マルウェアの影響が及ばないハードウェアトークンで生成したワンタイムパスワード(OTP)を認証情報として使用する方法
       マルウェアはOTPトークンで生成される署名を特定できないため通信経路上で改ざんされてもWebサーバ側で処理要求を拒否できる

  • MITM(Man-In-The-Middle)攻撃・中間者攻撃
    WebサーバとクライアントPC間に介在して通信内容を横取りする手法
    マルウェアWERDLODの挙動
    ①PC(Windows)のレイストリを書き換えてプロキシサーバの自動設定に使うproxy.pacの参照先を攻撃者が用意したものに変更
    ②攻撃者が用意する不正なサーバ証明書をPCに信頼させるために不正なルート証明書を導入
    ③PCが攻撃者が用意するプロキシサーバを介して正規のネットバンキングに接続
    ④PCの画面上はHTTPS通信の確立を示すが攻撃者のプロキシサーバによるMan-in-the-middle攻撃が成立

  • IPスプーフィング
    IPアドレスの偽装

  • HTTPヘッダインジェクション
    動的にHTTPヘッダを生成するシステムにおいてHTTPヘッダ内に改行コードなどを挿入することで、Set-Cookie, Locationなどの攻撃のための不正なヘッダ情報を挿入したりメッセージボディに任意の記述を挿入する攻撃
    ヘッダにCRLF(%0d%0a)を挿入する。
    対策:出力文字列に改行コードがあればエラー画面を出力・出力文字列の改行コード以降の文字列を削除

  • クロスサイトリクエストフォージェリ(CSRF)
    Webサイトに設置されたハイパリンクや実行されるスクリプトを通じて、別サイトで閲覧者に意図しない不正攻撃を行わせる攻撃。例として会員情報の変更や商品の購入など
    対策:フォームごとに一意なセッションを生成してサーバで検証する

  • NTPリフレクション攻撃
    ネットワークに接続された機器を正しい時刻に合わせるNTP(Network Time Protocol)を利用した反射型DoS攻撃
    送信元IPアドレスを詐称したリクエストパケットを公開NTPサーバに対して大量に送りつける。リクエストパケットにはNTPサーバが過去にやり取りした最大600件のアドレスを返すmonlistコマンドを指定。
    公開NTPサーバは大量アドレスが記述されたレスポンスパケットを詐称IP宛に送信
    宛先サイトではトラフィックが増大してサービス不能に陥る。200バイト程度のリクエストに100倍以上のレスポンスが生じる。
    対策:NTPサーバプログラム(ntpd)が修正されたバージョンにアップデート
       非公開NTPサーバであれば外部からのサービス要求を拒否する
       公開NTPサーバであればmonlist機能を無効にする

  • バージョンロールバック攻撃
    攻撃者が意図的に通信利用プロトコルのバージョンを低下させて古いバージョンに残る脆弱性を利用して行う攻撃。
    SSLでは特定のOpenSSLの旧バージョンSSl2.0が強制され盗聴や改ざん等のMITM攻撃が行われてしまう

  • ディレクトリハーベスト攻撃
    スパム送信社によるメールアドレス取集法の一つ。エラー返信がないことを存在の手がかりとする手法

  • 標的型攻撃
    特定メンバのみが知りうる話題を偽装し、そのメンバのみに送信することでメンバの警戒心を解かせる手法

  • サイドチャネル攻撃
    組み込み機器の消費電力や処理時間、発せられる電磁気等から処理やデータを推測する手法。パスワード入力で惜しい値が入った時に処理時間が伸びるタイミング攻撃や、電圧変動・消費電力の高まりなどの挙動から格納された値を絞り込むことができる。

  • バッファオーバーフロー攻撃
    許容量以上のデータを送りつけ誤作動を起こさせる。メモリ領域の種類に応じた対策が必要
    スタックオーバーフロー:
    スタックBOF脆弱性を悪用する攻撃はスタックに必ず積まれる呼び出し元関数への戻りアドレスを値を書き換える
    機械語バイト列を入力データとして送り込むと同時に領域をあふれさせて関数リターンアドレスを辻褄が合うよう書き換え、送り込んだ機械語プログラムに制御を移させるのがこのタイプの攻撃
    スタック領域:
    PUSH・POP動作するデータ保存領域。確認用の値(カナリアコード)を挿入してPOP時にアドレス値の改ざん検知をする
    古くから存在する関数(getsやstrcpyなど)はセキュアではない可能性が高くこの脆弱性の一因となる。
    ヒープ破壊攻撃:
    プログラム内のジャンプアドレスを書き換えて送り込んだ侵入コードに制御を移す。書き換えの標的となるジャンプアドレスには、関数のリターンアドレス、例外ハンドラアドレス、関数ポインタ変数等がある。
    対策:アドレス空間ランダム化技術(ASLR)
       スタックオーバーフロー攻撃を成功させるためのジャンプ先アドレスをランダムにすることで特定を防ぎ抑制する

  • ARP スプーフィング(ARPキャッシュ汚染)
    不正なノードがいち早くARP応答を返すことであらゆるパケットを先取りする手法
  • ソーシャルエンジニアリング
    盗み見や盗み聞き、内部関係者を装うなど人的手法で情報を得る手法

  • クリックジャッキング
    ブラウザ上で表示するWebページに透明化した別のWebページを重ねて表示させて、興味を引くボタンをクリックしたつもりが別のWebページのボタンを押させる手法
  • GPSスプーフィング
    GPS衛生よりも強い電波によるジャミングやSDR(Software Defined Radio)を用いた偽電波生成・送信による攻撃
    乗り物の意図的な誘導、軍事衝突の誘発、現在位置の改ざん、時刻同期を無効化させる社会混乱などにつながる

  • DDoS攻撃・DNS水攻め攻撃・ランダムサブドメイン攻撃・DNSamp攻撃・カミンスキー攻撃
    フルスタックリゾルバの有効期限内のキャッシュがあればそれを返し、なければドメインを管理する権威DNSサーバに問い合わせを行い結果をクライアントに返す使用を悪用する。サブドメイン×キャッシュサーバ数のリクエストを権威DNSサーバに送る
  • DLLインジェクション
    システムディレクトリにある不正なコードを用いた攻撃
  • マルチベクトル型DDoS攻撃
    複数のDDoS攻撃手法を組み合わせて標的サービスの停止を狙う手法。
  • 公衆無線LAN偽装攻撃(自己命名)
    攻撃者の無線LANのSSID・暗号化方式・事前共有鍵を公衆無線LANと同一のものに設定することで利用者に自動接続させる

  • Smurf攻撃(スマーフアタック)
    ICMP echo request(ping)の仕組みを悪用して大量パケッットを送りつける反射型Dos攻撃。送信元IPアドレスを偽装したpingをブロードキャストで大量に送る

まとめ

どうでしたか?皆さんが知らない攻撃はありましたでしょうか?

いや〜、自分が勉強する用のメモだったのに、一発で4000字もの記事がかけてしまった〜〜