Ops JAWS #10
AWS WAFͷϩά͕3͔࣌ؒ͠ݟΕͳ͍ͷͰͳΜͱ͔ͯ͠ΈΔΫϥεϝιουגࣜձࣾιϦϡʔγϣϯΞʔΩςΫτ Ӭେࢤ
View Slide
ࣗݾհ
ɹɹɹɹɹɹӬ େࢤ(@morimoritaitai)AWSࣄۀ෦ ιϦϡʔγϣϯΞʔΩςΫτ✦ झຯ : ήʔϜ / ञ / Χϝϥ✦ ڵຯ : Security / OpsࣗಈԽ✦ ͖:Config/CloudTrail/IAM/PHD✦ ৭ͷαʔϏε͕͖ͳϑϨϯζ✦ AWSೝఆࢿ֨5ף
ձࣾհ
ϒϩάͷձࣾ
AWS WAFͬͯ·͔͢ʁ
AWS WAFͱ• CloudFrontͱALBʹࠐΊΔϚωʔδυWAF• IPΞυϨε੍ݶ/จࣈྻ੍ݶ/SQLΠϯδΣΫγϣϯ/XSSରࡦͳͲجຊతͳWAFཁ݅ຬͨͤΔ• ͦΜͳʹෳࡶͳઃఆग़དྷͳ͍͚Ͳ؆қͳWAF͕΄͍͠ͳΒ͘͢͝ศར
AWS WAFศརͳΜͰ͕͢ɺ1͍͚ͨͩͳ͍͜ͱ͕…
Πϕϯτϩά͕3͔࣌ؒ͠ݟΕͳ͍
४ϦΞϧλΠϜͷΠϯγσϯτରԠͱߟ͑Ε͔Βͳ͘ͳ͍
ͰͬͺΓΠϕϯτϩάޙ͔Β֬ೝͰ͖ΔΑ͏ʹ͍ͨ͠
ͳΜͱ͔ͯ͠ΈΔ
ߏΛߟ͑Δ• AWS WAFͷΠϕϯτCloudWatchͰݕ• CloudWatchͷΞϥʔτΛSNSͰൃใ• SNSͰLambdaΛൃՐ• Lambda͕AWS WAFͷϩάΛऔಘ͠S3อଘ
ߏਤᶃ ΠϕϯτൃੜᶄΞϥʔϜൃใᶅ SNS௨ᶆ ϩάऔಘᶇ ϩάอWAF CloudWatch SNSLambdaS3
SNSτϐοΫ࡞
CloudWatchΞϥʔτ࡞1ͭͰϒϩοΫ͕͋ΕSNSͰ௨
ϩάอ༻S3όέοτ࡞
Lambda༻IAMϩʔϧ࡞• AmazonS3FullAccess• AWSWAFReadOnlyAccess• AWSLambdaBasicExecutionRole
LambdaϑΝϯΫγϣϯ࡞• https://github.com/Tmorinaga/aws-waf-logger/blob/master/aws-waf-logger.py
LambdaϑΝϯΫγϣϯ࡞SNSΛΠϕϯτιʔεʹ
LambdaϑΝϯΫγϣϯ࡞ڥมͰS3όέοτ໊ࢦఆ࡞ͨ͠IAM RoleΛࢦఆ
ࢼ͢Α͋͘ΔSQLΠϯδΣΫγϣϯྫ
ࢼ͢ϒϩοΫ͞Εͨ
5ޙ
ࢼ͢S3ʹϩά͕֨ೲ͞Εͨʂ͢͝ʔ͍ʂ
ҙ• AWS WAFଆͷ༷ͰPOSTͷதݟΕͳ͍• ݟΕΔΑ͏ʹͳΓ·ͤΜ͔Ͷɻɻɻʁ• Sample Requests100͔݅͠औΕͳ͍ͷͰɺҰؾʹ100݅Ҏ্ͷ߈ܸ͕དྷΔͱऔಘ࿙ΕΔ
࠷ޙʹ• ͍ͭެࣜରԠ͓͔ͯ͘͠͠ͳ͍ͷͰυΩυΩ͠ͳ͕ΒίʔυΛॻ͍ͯ·ͨ͠• POSTͷதΛه͍ͨ͠…ʂ• ϓϧϦΫ͍ͩ͘͞• https://github.com/Tmorinaga/aws-waf-logger/blob/master/aws-waf-logger.py
JAWS DAYS2017ʹొஃ͠·͢• Security JAWSͷҰһͱͯ͠AWS Configʹ͍ͭͯ͘ޠΓ·͢• ଞʹSec-JAWSϝϯόʔ͕ొஃͯ͠WAFʹ͍ͭͯΓ·͢