Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Änderungen in xl-Ranges erkennen
#1
Hallo,

im Rahmen der Analysen des APT-Agriffs auf "SolarWind" und deren Kunden wurde auf einen Fowler_Noll_hash hingewiesen. In VBA ist nicht direkt nutzbar (Varibalen ans "unsigned 32-bt Interger), aber mit viel Übersetzungen kann man eine Prüfsummer für Excel-Ranges konstruieren.

Scenario: Eine Datei mit vertrulichen Daten wird weiter gegeben und unauthorisierte Änderungen sollen bemerkt werden.

Der Makro "Anlegen" erstellt so etwas wie einen Hash für die selektiereten Zellen. Eine Änderung wird später wird "Pruefen" erkannt:

Code:
'Range selektieren: Anlegen
' angeregtdurch Fowler_Noll_hash

Sub Anlegen()
Names.Add("A_" & ThisWorkbook.Names.Count, Selection, False).Comment = iHash(Selection)
Selection.Name = Names(Names.Count).Name
Names(Names.Count).Visible = False
End Sub

Sub Pruefen()
Dim NM As Name
For Each NM In Names
    If iHash(Range(NM)) <> NM.Comment Then Range(NM).Interior.Color = vbYellow
Next NM
End Sub

Function iHash(rng)
    hs = 111
    For Each c In rng
        Tx = Tx & c
    Next c
    
    For b = 1 To Len(Tx)
        hs = hs Xor Asc(Mid(Tx, b, 1))
    Next b
    iHash = hs
End Function

Sub Test()
Dim NM As Name
Debug.Print
For Each NM In Names
    Debug.Print NM.Name, NM, NM.Comment
    'NM.Delete
Next NM
End Sub

By-the-way: Das Anlegen von NAMES erstellt manchmal im xlA1, manchmal im Format xlRC, sehr unangenehm.

Der Ansatz ist nicht kryptographisch sicher, aber auch nicht so leicht zu finden. Wenn ein Verdacht auf Manipulation besteht, kann eine xlsx-Datei mit dem Code geprüft werden.

mfg
Antworten Top
#2
1. Schicke Sache, auch für Privatleute! Warum nicht sicher? Wenn Absender und Empfänger die Prüfsumme getrennt voneinander ermitteln können ... Ein Korrumpator könnte natürlich die Daten bei Kenntnis des Prüfprogramms entsprechend manipulieren.

2. RC1, RC2 ... sind seit xl2007 doppeldeutig, nämlich ein Bezug in R1C1- und A1-Schreibweise. Es wird vom Default R1C1- dann in A1-Schreibweise umgedeutet. Abhilfe: RC1 in der VBA-Default-Schreibweise (R1C1) immer als R[0]C1 schreiben.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste