Hatena::ブログ(Diary)

橋本幸樹の無愛想な日記

2013-08-26

第8回セキュリティさくら

8/24に熊本が誇る勉強会セキュリティさくら」の第8回に行ってきました!

今回は「フォレンジック」がテーマ

結構いろんな手がかりが残っちゃうんだなあ。油断ならないなあというのが感想。あとフォレンジック母ちゃんが強烈だった。

他にもいろいろあったけどとりあえずメモ貼っとく。

2013/08/24 セキュリティさくら

不正アクセス調査におけるコンピュータフォレンジック
株式会社ラック 初田淳一さん

デジタルフォレンジックとは?
電磁的記録の証拠保全及び調査分析改竄・毀損等についての分析情報収集等

利用シーン
・法廷証拠など

記録を残す事が大事
HDDIDデータハッシュ値写真USBメモリ受け渡し記録

フォレンジック技術データ保全
 ディスクイメージの取得
 ファイル削除だけではダメ、削除された領域も含めディスク全体をビットコピー
 ライトブロッカー:ディスクへの書き込みをブロックするハードウェア

 FTK Imagerで削除されたファイル復元Windowsのみ?

 タイムライン調査
 Prefetch情報を見ると過去に実行されたファイルが分かる
 レジストリにも痕跡が残る
  Tool:Registry Viewerで見るとレジストリエントリ更新日時が見える
  実効履歴に関係するエントリだけ抜き出すツールもある(Regripper)
  log2timeline:いろいろなログファイルタイムラインに入れて調査できる(buggy)
  Autospy
  スルースキット:タイムライン作成する

 メモリフォレンジックディスク痕跡を残さないマルウェアもある
     マルウェアは通常のコマンドで調べても見えないようになっていたりする!
     実メモリダンプ(dumpitで取る)を解析する(volatilityを使用)

愛甲さん
  機械語普及のための努力
  かるた
  短歌
  テトリス
  美少女

前田さん(カスペルスキー)
  ソーシャルエンジニアリング
  騙されそうにないことでも結構騙される

竹内さん
  生存戦略
  SI系インフラエンジニア
  健康大事.運動しましょう
  fibit one 運動量ログを取れる

中原さん Cagayake_Miracle
セキュリティキャンプについて→ ブログ見てくれ
今日は黒歴史について

まあざっと以上のような感じ。

Qemb

さくらの始まる前の午前中には組み込み勉強会の「Qemb」もありました。これもまた楽しかった。

自作したエレキウクレレ持ってったけど組み込みとはまったく関係なし!タダのウケ狙い。ウケなかったけど。

会は座談会形式で徒然なままにみんなが話したいことを適当に話す感じ。

例えば吉村くんのライントレースカーの原理を教えてもらったり。早く走らせるための工夫で、1周目だけセンサートレースして走り、あとは1周目で学習して覚えたデータに基づいて走らせるとか。

個人的には福岡から参加された金井さんときくちゃん先生とのサウンドデバイスOSを使うのは是か非か論争がとても面白かった。

あとAVRマイコンにSIMMメモリをハンダ付けしてLinuxを起動する、という動画をみて、「やべー、遅すぎる」とか言って盛り上がってた。吉村くんはこれを自作するつもりらしい。期待してる。

あと、わさおやみらくるくんとかは何かわちゃわちゃやってて、何をしているのか知らないが楽しそうな姿がとても良かった。

まとめ的な感想

さくらはいつ行っても楽しいテーマがわかりやすい。勉強になる。運営が本当にしっかりしてるから勉強会も懇親会も準備がしっかり行き届いているのがよくわかる。

本当にすごい勉強会です。

2012-12-13

非モテP5erに贈る!イケメン言語 ruby-processing のご紹介

Processing Advent Calendar 2012 12月13日参加企画

はじめに

Processingユーザの皆さん、始めまして。橋本幸樹(@koki_h)と申します

今日Processingユーザ向けにruby-processingをご紹介します

ruby-processingProcessing機能ruby言語の文法をつかって記述できるようにした処理系で、Processingのかっこいいグラフィックをrubyのかっこいい構文で記述できるという究極のイケメン言語です。

今回はruby-processingインストールから簡単なプログラム作成までを紹介したいと思います*1

環境Windows Vista Business SP2です。他のWindowsを使っている人は適当に読み替えてください。LinuxMacでも動くはずですが、rubyのインストールなどはそれぞれの環境に合わせて行ってください。

Processingインストール

Processingインストール不要です。

rubyのインストール

ruby処理系はいろいろあるのですが、今回は、Ruby-1.9.3-p327 Microsoft Installer Package(2012-11-10) を使います

こちらのサイトからインストーラダウンロードます

ダウンロードしたら、インストーラを実行すればOKです。

ruby-processingインストール

スタートメニューの すべてのプログラムRuby-1.9.3 > Ruby-1.9 console (Administrator)

クリックしてコマンドプロンプトを開き、以下のコマンドを打ち込みます

> gem install ruby-processing

エラーメッセージのようなものも出てきますが、気にせずに以下のコマンドを打ち込みましょう。

> rp5 -v

ここででてきた"rp5"というのがruby-processingの本体です。このコマンドを使ってruby-prosessingのプログラムを実行します

"Ruby-Processing version 1.0.11"と出てきたら成功です。

必要な設定

早速サンプルスケッチでも動かしてみたいところですが、このままではエラーが出て動きません。

エラー回避するための設定が必要です。

以下の内容のテキストファイル作成し、ユーザディレクトリ*2 .rp5rc という名前で保存します

sketchbook_path : C:\Users\koki\Processing

"C:\Users\koki\Processing"の部分は各自の好きなディレクトリパスでOKです。

これでサンプルを動かす準備ができました。

サンプルを動かす

ruby-processingruby consoleから実行します

スタートメニューの すべてのプログラムRuby-1.9.3 > Ruby-1.9 console

で、出てきます*3

ruby consoleを開いたらサンプルを展開するディレクトリに移動します適当ディレクトリでOKです。

> cd C:\Users\koki\rp5

つぎにサンプルを展開します

> rp5 unpack samples

現在ディレクトリにsamplesというディレクトリ作成されます。この中にruby-processingのサンプルが入っています

サンプルの実行は以下のようにします

> rp5 run samples\contributed\jwishy.rb

なんかProcessingっぽいのが出てきましたね。成功です。

f:id:koki-h:20121208130510j:image

スケッチ作成

ではスケッチを作っていきましょう。

まず雛形を作ります

> rp5 create --bare first 200 200

これで現在ディレクトリにfirst.rbという名前ファイルができます

中身はこんな感じ。

def setup
    size 200, 200
end

def draw
  
end

これだけでもprocessingとそっくりなのがわかると思います(当たり前か)。この雛形をエディタで次のように編集ます*4

load_libraries :opengl
def setup
    size 200, 200, OPENGL  
    $rotation_rate = 0.02
end

def draw
    background 50, 50, 50
    translate 100, 100, 0; 
    rotateX frameCount * $rotation_rate;
    rotateY frameCount * $rotation_rate;
    rotateZ frameCount * $rotation_rate;
    box 100
end

そして次のように実行します

> rp5 run first.rb

すると、

f:id:koki-h:20121209165800j:image

こんな感じの立方体が回転する画が出てきます

ちなみに、同じのをProcessingでやると以下のようになります

import processing.opengl.*;
  
public float rotation_rate = 0.02;
void setup(){
  size(200,200,OPENGL);
}

void draw(){
  background(50,50,50);
  translate(100,100,0);
  rotateX(frameCount * rotation_rate);
  rotateY(frameCount * rotation_rate);
  rotateZ(frameCount * rotation_rate);
  box(100);
}

ruby-processingだとカッコが省略できたり、セミコロンがいらなかったり、変数の型指定がいらなかったり、すっきりしていてなかなかステキなんじゃじゃないでしょうか。この辺がRubyのイケメンっぷりですね。他にもオープンクラスだとかlambdaだとかruby面白い機能を使ってスケッチを作ることができます*5

その他便利な機能

> rp5 watch first.rb

とやるとfirst.rbを編集して保存した瞬間にプログラム再起動して変更内容が実行結果に反映されます

普通ProcessingだとCtrl+rを押したときみたいな動きですね。

> rp5 live first.rb

こうするとスケッチインタラクティブモードで起動します

実行中のスケッチコマンドプロンプトから動的に変更できます

かなり面白いのですが、ちょっと癖があって使いにくいかもしれません。

終わりに

インストールのやり方と簡単なプログラム作成をご紹介しましたがいかがだったでしょうか?

インストールコマンドプロンプトを使うところが若干面倒で、ドキュメントが少なかったりここ1年くらいメンテされていなかったり、あまりいけてない面もありますが、rubyならではのプログラムサクサク書ける感覚は他ではあまり味わえないと思います*6普通Processingと一味違った楽しみ方ができると思います。ぜひ一度チャレンジしてみてください!

リンク

*1:途中まで書いてよく見たら、ruby-processingのGetting Startedとほとんど同じ内容ですね。https://github.com/jashkenas/ruby-processing/wiki/getting-started

*2ユーザディレクトリパスコマンドプロンプトで、echo %USERPROFILE% と打ち込むと出てきます

*3ruby-processingインストールのところでも似たようなのが出てきましたね。あっちはコマンド管理者権限で実行するためのものです。

*4:ちなみにProcessingのようなIDEはありません。好みのエディタを使ってください

*5:詳しくはrubyの本などを参照してください。本当に面白いです。

*6:この記事の内容ではわかりづらいかもしれませんが。。

2012-01-04

[][]バラ曲線への訪問数

ちょっと気になってサーバアクセスログgrepやらcutやらuniqやらを使って手動で解析。

日付       訪問数
==================
11/Dec    232
12/Dec    105
13/Dec     18
14/Dec      8
15/Dec      9
16/Dec      4
17/Dec      3
20/Dec      2
22/Dec      2
24/Dec      2
28/Dec      2
29/Dec      1
01/Jan     36  <--- vallogで紹介
02/Jan     32 
03/Jan     14 
04/Jan     61   <--- 再度vallogで紹介
05/Jan      4 
(2012/01/05 0:40ごろ現在)


vallog偉い!




バラ曲線を書いてみた - 橋本幸樹の無愛想な日記

2012-01-03

[]RVMでインストールしたrubyをcronとかで実行する。

RVMは非常に便利なのだけど、cronなどから実行するとライブラリパスなどがおかしくなって実行できなかったりする。

そこで下のようなスクリプトを書いて、

rvm_exec.sh 1.9.2 my_script.rb

のように実行するようにした。

rvmのインストール時に.bashrc に追記した設定を毎回やればいい、ってことですな。



<12/01/15追記>

実行結果の先頭にrubyバージョン情報(Using /home/koki/.rvm/gems/ruby-1.9.2-p290

のような)が出てきてしまうのが不都合だったのでrvm use (バージョン名) でなくrvm (バージョン名) exec を使うように修正しました。あとshbashリンクしていない環境考慮して#!のコマンドshからbashに変更しました。

<12/05/19追記>

スクリプト自体に渡す引数が切り捨てられていたのを修正しました。

[]バラ曲線を書いてみた

http://25.media.tumblr.com/tumblr_lx7ebg2zpY1qz6qbho1_400.png

404 Not Found

先月のネタだけど、埋もれさせるのはもったいない気がするのでブログにPOST。

詳細はリンク先参照ということで。


追記(2012/01/05):

上の画像の曲線はこちらで見ることができますDRAWボタンを押してください) → http://serversman.gohannnotomo.org/toys/rose_curve/rose.html#5677

それにしてもバラ曲線が変化する様子は面白いなあ。

2011-11-26

[]xmonad設定

音量調整の設定とかではまった。余計な設定とかも残っているが、とりあえず晒しておく。

import System.IO
import XMonad
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Util.Run(spawnPipe)
import XMonad.Actions.Volume
import XMonad.Util.EZConfig 

main = do
  xmproc <- spawnPipe "xmobar"
  xmonad $ defaultConfig
    { manageHook = manageDocks <+> manageHook defaultConfig
    , layoutHook = avoidStruts $ layoutHook defaultConfig
    , logHook = dynamicLogWithPP $ xmobarPP --xmoberにウインドウタイトルを表示
              { ppOutput = hPutStrLn xmproc
              , ppTitle = xmobarColor "green" "" . shorten 50
              }
    , terminal           = "gnome-terminal"
    , borderWidth        = 2
    , normalBorderColor  = "#333333"
    , focusedBorderColor = "#cd8b00"
    }
    `additionalKeysP` --音量調整のための追加キーマップ
    [ ("<XF86AudioMute>",        toggleMute    >> return ())
    , ("<XF86AudioLowerVolume>", lowerVolume 4 >> return ())
    , ("<XF86AudioRaiseVolume>", raiseVolume 4 >> return ())
    ]

  • xmobarrc
Config { font = "xft:Sans-9:bold"
       , bgColor = "black"
       , fgColor = "grey"
       , position = Top
       , lowerOnStart = False
       , commands = [ Run Network "wlan0" ["-L","0","-H","32","--normal","green","--high","red"] 10
                    , Run Network "eth0" ["-L","0","-H","32","--normal","green","--high","red"] 10
                    , Run Cpu ["-L","3","-H","50","--normal","green","--high","red"] 10
                    , Run Memory ["-t","Mem: <usedratio>%"] 10
                    , Run Swap [] 10
    		    , Run Date "%a %b %_d %Y %H:%M:%S" "date" 10
                    , Run BatteryP ["BATA"] [] 30
                    , Run StdinReader
                    ]
       , sepChar = "%"
       , alignSep = "}{"
       , template = "%StdinReader%}{<fc=#ee9a00>%date%</fc> [%battery%]"
       }

音量調整を設定するためのノウハウは以下を参照。

音量調整のキーバインドfnキーで修飾したものにしたかったので以下を参照。

XMonad.Actions.VolumeはXMonad.Actions.Volumeコードを .xmonad/lib/XMonad/Actions/Volume.hs にコピペ

他のライブラリ依存しているため、xmonadapt-getまたはaptitudeで入れただけの状態では動かない。とりあえずghclib*と言う名前のパッケージを全部入れたらうごいた。