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 Server" / Vuls Server
Search
Teppei Fukuda
August 27, 2018
7.5k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
新機能 "Vuls Server" / Vuls Server
ワンライナーで始めるパッチマネジメント
Teppei Fukuda
August 27, 2018
More Decks by Teppei Fukuda
See All by Teppei Fukuda
Simplify Cloud Native Security with Trivy
knqyf263
2
5.9k
セキュリティ・キャンプ全国大会2020 オンライン B8 / seccamp2020-b8
knqyf263
5
1.5k
企業でOSS開発をするということ
knqyf263
0
29k
Trivy - Container vulnerability scanning
knqyf263
1
1.9k
車輪の再発明 / reinventing the wheel
knqyf263
1
1.4k
HelmとService Brokerで始める検証環境自動構築 / Helm and Service Broker
knqyf263
7
2.8k
OSSの脆弱性を探すためにやったこと
knqyf263
16
4.1k
今すぐVulsにContributeするべき5つの理由
knqyf263
1
840
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
28
2.7k
Become a Pro
speakerdeck
PRO
31
6.2k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
350
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
The Pragmatic Product Professional
lauravandoore
37
7.4k
It's Worth the Effort
3n
188
29k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
The World Runs on Bad Software
bkeepers
PRO
72
12k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.4k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
Abbi's Birthday
coloredviolet
3
9.3k
Transcript
৽ػೳ "Vuls Server" ʙϫϯϥΠφʔͰ࢝ΊΔύονϚωδϝϯτʙ VulsࡇΓ#4 @knqyf263
ࣗݾհ • ా మฏʢ@knqyf263ʣ • ΰʔϧυδϜͷϓϩςΠϯ ඒຯ͗͢͠Δ • ҰҿΜͩΒଞͷҿΊ ͳ͘ͳͬͨ
ຖۜ࠲ͰΦγϟϨϥϯν
ຊͷ༰ • ϚονϣΛͨͬͨ͢Ұͭͷํ๏ • Vuls Serverͷհ ͕࣌ؒͳ͍ͷͰׂѪ
৽ػೳ୲ • NIRVANA࿈ܞɹˠɹ࡞ͬͨ • CPEݕਫ਼্ɹˠɹϚονϯάϥΠϒϥϦ࡞ͬͨ • ύονະఏڙͷ੬ऑੑݕɹˠ ɹ੬ऑੑDBߏஙπʔϧ࡞ͬͨ • αʔόϞʔυɹˠɹ࡞ͬͨ
େମ࡞ͬͨ
ैདྷͷVuls Vuls Scan Server Target Server Vuls Scan Server =
Target Server ssh ϦϞʔτεΩϟϯ (Agent-less) ϩʔΧϧεΩϟϯ (Agent) Target Server ssh Scan Vuls Scan Server = Target Server Scan
ϦϞʔτεΩϟϯ Scan Server ssh Target Server Target Server ssh
ϩʔΧϧεΩϟϯ Vuls Scan Server = Target Server Scan Vuls Scan
Server = Target Server Scan
͍͔ͭ͘ͷ͕ଘࡏ
SSHஅΒΕΔύλʔϯ
7VMTͰ44)ͯ͠ ϦϞʔτεΩϟϯ ͍ͨ͠Ͱ͢ ಘମͷΕͳ͍ πʔϧͰ44)ͤ͞·ͤΜ
"OTJCMFͳΒطʹ ͬͯΔΜ͚ͩͲͶʙʙ
ٽ͖৸ೖΓ
όΠφϦΠϯετʔϧ அΒΕΔύλʔϯ
7VMTΠϯετʔϧͯ͠ ϩʔΧϧεΩϟϯ ͍ͨ͠Ͱ͢ ಘମͷΕͳ͍ όΠφϦೖΕ·ͤΜ
த͕͔Βͳ͍ͱͶʙ
ٽ͖৸ೖΓ
݁ՌͷूʹࠔΔύλʔϯ
ڥ͕ҟͳΔͨΊෳVulsΛΠϯετʔϧ Vuls Scan Server Target Server ssh αʔϏε A Target
Server ssh Vuls Scan Server Target Server ssh Target Server ssh αʔϏε B ωοτϫʔΫతʹૄ௨ੑ͕ͳ͔ͬͨΓ ݁ՌΛͲ͏ू ͨ͠Βྑ͍ͷʁ
ϩʔΧϧεΩϟϯ Scan ݁ՌΛͲ͏ू ͨ͠Βྑ͍ͷʁ ੬ऑੑ%#શͯʹμϯϩʔυ ͢Δඞཁ͕͋Δͷʁ Scan Scan Scan
ͦΜͳਓʹ ৽ػೳ “Vuls Server”
͍ํ $ vuls server -listen 0.0.0.0:5515 ... [Aug 25 20:17:45]
INFO [localhost] Listening on 0.0.0.0:5515 ؆୯
͜ͷαʔόʹରͯ͠ ߏใΛPOST͢Δ͚ͩͰOK
ίϚϯυྫ $ curl -X POST --data-binary "`rpm -qa --queryformat "%{NAME}
%{EPOCHNUM} %{VERSION} %{RELEASE} %{ARCH} \n"`" http://192.168.33.1:5515/vuls ʢ্ͷྫͰϔομΛলུ͍ͯ͠ΔͷͰಈ͔ͳ͍ʣ SQNίϚϯυͷ݁ՌΛ1045͍ͯ͠Δ ຊ࣭తʹ͜Ε͚ͩ
Vuls Server Server ᶄ)5511045 ᶅεΩϟϯ݁Ռ ᶃrpm࣮ߦ Ϩεϙϯε%#ʹೖΕΔͳΓͳΜͳΓࣗ༝
Vuls Server Server )5511045 rpm࣮ߦ อଘ εΩϟϯ݁ՌΛαʔόʹอଘ͢Δ͜ͱՄೳ
Content-Type • text/plain • curlͱ͔Ͱୟ͘༻ • application/json • ϓϩάϥϜͰܗͯ͠POST͢Δ༻
Endpoint • /vuls • JSONͱ͔ͷ͛ઌ • /health • ϔϧενΣοΫ༻
ٯऻฤ
SSHஅΒΕΔύλʔϯ
7VMTͰ44)ͯ͠ ϦϞʔτεΩϟϯ ͍ͨ͠Ͱ͢ ಘମͷΕͳ͍ πʔϧͰ44)ͤ͞·ͤΜ
"OTJCMFͳΒطʹ ͬͯΔΜ͚ͩͲͶʙʙ
"OTJCMFͰ ྑ͍Ͱ͢Αʢসʣ
Vuls Server Server ᶄ)5511045 εΩϟϯͯ͠อଘ ᶃ44) "OTJCMFͰऩूͨ͠ߏใΛ7VMT4FSWFSʹ͛Δ ୭͔044Ͱ ࡞ͬͯཉ͍͠
όΠφϦΠϯετʔϧ அΒΕΔύλʔϯ
7VMTΠϯετʔϧ͠ ͯϩʔΧϧεΩϟϯ ͍ͨ͠Ͱ͢ ಘମͷΕͳ͍ όΠφϦೖΕ·ͤΜ
த͕͔Βͳ͍ͱͶʙ
ϫϯϥΠφʔͰ͚͢Ͳ ཧղͰ͖·ͤΜ͔ʁʢসʣ
ϫϯϥΠφʔͰOK Server )5511045 rpm࣮ߦ εΩϟϯͯ͠อଘ curl DVSMͳͲͷίϚϯυΛDSPOʹઃఆ͢Δ͚ͩ
݁ՌͷूʹࠔΔύλʔϯ
ϩʔΧϧεΩϟϯ Scan ݁ՌΛͲ͏ू ͨ͠Βྑ͍ͷʁ ੬ऑੑ%#શͯʹμϯϩʔυ ͢Δඞཁ͕͋Δͷʁ Scan Scan Scan
Vuls ServerʹPOSTͯ͠ू Scan Scan Scan Scan Server อଘ ੬ऑੑ%#αʔόʹ͚ͩ μϯϩʔυ͢Ε0,
-to-httpΦϓγϣϯͰૹ৴Մೳ $ vuls report -to-http vuls-server.local:5515 ؆୯
αϯϓϧσʔλ POST /vuls HTTP/1.1 User-Agent: XXX Host: 192.168.33.1:5515 Content-Type: text/plain
X-Vuls-Server-Name: centos6.localdomain X-Vuls-OS-Family: centos X-Vuls-OS-Release: 6.9 X-Vuls-Kernel-Release: 2.6.32-696.30.1.el6.x86_64 Content-Length: 13802 cryptsetup-luks-libs 0 1.2.0 11.el6 x86_64 filesystem 0 2.4.30 3.el6 x86_64 hal 0 0.5.14 14.el6 x86_64 ncurses-base 0 5.7 4.20090207.el6 x86_64 ... SQNίϚϯυͷ ݁Ռͦͷ·· +40/ͰૹΔ͜ͱՄೳ
rpmίϚϯυ $ rpm -qa --queryformat "%{NAME} %{EPOCHNUM} %{VERSION} %{RELEASE} %{ARCH}\n"
... bash 0 4.1.2 48.el6 x86_64 ncurses-base 0 5.7 4.20090207.el6 x86_64 abrt-tui 0 2.0.8 43.el6.centos x86_64 nss-softokn-freebl 0 3.14.3 23.3.el6_8 x86_64 rsyslog 0 5.8.10 10.el6_6 x86_64 libattr 0 2.4.44 7.el6 x86_64 hypervfcopyd 0 0 0.17.20150108git.el6 x86_64 dbus-libs 1 1.2.24 8.el6_6 x86_64 cronie-anacron 0 1.4.4 16.el6_8.2 x86_64 zip 0 3.0 1.el6_7.1 x86_64 ... ߦύοέʔδ
X-Vuls-Server-Nameϔομ POST /vuls HTTP/1.1 User-Agent: XXX Host: 192.168.33.1:5515 Content-Type: text/plain
X-Vuls-Server-Name: centos6.localdomain X-Vuls-OS-Family: centos X-Vuls-OS-Release: 6.9 X-Vuls-Kernel-Release: 2.6.32-696.30.1.el6.x86_64 Content-Length: 13802 cryptsetup-luks-libs 0 1.2.0 11.el6 x86_64 filesystem 0 2.4.30 3.el6 x86_64 hal 0 0.5.14 14.el6 x86_64 ncurses-base 0 5.7 4.20090207.el6 x86_64 ... αʔό໊ʢదʹܾΊͯྑ͍ʣ
X-Vuls-OS-Familyϔομ POST /vuls HTTP/1.1 User-Agent: XXX Host: 192.168.33.1:5515 Content-Type: text/plain
X-Vuls-Server-Name: centos6.localdomain X-Vuls-OS-Family: centos X-Vuls-OS-Release: 6.9 X-Vuls-Kernel-Release: 2.6.32-696.30.1.el6.x86_64 Content-Length: 13802 cryptsetup-luks-libs 0 1.2.0 11.el6 x86_64 filesystem 0 2.4.30 3.el6 x86_64 hal 0 0.5.14 14.el6 x86_64 ncurses-base 0 5.7 4.20090207.el6 x86_64 ... ॏཁ SFEIBUDFOUPTEFCJBOVCVOUVͳͲͷܾΊΒΕͨจࣈྻ
X-Vuls-OS-Releaseϔομ POST /vuls HTTP/1.1 User-Agent: XXX Host: 192.168.33.1:5515 Content-Type: text/plain
X-Vuls-Server-Name: centos6.localdomain X-Vuls-OS-Family: centos X-Vuls-OS-Release: 6.9 X-Vuls-Kernel-Release: 2.6.32-696.30.1.el6.x86_64 Content-Length: 13802 cryptsetup-luks-libs 0 1.2.0 11.el6 x86_64 filesystem 0 2.4.30 3.el6 x86_64 hal 0 0.5.14 14.el6 x86_64 ncurses-base 0 5.7 4.20090207.el6 x86_64 ... ॏཁ ͱ͔ͳͲͷจࣈྻ
X-Vuls-Kernel-Releaseϔομ POST /vuls HTTP/1.1 User-Agent: XXX Host: 192.168.33.1:5515 Content-Type: text/plain
X-Vuls-Server-Name: centos6.localdomain X-Vuls-OS-Family: centos X-Vuls-OS-Release: 6.9 X-Vuls-Kernel-Release: 2.6.32-696.30.1.el6.x86_64 Content-Length: 13802 cryptsetup-luks-libs 0 1.2.0 11.el6 x86_64 filesystem 0 2.4.30 3.el6 x86_64 hal 0 0.5.14 14.el6 x86_64 ncurses-base 0 5.7 4.20090207.el6 x86_64 ... ݕਫ਼ʹӨڹ VOBNFSͰಘΒΕΔݱࡏͷΧʔωϧϦϦʔε
HTTPϔομ • X-Vuls-Server-Nameʢoptionalʣ • ͜ͷͰαʔόΛࣝผ͍ͯ͠ΔͨΊɺಉ໊͡લΛ͚ͭΔͱอଘ࣌ʹ্ॻ͖͞ΕΔ • X-Vuls-OS-Familyʢrequiredʣ • redhat/centos/ubuntu/debianͳͲ •
X-Vuls-OS-Releaseʢrequiredʣ • 6.916.04ͳͲͷϦϦʔε൪߸ • X-Vuls-Kernel-Releaseϔομʢrequiredʣ • 2.6.32-696.30.1.el6.x86_64ͳͲͷuname -rͰಘΒΕΔ • X-Vuls-Kernel-Releaseϔομʢoptionalʣ • DebianͷΈඞਢʢuname -aͰಘΒΕΔࠨ͔Β7൪͙Β͍ͷʣ
ൃలฤ
طଘͷߏཧπʔϧͱͷ౷߹ • Ansible • Chef • osquery • AWS Systems
Manager • etc.
AWS Systems Manager ΠϯϕϯτϦϚωʔδϟʔ • AWS Systems Manager ΠϯϕϯτϦΛ༻ͯ͠ɺAmazon EC2
Πϯελϯε͓ΑͼΦϯϓϨϛεαʔόʔɺ·ͨϋ ΠϒϦουڥͷԾϚγϯ (VM) ͔ΒɺΦϖϨʔςΟϯά γεςϜ (OS)ɺΞϓϦέʔγϣϯɺΠϯελϯεͷϝλ σʔλΛऩूͰ͖·͢ɻϝλσʔλΛরձ͢ΔͱɺιϑτΣ ΞϙϦγʔʹैͬͯιϑτΣΞͱઃఆΛ࣮ߦ͍ͯ͠ΔΠϯ ελϯεͱɺߋ৽͕ඞཁͳΠϯελϯεΛ͘͢ѲͰ͖ ·͢ɻ IUUQTEPDTBXTBNB[PODPNKB@KQTZTUFNTNBOBHFSMBUFTUVTFSHVJEFTZTUFNTNBOBHFSJOWFOUPSZIUNM
SSMΤʔδΣϯτ͕ Πϯετʔϧ͞Ε͍ͯΕ ৭ʑใΛऩूͯ͘͠ΕΔ
ૣΠϯετʔϧͩʂ
SSMΤʔδΣϯτͷΠϯετʔϧ • SSM ΤʔδΣϯτ ɺσϑΥϧτͰɺ࣍ͷ Amazon EC2 Amazon Machine Image
(AMI) ʹΠϯετʔϧ͞Ε·͢ɻ • Windows Server (ͯ͢ͷ SKU) • Amazon Linux • Amazon Linux 2 • Ubuntu Server 16.04 • Ubuntu Server 18.04 IUUQTEPDTBXTBNB[PODPNKB@KQTZTUFNTNBOBHFSMBUFTUVTFSHVJEFTTNBHFOUIUNM
طʹೖͬͯΔΒ͍͠
IAMϩʔϧͷઃఆ ʢͱΠϯϕϯτϦηοτΞοϓʣ ͚ͩ͢Εྑ͍
None
AWS Systems Manager ࿈ܞ Server ᶄ)5511045 εΩϟϯͯ͠อଘ ᶃߏใऔಘ "844ZTUFNT.BOBHFS͔Βใऔಘͯ͠7VMT4FSWFSʹ͛Δ "844ZTUFNT.BOBHFS
ΠϯϕϯτϦϚωʔδϟʔ దͳεΫϦϓτ
SSM࿈ܞͷ੍ • ศར͗ͯ͢࠷ߴΈ͍ͨʹॻ͖·੍͕͕ͨ͋͠Γ·͢ • RHEL/CentOS͡Όͳ͍ͱಈ͖·ͤΜ • Ubuntu/Debianιʔεύοέʔδ͕ඞཁͳͨΊ • Amazon LinuxOVALະରԠ
• RHEL/CentOSSSMΤʔδΣϯτೖͬͯͳ͍ • ͱݴ͑1ίϚϯυͰೖΔ
Proof Of Concept • αϯϓϧίʔυΛ࡞Γ·ͨ͠ https://github.com/knqyf263/ssm-to-vuls • EC2ΠϯελϯεIDͱVuls ServerͷΞυϨεΛࢦఆ͢Δ ͱΠϯϕϯτϦΛऔಘͯ͠JSONʹܗͯ͠Vuls
Server ʹPOST͠·͢ • ࣮ূίʔυͰ͋Γ࣮༻ʹ͑͏ΔͷͰͳ͍ͨΊɺ օ͞Μ͕࠷ߴͷπʔϧΛ࡞ͬͯ͘ΕΔ͜ͱΛظ͠·͢
ಉ༷ʹଞͷߏཧπʔϧͱ ࿈ܞͰ͖Δͣʂʂ
શ෦Vuls ServerͰྑ͍ͷͰʁ
Vuls Serverͷ੍ • ରԠOS • RHEL/CentOS/Ubuntu/Debian • Amazon LinuxFreeBSDະରԠ •
ݕਫ਼ • ΤʔδΣϯτʹൺ͔ͯᷮʹྼΔ߹͕͋Δʢكʣ • Ճใ • ΤʔδΣϯτͰϓϩηεใߋ৽ޙͷύοέʔδόʔ δϣϯͳͲऔಘ
ͱݴ༷͑ʑͳΛղܾՄೳ Γ࠷ߴ
ίϯςφͱͯ͠LTʹσϓϩΠ͢Δͷ؆୯ ࣌ؒͳ͍ͷͰׂѪ
ΓVuls Server࠷ߴ ·ͱΊ ଟ·ͩόά͋ΔͷͰ*TTVFͬͯ·͢