Blokujemy najczęstsze źródła ataków według ISC SANS
Napisał: Patryk Krawaczyński
20/01/2011 w Bezpieczeństwo 1 komentarz. (artykuł nr 301, ilość słów: 487)
I
ternet Strom Center (ISC) jest programem Technologicznego Instytutu SANS (skrót od: SysAdmin, Audit, Networking, and Security), który ma za zadanie monitorowanie poziomu szkodliwych aktywności w Internecie – zwłaszcza w odniesieniu do zdarzeń mających miejsce w dużych infrastrukturach (poziom zagrożenia sygnalizowany jest odpowiednimi kolorami – zielony, żółty, pomarańczowy, czerwony).
Obecnie ISC gromadzi i analizuje miliony wpisów pochodzących z logów systemów obejmujących około pół miliona adresów IP w ponad 50 krajach. Codziennie tysiące czujników, działających na większości zapór ogniowych, systemów wykrywania włamań, urządzeniach dostępu do Internetu i programach niemal wszystkich systemów operacyjnych gromadzi informacje o niepożądanym ruchu z Internetu. Systemy te karmią bazę danych DShield, z której zarówno wolontariusze jak i zautomatyzowane maszyny szukają powtarzających się trendów w atakach oraz zaburzeń normalnego funkcjonowania sieci, systemów i aplikacji. Wyniki tych analiz wysyłane są na główną stronę ISC, gdzie można pobierać je za pomocą prostych skryptów lub oglądać niemal w czasie rzeczywistym.
Dzięki bezpłatnej działalności tej organizacji dla społeczności internetowej – znacznie szybciej możemy określić miejsca, które są wykorzystywane do ataków oraz otrzymać wiarygodne informacje na temat ich typów. Najbardziej znaną funkcją serwisu ISC jest dziennik „Handler Diary” redagowany przez jednego z około 40 ochotników, który podsumowuje wydarzenie dnia. Bardzo często jest on pierwszym publicznym źródłem informującym o nowym trendzie i formie ataku. Oprócz dziennika ISC udostępnia również takie raporty jak: najczęstsze cele ataków (w postaci portów aplikacji) oraz ich źródła (w postaci adresów IP). Poniżej znajduje się trochę przerobiony skrypt autorstwa Alessio Rocchi, który pobiera dane z raportu o źródłach ataku oraz blokuje je przy użyciu iptables na zaporze systemu:
#!/bin/sh
IPT="/usr/sbin/iptables"
IPTS="/usr/sbin/iptables-save"
FILE="/tmp/firewall.txt"
function isclist {
wget http://isc.sans.org/sources.html -O /tmp/sources.html --quiet
if [ $? -ne 0 ]
then
echo "Błąd pobierania pliku."
exit 1
fi
for bad_guy in $(grep ipinfo /tmp/sources.html |sed -e "s/.*ip\=\(.*\)\">.*/\1/g" | sed -e 's/^[0]*//' -e 's/\.[0]*/\./g')
do
$IPT -A ISC -s $bad_guy -j DROP
done
rm /tmp/sources.html*
}
$IPTS > $FILE
CHAIN=`cat $FILE | grep ISC | wc -l`
if [ $CHAIN -eq "0" ]; then
echo "Łańcuch ISC nie istnieje."
$IPT -N ISC
$IPT -I INPUT -j ISC
isclist
else
echo "Łańcuch ISC istnieje."
$IPT -F ISC
isclist
fi
rm $FILE
exit 0
Jeśli interesuje nas dłuższa lista źródłowych adresów IP – to możemy wykorzystać link generujący ją w formacie ASCII. W tym przypadku należy odpowiednio przebudować skrypt w miejscu pobierania i parsowania danych. Podobnie jak w przypadku wpisów z serwisu Spamhaus – tak prosty skrypt możemy umieścić np. w katalogu /etc/cron.daily/, aby nasze wpisy były aktualizowane raz na dzień.
Więcej informacji: Blokowanie skanera w00tw00t, Internet Strom Center


Ze względu na możliwość przejścia na API powyższy skrypt może mieć następującą postać:
#!/bin/sh IPT="/sbin/iptables" IPTS="/sbin/iptables-save" FILE="/tmp/isc_rules.txt" DATE=`date +%Y-%m-%d` function isclist { wget https://isc.sans.edu/api/sources/attacks/1000/$DATE -O /tmp/sources.xml --quiet if [ $? -ne 0 ] then # echo "Błąd pobierania pliku." exit 1 fi for bad_guy in $(grep -oP '(?< =).*?(?=)' /tmp/sources.xml | sed -r 's/^0*([0-9]+)\.0*([0-9]+)\.0*([0-9]+)\.0*([0-9]+)$/\1.\2.\3.\4/')
do
$IPT -A ISC -s $bad_guy -j DROP
done
rm /tmp/sources.xml*
}
$IPTS > $FILE
CHAIN=`cat $FILE | grep ISC | wc -l`
if [ $CHAIN -eq "0" ]; then
# echo "Łańcuch ISC nie istnieje."
$IPT -N ISC
$IPT -I INPUT -j ISC
isclist
else
# echo "Łańcuch ISC istnieje."
$IPT -F ISC
isclist
fi
rm $FILE
exit 0