タグ

ブックマーク / blog.ohgaki.net (9)

  • ほぼ全てのインジェクション攻撃を無効化/防止する入力バリデーション 〜 ただし出力対策も必須です 〜

    (Last Updated On: 2019年2月18日)入力バリデーションはセキュリティ対策として最も重要なセキュリティ対策です。なぜセキュリティ対策であるのか?を理解していない方も見かけますが「ほぼ全てのインジェクション攻撃を無効化/防止する入力バリデーション」の効果と拡張方法を見れば解るのではないでしょうか? ソフトウェア開発者が知っておくべきセキュリティの定義/標準/ガイドで紹介しているセキュリティガイドラインでは入力バリデーションが最も重要なセキュリティ対策であるとしています。 厳格な入力バリデーションを行うと、開発者が意識しなくても、非常に多くの脆弱性を利用した攻撃を防止できます。今回は比較的緩い入力バリデーション関数でも、ほとんどのインジェクション攻撃を防止できることを紹介します。 重要:セキュア/防御的プログラミングでは入力と出力のセキュリティ対策は”独立”した対策です。ど

    ほぼ全てのインジェクション攻撃を無効化/防止する入力バリデーション 〜 ただし出力対策も必須です 〜
  • JavaScript: / の \ によるエスケープのみによるセキュリティ対策は禁止

    (Last Updated On: 2018年8月4日)RFC 4696をもう一度読みなおしてみると/もエスケープ可能文字に定義してありました。JavaScriptのエスケープシークエンスの処理の部分も間違っていたので全面的に書き直します。 RFC 4696(JSON)の定義では string = quotation-mark *char quotation-mark char = unescaped / escape ( %x22 / ; ” quotation mark U+0022 %x5C / ; \ reverse solidus U+005C %x2F / ; / solidus U+002F %x62 / ; b backspace U+0008 %x66 / ; f form feed U+000C %x6E / ; n line feed U+000A %x72 / ;

    JavaScript: / の \ によるエスケープのみによるセキュリティ対策は禁止
  • JavaScript文字列のエスケープ

    これらの中で注目すべきは ‘ と ” と \ です。シングルクォート、ダブルクオートは文字リテラルを作成する為に利用され、\ でエスケープできることです。つまり、文字リテラルの最後に \ が現れると文字列の終端が無くなります。単独で不正なJavaScriptの挿入が可能になる訳ではありませんが、プログラムの構造が破壊される事を意味します。 PHPにはJavaScript文字列用のエスケープ関数が用意されていません。htmlspecialchars()やhtmlentities()で代用している場合も多いと思います。しかし、これらの関数ではJavaScript文字列のエスケープを十分に行う事ができません。 JavaScriptプログラムの構造が破壊される例 <?php $msg1 = 'test string\\'; $msg2 = ');alert(document.cookie); //

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

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

    何故かあたり前にならない文字エンコーディングバリデーション
    ardarim
    ardarim 2009/09/16
    「誤字・脱字では自分でも見つけましたが、こういう本の評価に重要なのでしょうか?」 信頼性が低く見られる。ちゃんと推敲されてないってことだから。「書く事だけに一生懸命」とか時間がないとかは言訳にできない
  • Flashのセキュリティ設定 – Flash Cookie

    (Last Updated On: 2009年2月10日)Flash Playerの設定はAdobe(Macromedia)のページで行う事は、Web開発者には常識だと思います。このブログをあまり一般的なユーザが見ている、とは思えませんが一般ユーザ向けに書いています。 Flashの設定は以下のWebページから行います。 Flashセキュリティ設定のページ(MomongaLinux x86_64+Flash10 Alpha) http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager03.html デフォルトで「サードパーティ製のFlashコンテンツにコンピュータ上のデータを格納する事を許可します」にはチェックが入っています。 これはFlash Cookie(ローカル共有オブジェクト

    Flashのセキュリティ設定 – Flash Cookie
  • スクリプトインジェクション対策の特集 – gihyo.jp

    (Last Updated On: 2008年4月10日)技術評論社でブログっぽい記事を書かせて頂いています。4月3日からスクリプトインジェクション対策で注意すべき項目が掲載されます。一般的なスクリプトインジェクション対策「バリデーションしエスケープする」ではなく、万が一スクリプトインジェクションに脆弱であった場合でも被害を最小限に留める対策、見落とされがちな対策を中心に解説しています。 # 一度に書いた記事なのでどう分割されるか私も分かりません。 # 物によっては2回に分割するかもしれないので20弱くらい # だと思います。 http://gihyo.jp/dev/serial/01/php-security から最新の一覧を参照できます。 ご意見やご希望などございましたらこのブログから送って頂いても、メールで送って頂いても歓迎致します。ご興味がある方はご覧ください。 現在(4/9)時点

    スクリプトインジェクション対策の特集 – gihyo.jp
  • Ruby on Rials – Session Fixation脆弱性の攻撃方法

    (Last Updated On: 2008年2月3日)前回に引き続きWeb関係のセキュリティ脆弱性がどのように攻撃されるのか解説した記事がThinkITに掲載されています。 今回はRuby on Railsの脆弱性が対象です。Ruby on Railsにもいくつかのセキュリティ脆弱性が報告されていますが、URLベースのセッションがいかに脆弱であるか解説しています。 解説対象の脆弱性 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-5380 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-6077 Railsのセッション管理機構にはSession Adoption脆弱性は無いのに何故攻撃できるのか?と思った方は読んでみてください。記事を読んで頂くと脆弱性を実際の攻撃に

    Ruby on Rials – Session Fixation脆弱性の攻撃方法
  • Linux/Apacheを狙った攻撃 – 確認方法はmkdir 1

    (Last Updated On: 2008年4月22日)OpenTechPressにLinux/Apache系Webサイトを狙った正体不明の攻撃についての現状報告と気になる記事があります。 この攻撃ですが、結構話題になっていて私のブログでも先日FTPとCPanelユーザはクラッキングに注意が必要と題したエントリを公開しています。OpenTechPressの記事中にもcPanelの件は紹介されていますが、非常に気になる記述がある 問題のルートキットを検出する方法ないし、感染の確認されたサーバの洗浄法についてアドバイスが得られないかをApache Software Foundationに問い合わせてみたが、Apacheのセキュリティ対策チームに属するMark Cox氏から得られたのは、「現状で攻撃者側がサーバ群のルートアクセスを得た方法の詳細はつかみ切れていませんが、同時にApache HT

    Linux/Apacheを狙った攻撃 – 確認方法はmkdir 1
  • UPnPルータ+Flash=深刻なセキュリティ問題

    (Last Updated On: 2008年1月18日)GNUCITIZENは重要なセキュリティ問題を次々に公開しているのでセキュリティに興味がある方はチェックしているのでご存知とは思いますが、 Hacking The Interwebs http://www.gnucitizen.org/blog/hacking-the-interwebs に非常には深刻なセキュリティ問題が解説してあります。具体的な攻撃方法などはGNUCITIZENを参照してください。日でもいろいろ書かれるかな、と思っていたのですが予想より少ないのでブログに書くことにします。ここでは重要な部分だけ要約して書きます。 攻撃 Flashを利用したUPnPルータの攻撃シナリオは以下になります。 UPnPが有効なルータがある 悪意のあるFlashをWebブラウザで参照する UPnPルータの設定を変更するSOAPリクエストを

    UPnPルータ+Flash=深刻なセキュリティ問題
  • 1