Slide 1

Slide 1 text

੬ऑੑݕ஌πʔϧVulsͷಋೖΛ ͔ͯ͠Β൒೥ܦͬͯΈͯ Adachi Ryo/SRE

Slide 2

Slide 2 text

ΞδΣϯμ ▸ ࣗݾ঺հɺࢲ͕ೖࣾ͢Δલ ▸ SREνʔϜʹͳ͔ͬͯΒ ▸ SREνʔϜͷओͳۀ຿ɺར༻͍ͯ͠Δٕज़ ▸ Vulsͱ͸ɺͿͬͪΌ͚੬ऑੑରԠͬͯ… ▸ Vulsߏ੒ਤɺΠϯετʔϧํ๏ ▸ con fi g.tomlɺVulsίϚϯυ ▸ Vuls repo Vuls v0.4.0 ▸ ·ͱΊ

Slide 3

Slide 3 text

ࣗݾ঺հ ▸ Adachi Ryo ▸ @adachin0817 ▸ 2017/05~ ▸ ܦݧ 
 ࣾ಺SE͔ΒϗεςΟϯάɺ 
 ΞυςΫͷΠϯϑϥΤϯδχΞ ▸ झຯ 
 HIPHOP

Slide 4

Slide 4 text

ࢲ͕ೖࣾ͢Δલ ▸ Πϯϑϥϝϯόʔ͕͍ΔͷʹνʔϜͱͯ͠׆ಈͯ͠ͳ͔ͬͨ ▸ ͲΜͳϛυϧ΢ΣΞ࢖ͬͯΔͳͲϝϯόʔ͕೺Ѳ͍ͯ͠ͳ͍ ▸ ΠϯϑϥϦϙδτϦ͕ͳ͍ ▸ infrastructure as code΋΍ͬͯͳ͍ ▸ खಈͰΠϯετʔϧ͔aws cliͰ؅ཧ͍ͯ͠Δ ▸ ଐਓԽ͍ͯ͠Δ

Slide 5

Slide 5 text

SREνʔϜ 
 ͱͯ͠ಈ͜͏ʂʂ

Slide 6

Slide 6 text

(28ষ) 
 SREͷ੒௕ΛՃ଎͢Δํ๏: ৽ਓ͔ΒΦϯίʔϧ୲ ౰ɺͦͯͦ͠ͷઌ΁

Slide 7

Slide 7 text

SREͷఆٛ ▸ αΠτͷ৴པੑΛอূ͢Δ(αΠτ৴པੑΤϯδχΞ) ▸ ӡ༻ۀ຿ͱαΠτͷ৴པੑ޲্ͷ2ͭͷ໾ׂΛ୲͏ ▸ ੵۃతʹίʔυΛهड़ ▸ ӡ༻ΛΫϥ΢υ΍ࣗಈԽʹஔ͖׵͑Δ

Slide 8

Slide 8 text

SREʹٻΊΒΕΔ΋ͷ ᶃ ▸ Πϯϑϥٕज़ 
 TCP/IPɺHTTPͳͲͷωοτϫʔΫϓϩτίϧʹ͍ͭͯͷ஌ ͔ࣝΒɺύϑΥʔϚϯεվળɺϛυϧ΢ΣΞͷػೳ஌ࣝ ▸ ΞϓϦέʔγϣϯٕज़ 
 Կ͔͠Βͷϓϩάϥϛϯάݴޠ஌ࣝ 
 ʢPHPɺPythonɺRubyͳͲʣ 
 ΋ͪΖΜΠϯϑϥϓϩϏδϣχϯά΋

Slide 9

Slide 9 text

SREʹٻΊΒΕΔ΋ͷ ᶄ ▸ ηΩϡϦςΟ஌ࣝ 
 ࠷௿ݶͷηΩϡϦςΟ஌ࣝ͸ඞਢ ▸ ίϛϡχέʔγϣϯೳྗ 
 ϝϯόʔ΍։ൃνʔϜͱͷڞ༗΍ 
 ڠྗ͠ͳ͕Β։ൃΛߦ͏ͨΊ

Slide 10

Slide 10 text

SRE͸ΤϯδχΞϦϯάʹՃ͑ͯಛ௃Λൃش͢Δ ▸ ༏ΕͨϦόʔεΤϯδχΞϦϯάͷεΩϧΛ࣋ͭ 
 →γεςϜͷಈ࡞Λཧղ͢Δ ▸ ౷ܭతʹߟ͑Δೳྗ͕ඞཁ 
 →෼ੳ΍ൺֱΛ͏·͘ߦ͑ΔΑ͏ʹ܇࿅͢Δ ▸ ྟػԠมʹߦಈ 
 →ࠜຊతͳݪҼΛൃݟʂ 


Slide 11

Slide 11 text

SREڭҭํ๏

Slide 12

Slide 12 text

SREνʔϜʹͳ͔ͬͯΒ ▸ ো֐ରԠ͸ϝϯόʔશһͰ ▸ infrastructure as code͸ඞਢ ▸ wikiͷॻ͖ํͳͲڭ͑Δ ▸ ேձΛ࢝Ίͨ 
 ɾࡢ೔ԿΛ΍ͬͨͷ͔ 
 ɾࠓ೔ԿΛ΍Δͷ͔ 
 ɾԿʹͦΜͳʹϋϚ͍ͬͯΔͷ͔ 
 ɾڞ༗ࣄ߲ ▸ શϓϩδΣΫτରԠͰ͖ΔΑ͏ʹ

Slide 13

Slide 13 text

SREνʔϜͷओͳۀ຿ ▸ αʔόɺϛυϧ΢ΣΞͷՄ༻ੑͷҡ࣋ɾ޲্ ▸ αʔόɺϛυϧ΢ΣΞͷύϑΥʔϚϯεͷ޲্ ▸ ϩάऩू/ՄࢹԽɺ෼ੳج൫ͷߏஙɺӡ༻(Redash) ▸ αʔόϓϩϏδϣχϯά(Terraform,Ansible) ▸ ηΩϡϦςΟ/੬ऑੑͷ୲อ(Vuls) ▸ ։ൃ؀ڥͳͲͷϝϯς(Vagrant,docker) ▸ 24࣌ؒ؂ࢹରԠ(zabbix) ▸ DevOpsνʔϜͱͯ͠ۀ຿վળ

Slide 14

Slide 14 text

VULS஌ͬͯ·͔͢?

Slide 15

Slide 15 text

ҧ͍·͢

Slide 16

Slide 16 text

VULSͱ͸ ▸ ʮVULnerability Scannerʯͷུ ▸ ϑϡʔνϟʔΞʔΩςΫτͷਆށࢯɺྛࢯʹΑΔ։ൃ ▸ Linuxαʔόʹଘࡏ͢Δ੬ऑੑΛεΩϟϯ ▸ OSύοέʔδ؅ཧର৅֎ͷϛυϧ΢ΣΞΛεΩϟϯ ▸ ΤʔδΣϯτϨεΞʔΩςΫνϟ(SSH) ▸ ઃఆϑΝΠϧͷςϯϓϨʔτࣗಈੜ੒ ▸ Email΍SlackͳͲ௨஌Մೳʢ೔ຊޠͰͷϨϙʔτ΋Մೳʣ

Slide 17

Slide 17 text

ͿͬͪΌ͚੬ऑੑରԠͬͯ… ▸ ωοτ΍ϝʔϧͰ৘ใΛಘΔ(ݟಀ͕ͪ͠ɺ͔Βͷ์ஔ) ▸ αʔό͕ϨΨγʔͳͷ΋͋ΓɺରԠ͠ͳ͍͍ͯ͘ͱ͔… ▸ ଞʹ΋੬ऑੑ͋ΔͷͰ͸ͱશαʔό΋ௐࠪ͠ͳ͍ͱ͍͚ͳ͍ (ࠓߋযΓ) ▸ ੬ऑੑ಺༰Λ֬ೝ͢Δ͚ͩͰ຾͘ͳΔ ▸ ஍ຯͳ࡞ۀ

Slide 18

Slide 18 text

JVN ੬ऑੑϨϙʔτ @JVNJP

Slide 19

Slide 19 text

ͪͳΈʹ ▸ ੬ऑੑରࡦ৘ใσʔλϕʔεJVN iPediaͷొ࿥ঢ়گ [2017೥ ୈ2࢛൒ظʢ4݄ʙ6݄ʣ70,996݅ʂ

Slide 20

Slide 20 text

ߏ੒ਤ ▸ 2017/05~ ▸ CentOS 6.9 ▸ Zabbix3.0.10 ▸ Vuls v0.3.0 ▸ Go v1.8.3

Slide 21

Slide 21 text

Πϯετʔϧ ํ๏͸ʂʁ

Slide 22

Slide 22 text

Πϯετʔϧํ๏ ▸ ؆୯ͳͷͰׂѪ͍͖ͤͯͨͩ͞·͢ ▸ ࢀߟ͸ࢲͷϒϩάͰ ▸ https://blog.adachin.me/archives/5540 ▸ εΩϟϯ͍ͨ͠αʔόͰࣄલʹઃఆ͓ͯ͘͜͠ͱ 
 ɾvulsϢʔβ( ͳΜͰ΋)NOPASSʹsudoersݖݶΛ͚ͭΔ 
 ɾyum-plugin-changelog͕ೖ͍ͬͯΔ͜ͱ ▸ ↑͜͜Β΁Μ͸AnsibleԽ͓ͯ͘͠΂͖

Slide 23

Slide 23 text

CONFIG.TOML

Slide 24

Slide 24 text

VULSίϚϯυ ▸ vulsσΟΫγϣφϦ(࠷৽੬ऑੑ৘ใߋ৽) 
 $ go-cve-dictionary fetchnvd -last2y 
 $ go-cve-dictionary fetchjvn -latest ▸ vuls dryrun 
 $ vuls con fi gtest ▸ vuls εΩϟϯ 
 $ vuls scan ▸ ݁ՌΛαʔόͰ֬ೝ 
 $ vuls tui ▸ ݁ՌΛslackʹ௨஌ 
 $ vuls report -format-short-text -format-json -cvedb-path=$PWD/cve.sqlite3 -ovaldb- path=$PWD/oval.sqlite3 --lang=ja -to-slack -cvss-over=7

Slide 25

Slide 25 text

ఆظతʹ࣮ߦ͍ͨ͠৔߹ ▸ cronʹ࢓ࠐΊ͹OK ▸ scan࣌ʹϩά͕results഑Լʹཷ·ΔͷͰ࡟আ(5ੈ୅)

Slide 26

Slide 26 text

VULS REPO ▸ Web UI 
 Load Error

Slide 27

Slide 27 text

VULS ΧελϚʔ 
 αϙʔτʹฉ͍ͯΈͨ 
 (2िؒϋϚͬͨͨΊ)

Slide 28

Slide 28 text

VULS SLACK ▸ ͳʹ΍Βେܕόʔδϣϯ 
 ग़Δ͔Β 
 Ξοϓͯ͠ࢼͯ͘͠Εͱʂ

Slide 29

Slide 29 text

2017/08/25 
 V0.4.0 RELEASE!

Slide 30

Slide 30 text

VULS UPDATE TO 0.4.0 ▸ 2017/8/28 ▸ $ vuls -v 
 vuls v0.4.0 0ba490c ▸ $ go version 
 go version go1.9 linux/amd64 ▸ Ξοϓσʔτ͠·ͨ͠ʂ

Slide 31

Slide 31 text

VULS V0.4.0 ▸ εΩϟϯਫ਼౓େ෯޲্ ▸ Ϩϙʔτͷ৘ใྔΞοϓ(?͕ݮΔ) ▸ fast(sudoͳ͠ɺ 
 αʔό௿ෛՙͷεΩϟϯϞʔυ) 
 σϑΥϧτ

Slide 32

Slide 32 text

VULS REPO V0.4.0 ▸ 0.4.0͔Βweb 
 αʔόΛ࣋ͨͳͯ͘΋ 
 OKʹʂ ▸ goͷhttpύοέʔδͰ 
 ಈ͘(μΠδΣετೝূ΋) ▸ Port 5111

Slide 33

Slide 33 text

VULS REPO ▸ ՄࢹԽ͢Δ͜ͱͰ੬ऑੑ͕Ͳͷ͘Β͍͋Δͷ͔൑அͰ͖Δ

Slide 34

Slide 34 text

VULS ੬ऑੑΞοϓσʔτϑϩʔਤ

Slide 35

Slide 35 text

VULS/ZABBIX SERVER ໿1ϲ݄ͷύϑΥʔϚϯε

Slide 36

Slide 36 text

Ͳ͜·Ͱ੬ऑੑରԠ͢Δͷ͔ ▸ ਖ਼௚͢΂ͯΞοϓσʔτ͢Δͷ͸ՙ͕ॏ͍… 
 (Kernel࠶ىಈͱ͔)→ଟ͍ͷͰߜΔඞཁ͕͋Δ ▸ ௚઀ୈࡾऀ͕߈ܸ͠΍ͦ͢͏ͳαʔό 
 (LBͿΒԼ͕ͬͯΔ΋ͷ͸Ϛετ) ▸ ੬ऑੑ0ͱ͍ͬͯ΋ະ஌ͷ΋ͷ΋͋Δ ▸ Ͱ΋੬ऑੑ͸ͪΌΜͱΞοϓσʔτ͢Δํ͕҆৺

Slide 37

Slide 37 text

·ͱΊ ▸ Vulsͷಋೖ͸؆୯ͰӡӦ΋ָͪΜʂ ▸ Vulsͷ͓͔͛Ͱ੬ऑੑରԠΛ๨Εͳ͍ʂ ▸ vuls scan࣌ʹෛՙ΋ͳ͍ʂVulsઐ༻αʔό΋͍Βͳ͍! ▸ ͜Ε͔Β͸Vulsඞਢʂ

Slide 38

Slide 38 text

ߦ͖·͠ΐ͏ʂʂʂ

Slide 39

Slide 39 text

͝ਗ਼ௌ 
 ͋Γ͕ͱ͏ 
 ͍͟͝·ͨ͠!