バグと脆弱性って何が違うの? 脆弱性診断の結果判定で迷ったときの考え方 若手診断員の奮闘記③

若手診断員の奮闘記シリーズは、こちらからご覧いただけます。
- たかが指摘、されど指摘……この脆弱性はどの指摘?
- 初めてのオンサイト診断! 行ってみて分かったリモート診断との違い
- バグと脆弱性って何が違うの? 脆弱性診断の結果判定で迷ったときの考え方 ←本記事
あれ! 2025年始まってる?! 前回の更新はポッキーの日……。ありがたいことに繁忙期に突入しておりまして、てんやわんやしておりましたら、2024年が終わってました……。今回は、この「てんやわんや時期」に遭遇した事象を記事にしようと思います!
まずはバグと脆弱性を正しく理解する
まずは年末年始のぽあっとした頭を診断員モードに呼び戻すために、脆弱性ってそもそもなんだっけ?ということから始めたいと思います。お付き合いください。
「脆弱性」という言葉は、総務省が運営する「国民のためのサイバーセキュリティサイト」では、こう定義されています。
脆弱性(ぜいじゃくせい)とは、コンピュータのOSやソフトウェアにおいて、プログラムの不具合や設計上のミスが原因となって発生するサイバーセキュリティ上の欠陥のことです。脆弱性は、セキュリティホールとも呼ばれます。
脆弱性とは?|国民のためのサイバーセキュリティサイト
https://www.soumu.go.jp/main_sosiki/cybersecurity/kokumin/basic/risk/11/
う~む、なるほど。
じゃあバグと何が違うの?という風に思われる方もいらっしゃると思います。私もその一人でした。厳密にいうと違いは存在せず、バグの種類の中に脆弱性が存在するイメージです。上記引用の「コンピュータのOSやソフトウェアにおいて、プログラムの不具合や設計上のミス」はバグにあたると思うのですが、その中でも、セキュリティ的な被害が起こりうる欠陥が脆弱性というわけです!
私たちABURIDA®での「脆弱性」の定義としては、主に診断させていただいているWebアプリケーションのセキュリティ的な欠陥のことを指しています。
まとめると、バグと脆弱性は別物ではなく、バグの種類として脆弱性がありますよ~というお話です。「悪用可能なバグ(欠陥)」だと考えると、開発者の方は分かりやすいかもしれません。バグは人間でいう名字、脆弱性は名前みたいなイメージです! 何となくご理解いただけたでしょうか??
あーちゃん一人での診断デビュー!
脆弱性の定義を再確認したところで、本題に入りたいと思います! 前置きが長くなりすみません(笑)。
年末、とあるサイトのリニューアルに伴い、ABURIDA®に脆弱性診断の依頼がきたため、私が担当させていただくことになりました! お仕事を任せていただけるなんてうれしい限り! 初めて一人でベンダーさんとのやり取りをさせていただいたので、このことについてはまた別で記事にさせてください~!
さて、話がそれてしまいましたが、この案件でこんなことがありました。
ABURIDA®では、ツールスキャンによる診断と、診断員自ら攻撃を仕掛けて脆弱性の有無を確認する手作業とのハイブリッドで脆弱性診断を行っています。
ツールスキャンは、一つのリクエスト内に存在するパラメータに対して、さまざまな攻撃値を自動で送信してくれる独自ツールを使用し、SQLインジェクションやクロスサイトスクリプティングなどのある程度攻撃値が決まっている脆弱性の攻撃が成功するかどうかを確認しています。こちらの記事が参考になると思うので、気になった方は併せて読んでみてください~!
想定外のデータで機能ダウン! これは脆弱性? それともバグ?
一度のスキャンで短時間の間に平均して500〜10000くらいの通信を行うのですが、その時にサイトに影響が出ることもあります。このように、大量の文字列を送信してサイトが動かなくなってしまったり、何かしら不正な値を送信してサイトの機能が利用できなくなったりする事象を、ABURIDA®では「サービス拒否」という脆弱性として指摘しています。この脆弱性が存在することで、運営管理者だけでなく、サイトの利用者に対しても普段通りの利用ができないといった被害が広がり、最終的にはサイトやサービス、運営会社の信用問題に関わってくる脆弱性です。
実は、今回の診断をしているときにも似たような現象がおきまして……。ツールスキャンを行っている時間帯にサイト側が想定していない不整合なデータが作成されてしまったらしく、一部機能が正常に利用できなくなってしまいました。
え、これってサービス拒否かな……? それともバグ……? どっちだろう??
ここで考えたいのが、この現象はセキュリティ的に脆弱なのか否かです。非常にグレーなケースでした。
頭を抱えて2時間くらい考えましたが、これも自分では解決できなかったので、先輩診断員に助けを求めました……!
判定の基準は「シナリオが成立するか」にあり
まず、ゴールとしては、この現象を再現するにあたって、シナリオが成立するのかどうかを考えます。今回の場合だと、データを追加するタイミングで何かしらの不正な値をどこかのパラメータに追加する必要があります。また、影響範囲はその作成されたデータのみ、サイトが会員制ということも指摘するにあたっての判断材料になりました。
こう考えていくと、今回の場合は攻撃者の自爆しかシナリオが成立しないことが分かったため、今回は指摘なし!という結論に至りました。つまり、今回の現象は「脆弱ではないバグ」に振り分けられたということです! また、ツールの攻撃ログを頑張って追跡しても、どこでその現象が起きたか、トリガーが何だったのかが特定できず、指摘しようにもできなかったということもありました。うう、悔しい……。
診断項目はなんと70項目以上! ABURIDA®の脆弱性診断
こんなことを日々繰り広げながら、「これは指摘!」「これは指摘しない!」などを行っている診断員たちなのですが、一つ一つどの脆弱性に該当するのかを判定する項目はなんと70項目以上もあります! 一つのリクエストに対してこの数……。たくさんあったら大変だし、ミスとか出てくるのでは……?と診断の世界に飛び込んだとき思っておりましたが、そこでもハイブリッドの強みが生きてきます! ツールを活用することでヒューマンエラーを減らし、人間だと何十時間とかかる作業を、(サイトの仕様によりますが)何分の一もかからずに済ませてくれるのです! すごい!!
これらの項目は、さまざまな仕様のサイトに柔軟に合わせるために存在し、経産省のECサイト構築・運用セキュリティガイドラインに準拠したものになっています。ツール診断だけでは洗い出せない脆弱性まで診断員が丁寧に診させていただくので、より信頼性の高いサイト作りのお手伝いになること間違いなしです!
診断項目に関しては、こちらの記事も参考になると思いますので、気になる方は併せて読んでみてください~!
まとめ
いかがでしたでしょうか……?
今回は私の年初め準備運動に読者の皆さまをお付き合いさせてしまったわけなのですが(笑)。そもそもの脆弱性のことからABURIDA®の診断項目まで、へぇ~って思っていただけたら、それだけでうれしい限りです!
また、今回はあまりメジャーではない脆弱性についても取り上げてみました。振り分けが難しい項目ですが、とってもお勉強になったなあと思います。困難は成長のチャンスですね!
こんな感じで、2025年も私あーちゃん成長していけるよう、精進してまいろうと思います! 本年もどうぞ、よろしくお願いいたします!!

ライター/あーちゃん
新卒で株式会社信興テクノミストに入社し、脆弱性診断の世界に飛び込んでみた普通の20代。診断員歴は、半年とちょっと(2024年8月現在)。好きな脆弱性は「権限周り」(診断員はよく自己紹介に好きな脆弱性を言いがちですが、脆弱性って良いものではないので、「好きな」という表現は違うよね??と毎回思います。でも書いておきます)。
趣味は、おいしいご飯を食べること、アイドルを眺めること、観劇。日々の趣味を楽しむために働いております! 生きがいです!! 先輩方の背中を追いかけながら、日々脆弱性と向き合っております! まだまだ駆け出しですが、世の中の方々が安心してWebアプリケーションを利用できるよう、日々成長中です!