18.12.2020, 23:07
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:
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
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