Share
Embed
Transcript
64 slides
-
ୈҰϑϥάϝϯτศ߈ܸ w*1ϑϥάϝϯςʔγϣϯͷϦΞηϯϒϧॲཧΛѱ༻ͨ͠߈ܸ w൪Ҏ߱ͷϑϥάϝϯτʹؚ·ΕΔԠΛॻِ͖͑ͯԠΛੜ w")FS[CFSH )4IVMNBO͕ʹࢦఠ ‣ 'SBHNFOUBUJPO$POTJEFSFE1PJTPOPVT<> 4 <>IUUQTBSYJWPSHBCT <>IUUQTVDTCJVBDJMdIFS[CFBTFDVSJUZGSBHQEG
<>IUUQTXXXSFTFBSDIHBUFOFUQSPpMF"NJS@)FS[CFSHQVCMJDBUJPO@'SBHNFOUBUJPO@$POTJEFSFE@1PJTPOPVT@PS@0OFEPNBJOUPSVMFUIFNBMMPSHMJOLT CCBFECBGFC'SBHNFOUBUJPO$POTJEFSFE1PJTPOPVTPS0OFEPNBJOUPSVMFUIFNBMMPSHQEG -
Πϝʔδ 6 +————————————+ | DNS Header Section | +————————————+ |
DNS Question Section | +————————————+ | DNS Answer Section | +————————————+ | DNS Authority Section | +————————————+ | DNS Additional Section | +————————————+ 正規の応答 +————————————+ | DNS Header Section | +————————————+ | DNS Question Section | +————————————+ | DNS Answer Section | +————————————+ | DNS Authority Section | +————————————+ | DNS Additional Section | +————————————+ 偽装した応答 第1フラグメント 第2フラグメント 別の内容に差し替え -
͜Ε·ͰͷܦҢ w ")FS[CFSH )4IVMNBO͕߈ܸͷ֓ཁΛൃද w݄5)MBWBDFL͕*$.1UZQF DPEF EFTUVOSFBDI GSBHOFFEFE Λ༻͍ͨ߈ܸྫΛൃද
‣ *1GSBHNFOUBUJPOBUUBDLPO%/4<> w݄.#SBOEUΒ͕ϑϥάϝϯτΞλοΫΛ༻͍ͯ%7ূ໌ ॻΛෆਖ਼ʹൃߦͤ͞Δख๏Λൃද ‣ %PNBJO7BMJEBUJPO 'PS.JU.3FTJMJFOU1,*<> 8 <>IUUQTSJQFSJQFOFUQSFTFOUBUJPOTJQGSBHBUUBDLQEG <>IUUQTQLJDBETJUGSBVOIPGFSEFNFEJBEPD$$4QEG -
ͷಈ͖ w౻ݪ͕߈ܸͷରࡦʹ͍ͭͯ·ͱΊͨ *OUFSOFU%SBGUΛൃද<> wଠా͕%/4Թઘ൪֎ฤͰൃද<> wଠా͕ใॲཧֶձશࠃେձͰൃද<> w/4%͕ϦϦʔε w%/40"3$
‣ ౻ݪ͕ൃද<> ‣ ϕϯμͱΦϖϨʔλ͕%/4qBHEBZʹ͍ͭͯ ύωϧσΟεΧογϣϯ<> w3*1&Ͱ%/4qBHEBZΛΞ φϯε< > w,OPU%/4͕ϦϦʔε w1PXFS%/43FDVSTPS͕ϦϦʔε w౦͕ݖҖαʔόଆͷରࡦΛ·ͱΊͨϖʔ δΛެ։<> w1PXFS%/4͕ϦϦʔε w(JU)VCͰ%/4qBHEBZͰਪ͢ ΔόοϑΝαΠζͷٞ։࢝<> 9 <>IUUQTJOEJDPEOTPBSDOFUFWFOUDPOUSJCVUJPOT <>IUUQTSJQFSJQFOFUBSDIJWFTWJEFP <>IUUQTEOTqBHEBZOFU <>IUUQTHJTUHJUIVCDPNIEBJTFEGCBDFDFG <>IUUQTHJUIVCDPNEOTWJPMBUJPOTEOTqBHEBZJTTVFT <>IUUQTUPPMTJFUGPSHIUNMESBGUGVKJXBSBEOTPQGSBHNFOUBUUBDL <>IUUQXXXDPOWJWJBMOFKQEOTFYUSBBJLPSBQEG <>IUUQTJQTKJYTROJJBDKQFK BDUJPOSFQPTJUPSZ@VSJJUFN@JE <>IUUQTJOEJDPEOTPBSDOFUFWFOUDPOUSJCVUJPOT -
6%1Ͱ%/4Ԡ͕ϑϥάϝϯτ͢ΔཁҼ w&%/4 ‣ 6%1ʹ͓͚ΔϝοηʔδαΠζͷ্ݶ؇ wԠαΠζͷ૿େ ‣ 595Ϩίʔυ%/44&$ ‣ େྔͷ/4 """""ϨίʔυΛؚΉԠ
wϑϥάϝϯςʔγϣϯͷ༠ൃ ‣ 1BUI.56%JTDPWFSZ 11 -
%0Ϗοτ w%0 %/44&$0, Ϗοτ ‣ 015ٖࣅ33ʹؚ·ΕΔ ‣ ΦϯͰ%/44&$ؔ࿈ϨίʔυΛཁٻ ‣ σϑΥϧτͰΦϯʹͳ͍ͬͯΔϑϧϦκϧό͕ଟ͍
wॺ໊ݕূΛ͠ͳ͍߹%/44&$ؔ࿈Ϩίʔυෆཁ ‣ Φϑʹ͢Δ͜ͱͰϝοηʔδαΠζΛݮͰ͖Δ 15 -
%0Ϗοτͱ3'$ w6OCPVOEͷΑ͏ʹ%0ϏοτΛΦϑʹ͢ΔΦϓγϣϯ͕ଘࡏ͠ͳ͍࣮ ଘࡏ wࠜڌ ͓ͦΒ͘ 3'$TFDUJPO ‣ "The resolver side
of a security-aware recursive name server MUST set the DO bit when sending requests, regardless of the state of the DO bit in the initiating request received by the name server side." 16 -
1BUI.56%JTDPWFSZ 1.56% wϗετؒͷܦ࿏ͷ.56Λ͋Β͔͡Ί୳ࡧ͠ɺܦ࿏్தͰͷϑϥάϝϯςʔ γϣϯΛ੍ ‣ ୳ࡧ݁Ռʹج͍ͮͯૹ৴ݩͰϑϥάϝϯςʔγϣϯ ‣ *1WͰૹ৴ݩͰϑϥάϝϯτͤ͞Δ͜ͱʹͳ͍ͬͯΔ w*1WͰ*$.1UZQF DPEFϝοηʔδΛ༻͍Δ
‣ 1BDLFU5PP#JH 15# ͱΑΕΔ͜ͱ ‣ /FYU)PQ.56ͷʹ߹Θͤͯϑϥάϝϯτ 18 -
1.56%Πϝʔδ 19 MTU: 1454 MTU: 768 MTU: 1500 MTU: 1500
①1280バイトのパケットを送信 ②ICMP type3, code4メッセージ (Next-Hop MTU: 768 バイト) ③1280バイトのパケットを 768バイトで分割して送信 -
1.56শ߈ܸΠϝʔδ 21 リゾルバ 権威サーバ 攻撃者 ①送信元をリゾルバとする ICMP echo リクエスト (1280
バイト, DF ビットをセット) ②ICMP echo リプライ (1280バイト) ③送信元をリゾルバとする ICMP type3, code4 メッセージ (MTU を偽装) ③のパケットを受け⼊れた場合 リゾリバとの通信は攻撃者が 設定したMTUに変更される -
߈ܸखॱ 23 リゾルバ 権威サーバ 攻撃者 ①偽装した 第2フラグメントを送信 ②名前解決要求 ③⾮再帰問い合わせ ④第1フラグメントを送信
⑤第2フラグメントを送信 攻撃成功の場合、⑤は リアセンブルされない ①のパケットとIP-IDが⼀致 する場合は攻撃成功 (①と④がリアセンブル) -
%/4ͱ*1ϑϥάϝϯτ w6%1ϔομ%/4)FBEFSηΫγϣϯ࠷ॳͷϑϥάϝϯτʹؚ·ΕΔՄ ೳੑ͕ߴ͍ ‣ *1ϔομ 6%1ϔομ
%/4)FBEFSηΫγϣϯ όΠτ w൪Ҏ߱ͷϑϥάϝϯτΛࠩ͠ସ͑ΔͨΊҎԼͷରࡦ͕ແޮ ‣ 6%1ιʔεϙʔτϥϯμϚΠθʔγϣϯ ‣ τϥϯβΫγϣϯ*%ϥϯμϚΠθʔγϣϯ wϦΞηϯϒϧ࣌ʹ*1ϔομɾ6%1ϔομͷใ͕ख͕͔Γ 24 -
ϑϥάϝϯτࠩ͠ସ͑ͷ݅ w*1ϔομͷϑΟʔϧυ͕Ұக͢Δ͜ͱ ‣ TSD ETU*1ΞυϨε ‣ *1*EFOUJpDBUJPO *1*% ‣
ϑϥάϝϯτΦϑηοτ ‣ ϓϩτίϧφϯόʔ wϦΞηϯϒϧޙʹ6%1νΣοΫαϜɾαΠζ͕Ұக͢Δ͜ͱ w%/4ϝοηʔδͷ֤ηΫγϣϯͷϨίʔυ͕Ұக͢Δ͜ͱ 25 -
ϑϥάϝϯτࠩ͠ସ͑ͷ݅ w*1ϔομͷϑΟʔϧυ͕Ұக͢Δ͜ͱ 㾎TSD ETU*1ΞυϨε ‣ *1*EFOUJpDBUJPO *1*% ‣ ϑϥάϝϯτΦϑηοτ
㾎ϓϩτίϧφϯόʔ wϦΞηϯϒϧޙʹ6%1νΣοΫαϜɾαΠζ͕Ұக͢Δ͜ͱ 㾎%/4ϝοηʔδͷ֤ηΫγϣϯͷϨίʔυ͕Ұக͢Δ͜ͱ 26 -
6%1νΣοΫαϜ w6%1ٙࣅϔομͱ6%1ϔομɾϖΠϩʔυ͔Βܭࢉ wόΠτͣͭՃࢉͯ͠ͷิͷͷิΛٻΊΔ ‣ حόΠτͷ߹ͰύσΟϯά 27 0 7 8 15
16 23 24 31 +--------+--------+--------+--------+ | source address | +--------+--------+--------+--------+ | destination address | +--------+--------+--------+--------+ | zero |protocol| UDP length | +--------+--------+--------+--------+ UDP ٙࣅϔομ -
νΣοΫαϜܭࢉͷྫ 29 2 όΠτͣͭՃࢉͨ͠߹ܭ: 0x22F5F3 2 όΠτͣͭՃࢉͨ͠߹ܭ: 0x3F612 1 ͷิ:
0xF615 1 ͷิ: 0xF615 ਖ਼نԠͷྫ ِԠͷྫ νΣοΫαϜ: 0x09EA νΣοΫαϜ: 0x09EA -
ϑϥάϝϯτࠩ͠ସ͑ͷ݅ w*1ϔομͷϑΟʔϧυ͕Ұக͢Δ͜ͱ 㾎TSD ETU*1ΞυϨε ‣ *1*EFOUJpDBUJPO *1*% ‣ ϑϥάϝϯτΦϑηοτ
㾎ϓϩτίϧφϯόʔ 㾎ϦΞηϯϒϧޙʹ6%1νΣοΫαϜɾαΠζ͕Ұக͢Δ͜ͱ 㾎%/4ϝοηʔδͷ֤ηΫγϣϯͷϨίʔυ͕Ұக͢Δ͜ͱ 31 -
ϑϥάϝϯτҐஔͷௐ w1.56%ʹΑΓ߹ͷ͍͍ҐஔͰϑϥάϝϯτ ‣ ϨίʔυηΫγϣϯͷڥքͳͲ w/FYU)PQ.56 *1ϔομ ͷഒ ϖΠϩʔυ Ͱઃఆ
‣ ྫ6%1ϔομ͔ΒόΠτͷҐஔͰϑϥάϝϯτ͍ͤͨ͞߹ɺ/FYU)PQ.56 όΠτʹઃఆ wROBNFͰ͞Βʹඍௐ ‣ ࠷େΦΫςοτ wௐͨ͠ϑϥάϝϯτҐஔʹج͍ͮͯ*1ϔομͷϑϥάϝϯτΦϑηοτͱϑϥάΛઃఆ 32 -
ϑϥάϝϯτࠩ͠ସ͑ͷ݅ w*1ϔομͷϑΟʔϧυ͕Ұக͢Δ͜ͱ 㾎TSD ETU*1ΞυϨε ‣ *1*EFOUJpDBUJPO *1*% 㾎ϑϥάϝϯτΦϑηοτ 㾎ϓϩτίϧφϯόʔ
6%1 㾎ϦΞηϯϒϧޙʹ6%1νΣοΫαϜɾαΠζ͕Ұக͢Δ͜ͱ 㾎%/4ϝοηʔδͷ֤ηΫγϣϯͷϨίʔυ͕Ұக͢Δ͜ͱ 33 -
ΞλοΫϕΫλͷݕ౼ wηΫγϣϯ͝ͱͷϨίʔυมߋͰ͖ͳ͍ ‣ NBMGPSNFEʹͳΔ wͲͷΑ͏ͳԠΛِ͢ΕΑ͍͔ݕ౼͠ͳ͚Ε͍͚ͳ͍ ‣ ҕৡݩͱҕৡઌͷͲͪΒΛλʔήοτʹ͢Δ͔ ‣ ൱ఆԠͱҕৡԠͷͲͪΒΛ༻͍Δ͔ ‣
%0Ϗοτͷঢ়ଶ w࣮߈ܸલͷΩϟογϡͷঢ়ଶʹґଘ 38 -
ࢀߟ 3BOLJOHEBUB w3'$TFDUJPO wԠͷ৴པΛॱҐ͚ͮͨ͠ͷ wओͳϥϯΩϯάҎԼͷ௨Γ 39 ݖҖ͋ΔԠͷ"OTXFSηΫγϣϯʹؚ·ΕΔݖҖ͋Δσʔλ ݖҖ͋ΔԠͷ"VUIPSJUZηΫγϣϯʹؚ·ΕΔσʔλ ݖҖͷͳ͍Ԡͷ"OTXFSηΫγϣϯͷσʔλ ݖҖ͋ΔԠͷ"OTXFSηΫγϣϯʹؚ·ΕΔݖҖͷͳ͍σʔλ
ݖҖ͋ΔԠͷ"EEJUJPOBMηΫγϣϯͷσʔλ ݖҖͷͳ͍Ԡͷ"VUIPSJUZηΫγϣϯͷσʔλ ݖҖͷͳ͍Ԡͷ"EEJUJPOBMηΫγϣϯͷσʔλ ৴པ ߴ -
ΞλοΫϕΫλͷྫ w൱ఆԠ ‣ /4&$ 334*(ϨίʔυΛஔ wҕৡԠ ‣ /4Ϩίʔυ""""" HMVF
ϨίʔυΛஔ wϫΠϧυΧʔυ͕ઃఆ͞Εͨκʔϯ ‣ /4Ϩίʔυ""""" HMVF ϨίʔυΛஔ 40 -
ΞλοΫϕΫλͷྫ w595Ϩίʔυ ‣ 41'ϨίʔυͳͲ wTJCMJOHυϝΠϯͷ/4 """""Ϩίʔυ ‣ ྫ$ dig cname.small-is-beautiful.jp
@a.dns.jp w6%1νΣοΫαϜ͕Ұக͠ͳ͍ԠΛੜ ‣ %P4߈ܸʹͳΔ 41 -
൱ఆԠࠩ͠ସ͑߈ܸ w3BOLJOHEBUBͱ3'$Ͱྫࣔ͞Ε͍ͯΔ൱ఆԠͷܗࣜΛड͚ೖΕΔ ࣮ͰӨڹ ‣ ϝδϟʔͳ࣮Ͱ6OCPVOEҎԼɺ1PXFS%/4YҎԼͰӨڹ͋Γ ‣ ˠमਖ਼ࡁΈ wROBNFͷܾఆํ๏ ‣ /4&$
334*(Ϩίʔυͷ͕มԽ͠ͳ͍Α͏ʹ ‣ ϥϕϧͷ͞ݻఆ 45 -
ҕৡԠࠩ͠ସ͑߈ܸ wॺ໊κʔϯ͔Βະॺ໊κʔϯͷҕৡԠΛ߈ܸ ‣ ॺ໊ݕূͷ༗ແʹΑΒͣ߈ܸՄೳ ҕৡݩͷ/4 """""ʹ334*(͕ଘࡏ͠ͳ͍ ‣ ॺ໊ݕূ͍ͯ͠ͳ͍ͳΒॺ໊κʔϯͷҕৡ߈ܸՄ wԠ͕Ωϟογϡʹଘࡏ͠ͳ͍߹ʹ༗ޮ
wେྔͷ/4Λ࣋ͭ߹/4ͷϥϕϧ͕͍߹ةݥ ‣ /4&$334*(͕ͳͯ͘ϑϥάϝϯτͤ͞ΒΕΔ 46 -
TJCMJOHυϝΠϯʹΑΔ߈ܸ w߈ܸऀ͕߈ܸ༻ͷυϝΠϯ໊Λ༻ҙ 49 $ dig +norec +nocookie cname.small-is-beautiful.jp @a.dns.jp (snip)
;; AUTHORITY SECTION: small-is-beautiful.jp. 86400 IN NS d01234567890123456789012345678901234567890123456789012345678901.small-is-beautiful.jp. small-is-beautiful.jp. 86400 IN NS g01234567890123456789012345678901234567890123456789012345678901.small-is-beautiful.jp. small-is-beautiful.jp. 86400 IN NS a01234567890123456789012345678901234567890123456789012345678901.small-is-beautiful.jp. small-is-beautiful.jp. 86400 IN NS ns.small-is-beautiful.jp. small-is-beautiful.jp. 86400 IN NS c01234567890123456789012345678901234567890123456789012345678901.small-is-beautiful.jp. small-is-beautiful.jp. 86400 IN NS e01234567890123456789012345678901234567890123456789012345678901.small-is-beautiful.jp. small-is-beautiful.jp. 86400 IN NS f01234567890123456789012345678901234567890123456789012345678901.small-is-beautiful.jp. small-is-beautiful.jp. 86400 IN NS nsa.dns.jp. small-is-beautiful.jp. 86400 IN NS b01234567890123456789012345678901234567890123456789012345678901.small-is-beautiful.jp. ;; ADDITIONAL SECTION: ns.small-is-beautiful.jp. 86400 IN A 150.42.6.4 nsa.dns.jp. 86400 IN A 203.119.1.4 a01234567890123456789012345678901234567890123456789012345678901.small-is-beautiful.jp. 86400 IN A 150.42.6.4 b01234567890123456789012345678901234567890123456789012345678901.small-is-beautiful.jp. 86400 IN A 150.42.6.4 c01234567890123456789012345678901234567890123456789012345678901.small-is-beautiful.jp. 86400 IN A 150.42.6.4 d01234567890123456789012345678901234567890123456789012345678901.small-is-beautiful.jp. 86400 IN A 150.42.6.4 e01234567890123456789012345678901234567890123456789012345678901.small-is-beautiful.jp. 86400 IN A 150.42.6.4 f01234567890123456789012345678901234567890123456789012345678901.small-is-beautiful.jp. 86400 IN A 150.42.6.4 g01234567890123456789012345678901234567890123456789012345678901.small-is-beautiful.jp. 86400 IN A 150.42.6.4 nsa.dns.jp. 86400 IN AAAA 2001:dc4::4 ;; Query time: 17 msec ;; SERVER: 203.119.1.1#53(203.119.1.1) ;; WHEN: 火 9 03 22:37:49 JST 2019 ;; MSG SIZE rcvd: 813 dns.jp. の権威サーバ Linux ならフラグメントさせられる メッセージサイズ -
ࠜຊతͳରࡦ Ϧκϧόଆ w&%/4όοϑΝαΠζΛখ͘͢͞Δ ‣ େ͖͍Ԡ5$ϏοτΛཱͯͯ5$1ϑΥʔϧόοΫͤ͞Δ ‣ όΠτͩͱैདྷͷ%/4ͱಉ͡ڍಈʹ ਪٞ͋Γ ޙड़
‣ -FUT&ODSZQU $MPVEqBSFͰରࡦࡁΈ wϑϥάϝϯτύέοτΛϑΝΠΞΥʔϧͰυϩοϓ wॺ໊ݕূ͠ͳ͍߹%0ϏοτΛΦϑʹ 54 *1Wͷ࠷খ.56όΠτͰ͋Γɺ&%/4όοϑΝαΠζͷมߋͱ %0ϏοτΦϑͰ͛ͳ͍έʔε͋ΔͨΊగਖ਼͠·͢ɻ -
ࠜຊతͳରࡦ ݖҖଆ w&%/4όοϑΝαΠζΛখ͘͢͞Δ w1.56Λແࢹ͢Δ ‣ -JOVYͷ߹,FSOFMҎ্ͰIP_PMTUDISC_OMITιέοτΦϓγϣϯΛ༻ ͍Δ ‣ 'SFF#4%ͷ߹Өڹͳ͠ ‣
ϝδϟʔͳ࣮ͰରࡦࡁΈ IUUQTHJTUHJUIVCDPNIEBJTFEGCBDFDFG 55 *1Wͷ࠷খ.56όΠτͰ͋Γɺ&%/4όοϑΝαΠζͷมߋͱ IP_PMTUDISC_OMIT Ͱ͛ͳ͍έʔε͋ΔͨΊగਖ਼͠·͢ɻ -
ͦͷଞͷରࡦ wϦκϧόଆͰ"VUIPSJUZηΫγϣϯͷ/4ϨίʔυΛແࢹ ‣ ϝδϟʔͳ࣮ͰରࡦࡁΈ 6OCPVOEҎ্ɺ1PXFS%/43FDVSTPSҎ্ʹΞοϓσʔτΛ w2/".&NJOJNJTBUJPO w֤κʔϯͷ/4 """""ϨίʔυΛ"VUIPSJUBUJWF"OTXFSͱͯ͠Ωϟογϡ ‣
6OCPVOEͷharden-referral-path: yesͱಉ༷ͷڍಈ w%/44&$ͷશͳରԠ 56 -
2/".&NJOJNJTBUJPO w3'$ wඞཁ࠷খݶͷROBNFʹॖͯ͠ݖҖαʔόʹ͍߹Θͤ 57 . (root) a.dns.jp. ns.example.jp. Q: jp.
IN NS A: jp. IN NS a.dns.jp. Q: example.jp. IN NS A: example.jp. IN NS ns.example.jp. Q: www.example.jp. IN A A: www.example.jp. IN A 192.0.2.1 Q: www.example.jp. IN A A: www.example.jp. IN A 192.0.2.1 -
%/44&$ͷશͳରԠ wશͳରԠ ‣ ͯ͢ͷκʔϯʹ͓͍ͯॺ໊ /4&$0QU0VUͳ͠ ‣ ͯ͢ͷϑϧϦκϧόͰॺ໊ݕূ wݱ࣮తͰͳ͍ ‣
αʔόෛՙͷ্ঢɺӡ༻໘ͷ՝ ‣ ීٴ 58 -
&%/4CV⒎FSTJ[F͋Ε͜Ε w ‣ ैདྷͱಉ͡αΠζ ‣ චऀΒͷਪ w ‣ ܭࢉํ๏ෆ໌ ͔ΒΓࣺͯ
‣ %/44&$Ͱ.645TVQQPSUͱ͞ΕΔ ࠷খ 3'$TFDUJPO w ‣ *1W)FBEFS 6%1 )FBEFS *1W"UPNJD 'SBHNFOU w ‣ w ‣ ଟ͘ͷ࣮ͷσϑΥϧτ 61 -
&%/4CV⒎FSTJ[Fਪ w͔͕༗ྗ ‣ %/44&$ͷύϑΥʔϚϯεΛߟྀ ‣ IP_PMTUDISC_OMITΛ͍ͬͯͳ͍࣮Ͱϑϥάϝϯτͤ͞ΒΕΔ wͳΒଟ͘ͷ߹େৎͦ͏ ‣ ύϑΥʔϚϯεԼ͢Δ ‣
CV⒎FSTJ[FΛແࢹ͢ΔݖҖαʔό࣮͕ଘࡏ͢Δ 62