Abount Me
- Kota Kanbe (Twitter, GitHub, [Facebook] (https://www.facebook.com/kota.kanbe) )
- Programmer @ Future architect, Inc. Japan
- Author of Vuls
- Owner of Mohikan Slack
Balse?
# 前半: Vuls
- 脆弱性管理、ソフトウェア・アップデートの重要性
- Vuls説明
- デモ
# 中盤: 質問ターイム
- 脆弱性管理、アップデートしてます?
- OS, ミドルウェア、言語、N/W機器
- 大規模環境での課題
# 時間があれば:OSSの話
- なぜ公開したか
- 宣伝と、バズったときの話
- コミュ二ティ
- キャッチアップ資料
ソフトウェアアップデートの重要性
アンチウィルスだけで本当に大丈夫?
- 新種マルウェアの数は 数十万種類/day
- 中高生でもカジュアルに作れる時代
- シグニチャベースのIPS/IDS/アンチウィルスだけでは不十分
専門家曰く、一番重要なセキュリティ対策はソフトウェアアップデート
脆弱性の放置は危ない
攻撃の大半は、数カ月もしくは数年にわたって利用可能なセキュリティパッチが一度も適用されていない既知の脆弱性を悪用している。実際に、成功したサイバー攻撃の85%は、最も良く知られた脆弱性の上位10件を悪用したものである
でも、ソフトウェアアップデートって大変ですよね?
サーバ運用時に感じたこと
- Linuxサーバ100台(OS, アプリケーション混在)規模の本番環境を運用していた
- 自動アップデートによるサービス停止が怖いので手動アップデートで運用
- 新着脆弱性をJVNなどのRSSや、SNSで情報取集
- 日々発見される脆弱性多すぎ...
- Flash脆弱性など必要ない情報が多い...
# Q. 過去2年間の脆弱性の合計数は?
- 〜500
- 500〜1000
- 1000〜2000
- 2000〜4000
- 4000〜5000
# 正解: 14,600
# 深刻度Criticalのものは 522件
深刻な脆弱性が見つかった場合
- 影響調査が大変
- おまえは100台に入っているソフトウェアと、バージョンを覚えているのか!?
- プログラミング言語のライブラリ、バージョンまで覚えているわけがないだろう?
- まじめにやろうとすると、年間で数千発見される脆弱性を人が情報収集し、対応しなければならない
そんな方には
管理するサーバに新着の脆弱性が発見された場合に通知してくれる
特徴
- Linux/FreeBSDの脆弱性を動的スキャン
- Ubuntu, Debian, CentOS, Amazon, RHEL, FreeBSD
- クラウド、オンプレミス、Docker
- OSパッケージ以外の脆弱性も検知可能
- コンパイルしていれたもの
- プログラミング言語のライブラリ、N/W機器
- CPEに登録されているソフトウェアが対象
- セットアップは1台でよい
- エージェントレス
- Vulsから各サーバにSSHで接続してスキャン
- 本番環境を汚さない(非破壊テスト)
- AWSなどでは脆弱性スキャナ実行前に事前申請必要だがVulsは申請必要ない
- 初期設定が簡単(基本SSH接続情報のみ)
- 日本語レポート
- 分析用のWebUIがある
- Go言語製
Architecture
Scan Flow
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のデモ
Vuls詳細
詳細はREADME.jaをベースに説明
特に難しかったところ
- バージョンの比較でやればできそうだし簡単じゃんと思ってた
- 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
- バージョンをパースして比較なんて無理
- 1週間試行錯誤
- 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
- 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
Buzzed All Over The World
Got First Place In GitHub Trending
娘に自慢
- 小学2年の娘に「パパは世界1位になったよ」
- 「パパすごーい」
- 娘から見直される
- OSSにしてよかった!
いろんな言語に翻訳された
ドイツ語
ドイツ語2
フランス語
README.fr.mdのプルリクくれた
中国語
スロバキア語
バズり経験からわかったこと
- GitHubスターは超重要
- 開発のモチベーション
- プロジェクトの人気度を示す
- 英語圏の人はバンバンGitHubスターつけるが、日本人はそんなにつけない
- Qiitaや、はてなブックマークがあるから?
- まず海外でバズらせてGitHubスターを稼ぐ
- Reddit -> Twitter -> GitHub Trending
- その後日本はQiita、勉強会で発表して広めるのが良い
バズらせFlowChart
コミュニティ
Community
- 217 Members (#general)
- 120 Members (#vulsjp)
- アナウンスや機能拡張の議論、Q&Aなど
- 公開当初はほとんど会話がなかった
- だが、ある事件をきっかけに結束する...
その頃#japaneseチャネルでは
男前登場
# #japaneseに妙な連帯感が
そして彼はOpenVASをオススメして去っていった
おかげで#japaneseが活発に
Pull Request-Driven Development
Total 159 P/R (2016/10/19)
- FreeBSD Support by justyntemme #90
- High Speed Scaning on CentOS by ti-ga #138
- High speed data fetch from JVN by kotakanbe #21
- High speed scanning on Ubuntu(20x Faster on Ubuntu, 4x Faster on Debian) by kotakanbe #172
Recent Changes
- Setup Vuls using DockerHub by matsuno #223
- Support ignore CveIDs in config #222
- Confirm before installing dependencies on prepare #219
- Remove all.json #218
- Improve makefile, -version shows git hash, fix README #216
- change e-mail package from gomail to net/smtp by by matsuno #211
- Add only-containers option to scan subcommand #122 #190
How To Catchup Vuls
- READMEにほとんど書いてある
- VulsMatsuri #1
- 2016/9/26 about 100 people
- Slides@connpass
- Links
- Join Slack Team
Presentation (in Japan)
7/6-8 JANOG387/27 July Tech Fest 201610/5-7 Security Days Fall 201610/22 AVTokyo- 10/26 GREE社内勉強会
- 10/28 Security-JAWS #3
- 11/22 OSSユーザのための勉強会#16 Vuls
- 12/1 Internet Week 2016
Thanks
Give a GitHub Star if you are interested :)