Posts Tagged ‘セキュリティ’

Shibuya.XSS アウトラインメモ

Shibuya.XSS テクニカルトーク#1 : ATND に参加してきたので、その時のメモ。

Shibuya.XSS

DOM Based XSSの傾向と対策 – mala

Shibuya.XSSで発表してきました – 金利0無利息キャッシング – キャッシングできます – subtech

機械的なスキャンで見つけづらいXSS

  • location.hash経由で発火が多い、
  • サーバ側にアクセスログが残りづらい
  • ビーコンでlocation.hashを記録する事も可能だけど、実行順序で潰される事がある

location.hashでの問題

  • XHR2

どんな時に見つけにくい

  • パラメーターをパースして利用してる場合
  • ソースを読まないと見つけにくい。
  • 難読化されてるとしんどい
  • レガシーコード

どうするのがいいのだろうか

  • バリデーション?

バリデーションが必要な状況

  • openにファイル名渡す -> パイプでコマンド実行可能
  • ファイル開く関数とコマンド実行を分けて使うべき
  • 役割に応じて「それだけを行うように」する

バリデーションが必要なライブラリ

  • 直接使うときは安全に倒す

そもそも安全にすることを考える

  • 外部リソース読み込めないようには無理

コーディング規約での対処

  • jQueryの場合
  • セレクタの使い方を徹底する
  • findを使って$関数の直接使用を避ける
  • $関数は汎用的すぎ

コーディング

  • XHRのリクエストは必ず絶対パス+動的パス
  • 絶対パスが/のみだと突破できる
  • /api/的な感じに

問題点

  • HTML5等で今まで安全だったかもしれないものが崩壊して、可能な攻撃が増える

DOM XSS撲滅装置

  • location.hashにタグが会った場合は消す等
  • その文字列を使わないことが保証されてるなら割りと効果的
  • 広告やブログパーツ等、自分で治せないもの等の緊急的
  • 潜在的なXSS

パスワードを盗めるか?

  • ブラウザのパスワード自動入力機能でパスワードを盗める場合がある
  • セッション乗っ取り + パスワード盗み

パスワードの盗み方

  • 自動でフィルインされた値を読み取る
  • 自動的に盗むことが可能
  • 自動フィルイン + クリックジャッキング -> 半自動
  • フォームの宛先を攻撃サイトに誘導

事例

?to=javascript:eval(location.hash)#攻撃コード

  • ログイン後のリダイレクトのURL先でjavascript:を実行可能

対策

  • そのパスワードを入力するドメインをサブドメインで独立させる
    • ログイン機能だけを持ったサブドメインを作成する
    • 他のjsを入れない、厳しめのルール

フェールセーフ設計

  • サンドボックス
  • パスワードを入力するページは外部jsを完全排除するとか
  • パスワード入力ページはそれ専用のサブドメインへ

ブラウザ側のリスク軽減

  • XSSフィルタ
  • パスワードの自動フィルイン対策
  • 元々危険だったものが更に危険になる => 理解されないことが多い

攻撃パターン

  1. iframeで埋め込む -> サードパーティクッキー有効なら発動
  2. 短縮URL + replaceStateでURL偽装
  3. ポップアップWIndowとサードパーティ

ユーザー側の対策

  • NoScript
  • 複雑なルールを設定しないと安全に利用できない
  • 攻撃者が嫌う設定を使う
    • サードパーティクッキーオフ、ポップアップのブロク、リダイレクトの防止
  • 初見のURLは全部シークレットモードで開くとか

まとめ

  • DOM Based XSSはたくさんある
  • XSSがあっても安全にすることを考える

焼肉、刺身

  • XSS発見者には肉か刺身をおごる慣例(*人徳が必要)

x-autocompletetypeの実験 by はまちちゃんさん

  • x-autocompletetypeのデモ
  • http://hamachiya.com/junk/x-autocompletetype.php

サニタイズ言うぞキャンペーン – TAKESAKO

mixiの新着検索ページでXSSで1件

  • いぬぼくxSS

7年前と少し違う状況

  • jQuery
  • XHR2

サニタイズ的なものが必要になる場合がある。

kintone

  • ライブラリ除いて10万行ぐらい

社内勉強会

  • jQueryは甘え

Closure Templateのエスケープ機能について

  • サニタイズコンテント
  • JavaScriptでHTMLのパーサー的に書かれてる
  • 問題を起こしそうな文字列などが定義されてる

Closure Template – Contextual Autoscape

  • JavaScriptエスケープとHTMLエスケープ等の区別をおこなってくれる
  • CSS、属性値等で異なるエスケープを行う
  • 無毒化とかを文脈依存で対処される
  • http://d.hatena.ne.jp/teppeis/20120318/1332092081

オフレコ – 春山

  • ベンチャーから始めると、フローの把握ができてない所が存在する
  • そのフローの把握が重要

JS Array Hijacking with MBCS – hasegawa

Shibuya.XSS テクニカルトーク#1 開催しました。 – 葉っぱ日記

  • Array形式のJSONをジャックする
  • Firefox 修正済み
  • UTF-8をShift-JISで解釈すると壊れた解釈をしてしまう問題

Mozillaはポテンシャル的な脅威にも対処してくれる

  • Content-Typeとcharset をちゃんとつける

LT

mixi scrap Challenge

  • 学生向けのセキュリティイベント
  • 用意したmixiクローンサイトに攻撃してもらって脆弱性を見つけてもらう

イベント用に使ったサイト

  • イベント用のmixiサイトをクローンしてXSSを探してもらう
  • 日記ページにあるXSSを探して、スタッフアカウントに対して攻撃URLを送ってもらう
    • 得点方式

問題

  • ネギ男に、イラクとnicknameがalertされるURLを踏ませて下さい
  • ネギ男に….

みたいな問題形式

実際のサービスのクローンを舞台にして

  • 盛り上がった
  • より実践的な体験をしてもらえた
    • XSSをみつけるだけではなくSNSの使用を考慮して実践的な内容になった
    • 問題をつくやすかった
    • git-grep “XSS” revertで過去に対応してXSS問題から引き出す

AjaxアプリケーションのXSS対応入門 – 徳丸

  • 入門書にもAjax的な問題
  • X-Content-Type-Options: nosniff

JSONハイジャック

  • JSONを罠サイトからスクリプト要素を呼び出す
  • 通常はただのデータなので、読み取りはできないはず…
  • JSONハイジャックで読み取りができてしまう => 既にブラウザは対策済み
  • Androidだとまだ発生する(4.0.3だと問題ない)

対策

  • ヘッダチェックが無難
  • あんまりいい方法がない
  • 外部APIは基本的に信用しない

CSS HTML Attribute Reader – kyo_ago

The Sexy Assassinで紹介されてるCSS HTML Attribute Readerがどこまで危険か検証してみた http://bit.ly/HU74ad

  • CSS Attributeでパスワードの取得 -moz-anyと合わせ技
  • 外部からCSS書けるということ自体が問題
  • :visited の履歴取得も最近のブラウザは対策されてる

ロングIPアドレス

  • ドット無しでドメインを書くことができる
  • ドットを無効化しても、数字だけでドメインを書く事ができるので問題が起こる場合があるかも

セキュリティ小ネタ – send

http://d.hatena.ne.jp/send/20120405/p1

rootkit

  • rootやadminが使えなくなってた
  • 対策
    • 別の所からpsやkill等のバイナリを持ってきてきて殺してた
  • chattrされてた
    • 細かい改ざんをやっていた
  • 対策として改ざん検知などの導入で数ヶ月使った

よく狙われる脆弱性

JSだとimg onerror

  • src属性指定後すぐ発火してしまう
  • ドキュメントに追加しなくても発火してしまってる(高速)
  • onerrorは除去しにくいので対策しにくい

余談

  • 最初にサブドメイン以下にtest. やadmin.とかを見る
  • crossdomein.xml

パスワード入力はやっぱり別ドメインに分けるべき

DOS

くよくよくよくよ

  • セキュリティを使うと守ると考えるは違う

メモ : Mou + Github.css

    無料で読めて定期更新されているIT系の電子雑誌

    PDF形式などで配布されていて、定期的に更新があるサイトの紹介
    今だとブログがいっぱいありますが、まとまった形態,書式である良さというのもあるので、ブログとはひと味違う感じの所を中心に。

    デジタルプラクティス

    発行は季刊で1月(創刊号のみ2月),4月,7月,10月に発行されるのをPDFで読める。
    内容も多岐にわたっていて、論文というほど堅くはないものもあり読みやすい。

    デジタルプラクティスでは,実務の現場におけるIT 実践例・経験・ノウハウのレベルの成果でも社会的に有用なものならば歓迎し,IT実践における新たな発展を先導するような論文を積極的に採録します
    創刊に当たって

    また、著名な人も結構寄稿されているので、読みたいものが何かしらあると思います。

    などなど

    情報処理推進機構:ニューヨークだより

    IPAにより月一でPDF形式で発行される。
    アメリカのIT関係についての最新事情を扱っていて、ものすごく詳しく書かれている。
    ITやスマートフォンなどのデジタル機器(OSについても)やITと政治についてなど、かなり詳細な情報を掲載している。
    無料とは思えない質だったり、情報元のソースを脚注で入れてくれるので、情報元自体も見られてとても良い感じになっている。おすすめです。

    Wizard Bible

    Wizard Bibleとは、基本的に毎月リリースしているWebマガジンです
    Wizard Bible

    発行は月一でtxt形式で発行されている(最近不定期だった気がする)
    内容はどういったテーマで書けばいいのか?を見ると分かると思いますが、セキュリティ関係のものが中心となっています。それに関係するプログラミングや数学などの内容も扱われています。

    IS Report System

    本サイトは 「同志社大学生命医科学部医情報学科 医療情報システム研究室」 及び 「同志社大学工学部インテリジェント工学科 知的システムデザイン研究室」 の所有する研究報告である ISレポートの管理システム
    IS Report System

    医療やソーシャルメディア、インターネットや携帯電話などの電子機器について書かれたレポートが公開されています。
    HTMLとepub形式(一部PDFも)で配布されていて、図などが入ったものも多く内容も結構読みやすいです。
    結構書かれているジャンルが幅広い気がします。

    The Pragmatic Bookshelf | Read Our Magazines

    Pragmatic Bookshelfにより毎月発行されるプログラミング関係の電子雑誌。
    HTML PDF epub mobiが用意されている。

    番外編

    タイトルから外れて有料の雑誌。
    といっても海外だと電子版の雑誌は珍しくないので、気になったものだけ。

    JsMag – the magazine for JavaScript developers

    JavaScriptについて扱う月刊誌。
    一号毎に購入($4.99)か一年分まとめて購入($53.88 )ができる。
    日本にもこういうの欲しいですね。。

    Hacker Monthly – Print Magazine of Hacker News

    Hacker Newsで話題になったものを厳選して扱う月刊誌。

    おわり

    電子雑誌というタイトルにしたけど、別に雑誌じゃないものが多い気がする。
    今はブログやソーシャルメディア経由でだいたいの情報はカバーできるだろうけど、論文や雑誌、スライドなどある程度労力を伴って書かれたものにはブログとは異なるものがあると思ってるので、こういうものも読んでいきたいですね。

    JavaScriptの論文かき集める仕組み欲しい。日本でも小さなもの含めて年間二桁は書かれてる感じする。
    Twitter / @azu_re: JavaScriptの論文かき集める仕組み欲しい。日 …

    とか思ったりするのはそういう理由です。

    他にもおすすめがありましたらよろしくお願いします。

    WindowsからVM上のLinuxをSSH経由で利用する開発環境の構築

    VirtualBox orVMWare PlayerでLinux環境をWindows 7×64に構築するメモ
    今回はVirtualBoxTurnkey Linux coreを使って構築した。

    と見せかけて、最終的にはUbuntu Server使う事にしたので途中まで飛ばしていいです。

    なんでVMを使ってまでやるかというと
    WIndowsでのCUIはConsole+NYAOSでコンソールとしていいのですが、node.jsなど実行できないものが出てきたので、VM上に環境を作ることにしました。
    Cygwin : 食わず嫌いでしたが、食ったら嫌いでした。
    coLinux : 64 bitが非対応でした。

    必要なもの

    • VirtualBox(仮想化ソフトウェア)
    • TurnKey Core(サーバー、そこら辺の便利なソフトが入ってる感じのディストリビューション)
    • RLogin(SSHクライアント)

    Turnkey Linux coreはVM向けにovf形式でも配布してるので、OVFと書かれてるリンクからturnkey-core-バージョン-lucid-x86-ovf.zipをダウンロードして使う。

    2011-04-20-ss11

    VirtualBoxを起動してメニューの仮想アプライアンスのインポートから、先ほどのovfをインポートすると自動でTurnKey Coreが仮想マシン一覧に並ぶ。(設定するのは仮想マシンの名前ぐらい)

    2011-04-20-ss8

    起動するとパスワードの設定などがあって、パスワード以外はEnter押してればいいと思う。
    設定が終わると起動して下のようなメニュー画面が表示される。

    2011-04-20-ss12
    メニューを終了させると、CUIで操作できるけどキーやマウスの関係で扱いにくいのでSSHからアクセスして操作する。

    RLoginを起動して、サーバの接続から新規追加して、プロトコロルにSSH、アドレスにはLinuxサーバーのIPアドレス、ユーザーはrootで、パスワードは最初の起動時に設定したものを入力して接続する

    2011-04-20-ss13

    2011-04-20-ss9

    こっからはサーバー{ゲスト側(Ubuntu)}の設定

    まずはrootだとあんまりよくないので、ユーザー(azuという例で)を追加、そのユーザーのパスワードを設定する。

    root@core ~# useradd -m -s /bin/bash azu
    # ユーザーazuを追加する。mオプションがないとHOMEディレクトリが追加されなかった
    root@core ~# ls /home/     
    azu/
    # HOMEディレクトリがあるのを確認
    root@core ~# passwd azu
    # パスワードの設定
    Enter new UNIX password: 
    Retype new UNIX password: 
    passwd: password updated successfully
    useraddの-sオプションでログインシェルを決めないとかなり不自由な感じになります。
    後からログインシェルを決める場合はchsh -s /bin/bash などとする。
    と、このままTurnkey Linuxを使おうと思っていたんだけど、ファイル共有でどうしても上手くGuest Additionsのインストールが上手くできないのと、なんかroot前提なような環境で他とは少し違った感じで躓く事がありそうだったので、Ubuntu Serverに切り替えました。
     

    Ubuntu Serverを使って環境構築(改めて)

    (ちょこちょログにTurnkeyが出てくるのはそのときの名残です。プロンプトの文字は無視してください)
    (Turnkey Linuxの事は忘れてください)
    必要なもの

    ホストOS

    ゲストOS

    Windows 7 64bit

    Ubuntu Server

    で環境を作っていきます。
    Ubuntu Serverのisoをダウンロードしてきて、新規仮想マシン作成から適当な配分で仮想マシンを作りますが、ネットワークをブリッジ接続に変更しないとUbuntu ServerのIPアドレスが10.0.2.25とかいう感じになってSSH接続できなかったので、ネットワークをブリッジ接続に変更して作成しました。
    image
    追記: ネットワークがNATでもポートフォワーディングすればSSH接続できました(こっちの方がいいかも)
    ネットワークの設定をNATにしてから、高度の設定でポートフォワーディングにホストには任意のポート、ゲストにはUbuntu側に設定したSSHのポート番号(デフォルト22)を設定します。
    2011-04-23-ss1
    この状態で、RLoginに接続IPアドレスに127.0.0.1 or localhost で、ポート番号にはホストに設定したポート番号を入力すればSSH接続できます。
    任意のポートだけを開く感じで使えるのでこっちの方がいい気がします。同様の方法でWebのポートである8080もポートフォワーディングに設定しました。

     

    仮想マシンを起動したUbuntu Serverのインストール画面でユーザーアカウントの作成ができるので、下のガイドに従って入力していくだけで先ほどのTurnkey Linux でのユーザーアカウント追加までと同じ事ができます。

    注意点としては18.サーバーソフトウェアの選択画面でOpenSSH SERVERを選択してSSHでつなげるようにしておくと楽でいいです(スペースキーで選択チェックが入る)

    忘れた場合でも

    sudo apt-get install openssh-server
    とすればいいだけなので、そこまで問題ないです。
    Ubuntu Serverはそのまま使うと文字化けして扱いにくいので、RLoginを使ってアクセスすれば文字化け対策をしなくてもいいので、最初からRLoginを使って作業します。
    サーバのIPアドレスは
    ifconfig

    で、わかると思います。
    初期設定なら、インストール時に入力したアカウントとパスワードでログインできると思います。


    SSHで鍵を使って接続

    セキュリティ的にパスワードではなく鍵でSSHをつなぐのが普通だと思うので、SSHの鍵設定をします。

    root@core ~# cd /home/azu/
    # ユーザのHOMEへ
    root@core /home/azu# mkdir .ssh
    root@core /home/azu# cd .ssh
    # .sshディレクトリを作って移動
    root@core azu/.ssh# ssh-keygen -t rsa
    # 鍵を生成する
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): turnkey # ファイル名は適当に
    Enter passphrase (empty for no passphrase): 
    Enter same passphrase again: 
    Your identification has been saved in turnkey.
    Your public key has been saved in turnkey.pub.
    root@core azu/.ssh# ls
    turnkey  turnkey.pub
    # .sshディレクトリに秘密鍵と暗号鍵が生成される
    root@core azu/.ssh# mv turnkey.pub authorized_keys
    # turnkey.pub を authorized_keysにリネームする
    root@core azu/.ssh# ls
    authorized_keys  turnkey
    鍵は生成して公開鍵(authorized_keys)の登録ができたので、秘密鍵をホスト側のPCに転送します。
    RLoginにファイル転機能がついてるので、.sshディレクトリにある秘密鍵(turnkey)をホスト側に移動させます。
    ゲスト側(Ubuntu)に秘密鍵は置いておく必要はないので、秘密鍵(turnkey)は転送したら削除します。
    2011-04-20-ss15
    次にSSHの設定で、鍵以外でのログインはできないように/etc/ssh/sshd_configを書き換えます。
    # それぞれをnoに書き換える 
    PermitRootLogin no  
    PasswordAuthentication no  
    UsePAM no
    # 面倒だったので一度rebootした

    自分はportも22から適当なものに変更しました。

    後はRLoginに秘密鍵を登録してSSHログインするだけです。
    SSH Identity keyに転送した秘密鍵をセットして、ポートを変えた場合はポートも任意のものに設定してから接続します。
    共有フォルダの設定
    Ubuntu Server にはGUIがないので、Guest AdditionsのインストールもCUIで行わないといけません。
    ここで結構はまりました

    が大変参考になった。

    まずは適当な共有フォルダを設定しておく。

    image

    そして、起動してるVMのメニューにある”Guest Additionsのインストール”を押しておく。
    何にも起きてないように見えるが、CDドライブにCDが入った感じになる。

    sudo apt-get install build-essential linux-headers-`uname -r`
    sudo apt-get install xserver-xorg xserver-xorg-core
    #必要なものを先にインストールしておく
    ###################
    # ここまでにGuest Additionsのインストールを押してマウントの準備が必要
    ###################
    mkdir /tmp/cdrom
    sudo mount /dev/sr0 /tmp/cdrom
    # Guest Additionsのディスクをマウントする
    cd /tmp/cdrom
    sudo bash VBoxLinuxAdditions.run  --nox11
    sudo addgroup --system --quiet vboxsf
    sudo usermod -a -G vboxsf azu # ユーザーをvboxsfグループに加える
    sudo reboot
    # リブート
    
    azu@ubuntu:/media$ ls
    cdrom  sf_azu
    自動マウントするためにはユーザーをvboxsfグループというグループに加える必要があることに注意。
    リブートすると/media以下にsf_フォルダ名が現れてアクセスできるようになる。
    大体ここまで基礎的な環境ができあがるので、後は好きなソフトを入れていく感じになると思います。(一応スナップショットをとっておきました)
    Ubuntu Server + VirtualBox GUIありでメモリ使用量は45MBぐらい、VBoxHeadless.exeで画面表示なしで起動させると30MBになって結構メモリ使用量は少ない。
    VirtualBoxをタスクトレイに入れて管理するにはVBoxHeadlessTrayがおすすめ。ヘッドレスモードやシャットダウンとなどの操作もタスクトレイで行えるのでとてもいい。

    ついでにNode.jsの環境も作ってみる
    Node.jsは直接入れるよりもバージョン管理するツールから入れるのがいいらしいので、naveかnvmを使う事にした。
    naveは何かインストールが面倒だったので、nvmを使う事にした。
    nvmは自動でnpmもインストールしてくれるので便利。

    azu@ubuntu:~$ sudo apt-get install build-essential libssl-dev git-core 
    azu@ubuntu:~$ sudo apt-get install curl
    # 必要なものを先にインストールしておく
    azu@ubuntu:~$ git clone git://github.com/creationix/nvm.git ~/.nvm          
    azu@ubuntu:~$ cd .nvm/
    azu@ubuntu:~$ bash ./nvm.sh
    azu@ubuntu:~$ nvm install latest
    # 最新のnodeをインストールする
    azu@ubuntu:~$ node -v           
    v0.4.5

    毎回 bash ./nvm.sh 実行するのは手間なので。
    .bashrc を編集して、

    . ~/.node/nvm.sh
    nvm use latest

    を書き加えておきます。

    雑記

    VMWareはスタートアップにいろんなもの生やすし、ダウンロードも登録必要で面倒なので、VMWareよりもVirtualBoxの方が好みでした。

    目標としては、Cygwin HereみたくWindowsのエクスプローラー上のコンテキストメニューから、SSHクライアントを開いてそのときに同時に共有フォルダのsf_azu以下にある同じフォルダまで移動したいのだけど、お客様の中でよい方法をお知りな方がいらしゃったらお願いします。
    e.g)
    windows : C:\Users\azu\Downloads のコンテキストメニューからSSHクライアントを開く
    Ubuntu   : 渡されたパスを元に /media/sf_azu/Downloads をカレントディレクトリにする

    SSHクライアントのマクロみたいので実現するのかな。

    Turnkey Linuxの

    オライリージャパンのebook(PDF)でコピペする、ファイル名のリネームをする方法

    O’Reilly(Japanも)が全ての電子書籍を半額で&売上を日本赤十字社に寄付 | JSer.infoでオライリージャパンも半額電子書籍を販売していたので、オライリージャパンのpdfにはDRMなどの制限があることを知らないで購入した人もいるかもしれません。

    販売されるEbookは、印刷、テキストのコピー、ページの抽出、内容の変更を行うことができません。決済時に入力いただいたご購入者のメールアドレスが挿入されます

    O’Reilly Japan Ebook Store : 購入規約

    英語が読めない人向け、英語技術書の読み方でも言っていましたが、印刷はまだしもコピペができないのは電子書籍として致命的なので、そのDRMの回避方法と、オライリージャパンからダウンロードしたpdfは<16進数の羅列>-<書籍のISBN>.pdfという扱いにくいファイル名なのでそれを手軽にリネームする方法の紹介です。

    pdfファイルのリネーム

    まずはpdfファイルのリネームです。
    オライリー公式でも扱いにくいと言ってて、ISBNからJSONで書籍情報を取得できるAPIを提供しています。
    これを使ったリネームスクリプト(Python)がJSON形式による書誌情報の提供をはじめました – O’Reilly Japan Community Blogで公開されているので、これを使うのも良いでしょう。

    もうひとつは電子書籍ソフト関係で有名な>>722さんがISBN TitlerというISBNなどからAmazonで検索してファイルのリネームをするソフトウェアを公開しています。使い方は単純で、PDFをソフトウェアにD&Dするだけでリネームをしてくれます。(iTextSharpを使えばpdfのプロパティも書き込んでくれるらしいですが、オライリーのpdfだとDRMの影響かもしれませんがうまくいきませんでした。)
    設定からリネームの書式設定や置換の設定などもできるので、自由がきくリネームソフトになっています。

    DRMについて

    追記: オライリージャパンの電子書籍もDRMフリーになるそうです。
    O’Reilly Village/オラの村 – オライリー・ジャパンのEbookがDRM Freeになります

    先ほど述べたようにオライリージャパンには印刷、テキストのコピー、ページの抽出、内容の変更ができないなどの制限やメールアドレスをウォーターマーク的に埋め込み(遅延の原因っぽい)があります。
    O’Reilly Mediaにはこの制限はありませんし、PDF以外にもepubなどでダウンロードできますし、アップデートも保証してくれます。
    なぜ本家ではそのようなDRMを付けてないかはSteal This E-Book – Forbes.com(訳 fladdict » 電子書籍を盗め!)を読むといいです。

     

    制限の一覧

     

    このオライリージャパンにある制限はPDF-XChange ViewerというPDFビューアーを利用する事で外すことができます。
    ファイルメニュー>ドキュメントのプロパティ>セキュリティタブ で”セキュリティの設定”を”なし”にしてからpdfファイルを保存するとコピーなどの制限がなくなります。(メールアドレスのウォーターマークは消えないけど)

    なしに変更した場合

     

    これで書籍の外観を乱すウォーターマーク以外は通常の電子書籍としてオライリー本を読むことが可能になりました。
    (多分、セキュリティ変更に対するパスワードがかかってないためAcrobatなどの他のソフトでもセキュリティ設定の変更を行う事ができると思います)

     

    何でこんな記事を書いたかというと、コピペも印刷もできないというDRMがかかってるのはさすがに電子書籍として論外だと思ったからだ。
    コピペができないとその場でコードを実行して確かめにくい(サンプルコードをわざわざ見に行くのかい?)と思うし、検索も行いくくなって電子書籍である利点がなくなってしまっていると思う。また、PC(電子書籍端末)じゃ読みにくいから印刷する、大事な部分は印刷して読みたいという需要が存在してるはずだ。そうしたDRMを設定することにどこまで意味があるのかもやや疑問的でもあり、オライリージャパンの立場的にそうしたものを付けないと物事がスムーズに進まないと言った事情もあるのでしょうが、やはりコンテンツの価値を下げてしまってるこのDRMは不要だと思う。

    また、オライリージャパンのpdfには各ページの末尾に購入したメールアドレスが埋め込まれるというソーシャルDRM的なものが存在している。

    これも、末尾に毎回あるだけでも外観を乱しているのに、PDFリーダーがメールアドレスをリンク(設定で変えられるが)して余計気が散ったりして電子書籍を読みにくくしている。ソーシャルDRMは不正コピーに効果的かもしれないが、これが嫌で購入を避ける人もいるだろう。

     

    この記事を出すかは少し迷ったが、いつまでもこのままでは不便きわまりないため書くことにした。
    これを書くのに他の国ではどうなっているのかも少し調べてて、オライリーにはUS(UK) 、 ドイツ 、 日本 、 中国、台湾とあり、中国、台湾はオライリーショップがない?(他のショッピングサイトを経由してた)
    ドイツは http://www.oreilly.de/ebooks/faqs.htmlにebookのDRMについて記述されているがドイツ語が読めなかったのでよく分からなかった(pdfとepubで販売してて、ウォーターマークありで印刷はできてcut&pasteはできないって読めたけど確証はない、cut&pasteと言うのがよく分からないし、コピペはできるけど加工はできないという意味なのかな?)
    本家であるUS(UK)はご存じの通り、マルチフォーマットでDRMなしで、日本の12時間以内にダウンロードしないと無効になるなんて事はなく、書籍のアップデートも保証されている。(後、ラフカット版やsafari onlineの存在は大きい)
    もしドイツもDRMがあるようなら翻訳関係でDRMが付けられているのかもしれないが、先の震災により電子書籍を扱うところが増えて動きが活発になってきているこのご時世に、何かオライリージャパンとしての動きがあることを願っています。

    参考

    使用したソフトウェア

    ISBN Titler
    http://no722.cocolog-nifty.com/blog/isbn_titler/index.html
    PDF-XChange
    http://www.tracker-software.com/
    http://www.oreilly.de/ebooks/faqs.html

    動画がカクカクになるのでFlash Player 10.1からダウングレード

    H.264動画のハードウェアアクセラレーションなどに対応したAdobe Flash Player 10.1がリリースされていますが、ニコニコ動画などで動画カクカクになってしまいまともに使えなくなったので10.0系にダウングレードしました。

    昔のバージョンにダウングレードする方法

    1. Adobe – Adobe Web PlayerからFlash Player Uninstaller*をダウンロードして、現在のFlash Palyerをアンインストールする
    2. Archived Flash Player versionsから昔のFlash Player 10をダウンロードする。(普通の人はdebugger versionsでない方)
    3. ダウンロードしたzipを解凍すると10r45_2フォルダの中にflashplayer10r45_2_win.exe (IE以外) とflashplayer10r45_2_winax.exe (IE用) があるのでインストールすれば旧バージョンへ戻せる。


    10.1にはセキュリティのアップデートも含まれているので、旧バージョンに戻すのはあまり良くないことです。
    Adobeのアップデートはこういうことがあるので、セキュリティのアップデートはメジャー?アップデートに含めて欲しくないな。

    Flash Playerをアンインストールして旧バージョンに戻す方法 – GIGAZINE
    http://gigazine.net/index.php?/news/comments/20081023_flash_player_uninstall/

     

    VistaのLAN認証レベルを変更する「LAN Manager 認証レベル チェンジャー for Vista」

    VistaではセキュリティをあげるためにLANの認証レベルがXPより高くなっています。
    そのため古いsambaなどは通常のままだと認証されません。
    また、Vista BusinessとUltimateにはこの認証レベルを変更できるメニューがありますが、ユーザーが多いと思われるpremiumなどにはありません。

    直接レジストリをいじればpremiumでも可能ですが、それを楽に編集するソフトウェアの紹介。

    LAN Manager 認証レベル チェンジャー for Vistaは認証レベルの変更をGUIで操作できるので、わかりやすいです。
    Ultimateなどにあるメニューを取り出した感じのソフトですね。
    注)レジストリをいじることには変わらないので気をつけて使用するべき。

    LAN Manager 認証レベル チェンジャー for Vista :: LaboRat App
    http://app.laborat.net/lclc/

    「サウンドハウス」に見る不正アクセス(セキュリティ)

    音楽関係のECサイトであるサウンドハウスが今やたらとはやっているSQLインジェクションなどの不正アクセスにより個人情報が流出したという話ですが、 別にECサイトを運営している訳でもないし通販自体しないからあまり関係ないかなと思っていたけど、
    サウンドハウスの取締役自ら(一部かも知れませんが)が作成した詳細の報告のPDFが興味深かった。

    サウンドハウスニュース
    http://www.soundhouse.co.jp/shop/News.asp?NewsNo=1561

    個人情報流出に関する詳細(PDF)
    http://www.soundhouse.co.jp/news/20080418.pdf

    この詳細のPDFは経過報告とあわせてセキュリティ対策についての提言など被害者の立場の意見がかなり詳細に載せられています。経過報告は分刻みで乗っていたりと、セキュリティにあまり関心がない人でも一度読んで見ることをオススメ。

    結果としてはサーバのセキュリティ強化する以前にサーバ内に不正に置かれていた悪性プログラムが原因になったみたいです。

    SQLインジェクション(英:SQL Injection)とは、アプリケーションのセキュリティ上の不備を意図的に利用し、アプリケーションが想定しないSQL文を実行させることにより、データベースシステムを不正に操作する攻撃方法のこと。また、その攻撃を可能とする脆弱性のこと。

    SQLに別のSQL文を「注入 (inject)」されることから、「ダイレクトSQLコマンドインジェクション」とも呼ばれる。

    3Dセキュア(すりーでぃー せきゅあ)は、VISA Internationalが開発したインターネットでのクレジットカード決済の本人認証技術。

    オンラインショッピング等での決済時に、ショップ側が設置しているウェブサイトがクレジットカード会社が提供するWebAPIを取り込み表示する。クレジットカード番号とPIN(4桁の暗証番号)の入力はこのAPIを通して行われるため、本人認証をクレジットカード会社側が行うことになるので、より高度なセキュリティが保たれることになる。

    プロフィール: azu(アズ)
    Firefoxの事やソフトウェアの紹介や使い道、Greasemonkeyの作成
    • OS:Windows Vista, 7
    • ブラウザ:Firefox
    • Twitterのアカウントはこちら
    • azu_re
    • メールアドレス(Twitterの方が確実)
    • info@ドメイン名
    リンク