Clever-Excel-Forum

Normale Version: VBA Viren-Scanner
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

vielen Email mit Anhängen von MS-Office-Datei mit Schadcode werden, zumindest in den ersten Stunden, von Anti-Viren-Software schlecht erkannt.

Die öffentlich bekannten Scanner für VBA-Viren durchsuchen den VBA-Code nach bestimmten Schlüsselworten, wie"Declare" oder "CreateObject".

Mit Analysten-Tools ist sehr gut zu erkennen, das die meiste Schadware an den Manipulationen der Zip-Struktur erkannt werden kann. Für Python gibt es diverse Tools, die ich aber mangels Python-Kenntnissen nicht umschreiben konnte.

Hat jemand Interesse an der Entwicklung eines solchen Python-Scanners?

Vorlagen von Python-Codes und Samples von VBA-Viren zum Testen sind genügend vorhanden.

mfg
Hallo,

Zitat:Die öffentlich bekannten Scanner für VBA-Viren durchsuchen den VBA-Code nach bestimmten Schlüsselworten, wie"Declare" oder "CreateObject".

Nicht ganz, zum Beispiel der MS Defender erkennt (neuerdings) auch Shell-Aufrufe in einer Datei.
Und zwar sowohl per VBA als auch API. Bei dem Python-Projekt kann ich leider nicht unterstützen.

Gruß
Anbei ein erster Ansatz um das Konzept zu verdeutlichen:

Der Code trennt zwischen mit MS Office erzeugten OOXML mit und ohne Passwort durch Prüfung der "Magic-Bytes".

Der nächste Schritt wäre die Tests mit malware.
Warum nicht in VBA ?


Code:
Sub Zipfiles()
  c00 = "G:\OF\adres_001.xlsb"
   
  MsgBox zips1(c00), , "Compressed file(s) in " & c00
End Sub


Function zips1(c00)
  Open c00 For Binary As #1
    c01 = input(LOF(1), #1)
  Close #1

  Select Case Right(c00, 4)
  Case ".zip", "xlsb"
    sn = Split(c01, "PK" & Chr(1) & Chr(2))
    For Each fl In sn
      zips1 = zips1 & vbLf & Mid(Split(fl, "PK")(0), 43)
    Next
  End Select
End Function
@snb

ja, das ist die Frage: Mit VBA geht es so einfach, dass nach einer Stunde eine erste passable Lösung geben könnte (prüfen der Magic-Bytes und auf Schlüsseworte im VBAProject wie "Declare" und "Create"). Alles was notwendig ist wäre ein

Code:
application.AutomationSecurity = disable

und aus reiner Vorsicht sollte dieser PC keine Verbindung zu Netz haben.

Als kleine Programmierübung habe ich den Python-Code noch (soweit wie mögich) fertiggestellt. Zum Testen eines von M$ eigebauten File-Open-Password mußte ich allerdings eine Zusatz-Library importieren.

Für meine Stichprobe geht es gut. Im Anhang der Code, hier das Ergebnis:

Zitat:python3 Office_Virus_Check.py
Virus (S)      /home/pi/Documents/Oledump/Virus/files_found.xlsx
Virus (S)      /home/pi/Documents/Oledump/Virus/docx/668271c9472f392f3e61c1ced6c45dd2518eba967900562cb36677b6469980ab.docx
Virus (S)      /home/pi/Documents/Oledump/Virus/docx/270c40ed02166b3f9687722a922082abd182688cb3cc27d4f0f27ff8af729b53.docx
Error          /home/pi/Documents/Oledump/Virus/docx/ee8644488dec3eafbaa5a339eee98a5328cf6d6358efddb7bc890ef3430e83d8.docx
Virus (S)      /home/pi/Documents/Oledump/Virus/docx/b050545a7ffcbbcf96dc79354a6988fcc2f55bc76b67b59eaab36e7d238a7f62.docx
Error          /home/pi/Documents/Oledump/Virus/docx/e1203e7b58681aee0876eaf804daf413ef6529d8ebeeb71c75cf7eca1afb853f.docx
Virus (S)      /home/pi/Documents/Oledump/Virus/docx/994b3b76317cd9f6d5d1777119e102503ba5f354cc2fe19bd471949a029b1770.docx
Error          /home/pi/Documents/Oledump/Virus/docx/25e32aa862bdd2d9fb9e14dbc9ff76094130b674dcf3e18a107ed96d4532fc41.docx
Error          /home/pi/Documents/Oledump/Virus/docx/726338c1d3d4edcaded97f31f8d3690d75c182432a6da92888a6596c3be26968.docx
Virus (S)      /home/pi/Documents/Oledump/Virus/docx/05cb_saved_Lo_VBA.docx
Virus (S)      /home/pi/Documents/Oledump/Virus/docx/5b176693bd034c2640fbd079a73726cafaefdfe64d9e5814a24b157bfcbcfd42.docx
Virus (S)      /home/pi/Documents/Oledump/Virus/docx/Emotet_53f7/53f72bbf0abcccf90474673ff4ae6ab777908f9a151c82beeb980283ea592cda.docx
Virus (S)      /home/pi/Documents/Oledump/Virus/SansISC/ca62501fd8a132340a63f97e4547ee1384a7744ab8c7e1afe4e69a008b2c3602.docx
Virus (V)      /home/pi/Documents/Oledump/Virus/xlsx/e72a99bda4fcd0097ad19356af9a327070a5d30bb2dfc7439085e7d49c9f8928.xlsx
Virus (S)      /home/pi/Documents/Oledump/Virus/xlsx/3ff281071fe50003127bed613624d8d22425f65688462a43aa6d3106c1da02ae.xlsx
Virus (V)      /home/pi/Documents/Oledump/Virus/xlsx/8bc5f10aeb794d356df1974f501ed3712ef105793bc793c99246fec6cc770001.xlsx
Virus (V)      /home/pi/Documents/Oledump/Virus/xlsx/5525b80e4317e08cea05a9e1940b367d0fe98094b8624823d14b360fca5f55c9.xlsx
Virus (V)      /home/pi/Documents/Oledump/Virus/xlsx/6055c9082177de31bd75ef56f112fe7c2d36d2f064b9564e3e16968805bd479a.xlsx
Virus (S)      /home/pi/Documents/Oledump/Virus/xlsx/a46b5d45d8ec0fd6f943d694fc9c42d7ae72d33122fb4c0e790d420c1bb53204.xlsx
Virus (S)      /home/pi/Documents/Oledump/Virus/xlsx/5aa8791f8baedf09bd004e5305b0ba61b60faef7e281ed04fe07ef6dd571289c.xlsx
Virus (S)      /home/pi/Documents/Oledump/Virus/xlsx/c80e00e44a9ad1f8209d72e1de7a5cc9fd239b2554f2ac53cdb609e7f5131a92.xlsx
Virus (V)      /home/pi/Documents/Oledump/Virus/xlsx/ad6b1ee638251f696964e6cedf93d55eea5442a83843a4fbd5676114d46cd645.xlsx
Error          /home/pi/Documents/Oledump/Virus/xlsx/b176dd1d9b50e5e05b94266618ed4df009a8324eb25834d0c341c9620f3e6b21.xlsx
Virus (V)      /home/pi/Documents/Oledump/Virus/xlsx/22ca2f67ea0b1df994ba615904082bc16ef72b61198430094cafbabc7a7d91f5.xlsx
Virus (V)      /home/pi/Documents/Oledump/Virus/xlsx/e386c601021290959846266ba4fec1ca405db93d883749f36830db174c6999e7.xlsx
Virus (V)      /home/pi/Documents/Oledump/Virus/xlsx/b33bf41c80c4e6e373025815badf3cf76379292596033126372204aa49fd5eb4.xlsx
Virus (S)      /home/pi/Documents/Oledump/Virus/xlsx/85d4b56dbf79623caa6b94f4d851c12735a171d022542f7ac0b7792a09fef143.xlsx
Virus (V)      /home/pi/Documents/Oledump/Virus/xlsx/a7f642441d45e74279cf6ca2b19215fba0d96af586416e168796f5595b7bcaa0.xlsx
Virus (V)      /home/pi/Documents/Oledump/Virus/xlsx/Loki_Excel4_a9ca57af75c56b8a34548445eae94f673d3bc60867ac565b2c1a9d02b2601911.xlsx
Virus (V)      /home/pi/Documents/Oledump/Virus/xlsx/Formbook_Excel4_272f7a090957ae6c458e84833d7fb1b30bb6f630ee16bc642cc093a82713b7bb.xlsx
Virus (S)      /home/pi/Documents/Oledump/Virus/xlsx/41cdff6bc198b4e041d092b52663f0ea0dd06334e70c62b595710e214cb8e3d9.xlsx
ActiveX        /home/pi/Documents/Oledump/Virus/Dridex/06300fe884cdb51d9687c523aa9088a37185e7e9f45d54d9dc396e72cd0285a3.xlsm
Virus (S)      /home/pi/Documents/Oledump/Virus/Dridex/06300fe884cdb51d9687c523aa9088a37185e7e9f45d54d9dc396e72cd0285a3.xlsm
Virus (S)      /home/pi/Documents/Oledump/Virus/EPPlus/00b2c7ee70bb3f29655e0c3b4eb07d76974702f39b9845220fa6e36a7be50c0f.xlsx
Virus (S)      /home/pi/Documents/Oledump/Virus/EPPlus/a02258ba10419bc678e832f3224dc6340e22f567f7b8ba1d344a5e5213d129a1.xlsm

Wegen der Abfrage des Datums werden auch LibreOffice-Dateien erkannt.
Virus (V) bedeutet das spezielle M$ password
Virus (S) bedeutet eine manipulierte Zip-Struktur
Error zeigt besonders start manipulierte Zip-Files

Wenn man noch alle Office-Dateien vor 2007 blockt und die docm/xlsm auf riskanten VBA-Code untersucht, sollte man einen Vergleich mit AV versuchen.

Der Vorteil von Python ist, dass es auch unter Linux läuft.

mfg

(PS: die Magic-bytes von RTF (Word) sind extrem kompliziert abzufragen)