0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ReDoS攻撃とは、その対処法

0
Posted at

セキュリテイ研修で「ReDos攻撃」という見慣れない言葉が出てきたので調査した。

ReDoS攻撃とは

正規表現におけるパターン処理の脆弱性をついた攻撃。計算にかかる負担が過度に増えることになる。

どのような攻撃か

正規表現の「+」や「*」を使うと、バックトラックというものが起きることがある。

詳細は参考のQiita記事にゆずるが、ざっくりいうと、検証中にマッチしないパターンが出現した時、ちょっと戻ってやり直すということが起きる。

これを意図的に起こすと、処理時間が指数関数的に増加する。

正規表現:/^(([a-zA-Z0-9])+)+$/

検証文字列:AbCdEfGh1JkLmN0pQR5TuAbCdEfGh1Jk@

挙動確認:https://regex101.com/debugger

step fowardすると、ある時点から、行ったり来たりしているのがわかる。

対策

  • 正規表現によるパターンチェックの前に、文字列の長さのチェックを入れる
    • ReDoS攻撃は文字列が長くなると、処理時間が伸びる
  • 信頼できるバリデーションライブラリを使う
    • 自分で正規表現を書くと、知らず知らずのうちに危険なパターンを使ってしまうかも
  • 「+」「*」など、ReDoS攻撃の原因となるような文字を使わない

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?