サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ドラクエ3
www.pupha.net
WebSecurity OWASP ZAP で Android の Web通信をインターセプトする方法※当サイトにはプロモーションが含まれています。 1. 前提とする環境Android 7.0OWASP ZAP 2.7.0Windows 102. ZAP で Android の Web通信をインターセプトするための手順1. ZAP のルート証明書を Android にインポートする(1) ZAP の [Options] を開き、[Dynamic SSL Certificates] を選択します。以下の画面になるので、 [Save] ボタンを押して、ZAPの発行しているルート証明書を任意のパスに保存します。 ※ ルート証明書が作成されていない場合は、[Generate] ボタンを押して作成してください。 ZAP のルート証明書を保存する(2) 保存したルート証明書ファイルを、Android
という内容です。 つまり OWASP Dependency Check は、アプリケーションに対して、脆弱性の存在しているライブラリを使っていないか検査するためのツールです。 正式に対応しているアプリケーションの種類公式な情報によると、正式に対応しているアプリケーションは Java アプリケーション.NET アプリケーションの2つだそうです。 実験的に対応しているとなると、もう少し増えます。 Python アプリケーションRuby アプリケーションPHP (Composer) アプリケーションNode.js アプリケーション公式サイトには、こちらの4種をスキャンするには、「設定で有効にしないといけない」とありますが、コマンドラインツールのオプションを見る限りではデフォルトで有効になっていました。このあたり、どうなんでしょうか。 スキャンに利用する脆弱性データベースNVD (National
偽のサイトにアクセスしようとしています unanalytics.com では、悪意のあるユーザーによって、ソフトウェアのインストールや個人情報(パスワード、電話番号、クレジットカードなど)の入力といった危険な操作を行うよう誘導される危険性があります。 Chrome では、「危険なコンテンツや詐欺的なコンテンツを表示しようとすると、それを検知して警告を表示する」という機能がデフォルトで有効になっています。この機能によって上の画面が表示されたわけです(安全でないサイトについての警告表示を設定する | Google Chrome ヘルプ)。 Chrome の設定画面2. 原因と経過原因をググってみると、Chrome の拡張機能である「Better History」が悪さをしていることが分かりました(公式サイト:Better History for Chrome)。 「リンクをクリックした時に、一
以前、OWASP ZAP に追加された attack mode の概要 というエントリを書きましたが、このATTACK modeを使った簡単なセキュリティ検査の手順をメモしておきます。この機能を使えば …
環境webpack 1.11.0ESLint v1.2.1手順Webpackは既に導入済みであることを前提としています。 1. eslint-loader をインストールするeslint-loader をインストールします。これは、webpack から ESLintを読み込むためのローダーです。 $ npm install --save-dev eslint-loader 2. ESLintの設定ファイルを記述するプロジェクトのルートディレクトリ直下に .eslintrc ファイルを作成し、例えば以下のような内容を記述しておきます。 { "env": { "browser": true, "node": true, "es6": true }, "ecmaFeatures": { "modules": true }, "extends": "eslint:recommended", "ru
Software WebSecurity IPA ウェブ健康診断仕様を使ったWebアプリ脆弱性検査(CSRF編)※当サイトにはプロモーションが含まれています。 診断内容ウェブ健康診断仕様.pdf より抜粋 診断する環境クライアントOS:OS Xブラウザ:Firefox (OWASP ZAPに対するプロキシ設定は済んでいるものとします)HTTP通信を記録するツール:OWASP ZAP診断対象となるWebアプリケーション:VirtualBoxで導入した OWASP BWA上のDVWA(Damn Vulnerable Web Application)OWASP BWAのIPアドレス:192.168.0.50※ OWASP BWA、DVWA(Damn Vulnerable Web Application) については、こちらの記事 OWASP BWA (The Broken Web Applica
注意:この記事では Babel 5 を使っています。 Babel 6 を使用する場合は、このままだと動作しません。対応方法は、Quick guide: how to update Babel 5.x -> 6.x — Medium 等を参照して下さい。 Grunt や Gulp などのタスクランナーを使わず、webpack だけでフロントエンドを開発する方法を調べてみました。 以下、実際に簡単なウェブアプリケーションを作ってみます。 環境 webpack 1.12.0 ESLint v1.2.1 OS X 10.10.5 前提条件 JavaScriptは ECMAScript 6 で書けるようにします。但し、今回の記事内では ECMAScript 5の文法のみ使用しています。 CSSファイルは webpackで処理することにより、JavaScript のコードで表現されるようになります。こ
Software sudoers で複数エントリがマッチする場合について※当サイトにはプロモーションが含まれています。 /etc/sudoers に、自アカウントが(1)ユーザとして該当するエントリと(2)グループとして該当するエントリの両方が存在する場合、どう適用されるか?を調べてみた。 man sudoers すると以下のように記述されている。 When multiple entries match for a user, they are applied in order. Where there are multiple matches, the last match is used (which is not necessarily the most specific match). man sudoers つまり、後に合致した設定が有効になる。 例として、以下の条件を考える。
最近は Flux + React を使っています。Secure Code Tipsでも部分的に採用しました。今回は Fluxアーキテクチャについて、現時点で自分の理解している内容をメモしておきます。 Fluxの概念図Flux: Actions and the Dispatcher | React というページでは以下の図が使用されています。よく見る図です。 現在の自分の認識を基にしてこの図をもう少し詳しくすると、以下になります(だいたいこんな感じという程度の図です)。 * Web API と Web API Utils は省略しています。 Web API と Web API UtilsAction Creators が保持しているメソッド内からAjaxリクエスト処理等を行う場合、その部分をこちらに切り出して使用します。Action Creators と ActionsAction何かしら新
Software WebSecurity OWASP BWA (The Broken Web Applications) とは?※当サイトにはプロモーションが含まれています。 概要 以前、練習用脆弱Webアプリケーションの調査 という記事でも取り上げましたが、OWASP BWA(The Broken Web Applications)は、意図的に脆弱性を持たせたWebアプリケーションを複数導入した状態のUbuntu(Linuxのディストリビューションの1つ)を仮想マシンイメージにしたものです。 公式サイトでは以下のように説明されています。 BWA (The Broken Web Applications) プロジェクトは、既知の脆弱性を持ったいろいろなアプリケーションを稼働させる仮想マシンを提供します。これは以下のような人達を対象としています。 ウェブアプリケーションのセキュリティを学びた
Software WebSecurity Laravel 5 の Remember Me 機能について※当サイトにはプロモーションが含まれています。 Laravel 5 では Remember Meの機能(オートログイン)がデフォルトで実装されています。この機能の安全性を調査した時のメモです。 ログイン時、remember me というチェックボックスにチェックを入れてログインすると、”remember_xxxxxxxx” という名前のクッキーが発行され、このクッキーさえあればログインできるようになる(セッションクッキーがなくても)。このクッキーの値は「ユーザーテーブルのidカラム値 + “|” + ユーザーテーブルのremember_tokenカラム値」となっている。但し、クッキーの値は Illuminate\Cookie\Middleware\EncryptCookiesクラスとして実
Development Software WebSecurity Laravel 5 で制御文字を禁止するバリデーションルールを追加する※当サイトにはプロモーションが含まれています。 ウェブアプリケーションにもいろいろありますが、制御文字を受け入れる必要のないパラメータは割と多いんじゃないかと思います。そのようなパラメータでは、最初から制御文字を受け入れないようになっていれば、セキュリティ面のリスクも減ります。そこで今回は、Laravel 5 を使ったウェブアプリケーションで、制御文字を禁止するバリデーションルールを追加し、「特定のパラメータでは制御文字を受け付けない」ことができるようにします。 元ネタは、体系的に学ぶ 安全なWebアプリケーションの作り方 脆弱性が生まれる原理と対策の実践 の「4-2 入力処理とセキュリティ」です。詳しくはこちらを読んで下さい。 また、制御文字がどういう文
Development Software WebSecurity PHPで画像ファイルかどうかを検証する(Laravel)※当サイトにはプロモーションが含まれています。 特定のファイルが画像ファイルかどうかを検証するPHPの関数を書いてみました。ウェブサイトにアップロードされた画像ファイルを検証する時などに使うことを想定しています。 GIF/JPEG/PNG のみ対象としています。Laravelを使っていることを前提としているので、エラー発生時には ErrorExceptionクラスの例外がスローされます。getimagesize関数はマジックバイトを見ているだけなので、念のため imagecreatefromstring関数でイメージリソースが生成できるかチェックしています。/** * @param String $filepath * @return bool */ function
1.以下のミドルウェアを作成するapp/Http/Middleware/EncodingValidateParams.php として、パラメータ値の文字エンコーディングをチェックするミドルウェアを新規に作成します。 <?php namespace App\Http\Middleware; use Closure; class EncodingValidateParams { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { foreach ($request->all() as $val) { if
Software 他人のGithubレポジトリを fork して新たにブランチを追加し、それを composer で取り込んで使う方法※当サイトにはプロモーションが含まれています。 手順1. Github上で 他人のリポジトリ(fork元のリポジトリ)を forkする 2. 1のリポジトリをローカルに git clone する。 3. 新たにブランチを作り機能を追加する。 4. 機能を追加したらコミットして、このブランチを git push する。 5. このブランチを取り込みたいプロジェクト内の composer.json に以下を追記する。 ... "repositories": [ { "type": "vcs", "url": "{githubのURL}" } ], ... "require": { ... "{fork元のvendor名}/{fork元のパッケージ名}": "de
Software WebSecurity ウェブアプリケーションを開発しながら、手軽に脆弱性検査する方法※当サイトにはプロモーションが含まれています。 以前、OWASP ZAP に追加された attack mode の概要 というエントリを書きましたが、このATTACK modeを使った簡単なセキュリティ検査の手順をメモしておきます。この機能を使えば、ウェブアプリケーションの開発中にZAPが勝手に脆弱性スキャンしてくれます。 ※ この機能が追加される バージョン 2.4 はまだリリースされていないのですが、こちら から ZAP Weekly をダウンロードすれば試すことができます。 概要基本的には、ウェブアプリケーション開発時にウェブブラウザのプロキシとして ZAP を指定おくだけです。この時、ZAP 側で コンテキストというものを設定して、ATTACK mode にしておけば、アクセスし
もうすぐリリースされる OWASP ZAP 2.4 では、起動時に以下のダイアログが表示されます。 ZAP起動時に表示されるダイアログこれは ZAPを使用することで溜まっていくデータをどこにどういう名前で保存するか聞いているのですが、2.3までの挙動で問題なかった人は「No, I do not want to persist this session at this moment in time」を選択し、「Remember my choice and do not ask me again.」にチェックを入れておきましょう。これで 2.3 の時と同じ動作になります。また、これ以外の選択肢については知らなくても特に問題なさそうです。 以下、もう少し知りたい人向けに解説を書いておきます。 概要OWASP ZAP 2.4 ではデータファイルの名前・保存先の指定方法にいくつかのバリエーションが加
前回の Laravel 5 の処理の流れ でも書きましたが、Laravel 5 はタマネギのような構造になっており、複数のMiddlewareによって内部の処理が包まれています。このタマネギ構造をどうやって実装しているかについても少し調べていたのでメモしておくことにしました。Middlewareには、「Global Middleware」と「ルートに割り当てられたMiddleware」の2種類あるのですが、今回は Global Middleware の処理を取り上げます。 バージョンLaravel Framework version 5.0.6 Global Middleware の実装処理主な関連処理\Illuminate\Foundation\Http\Kernel::handle public/index.php 内から実行されます。このメソッドでは、リクエストオブジェクトの取得 →
バージョンLaravel Framework version 5.0.6 処理の流れタマネギ構造最初のBootstrapな処理(アプリケーションを開始するための準備的な処理)と、最後にレスポンスを返す処理の間が、各Middleware(「Global Middleware」と「ルートに割り当てられたMiddleware」の2種類) の前処理と後処理で包まれたタマネギ構造になっています。 Middlewareのタマネギ構造を強調して処理の流れを書くと以下のような感じです。 Bootstrapな処理↓Global Middleware(1番目)の前処理Global Middleware(2番目)の前処理:Global Middleware(m番目)の前処理↓ルートに割り当てられたMiddleware(1番目)の前処理ルートに割り当てられたMiddleware(2番目)の前処理:ルートに割り当て
オープンソースの脆弱性検査ツールであるOWASP Zed Attack Proxy(ZAP)でファジングする方法について説明します。 (バージョン:v2.2.2) ファジングとは?IPAが公開している「ファジング活用の手引」では以下のように説明されています。 「ファジング」とは、検査対象のソフトウェア製品に「ファズ(英名:fuzz)」と呼ばれる問題を引き起こしそうなデータを大量に送り込み、その応答や挙動を監視することで脆弱性を検出する検査手法です。 例えば、あるソフトウェア製品に極端に長い文字列や通常用いないような制御コードなどを送り込み、状態を観察します。その結果、予期せぬ異常動作や異常終了、再起動などが発生した場 合、このソフトウェア製品の処理に何らかの問題がある可能性が高いと判断できます。このように、ソフトウェア製品(の開発者)が想定していないデー
Laravel 4.2 に vlucas/phpdotenv を導入した時のメモです。 このパッケージを導入すると、任意のパスにおいた .env ファイルから環境変数を読み込ませることができます。 環境Laravel v4.2 インストールcomposer.json に以下を追記します。 ... "require": { ... "vlucas/phpdotenv": "1.1", ... }, ... composer を update して、このパッケージをインストールします。 $ composer update Laravelの設定ここでは例として、環境名を環境変数から読み込ませます。 .env ファイルを追加Laravelのルートディレクトリ直下に .envファイルを生成します。 以下のように、LARAVEL_ENVという環境変数に環境名をセットしておきます。(APP_ENVという
Software WebSecurity セキュリティに関するヘッダを出力するPHPスクリプトの叩き台※当サイトにはプロモーションが含まれています。 はじめにセキュリティ関連のHTTPレスポンスヘッダを毎回調べて書くのが面倒なので、ここにまとめておくことにします。 PHPで何か書く時は レスポンスヘッダを出力するあたりに以下を書いておき、制限がキツいようだったら少しずつ緩めていくという使い方をイメージしています。 <?php // セッションクッキーに httponly 属性を設定 ini_set('session.cookie_httponly', 1); // セッションクッキーに secure 属性を設定 ini_set('session.cookie_secure', 1); session_start(); // JavaScriptの実行を許可する対象を 同一オリジンと cod
Software WebSecurity OWASP ZAPのコンテキスト、スコープ、URL正規表現について※当サイトにはプロモーションが含まれています。 OWASP ZAPで行ういくつかの操作では、操作対象とするURLを限定することができます。例えば、履歴タブでは全てのアクセスデータが一覧表示されますが、予め登録したURLに合致したデータだけに表示を絞ることができます。これは脆弱性検査対象となるデータのみを表示する場合に便利です。 今回はこの機能を理解するために必要な「コンテキスト」「スコープ」について説明します。また、このコンテキストに対してURLを登録するのですが、このURLを指定するのに使用できる正規表現には独特のエスケープシーケンスがありますので、これも最後に説明します。 本記事の対象としているOWASP ZAPのバージョンは 2.2.2 です。 コンテキスト(Contexts)
Security Software CentOS 7 で sshd のポート番号を変更する※当サイトにはプロモーションが含まれています。 手順今回は、sshd のポート番号を 2222 に変更します。 1. SELinuxが有効な場合は、ポリシーを変更しておくSELinuxが有効な場合は、sshd のポートとして 2222が使えるようにしておきます。 # SELinux操作用ツールをインストールします $ sudo yum install setroubleshoot{-server,-plugins,-doc} # sshdのポートとして 2222を追加します (SELinuxのポリシー上、ポート番号 22の設定は残っています) $ sudo semanage port -a -t ssh_port_t -p tcp 2222 追加できたか確認します。 $ sudo semanage p
Software WebSecurity ブラウザからのリクエストをOWASP ZAPで保留し、編集してからWebサーバに送信する方法※当サイトにはプロモーションが含まれています。 前回の記事(Webアプリ脆弱性調査のためのプロキシツール選定)で、OWASP ZAPを取り上げました。今回はこのツールを使って実際にブラウザから受け取ったリクエストを一旦保留し、編集してからWebサーバに送信する手順を説明します。 方法は2つあります。保留の対象とするURLを事前に登録しておく方法と、全てのリクエスト(もしくはレスポンス)を保留する方法です。まず前者を取り上げ、補足の中で後者に触れます。 昨年12月に、IPAテクニカルウォッチ 「ウェブサイトにおける脆弱性検査手法の紹介」の公開:IPA 独立行政法人 情報処理推進機構という記事がありました。この中で今回取り上げる機能をOWASP ZAPが持ってい
29日に行われた OWASP DAY というイベントの中で Proxy War というプレゼンがあったようで、スライドが公開されていました。この中では Fiddler, BurpSuite, OWASP ZAP といった3つのローカルプロキシツールについての特徴が説明されており、すごく面白くて勉強になりました。まだ見ていない方がいましたら、是非見て頂きたいと思います。 ZAPについても知らないことがいろいろあったのですが、今回はその中からフィルタ機能について調べたので分かったことをメモしておきます。最初に書いておきますが、ホントにメモみたいであまり整頓されていません。 フィルタ機能とは?Paros時代からある機能です。(OWASP ZAPの源流は Parosというツールです)[ツール]メニュー – [フィルタ…] を選択すると、各フィルタの一覧が表示されたダイアログボックスが表示されます。
WebSecurity OWASP ZAP に追加された “Vulnerable JS libraries detection” アドオンのメモ※当サイトにはプロモーションが含まれています。 (注意) アドオンのソースコードを見付けたので書き直しました。(2014-11-28) 昨日、OWASP ZAP の Passive scanner rules (alpha) に “Vulnerable JS libraries detection” というアドオンが追加されました。 Find insecure JS libs using the new ZAP @RetireJS add-on. Available from the Marketplace now. Thanks to Nikita Mundhada — Zed Attack Proxy (@zaproxy) 2014, 11月
WebSecurity Google がリリースした Firing Range について※当サイトにはプロモーションが含まれています。 Google が Firing Range という Webアプリケーションを公開しました。 Ready, aim, fire: an open-source tool to test web security scanners (Googleのブログ記事)これは(Webアプリケーションに対して実行するタイプの)脆弱性スキャナーツールの性能を評価するために作られたWebアプリケーションです。なんだか分かりづらいですね。同じようなものとして、wavsep というWebアプリケーションがあります。このWebアプリケーションをターゲットにして脆弱性スキャナーを実行し、どれだけの数の脆弱性を検出できるか計測することでスキャナーの性能を評価することができます。The
私が英作文する時に使用しているツールやサービスなどについて書いておきます。 ただ最初に断っておくと、私がカッコいい英文を書けるというわけでは全然ないです。なんとかしてそれっぽい英文が書けないものか試行錯誤している最中です。他によいツール・サービスなどがあれば教えて下さい。 翻訳サービス 日本語の文章を英文にしたいけれど、どう英文にしていいか分からない場合は翻訳サービスで変換してみて取っ掛かりを作ることができます。但し、あまりいい文章はできないので自分で直していくことになります。 Google 翻訳 Thesaurus(シソーラス)(類義語辞典) 特定の意味の単語を使いたい時に、自分が最初に思いつく単語は限られているので、似た意味の他の表現を調べるために使います。 同じ単語を繰り返し使いたくない場合(文章の単調さを薄めるため)にも使えます。 Thesaurus.com Collocation
次のページ
このページを最初にブックマークしてみませんか?
『Web Application Security Memo』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く