Mhuwiex sigriet li l-Internet huwa ambjent ostili ħafna. Hekk kif tgħolli server, huwa istantanjament soġġett għal attakki massivi u skans multipli. Pereżempju
Tarpit huwa port nassa użat biex inaqqas il-konnessjonijiet deħlin. Jekk sistema ta 'parti terza tikkonnettja ma' dan il-port, ma tkunx tista 'tagħlaq il-konnessjoni malajr. Hija se jkollha taħli r-riżorsi tas-sistema tagħha u tistenna sakemm jiskadu l-ħin tal-konnessjoni, jew ittemmha manwalment.
Ħafna drabi, tarpits jintużaw għall-protezzjoni. It-teknika ġiet żviluppata l-ewwel biex tipproteġi kontra d-dud tal-kompjuter. U issa tista 'tintuża biex tħassar il-ħajja ta' min jispammja u riċerkaturi li huma involuti fi skannjar wiesa 'ta' l-indirizzi IP kollha wara xulxin (eżempji fuq Habré:
Wieħed mill-amministraturi tas-sistema jismu Chris Wellons jidher li għajjien jara din l-għajb - u kiteb programm żgħir
Installazzjoni tal-utilità:
$ make
$ ./endlessh &
$ ssh -p2222 localhost
Tarpit implimentat kif suppost se jieħu aktar riżorsi mingħand l-attakkant milli mingħandek. Imma lanqas hija kwistjoni ta’ riżorsi. Awtur
Fil-mod ta 'tħaddim, is-server Endlessh jeħtieġ li jiġi installat fuq il-port tas-soltu 22, fejn il-hooligans iħabbtu b'mod massiv. Rakkomandazzjonijiet ta 'sigurtà standard dejjem jagħtu parir li SSH jiċċaqlaq għal port differenti, li immedjatament inaqqas id-daqs taż-zkuk b'ordni ta' kobor.
Chris Wellons jgħid li l-programm tiegħu jisfrutta paragrafu wieħed tal-ispeċifikazzjoni SSH-
.
Dan huwa eżattament dak li jagħmel il-programm Endlessh: it tibgħat bla tarf fluss ta’ data ġġenerata b’mod każwali, li jikkonformaw ma 'RFC 4253, jiġifieri, ibgħat qabel l-awtentikazzjoni, u kull linja tibda b' SSH-
u ma jaqbiżx il-255 karattru, inkluż il-karattru tat-tmiem tal-linja. B'mod ġenerali, kollox huwa skond l-istandard.
B'mod awtomatiku, il-programm jistenna 10 sekondi bejn jibgħat il-pakketti. Dan jipprevjeni lill-klijent milli jiġi time out, u għalhekk il-klijent ikun maqbud għal dejjem.
Peress li d-dejta tintbagħat qabel ma tiġi applikata l-kriptografija, il-programm huwa estremament sempliċi. M'għandux għalfejn jimplimenta xi ċifra u jappoġġja protokolli multipli.
L-awtur ipprova jiżgura li l-utilità tikkonsma minimu ta 'riżorsi u taħdem kompletament inosservata fuq il-magna. B'differenza mill-antiviruses moderni u "sistemi ta' sigurtà" oħra, m'għandux inaqqas il-veloċità tal-kompjuter tiegħek. Huwa rnexxielu jimminimizza kemm it-traffiku kif ukoll il-konsum tal-memorja minħabba implimentazzjoni ta 'softwer kemmxejn aktar għaqlija. Jekk sempliċement nediet proċess separat fuq konnessjoni ġdida, allura attakkanti potenzjali jistgħu jniedu attakk DDoS billi jiftħu konnessjonijiet multipli biex jeżawrixxu r-riżorsi fuq il-magna. Ħajt wieħed għal kull konnessjoni wkoll mhuwiex l-aħjar għażla, minħabba li l-qalba se jaħli r-riżorsi li jimmaniġġjaw il-ħjut.
Huwa għalhekk li Chris Wellons għażel l-iktar għażla ħafifa għal Endlessh: server b'ħajt wieħed poll(2)
, fejn il-klijenti fin-nassa jikkonsmaw prattikament l-ebda riżorsi żejda, mingħajr ma jgħoddu l-oġġett tas-socket fil-qalba u 78 bytes oħra għat-traċċar f'Endlessh. Biex tevita li talloka riċeviment u tibgħat buffers għal kull klijent, Endlessh tiftaħ socket ta 'aċċess dirett u tittraduċi pakketti TCP direttament, billi tevita kważi l-munzell TCP/IP kollu tas-sistema operattiva. Il-buffer li jkun dieħel mhu meħtieġ xejn, għax m'aħniex interessati fid-dejta li tkun deħlin.
L-awtur jgħid li fil-ħin tal-programm tiegħu
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())
Asyncio huwa ideali għall-kitba tarpits. Pereżempju, dan il-ganċ se jiffriża Firefox, Chrome, jew kwalunkwe klijent ieħor li qed jipprova jikkonnettja mas-server HTTP tiegħek għal ħafna sigħat:
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())
Tarpit huwa għodda kbira biex tikkastiga l-bulli onlajn. Veru, hemm xi riskju, għall-kuntrarju, li jiġbdu l-attenzjoni tagħhom għall-imġieba mhux tas-soltu ta 'server partikolari. Xi ħadd
Hubs:
Python, Sigurtà tal-Informazzjoni, Software, Amministrazzjoni tas-sistema
Tags:
SSH, Endlessh, tarpit, tarpit, nassa, asycio
Nassa (tarpit) għal konnessjonijiet SSH deħlin
Mhuwiex sigriet li l-Internet huwa ambjent ostili ħafna. Hekk kif tgħolli server, huwa istantanjament soġġett għal attakki massivi u skans multipli. Pereżempju
Tarpit huwa port nassa użat biex inaqqas il-konnessjonijiet deħlin. Jekk sistema ta 'parti terza tikkonnettja ma' dan il-port, ma tkunx tista 'tagħlaq il-konnessjoni malajr. Hija se jkollha taħli r-riżorsi tas-sistema tagħha u tistenna sakemm jiskadu l-ħin tal-konnessjoni, jew ittemmha manwalment.
Ħafna drabi, tarpits jintużaw għall-protezzjoni. It-teknika ġiet żviluppata l-ewwel biex tipproteġi kontra d-dud tal-kompjuter. U issa tista 'tintuża biex tħassar il-ħajja ta' min jispammja u riċerkaturi li huma involuti fi skannjar wiesa 'ta' l-indirizzi IP kollha wara xulxin (eżempji fuq Habré:
Wieħed mill-amministraturi tas-sistema jismu Chris Wellons jidher li għajjien jara din l-għajb - u kiteb programm żgħir
Installazzjoni tal-utilità:
$ make
$ ./endlessh &
$ ssh -p2222 localhost
Tarpit implimentat kif suppost se jieħu aktar riżorsi mingħand l-attakkant milli mingħandek. Imma lanqas hija kwistjoni ta’ riżorsi. Awtur
Fil-mod ta 'tħaddim, is-server Endlessh jeħtieġ li jiġi installat fuq il-port tas-soltu 22, fejn il-hooligans iħabbtu b'mod massiv. Rakkomandazzjonijiet ta 'sigurtà standard dejjem jagħtu parir li SSH jiċċaqlaq għal port differenti, li immedjatament inaqqas id-daqs taż-zkuk b'ordni ta' kobor.
Chris Wellons jgħid li l-programm tiegħu jisfrutta paragrafu wieħed tal-ispeċifikazzjoni SSH-
.
Dan huwa eżattament dak li jagħmel il-programm Endlessh: it tibgħat bla tarf fluss ta’ data ġġenerata b’mod każwali, li jikkonformaw ma 'RFC 4253, jiġifieri, ibgħat qabel l-awtentikazzjoni, u kull linja tibda b' SSH-
u ma jaqbiżx il-255 karattru, inkluż il-karattru tat-tmiem tal-linja. B'mod ġenerali, kollox huwa skond l-istandard.
B'mod awtomatiku, il-programm jistenna 10 sekondi bejn jibgħat il-pakketti. Dan jipprevjeni lill-klijent milli jiġi time out, u għalhekk il-klijent ikun maqbud għal dejjem.
Peress li d-dejta tintbagħat qabel ma tiġi applikata l-kriptografija, il-programm huwa estremament sempliċi. M'għandux għalfejn jimplimenta xi ċifra u jappoġġja protokolli multipli.
L-awtur ipprova jiżgura li l-utilità tikkonsma minimu ta 'riżorsi u taħdem kompletament inosservata fuq il-magna. B'differenza mill-antiviruses moderni u "sistemi ta' sigurtà" oħra, m'għandux inaqqas il-veloċità tal-kompjuter tiegħek. Huwa rnexxielu jimminimizza kemm it-traffiku kif ukoll il-konsum tal-memorja minħabba implimentazzjoni ta 'softwer kemmxejn aktar għaqlija. Jekk sempliċement nediet proċess separat fuq konnessjoni ġdida, allura attakkanti potenzjali jistgħu jniedu attakk DDoS billi jiftħu konnessjonijiet multipli biex jeżawrixxu r-riżorsi fuq il-magna. Ħajt wieħed għal kull konnessjoni wkoll mhuwiex l-aħjar għażla, minħabba li l-qalba se jaħli r-riżorsi li jimmaniġġjaw il-ħjut.
Huwa għalhekk li Chris Wellons għażel l-iktar għażla ħafifa għal Endlessh: server b'ħajt wieħed poll(2)
, fejn il-klijenti fin-nassa jikkonsmaw prattikament l-ebda riżorsi żejda, mingħajr ma jgħoddu l-oġġett tas-socket fil-qalba u 78 bytes oħra għat-traċċar f'Endlessh. Biex tevita li talloka riċeviment u tibgħat buffers għal kull klijent, Endlessh tiftaħ socket ta 'aċċess dirett u tittraduċi pakketti TCP direttament, billi tevita kważi l-munzell TCP/IP kollu tas-sistema operattiva. Il-buffer li jkun dieħel mhu meħtieġ xejn, għax m'aħniex interessati fid-dejta li tkun deħlin.
L-awtur jgħid li fil-ħin tal-programm tiegħu
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())
Asyncio huwa ideali għall-kitba tarpits. Pereżempju, dan il-ganċ se jiffriża Firefox, Chrome, jew kwalunkwe klijent ieħor li qed jipprova jikkonnettja mas-server HTTP tiegħek għal ħafna sigħat:
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())
Tarpit huwa għodda kbira biex tikkastiga l-bulli onlajn. Veru, hemm xi riskju, għall-kuntrarju, li jiġbdu l-attenzjoni tagħhom għall-imġieba mhux tas-soltu ta 'server partikolari. Xi ħadd
Sors: www.habr.com