ወጥመድ (ታርፒት) ለገቢ የኤስኤስኤች ግንኙነቶች

በይነመረብ በጣም ጠበኛ የሆነ አካባቢ ለመሆኑ ሚስጥር አይደለም። አገልጋይ እንዳሳደጉ ወዲያውኑ ለትላልቅ ጥቃቶች እና በርካታ ፍተሻዎች ይጋለጣሉ። ለምሳሌ honeypot ከደህንነት ጠባቂዎች የዚህን የቆሻሻ ትራፊክ መጠን መገመት ይችላሉ። በእርግጥ፣ በአማካይ አገልጋይ፣ 99% የትራፊክ ፍሰት ጎጂ ሊሆን ይችላል።

ታርፒት ገቢ ግንኙነቶችን ለማዘግየት የሚያገለግል የወጥመድ ወደብ ነው። የሶስተኛ ወገን ስርዓት ከዚህ ወደብ ጋር ከተገናኘ ግንኙነቱን በፍጥነት መዝጋት አይችሉም። የስርዓት ሀብቷን ማባከን እና የግንኙነቱ ጊዜ እስኪያልቅ ድረስ መጠበቅ አለባት ወይም በእጅ ማቆም አለባት።

ብዙውን ጊዜ, ታርፒቶች ለመከላከል ጥቅም ላይ ይውላሉ. ቴክኒኩ በመጀመሪያ የተሰራው ከኮምፒዩተር ትሎች ለመከላከል ነው። እና አሁን ሁሉንም የአይ ፒ አድራሻዎችን በተከታታይ በመቃኘት ላይ የተሰማሩ አይፈለጌ መልዕክት ሰሪዎችን እና ተመራማሪዎችን ህይወት ለማጥፋት ስራ ላይ ሊውል ይችላል (በሀበሬ ላይ ያሉ ምሳሌዎች፡- ኦስትሪያ, ዩክሬን).

ከስርዓቱ አስተዳዳሪዎች አንዱ ክሪስ ዌሎንስ ይህን ውርደት መመልከት ሰልችቶት ይመስላል - እና ትንሽ ፕሮግራም ጻፈ። ማለቂያ የሌለውመጪ ግንኙነቶችን የሚዘገይ ለኤስኤስኤች ተርፒት። ፕሮግራሙ ወደብ ይከፍታል (የሙከራው ነባሪ ወደብ 2222 ነው) እና ኤስኤስኤች አገልጋይ መስሎ ይታያል ፣ ግን በእውነቱ እሱ እስኪያልቅ ድረስ ከመጪው ደንበኛ ጋር ማለቂያ የሌለው ግንኙነት ይፈጥራል። ደንበኛው እስኪወድቅ ድረስ ይህ ለብዙ ቀናት ወይም ከዚያ በላይ ሊቀጥል ይችላል።

የመገልገያውን ጭነት;

$ make
$ ./endlessh &
$ ssh -p2222 localhost

በትክክል የተተገበረ ታርፒት ከእርስዎ ይልቅ ብዙ ሀብቶችን ከአጥቂው ይወስዳል። ግን የሃብት ጉዳይ እንኳን አይደለም። ደራሲ ሲል ጽፏልፕሮግራሙ ሱስ የሚያስይዝ መሆኑን. በአሁኑ ጊዜ 27 ደንበኞች ታግተው ይገኛሉ፣ አንዳንዶቹ ለሳምንታት ተገናኝተዋል። በእንቅስቃሴው ከፍተኛ ደረጃ ላይ 1378 ደንበኞች ለ 20 ሰአታት ታፍረዋል!

በኦፕሬቲንግ ሞድ ውስጥ፣ ‹Endless› አገልጋይ በተለመደው ወደብ 22 ላይ መጫን አለበት፣ እዚያም hooligans በጅምላ ያንኳኳል። መደበኛ የደህንነት ምክሮች ሁልጊዜ ኤስኤስኤች ወደተለየ ወደብ እንዲዘዋወሩ ይመክራሉ, ይህም ወዲያውኑ የምዝግብ ማስታወሻዎችን በቅደም ተከተል ይቀንሳል.

ክሪስ ዌሎንስ የእሱ ፕሮግራም የዝርዝሩን አንድ አንቀጽ ይጠቀማል ይላል። RFC 4253 ወደ ኤስኤስኤች ፕሮቶኮል. የTCP ግንኙነት ከተፈጠረ በኋላ ወዲያውኑ፣ ግን ምስጠራ ከመተግበሩ በፊት ሁለቱም ወገኖች የመታወቂያ ሕብረቁምፊ መላክ አለባቸው። እና ማስታወሻም አለ- "አገልጋዩ የስሪት ረድፉን ከመላኩ በፊት ሌሎች ረድፎችን ሊልክ ይችላል". እና ምንም ገደብ የለም በዚህ ውሂብ መጠን ላይ እያንዳንዱን መስመር መጀመር ብቻ ያስፈልግዎታል SSH-.

ይህ በትክክል Endlesssh ፕሮግራም የሚያደርገው ነው: እሱ ይልካል ማለቂያ የለውም በዘፈቀደ የመነጨ የውሂብ ፍሰትከ RFC 4253 ጋር የሚጣጣም ማለትም ከማረጋገጡ በፊት ይላኩ እና እያንዳንዱ መስመር የሚጀምረው በ SSH- እና ከ 255 ቁምፊዎች አይበልጥም, የመስመር መጨረሻ ባህሪን ጨምሮ. በአጠቃላይ ሁሉም ነገር በደረጃው መሰረት ነው.

በነባሪ, ፓኬጆችን መላክ መካከል ፕሮግራሙ 10 ሰከንድ ይጠብቃል. ይህ ደንበኛው ጊዜ እንዳያልቅ ይከላከላል, ስለዚህ ደንበኛው ለዘላለም ይጠመዳል.

መረጃው የተላከው ክሪፕቶግራፊ ከመተግበሩ በፊት ስለሆነ, ፕሮግራሙ እጅግ በጣም ቀላል ነው. ምንም ምስጠራዎችን መተግበር አያስፈልገውም እና በርካታ ፕሮቶኮሎችን ይደግፋል።

ደራሲው መገልገያው አነስተኛውን ሀብቶች እንደሚበላ እና በማሽኑ ላይ ሙሉ በሙሉ ሳይታወቅ እንደሚሰራ ለማረጋገጥ ሞክሯል. እንደ ዘመናዊ ፀረ-ቫይረስ እና ሌሎች "የደህንነት ስርዓቶች" የኮምፒተርዎን ፍጥነት መቀነስ የለበትም. በትንሹ ተንኮለኛ የሶፍትዌር ትግበራ ምክንያት ሁለቱንም የትራፊክ እና የማህደረ ትውስታ ፍጆታን መቀነስ ችሏል። በቀላሉ በአዲስ ግንኙነት ላይ የተለየ ሂደት ከጀመረ፣ እምቅ አጥቂዎች በማሽኑ ላይ ያሉ ሀብቶችን ለማሟጠጥ ብዙ ግንኙነቶችን በመክፈት የ DDoS ጥቃትን ሊጀምሩ ይችላሉ። በአንድ ግንኙነት አንድ ክር እንዲሁ የተሻለው አማራጭ አይደለም፣ ምክንያቱም ከርነሉ ክሮችን የማስተዳደር ሀብቶችን ያባክናል።

ለዚህም ነው Chris Wellons በጣም ቀላል ክብደት ያለውን አማራጭ ለ Endless: ባለአንድ ክር አገልጋይ የመረጠው poll(2)በወጥመዱ ውስጥ ያሉት ደንበኞቻቸው ምንም ተጨማሪ ግብአት የሚወስዱበት፣ በከርነል ውስጥ ያለውን የሶኬት ነገር እና በ Endlessh ውስጥ ለመከታተል ሌላ 78 ባይት ሳይቆጠሩ። ለእያንዳንዱ ደንበኛ መቀበያ እና መላክ እንዳይኖር፣ Endlessh የቀጥታ መዳረሻ ሶኬት ከፍቶ የTCP ፓኬቶችን በቀጥታ ይተረጉማል፣ ከሞላ ጎደል ሙሉውን የስርዓተ ክወና TCP/IP ቁልል በማለፍ። መጪው ቋት ጨርሶ አያስፈልግም፣ ምክንያቱም ለገቢው ውሂብ ፍላጎት የለንም።

ደራሲው በፕሮግራሙ ጊዜ አላውቅም ነበር ስለ ፒቲን አሲዮ እና ሌሎች ታርፒቶች መኖር። ስለ አሲሲዮ የሚያውቅ ከሆነ በፓይዘን ውስጥ በ18 መስመሮች ውስጥ መገልገያውን መተግበር ይችላል፡-

import asyncio
import random

async def handler(_reader, writer):
try:
while True:
await asyncio.sleep(10)
writer.write(b'%xrn' % random.randint(0, 2**32))
await writer.drain()
except ConnectionResetError:
pass

async def main():
server = await asyncio.start_server(handler, '0.0.0.0', 2222)
async with server:
await server.serve_forever()

asyncio.run(main())

አሲንሲዮ ታርፒቶችን ለመጻፍ ተስማሚ ነው. ለምሳሌ፣ ይህ መንጠቆ ፋየርፎክስን፣ Chromeን፣ ወይም ሌላ ማንኛውንም ደንበኛ ከኤችቲቲፒ አገልጋይህ ጋር ለብዙ ሰዓታት ለመገናኘት የሚሞክርን ያቆማል።

import asyncio
import random

async def handler(_reader, writer):
writer.write(b'HTTP/1.1 200 OKrn')
try:
while True:
await asyncio.sleep(5)
header = random.randint(0, 2**32)
value = random.randint(0, 2**32)
writer.write(b'X-%x: %xrn' % (header, value))
await writer.drain()
except ConnectionResetError:
pass

async def main():
server = await asyncio.start_server(handler, '0.0.0.0', 8080)
async with server:
await server.serve_forever()

asyncio.run(main())

ታርፒት በመስመር ላይ ጉልበተኞችን ለመቅጣት ጥሩ መሳሪያ ነው። እውነት ነው, ትኩረታቸውን ወደ አንድ የተወሰነ አገልጋይ ያልተለመደ ባህሪ ለመሳብ, በተቃራኒው, የተወሰነ አደጋ አለ. አንድ ሰው ስለ በቀል ሊያስብ ይችላል። እና በእርስዎ አይፒ ላይ ያነጣጠረ DDoS ጥቃት። ይሁን እንጂ እስካሁን ድረስ እንደዚህ አይነት ጉዳዮች የሉም, እና ታርፒቶች በጣም ጥሩ ይሰራሉ.

መገናኛዎች፡
Python፣ የመረጃ ደህንነት፣ ሶፍትዌር፣ የስርዓት አስተዳደር

መለያዎች:
ኤስኤስኤች፣ ማለቂያ የሌለው፣ ታርፒት፣ ታርፒት፣ ወጥመድ፣ አሲሲዮ
ወጥመድ (ታርፒት) ለገቢ የኤስኤስኤች ግንኙነቶች

በይነመረብ በጣም ጠበኛ የሆነ አካባቢ ለመሆኑ ሚስጥር አይደለም። አገልጋይ እንዳሳደጉ ወዲያውኑ ለትላልቅ ጥቃቶች እና በርካታ ፍተሻዎች ይጋለጣሉ። ለምሳሌ honeypot ከደህንነት ጠባቂዎች የዚህን የቆሻሻ ትራፊክ መጠን መገመት ይችላሉ። በእርግጥ፣ በአማካይ አገልጋይ፣ 99% የትራፊክ ፍሰት ጎጂ ሊሆን ይችላል።

ታርፒት ገቢ ግንኙነቶችን ለማዘግየት የሚያገለግል የወጥመድ ወደብ ነው። የሶስተኛ ወገን ስርዓት ከዚህ ወደብ ጋር ከተገናኘ ግንኙነቱን በፍጥነት መዝጋት አይችሉም። የስርዓት ሀብቷን ማባከን እና የግንኙነቱ ጊዜ እስኪያልቅ ድረስ መጠበቅ አለባት ወይም በእጅ ማቆም አለባት።

ብዙውን ጊዜ, ታርፒቶች ለመከላከል ጥቅም ላይ ይውላሉ. ቴክኒኩ በመጀመሪያ የተሰራው ከኮምፒዩተር ትሎች ለመከላከል ነው። እና አሁን ሁሉንም የአይ ፒ አድራሻዎችን በተከታታይ በመቃኘት ላይ የተሰማሩ አይፈለጌ መልዕክት ሰሪዎችን እና ተመራማሪዎችን ህይወት ለማጥፋት ስራ ላይ ሊውል ይችላል (በሀበሬ ላይ ያሉ ምሳሌዎች፡- ኦስትሪያ, ዩክሬን).

ከስርዓቱ አስተዳዳሪዎች አንዱ ክሪስ ዌሎንስ ይህን ውርደት መመልከት ሰልችቶት ይመስላል - እና ትንሽ ፕሮግራም ጻፈ። ማለቂያ የሌለውመጪ ግንኙነቶችን የሚዘገይ ለኤስኤስኤች ተርፒት። ፕሮግራሙ ወደብ ይከፍታል (የሙከራው ነባሪ ወደብ 2222 ነው) እና ኤስኤስኤች አገልጋይ መስሎ ይታያል ፣ ግን በእውነቱ እሱ እስኪያልቅ ድረስ ከመጪው ደንበኛ ጋር ማለቂያ የሌለው ግንኙነት ይፈጥራል። ደንበኛው እስኪወድቅ ድረስ ይህ ለብዙ ቀናት ወይም ከዚያ በላይ ሊቀጥል ይችላል።

የመገልገያውን ጭነት;

$ make
$ ./endlessh &
$ ssh -p2222 localhost

በትክክል የተተገበረ ታርፒት ከእርስዎ ይልቅ ብዙ ሀብቶችን ከአጥቂው ይወስዳል። ግን የሃብት ጉዳይ እንኳን አይደለም። ደራሲ ሲል ጽፏልፕሮግራሙ ሱስ የሚያስይዝ መሆኑን. በአሁኑ ጊዜ 27 ደንበኞች ታግተው ይገኛሉ፣ አንዳንዶቹ ለሳምንታት ተገናኝተዋል። በእንቅስቃሴው ከፍተኛ ደረጃ ላይ 1378 ደንበኞች ለ 20 ሰአታት ታፍረዋል!

በኦፕሬቲንግ ሞድ ውስጥ፣ ‹Endless› አገልጋይ በተለመደው ወደብ 22 ላይ መጫን አለበት፣ እዚያም hooligans በጅምላ ያንኳኳል። መደበኛ የደህንነት ምክሮች ሁልጊዜ ኤስኤስኤች ወደተለየ ወደብ እንዲዘዋወሩ ይመክራሉ, ይህም ወዲያውኑ የምዝግብ ማስታወሻዎችን በቅደም ተከተል ይቀንሳል.

ክሪስ ዌሎንስ የእሱ ፕሮግራም የዝርዝሩን አንድ አንቀጽ ይጠቀማል ይላል። RFC 4253 ወደ ኤስኤስኤች ፕሮቶኮል. የTCP ግንኙነት ከተፈጠረ በኋላ ወዲያውኑ፣ ግን ምስጠራ ከመተግበሩ በፊት ሁለቱም ወገኖች የመታወቂያ ሕብረቁምፊ መላክ አለባቸው። እና ማስታወሻም አለ- "አገልጋዩ የስሪት ረድፉን ከመላኩ በፊት ሌሎች ረድፎችን ሊልክ ይችላል". እና ምንም ገደብ የለም በዚህ ውሂብ መጠን ላይ እያንዳንዱን መስመር መጀመር ብቻ ያስፈልግዎታል SSH-.

ይህ በትክክል Endlesssh ፕሮግራም የሚያደርገው ነው: እሱ ይልካል ማለቂያ የለውም በዘፈቀደ የመነጨ የውሂብ ፍሰትከ RFC 4253 ጋር የሚጣጣም ማለትም ከማረጋገጡ በፊት ይላኩ እና እያንዳንዱ መስመር የሚጀምረው በ SSH- እና ከ 255 ቁምፊዎች አይበልጥም, የመስመር መጨረሻ ባህሪን ጨምሮ. በአጠቃላይ ሁሉም ነገር በደረጃው መሰረት ነው.

በነባሪ, ፓኬጆችን መላክ መካከል ፕሮግራሙ 10 ሰከንድ ይጠብቃል. ይህ ደንበኛው ጊዜ እንዳያልቅ ይከላከላል, ስለዚህ ደንበኛው ለዘላለም ይጠመዳል.

መረጃው የተላከው ክሪፕቶግራፊ ከመተግበሩ በፊት ስለሆነ, ፕሮግራሙ እጅግ በጣም ቀላል ነው. ምንም ምስጠራዎችን መተግበር አያስፈልገውም እና በርካታ ፕሮቶኮሎችን ይደግፋል።

ደራሲው መገልገያው አነስተኛውን ሀብቶች እንደሚበላ እና በማሽኑ ላይ ሙሉ በሙሉ ሳይታወቅ እንደሚሰራ ለማረጋገጥ ሞክሯል. እንደ ዘመናዊ ፀረ-ቫይረስ እና ሌሎች "የደህንነት ስርዓቶች" የኮምፒተርዎን ፍጥነት መቀነስ የለበትም. በትንሹ ተንኮለኛ የሶፍትዌር ትግበራ ምክንያት ሁለቱንም የትራፊክ እና የማህደረ ትውስታ ፍጆታን መቀነስ ችሏል። በቀላሉ በአዲስ ግንኙነት ላይ የተለየ ሂደት ከጀመረ፣ እምቅ አጥቂዎች በማሽኑ ላይ ያሉ ሀብቶችን ለማሟጠጥ ብዙ ግንኙነቶችን በመክፈት የ DDoS ጥቃትን ሊጀምሩ ይችላሉ። በአንድ ግንኙነት አንድ ክር እንዲሁ የተሻለው አማራጭ አይደለም፣ ምክንያቱም ከርነሉ ክሮችን የማስተዳደር ሀብቶችን ያባክናል።

ለዚህም ነው Chris Wellons በጣም ቀላል ክብደት ያለውን አማራጭ ለ Endless: ባለአንድ ክር አገልጋይ የመረጠው poll(2)በወጥመዱ ውስጥ ያሉት ደንበኞቻቸው ምንም ተጨማሪ ግብአት የሚወስዱበት፣ በከርነል ውስጥ ያለውን የሶኬት ነገር እና በ Endlessh ውስጥ ለመከታተል ሌላ 78 ባይት ሳይቆጠሩ። ለእያንዳንዱ ደንበኛ መቀበያ እና መላክ እንዳይኖር፣ Endlessh የቀጥታ መዳረሻ ሶኬት ከፍቶ የTCP ፓኬቶችን በቀጥታ ይተረጉማል፣ ከሞላ ጎደል ሙሉውን የስርዓተ ክወና TCP/IP ቁልል በማለፍ። መጪው ቋት ጨርሶ አያስፈልግም፣ ምክንያቱም ለገቢው ውሂብ ፍላጎት የለንም።

ደራሲው በፕሮግራሙ ጊዜ አላውቅም ነበር ስለ ፒቲን አሲዮ እና ሌሎች ታርፒቶች መኖር። ስለ አሲሲዮ የሚያውቅ ከሆነ በፓይዘን ውስጥ በ18 መስመሮች ውስጥ መገልገያውን መተግበር ይችላል፡-

import asyncio
import random

async def handler(_reader, writer):
try:
while True:
await asyncio.sleep(10)
writer.write(b'%xrn' % random.randint(0, 2**32))
await writer.drain()
except ConnectionResetError:
pass

async def main():
server = await asyncio.start_server(handler, '0.0.0.0', 2222)
async with server:
await server.serve_forever()

asyncio.run(main())

አሲንሲዮ ታርፒቶችን ለመጻፍ ተስማሚ ነው. ለምሳሌ፣ ይህ መንጠቆ ፋየርፎክስን፣ Chromeን፣ ወይም ሌላ ማንኛውንም ደንበኛ ከኤችቲቲፒ አገልጋይህ ጋር ለብዙ ሰዓታት ለመገናኘት የሚሞክርን ያቆማል።

import asyncio
import random

async def handler(_reader, writer):
writer.write(b'HTTP/1.1 200 OKrn')
try:
while True:
await asyncio.sleep(5)
header = random.randint(0, 2**32)
value = random.randint(0, 2**32)
writer.write(b'X-%x: %xrn' % (header, value))
await writer.drain()
except ConnectionResetError:
pass

async def main():
server = await asyncio.start_server(handler, '0.0.0.0', 8080)
async with server:
await server.serve_forever()

asyncio.run(main())

ታርፒት በመስመር ላይ ጉልበተኞችን ለመቅጣት ጥሩ መሳሪያ ነው። እውነት ነው, ትኩረታቸውን ወደ አንድ የተወሰነ አገልጋይ ያልተለመደ ባህሪ ለመሳብ, በተቃራኒው, የተወሰነ አደጋ አለ. አንድ ሰው ስለ በቀል ሊያስብ ይችላል። እና በእርስዎ አይፒ ላይ ያነጣጠረ DDoS ጥቃት። ይሁን እንጂ እስካሁን ድረስ እንደዚህ አይነት ጉዳዮች የሉም, እና ታርፒቶች በጣም ጥሩ ይሰራሉ.

ወጥመድ (ታርፒት) ለገቢ የኤስኤስኤች ግንኙነቶች

ምንጭ: hab.com

አስተያየት ያክሉ