toto_1212

技術のログをツラツラ書きます。自分用ですが参考にしていただけたら嬉しいです。間違ってたらドンドン突っ込んでください。

【勉強会】第19回八子クラウド座談会

久しぶりの勉強会の参加です。
八子クラは2回目の参加で、今回も非常に勉強になる内容でした。

www.zusaar.com

内容が多すぎて纏めるのに時間がかかるので3日位かけて書いていこうと思います。

まずはイントロダクションから。

座談会の趣旨説明/「デジタライゼーション時代の勝ち組モデル」
シスココンサルティングサービス 八子知礼 さん

www.slideshare.net

Degitize

手段、手段の対象がデジタル化されただけ。
 ・レコード → iTunes
 ・インターネット上で様々なコミュニケーションが取れる
 ・ネットでEコマース

Digitalize

全てをデジタル化していく、全てをデジタルの上で完結する考え方。

同じデジタル化と訳されることがあるが、全く異なった物である。

人の存在自体がデジタル化されていく概念を総じてデジタライゼーション

グローバルでの勝ち組企業

 ・アマゾン(EC世界最大)
  →本屋であるが本屋を持ってない。(現実に世界ではシアトルに1店舗)
 ・UBER(個人の車をタクシーとして使う)
 ・Spotfy Pandora(コンテンツを定額で配る仕組み)
 ・Square(専用決済端末不要な決済ビジネス)
 ・Google/facebook(広告ビジネス)
 ・TESLA(PCバッテリセルの並列で車を走らす。車はでっかいスマホ。)
 ・airbnb(個人の部屋をホテルとして貸し出す)

グローバル企業達が共通している事

物理的なアセットを持っていない。その領域のプレイヤーを駆逐させるビジネスモデルを持っている。
完全にデジタルで完結している。
airbnbはホテルの部屋は持ってない。UBERもタクシーを持ってない。
ビジネスモデル全体のデジタル化。

これらビジネスモデルを読み解くとCloud Exchangeモデルに行き着く。

Cloud Exchangeとは

需要家のニーズ
 ・どのような物が欲しいのか?
 ・マスカスタマイゼーション(一人一人に応じた物作り)
 ・スピード、リアルタイムにも応じる

これら今までもITで補足していたが、十分とは言えなかった。

供給家の状況
 ・稼働状況がリアルタイムに計れていなかった。
 ・最近センサーやネットワークの発達により把握できるようになり稼働状況を
  くみ上げる事が出来た。
 ・それをクラウド上でマッチッングする。
 ・欲しい時にすぐに供給することが出来るようになった。

これら仕組みが勝ち組企業のビジネスモデルの本質である。

需要家ニーズはITの世界。供給家はIoTによって情報を収集するOT(オペレーショナル
テクノロジ)
これをどうやってマッチングさせていくかがフォーカスポイント。
これらうまくやっているプレイヤーが大きくなっている。

日本でうまくやっているのはraksulという印刷会社(輪転機を所有してない)
DNP、凸版、共同印刷が日本の3大印刷会社でその配下に中小30,000ほどの
印刷会社がある。
その30,000社のリアルタイムの稼働状況、得意分野をすぐさま把握してクラウド上で
マッチングする。
細かい色指定や部数指定をしてもそれらに見合った技術をもつ会社から届けてくれる。
米国だけのモデルではない。40億の調達にも成功し、恐らく数年後に数百億の会社に
成ると思われる。
日本で4番目の印刷会社になるのでは…

デジタライズされていく社会でデータが非常に重要な意味を持つ。
BMWは1時間に1TBのデータを出し続ける
シンガポール政府も同様に数TB出し続ける。
・1日25,000便飛ぶ飛行機は合計で数ペタバイト
グローバルでは毎日2エクサバイトのデータが生成されているが5%しか使われてない。

今まではアナログでデータがどれだけあるか分からない。
デジタルの世界はたくさんデータがあるのに使えていない。効率が悪い。

データ集めれば集めるほどシュミレーションが出来る。

Digital Twinという考え方

 リアルな生産工場、物流工場でオペレーションされている実態を完全にデジタルの
 世界に構築する
 様々なデータも吸い上げシュミレーションする。
 リアルの世界とデジタルの世界のTwin(双子)
 最大のメリットは収集したデータのシュミレーション。
 シュミレーションは現場だけでなく、マネジメントや意思決定に重要な効果をもたらす。
 変化が起こった際の次の動作が予測可能。
 

デジタライゼーションがもたらすもの

・データ中心の経済活動が行われる。データに対して通貨と同じ意味をもたらす。
・予測可能な世界
・シュミレーションをする事によって、価値のある物だけを消費(持つ必要ない)
・ネットとリアルの境目が無い(ノンボーダー)

Ciscoジョン・チェンバースより

全ての企業がデジタライゼーションというものにデジタル化を迫られている。
ビジネスモデル全体をITを活用して今までに無かったビジネスモデルを作る事。
これに取り組む、取り組まなくても大企業のうちの40%が10年で姿を消す事になる。

言いたかった事は、デジタライゼーションは難易度の高いこと。もしやるとすれば
真剣に舵きりしないとシュミレーター環境は口で言うほど簡単な物ではない。

第一部 インプット は、また次に書きます。

【Update】New Relicで監視

2年以上前にNew Relicで監視という記事を書きましたが、UIが大幅に変更になっているのとDockerコンテナを監視できる機能が追加されているので情報を更新します。

アカウントは作成済みとします。

1. 上部もしくは中央の「SERVERS」をクリックする

f:id:toatoshi:20151007105712j:plain

2. プラットフォームを選択する

※今回はCentOS7にて実施
f:id:toatoshi:20151007105801j:plain

3. ページ下部に進むと導入方法が表示されるので対象サーバ上で実施する

f:id:toatoshi:20151007105834j:plain

3-1. リポジトリ導入

$ rpm -Uvh http://download.newrelic.com/pub/newrelic/el5/i386/newrelic-repo-5-3.noarch.rpm
Retrieving http://download.newrelic.com/pub/newrelic/el5/i386/newrelic-repo-5-3.noarch.rpm
warning: /var/tmp/rpm-tmp.LemJ0K: Header V3 DSA/SHA1 Signature, key ID 548c16bf: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:newrelic-repo-5-3                ################################# [100%]

3-2. newrelic-sysmondパッケージ導入

$ yum install newrelic-sysmond
Loaded plugins: fastestmirror
base                                                                                                                                                       | 3.6 kB  00:00:00
extras                                                                                                                                                     | 3.4 kB  00:00:00
newrelic                                                                                                                                                   |  951 B  00:00:00
openlogic                                                                                                                                                  | 1.3 kB  00:00:00
updates                                                                                                                                                    | 3.4 kB  00:00:00
newrelic/x86_64/primary                                                                                                                                    |  10 kB  00:00:01
Loading mirror speeds from cached hostfile
newrelic                                                                                                                                                                    85/85
Resolving Dependencies
--> Running transaction check
---> Package newrelic-sysmond.x86_64 0:2.2.0.125-1 will be installed
--> Finished Dependency Resolution

Resolving Dependencies
--> Running transaction check
---> Package newrelic-sysmond.x86_64 0:2.2.0.125-1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

==================================================================================================================================================================================
 Package                                         Arch                                  Version                                      Repository                               Size
==================================================================================================================================================================================
Installing:
 newrelic-sysmond                                x86_64                                2.2.0.125-1                                  newrelic                                1.9 M

Transaction Summary
==================================================================================================================================================================================
Install  1 Package


Total download size: 1.9 M
Installed size: 4.6 M
Is this ok [y/d/N]: y
Downloading packages:
warning: /var/cache/yum/x86_64/7/newrelic/packages/newrelic-sysmond-2.2.0.125-1.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 548c16bf: NOKEY] 158 kB/s | 1.9 MB  00:00:00 ETA
Public key for newrelic-sysmond-2.2.0.125-1.x86_64.rpm is not installed
newrelic-sysmond-2.2.0.125-1.x86_64.rpm                                                                                                                    | 1.9 MB  00:00:12
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-NewRelic
Importing GPG key 0x548C16BF:
 Userid     : "New Relic <support@newrelic.com>"
 Fingerprint: b60a 3ec9 bc01 3b9c 2379 0ec8 b31b 29e5 548c 16bf
 Package    : newrelic-repo-5-3.noarch (installed)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-NewRelic
Is this ok [y/N]: y
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
  Installing : newrelic-sysmond-2.2.0.125-1.x86_64                                                                                                                            1/1
  Verifying  : newrelic-sysmond-2.2.0.125-1.x86_64                                                                                                                            1/1

Installed:
  newrelic-sysmond.x86_64 0:2.2.0.125-1

Complete!
4. ライセンスキー導入

右上部のアカウントをクリックし、「Account settings」をクリックする。
f:id:toatoshi:20151007110006j:plain
f:id:toatoshi:20151007110026j:plain

表示されたページの右に「License key」が表示されているので文字列を控える。

表示された文字列を入れてコマンド実行
nrsysmond-config --set license_key=****************************************
※ *******はLicense keyの文字列
5. newrelic-sysmond サービスを起動する
$ systemctl start newrelic-sysmond

RHEL6以下だと、、、
/etc/init.d/newrelic-sysmond start
監視画面

SERVERSをクリックし、対象サーバのホスト名をクリックする。
f:id:toatoshi:20151007110355j:plain

Overview
f:id:toatoshi:20151007110424j:plain

Processes
f:id:toatoshi:20151007110438j:plain

Network
f:id:toatoshi:20151007110452j:plain

Disks
f:id:toatoshi:20151007110507j:plain

Dockerコンテナ監視手順

手順は「Enabling New Relic Servers for Docker」に載っています。
※Dockerコンテナ上のOSには何もする必要はありません。

1.Install and configure Docker

2.Install New Relic Servers for Linux on your Docker server, NOT on your Docker container.

3.If a docker group doesn't already exist, create a new group named docker:

groupadd -r docker

4.Add the newrelic user to the docker group with a command similar to:

usermod -a -G docker newrelic

5.Restart Docker.

6.Restart the New Relic Servers for Linux agent.

New Relic Agentが導入されている環境にDocker監視用の設定を入れても監視できました。
ただ、ページ下部にも書いてあるように古いLinuxに関しては、/etc/newrelic/nrsysmond.cfgに
cgroup_root="/sys/fs/cgroup"を入れないと監視されないようです。

既に運用しているDocker環境がある場合は、Dockerサービスの再起動を伴いますので注意が必要です。

RHEL7(CentOS7)の新コマンド

2014年6月にRHEL7が登場し、7.1がリリースされてからもう半年が過ぎます。
今まで利用に迫られないことから書籍を読むに留めていたのですが、そろそろ時期的にも
必要になってくることと、少し時間ができたので新アーキテクチャのコマンドをざざっと列挙してみようかと。
今更感ありますが、自分のメモとして残しておくことにします。

環境はAzure上でCentOS Linux release 7.1.1503 (Core)にて動かしています。

サービス系(systemctl)

サービスの起動
$ systemctl start httpd
サービスの停止
$ systemctl stop httpd
状態確認
$ systemctl status httpd

【停止時】
httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled)
   Active: inactive (dead)

Oct 05 07:19:17 centos7 systemd[1]: Starting The Apache HTTP Server...
Oct 05 07:19:17 centos7 httpd[2425]: AH00558: httpd: Could not reliably det...ge
Oct 05 07:19:18 centos7 systemd[1]: Started The Apache HTTP Server.
Oct 05 07:22:31 centos7 systemd[1]: Started The Apache HTTP Server.
Oct 05 07:23:20 centos7 systemd[1]: Started The Apache HTTP Server.
Oct 05 07:23:34 centos7 systemd[1]: Stopping The Apache HTTP Server...
Oct 05 07:23:35 centos7 systemd[1]: Stopped The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.

【起動時】
httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled)
   Active: active (running) since Mon 2015-10-05 07:24:12 UTC; 6s ago
 Main PID: 2445 (httpd)
   Status: "Processing requests..."
   CGroup: /system.slice/httpd.service
           tq2445 /usr/sbin/httpd -DFOREGROUND
           tq2446 /usr/sbin/httpd -DFOREGROUND
           tq2447 /usr/sbin/httpd -DFOREGROUND
           tq2448 /usr/sbin/httpd -DFOREGROUND
           tq2449 /usr/sbin/httpd -DFOREGROUND
           mq2450 /usr/sbin/httpd -DFOREGROUND

Oct 05 07:24:11 centos7 systemd[1]: Starting The Apache HTTP Server...
Oct 05 07:24:12 centos7 httpd[2445]: AH00558: httpd: Could not reliably det...ge
Oct 05 07:24:12 centos7 systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.
サービスの再起動
$ systemctl restart httpd
設定反映
$ systemctl reload httpd
自動起動の有効
$ systemctl enable httpd
ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multi-user.target.wants/httpd.service'
自動起動の停止
$ systemctl disable httpd
rm '/etc/systemd/system/multi-user.target.wants/httpd.service'
自動起動の状態確認
$ systemctl is-enabled httpd

【有効時】
enabled

【無効時】
disabled
強制終了
  • sオプション付けなければ TREM (15)で終了します。
$ systemctl kill -s 9 httpd
$ systemctl status httpd
httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled)
   Active: failed (Result: exit-code) since Mon 2015-10-05 07:26:40 UTC; 13s ago
  Process: 2498 ExecStop=/bin/kill -WINCH ${MAINPID} (code=exited, status=1/FAILURE)
 Main PID: 2459 (code=killed, signal=KILL)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"

Oct 05 07:24:44 centos7 systemd[1]: Starting The Apache HTTP Server...
Oct 05 07:24:44 centos7 httpd[2459]: AH00558: httpd: Could not reliably det...ge
Oct 05 07:24:44 centos7 systemd[1]: Started The Apache HTTP Server.
Oct 05 07:24:49 centos7 systemd[1]: Reloading The Apache HTTP Server.
Oct 05 07:24:49 centos7 httpd[2467]: AH00558: httpd: Could not reliably det...ge
Oct 05 07:24:49 centos7 systemd[1]: Reloaded The Apache HTTP Server.
Oct 05 07:26:39 centos7 systemd[1]: httpd.service: main process exited, cod...LL
Oct 05 07:26:40 centos7 kill[2498]: kill: cannot find process ""
Oct 05 07:26:40 centos7 systemd[1]: httpd.service: control process exited, ...=1
Oct 05 07:26:40 centos7 systemd[1]: Unit httpd.service entered failed state.
Hint: Some lines were ellipsized, use -l to show in full.

ログ確認系(journalctl)

サービスログの確認
$ journalctl -u httpd

 -- Logs begin at Mon 2015-10-05 06:41:58 UTC, end at Mon 2015-10-05 08:06:20 UTC
Oct 05 07:19:17 centos7 systemd[1]: Starting The Apache HTTP Server...
Oct 05 07:19:17 centos7 httpd[2425]: AH00558: httpd: Could not reliably determin
Oct 05 07:19:18 centos7 systemd[1]: Started The Apache HTTP Server.
Oct 05 07:22:31 centos7 systemd[1]: Started The Apache HTTP Server.
Oct 05 07:23:20 centos7 systemd[1]: Started The Apache HTTP Server.
Oct 05 07:23:34 centos7 systemd[1]: Stopping The Apache HTTP Server...
Oct 05 07:23:35 centos7 systemd[1]: Stopped The Apache HTTP Server.
Oct 05 07:24:11 centos7 systemd[1]: Starting The Apache HTTP Server...
Oct 05 07:24:12 centos7 httpd[2445]: AH00558: httpd: Could not reliably determin
Oct 05 07:24:12 centos7 systemd[1]: Started The Apache HTTP Server.
末尾を最新状態で出力し続ける(tail -f)
$ journalctl -f httpd
 -- Logs begin at Mon 2015-10-05 06:41:58 UTC. --
Oct 05 07:32:39 centos7 systemd[1]: httpd.service: control process exited, ...=1
Oct 05 07:32:39 centos7 systemd[1]: Unit httpd.service entered failed state.
Oct 05 07:32:56 centos7 systemd[1]: Starting The Apache HTTP Server...
Oct 05 07:32:56 centos7 httpd[11182]: AH00558: httpd: Could not reliably de...ge
Oct 05 07:32:56 centos7 systemd[1]: Started The Apache HTTP Server.
Oct 05 07:33:05 centos7 systemd[1]: Stopping The Apache HTTP Server..
末尾から件数を指定して表示する(以下は10件)
$ journalctl -n 10
 -- Logs begin at Mon 2015-10-05 06:41:58 UTC, end at Mon 2015-10-05 08:08:01 UTC
Oct 05 08:06:13 centos7 systemd[1]: Starting Session 5 of user azureuser.
Oct 05 08:06:13 centos7 systemd[1]: Started Session 5 of user azureuser.
Oct 05 08:06:13 centos7 systemd-logind[570]: New session 5 of user azureuser.
Oct 05 08:06:13 centos7 sshd[11236]: pam_unix(sshd:session): session opened for
Oct 05 08:06:20 centos7 sudo[11264]: azureuser : TTY=pts/0 ; PWD=/home/azureuser
Oct 05 08:06:20 centos7 su[11268]: (to root) azureuser on pts/0
Oct 05 08:06:20 centos7 su[11268]: pam_unix(su-l:session): session opened for us
Oct 05 08:08:01 centos7 anacron[2296]: Job `cron.monthly' started
Oct 05 08:08:01 centos7 anacron[2296]: Job `cron.monthly' terminated
Oct 05 08:08:01 centos7 anacron[2296]: Normal exit (3 jobs run)
lines 1-11/11 (END)
末尾から1000件表示する
$ journalctl -e
Oct 05 06:42:48 centos7 NetworkManager[559]:   (eth0): device state change
Oct 05 06:42:48 centos7 NetworkManager[559]:   NetworkManager state is now
Oct 05 06:42:48 centos7 NetworkManager[559]:   (eth0): Activation: Stage 2
Oct 05 06:42:48 centos7 NetworkManager[559]:   (eth0): Activation: Stage 1
Oct 05 06:42:48 centos7 NetworkManager[559]:   (eth0): Activation: Stage 2
Oct 05 06:42:48 centos7 NetworkManager[559]:   (eth0): device state change
lines 678-700/1001 72%
カーネルのリングバッファの内容を出力(dmesg)
$ journalctl -k
 -- Logs begin at Mon 2015-10-05 06:41:58 UTC, end at Mon 2015-10-05 08:08:01 UTC
Oct 05 06:41:58 localhost.localdomain kernel: Initializing cgroup subsys cpuset
Oct 05 06:41:58 localhost.localdomain kernel: Initializing cgroup subsys cpu
Oct 05 06:41:58 localhost.localdomain kernel: Initializing cgroup subsys cpuacct
Oct 05 06:41:58 localhost.localdomain kernel: Linux version 3.10.0-229.7.2.el7.x
Oct 05 06:41:58 localhost.localdomain kernel: Command line: BOOT_IMAGE=/boot/vml
Oct 05 06:41:58 localhost.localdomain kernel: e820: BIOS-provided physical RAM m
Oct 05 06:41:58 localhost.localdomain kernel: BIOS-e820: [mem 0x0000000000000000
Oct 05 06:41:58 localhost.localdomain kernel: BIOS-e820: [mem 0x000000000009fc00
Oct 05 06:41:58 localhost.localdomain kernel: BIOS-e820: [mem 0x00000000000e0000
Oct 05 06:41:58 localhost.localdomain kernel: BIOS-e820: [mem 0x0000000000100000
Oct 05 06:41:58 localhost.localdomain kernel: BIOS-e820: [mem 0x000000001fff0000
Oct 05 06:41:58 localhost.localdomain kernel: BIOS-e820: [mem 0x000000001ffff000
Oct 05 06:41:58 localhost.localdomain kernel: BIOS-e820: [mem 0x0000000100000000
Oct 05 06:41:58 localhost.localdomain kernel: bootconsole [earlyser0] enabled
ブートログの出力
$ journalctl -b
 -- Logs begin at Mon 2015-10-05 06:41:58 UTC, end at Mon 2015-10-05 08:29:49 UTC
Oct 05 06:41:58 localhost.localdomain systemd-journal[208]: Runtime journal is u
Oct 05 06:41:58 localhost.localdomain systemd-journal[208]: Runtime journal is u
Oct 05 06:41:58 localhost.localdomain kernel: Initializing cgroup subsys cpuset
Oct 05 06:41:58 localhost.localdomain kernel: Initializing cgroup subsys cpu
Oct 05 06:41:58 localhost.localdomain kernel: Initializing cgroup subsys cpuacct
Oct 05 06:41:58 localhost.localdomain kernel: Linux version 3.10.0-229.7.2.el7.x
Oct 05 06:41:58 localhost.localdomain kernel: Command line: BOOT_IMAGE=/boot/vml
Oct 05 06:41:58 localhost.localdomain kernel: e820: BIOS-provided physical RAM m
Oct 05 06:41:58 localhost.localdomain kernel: BIOS-e820: [mem 0x0000000000000000
Oct 05 06:41:58 localhost.localdomain kernel: BIOS-e820: [mem 0x000000000009fc00
Oct 05 06:41:58 localhost.localdomain kernel: BIOS-e820: [mem 0x00000000000e0000
Oct 05 06:41:58 localhost.localdomain kernel: BIOS-e820: [mem 0x0000000000100000
Oct 05 06:41:58 localhost.localdomain kernel: BIOS-e820: [mem 0x000000001fff0000
Oct 05 06:41:58 localhost.localdomain kernel: BIOS-e820: [mem 0x000000001ffff000
Oct 05 06:41:58 localhost.localdomain kernel: BIOS-e820: [mem 0x0000000100000000
Oct 05 06:41:58 localhost.localdomain kernel: bootconsole [earlyser0] enabled
Oct 05 06:41:58 localhost.localdomain kernel: NX (Execute Disable) protection: a
Oct 05 06:41:58 localhost.localdomain kernel: SMBIOS 2.3 present.
過去のブートログを出力(以下1回前のブートログ)
$ [root@centos7 ~]# journalctl -b 1
 -- Logs begin at Mon 2015-10-05 10:12:42 UTC, end at Mon 2015-10-05 08:37:20 UTC
Oct 05 10:12:42 localhost.localdomain systemd-journal[208]: Runtime journal is u
Oct 05 10:12:42 localhost.localdomain systemd-journal[208]: Runtime journal is u
Oct 05 10:12:42 localhost.localdomain kernel: Initializing cgroup subsys cpuset
Oct 05 10:12:42 localhost.localdomain kernel: Initializing cgroup subsys cpu
Oct 05 10:12:42 localhost.localdomain kernel: Initializing cgroup subsys cpuacct
Oct 05 10:12:42 localhost.localdomain kernel: Linux version 3.10.0-229.7.2.el7.x
Oct 05 10:12:42 localhost.localdomain kernel: Command line: BOOT_IMAGE=/boot/vml
Oct 05 10:12:42 localhost.localdomain kernel: e820: BIOS-provided physical RAM m
Oct 05 10:12:42 localhost.localdomain kernel: BIOS-e820: [mem 0x0000000000000000
Oct 05 10:12:42 localhost.localdomain kernel: BIOS-e820: [mem 0x000000000009fc00
Oct 05 10:12:42 localhost.localdomain kernel: BIOS-e820: [mem 0x00000000000e0000
Oct 05 10:12:42 localhost.localdomain kernel: BIOS-e820: [mem 0x0000000000100000
Oct 05 10:12:42 localhost.localdomain kernel: BIOS-e820: [mem 0x000000001fff0000
Oct 05 10:12:42 localhost.localdomain kernel: BIOS-e820: [mem 0x000000001ffff000
Oct 05 10:12:42 localhost.localdomain kernel: BIOS-e820: [mem 0x0000000100000000
Oct 05 10:12:42 localhost.localdomain kernel: bootconsole [earlyser0] enabled
Oct 05 10:12:42 localhost.localdomain kernel: NX (Execute Disable) protection: a
Oct 05 10:12:42 localhost.localdomain kernel: SMBIOS 2.3 present.
ユニット(*1)を指定してログ出力(以下はsshdのログを出力)
$ journalctl -u sshd.service
 -- Logs begin at Mon 2015-10-05 10:12:42 UTC, end at Mon 2015-10-05 08:37:20 UTC
Oct 05 08:33:12 centos7 systemd[1]: Starting OpenSSH server daemon...
Oct 05 08:33:12 centos7 systemd[1]: Started OpenSSH server daemon.
Oct 05 08:33:12 centos7 sshd[833]: Server listening on 0.0.0.0 port 22.
Oct 05 08:33:12 centos7 sshd[833]: Server listening on :: port 22.
Oct 05 08:37:05 centos7 sshd[2004]: Accepted password for azureuser from 221.249
lines 1-6/6 (END)

(*1)ユニットリストは"systemctl"で取得する。
出力フォーマット変更
【デフォルト】
$ journalctl -o short
 -- Logs begin at Mon 2015-10-05 10:12:42 UTC, end at Mon 2015-10-05 08:44:09 UTC
Oct 05 10:12:42 localhost.localdomain systemd-journal[208]: Runtime journal is u
Oct 05 10:12:42 localhost.localdomain systemd-journal[208]: Runtime journal is u
Oct 05 10:12:42 localhost.localdomain kernel: Initializing cgroup subsys cpuset
Oct 05 10:12:42 localhost.localdomain kernel: Initializing cgroup subsys cpu
Oct 05 10:12:42 localhost.localdomain kernel: Initializing cgroup subsys cpuacct
Oct 05 10:12:42 localhost.localdomain kernel: Linux version 3.10.0-229.7.2.el7.x
Oct 05 10:12:42 localhost.localdomain kernel: Command line: BOOT_IMAGE=/boot/vml
Oct 05 10:12:42 localhost.localdomain kernel: e820: BIOS-provided physical RAM m
Oct 05 10:12:42 localhost.localdomain kernel: BIOS-e820: [mem 0x0000000000000000
Oct 05 10:12:42 localhost.localdomain kernel: BIOS-e820: [mem 0x000000000009fc00

【タイムスタンプを経過時刻とする】
$ journalctl -o short-monotonic
 -- Logs begin at Mon 2015-10-05 10:12:42 UTC, end at Mon 2015-10-05 08:44:09 UTC
[    1.783039] localhost.localdomain systemd-journal[208]: Runtime journal is us
[    1.783288] localhost.localdomain systemd-journal[208]: Runtime journal is us
[    0.000000] localhost.localdomain kernel: Initializing cgroup subsys cpuset
[    0.000000] localhost.localdomain kernel: Initializing cgroup subsys cpu
[    0.000000] localhost.localdomain kernel: Initializing cgroup subsys cpuacct
[    0.000000] localhost.localdomain kernel: Linux version 3.10.0-229.7.2.el7.x8
[    0.000000] localhost.localdomain kernel: Command line: BOOT_IMAGE=/boot/vmli
[    0.000000] localhost.localdomain kernel: e820: BIOS-provided physical RAM ma
[    0.000000] localhost.localdomain kernel: BIOS-e820: [mem 0x0000000000000000-
[    0.000000] localhost.localdomain kernel: BIOS-e820: [mem 0x000000000009fc00-

【テキスト形式で出力】
$ journalctl -o export
__CURSOR=s=8ca7e67e1d6c4e148686f88f496d5da7;i=1;b=f427c00d42214ff48a82c1a1d3f038
__REALTIME_TIMESTAMP=1444039962755773
__MONOTONIC_TIMESTAMP=1783039
_BOOT_ID=f427c00d42214ff48a82c1a1d3f0387d
PRIORITY=6
_TRANSPORT=driver
MESSAGE=Runtime journal is using 4.1M (max 33.5M, leaving 50.2M of free 330.9M,
MESSAGE_ID=ec387f577b844b8fa948f33cad9a75e6

【詳細ログの表示】
$ journalctl -o verbose
 -- Logs begin at Mon 2015-10-05 10:12:42 UTC, end at Mon 2015-10-05 08:49:14 UTC
Mon 2015-10-05 10:12:42.755773 UTC [s=8ca7e67e1d6c4e148686f88f496d5da7;i=1;b=f42
    PRIORITY=6
    _TRANSPORT=driver
    MESSAGE=Runtime journal is using 4.1M (max 33.5M, leaving 50.2M of free 330.
    MESSAGE_ID=ec387f577b844b8fa948f33cad9a75e6
    _PID=208
    _UID=0
    _GID=0
    _COMM=systemd-journal
    _EXE=/usr/lib/systemd/systemd-journald
    _CMDLINE=/usr/lib/systemd/systemd-journald

【JSON形式】
$ journalctl -o json
{ "__CURSOR" : "s=8ca7e67e1d6c4e148686f88f496d5da7;i=1;b=f427c00d42214ff48a82c1a
{ "__CURSOR" : "s=8ca7e67e1d6c4e148686f88f496d5da7;i=2;b=f427c00d42214ff48a82c1a
{ "__CURSOR" : "s=8ca7e67e1d6c4e148686f88f496d5da7;i=3;b=f427c00d42214ff48a82c1a
{ "__CURSOR" : "s=8ca7e67e1d6c4e148686f88f496d5da7;i=4;b=f427c00d42214ff48a82c1a
{ "__CURSOR" : "s=8ca7e67e1d6c4e148686f88f496d5da7;i=5;b=f427c00d42214ff48a82c1a
{ "__CURSOR" : "s=8ca7e67e1d6c4e148686f88f496d5da7;i=6;b=f427c00d42214ff48a82c1a
{ "__CURSOR" : "s=8ca7e67e1d6c4e148686f88f496d5da7;i=7;b=f427c00d42214ff48a82c1a
{ "__CURSOR" : "s=8ca7e67e1d6c4e148686f88f496d5da7;i=8;b=f427c00d42214ff48a82c1a
{ "__CURSOR" : "s=8ca7e67e1d6c4e148686f88f496d5da7;i=9;b=f427c00d42214ff48a82c1a

【JSON形式を見やすく整形】
$ journalctl -o json-pretty
{
        "__CURSOR" : "s=8ca7e67e1d6c4e148686f88f496d5da7;i=1;b=f427c00d42214ff48
        "__REALTIME_TIMESTAMP" : "1444039962755773",
        "__MONOTONIC_TIMESTAMP" : "1783039",
        "_BOOT_ID" : "f427c00d42214ff48a82c1a1d3f0387d",
        "PRIORITY" : "6",
        "_TRANSPORT" : "driver",
        "MESSAGE" : "Runtime journal is using 4.1M (max 33.5M, leaving 50.2M of
        "MESSAGE_ID" : "ec387f577b844b8fa948f33cad9a75e6",
        "_PID" : "208",
        "_UID" : "0",
        "_GID" : "0",
        "_COMM" : "systemd-journal",
        "_EXE" : "/usr/lib/systemd/systemd-journald",
        "_CMDLINE" : "/usr/lib/systemd/systemd-journald",
        "_CAP_EFFECTIVE" : "4402800cf",
        "_SYSTEMD_CGROUP" : "/system.slice/systemd-journald.service",
        "_SYSTEMD_UNIT" : "systemd-journald.service",
        "_SYSTEMD_SLICE" : "system.slice",
        "_SELINUX_CONTEXT" : "kernel",

【Server-Sent Events用のフォーマット】
$ journalctl -o json-sse
data: { "__CURSOR" : "s=8ca7e67e1d6c4e148686f88f496d5da7;i=1;b=f427c00d42214ff48

data: { "__CURSOR" : "s=8ca7e67e1d6c4e148686f88f496d5da7;i=2;b=f427c00d42214ff48

data: { "__CURSOR" : "s=8ca7e67e1d6c4e148686f88f496d5da7;i=3;b=f427c00d42214ff48

data: { "__CURSOR" : "s=8ca7e67e1d6c4e148686f88f496d5da7;i=4;b=f427c00d42214ff48

data: { "__CURSOR" : "s=8ca7e67e1d6c4e148686f88f496d5da7;i=5;b=f427c00d42214ff48

data: { "__CURSOR" : "s=8ca7e67e1d6c4e148686f88f496d5da7;i=6;b=f427c00d42214ff48

data: { "__CURSOR" : "s=8ca7e67e1d6c4e148686f88f496d5da7;i=7;b=f427c00d42214ff48
出力順序を新しい順に出力
$ journalctl -r
 -- Logs begin at Mon 2015-10-05 10:12:42 UTC, end at Mon 2015-10-05 08:49:14 UTC
Oct 05 08:49:14 centos7 ntpd[1992]: 0.0.0.0 c618 08 no_sys_peer
Oct 05 08:49:12 centos7 systemd[1]: Time has been changed
Oct 05 08:49:12 centos7 ntpd[1992]: 0.0.0.0 c61c 0c clock_step -0.410329 s
Oct 05 08:49:12 centos7 ntpd[1992]: 0.0.0.0 c612 02 freq_set kernel -419.899 PPM
Oct 05 08:47:51 centos7 systemd[1]: Started Cleanup of Temporary Directories.
Oct 05 08:47:50 centos7 systemd[1]: Starting Cleanup of Temporary Directories...
Oct 05 08:44:09 centos7 sshd[2071]: Connection closed by 31.44.67.187 [preauth]
ページング機能無効(lessっぽい表示を無効にする)
$ journalctl --no-pager
 -- Logs begin at Mon 2015-10-05 10:12:42 UTC, end at Mon 2015-10-05 09:04:24 UTC. --
Oct 05 10:12:42 localhost.localdomain systemd-journal[208]: Runtime journal i...
Oct 05 10:12:42 localhost.localdomain systemd-journal[208]: Runtime journal i...
Oct 05 10:12:42 localhost.localdomain kernel: Initializing cgroup subsys cpuset
Oct 05 10:12:42 localhost.localdomain kernel: Initializing cgroup subsys cpu
Oct 05 10:12:42 localhost.localdomain kernel: Initializing cgroup subsys cpuacct
Oct 05 10:12:42 localhost.localdomain kernel: Linux version 3.10.0-229.7.2.e...5
Oct 05 10:12:42 localhost.localdomain kernel: Command line: BOOT_IMAGE=/boot...6
Oct 05 10:12:42 localhost.localdomain kernel: e820: BIOS-provided physical R...:
Oct 05 10:12:42 localhost.localdomain kernel: BIOS-e820: [mem 0x000000000000...e
Oct 05 10:12:42 localhost.localdomain kernel: BIOS-e820: [mem 0x000000000009...d
Oct 05 10:12:42 localhost.localdomain kernel: BIOS-e820: [mem 0x00000000000e...d
Oct 05 10:12:42 localhost.localdomain kernel: BIOS-e820: [mem 0x000000000010...e
Oct 05 10:12:42 localhost.localdomain kernel: BIOS-e820: [mem 0x000000001fff...a
Oct 05 10:12:42 localhost.localdomain kernel: BIOS-e820: [mem 0x000000001fff...S
Oct 05 10:12:42 localhost.localdomain kernel: BIOS-e820: [mem 0x000000010000...e
Oct 05 10:12:42 localhost.localdomain kernel: bootconsole [earlyser0] enabled
Oct 05 10:12:42 localhost.localdomain kernel: NX (Execute Disable) protectio...e
Oct 05 10:12:42 localhost.localdomain kernel: SMBIOS 2.3 present.
ログレベルに準じたフィルタ出力(以下は4:warning)
【名称】
$ journalctl -p warning
 -- Logs begin at Mon 2015-10-05 10:12:42 UTC, end at Mon 2015-10-05 09:04:24 UTC
Oct 05 10:12:42 localhost.localdomain kernel: ACPI: RSDP 00000000000f56f0 00014
Oct 05 10:12:42 localhost.localdomain kernel: ACPI: RSDT 000000001fff0000 00040
Oct 05 10:12:42 localhost.localdomain kernel: ACPI: FACP 000000001fff0200 00081
Oct 05 10:12:42 localhost.localdomain kernel: ACPI: DSDT 000000001fff1724 02E78
Oct 05 10:12:42 localhost.localdomain kernel: ACPI: FACS 000000001ffff000 00040
Oct 05 10:12:42 localhost.localdomain kernel: ACPI: WAET 000000001fff1480 00028
Oct 05 10:12:42 localhost.localdomain kernel: ACPI: SLIC 000000001fff14c0 00176
Oct 05 10:12:42 localhost.localdomain kernel: ACPI: OEM0 000000001fff16c0 00064

【数値】
$ journalctl -p 4
 -- Logs begin at Mon 2015-10-05 10:12:42 UTC, end at Mon 2015-10-05 09:04:24 UTC
Oct 05 10:12:42 localhost.localdomain kernel: ACPI: RSDP 00000000000f56f0 00014
Oct 05 10:12:42 localhost.localdomain kernel: ACPI: RSDT 000000001fff0000 00040
Oct 05 10:12:42 localhost.localdomain kernel: ACPI: FACP 000000001fff0200 00081
Oct 05 10:12:42 localhost.localdomain kernel: ACPI: DSDT 000000001fff1724 02E78
Oct 05 10:12:42 localhost.localdomain kernel: ACPI: FACS 000000001ffff000 00040
Oct 05 10:12:42 localhost.localdomain kernel: ACPI: WAET 000000001fff1480 00028
Oct 05 10:12:42 localhost.localdomain kernel: ACPI: SLIC 000000001fff14c0 00176
Oct 05 10:12:42 localhost.localdomain kernel: ACPI: OEM0 000000001fff16c0 00064

※以下のレベルで取得可能
0:emerg 
1:alert
2:crit
3:err
4:warning
5:notice
6:info
7:debug

OS、NW設定系

ホスト名の確認($ hostnameでも可)
$ hostnamectl
   Static hostname: centos7
         Icon name: computer-desktop
           Chassis: desktop
        Machine ID: 99f30b6b81444d47a888f0313c428bd8
           Boot ID: 223d220ec8404003bd4330e609c14bb8
    Virtualization: microsoft
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-229.7.2.el7.x86_64
      Architecture: x86_64
ホスト名の変更
$ hostnamectl set-hostname new_hostname
全ての起動インターフェース情報
$ /sbin/ip a
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0d:3a:40:32:5b brd ff:ff:ff:ff:ff:ff
    inet 100.74.2.48/23 brd 100.74.3.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20d:3aff:fe40:325b/64 scope link
       valid_lft forever preferred_lft forever
インターフェースを指定した情報表示
$ /sbin/ip a s dev eth0
2: eth0:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0d:3a:40:32:5b brd ff:ff:ff:ff:ff:ff
    inet 100.74.2.48/23 brd 100.74.3.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20d:3aff:fe40:325b/64 scope link
       valid_lft forever preferred_lft forever
ルーティングテーブルの表示
$ /sbin/ip r
default via 100.74.2.1 dev eth0  proto static  metric 100
100.74.2.0/23 dev eth0  proto kernel  scope link  src 100.74.2.48  metric 100
100.74.96.90 via 100.74.2.1 dev eth0  proto dhcp  metric 100
デフォルトゲートウェイの追加
$ /sbin/ip r a default via 100.74.2.1
デフォルトゲートウェイの削除
※注意
不用意に実施すると環境によってはログインできなくなります。
デフォルトルートを新規に作成して試すようにして下さい。

$ /sbin/ip r d default via 100.74.2.1
インターフェースの統計情報
$ ip -s l
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    RX: bytes  packets  errors  dropped overrun mcast
    0          0        0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    0          0        0       0       0       0
2: eth0:  mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 00:0d:3a:40:32:5b brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast
    656441     1799     0       0       0       0
    TX: bytes  packets  errors  dropped carrier collsns
    345956     2327     0       0       0       0
ARPテーブル表示
$ /sbin/ip n
100.74.2.80 dev eth0 lladdr f4:52:14:53:52:50 REACHABLE
100.74.2.1 dev eth0 lladdr 88:f0:31:c1:63:7c REACHABLE

ユーザーモード、起動モード系

シングルユーザモードへ移行
※注意 
不用意に実施すると再度ログインできなくなります。
もしやってしまった場合は、コンソールから再起動してください。
試す前にランレベル1でも対応できるようにしておくといいです。
Linux - ターミナル接続できない仮想マシンでシングルユーザーモード作業するには - Qiita

$ systemctl rescue

Broadcast message from usernema@hostname on pts/0 (Tue 2015-10-06 00:04:26 UTC):

The system is going down to rescue mode NOW!
マルチユーザーモードへ移行
$ systemctl default
ランレベルの変更
【起動モード】
$ systemctl isolate target_name

【標準起動モード】
$ systemctl set-default target_name

target_nameは以下を参照
0	システム停止		poweroff.target
1	シングルユーザモード	rescue.target
3	マルチユーザモード	multi-user.target
5	グラフィカルモード	graphical.target
6	再起動			reboot.target
N/A	緊急モード		emergency.target

Linux触り始めて頃はSysV Initコマンドもチンプンカンプンでしたが、慣れれば勝手に手が動くようになっていました。
同じ事だしこれからは主流になっていくと思うので、これから自分で作るサーバは全てVer.7で作ろう。

Azureの Web AppsにFTP接続

WordpressをAzure WebAppsへ移行するのを個人的に頼まれ、Wordpresのメディア(画像系)の
アップロードをちまちまWebUIでやるのはしんどいので、FTPが使えるらしいので試してみた。

1.Azureコンソールへ接続し、アップロード対象のWebアプリを選択し、「デプロイ資格情報を設定する」をクリックする。

f:id:toatoshi:20151002172815j:plain

f:id:toatoshi:20151002172919j:plain

2.ユーザー名とパスワードを入力し、チェックをクリックする。

f:id:toatoshi:20151002173012j:plain

3.接続するための情報(FTPホスト名、デプロイ/FTPユーザー)を確認する。

f:id:toatoshi:20151002173236j:plain

4.IEで先ほど控えたFTPホスト名を入力する。

 IEでないとダメのようです。Firefoxは繋がらなかったです。
f:id:toatoshi:20151002173326j:plain

5.接続情報の入力画面が出るので先ほど控えたデプロイ/FTPユーザーと設定したパスワードを入力する。

f:id:toatoshi:20151002173533j:plain

6.Web接続できることを確認する。

f:id:toatoshi:20151002173613j:plain

7.ブラウザのまま使ってもいいが、操作しにくいのでエクスプローラーで開く。

表示 - エクスプローラーでFTPサイトを開くをクリックする。
f:id:toatoshi:20151002173821j:plain

8.接続情報の入力画面が再度出るので情報を入力する。

f:id:toatoshi:20151002173945j:plain

9.エクスプローラーで開くことを確認する。

f:id:toatoshi:20151002174017j:plain

【勉強会】第18回オワスプナイト

OWASP Japan主催のオワスプナイトに初参加したのでメモを残しておきます。

owasp.doorkeeper.jp


* Outreach Activities - S Nakata

元 Webの脆弱生診断員
コンサルタント OWASPプロモーションリーダー

今日のお話
・OWASP Japan対外的活動の共有
・OWASPのドキュメント類の紹介

【対外的活動の共有】
OWASP Japanブログを始めた
 イベントの参加やオワスプナイト開催の通知等を長文で解説する

http://blog.owaspjapan.org/post/125493381154/owasp-night-18th-at-scsk-開催報告
blog.owaspjapan.org

【ここ最近の活動】
本日のデブサミにブースを出展しその足でここに来た

JFT2015(ブースとショートプレゼンで参加)
石切山さんがプレゼンテーション

某社とコラボレーション企画を考えている。

【OWASPのドキュメント類の紹介】
OWASPドキュメントの使いどころ
 ・要件定義フェーズ
   WebシステムWebアプリケーションセキュリティ要件書

 ・設計・開発フェーズ
   OWASP Proactive Controls
    OWASP TOP10で定義したリスクを事前に防ぐ方法をまとめたもの

   OWASP ASVS
    後のセッションで説明
   
   OWASP Cheat Sheet Series(33種類、14準備中)
    テクニカル要素(あるべき論)を纏めたもの

 ・テストフェーズ
   OWASP Zed Attack Proxy (ver2.4.0)
    日本語UIが多くなった
    アタックモード(web遷移するとアクティブスキャンをかってにかける)

 ・運用保守フェーズ
   OWASP Testing Project
    テスト手法を纏めたもの

  OWASP OWTF
   ペネトレーションテスト

  OWASP ModSecurity Core Rule Set Project
   modsecurityに関するもの
   
  OWASP AppSensor Project
   侵入検知とそれに対するレスポンス応答を同時におこなう

  OWASP Dependency Check
   使っているライブラリに脆弱性がないかをチェック

 その他
  OWASP TOP10
  Mobile Top Ten
  Internet of Things Top Ten
   リスクと対策を纏めたもの

 OWASP Snakes and Ladders(twitterbotが存在)
  OWASP TOP10のリスクと対策をスゴロクで遊べる

OWASP Proactive Controlsを日本語訳した。(公開準備中)

speakerdeck.com


* Hardening Project 2015 - Hardening 10 Market Place Inside Story - N Takanori

OA機器メーカ勤務

【Hardening Projectとは】
ITシステムの総合運用能力を競うイベント
ビジネス継続をふまえた守りに特化したもの

6/20,21に沖縄宜野湾市コンベンションセンター)で開催
20日は競技主体のHardeningday
21日は振り返り&表彰のsoftningdaywasforum.jp

ロゴの意味は灼熱のHardeningdayと祝福のsoftningdayで
色がそれぞれ分かれている。


Hardening競技とは
テーマはマーケットプレイスの活用
 ・インシデントレスポンス
 ・可用性
 ・パフォーマンスチューニング
 ・在庫管理
これらをうまく8時間で回していく。

実行委員の川口さんが@ITに競技の模様をコラムとして書いている。www.atmarkit.co.jp

【コラムに書いてないこと】
マーケットプレイスの商品は?
 プラットフォームサービス、プロダクト、アウトソーシングコンサルティング、分析解析、構築サービス
 これらを使ってECサイトをうまく回していく(可用性を保ってDoS回避とか)
 マルウェアの回避はプロダクト内のWAFだったりセキュリティ対策ソフトを使って対処
  ※うまく使っていたチームは少なかった印象
 
応募選考があり、MAX40名を想定していた。
スーパーアリーバードで十数名を想定。
金曜夜にスーパーアリーバードを募集して日曜の昼に締め切りで40名のうち過半数を超える応募
急遽、アーリーバードを廃止して選考しようとしたが、その後も応募が多数。
VM数が350超え、VLANIDも100を超えるシステムでの競技になった。


競技環境内はLBに繋がれた3台のECサイトやDB、サポート端末といったものが用意され、
これらをうまく管理しさまざまな攻撃に対処する。
これらのサイトはTomcatwordpress、stratsといったもで構成されている。
Tomcatwordpressプラグイン脆弱性対策されているが、インジェクション対処をしない
チームがほとんどであった。
簡単に対策できるところだと思うのできっちりやってほしい。

手軽に確認できる方法としてSecurity Ninjas AppSec Training Programがある。
dockerコンテナで脆弱性のあるWebページが用意されている。
OWASP TOP10の項目に紐付いたWebページとなっておりクイズ形式で進められる。
OWASP TOP10の脆弱性項目を簡易的に体験できる。

Mini Hardening Project 1.2が8月に開催される(1.0や1.1に参加されていない方が対象)
3時間程度のライトなHardening競技でこちらで腕を試して12月の本戦にお越し頂きたい。minihardening.connpass.com

ざっくり分かるインシデントレスポンス M Tamaki

以下2点のお話し。
・最近のWebサイトに対する脅威
・Webアプリケーションエンジニアからみたインシデントレスポンス

最近のWebサイトに対する脅威
2015年7月だけでも脅威が9つもある。
 攻撃者の目的は攻撃用インフラとして使うものや情報を搾取するケースとして分類できる

被害者は企業ではない、Webサイトの利用者である
 企業としては利用者に対し情報を提供することが大事

対策責任の所在
 利用者の問題というものはあまりない
 パスワードリスト攻撃にしても運営者が強固なパスワードや認証手段を用意すればよい
 運営者が責任もって対処すべきである
 とはいっても脆弱性ってそんな簡単に対処できない

ゼロデイ脆弱性トップ5のパッチ適応される期間がどんどん伸びている
 →対処が難しい
攻撃までの期間が早い
 →シマンテックレポートでは脆弱性が明らかになって4時間で攻撃開始されるものもある
  対処が難しい
パッチ適用のためのサイト停止が難しい

インシデントレスポンスの必要性
 適応できないから何か起こった場合、チェックして見つけて対処する必要がある
 脆弱性を防いで、攻撃されないようにするのは難しい
 攻撃される事を前提で、それをいかに検知し対処できるか
 Webアプリケーションエンジニアの方はそれらを理解して行動しなくてはいけない

Webアプリケーションエンジニアは何をすべきか
 インシデント発生時、CSART体制(想定)で活動すると思われるが、Webアプリケーション開発者及び
 Webサイト管理者はインシデントに対する調査や対応、復旧の実働者

インシデントレスポンスの一般的なライフサイクル
 準備 → 検知・分析 → 封じ込め・根絶・復旧 → 事後活動

これらのカテゴリ内でWebアプリケーションエンジニアがやるべき事
 準備:サイト情報の整理、検知策導入、監視、予防対策 <平時>
 検知・分析:インシデント初期調査、調査結果の報告、セキュリティ専門業者とのやり取り <有事>
 封じ込め・根絶・復旧:初動対応、対策の実施、サイトの復旧 <有事>
 事後活動:改善の協力 <平時>

検知・分析
 ・エラーログアクセスログを見る
 ・改ざんされることを想定し差分を取っておく
 ・MD5SHA1といったハッシュ値でチェックする
 ・日付を見ておく
 ・NW設定を見る(変更されてないか)
 ・アカウントの確認
 ・ジョブスケジューラの確認
 ・DNSとかARPの設定確認
やらないといけない事がたくさんある
焦ってはいけないけど急ぐ

Webサーバのログチェック観点
 存在以内ファイルや埋め込みコード、LB内すべてを対象とするとか

報告
 調査の結果は必ずCSIRT(責任者)へ報告
  Webアプリケーションエンジニアはあくまで手を動かすこと
 
 電話での報告
  VoIPとかだと攻撃者が盗聴しているかも
 メールでの報告
  スニッフされているかも
報告も気をつける必要がある

ログ確認時も注意が必要
 エビデンスが汚染される(アクセスによって履歴が変わる)
 調査履歴を取ることが必要

調査結果の報告で忘れがちな事
 専門家に規定頂いた時の入室管理やアクセス権の扱い
  調査場所がDCである場合とかは事前に入館申請を出すとか忘れがち

封じ込め・根絶・復旧
 気をつけるべき事としては、対処した時に変わる情報を押さえておく(報告と同様)

 自分が管理しているサイトにどのくらいの売り上げや重要度があるのか
  これにより対処したいが出来ないこともある
  ECサイトのセール等で止める事ができないようなこともあるのでスケジューリング大事
  CSIRT責任者が把握していればいいということも考えられるが、Webアクリケーション
  エンジニアは実際のアクセス量や対策の問題点を把握しているので説得力がある

対策の実施
 バックアップから復旧すると完全に直らない場合がある。
  古くから発生しているインシデントもある。(履歴管理をすること)

 復旧後に脆弱性が完治している事を確認、それをもって公開する

まとめ
インシデントレスポンスは重要だけど実際に実施すると大変なことが多い
チートシートはログのチェック項目や観点が書いてあり参考になる
インシデントレスポンスのフォーマットもある

speakerdeck.com

Application Security Verification Standard (ASVS) Project 3.0 preview - R OKADA

アプリケーションセキュリティ検査/検証の標準化というプロジェクト(2009年頃から)がOWASPにある。

アプリケーション検査における象徴的な絵
「思った通りに動いてる」とは何か?
 思った通りに動いているという事をテストするときに 
  ・ソフトウェアの脆弱性ビジネスロジックの話をいかに網羅しているかを定義
  ・リスクに対して十分なテストをしているという定義
 これら以外に難しい。

このような背景からOWASPでは標準化するという活動をしている

検査:第三者的なイメージ
検証:Verificationを翻訳すると「自分でverifyする」という主体的な意味合いもあるし、
   既に起きているものを検査するという意味もある
文脈に応じて使い分ける(誤解を招く可能性あり)

OWASP TOP10
 重要リスクの普及啓発するツール
 しかし、検査しなくてはならない項目としては明らかに不十分
 検査しなくてはならない項目を網羅的にしたドキュメントではない
 注意事項にはASVSをガイドすることの明記がある。
 開発者向けのメッセージにもASVSをセキュリティ標準とする事が明記されている。

ASVS 1.0のあまりよくなかったとこ
 検査レベルを1〜4まで設けていた
 ツールで出来るテストの範囲とツールで出来ない範囲のテストを厳密に定義した
 どのようにテストするか?何をテストするか?の両方が書かれてしまっている
 そのため身動きが取れにくくなってしまっていた

ASVS 2.0
 シンプルなセキュリティレベルが定義された。

Level 0:テストしてない
Level 1:すぐに見つかるレベル
Level 2:標準レベル
Level 3:より進んだテストを実施
それ以上:外部とのモジュール接続等標準化しにくいもの

どのようにテストするかではなく、どのような項目をテストするかが書かれている

13項目からなる検査要件
 Vxxで表現(xxは数字)

V2. Authentication
V3. Session Management



V17. Mobile

Version 3.0が7月にPreview版がでた
大項目が3つ増えた
 V18. Web services (NEW for 3.0)
 V19. Configuration (NEW for 3.0)
 V20. Client side Security (NEW for 3.0)

議論の場はGitHubで行われる
issueベースで議論github.com


レベルはどのように決めるのか?
 このシステムはレベル1でOKのような使い方、このシステムはレベル2は必要みたいな。

 付録ページにあらゆる業種で使われるシステムで定義に応じたレベル分けをしており、
 リスクの仕分けに使える

標準の使い方
 宣伝文句に惑わされない(XX社製品よりできますとか)
 開発会社の選定(レベル2以上の技術が必要とか)

使いどころ
 経営層にアプローチ
 開発中のシステムに照らし合わせてみる

セキュリティに関係ない方、学生さん
 セキュリティを学ぶツールとして利用できる
 セキュリティ上の原則に基づくテクニックが学べる

www.slideshare.net

参考Web

第18回 オワスプナイトまとめ #owaspjapan
togetter.com

@okdtさんのツイート


うるう秒まで あと2日!

明後日(2015年7月1日)に挿入される「うるう秒」に対して各社の対応を纏めてみました。

うるう秒について説明もそんなに必要ないと思いますが、独立行政法人 情報通信研究機構NICT)からプレス
リリースがでていますのでこちらを見て頂ければ分かると思います。
プレスリリース | 「うるう秒」挿入のお知らせ | NICT-情報通信研究機構

IaaS関連

AWS

EC2について
AWS側でインスタンス内部の時刻同期は管理しないのでNTPを利用する事を推奨。
AWSが提供するAMIはデフォルト設定でtime.windows.comやntp.orgに同期を取るように
設定されている。
但し、保証は出来ないのでOSベンダ対応を確認することを強く推奨。

マネージメントコンソールやAWSにおけるバックエンドシステムについて
うるう秒に未対応。
ログ取得サービス(Cloudtrail等)のログに「:60」といった記録は残らない

他のAWSサービスについて
AWSが提供しているマネージメントサービスはNTPを利用している。

aws.typepad.com

【Azure】

具体的な見解は見当たらず利用者側も注意しておいた方が良いという記載です・
※不安な方はサポートに問い合わせることをおすすめします。
今年は7/1にうるう秒が挿入されるようです。 : Microsoft Azure 情報メディア「AZURE WAVE」

MS製品の対応の記載もありましたので記載しておきます。
http://smallbusiness.support.microsoft.com/ja-jp/kb/2722715

GCP

Googleは1秒を反復するのではなく、余分な1秒をわかりにくくして消してしまう処理する。
20 時間後には、うるう秒が完全に加えられ、ぼかしの入らない時間と同期する。
Google Cloud Platform Japan 公式ブログ: うるう秒がやって来る!〜 6 月 30 日の ” 1 秒”に備えよう〜

【Softlayer】

Softlayerとしての公式見解は見つかりませんでしたが、Softlayer上に乗っている思われる
IBM Platform Computing製品は、うるう秒の影響は受けないとの記載があります。
※不安な場合はサポートへの問合せをおすすめします。
IBM 2015年うるう秒に関するガイド - Japan

【Cloudn】

7/1までに基盤ににてslewモードを利用して、うるう秒に対応する公式発表が出ています。
うるう秒挿入に対するCloudnの対応状況・およびお客様へのお願い | クラウド・エヌ・インフォメーション

さくらインターネット

影響有りの可能性があるとの公式見解が出ています。www.sakura.ad.jp

2015年7月1日の「うるう秒」挿入に際する注意事項www.sakura.ad.jp

GMOクラウド

影響有りの可能性があるとの公式見解が出ています。vps.gmocloud.com

ニフティクラウド

回避策の提示が公式見解で出ています。
http://info.biz.nifty.com/cloud/20150601_pls.pdf

【ビットアイルクラウド

powerd by ニフティクラウドで提供しているので、基本的にはニフティクラウド
見解に準ずるとのことです。
2015年7月のうるう秒対応につきまして | ビットアイルクラウド Nシリーズ Information

Akamai

アカマイはシステムの障害を未然に防げるよう”Leap Smear”技術を使って回避する
との公式見解が出ています。
Login | Akamai
※上記URLはログイン要

【EMC】

製品別にナレッジを公式に出しています。
EMC Community Network - ECN: 2015年7月1日うるう秒問題

トレンドマイクロ

製品によってはハングアップする可能性がある事を公式見解で出しています。
サポート情報 : トレンドマイクロ

影響を受ける製品は以下
InterScan Messaging Security Virtual Appliance 8.x
Trend Micro Threat Discovery Appliance / Deep Discovery / Inspector All
Deep Discovery Email Inspector 2.0
Network VirusWall Enforcer All
ServerProtect for Linux 3.0
InterScan Web Security Virtual Appliance 5.6
InterScan Messaging Security Suite 7.0

シマンテック

Symantec Mail Security製品について記載がありました。
Symantec Mail Security製品では、うるう秒の挿入により製品の動作に影響を与えるような
障害はないという公式見解が出ています。
Symantec - Symantec Mail Security 製品がサマータイムやうるう秒に対応しているか確認したい
※上記以外の製品についてはサポートでご確認頂く事を推奨します。

Oracle

Oracle社からうるう秒に対しての公式見解は見つかりませんでした。
NTTデータ先端技術株式会社さんがOracle製品のうるう秒に関して触れています。
Oracle 製品 (DB、WLS、BI) のうるう秒に対する対応について | NTTデータ先端技術株式会社
Oracle社の公式見解ではないのでご注意ください。

SQL Server

うるう秒に伴うシステム時刻のずれ(1秒間)が発生したとしても、それがSQLServerの動作自体に
影響を与える事はないという公式見解が出ています。
うるう秒に関するサポートについて

DB2

影響を示唆する公式見解が出ています。
IBM [DB2 LUW] うるう秒が DB2 に与える影響 - Japan

MySQL

MySQL5.6リファレンスマニュアルに記載がありました。
MySQL :: MySQL 5.6 リファレンスマニュアル :: 10.6.2 タイムゾーンのうるう秒のサポート

【メモ】LXDを少し触ってみた

気になってたLXDを少し触ってみましたのでメモを残しておきます。

LXDって何? は以下を見てもらうと分かりやすいです。
Linux Containers - LXD - イントロダクション

まず、コンテナ上にOSを立ち上げるところを試してみました。

どんな環境でもいいのですが、Azure上にubuntuを立ち上げてその上でLXDを
動かしました。
#cat /etc/issue
Ubuntu 14.10 \n \l

リファレンスを見るとPPA を使うことを推奨しているようなので従います。

# add-apt-repository ppa:ubuntu-lxc/lxd-git-master
# apt-get update
# apt-get install lxd

次にイメージのインポートです。

ubuntu】
# lxd-images import lxc ubuntu testubuntu amd64 --alias ubuntu
【centos6】
# lxd-images import lxc centos 6 amd64 --alias centos6

落としたイメージを確認できます。

# lxc image list
 +---------+--------------+--------+-------------+--------+-------------------------------+
 |  ALIAS  | FINGERPRINT  | PUBLIC | DESCRIPTION |  ARCH  |          UPLOAD DATE          |
 +---------+--------------+--------+-------------+--------+-------------------------------+
 | ubuntu  | 04aac4257341 | no     |             | x86_64 | Jun 22, 2015 at 10:35am (UTC) |
 | centos6 | afae698680fc | no     |             | x86_64 | Jun 24, 2015 at 1:14am (UTC)  | 
 +---------+--------------+--------+-------------+--------+-------------------------------+

イメージから指定のOSでコンテナを起動する。

ロードしたいOSのALIASの名称をlaunchの後にいれ、コンテナ名(任意)を入力する
【ubuntu】
# lxc launch ubuntu testubuntu
【centos】
# lxc launch centos6 testcentos6

即立ち上がるので立ち上がったコンテナ一覧を出します。

# lxc list
 +-------------+---------+------------+------+-----------+-----------+
 |    NAME     |  STATE  |    IPV4    | IPV6 | EPHEMERAL | SNAPSHOTS | 
 +-------------+---------+------------+------+-----------+-----------+
 | testcentos6 | RUNNING | 10.0.3.194 |      | NO        | 0         |
 | testubuntu  | RUNNING | 10.0.3.107 |      | NO        | 0         |
 +-------------+---------+------------+------+-----------+-----------+

あとはコンテナに対し自由にコマンド入力できます。

# lxc exec testcentos6 -- uname -a
Linux testcentos6 3.16.0-39-generic #53-Ubuntu SMP Tue May 26 09:38:21 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

# lxc exec testcentos6 -- cat /etc/issue
CentOS release 6.6 (Final)
Kernel \r on an \m

# lxc exec testubuntu -- uname -a
Linux testubuntu 3.16.0-39-generic #53-Ubuntu SMP Tue May 26 09:38:21 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

# lxc exec testubuntu -- cat /etc/issue
Ubuntu 14.04.2 LTS \n \l

コンテナの内部でshellも打てます。

# lxc exec testcentos6 -- /bin/bash

[root@testcentos6 ~]# pstree
init-+-dhclient
     |-2*[mingetty]
     `-rsyslogd---2*[{rsyslogd}]

コンテナを停止させます。

# lxc stop testubuntu

# lxc list
 +-------------+---------+------------+------+-----------+-----------+
 |    NAME     |  STATE  |    IPV4    | IPV6 | EPHEMERAL | SNAPSHOTS |
 +-------------+---------+------------+------+-----------+-----------+
 | testcentos6 | RUNNING | 10.0.3.194 |      | NO        | 0         |
 | testubuntu  | STOPPED |            |      | NO        | 0         |
 +-------------+---------+------------+------+-----------+-----------+

停止したコンテナを起動させます。

# lxc start testubuntu

# lxc list
 +-------------+---------+------------+------+-----------+-----------+
 |    NAME     |  STATE  |    IPV4    | IPV6 | EPHEMERAL | SNAPSHOTS |
 +-------------+---------+------------+------+-----------+-----------+
 | testcentos6 | RUNNING | 10.0.3.194 |      | NO        | 0         |
 | testubuntu  | RUNNING | 10.0.3.107 |      | NO        | 0         |
 +-------------+---------+------------+------+-----------+-----------+

一連の流れは問題なくできそうです。
今のところ情報が少ないのでDocker(LXC)のほうが取っ付きやすい感じがしますが
もう少しLXDを追っかけてみようと思います。

ubuntuで有名な Canonical Ltd が商用盤として保守をされているようです。
www.canonical.com

LXDについて話されている動画もありました。
insights.ubuntu.com

参考Webサイト

[lxd] - TenForwardの日記

Ubuntu 15.04とLXDではじめるコンテナ型仮想化 | 株式会社インフィニットループ技術ブログ

lxc/lxd · GitHub