*白百合めも*

セキュリティ中心に毎日の勉強の記録を書くよ*

IoTSecJP東京 Version4.0 に参加してきました!


みなさんこんにちは!白百合です!
前日のIoTLTに続き、今回はIoTSecJPさんにブログ枠で参加させていただきました!

iotsecjp.connpass.com

IoTSecJPさん自体には2017年1月に開催された#2に参加したことがあるのですが、
当時はIoT系の事前知識0で行ってしまって、
少しでも知識をつけてからいけばもっと楽しめたんじゃないかなとちょっと後悔してしまってました💦

なので今回は、

・IoTSecJP #2でとったメモで分からない単語を調べる
・登壇内容のタイトルが掲載されているものに関してはその内容を調べる
・黒林檎さんの「ハッカーの学校 IoTハッキングの教科書」を読めるだけ読む

ということをやっていきました✨

このおかげで、今回発表を聞いていて、大分理解できるようになりましたし、
「あ!この単語調べたやつだ!!」っていうのが沢山出てきて楽しかったです❣️



IoTLTでは登壇内容を書いたブログにしたのですが、
今回はスライドが公開されてるものが多かったり、あまり内容を言わない方がいいかなと思うものもあったので、
まとめ+それぞれの発表を聞いて私が思ったこと等を(その発表によって比率を変えて)書いていきたいと思います🎶


※スライドを公開されている方はそのツイート(orスライドへのリンク)を載せておりますので、もし記載はやめてほしいというのがあれば私に伝えてください!また、この内容は書かないでほしいというのがありましたらその際も教えてください。

一つ一つ色々と書いてたら結構なボリュームになってしまいましたので、Connpassの目次を見て、気になったセクションがあればその部分を見てみると良いかもしれません♬



「%sの話」
NVさん(@nvsofts)


入力をとってくる
→入力と書式指定文字列を元にsprintf()でコマンド生成
→system()でコマンド実行

というプログラムを書いた時に、
OSコマンドインジェクションの脆弱性があって、入力によっては任意のコマンドを実行できてしまうよというお話でした!
(こういう処理はrootで動いていることが多いから乗っ取られるぞとのこと)

IoT系で、詳しくない人がコーディングしてしまってこういった実装になっているものを時々見かけるらしいです。
逆に、実行ファイルの文字列を”%s”とかで検索すると脆弱性が見つかるかもとおっしゃっていました。

最近ちょうどC言語バッファオーバーフローの仕組みを勉強していたところだったので個人的にすごくホットな話題でテンションが上がりました✨
C言語で脆弱な関数が色々ある話は某情報なんとか支援士のテキストとかにも載っていたりして(多分今でも使われているから?)、本当に気をつけなきゃなと思いました。
普段関数を使うのに慣れていない方々だったら確かにこういう実装をしてしまうかもしれない...!
サニタイズや、安全な関数を使うことを心がけていきたいと思います!
ありがとうございました🍰



ー当日発表ー
totoroさん(@totoromasaki)


こちらがなかなか濃い内容で、よくこんなに調査されたなぁと感服しておりました!
ここでは内容には直接言及しませんが、気になる方は#IoTSecJP で検索して見てみると良いと思います!

学んだことは、
・何かしらの製品やサービスを利用する時は利用規約を読もう
 (全部読むのは難しいかもしれないから、特にどんな情報が収集されるかという点)
・この機器怪しいかも?と思ったら通信などを見てみると良いかも
ということです!

ツイッターの連携アプリの条件くらいは見ても、
利用規約って長いし難しいこと色々書いてるから、何も見ずにすぐ同意しちゃう方も多いと思います。
ざ〜〜っと流し見で見て、気になった部分があったらそこをちゃんと見るという方法で良いと思うので、利用規約を読む習慣をつけていきたいですね……!


あとは、
こんなプロセスが立ち上がってます!こんな通信があります!→怪しい
と決めつけるのではなくて、
もしかしたらこうこうこういう理由でこういう動作をしているのかもね、という推測を話されていたのが個人的にすごく良かったなぁと思いました✨真似したい。

ありがとうございました🍪


CyberGridJournalに関連したお話
kidasanさん


まずはCYBER GRID JOURNALという情報誌のお話がありました。
今回はIoT特集で、Webからダウンロードできるみたいなので、ぜひ読んでみようと思います!

CYBER GRID JOURNAL Vol.6 | セキュリティ対策のラック


その後は、ハードウェアの開発からソフトウェアを動かすまでのお話でした😊🎶

付随ソフトウェアが公開されている評価ボードを使えば、とりあえずソフトウェアが動くことは保証されるので動きだせるとのこと。
評価ボードの選択の知見とかは業界内で共有されていたりするのかしら。


途中でてきた「U-boot」と「Yocto」という単語を初めて聞いたので、整理しました↓

🍬U-boot🍬
組み込み機器によく使われているオープンソースブートローダ
マニュアルはここから見れます→ https://www.denx.de/wiki/U-Boot/WebHome

🍬Yocto🍬
Yocto Project。組み込み製品用にLinuxベースのシステムが作れるツール
公式HP→https://www.yoctoproject.org/


普段あまり聞くことのない領域のお話だったのでとても興味深かったです!(新しい世界を知れて嬉しい!)
ハードウェア屋さんすごい……

ありがとうございました🍧




とあるセキュリティ会社の無線通信セキュリティ診断
tansokun920さん(@tansokun920)



🍭無線通信のセキュリティ診断を行うにあたっての順序🍭

まずは通信規格ドキュメントを読んで通信プロトコルを把握する(修行🔥)
→機材の準備をする(ただ、LPWAだとLTEの機材は超高い、LoRaWANは市販テストツールがまだまだない、Sigfoxはそもそも仕様公開されていない)
→機材が高かったりツールがないものはSDR(Software Defined Radio)で代用する!
 入門はHack RF one、コスパ的なオススメはKimeSDR 
 ※電波法違反しないために、電波を発射する場合は電波が遮蔽されるような環境で行う
LTE偽装基地局を作って診断したりLoRaWANシステムに診断したり✨

無線通信の診断ってイメージついていなかったのですが、準備段階からのフローを教えていただけてすごく面白かったです🌟

ツイッターで呟いている方がいらっしゃったのですが、シールドルームはDMM.make AKIBAにもあるらしいので
ここを利用してみるのも良さそうですね!!
シールドルーム - DMM.make AKIBA


IoTLTとはまた違ったお話でとても楽しかったです✨
ありがとうございました🍮



ーLoRaWANセキュリティのお話枠ー
ひみつさん(@_tokina23)




まずはLoRaWANの基本から説明していただきました。

こちら→ The Things Network にて、the things networkに登録しているLoRa Gatewayの設置場所が見れるとのこと。(変わったowner名つけてる人いたりして面白いw)

LoRaWANの仕様は Home page | LoRa Alliance™ に書かれているとのことです(頻繁に更新される)。
ただ、今のところ英語で読むしかないのと、法律のあたりが結構ごちゃごちゃしているみたいです。

LoRaWANの通信方法の概念「Class」では、 基本的にはClassAが使われているけど、今後LoRaWAN使うときはDownlink対応しているClassBを使っていく必要があるのかな、ということでした。

その後、LoRaWANに対する攻撃手法と、 実際にHack RFを使ってLoRaWANの通信の中身を見るデモを行なっておりました✨

実際に電波が2回送信されている波形が見れて、おおおってなりました!
機器で観測している気温とか湿度とかも見れていてとてもすごかった……やっぱりデモって盛り上がりますよね……!!

LoRaWANがすごく好きになりました!
ありがとうございました!





HHV
きとけーさん ( @kitokay )

HHVとは、Hardware Hacking Villageの略だったみたいです!!

Black Hatでファームウェア抜き出せるぜ、書き換えられるぜ的な発表が多かったり、
DEF CONの0 day hack challengeで洗濯機のゼロデイを探そうというのがあったりしたそうです!

Villageでは、chip-off villageというものがあったらしく、ランプで温めてチップを物理的に取り外したりまたはんだ付けさせたり!
DEF CON® 26 Hacking Conference Villages

その他もDEF CONのツイッターでも紹介されていたりするらしので、見てみましょう✨

twitter.com

こういったのを日本でもやってみたいということで、
リバースエンジニアリングゼミをSeccampで行なったそうです!
カーナビ、スマートスピーカーとかとかを
ロジックアナライザーで見たり、JTAG繋いだり意外と簡単にroot取れたり、とても楽しそうです!
(今回は後半で発表があるけど、どなたかレポとかもあげてるかしら)

Hardware Hacking 合宿とかやりたいなぁと思われてるそうです✨素敵!

DEF CONにvillageというものがあるのを知らなかったので興奮しましたw
ありがとうございました🍫




JTAGのいい話」 Yukiさん ( @h1romaruo )

スライド埋め込みするとブログ幅に収まらなかったのでリンクで失礼します!
JTAG_Yuki_20180915.pdf - Speaker Deck

JTAGという規格を使ってファームウェアを抽出し、脆弱性を探るお話でした✨
JTAGは車とかの基板でよく使われているらしいです!🚗🚘

まずはルータから基板を取り出し、ピンを確認してJTAGを探します!
JTAGはピン数やピン配列が統一されていないらしく、製品の型番でググるか1ピンずつ確認していく方法があるらしいです。
今回の発表は1ピンずつ確認されておりました🍡

マルチメータを使ってGNDを探す
→GND以外の7つのピンに対して個別に電圧測定
→JTAGulatorを繋げてLinux端末上でコマンドを打っていくと、TCK(クロック)やTDI(データ入力)等が出てくる
→もっとスキャンしていってピンの特定等が完了👊

今回はShikraというデバッガを使ってPCとルータの基板を接続されていました!
JTAGのconfig fileはopenocdで提供されていたようなのですが、デフォルトでエラーが出てくるため、
gdb_memory_map disableという設定を追加する必要があるそうです✨

後はLinuxt端末上で色々コマンドを打っていき、デバックモードに無事接続できて、ファームウェアダンプも完了!
reset:init:haltというコマンドを1行で書くことがポイントらしいです!!!)

せっかくファームウェア抽出したんだからと、脆弱性探そうとしてbinwalkを使用し、ファイル構造の確認までできたみたいです✨

shikraについて、今回JTAGだけの話だったけど、SPIとかUARTの規格とかにも対応しているから、
これがあれば色々面白いIoTハッキングができるんじゃないかなとのことです❣️

……と、自分の復習がてら文字に起こさせていただきました!


JTAGファームウェア抽出!ってよくきくけど実際どんな手順で行うんだろう?と気になってたので詳しく教えていただいてとてもありがたかったです!
ありがとうございました🍰





Voltage Fault Injection Attack
omoikaneさん(@jm6xxu)


Fault injectionとは、
「プロセッサに物理的な外乱を与えて正常な動作の一部を変更する攻撃手法」とのこと!

外乱としては以下のようなものがあげられていました✨
・CPUのclock(同じ周期でパルスが来ることを前提としている)
・Voltage 電圧
・EM 電波
・Laser チップの裏側にレーザー当てたり

今回は特にVoltage Fault を取り上げられておりました!
瞬時的に電源電圧を降下させると、そのタイミングのinstructionがskipしたり誤作動を起こすらしいです。 長く加えるとCPUが死んでしまうから、一瞬だけ降下させます⚡️

Nintendo Switch Bybassing(secure boot)についても触れられていました♬
media.ccc.de - Nintendo Hacking 2016



今回はTarget Deviceとして、
aitendoさんのArduino clone あちゃんでいいの を使われておりました✨
★特売品★あちゃんでいいの - aitendo
プリミティブなことをやるのはこれが一番良いぞとのことです!

また、Glitchを発生させるためにFPGAを使われておりました!
Voltage Fault Injection Attackはタイミングが大事で、
有効なGlitchを入れるタイミングをできるだけ長くするため、無限ループでLoopを出力していました!
Loopの中でカウントしている間にGlitchになってループカウンターが変な値になったら抜ける仕組みみたいです。

実際の映像も見たのですがめちゃめちゃかっこよかったです……!

ハードでの対策は難しいから、ソフトで対応するしかないらしいです!!

すごくエモい攻撃方法で感動しました……✨
ありがとうございました!🍧




「Black Hat USA 2018 トレーニング参加記」
とある診断員さん(@tigerszk)


Black Hat USAに参加された時のお話をされておりました✨

2018年のトレーニングは
Black Hat USA 2018 | Trainings
ここに色々と載っているので、どんなものがあるかなと見てみると面白いと思います✨

Red team/Blue team系、カーハッキング、ソーシャルハッキングフォレンジック、ハードウェアハッキング、マルウェア解析、OSINT、Kali linux、IoTハッキング、IDA Pro、Webハッキング、カーネル……etc. めちゃめちゃあります😎😎
人気でSOLD OUTしているものもありますね。
個人的にOffensive Securityが提供してるKali linuxレーニングが気になりますね……
公式……(やはり人気ですぐ売り切れるらしい)

本やネット上の記事を見て独学でIoTセキュリティの勉強をするのもいいけど、
Black Hat等のイベントで開催されているトレーニングやハンズオンに参加すると(高額なのでそんなに気軽に、とはいかないかもしれませんが)、
短い期間で精査された知識がグッと入ってくるのでいいなぁと思いました❣️

Black Hatはトレーニングのチケットだけ取る方も結構いらっしゃるそうなので、 機会のある方はぜひ……!!
素敵な発表ありがとうございました🍩





「セキュキャン枠」
YutaFukagawaさん


セキュキャンの卒業生さんで、Reverse Engineeringゼミに参加された報告をされておりました✨(部屋でエンジン分解をやっていて、ピアノ、炊飯器、エンジンが並んでるらしいです!)
今回のIoTSecJPで出てきたようなツールやガジェットをバリバリ使ったみたいです❗️

JTAGulator
Olimex
The Shikra
Hack RF one
ロジックアナライザ
などなど……✨

カーナビを物理的に分解してどういう仕組みになっているか見てみたり、 家庭用ルータの解析をしたり、とても楽しそうでした!

私はもう社会人なので参加できませんが、今すぐ学生になって(+強くなって)セキュキャンに参加したいなぁという気持ちになりました!
お金を貯めて個人スポンサーになることを夢に頑張ろう……!

すごくワクワクする発表でした!
ありがとうございました🍦





gadget_sharing成果報告
momomopas様さん( @momomopas )


[更新]
ご本人様のブログ記事です!

momomomopas93.hatenablog.com


ゼロからIoTを勉強するには、ということで発表されておりました✨

*全体を把握するフェーズ

・書籍が欲しいから社長に頼んだ(買ってくれたけどIoTの知識が必要な打ち合わせの一週間後くらいに届いた)
Google検索
 英語で調べる(日本語の資料はIoT全然ない)
 「IoT Security 101」で検索 (101っていうのは基礎ということ)
  →youtubeにも色々出てくる
Awesome IoT Hacks(github)とかで事例とかを調べた
 GitHub - nebgnahz/awesome-iot-hacks: A Collection of Hacks in IoT Space so that we can address them (hopefully).
・Embedded Linux Wiki(組み込み系)
・How to IoT Penetration Testingで検索
 →youtubeにも色々出てくる
・Payatuのブログも色々解説があってとても良い
Hack The World · Juan Carlos Jimenez という一からハッキングを学ぶサイト

*実際にやってみる

・IoT攻撃マッピング
 IoTデバイスの論理構成を理解する
 図を元に攻撃ポイントを考える

・IoTプロトコルも一から調べて行った

ルータを分解して体験するIoT機器のセキュリティとして、 Yukiさんを講師に招いてルータを分解して取り出せるかとかをやっていたみたいです✨

IoTのCTFとかもちらほらやっているらしい(!)

やってみたことをまとめると
Googleで調べる・youtubeで調べる・企業のブログ
・実際に手を動かしてやってみる

とのことでした✨
日本語情報が少ない中、短期間で基礎の勉強から実践まで行なったのこと、大尊敬です……
自分が知らない分野の話が降ってきたときに、私そんなのできないよ〜ってなるんじゃなくて挑戦してみようかな!と思わせていただいた発表でした!
ありがとうございました🍨





ーSatori系ボットネット観察ー
morihi-soc様 ( @morihi_soc )



今回のIoTSecJPではインターネットに繋げない系のIoTの話が多かったけど、
すでに世に放たれているIoTにどういったパケットが届いているかというお話をしますとのことでした✨  
まず、自宅のルータの様子を見てくださいと一声!(どきっとした)
・ログインできるかどうか
・身に覚えがない設定がされていないかどうか

何故冒頭でこのようなことをおっしゃられたのか、徐々に明らかになっていきます……✨

ハニーポットとは、あえて攻撃を受けることを前提としたシステム。

Webに特化したハニーポットのログからSatoriボットネットを観察してみたとのことです!なんと、攻撃対象のサーバにHTTP接続できたらいきなりexploitの攻撃を打ち込んで来るらしい!
お行儀が悪いのでログを収集しやすいみたいです🎃

User-Agentが結構面白いみたいで、
rm -rfとかfirewalld止めたりとかiptables止めたり系とか色々あるんですって!
私のところにも来てないかな……と聞いててワクワクしましたw

攻撃元としては、エジプト・アラブ共和國からの攻撃が多いらしいです(!)
日本からも210個、SatoriボットネットのOSコマンドインジェクションが来ています。

ホスト名を逆引きすると一般のご家庭のルータとかカメラとかが感染をして攻撃の踏み台になっているみたいです。
もしかしたら身近にボットネットの一部がいるかもしれないから、IoT機器をインターネットに接続する時は十分注意してね!!ということでした⚡️

この記事を書き終わったら私もすぐに自宅のルータを確認しようと思いました!
まさか(感染しているはずない)、という考えではなく、もしかしたら(感染しているかもしれない)、という気持ちでいきたいですね……!

発表、ありがとうございました🍰



「〇〇物語-序章-」
黒林檎 ( @r00tapple )さん


IoTのハッキングとか検証とか需要が高いけどコストが高いのが問題。

黒林檎さんのIoTハッキング本には色んな種類の機器を書いてしまったとのことで、
電球とか1つに対して
*通信解析
スマートフォンアプリのハッキング
*ハードウェアレベルハッキング
等を見ていくドキュメントがかけたら良いなとおっしゃってました!

以下、お話を聞いていて気になった部分を書いていきます!

・nRF - スマートフォンbluetoothに任意の送信値を送ることができるアプリ が良い!
Bluetooth HCIスヌープログを有効にするとログが出てくる
・apk解析の流れ
 APKPure で apkファイルのダウンロード
 → Decompilers Online で apkをソースコードに変換
 →ソースコード解析(頑張って読む)
SQLite
 shared_prefsとかをみてどんな入出力情報があるかをみると良い
・ハードウェアセキュリティの狙い目として
 JTAG SPI UARTとか色々みる
 チップセットの名前とかを全部メモしておくと良い
・openOCDではJTAGを通してgdbとかtelnetとかで繋げられる

電球1つで、
アプリケーション
ネットワーク
ハードウェア
など色々な攻撃コンポーネントが考えられる
と締められておりました!

最後にすごく濃い内容をお話ししていただき、満足して帰路につけました✨
発表&主催、ありがとうございました🍎




この2日間で大分IoTと親しくなれた感があるので、自分でも色々とやっていきたいなと思いました!
本当に参加してよかったです。ありがとうございました🎀

最後は、近くに置いてあった緑とか青の方々をアイキャッチに貼っておきます❣️
では、良い三連休をお過ごしください♬

f:id:white-lily6u6:20180916202318j:plain:w500