Slide 1

Slide 1 text

DockerΛ࢖ͬͯ OSίϚϯυΠϯδΣΫγϣϯ͕ ग़དྷΔSlack botΛ࡞ͬͨ࿩

Slide 2

Slide 2 text

1 DockerΛ࢖ͬͯ OSίϚϯυΠϯδΣΫγϣϯ͕ ग़དྷΔSlack botΛ࡞ͬͨ࿩

Slide 3

Slide 3 text

2 DockerΛ࢖ͬͯ OSίϚϯυΠϯδΣΫγϣϯ͕ ग़དྷΔSlack botΛ࡞ͬͨ࿩

Slide 4

Slide 4 text

Dockerͱ͸ • ίϯςφܕԾ૝ԽΛߦ͏ιϑτ΢ΣΞ • 2013೥ʹొ৔ • GoݴޠͰॻ͔Ε͍ͯΔ • ίϯςφͱ͸Ծ૝OSͷ͜ͱ • Ұ୆ͷϚγϯͰෳ਺ͷOS͕ಈ࡞͢Δ • Virtual BoxͳͲͷԾ૝Ϛγϯͱ͸গ͠ҧ͏ 3

Slide 5

Slide 5 text

Dockerͱ͸ 4 ϕου ϕου ϕου τΠϨ ෩࿊ Ω ο ν ϯ ҰݢՈ ෺ཧϚγϯ ௞ିϚϯγϣϯ Ծ૝Ϛγϯ γΣΞϋ΢ε ίϯςφ *ࢀߟ: Docker࣮ઓ׆༻ ΨΠυ(ϚΠφϏग़൛)

Slide 6

Slide 6 text

Dockerͱ͸ ίϯςφ Ծ૝Ϛγϯ OSͷىಈ ଎͍ ஗͍ Ϧιʔεফඅ গͳ͍ ଟ͍ OSͷछྨ LinuxͷΈ ͳΜͰ΋ 5 ίϯςφ(Docker)ͱԾ૝Ϛγϯ(Virtual Box౳)ͷൺֱ *ࢀߟ: Docker࣮ઓ׆༻ ΨΠυ(ϚΠφϏग़൛)

Slide 7

Slide 7 text

6 DockerΛ࢖ͬͯ OSίϚϯυΠϯδΣΫγϣϯ͕ ग़དྷΔSlack botΛ࡞ͬͨ࿩

Slide 8

Slide 8 text

7 DockerΛ࢖ͬͯ OSίϚϯυΠϯδΣΫγϣϯ͕ ग़དྷΔSlack botΛ࡞ͬͨ࿩

Slide 9

Slide 9 text

OSίϚϯυΠϯδΣΫγϣϯͱ͸ • Ϣʔβ͔ΒͷೖྗΛड͚෇͚ΔWebαΠτͰ ϓϩάϥϜͷύϥϝʔλʹOSʹର͢Δ ίϚϯυΛฆΕͤͯ͞ෆਖ਼ૢ࡞͢Δ߈ܸ 8 ෆਖ਼ͳίϚϯυ ΫϥοΧʔ ੬ऑੑͷ͋Δ Webαʔό ෆਖ਼ૢ࡞ ৘ใ࿙Ӯ

Slide 10

Slide 10 text

OSίϚϯυΠϯδΣΫγϣϯͱ͸ • ೚ҙίϚϯυΛ࣮ߦ͞ΕΔͷ͸ॏେͳ੬ऑੑ • ύεϫʔυͷ࿙Ӯ • cat /etc/passwd • ൿີ伴ͷ࿙Ӯ • cat ~/.ssh/id_rsa • αʔόͷσʔλશফ͠ • rm –rf / 9

Slide 11

Slide 11 text

10 DockerΛ࢖ͬͯ OSίϚϯυΠϯδΣΫγϣϯ͕ ग़དྷΔSlack botΛ࡞ͬͨ࿩

Slide 12

Slide 12 text

11 DockerΛ࢖ͬͯ OSίϚϯυΠϯδΣΫγϣϯ͕ ग़དྷΔSlack botΛ࡞ͬͨ࿩

Slide 13

Slide 13 text

Slack botͱ͸ • Slack͸օ͞Μ͓ೃછΈͷνϟοτπʔϧ • botͱ͸ػցʹΑΔࣗಈൃݴγεςϜ • αʔϏε͔Βఏڙ͞Ε͍ͯΔAPIΛୟ͍ͯ࡞Δ • ࠓճ͸Python੡ͷslackhq/python-rtmbotͱ͍͏ FrameworkΛ࢖ͬͨ 12

Slide 14

Slide 14 text

Slack botͱ͸ • ιʔείʔυ • https://github.com/odanado/slackbot-os- command-injection 13 OSίϚϯυΠϯδΣΫγϣϯ͕ ग़དྷΔSlack botͷ͍Β͢ͱ

Slide 15

Slide 15 text

શମͷྲྀΕ 14 @෇͖Ͱ ίϚϯυૹ৴

Slide 16

Slide 16 text

σϞ • ͝ҰॹʹͲ͏ͧ • Կͯ͠΋େৎ෉Ͱ͢ • ϋοΩϯά͠Α͏ʂʂ 15 ࣮ࡍʹOSίϚϯυΠϯδΣΫγϣϯΛ ߦ͍·͢

Slide 17

Slide 17 text

ࠓޙ • bashҎ֎ͷݴޠΛ࣮ߦͰ͖ΔΑ͏ʹͳΔ • Cݴޠ • Java • Python • Ruby • PHP • DockerͷಛੑΛ׆͔ͯ͠෦಺αʔόΛ෦һ͕ ࣗ༝ʹ࢖͑ΔΑ͏ʹ͠·͢ • ࡞ۀ͕஗Ε͍ͯͯ΋͏͠͹Β͕͔͔࣌ؒ͘Γ·͢ • ͝ΊΜͳ͍͞... 16

Slide 18

Slide 18 text

·ͱΊ • Docker͸ίϯςφԾ૝ܕԽΛߦ͏πʔϧ • ߴ଎ʹىಈ͠ɼϦιʔεͷফඅྔ͕গͳ͍ • ࣗ෼͚ͩͷ؀ڥ͕खʹೖΔ • OSίϚϯυΠϯδΣΫγϣϯ͸ॏେͳ੬ऑੑ • ύεϫʔυͷ࿙Ӯ΍σʔλվ᜵ͷةݥ • Slack bot͸Slack্Ͱͷࣗಈൃݴπʔϧ • ࠓճ͸Python੡ͷFrameworkΛ࢖ͬͨ 17