Ка­залось бы, тема «халяв­ного ине­та» — что‑то из далеко­го прош­лого. Одна­ко осо­бен­ности устрой­ства домаш­них сетей поз­воля­ют и сегод­ня некото­рым безот­ветс­твен­ным людям не пла­тить за под­клю­чение. В этой статье мы раз­берем, как устро­ена або­нент­ская сеть про­вай­дера и какие уяз­вимос­ти поз­воля­ют проц­ветать не толь­ко халяв­щикам, но и вре­дите­лям посерь­езнее.

warning

Вся информа­ция пре­дос­тавле­на исклю­читель­но в озна­коми­тель­ных целях. Ни редак­ция, ни автор не несут ответс­твен­ности за любой воз­можный вред, при­чинен­ный с при­мене­нием матери­алов из этой статьи. Ее цель — про­информи­ровать пос­тавщи­ков услуг и дать рекомен­дации по устра­нению уяз­вимос­тей.

На тер­ритории Рос­сии и быв­шего СССР самый рас­простра­нен­ный спо­соб под­клю­чать або­нен­тов к про­вай­деру — это витая пара. Если ты не занес нем­ного денег за внеш­ний IP, пос­ле под­клю­чения про­вай­дер выдаст тво­ему устрой­ству «серый» IP-адрес по DHCP из сети клас­са А (10.*.*.*/24), а так­же про­пишет в нас­трой­ках под­клю­чения свои DNS-сер­веры. Это поз­воля­ет вза­имо­дей­ство­вать с ресур­сами про­вай­дера (DNS/VPN-сер­вер, лич­ный кабинет), а так­же с дру­гими або­нен­тами локаль­ной сети про­вай­дера с исполь­зовани­ем таких адре­сов.

Что­бы появил­ся интернет, необ­ходимо нас­тро­ить под­клю­чение к VPN по L2TP, исполь­зуя выдан­ные про­вай­дером учет­ные дан­ные. Ког­да балан­са на тво­ем сче­те недос­таточ­но для спи­сания або­нент­ской пла­ты, под­клю­чение L2TP работа­ет толь­ко в режиме перенап­равле­ния всех HTTP-зап­росов на лич­ный кабинет, осталь­ные зап­росы бло­киру­ются и ты оста­ешь­ся без интерне­та, но все рав­но будешь под­клю­чен к локаль­ной сети до тех пор, пока тебя физичес­ки не отклю­чат.

На прак­тике этот про­цесс может затянуть­ся, потому что вес­кая при­чина физичес­кого отклю­чения, по сути, толь­ко одна: это ког­да необ­ходимо под­клю­чить нового або­нен­та, но заняты все пор­ты на конеч­ном обо­рудо­вании про­вай­дера (которое обыч­но сто­ит где‑нибудь на чер­даке сре­ди гор керам­зита и голуби­ных какашек). Тог­да мон­тажни­ки про­вай­дера могут про­вес­ти ревизию и отклю­чить того, кто не поль­зует­ся их услу­гами и не пла­тит звон­кой монетой. Но если такой нуж­ды нет, то впол­не логич­но дер­жать або­нен­тов под­клю­чен­ными — вдруг еще вер­нутся?

 

Активные и пассивные абоненты

Сме­калис­тый читатель уже догадал­ся, какие твор­ческие воз­можнос­ти откры­вают­ся, ког­да есть под­клю­чение к локаль­ной сети и отсутс­тву­ют огра­ниче­ния на сетевое вза­имо­дей­ствие меж­ду або­нен­тами. Мож­но, нап­ример, «рас­шарить» интернет от дру­гого або­нен­та и не пла­тить за дос­туп.

Что необ­ходимо жела­юще­му про­вер­нуть подоб­ный фокус?

Ак­тивный або­нент, который доб­росовес­тно пла­тит за интернет и будет выс­тупать в роли раз­дающе­го. Нап­ример, если у халяв­щика и его родс­твен­ника, дру­га, зна­комо­го или кол­леги один и тот же про­вай­дер — это иде­аль­ный вари­ант, в про­тив­ном слу­чае жер­твой может стать слу­чай­ный человек. При­чем або­нен­ты физичес­ки могут находить­ся в раз­ных час­тях города.

Из обо­рудо­вания необ­ходим роутер/сер­вер, который будет выс­тупать в роли L2TP-кли­ента для про­вай­дера и в роли VPN или прок­си‑сер­вера для пас­сивно­го або­нен­та. Подой­дет любой дос­таточ­но мощ­ный роутер, на который мож­но уста­новить OpenWRT.

Пас­сивный або­нент — который не пла­тит, но под­клю­чен к локаль­ной сети про­вай­дера. У пас­сивно­го або­нен­та может быть и обыч­ный самый дешевый домаш­ний роутер, если он под­держи­вает нуж­ные для под­клю­чения тех­нологии (L2TP, IPSec, OpenVPN).

Схе­мати­чес­ки подоб­ное под­клю­чение выг­лядит вот так.

Схема подключения через активного абонента
Схе­ма под­клю­чения через активно­го або­нен­та

Да­вай вни­матель­но пос­мотрим на эту схе­му. Глав­ная уяз­вимость, на мой взгляд, — это отсутс­твие огра­ниче­ний на межабо­нент­ское вза­имо­дей­ствие. И речь не об одном широко­веща­тель­ном домене: за вре­мя моего иссле­дова­ния было обна­руже­но более 160 под­сетей (под­робнее в раз­деле про бот­нет) с раз­личной IP-адре­саци­ей, и никаких огра­ниче­ний меж­ду ними выяв­лено не было. Как говорит­ся, «any to any — allow». Если ты зна­ешь, для чего так сде­лано, поделись в ком­мента­риях 😉

Еще одна проб­лема для про­вай­дера — это неуп­равля­емые ком­мутато­ры, игра­ющие роль конеч­ного обо­рудо­вания. Отсутс­твие воз­можнос­ти отклю­чать пор­ты авто­мати­чес­ки, прог­рам­мно и уда­лен­но, ведет к тому, что под­клю­чить­ся к або­нент­ской локаль­ной сети может кто угод­но, если этот нек­то име­ет дос­туп к сетево­му обо­рудо­ванию. Которое, как пра­вило, сла­бо защище­но физичес­ки или вов­се сто­ит в лес­тнич­ных шка­фах, запер­тых на кусок про­воло­ки.

 

Что делать провайдеру

Про­вай­дер может зап­ретить или огра­ничить сетевое вза­имо­дей­ствие меж­ду або­нен­тами из раз­личных под­сетей. Тог­да уяз­вимость оста­нет­ся толь­ко у або­нен­тов одно­го широко­веща­тель­ного домена, но об этом погово­рим даль­ше.

DHCP-сер­вер про­вай­дера в локаль­ной сети дол­жен каж­дый раз наз­начать ран­домный IP-адрес або­нен­там при пре­выше­нии корот­кого lease time. Тем самым пас­сивный або­нент будет вынуж­ден менять в сво­их нас­трой­ках IP-адрес под­клю­чения сер­вера при каж­дом завер­шении lease time у активно­го або­нен­та либо исполь­зовать домен­ное имя.

Сле­дует раз­делить DNS-сер­веры про­вай­дера по спо­собу обра­бот­ки внут­ренних и внеш­них зап­росов. Зап­ретить сто­рон­ние DNS и резол­вить толь­ко внут­ренние домены по белому спис­ку (VPN-сер­вер и лич­ный кабинет). Это сни­зит веро­ятность того, что к активно­му або­нен­ту мож­но будет под­клю­чить­ся по домен­ному име­ни. А уже внут­ри L2TP-соеди­нения наз­начать DNS-сер­вер, который резол­вит внеш­ние зап­росы.

Та­кой спо­соб заод­но защища­ет от атак типа DNS Tunneling. Впро­чем, из‑за низ­кой про­пус­кной спо­соб­ности мы ее здесь даже не рас­смат­рива­ем — поль­зовать­ся таким тун­нелем в качес­тве основно­го канала вряд ли кто‑то захочет.

 

Ботнет

Во вре­мя иссле­дова­ния у меня появи­лась идея про­ана­лизи­ровать, что будет про­исхо­дить с сетевым устрой­ством, которое под­клю­чено к локаль­ной сети про­вай­дера, но не под­клю­чено к интерне­ту. Нап­ример, кто его ска­ниру­ет и по каким пор­там.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    7 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии