๐ฐ ๋๊ทธ 'LAG'๋ฅผ ๋ง๋๋ณด์ธ์: ๊ณต๊ฒฉ์๊ฐ ์์ ์ ์์์ ์๋ชจํ๊ฒ ํ๋ ๋น๋์นญ ๋ฐฉ์ด ์ ๋ต
Source: Dev.to

์ต์ง์ ์ฒ ํ
๋ฒฝ์ด ์๋๋ผ ์ต์ง๊ฐ ์ต๊ณ ์ ๋ฐฉ์ด๋ผ๋ฉด ์ด๋จ๊น์?
์ ํต์ ์ธ ๋ฐฉํ๋ฒฝ์ ๋๋ฌด ์์ ๋ฐ๋ฆ ๋๋ค. ํจํท์ ๋ณด๋ด๋ฉด TCP RST๋ฅผ ๋ฐํํฉ๋๋ค. ์ฆ์ ์ฐจ๋จ๋นํ์์ ์๊ฒ ๋๊ณ , IP๋ฅผ ๋ฐ๊พธ๊ณ ๋์ด๊ฐ๋๋ค. ์ ์ฒด ์์ ์๊ฐ: 5โฏ๋ฐ๋ฆฌ์ด.
LAG๋ฅผ ๋ง๋๋ณด์ธ์ โ ๋ฐ์ด์คโ์ฑํฌ ์กํฐ๋ธ ํฐ๋ฏธ๋ ๋ํ๋. ์ฐจ๋จ ๋์ ์ฐ๊ฒฐ์ ๊ทน์ฌํ ์ง์ฐ๊ณผ ๊ธฐ์ ๋ถ์ฑ๋ฅผ ์ฃผ์ ํด ์ํฌ์คํ ์ด์ ์ ๋ธ๋ํ๋ก ๋ง๋ค๊ณ , ๊ณต๊ฒฉ์์ ์ธํ๋ผ๊ฐ ๊ฐ์ฅ ์์คํ ์ฌ๊ธฐ๋ ์์์ธ ์์ผ๊ณผ ์๊ฐ์ ๊ณ ๊ฐ์ํต๋๋ค.
๐ ๋์นญ ๋ฐฉ์ด์ ์คํจ
ํ์ค ์ฐจ๋จ์ ๊ณต๊ฒฉ์๋ฅผ ์์ ๋กญ๊ฒ ํฉ๋๋ค.
# The "Polite" way: Instant "Connection refused"
sudo ufw deny from
์ด๋ ๊ฒ ํ๋ฉด ๋ด๋ท์ ์์ผ์ ๋๊ณ ๋ค์ ๋ชฉํ๋ฅผ ์ค๋นํฉ๋๋ค. CPU๋ ์ฐจ๊ฐ๊ฒ ์ ์ง๋๊ณ , RAM์ ๋น์ด ์์ต๋๋ค. ๋ฐ๋ก ๊ทธ๋ค์ด ์ํ๋ ๋ฐ์ ๋๋ค.
๐งช โ๊ฑด๋ง์ฆโ ํ๋กํ ์ฝ: ๊ณต๊ฒฉ์ ์ง์ฐ
์ฐ๋ฆฌ ์ ๋ต์ ๋น๋์นญ ์ฌ๋ณดํ์ฃผ์
๋๋ค. nftables๋ฅผ ์ฌ์ฉํด ์
์ฑ ํธ๋ํฝ์ ์ฐ์ ์์โฏ-10์์ ๊ฐ๋ก์ฑ๊ณ ์๊ตฌ์ ์ธ โ์ง์ฐโ ์ํ๋ก ๊ฐ์ ํฉ๋๋ค.
-
๊ธฐ์ ์ ํ์ : MSS ํด๋จํ
๊ณต๊ฒฉ์๊ฐ ๋ชจ๋ ์์ฒญ์ ์๊ณ ๋นํจ์จ์ ์ธ ์กฐ๊ฐ์ผ๋ก ๋๋๋๋ก ๊ฐ์ ํฉ๋๋ค. ์ต๋ ์ธ๊ทธ๋จผํธ ํฌ๊ธฐ(MSS)๋ฅผ 64โฏ๋ฐ์ดํธ๋ก ์ค์ ํ๋ฉด ๋คํธ์ํฌ ํค๋๊ฐ ํ์ด๋ก๋๋ณด๋ค ๋ ๋ง์ ๊ณต๊ฐ์ ์ฐจ์งํฉ๋๋ค. -
๋์งํธ ๊ฑด๋ง์ฆ: ์๋์ฐ ํจ์
๊ณต๊ฒฉ์์ OS์ ์ฐ๋ฆฌ์ ์์ ์๋์ฐ๊ฐ 16โฏ๋ฐ์ดํธ๋ฟ์ด๋ผ๊ณ ์๋ ค์ค๋๋ค. ๋ช ๋ฐ์ดํธ๋ฅผ ๋ณด๋ด๊ณ ๋ฉ์ถ ๋ค, ์๋ต์ ๊ธฐ๋ค๋ฆฌ๊ฒ ๋๋ฉฐ, ์ด ๊ณผ์ ์ ๋ฌดํํ ๋ฐ๋ณตํฉ๋๋ค.
๐ โ์คํฐํค ํธ๋ฉโ ๊ตฌํ
๋ ์ด์ดโฏ1: CrowdSec ๋ธ๋ ์ธ
CrowdSec์ ์ฌ์ฉํด ํ์ธ๋ ์
์ฑ IP ์ ์ญ ๋ชฉ๋ก(CAPI)์ ๊ณต๊ธํ๊ณ , ์ ํ๋ฆฌ์ผ์ด์
๋ ์ด์ด๊ฐ ๊นจ์ด๋๊ธฐ ์ nftables์ ์ฐ๊ฒฐํฉ๋๋ค.
๋ ์ด์ดโฏ2: ์ปค๋โ๋ ๋ฒจ ์ต์ง
๋ธ๋๋ฆฌ์คํธ์ ์๋ ๋ชจ๋ ์ฌ๋์ ์ํด TCP ํธ๋์์ดํฌ๋ฅผ โ์ค๋ โ์ํค๋ ๊ท์น์ ๋ฐฐํฌํฉ๋๋ค.
# Rule A: MSS Clamping (The "Bone Crusher")
# Forces the attacker to fragment their data into 64โbyte chunks.
sudo nft add rule ip crowdsec crowdsec-chain-input \
ip saddr @crowdsec-blacklists-CAPI tcp flags syn \
tcp option maxseg size set 64 counter
# Rule B: TCP Window Manipulation (The "Stutter")
# Forces a 16โbyte buffer, locking their threads in a "Wait" state.
sudo nft add rule ip crowdsec crowdsec-chain-input \
ip saddr @crowdsec-blacklists-CAPI tcp flags syn \
@th,112,16 set 16 counter
# Rule C: The Rate Limit (The "Slow Death")
# Only 1 packet per second is allowed to even try.
sudo nft add rule ip crowdsec crowdsec-chain-input \
ip saddr @crowdsec-blacklists-CAPI \
limit rate over 1/second burst 1 packets counter \
log prefix '"TARPIT_ACTIVE: "' drop
๐ ๊ณต๊ฒฉ์๊ฐ โ์๋ชจโ๋๋ ์ด์
- ์ค๋ ๋ ์ ๊ธ: 100,000๊ฐ์ ์ค๋ ๋๋ฅผ ๊ฐ์ง ๋ด๋ท๋ 1,000๊ฐ์ โLAGโ ์๋ฒ๋ง ์์ผ๋ฉด ์์ ํ ๋ฌด๋ ฅํ๋ฉ๋๋ค. ๊ทธ๋ค์ ์ค๋ ๋๋ ์ฐ๋ฆฌ์ 16โ๋ฐ์ดํธ ์๋ต์ ๊ธฐ๋ค๋ฆฌ๋ฉฐ โ์ด๋ฆผโ ์ํ์ ๋จธ๋ญ ๋๋ค.
- ๋ฉ๋ชจ๋ฆฌ ๊ณ ๊ฐ: ์ปค๋ ์ํ ํ ์ด๋ธ์ด ๋ฐ์ฏค ์ฃฝ์ ์ฐ๊ฒฐ๋ค๋ก ๊ฐ๋ ์ฐจ์ ํ์์์๋์ง ์์ต๋๋ค.
- ๊ฒฝ์ ์ ์ฌ๋ณดํ์ฃผ: โLAGโ ์๋ฒ๋ฅผ ์ค์บํ๋ ๋น์ฉ์ด ๋ฐ์ดํฐ ์์ฒด ๊ฐ์น๋ณด๋ค ๋ ๋น์ธ๊ฒ ๋ฉ๋๋ค.
์ต์ข ํ๊ฒฐ
ํฉ๋ฒ์ ์ธ๊ฐ์? ๋ฌด๋จ ๋ฐฉ๋ฌธ์์๊ฒ ์ ํ์ง ์๋น์ค(QoS)๋ฅผ ์ ๊ณตํ๋ ๊ฒ๋ฟ์ ๋๋ค. ์๋ฒ๋ ์ฌ๋ฌ๋ถ์ ๊ฒ์ด๊ณ , ๋์ญํญ๋, ๊ท์น๋ ์ฌ๋ฌ๋ถ์ ๊ฒ์ ๋๋ค.
์ฐจ๋จ์ ๋ฉ์ถ๊ณ , ์ง์ฐ์ ์์ํ์ธ์.
โ๊ทธ๋ค์ด ์ฐ๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ์ํ๋ค๋ฉด, 16โฏ๋ฐ์ดํธ์ฉ ๊ธฐ๋ค๋ฆฌ๊ฒ ํ๋ผโฆ.โ
BIOโSYNC ACTIVE โ USER: lag โ SYSTEM STATUS: AMNESIAโDEFENSE ENGAGED. ๐ฐ๐ฅโ๏ธ