第14章. サービス拒否
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
おそらく 最もよく使われるタイプの攻撃の一つであり、最も広く知られているのが、分散型サービス拒否(DDoS)攻撃である。この攻撃はサービス拒否(DoS)の一種で、大規模なネットワーク上のデバイスがサーバにリクエストを殺到させ、サーバをスローダウンさせたり、正当なユーザが使用できないようにしたりする。
DoS攻撃には様々な形態があり、数千台以上のデバイスが連携するよく知られた分散型から、誤った正規表現実装の結果、文字列の検証に長時間を要し、その結果、1人のユーザに影響を与えるコードレベルのDoSまである。また、DoS攻撃は、アクティブなサーバを機能停止に追い込むものから、ユーザのWebページの読み込みを通常よりわずかに遅くしたり、ビデオをバッファの途中で一時停止させたりするものまで、その深刻度はさまざまである。
このため、DoS攻撃(特に、それほど深刻でないもの)のテストは非常に難しい。ほとんどのバグバウンティプログラムは、バウンティハンターが通常のアプリケーションの使用を妨げることを防ぐため、DoSの提出を全面的に禁止している。
この章が終わる頃には、あなたは多種多様な一般的な DoS 攻撃、いくつかの高度な DoS 攻撃の形態、そしてすべての DoS 攻撃の背後に共有されている概念について理解できるだろう。この知識があれば、独自の DoS 攻撃を開発することで、ウェブアプリケーションを攻撃できるようになる。
警告
DoS脆弱性は、アプリケーションを介した一般ユーザの利用を妨害するため、実際のユーザがサービス中断を経験しないローカルな開発環境でDoS脆弱性をテストすることが最も効果的である。
少数の例外を除いて、DoS 攻撃は通常アプリケーションに恒久的な損害を与えませんが、正当なユーザにとってのアプリ ケーションのユーザビリティを妨害します。特定の DoS 攻撃によっては、ユーザの体験を低下させている DoS シンクを発見することが非常に困難な場合がある。
正規表現DoS
Regex DoS ベースの脆弱性 は、今日のウェブ・アプリケーションで最も一般的な DoS の形態である。一般的に言って、これらの脆弱性のリスクは非常に軽微なものから中程度のものまであり、多くの場合、 正規表現パーサの場所に依存する。
一歩下がって、正規表現はしばしばウェブアプリケーションでフォームフィールドを検証し、ユーザがサーバが期待するテキストを入力していることを確認するために使われる。多くの場合これは、アプリケーションが受け入れることを選択した文字だけをユーザがパスワードフィールドに入力することを許可したり、UIに表示されたときにコメント全体がきれいに表示されるように、最大文字数だけをコメントに入れたりすることを意味する。
正規表現はもともと、形式言語理論を研究する数学者が、文字列のセットや部分集合を非常にコンパクトに定義するために考案したものだ。今日、ウェブ上のほとんどすべてのプログラミング言語には、独自の正規表現パーサーが含まれており、ブラウザのJavaScriptも例外ではない。
JavaScriptでは、正規表現は通常2つの方法で定義される:
constmyregex=/username/;// literal definition
constmyregex=newregexp(
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access