Upgrade to Pro — share decks privately, control downloads, hide ads and more …

脆弱性管理のベストプラクティスとスレットモニタリング

 脆弱性管理のベストプラクティスとスレットモニタリング

Interlop Tokyo 2018での西村の講演資料です。

Recruit Technologies

June 13, 2018
Tweet

More Decks by Recruit Technologies

Other Decks in Technology

Transcript

  1. ੬ऑੑ؅ཧͷϕετϓϥΫςΟεͱ
    εϨοτϞχλϦϯά
    Interop Tokyo 2018
    גࣜձࣾϦΫϧʔτςΫϊϩδʔζ
    αΠόʔηΩϡϦςΟΤϯδχΞϦϯά෦
    ηΩϡϦςΟΤϯδχΞϦϯάάϧʔϓ Ϛωδϟʔ
    ੢ଜ फߊ

    View Slide

  2. ੢ଜ फߊ
    גࣜձࣾϦΫϧʔτςΫϊϩδʔζ
    αΠόʔηΩϡϦςΟΤϯδχΞϦϯά෦
    ηΩϡϦςΟΤϯδχΞϦϯάάϧʔϓ
    Ϛωʔδϟʔ
    ࠃ಺ܞଳి࿩ϝʔΧʔʹ͓͚ΔηΩϡϦςΟί
    ϯαϧλϯτͳͲΛܦͯɺ೥ΑΓݱ৬ɻ
    ϦΫϧʔτάϧʔϓʹ͓͚ΔηΩϡϦςΟࣄނ
    ͷະવ๷ࢭʹऔΓ૊Ήɻ೥݄ʹ͸ɺ
    Ϣ ʔ β ا ۀ Ͱ ࠃ ಺ ॳ ͱ ͳ Δ Ϩ ο υ ν ʔ Ϝ
    ʮ3&$36*5 3&% 5&".ʯΛࣾ಺ʹൃ଍ɻझ
    ຯ͸ϒϥ΢βͷ੬ऑੑΛ୳͠ग़͠ɺϕϯμʔ͔
    Βಘͨใ঑ۚͰॅ୐ϩʔϯΛฦ͢͜ͱɻ
    ೥ʹՈΛݐͯɺ೥ޙʹ౔஍୅ͷฦࡁΛऴ͑ͨɻ
    ஶॻʹϒϥ΢βϋοΫʢ؂༁ʣɻओͳߨԋྺʹɺ
    $ 0 % & # - 6 & ɺ 1 B D 4 F D

    View Slide

  3. 2017೥Լظ ηΩϡϦςΟ඼࣭άϧʔϓͷϚωʔδϟʔʹ
    ೔༵όάϋϯλʔ
    ηΩϡϦςΟ඼࣭άϧʔϓͷϚωʔδϟʔ

    View Slide

  4. લ೚ͷϚωʔδϟʔ͸ɾɾɾ
    יࢤా তً
    ϦΫϧʔτςΫϊϩδʔζ ࣥߦ໾һ
    ݩ ָఱαΠόʔ൜ࡑରࡦࣨ௕

    View Slide

  5. ݟΑʂ͜ͷ໌Β͔ͳϨϕϧμ΢ϯΛɾɾɾʂʂ
    יࢤా তً
    ϦΫϧʔτςΫϊϩδʔζ ࣥߦ໾һ
    ݩ ָఱαΠόʔ൜ࡑରࡦࣨ௕
    ੢ଜ फߊ
    ೔༵όάϋϯλʔ

    View Slide

  6. ࣗ෼ʹग़ͤΔόϦϡʔͳΜͯ
    ͋ΔΜ΍Ζ͔ɾɾɾ

    View Slide

  7. ϋοʜ
    ͬ͜ʜʜ

    View Slide

  8. ͜Εͩͬ

    View Slide

  9. Hack Everything

    View Slide

  10. • ࢲୡ͕ӦΉηΩϡϦςΟࢪࡦΛϋοΫͯ͠
    • ߹ཧੑ͸ଛͳΘͳ͍··ʹ
    • ςΫχΧϧʹਖ਼͘͠
    • ඒ͘͠εςΩʹ
    • ίετύϑΥʔϚϯεྑ͘
    • ࢖͍΍͘͢
    • ԿΑΓࣗ෼͕ͨͪϫΫϫΫ͢Δ΋ͷʹຏ্͖͍͛ͯ͘ͱ͍͏͜ͱ
    Hack Everything

    View Slide

  11. ࢲୡͷάϧʔϓ͕໨ࢦ͢ํ޲ੑ

    View Slide

  12. ϦΫϧʔτͰ͸։ൃͷ಺੡Խ͕ਐΜͰ͍Δ
    ͜Ε·Ͱ ݱࡏ
    اըɾ؅ཧ ࣾһ ࣾһ
    ։ൃ ֎෦ҕୗ ࣾһ ʴ֎෦ҕୗ
    R R R R
    R
    R

    View Slide

  13. ͜Ε·Ͱ͸ϧʔϧͱ౷੍Ͱ෺ࣄ͕͏·͘ਐΜͩ
    ηΩϡϦςΟ૊৫
    اըɾ؅ཧ ࣾһ ࣾһ
    ։ൃ ֎෦ҕୗ ࣾһʴ֎෦ҕୗ
    R R
    ݱࡏ
    ͜Ε·Ͱ
    ϧʔϧͳͷͰ΍͍ͬͯͩ͘͞
    Θ͔Γ·ͨ͠ R
    R

    View Slide

  14. ࠓ͸ٕज़త߹ཧੑ͕ٻΊΒΕΔ
    ηΩϡϦςΟ૊৫
    اըɾ؅ཧ ࣾһ ࣾһ
    ։ൃ ֎෦ҕୗ ࣾһʴ֎෦ҕୗ
    R R
    ͜Ε·Ͱ ݱࡏ
    ҙຯͳ͍͠໘౗ͳΜͰ͚͢Ͳ
    R R
    R
    Կނ͜Ε͕ϧʔϧͳͷ͔
    આ໌ͯ͠ཉ͍͠ΜͰ͚͢Ͳ
    R

    View Slide

  15. ࢲୡ΋֤ࣾͷ౷੍෦໳Λ௨ͯ͡౷੍Λ͍ͯͨ͠
    ֤ࣾ
    ౷੍෦໳
    ࣄۀ୲౰ऀ ։ൃऀ
    ࢲୡ
    ΫΦϦςΟϚωδϝϯτ

    View Slide

  16. ͦΕ͸։ൃݱ৔ͷϦΞϧͱ͸ԕ͍ͱ͜Ζ͔Βͷ౷੍ͩͬͨ
    ߈ܸऀͷ
    օ͞Μ
    ֤ࣾ
    ౷੍෦໳
    ࣄۀ୲౰ऀ ։ൃऀ
    ࢲୡ
    ΫΦϦςΟϚωδϝϯτ
    αΠόʔ߈ܸͷ࠷લઢ

    View Slide

  17. ͜Ε͔Β͸ࢧԉͱڠۀͱ͍͏৽ͨͳ࣠Λங͘
    ߈ܸऀͷ
    օ͞Μ
    ֤ࣾ
    ౷੍෦໳
    ࣄۀ୲౰ऀ ։ൃऀ
    ࢲୡ
    ΫΦϦςΟϚωδϝϯτ
    ࢲୡ
    ࢧԉͱڠۀ

    View Slide

  18. ։ൃݱ৔Ͱಘͨؾ෇͖ΛηΩϡϦςΟࢪࡦʹϑΟʔυόοΫ
    ߈ܸऀͷ
    օ͞Μ
    ֤ࣾ
    ౷੍෦໳
    ࣄۀ୲౰ऀ ։ൃऀ
    ࢲୡ
    ΫΦϦςΟϚωδϝϯτ
    ࢲୡ
    ࢧԉͱڠۀ
    ηΩϡϦςΟࢪࡦʹ
    ϑΟʔυόοΫ

    View Slide

  19. 2018೥4݄͔ΒϓϩμΫτ಺੡։ൃ૊৫ͱͷ݉຿ʹ
    ߈ܸऀͷ
    օ͞Μ
    ֤ࣾ
    ౷੍෦໳
    ࣄۀ୲౰ऀ ։ൃऀ
    ࢲୡ
    ΫΦϦςΟϚωδϝϯτ
    αΠόʔηΩϡϦςΟ
    ΤϯδχΞϦϯά෦
    ࢲୡ
    ʢ݉຿ʣϓϩμΫτ
    ΤϯδχΞϦϯά෦

    View Slide

  20. ։ൃऀڭҭͷ࡮৽
    ׆ಈࣄྫ

    View Slide

  21. • ϦΫϧʔτͷ։ൃऀڭҭ͸ू߹ݚमʴڭຊʢ௨শ੨ຊʣ
    • 600ϖʔδΛ௒͑ΔࢴͷࢿྉΛ2017೥ʹWebԽ
    • Webͷڭࡐʹ͋Γ͕ͪͳ໰୊
    • ࣾ಺ΠϯτϥʹڭࡐΛஔ͚ͩ͘
    • ݕࡧੑ͕ѱ͘ɺଟ͘ͷࣾһ͕ͦͷଘࡏΛ஌Βͳ͍
    • ϝϯςφϯε͕ߦ͖ಧ͔ͣɺ࣍ୈʹ಺༰͕௠෗Խ
    ڭࡐΛࢴ͔ΒWebʹ

    View Slide

  22. ٕज़ίϯςϯπΛࣾ֎ల։͢Δ͜ͱͰղܾ
    • ݴޠʗ؀ڥผηΩϡϦςΟΨΠυ͸GitHub PagesͰ഑৴
    • άάΕ͹ݟ͔ͭΔঢ়ଶΛ໨ࢦ͢
    • Issue΍Pull RequestΛड͚෇͚Δ͜ͱͰ௠෗ԽΛ཈ࢭ
    • ಁ໌ੑ͋ΔରԠͱɺࢦఠΛ׮༰ʹड͚ೖΕΔۭؾ࡞Γ
    • ࡞੒ʹؔ༩ͨ͠ਓ͸READMEʹँࣙΛܝࡌ
    ϦΫϧʔτݻ༗ͷ
    ηΩϡϦςΟΨΠυ
    ݴޠʗ؀ڥผͷ
    ηΩϡϦςΟΨΠυ
    ࣾ಺αΠτ
    ࣾ಺֎ͷ
    ։ൃऀ

    View Slide

  23. 2018೥6݄͔Βॱ࣍ίϯςϯπΛެ։
    • AndroidΞϓϦ։ൃऀ޲͚ΨΠυ͔ΒॱʹϦϦʔε
    • GitHub Pages → ࣾ಺αΠτʹ໭ΕΔ࢓ֻ͚Λ࡞Γ
    ࣾ಺αΠτ΁ͷྲྀೖΛଅ͢ʢࣾ಺NW͔ΒͷΞΫηεݶʣ
    ϦΫϧʔτݻ༗ͷ
    ηΩϡϦςΟΨΠυ
    ݴޠʗ؀ڥผͷ
    ηΩϡϦςΟΨΠυ
    ࣾ಺֎ͷ
    ։ൃऀ
    ࣾ಺͔ΒͷΞΫηεͰ
    ͋Ε͹໭ΕΔ࢓ֻ͚
    ࣾ಺αΠτ

    View Slide

  24. ੬ऑੑϋϯυϦϯάͷڧԽ
    ׆ಈࣄྫ

    View Slide

  25. • ੬ऑੑରԠ͸֤ࣄۀͰ࣮ࢪ
    • ۓٸੑͷߴ͍੬ऑੑͷΈɺ֤ࣄۀ΁ରԠΛґཔ
    • ੬ऑੑ৘ใͷऩूͱਂࠁ౓ͷධՁΛCSIRTͰ࣮ࢪ
    • ෳ਺ͷٕज़ऀ͕࣋ͪճΓͰ୲౰
    ϦΫϧʔτʹ͓͚Δ੬ऑੑରԠͷجຊํ਑

    View Slide

  26. • ߈ܸ͕དྷΔલʹɺ৘ใͷऩूɺධՁɺରԠࢧԉΛऴΘΒͤΔඞཁ͕͋Δ
    • 2017೥ͷStruts2ͷΑ͏ʹެ։ͨͦ͠ͷ೔ʹ߈ܸ͕؍ଌ͞Εͨࣄྫ΋
    ଎΍͔ͳ৘ใల։͕ٻΊΒΕΔ
    ߈ܸίʔυ࡞੒ ߈ܸ׆ಈ
    ৘ใऩू ղੳͱධՁ ରԠࢧԉ
    ੬ऑੑͷղੳ
    ߈ܸऀ
    $4*35
    ੬ऑੑ৘ใͷެ։

    View Slide

  27. 2015೥·Ͱͷ੬ऑੑϋϯυϦϯά
    ࠃ಺ͷ੬ऑੑ৘ใ
    αʔϏε
    ୈੈ୅ d೥

    View Slide

  28. • ৘ใ഑৴ͷλΠϜϥά
    • ։ൃݩʹΑΔ৘ใެ։͔Β਺೔ͷ஗Ԇ
    • ৘ใͷ໢ཏੑ
    • CVEͷׂΓ౰ͯΒΕ͍ͯͳ͍੬ऑੑͳͲʹൈ͚
    • ࣗࣾ؀ڥͱҰக͠ͳ͍ਂࠁ౓ධՁ
    • ଟ͘ͷ৔߹ɺCVSS͸ࣗࣾʹ͓͚Δਂࠁ౓ͱҰக͠ͳ͍
    ࠃ಺ͷ੬ऑੑ৘ใαʔϏεͷ՝୊
    $744ͳΒଈ࣌ରԠͱ͍ͬͨ
    ࣾ಺ϧʔϧΛෑ͘ͱେมͳ͜ͱʹͳΔ

    View Slide

  29. • ৘ใల։ͷૣظԽ
    • ੬ऑੑͷҰ࣍৘ใΛపఈऩू
    • JPCERT/CCͷૣظܯռύʔτφʔγοϓΛ௨ͯ͡
    ެදલͷ੬ऑੑ৘ใΛೖख
    • ໢ཏੑͷ޲্
    • ࠃ಺֎ͷηΩϡϦςΟ৘ใൃ৴ऀΛTwitterͰϑΥϩʔ
    • JPCERT/CCͷૣظܯռ৘ใΛ༻͍ͯɺ৘ใͷऩू࿙ΕΛ௿ݮ
    • ࣗࣾ؀ڥʹج͍ͮͨ੬ऑੑධՁ
    • ੬ऑੑΛCSIRTͰղੳ͠ɺ߈ܸͷ೉қ౓΍ࣗࣾͰੜ͡͏Δඃ֐ΛධՁ
    ͦ͜ͰࣗࣾͰ੬ऑੑ৘ใͷऩूͱධՁ͕ඞཁͱͳΔ

    View Slide

  30. ࣗ෼ͨͪͰ৘ใͷऩूͱ੬ऑੑͷղੳΛ࣮ࢪ
    ࠃ಺ͷ੬ऑੑ৘ใ
    αʔϏε
    5XJUUFSͰ৘ใऩू
    +1$&35$$͔Βͷ
    θϩσΠ৘ใ
    ໿ݸͷ৘ใݯ͔Β
    Ұ࣍৘ใΛऩू
    ୈੈ୅ d೥
    ୈੈ୅ ೥

    View Slide

  31. • ৭ʑͳ৘ใݯΛνΣοΫ͢ΔͷͰख͕͔͔ؒΔ
    • νʔϜϓϨʔʹෆ޲͖
    • ݟ͚ͭͨ੬ऑੑ৘ใΛϝϯόʔʹڞ༗͢Δͷ͸खؒ
    • ͦΕͰ΋৘ใΛڞ༗͠ͳ͍ͱݟམͱ͠Λޓ͍ʹϑΥϩʔͰ͖ͳ͍
    ॳಈΛૣΊΔ͜ͱ͕Ͱ͖͕ͨ৽ͨͳ՝୊͕

    View Slide

  32. ͦ͜Ͱಋೖͨ͠ͷ͕ւ֎ͷ৘ใαʔϏε VulnDB
    ࠃ಺ͷ੬ऑੑ৘ใ
    αʔϏε
    5XJUUFSͰ৘ใऩू
    +1$&35$$͔Βͷ
    θϩσΠ৘ใ
    ໿ݸͷ৘ใݯ͔Β
    Ұ࣍৘ใΛऩू
    7VMO%#
    ୈੈ୅ d೥
    ୈੈ୅ ೥
    ୈੈ୅ ೥

    +1$&35$$͔Βͷ
    θϩσΠ৘ใ

    View Slide

  33. • ໿6,000ݸͷ৘ใݯΛੈքͷ3ڌ఺Ͱ؂ࢹ
    • 1೔ʹ50ʙ300݅ఔ౓ͷ੬ऑੑ৘ใ͕ಧ͘
    • ϦΞϧλΠϜੑ͸ୈ2ੈ୅ΑΓ΍΍ྼΔ͕ڐ༰Ϩϕϧ
    • ੈքͷஶ໊اۀ͸ΈΜͳ࢖ͬͯΔ
    • ೔ຊͰ͸ϦΫϧʔτ͕ॳΊͯಋೖ
    • APIఏڙ
    • N࣌ؒҎ಺ʹొ࿥͞Εͨ੬ऑੑ৘ใΛऔಘͳͲ
    VulnDBͷಛ௃

    View Slide

  34. VulnDBͱࣾ಺SlackΛ࿈ܞͯ͠੬ऑੑνϟϯωϧΛ࡞੒
    αʔόϨεͰ࣮ݱ

    View Slide

  35. • Ϙοτͷ੬ऑੑଠ࿠ʢུͯ͠ZEITAʣ
    ৽͍͠੬ऑੑΛຖேϘοτ͕ͭͿ΍͘
    ࣗओ
    ن੍

    View Slide

  36. • ੬ऑੑ৘ใΛ୳͢खؒΛ࡟ݮ
    • ZEITA͕ຖேڭ͑ͯ͘ΕΔ
    • νʔϜϓϨʔʹΑΔ࿈ܞޮՌ΋޲্
    • ZEITA͕ൃݴͨ͠੬ऑੑΛݟͳ͕ΒϝϯόʔؒͰରԠΛٞ࿦Ͱ͖Δ
    VulnDBͱSlackͷ࿈ܞʹΑΓୈ2ੈ୅ͷ՝୊Λղܾ

    View Slide

  37. • ࣾ಺ͷ։ൃऀ͕SlackνϟϯωϧΛϑΥϩʔͯ͘͠ΕΔ
    • ϑΥϩʔ਺ 305໊ʢ2018೥5݄࣌఺ʣ
    • ηΩϡϦςΟνʔϜͱࣾ಺ΤϯδχΞͷަྲྀͷ৔ʹ
    • ϝϯόʔ͕੬ऑੑͷϓϩͱͯ͠ͷࣾ಺ೝ஌ΛಘΔ
    • ։ൃऀ͕Өڹௐࠪʹڠྗͯ͘͠ΕΔ
    • Ͳ͜ͰͲͷϞδϡʔϧ͕࢖ΘΕͯΔ͔ڭ͑ͯ͘ΕΔ
    • ·͍ͣ੬ऑੑ͕ग़Δͱɺೳಈతʹ֤ॴ΁ରԠΛಇ͖͔͚ͯ͘ΕΔ
    ZEITA͕͞Βʹଟ͘ͷ՝୊Λղܾͯ͘͠ΕΔΑ͏ʹ

    View Slide

  38. • Custom Slash CommandͰ੬ऑੑͷग़ݱΛ؂ࢹ
    • ొ࿥ͨ͠੬ऑੑͷ߈ܸίʔυ͕ੈͷதʹग़ΔͱZEITA͕ڭ͑ͯ͘ΕΔ
    ੬ऑੑͷ߈ܸίʔυͷग़ݱΛ؂ࢹ
    ࣗओ
    ن੍
    ࣗओ
    ن੍

    View Slide

  39. ͞ΒͳΔվળࡦΛ໛ࡧத
    ୈੈ୅ ։ൃத

    7VMO%#
    +1$&35$$͔Βͷ
    θϩσΠ৘ใ
    ୈੈ୅ ೥

    αʔό΍/8ػث͔Βࣗಈऔಘͨ͠
    ߏ੒৘ใͱ੬ऑੑΛϚον

    View Slide

  40. • ༵೔͝ͱʹ୲౰ऀΛܾΊͯɺ੬ऑੑͷௐࠪͱτϦΞʔδ
    • 300ਓҎ্ʹݟΒΕ͍ͯΔͷͰۓுײ͕ߴ·Δ
    • ৽ਓ͸ຖ೔1݅ɺ੬ऑੑΛௐࠪͯ͠Ϩϙʔτ
    • Өڹͷେ͖ͦ͏ͳ੬ऑੑ͸͔ͬ͠Γௐࠪ
    • ରࡦͷύον΍߈ܸίʔυ͔Β੬ऑੑͷࠜຊݪҼΛಛఆ
    • ϝϯόʔ͕ղੳͰ͖ΔΑ͏ʹDockerͰ࠶ݱ؀ڥΛߏங
    • IDEͷσόοΨͳͲΛར༻ͯ͠ɺ߈ܸ੒ཱͷϝΧχζϜΛݕূɻ
    ࣮࢖༻্ɺͦͷ੬ऑੑ͕ຊ౰ʹ໰୊ʹͳΔͷ͔ʁͳͲ
    ੬ऑੑௐֶ͕ࠪͼͷ৔ʹ

    View Slide

  41. • Spring Frameworkͷ੬ऑੑͷमਖ਼࿙ΕʢCVE-2018-1257ʣΛൃݟ
    ௐࠪதʹ৽ͨͳ੬ऑੑ͕ݟ͔ͭΔ͜ͱ΋

    View Slide

  42. ੬ऑੑݕࠪ
    ׆ಈࣄྫ

    View Slide

  43. • ίετΩϟοϓʹΑΔݕࠪείʔϓͷ੍ݶ
    • ϓϥοτϑΥʔϜ੬ऑੑݕࠪ
    • ೥ؒ150 IPΞυϨεΛબग़ͯ͠ݕࠪΛ࣮ࢪ
    • Web੬ऑੑݕࠪ
    • ৽ن or มߋ͞ΕͨαΠτʹରͯ͠4~8ը໘ͷൈ͖औΓݕࠪΛ࣮ࢪ
    • ݕࠪͰ͸ͳ͘఺ݕͱ͍͏Ґஔ෇͚
    ͜Ε·Ͱͷ੬ऑੑݕࠪ͸׬શʹ֎෦ҕୗ

    View Slide

  44. ϓϥοτϑΥʔϜ੬ऑੑݕࠪͷ಺੡Խ R&D
    ݕ౼த

    View Slide

  45. AWS্ʹαʔόϨεͰߏங༧ఆ
    ݕ౼த

    View Slide

  46. ݕ౼த

    View Slide

  47. 6*Λ࢖Θͣʹ௚઀"1*Λ࢖͏͜ͱ΋Մೳʹ
    ݕ౼த

    View Slide

  48. • ݕࠪπʔϧͷϥΠηϯεඅ༻ʴAWSͷΠϯϑϥίετͷΈͰ
    IPΞυϨε਺ͷ্ݶͳ͘ݕࠪͰ͖Δ
    • ݕࠪπʔϧ͸අ༻ରޮՌʹԠͯ͡ஔ׵Մೳ
    • ։ൃऀ͕࣮ࢪ͍ͨ͠ର৅ʹ࣮ࢪ͍ͨ͠λΠϛϯάͰݕࠪՄೳ
    • CIπʔϧͱͷAPI࿈ܞ΋Մೳʹ
    ಺੡πʔϧԽͷར఺
    ݕ౼த

    View Slide

  49. Web੬ऑੑݕࠪͷΧόʔ཰Λ্͛ΔͨΊͷऔΓ૊Έ
    • ݶΒΕͨϝϯόʔͰΑΓޮՌͷ͋ΔऔΓ૊ΈΛ໛ࡧ
    • ϝϯόʔͷՔಇ͕ಛఆαʔϏεͷݕࠪͰຒ·ͬͯ͠·͏ͷͰ
    ݕࠪͷ಺੡Խʹ͸଩Λ੾Βͳ͍
    • ੬ऑੑΛΑΓޮՌతʹݟ͚ͭΒΕΔࢪࡦʹϑΥʔΧε͢Δ
    • RED TEAM͕ιʔείʔυͷ੩తղੳπʔϧΛࣗ࡞
    • ֤αʔϏεͷGitϦϙδτϦ΁ͷΞΫηεݖΛ෇༩ͯ͠΋Β͍
    πʔϧ΍໨ࢹͰ੬ऑੑΛ୳͍ͯ͘͠
    • ։ൃऀͷࣾ಺ཹֶ

    View Slide

  50. ͸Δ΀͞·ɾɾɾ
    ͸Δ΀͞·ɾɾɾ
    RED TEAM΁ͷࣾ಺ཹֶΛ։࢝
    • ηΩϡϦςΟʹڵຯͷ͋Δ։ൃऀΛ༗ظͰड͚ೖΕ
    RED TEAMͰ߈ܸϚγʔϯʹվ଄
    • ։ൃ૊৫ʹηΩϡϦςΟͷ෼͔ΔਓΛ૿΍͢͜ͱͰ
    ֤૊৫Ͱͷ੬ऑੑରԠΛଅ͢

    View Slide

  51. ։ൃϓϩηεʹدΓఴ͏ηΩϡϦςΟ
    ׆ಈࣄྫ

    View Slide

  52. • CVRվળޮՌͷ͋Δ΋ͷΛ଎͘࡞ΓɺՁ஋ݕূ͢Δ͜ͱ͕ٻΊΒΕΔ
    ϦΫϧʔτʹ͓͍ͯSoEཁૉͷߴ͍Ҋ͕݅૿Ճ
    ग़యɿଟ༷ͳϏδωευϝΠϯɺαʔϏεϑΣʔζ͕ࠞࡏ͢ΔதͰͷ૊৫ઓུͱٕज़ઓུʗٶ઒ యٱ

    View Slide

  53. • طଘͷηΩϡϦςΟαʔϏε͸SoRʹ࠷దԽ͞Ε͍ͯΔ
    • 1ϲ݄ؒͷ੬ऑੑݕࠪΛܦͯϦϦʔε à 1ϲ݄ؒͷCVʹӨڹ
    • ։ൃ଎౓Λམͱ͞ͳ͍ηΩϡϦςΟࢪࡦ͕ٻΊΒΕΔ
    • CIʹΑΔܧଓతͳ੬ऑੑݕࠪ
    • Deployͱ࿈ಈͨ͠ϓϥοτϑΥʔϜ੬ऑੑεΩϟϯ
    • Pull Requestͷ౎౓ߦ͏ηΩϡϦςΟϨϏϡʔ
    • ϨϏϡʔίϝϯτΛ௨ͯ͡։ൃऀڭҭ
    SoEͷ։ൃʹ૬ੑͷྑ͍ηΩϡϦςΟࢪࡦͷ໛ࡧ

    View Slide

  54. ։ൃϓϩηεʹ࠷దͳࢪࡦΛ໛ࡧ
    اը ઃܭ ։ൃ ςετ ӡ༻ɾվमɾଌఆ
    • ઃܭϦεΫϨϏϡʔ
    ʢڴҖ෼ੳʣ
    • ΞʔΩϨϏϡʔ
    • ίʔυϨϏϡʔ
    • ੬ऑੑͷमਖ਼ࢧԉ
    • ੬ऑੑεΩϟφ$*࿈ܞ
    • ։ൃऀҭ੒ʢ0+5ʣ
    • ੬ऑੑݕࠪ
    • ։ൃऀҭ੒ʢ0+5ʣ
    • ੬ऑੑͷૣظܯռ
    • ։ൃ૊৫Ͱͷࣗ཯తͳ
    %FW4FD0QTମ੍ߏஙࢧԉ
    Sprintʢ1~4िؒʣ
    কདྷతͳ։ൃମ੍ͷ
    มԽΛߟྀ

    View Slide

  55. ͜ͷઌͷʮมԽʯʹ޲͚ͯ

    View Slide

  56. ੢ଜ͕஫ࢹ͍ͯ͠ΔपғͷมԽ
    ΦϦϯϐοΫಛधΛऴ͑ɺηΩϡϦςΟۀքͷ
    ٸ଎ͳྫྷ͑ࠐΈɻ࠾༻ࢢ৔ʹηΩϡϦςΟ
    ΤϯδχΞ͕ྲྀग़͠ɺίϞσΟςΟԽ͕Ճ଎

    ౦ژΦϦϯϐοΫεϙϯαʔΛૂͬͨ
    ߈ܸͷඪతʹͳΔڪΕ
    ϦΫϧʔτਓࡐྖҬੈք/PͱͳΓ
    ࣭ྔͱ΋ʹੈքΫϥεͷ߈ܸ͕དྷΔڪΕ
    ηΩϡϦςΟ஌ݟͷ͋Δࣾ಺ΤϯδχΞͷ૿Ճ
    ࣾ಺Ͱ࠾༻͞ΕΔٕज़ͷٸ଎ͳҠΓมΘΓ

    View Slide

  57. ͜ͷ2೥ؒͰʮมԽʯʹͲ͏උ͑Δ͔͕উෛ
    ΦϦϯϐοΫಛधΛऴ͑ɺηΩϡϦςΟۀքͷ
    ٸ଎ͳྫྷ͑ࠐΈɻ࠾༻ࢢ৔ʹηΩϡϦςΟ
    ΤϯδχΞ͕ྲྀग़͠ɺίϞσΟςΟԽ͕Ճ଎

    ౦ژΦϦϯϐοΫεϙϯαʔΛૂͬͨ
    ߈ܸͷඪతʹͳΔڪΕ
    ϦΫϧʔτਓࡐྖҬੈք/PͱͳΓ
    ࣭ྔͱ΋ʹੈքΫϥεͷ߈ܸ͕དྷΔڪΕ
    ηΩϡϦςΟ஌ݟͷ͋Δࣾ಺ΤϯδχΞͷ૿Ճ
    ࣾ಺Ͱ࠾༻͞ΕΔٕज़ͷٸ଎ͳҠΓมΘΓ
    ͜͜ͰͲ͏උ͑Δ͔ʁ

    View Slide

  58. ࣾ಺ʹ3&%5&".Λൃ଍
    ࠃ಺ͰॳΊͯϢʔβاۀʹઃஔ͞Εͨ3&% 5&".ɻ
    ϦΫϧʔτάϧʔϓ֤ࣾʹӨڹ͠͏ΔηΩϡϦςΟ
    ϦεΫΛೳಈతʹ୳͠ग़͠ɺϦεΫ௿ݮʹऔΓ૊Ή

    View Slide

  59. CVE-2014-0580 CVE-2015-2744 CVE-2015-5208 CVE-2016-1136 CVE-2016-2816 CVE-2017-5386
    CVE-2014-1591 CVE-2015-2745 CVE-2015-5256 CVE-2016-1137 CVE-2016-2817 CVE-2017-5463
    CVE-2014-5318 CVE-2015-2951 CVE-2015-5667 CVE-2016-1138 CVE-2016-7599 CVE-2017-7788
    CVE-2014-7257 CVE-2015-2964 CVE-2015-6759 CVE-2016-1139 CVE-2016-7844 CVE-2017-7789
    CVE-2014-8638 CVE-2015-3750 CVE-2015-6762 CVE-2016-1140 CVE-2016-7845 CVE-2017-10815
    CVE-2015-0799 CVE-2015-3751 CVE-2015-7094 CVE-2016-1141 CVE-2017-2240 CVE-2017-10816
    CVE-2015-0807 CVE-2015-3752 CVE-2015-7190 CVE-2016-1782 CVE-2017-2241 CVE-2017-10817
    CVE-2015-0832 CVE-2015-5204 CVE-2015-7191 CVE-2016-1940 CVE-2017-2376 CVE-2017-10818
    CVE-2015-2714 CVE-2015-5207 CVE-2015-8510 CVE-2016-1955 CVE-2017-5385 CVE-2017-10819
    ϝϯόʔ͕ใࠂͨ͠੬ऑੑʢൈਮʣ

    View Slide

  60. 2020೥Ҏ߱ʹى͜ΔมԽʹ޲͚ͯ
    • طଘͷࢪࡦʹनΘΕͣɺࣗΒ͕ϦεΫͱࢥ͏ͱ͜ΖΛೳಈతʹௐࠪ͢
    Δ
    • ։ൃऀͱ࿈ܞ͠ɺ։ൃݱ৔ͷ͋ΒΏΔηΩϡϦςΟ՝୊Λ
    ߴ͍ΤϯδχΞϦϯάྗͰղܾ͢Δ

    View Slide

  61. ࣗΒ͕ϦεΫͱࢥ͏ͱ͜ΖΛೳಈతʹௐࠪ
    • ๭ΦϯϥΠϯετϨʔδͷΞΫηε੍ޚόΠύεͷ੬ऑੑΛ
    ϖωτϨʔγϣϯςετதʹൃݟʢCVE-2016-7845ʣ
    • JSON Web TokenͷϥΠϒϥϦʹ͓͚Δॺ໊ݕূόΠύεͷ੬ऑੑΛ
    ੬ऑੑݕࠪͷதͰൃݟʢCVE-2017-10862ʣ
    • ๭ITࢿ࢈؅ཧιϑτ΢ΣΞͷ੬ऑੑ͕χϡʔεͰऔΓ্͛ΒΕͨࡍ
    ڝ߹੡඼ͷ੬ऑੑΛௐࠪʢCVE-2017-2240 ଞ9݅ʣ

    View Slide

  62. $0%&#-6&
    ࠃ࢈*5ࢿ࢈؅ཧιϑτ΢ΣΞͷʢΠϯʣηΩϡϦςΟ

    View Slide

  63. ηΩϡϦςΟ૊৫ͱͦͷ੒ख़౓

    View Slide

  64. ϦΫϧʔτͷηΩϡϦςΟ૊৫੒ख़౓

    $4*35ൃ଍
    ٕज़ۀ຿͸ϕϯμʔҕୗ ٕज़ਓһͷొ༻ʹΑΔ
    Ұ෦ۀ຿ͷ಺੡Խ΍
    ϕϯμʔ඼࣭؅ཧʹணख
    ͜͜ͷ࢟Λඳ͘΂͖
    ͕࣌དྷ͍ͯΔ
    ߴ౓ͳٕज़ਓࡐͷ࠾༻΍
    ैདྷͷ࿮Λ௒͑Δ׆ಈΛػʹ
    Ұஈ্ͷεςʔδʹਐΉ
    ४උ͕੔͍ͭͭ͋Δ
    ࠃ಺ઌਐେاۀ
    ࠃ಺ઌਐ*5ϕϯνϟʔ
    ࠃ಺اۀฏۉ
    ੈք
    ੒ख़౓

    View Slide

  65. ૊৫ͷ੒ख़౓ʹΑΓٻΊΒΕΔηΩϡϦςΟਓࡐ͸ҟͳΔ
    ٕज़ۀ຿͸ϕϯμʔҕୗ ٕज़ਓһͷొ༻ʹΑΔ
    Ұ෦ۀ຿ͷ಺੡Խ΍
    ϕϯμʔ඼࣭؅ཧʹணख
    ܦӦͱͷڮ౉͠ਓࡐ
    ʴ
    ηΩϡϦςΟ؂ࠪਓࡐ
    ηΩϡϦςΟٕज़ͷ
    Θ͔Δίϯαϧਓࡐ
    ʴ
    গ਺ͷηΩϡϦςΟ
    ٕज़ઐ໳ਓࡐ
    ࣍ͷ੒ख़౓ͰٻΊΒΕΔ
    ηΩϡϦςΟਓࡐͱ͸ʁ
    ੒ख़౓

    View Slide

  66. ϕϯμʔ͔Βͷਓࡐྲྀग़ʹΑΓ
    ೥Ҏ߱ʹίϞσΟςΟԽ͠͏ΔྖҬ
    ੢ଜ͕ߟ͑ΔࠓޙٻΊΒΕΔηΩϡϦςΟਓࡐ
    ܦӦͱͷڮ౉͠ਓࡐ
    ʴ
    ηΩϡϦςΟ؂ࠪਓࡐ
    ηΩϡϦςΟٕज़ͷ
    Θ͔Δίϯαϧਓࡐ
    ʴ
    গ਺ͷηΩϡϦςΟ
    ٕज़ઐ໳ਓࡐ
    رগੑͱۀքχʔζͷ
    ૒ํΛอͯΔྖҬ
    ΤϯδχΞϦϯάྗΛۦ࢖ͯ͠
    ࣗΒͷखͰ͋ΒΏΔ
    ՝୊ղܾΛߦ͏
    ηΩϡϦςΟˍΤϯδχΞਓࡐ
    ίϞσΟςΟԽͷ೾
    ੒ख़౓

    View Slide

  67. "4*4
    ͜ͷઌͷ2೥ͰঃʑʹࠩผԽྖҬ΁γϑτ͢Δ
    ηΩϡϦςΟٕज़ͷ
    Θ͔Δίϯαϧਓࡐ
    ʴ
    গ਺ͷηΩϡϦςΟ
    ٕज़ઐ໳ਓࡐ
    50#&
    ΤϯδχΞϦϯάྗΛۦ࢖ͯ͠
    ࣗΒͷखͰ͋ΒΏΔ
    ՝୊ղܾΛߦ͏
    ηΩϡϦςΟˍΤϯδχΞਓࡐ
    γϑτ͢Δ
    ੒ख़౓

    View Slide

  68. • άϧʔϓͷϝϯόʔʹԿ͔͠Βͷ։ൃΛΞαΠϯ
    • ੬ऑੑݕࠪͷਐ௙؅ཧγεςϜʮ.0,6#"ʯ
    • ύονϚωδϝϯτγεςϜʮ3"''-&4*"ʯ
    • ϓϥοτϑΥʔϜ੬ऑੑݕࠪγεςϜ
    • ࣗ෼ͨͪͰ։ൃΛߦ͏͜ͱͰಘΒΕΔ஌ݟ͕͋Δ
    • ηΩϡϦςΟࢪࡦΛυοάϑʔσΟϯά
    • ٕज़બఆͷ৹ඒ؟ʢӡ༻ऀͷࢹ఺ͳͲʣ
    • ։ൃϓϩηεʹ߹ͬͨηΩϡϦςΟࢪࡦΛఏҊ
    ؇΍͔ͳγϑτ͸͢Ͱʹ࢝·͍ͬͯΔ

    View Slide

  69. • )BDL&WFSZUIJOH
    • ࢲୡ͕ӦΉ͜Ε·ͰͷηΩϡϦςΟࢪࡦΛ)BDL͠
    • ߹ཧੑ͸ଛͳΘͳ͍··ʹ
    • ςΫχΧϧʹਖ਼͘͠
    • ඒ͘͠εςΩʹ
    • ίεύྑ͘
    • ࢖͍΍͘͢
    • ԿΑΓࣗ෼͕ͨͪϫΫϫΫ͢Δ΋ͷʹຏ্͖͍͛ͯ͘ͱ͍͏͜ͱ
    γϑτ͸ڪΕΔͷͰ͸ͳָ͘͠Ή΋ͷ

    View Slide

  70. View Slide