iriusrisk / startleft

StartLeft is an automation tool for generating Threat Models written in the Open Threat Model (OTM) format from a variety of different sources such as IaC files, diagrams or projects exported from Threat Modelling tools.
https://iriusrisk.github.io/startleft/
Apache License 2.0
47 stars 13 forks source link

Error - ImportError: failed to find libmagic. Check your installation #68

Closed kay07949 closed 1 year ago

kay07949 commented 1 year ago

I get the following error when I attempt to run startleft parse ....

PS C:\Users\ktest\OneDrive - Synergy\Documents\Threat Modelling\IriusRisk\Terraform> startleft parse --iac-type slp_tf --mapping-file default-slp_tf-mapping.yaml --output-file elb.otm --project-name "Terraform ELB" --project-id "terraform-elb" elb.tf > error.txt Traceback (most recent call last): File "C:\Users\ktest\AppData\Local\Programs\Python\Python310\Scripts\startleft-script.py", line 33, in <module> File "C:\Users\ktest\AppData\Local\Programs\Python\Python310\Scripts\startleft-script.py", line 25, in importlib_load_entry_point File "C:\Users\ktest\AppData\Local\Programs\Python\Python310\lib\importlib\metadata\__init__.py", line 171, in load File "C:\Users\ktest\AppData\Local\Programs\Python\Python310\lib\importlib\__init__.py", line 126, in import_module File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "C:\Users\ktest\AppData\Local\Programs\Python\Python310\lib\site-packages\startleft\startleft\cli\cli.py", line 17, in <module> File "C:\Users\ktest\AppData\Local\Programs\Python\Python310\lib\site-packages\_sl_build\secure_importer.py", line 42, in _secure_importer File "<frozen importlib._bootstrap>", line 1129, in __import__ File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 992, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 992, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "C:\Users\ktest\AppData\Local\Programs\Python\Python310\lib\site-packages\slp_cft\__init__.py", line 12, in <module> File "C:\Users\ktest\AppData\Local\Programs\Python\Python310\lib\site-packages\_sl_build\secure_importer.py", line 42, in _secure_importer File "<frozen importlib._bootstrap>", line 1133, in __import__ File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "C:\Users\ktest\AppData\Local\Programs\Python\Python310\lib\site-packages\slp_cft\slp_cft\__init__.py", line 1, in <module> File "C:\Users\ktest\AppData\Local\Programs\Python\Python310\lib\site-packages\_sl_build\secure_importer.py", line 42, in _secure_importer File "<frozen importlib._bootstrap>", line 1133, in __import__ File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "C:\Users\ktest\AppData\Local\Programs\Python\Python310\lib\site-packages\slp_cft\slp_cft\cft_processor.py", line 11, in <module> File "C:\Users\ktest\AppData\Local\Programs\Python\Python310\lib\site-packages\_sl_build\secure_importer.py", line 42, in _secure_importer File "<frozen importlib._bootstrap>", line 1129, in __import__ File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "C:\Users\ktest\AppData\Local\Programs\Python\Python310\lib\site-packages\slp_cft\slp_cft\validate\cft_validator.py", line 3, in <module> File "C:\Users\ktest\AppData\Local\Programs\Python\Python310\lib\site-packages\_sl_build\secure_importer.py", line 42, in _secure_importer File "<frozen importlib._bootstrap>", line 1129, in __import__ File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "C:\Users\ktest\AppData\Local\Programs\Python\Python310\lib\site-packages\magic\__init__.py", line 209, in <module> File "C:\Users\ktest\AppData\Local\Programs\Python\Python310\lib\site-packages\magic\loader.py", line 49, in load_lib ImportError: failed to find libmagic. Check your installation

daFont-iriusrisk commented 1 year ago

Good morning @kay07949 looks like your dependencies were not installed.

Was your installation of Startleft successful?

You have to install using htps://github.com/iriusrisk/startleft/wiki/Setup

Kind regards.

kay07949 commented 1 year ago

Yes, installation was successful

daFont-iriusrisk commented 1 year ago

Please, reinstall and provide output log.

jmgarcia-iriusrisk commented 1 year ago

Hi @kay07949, please try installing the libmagic dependency:

apk --no-cache add lapack libstdc++ libmagic && \
    apk --no-cache add --virtual .builddeps g++ gcc gfortran musl-dev lapack-dev
kay07949 commented 1 year ago

this apk command does not work on my machine

'apk' is not recognized as an internal or external command, operable program or batch file.

btw will this OTM format work in the community editon of IriusRisk? I tried to import it and it did not work...

dfernandezvigo commented 1 year ago

Hey @kay07949 yesterday latest version 1.9.0 of startleft was released with a fix that solves this issue.

jmgarcia-iriusrisk commented 1 year ago

Hi @kay07949, as @dfernandezvigo said, we have uploaded a new version with some minor bug fixes for Windows Users, please update the main branch to fetch the last changes. We also have added a Troubleshooting section for installing the libmagic library on Windows on our fresh new Documentation, the command is: pip install python-magic-bin

Thanks for sharing your installation problem and Happy New Year!!