
Сканер личной идентифицируемой информации (PII) на основе ИИ.
⠀⠀⠀⠀⠀⠀⠀⣤⣤⣄⣀⡀⠀⠀⠀⢀⣠⣤⣤⣄⡀⠀⠀⠀⢀⣀⣠⣤⣤⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠸⣿⣿⡿⠿⢿⣷⡄⢠⣿⣿⣿⣿⣿⣿⡄⢀⣾⡿⠿⢿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠈⠉⠀⠀⢸⣿⡇⢸⣿⣿⣿⣿⣿⣿⡇⢸⣿⡇⠀⠀⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⣠⣤⡀⠀⠀⠀⠀⠀⠀⠀⢸⣿⡇⢸⣿⣿⣿⣿⣿⣿⡇⢸⣿⡇⠀⠀⠀⠀⠀⠀⠀⢀⣤⣄⠀⠀⠀
⠸⣿⣿⣿⣿⣿⣿⣿⣿⣦⠀⢸⣿⡇⢸⣿⣿⣿⣿⣿⣿⡇⢸⣿⡇⠀⣴⣿⣿⣿⣿⣿⣿⣿⣿⠇⠀⠀
⠀⠉⠉⠁⠀⠀⠀⠀⣿⣿⠀⢸⣿⡇⠀⠉⣿⣿⣿⣿⠉⠀⢸⣿⡇⠀⣿⣿⠀⠀⠀⠀⠈⠉⠉⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣀⣈⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⣁⣀⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠘⠿⠿⠿⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⠿⠿⠿⠃⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢀⣤⣤⣤⣤⣤⣤⣴⣿⣿⣿⡇⢸⣿⡿⣿⣦⣤⣤⣤⣤⣤⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢸⣿⠋⠉⠉⠉⠉⠉⠉⢸⣿⡇⢸⣿⡇⠈⠉⠉⠉⠉⠉⠙⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⢰⣿⣿⣦⠀⢰⣿⣿⣦⠀⢸⣿⡇⢸⣿⡇⠀⣰⣿⣿⡆⠀⣴⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠈⠻⠿⠋⠀⠘⣿⣿⠃⠀⢸⣿⡇⢸⣿⡇⠀⠘⣿⣿⠃⠀⠙⠿⠟⠁⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣦⣤⣼⣿⠃⠘⣿⣧⣄⣤⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠛⠛⠁⠀⠀⠈⠛⠛⠛⠋⠀⠀⠀
⠀⠀⠀⠀⠀⠀ ⠀O C T O P I I⠀⠀⠀⠀
Copyright © 2023 RedHunt Labs Private Limited
Octopii — это сканер персонально идентифицируемой информации (PII), использующий оптическое распознавание символов (OCR), списки регулярных выражений и обработку естественного языка (NLP) для поиска правительственных удостоверений, адресов, электронных писем и других данных в изображениях, PDF-файлах и документах, находящихся в общедоступных местах.
Утечки PII часто остаются незамеченными в сфере кибербезопасности. В RedHunt Labs мы постоянно ищем новые и инновационные способы создания решений для кибербезопасности, необходимых организациям и сервисам. Мы столкнулись со значительным количеством организаций, у которых серверы настроены неправильно. Это приводит к постоянной утечке PII сотрудников и клиентов, предоставляя злоумышленникам конфиденциальную информацию об их происхождении, идентификационных номерах, контактных данных и местоположении.
Именно поэтому мы создали Octopii — инструмент для демонстрации и обнаружения того, насколько легко автоматизировать поиск и извлечение утекших PII и конфиденциальных документов в Интернете.
pip install -r requirements.txt.sudo apt install tesseract-ocr -y на Ubuntu или sudo pacman -Syu tesseract на Arch Linux.python -m spacy download en_core_web_sm.После установки вышеуказанного всё готово.
Для запуска Octopii введите:
python3 octopii.py <путь для сканирования>
где <путь для сканирования> — это файл или каталог.
Octopii в настоящее время поддерживает локальное сканирование через файловую систему, URL-адреса S3 и открытые каталоги Apache. Вы также можете указать отдельные URL-адреса изображений или файлы в качестве аргумента.
Мы предоставили папку dummy-pii/ с образцами PII для тестирования Octopii. Передайте её в качестве аргумента, и вы получите следующий вывод:
owais@artemis ~ $ python3 octopii.py dummy-pii/
Searching for PII in dummy-pii/dummy-drivers-license-nebraska-us.jpg
{
"file_path": "dummy-pii/dummy-drivers-license-nebraska-us.jpg",
"pii_class": "Nebraska Driver's License",
"country_of_origin": "United States",
"faces": 1,
"identifiers": [],
"emails": [],
"phone_numbers": [
"4000002170"
],
"addresses": [
"Nebraska"
]
}
Searching for PII in dummy-pii/dummy-PAN-India.jpg
{
"file_path": "dummy-pii/dummy-PAN-India.jpg",
"pii_class": "Permanent Account Number",
"country_of_origin": "India",
"faces": 0,
"identifiers": [],
"emails": [],
"phone_numbers": [],
"addresses": [
"INDIA"
]
}
...
Создаётся файл output.txt, содержащий вывод инструмента. Этот файл последовательно дополняется в реальном времени.
Octopii использует Tesseract для оптического распознавания символов (OCR) и NLTK для обработки естественного языка (NLP) с целью обнаружения строк персонально идентифицируемой информации. Это осуществляется с помощью следующих шагов:
Octopii сканирует изображения (jpg и png) и документы (pdf, doc, txt и т.д.). Он поддерживает 3 источника:
Изображения обнаруживаются с помощью Python Imaging Library (PIL) и открываются с помощью OpenCV. PDF-файлы преобразуются в список изображений и сканируются с помощью OCR. Текстовые файлы считываются в строки и сканируются без OCR.
Для обнаружения лиц на изображениях используется метод бинарной классификации — «каскад Хаара». В этом репозитории предоставлена предварительно обученная модель каскада, содержащая данные каскада для использования в OpenCV. На одном изображении PII можно обнаружить несколько лиц, и возвращается количество обнаруженных лиц.
Затем изображения «очищаются» для извлечения текста с помощью следующих шагов преобразования:

Поскольку эти шаги удаляют данные изображения (включая цвета на фотографиях), этот процесс очистки изображения выполняется после попытки обнаружения лиц.
Tesseract используется для извлечения всех текстовых строк из изображения/файла. Затем они токенизируются в список строк, разделённых символами новой строки ('\n') и пробелами (' '). Искажённый текст, такой как строки null и одиночные символы, удаляется из этого списка, что приводит к «понятному» списку потенциальных слов.
Этот список слов затем подаётся в функцию проверки сходства. Эта функция использует сопоставление шаблонов Гештальта для сравнения каждого слова, извлечённого из документа PII, со списком ключевых слов, присутствующих в файле definitions.json. Эта проверка выполняется один раз после каждой очистки. Подсчитывается количество вхождений слов из списка ключевых слов, и на основе этого вычисляется оценка достоверности. Когда ключевые слова определённого определения многократно появляются в этих сканированиях, это определение получает наивысшую оценку и выбирается в качестве прогнозируемого класса PII.
Octopii также проверяет чувствительные подстроки PII, такие как адреса электронной почты, номера телефонов и распространённые уникальные идентификаторы государственных удостоверений, с помощью регулярных выражений. Он также может извлекать данные геолокации, такие как адреса и страны, с помощью обработки естественного языка.
Вывод состоит из следующих полей:
file_path: путь к файлу, содержащему PIIpii_class: тип PII, содержащийся в этом файлеcountry_of_origin: происхождение этой PIIidentifiers: уникальные идентификаторы, коды или номера, которые могут быть использованы для идентификации лица, указанного в PIIemails и phone_numbers: контактная информация в файлеaddresses: любые данные геолокации в PII. Они могут быть использованы для определения местоположения человекаНажмите здесь, чтобы узнать, как вы можете внести вклад в Octopii.
...и многие другие
Этот инструмент предназначен только для исследовательских и образовательных целей. RedHunt Labs и другие участники этого проекта не несут ответственности за злонамеренное использование этого инструмента.
Copyright © 2023 RedHunt Labs Private Limited.
Автор: Owais Shaikh