Share
Embed
DevSecOps実践
atsushi-ishibashi
November 02, 2018
Transcript
40 slides
-
ࣗݾհ - ੴڮ ३ࢤ • ࡏֶதʹגࣜձࣾFinatextʹۀϝϯόʔͱͯ͠δϣΠϯ • גࣜձࣾεϚʔτϓϥεͷBaaSϓϩδΣΫτʹͯϦʔυΤϯδ χΞͱͯࣥ͠ߦγεςϜΛઃܭɾ։ൃ •
Golang • ͓͢͢ΊͷAWSษڧํ๏ɿ SDKͷChangelogΛcheck • ਪ͠αʔϏεɿRoute53 Auto Naming • झຯɿαφʢϗʔϜɿαφηϯλʔʣ -
N F E E E A & v h SlM
Ic IXI l h Sl . 6r l i R yN o / c U I ek dTIg r l c U I ( rv B B C BE 8 sO c a e k dTIg r l p t 1 X T I N AFB .0 4 64 B C 2 C BE ձࣾհ -
ηΩϡϦςΟͷΈɾ͠͞ • ԿΕ͍͍ͷʁ • Ͳ͜·Ͱ͢Ε͍͍ͷʁ • Ͳ͕͜ηΩϡΞͰɺͲ͕͜ηΩϡΞ͡Όͳ͍ͷʁ • ڴҖ֎෦Ͱൃੜ͠ɺηΩϡϦςΟ࣮ͷݻఆԽऑମԽ Λҙຯ͢Δ
→ ܧଓతͳੑ࣭Ͱ͋Δ • ࠷ऑͳ෦͕ͦͷγεςϜͷηΩϡϦςΟڧ -
ఆٛ: ೖྗ ҎԼΛຬͨࣸ͢૾ x ΛೖྗɺXΛೖྗू߹ͱ͢Δ ఆٛ: ධՁ ҎԼΛຬͨࣸ͢૾ v ΛධՁɺVΛධՁू߹ͱ͢Δ
X := {x : → × } V := {v : × → } -
ఆٛ: ༧త౷੍ ∀v ∈ V′, ∀x ∈ X′ v(x(S)) ∉
W ʹରͯ͠ɺ ͕ҎԼΛຬͨ࣌͢ɺ ʹؔͯ͠༧త౷੍Ͱ͋Δͱ͍͏ W, X′ ⊂ X (S, V′) (S, V′) (W, X′) -
ఆٛ: ൃݟత౷੍ ∀x ∈ X′, ∃v ∈ V′ v(x(S)) ∈
W ʹରͯ͠ɺ ͕ҎԼΛຬͨ࣌͢ɺ ʹؔͯ͠ൃݟత౷੍Ͱ͋Δͱ͍͏ W, X′ ⊂ X (S, V′) (S, V′) (W, X′) -
ఆٛ: ڴҖ W ⊂ ΛηΩϡϦςΟʹؔͯ͠ͷࣝͱ͢Δ V′ Λ࣮ࡁΈͷධՁू߹ͱ͢Δ A = {a|∃v
∈ V′, v(a( * )) ∈ W} A ⊂ X ΛڴҖɺ ΛڴҖू߹ͱ͍͏ W* ·ͨ࠷ڧͷηΩϡϦςΟࣝΛ ͱ͢Δɻ V′ ͕༩͑ΒΕͨͱ͖ɺ ͕ҎԼΛຬͨ࣌͢ɺ ेͰ͋Δͱ͍͏ {a|∃v ∈ V′, v(a( * )) ∈ W*} A A a A -
ఆٛ: DevSecOps DevSecOpsͱҎԼͷ̍ͭҎ্Λ׆ಈΛܧଓత։ൃϓϩηεʹ͓͍ͯߦ͏͜ͱΛ͍͏ 1: W → W* ⇒ A →
A* 2: 3: X′ → X′′ s . t . A ∩ X′ ⊆ A ∩ X′′ X′ → X′′ s . t . A ∩ X′ ⊆ A ∩ X′′ ༧త౷੍ʹؔͯ͠ɺҎԼΛຬͨ͢Α͏ʹγεςϜ ʹมߋΛՃ͑Δ S ൃݟత౷੍ʹؔͯ͠ɺҎԼΛຬͨ͢Α͏ ʹมߋΛՃ͑Δ (S, V′) -
X A A* ༧త౷੍ ൃݟత౷੍ • ೝࣝͰ͖ΔڴҖू߹ͷेੑ͕ ૿͢ • ޡݕ͍ͯͨ͠༧త౷੍ͷྖ
ҬͷҰ෦͕ޮՌతͳྖҬͱͳ Δ • ޡݕ͍ͯͨ͠ൃݟత౷੍ͷྖ ҬͷҰ෦͕ޮՌతͳྖҬͱͳ Δ W → W* ⇒ A → A* -
༧త౷੍ʹؔͯ͠ɺҎԼΛຬͨ͢Α͏ʹγεςϜ ʹมߋΛՃ͑Δ S X A A* ༧త౷੍ ൃݟత౷੍ • ೝࣝͰ͖ΔڴҖू߹ʹରͯ͠༧
త౷੍ͷͳ͞ΕΔڞ௨ू߹͕ େ͖͘ͳΔ • ޡݕ͍ͯͨ͠༧త౷੍ͷྖ ҬͷҰ෦͕ޮՌతͳྖҬͱͳ Δ -
X A A* ༧త౷੍ ൃݟత౷੍ • ೝࣝͰ͖ΔڴҖू߹ʹରͯ͠ൃ ݟత౷੍ͷͳ͞ΕΔڞ௨ू߹͕ େ͖͘ͳΔ •
ޡݕ͍ͯͨ͠ൃݟత౷੍ͷྖ ҬͷҰ෦͕ݮΔ ൃݟత౷੍ʹؔͯ͠ɺҎԼΛຬͨ͢Α͏ ʹมߋΛՃ͑Δ (S, V′) -
ྨͰଊ͑Δ(ྫ) X ɾ1ͷཁૉ ɾdirective(2) ɾpreventive(2) ɾdetective(3) ɾresponsive(3) ɾID / ΞΫηε
ɾαʔό ɾωοτϫʔΫ ɾσʔλϕʔε ɾετϨʔδ ɾɾɾ ɾΞϓϦέʔγϣϯ X ɾS ɾL ɾS x L (ൃల) ɾS x T ɾL x T ɾS x L x T ʢࢀߟʣAWS CAF ( https://d1.awsstatic.com/whitepapers/AWS_CAF_Security_Perspective.pdf ) -
1ͷཁૉ ֶͿ͔͠ແ͍… ͕ɺମܥతͳྨΛҙࣝ͠ͳ͕ΒΔͱޮత͔ • Security Bulletins ( https://aws.amazon.com/security/security-bulletins/feed/ ) •
ηΩϡϦςΟϒϩά • AWS Security Blog ( https://aws.amazon.com/jp/blogs/security/ ) • Google Security Blog ( https://security.googleblog.com/ ) • JPCERTͷRSS ( https://www.jpcert.or.jp/rss/jpcert.rdf ) ͳͲ… -
2ͷཁૉ - directive • directive x IDɾΞΫηεཧ • IAMͷ࠷খݖݶ •
directive x αʔό • ConfigͰSSM Complianceͷࢹ • directive x ωοτϫʔΫ • portͷ੍ݶ 2ͷཁૉ - preventive • preventive x IDɾΞΫηε • IAM Policyͷ࠷খԽ • ݖݶͷόϯμϦ(IAM Permission Boundary) • preventive x αʔό • ηΩϡϦςΟάϧʔϓͷ࠷খԽ • preventive x ετϨʔδ • ConfigͰS3ͷTLSͰͷϦΫΤετʹ੍ ݶ • preventive x ΞϓϦέʔγϣϯ • WAFͷࣗಈߋ৽ -
3ͷཁૉ - detective • detective x IDɾΞΫηε x S •
terraformͰͷঢ়ଶཧͱͷࠩݕ • detective x IDɾΞΫηε x L • GuardDutyʹΑΔ • detective x IDɾΞΫηε x S x L • rootΞΧϯτͷMFAແޮԽݕ • detective x αʔό x S • SSM Patch BaselineͰͷύονݕ • detective x σʔλϕʔε x S • ConfigͰ҉߸Խਫ਼ࠪ • detective x ετϨʔδ x L • CloudTrailͷϩάվ᜵ݕ • detective x ΞϓϦέʔγϣϯ x L • ECR - CWE - clairͰͷΠϝʔδ੬ऑੑ அ • ELBΞΫηεϩά͔Βҟৗݕ 3ͷཁૉ - responsive • responsive x IDɾΞΫηε • ΞΫηεΩʔͷϩʔςʔγϣϯ • GuardDuty-CWE-LambdaͰෆਖ਼ϩάΠϯ ରԠ • responsive x αʔό • GuardDuty-CWE-LambdaͰͷෆਖ਼৵ೖ • responsive x ωοτϫʔΫ x S x L • VPCϑϩʔϩάͷແޮԽम෮ • responsive x ετϨʔδ x L • Config - LambdaͰS3ͷpublicΞΫηεͷ म෮ • ConfigͰS3ͷTLSϙϦγʔͷम෮ -
͜ͷ͋ͱͷొਓ Lambda ΧελϜॲཧɾϩδοΫΛ ͍࣋ͪͨ߹ͱΓ͋͑ͣ͜Ε Config ઃఆมߋΛࢹͰ͖Δ CloudWatchEvent(CWE) ΠϕϯτɾεέδϡʔϧϕʔεͰ LambdaΛ࣮ߦͰ͖Δ CloudTrail
AWS APIͷϩάऩू CWE͕ͦͷϩάΛर͑Δ ͱΓ͋͑ͣ༗ޮԽ͠ͱͭ͘ GuardDuty ༷ʑͳϩάΛੳɾղੳ ෆ৹ͳಈ͖ҟৗΛݕ CWE͕ͦͷϩάΛर͑Δ ͱΓ͋͑ͣ༗ޮԽ͠ͱͭ͘ Terraform HashicorpࣾͷOSS ႈʹঢ়ଶཧΛ͢Δ -
directive x αʔό ConfigͰSSM Patch Complianceࢹ EC2 SSM Maintenance Windows
Config ఆظεΩϟϯ ίϯϓϥΠΞϯε νΣοΫ CWE Lambda -
directive x IDɾΞΫηε / ωοτϫʔΫ IAMݖݶɺηΩϡϦςΟάϧʔϓͷ࠷খԽ CloudTrail S3 ఆظूܭ IAM
্͕ཧ͕ͩɺCloudTrailͷϩά͕͘͠ɺ IAMͷΞΫηεΞυόΠβʔͰ…(^^; VPC S3 ఆظूܭ Security Group -
preventive x ΞϓϦέʔγϣϯ WAFͷIPϒϥοΫϦετͷߋ৽ S3 CWE Lambda WAF ఆظ࣮ߦ ۀքڞ༗
ಠࣗͷIPϒϥοΫϦετ ఆظ࣮ߦ Spamhaus DROP List ͳͲ ELB CloudFront -
detective x ετϨʔδ x S CloudTrailͷϩάվ᜵ݕ CWE Lambda ఆظ࣮ߦ CloudTrail
S3 ϩάϑΝΠϧͷ ߹ੑݕূ ෆ߹͋Ε௨ -
detective x ΞϓϦέʔγϣϯ x S ECRͷDockerΠϝʔδͷ੬ऑੑஅ ECR CWE Lambda SSM
EC2 image nameͱtagͰ run command clairͳͲ Πϝʔδஅ -
responsive x IDɾΞΫηεཧ x S x T IAM ΞΫηεΩʔͷϩʔςʔγϣϯ CWE
ఆظ࣮ߦ IAM ৽ΞΫηεΩʔ -
responsive x αʔό x L GuardDutyʹΑΔEC2ͷҟৗݕ ߈ܸऀ ൃݟ CWE ίϐʔ
SSM Session Manager -
responsive x ࢹαʔϏε x S x L CloudTrailແޮԽͷࣗಈम෮ ߈ܸऀ CloudTrail
ແޮԽ Config CWE ༗ޮԽ -
ΞϓϦέʔγϣϯΤϯδχΞ͕ ։ൃϓϩηεͰҙ͍ࣝ͢͜͠ͱ • Λ͍͔ʹਖ਼͘͠ेʹ؍ଌ͢Δ͔ • SAWSͷϦιʔεʹݶͬͯݴ͑҆৺ • LɺɺɺͦΕͦΕͰେ͖ͳςʔϚͳͷͰଞʹৡΔ • V
ͰԿΛͲ͏ධՁ͢Δ͔ • S x L 㲗 W 㲗 V ͷ૬ޓ͔ؔΒվળ͍ͯ͘͠ • Dev(༧త౷੍)ɺOps(ൃݟత౷੍)ΛܧଓੑΛཁٻ͞ΕΔ ηΩϡϦςΟͷಛੑΛ׆͔ͯ͠DevSecOpsͱͯ͠ɺ։ൃ ϓϩηεʹ͓͍ͯ݁߹͠ɺ͜Ε·ͰͷDevOpsͷ݁߹ ߴΊ͍ͨʂ ,