Ní haon rún é gur timpeallacht thar a bheith naimhdeach é an tIdirlíon. Chomh luath agus a ardaíonn tú freastalaí, cuirtear faoi réir ionsaithe ollmhóra agus scananna iolracha láithreach é. Mar shampla
Is calafort gaiste é Tarpit a úsáidtear chun naisc a thagann isteach a mhoilliú. Má nascann córas tríú páirtí leis an bport seo, ní bheidh tú in ann an nasc a dhúnadh go tapa. Beidh uirthi a cuid acmhainní córais a chur amú agus fanacht go dtí go dtiocfaidh deireadh leis an nasc, nó deireadh a chur leis de láimh.
Is minic a úsáidtear tarpits le haghaidh cosanta. Forbraíodh an teicníc ar dtús chun cosaint a dhéanamh i gcoinne péisteanna ríomhaire. Agus anois is féidir é a úsáid chun saol spammers agus taighdeoirí atá ag gabháil do scanadh leathan ar gach seoladh IP as a chéile a mhilleadh (mar shampla ar Habré:
Is cosúil gur éirigh duine de riarthóirí an chórais darb ainm Chris Wellons tuirseach ag breathnú ar an náire seo - agus scríobh sé clár beag
Suiteáil an áirgiúlachta:
$ make
$ ./endlessh &
$ ssh -p2222 localhost
Tógfaidh tarpit a chuirtear i bhfeidhm i gceart níos mó acmhainní ón ionsaitheoir ná uaitse. Ach ní ceist acmhainní é fiú. Údar
I mód oibriúcháin, ní mór an freastalaí Endlessh a shuiteáil ar an gcalafort gnách 22, áit a bhuaileann maistíní en masse. Moltar i gcónaí le moltaí slándála caighdeánacha SSH a aistriú go calafort difriúil, rud a laghdaíonn méid na logaí láithreach le hordú méide.
Deir Chris Wellons go mbaineann a chlár leas as alt amháin den tsonraíocht SSH-
.
Is é seo go díreach a dhéanann an clár Endlessh: é seolann gan teorainn sruth sonraí a ghintear go randamach, a chomhlíonann RFC 4253, is é sin, seol roimh fhíordheimhniú, agus tosaíonn gach líne le SSH-
agus nach mó ná 255 carachtar, lena n-áirítear an carachtar deiridh líne. Go ginearálta, tá gach rud de réir an chaighdeáin.
De réir réamhshocraithe, fanann an clár 10 soicind idir na paicéid a sheoladh. Cuireann sé seo cosc ar an gcliant a bheith imithe i léig, mar sin beidh an cliant gafa go deo.
Ós rud é go seoltar na sonraí sula gcuirtear cripteagrafaíocht i bhfeidhm, tá an clár thar a bheith simplí. Ní gá aon scipéir a chur i bhfeidhm agus tacaíonn sé le ilphrótacail.
Rinne an t-údar iarracht a chinntiú go n-ídíonn an áirgiúlacht íosmhéid acmhainní agus go n-oibríonn sé go hiomlán gan aird ar an meaisín. Murab ionann agus frithvíreas nua-aimseartha agus “córais slándála” eile, níor cheart go gcuirfeadh sé moill ar do ríomhaire. D'éirigh leis ídiú tráchta agus cuimhne a íoslaghdú mar gheall ar chur i bhfeidhm bogearraí beagán níos cunning. Má sheol sé próiseas ar leith ar nasc nua go simplí, d'fhéadfadh ionsaitheoirí ionchasacha ionsaí DDoS a sheoladh trí naisc iolracha a oscailt chun acmhainní a sceite ar an meaisín. Ní hé snáithe amháin in aghaidh an naisc an rogha is fearr freisin, mar go gcuirfidh an t-eithne amú acmhainní a bhainistiú snáitheanna.
Sin an fáth a roghnaigh Chris Wellons an rogha is éadrom do Endlessh: freastalaí aon-snáithithe poll(2)
, áit a n-itheann na cliaint sa ghaiste beagnach aon acmhainní breise, gan an réad soicéad san eithne a chomhaireamh agus 78 beart eile le haghaidh rianú in Endlessh. Chun maoláin fháil agus a sheoladh a sheachaint do gach cliant, osclaíonn Endlessh soicéad rochtana dírí agus aistríonn paicéid TCP go díreach, ag seachaint beagnach iomlán an chórais oibriúcháin TCP/IP. Níl gá leis an maolán atá ag teacht isteach ar chor ar bith, toisc nach bhfuil suim againn sna sonraí atá ag teacht isteach.
Deir an t-údar sin tráth a chláir
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())
Tá Asyncio oiriúnach chun tarpanna a scríobh. Mar shampla, reofaidh an hook seo Firefox, Chrome, nó cliant ar bith eile atá ag iarraidh ceangal le do fhreastalaí HTTP ar feadh go leor uaireanta:
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())
Is uirlis iontach é Tarpit chun bulaithe ar líne a phionósú. Fíor, tá baol áirithe ann, ar a mhalairt, a n-aird a tharraingt ar iompar neamhghnách freastalaí ar leith. Duine éigin
Moil:
Python, slándáil faisnéise, Bogearraí, riarachán córais
Tags:
SSH, Endlessh, tarpit, tarpit, trap, asycio
Gaiste (tarpit) le haghaidh naisc SSH ag teacht isteach
Ní haon rún é gur timpeallacht thar a bheith naimhdeach é an tIdirlíon. Chomh luath agus a ardaíonn tú freastalaí, cuirtear faoi réir ionsaithe ollmhóra agus scananna iolracha láithreach é. Mar shampla
Is calafort gaiste é Tarpit a úsáidtear chun naisc a thagann isteach a mhoilliú. Má nascann córas tríú páirtí leis an bport seo, ní bheidh tú in ann an nasc a dhúnadh go tapa. Beidh uirthi a cuid acmhainní córais a chur amú agus fanacht go dtí go dtiocfaidh deireadh leis an nasc, nó deireadh a chur leis de láimh.
Is minic a úsáidtear tarpits le haghaidh cosanta. Forbraíodh an teicníc ar dtús chun cosaint a dhéanamh i gcoinne péisteanna ríomhaire. Agus anois is féidir é a úsáid chun saol spammers agus taighdeoirí atá ag gabháil do scanadh leathan ar gach seoladh IP as a chéile a mhilleadh (mar shampla ar Habré:
Is cosúil gur éirigh duine de riarthóirí an chórais darb ainm Chris Wellons tuirseach ag breathnú ar an náire seo - agus scríobh sé clár beag
Suiteáil an áirgiúlachta:
$ make
$ ./endlessh &
$ ssh -p2222 localhost
Tógfaidh tarpit a chuirtear i bhfeidhm i gceart níos mó acmhainní ón ionsaitheoir ná uaitse. Ach ní ceist acmhainní é fiú. Údar
I mód oibriúcháin, ní mór an freastalaí Endlessh a shuiteáil ar an gcalafort gnách 22, áit a bhuaileann maistíní en masse. Moltar i gcónaí le moltaí slándála caighdeánacha SSH a aistriú go calafort difriúil, rud a laghdaíonn méid na logaí láithreach le hordú méide.
Deir Chris Wellons go mbaineann a chlár leas as alt amháin den tsonraíocht SSH-
.
Is é seo go díreach a dhéanann an clár Endlessh: é seolann gan teorainn sruth sonraí a ghintear go randamach, a chomhlíonann RFC 4253, is é sin, seol roimh fhíordheimhniú, agus tosaíonn gach líne le SSH-
agus nach mó ná 255 carachtar, lena n-áirítear an carachtar deiridh líne. Go ginearálta, tá gach rud de réir an chaighdeáin.
De réir réamhshocraithe, fanann an clár 10 soicind idir na paicéid a sheoladh. Cuireann sé seo cosc ar an gcliant a bheith imithe i léig, mar sin beidh an cliant gafa go deo.
Ós rud é go seoltar na sonraí sula gcuirtear cripteagrafaíocht i bhfeidhm, tá an clár thar a bheith simplí. Ní gá aon scipéir a chur i bhfeidhm agus tacaíonn sé le ilphrótacail.
Rinne an t-údar iarracht a chinntiú go n-ídíonn an áirgiúlacht íosmhéid acmhainní agus go n-oibríonn sé go hiomlán gan aird ar an meaisín. Murab ionann agus frithvíreas nua-aimseartha agus “córais slándála” eile, níor cheart go gcuirfeadh sé moill ar do ríomhaire. D'éirigh leis ídiú tráchta agus cuimhne a íoslaghdú mar gheall ar chur i bhfeidhm bogearraí beagán níos cunning. Má sheol sé próiseas ar leith ar nasc nua go simplí, d'fhéadfadh ionsaitheoirí ionchasacha ionsaí DDoS a sheoladh trí naisc iolracha a oscailt chun acmhainní a sceite ar an meaisín. Ní hé snáithe amháin in aghaidh an naisc an rogha is fearr freisin, mar go gcuirfidh an t-eithne amú acmhainní a bhainistiú snáitheanna.
Sin an fáth a roghnaigh Chris Wellons an rogha is éadrom do Endlessh: freastalaí aon-snáithithe poll(2)
, áit a n-itheann na cliaint sa ghaiste beagnach aon acmhainní breise, gan an réad soicéad san eithne a chomhaireamh agus 78 beart eile le haghaidh rianú in Endlessh. Chun maoláin fháil agus a sheoladh a sheachaint do gach cliant, osclaíonn Endlessh soicéad rochtana dírí agus aistríonn paicéid TCP go díreach, ag seachaint beagnach iomlán an chórais oibriúcháin TCP/IP. Níl gá leis an maolán atá ag teacht isteach ar chor ar bith, toisc nach bhfuil suim againn sna sonraí atá ag teacht isteach.
Deir an t-údar sin tráth a chláir
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())
Tá Asyncio oiriúnach chun tarpanna a scríobh. Mar shampla, reofaidh an hook seo Firefox, Chrome, nó cliant ar bith eile atá ag iarraidh ceangal le do fhreastalaí HTTP ar feadh go leor uaireanta:
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())
Is uirlis iontach é Tarpit chun bulaithe ar líne a phionósú. Fíor, tá baol áirithe ann, ar a mhalairt, a n-aird a tharraingt ar iompar neamhghnách freastalaí ar leith. Duine éigin
Foinse: will.com