SlideShare uma empresa Scribd logo
1 de 50
Baixar para ler offline
Squarantine ~ Kuroboxを使った
USBメモリセキュリティソリューション
オープンフォース/南部製作所
●
河野悦昌
話す内容は
GPL
自己紹介
●
オープンフォース
● 徳島で(2009年11月現在)
●
月例勉強会
●
南部製作所
●
徳島で
● SIで
●
何でも作るよ!
目次
営業の表現、約束
営業の表現、約束
プログラマのコード
USBメモリ感染
● Autorun.inf
● 2008/3〜 学術機関で大変※1!
● 2009/??〜 医療機関で大変※2!
● 2009/12〜 土木建築業界で(ry
※1 当社比
※2 当社比
※(ry
Autorun.inf
● [AutoRun]
● open=RavMon.exe
● shellopen=嬉蝕(&O)
● shellopenCommand=RavMon.exe
● shellexplore=彿坿砿尖匂(&X)
● shellexploreCommand="RavMon.exe -e"
●
● [AutoRun]
● open=inhm0.exe
● shellopenCommand=inhm0.exe
●
実行ファイル
● -rwx------ 1 nanbuwks root 107803 2009-07-26 08:34 063h1.exe
● -rwx------ 1 nanbuwks root 111497 2009-08-27 08:41 0uh9l3x.exe
● -rwx------ 1 nanbuwks root 104415 2009-06-22 17:40 0yml2bch.bat
● -rwx------ 1 nanbuwks root 114911 2009-09-08 08:40 29na61fj.exe
● -rwx------ 1 nanbuwks root 104395 2009-07-02 08:37 2w2.com
● -rwx------ 1 nanbuwks root 103257 2009-08-18 08:33 3nh99cah.exe
● -rwx------ 1 nanbuwks root 103992 2009-08-11 11:43 8d.bat
● -rwx------ 1 nanbuwks root 115605 2009-09-28 08:42 9npxi.bat
● -rwx------ 1 nanbuwks root 57 2009-10-11 13:53 autorun.inf
● -rwx------ 1 nanbuwks root 104166 2009-06-21 08:30 c.bat
● -rwx------ 1 nanbuwks root 103780 2009-06-27 08:47 h8c1o3b0.exe
● -rwx------ 1 nanbuwks root 112472 2009-08-30 08:32 hps.bat
● -rwx------ 1 nanbuwks root 115418 2009-10-09 08:33 inhm0.exe
● -rwx------ 1 nanbuwks root 116496 2009-10-03 08:29 isaecyu.exe
● -rwx------ 1 nanbuwks root 104963 2009-07-23 08:45 jq.exe
● -rwx------ 1 nanbuwks root 114414 2009-09-18 08:45 lf9.exe
● -rwx------ 1 nanbuwks root 113980 2009-09-13 08:31 m3nxw.exe
● -rwx------ 1 nanbuwks root 104593 2009-06-25 08:46 pumk0lf.com
USBメモリを使用禁止に?
● cf,
● http://itpro.nikkeibp.co.jp/article/COLUMN/20080313/296190/
● 「会社でのUSBメモリー使用は禁止が基本,」
代替手段や利用時の選定/運用条件を明確に – 情報漏えいと戦う現場...:ITpro
●
しかし・・・
●
手軽なので使いたいという要望
●
偉い取引先とのやりとりで他に方法のない場合は?
● 以下の場合は? (使わざるを得ない)
– デジカメ接続やiPod
– プレゼン用バックアップ
通常は
● USBメモリ検疫マシンを用意
●
ウイルススキャンソフトでチェックしてから
Yet Another?
●
もっとがっちり管理できるもの
●
偉い管理者はいるけど、身近に管理者がいない組
織で運用するもの
● たとえば、10人ぐらいのグループとか
●
コピー記録
● 使用USBメモリを登録制に
●
ウイルススキャンではなくて
!!そもそも!!(怒
● MS-DOS時代の老人には
● Autorun.infで自動実行自体がおかしい!
● 間違って .exe ファイルを実行させてしまうのがおかし
い!
– 拡張子表示しないのがおかしい!
– ダブルクリックで実行するのがおかしい!
●
このようなことがなければウイルスなんて!
●
実行ファイルを持ち込みしないというルールだけで
● データファイルのBufferOverrunやマクロウイルス以
外は!つまり99%は防げるのだ!
●.exeファイルを禁止にするルールは?
● .exeファイルを禁止して困ること
●
ドライバインストーラ
●
プログラムインストーラ
● 既に、Gmailは.exeファイル送受信できないように
なっているじゃないか
●
さらに上位に管理者がいる想定なので
●
ドライバ、プログラムインストールはまともな管理者
が対応
ルール
● exeファイルは原則禁止にしてもよくね?
● .scr .bat .cmd .com .pif も
● .vbs .vbe .js .jse .wsf .wsh も 禁止でよくね?
● ZIPは解凍チェックでいいんじゃね?
● Autorun.infは抹消して
●
使う度に強制フォーマットしてもよくね?
構想
● USB HUBみたいなの
●
を机に1つ
● 実はLinux Box
● LANでつなげる
目標
●
手軽に使える
●
ローカルの場合に比べて使い勝手を落とさない
●
管理者フリーで
● 机6台集めた島に1台
●
問題があったら危険をよくわかるように
●
実戦型
● ???
● あと10年戦える
●
何と?
阻止目標
● 組織内で利用しているものと同じ型番のUSBメモリ
をこっそり置いてくる
●
→組織内メンバーが「誰だよ出しっぱなしにしてる奴は
ぶつぶつ」と保管場所に収納
– →誰かが取り出して使用
●
本来はラベルをつけるだけで防止できるが
●
ついうっかりを防止するもの
「戦う」のに必要なものは?
●
ネットワークが信頼できない環境で使える
●
必要以上の情報を記録しない
●
更新しなくても確実に動く
●
原理的に強いルール
●
簡単で、わかりやすい仕組み
●
「抜け道」の管理が容易
抜け道
●
拡張子を変更
●
対人間用偽装拡張子の場合は完全に防げる
●
バッファオーバーフローなどの脆弱性をつくもの
●
イメージファイル
●
動画ファイル
– BOFはアプリケーションソフトの脆弱性を塞ぐ方向で対処
●
マクロウイルス
●
マクロ使わないのがデフォルトで良くね?
●
メールボックスファイル
●
メールボックスファイルも禁止した方がいいかな?
複数のUSBメモリを識別する
● 新しいUSBメモリは登録しないと使えない
● 登録したUSBメモリごとにルールをつける
●
デジカメは?
●
メディアチェンジ
● SDカードリーダは?
●
メディアチェンジ
● LUN? 
● USB HDDは?
●
複数のパーティション
パーティション領域
ごとに管理
これを使うにあたって
併用すべきもの
● Windows Update
●
監視ツール
● Windows側でUSBストレージを使えなくする
●
レジストリを変更
●
その他
●
アップデート
●
監視
●
拡張子を常に表示
●
隠しファイルを常に表示
プログラマのコード
営業の表現、約束
プログラマのコード
KUROBOX
● Debian Lennyをインストール
●
簡単!
●
基本的な設定をしておく
●
固定アドレスにして
– Vim /etc/network/networking
● LOCALE設定
– dpkg-reconfigure locales
● TIMEZONE設定
– dpkg-reconfigure tzdata
USB管理
● UDEVをほげほげすればいいかな?
● udevinfo -p /sys/class/scsi_disk -a
● usbmountパッケージをほげほげかな?
● UUIDでほげほげかな?
● 取得コマンド vol_id
● /dev/disk/by-uuid/
[43140643.390000] usb 2-1: configuration #1 chosen from 1 choice
[43140643.420000] scsi25 : SCSI emulation for USB Mass Storage devices
[43140643.430000] usb 2-1: New USB device found, idVendor=13fe, idProduct=1f23
[43140643.430000] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[43140643.440000] usb 2-1: Product: silicon-power
[43140643.450000] usb 2-1: Manufacturer:
[43140643.450000] usb 2-1: SerialNumber: E6950500FFFF1B8F
[43140643.460000] usb-storage: device found at 17
[43140643.460000] usb-storage: waiting for device to settle before scanning
[43140648.460000] usb-storage: device scan complete
[43140648.460000] scsi 25:0:0:0: Direct-Access silicon-power PMAP PQ: 0 ANSI: 0 CCS
[43140649.490000] sd 25:0:0:0: [sdm] 15659008 512-byte hardware sectors (8017 MB)
[43140649.500000] sd 25:0:0:0: [sdm] Write Protect is off
[43140649.500000] sd 25:0:0:0: [sdm] Mode Sense: 23 00 00 00
[43140649.500000] sd 25:0:0:0: [sdm] Assuming drive cache: write through
[43140649.530000] sd 25:0:0:0: [sdm] 15659008 512-byte hardware sectors (8017 MB)
[43140649.540000] sd 25:0:0:0: [sdm] Write Protect is off
[43140649.540000] sd 25:0:0:0: [sdm] Mode Sense: 23 00 00 00
[43140649.540000] sd 25:0:0:0: [sdm] Assuming drive cache: write through
[43140649.550000] sdm: sdm1
[43140649.560000] sd 25:0:0:0: [sdm] Attached SCSI removable disk
テスト機材● USBメモリ
● 8G
● SILICON POWER Ultima-II 8GB
usbmountパッケージ
● 渡ってくる環境変数(一部)
● PHYSDEVDRIVER: usb-storage
● ACTION: add
● MINOR: 4
● PHYSDEVPATH: /devices/platform/orion-
ehci.0/usb1/1-1/1-1:1.0
● PHYSDEVBUS: usb
● udevからusbmountがキックされている。
● udevを直接触ってもうまく動いた(ように見えた)の
で、今回は使わなかった
udevをほげほげ
● /etc/udev/rules.d/10-local.rules
● /usr/bin/usbadd
SUBSYSTEMS=="usb",ACTION=="add" 
, ATTRS{serial}=="E6950500FFFF1B8F",
NAME="%k", SYMLINK="hogehoge" 
RUN+="/usr/bin/usbadd"
SUBSYSTEMS=="usb",ACTION=="remove", 
ATTRS{serial}=="E6950500FFFF1B8F",
NAME="%k", SYMLINK="hogehoge" 
RUN+="/usr/bin/usbremove"
#! /usr/bin/perl
use DBI;
open(FILE,">>/tmp/usbplug") or die;
print FILE "--------------", "n";
foreach my $key( keys %ENV ){
print FILE "$key: $ENV{$key}", "n";
}
close(FILE);
udevでほげほげ
●
渡ってくる環境変数 うまくいったようだが・・・
● ・・・何度も繰り返すと内容が違う?
ID_FS_LABEL_SAFE:
ID_BUS: usb
ID_INSTANCE: 0:0
ID_SERIAL: _silicon-power_E6950500FFFF1B8F-0:0
DEVTYPE: partition
SUBSYSTEM: block
ID_FS_VERSION: FAT32
ID_FS_USAGE: filesystem
DEVLINKS: /dev/ohm-mp3 /dev/block/8:193 /dev/disk/by-id/usb-_silicon-power_E6950500FFFF1B8F-0:0-part1 /dev/disk/by-path/platform-orion-ehci.1-usb-0:1:1.0-scsi-0:0:0:0-part1 /dev/disk/by-uuid/953B-4C7E
ID_VENDOR:
DEVPATH: /block/sdm/sdm1
PHYSDEVDRIVER: sd
ID_FS_TYPE: vfat
ID_FS_LABEL_ENC:
UDEV_LOG: 7
DEVNAME: /dev/sdm1
ID_FS_UUID_ENC: 953B-4C7E
MAJOR: 8
ID_FS_LABEL:
UDEVD_EVENT: 1
SEQNUM: 1395
ID_REVISION: PMAP
ID_PATH: platform-orion-ehci.1-usb-0:1:1.0-scsi-0:0:0:0
ID_MODEL: silicon-power
ACTION: add
ID_FS_UUID: 953B-4C7E
ID_TYPE: disk
MINOR: 193
PHYSDEVPATH: /devices/platform/orion-ehci.1/usb2/2-1/2-1:1.0/host26/target26:0:0/26:0:0:0
ID_SERIAL_SHORT: E6950500FFFF1B8F
PHYSDEVBUS: scsi
8回目
ID_FS_LABEL_SAFE:
ID_BUS: usb
ID_INSTANCE: 0:0
ID_SERIAL: _silicon-power_E6950500FFFF1B8F-0:0
DEVTYPE: partition
SUBSYSTEM: block
ID_FS_VERSION: FAT32
ID_FS_USAGE: filesystem
DEVLINKS: /dev/ohm-mp3 /dev/block/8:193 /dev/disk/by-id/usb-_silicon-power_E6950500FFFF1B8F-0:0-part1 /dev/disk/by-path/platform-orion-ehci.1-usb-0:1:1.0-scsi-0:0:0:0-part1 /dev/disk/by-uuid/953B-4C7E
ID_VENDOR:
DEVPATH: /block/sdm/sdm1
PHYSDEVDRIVER: sd
ID_FS_TYPE: vfat
ID_FS_LABEL_ENC:
UDEV_LOG: 7
DEVNAME: /dev/sdm1
ID_FS_UUID_ENC: 953B-4C7E
MAJOR: 8
ID_FS_LABEL:
UDEVD_EVENT: 1
SEQNUM: 1395
ID_REVISION: PMAP
ID_PATH: platform-orion-ehci.1-usb-0:1:1.0-scsi-0:0:0:0
ID_MODEL: silicon-power
ACTION: add
ID_FS_UUID: 953B-4C7E
ID_TYPE: disk
MINOR: 193
PHYSDEVPATH: /devices/platform/orion-ehci.1/usb2/2-1/2-1:1.0/host26/target26:0:0/26:0:0:0
ID_SERIAL_SHORT: E6950500FFFF1B8F
PHYSDEVBUS: scsi
7回目
ID_BUS: usb
ID_INSTANCE: 0:0
ID_SERIAL: _silicon-power_E6950500FFFF1B8F-0:0
DEVTYPE: disk
SUBSYSTEM: block
DEVLINKS: /dev/ohm-mp3 /dev/block/8:192 /dev/disk/by-id/usb-_silicon-power_E6950500FFFF1B8F-0:0 /dev/disk/by-path/platform-orion-ehci.1-usb-0:1:1.0-scsi-0:0:0:0
ID_VENDOR:
DEVPATH: /block/sdm
PHYSDEVDRIVER: sd
UDEV_LOG: 7
DEVNAME: /dev/sdm
MAJOR: 8
UDEVD_EVENT: 1
SEQNUM: 1394
ID_REVISION: PMAP
ID_PATH: platform-orion-ehci.1-usb-0:1:1.0-scsi-0:0:0:0
ID_MODEL: silicon-power
ACTION: add
ID_TYPE: disk
MINOR: 192
PHYSDEVPATH: /devices/platform/orion-ehci.1/usb2/2-1/2-1:1.0/host26/target26:0:0/26:0:0:0
ID_SERIAL_SHORT: E6950500FFFF1B8F
PHYSDEVBUS: scsi
6回目
SUBSYSTEM: bsg
UDEV_LOG: 7
DEVLINKS: /dev/ohm-mp3 /dev/char/253:1
DEVNAME: /dev/26:0:0:0
MAJOR: 253
UDEVD_EVENT: 1
DEVPATH: /class/bsg/26:0:0:0
SEQNUM: 1398
PHYSDEVDRIVER: sd
ACTION: add
MINOR: 1
PHYSDEVPATH: /devices/platform/orion-ehci.1/usb2/2-1/2-1:1.0/host26/target26:0:0/26:0:0:0
PHYSDEVBUS: scsi
4回目
SUBSYSTEM: usb_device
UDEV_LOG: 7
DEVLINKS: /dev/ohm-mp3 /dev/char/189:145
DEVNAME: /dev/usbdev2.18
MAJOR: 189
UDEVD_EVENT: 1
DEVPATH: /class/usb_device/usbdev2.18
SEQNUM: 1389
PHYSDEVDRIVER: usb
ACTION: add
MINOR: 145
PHYSDEVPATH: /devices/platform/orion-ehci.1/usb2/2-1
PHYSDEVBUS: usb
5回目
SUBSYSTEM: usb_endpoint
UDEV_LOG: 7
DEVLINKS: /dev/ohm-mp3 /dev/char/252:6
DEVNAME: /dev/usbdev2.18_ep00
MAJOR: 252
UDEVD_EVENT: 1
DEVPATH: /class/usb_endpoint/usbdev2.18_ep00
SEQNUM: 1390
PHYSDEVDRIVER: usb
ACTION: add
MINOR: 6
PHYSDEVPATH: /devices/platform/orion-ehci.1/usb2/2-1
PHYSDEVBUS: usb
3回目
SUBSYSTEM: usb_endpoint
UDEV_LOG: 7
DEVLINKS: /dev/ohm-mp3 /dev/char/252:5
DEVNAME: /dev/usbdev2.18_ep02
MAJOR: 252
UDEVD_EVENT: 1
DEVPATH: /class/usb_endpoint/usbdev2.18_ep02
SEQNUM: 1388
PHYSDEVDRIVER: usb-storage
ACTION: add
MINOR: 5
PHYSDEVPATH: /devices/platform/orion-ehci.1/usb2/2-1/2-1:1.0
PHYSDEVBUS: usb
2回目
SUBSYSTEM: usb_endpoint
UDEV_LOG: 7
DEVLINKS: /dev/ohm-mp3 /dev/char/252:4
DEVNAME: /dev/usbdev2.18_ep81
MAJOR: 252
UDEVD_EVENT: 1
DEVPATH: /class/usb_endpoint/usbdev2.18_ep81
SEQNUM: 1387
PHYSDEVDRIVER: usb-storage
ACTION: add
MINOR: 4
PHYSDEVPATH: /devices/platform/orion-ehci.1/usb2/2-1/2-1:1.0
PHYSDEVBUS: usb
1回目
PRODUCT: 13fe/1f23/110
DEVTYPE: usb_device
SUBSYSTEM: usb
DEVLINKS: /dev/ohm-mp3 /dev/char/189:145
DEVPATH: /devices/platform/orion-ehci.1/usb2/2-1
UDEV_LOG: 7
DEVNUM: 018
MAJOR: 189
TYPE: 0/0/0
BUSNUM: 002
DEVNAME: /dev/2-1
DEVICE: /proc/bus/usb/002/018
UDEVD_EVENT: 1
SEQNUM: 1384
ACTION: add
MINOR: 145
PHYSDEVBUS: usb
1度プラグすると8回呼び出されていた
1回にするためには?
● 10-local.rulesに指定を記述
●
どうやって決めるか調査
– # udevadm monitor --env > test
1回プラグインすると30回呼び出されている
1回目
UEVENT[1258010794.164083] add /devices/platform/orion-ehci.1/usb2/2-1 (usb)
ACTION=add
DEVPATH=/devices/platform/orion-ehci.1/usb2/2-1
SUBSYSTEM=usb
MAJOR=189
MINOR=145
DEVTYPE=usb_device
PHYSDEVBUS=usb
・
・
・
1回にするためには?
● 多分、最後のイベントが最後のrules呼び出しに対
応しているものだろう
● ここでこれが出ているということは、rulesが認識するかな?
30 回目
UDEV [1258010808.466678] add /block/sdm/sdm1 (block)
UDEV_LOG=7
ACTION=add
DEVPATH=/block/sdm/sdm1
SUBSYSTEM=block
MAJOR=8
MINOR=193
DEVTYPE=partition
PHYSDEVPATH=/devices/platform/orion-ehci.1/usb2/2-1/2-1:1.0/host26/target26:0:0/26:0:0:0
PHYSDEVBUS=scsi
PHYSDEVDRIVER=sd
SEQNUM=1395
UDEVD_EVENT=1
ID_VENDOR=
ID_MODEL=silicon-power
ID_REVISION=PMAP
ID_SERIAL=_silicon-power_E6950500FFFF1B8F-0:0
ID_SERIAL_SHORT=E6950500FFFF1B8F
ID_TYPE=disk
ID_INSTANCE=0:0
ID_BUS=usb
ID_PATH=platform-orion-ehci.1-usb-0:1:1.0-scsi-0:0:0:0
ID_FS_USAGE=filesystem
ID_FS_TYPE=vfat
ID_FS_VERSION=FAT32
ID_FS_UUID=953B-4C7E
ID_FS_UUID_ENC=953B-4C7E
ID_FS_LABEL=
ID_FS_LABEL_ENC=
ID_FS_LABEL_SAFE=
DEVNAME=/dev/sdm1
DEVLINKS=/dev/ohm-mp3 /dev/block/8:193 /dev/disk/by-id/usb-_silicon-power_E6950500FFFF1B8F-0:0-part1 /dev/disk/by-path/platform-orion-ehci.1-usb-0:1:1.0-scsi-0:0:0:0-part1 /dev/disk/by-uuid/953B-4C7E
1回にするためには?
● 10-local.rules
● 結果 1度だけ呼び出され、希望の環境が取得できた
ID_FS_LABEL_SAFE:
ID_BUS: usb
ID_INSTANCE: 0:0
ID_SERIAL: _silicon-power_E6950500FFFF1B8F-0:0
DEVTYPE: partition
SUBSYSTEM: block
ID_FS_VERSION: FAT32
ID_FS_USAGE: filesystem
DEVLINKS: /dev/ohm-mp3 /dev/block/8:209 /dev/disk/by-id/usb-_silicon-power_E6950500FFFF1B8F-0:0-part1 /dev/disk/by-path/platform-orion-ehci.1-usb-0:1:1.0-scsi-0:0:0:0-part1 /dev/disk/by-uuid/953B-4C7E
ID_VENDOR:
DEVPATH: /block/sdn/sdn1
PHYSDEVDRIVER: sd
ID_FS_TYPE: vfat
ID_FS_LABEL_ENC:
UDEV_LOG: 7
DEVNAME: /dev/sdn1
ID_FS_UUID_ENC: 953B-4C7E
MAJOR: 8
ID_FS_LABEL:
UDEVD_EVENT: 1
SEQNUM: 1453
ID_REVISION: PMAP
ID_PATH: platform-orion-ehci.1-usb-0:1:1.0-scsi-0:0:0:0
ID_MODEL: silicon-power
ACTION: add
ID_FS_UUID: 953B-4C7E
ID_TYPE: disk
MINOR: 209
PHYSDEVPATH: /devices/platform/orion-ehci.1/usb2/2-1/2-1:1.0/host28/target28:0:0/28:0:0:0
ID_SERIAL_SHORT: E6950500FFFF1B8F
PHYSDEVBUS: scsi
SUBSYSTEMS=="block",ACTION=="add", KERNEL=="sd*[0-9]",
NAME="%k", SYMLINK="ohm-mp3" 
RUN+="/usr/bin/usbadd"
取り外しをフックするためには?
●
トリガのかけかたが不明
●
とりあえず全部有りにすると・・・
● 1度のリムーブで14個のイベントがひっかかる
●
そこでこのようにしたらうまくいくことがわかった。
ACTION=="remove", 
RUN+="/usr/bin/usbremove"
SUBSYSTEMS=="block",ACTION=="add",
KERNEL=="sd*[0-9]", NAME="%k", 
env{usbstorage}="true", RUN+="/usr/bin/usbadd"
ACTION=="remove",env{usbstorage}=="true", 
RUN+="/usr/bin/usbremove"
取り外しをフックするためには?
●
このように調整して
●
結局この値を取得する事にした
●
ID_FS_LABEL_SAFE:
ID_BUS: usb
ID_INSTANCE: 0:0
ID_SERIAL: _silicon-power_E6950500FFFF1B8F-0:0
usbstorage: true
DEVTYPE: partition
SUBSYSTEM: block
ID_FS_VERSION: FAT32
ID_FS_USAGE: filesystem
DEVLINKS: /dev/block/65:113 /dev/disk/by-id/usb-_silicon-power_E6950500FFFF1B8F-0:0-part1 /dev/disk/by-path/platform-orion-ehci.1-usb-0:1:1.0-scsi-0:0:0:0-part1 /dev/disk/by-uuid/953B-4C7E
ID_VENDOR:
DEVPATH: /block/sdx/sdx1
PHYSDEVDRIVER: sd
ID_FS_TYPE: vfat
ID_FS_LABEL_ENC:
UDEV_LOG: 7
DEVNAME: /dev/sdx1
ID_FS_UUID_ENC: 953B-4C7E
MAJOR: 65
ID_FS_LABEL:
UDEVD_EVENT: 1
SEQNUM: 1752
ID_REVISION: PMAP
ID_PATH: platform-orion-ehci.1-usb-0:1:1.0-scsi-0:0:0:0
ID_MODEL: silicon-power
ACTION: remove
ID_FS_UUID: 953B-4C7E
ID_TYPE: disk
MINOR: 113
PHYSDEVPATH: /devices/platform/orion-ehci.1/usb2/2-1/2-1:1.0/host38/target38:0:0/38:0:0:0
ID_SERIAL_SHORT: E6950500FFFF1B8F
PHYSDEVBUS: scsi
SUBSYSTEMS=="usb",ACTION=="add",
KERNEL=="sd*[0-9]", NAME="%k", 
env{usbstorage}="true", RUN+="/usr/bin/usbadd"
ACTION=="remove",env{usbstorage}=="true", 
RUN+="/usr/bin/usbremove"
ユーザプログラムでは
●
使えそうな環境変数
● ID_INSTANCE: 0:0
● ID_SERIAL: USB_2.0_Flash_Disk_AA04012700007544-0:0
● DEVPATH: /block/sdb/sdb1
● ID_FS_TYPE: vfat
● DEVNAME: /dev/sdb1
● ID_FS_UUID_ENC: 403F-4B1B
● ACTION: add
● ID_FS_UUID: 403F-4B1B
●
ユーザプログラムでは
●
処理に時間がかかってはいけない
●
フォーマットなどは時間がかかる。
●
どうする?
– usbadd → usbadd2 &
– usbremove → usbremove2 &
●
できた!
samba,swat
●
インストールして適当に設定
● mkdir /mnt/share/
● debian:/etc/udev/rules.d# mkdir /mnt/share/ok
● debian:/etc/udev/rules.d# mkdir /mnt/share/ng
● Apt-get install swat (samba,samba-commonもインストールされる)
● /etc/init.d/openbsd-inetd restart
● Swat でアクセス可能に
– /var/squarantine/usbstorages/ … guest ok browseable ok
– /var/squarantine/attention … guest ok browseable ok readonly
– /var/squarantine/responsible … guest no browseable no
– ログファイルサイズを10000(KB)に
sambaとの連携
●
プラグしたら自動でマウント
● debian:/mnt# cat /usr/bin/usbadd
● #! /usr/bin/perl
● open(FILE,">/tmp/usbplug") or die;
● foreach my $key( keys %ENV ){
● print FILE "$key: $ENV{$key}", "n";
● }
● close(FILE);
● system("mkdir /mnt/usbshare1");
● system("mount $ENV{'DEVNAME'} /mnt/usbshare1");
● system("ln -s /mnt/usbshare1 /mnt/share/ok");
●
●
できた!
DBとの連携
● MySQLをインストール
● テーブル media 作成
● プラグしたらmediaを検索し、登録していなかったら
未登録画面が出る
● id int(11) auto_increment |
● id_serial text
● nickname text
● memo text
● flags int(11)
できた!
Webとの連携
● Apache2,PHP,modMySQLをインストール
● Apt-get install php5-mysql mysql-server
● ln -s /var/squarantine/www squarantine
● 未登録USBメモリの登録画面を作る
できた!
0 未登録
1 使用禁止
2 使用停止
4 保留
8 強制フォーマット
16 問合せフォーマット
32 実行ファイル強制削除
64 実行ファイル問合せ削除
128 信頼済(管理者のみ利用)
強制フォーマット
● mkfs.vfatする
● apt-get install dosfstools
できた!
system("mkfs.vfat $ENV{'DEVNAME'} > /dev/null");
system("mkdir -p /mnt$ENV{'DEVNAME'}");
system("mount -o umask=000 $ENV{'DEVNAME'} /var/squarantine/usbstorages/$nickname");
強制削除処理
● Exeファイル等を強制的に削除
● Autorun.infも
● 実行ファイルを含んだZIPファイルも
● # apt-get install libarchive-zip-perl
できた!
use File::Find;
use Archive::Zip;
my $dir = '.';
find( ¥&wanted, ($dir) );
sub wanted {
my $file = $File::Find::name;
if ( $file =~ /.(exe|com|cmd|bat|scr|pif|vbs|vbe|js|jse|wsf|wsh)$/i ){
・
・
・
マニュアル削除処理
print("<h1>このUSBデバイスの消毒を開始します</h1>");
echo $_var["devname"];
?>
<b>以下のボタンを押して開始してください</b>
<form action="regist.php" method="POST">
<input type="submit">
<input type="hidden" name="devname" value="<?php echo $_var["devname"]; ?>">
<input type="hidden" name="id" value="<?php echo $_var["id"]; ?>">
<input type="hidden" name="mode" value="delete">
</form>
print "<h1>消毒中...</h1>";
print "<pre>";
print $_var["devname"]."n";
passthru("sudo mount ".$_var["devname"]." /mnt".$_var["devname"]);
//passthru("sudo mount");
//print "-------------n";
passthru("sudo usbsearchdelete /mnt".$_var["devname"]);
passthru("sudo umount ".$_var["devname"]);
passthru("sudo mount ".$_var["devname"]." /var/squarantine/usbstorages/".$org["nickname"]);
//passthru("sudo mount");
//passthru("sudo echo mount ".$_var["devname"]." /var/squarantine/usbstorages/".$org["nickname"]);
//passthru("echo 123");
//passthru("find /etc -name a*");
print "</pre>";
print "<h2>終了しました</h2>";
● PHPで削除実行ページを作成
●
終了すれば自動マウント
できた!
マニュアルフォーマット処理
●
問い合わせ画面→フォーマット→マウント
できた!
print "<h1>format中...</h1>";
print "<pre>";
passthru("sudo mkfs.vfat ".$_var["devname"]);
passthru("sudo mount ".$_var["devname"]." /var/squarantine/usbstorages/".$org["nickname"]);
passthru("echo sudo mount ".$_var["devname"]." /var/squarantine/usbstorages/".$org["nickname"]);
#passthru("find /etc -name a*");
print "</pre>";
print "<h2>終了しました</h2>";
print "<a href="file:".$conf["SAMBAPATH"]."">こちらからアクセスしてください</a>";
オペレーションレスリムーブ
● syncでマウントすると・・・
● 0.1MB/sec
●
遅い!
● Asyncでマウントして
● 9秒毎にcronでsyncするように設定
– 合間に抜いてしまう事故が発生
● 5秒ごとにsyncするように改善
できた!
sync
sleep 5
sync
sleep 5
sync
sleep 5
sync
sleep 5
sync
sleep 5
sync
sleep 5
sync
sleep 5
sync
sleep 5
sync
sleep 5
sync
sleep 5
sync
sleep 5
sync
sleep 5
* * * * * /etc/squarantine/sync.sh
オペレーションレスリムーブ
●
取り外したら自動でアンマウント
●
できた!
・
・
・
##UNMOUNT##
system("umount ".$ENV{'DEVNAME'});
##MOUNTPOINT DELETE##
my $dbh = DBI->connect("DBI:mysql:squarantine", "****", "****") || die "CONNECT ERROR $DBI::ERRSTR";
my $sth = $dbh->prepare("select nickname,memo,flags from media where id_serial='".$ENV{'ID_SERIAL'}."'");
$sth->execute;
$num_rows = $sth->rows;
for ($i=0; $i<$num_rows; $i++) {
@a = $sth->fetchrow_array;
$nickname = $a[0];
}
$dirname=$nickname;
$dirname =~ s/[<>:*?|"/]//g;
・
・
・
アクセス記録
● sambaのログをそのまま見る
● chmod 755 /var/log/samba
● ln -s /var/log/samba
/var/squarantine/www/sambalog
●
将来はもうちょっと改善を…
オマケ
● Attention共有 (readonly)
●
クライアント初期設定用ファイルを置いておく
– スクリプトファイル
● ローカルでのUSBメモリアクセス禁止
– レジストリファイル
●
自動アップデート
●
ショートカットを配置
– Squarantine へのショートカット
– クライアントのデスクトップに置いておく
将来の課題
● KuroBox は大きいなあ
● Beagleboardあたり
●
隔離機能は?
● CDとかDVDとかは?
●
ウイルススキャンエンジンは?
参考資料
● 会社でのUSBメモリー使用は禁止が基本,
● 代替手段や利用時の選定/運用条件を明確に – 情報漏
えいと戦う現場...:ITpro
● http://itpro.nikkeibp.co.jp/article/COLUMN/2008031
3/296190/
● 「USB メモリを安易にパソコンに接続しないように!
」
● — USB メモリなどの外部記憶媒体からウイルス感染し
ないために!! —
● http://www.ipa.go.jp/security/txt/2007/07outline.html

Mais conteúdo relacionado

Mais procurados

今時のチープなノートPC HP Stream 11でXubuntuを動かす
今時のチープなノートPC HP Stream 11でXubuntuを動かす今時のチープなノートPC HP Stream 11でXubuntuを動かす
今時のチープなノートPC HP Stream 11でXubuntuを動かす
shimadah
 
How to Install the Dexcs2014 for OpenFOAM(R)
How to Install the Dexcs2014 for OpenFOAM(R)How to Install the Dexcs2014 for OpenFOAM(R)
How to Install the Dexcs2014 for OpenFOAM(R)
Etsuji Nomura
 

Mais procurados (20)

DEXCS2015のWindows10 PCへのインストール
DEXCS2015のWindows10 PCへのインストールDEXCS2015のWindows10 PCへのインストール
DEXCS2015のWindows10 PCへのインストール
 
今時のチープなノートPC HP Stream 11でXubuntuを動かす
今時のチープなノートPC HP Stream 11でXubuntuを動かす今時のチープなノートPC HP Stream 11でXubuntuを動かす
今時のチープなノートPC HP Stream 11でXubuntuを動かす
 
Beginner for install DOSBox-X and PC-98 emulation. 初めてのDOSBox-XインストールとPC-98エ...
Beginner for install DOSBox-X and PC-98 emulation.  初めてのDOSBox-XインストールとPC-98エ...Beginner for install DOSBox-X and PC-98 emulation.  初めてのDOSBox-XインストールとPC-98エ...
Beginner for install DOSBox-X and PC-98 emulation. 初めてのDOSBox-XインストールとPC-98エ...
 
Xenとzfsで作る家庭内VDIサーバ
Xenとzfsで作る家庭内VDIサーバXenとzfsで作る家庭内VDIサーバ
Xenとzfsで作る家庭内VDIサーバ
 
15分で知るVagrant (NSEG 2013-08-24)
15分で知るVagrant (NSEG 2013-08-24)15分で知るVagrant (NSEG 2013-08-24)
15分で知るVagrant (NSEG 2013-08-24)
 
PHP7を実際に動かしてみた@第96回PHP勉強会 #phpstudy
PHP7を実際に動かしてみた@第96回PHP勉強会 #phpstudyPHP7を実際に動かしてみた@第96回PHP勉強会 #phpstudy
PHP7を実際に動かしてみた@第96回PHP勉強会 #phpstudy
 
2016年注目の.netテクノロジー
2016年注目の.netテクノロジー2016年注目の.netテクノロジー
2016年注目の.netテクノロジー
 
NetBSD8.0 on UEFI Bootloader and Windows Tablet #osc18hi
NetBSD8.0 on UEFI Bootloader and Windows Tablet #osc18hiNetBSD8.0 on UEFI Bootloader and Windows Tablet #osc18hi
NetBSD8.0 on UEFI Bootloader and Windows Tablet #osc18hi
 
How to Install the Dexcs2014 for OpenFOAM(R)
How to Install the Dexcs2014 for OpenFOAM(R)How to Install the Dexcs2014 for OpenFOAM(R)
How to Install the Dexcs2014 for OpenFOAM(R)
 
いまどきのLinuxインストールバトル(新型PC編) OSC2015 Nagoya LT
いまどきのLinuxインストールバトル(新型PC編) OSC2015 Nagoya LTいまどきのLinuxインストールバトル(新型PC編) OSC2015 Nagoya LT
いまどきのLinuxインストールバトル(新型PC編) OSC2015 Nagoya LT
 
Windows10タブレットに各種Linuxディストリを入れて遊ぼう 2017年度東京Spring版
Windows10タブレットに各種Linuxディストリを入れて遊ぼう 2017年度東京Spring版Windows10タブレットに各種Linuxディストリを入れて遊ぼう 2017年度東京Spring版
Windows10タブレットに各種Linuxディストリを入れて遊ぼう 2017年度東京Spring版
 
FreeBSD on Mac
FreeBSD on MacFreeBSD on Mac
FreeBSD on Mac
 
AllwinnerタブレットのOSを作ってみる (途中版)
AllwinnerタブレットのOSを作ってみる (途中版)AllwinnerタブレットのOSを作ってみる (途中版)
AllwinnerタブレットのOSを作ってみる (途中版)
 
SocketStream入門
SocketStream入門SocketStream入門
SocketStream入門
 
Windows10タブレットにUbuntu16.04を色々入れてみた 2016年度版 Install Ubuntu16.04 on Windows10 T...
Windows10タブレットにUbuntu16.04を色々入れてみた 2016年度版 Install Ubuntu16.04 on Windows10 T...Windows10タブレットにUbuntu16.04を色々入れてみた 2016年度版 Install Ubuntu16.04 on Windows10 T...
Windows10タブレットにUbuntu16.04を色々入れてみた 2016年度版 Install Ubuntu16.04 on Windows10 T...
 
Beginner for install US$40 JUNK Intel Macbook in 2020 はじめての4,500円ジャンクIntel Ma...
Beginner for install US$40 JUNK Intel Macbook in 2020 はじめての4,500円ジャンクIntel Ma...Beginner for install US$40 JUNK Intel Macbook in 2020 はじめての4,500円ジャンクIntel Ma...
Beginner for install US$40 JUNK Intel Macbook in 2020 はじめての4,500円ジャンクIntel Ma...
 
WindowsタブレットでLinux、*BSD改造特集と裏技ハッキング in OSC Online2020 #osc20on Hacking Linux ...
WindowsタブレットでLinux、*BSD改造特集と裏技ハッキング in OSC Online2020 #osc20on Hacking Linux ...WindowsタブレットでLinux、*BSD改造特集と裏技ハッキング in OSC Online2020 #osc20on Hacking Linux ...
WindowsタブレットでLinux、*BSD改造特集と裏技ハッキング in OSC Online2020 #osc20on Hacking Linux ...
 
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
 
はじめてのWubi for Ubuntu 21.04 ドンキ格安 第2世代UMPC NANOTE P8
はじめてのWubi for Ubuntu 21.04 ドンキ格安 第2世代UMPC NANOTE P8はじめてのWubi for Ubuntu 21.04 ドンキ格安 第2世代UMPC NANOTE P8
はじめてのWubi for Ubuntu 21.04 ドンキ格安 第2世代UMPC NANOTE P8
 
Beginner for install Android applications in Xiaomi MiReader  はじめてのXiaomi MiR...
Beginner for install Android applications in Xiaomi MiReader  はじめてのXiaomi MiR...Beginner for install Android applications in Xiaomi MiReader  はじめてのXiaomi MiR...
Beginner for install Android applications in Xiaomi MiReader  はじめてのXiaomi MiR...
 

Destaque (7)

Scrirty conference20160410
Scrirty conference20160410Scrirty conference20160410
Scrirty conference20160410
 
Pcb20140111
Pcb20140111Pcb20140111
Pcb20140111
 
20150919 raspistable (bis)
20150919 raspistable (bis)20150919 raspistable (bis)
20150919 raspistable (bis)
 
実装機
実装機実装機
実装機
 
20160227 de live-scratch
20160227 de live-scratch20160227 de live-scratch
20160227 de live-scratch
 
Raspberry Piの便利なインストーラーNOOBSを活用してみよう!
Raspberry Piの便利なインストーラーNOOBSを活用してみよう!Raspberry Piの便利なインストーラーNOOBSを活用してみよう!
Raspberry Piの便利なインストーラーNOOBSを活用してみよう!
 
20160218 devsumi
20160218 devsumi20160218 devsumi
20160218 devsumi
 

Semelhante a Squarantine 〜Kuroboxを使ったUSBメモリセキュリティソリューション〜

Dodai projectの紹介
Dodai projectの紹介Dodai projectの紹介
Dodai projectの紹介
Osamu Habuka
 
20130126 第2回福岡debian勉強会 debian wheezyとdebian installerのはなし
20130126 第2回福岡debian勉強会 debian wheezyとdebian installerのはなし20130126 第2回福岡debian勉強会 debian wheezyとdebian installerのはなし
20130126 第2回福岡debian勉強会 debian wheezyとdebian installerのはなし
Tsuyoshi Yamada
 
2011-11-19 OSC 2011 Tokyo Fall Eucalyptus LiveDVD
2011-11-19 OSC 2011 Tokyo Fall Eucalyptus LiveDVD2011-11-19 OSC 2011 Tokyo Fall Eucalyptus LiveDVD
2011-11-19 OSC 2011 Tokyo Fall Eucalyptus LiveDVD
Osamu Habuka
 
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman
tomo_masakura
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825
hiro345
 
スタート低レイヤー #0
スタート低レイヤー #0スタート低レイヤー #0
スタート低レイヤー #0
Kiwamu Okabe
 

Semelhante a Squarantine 〜Kuroboxを使ったUSBメモリセキュリティソリューション〜 (20)

Pogoplug mobileでownCloudに挑戦してみた
Pogoplug mobileでownCloudに挑戦してみたPogoplug mobileでownCloudに挑戦してみた
Pogoplug mobileでownCloudに挑戦してみた
 
Osoljp201204
Osoljp201204Osoljp201204
Osoljp201204
 
Dodai projectの紹介
Dodai projectの紹介Dodai projectの紹介
Dodai projectの紹介
 
できる!KickstartとAnsible!
できる!KickstartとAnsible!できる!KickstartとAnsible!
できる!KickstartとAnsible!
 
Osc2013 tokyospring
Osc2013 tokyospringOsc2013 tokyospring
Osc2013 tokyospring
 
Hacking with x86 Windows Tablet and mobile devices on openSUSE #opensuseasia17
 Hacking with x86 Windows Tablet and mobile devices on openSUSE #opensuseasia17 Hacking with x86 Windows Tablet and mobile devices on openSUSE #opensuseasia17
Hacking with x86 Windows Tablet and mobile devices on openSUSE #opensuseasia17
 
TopSE.20121119
TopSE.20121119TopSE.20121119
TopSE.20121119
 
究極のディストリビューションUbuntu
究極のディストリビューションUbuntu究極のディストリビューションUbuntu
究極のディストリビューションUbuntu
 
20130126 第2回福岡debian勉強会 debian wheezyとdebian installerのはなし
20130126 第2回福岡debian勉強会 debian wheezyとdebian installerのはなし20130126 第2回福岡debian勉強会 debian wheezyとdebian installerのはなし
20130126 第2回福岡debian勉強会 debian wheezyとdebian installerのはなし
 
2011-11-19 OSC 2011 Tokyo Fall Eucalyptus LiveDVD
2011-11-19 OSC 2011 Tokyo Fall Eucalyptus LiveDVD2011-11-19 OSC 2011 Tokyo Fall Eucalyptus LiveDVD
2011-11-19 OSC 2011 Tokyo Fall Eucalyptus LiveDVD
 
はじめてのpostmarketOSインストール Windowsタブレット #kagolug Beginner for install postmar...
はじめてのpostmarketOSインストール Windowsタブレット  #kagolug  Beginner for install postmar...はじめてのpostmarketOSインストール Windowsタブレット  #kagolug  Beginner for install postmar...
はじめてのpostmarketOSインストール Windowsタブレット #kagolug Beginner for install postmar...
 
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman
 
CybozuのOSS(WalB)へコミットしてみた/使ってみた
CybozuのOSS(WalB)へコミットしてみた/使ってみたCybozuのOSS(WalB)へコミットしてみた/使ってみた
CybozuのOSS(WalB)へコミットしてみた/使ってみた
 
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!
2013OSC関西@京都_CloudStackとCloudFoundaryがまるわかり!
 
DOSBox for beginners はじめてのDOSBox
DOSBox for beginners はじめてのDOSBoxDOSBox for beginners はじめてのDOSBox
DOSBox for beginners はじめてのDOSBox
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825
 
Synthesijer zynq qs_20150316
Synthesijer zynq qs_20150316Synthesijer zynq qs_20150316
Synthesijer zynq qs_20150316
 
スタート低レイヤー #0
スタート低レイヤー #0スタート低レイヤー #0
スタート低レイヤー #0
 
【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門
 
はじめての4,500円OS無しジャンクIntel MacbookにLinux,NetBSDインストール iin OSC 2020 Online/Kyoto...
はじめての4,500円OS無しジャンクIntel MacbookにLinux,NetBSDインストール iin OSC 2020 Online/Kyoto...はじめての4,500円OS無しジャンクIntel MacbookにLinux,NetBSDインストール iin OSC 2020 Online/Kyoto...
はじめての4,500円OS無しジャンクIntel MacbookにLinux,NetBSDインストール iin OSC 2020 Online/Kyoto...
 

Mais de Yoshimasa Kawano

Mais de Yoshimasa Kawano (12)

「寝ながら作るXojo」ハンズオンテキスト
「寝ながら作るXojo」ハンズオンテキスト「寝ながら作るXojo」ハンズオンテキスト
「寝ながら作るXojo」ハンズオンテキスト
 
20181220 pcba3days
20181220 pcba3days20181220 pcba3days
20181220 pcba3days
 
20181020 opticalsystem
20181020 opticalsystem20181020 opticalsystem
20181020 opticalsystem
 
20181020 iotl tinshenzhen
20181020 iotl tinshenzhen20181020 iotl tinshenzhen
20181020 iotl tinshenzhen
 
20180414 shenzen 20180512
20180414 shenzen 2018051220180414 shenzen 20180512
20180414 shenzen 20180512
 
C89.360°映像システムをつくる
C89.360°映像システムをつくるC89.360°映像システムをつくる
C89.360°映像システムをつくる
 
20171124 startupweekendtokyo
20171124 startupweekendtokyo20171124 startupweekendtokyo
20171124 startupweekendtokyo
 
how to five sense with raspberry pi
how to five sense with raspberry pihow to five sense with raspberry pi
how to five sense with raspberry pi
 
20170130 r114
20170130 r11420170130 r114
20170130 r114
 
20170914 wildlife
20170914 wildlife20170914 wildlife
20170914 wildlife
 
De workshop text20150704
De workshop text20150704De workshop text20150704
De workshop text20150704
 
Ikuijxit20150701
Ikuijxit20150701Ikuijxit20150701
Ikuijxit20150701
 

Último

Último (11)

Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 

Squarantine 〜Kuroboxを使ったUSBメモリセキュリティソリューション〜