Taktyka postępowania z robotami źle zachowującymi się

9

Mam witrynę, która ze względów prawnych może nie być indeksowana lub wyszukiwana automatycznie. Oznacza to, że musimy trzymać wszystkie roboty z daleka i zapobiegać pająkowi witryny.

Oczywiście mieliśmy plik robots.txt, który od samego początku uniemożliwia. Jednak obserwowanie pliku robots.txt jest czymś, co robią tylko dobrze wychowane roboty. Ostatnio mieliśmy problemy z robotami gorzej wychowanymi. Skonfigurowałem Apache, aby zablokował kilka programów użytkownika, ale dość łatwo to obejść.

Pytanie brzmi: czy istnieje jakiś sposób na skonfigurowanie Apache (być może poprzez zainstalowanie jakiegoś modułu?) W celu wykrycia działania robota i odpowiedzi? Jakieś inne pomysły?

W tej chwili wszystko, co mogę zrobić, to zablokować adresy IP na podstawie ręcznej kontroli dzienników, a to po prostu nie jest opłacalna strategia długoterminowa.

Kris
źródło
Biorąc pod uwagę, że pytasz o moduły Apache (sprawdź mod_evasive), a Twoje rozwiązanie może kończyć się niestandardowymi analizami dzienników i regułami iptables, ten temat może być lepszym kandydatem na ServerFault.com, jeśli masz pytania dotyczące blokowania określonych zachowań botów.
danlefree,

Odpowiedzi:

7

Możesz utworzyć link do ukrytej strony, która po odwiedzeniu przechwytuje identyfikator użytkownika i adres IP bota, a następnie dołącza jeden lub oba do pliku .htaccess, który blokuje je na stałe. Jest zautomatyzowany, więc nie musisz nic robić, aby go utrzymać.

John Conde
źródło
To bardzo interesujący pomysł, chociaż w przypadku, gdy używają one bardzo ogólnego klienta użytkownika, nie chcesz automatycznie blokować żadnego klienta użytkownika.
Kris,
Trzymałbym się wtedy adresów IP. Dodatkowo, jeśli użyjesz adresów I i zobaczysz wzór z bloku adresów IP, możesz łatwo zablokować je wszystkie za pomocą jednej prostej reguły zamiast utrzymywania długiej listy pojedynczych adresów IP.
John Conde
3
Państwo może użyć metody opisanej od niechcenia zatrzymania złych boty z indeksowania witryny. Ale 1) Możliwe jest ominięcie (złe boty - i ich panowie - mogą nauczyć się identyfikować honeypoty i umieć ich unikać); oraz 2) Ta metoda może również blokować uprawnionych użytkowników, którym przydzielono ponownie adresy IP, które zostały umieszczone na czarnej liście jako należące do niewłaściwie działających botów. Jeśli masz prawny lub regulacyjny obowiązek, aby nie indeksować ani nie przeglądać automatycznie Twojej witryny, musisz użyć odpowiedniego uwierzytelnienia i dać dostęp tylko uwierzytelnionym użytkownikom. Cała reszta nie jest bezpieczna.
Wolny radykalny
Dobry pomysł. Ale jeśli go zaimplementuję, założę się, że sam przypadkowo uderzę w honeypot i będę blokowany z własnej strony.
JW01
@ JW01 Wszystko, co musisz zrobić, aby tego uniknąć, to nie odwiedzić strony, która to obsługuje. Ponieważ nie ma w nim treści, które powinny być łatwe do zrobienia.
John Conde
2

Możesz najechać na pracę innych osób przy identyfikowaniu złych adresów IP za pomocą modułu Apache, który współpracuje z czarną listą adresów IP projektu Honeypot . Jeśli robisz to na dużą skalę, prawdopodobnie uprzejmie byłoby zaoferować uruchomienie honeypot.

Peter Taylor
źródło
Byłem zaskoczony, gdy dodałem czarną listę IP projektu Honeypot na mojej stronie. Lata udręki zakończyły się po prostu przez zablokowanie złych. Myślę, że można za jego pomocą wykrywać również boty wyszukiwarek. Więc plus 1 za to.
JW01
Ale sedno sprawy polega na tym, że jeśli masz strony publiczne, spodziewaj się ich zindeksowania. Potrzebny jest więc pewien rodzaj uwierzytelnienia. Zobacz odpowiedź Michaela Hamptona .
JW01
2

Jak wspomniał Gisle Hannemyr w komentarzu , najlepszym sposobem na to jest wymaganie logowania wszystkich użytkowników i nie udostępnianie zastrzeżonych treści osobom, które nie są zalogowane.

Jeśli z jakiegoś powodu nie możesz wymagać logowania, nadal możesz skorzystać z kilku metod zastępczych (wyłączenie odpowiedzialności: oba są częściowo lub całkowicie moją winą):

  1. OWASP ModSecurity Rdzeń Rule Set zawiera szereg przepisów mających na celu wykrycie automatyzację, nawet gdy bot podjęła kroki w celu ukrycia się w przeglądarce (np Fałszowanie jego User-Agent string). Jeśli masz pełną kontrolę nad swoim serwerem, takim jak VPS, serwer dedykowany lub coś większego, możesz użyć tych reguł w ModSecurity .

    Ten zestaw reguł zawiera także inne reguły mające na celu powstrzymanie szeregu niewłaściwych działań; jeśli na to nie spojrzałeś, zdecydowanie powinieneś.

  2. Jeśli nie masz pełnej kontroli nad serwerem (tzn. Korzystasz z hostingu współdzielonego), a Twój host nie pozwala ci korzystać z własnych reguł ModSecurity, możesz wypróbować coś na poziomie aplikacji, na przykład moją własną Złą zachowanie . Rozpocząłem ten projekt w 2005 roku, aby zwalczać spam na blogach i narzędzia do usuwania treści, takie jak te, które Cię dotyczą. Można go dodać do dowolnej strony internetowej opartej na PHP.

    Powinienem również zauważyć, że wiele zasad Bad Behavior zostało włączonych do Podstawowego zestawu reguł ModSecurity, więc dopóki te reguły są włączone, ich działanie byłoby raczej zbędne. Reguły te są opatrzone adnotacjami w Podstawowym zestawie reguł jako pochodzące od złego zachowania.

Michael Hampton
źródło