securityとdatabaseに関するflakwingのブックマーク (16)

  • 間違いだらけのSQL識別子エスケープ

    これから3回連載の予定で、SQL識別子のエスケープの問題について記事を書きます。SQL識別子のエスケープについてはあまり解説記事などがなく、エンジニア間で十分な合意がないような気がしますので、これらの記事が議論のきっかけになれば幸いです。 3回の予定は以下のとおりです。 間違いだらけのSQL識別子エスケープ(稿) SQL識別子エスケープのバグの事例 SQL識別子は結局どうすればよいか ということで、まずはSQL識別子のエスケープの失敗例について説明します。この失敗例はあくまで説明のために作ったもので、実際のものではありません。また、想定が「ありえない」と思われるかもしれませんが、意図的なものですのでご容赦いただければと思います。また、「間違いだらけの」というタイトルは、今回の題材が間違いだらけという意味であり、巷のSQL呼び出しがそうであるという意味ではありません。稿に登場する人物と団

  • PHPとセキュリティの解説書12種類を読んでSQLエスケープの解説状況を調べてみた

    この投稿はPHP Advent Calendar 2013の13日目の記事です。昨日は@tanakahisateruのPHPが糞言語なのはどう考えても参照をポインタだと思っているお前らが悪いでした。 現在twitterのタイムラインで、史上空前のSQLのエスケープブームが起こっています。 オレオレSQLセキュリティ教育は論理的に破綻している | yohgaki's blog 「プリペアードクエリが基だけど、動的に SQL を組み立てる場合もあるから、そういう場合に備えてエスケープも知っておいたほうがいいかも」 - Togetterまとめ エスケープとプレースホルダをめぐる議論 - Togetterまとめ SQLインジェクション対策としてのプリペアドステートメントとエスケープについての議論 - Togetterまとめ IPAの「安全なSQLの呼び出し方」が安全になっていた | yohgak

    PHPとセキュリティの解説書12種類を読んでSQLエスケープの解説状況を調べてみた
  • パスワードが漏洩しないウェブアプリの作り方 〜 ソルトつきハッシュで満足する前に考えるべきこと

    ■■序論 徳丸さんのスライド「いまさら聞けないパスワードの取り扱い方」に見られるように、昨今、ウェブアプリケーションの設計要件として、サーバ内に侵入された場合でもユーザーのパスワードをできるだけ保護すべきという論調が見受けられるようになってきました。 上掲のスライドでは、その手法としてソルトつきハッシュ化を勧めています。しかしながらスライドに書かれているとおり、ソルトつきハッシュには、複雑なパスワードの解読は困難になるものの、単純なパスワードを設定してしまっているユーザーのパスワードについては十分な保護を提供できないという問題があります。そして、多くのユーザーは適切なパスワード運用ができない、というのが悲しい現実です。 ソルトつきハッシュを使った手法でこのような問題が残るのは、ウェブアプリケーションサーバに侵入した攻撃者がユーザーの認証情報をダウンロードして、認証情報をオフライン攻撃するこ

  • 第2回 memcachedのセキュリティと脆弱性 | gihyo.jp

    memcachedを安全に運用するポイント 2010年8月10日のスラッシュドット・ジャパンにて「Memcached に潜むセキュリティホール」としてmemcachedの脆弱性に関する記事が上げられました。記事の内容をまとめると以下の2点となります。 bit.ly や Globworld、Gowalla といったサイトではインターネットから memcached へのアクセスが可能であった アクセスしたmemcached上にユーザーのログイン ID / パスワードが格納されており参照可能だった http://slashdot.jp/security/article.pl?sid=10/08/10/0052240 ここには2つの問題があったと考えます。1つ目はmemcachedをインターネットから接続可能な状態で設置してしまったこと、もう1つはキャッシュ上に置かれている必要はなさそうなパスワー

    第2回 memcachedのセキュリティと脆弱性 | gihyo.jp
  • SQLインジェクションとは何か?その正体とクラッキング対策。

    世間では、今Gumblar祭りが勃発中であり、SQLインジェクションがニュースに出てくることは少なくなったが、だからと言ってSQLインジェクションの脅威がなくなったわけではない。SQLインジェクションはGumblarを仕掛ける手段としても利用されることがあり、Webアプリケーションを提供する全ての人にとって、対策を講じなければいけない驚異であることに変わりはない。SQLインジェクションという攻撃手法が認識され、大いに悪用されているにも係わらず、その質に迫って解説している記事は少ないように思う。従来のWeb屋だけでなく、今やアプリケーション開発の主戦場はWebであると言っても過言ではなく、そういう意味ではSQLインジェクションについて理解することは、全てのプログラマにとっての嗜みであると言えるだろう。 というわけで、今日は改めてSQLインジェクションについて語ってみようと思う。 SQLイン

    SQLインジェクションとは何か?その正体とクラッキング対策。
  • SQLの暗黙の型変換はワナがいっぱい

    補足 この記事は旧徳丸浩の日記からの転載です。元URL、アーカイブはてなブックマーク1、はてなブックマーク2。 備忘のため転載いたしますが、この記事は2009年9月24日に公開されたもので、当時の徳丸の考えを示すものを、基的に内容を変更せずにそのまま転載するものです。 補足終わり このエントリでは、SQLにおいて「暗黙の型変換」を使うべきでない理由として、具体的な「ワナ」をいくつか紹介します。 数値項目に対するSQLインジェクション対策のまとめにて説明したように、RDBの数値型の列に対してSQLインジェクション対策をする方法として、以下の三種類が知られています。 バインド機構を用いる パラメータの数値としての妥当性確認を行う パラメータを文字列リテラルとしてエスケープする このうち、方法3を使うべきでない説明の補足です。具体的には、方法3には、「暗黙の型変換」が発生しますが、それが思わ

  • SQLインジェクション攻撃はDB上の任意データを盗み出す - ockeghem's blog

    前回に引き続き、Think IT上の連載「SQLインジェクション大全」の第4回:ケース別、攻撃の手口を読んで感じたことを書きたい。 まず、この記事は以下のような書き出しから始まっている。 記事は、システムを防御するにはまず敵を知らなければならない、という意図の下に、攻撃手法を紹介する。 dfltweb1.onamae.com – このドメインはお名前.comで取得されています。 この趣旨に異論があるわけではないが、しかしこの表現は誤解を生みやすいものだと思う。 というのは、「敵」(攻撃方法)を知ったからと言って、防御の方法が導き出せる訳ではないからだ。例えば、開発者が「最近のSQLインジェクションの自動化攻撃にはT-SQLのDECLARE文が用いられる」という情報を得て独自に対策を考えた場合、DECLAREという単語をチェックしてエラーにしたり、単語を削除することを考えがちだと思う。現に

    SQLインジェクション攻撃はDB上の任意データを盗み出す - ockeghem's blog
  • へぼへぼCTO日記 - useServerPrepStmtsを使うのが根本解決だとはおもう。けど…?

    UnicodeのU+00A5問題 JavaMySQLの組み合わせでUnicodeのU+00A5を用いたSQLインジェクションの可能性 なるほど。この問題は初耳だったので驚いた。 しかも、PreparedStatementを使っても解決されないという。この部分に非常に驚いたのでどういうことなのか少し調べてみた。 PreparedStatementとは? mysqlにおける話としてはPrepared Statement (訳)がとてもわかりやすい。 なかでも重要なのは以下の部分だ。 PerlJava のユーザはかなり長い間prepared statementを使って きました。しかし、これらはクライアント側のprepared statementでした。 クライアント側のprepared statementは同じようなセキュリティの恩恵 をもたらしますが、性能向上には至りません。でも心配

  • Memcached Injection

    Memcached Injection N T T コ ミ ュ ニ ケ ー シ ョ ン ズ株式会社 IT マネジメントサービス事業部 セキュリティオペレーションセンタ 2008 年 12 月 19 日 Ver. 1.0 SR-20080310 1. 2. 3. 4. 調査概要 .............................................................................................................................. 3 MEMCACHED とは ................................................................................................................

    flakwing
    flakwing 2008/12/21
    「がアプリ ケーションを経由して、memcached プロトコルのコマンドを注入(Injection)することが可能」
  • 徳丸浩の日記 - そろそろSQLエスケープに関して一言いっとくか - SQLのエスケープ再考

    補足 この記事は旧徳丸浩の日記からの転載です。元URL、アーカイブはてなブックマーク1、はてなブックマーク2。 備忘のため転載いたしますが、この記事は2007年11月26日に公開されたもので、当時の徳丸の考えを示すものを、基的に内容を変更せずにそのまま転載するものです。 補足終わり 稿ではSQLインジェクション対策として、SQLのエスケープ処理の方法について検討する。 最近SQLインジェクション攻撃が猛威を振るっていることもあり、SQLインジェクションに対する解説記事が増えてきたようだが、対策方法については十分に書かれていないように感じる。非常に稀なケースの対応が不十分だと言っているのではない。ごく基的なことが十分書かれていないと思うのだ。 SQLインジェクション対策には二通りある。バインド機構を使うものと、SQLのエスケープによるものだ。このうち、SQLのエスケープについて、十分

  • 無料のデータベース脆弱性スキャナ「Scuba by Imperva」

    Oracle、IBM DB2、Microsoft SQL Server、Sybaseに対応したデータベース脆弱性スキャナ「Scuba by Imperva」が無料でダウンロードして利用できるようになりました。パッチが適用されているかどうか、危険なプロセスおよび弱いパスワードはないかどうかなど、何百もの欠点を見つけてくれるとのこと。日語のマニュアルも付いてきます。 Windows 98/NT/2000/XP、Sun Java JRE ver.5.0以上で動作します。 ダウンロードは以下から。 無償データベース脆弱性スキャナ | Scuba(スキューバ) by Imperva 製品情報 ダウンロードには無料のユーザー登録が必要で、起動する際にも情報の登録が必須です。 起動するとこんな感じ レポートはHTMLファイルで出力可能です MySQLなどにも対応してくれているとよかったのですが、将来的

    無料のデータベース脆弱性スキャナ「Scuba by Imperva」
  • 無料で使えるSQLインジェクション対策スキャナ トップ15*ホームページを作る人のネタ帳

    無料で使えるSQLインジェクション対策スキャナ トップ15*ホームページを作る人のネタ帳
  • Part3 Webアプリ開発のトラブル・シューティング(その2)

    木村 真幸 DTS ネットワーク事業プロジェクトマネージャ , 窪田 康大 豆蔵 BS事業部 開発技術チーム コンサルタント Part3では,「不規則に発生する不正な動作」「SQLインジェクション」「パフォーマンス不足」「チェックボックスのおかしな挙動」「メモリー不足のエラー」の五つを取り上げて,その問題点と解決方法を説明します。 トラブル1 たまにおかしな動作をする! Webブラウザからユーザー名などのデータを送信して結果を出力するといったWebアプリケーションで,たまにおかしな結果を出力することがあります。同じように操作をして正しく動くこともあるので,間違いに気づかないこともあります。しかも,おかしな動作に気づいてデバッグしてもソースコードに間違いを見つけられないことが多く,初級者の方ではどこを直せばよいか見当もつかないといった場合があります。 このような現象は,シングルスレッド

    Part3 Webアプリ開発のトラブル・シューティング(その2)
    flakwing
    flakwing 2007/01/20
    不規則に発生する不正な動作, SQLインジェクション, パフォーマンス不足, チェックボックスのおかしな挙動, メモリー不足のエラーについて。
  • ハッカーの金鉱脈「SQLインジェクション」の正体

    最近,「SQLインジェクション」の危険性について語られる機会が増えているが,SQLインジェクションの正体,その問題点,そしてそれを防ぐための方策について詳しく理解している人はまだ多くない。ここでは,SQLインジェクションとは何かを明確に定義し,どのようにして行われるかを説明し,SQLインジェクションから組織を守る方法を読者に伝えることによって,この状況を改善したい。 SQLインジェクションとは何か SQLインジェクションとは,アプリケーションに含まれるコーディング・エラーが原因となって引き起こされるぜい弱性,または欠陥である。SQLインジェクションは,ユーザーが入力したデータを使ってアプリケーションがSQLステートメントを作成し,それをSQL Serverに送信して実行する場合に発生する。この欠陥が及ぼす影響は,コーディング・エラーの性質によって様々である。 具体的に言うと,その影響は,エ

    ハッカーの金鉱脈「SQLインジェクション」の正体
  • SQLインジェクション【SQL Injection】

    SQLインジェクション(SQLの挿入)は,Webアプリケーションへの攻撃手法の一つです。Webサーバーに対して特殊なデータを送ることで,アプリケーション開発者が想定していないSQL文を実行させます。この攻撃に対する対策を怠ると,データベース内の情報を不正に取得されたり,削除されたりする危険性があります。 SQLインジェクションに対するぜい弱性は,クライアントから受け取ったデータをもとにしてデータベースへのアクセスを実行するSQL文を組み立てる個所で発生します。例えばアプリケーションのプログラム中に,SQL文で操作対象のレコードを絞り込むWHERE句を組み立てる“WHERE userid='$uid'”のようなコードが書かれているとします。プログラマは,変数$uidにはクライアントから受け取ったユーザーIDを格納することを想定しています。 ところが,悪意のあるユーザーが“' OR 1=1--

    SQLインジェクション【SQL Injection】
  • 今夜分かるSQLインジェクション対策 ― @IT

    【関連記事】 内容についてのアップデート記事を公開しています。あわせてご確認ください(編集部) Security&Trustウォッチ(60) 今夜こそわかる安全なSQLの呼び出し方 ~ 高木浩光氏に聞いてみた http://www.atmarkit.co.jp/fsecurity/column/ueno/60.html Webアプリケーションに対する攻撃手法の1つであるSQLインジェクションの存在は、かなり広く知られるようになった。しかし、その対策はまだ当に理解されていないように思える。フォームから渡された値の特殊文字をエスケープしたり、PHPのmagic_quotes_gpcといった自動エスケープ機能をオンにするだけで対策したつもりになっていないだろうか。 基はもちろん、セカンドオーダーSQLインジェクションやマルチバイト文字を利用したSQLインジェクションの攻撃パターンや、その対

    今夜分かるSQLインジェクション対策 ― @IT
    flakwing
    flakwing 2006/11/02
    鵜呑み注意。高木浩光氏のツッコミ有り→http://takagi-hiromitsu.jp/diary/20061104.html#p01
  • 1