Sicherheit: Gefahrenquelle Quellcode

    • Allgemein

    Es gibt 31 Antworten in diesem Thema. Der letzte Beitrag () ist von zn-gong.

      Wohl kaum auch nur in irgendeiner weise sicher?
      FTP ist so oder so unsicher. Und selbst wenn du das via HTTP-Downloadest ist das so unsicher wie nur irgendwie möglich. Ich kann downloaden von wo ich will und was ich will.


      Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
      Was ich kurz anmerken wollte: Heute hat sich gezeigt, dass das verdammt gefährlich sein kann, seine Credentials in den Code zu schreiben.

      Derjenige hat dadurch einen gekaperten Webspace und jetzt jede Menge illegaler Inhalte auf dem Webspace.
      Auch wurde das selbe Passwort im VBP verwendet, was zur Folge hatte, dass hier auch das Ganze soweit übernommen worden war.

      Man sieht an diesem Beispiel perfekt, was alles passieren kann, wenn sich sowas ereignet.
      Und es könnte teils noch viel übler ausgehen...
      #define for for(int z=0;z<2;++z)for // Have fun!
      Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

      Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Trade“ ()

      Es wäre vielleicht noch von nöten zu erwähnen, dass es auch keinen Sinn macht, dass Programm zu Crypten und dann ein Passwort einzubinden. Klar, es erschwärt die Arbeit des dekompilieren, aber es macht die Sache nicht unmöglich.

      Des weiteren, wenn sogar noch eine unverschlüsselte Verbindung hergestellt
      wird, kann man die Daten auch noch Problemlos abfangen.

      Mittels PHP Scripte lassen sich derartige "Probleme" super lösen.
      Ich kompiliere natürlich keine Daten in das Programm und das unter anderem diese Sache und ggf. noch andere unsicher sind wissen wir nun alle langsam, aber wie ist es denn dann sicher?

      Jetzt hab ich mir gerade für mein Programm überlegt, dass ich auch sowas wie eine Zeichenfolge + Dynamischen String an den Server als Anfrage sende, sodass diese als gültige Anfrage erkannt wird.
      Allerdings kann man ja dann eigentlich alles was es gibt kinderleicht knacken.
      Also mir fällt echt nichts mehr ein wie ich das dann sicherer machen soll..

      Wie war nochmal die Sprache, die man nicht dekompilieren kann, bzw. schwerer bla? unmanaged C++ ? Dann werde ich bestimmt meinen Ar** bewegen und diese lernen, denn scheinbar sind die nicht so kinderleicht dekompilierbar, dass ist ja echt peinlich, dass man so alles klauen kann und macht mich auch ehrlich gesagt "traurig"..

      Ich meine ich lebe ja nicht hinterm Mond, habe hier mal selber Aufgrund von Bots die ich erstellt hatte hier und da Pakete ausgesnifft etc., aber dekompiliert habe ich noch nie und das es so ein Kinderkram ist, ist ja ekelhaft..

      PS: @Artentus: Die meisten Credentials werden auch mit dieser Art gekarpert. Wenn ich da zb. an diverse Spiele denke, wenn ein Kerl einmal die Verschlüsselung, (wenn überhaupt verschlüsselt) raus hat und noch weiß wo die Daten abgelagert werden, dann ist gut Nacht angesagt. Da gab es damals (zb. auch für ICQ) genug Password-Stealer, die wenn runtergeladen und ausgeführt die Daten zum Stealer-Inhaber gesendet wurden.
      Polling is trolling!

      Achtung: Ich habe die komische Angewohnheit, simple Dinge zu verkomplizieren..
      Ich könnte mir vorstellen, dass ne native DLL mit nem richtig krassen Algo das Ganze erheblich erschweren würde. Auch nen guter Obfuscator, z. B. Net Reactor könnte da eventuell durchaus helfen. Worüber man sich im klaren sein muss: Dies ist auch kein richtiger Schutz und wenn der umgangen ist, dann ist man genauso am Ar***.

      Man könnte Serveranfragen machen und sowas und eventuell mit Signaturen etc. arbeiten, um die Echtheit von allem zu prüfen, ist aber nur Spekulation, ob das am Ende wirklich so gut funktioniert, weiß ich nicht.

      Fakt ist: Es ist nicht möglich wirklich Schutz zu gewährleisten bei so Zeugs mit Passwörtern etc., es gibt immer irgendwo ne Lücke, das ist klar. Dies ist auch bei großen Firmen der Fall, da bin ich mir sicher. Der Unterschied ist halt, dass die wahrscheinlich richtig in die Sicherheit investieren und ein extremes Sicherheitsmanagement haben, wovon man als Hobbyprogrammierer natürlich nur träumen kann. Kann man ja eben auch nicht vergleichen.

      Wie gesagt, es kommt immer auf den Anwendungsfall an... Bei manchem Zeugs ist es eher leichter ziemlich guten Schutz zu gewährleisten, den man zu 99% nicht umgehen kann. Ein Restrisiko gibt es natürlich immer.
      #define for for(int z=0;z<2;++z)for // Have fun!
      Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

      Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
      @Rootbob91
      Man kann native Programme disassemblieren, also zurück in Assembler übersetzen. Man kann theoretisch eine schlichte C-Funktion wieder in eine ähnliche C-Funktion übersetzen, aber komplexe C++ Funktionstemplates bekommt man auch nach Jahren nicht in den Ursprungszustand zurück. Nach dem Kompilieren ist das wichtigste Weg. Für die Sicherheit ist das aber egal. Einem Angreifer reicht der ASM-Code locker um unheil über dich zu bringen. Es gilt "Kann der Computer es ausführen, dann kann der Angreifer es lesen". Das heißt also, dass dir C++ in sicherheitsrelevanten Dingen nicht hilft, nur der Codeklau wird nahezu unmöglich.

      Rootbob91 schrieb:

      Wie war nochmal die Sprache, die man nicht dekompilieren kann, bzw. schwerer bla? unmanaged C++ ?

      Erstmal: Unmanaged C++? Das ist einfach normales C++. Und dann zum Anderen. Das ist komplett sinnlos. Decompilieren hin oder her. Es wurde schon mehrfach gesagt: Die Sicherheit eines Algorithmus definiert sich nicht durch die Geheimhaltung dieses Algorithmus. Es muss egal sein ob das alle sehen können. Es muss trotzdem noch sicher sein. Genauso wie jeder die Baupläne für einen Safe kennen darf, solange er diesen damit nicht öffnen kann.
      Wenn du dich vor Codeklau schützen willst, nützt dir das ebenfalls nix. Hast du nen krassen Algorithmus entwickelt, dann lass ihn patentieren und bete. Alles andere bringt nix. Sobald das Teil irgendwo auf nem Rechner ist, ist das quasi Opensource. Selbst wenn du einen Algorithmus in C++ schreibst, so wird dieser vom Computer ausgeführt. Somit kennt der Computer den Algorithmus -> was der Computer kennt, kennt auch ein Angreifer. Ob das jetzt assembler oder schöner VB.NET Code ist, ist in diesem Fall recht egal. Beides ist lesbar. Assembler ist immerhin auch kein großes Mysterium das keiner versteht.

      Trade schrieb:

      Ein Restrisiko gibt es natürlich immer.

      Da hast du wohl recht.


      Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
      Das geimhalten der Serversoftware nutzt nichts, da dass Netzwerk Protokol (ist ja meistens unverschlüßelt). Also kann man aus denn Netzwerkstream heraus einfach sehen wie ist das Protocol aufgebaut und dann kann man es einfach auf Serverseite Reproduzieren.

      LG, Herbrich