並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 30 件 / 30件

新着順 人気順

redosの検索結果1 - 30 件 / 30件

  • 正規表現の脆弱性 (ReDoS) を JavaScript で学ぶ

    先日、このようなツイートを書いたところ、かなりの反響がありました。 JavaScript の正規表現の脆弱性の例でいうと、例えば /\s+$/ は脆弱性があると言える console.time(); /\s+$/.test(" ".repeat(65536) + "a"); console.timeEnd(); 結構時間がかかるのがわかる。でも /\s+$/ を見て「これは危険だな」と理解出来る人はそんなにいない。JavaScript に限らないけれど。 — Takuo Kihira (@tkihira) February 17, 2022 これは一般に ReDoS (Regular expression Denial of Service) と呼ばれる脆弱性です。正確に理解するのが難しい脆弱性なので、少し解説してみたいと思います。 結論 長い記事になるので、最初に「とりあえずこれだけ知っ

    • 正規表現でのメールアドレスチェックは見直すべき – ReDoS

      (Last Updated On: 2018年8月13日)前のエントリでStackExchangeがReDoSで攻撃されサイトがダウンした問題を紹介しました。少しだけ掘り下げて見たところ、正規表現だけでメールアドレスをチェックしている場合、壊滅的なReDoS(十分短い文字列で指数関数的に実行時間が増加する)が可能なことが判りました。 結論を書くと、正規表現でのメールアドレスチェックは見直すべき、です。(特にRubyユーザー) 追記:影響範囲はメールアドレスチェックに限らないので、正規表現チェックは全体的に見直さないと、どこが脆弱なのか判りません。見直してチェックしたとしても、それが完全であったと保証することは困難です。ネット検索して直ぐに見つかった検索パターンは非常に脆弱であったこと、メールアドレスのマッチパターンは脆弱になりやすい繰り返しの繰り返しが含まれること、これらがあったのでタイト

        正規表現でのメールアドレスチェックは見直すべき – ReDoS
      • ReDoS 検出の最先端 recheck の紹介 / State of the Art of ReDoS Detection

        YAPC::Japan::Online 2022 での発表資料です。 recheck: https://makenowjust-labs.github.io/recheck

          ReDoS 検出の最先端 recheck の紹介 / State of the Art of ReDoS Detection
        • その正規表現の書き方で大丈夫? ReDoS 攻撃の怖さと対策方法 | yamory Blog

          ReDoS は、脆弱な正規表現を利用することで起こる DoS のひとつです。正規表現の記述は難しく、誤った記述をしてしまうと ReDoS の影響を受ける恐れがあります。本記事では ReDoS の概要から対策方法まで解説していきます。

            その正規表現の書き方で大丈夫? ReDoS 攻撃の怖さと対策方法 | yamory Blog
          • 20日目: 正規表現が ReDoS 脆弱になる 3 つの経験則

            はじめに 皆さんこんにちは.3回生のらん(@hoshina350)です. 文字列マッチングに便利な正規表現ですが,テキトーに書くと脆弱になり得るという情報を耳にしてから色々と原因や対策を調べていました. しかし,多くの記事で紹介されていた対策方法は,「独自の正規表現を使用しないー」とか「 * や + などの繰り返し表現はなるべく使わないー」とかいう なんともふわっとしたものでした.これでは「いやぁ確かにそうなんかもしれんけど…そうゆう訳にはいかんやんか…」と納得できません. つまり,「本質的に何が問題」で,「具体的にどんな特徴のある正規表現が脆弱になり得るのか」を知りたい訳です. そこで,様々な文献を調査してみました.本記事では調査して溜まった知見を紹介していきます. 本記事は, Purdue大学のJames Davis教授による “The Regular Expression Denia

              20日目: 正規表現が ReDoS 脆弱になる 3 つの経験則
            • 正規表現の落とし穴(ReDoS - Regular Expressions DoS) - Qiita

              過去にWordPressを題材にしていろいろな脆弱性のケーススタディを取り上げました。 Webアプリケーションの脆弱性ケーススタディ(WordPress編) Webアプリケーションの脆弱性ケーススタディ(WordPress編その2) 今回は、ReDoS(Regular Expressions DoS)について取り上げてみたいと思います。ReDoSとはOWASPによると以下のように記載されています。 The Regular expression Denial of Service (ReDoS) is a Denial of Service attack, that exploits the fact that most Regular Expression implementations may reach extreme situations that cause them to wor

                正規表現の落とし穴(ReDoS - Regular Expressions DoS) - Qiita
              • アプリからファイアウォールにまで使われる正規表現を標的にした「ReDoS攻撃」とは?

                サーバーやネットワークに意図的に負荷をかけ、サービス障害を引き起こすDoS攻撃の中でも、正規表現のパターン処理の脆弱性を利用した攻撃をReDoS攻撃と呼び、StackOverflowやCloudflareもその標的となったことがあります。パデュー大学の電気・コンピューター工学の教授であるジェームズ・デイビス氏が、ReDoS攻撃の原因となる典型的な正規表現とその対策について語っています。 The Regular Expression Denial of Service (ReDoS) cheat-sheet https://levelup.gitconnected.com/the-regular-expression-denial-of-service-redos-cheat-sheet-a78d0ed7d865 正規表現とは、いくつかの文字列をひとつの文字列でパターンとして表現する方法のこ

                  アプリからファイアウォールにまで使われる正規表現を標的にした「ReDoS攻撃」とは?
                • 正規表現を使ったDoS – ReDoS

                  (Last Updated On: 2018年8月8日)いつかは忘れるくらい前に正規表現のアルゴリズム自体を利用してDoS攻撃を行うReDoSが発表されていました。今まであまり気にしていなかったのですが、検索しても日本語のページが出てこないようでした。詳しく知るためのリンクなどを紹介します。 少し検索して出て来た日本語ページはHPのページでしたが、たまたまインデックスされていたページがヒットしたようでした。また記載されている情報は不十分でした。(ページ下のコピーライトからFortifyの情報のようです) 日本語のページで良いものは無いようなので、ReDoSの英語ページ/PDFを紹介します。 Wikipedia OWASP CHECKMARX  2015 (PDF) CHECKMARX 2009 (PDF) 3つ目のCHECKMARXのPDFは解りやすいと思います。OWASPのページはCHE

                    正規表現を使ったDoS – ReDoS
                  • 第2回 Pythonの脆弱性 ~ReDOS~ | gihyo.jp

                    では、なぜこのようなことが起きてしまうのでしょうか。具体的な脆弱性の解説に移る前に、まずはReDoSのしくみについて説明します。 ReDoSのしくみ ReDosの脆弱性を理解するためには、そもそも正規表現によるマッチングを行う処理系である、正規表現エンジンのしくみについて知る必要があります。 正規表現エンジンの概要 正規表現エンジンとは、簡単に言えば「ユーザーから受け取った文字列(入力文字列)が、正規表現で表される文字列と合致するか否か」を判定するプログラムです。そしてこのプログラムのキモとなる「正規表現文字列の解釈」と「入力文字列が合致するか否かを判定する部分」は、「⁠有限オートマトン」を利用して実現しています。 具体的には、正規表現の文字列を有限オートマトンに変換後、入力文字列を有限オートマトンの入力として与え、文字列中に正規表現にマッチする部分があるか否かを、有限オートマトンの状態を

                      第2回 Pythonの脆弱性 ~ReDOS~ | gihyo.jp
                    • ReDoSの回避

                      (Last Updated On: 2018年8月8日)正規表現のアルゴリズムを攻撃するDoS攻撃のReDoSを可能な限り回避する方法を考えてみます。 追記: 破滅的なReDoSは非常に短い検索対象文字列でDoS攻撃が可能でした。念の為と思い、このエントリでは正規表現検索の対象文字列を短くする対策を紹介していましたが、この種の対策が効果があるケースがありました。 ReDoSに脆弱になる典型的な正規表現は以下のような正規表現です。 Evil Regex pattern examples (a+)+ ([a-zA-Z]+)* (a|aa)+ (a|a?)+ (.*a){x} | for x > 10 Payload: “aaaaaaaaaaaaaaaaaaX” 出典:CHECKMARX  2015 (PDF) マッチパターンが繰り返される正規表現が問題になります。 メールアドレスにマッチする正

                        ReDoSの回避
                      • StackExchangeが攻撃されたReDoSの効果

                        (Last Updated On: 2018年8月13日)StackExchangeがReDoS攻撃に遭いサイトがダウンした原因をStackExchangeのブログで紹介していました。 PHPへの影響があるか試してみました。結論を書くと、脆弱な正規表現を使っていて攻撃者が入力をコントロールできる場合、簡単に攻撃できるようです。PCRE、Onigurumaの両方で試してみましたがどちらも脆弱でした。 参考:正規表現でのメールアドレスチェックは見直すべき – ReDoS Onigurumaでは破滅的なReDoSが可能です。以前からメールアドレスのチェックに利用する正規表現には注意喚起していましが、どの程度浸透していたのだろうか? ReDoSとは ReDoSはこのブログでも紹介しています。正規表現のアルゴリズムを利用してDoS攻撃する攻撃です。 参考: 正規表現を使ったDoS – ReDoS R

                          StackExchangeが攻撃されたReDoSの効果
                        • プログラム中の文字列チェック機能の脆弱性を自動修正する技術を世界に先駆けて実現~専門知識をもたない開発者でもReDoS脆弱性の修正が容易に~ | ニュースリリース | NTT

                          日本電信電話株式会社(本社:東京都千代田区、代表取締役社長:澤田 純、以下「NTT」)と学校法人早稲田大学(本部:東京都新宿区 理事長:田中愛治 以下、「早稲田大学」)は、文字列のチェック機能の処理時間を長期化させコンピュータの負荷を大幅に増大させる攻撃を引き起こす脆弱性に対する実用的な自動修正技術を世界に先駆けて実現いたしました。文字列のパターンマッチに用いられる正規表現(※1)とは、特定の文字の並び(文字列)をルールに基づき簡略化して表現する方法で、Webサービスなどにおいてユーザの入力値が期待したものであるかの検証など幅広い場面で利用されています。難解な正規表現の仕組みやルールを深く理解し、検証すべき文字列を厳密に定義できていないと脆弱性になってしまうため、近年グローバルで大きな脅威となっています。この技術によって、専門知識をもたない開発者でもこうした正規表現の脆弱性の修正が可能とな

                            プログラム中の文字列チェック機能の脆弱性を自動修正する技術を世界に先駆けて実現~専門知識をもたない開発者でもReDoS脆弱性の修正が容易に~ | ニュースリリース | NTT
                          • ReDoS - Wikipedia

                            A regular expression denial of service (ReDoS)[1] is an algorithmic complexity attack that produces a denial-of-service by providing a regular expression and/or an input that takes a long time to evaluate. The attack exploits the fact that many[2] regular expression implementations have super-linear worst-case complexity; on certain regex-input pairs, the time taken can grow polynomially or expone

                            • 「Ruby 3.2.0」が正式リリース ~WebAssembly/WASIをサポート、YJITは試験扱いを卒業/正規表現エンジンはReDoS攻撃への耐性を高める

                                「Ruby 3.2.0」が正式リリース ~WebAssembly/WASIをサポート、YJITは試験扱いを卒業/正規表現エンジンはReDoS攻撃への耐性を高める
                              • ReDoSから学ぶ,正規表現の脆弱性について - Qiita

                                この記事は DeNA 21 新卒 Advent Calendar 2020 の24日目の記事です.メリークリスマス! はじめに 今回は,ReDoS (Regular Expressions DoS)と呼ばれる,正規表現 (Regular Expression) のパターン処理の脆弱性を利用した攻撃 について説明します. 普段何気なく使う正規表現ですが,意外なところに落とし穴があります. この記事を通して,正規表現の扱い方を考えるきっかけになればいいなと思います. ※ もちろん脆弱性を利用した攻撃をしてはダメです. ReDoS攻撃とは ReDoS攻撃は,正規表現のパターン評価に時間を要する文字列を入力することで,サーバーの計算リソースを奪う攻撃です. まずはその攻撃の具体例を紹介します. いま,/^(([a-zA-Z0-9])+)+$/という正規表現1を考え,その正規表現に対して幾つか文字列

                                  ReDoSから学ぶ,正規表現の脆弱性について - Qiita
                                • Regular expression Denial of Service - ReDoS | OWASP Foundation

                                  This website uses cookies to analyze our traffic and only share that information with our analytics partners. Accept Introduction The Regular expression Denial of Service (ReDoS) is a Denial of Service attack, that exploits the fact that most Regular Expression implementations may reach extreme situations that cause them to work very slowly (exponentially related to input size). An attacker can th

                                  • 第74回 正規表現の脆弱性「ReDoS」徹底解説 ~原理と対策から、Perlでの最適化まで(1) | gihyo.jp

                                    Perl Hackers Hub 第74回正規表現の脆弱性「ReDoS」徹底解説 ~原理と対策から、Perlでの最適化まで(1) 本連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーは藤浪大弥さんで、テーマは「ReDoS徹底解説」(⁠1)です。 ReDoS解説にあたって─⁠─ 本稿の構成など 正規表現に関わる脆弱性として「ReDoS」があります。本稿の前半では、ReDoSとはどんな脆弱性でなぜ発生するのか理論的な立場から詳細に解説し、対策のためにすることをいくつか紹介します。後半では、ReDoSへの対策あるいはマッチの高速化のための、Perlでの正規表現実装上の工夫を紹介します。 後半で説明しますが、Perlの正規表現実装にはさまざまな工夫があり、標準的な実装とはやや異なる部分があります。Perlを使ってReDoSの説明をすると本質的でない部分が生じてわかりづらく

                                      第74回 正規表現の脆弱性「ReDoS」徹底解説 ~原理と対策から、Perlでの最適化まで(1) | gihyo.jp
                                    • 正規表現でのメールアドレスチェックは見直すべき – ReDoS

                                      (Last Updated On: 2018年8月13日)前のエントリでStackExchangeがReDoSで攻撃されサイトがダウンした問題を紹介しました。少しだけ掘り下げて見たところ、正規表現だけでメールアドレスをチェックしている場合、壊滅的なReDoS(十分短い文字列で指数関数的に実行時間が増加する)が可能なことが判りました。 結論を書くと、正規表現でのメールアドレスチェックは見直すべき、です。(特にRubyユーザー) 追記:影響範囲はメールアドレスチェックに限らないので、正規表現チェックは全体的に見直さないと、どこが脆弱なのか判りません。見直してチェックしたとしても、それが完全であったと保証することは困難です。ネット検索して直ぐに見つかった検索パターンは非常に脆弱であったこと、メールアドレスのマッチパターンは脆弱になりやすい繰り返しの繰り返しが含まれること、これらがあったのでタイト

                                        正規表現でのメールアドレスチェックは見直すべき – ReDoS
                                      • GitHub - makenowjust-labs/recheck: The trustworthy ReDoS checker

                                        You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                                          GitHub - makenowjust-labs/recheck: The trustworthy ReDoS checker
                                        • 週刊Railsウォッチ: RubyのGCコンパクション改修、jemalloc、ReDoSの自動検出修正ほか(20220419後編)|TechRacho by BPS株式会社

                                          週刊Railsウォッチについて 各記事冒頭には🔗でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 お気づきの点がありましたら@hachi8833までメンションをいただければ確認・対応いたします🙏 TechRachoではRubyやRailsなどの最新情報記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また、タグやカテゴリごとにRSSフィードを購読することもできます(例:週刊Railsウォッチタグ) 🔗Ruby 🔗 GCコンパクションの2つのカーソル移動順序を入れ替え PR: Reverse the order of GC compaction cur

                                            週刊Railsウォッチ: RubyのGCコンパクション改修、jemalloc、ReDoSの自動検出修正ほか(20220419後編)|TechRacho by BPS株式会社
                                          • 週刊Railsウォッチ: 書籍『Programming Ruby 3.2 (5th Edition)』、ReDoSチェックサイトほか(20221102後編)|TechRacho by BPS株式会社

                                            こんにちは、hachi8833です。StimulusをStimlusと書いてしまいがちです。 Rubyプログラマあるある間違い 1. DeviseをDeviceと書いてしまう 2. RSpecをRspecと書いてしまう(Sは大文字) あとひとつは? — Junichi Ito (伊藤淳一) (@jnchito) October 28, 2022 週刊Railsウォッチについて 各記事冒頭には🔗でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄 お気づきの点がありましたら@hachi8833までメンションをいただければ確認・対応いたします🙏 TechRachoではRubyやRailsなどの最新情報記事を平日に公開しています。TechRacho記事をい

                                              週刊Railsウォッチ: 書籍『Programming Ruby 3.2 (5th Edition)』、ReDoSチェックサイトほか(20221102後編)|TechRacho by BPS株式会社
                                            • Ruby3.2.0で導入されたReDoS対策の効果を確認

                                              Ruby3.2.0でReDoS対策が入ったということで、2022年と2023年に報告したReDoSの脆弱性で公表されたものについて効果を確認してみました。 [1] [2] [3] [4] [5] Faraday Net::HTTP adapter PoC require 'benchmark' def attack_text(length) text = 'charset=' + "\t" * length + "a" + "\t" * length + "a" /\bcharset=\s*(.+?)\s*(;|$)/.match(text) end Benchmark.bm do |x| x.report { attack_text(10) } x.report { attack_text(100) } x.report { attack_text(1000) } x.report {

                                                Ruby3.2.0で導入されたReDoS対策の効果を確認
                                              • The Regular Expression Denial of Service (ReDoS) cheat-sheet

                                                IntroductionThis post is intended as a “technical two-pager” to summarize a security vulnerability called Regex-based Denial of Service (AKA Regex DoS, ReDoS). There are a variety of write-ups about ReDoS, but I’m not aware of a good one-stop-shop with a higher-level treatment of all aspects of the subject. I have included links at the end to more detailed treatments. I have used headings liberall

                                                  The Regular Expression Denial of Service (ReDoS) cheat-sheet
                                                • ReDoS checker | Devina.io

                                                  Do you like Devina.io? Sharing Devina.io with your friends helps us grow and improve! We'd really appreciate your support in spreading the word!

                                                  • ReDoS脆弱性を自動修正する技術、NTTと早稲田大が「世界に先駆けて」開発

                                                    NTT(持ち株会社)と早稲田大学は3月23日、プログラムの脆弱性の一つ「ReDoS脆弱性」を自動修正する技術を、世界に先駆けて開発したと発表した。専門知識のない開発者でも、ReDoS脆弱性を容易に修正できるという。 正規表現とは、特定の文字列をルールに基づき簡略化して表現する方法で、ほとんどのプログラミング言語に組み込まれている。Webサービスなどで、ユーザの入力値が期待したものかを検証するなど幅広い場面で利用されている。 ただ、検証すべき文字列が厳密に定義できていないと、脆弱性になってしまう。処理時間が長くなる入力を与えて計算リソースを消費し、負荷を大幅に増大させる攻撃が可能になるためだ。 ReDoS脆弱性が原因で商用のサービスが停止するインシデントはここ数年でたびたび発生しているという。 新技術では、ReDoS脆弱性がないことを保証するため、正規表現の書き方から曖昧さを排除し、任意の文

                                                      ReDoS脆弱性を自動修正する技術、NTTと早稲田大が「世界に先駆けて」開発
                                                    • 「Ruby」のuri.gemに正規表現サービス拒否(ReDoS)の脆弱性 ~修正版のv3.2.3が公開/

                                                        「Ruby」のuri.gemに正規表現サービス拒否(ReDoS)の脆弱性 ~修正版のv3.2.3が公開/
                                                      • Ruby 3.2 で ReDoS 対策/改善のために追加された `Regexp.timeout=` について - Qiita

                                                        はじめに この記事は、記事投稿キャンペーン「【RubyKaigi 2023 連動イベント】みんなで Ruby の知見を共有しよう」の記事です RubyKaigi 2023 の Day 2 (2023/05/12) 16:00 - 16:30 Takashi Yoneuchi (tw:@lmt_swallow)さんの 「Eliminating ReDoS with Ruby 3.2 」 でお話があった ReDoS のタイムアウトについて実際に動かして検証してみました。 ReDoS について ReDoS は、Regular expression Denial of Service の略称です 正規表現の評価に時間がかかる文字列を入力しリソースを占有する攻撃です。 ReDoS について詳しくまとめてくださっている @flat-field さんの記事のリンクを張り説明は省略します。 また、 Rub

                                                          Ruby 3.2 で ReDoS 対策/改善のために追加された `Regexp.timeout=` について - Qiita
                                                        • その正規表現、異議あり! 〜 ReDoSについて

                                                          ActiveSupport::Concernで開くメタプログラミングの扉 #heiseirubykaigi / The door of meta-programing is opened by ActiveSupport::Concern

                                                            その正規表現、異議あり! 〜 ReDoSについて
                                                          • ReDos検出プログラムの作成とOSSへの適用 #seccamp

                                                            1. [Z-Ⅲ] ReDoSの検出プログラムの 作成とOSSへの適用 受講生:長﨑 舜, 三浦 優也, 根本 昌也, 片岡 歩夢, 八幡 悠二郎 講師: 新屋 良磨, 藤浪 大弥 チューター:芦田 裕飛 1 2. ReDoSとは? ReDoS (Regular expression Denial of Service) 脆弱な正規表現が原因で起こるDoS攻撃。 脆弱な正規表現に特定の文字列が渡されることで 実行に大きな負荷がかかることがある。 2

                                                              ReDos検出プログラムの作成とOSSへの適用 #seccamp
                                                            • Regular Expressions Denial of the Service (ReDOS) Attacks: From the Exploitation to the Prevention - DZone

                                                              autors :michael hidalgo, dinis cruz introduction when it comes to web application security, one of the recommendations to write software that is resilient to attacks is to perform a correct input data validation. however, as mobile applications and apis (application programming interface) proliferates, the number of untrusted sources where data comes from goes up, and a potential attacker can take

                                                                Regular Expressions Denial of the Service (ReDOS) Attacks: From the Exploitation to the Prevention - DZone
                                                              1