タグ

securityに関するryshinozのブックマーク (191)

  • 出力文字エンコーディングのバリデーション

    (Last Updated On: 2013年11月29日)前のエントリで「書かない日記」の名前通り、出力文字エンコーディングのバリデーションについてあまりに書かなさすぎで何の事やら分からない方も居たと思います。もう少し詳しく書きます。出力バッファとエラーハンドラで出力文字エンコーディングを簡単にバリデーションできます。 PHPで出力文字エンコーディングをバリデーション ステップ1: エラーハンドラを登録 function myErrorHandler($errno, $errstr, $errfile, $errline) { // 出力バッファをクリア - header()で送信したヘッダもクリア ob_end_clean(); // エラーメッセージ - もちろんエラーの種類に合わせたHTMLでも良い echo "Some thing goes wrong."; // 来はエラーロ

    出力文字エンコーディングのバリデーション
  • 文字エンコーディングの妥当性確認(バリデーション)について - t_komuraの日記

    大垣さんからコメントをいただきましたので、最後に追記しました(2009.09.22)。 少し時間が経ってしまいましたが、以下のページを読んで、PHP に関連する部分について思ったことを書きたいと思います。 http://blog.ohgaki.net/char_encoding_must_be_validated http://blog.ohgaki.net/is-char-encoding-problem-difficult 私の理解が間違っていなければ、「Web アプリケーションで文字エンコーディングに関連する問題を無くす」ことを目的として、全ての Web アプリケーション開発者が以下を実行しようという主張だと思います。 全ての入力文字列の文字エンコーディングの妥当性を確認する 文字エンコーディングを厳格に取り扱う データベースなどで「バイナリ」に近い文字エンコーディングは利用しない

    文字エンコーディングの妥当性確認(バリデーション)について - t_komuraの日記
  • セキュリティ対策を行うべき部分 – 自分が作っている部分

    (Last Updated On: 2018年8月8日)アプリケーション開発者がセキュリティ対策を行うべき部分とはどこか?当たり前ですがアプリケーションです。アプリケーションとは広い意味でのアプリケーションです。Webアプリの場合もあれば、ライブラリやモジュールであったり、フレームワークであったり、言語やサーバの場合もあります。 すべてのアプリケーション開発者が同じような意識を持ち、アプリケーションが安全に動作するようの作る責任はアプリケーションにあると責任感を持って開発すべき、と言いたいところですが実際には難しいです。 例えば、開発を始めたばかりの初心者であれば無理があります。どう作れば安全か、危険か、判断する基準がないからです。経験を積んだ開発者でも自分が作った事もない様なプラットフォーム上でどのように作れば安全か判断できません。 何故、セキュリティが分かり辛いのか?その一つ理由が「セ

    セキュリティ対策を行うべき部分 – 自分が作っている部分
  • glibcの脆弱性で大量のメモリが割り当てられる – セキュリティ専門家は基盤ソフトウェアに期待させてはならない

    (Last Updated On: 2016年2月18日)最近この種のエントリがありませんでしたが、個人的に面白いとセキュリティ系の話題はできるだけ書いていきたいと思っています。 glibcのstrfmon関数の実装に脆弱性があり、簡単なスクリプトで大量のメモリが割り当てられる脆弱性があるようです。影響するglibcは2.10.1以下なので影響範囲は非常に大きいです。 最初はBSDのlibcで脆弱性が発見され、glibcでも影響があることは脆弱性の発見者には分かっていたようです。詳細はアドバイザリに記載されています。 http://packetstormsecurity.org/0909-advisories/glibc-format.txt 参考:セキュアプログラミングの7つ習慣 詳しい説明はアドバイザリを読んで頂くとして、当初はBSD系OSのglibcで問題が発見されたそうです。Net

  • 論点の整理: 文字エンコーディングバリデーションは自動化が望ましい - 徳丸浩の日記(2009-09-18)

    _文字エンコーディングバリデーションは自動化が望ましい 私が9月14日に書いたブログエントリPHP以外では - 既にあたり前になりつつある文字エンコーディングバリデーションに対して、大垣靖男さんから名指しで「セキュリティ専門家でも間違える!文字エンコーディング問題は難しいのか?」というエントリを頂戴しましたので、それに回答する内容を書きたいと思います。 まずは論点の整理から始めます。 合意していると思われる内容 まずは合意できていると思われる内容から書き始めたいと思います。以下の内容は、大垣さんと私で合意事項だと考えています。 論点1.文字エンコーディングの問題によるセキュリティ上の脅威がある 論点2.文字エンコーディングに起因するセキュリティ上の問題に対して、文字エンコーディングのバリデーションが有効である 論点3.Webアプリケーションによっては文字エンコーディングのバリデーションが不

  • セキュリティ専門家でも間違える!文字エンコーディング問題は難しいのか?

    (Last Updated On: 2018年8月13日)一見徳丸さんのブログは分かりやすいように思えますが、それは単純な実験により分かりやすいように見えるだけで複数の間違いがあります。 その間違いとは 意図の取り違い – 誤読 言語の仕様と実装の理解不足 HTTPやPHP仕様の理解不足 セキュリティ対策をすべき場所の理解不足 です。(※0) 徳丸さんは非常勤とは言え、国の出先機関の研究員であるし、その出先機関は職務放棄とも言える文書(「例えば、PHPを使用しない」と勧める文書)を公開している(いた?)のでしっかり反論しておく必用がありますね。IPAのあの文書は職務放棄と言える文書だと思っています。これについても後で意見を述べます。 意図の取り違い – 誤読 最初の間違いは私のブログのエントリ「何故かあたり前にならない文字エンコーディングバリデーション」に対する理解です。特にPHPユーザに

    セキュリティ専門家でも間違える!文字エンコーディング問題は難しいのか?
  • PHP以外では: 既にあたり前になりつつある文字エンコーディングバリデーション - 徳丸浩の日記(2009-09-14)

    _既にあたり前になりつつある文字エンコーディングバリデーション 大垣靖男さんの日記「何故かあたり前にならない文字エンコーディングバリデーション」に端を発して、入力データなどの文字エンコーディングの妥当性チェックをどう行うかが議論になっています。チェック自体が必要であることは皆さん同意のようですが、 チェック担当はアプリケーションか、基盤ソフト(言語、フレームワークなど)か 入力・処理・出力のどこでチェックするのか という点で、さまざまな意見が寄せられています。大垣さん自身は、アプリケーションが入力時点でチェックすべきと主張されています。これに対して、いや基盤ソフトでチェックすべきだとか、文字列を「使うとき」にチェックすべきだという意見が出ています。 たとえば、id:ikepyonの日記「[セキュリティ]何故かあたり前にならない文字エンコーディングバリデーション」では、このチェックは基盤ソフ

  • UTF-8の冗長なエンコードとは何で、なんでそれがセキュリティ的に危ないのか?を文字コード知識レヴェル3くらいの凡プログラマが考えてみる - tohokuaikiのチラシの裏

    何故かあたり前にならない文字エンコーディングバリデーション | yohgaki's blog ってあるように、いまいち文字コードの不正な判定による危険性ってのが分かってない。 SJISの問題は、(2/3)SQLインジェクションを根絶!セキュア開発の極意 - 第5回■注目される文字コードのセキュリティ問題:ITproの記事がわかりやすかった。 というか、やっぱりPHP使ってると誰でも一度は「なんじゃこの『¥』は?」って思うもんなんで。 なるほど、確かに↓の図のように「あるバイト」が2つの意味を持つっていう文字コード形態はやばいんだなと。 EUC-JPはそんなことはしないで、1つのバイトには1つの意味しか取らせない。 だけど、これでも文字化けが起こることがある。経験的には、「マルチバイトをXX文字で切り落としたい」とかやった場合。ちゃんと文字コードを判定してくれるPHPでいえばmb_subst

  • 何故かあたり前にならない文字エンコーディングバリデーション

    (Last Updated On: 2018年8月8日)私が4年前(2005年)に「Webアプリセキュリティ対策入門」を執筆していた時には、既に壊れた文字エンコーディングなどの不正な文字エンコーディングを利用したJavaScriptインジェクションやSQLインジェクション攻撃は比較的広く知られていました。この問題は当時のスラッシュドットジャパンでも取り上げられていました。/.で取り上げられたので、そこら中のWebサイトとユーザが被害に合うのでは?とヒヤヒヤしたので良く覚えています。 不正な文字エンコーディングを利用した攻撃は、文字エンコーディングを厳格に取り扱い、文字エンコーディングをバリデーションすれば無くなります。これを怠ると、システムのどこで問題が発生するか予想できなくなります。つまり、いい加減に文字エンコーディングを取り扱うと安全なシステムは作れないのです。 参考:エンジニア向けに

    何故かあたり前にならない文字エンコーディングバリデーション
  • ダウンロード - PHPカンファレンス2009 ビジネスデイ 講演資料

    phpconf2009.pdf(1.2M) アジェンダ セキュア開発をベンダーに促すにはどうすればよいか セキュア開発においてコストを低減するには セキュア開発の要件定義はどう考えればよいか セキュア開発で大切な3つのこと セキュリティ要件とセキュリティバグ 開発標準と教育 セキュリティテスト セキュリティテストツールとしての「ウェブ健康診断仕様」

  • 高木浩光@自宅の日記 - ダウンロード違法化反対家の知られるべき実像

    ■ ダウンロード違法化反対家の知られるべき実像 あるきっかけで、あるダウンロード違法化反対家の人の、自宅のものと思われるIPアドレスを知ってしまった。知ることができたのは、2007年と2008年のいくつかのある日におけるIPアドレスである。そのIPアドレスを手元のWinnyノード観測システムの接続ログと突き合わせてみたところ、5回の日時において、WinnyノードのIPアドレスとして観測されていたのを見つけた。 それらのIPアドレスがソースとなっていたキーを抽出し、16日の日記の方法で視覚化したところ、図1のとおりとなった。 他の区間でどうだったかを調べたいところだが、2007年の部分と2008年の部分では、ISPが異なっており、ポート番号も「4857」と「3857」という具合*1に違っていた。 一般的に個人宅に割り当てられるIPアドレスは時々変化しており、それを追跡することは通常、簡単でな

  • 高木浩光@自宅の日記 - エコポイント申請画面が共用SSLサイト上にある件

    ■ エコポイント申請画面が共用SSLサイト上にある件 「エコポイント」の情報システムがわずか3週間で完成した理由, 有賀貞一, NIKKEI NET, 2009年8月26日 こうした問題を解決するために、エコポイント事務局と関係省庁が選択したのが、米セールスフォース・ドットコムの基盤サービス「Force.com」だった。セールスフォースはこのForce.comを「クラウドコンピューティングプラットフォーム」と表現している。利用者はサーバーなどのインフラを持つことなく、この基盤上で独自のシステムを構築できる。 という記事を読んで、「エコポイント」のサイトを初めて訪れたのだが、これはまずい。 「エコポイント」公式サイトの運営者は、「グリーン家電エコポイント事務局」となっていて、プライバシーポリシーでも個人情報取扱責任者が「グリーン家電エコポイント事務局」として書かれている。しかし、国民の視点か

  • ヤフーのセキュリティに対する取り組みについて 第1回目

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、R&D統括部 開発推進室 セキュリティプラットフォーム技術の戸田 薫です。ヤフーのサービスのセキュリティを担当しています。 Yahoo! Inc のセキュリティチームは「パラノイド」と呼ばれていますが、ヤフー(Yahoo! JAPAN)におけるパラノイドは、セキュリティプラットフォーム技術というチームになります。 写真:セキュリティーチーム(左 小林 聖、中央 筆者、右 森田 政幸) ヤフーのサービスのセキュリティに対する取り組みやセキュリティプラットフォーム技術というチームについてご紹介します。 ヤフーは何を守っているのか? ヤフーでは、さまざまなサービスを提供しています。その中には、プライバシーやお金にかかわるも

    ヤフーのセキュリティに対する取り組みについて 第1回目
  • モバイル用GWのIPアドレスを気にしてた時代もあったなぁ - とあるモバイル系エンジニアの日々

    twitter始めたらすっかりブログ書かなくなってしまいましたがどうしても気になるエントリがあったので久しぶりに。 orangevtr いろいろ認識が甘すぎて唖然とする。IP制限してても今時はクローラーキャッシュからソース読めるし( http://d.hatena.ne.jp/komoriya/20090122/1232619395 )、HTTPヘッダは偽装できないとかいくらなんでも。PHP使いなのにcurl知らないの はてなブックマーク - ke-tai.org > Blog Archive > ソフトバンクの携帯用GatewayPCで通る方法があるようです はてブでは制限文字超えちゃったのとちょっと言い回しが不遜な感じになってしまったので改めて。 ソフトバンクの携帯用ゲートウェイを、PC経由で通る方法があるとのことです。 扱う情報にもよりますが、ケータイサイトではIPアドレス帯域を制

    モバイル用GWのIPアドレスを気にしてた時代もあったなぁ - とあるモバイル系エンジニアの日々
  • i-mode2.0セキュリティの検討: 携帯JavaScriptとXSSの組み合わせによる「かんたんログイン」なりすましの可能性 - 徳丸浩の日記(2009-08-05)

    _携帯JavaScriptとXSSの組み合わせによる「かんたんログイン」なりすましの可能性 このエントリでは、携帯電話のブラウザに搭載されたJavaScriptと、WebサイトのXSSの組み合わせにより、いわゆる「かんたんログイン」に対する不正ログインの可能性について検討する。 5月28にはてなダイアリーに書いた日記「i-mode2.0は前途多難」にて、今年のNTTドコモの夏モデルP-07AにてJavaScript機能が利用停止されたことを指摘した。同日付のNTTドコモ社のリリースによると、「ソフトウェア更新に伴い、高度化した機能の一部をご利用いただけなくなっていますが、再びご利用いただけるよう速やかに対処いたします」とあったが、それ以来2ヶ月以上が経つものの、未だにJavaScript機能は利用できない状態のままだ。 実は、NTTドコモ社が慌てふためいてJavaScript機能を急遽停止

  • 高木浩光@自宅の日記 - やはり退化していた日本のWeb開発者「ニコニコ動画×iPhone OS」の場合

    ■ やはり退化していた日のWeb開発者「ニコニコ動画×iPhone OS」の場合 一年前、「退化してゆく日のWeb開発者」という題で、ケータイWebの技術面での蛸壺化について次のように書いた。 iPhoneに契約者固有ID送信機能が搭載される日 (略)こうして退化してゆくケータイWebが、日のスタンダードとなってしまい、いつの日か、PC向けの普通のインターネットまで、単一IDの全サイト送信が必須になってしまうのではないかと危惧した。 (略)iPod touchでNAVITIMEを動かしてみたところ、下の図のようになった。 (略)契約者固有IDがないとどうやって会員登録システムを作ったらいいのかわからないんじゃないのか……というのはさすがに穿ち過ぎだと思いたい。NAVITIMEからソフトバンクモバイルに対して、契約者固有ID送信用プロキシサーバの用意を要請している……なんてことがなけれ

  • PHP6移行で増える脆弱なWebアプリ

    (Last Updated On: 2009年9月19日)PHP6のリリースはまだまだ先の話なのですが、PHP6への移行で脆弱なWebアプリが大量に発生する可能性があります。 理由は2つ – mb_check_encodingで全ての入力文字エンコーディングが正しいかチェックしていない – PHP6のhtmlentities/htmlspecialcharにはマルチバイト文字チェックコードが削除される PHPのコードを書いている人も自覚していないと思いますが、この影響はかなりあると考えられます。 近日中にgihyo.jpのセキュリティブログに詳しい情報を記述します。 追記:PHP5.3のコードを見てみたら、バックポートすべきではないのにバックポートされてました。つまり、PHP6がリリースされたらと言う問題ではなく、今ある問題になっています。一応、改修を提案するつもりですがどうなるか判りませ

    PHP6移行で増える脆弱なWebアプリ
  • http://tokumaru.org/d/20080722.html

  • 高木浩光@自宅の日記 - EV SSLを緑色だというだけで信用してはいけない実例

    ■ EV SSLを緑色だというだけで信用してはいけない実例 EV SSLに関して以前から懸念されていたことが既に現実になっていた。一時期、EV証明書を発行する一部のCA事業者が、EV SSLの宣伝で「緑色になったら安全」などといいかげんな広告を打っていて、誤った理解が広まりかねないと心配されていたわけだが、「緑色になったら安全」という理解がなぜ駄目なのか、その理由の一つは、いわゆる「共用SSL」サービスにEV SSLが使われかねないという懸念だった。 そして、その実例が既に存在していたことに気付いた。図1は私が作ったWebページである。 アドレスバーは緑色になっているが、ここに入力されたデータは私宛にメールで送信*1されてくる。(このページは既に閉鎖している。) 悪意ある者がこうしたページを作成*2し、何らかの方法でこのページに人々を誘導*3すれば、フィッシングの被害が出るおそれがある。

  • C/C++ セキュアコーディングセミナー資料 | JPCERT コーディネーションセンター

    これまでにC/C++ セキュアコーディングセミナーで使用した講義資料を公開しています。2010年度にセミナを実施した、文字列、整数、動的メモリ管理、書式指定文字列、CERT C セキュアコーディングスタンダード、ROSE については、それぞれ最新版の資料を掲載しています。 文字列 ユーザとソフトウエア間に発生するデータのやりとりの大部分は文字列によって行われます。 また、プログラム間でのデータ交換も文字列形式で行われるようになり、その結果、文字列表現や文字列管理、文字列操作における弱点がソフトウエア脆弱性を生み出しています。 文字列では、C/C++ 言語における文字列操作、一般的なセキュリティ上の欠陥と、その結果発生する脆弱性と対処方法について解説します。 C/C++ における文字列の特性 犯しやすい文字列操作の間違い 文字列の脆弱性 プロセスのメモリ構成 スタック破壊の仕組み コードイン

    C/C++ セキュアコーディングセミナー資料 | JPCERT コーディネーションセンター