2012年3月21日

第10回北海道セキュリティ勉強会に参加してきた

2012/03/17は第10回北海道セキュリティ勉強会が開催されたので参加してきた。

今回のお題は「バイナリ解析」。eagle0wl(いーぐるおうる)さんにお話を聞いた。

OSS/Java/.NETプログラマが意識すべきバイナリ解析の素養

歴史

  • 8ビットホビーパソコンの頃は、プログラムの配布はソースコードだった
  • 16ビットコンピュータの頃から、汎用OSが登場。配布はコンパイル済みのバイナリ。
  • プロテクト技術が誕生
  • 新しいメディアが登場するたびにコピーの技術→プロテクトの繰り返し
  • 「プログラムのための硬派なコンピュータ学」

マルウェアの革新と変化

  • 世界初のコンピュータウィルスBrainは、ソフトウェア会社が不正コピーへの抗議として作成された(世界初は別との説もある)
  • リバースエンジニアは個人としては好奇心の探求が目的。企業としてはファイラー、アンチウィルスソフトなど
  • 2000年頃からウィルス・マルウェアは「お金」が目的に変化した

スマートフォンと難読化

  • Javaや.NETは逆コンパイラによる復元が容易
  • Javaはビジネスシーンにおいては、サーバーサイドに配置されるWebアプリが主なので、バイナリが出回ることは少ない
  • スマートフォンにおいては、AndroidやWindows PhoneでJavaや.NETが採用されている
  • Androidアプリを逆コンパイル→マルウェアを入れて再梱包が可能
  • 対策の一つとして難読化
  • ただし現在あまり活用されていない(お金、パフォーマンス)
  • 難読化ツールは悪意あるユーザーにも有効

リバースエンジニアリングの前向きな活用

  • マイナーなコンパイラの不具合対策
  • 最悪な状況の引継ぎ(ソースコードが存在しないシステムなど)
  • Homebrew

懇親会では講師のeagle0wlさんの隣に座ることができたので、ヨーヨーの話もいろいろ聞いた。

普段から.NETを使っているが、逆コンパイルについては「できる」事は知っていても、受託での業務アプリにおいてはあまり真剣には考えたことはなかった。特にクリティカルな部分は逆コンパイルされても安全な設計を心がけなければならないと再認識した。

2012年3月11日

The World Is On The Way

2012年3月9日

WindowsのEmacsでtwittering-modeを使う

Sapporo.elでtwittering-modeを使ったが、Windowsではauto-installを使ってのインストールはできなかった。インストール手順をまとめてみる
  1. ソースをダウンロード
    twittering-modeからソースファイル一式をダウンロードする。sourceforge.netからダウンロードできる。githubでも良いだろう
  2. ダウンロードしたファイルを配置
    ~/.emacs.d/配下に展開して配置する(ここ以外でも良い)。大抵は「C:\Users\<user>\AppData\Roming\.emacs.d\」配下だろう(Windows7の場合)
  3. init.elを編集
    以下の2行を追加(1行目のパスは手順2で配置したパス)。
    (add-to-list 'load-path "~/.emacs.d/site-lisp/twittering-mode")
    (require 'twittering-mode)
  4. M-x twitで起動
    追加したinit.elを評価、またはEmacsを再起動して、M-x twitと入力すると起動する。
    以下画面が表示されtwittering-modeを認証する手続きから始まる。表示されたURLにブラウザでアクセスすると表示される数字をEmacs上で入力すればよい。
    Authorization via OAuth
    
    1.Allow access by twittering-mode on the below site.
    
      https://api.twitter.com/oauth/authorize?oauth_token=<認証のトークン>
    
    2.After allowing access, the site will display the PIN code.
      Input the PIN code at the below minibuffer.
  5. twitteringする
    認証が成功すればタイムラインがEmacs上に表示される。
これでとりあえずは使用できるが、Emacsを閉じるとまた手順4の認証が必要になってしまう。GnuPGを使ってアカウント情報を保存することができる。
  1. GnuPGをインストール
    GnuPGからダウンロードしてインストール。インストーラが用意されているので、それにしたがってインストールすれば良い。
  2. GnuPGインストールディレクトリにパスを通す
    環境変数のPATHにGnuPGをインストールしたディレクトリを追加する。環境変数の編集は[コントロールパネル]→[システム]→[システムの詳細]で[システムのプロパティ]ダイアログを表示し[詳細設定]タブの[環境変数]ボタンから。
    パスを通しなくない場合は、init.elに以下を記載する
    (add-to-list 'exec-path "")
  3. init.elを編集する
    (setq twittering-use-master-password t)
  4. M-x twitで起動
    再度認証となるが、認証完了後に今度は「Passphrase for symmetric encryption:」と表示されるはず。ここで適当にパスフレーズを入力する。続いて「Confirm password:」と表示されたら今入力したパスフレーズを入力するとタイムラインが表示される。次回起動時はこのパスフレーズを聞いてくるのでそれを入力すれば良い。