SlideShare a Scribd company logo
1 of 18
IaaS を活用した
情報セキュリティ演習環境の設計と実装
小谷 大祐 (京都大学)
http://bit.ly/itrc45-basic-seccap-kyoto
「情報セキュリティ演習」
 Basic SecCap (enPiT-Security) で京都大学が開講する
演習科目の一つ (通称 PBL演習M)
 京都大学工学部の正式科目、夏期集中 (9月)
2019/5/17
ここ
ITRC meet45, (C) Daisuke Kotani 2
「情報セキュリティ演習」の内容
 攻撃を見つけるというのはどういうことなのかを学ぶ
 ネットワーク型侵入検知システム(NIDS)の仕組みと役割
 攻撃とはどのようなものかを理解する (攻撃してみる)
 一般的なシグネチャ型 NIDS (Snort) がどのように
攻撃を検知しているのかを実践を通して理解する
 自分でしてみた攻撃を検知するシグネチャを書く
 False Positive や False Negative があることを体験する
 機械学習を用いてより攻撃の通信の検知を試みる
 Kyoto2006+ 準拠のトラフィックデータから正常通信と攻撃を分類
2019/5/17
外部からの不正アクセスの試みを検知する侵入検知システム(IDS)では、
膨大な数の警報が発せられ、その解析は人手では困難である。ここでは、
IDSの仕組みと役割を学んだ上で、機械学習によりIDSの警報ログから正
常通信と攻撃を分類する演習を実施する。
ITRC meet45, (C) Daisuke Kotani 3
演習に必要な演習環境
 攻撃・IDS による攻撃検知を実践できる
 NIDS がリアルタイムに通信を監視するには root 権限が必要
 攻撃するホスト/されるホスト/IDS の最低3台必要
 誤って外に攻撃してしまうことがないように
 機械学習の実践によく利用されるソフトウェアが利用可能
 Jupyter Notebook + 多くのライブラリ (scikit-learn など)
 経験のある学生が自分で使いたいライブラリを追加できる
 演習中に一からインストールする時間はない
 数GB〜数十GBのトラフィック (セッション) データを扱える
2019/5/17ITRC meet45, (C) Daisuke Kotani 4
演習環境を設計する上での考慮
 Basic SecCap の枠組みで他大学の学生を受け入れるが
受講生数が読みにくい (必要な機材が必要かわからない)
 Basic SecCap 参加校数・受講生数とも毎年増加
 本学の演習を履修するかどうかは受講生の希望次第
 enPiT への補助金が終了しても継続できる (人・お金)
 正式科目なのですぐにはやめられない
 2日間だけ動けばよい
 通年で計算資源を持ち続ける必要はない
 私の負担を減らす
 つまらない単純作業に時間を費やすのは避けたい
2019/5/17ITRC meet45, (C) Daisuke Kotani 5
方針
受講生に root を渡せる、
誤って外部に攻撃することを防げる、
複数台のホストが必要。
機械学習によく利用される
ソフトウェアをあらかじめ準備。
希望により追加インストール可。
受講生数が読みづらく、
必要な機材の量が予想しにくい。
数GB〜数十GBのトラフィック
データを扱える。
外部とは切り離されたネット
ワークに接続したVMを毎年構築し、
受講生に提供。
上記のVMに予めインストール。
追加時は教員に申し出て
一時的にインターネットに接続。
受講者数・データサイズに応じた
VM を IaaS 上に構築。
VM にアクセスするための端末は受
講生に持ち込ませる (BYOD)。
今回はさくらのクラウド
2019/5/17ITRC meet45, (C) Daisuke Kotani 6
方針 (その他)
enPiT の補助金が終了しても継続で
きる (人・お金)。
2日間だけ動けばよい。
私の負担を減らす。
補助金が終わったら別途措置される
はずの予算額に応じて定員を設定。
トラブルが起こったらその場で
なんとかする。
アカウント管理は手を抜く。
環境構築をできる限り自動化し、自
動化するために必要なスクリプトの
み保管。毎年使い回す。
2019/5/17ITRC meet45, (C) Daisuke Kotani 7
不採用の選択肢
 各々の PC に VM のイメージをダウンロードさせる
 十分な性能の PC を持っているとは限らない
 本学の演習用端末も性能不足
 予めダウンロードするのを忘れた人が WiFi 一斉にダウンロードする
のに必要な時間を考えると難しい
 演習2日しかないのに
 本学プライベートクラウドを利用
 API の提供がなく、VM やネットワークの作成を自動化しづらい
 年額課金しかなくお金の無駄
 (閉じたネットワークを利用するのに交渉が必要そうだがそうしてま
で利用する必要性はない)
 物理サーバを買う
 仮想化基盤を維持し続ける手間を無視できない
 受講生が増えた際にスケールアウトしにくい
 (補助金が終了する時期がちょうど買い換えの時期)
2019/5/17ITRC meet45, (C) Daisuke Kotani 8
演習環境
 3〜4人1グループで以下のVMを提供
 受講人数が増えたらこのセットを増やしていく
 構築時はインターネットに接続、演習時は遮断
2019/5/17
作業用サーバ
Metasploit,
Jupyter Notebook,
Wireshark,
MATE Desktop,
xrdp,
トラフィックの
データセット等
IDS サーバ
Snort
(1プロセス
/ユーザ)
脆弱性てんこ盛り
サーバ
WebShell 的なものと
ShellShock
今年は約30VM
ITRC meet45, (C) Daisuke Kotani 9
演習環境全体
2019/5/17
IDSサーバ
脆弱性てんこ盛りサーバ
IDSサーバ
脆弱性てんこ盛りサーバ
…
SSHログインサーバ VDIサーバ (Guacamole)
管理
サーバ
NAPT
ルータ
インターネット
作業用サーバ 作業用サーバ
SSHログイン
Web経由の
GUIアクセス
SSH
ログイン
ITRC meet45, (C) Daisuke Kotani 10
環境構築の自動化:
Infrastructure as Code 向けのツールの採用
 Infrastructure as Code:
“自動化、バージョン管理、テスト、継続的インテグレー
ションといった、ソフトウェア開発のプラクティスをシス
テム管理に応用するための方法論”
Infrastructure as Code (O’Reilly) より
 今回は短期間で利用するため、自動化の部分を利用
 バージョン管理、継続的インテグレーションは重要ではない
 テストは手つかず
 理想: コマンド1〜2発で構築完了
2019/5/17ITRC meet45, (C) Daisuke Kotani 11
環境構築の自動化: VM やネットワークの作成
 VM や閉じたネットワークの作成 → Terraform
 サーバやディスク、ネットワークの数や接続関係などの
宣言的な記述から IaaS の API を利用し自動で作成
2019/5/17
resource "sakuracloud_disk" "work" {
count = "${var.set_count}"
name = "work${count.index}"
hostname = work${count.index}"
source_archive_id = "${image_id}"
plan = "${var.work_disk_plan}"
size = "${var.work_disk_size}"
password = "${var.root_password}"
}
resource "sakuracloud_switch" "mgmtsw" {
name = "mgmtsw"
}
resource "sakuracloud_server" "work" {
count = "${var.set_count}"
name = "${var.work_name}${count.index}"
disks =
["${sakuracloud_disk.work.*.id[count.index]}
"]
core = "${var.work_core}"
memory = "${var.work_memory}"
nic = "${sakuracloud_switch. mgmtsw.id}"
ipaddress =
"${var.work_mgmt_ipaddr[count.index]}"
nw_mask_len = "${var.mgmt_masklen}"
gateway = "${var.vpc_ipaddr}"
additional_nics =
["${sakuracloud_switch.loginsw.id}",
"${sakuracloud_switch.workidssw.id}"]
}
ITRC meet45, (C) Daisuke Kotani 12
環境構築の自動化: サーバの設定
 ソフトウェアのインストール・設定 → Ansible
 サーバの構成を管理するツールの1つ
 サーバにインストールされているべきソフトウェアや設定を
記述し実行すると、現状との差分を検出しインストール・設定
2019/5/17
- name: users exist
user:
name: "{{item.name}}"
password: "{{item.password}}"
group: "{{item.group}}"
uid: "{{item.uid}}"
state: present
shell: /bin/bash
groups: seccap
with_items: "{{users}}"
become: true
- name: apt install
become: true
apt:
name: "{{item}}"
state: present
with_items: "{{apt_install}}"
ITRC meet45, (C) Daisuke Kotani 13
Terraform + Ansible による演習環境の自動構築
2019/5/17
Terraform, Ansible 設定生
成スクリプト
• ユーザ生成
パスワード生成
• IPアドレス計算
ユーザ数
サーバ数
等
設定ファイルテンプレート
Terraform
設定ファイル
Terraform
さくらの
クラウド
API
サーバや
スイッチの生成
Ansible
Playbook
Ansible サーバ
サーバの設定
ソフトウェアの導入・設定
Terraform, Ansible 設定生成スクリプト、Terraform、Ansible はそれぞれ手動実行
(構成を変更したときにその部分だけ再実行しやすいように)
謝辞: 多くの部分を SRC Software さんに外注
ITRC meet45, (C) Daisuke Kotani 14
狙い通りの効果が得られた点
 私の負担が減った
 サーバの準備のための単純作業の繰り返しによる精神的な負担
 うまく動かない時に気軽に再インストールできるようになった
 10分ほどあれば終わる
 演習内容自体の改善に使える時間が増えたような気がする
 演習中に不具合が発覚した場合に速やかに修正できる
 修正が必要な部分だけ Ansible の Playbook を書いて実行することで
一括して変更できる
2019/5/17ITRC meet45, (C) Daisuke Kotani 15
思ったより軽くならなかった部分
 Ansible の Playbook で書きにくい処理がいくつもある
 コンパイルしてインストールする必要のあるソフトウェア
 GUI で変更することを想定していそうな設定
 日本語表示・入力にするとか
 できるのだけど資料がなかなか見つからない
 データベースの初期化
 Ansible Playbook の維持に手間がかかる
 ソフトウェアのアップグレード対応
 Ubuntu 16.04 LTS → Ubuntu 18.04 LTS: OS の基本的な設定方法の変更 (netplan)
 Bug fix や演習内容の改善への対応
年1回の演習のためにどこまで手間をかけるのが適切か難しい
2019/5/17ITRC meet45, (C) Daisuke Kotani 16
継続性の課題
 価格が抑えられている
 クラウド利用料: 約2500円/人
 準備・確認・アップデートのための利用料を除く
 特定のクラウドサービスへの依存が課題
 Terraform から設定するためのプラグインが必要
 Terraform の設定ファイルの記述がクラウドサービス依存
(さくらのクラウドがなくなったら他のクラウドに向けて書き直し)
 Ansible Playbook の実行時間が長い
 フルで実行すると6時間程度 (コンパイルなどしている都合)
 コピー元となるディスクイメージを作るためのPlaybook と、
各サーバ固有の設定をする Playbook を分けたほうがよさそう
 コンテナの活用?
 人への依存
2019/5/17ITRC meet45, (C) Daisuke Kotani 17
まとめ
 Basic SecCap の京都大学開講演習科目「情報セキュリティ演習」
の演習環境を半自動化
 Ansible と Terraform を活用
 同じような構成の VM を自動で大量に作ることができる
 構築スクリプトのみ維持すればよく保存するもののサイズが小さくて済む
 自動化により得られる利点と手間のバランスが難しい
 年1回しか構築しない環境でどこまで手をかけるか
 多少汚くても動けばいいのをある程度許容する
 テストは手付かず
2019/5/17ITRC meet45, (C) Daisuke Kotani 18

More Related Content

What's hot

MongoDB: システム可用性を拡張するインデクス戦略
MongoDB: システム可用性を拡張するインデクス戦略MongoDB: システム可用性を拡張するインデクス戦略
MongoDB: システム可用性を拡張するインデクス戦略ippei_suzuki
 
AngularJSでデータビジュアライゼーションがしたい
AngularJSでデータビジュアライゼーションがしたいAngularJSでデータビジュアライゼーションがしたい
AngularJSでデータビジュアライゼーションがしたいYosuke Onoue
 
⑱jQueryをおぼえよう!その4
⑱jQueryをおぼえよう!その4⑱jQueryをおぼえよう!その4
⑱jQueryをおぼえよう!その4Nishida Kansuke
 
Parse introduction
Parse introductionParse introduction
Parse introductionTamura Koya
 
iPhone, iPad アプリ開発勉強会#3
iPhone, iPad アプリ開発勉強会#3iPhone, iPad アプリ開発勉強会#3
iPhone, iPad アプリ開発勉強会#3Hiroe Orz
 
ビギナーだから使いたいO/Rマッパー ~Tengを使った開発~
ビギナーだから使いたいO/Rマッパー ~Tengを使った開発~ビギナーだから使いたいO/Rマッパー ~Tengを使った開発~
ビギナーだから使いたいO/Rマッパー ~Tengを使った開発~Akabane Hiroyuki
 
BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門Yohei Sasaki
 
D3.js と SVG によるデータビジュアライゼーション
D3.js と SVG によるデータビジュアライゼーションD3.js と SVG によるデータビジュアライゼーション
D3.js と SVG によるデータビジュアライゼーションKohei Kadowaki
 
はじめてのCouch db
はじめてのCouch dbはじめてのCouch db
はじめてのCouch dbEiji Kuroda
 
[初音ミク] Kinesis でフリーザを撃て!
[初音ミク] Kinesis でフリーザを撃て![初音ミク] Kinesis でフリーザを撃て!
[初音ミク] Kinesis でフリーザを撃て!崇之 清水
 
とあるイルカのバーボンハウス
とあるイルカのバーボンハウスとあるイルカのバーボンハウス
とあるイルカのバーボンハウスyoku0825
 
SolrとElasticsearchの比較
SolrとElasticsearchの比較SolrとElasticsearchの比較
SolrとElasticsearchの比較genta kaneyama
 
Ext Schedulerを使ってみる
Ext Schedulerを使ってみるExt Schedulerを使ってみる
Ext Schedulerを使ってみる久司 中村
 
第一回Miim勉強会
第一回Miim勉強会第一回Miim勉強会
第一回Miim勉強会Yuri Kawamoto
 
Elasticsearch勉強会#44 20210624
Elasticsearch勉強会#44 20210624Elasticsearch勉強会#44 20210624
Elasticsearch勉強会#44 20210624Tetsuya Sodo
 
【第3回初心者勉強会】データベースを使おう
【第3回初心者勉強会】データベースを使おう【第3回初心者勉強会】データベースを使おう
【第3回初心者勉強会】データベースを使おうShuhei Iitsuka
 

What's hot (16)

MongoDB: システム可用性を拡張するインデクス戦略
MongoDB: システム可用性を拡張するインデクス戦略MongoDB: システム可用性を拡張するインデクス戦略
MongoDB: システム可用性を拡張するインデクス戦略
 
AngularJSでデータビジュアライゼーションがしたい
AngularJSでデータビジュアライゼーションがしたいAngularJSでデータビジュアライゼーションがしたい
AngularJSでデータビジュアライゼーションがしたい
 
⑱jQueryをおぼえよう!その4
⑱jQueryをおぼえよう!その4⑱jQueryをおぼえよう!その4
⑱jQueryをおぼえよう!その4
 
Parse introduction
Parse introductionParse introduction
Parse introduction
 
iPhone, iPad アプリ開発勉強会#3
iPhone, iPad アプリ開発勉強会#3iPhone, iPad アプリ開発勉強会#3
iPhone, iPad アプリ開発勉強会#3
 
ビギナーだから使いたいO/Rマッパー ~Tengを使った開発~
ビギナーだから使いたいO/Rマッパー ~Tengを使った開発~ビギナーだから使いたいO/Rマッパー ~Tengを使った開発~
ビギナーだから使いたいO/Rマッパー ~Tengを使った開発~
 
BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門BPStudy32 CouchDB 再入門
BPStudy32 CouchDB 再入門
 
D3.js と SVG によるデータビジュアライゼーション
D3.js と SVG によるデータビジュアライゼーションD3.js と SVG によるデータビジュアライゼーション
D3.js と SVG によるデータビジュアライゼーション
 
はじめてのCouch db
はじめてのCouch dbはじめてのCouch db
はじめてのCouch db
 
[初音ミク] Kinesis でフリーザを撃て!
[初音ミク] Kinesis でフリーザを撃て![初音ミク] Kinesis でフリーザを撃て!
[初音ミク] Kinesis でフリーザを撃て!
 
とあるイルカのバーボンハウス
とあるイルカのバーボンハウスとあるイルカのバーボンハウス
とあるイルカのバーボンハウス
 
SolrとElasticsearchの比較
SolrとElasticsearchの比較SolrとElasticsearchの比較
SolrとElasticsearchの比較
 
Ext Schedulerを使ってみる
Ext Schedulerを使ってみるExt Schedulerを使ってみる
Ext Schedulerを使ってみる
 
第一回Miim勉強会
第一回Miim勉強会第一回Miim勉強会
第一回Miim勉強会
 
Elasticsearch勉強会#44 20210624
Elasticsearch勉強会#44 20210624Elasticsearch勉強会#44 20210624
Elasticsearch勉強会#44 20210624
 
【第3回初心者勉強会】データベースを使おう
【第3回初心者勉強会】データベースを使おう【第3回初心者勉強会】データベースを使おう
【第3回初心者勉強会】データベースを使おう
 

Similar to IaaS を活用した 情報セキュリティ演習環境の設計と実装

リアルFacebookガジェットを作った
リアルFacebookガジェットを作ったリアルFacebookガジェットを作った
リアルFacebookガジェットを作ったMariko Goda
 
機械学習 (AI/ML) 勉強会 #1 基本編
機械学習 (AI/ML) 勉強会 #1 基本編機械学習 (AI/ML) 勉強会 #1 基本編
機械学習 (AI/ML) 勉強会 #1 基本編Fujio Kojima
 
リアルFacebookガジェットを作った(ロングバージョン)
リアルFacebookガジェットを作った(ロングバージョン)リアルFacebookガジェットを作った(ロングバージョン)
リアルFacebookガジェットを作った(ロングバージョン)Mariko Goda
 
OpenStack & Ansible で実現する自動化
OpenStack & Ansible で実現する自動化OpenStack & Ansible で実現する自動化
OpenStack & Ansible で実現する自動化Hideki Saito
 
Elastic Cloudを活用!!ゼロトラストセキュリティの「はじめの一歩」
Elastic Cloudを活用!!ゼロトラストセキュリティの「はじめの一歩」Elastic Cloudを活用!!ゼロトラストセキュリティの「はじめの一歩」
Elastic Cloudを活用!!ゼロトラストセキュリティの「はじめの一歩」Hibino Hisashi
 
Azure IoT Edge で Custom Vision
Azure IoT Edge で Custom VisionAzure IoT Edge で Custom Vision
Azure IoT Edge で Custom VisionYoshitaka Seo
 
最低限知っておきたい Webセキュリティーについて@MT関西
最低限知っておきたい Webセキュリティーについて@MT関西最低限知っておきたい Webセキュリティーについて@MT関西
最低限知っておきたい Webセキュリティーについて@MT関西Masayuki Abe
 
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"Kentaro Yoshida
 
20130924 Picomon CRH勉強会
20130924 Picomon CRH勉強会20130924 Picomon CRH勉強会
20130924 Picomon CRH勉強会Yukihiro Kitazawa
 
Infrastructure as code for azure
Infrastructure as code for azureInfrastructure as code for azure
Infrastructure as code for azureKeiji Kamebuchi
 
Building React, Flutter and Blazor development and debugging environment with...
Building React, Flutter and Blazor development and debugging environment with...Building React, Flutter and Blazor development and debugging environment with...
Building React, Flutter and Blazor development and debugging environment with...Shotaro Suzuki
 
SORACOM UG 関西 x JAWS-UG 関西 IoT専門支部共催 | #あのボタン 開発のちょっといい話とSORACOM アップデート
SORACOM UG 関西 x JAWS-UG 関西 IoT専門支部共催 | #あのボタン 開発のちょっといい話とSORACOM アップデートSORACOM UG 関西 x JAWS-UG 関西 IoT専門支部共催 | #あのボタン 開発のちょっといい話とSORACOM アップデート
SORACOM UG 関西 x JAWS-UG 関西 IoT専門支部共催 | #あのボタン 開発のちょっといい話とSORACOM アップデートSORACOM,INC
 
自作saoriの紹介
自作saoriの紹介自作saoriの紹介
自作saoriの紹介wizstargaer
 
オープンソースソフトウェアで実現するエンタープライズにおけるセキュリティ脅威分析の勘所
オープンソースソフトウェアで実現するエンタープライズにおけるセキュリティ脅威分析の勘所オープンソースソフトウェアで実現するエンタープライズにおけるセキュリティ脅威分析の勘所
オープンソースソフトウェアで実現するエンタープライズにおけるセキュリティ脅威分析の勘所Hibino Hisashi
 
20110714 j queryベーシック
20110714 j queryベーシック20110714 j queryベーシック
20110714 j queryベーシック良太 増子
 
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回Naoyuki Yamada
 
検索可能暗号の概観と今後の展望(第2回次世代セキュア情報基盤ワークショップ)
検索可能暗号の概観と今後の展望(第2回次世代セキュア情報基盤ワークショップ)検索可能暗号の概観と今後の展望(第2回次世代セキュア情報基盤ワークショップ)
検索可能暗号の概観と今後の展望(第2回次世代セキュア情報基盤ワークショップ)Akira Kanaoka
 
Apache Sling におけるサービス運用妨害(無限ループ)の脆弱性
Apache Sling におけるサービス運用妨害(無限ループ)の脆弱性Apache Sling におけるサービス運用妨害(無限ループ)の脆弱性
Apache Sling におけるサービス運用妨害(無限ループ)の脆弱性JPCERT Coordination Center
 
Azure Machine Learning Services 概要 - 2019年3月版
Azure Machine Learning Services 概要 - 2019年3月版Azure Machine Learning Services 概要 - 2019年3月版
Azure Machine Learning Services 概要 - 2019年3月版Daiyu Hatakeyama
 
Rとcdisc@moss10 公開用
Rとcdisc@moss10 公開用Rとcdisc@moss10 公開用
Rとcdisc@moss10 公開用Masafumi Okada
 

Similar to IaaS を活用した 情報セキュリティ演習環境の設計と実装 (20)

リアルFacebookガジェットを作った
リアルFacebookガジェットを作ったリアルFacebookガジェットを作った
リアルFacebookガジェットを作った
 
機械学習 (AI/ML) 勉強会 #1 基本編
機械学習 (AI/ML) 勉強会 #1 基本編機械学習 (AI/ML) 勉強会 #1 基本編
機械学習 (AI/ML) 勉強会 #1 基本編
 
リアルFacebookガジェットを作った(ロングバージョン)
リアルFacebookガジェットを作った(ロングバージョン)リアルFacebookガジェットを作った(ロングバージョン)
リアルFacebookガジェットを作った(ロングバージョン)
 
OpenStack & Ansible で実現する自動化
OpenStack & Ansible で実現する自動化OpenStack & Ansible で実現する自動化
OpenStack & Ansible で実現する自動化
 
Elastic Cloudを活用!!ゼロトラストセキュリティの「はじめの一歩」
Elastic Cloudを活用!!ゼロトラストセキュリティの「はじめの一歩」Elastic Cloudを活用!!ゼロトラストセキュリティの「はじめの一歩」
Elastic Cloudを活用!!ゼロトラストセキュリティの「はじめの一歩」
 
Azure IoT Edge で Custom Vision
Azure IoT Edge で Custom VisionAzure IoT Edge で Custom Vision
Azure IoT Edge で Custom Vision
 
最低限知っておきたい Webセキュリティーについて@MT関西
最低限知っておきたい Webセキュリティーについて@MT関西最低限知っておきたい Webセキュリティーについて@MT関西
最低限知っておきたい Webセキュリティーについて@MT関西
 
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
 
20130924 Picomon CRH勉強会
20130924 Picomon CRH勉強会20130924 Picomon CRH勉強会
20130924 Picomon CRH勉強会
 
Infrastructure as code for azure
Infrastructure as code for azureInfrastructure as code for azure
Infrastructure as code for azure
 
Building React, Flutter and Blazor development and debugging environment with...
Building React, Flutter and Blazor development and debugging environment with...Building React, Flutter and Blazor development and debugging environment with...
Building React, Flutter and Blazor development and debugging environment with...
 
SORACOM UG 関西 x JAWS-UG 関西 IoT専門支部共催 | #あのボタン 開発のちょっといい話とSORACOM アップデート
SORACOM UG 関西 x JAWS-UG 関西 IoT専門支部共催 | #あのボタン 開発のちょっといい話とSORACOM アップデートSORACOM UG 関西 x JAWS-UG 関西 IoT専門支部共催 | #あのボタン 開発のちょっといい話とSORACOM アップデート
SORACOM UG 関西 x JAWS-UG 関西 IoT専門支部共催 | #あのボタン 開発のちょっといい話とSORACOM アップデート
 
自作saoriの紹介
自作saoriの紹介自作saoriの紹介
自作saoriの紹介
 
オープンソースソフトウェアで実現するエンタープライズにおけるセキュリティ脅威分析の勘所
オープンソースソフトウェアで実現するエンタープライズにおけるセキュリティ脅威分析の勘所オープンソースソフトウェアで実現するエンタープライズにおけるセキュリティ脅威分析の勘所
オープンソースソフトウェアで実現するエンタープライズにおけるセキュリティ脅威分析の勘所
 
20110714 j queryベーシック
20110714 j queryベーシック20110714 j queryベーシック
20110714 j queryベーシック
 
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
 
検索可能暗号の概観と今後の展望(第2回次世代セキュア情報基盤ワークショップ)
検索可能暗号の概観と今後の展望(第2回次世代セキュア情報基盤ワークショップ)検索可能暗号の概観と今後の展望(第2回次世代セキュア情報基盤ワークショップ)
検索可能暗号の概観と今後の展望(第2回次世代セキュア情報基盤ワークショップ)
 
Apache Sling におけるサービス運用妨害(無限ループ)の脆弱性
Apache Sling におけるサービス運用妨害(無限ループ)の脆弱性Apache Sling におけるサービス運用妨害(無限ループ)の脆弱性
Apache Sling におけるサービス運用妨害(無限ループ)の脆弱性
 
Azure Machine Learning Services 概要 - 2019年3月版
Azure Machine Learning Services 概要 - 2019年3月版Azure Machine Learning Services 概要 - 2019年3月版
Azure Machine Learning Services 概要 - 2019年3月版
 
Rとcdisc@moss10 公開用
Rとcdisc@moss10 公開用Rとcdisc@moss10 公開用
Rとcdisc@moss10 公開用
 

Recently uploaded

自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 

Recently uploaded (9)

自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 

IaaS を活用した 情報セキュリティ演習環境の設計と実装

  • 2. 「情報セキュリティ演習」  Basic SecCap (enPiT-Security) で京都大学が開講する 演習科目の一つ (通称 PBL演習M)  京都大学工学部の正式科目、夏期集中 (9月) 2019/5/17 ここ ITRC meet45, (C) Daisuke Kotani 2
  • 3. 「情報セキュリティ演習」の内容  攻撃を見つけるというのはどういうことなのかを学ぶ  ネットワーク型侵入検知システム(NIDS)の仕組みと役割  攻撃とはどのようなものかを理解する (攻撃してみる)  一般的なシグネチャ型 NIDS (Snort) がどのように 攻撃を検知しているのかを実践を通して理解する  自分でしてみた攻撃を検知するシグネチャを書く  False Positive や False Negative があることを体験する  機械学習を用いてより攻撃の通信の検知を試みる  Kyoto2006+ 準拠のトラフィックデータから正常通信と攻撃を分類 2019/5/17 外部からの不正アクセスの試みを検知する侵入検知システム(IDS)では、 膨大な数の警報が発せられ、その解析は人手では困難である。ここでは、 IDSの仕組みと役割を学んだ上で、機械学習によりIDSの警報ログから正 常通信と攻撃を分類する演習を実施する。 ITRC meet45, (C) Daisuke Kotani 3
  • 4. 演習に必要な演習環境  攻撃・IDS による攻撃検知を実践できる  NIDS がリアルタイムに通信を監視するには root 権限が必要  攻撃するホスト/されるホスト/IDS の最低3台必要  誤って外に攻撃してしまうことがないように  機械学習の実践によく利用されるソフトウェアが利用可能  Jupyter Notebook + 多くのライブラリ (scikit-learn など)  経験のある学生が自分で使いたいライブラリを追加できる  演習中に一からインストールする時間はない  数GB〜数十GBのトラフィック (セッション) データを扱える 2019/5/17ITRC meet45, (C) Daisuke Kotani 4
  • 5. 演習環境を設計する上での考慮  Basic SecCap の枠組みで他大学の学生を受け入れるが 受講生数が読みにくい (必要な機材が必要かわからない)  Basic SecCap 参加校数・受講生数とも毎年増加  本学の演習を履修するかどうかは受講生の希望次第  enPiT への補助金が終了しても継続できる (人・お金)  正式科目なのですぐにはやめられない  2日間だけ動けばよい  通年で計算資源を持ち続ける必要はない  私の負担を減らす  つまらない単純作業に時間を費やすのは避けたい 2019/5/17ITRC meet45, (C) Daisuke Kotani 5
  • 6. 方針 受講生に root を渡せる、 誤って外部に攻撃することを防げる、 複数台のホストが必要。 機械学習によく利用される ソフトウェアをあらかじめ準備。 希望により追加インストール可。 受講生数が読みづらく、 必要な機材の量が予想しにくい。 数GB〜数十GBのトラフィック データを扱える。 外部とは切り離されたネット ワークに接続したVMを毎年構築し、 受講生に提供。 上記のVMに予めインストール。 追加時は教員に申し出て 一時的にインターネットに接続。 受講者数・データサイズに応じた VM を IaaS 上に構築。 VM にアクセスするための端末は受 講生に持ち込ませる (BYOD)。 今回はさくらのクラウド 2019/5/17ITRC meet45, (C) Daisuke Kotani 6
  • 7. 方針 (その他) enPiT の補助金が終了しても継続で きる (人・お金)。 2日間だけ動けばよい。 私の負担を減らす。 補助金が終わったら別途措置される はずの予算額に応じて定員を設定。 トラブルが起こったらその場で なんとかする。 アカウント管理は手を抜く。 環境構築をできる限り自動化し、自 動化するために必要なスクリプトの み保管。毎年使い回す。 2019/5/17ITRC meet45, (C) Daisuke Kotani 7
  • 8. 不採用の選択肢  各々の PC に VM のイメージをダウンロードさせる  十分な性能の PC を持っているとは限らない  本学の演習用端末も性能不足  予めダウンロードするのを忘れた人が WiFi 一斉にダウンロードする のに必要な時間を考えると難しい  演習2日しかないのに  本学プライベートクラウドを利用  API の提供がなく、VM やネットワークの作成を自動化しづらい  年額課金しかなくお金の無駄  (閉じたネットワークを利用するのに交渉が必要そうだがそうしてま で利用する必要性はない)  物理サーバを買う  仮想化基盤を維持し続ける手間を無視できない  受講生が増えた際にスケールアウトしにくい  (補助金が終了する時期がちょうど買い換えの時期) 2019/5/17ITRC meet45, (C) Daisuke Kotani 8
  • 9. 演習環境  3〜4人1グループで以下のVMを提供  受講人数が増えたらこのセットを増やしていく  構築時はインターネットに接続、演習時は遮断 2019/5/17 作業用サーバ Metasploit, Jupyter Notebook, Wireshark, MATE Desktop, xrdp, トラフィックの データセット等 IDS サーバ Snort (1プロセス /ユーザ) 脆弱性てんこ盛り サーバ WebShell 的なものと ShellShock 今年は約30VM ITRC meet45, (C) Daisuke Kotani 9
  • 11. 環境構築の自動化: Infrastructure as Code 向けのツールの採用  Infrastructure as Code: “自動化、バージョン管理、テスト、継続的インテグレー ションといった、ソフトウェア開発のプラクティスをシス テム管理に応用するための方法論” Infrastructure as Code (O’Reilly) より  今回は短期間で利用するため、自動化の部分を利用  バージョン管理、継続的インテグレーションは重要ではない  テストは手つかず  理想: コマンド1〜2発で構築完了 2019/5/17ITRC meet45, (C) Daisuke Kotani 11
  • 12. 環境構築の自動化: VM やネットワークの作成  VM や閉じたネットワークの作成 → Terraform  サーバやディスク、ネットワークの数や接続関係などの 宣言的な記述から IaaS の API を利用し自動で作成 2019/5/17 resource "sakuracloud_disk" "work" { count = "${var.set_count}" name = "work${count.index}" hostname = work${count.index}" source_archive_id = "${image_id}" plan = "${var.work_disk_plan}" size = "${var.work_disk_size}" password = "${var.root_password}" } resource "sakuracloud_switch" "mgmtsw" { name = "mgmtsw" } resource "sakuracloud_server" "work" { count = "${var.set_count}" name = "${var.work_name}${count.index}" disks = ["${sakuracloud_disk.work.*.id[count.index]} "] core = "${var.work_core}" memory = "${var.work_memory}" nic = "${sakuracloud_switch. mgmtsw.id}" ipaddress = "${var.work_mgmt_ipaddr[count.index]}" nw_mask_len = "${var.mgmt_masklen}" gateway = "${var.vpc_ipaddr}" additional_nics = ["${sakuracloud_switch.loginsw.id}", "${sakuracloud_switch.workidssw.id}"] } ITRC meet45, (C) Daisuke Kotani 12
  • 13. 環境構築の自動化: サーバの設定  ソフトウェアのインストール・設定 → Ansible  サーバの構成を管理するツールの1つ  サーバにインストールされているべきソフトウェアや設定を 記述し実行すると、現状との差分を検出しインストール・設定 2019/5/17 - name: users exist user: name: "{{item.name}}" password: "{{item.password}}" group: "{{item.group}}" uid: "{{item.uid}}" state: present shell: /bin/bash groups: seccap with_items: "{{users}}" become: true - name: apt install become: true apt: name: "{{item}}" state: present with_items: "{{apt_install}}" ITRC meet45, (C) Daisuke Kotani 13
  • 14. Terraform + Ansible による演習環境の自動構築 2019/5/17 Terraform, Ansible 設定生 成スクリプト • ユーザ生成 パスワード生成 • IPアドレス計算 ユーザ数 サーバ数 等 設定ファイルテンプレート Terraform 設定ファイル Terraform さくらの クラウド API サーバや スイッチの生成 Ansible Playbook Ansible サーバ サーバの設定 ソフトウェアの導入・設定 Terraform, Ansible 設定生成スクリプト、Terraform、Ansible はそれぞれ手動実行 (構成を変更したときにその部分だけ再実行しやすいように) 謝辞: 多くの部分を SRC Software さんに外注 ITRC meet45, (C) Daisuke Kotani 14
  • 15. 狙い通りの効果が得られた点  私の負担が減った  サーバの準備のための単純作業の繰り返しによる精神的な負担  うまく動かない時に気軽に再インストールできるようになった  10分ほどあれば終わる  演習内容自体の改善に使える時間が増えたような気がする  演習中に不具合が発覚した場合に速やかに修正できる  修正が必要な部分だけ Ansible の Playbook を書いて実行することで 一括して変更できる 2019/5/17ITRC meet45, (C) Daisuke Kotani 15
  • 16. 思ったより軽くならなかった部分  Ansible の Playbook で書きにくい処理がいくつもある  コンパイルしてインストールする必要のあるソフトウェア  GUI で変更することを想定していそうな設定  日本語表示・入力にするとか  できるのだけど資料がなかなか見つからない  データベースの初期化  Ansible Playbook の維持に手間がかかる  ソフトウェアのアップグレード対応  Ubuntu 16.04 LTS → Ubuntu 18.04 LTS: OS の基本的な設定方法の変更 (netplan)  Bug fix や演習内容の改善への対応 年1回の演習のためにどこまで手間をかけるのが適切か難しい 2019/5/17ITRC meet45, (C) Daisuke Kotani 16
  • 17. 継続性の課題  価格が抑えられている  クラウド利用料: 約2500円/人  準備・確認・アップデートのための利用料を除く  特定のクラウドサービスへの依存が課題  Terraform から設定するためのプラグインが必要  Terraform の設定ファイルの記述がクラウドサービス依存 (さくらのクラウドがなくなったら他のクラウドに向けて書き直し)  Ansible Playbook の実行時間が長い  フルで実行すると6時間程度 (コンパイルなどしている都合)  コピー元となるディスクイメージを作るためのPlaybook と、 各サーバ固有の設定をする Playbook を分けたほうがよさそう  コンテナの活用?  人への依存 2019/5/17ITRC meet45, (C) Daisuke Kotani 17
  • 18. まとめ  Basic SecCap の京都大学開講演習科目「情報セキュリティ演習」 の演習環境を半自動化  Ansible と Terraform を活用  同じような構成の VM を自動で大量に作ることができる  構築スクリプトのみ維持すればよく保存するもののサイズが小さくて済む  自動化により得られる利点と手間のバランスが難しい  年1回しか構築しない環境でどこまで手をかけるか  多少汚くても動けばいいのをある程度許容する  テストは手付かず 2019/5/17ITRC meet45, (C) Daisuke Kotani 18