szukaj

24.04.2020 | 20:35

avatar

Wpis Gościnny

Jak analizować akcje dezinformacji na przykładzie użytkowników portalu Wykop.pl

Od dawna wiadomo, że portale społecznościowe służą nie tylko do wymiany zdjęć i wspomnień ze znajomymi, lecz także do szybkiego udostępniania różnego rodzaju linków i informacji, które mogą zostać wykorzystane do manipulowania opinią społeczną.

Przykładów jest mnóstwo, jednak ten najgłośniejszy – ingerowanie Rosji w wybory w Ameryce – został dokładnie opisany w raporcie Muellera, a pewne propagandowe metody używane przez rosyjskich agentów zostały zdemaskowane. Ich główną bronią było kupowanie reklam wspierających pasującego im kandydata, tworzenie grup zrzeszających zwolenników oraz sianie dezinformacji – kreowanie stron zawierających materiały przychylne dla kandydata Republikanów oraz udostępnianie ich, a także ukrywanie niewygodnych informacji. Większość zadań była wykonywana automatycznie przez tzw. sieć botów, a głównymi wykorzystanymi mediami społecznościowymi były Facebook i Twitter.

Czytacie Wpis Gościnny
Jego autorem jest Wojciech, autor bloga offensiveosint.io, którego możecie obserwować także na Twitterze: @the_wojciech.

W związku z wyborami w Polsce, które odbędą się niedługo, postanowiłem dokonać analizy znanego każdemu portalu społecznościowego wykop.pl. Wykop jest stale oskarżany o słabą moderację, pozwalanie na manipulowanie głosami czy propagowanie fake newsów. Według użytkowników niektóre ze znalezisk lub wpisów na Mikroblogu są cenzurowane oraz usuwane przez moderatorów, ponieważ nie są do końca poprawne politycznie, jednakże dostają mnóstwo wykopów (łapek w górę).

Przyjrzałem się znaleziskom z tagu #wybory (od grudnia 2019) oraz #polityka (od kwietnia), a także obserwującym je użytkownikom, którzy najczęściej zakopują znaleziska w wymienionych tagach. Dane zostały przedstawione w czytelny sposób. Szukałem różnych anomalii, które wskazywałyby na manipulowanie głosami oraz dużej liczby zakopów przez tych samych użytkowników, co implikowałoby używanie sieci botów, które nie dopuszczają do przebicia się niewygodnych znalezisk na stronę główną.

Zdobywanie danych

Wykop posiada API (https://www.wykop.pl/dla-programistow/api/), jednakże dostęp do niego jest nieco utrudniony, dlatego zdecydowałem się na ręczne sprawdzenie strony pod względem możliwości zeskrobania (scraping) wszystkich niezbędnych informacji.

Na początku potrzebowałem artykułów z poprzednich tygodni, a nawet miesięcy. Przeglądając jeden z tagów zobaczyłem żądanie AJAX wysyłane do

https://www.wykop.pl/ajax2/tag/znaleziska/wybory/wszystkie/next/link-[ID]//hash/c01b50d81489f5db09f2705560e5c9b5-1587293366

które zwraca ostatnie 25 znalezisk w formacie HTML, które z kolei można łatwo parsować Pythonem i Beautiful Soup. Aby przejść do kolejnych znalezisk, wystarczy zamienić “link-[ID]” na id ostatniego artykułu. Parametr hash jest niepotrzebny.

Posiadając znaleziska w bazie Elastic (timestamp oraz id), należy sprawdzić wszystkich zakopujących, do których dostęp daje poniży link

https://www.wykop.pl/ajax2/links/downvoters/[ID]//hash/c1f0b92d0082cb4cbaf67ea495780cd8-1587293852

gdzie ID to id znaleziska.

Tym samym baza zapełniła się nazwami użytkowników, którzy zakopywali znaleziska.

Ostatni etap to wizualizacja powiązań pomiędzy użytkownikami i do tego potrzebowałem zeskrobać użytkowników obserwujących (przez wykopowiczów, którzy najczęściej zakopują). Również i do tego dostęp nie jest utrudniony

https://www.wykop.pl/ludzie/followers/USERNAME/ - obserwujący użytkownika
https://www.wykop.pl/ludzie/followed/USERNAME - obserwowani przez użytkownika

Po zdobyciu danych można zacząć ich wizualizację oraz szukać schematów i anomalii.

Wizualizacja i interpretacja danych

Jak już wspomniałem wcześniej, pierwszym punktem było sprawdzenie liczby znalezisk danego dnia i zestawienie jej z liczbą zakopów tego samego dnia.

Poniższy wykres prezentuje tę zależność dla tagu #wybory:

Rozsądnie jest zakładać, że im więcej znalezisk, tym większa ilość zakopów, taki schemat powinien utrzymywać się niezależnie od znalezisk. Jeśli natomiast jest mało znalezisk, a duża liczba zakopów, wtedy można stwierdzić, iż któreś z tych znalezisk było silnie minusowane, żeby nie przebiło się wyżej.

Jednym z takich przykładów może być dzień 18.11.2019, gdzie zostało dodane tylko jedno znalezisko, które otrzymało 127 zakopów (przy 515 wykopach), podczas gdy w innych dniach proporcje były bardziej zrównoważone.

https://www.wykop.pl/link/5219641/kandydaci-konfederacji-w-prawyborach-prezydenckich-ogloszeni/

Podobna sytuacja miała miejsce dnia 16.12.2019, jedyne dodane znalezisko owego dnia otrzymało 158 zakopów (235 wykopów).

https://www.wykop.pl/link/5258313/najlepsze-wypowiedzi-malgorzaty-kidawy-wystawionej-przez-po/

Natomiast dnia 18.01.2020 zostały dodane 4 znaleziska przy całkowitej liczbie 166 zakopów. Pamiętając, że mamy wszystkie dane w bazie, możemy szybko sprawdzić, które znaleziska z danego dnia otrzymały najwięcej “minusów”. Znaczną większość zakopów dostało znalezisko:

https://www.wykop.pl/link/5299135/prawybory-w-konfederacji-to-wzor-dla-innych-partii/ (97)

Inne z tego dnia otrzymywały znacznie mniej zakopów.

https://www.wykop.pl/link/5298995/dobromir-sosnierz-zdenerwowany-na-korwina-i-berkowicza-po-ogloszeniu-wynikow/ (16)
https://www.wykop.pl/link/5298921/wyniki-prawyborow-konfederacji-krzysztof-bosak-kandydatem-na-prezydenta-rp/ (53) 
https://www.wykop.pl/link/5298677/no-coty-to-naprawde-kandydaci-na-samochod-roku/ (5 zakopów, zły tag)

I w taki sposób możemy znajdować znaleziska z największą liczbą minusów w konkretnych dniach. Następnie – sprawdzając każde znalezisko (jego zakopy i wykopy) – należy upewniać się, czy nie zostało ono w jakiś sposób zmanipulowane.

Tag #polityka jest częściej używany ze względu na uniwersalność, zatem więcej znalezisk jest dodawanych każdego dnia. Poniższy wykres przedstawia zależność zakopów do znalezisk danego dnia.

Jeśli porównamy początkowe dni kwietnia ze sobą:

  • 04.04 – 83 znaleziska i 854 zakopy,
  • 05.04 – 82 znaleziska i 1640 zakopów,
  • 06.04 – 141 znalezisk i 1560 zakopów.

Widać wyraźnie anomalie 5 kwietnia – duża liczba zakopów przy małej liczbie znalezisk oznacza, że kilka znalezisk z tego dnia musiało być nadzwyczaj minusowane. Możemy przyjrzeć się bliżej każdemu ze znalezisk danego dnia.

Kilka znalezisk zdecydowanie się wyróżnia:

https://www.wykop.pl/link/5432323/prezydent-czech-mowi-o-porazce-ue-i-ke-ws-koronawirusa/
156 (240 wykopów)
https://www.wykop.pl/link/5432507/co-probuje-nam-zaaplikowac-wielki-brat/ (134)
https://www.wykop.pl/link/5432043/kaczynski-nie-chce-stanu-wyjatkowego-bo-przestalby-byc-naczelnikiem/ (102)
https://www.wykop.pl/link/5432023/zaraz-bedziemy-mieli-wiecej-samobojstw-i-bankructw-z-powodu-epidemii-niz-wirusa/ (88)
https://www.wykop.pl/link/5431519/bosak-rozsadnikiem-koronawirusa-w-polsce-stala-sie-ochrona-zdrowia/ (116)
https://www.wykop.pl/link/5431513/zmarla-wdowa-po-premierze-janie-olszewskim/ (99)
https://www.wykop.pl/link/5430873/teraz-juz-rozumiecie-dlaczego-polska-przez-tyle-lat-byla-pod-zaborami/ (118)

Spośród wszystkich 1640 zakopów aż 813 należało do 7 znalezisk z 82.

Natomiast 15 kwietnia – ze wszystkich dodanych 107 znalezisk i 1535 zakopów – 8 znalezisk dostało 900 minusów.

https://www.wykop.pl/link/5449905/kaczynski-nie-dorosl-do-demokracji-i-nie-radzi-sobie-ze-skutkami-epidemii/ (177)
https://www.wykop.pl/link/5450175/26-02-2020-lukasz-szumowski-ujawnil-ze-byl-w-tym-roku-na-nartach-we-wloszech/ (143)
https://www.wykop.pl/link/5450719/pis-popiera-zakaz-edukacji-seksualnej-i-kary-wiezienia-za-nia/ (66)
https://www.wykop.pl/link/5450813/grzegorz-braun-pokazuje-swoje-prawdziwe-oblicze/ (240)
https://www.wykop.pl/link/5451133/mati-sobie-harrego-pottera-zatrudnil-w-mf-szykujcie-sie-na-magie-portfelach/ (77)
https://www.wykop.pl/link/5450911/piec-wielkich-klamstw-jaroslawa-kaczynskiego/ (63)
https://www.wykop.pl/link/5450639/ustawa-stop-447-w-sejmie-robert-bakiewicz/ (61)
https://www.wykop.pl/link/5449009/krakow-baner-na-wiadukcie-wybory-to-zbrodnia/ (73)

Niektóre znaleziska mogą się pokrywać, ponieważ zostały oznaczone zarówno tagiem #polityka, jak i #wybory.

Czy to jest jakaś zorganizowana akcja?

Użytkownicy są sercem każdego portalu społecznościowego, o jakości i treści materiałów, które trafiają na stronę główną, jednocześnie zyskując zasięg, decydują sami wykopowicze. Wszystkie wykopane znaleziska można znaleźć na profilu danego użytkownika, jednak do materiałów zakopanych dostęp jest niemożliwy. Czytając uważnie rozdział o gromadzeniu danych, mogłeś zauważyć, że dane o użytkownikach, którzy zakopali znaleziska, są już w bazie.

Użytkownicy, którzy zakopali ponad 100 znalezisk w tagu #polityka w dniach 01.04–16.04

Użytkownicy, którzy zakopali ponad 70 znalezisk w tagu #wybory w dniach 17-11.2019–16.04.2020

Wykres pokazuje, iż pewni użytkownicy byli bardziej aktywni w zakopywaniu niż inni. Spośród wszystkich użytkowników wybrałem tych najbardziej zaangażowanych w zakopywanie i sprawdziłem ich obserwowanych (followed), tworząc graf.

Graf przedstawia wszystkich obserwujących (followed) użytkowników, którzy zakopali ponad 100 znalezisk oznaczonych tagiem #polityka w dniach 01.04–16.04.

Mając taki graf, można zacząć poszukiwanie wspólnych cech, w tym wypadku kont, które łączą użytkowników. W ten sposób również operują sieci botów na Twiterze, także w kwestii malware’u – konto obserwuje swoje “konto matkę”, która działa jak command & control server, wysyłając rozkazy do zrealizowania.

Graf został pokolorowany według modułowości, pokazując, jak rozprzestrzenia się na poszczególne społeczeństwa/klastry. Widzimy, że każdy użytkownik ma swoją grupę obserwujących i zauważalne są jedynie nieliczne 2-stopniowe powiązania.

Oficjalne konto Wykopu obserwuje prawie każdy użytkownik, więc nie dziwi wiele powiązań innych użytkowników z tym kontem. Wizualizacja danych na podstawie powiązań w postaci grafu znacząco ułatwia pracę z różnego rodzaju sieciami zależności i jest wykorzystywana w tropieniu między innymi sieci botów.

Od surowych danych, zeskrobanych bezpośrednio ze strony, przeszliśmy do zestawiania zakopów w danym przedziale czasowym oraz tworzenia grafu zależności między danymi użytkownikami, których wyodrębniliśmy z wcześniejszych informacji.

Podsumowanie

Oczywiście jest to jedynie możliwa część całej kampanii dezinformacyjnej, inne zasługujące na uwagę aspekty to nieprzychylne lub odbiegające od tematu komentarze lub fake newsy. Warto zwrócić uwagę na konta, które zostały przejęte przez hakerów poprzez złośliwe oprogramowanie lub słabe hasło użytkownika. Po ich aktywności nie rozpoznamy, że bierze udział w kampanii dezinformacyjnej, lecz jeżeli spojrzymy na szerszy obraz i zaprezentowane przykładowe wykresy, można wyłapać takie konta oraz odpowiednio zawiadamiać użytkowników. Podobnych kampanii na różne tematy odbywa się mnóstwo prawie na każdym portalu i trzeba być przygotowanym na możliwe nadużycie zasad działania każdego medium społecznościowego w celu narzucania własnych poglądów oraz propagandy.

Powrót

Komentarze

  • avatar
    2020.04.24 20:50 Mordo

    Człowieku

    Odpowiedz
  • avatar
    2020.04.24 22:01 Stefan Gabon

    Wylaczyliscie komentarze czy gimbaza umie wykopywać tylko śmieci i tutaj jeszcze nie dotarła?

    Odpowiedz
  • avatar
    2020.04.24 22:25 maciuś

    za głupi jestem, jakie są wnioski?

    Odpowiedz
    • avatar
      2020.04.25 02:36 on sam

      Żeby się wybić ze swoim 'niewygodnym’ przekazem zrób wpierw własny botnet bo cię inne botnety zjedzą

      Odpowiedz
  • avatar
    2020.04.24 23:29 Wiktor

    Wydaliście na siebie wyrok. Wykop wam nie podaruje

    Odpowiedz
    • avatar
      2020.04.25 17:42 Mark

      wykop to jedna wielka kupa od kilku lat

      Odpowiedz
  • avatar
    2020.04.25 00:07 Adam

    Niestety artykuł to kompletna bzdura

    Odpowiedz
    • avatar
      2020.04.27 11:58 GROOM

      Wspaniale uzasadniona opinia, argumenty nie do odparcia, gratuluję.

      Odpowiedz
      • avatar
        2020.05.05 17:49 Już starożytni Rzymianie...

        Quod gratis asseritur, gratis negatur

        Odpowiedz
  • avatar
    2020.04.25 07:26 Mos

    Good job well done

    Odpowiedz
  • avatar
    2020.04.25 10:13 Artur

    Czy można prosić o poprawienie czytelności pierwszego grafu?

    Odpowiedz
  • avatar
    2020.04.25 22:59 jansava

    Wniosek taki ze to kremolwski trol o orientacji propisowskiej

    Odpowiedz
  • avatar
    2020.04.26 08:57 s

    bardzo fajny artykuł jako prezentacja metodologii/poradnik ale nie analiza, ponieważ brak tu jakichkolwiek wniosków.

    Odpowiedz
  • avatar
    2020.04.26 09:27 Ujnkop

    Nie rozumiem celu takiego eksperymemtu

    Odpowiedz
    • avatar
      2020.05.07 00:31 Kadigan

      Raczej chodziło o unaocznienie metodologii. Akurat w tej sytuacji nie wykryto niczego szczególnego (w czym, zależnie od poziomu zasadniczej paranoi własnej, można się osobnym trybem doszukiwać dezinformacji ;P), ale metodologia została zaprezentowana zrozumiale – choć oczywiście pominięto wiele detali implementacyjnych.
      .
      Oczywiście to jest tylko pierwsza strona tego medalu – żeby zacząć uzyskiwać sensowne informacje, potrzeba jeszcze stworzyć ogólny obraz „tła”, żeby mieć tzw. baseline – poziom porównawczy, od którego anomalie powinny odstawać.

      Odpowiedz
  • avatar
    2020.04.26 11:21 meh

    #russiancollusion
    xD xD xD
    w tym momencie bylem bliski zamkniecia artykulu, ale dotrwalem do konca

    sciana tesktu odkrywajaca, z ktorej plynie wielce odkrywczy wniosek – ze istnieja troll botnety.

    Odpowiedz
    • avatar
      2020.04.26 19:17 An

      Mylisz się, brak takiego wniosku.

      Odpowiedz
  • avatar
    2020.04.26 16:19 Asdaf

    Najciekawsze jest to, że biorą w tym udział osoby powiązane z administracją portalu, co widać w analizie xD

    Odpowiedz
  • avatar
    2020.04.29 05:06 Paweł

    W sumie niczego nie zaobserwowaliscie i nic z tego nie wynika.

    Odpowiedz
  • avatar
    2020.05.01 13:16 DOgi

    Trochę smutne, że na Z3S ładuje artykuł pisany pod tezę. Błędne jest już jedno z początkowych założeń jakoby pomiędzy kontami trolli/botów istniała jakaś niedyskretna relacja w postaci obserwowania się nawzajem. Nie da się w żaden logiczny sposób uzasadnić dlaczego takie konta miałyby się wzajemnie obserwować.

    Odpowiedz
  • avatar
    2020.05.04 11:58 divi

    Brak, o zgrozo, wniosku! Sam mam myśleć czy co?

    Odpowiedz
  • avatar
    2020.05.06 02:07 Ronald

    Michał Białek nie ma… yy, to znaczy, albo ja mam opóźniony umysł szympansa albo coś z tą publikacją jest niehalo, bo NICHOOYA nie widzę w tym jakiegokolwiek sensu/składu/wniosków. Artykuł gościnny zamiast pozytywnie wpływać na Z3S, to robi jej więcej szkody niż Andrzej Grabowski w Tańcu z gwiazdami…

    Odpowiedz
  • avatar
    2020.05.07 15:57 Troll_

    TAK JESTEM RUSKIM BOTEM. ZAMYKAM INTERES

    Odpowiedz
  • avatar
    2020.06.25 23:10 Paweł

    Świetna robota, powiązania moderacji na widelcu, jednak trzeba zaznaczyć, że samo obserwowanie nie daje nam w zasadzie zbyt wiele, użytkownicy czasem obserwują też przeciwników politycznych. Teraz przewiduję spory spadek aktywności wymienionych tu kont i sporą epidemię multi. Komentujący tutaj narzekają, że nie ma wniosku, oczywiście że go nie ma, bo do tego trzeba by kopać jeszcze głębiej. Nie mniej jest ciekawy materiał do dalszej analizy. Mam nadzieję że was za to nie zbanują ;)

    Odpowiedz

Zostaw odpowiedź

Jeśli chcesz zwrócić uwagę na literówkę lub inny błąd techniczny, zapraszamy do formularza kontaktowego. Reagujemy równie szybko.

Jak analizować akcje dezinformacji na przykładzie użytkowników portalu Wykop.pl

Komentarze