貴重な休みである土曜日に、朝から「WAS Forum Conference 2008」に参加してきた。私はCIOでもCTOでもないので「Developers DAY」のみ参加してきたが、前日の「CIO/CTO DAY」にも大変おもしろいプログラムがあったらしい。

それはそれとして、Developers DAY。

7/5 Developers DAY – 事件は現場で起こっている……セキュリティライフサイクルとマルプラクティス – Web Application Security Forum – WASForum

  • Morning Session:今どきのWebセキュリティ
    チェア: 独立行政法人産業技術総合研究所 高木浩光
    • EV SSLの意義と課題
      (有限責任中間法人 日本電子認証協議会 代表理事 秋山 卓司)

    • EV(Extended Validation) SSLとは

    • ちゃんとした認証局(いろいろ基準がある)が実在証明の取れたwebサイト所有者のみに発行する

    • 対応ブラウザ(IE7,FF3,Opera9.5など)ではアドレスバーが緑になる(など、EV SSLであることが明示される)

    • 通信経路が暗号化されていること、webサイトが信頼のおける所有者によって運営されていることの判断基準となる

    • 課題(特に日本において)

    • 暗号アルゴリズムの世代交代の時期に重なってしまった

    • マルチバイト言語の扱いが確立していない

    • 企業におけるドメイン管理がいい加減で、所有者と運用者が違うことが多々ある

    • 費用対効果が受け入れられるか(取得費用は2桁ほどアップする場合もある)

    • 対応する携帯端末が少ない(今年のモデルから)>移行に時間がかかる

    • 問題はまだいろいろあるが、こっちに移行していくのは間違いない流れになるだろう

    • SQLインジェクション対策再考
      (HASHコンサルティング株式会社 代表取締役 徳丸 浩)

    • 正しくない対策の今昔

    • 大手IT系サイトや政府機関の記事にすら間違った解説が堂々と載せられている

    • プログラマが正しい理解をして、記事を鵜呑みにしないのが重要

    • そもそもSQLインジェクションとは

    • リテラル(文字列/数値)がリテラルから「はみだして」SQL文として解釈されてしまう

    • 危険度は関係なく「SQLとして解釈された」時点でアウト

    • 対策の実際

    • プリペアドステートメントへのバインドを利用するのが一番安全

    • 古いコードを作り直すのが難しい場合のみエスケープ処理を行う

    • RDBMSの種類によってエスケープする必要のある文字が違うのでちゃんと予習しよう

    • DBアクセスライブラリのquote命令を信用しすぎないよう注意
      >RDBMSのAPIを使ってない場合がある

    • 数値を想定している値は数字チェックを行う
      >特に変数に型がない言語は要注意

    • アプリケーション側では制御文字のチェックも行う
      >ミドルウェア側でやってくれるといいんだけど…

    • 参考リンク

    • 徳丸浩の日記 – そろそろSQLエスケープに関して一言いっとくか – SQLのエスケープ再考

    • 携帯電話向けWebのセキュリティ
      (グリー株式会社 取締役CTO 藤本 真樹)

    • Refererの問題

    • ケータイwebではSessionIDをURLに乗せることが多い

    • 外部サイトへのリンクでRefererが漏れてしまうとセッションハイジャックの危険

    • GREEでは書き込み内容をチェックして、外部サイトへはaタグによるリンクをしないようにしてる

    • 同様にGREE内部へのリンクはSession IDをパースして閲覧者のものと差し替えている
      >すげーな(同業者として尊敬と羨望)

    • 端末のセキュリティの問題

    • ソースコードはスマートフォンなどで読めてしまう場合もある
      >読まれること前提で設計 / 実装しよう

    • 位置情報は偽装することが可能

    • IP制限(キャリアが発表しているゲートウェイのIPによるアクセス制限)大事
      >キャリア判別はUser Agentとリモートホスト双方から取ることが必要

    • 固体識別IDは偽装できないっぽい

    • ユーザリテラシーの問題

    • ケータイユーザのリテラシーはPCの常識と大きく違うので注意
      >パスワードは単純、端末の貸し借りも平然とするなどソーシャルハックにはとても脆弱

    • 一方で執念深いユーザも多く、8桁程度のチェックサムは総当りで破ってしまったりする
      >うちにもいたわそんなユーザ

    • その他

    • エンジニア募集中
      >私程度の腕で通用するのかな?挑戦してみたくなった。転職は面倒だけどな。

    • OpenIDのセキュリティ
      (サイボウズ・ラボ株式会社 山口 徹)

    • OpenIDはよくわかってないので申し訳ない感じだった

    • 脆弱性の部分は、まずTLS/SSLで通信するのが前提

    • …勉強して出直してきます

    • このときの資料

    • Afternoon Session:セキュリティ デベロップメント “ライフサイクル”:裏側と表側
      チェア:マイクロソフト 高橋正和

    • セキュリティの作り込みはどのように行われているのか?
      (マイクロソフト 加治佐 俊一 CTO, ソニー 松並勝)

    • MS:SDL(Security Development Lifecycle)

    • SONY:LWSSA(Light Weight Software Security Assurance)

    • どっちもソフトウェアのセキュリティを高めるための開発プロセス

    • どっちも「脆弱性対策の専門チーム」から「脆弱なコードを書かないようプログラマを教育するチーム」に変貌

    • 結局プログラマの質を一定水準以上に保つのは大変だ、といういつもの問題に行き当たるといえば行き当たる

    • とはいえこの2社のプログラマは世間の水準からすると優秀すぎて笑っちゃうんだろうな

    • おっと話がそれた

    • 脆弱性対策はとにかく大変だがやらないわけにもいかないのでちゃんとやろう
      >SONYの場合「できる範囲でやる」というスモールスタート

    • チーム内部にノウハウがない場合、外部から専門家を招聘してスキトラしてもらうのもいいんじゃないか

    • Security Wars Episode III:
      (高橋郁夫弁護士)

    • インターネット犯罪の変化について

    • タイトルどおりSTAR WARSに引っ掛けて話を構築
      >ベイダー卿に扮して出てきたのは愉快だったがやりすぎ感も

    • 攻撃者はより悪質に、一般ユーザはより「いつまでも初心者」にシフトしている

    • 今のところ私の仕事に法律は関係してこないが、一般ユーザのリテラシー低下は意識しないとダメだろうな

    • Webセキュリティのマルプラクティス ? 思い込みによるソフトウェアエラーをなんとかしろ
      (門林雄基、岡田良太郎)

    • マルプラクティス:よくない習慣や知恵。バッドノウハウ。

    • webアプリ開発現場にはこんなバッドノウハウがあるよ、というのをギャグベースで面白おかしく紹介
      >笑いながらも「ああわれわれの現場もこんなだ」と自戒する

    • リアルタイム投票システムを用意してのインタラクティブなプログラム

    • 聴衆もみんな開発者だから苦労がにじみ出てて面白かった

内容は濃くて面白かったが、土曜の朝から夕方まで、というのはちょっとヘヴィだった。いろいろと再認識したりするところもあったので、有意義な時間だったんだけどね。 仕事の量は減らないので時間を捻出するのは大変だが、その見返りは十分あるように思う。カンファレンスや勉強会にはこれからもなるべく紛れ込むようにしよう。