Hacker Tackle 2018 発表資料
ۙ౻Ӊஐ࿕(.01FQBCP *OD!)BDLFS5BDLMFશવΘ͔Βͳ͍ɻԶͨͪงғؾͰίϯςφΛͬͯ ͍Δ
View Slide
ۙ౻Ӊஐ࿕!VE[VSB&$αʔϏεɺΦϯϥΠϯήʔϜ։ൃͳͲΛܦͯɺΑΓ(.0ϖύϘٕज़ج൫νʔϜɻಉΑΓԬࢢʹҠॅɻڞஶʹʰύʔϑΣΫτ3VCZʱʰύʔϑΣΫτ3BJMTʱͳͲ͕͋ΔɻNSVCZΛΈࠐΜͩ-JOVYίϯςφϥϯλΠϜʮ)BDPOJXBʯͷ࡞ऀɻ)BDPOJXBؔ࿈ͷ׆ಈͱͯ͠ɺ3VCZ,BJHJͰͷτʔΫ͕࠾͞Εɺ·ͨιϑτΣΞͰୈճԬ3VCZେΛडɻݱࡏɺ)BDPOJXBΛϕʔεͱͨ͠ΫϥυαʔϏεͰ͋ΔʮϩϦϙοϓʂϚωʔδυΫϥυʯʹٕࣾज़ސ ͱͯ͠ࢀՃ͍ͯ͠Δɻ
ࠓͷ͓wงғؾͰίϯςφͷதΛཧղ͢ΔwงғؾͰίϯςφͷΤίγεςϜΛཧղɹwงғؾͰίϯςφΛࣗ࡞͢ΔʹwͳΜͳΜͩΑʂงғؾͬͯʂʢ·ͱΊʣ
งғؾͰίϯςφͷதΛཧղ͢Δ
ίϯςφԾԽ
ίϯςφɺ࡞ͬͨ͜ͱ͋Γ·͔͢ʁ
͡Ό͋࡞ͬͯΈ·͠ΐ͏͔
%PDLFSΛྫʹ͠·͢wී௨ͷ-JOVY 6CVOUV#JPOJDʹ%PDLFSΛೖΕͯɺෳݸίϯςφΛ࡞ͬͯΈΔɻ$ docker run --rm -d debian:latest /bin/sleep 99d003ac5389a1631d789f5d1b77bf201adc517ad9acc91bd5...
࠷ۙ DFͷ%PDLFSw͜͜ͰɺΈͳ͞Μ͓ೃછΈͷQTίϚϯυΛൃߦͯ͠Έ·͠ΐ͏w;Ή;Ή
ίϯςφͷTMFFQίϚϯυϗετϚγϯ͔Β௨ৗͷϓϩηεͷΑ͏ʹݟ͑·͢
ͭ·Γ
ίϯςφϓϩηεͳΜͩʂʂʂʂʂʂʂʂʂʂʂʂʂʂʂʂʂʂʂʂʂʂʂʂʂʂ
ίϯςφʮԾԽʯͬͯݴ͏͚ΕͲwίϯςφͷ࣮ݱʹ͓͍ͯɺϋʔυΣΞͷԾԽʢ$16ɺϝϞϦͳͲʣߦ͍ͬͯͳ͍͜ͱʹҙɻwEPDLFSSVOFYFDͳͲͰʮಠཱͨ͠-JOVYͷڥʹೖΔʯ͜ͱ͕ग़དྷΔɻͦͷΑ͏ʹಠཱͨ͠ڥΛ࡞ΕΔ͜ͱࣗମΛࢦͯ͠ɺʮԾԽʯͱݺΜͰ͍Δͱݴ͑ΔɻwٯʹϓϩηεͳͷͰɺͦͷଞͷԾԽख๏ΑΓܰྔͩ͠ɺΑΓࡉ੍͔͍ޚ͕ՄೳʹͳΔଆ໘͋Δɻ
DGͦͷଞͷԾԽwϗετܕ͋Δ04ʹɺઐ༻ͷιϑτΣΞΛೖΕͯԾԽ͢ΔwϋΠύʔόΠβܕԾԽઐ༻ͷ04ͷ্Ͱ7.Λ্͛ΔwͳͲͳͲɺ࣮ݱͷํࣜز͔ͭ͋Δ͕ɺಛͱͯ͠ɺϋʔυΣΞͷԾԽΛߦ͏ɻͦͷͨΊ04ͷछྨࣗ༝ʹͳΔ͕ɺίϯςφΑΓΦʔόʔϔου͕େ͖͘ͳΔɻ
ϓϩηε͕ίϯςφԽ͍ͯ͠Δ͔ௐΔwΈΜͳ/procͷ͜ͱศརʹ׆༻ͯ͠·͢ΑͶʁw/proc/PID/*ʹଘࡏ͢ΔϑΝΠϧʹ͍ͭͯɺී௨ͷϓϩηεͷͷͱʮίϯςφԽͨ͠ʯͷͷΛൺֱ͢Δͱɺز͔ͭͷଐੑ͕ҟͳ͍ͬͯΔ͜ͱ͕Θ͔Δɻw/proc/PID/ns, /proc/PID/cgroup, /proc/PID/status,
ʮίϯςφԽʯ͢ΔͨΊͷ-JOVYͷػೳ
-JOVY/BNFTQBDF
QSPD1*%OT͕ҧ͏wΑ͘ݟΔͱҧ͏wVUTͱ͔JQDͱ͔NOUͱ͔ ͍Ζ͍Ζ͋Δw͜ΕΒɺάϩʔόϧͳ໊લۭؒͱผͷ04ϦιʔεΛׂΓͯΒΕ͍ͯΔ͜ͱΛҙຯ͢Δɻͦ͏͍͏໊લۭؒΛ-JOVY/BNFTQBDFͱݺΜͰ͍Δɻwྫ͑654/BNFTQBDFάϩʔόϧͳϗετ໊ͱಠཱͨ͠ϗετ໊Λ࣋ͯΔ
ίϯςφͷωοτϫʔΫʹʮೖΔʯwOTFOUFSͱ͍͏ίϚϯυͰ-JOVY/BNFTQBDFʹೖΔ͜ͱ͕Ͱ͖ΔɻwEPDLFSFYFDͱൺֱͯ͠ΈΑ͏$ sudo nsenter \--net=/proc/$( \docker inspect hackertackle_1 -f ‘{{.State.Pid}}' \)/ns/net
EPDLFSFYFDOTFOUFS
DHSPVQ
DHSPVQͱwDHSPVQ $POUSPM(SPVQͱɺҙͷϓϩηεΛάϧʔϐϯάͰ͖Δػೳɻͨͩάϧʔϓʹ͢Δ͚ͩͰͳ͘ɺͦͷάϧʔϓ͝ͱʹ04ͷϋʔυΣΞͳͲͷϦιʔεΛ੍ݶɺ͋Δ͍౷ܭใΛऔಘͰ͖Δɻwྫw$16ͷ੍ݶάϧʔϓશମͷ$16ར༻Λ/ʹԡ͑ͨ͞ΓɺίΞΛݻఆͨ͠ΓͰ͖Δɻ·ͨ$16࣌ؒͷ౷ܭΘ͔ΔwϝϞϦͷ੍ݶάϧʔϓશମͰ͏ϝϞϦར༻ঢ়گΛ੍ݶɺܭଌͰ͖Δɻݶքʹୡͨ࣌͠ͷڍಈબΔ
QJETαϒγεςϜwͦͷάϧʔϓʹॴଐ͢ΔϓϩηεΛ੍ݶͰ͖ΔɻwDHSPVQಛఆͷϑΝΠϧʹॻ͖ࠐΉ͜ͱͰγϡοͱ͑Δɻݸʹ੍ݶ
ͦͷάϧʔϓʹॴଐ͢ΔϓϩηεΛ੍ݶͰ͖ΔʹGPSLCPNCରࡦ͕Ͱ͖Δ
ࢼͯ͠Έ·͠ΐ͏w˞ࣦഊ͢Δͱɺ؋͝ͱམͪ·͢term1:~$ echo $$ #=> 5849term2:~$ echo 5849 | \sudo tee /sys/fs/cgroup/pids/hackertackle/tasksterm1:~$ cat /proc/self/cgroup | grep pids3:pids:/hackertackleterm1:~$ #... doing fork bomb ...
ੜؐ
ͦͷଞͷػೳ[email protected]͋ΔαϒσΟϨΫτϦʹೖΓࠐΉwSMJNJUVMJNJUͷͭw,FSOFM$BQBCJMJUZSPPUͷݖݶΛׂͯ͠Ұ෦Λ༩ɺୣ͏wTFDDPNQγεςϜίʔϧͷϑΟϧλϦϯάw."$ BQQBSNPS4&-JOVY50.0:0ଞ
TFDDPNQͷྫwίϯςφ෦ͰɺNLEJSίϚϯυͰ͏γεςϜίʔϧʢmkdir(2)ʣDIPXOίϚϯυͰ͏ͭʢchownat(2)ʣͷݺͼग़͠ΛϑΟϧλʔ͢Δ͜ͱ͕Ͱ͖Δɻͨͱ͑SPPUͰ֘ૢ࡞͕ෆՄೳʹɻ͖ͳίϚϯυΛstrace(1)Ͱௐͯ෧ҹ͠Α͏ʂ➡➡
ং൫ͷ·ͱΊwίϯςφಛघͳϓϩηεͱߟ͑Ε0,wϓϩηεΛϗετ͔ΒִɺϦιʔεΛ੍ݶɺݖݶΛηΩϡΞʹߜΓࠐΉ͜ͱͰɺ࣮࣭7.తಠཱڥͱ͢Δͷ͕جຊతͳߟ͑ํwόϥόϥͷγεςϜίʔϧΛGPSLͱFYFDͷؒͰࣗͰݺͼग़ͤɺίϯςφ͔ͨ͠ϓϩηεΛࣗ࡞͢Δ͜ͱͰ͖Δ
งғؾ௫Ί͔ͨͳʁ
งғؾͰίϯςφͷΤίγεςϜΛཧղ
ίϯςφ༻ޠ
ίϯςφ༻ޠ%PDLFS-9$-9%.PCZ,VCFSOFUFT'MBOOFMSVOD(,&&$4"$*0$*5FDUPOJD$PSF04)BDPOJXBSLUSBJMDBS$BMJDP/PNBE4XBSN
ଟ͘ͳ͍ʁ
આ໌Ͱ͖·͔͢ʁ
ϨΠϠͰߟ͑ͯΈΔSVOD%PDLFS-9$ -9%)BDPOJXB.PCZSLU,VCFSOFUFT'MBOOFM$BMJDP4XBSN/PNBESBJMDBS$3*0$POUBJOFSE
ิॿઢΛҾ͜͏SVOD%PDLFS-9$ -9%)BDPOJXB.PCZSLU,VCFSOFUFT'MBOOFM$BMJDP4XBSN/PNBESBJMDBS$3*0$POUBJOFSE0$*4QFD$3*
0$*0QFO$POUBJOFS*OJUJBUJWF
0$*ͱwίϯςφͷ৭ʑͳنɾن֨Λඪ४Խ͍ͯ͠Δஂମw0$*ͷنʹ४ڌ͢ΔͱԿ͕خ͍͔͠ʁwΠϝʔδͷϑΥʔϚοτ͕౷Ұ͞Ε͍ճ͠Ͱ͖Δw04͝ͱʹඞཁͳύϥϝʔλ͕ཧ͞ΕͯࣗͰඞཁͳϥϯλΠϜΛ࣮Ͱ͖ͨΓ͢Δw࣮ͨ͠ϥϯλΠϜΛ֎෦πʔϧͱ࿈ܞ͢Δͷ༰қʹͳΔ
ʢ·ͨʣ%PDLFSϑΝϛϦͰߟ͑ͯΈΑ͏EPDLFSίϚϯυͰίϯςφΛ্ཱͪ͛ΔͱɺΊͪΌ໊͍લͷϓϩηε͕Ͱ͖ͯɺͦͷԼʹ࣮ࡍͷίϯςφͷ1*%ίϚϯυ͕ੜ͑Δ͜ͱ͕Θ͔ΔɻSVODͱ͍͏Ωʔϫʔυ͕ݟ͑Δɻ
SVODͷϨΠϠʔՄͰ͋Δw0$*ͷنͲ͓Γͷ࣮Λͨ͠ίϯςφϥϯλΠϜͰ͋Εɺ ͦΕΛ%PDLFSͷΠϯλʔϑΣʔε͔Βૢ࡞ͯ͠ίϯςφΛ࡞ΕΔwͦͷ͋ͨΓΛDPOUBJOFSE EPDLFSͰEPDLFSDPOUBJOFSETIJNͱ͍͏ϓϩάϥϜ͕୲͍ͬͯΔ
͍֮͑ͯ·͔͢ɺSBJMDBSw0SBDMFͷίϯςφϥϯλΠϜɺࠓͷτʔΫେگɾ3VTUw%PDLFSͷϥϯλΠϜʹSBJMDBSΛ͏Α͏ʹࢦఆՄೳwSBJMDBSͰίϯςφΛ্ཱͪ͛ΔΑ͏ʹΦϓγϣϯΛೖΕΔ FEHFͷͰ͔͠ಈ͔ͳ͍ͷͰͦΕʹΞοϓάϨʔυ͓ͯ͘͠ExecStart=/usr/bin/dockerd -H fd:// --experimental \--add-runtime "rc=/usr/local/bin/railcar"
SBJMDBSΛ%PDLFSͰ͑Δ
$3*$POUBJOFS3VOUJNF*OUFSGBDF
͜ͷ ,VCFSOFUFTʹؔͯ͠wૉਓͳΜͰ͕͢w͍͢·ͤΜɺશൠతʹงғؾͳΜͰ͕͢wؒҧ͍ͬͯͨΒ͝ࢦఠ͓ئ͍͠·͢ʂ8BSOJOH
NJOJDVCFͳͲͰαΫοͱLTڥΛw࡞ͬͯΈΔwNJOJLVCFTTIͰೖΔͱɺવEPDLFSϓϩηε͕ଘࡏ͍ͯ͠ΔͰ͢Ͷwຬͨ͠ͷͰ ͜ͷڥফ͠·͢
ࠓɺΦϓγϣϯΛม͑ΔwҎԼͷΦϓγϣϯͰNJOJLVCFTUBSU͢Δwʢ্ख͘ಈ͔ͳ͍࣌Ұ୴NJOJLVCFTUPQΦϓγϣϯແ͠ͰNJOJLVCFTUBSUʣ$ minikube start \--network-plugin=cni \--container-runtime=cri-o \--bootstrapper=kubeadm
DSJP ͍ͬͯ͏ͭʁw͕͍Δw͍ͭ͜୭ͩ
DSJPSLUMFUͳͲͳͲw$3*ͱɺ,VCFSOFUFT͔Βར༻͢ΔͨΊʹඞཁͳΠϯλϑΣʔεͷ༷ͷࣄͰɺH31$Λ͍ͬͯΔw$3*ϓϩτίϧΛΔσʔϞϯΛ্ཱͪ͛Δ͜ͱͰɺόοΫΤϯυͷ࣮ʹؔͳ͘LVCFDUMͰಉ͡Α͏ʹΫϥελΛߏஙՄೳɻwDSJPίϯςφϓϩηεΛ্ཱͪ͛ΔϥϯλΠϜʹSVODΛ͏wSLUMFUίϯςφϓϩηεΛ্ཱͪ͛ΔϥϯλΠϜʹSLUΛ͏
͜͜·Ͱͷ·ͱΊw0$*ͱ͍͏ஂମͷ࡞ͬͨنʹԊͬͯίϯςφϥϯλΠϜΛ࡞Δͱศརw$3*ͱ͍͏نʹԊ࣮ͬͨͰίϯςφϥϯλΠϜΛ࡞Δͱศརw͜ΕΒͷنͰίϯςφϥϯλΠϜͨͪΛઢҾ͖͢Δ͜ͱ͕Ͱ͖Δ
ṖͷਤΛՃͯ͠࠶ܝSVOD-9$ -9%)BDPOJXB.PCZSLU,VCFSOFUFT'MBOOFM$BMJDP4XBSN/PNBESBJMDBS$3*0$POUBJOFSE0$*4QFD$3*,FSOFMTZTDBMM
ṖͷਤΛՃͯ͠࠶ܝSVOD-9$ -9%)BDPOJXB.PCZSLU,VCFSOFUFT'MBOOFM$BMJDP4XBSN/PNBESBJMDBS$3*0$POUBJOFSE0$*4QFD$3*,FSOFMTZTDBMMʮϥϯλΠϜʯͱ͍͏ݺͼํͰ͜ͷ྆ํͷൣғΛࢦ͍ͯ͠Δ ͷͰΊͪΌࠞཚ͢ΔɻͲͪΒͷׂ͔ҙࣝ͢Δͱ٢
ṖͷਤΛՃͯ͠࠶ܝSVOD-9$ -9%)BDPOJXB.PCZSLU,VCFSOFUFT'MBOOFM$BMJDP4XBSN/PNBESBJMDBS$3*0$POUBJOFSE0$*4QFD$3*,FSOFMTZTDBMM%PDLFS͜͜Λ·ͱΊͯར༻͢ΔԿ͔
ṖͷਤΛՃͯ͠࠶ܝSVOD-9$ -9%)BDPOJXB.PCZSLU,VCFSOFUFT'MBOOFM$BMJDP4XBSN/PNBESBJMDBS$3*0$POUBJOFSE,FSOFMTZTDBMM-9$-9%ʹؔͯ͠ɺ0$*ͱ·ͨผ͕ͩɺͬ͘͟Γ-9$͕ΧʔωϧΓͱΓɺ-9%͕)551"1*Λ୲)BDPOJXB͜Ε͔Β)551 5$1JOUFSGBDFΛ࡞Γ·͢
࠷ޙͷϨΠϠʔ͚SVOD-9$ -9%)BDPOJXB.PCZSLU,VCFSOFUFT'MBOOFM$BMJDP4XBSN/PNBESBJMDBS$3*0$POUBJOFSE0$*4QFD$3*,FSOFMTZTDBMM
ίϯςφͷωοτϫʔΫઃఆwز͔ͭઓུ͕͋ΔɻwΫϥελϦϯά͠ͳ͍wϗετϚγϯʹͱͲ·ΔͳΒɺ%PDLFSͷσϑΥϧτͰߏΘͳ͍wࣗྗͰWYMBOͳΓΛߏஙͯ͠ؤுΔwίϯςφ͕͏ϒϦοδͳͲࣗͰҾͬுͬͯؤுͬͯؤுΔw$/*ʹԊͬͨϓϥάΠϯΛར༻͢Δ
$/*$POUBJOFS/FUXPSL*OUFSGBDF
$/*ͱw͜Ε·ͨɺ0QFO$POUBJOFS*OJUJBUJWFͷఆΊͨίϯςφͷωοτϫʔΫͷنw,VCFSOFUFTͰར༻Ͱ͖ΔwOFUXPSLQMVHJODOJͰىಈ͠ɺϚχϑΣετͰ$/*ͷ+40/ͱ γεςϜίϯςφͦͷଞΛྲྀ͠ࠐΉwϚχϑΣετΛྲྀ͠ࠐΉͱɺϗετ/etc/cni/net.dʹઃఆ͕ೖΓɺඞཁͳγεςϜίϯςφ্ཱ͕͕ͪΓ༗ޮʹͳΔ
qBOOFMͷྫwqBOOFMWYMBO -PWFS-Λ࣮ݱ͢ΔσʔϞϯwࣗͰΜͰ͍͍͚Ͳɺ $/*ϓϥάΠϯ͕͋Δ$ kubectl apply -f kube-flannel.ymlʮqBOOFMΛͬͯ-JOVYͰ࣮ݱ͢ΔWYMBOͷ͞ΘΓΛΔʯIUUQTRJJUBDPNVE[VSBJUFNTCEEBGBCEG
DBMJDPͷྫw1SPKFDU$BMJDP-ͷΈͰ࣮ݱ͍ͯ͠Δ εέʔϥϒϧͳωοτϫʔΫΛఏڙ͢Δ ϓϩδΣΫτɻ#(1Λར༻͍ͯ͠Δw ʮ:BIPP+"1"/.FFU6QʢΠϯϑϥٕज़ΧϯϑΝϨϯεʣηογϣϯᶆʯ IUUQTXXXTMJEFTIBSFOFUUFDICMPHZBIPPZBIPPKBQBONFFUVQ$ kubectl apply -f calico.yaml
ͦͷଞͷબࢶwIUUQTLVCFSOFUFTJPEPDTDPODFQUTDMVTUFSBENJOJTUSBUJPOOFUXPSLJOHw͍Ζ͍ΖͳϨΠϠʔͰΊͪΌ͋Δ͠ɺϚωʔδυڥݻ༗ͷઃఆ͋ΔΑ͏ͩʁ
࣮ϕʔεͳϨΠϠΘ͚·ͱΊSVOD-9$ -9%)BDPOJXB.PCZSLU,VCFSOFUFT'MBOOFM$BMJDP4XBSN/PNBESBJMDBS$3*0$POUBJOFSE0$*4QFD$3*,FSOFMTZTDBMM$/*$MVTUFSFE/PEF1PPM
ଟ͜͜·ͰͰ
0OFNPSFUIJOH
งғؾͰίϯςφΛࣗ࡞ͯ͠Έͨ
ࣗ࡞ҰཡwίϯςφϥϯλΠϜ)BDPOJXBwίϯςφઓུΦʔέετϨʔγϣϯ 'BTU$POUBJOFSXJUI/)).TUBDL
)BDPOJXBwίϯςφϥϯλΠϜɻNSVCZݴޠΛΈࠐΜͰ͍ͯɺίʔυͰίϯςφͷઃఆৼΔ͍ͳͲΛهड़Ͱ͖Δɻwྫ͑ɺ࠷ॳʹઆ໌ͨ͠/BNFTQBDFͷԿΛ͢Δ͔ɺ*1ԿΛ͚ͭΔ͔ɺDHSPVQͷύϥϝʔλΛͲ͏͢Δ͔ɻw͋Δ͍ɺىಈ࣌ɺఀࢭ࣌ɺىಈޙ/ඵޙʹಛఆͷॲཧΛߦ͏ɺɻw͕࡞ͬͨɻ
'BTU$POUBJOFSwͬ͘͟ΓߦͰwϦΫΤετ͕͋Δ·Ͱ ىಈ͠ͳ͍wىಈޙɺҰఆ࣌ؒޙʹఀࢭwͲΜͲΜίϯςφ͕॥͢ΔwDG1IPFOJY4FSWFST1BUUFSOwDG'BTU$(*˞ʮҰาઌߦ͘ίϯςφཧΞʔΩςΫνϟʯ8%#13&447PM
ΦʔέετϨʔγϣϯΞʔΩςΫνϟw$.%# $POUFOUT.BOBHFNFOU%BUBCBTFͷঢ়ଶʹऩଋ͢Δ˞ʮ'BTU$POUBJOFS࣮ߦڥͷมԽʹૉૣ͘దԠͰ͖Δ߃ৗੑΛ࣋ͭγεςϜΞʔΩςΫνϟʯদຊ྄հଞɺ
,VCFTUBDLͱͷൺֱSVOD,VCFSOFUFT'MBOOFM$BMJDP$3*0$POUBJOFSE,FSOFMTZTDBMM$MVTUFSFE/PEF1PPM)BDPOJXB[email protected] CBTFE TFSWJDFNFTI[email protected] )551"1* +BSEJO#SJEHFWFUI$.%#FUDE
࠙ձͰ
ऴΘΓʹ
ίϯςφɺͬͯ·͔͢ʁwԿͷͨΊʹ͍ͬͯ·͔͢ʁw࣮ΘΕ͍ͯΔͷͰʁwίϯςφͰ͋ͳͨͷղܾ͠·͔͢ʁw ͍͢·ͤΜɺݴ͍ա͗·ͨ͠
ίϯςφͷʮงғؾʯ
ίϯςφͷ֓೦Ϟσϧ
௨ৗ͖ΘΊͯ؆ૉԽ͞Εͨɺ͋ΔϞϊ͕Ͳ͏ಈ͔͘ͷઆ໌ʢʣɻ͜Εɺʹཱ͍ͬͯΔݶΓɺશͳͷͰͳͯ͘Α͍ɻਖ਼֬Ͱ͋Δඞཁ͢Βͳ͍ɻʰ୭ͷͨΊͷσβΠϯʁʱ%"ϊʔϚϯɺ༁վగ൛
ίϯςφͷ֓೦ϞσϧʁwͦΕίϯςφͰ͢Ͷw͍ΘΏΔϋΠύʔόΠβܕͳͲͷ7.ͱಉ͡Α͏ʹѻͬͯ͠·͏όΠΞε͕͋ΔͷͰͳ͍ͩΖ͏͔ɻw࣮ࡍʮϩάΠϯʯͯ͠ʮ04ʯʹݟ͑ͯ͠·͏ͷͰɺͦ͏ͳΓ͕ͪwLVCFDUMͳͲͷૢ࡞ͰޙΖͰԿ͕ى͍ͬͯ͜Δ͔૾Ͱ͖Δʁw͔͠͠7.ͷΑ͏ʹԿ͔ԾԽ͞Ε͍ͯΔΘ͚Ͱͳ͍͠ɺϗετʹΑΔ੍େ͖͍͠ɺඍົʹҧ͏ͱ͜Ζ͕ଟʑ͋Δɻ
ίϯςφΛͪΌΜͱӡ༻͢Δʹʢ·ͩ·ͩʣதΛ͍͔͚ͯ ཧղ͢Δ͜ͱ͕ॏཁɻ
ͦΕʹதΛ͔ͬ͠Γཧղ͢Δ͜ͱָ͍͠ʢͣʣ
&OKPZ5BDLMJOH$POUBJOFS&DPTZTUFN
ࢀߟࢿྉw0$* IUUQTHJUIVCDPNPQFODPOUBJOFSTSVOUJNFTQFD IUUQTHJUIVCDPNPQFODPOUBJOFSTJNBHFTQFDw1SPUPUZQJOH,VCFSOFUFT$3*CZ!SFNPSF͞Μ IUUQTTQFBLFSEFDLDPNSFNPSFQSPUPUZQJOHLVCFSOFUFTDSJXJUISVCZBOEHSQD
4QFDJBM5IBOLTwϖύϘίϯςφࡾॐ࢜ͷ͓ೋਓʢ࠷ޙͷҰਓၟӽͳ͕Βʣw!UONU[email protected]