“Отровени” IP-та

На времето ми беше дошло до гуша от referrer spam в блога ми. В един момент ми писна, и надрасках на бърза ръка скриптче, което да чисти логовете от спам-референциите, като проверява дали реферерът е в ръчно създаден “черен списък”.

След известно време ми писна да допълвам всеки ден списъка на ръка. Погледнах надхвърлилия вече 500 сайта списък, и ми хрумна идея. На бърза ръка извадих IP адресите им – оказаха се под 100. И дописах малко скрипта си – да поддържа списък с всички IP-та на спамвертизирани домейни, и да проверява IP-тата на новите реферери в него. Моментално 2/3 от работата по ръчно добавяне към “черния списък” отпадна – вече той се пълнеше сам. 🙂

Следващата стъпка беше, когато получа поредния домейн, да вкарвам автоматично в черния списък директно яecond-level домейна му, и да класифицирам като спамерски всичките му поддомейни. Добавих “бял списък” на домейни от второ (и дори трето) ниво, в които много лесно се регистрира еднократен поддомейн, и спамерите злоупотребяват с това, за да не бъдат вкарвани и те автоматично. Още повече от спамерските домейни попадаха автоматично в списъка. А някои от поддомейните им пък при проверка за IP-та допълваха черния списък за IP-та с нови.

Скоро списъкът на спамерските домейни надхвърли 10 000. Списъкът на IP-тата обаче не е стигнал и 300. Оказва се, че легионите спамвертизирани домейни са базирани на смешно малък брой IP-та, и че вкарването на тези IP-та в черен списък, подобен на черните списъци за пращащи спам IP-та, прави филтрирането им (било от браузера на потребител, било от добросъвестен провайдер) страхотно лесно. Нещо повече – голяма част от тези IP-та спадат към няколко мрежи или подмрежи, в които всяко или почти всяко IP е спамерско – тоест, има смисъл да бъдат филтрирани направо целите мрежи, и да си улесним живота още повече.

Направих си още малко експерименти. Извадих IP-тата на няколкостотин домейна, рекламирани с пощенски спам. Част от тях се покриваха с известния ми вече черен списък. Друга част не влизаха в него, но отново бяха събрани в тясна групичка, по много домейни на едно IP. Предполагам, че ако събера 10 000 рекламирани в пощенски спам домейна, отново IP-тата ще са не повече от 500, и че половината сигурно ще са вече известни от другия списък… Предполагам, че ако бях избрал домейни, рекламирани в друг вид спам, историята щеше да се получи същата, и че общият списък на IP-тата, хостващи спамерски домейни, надали е над 1000. (Единични случайни могат да са извън тази група IP-та, но ще са изключение.)

Целта на занятието е проста. Блокира ли се достъпът до рекламирани в спам домейни, рекламирането на домейни в спам става безсмислено, дори ако е възможно. А това пък прави спамът като вид реклама до голяма степен безсмислен, защото той разчита на общодостъпността на рекламирания обект отвсякъде, чрез Интернет. Да, руските спамери понякога рекламират други средства за достъп, примерно телефони – но това е несериозно като ефект: вероятно под 1 на хиляда от получателите на тези спамове е въобще в Русия, дори спамът да успее да мине всичките филтри и да стигне до него. Свалянето хиляда пъти на постигналия ефект спам би било празник за Интернет, и смърт за всички или почти всички спамери.

Задачата е лесна за изпълнение, като провайдерите (или дори обикновени потребители или хостери) поддържат съвместно черни IP-списъци. Както вече казах, се очаква тези списъци никак да не са големи, и сигурно няма да са трудни за поддържане. А ползата от тях се очаква да бъде огромна.

Черните списъци, в които IP-тата задължително преседяват дълго време, биха имали и друг поучителен ефект. Обикновено един провайдер разполага с ограничен набор IP-та, не може да го смени лесно, и е много лесно да бъде идентифициран по него. Това означава, че що-годе приятелски настроен към спамерите провайдер бързо ще направи всичките си IP-та неизползваеми. Наборът, който той има, ще бъде вече безполезен. А тръгне ли да си купи нов, който му ги продава ще го попита: “И тези ли ще отровиш като предишните?” – тоест, провайдерът вероятно ще бъде вън от бизнеса. Това рязко ще намали желанието на провайдерите да бъдат приятели със спамерите.

Хрумна ми и още една идея срещу referrer spam-а, която още не съм реализирал – IP-тата, от които се разглеждат сайтове в уеб сървъра, да се проверяват в класическите списъци на е-майл спамери. (Огромната част от referrer spam-а се извършва чрез спамботове от ботмрежи, точно както и пращането на пощенски спам.) Ако IP-то бъде открито в списъка, би могло информацията за реферер (и други спам-релевантни позиции) да бъдат или изчиствани при записването им в лога, или писани в друг лог, или кодирани по начин, който запазва информацията, но съобщава на програмите за статистика, че тези данни вероятно са фалшиви.

А тъжният проблем е, че надали ще реализирам някога тези идеи – нямам времето и силите, претрупал съм се с прекалено много други неща. Скриптовете, които съм написал, са бъгави, и нямам време дори да ги оправя. Те пък плачат да бъдат пренаписани на по-сериозен език, примерно на C.

Иска ли някой да стане благодетел на всички граждани на Мрежата, и да напише подходящ софтуер? Има от мен скриптовете ми, дано успее да си извади от тях нещо, което да не е прекалено бъгаво. (С условието софтуера му да е свободен.) А има и още предостатъчно идеи как тези списъци да се направят по-добри – например като се поддържат статистики колко спама са ги препоръчали за дадени периоди от време, за дадени начини на спамване, и т.н…

11 thoughts on ““Отровени” IP-та

  1. dzver

    Какво искаш да предпазваш, логовете на уебсървъра от реферър спам или блога си от нормален спам?

    Reply
  2. Eneya

    77335838 – след като наскоро и той си създаде блог и изврещя от спама, мисля, че с голямо удоволствие ще ти помогне със софтуера.
    Aquarius се никва, просто му кажи, че аз съм ти го предложила. Няма да удари тавана от радост, но идеята е достатъчно добра, за да се навие.
    Или това или утре вечер няма да си говорим 😉 И в двата случаи – няма лошо.
    Поздрави за идеята, аз съм си го мислила, но не знаех, че е възможно.

    Reply
  3. Nk

    Без да съм съвсем наясно с техническите детайли, мисля, че допускаш съществена грешка.

    Това, че методът върши работа в твоя случай, не значи, че би имал пропорционално по-голям ефект при по-широко прилагане. Масовото филтриране вероятно би довело до нарастване на броя на използваните IP-адреси.

    Reply
  4. Григор Post author

    @dzver: Плъгинче, което проверява дали коментарите не идват от IP-та, листнати в bl.spamcop.net и подобни черни списъци, би пазило от коментарен спам. А софтуер, който чисти логовете от сайтове, чиито IP-та са в списъка на рекламираните със спам, би пазило от реферер-спам. (Пак тези IP-та, в подходящ плъгин за браузър, биха пазили потребителя му от посещаване на рекламирани със спам сайтове – като минимум, оттам те може да не успеят да си купят виагра, но е много вероятно да си закачат някой троянски кон. А пък ако провайдерите започнат масово да филтрират тези IP-та, рекламодателите, които задвижват колелото на спам-индустрията с парите си, ще почнат да се замислят дали да си купуват блокаж на сайта е добра идея…)

    @Eneya: Успея ли да си седна на компютъра в човешко време (погледни кога пиша този коментар), задължително ще се свържа с този юнак. (Той Jabber акаунт няма ли си? Че напоследък изоставям ICQ-то…)

    @Nk: При по-широко прилагане спамерите ще почнат да се местят на нови IP-та – но пък ще страдат провайдерите, които им ги дават. Вероятно скоро ще почне да се държи сметка на провайдери, които позволяват техни IP-та да бъдат “отравяни”. А когато започне блокиране за по-ефективно на цели мрежи, ако те съдържат значителен процент “отровени” IP-та (това ще става все по-често с местенето на спамерите на нови IP-та), приятелски настроените към спамерите провайдери ще започнат да губят и потребителите си, които също няма да могат да използват техните мрежи – приятелството със спамерите ще ги лишава от други потребители. Това пък ще ограничи безконтролното нарастване на “отровени” IP-адреси, и ще го държи в рамките на контролируемото (точно както е с черните списъци на емайл-спамери).

    Повече ме безпокои използването на системата за рекет – например пускане на спам за еди-кой си интернет магазин, който е отказал да си плати рекета на спамера. Тук помага whitelisting-ът, и подхождането според случая. А и рекетът надали дълго ще е масов – плащането на спам почти никъде не е незаконно, и двете страни (поръчител и спамер) имат интерес сделката да стане и да остане скрита, докато рекетът почти навсякъде е незаконен, и рекетираните имат инициатива да стимулират преследването му.

    Така че в крайна сметка бих очаквал този механизъм да ограничи спамерството много сериозно в сравнение със сега. Първо, той измества “възходящия” клон (поръчването на спама) в наказателно преследваема област, и създава стимули и улеснения то да бъде преследвано. И второ, бие по “низходящия” клон (опитите на подлъганите от спамера да достигнат до обекта на рекламата). Анализът показва, че въздействие на два етапа едновременно е много по-ефективно, отколкото въздействие на един. Така че бих очаквал да върши добра работа.

    Reply
  5. Н.Пепелишев

    Има един модул mod_access_rbl2, което ще ти помогне да филтрираш достъпа до целия уеб сървер въз основа на класически DNSbl листи. В .htaccess-а или директно в httpd.conf слагаш deny via dnsbl.service. Тъй като обаче прави DNS заявка всеки път, май е добра идея за локален DNS cache, за да не претоварва основните DNS сървери.

    Reply
  6. Eneya

    Има гугълското там чудо. 😉
    Впрочем, защо изоставяш кю-то? Недоволен от скапаните клиенти и тъпия протокол?

    Reply
  7. Григор Post author

    @Н. Пепелишев: Не искам да филтрирам достъпа до целия сървър – на него има много други неща, и някои от тях е добре да имат достъп дори от такива места. (Например капаните ми за спам. 🙂 )

    @Eneya: Тези две неща – скапаните клиенти и тъпия протокол – са следствия от факта, че протоколът не е отворен и свободен. Не задължителни, но за един свободен протокол по-лесно се пишат добри клиенти, и по-лесно се подобрява. Така че – защото Jabber е свободен протокол. Следствията не ми се изброяват. 🙂

    Reply
  8. MacTeP

    Ако се направи общ списък ще има МНОГО злоупотреби от нелоялни конкуренти и тн…

    Reply
  9. Григор Post author

    @MacTeP: МНОГО – надали. Особено след като злоупотребилите започнат да бъдат хващани, и да влиза в действие whitelsiting. (А може би и публично обявяване кой е злоупотребил…)

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *