Frage zo Botnets



  • Hey,

    ich hab mal eine Frage: Wie schaffen die Leute dieser Botnets es, mehr als 1 Mio. Computer zu verwalten? Es mus ja Minuten dauern bis jeder Computer seinen Befehl bekommen hat. Außerdem kann ein einziger Server wahrscheinlich keine 1 Mio. Clients verwalten. Wie soll das funktionieren?

    Würde mich mal interessieren.

    Viele Grüße,
    MarvinL



  • MarvinL schrieb:

    Hey,

    ich hab mal eine Frage: Wie schaffen die Leute dieser Botnets es, mehr als 1 Mio. Computer zu verwalten? Es mus ja Minuten dauern bis jeder Computer seinen Befehl bekommen hat. Außerdem kann ein einziger Server wahrscheinlich keine 1 Mio. Clients verwalten. Wie soll das funktionieren?

    Würde mich mal interessieren.

    Viele Grüße,
    MarvinL

    Überleg dir einmal die wie Kommando-Hierarchie im Militär, Unternehmen oder sonst wo aufgebaut ist. Dann wirst du schnell darauf kommen wie man das macht.



  • Master-> Submaster-> subsubmaster-> client.. wie ne baumhierachie werden die commandso weiter geleitet



  • das waere viel zu unsicher. es ist eher ein p2p netz und commands werden wie dateien ausgetauscht, der 'commander' ist entsprechend auch nur ein bot.



  • Es gibt im Groben und Ganzen 3 Arten:

    - Verwaltung über IRC-Server
    - Verwaltung über P2P
    - Verwaltung über HTTP (gibts noch nicht so lange, ist aber groß im Kommen)

    Die richtigen Cracks arbeiten mit selbstgeschriebenen Netzwerkprotokollen.
    Eine Baumhierarchie anzuwenden wäre einfach nur unsicherer Blödsinn, wie rapso schon erwähnt hat.

    Detailierte Erläuterungen lass ich mal lieber, da man 1. alles dazu im Netz findet und 2. ich nicht weiß, ob sowas hier im Forum erlaubt ist 🙂

    @Boris: Wie war das nochmal? "Wenn man keine Ahnung hat, einfach mal..."



  • Machine schrieb:

    Eine Baumhierarchie anzuwenden wäre einfach nur unsicherer Blödsinn, wie rapso schon erwähnt hat.

    Dennoch haben viele Botnetze eine Baumhierachie. Sie hat nämlich durchaus auch Vorteile bei der Wartung des Netzes.



  • Shade Of Mine schrieb:

    Machine schrieb:

    Eine Baumhierarchie anzuwenden waere einfach nur unsicherer Bloedsinn, wie rapso schon erwaehnt hat.

    Dennoch haben viele Botnetze eine Baumhierachie. Sie hat naemlich durchaus auch Vorteile bei der Wartung des Netzes.

    ob die Vorteile in der Wartung die Nachteile bei Ausfall eines Knotens aufheben, sei mal dahingestellt... eine einfache Baumstruktur waer zu riskant... wenn, dann muesste man es so aufbauen, dass bei Ausfall eines Knotens ein anderer dessen Kinder uebernimmt



  • zwutz schrieb:

    Shade Of Mine schrieb:

    Machine schrieb:

    Eine Baumhierarchie anzuwenden waere einfach nur unsicherer Bloedsinn, wie rapso schon erwaehnt hat.

    Dennoch haben viele Botnetze eine Baumhierachie. Sie hat naemlich durchaus auch Vorteile bei der Wartung des Netzes.

    ob die Vorteile in der Wartung die Nachteile bei Ausfall eines Knotens aufheben, sei mal dahingestellt... eine einfache Baumstruktur waer zu riskant... wenn, dann muesste man es so aufbauen, dass bei Ausfall eines Knotens ein anderer dessen Kinder uebernimmt

    ich dachte auch, state-of-the-art wäre es, eine baumhierarchie dynamisch in einem p2p-netz aufzubauen. so hat man eine ~logarithmische zustellungskette, und wenn zu viele wichtige knoten ausfallen, kann man anderen peers diese aufgabe zuteilen.



  • Kleiner Tip am Rande:

    http://de.wikipedia.org/wiki/Botnet

    Bevor hier noch mehr Vermutungs- und IchDachte-Posts kommen... 🙄



  • Hi,

    ich habe mal eine Frage zum P2P-Prinzip, passt ja gerade gut zum Thema. Ich habe mir zwar schon einiges durchgelesen, aber gedanklich sehe ich folgendes Problem:
    Also ich starte mein Programm und es startet einen Server und verbindet sich zu einer festgelegten IP-Adresse. Allerdings handelt es sich um das erste gestartete Programm, also verbindet es sich zu sich selbst. Es können keine weiteren Clients mehr angenommen werden. Nun, lassen wir dieses Problem mal außen vor. Also ein weiteres Programm wird gestartet, aber es weiß dann ja nicht wohin es sich verbinden soll, wenn es auf einem anderen Rechner ist?

    Instanz 1 ---> Wartet auf Verbindungen
    Instant 2 ---> Weißt nicht wohin es sich verbinden soll

    => Das ganze klappt nicht.

    Wie funktioniert dieses Prinzip? Ich kriegs gedanklich nicht auf die Reihe, es gibt immer ein Problem: IP-Adresse des nächsten freien Platzes, nicht bekannt, etc....

    Würde mich über Aufklärung sehr freuen 🙂



  • zwutz schrieb:

    ob die Vorteile in der Wartung die Nachteile bei Ausfall eines Knotens aufheben, sei mal dahingestellt... eine einfache Baumstruktur waer zu riskant... wenn, dann muesste man es so aufbauen, dass bei Ausfall eines Knotens ein anderer dessen Kinder uebernimmt

    Natuerlich hast du redundanzen in der Struktur, alles andere waere ja doof. Und wenn ein Master ausfaellt, dann springen die dronen auf den naechsten - uU muss man dann rebalancen - aber das ist ja alles recht trivial.

    das aktuelle problem mit P2P ist, dass ein fake Bot das komplette netz ausspionieren kann. Natuerlich verschluesselt man die kommunikation aber zumindest die ips der dronen kann man recht leicht ausspionieren in einem P2P system. deshalb kann man zB das storm netz ganz gut beobachten (nicht shutten, aber zumindest im auge behalten).

    dass ist bei einem herkoemmlichen Baum-Netz nicht moeglich. Du kannst einen Bot faken, aber dennoch kennst du nur deinen einen master - selbst deine geschwister kennst du nicht.

    das heisst nicht dass p2p schlechter ist als baumstrukturen - aber es heisst dass es nicht das beste netz gibt.

    die komplette technik ist ja auch noch recht jung. es bilden sich immer mehr strukturen und es tut sich auf beiden seiten (botherder/bothunter) eine menge.

    @P2P:
    stell dir vor du laedst dir so einen trojaner runter. der trojaner weiss, dass du sein erstes opfer bist. er startet den server und versucht sich weiter zu verbreiten. er findet einen anderen rechner und infiziert den. damit haben wir bereits 2 pcs die miteinander reden koennen. sobald einer der beiden rechner wieder einen anderen infiziert teilt er diesem eine der beiden bestehenden ips mit. und sobald wir uns zu einer node in dem p2p netz connecten koennen, bekommen wir alle anderen clients.



  • beide netzte kann man gleich gut beobachten, es gibt, egal ob p2p oder baum, nur einen commander und der rest ist drone, es gibt also in keiner der topographieen geheimnisse. die sind auch egal, solange die dronen machen was sie sollen. verhindern wird man es eh nicht.



  • Shade Of Mine schrieb:

    stell dir vor du laedst dir so einen trojaner runter. der trojaner weiss, dass du sein erstes opfer bist. er startet den server und versucht sich weiter zu verbreiten. er findet einen anderen rechner und infiziert den. damit haben wir bereits 2 pcs die miteinander reden koennen.

    Aber wie teilt er das dem anderen PC mit? Die "kennen" sich doch gar nicht. Zumindest bei einer Verbreitung über Email.





  • P2P schrieb:

    Aber wie teilt er das dem anderen PC mit? Die "kennen" sich doch gar nicht. Zumindest bei einer Verbreitung über Email.

    natuerlich kennen sie sich. irgendwer muss doch die email geschickt haben, oder?

    Die Artikel bei heise sind aber komisch.

    Traditionelle Botnetze setzen auf einzelne Command-and-Control-Server wie einem IRC- oder Webserver, von dem die Drohnen im Netz die Befehle erhalten. Der Nachteil dieser Struktur für die kriminellen Drahtzieher hinter dem Botnetz ist, dass beispielsweise Sicherheitsbehörden nur den jeweiligen Server vom Netz nehmen müssen, um das Botnetz lahmzulegen.

    es ist naemlich unmoeglich in einem starken netz den c&c server zu killen.

    dafuer beschreiben die artikel immerhin eine schwachstelle des p2p ansatzes. aber dennoch, absoluter schrott die beiden links...



  • Shade Of Mine schrieb:

    P2P schrieb:

    Aber wie teilt er das dem anderen PC mit? Die "kennen" sich doch gar nicht. Zumindest bei einer Verbreitung über Email.

    natuerlich kennen sie sich. irgendwer muss doch die email geschickt haben, oder?

    In meiner Vorstellung gibt es immer noch einen Server, der die Adressen der einzelnen Clients verteilt. Die Vorgehensweise wäre also so:

    Ein Client verbindet sich zum Hauptserver und kriegt eine Liste aller verbundenen Clients. Zu einem (oder sogar allen?) Client(s) verbindet er sich dann.

    Aber bei Millionen von Clients wäre diese Vorgehensweise wahrscheinlich wieder sehr schlecht. Und wenn der Hauptserver ausfällt, dann kann kein neuer Client mehr verbinden.

    Insgesamt ist mir das Konzept nicht ganz schlüssig. Mich würde zum Beispiel interessieren, wie viele Verbindungen der Server der einzelnen Clients immer annimmt? Bei Wikipedia sah es so aus, als ob die Clients "nacheinander" verbunden sind. Das würde heißen es gäbe maximal 2 Verbindungen: Der Client davor sowie der Client danach. Die Frage ist dabei, wie eine Nachricht an den "Anfang" geschickt wird?

    Client 1 -> Client 2 -> Client 3 -> Client 4
    

    Auch hier habe ich Verständnisschwierigkeiten. Das größte Problem, habe ich aber nach wie vor mit der Verbindung. Wohin verbindet sich ein neuer Client?

    Client 1 -> Client 2 -> Client 3 -> Client 4
    

    Versucht er sich in diesem Fall mit Client 2 zu verbinden scheiter dies, da der Server schon seine freien Plätze vergeben hat. Er kann sich also höchstens an Client 4 "anhängen". Und die Adresse zu diesem kommt woher? Die muss ja irgendwo herkommen. Das ganze scheint doch recht umfangreich zu sein. Ich würde aber gerne versuchen ein simples Chatprogramm mit dem Konzept von Peer-To-Peer entwickeln. Dabei würde ich natürlich am liebsten auf einen Hauptserver verzichten. Wäre echt genial, wenn jemand hier die genaue funktionsweise von Peer-To-Peer darlegen würde. Irgendwas scheint in meinem Verständnis zu fehlen...

    Viele Grüße
    P2P



  • P2P schrieb:

    Versucht er sich in diesem Fall mit Client 2 zu verbinden scheiter dies, da der Server schon seine freien Plätze vergeben hat. Er kann sich also höchstens an Client 4 "anhängen". Und die Adresse zu diesem kommt woher? Die muss ja irgendwo herkommen. Das ganze scheint doch recht umfangreich zu sein. Ich würde aber gerne versuchen ein simples Chatprogramm mit dem Konzept von Peer-To-Peer entwickeln. Dabei würde ich natürlich am liebsten auf einen Hauptserver verzichten. Wäre echt genial, wenn jemand hier die genaue funktionsweise von Peer-To-Peer darlegen würde. Irgendwas scheint in meinem Verständnis zu fehlen...

    Viele Grüße
    P2P

    hi,

    das folgende ist nur eine spontane idee, die ohne grundlegende kenntnisse von p2p-technologien und nach einer zu langen wach-phase aufgeschrieben wurde:

    ganz ohne hauptserver ist es schwierig, vor allem, wenn alle peers dynamische ip-adressen haben. bei einer genügenden auslastung kann es dennoch gehen:

    Sei G ein solches P2P - Programm. Es hat die Funktion "G an einen Freund verschicken". Diese Funktion erstellt einen Installer für G, in dem ein bestimmter Anteil der zur Zeit bekannten IPs von Peers (deine IP eingeschlossen) hardcodiert sind. Der Freund, dem du das Programm schickst, installiert es, und lässt es sofort laufen. G, das bei deinem Freund läuft, kann nun alle IPs kontaktieren, die es von deiner Version bekommen hat (natürlich nacheinander). Deine Version fügt die IP deines Freundes zur IP-Liste hinzu. Diese Methode ist bereits ausreichend, um bei statischen IP-Addressen ein funktionierendes Netzwerk ohne zentralen Server zu erstellen.

    Im Falle von dynamischen IP-Adressen musst du noch den Fall behandeln, in dem ein Peer offline geht, und nach einer bestimmten Zeit t mit einer anderen IP-Adresse wieder online geht. Für kleine t ist das ganze kein Problem, da mit Sicherheit noch eine von den validen IPs von vor dem offlinegehen aktiv ist. Man kann diese also kontaktieren, von ihr eine aktuelle Peer-Liste besorgen, und weitermachen, wie bisher. (ein dynamischer Austausch von bekannten validen Peer-Adressen ist sicher nicht schlecht.) Ein Problem tritt auf, wenn du nach einem Jahr das Programm wieder startest. Diesem geht es dann wie dem Helden eines Science-Fiction-Romans, der nach jahrhundertelangem Tiefkühlschlaf aufwacht: Alle seine Freunde sind tot. Nein, sie haben vielleicht nur andere IPs, aber dein Programm hat keine Möglichkeit mehr, sie herauszufinden. Wenn du jedoch sicherstellen kannst, dass dein Programm auf einer sehr hohen Prozentanzahl von Rechnern läuft, kannst du einfach auf gut Glück anklopfen, und triffst irgendwann einen Peer, der dir wieder mit validen IPs aushilft.

    (In dieser Form ist das ganze natürlich nur ein theoretisches Beispiel; ein reales System wird wohl sowas wie zentrale Server haben, die zumindest die Bekannschaft der Peers untereinander übernehmen)



  • Nachdem ich dieses Thema hier ein wenig verfolgt habe, draengt sich mir eine Frage aus: Wie gross sind denn diese Bot Clienten, in kb? Allzu gross kann die Software ja nicht sein. Also wird die Groesse sich wohl im Bereich eines klassichen Wurmes oder Virus einpegeln oder? Alles recht interessant...

    Ivo



  • Shade Of Mine schrieb:

    es ist naemlich unmoeglich in einem starken netz den c&c server zu killen.

    wieso nicht? wurde schon oft gemacht bei traditionellen netzen, einfach stecker ziehen. deswegen setzen die heute auch eher p2p ein statt einen commander und massig dronen im irc.

    (oder verwechselst du p2p und irc?)


Log in to reply