Scriptidee: Malewarescanner

  • Hallo, mir kam da so eine Idee und ich möcte euch dazu befragen was ihr davon haltet. Währe es möglich mit AutoIt ein Anti-Virenprogramm zu schreiben. Mir schwebt da ein Script vor der nicht immer mit neuen Virensignaturen bestückt werden muss sondern einer der neue Prozessaufrufe, sowie jede aus dem Internet ankommende downgeloadete Datei dem Benutzer zeigt und ihn dazu befragt wie weiter mit der Datei verfahren werden soll. Hierzu könnte man ja noch zum bespiel gegen Keylogger nach Dateien suchen lassen in welche während des drückens von Tasten geschrieben wird. Ich weiß auch dass es massenhaft solcher Programme(auch Freeware) gibt, aber mir ginge es nur um die Möglichkeit und da es weitaus versierte AutoItscripter als mich hier gibt frage ich euch um Rat. :rolleyes:

    Gruß Vinschni

    • Offizieller Beitrag

    Hallo!

    Die Idee ist zwar gut, aber ich halte AutoIt dafür für nicht geeignet. Man muss da doch recht tief in das System rein und andere Anwendungen streng kontrollieren. Das bedeutet, dass man API-Calls umleiten oder abfangen muss usw.. Solche Dinge sind in einer höheren Programmiersprache (hätte vor allem C++ im Auge) wesentlich einfacher, Resourcen schonender und "härter" zu realisieren. Was natürlich ginge, wäre z.B. die DL-Ordner der Browser zu überwachen. Allerdings würde das ja nichts helfen gegen Trojaner, die eine direkte TCP-Verbindung aufbauen und ihre Daten so übertragen und herunterladen.
    Soweit meine Meinung.

    peethebee

    • Offizieller Beitrag

    Hi,

    also ich würde sagen, dass sich der Stress nicht lohnt. Aber hier hast du schon mal einen klitzekleinen Anfang :

    [autoit]

    Global $list = ProcessList()

    [/autoit][autoit][/autoit][autoit]

    AdlibEnable("checkForNewProcess")

    [/autoit][autoit][/autoit][autoit]

    While 1
    Sleep(50)
    WEnd

    [/autoit][autoit][/autoit][autoit]

    Func checkForNewProcess()
    $list2 = ProcessList()
    If $list2[0][0] > $list[0][0] Then
    MsgBox(262208, "New Process", $list2[$list2[0][0]][0] & " ")
    $list[0][0] = $list2[0][0]
    Else
    $list[0][0] = $list2[0][0]
    ; reset list if process closed
    EndIf
    EndFunc ;==>checkForNewProcess

    [/autoit]

    So long,

    Mega

  • Danke für die schnelle antwort, ich vielleicht habt ihr recht, wobei ich finde das mit AutoIt schon sehr viel möglich ist (ich habe etwas C++Erfahrung) AutoIt lässt sich zwar mit C++ nicht vergleichen aber ich denke einigs lässt sich hiermit auch realisieren.

  • @meger ist recht was er zeigt ist doch ein Anfang/Prinzip von ein antivirus, ein bisschen mehr vom Troyaner Seite.

    Ich habe einmal schon erfahrung mit Low level, Antivirus Bau, einmal war ein Virus nicht vom grossen Antivir firmen erreichebar, hat doch viele komputer infierziert, So wir sollten das Problem Loessen und eins bilden, das war 100% erfolgt bein Detection und bei Loeschen von diesem Virus(das war dies mal ein Mbr selbst vesteckend Sort, er hat das Mbr runter bewegt und damit er booten koennte um das system kontrolieren).

    @Peethebe stimmt doch, mit den normalen version kann leider nicht das RAM, speicher direkt erreichen wie im C, aber jetzt ist es moeglicht mit dem Beta Autoit ver.

    Ich kann mal mit meinen kleinen Kenntnisse dafuer helfen . und das groesste Problem ist nicht das SPRACHE jetzt, sondern das Findung von einem aktualliziertbar antivirus-Signature-Database dass man benutzen kann.

    Vielleicht kann man durch GPL oder Open Soft eine solche Signature Liste erreichen. Damit kann man viel tun um eine Aktuelle Liste/zeichnungen von Viren Haben.
    Das ist erste Stuffe wenn das Schafft dannach kann man weiter ...
    No problemo das kann man schaffen mit AutoitverBeta. Das Virus Jagd is Oeffen im Autoit.de :kiss:

    Ich bin oeffen fuer alles das gegen die Negative Sachen Des Informatik sind, Tut mir sehr leid dass 2 topics Gleichzeitig sind:
    eins NEGATIVE dem alle helfen, ohne das zu merken, das es so in Grund ist.
    DIESE POSITIV: dem keine Hilft den richtig ArbeitHaft ist.
    Ich dachte denn warum nicht dem Positivem VirumJaeger bewaessern und doch das Such-Loeschen Funktion trocken lassen. :hammer:
    Meine eigene sehr Persoenliche Ideen.

    7 Mal editiert, zuletzt von BasicOs (17. November 2006 um 19:07)

  • Ich bin mir zwar nicht ganz im klaren was Basic0s nun im Endefekt meint :rolleyes: aber da er sich damit auskennt, möchte ich nun fragen ob jemand Lust hätte einen solchen Script zu schreiben?

    Gruß vinschni

  • Warte, mein Freund.
    keine sagte es eine einfache Arbeit waere eine Antivirus zu Kodieren.

    Dafuer soll man taeglich oder wochentlich immer was neues entdecken und noch ein trick um ein neues Virus zu jagen. Das ist ein kreatives Kampf zwischen den Viren und die Antiviren, das ist kein ein Tag Arbeit und dann ende.

    Am anfang kann ich nicht so viel garantieren, mindesten waere es einfacher ein PC scannenn um infizierte Datei zu finden, (Erfindung).
    Noch schwer waere andere sorten virus Jagen wann sie Aktiv sind wenn sie was tun.(Haltung und Kure)

    Das Result waere ein PROCENT. so Das Autoit.de_Antivirus.exe -->kann xx% der viren Entdeken und % der Virus Putzen und lebend Jagen. hoeffentlich ein 90% waere zum erfindung Super Gut, Beim database.

    Das waere doch einfachar um ein Antivirus besonders fuer Autoit-ProgrammiertenViren--- um ein 100% zu schaffen. Oder zu machen ein Sotool das stimmt das Gefaerlichkeit vom ein bestimmten Autoit-Programm, ob dabie gefaerliche Autoit-Low-Level-Befehle inbegrieffen haetten vie loeschen, format, uberschreiben, Reproduktion,Keylog, und so ein Katalog u.s. ....(mit % von Gefahr). Kann man erst vom Oeffene au3 Skripte auch tun

    (das koennen auch viren die nicht einfach beim andere firmen gejackt werde wie die Autoit Viren)(aktuelle falsche Positiven)

    zum Schluss, man kann aber dafuer du nicht sagen ..
    bitte mach jemand ein Antivirus fuer mich.

    Wenn du das machen willst, sollst du selbst in einem Antivus Jaegar entwicklen und diese Probleme kreativ zu loessen. Dafuer bin ich gern zu helfen mit meine kleine Kenntnisse davon.
    Mann muss die Wolfe oder Viren jagen wann sie kommen oder wenn jemand meint dass eine gibt, oder wenn neue wechseln sind oder einfach wenn registry gaerndert wierd.Oder virus-like Aektivitaten zu Detektieren.

    Daenk von Viren wie lebende Pesten, und du wie das Jaeger. Die kommen noch wieder.

    5 Mal editiert, zuletzt von BasicOs (17. November 2006 um 19:58)

  • Danke,
    ich habe da aber noch eine Frage, bist du der Meinung das es ab sinnvollsten währe immer über Virus-Signatur-Updates Viren zu erkennen(um da immer auf dem aktuellen Stand zu sein muss man ja so viel Zeit investieren, geschweigeden wenn man überhaupt nachkommt) oder, woran ich dachte, auf Grund der Activitäten laufender Programme, sie als Virus zu identivizieren und zu vernichten. Das würde zwar vorraussetzten das man sich beim scripten der Erkennungsroutine sehr viel Mühe geben müsste, währe meiner Meinung nach aber immer noch einfacher zu realisieren als das Signaturen-geupdate.
    Was meinst du?

    • Offizieller Beitrag

    Behavioural Blocking oder Heuristik ist sehr schwer. Das ist imho mit AutoIt endgültig nicht mehr zu machen. Dazu muss man ja an allen entscheidenden Stellen im System sitzen und dann entscheiden, welche Programme gut und böse sind. Das ist zwar ein aktueller Trend auch bei den AV-Herstellern, aber es gelingt doch immer noch sehr einfach, Daten (z.B. über URL-Aufrufe) nach außen zu schleusen usw.
    Signaturupdates sind ohne horrenden Personal- und Zeitaufwand wohl auch nicht zu machen. Allerdings könnte die DB von ClamWin evtl. offen sein, glaube ich aber eher nicht...

    peethebee

  • OK, ich glaub da hast du recht
    da gäbs nur noch eins was mir nun einfliele. Ich habe gelesen das sich mehrere Antivirenprogramme(gleichzeitig installiert) entweder gegenseitig oder dem Rechner "den Gar ausmachen". Stimmt dass? Wenn nein, währe es dann möglich das AutoIt die Steuerung mehrer Antivirenprogramme übernimmt, bzw. sie gezielt auf aus dem Netz geladens "loslässt" um so die Sicherheit bzw erkennrate erhöt?

    • Offizieller Beitrag

    Es geht bei diesen Szenarien vor allem um die Hintergrundwächter. Laufen davon zwei wollen wie angedeutet beide tief ins System und möglichst viel kontrollieren. Das ist ja auch sinnvoll, damit Viren keine Chance haben. Allerdings behindern sich zwei Wächter, die das wollen natürlich gegenseitig. Mit ausgeschaltetem Wächter von einem Scanner könnte man wohl beide parallel betreiben und AutoIt den Aufruf überlassen. Aber garantieren kann ich das natürlich nicht.
    Man könnte auch ein Skript schreiben, das Dateine an https://autoit.de/www.virustotal.com zum guten Online-Scan schickt...

    Viel Erfolg,
    peethebee

  • Tatsaechlich,

    Wann ich meinte Virus-signature Spreche ich von ein breiteres konzept als einfach bitcode erkennung (das ist das breiteste normale meinung)

    Ein Virus Signature kann auch andere Info dabei Ingreiffen, wie du meinst Aktivitaeten. Oder auch nicht aerkeannung sonder aenlich ist Euristik.

    Das haeng vom Motor des Antivirus Programm das er auch andere (Signs)Zeichnungen erkennen kann.

    Eine einfache Virus signature waere zum beispeil, einfach nicht nuer Aktivitaeten sonder Prezenz (Existierend) wie vom Th.meger Skript ich aerklare lebend:

    Einfachste Virus Signature von ein database gelesen z.b.:
    Type fuers AvMotor erkaennung: P-->Existiert ein Process
    B--->BitCodeSignature
    A--->Aktivitaet
    R--->Registry
    S--->Wechseln vom System
    K--->KeyLog Aktivity
    Type von Signature=P
    Signature=hallooscvsdll.exe
    Aktion= 1+2 (ProcessKill,+loeschen)

    Ganz Schnelles nicht funktionierendes (Antivirus)Process Signature Motor Gruendnis aus Th.meger Post

    [autoit]

    Global $list = ProcessList()

    AdlibEnable("checkForNewProcess")

    While 1
    Sleep(50)
    WEnd

    Func checkForNewProcess()
    $list2 = ProcessList()
    If $list2[0][0] > $list[0][0] Then

    CheckSigProcess($list2[$list2[0][0]][0])
    $list[0][0] = $list2[0][0]
    Else
    $list[0][0] = $list2[0][0]
    ; reset list if process closed
    EndIf
    EndFunc ;==>checkForNewProcess

    [/autoit][autoit][/autoit][autoit]

    Func CheckSigProcess($TestProcess)
    $action= FindBlackList($TestProcess,$Type) ;---> Gesucht beim P (processes) und "hallooscvsdll.exe"
    ;Results $action..
    select
    Case $action=1
    blah blah
    Case $action=1+2
    $sPath=ProcessPath($TestProcess)
    $sRegistryActions=ProcessRegistry($TestProcess)
    ProcessClose($TestProcess)
    if not filedelete($sPath) then
    prepare2CleanBoot($TestProcess)
    msgbox(0,"Man muss diese Pc restarten um das Pest zu loeschen","")
    shutdown(2)
    Else
    RegitryClean($sRegistryActions)
    endif
    case $action=3
    case Else
    msgbox(0,"In ordnung","Kein Virus ","")
    endselect

    endfunc

    [/autoit]

    5 Mal editiert, zuletzt von BasicOs (17. November 2006 um 21:14)

  • Danke,
    aber hierzu ist ja auch der Name des Prozesses wichtig. Ich habe mal einen Keylogger gesehen, der hat seinen Prozessnamen geändert. Ca. eine Sekunde nachdem ich den tasmanager geöffnet hatte hat sich der Prozesname geändert, einfach so zur Tarnung. Wenn man hier immer in einen Zufallsnamen ändern würde wäre der Prozess doch gut getarnt, oder?
    Würde sich das mit AutoIt machen lassen?

  • Ja,
    dann es in diesem Fall der Name des Processes kein gultiges Signature wird

    Aber immer lass sich erkennen von ein weg oder andere.
    Wir sollten dann was anderes suchen, vielleicht dasselbe ProcessName änderung ist selbst ein signature, oder genauer gesagt beim Memory Scann bitCode, und das soll durch FestPlatte Scannen wann nicht Aktiv waere (nach Clean Boot)
    Das ist kein P type sondern
    A Aktivitaeten /MemoryScann

    das waere: type A Aktivitaet (heuristik)
    Signature "Schnell process Aendereung"
    Aktion 3 "Warn INfected Reboot and Scan Files"

    lieber durch
    das waere: type MemoryScann
    Signature "0'0903&&4534&/&&"
    Aktion "Clean Boot"
    beim CleanBoot Type B Bitecode
    Signature "3df='¡¡23&&4534&/&&"
    Aktion 1+2

    Es gibt doch andere schwereste Viren ...... Dann muss man immer ein Weg suchen. Wann es existiert und Festplatte,platz brauch Speicher,handles und kode, gibt es doch ein Weg. (noch nicht ein Geist-Virus :lol:)
    Das ding ist das schnelleste und Safeste weg zu finden.

    Mal keine schlechte idee vom ein KLASSIFICATION vom autoit befehle zu tun, beim ohne das kode zu gucken ein %Gefahrlich-Autoit-Script zu rechnen(auch kompilierte Skripte)
    zb

    5 Mal editiert, zuletzt von BasicOs (17. November 2006 um 21:51)

  • Denn ich etwas Pesimistisch bin mit den Autoit-Viren-Bau, wollt nur sagen:

    dass von meinem AussichtPunkt, das direkte Nachteil von Autoit wie Viren-Machen-Tool ist dass: :lol:
    wenn die Viren schlimmer waeren, dann machen die Antiviren Firmen, einfach was einfacher ist, um am Autoit-Motor zu suchen wie direkte Signature.(Gleiche Motor dass alle unsere Skripte benutzen und mitteilen)
    Das meint: :weinen:
    dass man kein Oefentliche Programme zu anderen bieten kann, denn sie wieder Wie Viren geloescht werden.(Das automatische Inklusion vom dein Programm in exklusion liste, kann wie Virus attak auch genommen werden)

    In diesen Momemt, kann man nur Programme selbst benutzen oder fuer Freunde (man kann nicht die Werkzeuge zu dem Welt teilen), oder doch eventuell per web wie Cgi. ;)

    Was wir verlieren sind unsere hart gearbeitete Autoit-kenntnisse, nicht so nutzlich waeren, und unsere Zeit nicht so Wert als unsere Macht mit dem Komputer geringer waere.
    So Mist rein, Mist raus

    Ich bin mehr fuer Oekologische Programmierung, wenn jemand Negativ will muss selbst tun. :klatschen:
    Alles gute.
    BasicOs

    Einmal editiert, zuletzt von BasicOs (17. November 2006 um 23:50)

  • Danke,
    Ich hab schon verstanden, ich wollte ja auch nicht Weltweit ein Anti-Virenprogramm verteilen dass nicht genügend aktualisiert wird, mir ging es ja um die Möglichkeit, es mit AutoIt zu realisieren.

    Gruß vinschni