おちこんだりもしたけど、私は元気です。

14
I was kind of blue for a while, but I'm fine. おおおおおおおおおおおおおおおおお

Upload: abendcve99990001

Post on 21-May-2015

1.941 views

Category:

Engineering


1 download

DESCRIPTION

おちこんだりもしたけど、私は元気です。

TRANSCRIPT

Page 1: おちこんだりもしたけど、私は元気です。

I was kind of blue for a while, but I'm fine.

おちこんだりもしたけど、

私は元気です。

Page 2: おちこんだりもしたけど、私は元気です。

自己紹介

Twitter: abend@number3to4

セキュリティエンジニア。アルコールが好きな元ダメ人間(時間さえあればどこでも飲んでしまうスタイルは、今は個性だととらえるようになったので卒ダメ人間)

Page 3: おちこんだりもしたけど、私は元気です。

概要

脆弱性を探すとあるバウンティハントに参加した時の感想をまとめてみました。

<概要>2日間にわたり、主催が用意したテスト用サイトにみんなでいろいろやってみて脆弱性を報告する。順位は、検出された CVSS値で評価される。また、その数値に応じて、賞金がでちゃうというもの。

夕飯・風呂 ハントハント

1日目

ハント ハント

2日目 飲酒

飲酒飲酒

朝食

昼食

Page 4: おちこんだりもしたけど、私は元気です。

ギャップ

セキュアなサイトだったので、幾度となく心が折れました。

理想と現実のギャップをまた知る。

Page 5: おちこんだりもしたけど、私は元気です。

ソーシャルエンジニアリング

validationがしっかりしてそうだったので、 XSSや SQLインジェクションなどのパラメータまわりの脆弱性(ツールなどで診断可能な項目)はやめて、ツールでは診断が困難な項目に特化して診断を実施しました。

理由として、ツールで検出可能な脆弱性はすでに検出されている可能性が高いため、ツールで検出困難な項目であれば、見つかりやすいと思ったからです。

「社会人」なので、そういったソーシャルエンジニアリングも活用します。

また、いろいろな方から昼食時に状況をヒアリングし、自分の方向性を確認。

Page 6: おちこんだりもしたけど、私は元気です。

ツールで診断が困難な項目って

ツールの種類によっても、検出可能な脆弱性は変わってくると思いますがアクセス制御不備については、どのツールも検出は困難な脆弱性の一つです。

では、アクセス制御不備って?

Page 7: おちこんだりもしたけど、私は元気です。

アクセス制御不備 1

リクエスト操作により、権限のない情報へのアクセスや操作ができてしまう脆弱性

Application Server

・ なりすましによるサービスの不正利用や情報漏えい

利用者 IDを改変してアクセス

他ユーザでログイン

被害

攻撃者

※ 一般的な脆弱性の説明です。

Page 8: おちこんだりもしたけど、私は元気です。

アクセス制御不備 2

原因: 処理や表示時に、権限の確認がされていない。

利用者メニュー

個人設定確認

利用者メニュー

個人設定確認

https://example.com/profile.cgi?userid=345

https://example.com/profile.cgi?userid=346

対策: 権限情報をセッション変数に保持し、処理や表示前に権限を確認。

Aさんの個人設定

アドレス:○○氏名:××××

Aさんの個人設定

アドレス:○○氏名:××××

Bさんの個人設定

アドレス:△△氏名:□□□□

Bさんの個人設定

アドレス:△△氏名:□□□□

id= 345

id= 346

攻撃手法①

利用者メニュー

管理者用

利用者メニュー

管理者用

https://example.com/admin

管理者機能

システム変更

管理者機能

システム変更

攻撃手法②

※ 管理者用 URL が表示されていなくても、 URL さえわかればアクセスできてしまう。

※ 識別子の値を変更すると

 他人の情報が見えてしまう。

※ 一般的な脆弱性の説明です。

Page 9: おちこんだりもしたけど、私は元気です。

どうする?

アクセス制御不備の項目を診断するには、アプリケーションの仕様を理解しないと、なにがダメか指摘できないので、仕様理解を実施。

① ユーザ Aでしかアクセスできない状態を作り出す。

② ユーザ Bでアクセスしてみる。

<観点>・複数権限(ゲスト、一般利用者、管理者など)が定義されているか。・不特定多数のユーザが利用できるのか。・グループ内で利用できるのか。・特定のユーザしか利用できないのか。

ワークフローシステムの場合、だれがどの情報を見れていいの?掲示板の場合は?この掲示板は公開されているものなの?

業務アプリの場合、仕様理解することが非常に難しいケースもあり社会人力が問われる。

Page 10: おちこんだりもしたけど、私は元気です。

幻覚

そんな、つらいことも

仕様理解ができていないと、「おっ!!これ行ったんじゃね!!」って調子のっていると

Page 11: おちこんだりもしたけど、私は元気です。

とある細胞より早く発見!!

そんなこんなで、いろいろと試行錯誤し、何らかの脆弱性発見。幻覚ではないことを何度も確認した。

実験ノートはつけていないし、 200回以上確認はしていないが、 HTTPログを複数回確認し、「脆弱性はあります」。

Page 12: おちこんだりもしたけど、私は元気です。

成果発表

2日間にわたる激闘の結果、自分がどんなことをやったのかを一人 4分程度で発表。自分の前に 7人くらい発表していたが、みんなテクニカルなことを発表していたので、自分もと意気込み・・・

<発表した概要>

・脆弱性が全然見つからないから、スタイルシート変えて遊んでました。

オレ、技術者じゃないかもしれないと気づく。ただ、ツラい。

Page 13: おちこんだりもしたけど、私は元気です。

結果発表

一応、何件か報告したが、脆弱性として認定されたかは分からないまま結果発表へ

なぜか、 2位になり

2位になれた理由は、発見した脆弱性を横展開し、他の箇所でも同様の脆弱性を発見し、件数を稼いだ結果だと思う。

これを「社会人力」というらしい。

Page 14: おちこんだりもしたけど、私は元気です。

さいごに

昨年の賞金は、すべて飲み代に消えた。今年もその予定。

No Drink No Hack!!