Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Yoshimasa Kawano
PDF, PPTX
331 views
Squarantine 〜Kuroboxを使ったUSBメモリセキュリティソリューション〜
初出:2009/11/14 オープンソースカンファレンス2009 Kochi
Technology
◦
Read more
0
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 50
2
/ 50
3
/ 50
4
/ 50
5
/ 50
6
/ 50
7
/ 50
8
/ 50
9
/ 50
10
/ 50
11
/ 50
12
/ 50
13
/ 50
14
/ 50
15
/ 50
16
/ 50
17
/ 50
18
/ 50
19
/ 50
20
/ 50
21
/ 50
22
/ 50
23
/ 50
24
/ 50
25
/ 50
26
/ 50
27
/ 50
28
/ 50
29
/ 50
30
/ 50
31
/ 50
32
/ 50
33
/ 50
34
/ 50
35
/ 50
36
/ 50
37
/ 50
38
/ 50
39
/ 50
40
/ 50
41
/ 50
42
/ 50
43
/ 50
44
/ 50
45
/ 50
46
/ 50
47
/ 50
48
/ 50
49
/ 50
50
/ 50
More Related Content
PDF
Android起動周りのノウハウ
by
chancelab
PDF
how to install Dexcs2016 for OpenFOAM
by
Etsuji Nomura
ODP
自宅サーバ仮想化
by
anubis_369
PDF
How to install Dexcs2015 for OpenFOAM(R)
by
Etsuji Nomura
PDF
初心者がOpenIndianaで自宅サーバを作ったよって話
by
Masataka Tsukamoto
PDF
20120731 c4 saリリースパーティlt
by
Kaz Watanabe
PDF
はじめてのSSD,MicroSD,USBメモリ延命方法 in Linux Beginner for Linux long-lifetime in USB...
by
Netwalker lab kapper
PDF
openSUSEで最強仮想環境をつくろう - ゲーミングから仮想通貨まで - OSC名古屋2017セミナー資料
by
zgock
Android起動周りのノウハウ
by
chancelab
how to install Dexcs2016 for OpenFOAM
by
Etsuji Nomura
自宅サーバ仮想化
by
anubis_369
How to install Dexcs2015 for OpenFOAM(R)
by
Etsuji Nomura
初心者がOpenIndianaで自宅サーバを作ったよって話
by
Masataka Tsukamoto
20120731 c4 saリリースパーティlt
by
Kaz Watanabe
はじめてのSSD,MicroSD,USBメモリ延命方法 in Linux Beginner for Linux long-lifetime in USB...
by
Netwalker lab kapper
openSUSEで最強仮想環境をつくろう - ゲーミングから仮想通貨まで - OSC名古屋2017セミナー資料
by
zgock
What's hot
PPTX
DEXCS2015のWindows10 PCへのインストール
by
stebee19
PDF
今時のチープなノートPC HP Stream 11でXubuntuを動かす
by
shimadah
PDF
Beginner for install DOSBox-X and PC-98 emulation. 初めてのDOSBox-XインストールとPC-98エ...
by
Netwalker lab kapper
PDF
Xenとzfsで作る家庭内VDIサーバ
by
zgock
PDF
15分で知るVagrant (NSEG 2013-08-24)
by
hiro345
PDF
PHP7を実際に動かしてみた@第96回PHP勉強会 #phpstudy
by
Hikari Fukasawa
PPTX
2016年注目の.netテクノロジー
by
Makoto Nishimura
PDF
NetBSD8.0 on UEFI Bootloader and Windows Tablet #osc18hi
by
Netwalker lab kapper
PDF
How to Install the Dexcs2014 for OpenFOAM(R)
by
Etsuji Nomura
PDF
いまどきのLinuxインストールバトル(新型PC編) OSC2015 Nagoya LT
by
shimadah
PDF
Windows10タブレットに各種Linuxディストリを入れて遊ぼう 2017年度東京Spring版
by
Netwalker lab kapper
ODP
FreeBSD on Mac
by
Yuichiro Naito
PDF
AllwinnerタブレットのOSを作ってみる (途中版)
by
shimadah
PDF
SocketStream入門
by
Kohei Kadowaki
PDF
Windows10タブレットにUbuntu16.04を色々入れてみた 2016年度版 Install Ubuntu16.04 on Windows10 T...
by
Netwalker lab kapper
PDF
Beginner for install US$40 JUNK Intel Macbook in 2020 はじめての4,500円ジャンクIntel Ma...
by
Netwalker lab kapper
PDF
WindowsタブレットでLinux、*BSD改造特集と裏技ハッキング in OSC Online2020 #osc20on Hacking Linux ...
by
Netwalker lab kapper
PDF
ゼロからはじめるKVM超入門
by
VirtualTech Japan Inc.
PDF
はじめてのWubi for Ubuntu 21.04 ドンキ格安 第2世代UMPC NANOTE P8
by
Netwalker lab kapper
PDF
Beginner for install Android applications in Xiaomi MiReader はじめてのXiaomi MiR...
by
Netwalker lab kapper
DEXCS2015のWindows10 PCへのインストール
by
stebee19
今時のチープなノートPC HP Stream 11でXubuntuを動かす
by
shimadah
Beginner for install DOSBox-X and PC-98 emulation. 初めてのDOSBox-XインストールとPC-98エ...
by
Netwalker lab kapper
Xenとzfsで作る家庭内VDIサーバ
by
zgock
15分で知るVagrant (NSEG 2013-08-24)
by
hiro345
PHP7を実際に動かしてみた@第96回PHP勉強会 #phpstudy
by
Hikari Fukasawa
2016年注目の.netテクノロジー
by
Makoto Nishimura
NetBSD8.0 on UEFI Bootloader and Windows Tablet #osc18hi
by
Netwalker lab kapper
How to Install the Dexcs2014 for OpenFOAM(R)
by
Etsuji Nomura
いまどきのLinuxインストールバトル(新型PC編) OSC2015 Nagoya LT
by
shimadah
Windows10タブレットに各種Linuxディストリを入れて遊ぼう 2017年度東京Spring版
by
Netwalker lab kapper
FreeBSD on Mac
by
Yuichiro Naito
AllwinnerタブレットのOSを作ってみる (途中版)
by
shimadah
SocketStream入門
by
Kohei Kadowaki
Windows10タブレットにUbuntu16.04を色々入れてみた 2016年度版 Install Ubuntu16.04 on Windows10 T...
by
Netwalker lab kapper
Beginner for install US$40 JUNK Intel Macbook in 2020 はじめての4,500円ジャンクIntel Ma...
by
Netwalker lab kapper
WindowsタブレットでLinux、*BSD改造特集と裏技ハッキング in OSC Online2020 #osc20on Hacking Linux ...
by
Netwalker lab kapper
ゼロからはじめるKVM超入門
by
VirtualTech Japan Inc.
はじめてのWubi for Ubuntu 21.04 ドンキ格安 第2世代UMPC NANOTE P8
by
Netwalker lab kapper
Beginner for install Android applications in Xiaomi MiReader はじめてのXiaomi MiR...
by
Netwalker lab kapper
Viewers also liked
ODP
Scrirty conference20160410
by
Yoshimasa Kawano
PDF
Pcb20140111
by
Yoshimasa Kawano
ODP
20150919 raspistable (bis)
by
Yoshimasa Kawano
ODP
実装機
by
Yoshimasa Kawano
PDF
20160227 de live-scratch
by
Yoshimasa Kawano
PDF
Raspberry Piの便利なインストーラーNOOBSを活用してみよう!
by
Akira Ouchi
PDF
20160218 devsumi
by
Yoshimasa Kawano
Scrirty conference20160410
by
Yoshimasa Kawano
Pcb20140111
by
Yoshimasa Kawano
20150919 raspistable (bis)
by
Yoshimasa Kawano
実装機
by
Yoshimasa Kawano
20160227 de live-scratch
by
Yoshimasa Kawano
Raspberry Piの便利なインストーラーNOOBSを活用してみよう!
by
Akira Ouchi
20160218 devsumi
by
Yoshimasa Kawano
Similar to Squarantine 〜Kuroboxを使ったUSBメモリセキュリティソリューション〜
ODP
0x300
by
geek_alice
PDF
CaitSith 新しいルールベースのカーネル内アクセス制御
by
Toshiharu Harada, Ph.D
PDF
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
by
Developers Summit
PDF
Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
by
Takashi Sogabe
KEY
Androidにおける強制アクセス制御
by
Hiromu Yakura
KEY
SEAndroid -AndroidのアーキテクチャとSE化について-
by
Hiromu Yakura
PPTX
No.2 超初心者向け セキュリティ入門
by
Study Group by SciencePark Corp.
PPTX
CVE-2021-3156 Baron samedit (sudoの脆弱性)
by
Tetsuya Hasegawa
PDF
20031030 「読み込み専用マウントによる改ざん防止Linuxサーバの構築」
by
Toshiharu Harada, Ph.D
PDF
はじめてのUserLAnd。AndroidでUbuntu,Debian ArchLinuxなどをprootで動かそう Beginner for inst...
by
Netwalker lab kapper
PPT
Altanative macro
by
Motohiro KOSAKI
PDF
ランサムウェアをサーバー側から対策する
by
MKT International Inc.
PDF
Abusing Interrupts for Reliable Windows Kernel Exploitation (ja)
by
inaz2
PDF
LC2005 LT
by
Kunio Miyamoto, Ph.D.
PDF
第33回 U-20プログラミング・コンテスト 「USB Lock」
by
kazuhirokazu
ODP
Buffer overflow
by
ionis111
PDF
[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理
by
Yuto Takei
PDF
ただのリンカを書いた話.pdf
by
simotin13 Miyazaki
PPTX
ロボットシステム学2015年第5回
by
Ryuichi Ueda
PDF
2014年12月13日 アカリクITイベント 川原尚人_スライド
by
nkawahara
0x300
by
geek_alice
CaitSith 新しいルールベースのカーネル内アクセス制御
by
Toshiharu Harada, Ph.D
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
by
Developers Summit
Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
by
Takashi Sogabe
Androidにおける強制アクセス制御
by
Hiromu Yakura
SEAndroid -AndroidのアーキテクチャとSE化について-
by
Hiromu Yakura
No.2 超初心者向け セキュリティ入門
by
Study Group by SciencePark Corp.
CVE-2021-3156 Baron samedit (sudoの脆弱性)
by
Tetsuya Hasegawa
20031030 「読み込み専用マウントによる改ざん防止Linuxサーバの構築」
by
Toshiharu Harada, Ph.D
はじめてのUserLAnd。AndroidでUbuntu,Debian ArchLinuxなどをprootで動かそう Beginner for inst...
by
Netwalker lab kapper
Altanative macro
by
Motohiro KOSAKI
ランサムウェアをサーバー側から対策する
by
MKT International Inc.
Abusing Interrupts for Reliable Windows Kernel Exploitation (ja)
by
inaz2
LC2005 LT
by
Kunio Miyamoto, Ph.D.
第33回 U-20プログラミング・コンテスト 「USB Lock」
by
kazuhirokazu
Buffer overflow
by
ionis111
[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理
by
Yuto Takei
ただのリンカを書いた話.pdf
by
simotin13 Miyazaki
ロボットシステム学2015年第5回
by
Ryuichi Ueda
2014年12月13日 アカリクITイベント 川原尚人_スライド
by
nkawahara
More from Yoshimasa Kawano
PDF
「寝ながら作るXojo」ハンズオンテキスト
by
Yoshimasa Kawano
PDF
20181220 pcba3days
by
Yoshimasa Kawano
PDF
20181020 opticalsystem
by
Yoshimasa Kawano
PDF
20181020 iotl tinshenzhen
by
Yoshimasa Kawano
PDF
20180414 shenzen 20180512
by
Yoshimasa Kawano
PDF
C89.360°映像システムをつくる
by
Yoshimasa Kawano
PDF
20171124 startupweekendtokyo
by
Yoshimasa Kawano
PDF
how to five sense with raspberry pi
by
Yoshimasa Kawano
PDF
20170130 r114
by
Yoshimasa Kawano
PDF
20170914 wildlife
by
Yoshimasa Kawano
PDF
De workshop text20150704
by
Yoshimasa Kawano
PDF
Ikuijxit20150701
by
Yoshimasa Kawano
「寝ながら作るXojo」ハンズオンテキスト
by
Yoshimasa Kawano
20181220 pcba3days
by
Yoshimasa Kawano
20181020 opticalsystem
by
Yoshimasa Kawano
20181020 iotl tinshenzhen
by
Yoshimasa Kawano
20180414 shenzen 20180512
by
Yoshimasa Kawano
C89.360°映像システムをつくる
by
Yoshimasa Kawano
20171124 startupweekendtokyo
by
Yoshimasa Kawano
how to five sense with raspberry pi
by
Yoshimasa Kawano
20170130 r114
by
Yoshimasa Kawano
20170914 wildlife
by
Yoshimasa Kawano
De workshop text20150704
by
Yoshimasa Kawano
Ikuijxit20150701
by
Yoshimasa Kawano
Squarantine 〜Kuroboxを使ったUSBメモリセキュリティソリューション〜
1.
Squarantine ~ Kuroboxを使った USBメモリセキュリティソリューション オープンフォース/南部製作所 ● 河野悦昌
2.
話す内容は GPL
3.
自己紹介 ● オープンフォース ● 徳島で(2009年11月現在) ● 月例勉強会 ● 南部製作所 ● 徳島で ● SIで ● 何でも作るよ!
4.
目次
5.
営業の表現、約束 営業の表現、約束 プログラマのコード
6.
USBメモリ感染 ● Autorun.inf ● 2008/3〜
学術機関で大変※1! ● 2009/??〜 医療機関で大変※2! ● 2009/12〜 土木建築業界で(ry ※1 当社比 ※2 当社比 ※(ry
7.
Autorun.inf ● [AutoRun] ● open=RavMon.exe ●
shellopen=嬉蝕(&O) ● shellopenCommand=RavMon.exe ● shellexplore=彿坿砿尖匂(&X) ● shellexploreCommand="RavMon.exe -e" ● ● [AutoRun] ● open=inhm0.exe ● shellopenCommand=inhm0.exe ●
8.
実行ファイル ● -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
9.
USBメモリを使用禁止に? ● cf, ● http://itpro.nikkeibp.co.jp/article/COLUMN/20080313/296190/ ●
「会社でのUSBメモリー使用は禁止が基本,」 代替手段や利用時の選定/運用条件を明確に – 情報漏えいと戦う現場...:ITpro ● しかし・・・ ● 手軽なので使いたいという要望 ● 偉い取引先とのやりとりで他に方法のない場合は? ● 以下の場合は? (使わざるを得ない) – デジカメ接続やiPod – プレゼン用バックアップ
10.
通常は ● USBメモリ検疫マシンを用意 ● ウイルススキャンソフトでチェックしてから
11.
Yet Another? ● もっとがっちり管理できるもの ● 偉い管理者はいるけど、身近に管理者がいない組 織で運用するもの ● たとえば、10人ぐらいのグループとか ● コピー記録 ●
使用USBメモリを登録制に ● ウイルススキャンではなくて
12.
!!そもそも!!(怒 ● MS-DOS時代の老人には ● Autorun.infで自動実行自体がおかしい! ●
間違って .exe ファイルを実行させてしまうのがおかし い! – 拡張子表示しないのがおかしい! – ダブルクリックで実行するのがおかしい! ● このようなことがなければウイルスなんて! ● 実行ファイルを持ち込みしないというルールだけで ● データファイルのBufferOverrunやマクロウイルス以 外は!つまり99%は防げるのだ!
13.
●.exeファイルを禁止にするルールは? ● .exeファイルを禁止して困ること ● ドライバインストーラ ● プログラムインストーラ ● 既に、Gmailは.exeファイル送受信できないように なっているじゃないか ● さらに上位に管理者がいる想定なので ● ドライバ、プログラムインストールはまともな管理者 が対応
14.
ルール ● exeファイルは原則禁止にしてもよくね? ● .scr
.bat .cmd .com .pif も ● .vbs .vbe .js .jse .wsf .wsh も 禁止でよくね? ● ZIPは解凍チェックでいいんじゃね? ● Autorun.infは抹消して ● 使う度に強制フォーマットしてもよくね?
15.
構想 ● USB HUBみたいなの ● を机に1つ ●
実はLinux Box ● LANでつなげる
16.
目標 ● 手軽に使える ● ローカルの場合に比べて使い勝手を落とさない ● 管理者フリーで ● 机6台集めた島に1台 ● 問題があったら危険をよくわかるように ● 実戦型 ● ??? ●
あと10年戦える ● 何と?
17.
阻止目標 ● 組織内で利用しているものと同じ型番のUSBメモリ をこっそり置いてくる ● →組織内メンバーが「誰だよ出しっぱなしにしてる奴は ぶつぶつ」と保管場所に収納 – →誰かが取り出して使用 ● 本来はラベルをつけるだけで防止できるが ● ついうっかりを防止するもの
18.
「戦う」のに必要なものは? ● ネットワークが信頼できない環境で使える ● 必要以上の情報を記録しない ● 更新しなくても確実に動く ● 原理的に強いルール ● 簡単で、わかりやすい仕組み ● 「抜け道」の管理が容易
19.
抜け道 ● 拡張子を変更 ● 対人間用偽装拡張子の場合は完全に防げる ● バッファオーバーフローなどの脆弱性をつくもの ● イメージファイル ● 動画ファイル – BOFはアプリケーションソフトの脆弱性を塞ぐ方向で対処 ● マクロウイルス ● マクロ使わないのがデフォルトで良くね? ● メールボックスファイル ● メールボックスファイルも禁止した方がいいかな?
20.
複数のUSBメモリを識別する ● 新しいUSBメモリは登録しないと使えない ● 登録したUSBメモリごとにルールをつける ● デジカメは? ● メディアチェンジ ●
SDカードリーダは? ● メディアチェンジ ● LUN? ● USB HDDは? ● 複数のパーティション パーティション領域 ごとに管理
21.
これを使うにあたって 併用すべきもの ● Windows Update ● 監視ツール ●
Windows側でUSBストレージを使えなくする ● レジストリを変更 ● その他 ● アップデート ● 監視 ● 拡張子を常に表示 ● 隠しファイルを常に表示
22.
プログラマのコード 営業の表現、約束 プログラマのコード
23.
KUROBOX ● Debian Lennyをインストール ● 簡単! ● 基本的な設定をしておく ● 固定アドレスにして –
Vim /etc/network/networking ● LOCALE設定 – dpkg-reconfigure locales ● TIMEZONE設定 – dpkg-reconfigure tzdata
24.
USB管理 ● UDEVをほげほげすればいいかな? ● udevinfo
-p /sys/class/scsi_disk -a ● usbmountパッケージをほげほげかな? ● UUIDでほげほげかな? ● 取得コマンド vol_id ● /dev/disk/by-uuid/
25.
[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
26.
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を直接触ってもうまく動いた(ように見えた)の で、今回は使わなかった
27.
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);
28.
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
29.
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回呼び出されていた
30.
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 ・ ・ ・
31.
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
32.
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"
33.
取り外しをフックするためには? ● トリガのかけかたが不明 ● とりあえず全部有りにすると・・・ ● 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"
34.
取り外しをフックするためには? ● このように調整して ● 結局この値を取得する事にした ● 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"
35.
ユーザプログラムでは ● 使えそうな環境変数 ● 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 ●
36.
ユーザプログラムでは ● 処理に時間がかかってはいけない ● フォーマットなどは時間がかかる。 ● どうする? – usbadd → usbadd2
& – usbremove → usbremove2 & ● できた!
37.
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)に
38.
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"); ● ● できた!
39.
DBとの連携 ● MySQLをインストール ● テーブル
media 作成 ● プラグしたらmediaを検索し、登録していなかったら 未登録画面が出る ● id int(11) auto_increment | ● id_serial text ● nickname text ● memo text ● flags int(11) できた!
40.
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 信頼済(管理者のみ利用)
41.
強制フォーマット ● 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");
42.
強制削除処理 ● 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 ){ ・ ・ ・
43.
マニュアル削除処理 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で削除実行ページを作成 ● 終了すれば自動マウント できた!
44.
マニュアルフォーマット処理 ● 問い合わせ画面→フォーマット→マウント できた! 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>";
45.
オペレーションレスリムーブ ● 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
46.
オペレーションレスリムーブ ● 取り外したら自動でアンマウント ● できた! ・ ・ ・ ##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; ・ ・ ・
47.
アクセス記録 ● sambaのログをそのまま見る ● chmod
755 /var/log/samba ● ln -s /var/log/samba /var/squarantine/www/sambalog ● 将来はもうちょっと改善を…
48.
オマケ ● Attention共有 (readonly) ● クライアント初期設定用ファイルを置いておく –
スクリプトファイル ● ローカルでのUSBメモリアクセス禁止 – レジストリファイル ● 自動アップデート ● ショートカットを配置 – Squarantine へのショートカット – クライアントのデスクトップに置いておく
49.
将来の課題 ● KuroBox は大きいなあ ●
Beagleboardあたり ● 隔離機能は? ● CDとかDVDとかは? ● ウイルススキャンエンジンは?
50.
参考資料 ● 会社でのUSBメモリー使用は禁止が基本, ● 代替手段や利用時の選定/運用条件を明確に
– 情報漏 えいと戦う現場...:ITpro ● http://itpro.nikkeibp.co.jp/article/COLUMN/2008031 3/296190/ ● 「USB メモリを安易にパソコンに接続しないように! 」 ● — USB メモリなどの外部記憶媒体からウイルス感染し ないために!! — ● http://www.ipa.go.jp/security/txt/2007/07outline.html
Download