「練習問題」を含む日記 RSS

はてなキーワード: 練習問題とは

2019-08-15

Python3エンジニア認定基礎試験をナメていた

Python3 エンジニア認定基礎試験不合格だった

勉強開始時は、プログラミング学者。今はPandasやNumpyで遊んでいる。

この記事自分のために書くが、今後受ける誰かのためになるなら幸いです。

受験理由

お上流行りのAI人材がほしいから受けてこいと言われたので

試験についてはこち

https://www.pythonic-exam.com/exam

勉強方法

はじめにPythonチュートリアルを読みプログラミング写経してみたものの、正直プログラミング学者自分にはチンプンカンプン

(後ほどわかったけど、写経だとインデントミスがあったり、日本語誤訳や誤字が多かったりして、基礎力がない自分だと一人でカバーしきれなかった)


そこで、プログラミング学者でも読めそうなPythonの本を読むことにした。

本をじっくり読むよりは、プログラミングって、Pythonってこんなものだよってことがわかって、Pythonチュートリアルを一人で読めたらいいかなと思い、基礎試験範囲カバーしていてあまり厚くない本を一読することにし、Amazon unlimited見つけたこPython基の本を読んだ。

https://book.impress.co.jp/books/1115101060


本にあるプログラミング写経しつつ読み、練習問題は一人でやってということを1週間ほどでやった。

この本はプログラミング学者自分でも一人で読み切ることはできたし、この本の練習問題くらいのコードなら一人でかけるようになった。

オブジェクト指向意識して書かれた本らしいが、ぶっちゃけそのへんについてはわからない。


読み終わった後、Pythonチュートリアル特に4章5章を一読。

すると、Pythonチュートリアルにはあるけど初学者向け本には載ってないことが結構あることに気づいた。

このチュートリアルを全部読んで把握するにはお上に言われている期間じゃとてもじゃないけど足りないし、

間内試験に受かることが勉強する一番のモチベーションだしという事情と、

合格率高いし、「Python3エンジニア認定基礎試験はチョロい」みたいな記事が多いし、そんなに細かいこと聞かれないでしょという油断とで、

もう模試を受けてみた。

模擬試験を受けてみた

模擬試験は、おそらくランダムで40問選ばれていたので、サイトにある出題範囲通りでなかった。

1回目の模試は、ギリギリ合格ラインの点数725点!

模試を受けてわかったことは、当たり前かもしれないが本に載ってないこと結構聞かれる。


結構かいことを聞かれていると感じた。

例えば、普段NumpyやPandasなどなどに甘えているせいかもしれないが、見たことないモジュールが出題されているなど。

謎訳が個人的に読みにくく、Pythonチュートリアル英語で読んでいたが、試験はその日本語で出るので、日本語版を読むべき。

あと、主教であるオライリー・ジャパンPythonチュートリアル 第3版」には載っているけれど、Pythonチュートリアルには載っていないこともあることに模試で気づいた。


模試の点数はあまり参考にせず不安だった箇所の復習に使い、再受験を3回行った。

模擬試験問題バリエーションは多くないのか、かなりダブる問題があり、3回とも90点は超えたので本番受験してみることに。

本番

模試とちがーーう!

模試よりも難しい、難易度1.5倍くらいに感じた。

サクッと解ける問題もあったけど、わからないなっていう問題模試に比べると多かった。

例えば模試に比べると少し複雑な構造をしたプログラミング、など。


そして単純に覚えてない知識を問われてた部分も多々ある。

(誰がいつ使うんだっていう知識だとも思ったが)


そしてこの試験独特の言い回しが多い。

オライリー・ジャパンの本を確認したところ、この本独自言い回しかもしれない)

結果出た後Pythonプログラマーに聞いたら、何について聞かれているのかパッとわからないと言われた。

所感

模試あくま模試

本番は細かいことを聞かれ、難易度1.5倍くらいになるので、Pythonチュートリアルは細かいところまで読み込むべし。

せめてメインの出題範囲である4章、5章はチュートリアルにあるプログラミングまで追うべき。

そして、どうしたらエラーが出て、どうしたらすべて実行されるのか、まで確認すべき。

正しい処理ばかりでなくて、たまにはわざとエラーを起こしてみた方がよかった。

エラーをあまり経験しておらず、どういうときにこのプログラムはつまるのかという想像力が欠けていて、そこがないと試験はつらかった。

過去問ほしいなと思うけど、試験側の問題の種類が多くないんだろうな。

(落ちた分際で偉そうに言うが、流行りの言語Pythonとはいえ、この試験逆に通って何が嬉しいのかわからない。)

参考サイト

Python チュートリアル

https://docs.python.org/ja/3.5/tutorial/index.html

PythonPython3エンジニア認定基礎模擬試験 β版

https://diver.diveintocode.jp/exam

Python3エンジニア認定基礎試験効率的勉強方法!

https://ccie-go.com/python-exam-study/#i-10

合格への道】Python 3 エンジニア認定基礎試験

https://gabekore.org/python3-basic-exam

2019-07-30

anond:20190730205354

事前に配られてた練習問題と全く同じ内容(数字も同じ)の試験を出す優しい先生いたなあ

単位落としたけど

2019-05-10

次に背が高いのは? の答え

https://togetter.com/li/1353321

 

Aの身長は150cm

Bの身長は155cm

Cの身長は160cm

Dの身長は165cm

Eの身長170cm

この5人の中で、Cの次に背が高い人は?

 

11の次に大きな素数は?

ちなみに素数は2, 3, 5, 7, 11, 13, 17, ...と無限に続きます

 

これ

①「配列Aの中で、Xの次に{条件}なのは?」

②「配列Aの中で、Xの値の次に{大きい/小さい/次に来るもの}は?」

 

の2通りの解釈で迷ってる人が多いんだろうが、今どちらも①はねーぞ

・「背が高い人」が条件たり得ていないから②である

・「素数」は条件たり得ているが、「大きな」と言ってるからである

 

から答えはBと7

 

例えば、以下のようにすると①足り得る

 

Aの身長は150cm

Bの身長は151cm

Cの身長は180cm

Dの身長は185cm

Eの身長は190cm

 

平均身長:160cm

 

この5人の中で、Cの次に「平均身長より大きい人」は?

 

これは答えはD

「平均身長より大きい人」は大小ではなく、条件であるから②ではない

 

11の次に「5より大きい素数」は?

ちなみに素数は2, 3, 5, 7, 11, 13, 17, ...と無限に続きます

 

答えは13

「5より大きい素数」は大小ではなく、条件であるから②ではない

 

答え割れるよね〜じゃねーよ

ここらへんできないと普通にセンター試験で詰むだろ

 

ちなみに、①は「前の」と言えるが②は「前の」とは言わない

ex:「次に大きい人」「前に大きい人」

 

_____

 

練習問題 

 

北海道青森秋田沖縄東京福島高知

この中で東京の次に北に位置するのは?

 

高知

 

常磐線上り

取手天王台我孫子北柏、柏、南柏北小金新松戸馬橋北松戸松戸金町亀有綾瀬北千住・・・

と停まる

このうち特快が停まるのは

取手我孫子、柏、松戸北千住・・・

である

 

1.取手から特快で出発した時、松戸の次の駅は?

2.特快が止まらない駅の中で、松戸の次に取手に近い駅は?

3.上りで見た時、松戸の前に特快が停まる駅は?

 

 

1 北千住

2 金町

3 柏

 

2019-01-17

プログラム書き慣れたくてpaizaの練習問題やってるんだけど数学っぽい問題が多い。

バリバリ文系数学だけ常に赤点ギリギリマンだったから辛い。

実務でも数学使う機会あるのかな。あるんだろうな。

2018-11-19

anond:20181119080915

今はそれでいいけど、今やらされてるのが全体を掴むための練習問題みたいなことであり、まだクビにできないスペシャリストまで成れてないことは頭の片隅にいれて。

中年やら老年まで働くなら次の居場所模索して言いやすいだけ言うような人とも一味違うひとにならんとね。

妊娠したら辞めてとか容色おちて愛嬌もあくなったら辞めてとか継続再就職もできずパニクってからとか、タイミングはいろいろだが。

若いうちから対策しておかないとここで吹き溜まり文句だけ言う人になるぞー

2018-10-15

LGBT練習問題

次に挙げるそれぞれの発言をしたのは誰かを答えなさい。

(A) 「隠れホモ」はLGBTとは関係ない

(B) (LGBTカップルは)子供を作らない、つまり生産性」がないのです

(C) LGBT先天的DNA問題であり、治療対象になる「障害」ではない

(D) (LGBTの)静かに暮らしているのだからそっとしておいてほしいという反応は、学習性無気力症なのではないか

2018-09-28

anond:20180919164125

ボクも大学受験私立文系型の勉強しかしていなかったので,大学はいって数学をやり直しました.高校ちゃんとやっていないのなら,日本人が書いた教科書じゃなくてアメリカ大学学部教科書翻訳)がいいと思います特に経済学用の数学教科書がとっつきやすいかも(事例としても経済経営問題がでてくるし).古いですが私が学部生の時に使ったのは数学では次の2つです:

G.C.アーチボルド (著), リチャード・G.リプシー (著), 作間 逸雄 (翻訳)『入門経済数学 』(1) と(2), 1982/9

学生版でなく,練習問題の解答が附属している2分冊になっている通常版(コレ)が良いです.アマゾン中古で数百円で買えます線形代数微分積分最適化問題線形計画法等をカバーしています

A.C. チャン (著), K. ウエイライト (著)『現代経済学数学基礎〈上〉〈下〉』 単行本 – 2010/1/1

旧版なら,これもアマゾン中古で数百円で入手可.上の書籍カバーしている項目のに加え,微分方程式差分方程式が学べます

あと確率統計なら

T.H. Wonnacott, R.J. Wonnacott, Introductory Statistics for Business and Economics, 4th ed. 1990.

が定評のあった教科書で,私もコレに助けられました.これもアマゾン中古で数百円.

2018-09-19

anond:20180919164125

ある程度腰を据えて勉強するのなら大日本図書数学シリーズ(高専生を想定して作成された)を強くオススメする.

https://www.dainippon-tosho.co.jp/college_math/

高専は,工学を学ぶ五年制(高校+短大)の大学である.本教科書シリーズを一通りマスターすると文字式の展開から複素関数論まで,高校数学のなかでも工学必要知識(≒数学科を除いた大学数学必要知識)+基礎的な大学数学(微積線形代数ベクトル解析,複素関数論,ラプラスフーリエ変換)を学ぶことができる.

読者の対象はそれほどハイレベルではない(高専にもよるが,偏差値の低い高専高校偏差値で55程度+大学受験を経験しない)ので,説明が平易で,例題も豊富練習問題も非常に豊富である.それでいながら公式の導出はどれもしっかりと記されているので,腰を据えた勉強にも向いている.

全六冊だが,一日数時間をとって勉強できるのなら数週間で一冊を容易にマスターできるようになっている.

統計学理解したいのならば,本シリーズ教科書を以下の順序で学べばよい.

基礎数学(高校数学の基礎が身についているのなら省略可)→線形代数(ベクトル定義から線形写像)→応用数学(ベクトル解析の単元だけやればよい)→確率統計

2018-09-17

簿記勉強をしているけど些細なことにつまづいて全然先に進まない

まだ三級なのに

いま、参考書仕訳のところを読んで、仕訳練習問題を解いている

決算書に出てくる科目はある程度見たことがあって、よくある下のような表を思い浮かべればなんとなくわかるようなわからんような程度

資産」/「負債」「純資産

費用」/「収益

でもこの表も、「資産」と「純資産」が違う列にあるのがよくわからない。どっちも資産って書いてあるのになんで負債純資産が同じくくりなのか。

それに「資産」と同じ列にくるのが「収益」じゃなくて「費用」なのも統一感なくて気持ち悪い

貸方とか借方とかはよくわからないけど、「借方は左側の列」というのは覚えた。

なんで左側が借方で右側が貸方と呼ばれるのかはわかっていない

売上100

入金100

みたいな問題で、なんで仕訳だと入金100が現金100になるのかが理解できない

入金という言葉決算書の科目で見たことがないから何か違うのに変えるんだろうなぁというくらい

でも、入金されたなら当座なり普通なりとにかく預金じゃないの?

仕訳は暗記っていうらしいけど、何を暗記したらいいのか…

学生時代の専攻もあるけど、去年基本情報を受けた時は過去問3年分くらいを解答見ながら2〜3回解いたら受かったから、暗記はできる方だと思ってたのに、簿記三級は解答見てても理解が出来なくて全く頭に入ってこない

未来永劫受かる気がしない

2018-08-10

作文に型がないのはなぜ?

算数には公式練習問題があり、音楽には楽譜がある。

プログラムコードで動くように、日本語文章も型をたくさん書き取らせて作れるようにしたら、決まった感情を吐き出す決まった型が用意されていて楽になるのでは。

歌が「和」歌と呼びわけられる状況がおかしい。

jポップや演歌いくら下に見ようと、庶民感情言葉はあれなのだ

中身がじめじめしている。

俺はすごい、と歌う歌がもっとあってよくて、それはこれからヒップホップがになっていくが、元々俺はすごいと歌っていたジャイアンヒップホップを歌うのはなんかすごいから、ヒプマイはすごいコンテンツなのでは。

2018-07-20

データサイエンティストのおじさんちょっと来て

この条件でぼくの先生になってと言ったら1日おいくら万円必要ですか?

2018-03-17

anond:20180317194121

元増田です。私の場合個別指導塾だったので、受け持った生徒たちは大概、1時間1コマで週2~4コマ、週に2日は通ってきてる子供だったので、増田家庭教師の条件とは全然違っていて、私の方が有利?だったんじゃないかと思います増田の指摘通り、週1回1、2時間だと、多分キツイです…。

勉強をしなれていない子は、べんきょうたのしい!と思う頻度が少ない、次までに間が空いてしまうのは良くないように思います。あとは宿題を出すようにはしていました。テキストから練習問題を少し、その日に勉強して理解できたっぽいかなーと思える問題だけを選んで練習させることと、あとは英語については、レベルに応じて「目についた英単語を5ケノートに書き写してくるように」とか「目についた英語文章を書き写してくる」とか、興味を引いてもらえそうな、ご褒美系の宿題も出しました。今言ってはジャスラック的にアレかもしれないけど、まぁ洋楽流行りのJpopのアレをナニしてきたりとか…子供たちが好きなものを題材にすると、やっぱり抜群に食い付きが良かったです。

ただやっぱり週1はキツイと思うです。

2018-02-18

anond:20180218122025

学生時代

国語テスト前、クラスの奴らが

「オレ今回はかなり暗記できたもんね!○○の好きな食べ物は××とか!」ってでかい声で話してるのが聞こえてきて

嘘だろそんなこと覚えても意味ねえじゃんクイズ番組じゃねえんだぞって思った記憶がある

国語苦手な奴はどこがテストに出そうか、どんな問題が出そうか見当がつかないんだなって衝撃を受けた

でも苦手な数学では「この公式がどういう意味なのか気になって練習問題に取りかかれない……」「何でこの問題はこの公式を使う必要があるんだ!?教科書にも問題集にも書いてない……ここはそういうものから、じゃ到底納得できない……」とか思ってたかお互い様だけど

2018-02-03

Web上の学習動画講義について考えたこ

 現在、有料の「学びエイド」、無料の「Web玉塾」、無料の「Manavie」家庭教師のトライがやっている無料の「Try it」、この4種の動画講義を主に利用している。

 

 この4種の中で、学校の授業に1番近い作り方をしているのは、「Try itである最初過去講義の振り返り、今回のポイント練習問題、振り返りと続く。1本の講義時間10から30分までである

 動画講義の中で1番短いのは、Web玉塾、学びエイである。両者の動画講義は基本10分程度に長さを抑えてある。ポイントは1動画に1つから2つ。1度学校の授業を受けてから見る動画という印象だ。Web玉塾は、古くからある動画講義で、早口コンパクトにまとめてある。学びエイドにある講義Web玉塾と同様の傾向がある。

 Manavieは、授業に似た講義(Mundi先生世界史日本史地理(途中))や学びエイド的な講義(とらます先生生物)、Web玉塾など、ネット上の無料動画講義キュレーションしたサービスであるユーザーインタフェースも整ってきている。

 現在、私は理科高校教員として働いている。Manavie、Web玉塾の生物動画講義を生徒に進めてみたが、どうも評判が良くない。なぜか考えていたところ、とらます先生ブログの下記ページからヒントを得た。

受講スピードに関する再発見

http://genuinestudy.seesaa.net/article/456325367.html

 上記リンクを読み、私が出した結論は、Web玉塾、Manavieの生物動画講義は、高校の生徒にとり早すぎるということだった。

 この発見から、次は家庭教師のトライの「try it」の生物講義を進めてみようと考えている。生物を一度学んだものにとっては、「try it」の講義は遅すぎる。しかし、私の仮説が正しければ、高校生には講義スピードの遅い「try it」は受け入れられるかもしれない。

 動画講義を作る人は、塾の先生教育燃えボランティアが多い。そのため、動画をなるべくコンパクトにし、勉強時間効率を高めるよう作られていると私には感じられる。

 しかし、多くの講義動画をみて私が感じたのは、長い動画にも見やすものがあるということだ。特に、ManavieのMundi先生動画は、世界史日本史に対する、Mundi先生愛情が溢れている。このため、長くても見れる。

try it」を見ていると、多少時間が長くてもゆっくり20から30分程度)1つの事柄説明しているため、授業作りのヒントが得られることも多い。長い(20から30分程度)の講義動画需要もあると感じた。

2017-12-31

文かけない人

私に文才はない。というか、ある程度の文章を書いたことがない。いや、書いたことだけではなく、読んだこともない。なぜ読まないのか。それは読んでいても直前のことを忘れてしま自分の頭のせいだろうか。それとも、小説は読んでも何の足しにもならないと思っているせいだろうか。そんな理由ではなく、ただ単に読んでいると文字を読んでいると無条件に眠くなるからだろうか。とにかく、私は本を読むということができない。こう言うと、学校教科書とかは読めたのか?と聞かれるが、あれば大丈夫であった。多分、学校教科書の内容は、一行一行理解しようとして読んでいたし、所々に出現する練習問題のおかげで読めていたんだろう。私には小説新書のような本は、一行一行真剣に読むことができない。それは、学校試験のために勉強する切羽詰まった感もないし、小説は注意深く読むには長過ぎるし、注意深く読んでいると細かい表現統一感の無さに苛つく。では小説理解を確かめ問題があったらどうだろうか。さっき一瞬良いと思ったのだが、小説にそういうものがあったとしても自分は読まない。断言できる。新書にあったらどうだろうか。うん、読まない。教科書が読めた理由を考えて、それを小説新書適応したら、自分が読めるようになるかを考えたが、適応したところで読まない。教科書が読めた理由はやっぱり、やらなければならなかったからという気がしてきた。読めない、いや、読まない理由は単純であった、私は怠け者だから自分にそれが必要になるまで拒否していただけだったようだ。

いや、おかしいではないか自分は怠け者なのに、なぜこんな文章大晦日に書いているんだ。この文章を書く必要性なんて全く無い、むしろ、これを書いている時間テレビでも見てコタツで猫と遊んでいる方が、怠け者のあるべき姿ではないのか。怠け者と猫とコタツ。今すぐ手をとめるべきであろう。しかし、書き続けしまう。おお、もしやこれが世に言う承認欲というものを得んとする行為なのか。承認されたいと願う心は、こうも人間を動かすのか。

本当に承認されたいだけで、こんな文章を書いたとは思えなくなってきた。おそらく承認されると人は気分が良くなるのだろう。その気持ちの良さを得たいがために、承認されたいよーと思うんだろう。ここで、推量を使っているのは、自分がまだ承認されることが気持ちが良いということをネットでも現実でも体験をした記憶がないかである現実で認められたことがないんなんて可哀想な人だなと思われるかも知れないが、可哀想なのだ12月31日にこんな文章を書いているんだから現実の方はお察しだろう。ネットの方でも、twitterinstagramアカウントをとってから、一度も投稿をしておらず、好きなユーザー投稿をおっかけることだけに使っている。twitterinstagram自分から投稿しない理由を考えてみるに、自分には人との繋がりが乏しく、どうせ投稿しても誰も見ないだろうという考えを持っているのでは。ということは、見てくれる人がいれば、投稿しそうな気もする。この見て欲しいという欲求承認欲では無い気がする。なぜなら、私は、見てくれるという行為だけでいい。見た結果、何とも思わなくても良い。ただ見てくれただけで嬉しい。コメントなんかで批難とか批評とか反応してくれたら、もっと嬉しい。貶されても良いと思っている、この思いは承認欲求がなすわざなのか分からない。

自分はタダのかまってちゃんなのか。少考し違うと結論。例えばこの文章の総閲覧者数が見えたとして、それが「3人」だったとしても、この文章を書いて良かったと思える。上にも書いたが反応は無くても構わない。その上、おそらくその3人は誰も最後まで読んでいないのだろうと思うが、一部分だけでも目を通してくれたことを嬉しく思う。では閲覧者数が「0人」だったらどうだろうか。かなしい。1人でもいいから、この文章存在たことを認識して欲しい。10秒で記憶の彼方にいっても構わないから。この0人は悲しいというところから、この書くという作業が楽しくて楽しくてやっているわけではないことになる。

ここらで怠け者の本分がでてきて、めんどくさくなってきた。猫と寝ようっと。

2017-12-26

anond:20171225180644

そう、たまにはこういう練習問題必要だと思う。

詐欺被害の防止のためにも、「釣りなんてない、ネットに書いてあることは全部本当のことだ」と純粋無垢に信じている人は極力減らしていかないと。

2017-08-31

あいがもん氏の高認試験挑戦ブログ

読んだ。

私も中卒(都立高校中退である

七年前に高卒認定試験を受けている。

その時のことを思い出して、懐かしいような、こそばゆいような気持ちになった。

高認過去問題集の表紙デザイン、七年前と変わってないんだな……。

試験会場の大学、私が高認受験したところと同じかも……。

など、今まであまり身近に感じたことがなかったタレントさんに対して一気に親近感を覚えてしまった。

あい氏は今回の高認試験で、惜しくも数学のみ不合格だったようだ。

あい氏がどのように勉強されたのか、ブログ過去記事をまだ読んでいないため不明だが、高校一年生の一学期中退し、何もかもチンプンカンプン状態勉強を始めた私の場合はどのようにしたのかを僭越ながら書いておきたい。

まず私は新大久保にある教科書販売店に行き、棚にずらりと並ぶ各社の教科書の中から、最も易しそうで最もページ数が少ない「数学 I・A」の教科書を選び購入した。

そして最初から最後まで精読しつつ、すべての練習問題を解いた。

その教科書イラスト豊富で字も大きく、パンフレットなみの薄さだったので、自分でもちょっと頑張れば最後まで読めるかも……と思えたのが良かったんだと思う。

数学に対する苦手意識が強いあまり、はじめは教科書を見るだけで冷や汗が吹き出し、吐き気を催すほどだったが、一周目をなんとか終えたときは驚くほどの達成感があった。

最終的に、教科書を四周した。

四周目には、一周目であんなに苦戦していた練習問題も瞬時に解けるようになっていた(問題と答えをすべて覚えてしまったというのもあるが)。

そして高認試験の結果。

なんと数学は満点を取ってしまった(※ 自己採点による)。

しか数学勉強時間を割きすぎた結果、他の教科は準備不足となり、高認試験のもの不合格

惨憺たる結果に終わった(こういう要領の悪さが私が中卒になった原因のひとつなんだろうなー)。

というわけで、高認数学過去問題集だけだと解けないかもしれないが、教科書を使い繰り返し練習問題を解けば私のようなアホでも点数はとれたという話。

最後に。

懐かしい気持ちを思い出させてくれたかあいさん、ありがとう

2017-06-26

なぜ日本で基礎研究が軽視されるのか、2つの記事で腑に落ちた気が

先日ホッテントリ化した、口は悪いけど舌は鋭い増田

はてなの中高年は今井絵理子の発言を理解できない

あいつらは「批判」をすっごい悪いことって意味で使ってるの。
批判」は和を乱すとか喧嘩を売るって意味しかない。ケチをつける。因縁をつける。人の気分を悪くする。
批判は、すごくネガティブな、ピースフルでない、縁起の悪い行いなわけ。喧嘩とかケチ付けってことなわけ。

と、ここのコメントの1つ

研究者の頭脳と時間を、違うことに使いすぎている - 日経テクノロジーオンラインブコメ

基礎研究と応用研究政治家アカデミズム算数ドリルがまだ区別できておらず「基礎なんかすっ飛ばし最初から応用問題が解けた方が効率よいし偉くね?」って本気で思ってそうなくらい、基礎研究軽視だからなー
2017/06/24 17:10

2つが脳味噌の中で化学反応して、

なんで歴代ノーベル賞受賞者の面々が口を揃えて異口同音に「日本は基礎研究予算かけなさすぎ」って叫んでるのに、政治が一向に基礎研究への予算配分増に対して及び腰なのか、
一方で金欠だ振興費はもう頭打ちだと言う割に「チョコレートで脳が若返る」とかいう明治PRにノせられスライドだけ無駄に立派なトンデモ似非研究内閣府が飛び付いて、予算がすんなりタンマリ通るのか、自分の中で勝手に謎が氷解した。

いつもなら「選ぶ側の政治家科学研究学問に対して無知無理解から」「真偽を判断するだけの科学リテラシー知識が無いから」で済まされて、最終的に「日本の政治家がバカばかりなのが悪い」と結論づけられるが、
多分それだけじゃない。使ってる言語体系と価値観の相違も勘定に入れるべきだったんだ。

何が言いたいの?

まり内閣府の皆さんや現行の政治家の皆さんの多くが「基礎研究」「応用研究」の頭に付く「基礎/応用」という修飾語を、我々と違うニュアンスで捉えてるかもしれない、ってことだ。

・「基礎研究」と「応用研究」(大学研究機関
・「基礎問題」と「応用問題」(数学問題集

似てるようで全く異なる両者を、同じ意味イメージしていらっしゃる可能性が非常に高いかもしれない…ってことだ。

まり

「基礎研究というものは、延々と3+(-4)=-1… みたいな、計算ドリル初歩の練習問題を繰り返してつまづいている段階であり、それすらすぐ正答できないという事は無知で後進的で恥ずべきこと。
 基礎なんかはもうとっくに出来てる前提で、応用研究問題)がスラスラ解けるようになる事が到達目標であり良いこと。だから限られた研究予算は、基礎研究問題)なんかをいつまでもダラダラやってる子(大学)よりも、
 成果がすぐ見える応用研究問題)をいっぱい手がけてる優秀な子(大学)に優先して配分するよ!」…という盛大な勘違い価値観のまま、表彰対象を選んでる可能性がある。

…いやそれも「連中が無知なのには変わりないだろ」と突っ込まれるかもしれないが、純粋に知らないのと、知ったつもりで誤解したままなのでは話が別だ。
もし「基礎<応用」という上記のニュアンスで捉えている人が多かったら、科学者の"基礎研究大事しろ"の声が政治家に届かない理由も分かる。

"基礎研究なんて膨大な無駄の中からほんの少し凄いものが出てくるって世界(id:k_oniisan)"っていう正論も、「基礎の段でつまづいてるような出来の悪い子が、こづかい減らされるのを恐れて出来ない理由言い訳を並べている」
しか受け取られていないかもしれんわけだ。たまーに偉いノーベル賞受賞者先生擁護して同じことを言っても、「出来の悪い子を、自分の身内やお友達や生徒だからって庇い立てしてるだけだ」と見做されているわけだ。

他方、基礎を終わらせて、もしくは基礎を飛び級して、成果の出る研究、金になる研究、応用研究軸足を移し、先駆けて沢山手がけている子こそが優秀であり、高効率であり、限られた科研費の優先投資先として
相応しいのだと。そういうロジックで選んでるのだとしたら、民間企業協力のキャッチーな予備実験や仮説もどきの方が最先端研究だと持て囃されるのも実に納得だ。

そりゃ平行線にもなるわ。

書いてて絶望的になってきた。自分だけの思い込みかもしれないけど、これで科学立国とかマジで無理ゲーじゃね?

2017-06-28 追記

思った以上に賛否色々とブコメトラバを頂き、話題をすぐ畳むのが勿体なくなったので折角もう少し風呂敷広げてみよう(広げた後に収拾する気があるとは言ってない)

予算」という言葉も同じく、科学者-政治家間で定義がすれ違ってる説

id:outalaw 「予算」という言葉がすれ違っていそう。科学者たちは恒久的な人件費を含めているが、行政は一時的な雇用費や物品費こそ予算と捉えており、行政のいう予算は横ばいだが科学者のいう予算は減り研究時間も減っている。
id:death6coin トランプアメリカもっと低い次元にいそう/http://www.nistep.go.jp/archives/32530によれば予算的には減っていないが出どころが変化しており、研究者に成果へのプレッシャーがあるのではないかとの分析がされていた。

確かにその可能性も高そう。年度毎に補助金申請書を書き直さなくてもよい永続的フロー保障される事を要求する研究者サイドと、◯期活動分のキャッシュを確保することに奔走し、科研費増なんて出来るわけがない現実を見据えてる政治家サイド。
かたや「基礎研究への予算が増えない」と嘆き、かたや「予算は水準維持してる」と主張するのも、どちらかが嘘付きって事ではないはず。おなじ「金」のことを話してるんだからすれ違うはずがないと思いきや、両者の中で定義が違うままと。
で、河野太郎の研究者の皆様シリーズもまた、ブクマ上位によく来る人気エントリだが、結局できる事は"成果を生まない大型プロジェクトをつぶしてほかのことに振り替えるか、または成果を生まない研究者予算をほかに振り替えるか"
実際上記の通りプレッシャーかかってます

元々長期的視点つのが苦手な上に、科学技術振興予算の上限まであっては、短期的に金になる成果を優先せざるを得ない

*id:kaeuta 馬鹿にしたい気持ちはわかるが、今の政権経済産業寄りという点に尽きる気が。国民感情的に「膨大な無駄」が許される状況ではなく、基礎研究がすぐに金を生まない以上、金になりやすい応用研究が推進されるのだろう
*id:mainasuplus 増田にもあるけど、短期的に金になると想定される分野にしか研究費を突っ込みたくないのだろう。基礎研究文系学問研究費が落ちてこないのはほぼこれに尽きると思う。

予算は限られてて、社会保障費並の伸び率で野放図に増やすわけにはいかない。じゃけんせめて、振り分ける対象の厳選仕分け優先順位付けくらいきちんとしましょうね~ という大筋は正しい。
が、それでも「基礎研究に割り振る比率はもう十分与えたから、与えられた枠内で工夫するか減らすかしてね」には強く反対する。

また抽象的な例え話に飛ぶが、国民政府も喉が渇いてて、収穫すればすぐ生食できて喉が潤う万能フルーツ『成果』の大規模栽培を皆が渇望しているわけで。
収量予想や収穫期限コミットまで厳しくガン詰めされているので、使える湯水(金)も限られ、なおさら『成果』を優先栽培する以外に選択肢はないわけで。
でも、その『成果』を栽培するにあたって必須となる土づくりと肥料、その名も『基礎研究』…これは今すぐ食えるモノじゃないし成功保障も低いから、金かけるのは後回しにしてね。そう言ってるわけだ。
もしこれから科学事業を再び仕分けていくにしろ、まかり間違って奇跡が起き科学振興予算が倍増するにしろ、上記の思想ベースである限り、どれだけ湯水の如き金があっても、きっと土壌と肥料最後まで後回しで、
皆こぞって効率良い『成果』の密植技術開発に明け暮れるのだろうね。やがてサイエンスという土壌は、キャパを超えて過剰密植された『成果』に養分を吸われて徐々に痩せてゆき追肥もされないので
最期は何も生えない不毛の大地けが残りましたとさ。めでたしめでたし


省庁や官僚役人は流石にそこまでバカじゃないし正しい意味知ってるけど、敢えて政治家への啓蒙放置して状況を利用してるよね

これには強く同意する。事業仕分けとかで管轄範囲権益を侵さない限りは、知った上で正しく確信犯として野放しにしてる感


「基礎」って言葉が誤解を招いてるから、別の語に置き換えよう(提案

ボケ痴呆認知症」っていう事例もあることだし、たか言葉遊されど言葉遊び、形からでも変えてみる意味はあるかもね。
但し、「障がい者子どもメクラチビゴミムシダマシ」のように、無理に言葉狩りして理念が追い付いてない、仏像彫って魂入れずだと反感を買うおそれもあるね

2017-04-06

http://anond.hatelabo.jp/20170406055502

増田ひとつ言えるとしたら、

練習問題は、女とサシになったときだけじゃなくて、

職場の女と話すとき雑談でも仕事の依頼でも何でもいい)

職場の女と誰かが話してるのが聞こえたとき

職場の女同士が話してるのが聞こえたとき

にも転がってるってことかな。

そういうときに、観察してみなよ。

同じ人間だけど、違う文化を持った外国人異文化交流

って言った意味が分かるから

2017-04-05

http://anond.hatelabo.jp/20170405022829

まあ最初からうまく行くことを夢見過ぎというか。

なんか新しいことをするとして、解説読んで分かった気になっても、

練習問題とか実践してみて、最初は分かんないから答え見ながらやってみて、

まるきり何も分かってないか殆ど答えと首っ引きでやるしかなくて、

それしてから、もう一度、さっきの解説読み直すと、

自分がさっき読んでても分かってなかったことが分かって、

また練習問題やってみて、今度は1回目より早く出来て、

それを何度も繰り返して、はじめて空で出来るようになったり、

応用問題が出来るようになる。

増田の今の状態は、はじめて練習問題に手を出した状態

スラスラ出来ないから、教科書八つ当たりしてるような。

あと2段落目とか読むと、ネットに毒され過ぎだな。

ネットの女は一旦忘れて、

外国人異文化交流するつもりで対応した方がよいよ。

2016-04-26

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

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

ログイン ユーザー登録
ようこそ ゲスト さん