
Фреймворк для хэширования объявленных разрешений в расширениях Chromium и APK-файлах, позволяющий выполнять кластеризацию, охоту и пивотинг по потенциально вредоносным пакетам.
Permhash — это расширяемая платформа для хеширования объявленных разрешений, применяемых к расширениям браузера на основе Chromium и APK-файлам, что позволяет выполнять кластеризацию, поиск угроз и пивотинг аналогично хешированию импортов и хешированию rich-заголовков.
Permhash в настоящее время поддерживает четыре типа файлов, но может быть расширен и на другие:
Установите библиотеку permhash
pip install permhash
Импортируйте permhash
from permhash import functions as permhash
Используйте permhash
# The path variable should be the full path to the file you wish to use to calculate the permhash.
# Calculate the permhash for a CRX
ph = permhash.permhash_crx(path)
# Calculate the permhash for a CRX manifest
ph = permhash.permhash_crx_manifest(path)
# Calculate the permhash for an APK
ph = permhash.permhash_apk(path)
# Calculate the permhash for an APK manifest
ph = permhash.permhash_apk_manifest(path)
Пример массового вычисления permhash.
import csv
import os
from permhash import functions as permhash
def bulk_permhash_crx_manifest(path, output):
"""
Computes the permhash from a directory of CRX manifests
Outputs the results in a csv passed as input
:param path: The targeted directory
:type path: string
:param output:
:type path: string
"""
with open(output, mode="w", encoding="utf-8") as results:
out_writer = csv.writer(
results, delimiter=",", quotechar='"', quoting=csv.QUOTE_MINIMAL
)
out_writer.writerow(["filename", "permhash"])
for filename in os.listdir(path):
if path.endswith("/"):
full_path = path + filename
else:
full_path = path + "/" + filename
calculated_permhash = permhash.permhash_crx_manifest(full_path)
if calculated_permhash:
out_writer.writerow([filename, calculated_permhash])
Permhash также можно использовать как инструмент командной строки. Укажите полный путь к файлу для вычисления permhash в параметре --path/-p и тип анализируемого файла в параметре --type/-t. Команда выведет permhash или False, если файл недействителен.
permhash --type crx --path '[PATH TO CRX File]'
permhash --type crx_manifest --path '[PATH TO CRX Manifest File]'
permhash --type apk --path '[PATH TO APK File]'
permhash --type apk_manifest --path '[PATH TO APK Manifest Files]'
Подробнее см. в блоге Mandiant о Permhash.
Для обсуждения можно использовать группу Google Permhash.
Это не официально поддерживаемый продукт Google.