サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
今年の「#文学」
ockeghem.hatenablog.jp
すでにこちらでご案内の通り、私のブログ(徳丸浩の日記およびEGセキュアソリューションズオフィシャルブログ)に貼っていた「はてなブックマークボタン」により、読者の皆様の閲覧行動がマイクロアド社によりトラッキングされておりました。読者の皆様に断りなく不快な結果を強いていたことに対してお詫び申し上げます。既に当該ボタンは撤去しております。 その後、株式会社はてな社長の近藤淳也氏およびはてなの日記にて行動情報の提供をやめる旨のアナウンスが一昨日ありました(こことここ)。さらに、マイクロアド社からは、昨日以下のアナウンスがありました。 今後マイクロアドでは、ブログパーツや外部ボタン等、マイクロアドと直接提携関係にあるパートナー以外の第三者にあたる媒体・配信面に付与される可能性のあるものについて、それらの表示領域にマイクロアドからの行動履歴情報の蓄積を無効化するオプトアウトページへの導線設置を義務化い
PHPカンファレンス北海道で講演する機会を頂きましたので報告します。 日時:2012年4月21日(土曜日) 10時20分〜17時20分(徳丸の出番は15:30〜16:10) 場所:札幌市産業振興センターセミナールームA (北海道札幌市) 費用:無料(申し込みはこちら) 講演タイトル:徳丸本に載っていないWebアプリケーションセキュリティ 講演の概要は以下となります。技術よりの話題で、デモあり(たくさん仕込みたいですね)、初級〜中級です。 キャッシュからの情報漏洩に注意 クリックジャッキング入門 Ajaxセキュリティ入門 ドリランド カード増殖祭りはこうしておこった…かも? キャッシュからの情報漏洩は徳丸本に載せても良かったなと思うテーマです。PROXYやフレームワークのキャッシュが悪さをして情報漏洩するリスクについて説明します。 クリックジャッキングは、PHP Conference 201
拙著「体系的に学ぶ 安全なWebアプリケーションの作り方(以下、徳丸本)」が中国語繁体字に翻訳され、台湾で販売開始されましたので報告します。出版社の紹介ページ。 @kuroneko_stacyさんが、早くも台湾で購入されたそうで、書店での平積みの様子を写真にとって下さいました。画像をクリックすると拡大します。 昨日見本が届きましたので、いくつか写真を紹介します。まずは表紙。 謝辞のところ。 人気の(?)3章、悪人と銀行員の会話。 台湾の本屋さんのコメント(@kuroneko_stacyさんと現地本屋さんの会話) 徳丸本、台湾でも人気だそうです。本屋のおじちゃんが良さを熱く語ってくれました。「この本は凄く良くできている!日本人が書いているんだ。知ってたか?」って聞かれたので、おこがましくも著者は友人ですよって言わせていただきました(笑) https://twitter.com/kuronek
書籍「Android Security 安全なアプリケーションを作成するために」は既に各方面で絶賛されているように、Androidアプリケーションの開発者には必携の書籍だと思いますが、新しい分野だけに、首をひねらざるを得ない箇所もありました。このエントリでは、同書第10章「暗号化手法」から共通鍵の生成方法について議論します。 はじめに 書籍「Android Security」(業界では「タオ本」と呼ばれているので、以下タオ本と記述)の10章では、端末内のファイルを暗号化して保存する手法について説明されています。その際に問題となるのが、鍵の生成と保管の方法です。スマートフォン端末、とくにAndroid端末は、アプリケーションのリバースエンジニアリングとルート化の可能性は常にあるため、あらゆる場合にも破られない暗号化というものはありません。このため、守るべき情報資産と、想定する脅威(言い換え
昨日Webサイトを守るためのセキュリティ講習会の講師を担当しました。講習会の終了後、受講生から「管理者パスワードの定期的変更」に関する質問がありました。備忘の為、質疑内容を以下に記録します。 Q1:上位ポリシーにて、管理者パスワードは定期的に変更するように義務づけられているが、何日毎に変更するのが正しいのか。最近の専門家の見解をお伺いしたい A1:専門家の見解は分かれているとお答えしました 現在の主流はパスワードを定期的に変更するべしという考え方ですが、それに異論を持つ人もいて、私もその一人です。 一般ユーザのパスワードとは異なり、管理者パスワードは、業務の必要上複数の人が知っている状況があります。その状況では、「定期的に変更」するのではなく、管理者パスワードを知っている人が、他業務に異動、あるいは退職するタイミングで遅滞なく変更するべきです。そうしないと、「管理者でなくなった人が管理者パ
PostgreSQL Conference 2012で講演する機会を頂きましたので報告します。 日時:2012年2月24日(金曜日) 14時30分〜17時20分(徳丸の出番は16:30〜17:00) 場所:AP 品川 (東京都港区) 費用:3,500円(申し込みはこちら) 講演タイトル:安全なSQLの呼び出し方 今回は、IPAの安全なSQLの呼び出し方を題材として、SQLインジェクションの発生原理から、安全なSQLの利用方法を基礎から実際までを説明します。 あまりトリッキーな攻撃の方法はしないつもりで、基礎的な話が中心となります。安全なSQLの呼び出し方の作成経緯については、「今夜こそわかる安全なSQLの呼び出し方 〜 高木浩光氏に聞いてみた」を参照下さい。 さて、「安全なSQLの呼び出し方」は以下の五名による執筆となっています。 執筆者 徳丸 浩 永安 佑希允 相馬 基邦 勝
今年も残りわずかとなり、今年の○○トップ10というタイトルを目にする機会も増えました。徳丸のブログでも、トップ10を発表したいと思います。今年書いたブログ限定ではなく、今年もっとも読まれたブログエントリのトップ10です。 Apache killerは危険〜Apache killerを評価する上での注意〜 PHP5.3.7のcrypt関数のバグはこうして生まれた もし『よくわかるPHPの教科書』の著者が徳丸浩の『安全なWebアプリケーションの作り方』を読んだら SQLのエスケープ再考 EZwebの2011年秋冬モデル以降の変更内容とセキュリティ上の注意点 PHP5.3.7のcrypt関数に致命的な脆弱性(Bug #55439) 都道府県型JPドメインがCookieに及ぼす影響の調査 モテるセキュ女子力を磨くための4つの心得「SQLインジェクションができない女をアピールせよ」等 evernot
このエントリでは、セキュリティの観点から、バリデーション実装について検討します。大垣さんの本を読んで「大垣流バリデーション」について勉強した結果を報告します。 はじめに 大垣さんの記事「入力バリデーションはセキュリティ対策」では、「入力バリデーションはセキュリティ対策である」が力説されています。この記事はおそらくid:ajiyoshiさんのブログ記事「妥当性とは仕様の所作 - SQLインジェクション対策とバリデーション」を受けてのことだと思います。id:ajiyoshiさんのエントリでは、「妥当性検証は仕様の問題であってセキュリティ対策ではありません」と明言されています。私はid:ajiyoshiさんに近い考えを持っていますので、大垣さんの主張について、私なりに考えてみました。 記事を書くにあたり、徳丸の立場を明確にしておきたいと思います。 バリデーションの基準は仕様の問題 バリデーション
「徳丸本」こと「体系的に学ぶ 安全なWebアプリケーションの作り方」は、このたび増刷(第5刷)が決定いたしました。皆様のご愛読に深く感謝申し上げます。増刷を記念して、徳丸本を買いたくてもまだ買えていなかった方々に、徳丸本を進呈するキャンペーンを企画いたしました。 私の手元に徳丸本第3刷の在庫が数冊あります。元々献本用や(HASHコンサルティングの)営業活動の贈呈用として購入していたものですが、思ったほど「差し上げる」機会がなくて、死蔵されているような格好でした(この在庫とは別に増刷ごとに何冊かずつ送付いただいているため)。そんなタイミングで第5刷が出ることになったので、これはいかん、在庫をなんとかしなければと思いました。 とはいえ、著者である私が、Yahoo!オークションやAmazonマーケットプレイスでこの在庫を販売することもためらわれました。 そこで、冒頭に書いたように、何冊かを進呈し
大垣さんの寄稿記事「第44回 セキュリティ対策が確実に実施されない2つの理由:なぜPHPアプリにセキュリティホールが多いのか?|gihyo.jp … 技術評論社」のまとめにて、『最後に「何が正しいのか?」常に考えるようにしてください』と書かれています。この部分は、私への反論のようですので、このエントリで返答したいと思います。 大垣さんの主張 先にも述べたように、大垣さんはこのエントリの「まとめ」として以下のように書かれています。 最後に「何が正しいのか?」常に考えるようにしてください。 http://gihyo.jp/dev/serial/01/php-security/0044?page=2 この主張自体には私も大賛成です。大垣さんの記事は以下のように続きます。 例えば,SQL文を作成する場合にリテラル(パラメータ)を文字列としてエスケープすると浮動小数点型のデータが正しく処理されないデ
このエントリでは、ネット上で「SQLインジェクション対策」でGoogle検索した結果の上位15エントリを検証した結果を報告します。 SQLインジェクション脆弱性の対策は、既に「安全なSQLの呼び出し方」にファイナルアンサー(後述)を示していますが、まだこの文書を知らない人が多いだろうことと、やや上級者向けの文書であることから、まだ十分に実践されてはいないと思います。 この状況で、セキュリティのことをよく知らない人がSQLインジェクション対策しようとした場合の行動を予測してみると、かなりの割合の人がGoogle等で検索して対処方法を調べると思われます。そこで、以下のURLでSQLインジェクション対策方法を検索した結果の上位のエントリを検証してみようと思い立ちました。 http://www.google.co.jp/search?q=SQLインジェクション対策 どこまで調べるかですが、以前NH
まっちゃ445などで発表に使用した「徳丸本ができるまで」のスライドを公開します。 発表時の原稿の後半を少しカットして、最新の状況を加筆しました。 徳丸本ができるまで View more presentations from Hiroshi Tokumaru [PR] 「体系的に学ぶ 安全なWebアプリケーションの作り方」のDRMフリーPDFによる電子版が販売開始しました。 体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践 作者: 徳丸浩出版社/メーカー: SBクリエイティブ発売日: 2011/03/01メディア: 単行本購入: 119人 クリック: 4,283回この商品を含むブログ (146件) を見る
既にこのブログでも報告しましたが、10月14日、YAPC::Asia Tokyo 2011でパスワードについてトークしてきました。スライドとビデオは以下のサイトにあります。 オフィシャルサイト HASHコンサルティング・オフィシャルブログ 私はWebアプリケーションのセキュリティを専門にしていますが、開発系のカンファレンスでしゃべる機会を増やしたいと思っています。Webアプリケーションの脆弱性は、つまるところWebアプリケーションのバグなので、開発者の方々にセキュリティのことを知ってもらわないと、脆弱性をなくすことはできないからです。 ということで、今年はYAPCの他に、PHPカンファレンスでもトークさせていただきました。PHPカンファレンスもYAPCも、トークを公募していて、誰でも応募できます。PHPカンファレンスの方は、昨年もトークに応募していて、文字コードの話をしました。このテーマは
YAPC::Asia Tokyo 2011で「Webアプリでパスワード保護はどこまでやればいいか」というタイトルでトークして、投票によりベストトーク賞3位というのをいただいたそうです。 「そうです」というのは、実は発表・表彰の際に会場にいなかったという大失態を演じたからでして、少しでも受賞の可能性を考えていたら万難を排して残っていたのですが、錚々たる方々がトークされるYAPCでベストトーク賞がいただけるなど思いもよらず、所用もあったため、その場にいなかったのです。 「その場にいなかったから賞は次点の方に」なんてことにならないかハラハラしました(というのは冗談で、選んで頂けただけで光栄です)が、JPAの牧さんから、賞品の送付先住所をメールして欲しいと連絡頂きましたので、これは本当だったのだと確信して、このエントリーを書いています。私がその場にいなかったために、余計な手間を取らせてしまい、申し
たまに誤解があるようですが、Cookieを設定する場合のDomain属性は *設定しない* のがもっとも安全です。以下、例示により説明します。 ※このエントリは、http://blog.tokumaru.org/2011/10/cookiedomain.html に移転しました。恐れ入りますが、続きは、そちらをご覧ください。
昨日の日記「都道府県型JPドメインがCookieに及ぼす影響の調査 | 徳丸浩の日記」にも書きましたが、Operaブラウザの最新版(11.51)には、地域型ドメインの場合にCookie Monster Bugがあります。以下は、三重県の志摩市のドメイン(www.city.shima.mie.jp)上で domain=mie.jpのCookieをセットした様子です。 この状態で三重県津市(www.info.city.tsu.mie.jp)のホームページにアクセスしたところ、このCookieが送信されることをネットワークキャプチャにて確認しました。 Operaブラウザは独自の方法でCookie Monster Bugに対応しているというのが業界の常識だと思っていましたので、当初この現象を見て驚きました。大げさに言えば「ニュートリノが光速を越えた」ことに匹敵する(大げさ過ぎ)ような驚きでしたので
このエントリでは、数値型の列に対するSQLインジェクションについて説明します。 以前のエントリで、たにぐちまことさんの書かれた『よくわかるPHPの教科書』の脆弱性について指摘しました。その際に、『私が見た範囲ではSQLインジェクション脆弱性はありませんでした』と書きましたが、その後PHPカンファレンス2011の講演準備をしている際に、同書を見ていてSQLインジェクション脆弱性があることに気がつきました。 脆弱性の説明 問題の箇所は同書P272のdelete.phpです。要点のみを示します。 $id = $_REQUEST['id']; // $id : 投稿ID $sql = sprintf('SELECT * FROM posts WHERE id=%d', mysql_real_escape_string($id) $record = mysql_query($sql) or die(
このエントリでは「体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践」(いわゆる徳丸本、#wasbook)の電子書籍版が9月28日(水)に販売開始されるというお知らせをします。 大変要望の多かった徳丸本の電子書籍版ですが、タイトルのように、9月28日(水)の午前中に販売開始されることになりました。以下に諸データを記します。 販売サイト ブックパブ(http://bookpub.jp/) 販売開始 9/28(水)午前 定価 2,800円 キャンペーン価格 1,800円 キャンペーン期間 9/28(水)〜10/17(月)の20日間 いくつか特記すべき事項があります。 まず、電子書籍の形式ですが、*DRMフリーのPDF* です。従来版元のソフトバンククリエイティブでは、iOSやAndroidのアプリという形式で電子書籍を販売したようですが、この徳丸本の電子版から
昨日の日記の続きで、Ajaxに固有なセキュリティ問題について検討します。今回はJSON等の想定外読み出しによる攻撃です。これら攻撃手法は本来ブラウザ側で対応すべきもので、やむを得ずWebアプリケーション側で対応する上で、まだ定番となる対策がないように思えます。このため、複数の候補を示することで議論のきっかけにしたいと思います。 まず、作りながら基礎から学ぶPHPによるWebアプリケーション入門XAMPP/jQuery/HTML5で作るイマドキのWeから、Ajaxを利用したアプリケーションの概念図を引用します(同書P20の図1-23)。 前回、前々回は、(5)のHTTPレスポンスの前後で、JSON等のデータ作成(エンコード)に起因するevalインジェクションや、(5)のレスポンスを受け取った後のHTMLレンダリングの際のXSSについて説明しました。 しかし、問題はこれだけではありません。正常
昨日の日記の続きで、Ajaxに固有なセキュリティ問題について検討します。タイトルはXSSとなっていますが、今回紹介する脆弱性はXSSではありません。 作りながら基礎から学ぶPHPによるWebアプリケーション入門XAMPP/jQuery/HTML5で作るイマドキのWeから、Ajaxを利用したアプリケーションの概念図を引用します(本書P20の図1-23)。 Ajaxのアプリケーションでは、XMLHttpRequestメソッド等でデータを要求し、サーバーはXML、JSON、タブ区切り文字列など適当な形式で返します。ブラウザ側JavaScriptでは、データ形式をデコードして、さまざまな処理の後、HTMLとして表示します。以下に、Ajaxのリクエストがサーバーに届いた後の処理の流れを説明します。 サーバー側でデータを作成、取得 データ伝送用の形式(XML、JSON、タブ区切り文字列等)にエンコード
このエントリでは、あるPHPの入門書を題材として、Ajaxアプリケーションの脆弱性について検討します。全3回となる予定です。 このエントリを書いたきっかけ twitterからタレコミをちょうだいして、作りながら基礎から学ぶPHPによるWebアプリケーション入門XAMPP/jQuery/HTML5で作るイマドキのWeという本を読みました。所感は以下の通りです。 タレコミ氏の主張のように、本書はセキュリティを一切考慮していない 主な脆弱性は、XSS、SQLインジェクション、任意のサーバーサイド・スクリプト実行(アップロード経由)、メールヘッダインジェクション等 脆弱性以前の問題としてサンプルスクリプトの品質が低い。デバッグしないと動かないスクリプトが多数あった 上記に関連して、流用元のソースやデバッグ用のalertなどがコメントとして残っていて痛々しい 今時この水準はないわーと思いました。以前
最近、パスワードにまつわる重大な脆弱性を見かけることが多いように思いますので、その中から4つを選んで紹介します。既に私のブログで紹介したものや、少し古い問題も含まれます。 PHP5.3.7のcrypt関数がハッシュ値を返さない脆弱性 crypt関数は、様々なハッシュアルゴリズムによるソルト化ハッシュを返す関数ですが、PHP5.3.7(2011年8月18日リリース)において、crypt関数にMD5を指定した場合、ハッシュ値を返さない(ソルトは返す)バグがありました。私のブログエントリにて説明したように、最悪ケースでは任意のパスワードで認証できてしまう状況があり得ました。 PHP5.3.7のcrypt関数に致命的な脆弱性(Bug #55439) | 徳丸浩の日記 PHP :: Bug #55439 :: crypt() returns only the salt for MD5 このバグが混入
たにぐちまことさんの書かれた『よくわかるPHPの教科書(以下、「よくわかる」)』を購入してパラパラと見ていたら、セキュリティ上の問題がかなりあることに気がつきました。そこで、拙著「体系的に学ぶ 安全なWebアプリケーションの作り方(以下、徳丸本)」の章・節毎に照らし合わせて、「よくわかる」の脆弱性について報告します。主に、徳丸本の4章と5章を参照します。 4.2 入力処理とセキュリティ 「よくわかる」のサンプルや解説では、入力値検証はほとんどしていません。しかし、入力値検証をしていないからといって即脆弱かというとそうではありません。徳丸本でも強調しているように、入力値検証はアプリケーション要件(仕様)に沿っていることを確認するもので、セキュリティ対策が目的ではないからです。 「よくわかる」の中で、私が見た範囲で唯一の入力値検証は、郵便番号のチェックをするものです。以下に引用します(「よくわ
PHPカンファレンス2011講演公募枠に応募して採択いただきましたので、講演することになりました。9月10日(土)、場所は蒲田の大田区産業プラザ PiOです。詳細は、講演プログラムをご覧ください。 タイトルは、「徳丸本に学ぶ 安全なPHPアプリ開発の鉄則2011」ということで、拙著「体系的に学ぶ 安全なWebアプリケーションの作り方」の中から、安全なPHPアプリケーション開発のための「10の鉄則」という形で提示いたします。以下は応募の際に提出したアジェンダです。 PHP本体の脆弱性はかなり少なくなってきましたが、PHPを使ってアプリケーションを開発する際には、陥りやすい落とし穴がまだまだ多いのが現状です。本発表では、拙著「体系的に学ぶ 安全なWebアプリケーションの作り方」を題材として、安全なPHPアプリケーション開発のための最新情報を「10の鉄則」という形で紹介します。 去年の文字コード
phpMyAdmin(3.3.10.2未満、3.4.3.1未満)には、リモートから任意のスクリプトが実行可能な脆弱性があります。このエントリでは、この脆弱性が発生するメカニズムと対策について報告します。 概要 phpMyAdminには下記の2種類の脆弱性の組み合わせにより、リモートから任意のスクリプトを実行させられる脆弱性があります。 CVE-2011-2505 CVE-2011-2506 該当するバージョンは以下の通りです。 phpMyAdmin バージョン3.3.10.2未満 phpMyAdmin バージョン3.4.3.1未満 影響を受ける条件は、上記バージョンのphpMyAdminを使用していることに加えて、以下をすべて満たす場合です。 setup/index.phpとsetup/config.phpを外部から実行できる phpMyAdminのconfigディレクトリが存在し、PHP
今日、KDDIのEZfactoryのEZ番号に関する説明が変更されていました。 2011年6月9日の内容(URLは魚拓)赤字はママ HTTP Requestヘッダ情報では、この他にHTTP_X_UP_SUBNOフィールドにてEZ番号が確認できます。 EZ番号は、ユーザの端末操作によって、送出しない設定にすることが可能です。ユーザが「送出しない」設定にした場合、本フィールドは送出されません。 ※EZ番号に関する注意 EZ番号はスマートフォン等では詐称可能なため、ユーザー認証に用いる場合には、EZ番号と併せてEZサーバのIPアドレス等、複数手段で確認してください。 http://megalodon.jp/2011-0609-1231-51/www.au.kddi.com/ezfactory/tec/spec/4_4.html 本日2011年7月15日の内容。赤字指定は筆者。 EZ番号とは、EZ
第4回 未修正の脆弱性(2):レガシーPHPのセキュリティ対策,大丈夫ですか?|gihyo.jp … 技術評論社という記事を読みました。とても重要なことが記載されている一方で、記述の間違い及び記述もれがあるため、読者の便宜のため勝手に補足したいと思います。具体的に、PHP4系の最終版PHP4.4.9にてパッチの提供されない4つのぜい弱性についての話題です。一部のぜい弱性はPHP5.2系でもパッチが出る見込みがないものです。 CGIのDoS 元記事ではCVE-2009-3660として紹介されていますが、CVEおよびNVDのサイトを見ると、Efront 3.5.4以前の脆弱性とあります。明らかに該当しないので調べてみると、CVE-2008-3660の間違いのようですね。2008を2009とTYPOしたのでしょう。 脆弱性の中味ですが、元記事に以下のように書かれています。 この脆弱性は不正なパス
ソフトバンク携帯電話のSSL方式変更に伴い、みずほ銀行のモバイルバンキングが一部使えなくなっていましたが、昨日復旧したようです。 7月3日時点では、みずほダイレクトのトップに以下のように表示されていました。URLは魚拓のものです。 現在、ソフトバンクの携帯電話からアクセスいただいた、みずほダイレクト(モバイルバンキング)の[ネット決済振込サービス]および[Pay-easy(ペイジー)税金・料金払込みサービス]において、一部のお取引がご利用いただけません。「ご利用の端末のユーザーIDを「ON」に設定し、再度アクセスしてください。」と表示された場合には、パソコンなどでご利用ください。 お客さまには大変ご迷惑をおかけしておりますことをお詫び申しあげます。 (原因につきましては現在調査中です。) http://megalodon.jp/2011-0703-0032-51/www.mizuhoban
6月30日のsecure.softbank.ne.jp廃止*1にともない、みずほダイレクトにおいて、ソフトバンクの携帯電話からログインできなくなるという障害が報告されています(リリース)。 他の銀行はどうかと思い、軽く調べて始めたところ、モバイルバンキングでは今でもsecure.softbank.ne.jp方式が堂々たる主流であることが分かりましたので報告します。 secure.softbank.ne.jpを経由する銀行 以下は、ログイン画面のURLがhttps://secure.softbank.ne.jp/〜となっています。大手都市銀行は全てという感じです。 三井住友銀行 三菱東京UFJ銀行 みずほ銀行 りそな銀行 セブン銀行 じぶん銀行 住信SBIネット銀行 楽天銀行 新生銀行 secure.softbank.ne.jpはホワイトリスト方式で残されるということでしたが、上記モバイルバ
次のページ
このページを最初にブックマークしてみませんか?
『ockeghem's blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く