セミナー概要
15:00-17:00(受付開始: 14:30)
「セキュリティ検証の現場で使える形式手法のツールがあるのか?」という疑問を、制御/IoT機器のセキュリティ検証業務を実施していく上で感じるようになりました。同じような疑問を持ったエンジニアの方もいらっしゃると思います。
Microsoft社では、動的ソフトウェアモデル検査の考え方を用いて、OSやオフィスソフトの脆弱性診断を実施しています。ソフトウェアのコード中の条件分岐をできるだけ網羅するように、テストの入力データを試験の実行時に変化させる手法です。しかし、残念ながらその実装系(SAGE) は、一般には未公開でした。
この技術はもっと広範に使えるのではないか、と感じていたところ、最近では、オープンソースの実装系も登場し、アクティブに開発が進められています。今回のセミナーでは、この実装系を実際に動かすことで、現場までの距離感を掴んで頂ければと思います。対象をうまく絞れれば、または、Microsoft社のようにスケールさせれば、確かに使えるのかも、と実感できると思います。
こうしたツールが必要な背景には、IoT機器の増加に伴うセキュリティへの懸念、電力分野の制御システムおよびスマートメーターに関するセキュリティガイ ドラインの発行に代表される、制御システムのセキュリティへの懸念、があります。これらのセキュリティの検証も、機器の認証を取るだけであれば、ファジングツールによる過去の攻撃事例に基づくパケットと大量のパケットに対して仕様通りに機器が振る舞えれば十分です。しかし、ファジングツールに実装されていない独自プロトコルに対する攻撃やゼロデイ攻撃によるリスクを減らすためには、もう少し賢い検証ツールを使えることが間違い無く重要になります。
本セミナーでは、動的なバイナリ解析ツールであるTritonという実装系を用いて、セキュリティ検証に関して
・何ができるのか
・どうやっているのか
について、動作原理の解説と、例をハンズオン形式で実施することで習得できます。
当日はシンクライアントを使ってTritonの演習を行いますが、ご自身のPCで演習されたい方は、インストール手順(Triton-install-log.txt)を参考に、以下のサイトから最新のソースをダウンロードし、インストールしてくだしさい。
Triton: https://github.com/JonathanSalwan/Triton
本ツールは、以下の環境で動作を確認しています。
Ubuntu 16.04, libboost(1.55以上),libpython, libcapstone,
libz3(https://github.com/Z3Prover/z3.git), Pin
[前提知識]
デバッガの画面、抽象構文木(abstract syntax tree、AST)の表現をご覧になったことがあると面食らわずに理解しやすいと思います。また、Pythonの基礎知識があると、ハンズオンで利用するサンプルコードを理解する際に役立ちます。
[参考URL:]
SAGE: http://research.microsoft.com/en-us/um/people/pg/
Triton: https://github.com/JonathanSalwan/Triton
なお、その他の事例については、「ディペンダブル・システムのための形式手法の実践ポータル(http://formal.mri.co.jp/)」もご参照ください。
講師:松崎 和賢・(株)三菱総合研究所
※定員に達し次第,申し込みを締め切らせていただきます。
※NPO法人 トップエスイー教育センター会員および日本ソフトウェア科学会会員の方は、会員価格で参加いただけます。
https://ws.formzu.net/fgen/S41806214/
inquiry_[at]_topse.or.jp ※_[at]_部分を@に変えてください