2010/11/05
pylabでMemoryErrorが消えなかった原因がようやくわかった!
2010/10/23
Nokia N8 が届いた!!しかし・・・
円高なのでいやっほーい、とポチったのに、関税が1700円とか。死ね。
それはおいといて、さっそくレビューしてやりたいと思います。
・カメラ
目玉機能として注目を浴びているわけですが、まあまあかなといったところです。
iPhone4は持っていませんが、HTC Legendと比べてみて、
・設定はそれなりに細かくできる。(感度、ホワイトバランス、・・・)
・ノイズが多いので1200万画素が有効活用できているとは思えない。
・ビデオカメラはかなりきれいに撮れる気がする。
といった感じがします。6万くらいするので、カメラを期待するくらいならデジカメを買いましょう(笑)
・使い勝手
動作は非常に悪いです。iPhoneのパチモンよりもできが悪いのでは?と思うくらいモッサリしてます。
また、メニューの位置があっち行ったりこっち行ったりで統一されていなかったり、ExitとかCloseとかCancelとかの用語や挙動が全然統一されていなかったりで、使い勝手は最悪です。
また、アプリ間の連携も最悪です。Androidのインテントの機構が神すぎるのもあってそれに慣れているためかもしれませんが、撮った写真のフォトアルバムから直接twitterに発信するだとか、そういう便利な連携機能がありません。
・アプリ
これが最大の難点だと思うのですが、なんといってもアプリの数が少なすぎます。
とりあえず
・Google Map
・Skype(非公式にGet)
などは何とか手に入って使えますが、
・EverNote
・DropBox
など「えっ?ないの??」というものはかなり多いです。
日本語入力するためのソフトすらありません。
なので、twitterに書きこむにも微妙というかなんというか。
あと、twitterアプリも「これは使いやすい」と感じるものはありませんでした。
というわけで、Nokia
N8はもう少しアプリ側の対応がしっかりしてきてから買ったほうがいいような気がしました。
2010/10/18
情報セキュリティスペシャリスト(午後II)
集中力がいい加減切れてきた午後II、、とりあえず問1のオレオレ解答を晒しておく。
問2はシングルサインオンの見るからに「知るかボケ」な感じだったので、迷うことなく1を選択。
問1は社会人やってソフトウェア開発のプロセスに乗っかって作ってみてこそ解けた感じがする。学生さんたちは「レビュー?なにそれ?」という人もいたんじゃないかなーと予想する。
設問1 a:ア b:イ
解説:
Java?そんなのしらんよ。勘だよ勘!ってのがホンネ(笑)
とりあえず
・stmtを宣言しているのがa
・bでSQLを実行しているんだろうな
くらいはさすがにわかる。
そんで、
・sqlという変数に「?」が入ってて、ここをstmt.setString(1,param)で置換してる?のかな?
・ということはstmtの宣言時には内部にsqlを取りこむものでないといけない。
・ということはSQL実行のbでは引数にsql入れる意味がない。
ってことで、なんとなくbはイと想像できた。
aはホントに勘なのだが、とりあえず明らかにフィルター(絞り込み)とかしてないからdoFilterなんてありえない。
バインド機構だからってbindって、あまりにも短絡的過ぎじゃないか。だいいち、JavaってStatementとかいういかにもベースクラス的なものに「?をsetStringで置換する」とかいう気の利いた機能盛り込むような言語じゃないだろ。お利口さんに派生クラスで実装を追加するもんじゃないか?ってことでPreparedStatementっぽい。よし。アだ。
Google検索してみたら、正解っぽかった。ふぅ。
設問2
(1)脆弱性が発見された場合に出戻りが発生し、修正により長い期間を要するため。
(2)設計する各コンポーネントに既知の脆弱性を含んでいないかを調査・確認する。
(3)セキュアなコードで書かれているか、既知の攻撃手法が適用できないかを有識者やツールを用いて確認する。
解説:
あまり自信はない。ただ、「修正は後の行程ほど大変」という一般法則があるし、「最後にちょちょっと脆弱性見てそれをリリースまでの半月で修正できるの?それまで6か月かけてきたプロジェクトだよ?」という主任の声が天から聞こえてきた(笑)ので、そのまま書いてみた。
レビューで脆弱性を見るって言うのはあまり経験がないので、とりあえずてきとーに書いた。
「セキュアプログラミング」っていう定石があってそれにのっとっているか、もう少し言うと、既知の「ありがちなミス」をしていないか、っていうのがポイントなんだろうな、ということでこういう解答に至った。
設問3
(1)利用者IDのパラメータに任意の利用者IDを取得するSQL条件文を含ませたHTTPリクエスト
(2)想定外の文字が含まれていないか、従業員テーブルに存在するIDか、を確認する。
解説:
午後1午後2を通して、もっとも自信がない。(1)の55文字制限が本当に微妙で何を書いて何を書かないかがホントに悩ましかった。
(1)について
とりあえずどこにインジェクションするかについては、顧客IDについては何の情報もなかったので、クッキーとかに書かれているとすると、それ勝手に書き換えたらログインできなくなるんじゃないか、ということで、利用者IDのほうに着目した。
利用者IDベタ書きなので、とりあえず 「' OR 1=1'」という常とう手段は使えそう。でも、問題文の「データの型チェック」というのはどこまでさしているんだ?単純にStringの型チェック?それとも特殊記号のサニタイズとかも含めてる? うぎゃあああ意味わからん。IPAの試験問題作ったやつ出てこい!
ってわけで、都合よくStringの型チェックしかしてないんだろうと仮定して、ベタな解答に仕上げた。これ推敲だけで30分以上かけた気がする。
(2)について
SQLインジェクションの対策っていうベタすぎる問題。ここでも「データの型をチェック」の意味する範囲がわからなかったので、上記のStringであることしか確認してないと仮定。まずは従業員IDでクオテーションとかスペースとか使うことはないだろっていうのをチェック。でもこれじゃ字数が余るぞ?念のため、従業員IDリストに含まれるかどうかも確認しとくかー、ってことで上の解答に至る。
設問4
(1) 顧客ごとにテーブルあるいはデータベースを分けて、アクセス権も顧客ごとに設定する。
(2) ガイドラインに基づくチェックリスト付きのレビュー報告を委託先に義務付け、X社が確認・承認を行う。
いい加減集中力が切れてきたところ。
(1)について
ありえんやろ!なんで全部の顧客の情報が一つのテーブルに入っとるんよ!?
素人でもここまでやらんだろー。
ってことで、テーブル単位かDB単位で顧客を管理するように変更すべきだと。あとは、念のため顧客ごとにアクセス権(OSとかDBシステム提供の機能で)を設定したら、WebApp経由で特定のアクセス権で実行されても他のはPermission Deniedでしょ、って感じで。
(2)について
レビュー記録というシステムがないと、「レビューしましたー」だけで済ませられるとどこまで信用していいのか分からないんじゃないだろうか?ということで、コーディングガイドラインを守っていますだとか、そういう報告を含めた記録を委託先に提出してもらうようにせんとダメでしょう。うん。きっとそうだ。
知らん。
設問5
(1) c:ア
(2) FWのアクセス制御ルールでインターネット側からのTCP8080番ポートへのアクセスを拒否している。
(3) 設計に含まれる各コンポーネントの脆弱性に関する情報を定期的にチェックすること。
解説:
どういうわけか、最後に一気に楽なのが来た感じ。
(1)について・・・省略。当たり前やろ。
(2)について
この脆弱性がTCPの8080番にインターネット側からのなんとかかんとか、、、って書いてあるので、「え?そもそもインターネット側から8080番ポートとかって開けてたっけ?」ということを思い出す。ファイアウォールで遮断してるので、この攻撃のパケットはRejectされるはず。
(3)について
ミドルウェアでパッケージものだからって安心してるからこういうことになる。エンドユーザーはミドルウェアのことなんか知らないわけで、作ったもの全部に脆弱性がないかどうかが心配なはず。
また、設計途中に脆弱性が発見されるということもこのご時世だと珍しくはなさそう。使用しているコンポーネントについては定期的にチェックするに越したことはないはずだ。おれはやりたくないけど(笑)ってことでこういう解答に至る。
あああ、、どうか合格していてほしい
情報セキュリティスペシャリスト(午後I)
問2と問4のオレオレ解答とオレオレ解説でもしてみる。
なんで問2と問4を選んだのかは、単純に「解きやすそうだったから」である。
サーバーの実運用とかやったことなくってもこのくらい勘でわかるやろ、的な。
問2
設問1
(1) a 無効 b 有効
解説:
aについて
休職者ってことで一時利用停止かな?と思ったけれど、一時停止っていうのは24時間後に有効になる、という状態のことだと(エ)に書いてある。とすると、これじゃまずい。
逆に、無効だからと言って退職するまではログインができないだけであって勝手に消されたりはしないらしいと図に書いてある。
ので、ここは「無効」だろう。
bについて
どうみても無効の反対語で「有効」だろう。初期化も考えたが、管理者権限では無効状態からアカウント削除発行を通らずに初期化へ状態遷移はできない。ので、「有効」
(2) c:不許可(間違えた・・・) d:パスワードを設定してください
解説:
cについて
ログインできないとパスワード変更できなさそう、という固定観念から許可を選んでしまいそうだが、サブシステムではなくUID管理システムのほうでパスワード変更を行うらしいと記述がある。また、パスワードを設定するまで各サブシステムを利用することはできない、とも書いてある。ので、「不許可」
dについて
適当。これよりひねった解答が期待されているとは思えない。「10文字以上」「英数字と記号」とか入れたらそこで文字数オーバーだし。
(3) e:24時間が経過した
解説:
これもなんというかこれ以上書くことが思いつかない。(エ)の条件を素直に書くとこうなる。
設問2
(1)派遣社員の契約満了予定日
(2)4カ月
(3)満了前解除が確定した時点で満了予定日の更新を行うよう手続きを追加する。
解説:
正直これでいいのかわからない。が、これ以外に思いつかなかった。(2)について、現時点のダメダメシステムでは、たとえば
・4月に採用された派遣社員が4月末にいなくなりましたー。
・4月30日まで使っていたとすると、無効になるまで100日。
・無効になるのは8月中旬くらい??なんだってーー!?
・それで削除するのは次の月初めつまり9月1日。
・5月1日に消してほしいのに4カ月も宙ぶらりんじゃないかと。
設問3 何者かがあるUIDを用いてわざとログインで5回間違えてアカウント管理者に当人になりすまして連絡しパスワード初期化申請をした場合。
設問4 アカウント管理者がパスワード初期化申請を受ける際に本人確認を実施する。
解説:
全く自信がない。が、たぶんダメダメシステムではできちゃうんじゃないかな?
というか「なりすまし」というキーワード的に、それすなわち「本人確認を実施していない」と同義なわけで、だとすると本人確認が効いてきそうな場所って・・・知らんけど(エ)の文章のあたりかなあ、ということで。
ふぅ
あれ?みんなもう途中退出?
やっべーーーー
そして、問4に入ります。
設問1 a:セキュリティパッチ b:ブラック c:脆弱
解説:
なんというか、これでほんとにいいのかな?と思ってしまった。基本問題すぎる?とかいっておいて間違ってたらいやなので、、、でも多分サービス問題だったと思う。
設問2
(1) ア:(4) イ:(2) ウ:(1) エ、オ:(3)(4)
解説:
とりあえずFTPかそうでないか、というだけでもだいぶ絞れる。
アはインターネット側からFTPにアクセスできなくする、ということで、(4)。べつに攻撃者が司令塔になってるわけじゃなくて、単純に攻撃者がFTPのID/Passを入手してアクセスしに行ってるわけなので。
イは利用してるソフトのセキュリティ管理。ということなので、脆弱性ゆえに感染してしまうと書いてる(2)。
ウはJavaScriptの無効化。つまりリダイレクトとかそんな気の利いた動作はしなくなるということ。攻撃スクリプトではなく「攻撃プログラム」という表記が意地の悪い(1)
エオはそもそもFTPを使わない、と。FTPという単語が入っているのは(3)(4)しかないので、これらが正解。
(2) プロキシサーバ
解説:
自信がない。ファイアウォールかなと思ったが「サーバを答えよ」になってたので、ファイアウォールではないらしい。で、「社内からのアクセス」って問題文にはあるので、全部のPCがFTP使うときの通り道となるのは、、、プロキシかなあ、ということで。
設問3
(1)
・各社の本番サーバ上にG攻撃のスクリプトが埋め込まれていないかの確認。
・各サーバのHTTPリクエストログを参照し、被害数の見積もり。
解説:
まったく自信がない。「とりあえず困った時はまずログを見よ」の法則を書いてみた。あとは問題文を見ると「共用PCの」不正プログラム・・・「顧客の範囲を調査」した となっていて、「共用PCからは本番サーバにアップロードすることもある」というオイオイありえんやろーな文章もあるので、
感染範囲:とりあえず本番サーバは危険
顧客の範囲:どれだけの人がそこに見に行ったかなんて、記録がないとしらんわ
という感じで上のような解答に至る。
(2) 業務上必要なサイトがプログラム送りこみサイトになり、テストサーバからリダイレクトした場合。
解説:
とりあえず今回は「ブラックリストサイトに飛ばされてたから」W社はおかしいぞと感じた。なので、内容としては
・ブラックリストにないサイトがG攻撃のプログラム送りこみサイトになっている。
・テストサーバへのアクセスが知らず知らずのうちにそのサイトに飛ばされるようになっていた。
なんというか、別のサイトにリダイレクトされたらわかるじゃん!と言いたくなる自分の解答なのだが、iframeを生成して見えないところでリダイレクトさせるとかまで書くと収まりきらない。
でも、iframeで見えないところでリダイレクトさせてた場合ブラックリストのフィルタで「おかしいぞ」って思うかな?うーーん、、、、「ブラックリストにないサイト」だから「改ざんを見過ごす」には論理の隔たりがかなりある、、、、
悩んだ挙句、とりあえず55文字埋めた。
ヲワタ Orz
どうか生きてますように・・・
2010/10/17
情報セキュリティスペシャリスト試験(午前II)
、、死亡フラグ、、、、
とりあえず採点してみる。
1:エ(過去問にあったような、、) 2:ウ(過去問にあったような、、)
3:ア 4:ア・・・ぁぁぁ見直しで直さなければ・・・
5:ウ 6:ア(過去問にあったような、、)
7:エ 8:イ 9:イ 10:イ
11:イ 12:ウ・・・ぅぅぅ見直しで直さなければ・・・
13:イ 14:エ 15:ア(過去問にあったような、、)
16:イ 17:イ 18:ア(http://ja.wikipedia.org/wiki/CSMA/CD)
19:エ 20:ア(選択肢ウを見て吹いてしまった。トップ写真参照)
21:イ 22:イ 23:ウ 24:ウ 25:イ
19
―― ・・・・・
25
情報セキュリティスペシャリスト試験(午前I)
おわたー。こたえあわせしてみる。
午前
1:イ 2:ウ
3:ア 4:イ 5:エ(たぶんア~ウは選択肢が1つずつずれてる)
6:ウ(半分=減少という先入観なく見たらいける。http://www.k4.dion.ne.jp/~type_f/SW_18S_AM/SW_18S_AM_23.html参照)
7:イ らしい。間違えた・・・(http://ja.wikipedia.org/wiki/デュアルライセンス)
8:ウ 9:イ 10:ウ(たぶん。他のは消去法的にないだろう)
11:ウ、、、 12:ウ。らしい、、ルーターが何たるかを今初めて知った(汗)
13: エ 14:イ 15:ア 16:エ 17:ア? 18:ウ?
19:ウ(31日が28日になる) 20:ウ(10月17日に4月17日を復元するには7カ月分必要) 21:エ
22:ウぅぅっ 23:ウ 24:エ 25:ウ? 26:ア 27:イっぽい
28:エ(http://alleralachasse.blog.ocn.ne.jp/zero/2008/04/q79edi_15c9.html)
29:ウ 30:エ(http://zousan.fc2web.com/maga1/back/148.html)
25
――
30
意外といけてた!!
2010/09/26
2010/07/25
2010/06/14
文字入力の要、キーボードを比較する。
キーボードは、実はメーカーによって微妙に配置が異なる。
15インチ物となればFnキー無しでフルキーそなえたPC もあるが、個人的にはNECがやってるようにFn+矢印キーでPage Up/DownやHome/End ができるものが良いと思う。
これのおかげで、NECはテンキー周りの余裕が他社よりある。
逆に、富士通や東芝は、アイソレートキーボードでもないごく普通のキーでフルキーを詰め込んでおり、このあたりはキツキツという印象だ。
2010/06/13
2010/06/04
登山用のテント
今日、思い立って登山用のなかなかに高い(4万くらい)テントを買ってきた。
週末に尾瀬に行くときに使おうかなーとか思ったり。
その昔、ヤフオクで5000円のツーリングテントを落札して、
とくに不便なく使っていたのだけども、引っ越しの時に紛失してしまい、
この前実家で少し探したけれど見つからず、
でも、できれば今週末にテントを使いたいので、思い切って購入。
テントは間違いなく一度買ったらそれなりに長く使うもの。
妥協はしない。
慎重に選びました。
アライのトレックライズ2、
モンベルのステラリッジ2、
プロモンテのVL23
似たもん同士。
違いを探す。
見つからない。
とりあえず、トレックライズは入り口が若干小さめなので却下。
チャリ旅行もそれなりにやるという自分の使い方であれば、
入り口は広いに越したことはない。
モンベルのステラリッジ。かすかな記憶ではあったが、
通気性が若干難があったような、なかったような。
あとは、たたんだ状態がほかの2つと比べて一回り大きいんですね。
というわけで、
やたらと軽くて、それなりに狭くはなさそうなプロモンテのVL23に決定。
しかし、このテント、ほんとに登山用なのか?と言いたくなる点が2点。
同じようなことを思っている人が世の中にもいたようですが →http://mountain-equipment.cocolog-nifty.com/blog/2009/11/vl23-10c1.html
とりあえず自分も多少の改造はせずにはいられなかったわけで、
まず短辺側の下辺中央にツッパリひもを通す場所がないのは明らかにおかしい。
フライと本体はできる限りくっついてほしくないというポリシーに基づき、無理やり下辺中央にひもを縛って
つっぱれるようにした。
あとは、どう考えても不要としか思えない対角線のツッパリひもをすべて排除。
長辺中央のツッパリひもがなぜかアジャスターなしという謎仕様だったので、
とりあえずアジャスターをつける。
以上。
6畳間の和室での作業でした(笑)
ミシンとかあれば短辺の下辺中央は縫い付けしたいなあ。
2010/06/02
体にいいもの、わるいもの
ハンバーガーを食ってコーヒー飲んで、気合い入れるってのも一つの目的ではあったけども、
一番の目的は、スマートフォンをいじるため。Wifi環境がないとネットが楽しめない状況だったし。
さて、一方、もうひとつは、豆腐と「だし」
豆腐のほうは、これはかなりおいしくて気に入ってるやつ。
近所のマルエツに売っているが、ヨーカドーには置いてない。
「だし」のほうは、はじめて買ってみた。こちらもマルエツにて購入。
2010/05/28
ついにきた、HTC Legend
なんかサイズはiPod touchくらいです。
とりあえず初期設定では日本語は使えません。
Androidのアプリ開発でもやっていくことにするか。
2010/05/24
ウィスキー
バランタイン12年。
とはいっても、完全になにもわかっていない初心者です。
山崎、白州、リザーブ、
シーバスリーガル、
などなど「12年」とつくものはいろいろ飲んだことがある。
バランタインに関してはファイネストという安いバージョンもあって、
実は普段はそれを愛飲している。
12年ものはどうかというと、正直よくわからない。
最初の一杯目は確かにすごくいい香りがする気がしなくもない。
でも2倍の値段を出して飲むものかといわれると、若干ギモン。
ということで、次からはファイネストで十分。
あと、ハイボールは邪道だと思う。
これは安くて飲みにくいウイスキーを飲みやすくするための手段だと思っている。
もともと飲みやすいウイスキーを炭酸で割るなんて、、、ありえない。
2010/01/07
iPod touch / iPhone で脱獄後にPHPを使ってオレオレサーバーをつくる。
と思ったら、ありました!という報告です。
ついでに、適当なサーバープログラムを作って他のマシンからたたいてみます。
上の3枚のスクリーンショットでピン!とくる人はくるかもしれませんね。
jailbreak(脱獄)することが前提なので、万人にはおすすめできませんが、そもそもこういうことを思いつく人自体それなりのハッカーの精神の持ち主かと思いますので、、ここは前提として進めます。
管理用のプログラムなどのインストール
パッケージマネージャー(ROCKとかCydiaとか)で簡単にできます。というか、ほぼこれだけです。
まず、OpenSSHを入れましょう。そしたらwi-fiからsshでiPod touchに入れるようになります。
ユーザー名・初期パスワードはmobile・alpineらしいです。ハッキングされないように変えておきましょう。
つづいて、いろいろなユーティリティーを。ほとんどLinuxからの移植モノなので、説明は省略
-nano (エディタ)
-wget
-screen
-php
さて、準備はこれでOK。
PHPで使える機能は一部ではありますが、JSONとかSimpleXMLとかそのへんはおおむねカバーしている模様。
詳しくはしたらわかりますね。
ちなみに、PHPのバージョンは5.2.8のようです。
ところで、file_get_contentsとかその辺が使えるだけでもまあうれしいと言えばうれしいのですが、
どうせならサーバーとか立ててみたいなあ、、、なんて思うのが変態精神。
しかし、socket_createを使おうとしたら、、、あれ?未定義?
これはやばい、と思いましたが、PHP5からのstream_socket_server関数は使えました。なので、とりあえずPHP
manualのサンプルを、使ってみます。
------------
$socket = stream_socket_server("tcp://0.0.0.0:8000", $errno, $errstr);
if (!$socket) {
echo "$errstr ($errno)\n";
} else {
while ($conn = stream_socket_accept($socket)) {
fwrite($conn, 'The local time is ' . date('n/j/Y g:i a') . "\n");
fclose($conn);
}
fclose($socket);
}
?>
------------
そして、別のPCからfirefoxでアクセスすると、、、
ちゃんと表示されましたね!もちろんiPod touchのSafariから localhost:8000/ でも(HTTPにしたがってちゃんと書けば)いけます。
あとは、screen上でこのプログラムを走らせっぱなしにしておけば、それなりのサーバーとして動いてくれるはずです。電池の持ちが悪くなりそうではありますが・・・。
iSSHなどのアプリを入れておけば、
出先でとりあえずPHPが書きたくなった時(←どんな時だよ?)に、localhostにログインしてプログラムを走らせたりできますね。
あ、ちなみに、電源OFF(電源ボタン長押し)をしない限り、プログラムは(スリープさせても)走り続けます。これもなかなかに便利ですね。
そんなに重たい処理をさせないのならば、自宅用の省電力サーバーとして使えるかもしれませんね。