読者です 読者をやめる 読者になる 読者になる

iPX社員によるブログ

iPX社員が"社の動向"から"自身の知見や趣味"、"セミナーなどのおすすめ情報"に至るまで幅広い話題を投下していくブログ。社の雰囲気を感じ取っていただけたら幸いです。

サイバー攻撃について調べてみる

こんにちは。堀田と申します。

現在は某社内で使用されているWebシステムの改修案件に携わっているのですが、そこではフレームワークにサポートが切れて随分時間が経っているものを未だに使用しているため、セキュリティが気になっております。

最近はWeb技術における脆弱性が発覚することが多くなり、Webシステムに触れるのであればサイバー攻撃の知識も一通り頭に入れておく必要があるといえるでしょう。
そこで、今回は主なサイバー攻撃についての用語や概要を備忘録的にまとめてみました。

標的型攻撃

名前の通り、特定の団体もしくは個人を狙った攻撃です。
最も多いのは対象にメールを送り付け、その添付ファイルやリンク先にウイルスを仕込んでおくというパターンです。
最近はこのメールもかなり巧妙化しており、IPA独立行政法人情報処理推進機構)による以下の資料を見ても警戒を強める必要があるといえるでしょう。
IPAテクニカルウォッチ「標的型攻撃メールの例と見分け方」(PDF)

ゼロデイ攻撃

対策されていない脆弱性を突く攻撃手法の総称です。
flash playerやjavaのように広く普及しているソフトウェアが主な対象となり、解析されて攻撃方法を編み出されることが多いです。

開発側としては、報告があり次第速やかに対策を行うしかありません。
一般ユーザーは各種ソフトウェアをできる限り最新版にすることが一番の対策です。

DoS攻撃 / DDoS攻撃

DoS (Denial of Service)攻撃とは、攻撃対象のサーバーに負荷をかけることにより不具合を起こしたりダウンさせたりする攻撃です。
脆弱性を突く場合もありますが、基本的には接続回数を増やし、対象がリクエストを処理するより早く多くリクエストを送り付けることによる力技です。
また、いわゆるF5アタックも一種のDos攻撃にあたります。

別のコンピュータをウィルスに感染させたり不正アクセスにより参加させる場合を、特にDDoS (Distributed Denial of Service)攻撃といいます。
大規模なDDoS攻撃になると、原理上一度リクエストを受け取らなければならないので、完全に攻撃を防ぐことは不可能です。
最近では各プロバイダの段階で攻撃を検知してシャットアウトしようという試みもあります。

参考:DoS攻撃 - Wikipedia

SQLインジェクション

対象となるサイトのフォームやテキストボックスの文字列を適切に処理できていないことに起因する攻撃方法です。
攻撃対象のWebサイト側で文字列のエスケープ処理が適切にできていないと、テキストにSQLコマンドを仕込んで実行させることができ、これにより重要なデータが攻撃者により閲覧されてしまいます。

対策としては適切に文字列エスケープ処理を行うことです。JavascriptやWebフレームワークからSQLドライバを使用してクエリを実行するのであれば、PreparedStatementを使用する方法が確実でしょう。

クロスサイトスクリプティング (XSS)

こちらもフォームやテキストボックスの文字列を適切に処理できていないことに起因する攻撃方法です。
こちらは、攻撃対象となるサイトとは別のサイトのリンクにスクリプトを仕込み、第三者にそのリンクを踏ませることにより攻撃対象サイトに攻撃を仕掛けさせるという方法で実行されます。
その性質上、スクリプトを実行したユーザーが攻撃者と一致しないので簡単には攻撃者が発覚せず、また広告などにスクリプトを仕込むことができてしまえば一気に攻撃が広がってしまいます。

サイト運営側の対策としては適切に文字列エスケープ処理を行うことです。
この攻撃に関しては、リンクを踏む側については対策を行うことはほぼ不可能です。怪しいサイトを閲覧しないようにすればリスクを低減できますが、過去には有名でPVの多いサイトに仕掛けられた例もあります。

参考:「クロスサイトスクリプティング対策の基本」最新記事一覧 - ITmedia Keywords

終わりに

最近は有名なサイトやソフトウェアに対して攻撃されたり不具合が報告されることが多く、ブログなどであればともかくWebサイトを作って終わりというわけにはいかなそうです。
サイト構築側に問題がある場合もあれば、Webフレームワーク側に不具合がある場合もあり、使用している技術の情報へ常にアンテナを張り続ける必要があるといえます。
そもそもフレームワークの更新が要件に含まれなかった現在私が関わっているシステムは…