Linux
Security
infrastructure
vulnerability
vuls
More than 1 year has passed since last update.


Abount Me


vuls_logo.png



Balse?

rapyuta.png



 前半: Vuls


  • 脆弱性管理、ソフトウェア・アップデートの重要性

  • Vuls説明

  • デモ



 中盤: 質問ターイム


  • 脆弱性管理、アップデートしてます?


    • OS, ミドルウェア、言語、N/W機器



  • 大規模環境での課題



 時間があれば:OSSの話


  • なぜ公開したか

  • 宣伝と、バズったときの話

  • コミュ二ティ

  • キャッチアップ資料



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



アンチウィルスだけで本当に大丈夫?


  • 新種マルウェアの数は 数十万種類/day

  • 中高生でもカジュアルに作れる時代

  • シグニチャベースのIPS/IDS/アンチウィルスだけでは不十分


専門家曰く、一番重要なセキュリティ対策はソフトウェアアップデート

security_google.png

Google Japanブログより引用



脆弱性の放置は危ない


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




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



サーバ運用時に感じたこと


  • Linuxサーバ100台(OS, アプリケーション混在)規模の本番環境を運用していた

  • 自動アップデートによるサービス停止が怖いので手動アップデートで運用

  • 新着脆弱性をJVNなどのRSSや、SNSで情報取集

  • 日々発見される脆弱性多すぎ...

  • Flash脆弱性など必要ない情報が多い...



 Q. 過去2年間の脆弱性の合計数は?


  1. 〜500

  2. 500〜1000

  3. 1000〜2000

  4. 2000〜4000

  5. 4000〜5000



 正解: 14,600



 深刻度Criticalのものは 522件



深刻な脆弱性が見つかった場合


  • 影響調査が大変


    • おまえは100台に入っているソフトウェアと、バージョンを覚えているのか!?

    • プログラミング言語のライブラリ、バージョンまで覚えているわけがないだろう?



  • まじめにやろうとすると、年間で数千発見される脆弱性を人が情報収集し、対応しなければならない


enkan.png


angry.gif



そんな方にはvuls_logo.png


vuls.jpg

どのサーバに、どんな脆弱性(CVE)があるかを通知


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

vuls-slack-ja.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



Scan Flow

vuls-scan-flow.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



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

india-6.jpg



Buzzed All Over The World

Star_history.png



Got First Place In GitHub Trending

2016/10/1 All Language

image002.png



娘に自慢


  • 小学2年の娘に「パパは世界1位になったよ」

  • 「パパすごーい」

  • 娘から見直される

  • OSSにしてよかった!



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



ドイツ語

german.png



ドイツ語2

german2.png



フランス語

README.fr.mdのプルリクくれた



中国語

23万ビュー

chinese.png



スロバキア語

Slovakia.png



バズり経験からわかったこと


  • GitHubスターは超重要


    • 開発のモチベーション

    • プロジェクトの人気度を示す



  • 英語圏の人はバンバンGitHubスターつけるが、日本人はそんなにつけない


    • Qiitaや、はてなブックマークがあるから?



  • まず海外でバズらせてGitHubスターを稼ぐ


    • Reddit -> Twitter -> GitHub Trending



  • その後日本はQiita、勉強会で発表して広めるのが良い



バズらせFlowChart

how-to-bazuri.png



コミュニティ



Community


  • 217 Members (#general)

  • 120 Members (#vulsjp)

Stats___vuls-github_Slack.png

Join Vuls Slack


  • アナウンスや機能拡張の議論、Q&Aなど

  • 公開当初はほとんど会話がなかった

  • だが、ある事件をきっかけに結束する...


slack-trouble1.png


slack-trouble2.png



その頃#japaneseチャネルでは

slack-trouble3.png



男前登場

slack-trouble4.png



 #japaneseに妙な連帯感が



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



おかげで#japaneseが活発に


  • 現在ではQ&Aや新機能の要望、議論が活発に

  • Vulsロゴの回転絵文字も登場!
    vuls_roll.gif



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



Presentation (in Japan)



Thanks

Give a GitHub Star if you are interested :)