Berkeley Protocol on Digital Open Source Investigations — офіційний стандарт ООН (документ ST/HR/PUB/20/2), за яким МКС, ЄСПЛ і національні суди оцінюють OSINT-докази у 2026 році. Українською не перекладено. Розбираємо простою мовою: 5 базових принципів, 4 стовпи ланцюга зберігання, 9-крокова методологія роботи документатора, застосування у справах МКС проти Аль-Верфаллі, Путіна, Al Hassan. З конкретними прикладами SHA-256-хешування, шаблонами звітів і поясненням, чому без цього стандарту ваша робота залишається журналістикою, а не юридичним доказом.
Швидкий старт
OLE Tools (oletools) — це набір 15+ безкоштовних Python-інструментів від французького дослідника Philippe Lagadec для локального аналізу шкідливих макросів у Microsoft Office і RTF. Розвивається з 2012 року (12+ років). Головна перевага для адвокатів — локальна обробка: конфіденційні документи НЕ завантажуються в хмару (на відміну від VirusTotal, Hybrid Analysis, ANY.RUN), що зберігає адвокатську таємницю (ст. 22 Закону «Про адвокатуру»). Вбудовано у REMnux (Linux-дистрибутив для malware analysis) і Kali Linux.
Доступ
🔓 Повністю безкоштовно, open-source (Custom Free License)
GitHub: github.com/decalage2/oletools
Сайт автора: decalage.info/python/oletools
Автор: Philippe Lagadec (Франція)
Тип: набір Python-інструментів (командний рядок)
Платформи: Linux, macOS, Windows (потрібен Python 3)
Вбудовано у: REMnux, Kali Linux
Встановлення: pip install oletools
Ключові інструменти у наборі
📋 Основні (для адвоката):
- oleid — швидкий аналіз файлу: тип, метадані, наявність макросів, шифрування, OLE-об’єктів. Перший інструмент для запуску.
- olevba — витяг і аналіз VBA-макросів з MS Office. Найважливіший інструмент — деобфускує макроси, виявляє IOCs.
- mraptor — виявлення шкідливих VBA-макросів (швидке рішення «небезпечно/безпечно»)
- oledump (від Didier Stevens) — дамп streams OLE для глибокого аналізу
- olemeta — витяг метаданих документа (автор, дата створення, програма)
- oletimes — дати створення/модифікації окремих streams (важливо для виявлення підробок)
📋 Додаткові:
- oleobj — витяг embedded objects з OLE
- rtfobj — для аналізу RTF-файлів
- olebrowse — графічний інтерфейс для перегляду OLE структури
- oledir — directory entries OLE
- olemap — мапа OLE structure
- msodde — для виявлення DDE-атак
- pyxswf — аналіз Flash-об’єктів у документах
- ezhexviewer — hex viewer
Підтримувані формати
- OLE: DOC, XLS, PPT (старі Office 97-2003)
- OpenXML: DOCX, XLSX, PPTX (новіші Office)
- RTF (Rich Text Format)
- MHT/MHTML (Web Archive)
- XLSM з Excel 4/XLM-макросами
- SLK (Symbolic Link)
Що виявляється
📋 Підозрілі ознаки макросів:
- Auto-executable triggers: Auto_Open, Workbook_Open, Document_Open, AutoExec, AutoOpen — макроси, що запускаються автоматично
- Suspicious VBA keywords: Shell, CreateObject, WScript.Shell, Run, Exec
- Anti-sandboxing: перевірка наявності аналітичних інструментів
- Anti-virtualization: перевірка VM-середовища
- Template injection — підгрузка зовнішніх шаблонів
- DDE injection — Dynamic Data Exchange атаки
📋 IOCs (індикатори компрометації):
- IP-адреси у коді макроса
- URL для завантаження payload
- Імена executable файлів (.exe, .dll, .bat)
- Domain names для C&C-серверів
📋 Декодування обфускації:
- Hex encoding
- StrReverse (зворотні рядки)
- Base64
- Dridex obfuscation
- VBA expressions
- Encrypted strings
Як це працює (5 кроків)
Базовий workflow аналізу документа
- Встановити:
pip install oletools(або використати REMnux/Kali Linux) - Швидкий аналіз з oleid:
oleid suspicious.docx→ отримати загальну характеристику файлу - Якщо макроси виявлено — детальний аналіз з olevba:
olevba suspicious.docx - Переглянути деобфускований код, auto-triggers, IOCs
- Зберегти JSON-звіт:
olevba --json suspicious.docx > report.jsonдля долучення до справи
Приклад команд
# Загальна характеристика файлу
oleid document.docx
# Витяг і аналіз VBA-макросів
olevba document.docx
# З JSON-звітом
olevba --json document.docx > report.json
# Швидка перевірка «небезпечно/безпечно»
mraptor document.docx
# Метадані документа (автор, дата)
olemeta document.docx
# Дати створення/модифікації streams
oletimes document.docx
# Дамп OLE streams (через oledump)
oledump.py document.doc
# Список усіх streams
oledump.py -l document.doc
# Витяг конкретного stream
oledump.py -s 8 -v document.docТипові кейси для адвоката
🎯 Кейс 1: Локальний аналіз конфіденційного документа без розголошення
У договірному спорі — клієнт пред’явив DOCX від опонента. Не можна завантажувати в хмару (адвокатська таємниця). Через локальний olevba: виявляємо Auto_Open макрос з base64-декодованим JavaScript для крадіжки credentials. Конфіденційність збережена! Підстава для звернення до кіберполіції (ст. 361 КК).
🎯 Кейс 2: Виявлення підробленої дати документа через oletimes
Опонент стверджує, що DOCX створено 15 січня 2024. Через oletimes: метадані streams показують дати модифікації пізніше офіційної дати створення — невідповідність. Підстава для експертно-технічної експертизи (ст. 242 КПК) і визнання документа підробленим (ст. 358 КК).
🎯 Кейс 3: Виявлення фішинг-кампанії на компанію
У корпоративній справі — масова розсилка XLSM-документів з «бухгалтерською звітністю». Через olevba: виявляємо Excel 4/XLM macros з обфускованим завантаженням Emotet-payload. Документуємо для звернення до СБУ і CERT-UA.
🎯 Кейс 4: Аналіз спадкового документа з прихованим контентом
У спадковій справі — DOCX «оригінальний заповіт». Через olevba + oleobj: виявляємо прихований OLE-об’єкт з вкладеним зображенням, яке не показується у Word при стандартному відкритті. Документуємо приховану інформацію для експертизи (ст. 242 КПК).
Сильні і слабкі сторони
✅ Сильні:
- 🌟 Локальна обробка — конфіденційність документів збережена!
- Повністю безкоштовно, open-source
- 15+ спеціалізованих інструментів в одному пакеті
- Деобфускація макросів автоматично (Hex, Base64, StrReverse, Dridex)
- JSON-експорт для інтеграції з іншими інструментами
- REMnux і Kali Linux — вбудовано
- Активна розробка з 2012 року (12+ років)
- Підтримка XLM 4.0 macros (рідкісна функція)
- DDE injection виявлення
- mraptor — швидке рішення для нетехнічних користувачів
- Підтримка Anti-sandboxing detection
⚠️ Слабкі:
- Потребує командного рядка — складно для нетехнічних користувачів
- Лише статичний аналіз — не запускає макрос (треба ANY.RUN для динаміки)
- Не deobfuscate ALL obfuscation — деякі складні техніки потребують ручної роботи
- Не для документів захищених паролем (без розшифровки)
- Потребує Python 3 — встановлення може бути складним для нетехнічних
- Документація переважно англійською
- Не GUI — лише командний рядок (для GUI — olebrowse, обмежений)
Як використовувати в суді / для адвокатського запиту
📋 Як доказ у суді:
- JSON-звіт olevba — приймається як технічний доказ аналізу макросів
- Скриншот командного рядка з результатами — допоміжний доказ
- Локальне виконання — НЕ створює ризик розголошення (на відміну від хмарних sandbox)
- Для остаточного підтвердження — обов’язкова технічна експертиза документів (ст. 242 КПК)
- Особливо корисно для конфіденційних договірних і спадкових справ
📋 Адвокатський запит (ст. 24 Закону «Про адвокатуру»):
- На основі результату — запит про призначення комп’ютерно-технічної експертизи (ст. 242 КПК)
- Запит до МВС (НДЦ — Науково-дослідний центр експертизи)
- Запит до КНДІСЕ (Київський НДІ судових експертиз)
- Запит до СБУ для серйозних кіберзлочинів
📋 Юридичні підстави:
- Закон «Про судову експертизу» (Україна)
- Закон «Про основні засади забезпечення кібербезпеки України»
- Стаття 242 КПК — призначення експертизи
- Стаття 102 ЦПК — види доказів
- Стаття 84 КПК — доказування у кримінальному провадженні
- Стаття 22 Закону «Про адвокатуру» — адвокатська таємниця (ВАЖЛИВО!)
- Стаття 358 КК — підробка документів
- Стаття 361 КК — несанкціоноване втручання в роботу комп’ютерів
- Стаття 190 КК — шахрайство
- Стаття 1257 ЦК — заповіт (для спадкових справ)
- Стаття 215 ЦК — визнання правочину недійсним
- Стаття 24 Закону «Про адвокатуру»
⚠️ Особливо важливо: OLE Tools — це золотий стандарт локального аналізу макросів. Переваги для адвокатів: збереження адвокатської таємниці (ст. 22 Закону «Про адвокатуру»). Завжди використовуйте локально перед звертанням до VirusTotal або ANY.RUN, особливо для конфіденційних документів клієнтів.
Альтернативи у каталозі
- OfficeMalScanner + Didier Stevens Tools — додаткові інструменти для аналізу
- VirusTotal — для cross-check (⚠️ хмарний, не для конфіденційних)
- ANY.RUN — для динамічного аналізу макросів
Інші інструменти для Office (поза каталогом):
- ViperMonkey (від того ж автора Philippe Lagadec) — VBA emulator для динамічного аналізу
- EvilClippy — для модифікації Office-документів (testing)
- XLMMacroDeobfuscator — деобфускація XLM-макросів
- Decalage’s olefile — низькорівнева бібліотека для OLE
- Microsoft’s OOXML Inspector — для нативного аналізу OpenXML
- OLEMon — моніторинг OLE-операцій
Корисні посилання
🔗 github.com/decalage2/oletools — GitHub репозиторій
🔗 decalage.info/python/oletools — сайт автора
🔗 github.com/decalage2/oletools/wiki — повна документація
🔗 github.com/decalage2/oletools/wiki/olevba — документація olevba
🔗 remnux.org — REMnux (Linux distro з вбудованими oletools)
🔗 kali.org — Kali Linux (з вбудованими oletools)
