Zum Inhalt springen
Neues Ebook: Holen Sie sich noch heute Ihr Exemplar des Handbuchs Unleash the Power of Censys Search ! | Jetzt herunterladen
Blogs

Durch Filterung von Internet-Pseudodiensten aus dem Rauschen herauskommen

Vor etwa einem Jahr hat Censys damit begonnen, öffentliche IPv4-Adressen auf 2.000 ephemeren Ports zu scannen, zusätzlich zu den Ports mit beliebten, von der IANA zugewiesenen Diensten. Wir haben festgestellt, dass eine erstaunliche Anzahl von Diensten auf nicht zugewiesenen Ports läuft. Wir haben auch festgestellt, dass viele Protokolle auf Ports laufen, die anderen Diensten zugewiesen sind.

Als Reaktion darauf haben wir unseren Ansatz beim Scannen geändert, so dass wir keine Annahmen darüber treffen, welche Protokolle an den einzelnen Ports laufen. Stattdessen versuchen wir, das Protokoll zu erkennen und die Art des Handshakes, den wir durchführen, dynamisch zu ändern. Infolgedessen ist unser Universal Internet Dataset erheblich gewachsen, und heute werden die meisten Dienste im Dataset auf nicht standardisierten Ports gefunden. Bei der Untersuchung von unerwarteten Diensten haben wir jedoch festgestellt, dass viele der Dienste an ephemeren Ports keine "echten" Dienste sind, die wir anders behandeln.

Das Rauschen der Internetanomalien durchdringen

Balkendiagramm: Anzahl der Hosts nach offenen Ports.

Im Kern verfolgt Censys die Dienste, die auf jeder öffentlichen IPv4-Adresse laufen. Wie oben zu sehen ist, hostet die große Mehrheit der IPs nur eine kleine Anzahl von Diensten. Tatsächlich haben 60 % der IPs in unserem Datensatz nur einen einzigen Port offen, und nur 1 % der Hosts hat mehr als 15 Ports mit abhörenden Diensten. Trotzdem haben wir festgestellt, dass fast 40 % der von uns aufgedeckten Dienste auf den 0,2 % der Hosts mit mehr als 100 ansprechbaren Ports laufen.

Ursprünglich dachten wir, dass es sich bei diesen Hosts um Netzwerk-Honeypots handeln könnte: Software, die vorgibt, ein legitimer Host zu sein, auf dem gefälschte Dienste laufen, um Scanner, Verbindungsversuche, Eindringlinge usw. zu erkennen und aufzuzeichnen. Wir haben jedoch festgestellt, dass die Dienste auf diesen "Super"-Hosts nicht einzigartig sind. Vielmehr führen die Dienste in der Regel alle das gleiche Protokoll aus. In den meisten Fällen antworten sie mit identischen - oder nahezu identischen - HTTP-Inhalten. Was sind also diese Hosts?

Balkendiagramm der Anzahl der Dienste nach Typ; normaler Dienst gegenüber Pseudodienst.

Pseudo-Dienste

Wir beginnen unsere Untersuchung mit BigQuery - einem Tool, mit dem wir SQL-Abfragen über den Universal Internet Dataset ausführen können. Forscher können unsere Ergebnisse über das Programm Censys Research Access reproduzieren.

Beginnen wir mit der Analyse dieser "Super"-Hosts im Verhältnis zu dem Netz, zu dem sie gehören.

Die folgende Abfrage extrahiert alle Live-Dienste im Internet aus einem Snapshot vom 2. Februar 2021 und gruppiert sie nach Autonomem System (AS); anschließend vergleicht sie die Anzahl der Dienste in jedem AS mit der Gesamtzahl der Dienste. Schließlich wird die Anzahl der Pseudo-Dienste in jedem AS mit der Gesamtzahl der Pseudo-Dienste im Snapshot verglichen.

DECLARE total_services INT64;
DECLARE total_pseudo_services INT64;
 
SET total_services = (
   SELECT SUM(ARRAY_LENGTH(services))
   FROM `censys-io.universal_internet_dataset.universal_internet_dataset`
   WHERE DATE(snapshot_date) = "2021-02-01"
);
 
SET total_pseudo_services = (
   SELECT SUM(ARRAY_LENGTH(services))
   FROM `censys-io.universal_internet_dataset.universal_internet_dataset`
   WHERE DATE(snapshot_date) = "2021-02-01"
   AND ARRAY_LENGTH(services) >= 100
);
 
SELECT
   autonomous_system.asn AS asn,
   autonomous_system.name AS name,
   COUNT(*) AS total,
   COUNT(*) / total_services as percent_of_total,
   COUNT(*) / total_pseudo_services as percent_of_pseudo
FROM `censys-io.universal_internet_dataset.universal_internet_dataset`
JOIN UNNEST(services) AS service
WHERE DATE(snapshot_date) = "2021-02-01"
# service.truncated indicates the service belongs to a “super” host
AND service.truncated
GROUP BY asn, name
ORDER BY COUNT(*) DESC;

Wir sehen sofort einige interessante Ergebnisse. Ein einziger AS, Incapsula (AS 19551), ist für über 20 Prozent aller Dienste verantwortlich, die Censys im Internet katalogisiert! Außerdem machen die Dienste in ihrem Netz über 60 Prozent aller Pseudodienste aus.

Wir nehmen einige IP-Adressen aus dem Netzwerk von Incapsula, um sie genauer zu untersuchen. Im Censys -Datensatz haben 107.154.205.231, 45.223.40.145 und 103.28.250.98 jeweils 1346, 1060 und 1402 Ports offen. Mit Ausnahme von einem oder zwei offenen Ports ruft jede IP die folgende Webseite auf.

Bildschirmfoto, Fehler 22.

In der Fehlerdokumentation von Imperva heißt es, dass dieser Code erzeugt wird, wenn ein Client versucht, eine Verbindung zu einer IP herzustellen, ohne einen gültigen Namen zu verwenden. Wir führen schnell ein Experiment durch, um dieses Verhalten zu überprüfen und zu bestätigen.

❯ dig docs.imperva.com
;; ANSWER SECTION:
docs.imperva.com.       227     IN      CNAME   4xu3l6t.x.incapdns.net.
4xu3l6t.x.incapdns.net. 30      IN      A       45.60.0.60

Wenn Sie die IP-Adresse 45.60.0.60 direkt in einen Browser laden, erscheint die bekannte Seite Error 22, die bestätigt, dass der Fehler auf das Fehlen eines Namens zurückzuführen ist. Wir schließen daraus, dass diese Hosts Teil der Web Application Firewall von Imperva sind.

Tabelle der Dienstleistungen, gesamt, prozentual gesamt, prozentual pseudo.

Untersuchungen von Izhikevich et al. [1] legen nahe, dass sie in erster Linie aus Middleboxen und Firewalls im Benutzerbereich bestehen. Oft reagieren diese Middleboxen und Firewalls auf Hunderte oder sogar Tausende von Ports, um Scan- oder Angriffsversuche zu vereiteln.

Wir nehmen stichprobenartig eine Handvoll IP-Adressen aus der Gruppe der zuvor identifizierten "Super"-Hosts und sehen vertraute Inhalte. So antwortet beispielsweise die IP-Adresse 194.87.63.167 auf fast jedem einzelnen Port mit einem 400-Fehlercode und dem folgenden HTML-Inhalt.

Ähnliche Variationen gibt es auch bei anderen Hosts, z. B. 4.205.40.185.

Selbst außerhalb des Incapsula-Netzwerks scheint die große Mehrheit der "Super"-Hosts aus Cache-Servern zu bestehen, die auf HTTP-Anfragen über viele nicht standardisierte Ports antworten.

Es gibt jedoch auch andere Arten von Pseudodiensten. Eine andere Klasse ähnelt eher den Honeypots. Auf der IP 94.130.57.50 scheint zum Beispiel Portspoof zu laufen: eine Software, die echte Dienste emuliert, die auf allen 65.535 TCP-Ports laufen.

Portspoof und ähnliche Software wird verwendet, um Angreifern die Erkundung und Identifizierung der Dienste, die ein Host tatsächlich ausführt, zu erschweren. In ihrer Dokumentation geben sie an, dass Scanner bis zu 8 Stunden brauchen können, um einen einzigen 65k-Port-Scan gegen einen Host durchzuführen! Während Sicherheit durch Unklarheit eine seit langem abgelehnte Technik ist, zwingt Portspoof böswillige Entitäten dazu, erhebliche Ressourcen aufzuwenden, um herauszufinden, was tatsächlich auf einem Host läuft.

Unabhängig von ihrer Implementierung stellen Pseudodienste in unseren Daten ein Problem dar, weil sie einen so großen Anteil an den Gesamtdiensten ausmachen, aber nur 0,2 % der Hosts gehören. Außerdem spiegeln Pseudo-Dienste, wie wir bei Portspoof gesehen haben, möglicherweise nicht einen echten Dienst wider, der tatsächlich auf einem Host läuft.

Wie Censys mit Pseudo-Diensten umgeht

Pseudo-Dienste erzeugen ein unangemessenes Rauschen für den Wert, den sie bieten. Beispielsweise kann die Gesamtzahl der HTTP-Dienste, die wir im Internet beobachten, um über 50 % variieren, je nachdem, ob sie in der Abfrage enthalten sind oder nicht.

Um Kunden zu helfen, Pseudo-Dienste zu filtern, haben wir ein Flag namens truncated zu unseren Diensteinträgen. Dieses Kennzeichen zeigt an, dass der Dienst einige seiner strukturierten Daten abgeschnitten hat und auf einem "Super"-Host läuft.

SELECT COUNT(*)
FROM `censys-io.universal_internet_dataset.universal_internet_dataset`
JOIN UNNEST(services) AS service
WHERE DATE(snapshot_date) = "2021-02-01"
# Filter out pseudo services
AND service.truncated = false
AND service.service_name = 'HTTP';

Außerdem werden Pseudo-Dienste langsamer aktualisiert als andere höherwertige Dienste. Auf diese Weise ist Censys in der Lage, mehr Ressourcen für die Erkennung und Aktualisierung der Assets einzusetzen, an denen unsere Kunden am meisten interessiert sind.

Censys Universal Internet Dataset

Der Censys Universal Internet Dataset (UIDS) ist der branchenführende Datensatz für Hosts und Dienste im Internet. Unternehmen nutzen UIDS, um anspruchsvolle Bedrohungen zu verfolgen und komplexe Angriffsflächen zu verteidigen. Erhalten Sie Zugriff auf den Universal Internet DataSet und entdecken Sie "Super"-Hosts und vieles mehr. Kontaktieren Sie uns und fordern Sie noch heute eine Demo an!

Haben Sie Interesse an einer Forschungstätigkeit? Wir bieten auch Zugang für Forscher. Sehen Sie hier, ob Sie dafür in Frage kommen.

Referenzen

[1] LZR: Identifizierung unerwarteter Internetdienste. Liz Izhikevich, Renata Teixeira, Zakir Durumeric. USENIX Security Symposium 2021.

---

Hudson Clark ist Software-Ingenieur bei Censys. Er konzentriert sich auf die Entwicklung von Systemen in großem Maßstab und ist leidenschaftlich bemüht, den Kunden einen Mehrwert und Einblicke zu bieten. Er stammt aus Ann Arbor und hat einen Bachelor-Abschluss in Informatik von der University of Michigan.

Lösungen für das Management von Angriffsflächen
Mehr erfahren