Tsurugi Linux 「SECCON版」のリリース、radare2 + Ghidra & R2DECデコンパイラーの組み込みバーション

[English Translation in text]

昨年(2018年11月3日)のAVTOKYOカンファレンス「Tsurugi Linux」フォレンジック・ディストリビューションが日本でリリースされております。
当日のイベントで発表した時のスライドを公開し、次の日に「Tsurugiフォレンジック・ワークショップ」も行い、そして 2018年12月にもSECCONカンファレンスでTsurugi LinuxフォレンジックCTF問題の説明を行いました。その後Tsurugi Linuxが全世界の発表を回って、SANS DFIR (Prague)、HACKINBO (Rome)、「BlackHat」 (USA)とその他のイベントでも発表とトレーニングを行いました。現在DFIRツールの一部としてフォレンジックの世界に認められております。

「Tsurugi」という名前、そして、「剣」のロゴも日本からのアイデアです。誕生した時に「Tsurugi Linux」は日本のフォレンジックとマルウェア解析の3人の方がチューニングしたディストリビューションであり、そしてイタリアの「BackTrack」開発者とフォレンジック解析3人と共に一緒に開発しました。リリースしたのシリーズとしては、Tsurugi(剣)、Bento(弁当)とAcquireであり、それぞれのデサインの目的はGUI版、Live解析版と保全版となります。自分からの提案で色々バイナリ解析関係のツールをTsurugi(剣)に組み込んで、大好きな「radare2」バイナリ解析ツールもプリインストールとして入れております。

SECCON 2018の後、自分の古いMac AirにLiveモード「Tsurugi AVTokyo版」を使い、2019年中で様々なセキュリティ・イベントのスピーカーや講義(SECCON, R2CON、SECCAMP, HACKLU、など)した時にベース解析デモOSとして私が使いました。全然問題がありませんし、「AVTokyo版」が一番STABLE版と思っています。

なお、RADARE2開発チームはR2CON(2019年9月)から「r2Ghidra」の開発が成功され、GhidraのSleighベースデコンパイラーを組み込んで使えるようになり、Tsurugi Linuxの最新版に「git」経由でコンパイルして使いましたが、設定がややこしいで、プリインストールでr2ghidra-decとr2decのデコンパイラーが組み込めば沢山フォレンジックとバイナリ解析の方が喜ぶだろうと思いましたと私が考えました。

「Tsurugi Linux」も現在丁度1年間でメージャーなアップデートがありませんし、このタイミングでその他最新版のツールも入れてメジャー・バーションアップを考え、「SECCON版」という特別なバーションを作り、リリースしようと考えています。その流れで1年前の開発、日本、イタリアとバルセロナの3人(@unixfreaxjp, @Sug4r7 と @trufae)で力を合わせて開発を行っており、「SECCON版」との特別バーションを開発を行いました。

さて、これでTsurugi(剣)Linuxの「SECCON版」をリリースいたします。
バイナリ解析の方には「SECCON版」を使えば「radare2」でマルチ・アーキテクチャーのバイナリをデコンパイルする事が出来ます。その為に「r2dec」と「r2ghidra-dec」のプラグインをプリインストールとしてTsurugi「SECCON版」に組み込みました。本TsurugiのISOを使い、Live USBブート若しくはVM経由(VMware、VboxやKVM)で直ぐに使えるようになります。SECCON 2019の「Linux Post Exploitationの今」のトークでデモする予定です(ですからSECCON版という名前になりました)。その時にHACKLUで発表しましたLinuxプロセス・インジェックションのバイナリで一緒にr2GhidraでアセンブリからC言語にデコンパイルしましょう!SECCONにもGhidraとr2decのそれぞれのデコンパイラー特徴も説明致します。

使い方はTsurugiのように、便利です。ISOをダウンロードしてVM環境で実行(RAMはGUIなら4Gbがお勧め、CLIなら1-2GBで十分)、若しくはUSB bootで実行も可能です。立ち上がればターミナルでr2とバイナリのパスを書いて、{ENTER}を押して、pdd?はR2DECのヘルプ、pdg?はr2ghidra-decのヘルプを読めます。その後色々試してみて下さい。

メリットは何ですか?
1. そのままで使えること(プリインストールなので、Liveデモ、インストールしても、どっちでもOK)
2. Ghidraが要らないですね。Javaが好きじゃない人にま喜ぶだと思います。
3. git からアップデートしたい場合、/opt/radare2はcloneのダイレクトリで/home/tsurugiはホームのパスです、調整すればr2pmでinitとupdateしたら最新版のgitバーションもアップデート可能ですね。
4. 3種類デコンパイラーが使えますね、pdc (標準), pdd (R2DEC)と pdg (r2ghidra-dec)、
全てマルチプロセッサに対応しています。
5. 講義とか、勉強会とか、デモとかで直ぐに使えますね、長持ちだと思います!
便利でしょ?(^-^

デメリットは?
1. radare2は使ったことない人には1回勉強した方がいいかも知れません
2. 他のTsurugi開発者自身はr2のインターナルが分からないのでサポートが出来ないかもね。なんかあれば私に聞いてみてください。出来る限り手伝いますが、是非、色々調整もやってみてくださいね。

Tsurugi(剣)Linuxの「SECCON版」のGUIスクリーンショットは下記の画像となります、lsb_releaseで「SECCON edition」と最新カーネルを使っています。


(クリックで拡大)

ダウンロード(iso)はこのリンクから出来ます。ハッシュは「9dd142361a00c522f9e9a8e7664be47a」となります。

【開発のメモ】

1.起動後、サイズの少ないポップアップmsgについて。

VMやUSBで起動中の時に上記のmsgポッパップが出る時もあります。
原因は、r2ghidraとr2decをビルドしたら1.5GBのサイズがどうも出来てしまいました。そこから開発でtrimming(要らないファイルを消す)を頑張っていて(squash hddのサイズに間に合うように)、radare2プリインストールのデコンパイラーが完了した時にTsurugiのワークスペースが少ない状況になってしまいました。

例えばVM(HDD 15GB/RAM:4GB、以下の環境)で起動したら、そのMSGが出るときもあります。msgの画像は下記のように↓

(クリックで拡大)

そのmsgのチューニング時間が無くて、そのままで出していて、大変な影響がありませんが、対応する方法はまず「Ignore」というボタンを押して頂き、RAMのワークスペースが少ないので、もっと広いワークスペースを作ってください、例:その他のメディアでUSBとかでマウントして下さい。これで大丈夫です。

2.Liveモードを使う場合

起動の環境と起動仕方によって、動きがそれぞれが違いますので、USBとVMの違いもありますし、VM(VMware, Vbox, KVM)のバーションによって使用が違うし、私も全ての環境にはテストするのは出来ませんので、でも起動の設定で方法が絶対あるはずです。Liveで上手く使わない場合インストールする方法もまた別途ありますので、色々試してみてください。

取りあえず、もの的に似便利で、沢山Linux調査ツールが既にプリインストールで入っていますから、ここで公開致します。是非、使ってみてください。またSECCON 2019に会いましょう、その時にまたサプライズの発表があります!


(クリックで拡大)


(クリックで拡大)


(クリックで拡大)

3. SECCON2019とTsurugiLinuxの公式アカウントから、そしてアナウンスした時のメッセージ↓





4. Thinkpad x200のインストール(メモ)

自分は古いThinkpad X200の標準H/W構成(安い板の方)にインストールしました。CPUはx64インテル(Centrino)のDuoコアでRAMは974MB(dmesgと/proc/meminfoにより)かな?
インストールの前にLiveモードでHDDをマウントして、partedを使いNTFSからext4に変更しHDDをフォーマットします。
そしてインストーラーを実行して、大体30分ぐらいインストールが終わりました。が完了したらHDDの構成はこんな感じです、OSの領域が少ないですね↓


(クリックで拡大)

その後、もしそのままで使ってみたら多分firefoxのプラグインのせいでブラウザの動きが重かったりするので、OSINTが必要が無かった場合 firefoxを使わなくてもいいと考えて、chromeをaptでインストールしましょう。普段はchromeで使うと動きが軽くなってきました。調査の関係だけはfirefox、さらにOSINTモードうぃ使いましょう。


(クリックで拡大)

HDD空きスペースが未だある場合他のソフトも入れて動かしてみたら大丈夫そうです。ソフトとアップデートについて、repositoryのベースは未だxenial(16.04 LTS)のままです、xenialのパッケージもaptで入れられます。僕なら色々入れてみたので、画像のように動かしました。取りあえずこのPCベースで次の開発、テストと解析迄使おうかなー、と考えています。


(クリックで拡大)

インストール後にネットワーキングをUbuntuのように設定してください、そしてアップデートが直ぐに出来ます。
下記はいくつかのヒントです↓
・たまにmsgが出たりします。内容をご確認した上でご対応してください。良く出たmsgはUbuntuのrepo確認権限(sudoがほしい)。
・右側のwidgetがconkyというツールで使かっていますがスクリプトで動くので遅い環境にはkillした方がいいかも。
・よく聞かれたmarcoというデーモンがあって、xwindowsマネージャーなのでkillしないでくださいね。
・ClamAV)アンチウイルスが導入されていますね。アップデートやスキャンした時に少し重くなるので、作業の邪魔になる可能性もあるし、起動タイミングの設定を確認したほうがいいと思います。重かったらfreshclamというプロセスをkillすることも出来ます。
・sleepとhybernateはsystemctlから実行が可能ですが、H/Wの認識が必要です。x200ならsleepが動きますがhybernateがNGです(今設定が調整中)。
・(後で追加します)

5. リモート操作方法について

リモートの操作方法はシェル(CLI)とGUIが出来ますがその時に sshd と vncserver を使います。
ssh サーバの起動方法は /etc/init.d/ssh start のコマンドで実行が出来ますので、VNCについてサーバは TightVNCServer がお勧めです。 sudo apt-get install tightvncserver のコマンドでインストールが出来ます。1回 vncserver コマンドで実行したら設定ファイルが ~/.vnc/ に保存されています。vncserver -kill :1 でサーバを閉じてから ~/.vnc/ にある xstartup に設定の変更が出来ます。後はどんなVNCクライアントからでもアクセスが出来ますね。これで Tsurugi Linux が CUI や GUIでリモートで操作が出来ますね!


(クリックで拡大)

便利ですが、SSHとVNCサーバを使う場合必ずセキュアな設定のご確認ください、なお、出来ればローカル側ネットワークのみでご利用して下さいね。

6. Credits/Thanks/Acknowledgements list

*) 【radare2】について、【r2dec】について、【r2-ghidra-dec】について、【TsurugiLinux】とは?、【r2jp】って何?
*) もしTsurugi Linuxの情報をフォローしたいなら @tsurugi_linux及び@Sug4r7 、@blackmoon105 をフォローしてください。なお、radare2のツイッターは @radareorg となります。
*) Also special thanks to: @Der0ad @trufae @thestr4ng3r (r2dev) @hira & @luffy + @tessy @decoyservice @sonodam (r2jp) seccon_workshop/yorozu +++!

R2JP(Japanese Community of radare2) の @unixfreaxjp より

0 件のコメント:

コメントを投稿