Authentication Vulnerabilities

ユーザーを認証して利用するWebサービスはよくあると思いますが、当然認証機能にも脆弱性は存在します。ユーザーの認証は重要な機能になるので、どういった脆弱性があり、攻撃者がどのような手法でそれらを回避しようとしてくるのかを知るのは重要な事だと思います。
今回は認証機能についての脆弱性と攻撃手法を簡単に書いていきます。
※ここに書いてる事は、よそ様の環境で試したらダメな事も含まれてるので!


認証ってどんな脆弱性があるの?
認証は、
「ユーザーを識別し、今アクセスしようとしているユーザーが誰なのか、そしてそのユーザー本人なのかを確認する」機能です。
この認証において、どのような脆弱性が起こりうるのか典型的な例を書いていきます。
  • ブルートフォースから完全には保護できない
  • (クライアント側での)弱い検証
  • 想定していない振る舞いに対応できない
  • 推測されやすいCookie
ブルートフォースから完全には保護できない
はい、そこそこの割合のサービスがブルートフォースし放題です。
後述するんですが、ブルートフォースは簡単にできちゃいます。なので、CAPTCHA認証するとか対策しましょう。効果は大きいと思います。
(クライアント側での)弱い検証
ブラウザ側でしか入力データの検証をしていない場合、BurpSuite みたいなプロキシを使われると、改変されてあっという間に検証をバイパスされます。読み込んだ検証用のJSを消すとか簡単にできるので。なので、入力データの検証はサーバ側に必要ですよね
想定外の振る舞いに対応できない
普通のユーザーは表示される順番で必要な項目にデータを入力して進めると思うんですが、攻撃してくるような人は色んな変なことをやってきます
必要な項目を消したり、GETをPOSTに変えたり、いらんパラメータ付けて送ってきたり、MFAのプロセスを途中スキップしたり…
こういうケースでもちゃんと検証ができないと、予期せぬ動きをして危険な状態になってしまったりします。
推測されやすいCookie
自分がログインした時に付与された暗号化されたCookieから、有効なadminのCookieを推測され管理画面へアクセスされるようなケースです。
典型的なのを挙げるとこんな感じかなと思います。
今回はその中から1番身近そうなブルートフォースがどんなもんなのかを見てもらいたいなと思っています
ブルートフォースって簡単にできちゃう
いろんなツールがあって、今回はWebサービスのログイン画面へffufってやつを使ってブルートフォースします。
多少パラメータ調整する必要あるんですが、ワンライナーでできちゃいます。あと、今回はWebサービスのログイン画面へやってますが、ハッシュや暗号化されたZipファイル、あと(やったことないけど)ローカルにある1Passのデータも同じような感じでブルートフォースできます。

(一部伏せてますが)コマンド1行だけです。。。
こんな感じでほんとお手軽にできちゃうので、ブルートフォースされにくい仕組みにするのは必要だなと思います。
ここまで書いて気がついたけど、これブルートフォースじゃなくて辞書攻撃やな…すんまそ。でもほぼ同じっす

このブログの人気の投稿

リスクアセスメント

セキュリティ監視入門! MITRE ATT&CK編 その①フレームワークの理解