Si Samy Kamkar (isang sikat na mananaliksik sa seguridad na kilala sa paglikha ng ilang sopistikadong aparato sa pag-atake, tulad ng isang keylogger sa isang USB phone charger) ay nagpakilala ng isang bagong pamamaraan ng pag-atake na tinatawag na "NAT slipstreaming".
Ang pag-atake ay nagbibigay-daan, sa pagbukas ng isang webpage sa isang browser, na makapagtatag ng koneksyon mula sa server ng attacker patungo sa anumang UDP o TCP port sa sistema ng user na matatagpuan sa likod ng address translator. Ang attack toolkit ay inilathala sa GitHub.
Ang pamamaraan ay umaasa sa panlilinlang sa mekanismo ng pagsubaybay sa koneksyon ng ALG (Application Level Gateway) sa mga tagasalin ng address o firewall, na ginagamit upang ayusin ang pagpapasa ng NAT ng mga protocol na gumagamit ng maraming port ng network (isa para sa data at isa para sa kontrol), tulad ng SIP, H323, IRC DCC, at FTP.
Ang pag-atake ay naaangkop sa mga user na kumokonekta sa network gamit ang mga internal address sa intranet range (192.168.xx, 10.xxx) at nagpapahintulot sa anumang data na ipadala sa anumang port (nang walang HTTP header).
Para magsagawa ng pag-atake, sapat na para sa biktima na isagawa ang JavaScript code na inihanda ng umaatake , halimbawa, sa pamamagitan ng pagbubukas ng isang pahina sa website ng umaatake o pagtingin sa isang malisyosong advertisement sa isang lehitimong website.
Sa unang yugto, kumukuha ang attacker ng impormasyon tungkol sa internal address ng user, na maaaring matukoy ng WebRTC o, kung naka-disable ang WebRTC, sa pamamagitan ng mga brute-force attack na may sinusukat na oras ng pagtugon kapag humihiling ng nakatagong imahe (para sa mga umiiral na host, ang pagtatangkang humiling ng imahe ay mas mabilis kaysa sa mga wala dahil sa oras ng paghihintay bago magbalik ng tugon ng TCP RST).
Sa ikalawang yugto, ang JavaScript code na isinagawa sa browser ng biktima ay bubuo ng isang malaking HTTP POST request (hindi kasya sa isang packet) sa server ng attacker gamit ang isang hindi karaniwang network port number upang simulan ang pagsasaayos ng mga parameter ng TCP fragmentation at laki ng MTU sa TCP stack ng biktima.
Bilang tugon, ang server ng attacker ay nagbabalik ng isang TCP packet na may opsyong MSS (Maximum Segment Size), na siyang tumutukoy sa maximum na laki ng natanggap na packet. Sa kaso ng UDP, ang manipulasyon ay magkatulad, ngunit umaasa ito sa pagpapadala ng isang malaking kahilingan sa WebRTC TURN upang ma-trigger ang fragmentation sa antas ng IP.
«Sinasamantala ng NAT Slipstreaming ang browser ng gumagamit kasabay ng mekanismo ng pagsubaybay sa koneksyon sa Application Level Gateway (ALG) na itinayo sa NAT, mga router, at firewall sa pamamagitan ng pag-chain ng panloob na pagkuha ng IP sa pamamagitan ng isang atake sa oras o WebRTC, pagtuklas ng pagkakawatak-watak ng awtomatikong remote na IP at MTU, TCP laki ng packet na masahe, maling paggamit ng pagpapatotoo ng TURN, tumpak na kontrol ng mga limitasyon ng packet at pagkalito ng proteksyon mula sa pag-abuso sa browser, "sabi ni Kamkar sa isang pagsusuri.
Ang pangunahing ideya ay , alam ang mga parameter ng fragmentation, maaari kang magpadala ng isang malaking kahilingan sa HTTP, na ang buntot ay mapupunta sa pangalawang packet . Kasabay nito, ang papasok na buntot ng pangalawang packet ay pinipili upang ibukod ang mga header ng HTTP at pinutol sa data na ganap na tumutugma sa isa pang protocol kung saan sinusuportahan ang NAT traversal.
Sa ikatlong yugto, gamit ang pagmamanipula sa itaas, bumubuo ang JavaScript code at nagpapadala ng isang espesyal na napiling kahilingan sa HTTP (o TURN para sa UDP) sa port ng TCP 5060 ng server ng umaatake, na, pagkatapos ng pagkakawatak-watak, ay hahatiin sa dalawang mga packet: a packet na may mga HTTP header at bahagi ng data at isang wastong SIP packet na may panloob na IP ng biktima.
Isasaalang-alang ng sistema para sa pagsubaybay sa mga koneksyon sa network stack ang packet na ito bilang simula ng isang SIP session at papayagan ang pagpapasa ng packet para sa anumang port na pinili ng attacker, sa pag-aakalang ang port na ito ay ginagamit para sa paghahatid ng data.
Maaaring isagawa ang pag-atake anuman ang browser na ginamit . Upang malutas ang problema, iminungkahi ng mga developer ng Mozilla na harangan ang kakayahang magpadala ng mga kahilingan sa HTTP sa mga network port na 5060 at 5061, na nauugnay sa SIP protocol.
Plano din ng mga nag-develop ng engine ng Chromium, Blink at WebKit na magpatupad ng katulad na hakbang sa proteksyon.
Pinagmulan: https://samy.pl