Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
vuls
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yusuke Hasegawa
September 26, 2016
Technology
1k
0
Share
vuls
本番サーバの実運用 on GCP
RPM以外も取り込む実運用での工夫について
Yusuke Hasegawa
September 26, 2016
More Decks by Yusuke Hasegawa
See All by Yusuke Hasegawa
ゲームインフラとGoogle Cloud Platformと酒!
yusukeh
0
88
Other Decks in Technology
See All in Technology
なぜ、IAMロールのプリンシパルに*による部分マッチングが使えないのか? / 20260518-ssmjp-iam-role-principal
opelab
2
140
Oracle Cloud Infrastructure presents managed, serverless MCP Servers for Oracle AI Database
thatjeffsmith
1
370
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
100k
実践 TanStack Start ― 新規プロダクトを開発して確立した、サーバーとクライアント境界の設計パターン / Practical TanStack Start Server-Client Boundary Patterns
kaminashi
1
100
サプライチェーン攻撃への備えについて考えている #湘なんか
stefafafan
1
740
既存プロダクトQAから新規プロダクトQAへ
ryotakahashi
0
160
Directions Asia 2026 | Beyond Buildable AI Agents: Let’s Visualize Partner Value in the AI Era
ryoheig0405
0
110
ワールドカフェ再び、そしてゴール・ルール・ロール・ツール / World Café Revisited, and the Goals-Rules-Roles-Tools
ks91
PRO
0
180
PdM・Eng・QAで進めるAI駆動開発の現在地/aidd-with-pdm-eng-qa
shota_kusaba
0
250
分断された OT と IT を繋ぐ架け橋 -Kubernetes が切り拓く 産業用組み込み製品の現在地 -
yudaiono
1
120
AIのために、AIを使った、Effect-TSからの脱却 〜テストを活用した安全なリファクタリングの進め方〜
bitkey
PRO
0
120
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
6
1.7k
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
199
73k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.6k
4 Signs Your Business is Dying
shpigford
187
22k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
250
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.7k
A Tale of Four Properties
chriscoyier
163
24k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
110
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
200
The Limits of Empathy - UXLibs8
cassininazir
1
330
KATA
mclloyd
PRO
35
15k
Transcript
ຊ൪αʔόͷ࣮ӡ༻PO($1 RPMҎ֎औΓࠐΉ࣮ӡ༻Ͱͷʹ͍ͭͯ
ϚογϡΞοϓͰ͢ʂ ؾָʹฉ͍ͯԼ͍͞ʂ
ࣗݾհ facebook: yusuke.exzm ࢯ໊ ୩ ༞հ ܦྺ GMO, Yahoo Japan,
Squere Enix etc… 2010ʹgms(gloopsͷલ)ೖࣾ גࣜձࣾgrasysͷදΛΓͳ͕ΒΤϯδχΞͬͯ·͢ɻ ৬छ ΠϯϑϥΤϯδχΞ Google Developer Expert, GCPUG Admin publish Fusion-IOΛ2011ʹຊ൪ಋೖ͠Fusion-IOࣾʹऔΓ্͛ΒΕΔ SoftwareDesign2012.03هࣄ 2012DellͷCMग़ԋʢςϨϏ౦ژ ϫʔϧυϏδωεαςϥΠτʣ IcingaʢnagiosͷforkʣͷϢʔβʔίϛϡχςΟʹܝࡌ ຊॻ͖࢝Ί·ͨ͠
ձࣾհ ໊ࣾ גࣜձࣾgrasys ઃཱ 201411݄13 ද ୩༞հ ࣄۀ༰ Cloud Facilitator
ςΫχΧϧ/ϦηϦϯάύʔτφʔ ਓ 8໊
γεςϜߏʢͬ͘͟Γʣ ࠓͷओvulsͳͷͰ ΄Μͱʹͬ͘͟Γ
جຊతͳߏ ops product servers monitor Google Cloud Platform Compute Engine
Firewall QPSU ssh opsͱ͍͏Πϯελϯε͕த৺ SSH౿Έ ΦʔέετϨʔγϣϯ vulsͷ࣮ߦ͜͜Ͱ
ࢹ ΦʔέετϨʔγϣϯ ίʔσΟωʔλʔ ݴޠ XXenv ཁ݅ͰVersionࢦఆͳͲʹରԠ͢ΔͨΊ ϛυϧΣΞ ιʔε͔ΒίϯύΠϧٴͼBinary൛Λར༻ ཁ݅ͰVersionࢦఆͳͲʹରԠ͢ΔͨΊ ϥΠϒϥϦ
ඞཁ͋Ειʔε͔ΒίϯύΠϧ ཁ݅ͰVersionࢦఆͳͲʹରԠ͢ΔͨΊ Πϯελϯε෦ consulͬͯΔΑʂίϯύΠϧ͚ͬ͜͏ͯ͠ΔΑʂ
twemproxy supervisord vuls ͍Ζ͍Ζͳݴޠ ͍Ζ͍ΖͳϛυϧΣΞ ͍Ζ͍ΖͳతͷγεςϜ
γεςϜʹ͍Ζ͍Ζ͋Δɾɾɾ ɾzݹ͍ͷzΒɾɾɾ ɾzྺ࢙zΒɾɾɾ ɾzഎܠzΒɾɾɾ ɾzࣄzΒɾɾɾ 31.͚ͩͰߏ͢Δ͜ͱ΄΅ͳ͍ɾɾɾ ৽نͷઃܭɾߏஙग़དྷΔݶΓ࠷৽൛Ͱ
લஔ͖͜͜·Ͱʂ
ຊ 31.ʹؔͳ͍ͷ Ͳ͏ͬͯTDBOͨ͠Β͍͍͔ɾɾɾ
WVMTDPOpHUPNM [servers.HOSTNAME] host = "HOSTNAME" cpeNames = [ "cpe:/a:djangoproject:django:1.6", ]
↑ ඥ͚ͳ͍ͱ͍͚ͳ͍ ͋͞Ͳ͏ͬͯ͜ͷใΛɾɾɾ cpeNamesͰ ֦ுͰ͖Δ͕ɾɾɾ ↓
DWFTRMJUFDQFTUBCMF CREATE TABLE "cpes" ( "id" integer primary key autoincrement,
"created_at" datetime, "updated_at" datetime, "deleted_at" datetime, "jvn_id" integer, "nvd_id" integer, "cpe_name" varchar(255), "part" varchar(255), "vendor" varchar(255), "product" varchar(255), "version" varchar(255), "update" varchar(255), "edition" varchar(255), "language" varchar(255) ); ←͜ΕͰselect͢Εʂ
31.Ҏ֎ͷऩू kv vuls/[hostname] /usr/local, /optԼͷঢ়ଶΛऩू cronͰconsulͷkey value storeʹJSONͷܗͰอଘ
KTPOGPSNBU { "middleware": [ { "name":"[middleware name]", "version":"[version]", "update":"[patch version]"
} ], "update_time": "YYYY-MM-DD HH:MM:MM", "host": { "Πϯελϯεใ͍Ζ͍Ζ", "node_name": "yusuke" } } ඞཁͳใΛϦετͰ
8FC"QQMJDBUJPO'SBNFXPSLͱ͔ʁ middleware: - name: [product name] version: [version num] update:
[patch version] ↑ औಘͰ͖ͳ͍ͷʹ͍ͭͯYAMLͰҙʹ֦ு ͱ͍ͬͯϑϨʔϜϫʔΫ͕ΆΜΆΜมΘΔ͜ͱͳ͍ͷͰɾɾɾ ͕͢͞ʹ͍Ζ͍Ζ͋ͬͯࣗಈऩूϜϦͩͬͨ͆
࣮ࡍͷσʔλ͜Μͳײ͡ /opt/envutils/utils.pl middleware
WVMTͷUPNMੜ 1. consul HTTP API /v1/catalog/nodes 2. consul KV vuls/[hostname]
JSONऔಘ 3. HostใͷTagΛར༻֦ͯ͠ுͷYAMLऔಘ 4. cve sqliteʹJSONͷproduct, version, updateͰselect 5. Template EngineͰvulsͷtomlΛग़ྗ consul kv vuls/[instance name] cve.sqlite3 script vuls config.toml extend YAML Instance Tagʹඥͮ͘:".- 100͘Β͍Ͱ 10ඵͰྃʂ
͋ͱTDBOΛճ͚ͩ͢ʂ ࣮ࡍcronͰճͯͨ͠Γ͢Δʂ
ΊͰͨ͠ΊͰͨ͠
QIQΒɺOHJOYΒɺSFEJTΒ ख์͠Ͱ͍Ζ͍Ζ੬ऑੑใΛݕ͠ ରࡦ͢Δ͜ͱ͕Մೳʹʂ ͋Δݹ͍γεςϜΛTDBOͨ͠Β ͻͱͭͷαʔόͰ݅Ҏ্ͰͯϏϏͬͨʂ
*OJU4DSJQUʹΑΔӡ༻ͷ؆қԽ /etc/init.d/vuls /etc/init.d/vuls: vuls init script help: example: /etc/init.d/vuls [sub
command] sub command: start: start server stop: stop server restart restart server status server status 1st_setup setup, update_week, reconfig, prepare, start full_setup setup, update_full, reconfig, prepare, start reconfig: make config setup: setup cve/nve database prepare: prepare instance scan: scan history: scan history report: for consul service report tui: Terminal User Interface update cve database update_entire: dictionary entire update update_month: dictionary month update update_week: dictionary week update update_full: dictionary full update go-cve-dictionaly/vulsͷ ىಈͱαϙʔτεΫϦϓτͱͯ͠ configੜͳͲͷϥούʔͱ͔ σΟϨΫτϦπϦʔͷੜͱ͔ ΖΖɾɾɾ ·ΔͬͱͬͯΔͷͰ ࣾͷΤϯδχΞʹઆ໌ཁΒͣ
ൃදҎ্ʂ
ΑΖ͓͘͠ئ͍͠·͢ʂ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ ࣭͋͝Γ·ͨ͠Β͓ؾܰʹʂ ୩ ༞հ facebook: yusuke.exzm