三大脆弱性の一つ消滅の危機!? いやその前に、三大脆弱性って一体何?
こんにちは。ブログ担当のもちゃじです。なんと三大脆弱性の一角が崩れようとしている!?との情報を耳にしました。え、脆弱性の一つが無くなる?無くなる!?おお、それはいかん。(いや、良いんです!)
ここのところセキュリティ診断を勉強していたせいか、脆弱性についてもっと知りたいと思いだし、じっくり勉強するつもりでいたのです。いやそんな悠長なこといってられないじゃないかー。脆弱性界に下克上が起こらんとする今、ならばその前に現役で三大を張っているモノどもについて書いておかねば!
ということで、今回は三大脆弱性について書きます。
三大脆弱性って何がある?
三大脆弱性
- SQLインジェクション
- クロスサイトスクリプティング(XSS)
- クロスサイトリクエストフォージェリ(CSRF)
言えます?
最初、もちゃじは言えないし書けなかったです。セキュリティワードムズカシイアル。とはいえ、Webセキュリティを語る上ではしっかりと押さえておかなければならない三つ。
カタカナ、マケナイ。
ところで、三大○○というのは三つの中で順位がつけられないものだと思っていました。ロックフォール、ゴルゴンゾーラ、スティルトンも、お互い俺が1番と思いながらの三つ巴ですし(三大ブルーチーズの話です)。
でも三大脆弱性はその一角が崩れそうなんですって。下克上か!?失脚か!?「君たちは今日から三大だ!」って誰が決めているんでしょう。ご存じの方いらしたら教えてください。
では順番に見ていきましょう。
1. データベースを不正に操作、SQLインジェクション
Webアプリケーションのデータベースを不正に操作して攻撃されてしまう状態になっていること(脆弱性)、またはそれを利用した攻撃です。
「SQL」はデータベースを操作するための「言語」、「SQL文」はデータベースへの「命令」のこと。データベースにデータの取り出しを要求したり編集操作を行ったりするときに使います。同じような命令が多いので、あらかじめ穴埋め形式の命令文のひな型(SQL文)を作っておく。ユーザーが値を入力すると穴埋めのところに反映され、命令文が完成。データベースは命令文に従い該当の情報を取り出してくれて、画面に表示されます。これが通常。
ところが、その穴埋め部分に想定していない悪意のある情報が入力されても、SQL文が生成・実行されてしまいます。それによりプログラムによってはデータの改ざんや情報漏えい、システムの停止などにもつながる恐れがあるのです。
あな恐ろしや。このように、不正なSQL文を注入(インジェクション)して攻撃できてしまう状態(脆弱性)のことや、それを利用した攻撃をSQLインジェクションといいます。
Webセキュリティ勉強中のもちゃじは、なんか単純な攻撃だなーと思ってしまうのですが、企業の大小問わず被害にあっているところをみるに、Webサイト開発者のセキュリティ知識に委ねられるところを突いてくるのか!と納得しました。
より詳しい内容は、こちらの記事をご覧ください。
2. 複数のサイトをまたいで攻撃、クロスサイトスクリプティング
次はクロスサイトスクリプティング(XSS)です。
ユーザーがWebページにアクセスすることで不正なスクリプトが実行されてしまう脆弱性のこと、またはそれを利用した攻撃。HTMLを含んだ内容を投稿できる掲示板などで発生するもよう。
例えば不特定多数のユーザーIDとPW情報を入手しようとした場合
掲示板を運営している企業は、被害に遭っている(罠スクリプトが仕込まれている)ことに気付かない
サイトをまたいで(クロスサイト)、スクリプトを仕込むからクロスサイトスクリプティング。このやり方でたくさんの人の暗証番号なども入手できてしまうでしょうし、いろいろな悪さが考えられますね。
1番恐ろしいと感じたのは、被害にあっている人が気付かないという点です。スクリプトを仕込まれたのが掲示板のほんの一部分で、他は本物の掲示板なら、それに気付かない。ある一部分が乗っ取られているともいえるのですが、気付かない。げに恐ろしきはXSS。
ただ、少し被害の実現度は低いのかな、とも思います。スクリプトが仕込まれたサイトをクリックさせなければならない分、クリックさせるための信用度が必要(怪しいリンクはクリックしない)ですし、仕込むスクリプトも物理的なスペースの問題で大きなものは仕込めませんし。
比較的簡単な攻撃なのかなと思うものの、足がつきづらいこともあり、こちらも三大脆弱性の一つとされるようです。
より詳しい内容は、こちらの記事をご覧ください。
3. 他人になりすまして攻撃、クロスサイトリクエストフォージェリ
最後はクロスサイトリクエストフォージェリ(CSRF)。
ユーザーにリンクを踏ませて不正なリクエストを送信させ、意図しない処理が実行されてしまう脆弱性のこと、またはそれを利用した攻撃。あれ、クロスサイトスクリプティングと似ているような?
いえ、似ていますが違います。こちらはクッキーの仕組みを悪用したものです。
例えば
→もちゃじが知らない間に推し批判の記事がアップされてしまう、という流れ
なぜそんなことができてしまうかというと、推しサイトのクッキーはブラウザに保存されているので、そのブラウザで罠サイトを開くと、ブラウザが良かれと思って罠サイトのリクエストでも推しサイトクッキーをつけてしまうからなのです。
これ、ECサイトだったら勝手に商品購入されたりしますよね。生恐ろしや……。
より詳しい内容は、こちらの記事をご覧ください。
どれが消滅するって?
見てきた脆弱性、全て恐ろしいですね。さすが三大を名乗るだけのことはあります。一体どの脆弱性が消滅するのでしょうか。
それは、クロスサイトリクエストフォージェリです!
クッキー、度量が大きいですよね。推しのサイトで発行されたのに、罠サイトから推しサイトへのリクエストにも使えてしまうなんて。でもそれも今は昔。
今は、推しサイトで発行された推し印クッキーは、推しサイトから送信されるリクエストにしか使えません。罠サイトから推しサイトへのリクエストには使えないんです。
ただ、そうなったのは最近の話なのだそう。サイトを提携しているときは、Aサイトで発行されたクッキーを、BサイトからAサイトへのリクエストにもつけてほしいという、サイト開発者側からの要望もあったとか。2020年に猶予を設けて段階的に禁止するようにして、今はほぼ使えなくなりました。
なので、クッキー問題が解消されんとする今、クロスサイトリクエストフォージェリの脆弱性は消滅に向かっているんです。
次にのし上がってきそうな候補は?
ない!
いや脆弱性の種類はたくさんあるし、1日100万種類以上のマルウェアが新たに生産されているという話もあるし、どれも侮ってはならないものだと思うのですが、三大の一角を任せるほどのものは今のところ見あたらないそうです。(2022年3月現在、ソース 先輩)
ただし、世界情勢が動くとき、ハッカーが暗躍するのもまた事実。サイバー攻撃への警戒は怠ることができないのと同時に、セキュリティ知識と意識を持つことがやはり大事なのだと襟を正す昨今です。知らないだけで被害にあっているかもしれませんしね。
まとめ
今回は三大脆弱性の一つが消滅するかもしれないということで、それぞれの脆弱性の概要を書きました。
- SQLインジェクション-データベースを不正に操作
- クロスサイトスクリプティング(XSS)-複数のサイトをまたいで攻撃
- クロスサイトリクエストフォージェリ(CSRF)-他人になりすまして攻撃
そして、クロスサイトリクエストフォージェリ(CSRF)がクッキーの改善により消滅しようとしていることが分かりました。CSRFにとって代わるような脆弱性も今のところないようですし、今のところ下克上は起きていないようです。CSRFが失脚していっただけのことです。
今回出てきた用語
スクリプト | JavaScript、PHP、Perlなどで作ったプログラム。ソースコードを書いて、すぐに実行できるプログラム |
クッキー | Webサイトを利用した際に保存されるユーザーのアクセス情報。ユーザーごとに割り振られた識別ID、氏名、サイト訪問日時などの情報がブラウザに保存され、次にそのサイトにアクセスした時に、クッキーが同一ユーザーであることを識別します。それによりサイト利用がスムーズに行われる |
あなたのWebサイトも、脅威に対する「安心」を手に入れませんか?
ふう、書き終えた
ところで、人間には六つの脆弱性があるそうです(byロバート・チャルディーニ)。
権威、好意、希少性、あと三つ今パッと出てきませんが、それらに対してどうも弱い。ふむふむ。面白いですね。はい、ございますよ、脆弱性沼がここに。
ライター/もちゃじ
IT業界に縁なく秘書畑をさすらい、前職はインドで社長秘書。ほぼ日本語とパッションのみで乗り切ったずうずうしさはスキルの一つか。完全なインドア派ながらたまにふらりと旅に出る。行き場のない母性を持て余し、友人の犬を溺愛するもほえられる。体が硬く、インドでヨガティーチャーに笑われたことに深く傷つく一面も。
ITド素人の私がWebセキュリティについて学び、レベルアップしていく(予定です)様子をお届けします。学びを発信することで、少しでもWebセキュリティに関する「難しそう」というイメージが下がり、苦手意識のある方たちに届いたらうれしいです。