
Webサイトを運営する身として、自身のサイトから個人情報が漏れたりウィルスに感染されたりするのは絶対避けたいところ。悲しいことにサイトへの攻撃は常に行われているものです。
【参考】個人情報漏洩事件・事故関連記事の一覧:Security NEXT
あまり認知されなければそこまで心配することもないかと思いたいところですが、サイバー攻撃はサイトの規模に関係なく行われます。公開する以上セキュリティ対策は必須です。
私自身セキュリティ対策と言っても何をすればいいか分からないことが多く、セキュリティについて調べることもしばしばあります。調べてみるとさまざまな攻撃パターンの名称が出てきます。この攻撃パターンを知ることで防御策を考えることもできます。
そこでセキュリティの第一歩として攻撃パターンについてまとめていきたいと思います。また攻撃から守るためのセキュリティについてもメモしていきます。
ブルートフォースアタック(総当たり攻撃)
ブルートフォースアタックは、ユーザー名やパスワードなどログイン情報を手当たり次第入力し、不正ログインを成功させようとする攻撃です。
ログインが突破されてしまうと権限によってはWebサイトの内容を改ざんすることができてしまいます。
プログラムを使えば数十万、数百万ものパターンを瞬時に試すことができてしまうため、文字の種類や桁数が少ないほど突破されやすくなります。自分の名前やサイト名、生年月日など推測されやすい文字列だけのパスワードも被害を受けやすいです。
何かしらログイン情報を登録する際に、パスワードは「○文字以上にしてください」「英字・数字・記号を含めてください」といった文面を見かけたことがある人は少なくないはず。
簡単なパスワードにしないように促しているのは、こういった攻撃から守るためです。
現在では10桁以上のパスワードが推奨されています。
ログインのテキスト入力以外に、画像認証や「ロボットではありません」認証も追加することで、不正ログインの確率がより下がります。
一定回数続けてログインに失敗した場合、アカウントをロックするように設定しておくのも効果的です。
ログイン情報の入力に認証コードの設定も加えた、2段階認証も効果的です。(ログイン情報を入力すると登録しているメールアドレスや電話番号に認証コードが送られ、それを入力してからログインできるようにするもの)
リスト攻撃(パスワードリスト型攻撃)
リスト攻撃は何かしらの方法で入手した顧客データやパスワードリストを順番に入力してログインしようとする攻撃です。
別のサービスで同じログイン情報を使い回している人も少なくないためこの攻撃があるのでしょう。思い当たる人もいるのではないでしょうか。
もし利用しているサービスで情報の流出があった場合、別のサービスでも同じIDやパスワードにしていると被害を受ける確率も高くなります。
攻撃者は手動でログイン情報を入力するのではなく、ツールを使って連続してログインしようとします。ブルートフォースアタックと同様、画像認証や2段階認証、同じIPからたくさんのログインの失敗を検知したときにブロックするようにしておくのも対策の一つです。
また個人として同じログイン情報を使わないようにすることも対策となるので、もしユーザーにログインしてもらうサイトの場合は、その旨を伝えることも運営者としてできることかなと思います。
【参考】リスト型攻撃とは?その影響と対策 | WebセキュリティのEGセキュアソリューションズ
SQLインジェクション
データベースへの操作に使用する言語の一つにSQLというものがあります。このSQLを使ってデータベースにある情報を抜き取ったり、サイトを改ざんしたり、ウィルスに感染させたりとさまざまなことができてしまうのがSQLインジェクションです。
例えば商品がデータベースに登録されているECサイトでTシャツを探すとします。「Tシャツ」をリクエストするとデータベースからその商品を検索してWebサイトに表示してくれます。
この検索のように「そのTシャツを買った人の情報」という内容をSQLで命令されると、データベースにある購入した人の情報が抜き取られる可能性があります。
もちろんしっかり対策をしていれば大丈夫なのですが、何も対策をしていなかったり脆弱性があるとこの可能性もあるということです。
【参考】SQLインジェクションとは?仕組み・被害事例・対策をわかりやすく解説 | クラウド型WAF『攻撃遮断くん』
クロスサイトスクリプティング(XSS)
「クロスサイトスクリプティング」は悪意あるプログラム(スクリプト)を埋め込む攻撃です。これはサーバーにログインせずにページの見た目や動作を変えることができてしまいます。
問い合わせフォームや掲示板のように、ユーザーがサイト上で入力 → データベースにその内容を送信する仕組みのものに埋め込まれやすいです。
スクリプトによって罠となるリンクを貼り、自動的に個人情報が入手できるようなサイトへジャンプさせるようなものもあります。
対策として、プログラムとして認識される文字列を変換するようにする(サニタイズやエスケープ処理)、入力の制限をかけるといったことがあげられます。
【参考】クロスサイトスクリプティング(XSS)とは?仕組みや対策、おすすめ製品をご紹介
その他
他にもいくつか攻撃パターンメモです。
ガンブラー攻撃 | Webサイトが改ざんされ、マルウェアが埋め込まれる攻撃。 Webサイトを閲覧するとマルウェアに感染してしまうため、サイトの管理者は被害者でもあり加害者にもなり得ます。 |
クロスサイトリクエストフォージェリ(CSRF) | Webアプリケーションの脆弱性をついて不正アクセスするもの。 |
セキュリティの名称も知っておこう
攻撃パターンから守るためのセキュリティもいくつか記しておきます。サーバーやセキュリティシステムを導入する際や調べるときによく聞く名称だと思います。
サイト自体のセキュリティ対策も必須ですが、サーバーもセキュリティ対策がしっかり行われているものを選んだ方が安心です。
各セキュリティシステムが何をするものなのか知っておくと、設定するべきかどうか選びやすいと思います。
SSL
SSLはデータ送信の仕組みのことです。情報を送るときに第三者に覗かれないようにするためのセキュリティで、これはもはやWebサイトには必須のものです。
レンタルサーバーでほぼ設定できるはず。新規サイトはもちろんもしまだSSLの導入をしていない場合は導入しましょう。
ファイアウォール
インターネットを経由して、サーバーやPCに不正に侵入してくるものをブロックします。
IPS(Intrusion Prevention System)
不正な通信を検知して侵入を防ぐシステムを指します。
OSやミドルウェアに対する攻撃に特化し、不正な通信と通常の通信を見分けることができるそうです。
WAF(Web Application Firewall)
WAFは、Webアプリケーションの脆弱性に対する攻撃から保護するセキュリティ対策の一つです。
SQLインジェクションやクロスサイトスクリプティングなど、他のセキュリティで防ぐことが難しい攻撃パターンの防御にWAF導入が推奨されています。
WAFでは防げない攻撃もあるので、複数のセキュリティと組み合わせることでより堅牢にしていくことが大切です。
WordPressなどのオープンソースはセキュリティ対策必須
オープンソースとは公にそのシステムのプログラムが公開されていることです。
誰でも無料で使用できてカスタマイズしやすく使いやすいのですが、プログラムの内容が分かるため、不具合や欠陥、脆弱性部分を見抜いて悪用する人たちもいます。
攻撃を受けると、自分では気がつかないうちに何らかの操作をしたときにサイトウィルスに感染するような仕組みを導入されてしまったり、情報を抜き取られてしまうことも。
誰でも手軽に利用できるオープンソースのシステムを使用する際は、メリットも危険も含んでいることは肝に銘じておきたいところです。
WordPressは日本に限らず世界中でシェアの高いオープンソースCMSです。世界中の悪意ある人がこのシステムの脆弱性を狙っていると考えると、利用するときにはセキュリティ対策は必須です。
セキュリティ対策の一つとして、WordPress本体やプラグインの更新もしっかりやっていきましょう。プログラムに脆弱性が発見された際には修正してバージョンアップしたものを配布しています。最新版にアップデートすることで被害を抑えることにもつながります。
WordPressでは攻撃から守ってくれるプラグインも多く作られています。私は SiteGuard WP Plugin をよく使っています。設定も難しいものではないので、導入しておくと安心です。
カテゴリー : WEB全般