Vuls@GREE

# Abount Me
- Kota Kanbe ([Twitter](https://twitter.com/kotakanbe), [GitHub](https://github.com/kotakanbe), [Facebook] (https://www.facebook.com/kota.kanbe) )
- Programmer @ [Future architect, Inc. Japan](http://www.future.co.jp/)
- Author of [Vuls](https://github.com/future-architect/vuls/)
- Owner of [Mohikan Slack](http://qiita.com/kotakanbe@github/items/32cf4eb3de1741af26fb)

---

![vuls_logo.png](https://qiita-image-store.s3.amazonaws.com/0/22462/01c6d661-8b7f-43f9-c7f8-7d1577205764.png)

---
# Balse?

![rapyuta.png](https://qiita-image-store.s3.amazonaws.com/0/22462/50a3aaad-9367-83cb-7d9d-135ecc6f6c4d.png)

---
#　前半: Vuls
- 脆弱性管理、ソフトウェア・アップデートの重要性
- Vuls説明
- デモ

---
#　中盤: 質問ターイム
- 脆弱性管理、アップデートしてます？
    - OS, ミドルウェア、言語、N/W機器
- 大規模環境での課題

---
#　時間があれば：OSSの話
- なぜ公開したか
- 宣伝と、バズったときの話
- コミュ二ティ
- キャッチアップ資料

--- 
# ソフトウェアアップデートの重要性

--- 
# アンチウィルスだけで本当に大丈夫？
- 新種マルウェアの数は　数十万種類/day
- 中高生でもカジュアルに作れる時代
- シグニチャベースのIPS/IDS/アンチウィルスだけでは不十分

--- 
専門家曰く、一番重要なセキュリティ対策はソフトウェアアップデート 
![security_google.png](https://qiita-image-store.s3.amazonaws.com/0/22462/6bc0aaa2-d1c7-58d6-7e46-ceeef61a4956.png)

[Google Japanブログより引用](https://japan.googleblog.com/2016/02/blog-post.html)

---
# 脆弱性の放置は危ない
- [サイバー攻撃の85％は良く知られた脆弱性を悪用したもの--ベライゾン調査](http://japan.zdnet.com/article/35085068/)

> 攻撃の大半は、数カ月もしくは数年にわたって利用可能なセキュリティパッチが一度も適用されていない既知の脆弱性を悪用している。実際に、成功したサイバー攻撃の85％は、最も良く知られた脆弱性の上位10件を悪用したものである

--- 
# でも、ソフトウェアアップデートって大変ですよね？

---
# サーバ運用時に感じたこと
- Linuxサーバ100台(OS, アプリケーション混在）規模の本番環境を運用していた
- 自動アップデートによるサービス停止が怖いので手動アップデートで運用
- 新着脆弱性をJVNなどのRSSや、SNSで情報取集
- 日々発見される脆弱性多すぎ...
- Flash脆弱性など必要ない情報が多い...

---
#　Q. 過去２年間の脆弱性の合計数は？

1. 〜500
- 500〜1000
- 1000〜2000
- 2000〜4000
- 4000〜5000

---
#　正解: 14,600

---
#　深刻度Criticalのものは 522件

---
# 深刻な脆弱性が見つかった場合
- 影響調査が大変
    - おまえは100台に入っているソフトウェアと、バージョンを覚えているのか！？
    - プログラミング言語のライブラリ、バージョンまで覚えているわけがないだろう？
- まじめにやろうとすると、年間で数千発見される脆弱性を人が情報収集し、対応しなければならない

---

![enkan.png](https://qiita-image-store.s3.amazonaws.com/0/22462/65df69cd-2b2d-3683-5db3-95f628fce92e.png)

---

![angry.gif](https://qiita-image-store.s3.amazonaws.com/0/22462/68465387-23b9-10e2-cb02-be719324e01a.gif)

---
# そんな方には![vuls_logo.png](https://qiita-image-store.s3.amazonaws.com/0/22462/01c6d661-8b7f-43f9-c7f8-7d1577205764.png)

---
![vuls.jpg](https://qiita-image-store.s3.amazonaws.com/0/22462/08848015-011c-a57a-9fad-95be2f942754.jpeg)
どのサーバに、どんな脆弱性(CVE)があるかを通知

---
管理するサーバに新着の脆弱性が発見された場合に通知してくれる

![vuls-slack-ja.png](https://qiita-image-store.s3.amazonaws.com/0/22462/d7ea68a4-3752-c6a4-03d3-f07dcb0acde0.png)

---
# 特徴

- Linux/FreeBSDの脆弱性を動的スキャン
    - Ubuntu, Debian, CentOS, Amazon, RHEL, FreeBSD
    - クラウド、オンプレミス、Docker
- OSパッケージ以外の脆弱性も検知可能
    - コンパイルしていれたもの
    - プログラミング言語のライブラリ、N/W機器
    - CPEに登録されているソフトウェアが対象
- セットアップは1台でよい
- エージェントレス
    - Vulsから各サーバにSSHで接続してスキャン
- 本番環境を汚さない（非破壊テスト）
- AWSなどでは脆弱性スキャナ実行前に事前申請必要だがVulsは申請必要ない
- 初期設定が簡単（基本SSH接続情報のみ）
- 日本語レポート
- 分析用のWebUIがある
- Go言語製

---
# Architecture

![vuls-architecture.png](https://qiita-image-store.s3.amazonaws.com/0/22462/ff60362b-3164-f74d-408a-4d6114fde6f1.png)

---
# Scan Flow

![vuls-scan-flow.png](https://qiita-image-store.s3.amazonaws.com/0/22462/54405a1b-6e7f-6e07-d3de-0d0f44beee28.png)

--- 
# Support OS


| Distribution|            Release |
|:------------|-------------------:|
| Ubuntu      |          12, 14, 16|
| Debian      |                7, 8|
| RHEL        |                6, 7|
| CentOS      |             5, 6, 7|
| Amazon Linux|                 All|
| FreeBSD     |                  10|

---
# デモ
- スキャン
- Slack通知

---
# 分析用Web UIのデモ
[usiusi360/vulsrepo](https://github.com/usiusi360/vulsrepo)

---
# Vuls詳細
詳細は[README.ja](https://github.com/future-architect/vuls/blob/master/README.ja.md)をベースに説明

---
# 特に難しかったところ
- バージョンの比較でやればできそうだし簡単じゃんと思ってた
- Ubuntu, Debian, CentOSのバージョニング

```
locales	           2.13+git20120306-21  
login	           1:4.1.5.1-1.1ubuntu7  
lsb-base           9.20160110
make	           4.1-6
mawk	           1.3.3-17ubuntu2
mime-support	   3.59ubuntu1
multiarch-support  2.21-0ubuntu5
```
- バージョンをパースして比較なんて無理
- １週間試行錯誤
- changelogに解決されたCVE IDが書かれていることに気づく

---
# 中盤: インタビューターイム

---
# 後半: OSSの話

---
#　後半目次：OSSの話
- なぜOSSにしたか
- バズり
- コミュニティ

---
# Why I Published Vuls To GitHub

- I traveled India and Nepal for 1 month.
- I tried training at Japanese Temple near birthplace of the buddha for a week.
- [Morning training](https://www.facebook.com/kota.kanbe/videos/vb.100002040821074/792813290796691/?type=2&theater)
- An old monk thinks about peace of the world from the heart.
- I thought what can I do for peace of the world 
- ..... 
- OSS!

---
# For Peace Of The World

![india-6.jpg](https://qiita-image-store.s3.amazonaws.com/0/22462/3e08cb93-cd2a-1205-37f3-ee0e24b174c8.jpeg)

---

# Buzzed All Over The World
<img width="817" alt="Star_history.png" src="https://qiita-image-store.s3.amazonaws.com/0/22462/6f03ec15-41d7-9fc8-f362-97e2961b30a1.png">

--- 

# Got First Place In GitHub Trending
2016/10/1 All Language
![image002.png](https://qiita-image-store.s3.amazonaws.com/0/22462/281e7713-954f-687c-6ff8-1d9b3055e9b3.png)

---
# 娘に自慢
- 小学2年の娘に「パパは世界1位になったよ」
- 「パパすごーい」
- 娘から見直される
- OSSにしてよかった！

---
# いろんな言語に翻訳された

---
# [ドイツ語](http://www.linux-magazin.de/content/view/full/103551)
![german.png](https://qiita-image-store.s3.amazonaws.com/0/22462/63b8da4f-e3e0-3f5e-ee7f-351951b3dfab.png)

---
# [ドイツ語2](https://www.noobunbox.net/serveur/securite/recherche-de-vulnerabilites-avec-vuls)
![german2.png](https://qiita-image-store.s3.amazonaws.com/0/22462/acc083de-917f-eb62-678d-dd83fe91082c.png)

---
# フランス語
[README.fr.md](https://github.com/future-architect/vuls/blob/master/README.fr.md)のプルリクくれた

---
# [中国語](http://www.freebuf.com/sectool/101408.html)
23万ビュー
![chinese.png](https://qiita-image-store.s3.amazonaws.com/0/22462/c6334105-9f33-10f0-ec76-8b1a8af40d2b.png)

---
# [スロバキア語](https://alian.info/vuls-je-novy-bezpecnostny-skener-pre-linux/)
![Slovakia.png](https://qiita-image-store.s3.amazonaws.com/0/22462/9f4e944b-df04-ec84-2088-13d9770d0447.png)

---
# バズり経験からわかったこと
- GitHubスターは超重要
    - 開発のモチベーション
    - プロジェクトの人気度を示す
- 英語圏の人はバンバンGitHubスターつけるが、日本人はそんなにつけない
    - Qiitaや、はてなブックマークがあるから？
- まず海外でバズらせてGitHubスターを稼ぐ
    - Reddit -> Twitter -> GitHub Trending
- その後日本はQiita、勉強会で発表して広めるのが良い
 
---
# バズらせFlowChart
![how-to-bazuri.png](https://qiita-image-store.s3.amazonaws.com/0/22462/e84afc2d-3c26-6508-389d-9b70801f67be.png)

---
# コミュニティ

---
# Community
- 217 Members (#general)
- 120 Members (#vulsjp)

<img width="278" alt="Stats___vuls-github_Slack.png" src="https://qiita-image-store.s3.amazonaws.com/0/22462/2e9f0dc7-f8f9-279c-4b5a-fda8ccf0cc64.png">

[Join Vuls Slack](https://docs.google.com/forms/d/e/1FAIpQLSfMyxCKV0C1ukTE0Mc9oyOHDI_2nbz4L75LAMj0D_A2vx_fMA/viewform?c=0&w=1)

- アナウンスや機能拡張の議論、Q&Aなど
- 公開当初はほとんど会話がなかった
- だが、ある事件をきっかけに結束する...

---
![slack-trouble1.png](https://qiita-image-store.s3.amazonaws.com/0/22462/61048c15-bd40-b1b6-a365-40eb75ab4bcd.png)

---
![slack-trouble2.png](https://qiita-image-store.s3.amazonaws.com/0/22462/98e54d6e-1db4-c41b-1258-55bffea1289c.png)

---
# その頃#japaneseチャネルでは
![slack-trouble3.png](https://qiita-image-store.s3.amazonaws.com/0/22462/fbe94115-babe-b4b1-1145-9e1aae14a1c4.png)

---
# 男前登場
![slack-trouble4.png](https://qiita-image-store.s3.amazonaws.com/0/22462/75cd4552-5b6b-acfb-7a4a-9af849959493.png)

---
#　#japaneseに妙な連帯感が

---
# そして彼はOpenVASをオススメして去っていった

---
# おかげで#japaneseが活発に

- 現在ではQ&Aや新機能の要望、議論が活発に
- Vulsロゴの回転絵文字も登場！
![vuls_roll.gif](https://qiita-image-store.s3.amazonaws.com/0/22462/fb56bbf9-23e5-42fd-99c2-557c1c520d4f.gif)
 

---
# Pull Request-Driven Development
Total [159 P/R](https://github.com/future-architect/vuls/pulls) (2016/10/19)
- FreeBSD Support by [justyntemme](https://github.com/justyntemme) [#90](https://github.com/future-architect/vuls/pull/90)
- High Speed Scaning on CentOS by [ti-ga](https://github.com/tai-ga) [#138](https://github.com/future-architect/vuls/pull/138)
- High speed data fetch from JVN by [kotakanbe  #21](https://github.com/kotakanbe/go-cve-dictionary/commit/e3f226a516ca9d3031fc7957f81300faa4132d97)
- High speed scanning on Ubuntu(20x Faster on Ubuntu, 4x Faster on Debian) by [kotakanbe #172](https://github.com/future-architect/vuls/pull/172)

---
# Recent Changes

- Setup Vuls using DockerHub by [matsuno](https://github.com/sadayuki-matsuno) [#223](https://github.com/future-architect/vuls/pull/223)
- Support ignore CveIDs in config　[#222](https://github.com/future-architect/vuls/pull/222)
- Confirm before installing dependencies on prepare [#219](https://github.com/future-architect/vuls/pull/219)
- Remove all.json [#218](https://github.com/future-architect/vuls/pull/218)
- Improve makefile, -version shows git hash, fix README [#216](https://github.com/future-architect/vuls/pull/216)
- change e-mail package from gomail to net/smtp by by [matsuno](https://github.com/sadayuki-matsuno) [#211](https://github.com/future-architect/vuls/pull/211)
- Add only-containers option to scan subcommand #122 [#190](https://github.com/future-architect/vuls/pull/190)

---
# How To Catchup Vuls

- READMEにほとんど書いてある
- VulsMatsuri #1
    - 2016/9/26 about 100 people
    - [Slides@connpass](http://vuls-jp.connpass.com/event/38391/presentation/)
- Links
    - [脆弱性スキャナVuls 関連リンク集](http://qiita.com/usiusi360/items/aeb3cd3630badfacdb4e)
- Join Slack Team

---
# Presentation (in Japan)

- ~~7/6-8 [JANOG38](https://www.janog.gr.jp/meeting/janog38/program/secuope.html)~~
- ~~7/27 [July Tech Fest 2016](http://2016.techfesta.jp/speaker.html#S25)~~
- ~~10/5-7 [Security Days Fall 2016](http://www.f2ff.jp/secd/2016/fall/)~~
- ~~10/22  [AVTokyo](http://ja.avtokyo.org/avtokyo2016/event)~~
- 10/26 [GREE社内勉強会]()
- 10/28 [Security-JAWS #3](https://s-jaws.doorkeeper.jp/events/51939)
- 11/22 [OSSユーザのための勉強会#16 Vuls](https://www.scsk.jp/event/2016/20161122_2.html)
- 12/1 [Internet Week 2016](https://internetweek.jp/)

---

# Thanks

Give a GitHub Star if you are interested :)