Невозможно получить данные из модуля pyattck

я используюpyattckмодуль для получения информации от mitre att&ck.

Версии:

            - pyattck==7.0.0
      - pyattck-data==2.5.2

Затем я просто создал простой файл для тестирования модуля.

      from pyattck import Attck

def main():
    attck = Attck()

    for technique in attck.enterprise.techniques:
        print(technique.name)

if __name__ == '__main__':
    main()

При запускеmain.pyscript я получаю следующее исключение:

      Traceback (most recent call last):
  File "/<path>/main.py", line 15, in <module>
    main()
  File "/<path>/main.py", line 8, in main
    for technique in attck.enterprise.techniques:
  File "/<path_venv>/lib/python3.10/site-packages/pyattck/attck.py", line 253, in enterprise
    from .enterprise import EnterpriseAttck
  File "/<path_venv>/lib/python3.10/site-packages/pyattck/enterprise.py", line 7, in <module>
    class EnterpriseAttck(Base):
  File "/<path_venv>/lib/python3.10/site-packages/pyattck/enterprise.py", line 42, in EnterpriseAttck
    __attck = MitreAttck(**Base.config.get_data("enterprise_attck_json"))
  File "/<path_venv>/lib/python3.10/site-packages/pyattck_data/attack.py", line 55, in __init__
    raise te
  File "/<path_venv>/lib/python3.10/site-packages/pyattck_data/attack.py", line 53, in __init__
    self.__attrs_init__(**kwargs)
  File "<attrs generated init pyattck_data.attack.MitreAttck>", line 14, in __attrs_init__
  File "/<path_venv>/lib/python3.10/site-packages/pyattck_data/attack.py", line 66, in __attrs_post_init__
    raise te
  File "/<path_venv>/lib/python3.10/site-packages/pyattck_data/attack.py", line 62, in __attrs_post_init__
    data = TYPE_MAP.get(item['type'])(**item)
TypeError: 'NoneType' object is not callable

Кто-нибудь знает, где проблема? Может я что-то забыл импортировать? Было бы полезно узнать, действительно ли этот модуль работает в другой версии. Это последний стабильный ATTOW.

ОБНОВЛЕНИЕ В этом проекте есть проблема. Mitre добавил некоторые новые функции, которые не поддерживаются модулем и делают его непригодным для использования.

На github есть проблема , связанная с этим.

1 ответ

Они уже исправили эту проблему в будущих выпусках. Вам просто нужно обновить пакетpyattck-dataсформируйте багованную версию2.5.2к2.6.1(или любой новее).

Если вы используете pip, просто запустите это:

      pip install --upgrade pyattck-data 

Если вы используете conda (внутри вашего venv):

      conda update pyattck-data
Другие вопросы по тегам