Jak zrobić kuku spamerowi?

Jak wielu innych ludzi, darzę spamerów czystym i płomiennym uczuciem. Jakiś czas temu popełniłem automat do wykrywania spamu na Blox. W zasadzie, to tych skryptów jest kilka i raczej dane zbierają się „na kiedyś”, niż działa to produkcyjnie, ale czasem coś tam podeślę do blokowania. Niemniej, nie jest to pełny automat.

Jeśli chodzi o pocztę, to nie jest u mnie ze spamem źle. Łącznie na wszystkie konta dostaję jakieś małe pojedyncze sztuki dziennie. Część odsiewają dostawcy poczty, przytłaczającą większość tych nielicznych, które przejdą oznacza Thunderbird.

Dodatkowo, jeśli już coś do mnie dotrze, to zwykle trafia na Spamcopa (polecam zarejestrowanie się). Roboty z tym tyle, co kliknięcie Forward i linka w mailu, więc niewiele, a powiadamiane są wszystkie powiązane abuse. Polecam rejestrację. Czasem nawet odpiszą, że zablokowali (i to niekoniecznie nadawcę, bo potrafią reagować także właściciele domen/hostingów na których znajduje się „reklamowana” strona. Tak czy inaczej, o ile nie zadziała to pewnie na spam o niebieskich pastylkach wysyłanych z botnetów (ale liczę, że to odpada na etapie dostawcy poczty, zresztą mało tego typu dociera do mnie), to działa[1] na byznesmenów wysyłających zapytania o możliwość wysłania oferty handlowej do adresatów z baz pozyskanych z ogólnodostępnych źródeł. Znaczy, tłumacząc na polski: na spamerów wysyłających spam, bo (polskie) prawo prawem, ale o tym, czy wiadomość była zamówiona decyduje jednak odbiorca.

Niedawno, podczas szukania rozwiązań antyspamowych trafiłem na ciekawą stronę Email Labirynth, która generuje losowe adresy email w celu zaśmiecenia baz danych harvesterom, a w konsekwencji spamerom. Czyli po pierwsze stracą czas zbierając te adresy, po drugie stracą czas wysyłając maile na nieistniejące adresy, a po trzecie jest spora szansa, że dzięki takim wysyłkom trafią na RBLe. Nie jestem przekonany o skuteczności, ale spróbować IMO nie zaszkodzi. Sceptykom twierdzącym, że spamerzy nie mogą być aż tak głupi od razu mówię, że nie tylko mogą, ale są. Może nie wszyscy, ale większość. No i zwykle mają słabe automaty, a nadzór ludzki kosztuje.

W każdym razie powyższe rozwiązanie ma IMO kilka wad:

  • Brak spamtrapa na każdej stronie. IMHO na każdej(?) stronie wśród generowanych maili powinien być także spamtrap w celu automatycznego zgłaszania IP korzystających z harvestowanych adresów email do abuse/RBLi.
  • Stały adres strony. Wystarczy szczątkowa inteligencja, by nie harvestować tam adresów email.
  • W pełni losowe loginy. Trochę wada, trochę zaleta. W każdym razie wyglądają mało naturalnie i przy odrobinie wysiłku można je odsiać.
  • Brak lokalizacji. Wiadomo, że spamerzy celują z niektórymi produktami raczej w określone grupy klientów, np. klientów z Polski. Dane z ww. strony zdecydowanie nie wyglądają na bazę polskich klientów email.

Koniec końców postanowiłem zrobić swoje rozwiązanie realizujące podobny cel (oczywiście Perl). Na razie mam opracowane częściowe rozwiązanie[2] dla dwóch ostatnich punktów. Punkt drugi też będzie rozwiązany, bo zamierzam opublikować gotowca, którego każdy będzie mógł podpiąć na swojej stronie.

Ponieważ pewnie trochę czasu będę miał dopiero w przyszły weekend, liczę do tego czasu na uwagi dot. sensowności i ew. innych funkcjonalności.

[1] Działa, znam trochę środowisko hostingowe. Przyzwoite hostingi nie przepadają za wysyłającymi spam do zaśmieconych baz adresów email, a z tego co wiem w polskich firmach hostingowych abuse raczej działa.

[2] Jak dam sobie na luz z perfekcjonizmem, to pewnie uznam je za docelowe, przynajmniej w pierwszej wersji.

UPDATE: No i uruchomiłem. Póki co wersja testowa karmnika z adresami email wisi tu.

Dziura w OpenSSL, o jakiej się nie śniło

No bo jak inaczej nazwać błąd, który pozwala na zdalny dostęp do pamięci podatnej maszyny? Co prawda „tylko” 64kB i „tylko” związanej z procesem korzystającym z biblioteki zawierającej błąd, ale biorąc pod uwagę, do czego OpenSSL służy… Wyciec mogą klucze (jeśli nie zostaną zmienione, to w przypadku ich przechwycenia będzie można podsłuchać transmisję nawet po aktualizacji biblioteki), loginy i hasła (jeśli użytkownicy nie zmienią haseł, to atakujący będzie mógł się dostać do serwisów nawet po zmianie certyfikatów i aktualizacji biblioteki).

Heartbleed

Źródło: http://heartbleed.com/

Błąd związany z OpenSSL w Debianie sprzed blisko 6 lat to przy tej dziurze pikuś – wtedy wystarczyło zaktualizować pakiet i zmienić klucze. Teraz na dobrą sprawę należałoby zmienić wszystkie certyfikaty SSL (o ile były używane na choć jednej podatnej maszynie) i skłonić wszystkich użytkowników do zmiany haseł. Niekoniecznie technicznych użytkowników, dodajmy.

Ważne jest to o tyle, że niektóre popularne polskie serwisy oferujące darmową (i nie tylko) pocztę były podatne. I to dość długo (nie wiem, czy nadal nie są). Jeśli atakujący uzyska dostęp do poczty, a używamy tej skrzynki do przypominania hasła w innych serwisach to zmiana w nich haseł nie rozwiązuje problemu.

Dodatkowo sprawdzanie podatności systemów było utrudnione. Popularny test sprawdzający podatność na atak z powodu obciążenia zgłaszał… false negatives. Czyli system był podatny, a narzędzie testujące twierdziło, że jest OK. I to w pewnym momencie, wg moich obserwacji, w jakichś 9x% prób… Problemu tego nie miało narzędzie CLI, ale dość szybko przestało ono być dostępne. Zapewne dlatego, że skutkiem ubocznym tego narzędzia był zrzut pamięci i dostęp do wrażliwych danych.

Na koniec mały paradoks. Systemy, w których logowanie było bez szyfrowania nie są podatne na dziurę (za to były i są podatne na podsłuchanie transmisji). Podobnie jak Debian Squeeze, czyli oldstable, któremu wkrótce skończy się support bezpieczeństwa. Użyta w nim wersja OpenSSL jest na tyle stara, że nie jest podatna.

Na razie status jest taki, że jest dostępna poprawka, załatana jest część systemów (wczoraj o ok. 17 było naprawdę sporo dziurawych). Widziałem tylko jedną firmę (polską), która poinformowała o błędzie użytkowników i zaleciła zmianę certyfikatów (ale już ani słowa o hasłach). Osobiście zalecam zwykłym użytkownikom w tej chwili zmianę ważniejszych haseł (zwł. pocztowych!) i obserwację sytuacji. Gdy opadnie kurz, tj. administratorzy załatają systemy i wymienią certyfikaty – ponowna zmiana haseł, tym razem wszystkich (ale naprawdę wszystkich wszystkich).

Błędowi poświęcona jest specjalna strona i tam odsyłam po szczegóły. Tak jeszcze patrzę na to, co napisałem parę lat temu i chyba tekst dane, niezależnie od tego jak zabezpieczane, nie są bezpieczne i prędzej czy później nastąpi ich ujawnienie łapie się na jakieś motto.

UPDATE: Ważna uwaga, o której zapomniałem. Jeśli aktualizujemy OpenSSL w systemie, to trzeba jeszcze zrestartować usługi. W Debianie można skorzystać z polecenia checkrestart (pakiet debian-goodies), ale na przynajmniej jednym systemie pokazywał, że nie ma nic do restartu, choć był apache i zabbix-server. Można zamiast tego użyć:

lsof -n | grep ssl | grep DEL

Linux – co warto seedować?

Jakiś czas temu postawiłem NAS w domu (jest zaległy szkic wpisu od… dawna, pewnie w końcu się zbiorę i go opublikuję). Łącze jest przyzwoite (2 Mbit uploadu) i słabo wykorzystane, a nie chciałem, żeby leżało odłogiem i postanowiłem wesprzeć projekty open source poprzez seedowanie plików.

Minęło jakieś półtora miesiąca od ostatniej zmiany plików, więc można pokusić się o jakieś wnioski. Plik/katalog i ratio:

tails-i386-0.22.1 - 15,0
debian-7.4.0-amd64-netinst.iso - 4,4
debian-7.4.0-amd64-CD-1.iso - 7,1
debian-7.4.0-i386-netinst.iso - 5,1
debian-7.4.0-i386-CD-1.iso - 7,8
debian-7.4.0-armel-netinst.iso - 1,6
debian-7.4.0-armel-CD-1.iso - 1,2

Jak widać, największym zainteresowaniem cieszy się opisywana kiedyś dystrybucja T(A)ILS, w przypadku Debiana zaskakuje niemal równa popularność architektur i386 oraz amd64 (liczyłem, że będzie duża przewaga amd64, przecież to niemal każdy współczesny procesor wspiera). IMO zupełnie nie warto seedować obrazów z architekturą armel.

Zdaję sobie sprawę, że lista jest mocno niekompletna, ale niestety nadal nie kupiłem docelowego dysku i miejsce mnie mocno ogranicza. Przy najbliższej wymianie plików wyleci armel, a pojawi się jakieś Ubuntu albo i Kali Linux.

UPDATE: Próbka jest na razie bardzo mała bo jakieś 4 dni, ale wygląda, że Kali Linux (architektura amd64, następca BackTrack, czyli dystrybucja Linuksa przeznaczona dla pentesterów) jest strzałem w dziesiątkę. Ratio 2,44, kolejny w kolejności ma 1,07…

UPDATE2: Zdecydowanie Kali Linux! Amd64 – ratio 37,3 , i386 – 25,9 w ciągu 4 tygodni.Tails – 5,01 w ciągu 2 tygodni, czyli po normalizacji czasu ratio ok. 10. Dość podobnie jak w krótkim okresie, jak widać.