Movatterモバイル変換


[0]ホーム

URL:


はてラボはてな匿名ダイアリー
ようこそ ゲスト さんログインユーザー登録

「中間者攻撃」を含む日記RSS

はてなキーワード:中間者攻撃とは

2025-07-22

anond:20250721195342

中間者攻撃の話をしているので、通信経路の途中にプロキシを仕込むような話ではありませんか?

ユーザサービスに対してパスキーを生成したつもりにさせておいて、本当のパスキー秘密鍵公開鍵)はプロキシが作ってサービス登録しておけばいい

なりますしによるパスキー登録パターンですね。攻撃シナリオとしてはあり得ます

イメージとしては

 1.フィッシングサイトに通常のID/パスワードでログインさせる

 2.フィッシングサイト正規サイトへ中継ログインし、正規ログインセッションを窃取する

 3. そのセッション情報を使って攻撃者が自分の端末へパスキー登録する

になるでしょうか。

ただこの攻撃最初ユーザパスキー以外の方法フィッシングサイトログインしようとする行動が必要です。

今後発生しうる可能性は勿論ありますが、パスキーを使う前段の問題でしょう。やはりパスワードは滅ぼすべきですね。

(勿論サイト側としても、パスキー登録されたらユーザ側へメール等で通知して作成されたことを知らせると言った対策必要です)

Permalink |記事への反応(0) | 03:31

このエントリーをはてなブックマークに追加ツイートシェア

2025-07-21

anond:20250721194322

中間者攻撃の話をしているので、通信経路の途中にプロキシを仕込むような話ではありませんか?

ユーザサービスに対してパスキーを生成したつもりにさせておいて、本当のパスキー秘密鍵公開鍵)はプロキシが作ってサービス登録しておけばいい

Permalink |記事への反応(1) | 19:53

このエントリーをはてなブックマークに追加ツイートシェア

anond:20250720025823

中間者攻撃ができないというのはちょっと首をかしげ

パスキーの設定のタイミング秘密鍵作成公開鍵登録のところをまるっとジャックできるのであれば、偽のパスキー登録することができるからである

ドメイン騙せないという点においてもそんなものhttpsで達成できていることであり、パスキーから何かが変わることではない

Permalink |記事への反応(2) | 14:27

このエントリーをはてなブックマークに追加ツイートシェア

2025-07-20

パスキー銀の弾丸たり得るか

https://b.hatena.ne.jp/entry/s/xtech.nikkei.com/atcl/nxt/column/18/00001/10906/ を見て、パスキーでできること、できないこと、その他まとめます

パスキーでは中間者攻撃仕様上(ほぼ)できない

パスキードメインと紐付けて鍵を生成するので、ドメインが異なる別のサイトフィッシングサイト)へ正規サイト用の鍵が用いられてしまうことはありません。

人間の目にはどれだけ精巧フィッシングサイトであっても、ブラウザから見ればドメインが違えばそれは全く別のサイトです。騙されやす人間ではなく「ブラウザドメインから判断して適切な鍵を利用する」が肝と言えます

これでフィッシングサイトは実質、無意味ものになりました。やったね!

マスコミ用語(?)ではリアルタイムフィッシングと呼ぶようですが、一般的にはこれは中間者攻撃と呼ばれるものです。「ほぼ」としたのは、ブラウザOS実装バグがない限りという条件が付くためです。

パスキーが普及してもフィッシングサイトは無くならない

パスキー突破不可能なら、ユーザパスキーを使わせなければ良いのです。ブラウザOSを騙すより人間を騙す方が遥かに容易いでしょう。

こんなメッセージを見て「パスキー使えないのか~、じゃあパスワードでログインポチっとな」となる人が絶対居るのでパスキーパスワード廃止はセットであるべきです。が、パスキーを使えないレガシー環境を切り捨てることになるので、サービス提供者側としてはやりにくいでしょう(今時パスキーも使えないレガシー環境を許容すべきではないのですが)。

またパスワードを廃止したとしても、次はアカウントリカバリ手段への介入・悪用から乗っ取り目的として誘導するフィッシングサイトが作られるでしょう。

パスキーは普及しづらい

ユーザ側の認知度の問題の他に、サービス提供者側はパスキー実装だけでなく既存認証基盤との共存考慮する必要があるのでそれなりのコストが掛かるようです。

それでも金融資産を扱うサイトは変なワンタイムパスワードなんかやってないでさっさとやるべきなのですが。

パスキーセッションハイジャックを防ぐものではない

パスキー認証のためのものであって、認証された後にマルウェアなどがセッショントークンを窃取する攻撃には無力です。

別の手段で防御しましょう。

パスキー=生体認証ではない

スマホでの使い勝手からよく誤解されていますが、生体認証パスキー要件ではありません。

生体認証は「Webサイトログインのための本人確認」ではなく「鍵を使うための本人確認」です。この本人確認手段は必ずしも生体認証でなくとも構わないのです。

パスキーは1サイト1つではない

パスワードと違って、1つのサイトに対してプラットフォーム毎にパスキー作成することが可能です。

最近ブラウザまたはOSの同期機能で1つのパスキーを共有することもできますが、ログイン手段冗長化という観点プラットフォーム毎に作っておくのも良いかと思います

まとめ:銀の弾丸ではない。しかし無いよりはマシ、かもしれない

もう令和なんだからせめてパスワードはオワコンしましょう。

Permalink |記事への反応(2) | 02:58

このエントリーをはてなブックマークに追加ツイートシェア

2025-05-02

メールSMSでの追加認証逆効果になるかもね

現在証券口座乗っ取り対策で行われようとしているメールSMSでの追加認証逆効果になると思ってる。

メールSMSなんてフィッシングの入れ口なわけで、そこを頻繁に使わせるのはダメだろう。

フィッシング被害を広げるだけだと思う。

初回登録時の1回だけならメールSMSでの認証はありだけど、頻繁に使わせたらフィッシングを踏む確率を逆に上げてしまうだろう。

結局、FIDO認証物理キー認証にもっていかないとダメだと思う。

それまでのつなぎだとしても、メールSMS二次認証につかうのは筋が悪い。

もし急いで対策しないといけないとしたら、ユーザ日本語も使える新しい秘密質問でも作ればいいんじゃないのかな。

ユーザIPアドレス普段とはあまりに違う場所から行われていたら、その質問を表示して答えられなければアクセスを拒絶するという感じで。

質問文もユーザが決められるとなおいいね

お前の兄ちゃんだよ。

本当に兄ちゃんか?

本当兄ちゃんだよ。

それじゃあ秘密質問をするね。5+3は?

4

わーい兄ちゃんだ。

これだよ。これ。

ドリフバカ兄弟認証こそ手っ取り早く実装できる認証の例だろう。

これでもフィッシングサイトを通じた中間者攻撃の前には敗れるがFIDOや物理キーまでのつなぎとしては十分だろう。

Permalink |記事への反応(0) | 13:02

このエントリーをはてなブックマークに追加ツイートシェア

2024-07-04

anond:20240705062507

ハッタショ増田もそうだったけど、

パスワード暗号化って、運営なら複合化できると思っちゃってそうなとこあるよね

あれは一方通行暗号化から

ユーザ入力したパスワード暗号化して保存して

ログインの時に入力したパスワード暗号化して、二つが一致するかで確認してるから

平文パスワードユーザか、中間者攻撃で盗聴した奴しか入手できないんだよ

っていう大前提をまずしらないと話が噛み合わないンゴねえ

Permalink |記事への反応(1) | 00:50

このエントリーをはてなブックマークに追加ツイートシェア

2024-05-05

【緊急】auカブコム証券セキュリティガバガバだった

3年以上に亘って中間者攻撃を受ける脆弱性放置している模様

報告しても無視ヤバい

https://www.ssllabs.com/ssltest/analyze.html?d=s10.kabu.co.jp

https://archive.li/ZkRXM

Permalink |記事への反応(1) | 16:41

このエントリーをはてなブックマークに追加ツイートシェア

2024-04-29

アプリユーザー情報をバレずに盗む方法

ユーザー情報を傍受するのは簡単です。

あなたの持つサーバー送信すれば良いだけですから

でもユーザー中間者攻撃を使って送信内容が解析してきた場合、彼らの秘密ファイルチャット履歴などをあなたが傍受しているのがバレちゃいます

せっかく「E2E暗号化方式採用しています!へーしゃはあなたデータアクセスできません!!😤」などと謳っていても実は別口で傍受してたなんてバレたら終わりですよね。

 

そこで証明書のピンニング(certificate pinning)を使いましょう。

これはアプリの中に埋め込まれ証明書を使う事で通信信頼性確立するもので、これを使うことで中間者攻撃無効化できます

銀行取引保護や、ゲームチート対策などにも使われている技術です。

GoogleAppleといった大企業ももちろん色んなところで使っています

 

中間者攻撃ができないのでユーザーは「何か送ってるな」程度のことしか分かりませんし、もしユーザーになにか聞かれても「UX向上が目的アナティクスなんですけど!でも安心してね!へーしゃはあなたデータアクセスできません!😤」としらを切れます

実際、Amplitudeなどの大手ユーザー解析サービスアナティクスデータ送信にこの技術を使っています

 

現在証明書のピンニングは非推奨とされている例が散見されますが、それを捨てるなんてとんでもない!

証明書有効期限が切れる前にアプリアップデートしないとデータ送信できなくなる等が理由ですが、こっそり送ってたデータが送れなくなってもUXは何も変わりませんからね。

 

最大のリスク内部告発ですが、結局外からは分からないので、「そんな事はやっていません!弊社に恨みを持つ者の悪質なデマです!気になる人の為にアナティクスをオプトアウト出来るようにしました!良かったね!」などと言って、ユーザーを上手に扱いましょう。

Permalink |記事への反応(0) | 15:50

このエントリーをはてなブックマークに追加ツイートシェア

2023-05-08

徳丸さんの記事を読んだけどやっぱりセキュリティの話って嫌い

https://qiita.com/ockeghem/items/c6a3602d2c2409f89fbb

オフラインでも通用する物理的なハッキングそもそも公衆無線LAN論の外としてさぁ

話のほとんどが偽APアクセスした場合ばっかり

お前そりゃ悪人の庭に自ら足を踏み込んだらカモネギむちゃくちゃにされるに決まってんだろって

そんな話は一般人にとっちゃぶっちゃけどーーーーーーでもよくない?

証明書含め基本のセキュリティ対策提供側が最低限しているというほぼ確認しようが無い前提に立って

一般人フリーWi-Fiに繋いだときリスク」が求められている話なんで

たとえば同じフリーWi-Fiに悪い人と同時に繋いでいたらリスクがあるのかな?とか正式フリーWi-Fiに繋いでいるとき通信を盗聴されるフリーWi-Fi独自リスクはあるのかな?ってところが疑問点

正規の手順で正しく使っているのにも関わらず自宅のWi-Fiより高まるセキュリティリスクって…(不安)みたいなところに

APやらそっから中間者攻撃やらに繋げられてもまったくもって芯を食ってない

ファイル共有についてはまあ不注意っちゅうか利用者しっかりしとけよって話なんだけど

とかく全体的に"ずらし"をされてるって気分を毎度セキュリティ記事を読むたび思うんだよね

お前、その前提だされたらなんもいえねーわ

みたいな

昔、PCハッキングする早さを競う企画があったと思うんだけど、そのPCセキュリティアップデート施してないデフォルト状態でしたってことでズコーっとすっこけたことがあった

それで「ハッキングは怖いですね~」ってならんでしょ

まあガチガチの最新状態のなかで未知の脆弱性を見つけるなんて逆にお金もらえることなんだから企画になりゃせんがね

僕のPC日常使いでハッキングされる危険性を煽りつつ内実セキュリティアップデートすらしてない環境前提で話が進んでもズレてんだわ

ってこっちの話もずれたけどよー

結局、フリーWi-Fi普段使いの中ではとーーーっても安全であることがこの記事からわかりました

徳丸さんあんがとよ!

Permalink |記事への反応(1) | 17:57

このエントリーをはてなブックマークに追加ツイートシェア

2023-04-12

apiを通せば社外秘情報学習されないか安心かいうけどどっちにしろプリズム中間者攻撃で傍受されるだけだろ。てかお前らの社外秘にそこまで価値ねーよ。自意識過剰

Permalink |記事への反応(2) | 19:15

このエントリーをはてなブックマークに追加ツイートシェア

2023-02-17

anond:20230217222204

太陽地球の間には随分と距離があり、中間者攻撃できますよね

地球に届いているのが本当に太陽の光100%だと断定できるんですか?

宇宙人が赤い光を混入しているかもしれないじゃないですか

宇宙人はいます!私がいるといったらいるんです!

Permalink |記事への反応(1) | 22:25

このエントリーをはてなブックマークに追加ツイートシェア

2023-02-03

中間者攻撃に対して必要なのは暗号化よりも改ざん検知

寿司暗号化を試みるよりも、改ざんを検知できればそれでいい。

空気に触れると色の変わる塗料を塗っておき、真空容器に詰めて届ければよい。

Permalink |記事への反応(0) | 19:20

このエントリーをはてなブックマークに追加ツイートシェア

2022-03-04

証明書のピン留めってやべーよな

うちの会社アプリ通信の一部にはピン留めされた証明書が使われている。

と言ってもサードサービスとの通信でだ。そのサービスSDKアプリに仕込んで、ユーザー挙動を逐一そのサービスに送って後で解析するのだ。

そしてそのサービスセキュリティ理由にこの技術を使っている。

これにより中間者攻撃ができないので何を送ってるのかはセキュリティ専門家でも分からない。

から何でも送り放題だ。うちはパスワードこそ送ってないが、こんなもんまで送って良いんかなというものも送っている。

でも通信を覗けないのでバレない。これ自分がただのユーザーだったら超嫌だなと思う。

 

証明書のピン留めって導入コストばかり叫ばれてるけど、ユーザーとしてはデータを好き勝手送られる事の方がやべーよな。

Permalink |記事への反応(0) | 11:09

このエントリーをはてなブックマークに追加ツイートシェア

2020-05-26

anond:20200526193559

中間者攻撃

小学生プログラミング教育必修化の末路だな

Permalink |記事への反応(1) | 19:49

このエントリーをはてなブックマークに追加ツイートシェア

2019-12-10

DNSoverHTTPS って中間者攻撃どう防ぐの?

無料ルーターがlet's encryptとかで証明書取って自前の簡易リゾルバ立てて特定ログインアドレスゾーンだけ持たせて別のサーバ誘導したりされた時に

ユーザーはそのことに気付く方法あるの?

Permalink |記事への反応(0) | 09:32

このエントリーをはてなブックマークに追加ツイートシェア

2017-09-13

警察増田チケット詐欺中心に事件を考えているのが誤り

犯人にとって転売品は何でもよく、個人取引を乗っ取った中間者攻撃三角貿易現金詐欺るのが目的。というのはgithub見ればわかる。

犯行少女にとってネット取引経験があり、価格のぶれ幅のあるチケットを扱ったのだろう。

チケット出品した専門学校生落札者は、入金・チケット受け取りが完了して事件存在にも気付いてない。

確かに警察への被害届の訴えは、チケット落札入金したのに届かない、という形だが、そこにとらわれて事件を単純視していたか

実名口座実住所の振込先専門学校生存在確認できただけで十分として事件捜査がおろそかになったのだろう。


>・詐欺は重い罪で、嫌疑後の証拠隠滅も容易な場合が多いので、8万円程度でも19日の拘束はありうる。


証拠隠滅問題だったら、事件発生2016年8月徳島県警三好署への被害届2016年9月、そこから年をまたいで専門学校生逮捕2017年5月は遅すぎる。

証拠隠滅するような犯人が、のこのこ実名口座に入金させるのが警察検察にとっての常識なのか?


>・もし犯人架空口座を使ったりBTC等で取引してたら、チケット転売サイトへの情報開示請求だけでは辿れず、ツイッター社へのIP開示、プロバイダ照会まで行かざるをえず、さら犯人MACアドレスデフォルトから変更した上でFree-Wifiを使って取引していたら、辿り着けなかったかもしれない。


しろまずIP開示、プロバイダ照会をもってデジタル証拠として、あなたが疑わしいか逮捕するよ、と持っていくのが筋ではないか

その上で犯人無線LANタダ乗りMAC偽装で、とわかれば、誤認逮捕やむなし論が出る余地がある。

専門学校生へ接触した犯人IP被害者へ接触した専門学校生名義での犯人IP、なと真犯人へたどり着く証拠はあったからこそその後の捜査で見つかったはず。

半年以上の捜査の期間でそれすらもしていないのに、いきなり逮捕勾留して否認嫌疑不十分釈放してから本格捜査真犯人到達って怠慢では?

https://anond.hatelabo.jp/20170912225009

Permalink |記事への反応(0) | 12:13

このエントリーをはてなブックマークに追加ツイートシェア

2016-04-26

OAuthのことを1ミリも知らない俺が

OAuth ディスの記事を酒の勢いで訳してみたゾ。前半はつまらないから、「章のまとめ」か、それ以降だけ読むといいゾ。なぜか後半が切れてた。こっちだけでいいゾanond:20160426145507anond:20160426150324

http://insanecoding.blogspot.com/2016/04/oauth-why-it-doesnt-work-and-how-to-zero-day-attack.html

OAuth がうまくいかない理由と、既存サービスゼロデイ攻撃方法

OAuth とは

認証 (authentication:本人確認) と承認 (authorization: 権限付与) のシステムを設計し、API を規定し、複数の異なるシステムを統合するために用いられる提案をまとめたものです。

OAuth には色々な種類があり、version 1.1a や 2、その各部の上に他の規格を乗せたものなどが存在します。世の中に出回っている数々の実装によって、具体的な利用状況は大きく異なります。

おことわり

前にもOAuth について書いたことがあり、たくさんの反響をいただきました。前回の記事に対する批判の一部を避けるため、今回の記事について先に断っておきたいのですが、この記事はOAuth の使われる典型的な場面に焦点を当てており、論じられる点のほとんどは、何らかの方法OAuth を利用する大手サービスのほとんどすべてに当てはまるということです。

言いかえると、OAuth を用いているあらゆるプラットフォームが壊れているとは限りません。OAuth にはバリエーションが多いうえに、2.0 だけに限っても 76 ページに渡るパターンがありますので、OAuth に基づいた何かに適合していながらもセキュアであり、使っても問題ないものは存在しうると言えます。ですから、あなたお気に入りOAuth 実装や設計が、ここで論じられる問題の一部または全部を免れていることもありえます。確率は低いですが。

また、OAuth を使っているものの中には規格を誤用しているものがあるとか、OAuth はその使い方を強制しているわけではないとか言う人もいるかもしれません。どちらにせよ、ここでは特定のOAuthベースの規格について述べるのではなく、現状で大手がOAuth をどう利用しているかについてを、それが規格に適っているかどうかに関わりなく論じるつもりです。こうすることで、多くの読者に影響を与えることになるでしょう。危険な方法OAuth を使っているサービス利用者であっても、また自らOAuthベースサービスを管理していて、他のみんなが作っているのを真似てプラットフォームを作ろうと思っている人だとしても関係があるのです。

記事の構成

この記事は長くなりますし、言ってみればほとんどの章はそれ自体でひとつの記事として十分なほどの話題を扱いますので、大まかな流れをご説明しておきましょう。

この記事は、現在OAuth 業界でおこなわれていることを調査した結果のまとめです。OAuth を使う製品のすべてにこの記事のあらゆる点が当てはまるというのではなく、危険だったり無価値だったりするサービスの背後に見つかった慣例や根本原因を紹介する記事です。

この前書きのあとは、まずOAuthセキュリティ欠陥を分析することから始めるつもりです。こうした欠陥の中には、セキュリティコミュニティでよく知られていて、書籍などですでに分析されている一般原則が当てはまるものもあります。しかしこの記事では書籍化されていないケースも扱いますし、有名な欠陥についても、平均的な開発者および責任者に理解しやすく、対策の必要性がはっきりするように工夫するつもりです。

その後は、OAuth の主要素が一般的に言ってどのように実装されており、そうした普通の実装がどのようにサービスを使いものにならなくするのか、すなわちそのサービスで達成できることを極度に、不適切に、かつ意図に反して低下させてしまうのかを分析します。ごく一部のケースでは回避策の足がかりになるかもしれないテクニックについて論じますが、そういうのを実装する馬鹿らしさにも注目します。こうした記述の中では繰り返し何度も、OAuth を使う人たちがどれほど自分と自分のビジネスにとって損なことをしているのかが説明されます。

最後に、OAuth が適切に使われうる数少ない場面と、すでに利用されているOAuth の代替品を簡単に取り上げます。代替技術に関する調査の結果を提供するつもりですが、その中にはAmazon のような大企業がセキュアで使いやすく信頼性の高い API を実現するために何をしているかの報告も含まれるでしょう。

責任ある情報公開

いま普通に使われているかたちにおけるOAuth の欠陥の幾つかを悪用すれば、大手サービスに対して強力な攻撃を仕掛けることができます。OAuth に対する攻撃は何も新しいものではありません。IBM やOracle を含め、懸念した IETFメンバーOAuthベースサービスに対する攻撃を 50クラスも記述した 71 ページもの文書を 3 年以上前に出したように、また筆者も前回の記事でこうした点のいくつかを議論したようにです。それにも関わらず、OAuthベースシステムの主要なセキュリティ欠陥は非常に蔓延しています。

筆者は、いくつかの大手企業の役員や開発者に、そこのOAuthベースシステムが抱えるセキュリティ欠陥を指摘したことがあります (そのうちのひとつは 4 年前のことです) が、全員、自社システムを修正するために一切何もしませんでした。まるで、OAuth の人気度からして、他の現実的な解決策をひとつも聞いたことがなく、それゆえにOAuth が最もセキュアな選択肢に違いないと決めてかかっているようです。どうも、OAuth のコア原則に対する攻撃のデモを文書化した情報も、聞いたことがないか、肩をすくめて無視するかしているようです。そこで、この情報をもっと広く拡散することによって、影響のある人たちの尻を蹴りとばしてあげたい、そしてサービスを設計あるいは管理している人たちにモーニングコールの役割を果たしてあげたいと願っています。

というわけで、OAuthベースの何かを提供あるいは利用するご自分のサービスを調べて、こうした欠陥の一部あるいは全部が存在することに気づいたなら、どうぞ責任をもってこの情報を取り扱ってください。ご自分のサービスを適切にアップデートしたり、関係する問題に対応するようビジネスパートナーに適切な圧力をかけたりしてください。

ここで言及されている情報やリンクされている情報は今のところ既存のサービス悪用できるかもしれませんが、どうぞ責任ある行動をとり、他人のもの破壊するのではなく改善することを目指してください。この記事は、自社サービス不適切に実装している人たちへのモーニングコールのつもりで、その改善を促すために書いているのであり、悪用したがっているハッカーたちのハウツーもののつもりではないのです。

想定する利用形態

この記事では、ふたつのシナリオに注目して、その場面でどのようにOAuth が組み合わされているのか、そしてなぜうまくいかないのかを検討します。記事を通して何度もこれらのシナリオに戻ってきますので、頭に入れておくことは大事です。

まず、Exciting Video Service (略して EVS) というサービスを思い描いてみましょう。ユーザが動画をアップロードしたり友人と共有したりできて、完全公開にしたりアクセス制限を設定したりできるようになっています。また EVS は動画のアップロードや削除、およびだれが視聴できるかの権限管理にOAuthベースの API を提供しています。

ただ、例としてこの想像上のサービスに焦点をあてますが、論じられる問題はあらゆるサービスにも当てはまります。ファイルであろうと文書ストレージであろうと、カレンダー管理やオンライン会議、ディスカッショングループ、はたまたリソース管理であろうとOAuthベース API を提供する他のいかなるものであろうとです。また、筆者は本当にどの特定の動画サービスのことも言っていないということを覚えておいてください。問題点の一部あるいは全部は、OAuth を使っている既存の動画サービスに当てはまるかもしれませんが、EVS がそのサービスのことを指すわけではありません。どれが当てはまるかは読者への練習問題ということにしてもいいですね。

ひとつめのシナリオとして、ビデオカメラの製造会社を想定しましょう。そのビデオカメラには、録画した内容を EVS にアップロードする機能のあるソフトウェアを付属させたいと思っています。つまり、ユーザビデオカメラを自分のコンピュータに接続して、その独自ソフトウェアを開き、ビデオカメラからアップロードしたい動画を選んでしばらくすると、それが EVS にアップロードされているというものです。

ふたつめのシナリオとしては、ある中小企業が職員用に EVS で 50アカウントを購入し、全職員が動画をアップロードして同じ部門の職員と共有できるようにする、ということにしましょう。この会社は A Friendly Custom Platform (AFCP) というソフトウェアで職員と所属部門の管理をしており、この AFCPサービスを EVS に統合したいと考えています。望んでいるのは、管理者が AFCP を使ってだれかを営業部門に配置したら、その職員が自動的営業部門メンバー所有の動画すべてに対するアクセス権を取得するということです。営業部門からいなくなった人には逆のことが起こるようにもしてほしいと思うはずです。

問題点

セキュリティ関連
認証情報の盗難 /アクセス権の詐称

トークンベースの認証システム (OAuth のコア) が現在よく利用されている最大の理由のひとつには、「適切に実装されれば」サードパーティアプリサービスに各ユーザの認証情報 (パスワード等) を提供しなくて済むという点があります。サードパーティに個人ユーザの認証情報を渡すのは、以下の理由から望ましくありません:

上記の問題点は、OAuth だけでなくあらゆるトークンベースの認証システムでも回避できます。よくOAuth の強みとして挙げられていますが、独自というわけでは全然なくて、他にも同じ強みを実現しつつOAuth の弱点のない選択肢はあるのです。

さて、確固とした土台に基づいてはいるものの、「普通の実装における」OAuth は、上記の問題を回避しようとして以下のような手順に沿ってシステムに情報を提供します:

  1. ユーザサードパーティアプリ/サービス (たとえば AFCP) を訪ねて、特定のサービスと統合したいことを知らせる。
  2. AFCP は、EVS でホスティングされた特別なログインページを出してユーザに EVS の認証情報を入力させる。
  3. EVS は、その指定したアクセスレベルユーザが本当にサードパーティ (AFCP) へ与えたいのか確認する。
  4. EVS は AFCP に一種のトークン (複数の場合もある) を提供し、各種 APIコールに使えるようにする。

このトークンユーザの認証情報ではありませんから、そしてひとりのユーザひとつアプリの組み合わせだけに有効で、指定された権限しか持たず、あとから破棄されるようになっていますから、きちんと前述の問題点を回避しているように思えます。しかし実際には、ちゃんとした土台を核として持っているにも関わらず、OAuth の普通の実装で使われているこのフローは、上に挙げた問題すべてに対処しているとは言えません。

この設計はそもそも危険なスタート地点から始まっています。セキュアなプラットフォーム設計の第一原則は、危険な地点から始まったものは既にダメ、逆転不可能、ということです。手順 1 のせいで、EVS 自体ではなく EVS を利用するサービスから始まっているので、ユーザは最初の一歩からして中間者攻撃を受けたような状態にあります。これは、かかってきた電話に個人情報や口座番号などを教えるようなもので、自分の使っているサービスの者だと名乗っていますが、番号が本物かどうか分からなかったり非通知だったり、という場面のコンピュータ版だと言えます。最近はこういう詐欺がたくさんありますから具体例を挙げる必要はありませんね。要点は、接続を開始する相手が信用できなければ、その接続は一切信用できないということです。EVS 自体の側から手順を始めるのでない限り、上に挙げた目標をすべて実現する API 利用のためのセキュアな認証システムは設計不可能です。

(略: 手順 2 で、それっぽいページに誘導すれば認証情報を盗める)

(略: そうした詐欺を企業自体が後押ししているような風潮もある)

(略:スタンドアロンアプリなら、ログインを詐称する必要すらない)

この種の攻撃は前述のセキュリティ文書で「4.1.4.脆弱性を突かれたブラウザ組み込みブラウザを使ったエンドユーザ認証情報のフィッシング脅威」として分類されています。提案されている解決策は?

クライアントアプリユーザに直接認証情報を求めることは避けるべきだ。加えて、エンドユーザフィッシングや良い習慣について教育を受けることもできる。良い習慣は、たとえば信用できるクライアントにしかアクセスしないことだ。OAuth は悪意あるアプリに対していかなる防御策も提供していないので、エンドユーザインストールするネイティブアプリすべての信頼性に自分で責任を負う。

さらに

クライアント開発者は、ユーザから直接に認証情報を集めるようなクライアントアプリを書くべきではなく、システムブラウザのような信用できるシステムコンポーネントにこの役目を移譲すべきだ。

基本的に言って、OAuthセキュリティガイドラインは、OAuth を利用する開発者ユーザを攻撃しようとすべきではないとか、悪いことをしてはならないと言っています。外部の開発者が悪いことをしないことに頼るというのは、正気のサービス設計者が依拠するセキュリティモデルではありません。

私の知る主要なOAuthベースサービスはほぼすべて、ここに概説した手法で攻撃可能です。

OAuth こそセキュリティの新たな金字塔だとお考えの皆さん、目を覚ましてください! 「普通の実装における」OAuth は、始まる前から負けていますよ。OAuth が存在するよりずっと前に実装された数多くのシステムはセキュアで、この問題を効率的に回避しています。残念なことに、あまりに多くのサービスが、せっかくセキュアだったのにインセキュアなOAuthモデルに移行してきました。だれかが開発者管理者に「OAuthもっとセキュア」「先取り思考」「将来への投資」とか何とか素敵な (しかし具体性の皆無な)バズワードを並べたてたからでしょう。ほとんどの場合、こうした変更は本当に既存の問題に対応しているのか、あるいは以前のシステムより幾らかでも良くしてくれるのかどうかをレビューすることさえなく実装されています。

OAuthサービスに偽装

OAuthベースサービス設計でよく見かける間違いは、ブラウザ用に、パラメータひとつとして client_secret (あるいは同様のもの) を受け取るエンドポイントを提供することです。OAuth の client_id と client_secretパラメータは、基本的に言ってサードパーティプラットフォーム固有の APIユーザ名とパスワードと等価ですから、EVS の API を利用する開発者だけにしか知られるべきではありません。パスワード同然のものなのですから、client_secretパラメータは「絶対に」ユーザブラウザを通して送信すべきではありません (ヒント:パラメータ名の中にsecret という言葉が入っているよ)。アプリサービスユーザがその client_id と client_secret を見つけることができる場合、そのユーザはそのサービスのふりをすることができ、潜在的には何かイケナイことができてしまうということになります。さらに注意すべき点として、client_secretパラメータを別の名前にするサービスもありますから、ご自分の関係するサービスをよくチェックして、他のパラメータも秘密にする必要があるのかどうかを調べてください。残念ながら、重要な変数が自分の素性をいつも表に出しているとは限らないため、この問題は意外と多く存在しています。加えて、client_id だけ使う認証フローOAuth の上に乗せるサービスも出てくるでしょう。これには用心してください。特定の状況では、そういう client_id はまさしく client_secret 同然の働きをするのですから。

「普通の実装における」OAuth は、ウェブブラウザを使ってユーザを複数のウェブサイトに移動させるわけで、ひとつサイトから別のサイトに client_id と client_secret (あるいは同様のもの) を送ってもらう必要があります。そうやって、たとえば AFCP と EVS の間でこれらをやりとりするわけですから、ユーザブラウザの HTTP ログをモニタリングすれば、本当に見えてしまいます。これはアプリに組み込まれた独自ブラウザ各種でも、単に右クリックすれば何らかのネットワーク・ログ機能を持つ何らかの inspector にアクセスできてしまう場合などには可能です。

EVS と連携した AFCP にこの欠陥があると、AFCP に少しでもアクセス権限のある職員に本来の権限より多い権限を取得させてしまい、本来アクセスできないはずのところに許可が下りてしまう危険があります。別の例では、仮にFacebookGMail 用のOAuth エンドポイントを利用しているとして、client_id と client_secret の両方がブラウザを通して送信される場合、Facebookユーザは全員GMail に対してFacebookのもののふりをすることができてしまうということです。

この問題は、OAuth エンドポイントユーザウェブブラウザから平文で client_secret を送ってくることを期待するときにはいつも存在します。あるいはそうする必要があると誤解した API利用者が、埋め込むべきでないところにsecret を埋め込むときもです。この脆弱性が存在している可能性が高いのは、エンドポイントが client_secret (または同等品) と redirect_uri の両方を期待する (あるいはオプションとしてでも受け付ける) 場合です。redirect_uriパラメータは、今回のケースで言うと EVS がユーザログインさせたあとでそのブラウザをどこに送るべきか指示するために使うよう設計されています。そうやって redirect_uri がエンドポイントへの転送に使われている場合、その処理はユーザブラウザで実行されることが期待されているわけです。主要なOAuth 文書はどちらも、client_secret と redirect_uri の両方をこうした用途に使うようなケースを指示したり求めたりはしていません。

ざっと検索してみたところ、残念なことに、潜在的に違反の可能性があるそういったOAuthベース API がたくさん見つかります。GoogleOAuth の色々な利用方法を提案していますが、その中に、両方を一緒に使うことを広めるフローひとつあります:

client_secret:開発者コンソールで取得したクライアントパスワード (Android, iOS,Chromeアプリとして登録した場合のオプション)

Citrix もこんな間違いをしています:

(略: 以下、実際に脆弱だと確認したわけではないが、secret と redirect を併記しているサイトが列挙されている。)

Google で 2 分検索しただけでこのリストができました。皆様がもうちょっと労力をかければ、ずっと多く見つかることでしょう。ただし、上記リストは、こうしたサービスのどれかが脆弱だとか、誤用しやすすぎるということを直接に示すものではありません。色々な要素があり、たとえば Zendesk は特にこのケースでは redirect_uriパラメータリダイレクトに使わないと明言していますし、アプリからエンドポイントを呼ぶときはフル機能版ブラウザではなく curl を使うべきだとさえ書いて、開発者が危険なことをするような誤解を極力避けようとしています。それでも、経験の浅い開発者はこうしたエンドポイントを独自ブラウザで読もうとするかもしれません。さらに、この組み合わせが世に出回っているというだけで開発者の警戒心が下がっていき、経験を積んだOAuthベースサービス開発者でさえも似たような状況で潜在的ヤバイ誤用を気にせず適用するようになってきています。特に client_secret が別の名前になって、「秘密を守る」という概念が失われている場合はそうです。

サービスがこの点に関して壊れている指標となるのは、人気のある複数のOAuthライブラリがこのサービスでうまく動かないときです。そういうサービス一般的にいって独自の「SDK」を提供しており、サードパーティ開発者が選んだライブラリではこのフランケンシュタイン的なOAuth が使えないと苦情が来たときにはその SDK を使うよう指示します。こうしたカスタマイズは気付かれないまま進行することも多くあります。開発者の大多数は、SDK が提供されているなら、わざわざ手元のソフトで頑張らずに済ませたいと思うものですから。

この種の攻撃は前述のセキュリティ文書で「4.1.1.クライアント機密情報を取得する脅威」に分類されています。しかしサーバウェブブラウザを使用を要求し client_id と client_secret (または似た用途のもの) を同時に渡させるという具体的な攻撃パターンには一言も言及がありません。おそらく、その文書の執筆陣の予想では、こんな馬鹿げたサービスはだれも設計しないだろうし、その API を使う開発者もそれを独自のウェブブラウザや SDK で使ったりはしないだろうと思っていたのでしょう。こうした開発者OAuth の規格からバラバラに取り出した要素をグチャグチャに混ぜて接着しておいて、自分のプラットフォームOAuth 本来のセキュリティを保持していると思っています。そのツギハギのせいでどんな新しい問題が入り込むかもしれないのに、そこは一顧だにしません。残念ながら、これが近年のOAuth 業界によくあるやり方で、この既に猛威をふるっている問題は、パレード参加者がどんどん増えて、人が使っている手法や、使っている「と思う」手法をコピーしていくことで、とどまるところを知らない連鎖になっています。

おそらく、上記のサービスを使っているシステムのうち、この問題のせいで悪用可能なものは多数あることと思います。特にデスクトップアプリでは、コンパイルされたアプリバイナリから秘密情報がそのまま取り出せることは、サービス側で何も危険なことを要求していなくてもよくあります。GoogleOAuth の使い方を多数提供しているうちで、client_secret と redirect_uri を両方受け取るエンドポイントのことが書いてあるのはたったひとつだけだというのは重要な点です。少なくともGoogle の場合、redirect_uri があっても、このエンドポイントウェブブラウザベースアプリには推奨していません。しかし、だからといって実際に独自ブラウザでそれを使う人や、このフロー標準的ブラウザ用のエンドポイントコピーする人が一切いなくなるはずがありません。それに加え、Google は例外なのであって、世の中にはセキュアなOAuthフローを受け入れず client_secret (や同等品) を常に渡すよう要求する愚かなサービスが今も満ちあふれており、そのフローウェブブラウザを通るときでさえも要求しているのです。さらに悪いことに、こうしたサービスの多くはユーザウェブブラウザを通して「しか」利用できないのですが、これは後ほど詳述します。

前掲のセキュリティ文書は、Permalink |記事への反応(3) | 12:44

このエントリーをはてなブックマークに追加ツイートシェア

2013-05-30

ブラック企業から這い上がれ:ソーシャルエンジニアリングつの技術

http://anond.hatelabo.jp/20130526021902

http://anond.hatelabo.jp/20130528230001

の続き

意識が高い」「グローバル人材」とか何それ美味しいの?

2.中間者攻撃(man-in-the-middle attack)

ブラック企業鉄壁の防御で僕等の希望を押しつぶすように見えるけど、たかが人の子の作りしもの

必ず「人間」という弱点はある、というのが前回のあらすじ。

さて「釣りバカ日誌を参考にしてもスーさんなんて見つからないよ」というのが●●の壁。

順番が逆。

まず組織の偉い人にターゲットを定めて、アプローチする為の踏み台を探す。

例えば「お局様、『偉い人』が新人時代世話役。口癖は『▲▲ちゃんも偉くなったもんよね』」とか

新人だったら「新人同期◆人で『偉い人』のお話を伺いたいっす」とか

上司上司に聞いてみるとか。

または「沙羅双樹の花の色盛者必衰の理をあらわす」

ブラック企業の中で頑張ってもしょうがないなら、社外の偉い人をロックオン

とにかく人の力を借りて「1.なりすまし」に使える材料アプローチする機会を探す。

これが二番目

(続く)

Permalink |記事への反応(1) | 23:27

このエントリーをはてなブックマークに追加ツイートシェア

2012-04-07

中間者攻撃

顧客 <-------> 営業 <------->技術

/.から転載

妙に納得した。

Permalink |記事への反応(0) | 20:12

このエントリーをはてなブックマークに追加ツイートシェア

 
ログインユーザー登録
ようこそ ゲスト さん
Copyright (C) 2001-2025 hatena. All Rights Reserved.

[8]ページ先頭

©2009-2025 Movatter.jp