Weird Wired World

Programming, Security

自動車xOSS

引き続き火の車なのだが,たまには埋めておく。

4月に転職して自動車業界に本格参入する。

今までの仕事は,どちらかと言えばLinux上での一般的な設計開発だったので参考資料どころか解説資料がWeb上に無数にあった。

でもそういうのって,分野を絞ると途端に少なくなる。業務知識になってくるので,当然といえば当然なのですが。

そうなると,この業界で自己啓発としてできることって何だろう。って思っていくつか候補を探した。

主に規格とOSSがある。規格はAUTOSAR/Adaptiveや機能安全に関するものだ。といっても規格そのものを勉強するのは正直しんどい。そこでOSS(動くもの)で見ていきたいと思っている。

なお、README.mdとか公式をちょっと眺めたくらいの知識で書いてるので要注意ですよ。

ROS/ ROS2

ロボット用のOSS。ROSは業務でずいぶん使ったのでもう良いかな。ROS2は候補の1つ。

ROSで実装された自動運転システムにAutowareがある。昔(2年ほど前)は手順に間違いあったりで本当に大変だったが,今公式見たらDockerで配布されるようになってた。インストール後はデモを体験できて,公道を走行したセンサログデータ(RVIzのbagファイル)を流して,その時に認識した各種情報やロジックの動作の様子が分かるってモノだったと思う。

f:id:enufranz:20180312011021p:plain:w500

ZMPがAutowareを搭載した実験車を売っていたりする。

百度 Apollo 1.0/ 2.0

Autowareと同様自動運転に使われる各種技術要素が詰まった基盤と理解している。

百度のグループ社長兼最高執行責任者(COO)陸奇氏の発表によれば、「Apollo計画」はソースコード、運転トレーニング・データ、運転能力といった3つのレベルのオープンソース化を行う。

百度、自動運転オープンソース化の詳細を公開 | 日経 xTECH(クロステック)

Youtubeを見る限り複数車線の交差点の自動運転もできている。チャンピオンデータだとしても凄い...

www.youtube.com

Microsoft AirSim

Unreal Engineを使ってセンサを疑似的に取得して色々料理するためのシミュレータだと理解している。

Our goal is to develop AirSim as a platform for AI research to experiment with deep learning, computer vision and reinforcement learning algorithms for autonomous vehicles. For this purpose, AirSim also exposes APIs to retrieve data and control vehicles in a platform independent way.

ハンドルを使って実際に運転をして学習もできるっぽい。

f:id:enufranz:20180312011959p:plain

Automotive Grade Linux(AGL)

コネクテッドカー向けの自動車のLinuxプラットフォーム。国内では結構盛り上がっていて,2018年にTOYOTAのCamryに採用。

今まで挙げたものと違ってYoctoベースの実際の組込み向けのものっぽい。

YOutubeのデモ動画

www.youtube.com

TOPPERS

TOPPERS(Toyohashi OPen Platform for Embedded Real-time Systems)は組み込みシステムののプラットフォームやコンポーネントを開発するプロジェクトの総称。 AUTOSAR準拠のATK2(自動車制御用のカーネル)、A-COMSTACK(CAN通信)など色々ある。

組み込みでは知られているが、自動車業界での存在感は結構怪しいのではないかと思っている。利用実績も多くない。

www.toppers.jp

どれで遊ぶか

Autoware, Appolo, AirSimは技術開発向けという認識で合っているだろうか。

それなら,自分が将来的に業務に結び付けるならAGLかなあと思っている。

とはいっても投資する時間は膨大なのでできればミスりたくない。次の会社で色々な聞きながら進めたいと思っている。

コインチェックの件

3末の退職に向けて忙しい。

昨日は大変な日だった。トップニュースが晴れの日で驚いたくらい。新成人諸氏には悲惨な話ですが、規模と影響力で言えばコインチェックとは比較になりません。

仮想通貨を使ったサービスはどんどん出てきています。そしてCMを通してようやく認知され始めてきた。でもまた"胡散臭い何か"に逆戻り。これは世界の時間の損失ですよ! これが本当に残念で悲しい。

記者会見は全部見てしまいました。マルチシグ非対応というのを聞いて愕然。せめて対応していたのであれば、顧客保護最優先というのも理解できたのに。当然支払い能力がある訳なく、資本以上の責任もありません。今後の良い方向への可能性は2つ。1つはセキュリティ上の形跡から犯人を特定すること。もう1つは株主か財団に救済してもらうこと。それ以外は倒産御免でしょう。補償も多少はあるでしょうか、資産状況も非公開なので外からは何も分からない。

自分への被害で言えば、XEMが500程消えた。これで済んで良かった。XRPに資産の半分を入れているが、長期保有を前提にしてたのでPaper Walletに移していた。今回の一件で反省して、草コイン銘柄もWalletを作って移した。

今回の被害が大きくなったのは、Walletの認知と開発が遅れているのが一因としてあると思う。特にPaper Walletは通貨ごとに分かれていて使いにくい。

何かで読んだのですが、和田社長はボディーガードをつけているそうですね。身の危険という意味でも、社会的にも大分苦しい状況にあります。それでも、若干27歳で業界を牽引してきた点で凄腕な方なのだと思います。会社としての責任は破産裁判で果たして。どうにか再帰して、後退させてしまった分を取り戻してほしい。

締めたつもりだったけど、最後に1つだけ言うと、顧問弁護士の天子さん、綺麗なうえキレキレでかっこよかった^q^

www.mhmjapan.com

IoTSecJP事前メモ

久しぶりに面白そうな勉強会があったので出てみる。

IoTSecJP東京 #2 - connpass

内容を見る限り普通のLTとは違ったレベルを期待している。本記事に事前にちょこっと調べたメモを残す。

IoTセキュリティ基礎とIoTペンテスト(60min)

参考資料

スライドは発表用なので非常に分かりづらい。

攻撃対象をスマートペットフィーダーとして,ファームウェアの抽出とカメラ映像の盗聴を行っている。

まず前提として,この機器の機能にはWeb上でペットのカメラでの監視機能と,餌やり機能があると推測する。カメラを見てお腹空いてそうなのでボタンを押して餌をあげる的なものだ。

さてまずはファームウェアの抽出。機器から基盤を取り出して,フラッシュメモリ内のファームウェアをSPIから抽出している(次図)。ファームウェアの抽出はbinwalkで内容を解析しddsquashfsのアドレス領域の抽出を行っている。squashfsとは圧縮されたファイルシステムで,組み込み機器等の容量の制約の厳しい媒体への書き込みに使われる。SPI以外の経路であるUART, JTAGからの攻撃は失敗したようだ。

f:id:enufranz:20180105214647p:plain:w400

続いてカメラ映像の盗聴。カメラ映像はRTSPで送られているようだ。抽出したファームウェアRetdecにかけてC言語アセンブラに変換。そこからカメラの送信するアドレスを特定して,それをメディアプレイヤーで開くことによって盗聴しているようだ。Retdec(Retargetable Decompiler)はARMバイナリをC言語アセンブラに変換するツール。

ファームウェア抽出(ハンズオン)

attifyを使ってファームウェアを抽出するハンズオンと思われる。

参考資料

attify-badgeは次の画像のようにUART, SPI, JTAGなどのI/FとのInteractをGUIベースで行うツール。これらの通信は伝統的にはMinicomやBaudrate.pyなどで可能だが,attify-badgeはこれらをより容易にするものと理解した。

f:id:enufranz:20180105211413p:plain:w700

BLE Hacking基礎(ハンズオン)

参考資料

BLE対応の電球に対してリプレイ攻撃を仕掛けてON/OFFを制御する。ここでこの電球は常にBluetoothパケットを受け付け,かつペアリングが不要のものである。また,Androidには電球のON/OFFを制御するアプリがある。

1. ログの収集
AndroidのHCIスヌープログ機能を使って,Androidと電球間のログを収集する。
2. PCからの電球のBDアドレス、MACアドレスの特定
2-a1) hciconfigを使って周辺のデバイスのBDアドレスなどの情報を検索し特定する。
2-a2) hcitool scan(BLEの場合はlescan)を使って周辺のデバイスMACアドレスを検索し特定する。
2-b) ログをWiresharkで開いてBDアドレス,MACアドレスを特定する。
3. PCからの制御情報送信
gatttool -i hci0 -b 20:16:03:10:00:38 -Iインタラクティブモードに入る。
primaryでサービスの一覧を取得する。この中の0x000bが電球のON/OFF。
char-write-cmd 0x000b cc2433で電球をON、2333でOFFにする。

f:id:enufranz:20180105224743p:plain:w600

おわりに

ハンズオン自体初めて参加するので楽しみ。

今コンタクトを切らしていて,明日までに届くかどうかだけが不安 笑