txt2stix 1.0.14__tar.gz → 1.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {txt2stix-1.0.14 → txt2stix-1.1.0}/PKG-INFO +2 -1
- {txt2stix-1.0.14 → txt2stix-1.1.0}/docs/stix-mapping.md +39 -252
- {txt2stix-1.0.14 → txt2stix-1.1.0}/pyproject.toml +2 -1
- txt2stix-1.1.0/tests/data/manually_generated_reports/bad_vulmatch_lookups.txt +2 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/manual-tests/cases-standard-tests.md +21 -1
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/src/test_bundler.py +26 -11
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/src/test_indicator.py +43 -46
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/src/test_retriever.py +1 -1
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/bundler.py +21 -35
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/indicator.py +80 -90
- txt2stix-1.1.0/txt2stix/retriever.py +165 -0
- txt2stix-1.0.14/txt2stix/retriever.py +0 -136
- {txt2stix-1.0.14 → txt2stix-1.1.0}/.env.example +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/.env.markdown +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/.github/workflows/create-release.yml +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/.github/workflows/run-tests.yml +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/.gitignore +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/LICENSE +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/README.md +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/docs/README.md +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/docs/txt2stix.png +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/__init__.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/extractions/ai/config.yaml +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/extractions/lookup/config.yaml +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/extractions/pattern/config.yaml +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/helpers/mimetype_filename_extension_list.csv +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/helpers/stix_relationship_types.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/helpers/tlds.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/helpers/windows_registry_key_prefix.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/lookups/_README.md +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/lookups/_generate_lookups.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/lookups/attack_pattern.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/lookups/campaign.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/lookups/country_iso3166_alpha2.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/lookups/course_of_action.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/lookups/disarm_id_v1_5.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/lookups/disarm_name_v1_5.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/lookups/extensions.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/lookups/identity.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/lookups/infrastructure.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/lookups/intrusion_set.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/lookups/malware.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/lookups/mitre_atlas_id_v4_5_2.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/lookups/mitre_atlas_name_v4_5_2.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/lookups/mitre_attack_enterprise_aliases_v16_0.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/lookups/mitre_attack_enterprise_id_v16_0.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/lookups/mitre_attack_enterprise_name_v16_0.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/lookups/mitre_attack_ics_aliases_v16_0.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/lookups/mitre_attack_ics_id_v16_0.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/lookups/mitre_attack_ics_name_v16_0.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/lookups/mitre_attack_mobile_aliases_v16_0.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/lookups/mitre_attack_mobile_id_v16_0.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/lookups/mitre_attack_mobile_name_v16_0.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/lookups/mitre_capec_id_v3_9.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/lookups/mitre_capec_name_v3_9.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/lookups/mitre_cwe_id_v4_15.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/lookups/mitre_cwe_name_v4_15.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/lookups/threat_actor.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/lookups/tld.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/lookups/tool.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/includes/tests/test_cases.yaml +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/requirements.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/README.md +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/ai_country.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/ai_mitre_attack_enterprise.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/ai_mitre_attack_ics.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/ai_mitre_attack_mobile.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/ai_mitre_capec.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/ai_mitre_cwe.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/all_cases.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_autonomous_system_number.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_bank_card_all.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_bank_card_amex.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_bank_card_diners.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_bank_card_discover.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_bank_card_jcb.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_bank_card_mastercard.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_bank_card_union_pay.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_bank_card_visa.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_country_alpha2.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_cpe_uri.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_cryptocurrency_btc_transaction.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_cryptocurrency_btc_wallet.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_cryptocurrency_eth_transaction.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_cryptocurrency_eth_wallet.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_cryptocurrency_xmr_transaction.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_cryptocurrency_xmr_wallet.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_cve_id.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_directory_unix.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_directory_unix_file.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_directory_windows.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_directory_windows_with_file.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_disarm.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_disarm_name.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_domain_name_only.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_domain_name_subdomain.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_email_address.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_file_hash_md5.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_file_hash_sha_1.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_file_hash_sha_224.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_file_hash_sha_256.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_file_hash_sha_384.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_file_hash_sha_512.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_file_name.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_host_name.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_host_name_file.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_host_name_path.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_host_name_subdomain.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_host_name_url.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_iban_number.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_ipv4_address_cidr.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_ipv4_address_only.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_ipv4_address_port.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_ipv6_address_cidr.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_ipv6_address_only.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_ipv6_address_port.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_mac_address.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_mitre_atlas.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_mitre_atlas_name.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_mitre_attack_enterprise.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_mitre_attack_enterprise_aliases.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_mitre_attack_enterprise_name.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_mitre_attack_ics.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_mitre_attack_ics_aliases.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_mitre_attack_ics_name.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_mitre_attack_mobile.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_mitre_attack_mobile_aliases.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_mitre_attack_mobile_name.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_mitre_capec.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_mitre_capec_name.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_mitre_cwe.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_mitre_cwe_name.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_phone_number.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_url.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_url_file.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_url_path.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_user_agent.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/generic_windows_registry_key.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/lookup_attack_pattern.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/lookup_campaign.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/lookup_course_of_action.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/lookup_identity.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/lookup_infrastructure.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/lookup_intrusion_set.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/lookup_malware.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/lookup_threat_actor.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/extraction_types/lookup_tool.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/manually_generated_reports/ai_index_position.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/manually_generated_reports/attack_flow_demo.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/manually_generated_reports/attack_navigator_demo.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/manually_generated_reports/basic_relationship.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/manually_generated_reports/char_length_too_long.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/manually_generated_reports/descriptive_for_ai_relationships_1.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/manually_generated_reports/disarm_demo.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/manually_generated_reports/embedded_img_ignore.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/manually_generated_reports/embedded_link_ignore.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/manually_generated_reports/ip1.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/manually_generated_reports/ip2.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/manually_generated_reports/known_whitelist_match.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/manually_generated_reports/mitre_attack_enterprise_ai_demo.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/manually_generated_reports/mitre_attack_enterprise_lookup_demo.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/manually_generated_reports/mixed_extractions.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/manually_generated_reports/not_security_content.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/manually_generated_reports/test_ai_hash_error_with_stix2_lib.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/manually_generated_reports/test_aliases.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/manually_generated_reports/test_extraction_boundary.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/manually_generated_reports/test_extraction_escapes.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/real_intel_reports/APT28-Center-of-Storm-2017.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/real_intel_reports/Bitdefender-Labs-Report-X-creat6958-en-EN.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/real_intel_reports/FireEyeAPT39.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/real_intel_reports/France_CERT_APT31_Pakdoor_TLPWHITE.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/real_intel_reports/Group-IB_Ransomware_Uncovered_whitepaper_eng.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/real_intel_reports/JOINT_CSA_HUNTING_RU_INTEL_SNAKE_MALWARE_20230509.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/real_intel_reports/TA22-0126-QAKBOT-analysis-TLP-GREEN.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/real_intel_reports/dinners_card.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/real_intel_reports/mandiant-apt1.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/data/real_intel_reports/mykings_report_final.txt +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/manual-tests/cases-ai-relationships.md +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/manual-tests/cases-extraction-type-ai.md +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/manual-tests/cases-extraction-type-lookup.md +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/manual-tests/cases-extraction-type-pattern.md +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/scripts/generate_simple_extraction_test_cases_txt_files.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/src/__init__.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/src/test_attack_flow.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/src/test_extractors.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/src/test_lookups.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/src/test_main.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/src/test_run_txt2stix.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/src/test_utils.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/tests/src/utils.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/__init__.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/ai_extractor/__init__.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/ai_extractor/anthropic.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/ai_extractor/base.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/ai_extractor/deepseek.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/ai_extractor/gemini.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/ai_extractor/openai.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/ai_extractor/openrouter.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/ai_extractor/prompts.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/ai_extractor/utils.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/attack_flow.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/common.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/credential_checker.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/extractions.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/lookups.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/__init__.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/__init__.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/base_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/card/README.md +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/card/__init__.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/card/amex_card_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/card/diners_card_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/card/discover_card_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/card/jcb_card_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/card/master_card_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/card/union_card_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/card/visa_card_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/crypto/__init__.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/crypto/btc_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/directory/__init__.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/directory/unix_directory_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/directory/unix_file_path_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/directory/windows_directory_path_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/directory/windows_file_path_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/domain/__init__.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/domain/domain_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/domain/hostname_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/domain/sub_domain_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/hashes/__init__.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/hashes/md5_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/hashes/sha1_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/hashes/sha224_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/hashes/sha2_256_exactor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/hashes/sha2_512_exactor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/hashes/sha3_256_exactor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/hashes/sha3_512_exactor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/helper.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/ip/__init__.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/ip/ipv4_cidr_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/ip/ipv4_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/ip/ipv4_port_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/ip/ipv6_cidr_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/ip/ipv6_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/ip/ipv6_port_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/others/__init__.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/others/asn_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/others/cpe_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/others/cve_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/others/email_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/others/filename_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/others/iban_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/others/mac_address_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/others/phonenumber_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/others/user_agent_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/others/windows_registry_key_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/url/__init__.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/url/url_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/url/url_file_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/pattern/extractors/url/url_path_extractor.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/stix.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/txt2stix.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix/utils.py +0 -0
- {txt2stix-1.0.14 → txt2stix-1.1.0}/txt2stix.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: txt2stix
|
|
3
|
-
Version: 1.0
|
|
3
|
+
Version: 1.1.0
|
|
4
4
|
Summary: txt2stix is a Python script that is designed to identify and extract IoCs and TTPs from text files, identify the relationships between them, convert them to STIX 2.1 objects, and output as a STIX 2.1 bundle.
|
|
5
5
|
Project-URL: Homepage, https://github.com/muchdogesec/txt2stix
|
|
6
6
|
Project-URL: Issues, https://github.com/muchdogesec/txt2stix/issues
|
|
@@ -22,6 +22,7 @@ Requires-Dist: phonenumbers>=8.13.39
|
|
|
22
22
|
Requires-Dist: python-dotenv>=1.0.1
|
|
23
23
|
Requires-Dist: requests>=2.32.4
|
|
24
24
|
Requires-Dist: schwifty>=2024.6.1
|
|
25
|
+
Requires-Dist: stix2-validator
|
|
25
26
|
Requires-Dist: stix2extensions
|
|
26
27
|
Requires-Dist: tld>=0.13
|
|
27
28
|
Requires-Dist: tldextract>=5.1.2
|
|
@@ -65,7 +65,7 @@ All files uploaded are represented as a unique [STIX Report SDO](https://docs.oa
|
|
|
65
65
|
"external_id": "<UUID OF REPORT OBJECT>"
|
|
66
66
|
},
|
|
67
67
|
{
|
|
68
|
-
"source_name": "
|
|
68
|
+
"source_name": "txt2stix_report_md5",
|
|
69
69
|
"external_id": "<MD5 HASH OF DESCRIPTION FIELD>"
|
|
70
70
|
}
|
|
71
71
|
],
|
|
@@ -93,12 +93,7 @@ Objects always created:
|
|
|
93
93
|
|
|
94
94
|
* `indicator`
|
|
95
95
|
* `ipv4-addr`
|
|
96
|
-
* `relationship` (`
|
|
97
|
-
|
|
98
|
-
Relationship mode object generation behaviour:
|
|
99
|
-
|
|
100
|
-
* Standard relationship SRO: `indicator` `extracted-from` `report`
|
|
101
|
-
* AI mode relationship SROs: ipv4-addr is connected as `source_ref` or `target_ref` to 0 or more objects based on AI analysis
|
|
96
|
+
* `relationship` (`indicator` -> `ipv4-addr`)
|
|
102
97
|
|
|
103
98
|
```json
|
|
104
99
|
{
|
|
@@ -147,14 +142,9 @@ Objects always created:
|
|
|
147
142
|
|
|
148
143
|
* `indicator`
|
|
149
144
|
* `ipv4-addr`
|
|
150
|
-
* `relationship` (`
|
|
145
|
+
* `relationship` (`indicator` -> `ipv4-addr`)
|
|
151
146
|
* `network-traffic`
|
|
152
147
|
|
|
153
|
-
Relationship mode object generation behaviour:
|
|
154
|
-
|
|
155
|
-
* Standard relationship SRO: `indicator` `extracted-from` `report`
|
|
156
|
-
* AI mode relationship SROs: ipv4-addr is connected as `source_ref` or `target_ref` to 0 or more objects based on AI analysis
|
|
157
|
-
|
|
158
148
|
```json
|
|
159
149
|
{
|
|
160
150
|
"type": "indicator",
|
|
@@ -219,12 +209,7 @@ Objects always created:
|
|
|
219
209
|
|
|
220
210
|
* `indicator`
|
|
221
211
|
* `ipv6-addr`
|
|
222
|
-
* `relationship` (`
|
|
223
|
-
|
|
224
|
-
Relationship mode object generation behaviour:
|
|
225
|
-
|
|
226
|
-
* Standard relationship SRO: `indicator` `extracted-from` `report`
|
|
227
|
-
* AI mode relationship SROs: ipv6-addr is connected as `source_ref` or `target_ref` to 0 or more objects based on AI analysis
|
|
212
|
+
* `relationship` (`indicator` -> `ipv6-addr`)
|
|
228
213
|
|
|
229
214
|
```json
|
|
230
215
|
{
|
|
@@ -273,14 +258,9 @@ Objects always created:
|
|
|
273
258
|
|
|
274
259
|
* `indicator`
|
|
275
260
|
* `ipv6-addr`
|
|
276
|
-
* `relationship` (`
|
|
261
|
+
* `relationship` (`indicator` -> `ipv6-addr`)
|
|
277
262
|
* `network-traffic`
|
|
278
263
|
|
|
279
|
-
Relationship mode object generation behaviour:
|
|
280
|
-
|
|
281
|
-
* Standard relationship SRO: `indicator` `extracted-from` `report`
|
|
282
|
-
* AI mode relationship SROs: ipv6-addr is connected as `source_ref` or `target_ref` to 0 or more objects based on AI analysis
|
|
283
|
-
|
|
284
264
|
```json
|
|
285
265
|
{
|
|
286
266
|
"type": "indicator",
|
|
@@ -341,12 +321,7 @@ Objects always created:
|
|
|
341
321
|
|
|
342
322
|
* `indicator`
|
|
343
323
|
* `domain-name`
|
|
344
|
-
* `relationship` (`
|
|
345
|
-
|
|
346
|
-
Relationship mode object generation behaviour:
|
|
347
|
-
|
|
348
|
-
* Standard relationship SRO: `indicator` `extracted-from` `report`
|
|
349
|
-
* AI mode relationship SROs: domain-name is connected as `source_ref` or `target_ref` to 0 or more objects based on AI analysis
|
|
324
|
+
* `relationship` (`indicator` -> `domain-name`)
|
|
350
325
|
|
|
351
326
|
```json
|
|
352
327
|
{
|
|
@@ -395,12 +370,7 @@ Objects always created:
|
|
|
395
370
|
|
|
396
371
|
* `indicator`
|
|
397
372
|
* `url`
|
|
398
|
-
* `relationship` (`
|
|
399
|
-
|
|
400
|
-
Relationship mode object generation behaviour:
|
|
401
|
-
|
|
402
|
-
* Standard relationship SRO: `indicator` `extracted-from` `report`
|
|
403
|
-
* AI mode relationship SROs: url is connected as `source_ref` or `target_ref` to 0 or more objects based on AI analysis
|
|
373
|
+
* `relationship` (`indicator` -> `url`)
|
|
404
374
|
|
|
405
375
|
```json
|
|
406
376
|
{
|
|
@@ -449,12 +419,7 @@ Objects always created:
|
|
|
449
419
|
|
|
450
420
|
* `indicator`
|
|
451
421
|
* `file`
|
|
452
|
-
* `relationship` (`
|
|
453
|
-
|
|
454
|
-
Relationship mode object generation behaviour:
|
|
455
|
-
|
|
456
|
-
* Standard relationship SRO: `indicator` `extracted-from` `report`
|
|
457
|
-
* AI mode relationship SROs: file is connected as `source_ref` or `target_ref` to 0 or more objects based on AI analysis
|
|
422
|
+
* `relationship` (`indicator` -> `file`)
|
|
458
423
|
|
|
459
424
|
```json
|
|
460
425
|
{
|
|
@@ -503,12 +468,7 @@ Objects always created:
|
|
|
503
468
|
|
|
504
469
|
* `indicator`
|
|
505
470
|
* `directory`
|
|
506
|
-
* `relationship` (`
|
|
507
|
-
|
|
508
|
-
Relationship mode object generation behaviour:
|
|
509
|
-
|
|
510
|
-
* Standard relationship SRO:`indicator` `extracted-from` `report`
|
|
511
|
-
* AI mode relationship SROs: directory is connected as `source_ref` or `target_ref` to 0 or more objects based on AI analysis
|
|
471
|
+
* `relationship` (`indicator` -> `directory`)
|
|
512
472
|
|
|
513
473
|
```json
|
|
514
474
|
{
|
|
@@ -557,14 +517,9 @@ Objects always created:
|
|
|
557
517
|
|
|
558
518
|
* `indicator`
|
|
559
519
|
* `directory`
|
|
560
|
-
* `relationship` (`
|
|
520
|
+
* `relationship` (`indicator` -> `directory`)
|
|
561
521
|
* `file`
|
|
562
522
|
|
|
563
|
-
Relationship mode object generation behaviour:
|
|
564
|
-
|
|
565
|
-
* Standard relationship SRO: `indicator` `extracted-from` `report`
|
|
566
|
-
* AI mode relationship SROs: directory is connected as `source_ref` or `target_ref` to 0 or more objects based on AI analysis
|
|
567
|
-
|
|
568
523
|
```json
|
|
569
524
|
{
|
|
570
525
|
"type": "indicator",
|
|
@@ -653,12 +608,7 @@ Objects always created:
|
|
|
653
608
|
|
|
654
609
|
* `indicator`
|
|
655
610
|
* `file`
|
|
656
|
-
* `relationship` (`
|
|
657
|
-
|
|
658
|
-
Relationship mode object generation behaviour:
|
|
659
|
-
|
|
660
|
-
* Standard relationship SRO: `indicator` `extracted-from` `report`
|
|
661
|
-
* AI mode relationship SROs: file is connected as `source_ref` or `target_ref` to 0 or more objects based on AI analysis
|
|
611
|
+
* `relationship` (`indicator` -> `file`)
|
|
662
612
|
|
|
663
613
|
```json
|
|
664
614
|
{
|
|
@@ -709,12 +659,7 @@ Objects always created:
|
|
|
709
659
|
|
|
710
660
|
* `indicator`
|
|
711
661
|
* `email-addr`
|
|
712
|
-
* `relationship` (`
|
|
713
|
-
|
|
714
|
-
Relationship mode object generation behaviour:
|
|
715
|
-
|
|
716
|
-
* Standard relationship SRO: `indicator` `extracted-from` `report`
|
|
717
|
-
* AI mode relationship SROs: email-addr is connected as `source_ref` or `target_ref` to 0 or more objects based on AI analysis
|
|
662
|
+
* `relationship` (`indicator` -> `email-addr`)
|
|
718
663
|
|
|
719
664
|
```json
|
|
720
665
|
{
|
|
@@ -763,12 +708,7 @@ Objects always created:
|
|
|
763
708
|
|
|
764
709
|
* `indicator`
|
|
765
710
|
* `mac-addr`
|
|
766
|
-
* `relationship` (`
|
|
767
|
-
|
|
768
|
-
Relationship mode object generation behaviour:
|
|
769
|
-
|
|
770
|
-
* Standard relationship SRO: `indicator` `extracted-from` `report`
|
|
771
|
-
* AI mode relationship SROs: mac-addr is connected as `source_ref` or `target_ref` to 0 or more objects based on AI analysis
|
|
711
|
+
* `relationship` (`indicator` -> `mac-addr`)
|
|
772
712
|
|
|
773
713
|
```json
|
|
774
714
|
{
|
|
@@ -817,12 +757,7 @@ Objects always created:
|
|
|
817
757
|
|
|
818
758
|
* `indicator`
|
|
819
759
|
* `windows-registry-key`
|
|
820
|
-
* `relationship` (`windows-registry-key`
|
|
821
|
-
|
|
822
|
-
Relationship mode object generation behaviour:
|
|
823
|
-
|
|
824
|
-
* Standard relationship SRO: `indicator` `extracted-from` `report`
|
|
825
|
-
* AI mode relationship SROs: windows-registry-key is connected as `source_ref` or `target_ref` to 0 or more objects based on AI analysis
|
|
760
|
+
* `relationship` (`indicator` -> `windows-registry-key`)
|
|
826
761
|
|
|
827
762
|
```json
|
|
828
763
|
{
|
|
@@ -871,12 +806,7 @@ Objects always created:
|
|
|
871
806
|
|
|
872
807
|
* `indicator`
|
|
873
808
|
* `autonomous-system`
|
|
874
|
-
* `relationship` (`
|
|
875
|
-
|
|
876
|
-
Relationship mode object generation behaviour:
|
|
877
|
-
|
|
878
|
-
* Standard relationship SRO: `indicator` `extracted-from` `report`
|
|
879
|
-
* AI mode relationship SROs: autonomous-system is connected as `source_ref` or `target_ref` to 0 or more objects based on AI analysis
|
|
809
|
+
* `relationship` (`indicator` -> `autonomous-system`)
|
|
880
810
|
|
|
881
811
|
```json
|
|
882
812
|
{
|
|
@@ -925,14 +855,9 @@ Objects always created:
|
|
|
925
855
|
|
|
926
856
|
* `indicator`
|
|
927
857
|
* `user-agent`
|
|
928
|
-
* `relationship` (`
|
|
858
|
+
* `relationship` (`indicator` -> `user-agent`)
|
|
929
859
|
* `extensions-definition`: https://raw.githubusercontent.com/muchdogesec/stix2extensions/main/extension-definitions/scos/user-agent.json
|
|
930
860
|
|
|
931
|
-
Relationship mode object generation behaviour:
|
|
932
|
-
|
|
933
|
-
* Standard relationship SRO: `indicator` `extracted-from` `report`
|
|
934
|
-
* AI mode relationship SROs: user-agent is connected as `source_ref` or `target_ref` to 0 or more objects based on AI analysis
|
|
935
|
-
|
|
936
861
|
```json
|
|
937
862
|
{
|
|
938
863
|
"type": "indicator",
|
|
@@ -985,14 +910,9 @@ Objects always created:
|
|
|
985
910
|
|
|
986
911
|
* `indicator`
|
|
987
912
|
* `cryptocurrency-wallet`
|
|
988
|
-
* `relationship` (`
|
|
913
|
+
* `relationship` (`indicator` -> `cryptocurrency-wallet`)
|
|
989
914
|
* `extensions-definition`: https://raw.githubusercontent.com/muchdogesec/stix2extensions/main/extension-definitions/scos/cryptocurrency-wallet.json
|
|
990
915
|
|
|
991
|
-
Relationship mode object generation behaviour:
|
|
992
|
-
|
|
993
|
-
* Standard relationship SRO: `indicator` `extracted-from` `report`
|
|
994
|
-
* AI mode relationship SROs: cryptocurrency-wallet is connected as `source_ref` or `target_ref` to 0 or more objects based on AI analysis
|
|
995
|
-
|
|
996
916
|
```json
|
|
997
917
|
{
|
|
998
918
|
"type": "indicator",
|
|
@@ -1041,16 +961,11 @@ Objects always created:
|
|
|
1041
961
|
|
|
1042
962
|
* `indicator`
|
|
1043
963
|
* `cryptocurrency-wallet`
|
|
1044
|
-
* `relationship` (`
|
|
964
|
+
* `relationship` (`indicator` -> `cryptocurrency-wallet`)
|
|
1045
965
|
* `cryptocurrency-transaction` for all crypto transactions that exist related to the wallet (is not always generated if lookup unsuccessful)
|
|
1046
966
|
* `extensions-definition`: https://raw.githubusercontent.com/muchdogesec/stix2extensions/main/extension-definitions/scos/cryptocurrency-wallet.json
|
|
1047
967
|
* `extensions-definition`: https://raw.githubusercontent.com/muchdogesec/stix2extensions/main/extension-definitions/scos/cryptocurrency-transaction.json
|
|
1048
968
|
|
|
1049
|
-
Relationship mode object generation behaviour:
|
|
1050
|
-
|
|
1051
|
-
* Standard relationship SRO: `indicator` `extracted-from` `report`
|
|
1052
|
-
* AI mode relationship SROs: cryptocurrency-wallet is connected as `source_ref` or `target_ref` to 0 or more objects based on AI analysis
|
|
1053
|
-
|
|
1054
969
|
```json
|
|
1055
970
|
{
|
|
1056
971
|
"type": "indicator",
|
|
@@ -1099,16 +1014,11 @@ Objects always created:
|
|
|
1099
1014
|
|
|
1100
1015
|
* `indicator`
|
|
1101
1016
|
* `cryptocurrency-transaction`
|
|
1102
|
-
* `relationship` (`
|
|
1017
|
+
* `relationship` (`indicator` -> `cryptocurrency-transaction`)
|
|
1103
1018
|
* `cryptocurrency-wallet` for wallets seen in transaction identified by crypto2stix (is not always generated if lookup unsuccessful)
|
|
1104
1019
|
* `extensions-definition`: https://raw.githubusercontent.com/muchdogesec/stix2extensions/main/extension-definitions/scos/cryptocurrency-transaction.json
|
|
1105
1020
|
* `extensions-definition`: https://raw.githubusercontent.com/muchdogesec/stix2extensions/main/extension-definitions/scos/cryptocurrency-wallet.json
|
|
1106
1021
|
|
|
1107
|
-
Relationship mode object generation behaviour:
|
|
1108
|
-
|
|
1109
|
-
* Standard relationship SRO: `indicator` `extracted-from` `report`
|
|
1110
|
-
* AI mode relationship SROs: cryptocurrency-transaction is connected as `source_ref` or `target_ref` to 0 or more objects based on AI analysis
|
|
1111
|
-
|
|
1112
1022
|
```json
|
|
1113
1023
|
{
|
|
1114
1024
|
"type": "indicator",
|
|
@@ -1172,16 +1082,11 @@ This will also generate all `cryptocurrency-wallets` seen in the transaction.
|
|
|
1172
1082
|
Objects always created:
|
|
1173
1083
|
|
|
1174
1084
|
* `indicator`
|
|
1175
|
-
* `bank-card`
|
|
1176
|
-
* `relationship` (`
|
|
1085
|
+
* `bank-card`
|
|
1086
|
+
* `relationship` (`indicator` -> `bank-card`)
|
|
1177
1087
|
* `identity` (with `relationship` to `bank-card`) generated by creditcard2stix (is not always generated if lookup unsuccessful)
|
|
1178
1088
|
* `extension-definition`: https://raw.githubusercontent.com/muchdogesec/stix2extensions/main/extension-definitions/scos/bank-card.json
|
|
1179
1089
|
|
|
1180
|
-
Relationship mode object generation behaviour:
|
|
1181
|
-
|
|
1182
|
-
* Standard relationship SRO: `indicator` `extracted-from` `report`
|
|
1183
|
-
* AI mode relationship SROs: bank-card is connected as `source_ref` or `target_ref` to 0 or more objects based on AI analysis
|
|
1184
|
-
|
|
1185
1090
|
```json
|
|
1186
1091
|
{
|
|
1187
1092
|
"type": "indicator",
|
|
@@ -1222,14 +1127,9 @@ Objects always created:
|
|
|
1222
1127
|
|
|
1223
1128
|
* `indicator`
|
|
1224
1129
|
* `bank-account`
|
|
1225
|
-
* `relationship` (`
|
|
1130
|
+
* `relationship` (`indicator` -> `bank-card`)
|
|
1226
1131
|
* `extension-definition`: https://raw.githubusercontent.com/muchdogesec/stix2extensions/main/extension-definitions/scos/bank-account.json
|
|
1227
1132
|
|
|
1228
|
-
Relationship mode object generation behaviour:
|
|
1229
|
-
|
|
1230
|
-
* Standard relationship SRO: `indicator` `extracted-from` `report`
|
|
1231
|
-
* AI mode relationship SROs: bank-card is connected as `source_ref` or `target_ref` to 0 or more objects based on AI analysis
|
|
1232
|
-
|
|
1233
1133
|
```json
|
|
1234
1134
|
{
|
|
1235
1135
|
"type": "indicator",
|
|
@@ -1287,14 +1187,9 @@ Objects always created:
|
|
|
1287
1187
|
|
|
1288
1188
|
* `indicator`
|
|
1289
1189
|
* `phone-number`
|
|
1290
|
-
* `relationship` (`
|
|
1190
|
+
* `relationship` (`indicator` -> `phone-number`)
|
|
1291
1191
|
* `extension-definition`: https://raw.githubusercontent.com/muchdogesec/stix2extensions/main/extension-definitions/scos/phone-number.json
|
|
1292
1192
|
|
|
1293
|
-
Relationship mode object generation behaviour:
|
|
1294
|
-
|
|
1295
|
-
* Standard relationship SRO: `indicator` `extracted-from` `report`
|
|
1296
|
-
* AI mode relationship SROs: phone-number is connected as `source_ref` or `target_ref` to 0 or more objects based on AI analysis
|
|
1297
|
-
|
|
1298
1193
|
```json
|
|
1299
1194
|
{
|
|
1300
1195
|
"type": "indicator",
|
|
@@ -1352,11 +1247,6 @@ Objects created:
|
|
|
1352
1247
|
|
|
1353
1248
|
* `attack-pattern`
|
|
1354
1249
|
|
|
1355
|
-
Relationship mode object generation behaviour:
|
|
1356
|
-
|
|
1357
|
-
* Standard relationship SRO: `attack-pattern` `extracted-from` `report`
|
|
1358
|
-
* AI mode relationship SROs: attack-pattern is connected as `source_ref` or `target_ref` to 0 or more objects based on AI analysis
|
|
1359
|
-
|
|
1360
1250
|
```json
|
|
1361
1251
|
{
|
|
1362
1252
|
"type": "attack-pattern",
|
|
@@ -1389,11 +1279,6 @@ Objects created:
|
|
|
1389
1279
|
|
|
1390
1280
|
* `campaign`
|
|
1391
1281
|
|
|
1392
|
-
Relationship mode object generation behaviour:
|
|
1393
|
-
|
|
1394
|
-
* Standard relationship SRO: `campaign` `extracted-from` `report`
|
|
1395
|
-
* AI mode relationship SROs: campaign is connected as `source_ref` or `target_ref` to 0 or more objects based on AI analysis
|
|
1396
|
-
|
|
1397
1282
|
```json
|
|
1398
1283
|
{
|
|
1399
1284
|
"type": "campaign",
|
|
@@ -1426,11 +1311,6 @@ Objects created:
|
|
|
1426
1311
|
|
|
1427
1312
|
* `course-of-action`
|
|
1428
1313
|
|
|
1429
|
-
Relationship mode object generation behaviour:
|
|
1430
|
-
|
|
1431
|
-
* Standard relationship SRO: `course-of-action` `extracted-from` `report`
|
|
1432
|
-
* AI mode relationship SROs: course-of-action is connected as `source_ref` or `target_ref` to 0 or more objects based on AI analysis
|
|
1433
|
-
|
|
1434
1314
|
```json
|
|
1435
1315
|
{
|
|
1436
1316
|
"type": "course-of-action",
|
|
@@ -1463,11 +1343,6 @@ Objects created:
|
|
|
1463
1343
|
|
|
1464
1344
|
* `infrastructure`
|
|
1465
1345
|
|
|
1466
|
-
Relationship mode object generation behaviour:
|
|
1467
|
-
|
|
1468
|
-
* Standard relationship SRO: `infrastructure` `extracted-from` `report`
|
|
1469
|
-
* AI mode relationship SROs: infrastructure is connected as `source_ref` or `target_ref` to 0 or more objects based on AI analysis
|
|
1470
|
-
|
|
1471
1346
|
```json
|
|
1472
1347
|
{
|
|
1473
1348
|
"type":"infrastructure",
|
|
@@ -1501,11 +1376,6 @@ Objects created:
|
|
|
1501
1376
|
|
|
1502
1377
|
* `intrusion-set`
|
|
1503
1378
|
|
|
1504
|
-
Relationship mode object generation behaviour:
|
|
1505
|
-
|
|
1506
|
-
* Standard relationship SRO: `intrusion-set` `extracted-from` `report`
|
|
1507
|
-
* AI mode relationship SROs: intrusion-set is connected as `source_ref` or `target_ref` to 0 or more objects based on AI analysis
|
|
1508
|
-
|
|
1509
1379
|
```json
|
|
1510
1380
|
{
|
|
1511
1381
|
"type": "intrusion-set",
|
|
@@ -1538,11 +1408,6 @@ Objects created:
|
|
|
1538
1408
|
|
|
1539
1409
|
* `malware`
|
|
1540
1410
|
|
|
1541
|
-
Relationship mode object generation behaviour:
|
|
1542
|
-
|
|
1543
|
-
* Standard relationship SRO: `malware` `extracted-from` `report`
|
|
1544
|
-
* AI mode relationship SROs: malware is connected as `source_ref` or `target_ref` to 0 or more objects based on AI analysis
|
|
1545
|
-
|
|
1546
1411
|
```json
|
|
1547
1412
|
{
|
|
1548
1413
|
"type": "malware",
|
|
@@ -1577,11 +1442,6 @@ Objects created:
|
|
|
1577
1442
|
|
|
1578
1443
|
* `threat-actor`
|
|
1579
1444
|
|
|
1580
|
-
Relationship mode object generation behaviour:
|
|
1581
|
-
|
|
1582
|
-
* Standard relationship SRO: `threat-actor` `extracted-from` `report`
|
|
1583
|
-
* AI mode relationship SROs: threat-actor is connected as `source_ref` or `target_ref` to 0 or more objects based on AI analysis
|
|
1584
|
-
|
|
1585
1445
|
```json
|
|
1586
1446
|
{
|
|
1587
1447
|
"type": "threat-actor",
|
|
@@ -1615,11 +1475,6 @@ Objects created:
|
|
|
1615
1475
|
|
|
1616
1476
|
* `tool`
|
|
1617
1477
|
|
|
1618
|
-
Relationship mode object generation behaviour:
|
|
1619
|
-
|
|
1620
|
-
* Standard relationship SRO: `tool` `extracted-from` `report`
|
|
1621
|
-
* AI mode relationship SROs: tool is connected as `source_ref` or `target_ref` to 0 or more objects based on AI analysis
|
|
1622
|
-
|
|
1623
1478
|
```json
|
|
1624
1479
|
{
|
|
1625
1480
|
"type": "tool",
|
|
@@ -1653,11 +1508,6 @@ Objects created:
|
|
|
1653
1508
|
|
|
1654
1509
|
* `identity`
|
|
1655
1510
|
|
|
1656
|
-
Relationship mode object generation behaviour:
|
|
1657
|
-
|
|
1658
|
-
* Standard relationship SRO: `identity` `extracted-from` `report`
|
|
1659
|
-
* AI mode relationship SROs: identity is connected as `source_ref` or `target_ref` to 0 or more objects based on AI analysis
|
|
1660
|
-
|
|
1661
1511
|
```json
|
|
1662
1512
|
{
|
|
1663
1513
|
"type": "identity",
|
|
@@ -1685,7 +1535,7 @@ Relationship mode object generation behaviour:
|
|
|
1685
1535
|
}
|
|
1686
1536
|
```
|
|
1687
1537
|
|
|
1688
|
-
## STIX Mapping (
|
|
1538
|
+
## STIX Mapping (remotely created objects)
|
|
1689
1539
|
|
|
1690
1540
|
Some objects created for extractions do not need to be generated by txt2stix, they can be looked up from an external databases.
|
|
1691
1541
|
|
|
@@ -1701,10 +1551,7 @@ GET CTIBUTLER_BASE_URL/v1/attack-enterprise/objects/:attack_id/
|
|
|
1701
1551
|
|
|
1702
1552
|
All the objects returned are imported.
|
|
1703
1553
|
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
* Standard relationship SRO: Imported object(s) is (`source_ref`) object connected to Report with type `extracted-from`
|
|
1707
|
-
* AI mode relationship SROs: all imported objects are connected as source or target object (depending on if extraction is source or target)
|
|
1554
|
+
If no objects are returned by an extraction, you will see an error in the logs and data file/
|
|
1708
1555
|
|
|
1709
1556
|
### stix-mapping: `ctibutler-mitre-attack-enterprise-name`
|
|
1710
1557
|
|
|
@@ -1732,10 +1579,7 @@ GET CTIBUTLER_BASE_URL/v1/attack-mobile/objects/:attack_id/
|
|
|
1732
1579
|
|
|
1733
1580
|
All the objects returned are imported.
|
|
1734
1581
|
|
|
1735
|
-
|
|
1736
|
-
|
|
1737
|
-
* Standard relationship SRO: Imported object(s) is (`source_ref`) object connected to Report with type `extracted-from`
|
|
1738
|
-
* AI mode relationship SROs: all imported objects are connected as source or target object (depending on if extraction is source or target)
|
|
1582
|
+
If no objects are returned by an extraction, you will see an error in the logs and data file/
|
|
1739
1583
|
|
|
1740
1584
|
### stix-mapping: `ctibutler-mitre-attack-mobile-name`
|
|
1741
1585
|
|
|
@@ -1765,10 +1609,7 @@ GET CTIBUTLER_BASE_URL/v1/attack-ics/objects/:attack_id/
|
|
|
1765
1609
|
|
|
1766
1610
|
All the objects returned are imported.
|
|
1767
1611
|
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
* Standard relationship SRO: Imported object(s) is (`source_ref`) object connected to Report with type `extracted-from`
|
|
1771
|
-
* AI mode relationship SROs: all imported objects are connected as source or target object (depending on if extraction is source or target)
|
|
1612
|
+
If no objects are returned by an extraction, you will see an error in the logs and data file/
|
|
1772
1613
|
|
|
1773
1614
|
### stix-mapping: `ctibutler-mitre-attack-ics-name`
|
|
1774
1615
|
|
|
@@ -1798,10 +1639,7 @@ GET CTIBUTLER_BASE_URL/v1/capec/objects/:capec_id/
|
|
|
1798
1639
|
|
|
1799
1640
|
All the objects returned are imported.
|
|
1800
1641
|
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
* Standard relationship SRO: Imported object(s) is (`source_ref`) object connected to Report with type `extracted-from`
|
|
1804
|
-
* AI mode relationship SROs: all imported `course-of-action` / `attack-pattern` objects are connected as source or target object (depending on if extraction is source or target)
|
|
1642
|
+
If no objects are returned by an extraction, you will see an error in the logs and data file/
|
|
1805
1643
|
|
|
1806
1644
|
### stix-mapping: `ctibutler-mitre-capec-name`
|
|
1807
1645
|
|
|
@@ -1821,10 +1659,7 @@ GET CTIBUTLER_BASE_URL/v1/cwe/objects/:cwe_id/
|
|
|
1821
1659
|
|
|
1822
1660
|
`CTIBUTLER_APIKEY` in request passed if set.
|
|
1823
1661
|
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
* Standard relationship SRO: Imported `weakness` object is (`source_ref`) object connected to Report
|
|
1827
|
-
* AI mode relationship SROs: all imported objects are connected as source or target object (depending on if extraction is source or target)
|
|
1662
|
+
If no objects are returned by an extraction, you will see an error in the logs and data file/
|
|
1828
1663
|
|
|
1829
1664
|
### stix-mapping: `ctibutler-mitre-cwe-name`
|
|
1830
1665
|
|
|
@@ -1846,10 +1681,7 @@ GET CTIBUTLER_BASE_URL/v1/atlas/objects/:atlas_id/
|
|
|
1846
1681
|
|
|
1847
1682
|
All the objects returned are imported.
|
|
1848
1683
|
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
* Standard relationship SRO: Imported object(s) is (`source_ref`) object connected to Report with type `extracted-from`
|
|
1852
|
-
* AI mode relationship SROs: all imported objects are connected as source or target object (depending on if extraction is source or target)
|
|
1684
|
+
If no objects are returned by an extraction, you will see an error in the logs and data file/
|
|
1853
1685
|
|
|
1854
1686
|
### stix-mapping: `ctibutler-mitre-atlas-name`
|
|
1855
1687
|
|
|
@@ -1871,10 +1703,7 @@ GET CTIBUTLER_BASE_URL/v1/disarm/objects/:disarm_id/
|
|
|
1871
1703
|
|
|
1872
1704
|
All the objects returned are imported.
|
|
1873
1705
|
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
* Standard relationship SRO: Imported object(s) is (`source_ref`) object connected to Report with type `extracted-from`
|
|
1877
|
-
* AI mode relationship SROs: all imported objects are connected as source or target object (depending on if extraction is source or target)
|
|
1706
|
+
If no objects are returned by an extraction, you will see an error in the logs and data file/
|
|
1878
1707
|
|
|
1879
1708
|
### stix-mapping: `ctibutler-mitre-atlas-name`
|
|
1880
1709
|
|
|
@@ -1896,10 +1725,7 @@ GET CTIBUTLER_BASE_URL/v1/location/objects/?alpha2_code=ID
|
|
|
1896
1725
|
|
|
1897
1726
|
All the objects returned are imported.
|
|
1898
1727
|
|
|
1899
|
-
|
|
1900
|
-
|
|
1901
|
-
* Standard relationship SRO: `location` `extracted-from` `report`
|
|
1902
|
-
* AI mode relationship SROs: location is connected as `source_ref` or `target_ref` to 0 or more objects based on AI analysis
|
|
1728
|
+
If no objects are returned by an extraction, you will see an error in the logs and data file/
|
|
1903
1729
|
|
|
1904
1730
|
### stix-mapping: `vulmatch-cve-id`
|
|
1905
1731
|
|
|
@@ -1911,10 +1737,7 @@ GET VULMATCH_BASE_URL/v1/cve/objects/:cve_id/
|
|
|
1911
1737
|
|
|
1912
1738
|
`VULMATCH_APIKEY` in request passed if set.
|
|
1913
1739
|
|
|
1914
|
-
|
|
1915
|
-
|
|
1916
|
-
* Standard relationship SRO: Imported `vulnerability` object is (`source_ref`) object connected to Report
|
|
1917
|
-
* AI mode relationship SROs: all imported objects are connected as source or target object (depending on if extraction is source or target)
|
|
1740
|
+
If no objects are returned by an extraction, you will see an error in the logs and data file/
|
|
1918
1741
|
|
|
1919
1742
|
### stix-mapping: `vulmatch-cpe-id`
|
|
1920
1743
|
|
|
@@ -1926,16 +1749,13 @@ GET VULMATCH_BASE_URL/v1/cpe/objects/:cpe_id/
|
|
|
1926
1749
|
|
|
1927
1750
|
`VULMATCH_APIKEY` in request passed if set.
|
|
1928
1751
|
|
|
1929
|
-
|
|
1930
|
-
|
|
1931
|
-
* Standard relationship SRO: Imported `software` object is (`source_ref`) object connected to Report
|
|
1932
|
-
* AI mode relationship SROs: all imported objects are connected as source or target object (depending on if extraction is source or target)
|
|
1752
|
+
If no objects are returned by an extraction, you will see an error in the logs and data file/
|
|
1933
1753
|
|
|
1934
1754
|
## Relationship objects
|
|
1935
1755
|
|
|
1936
|
-
### Fixed
|
|
1756
|
+
### Fixed Indicator -> SRO relationships for extractions
|
|
1937
1757
|
|
|
1938
|
-
In some extractions, SROs are created to link extractions (
|
|
1758
|
+
In some extractions, SROs are created to link extractions (Indicator -> SCO)
|
|
1939
1759
|
|
|
1940
1760
|
These relationships are modelled as follows;
|
|
1941
1761
|
|
|
@@ -1948,42 +1768,9 @@ These relationships are modelled as follows;
|
|
|
1948
1768
|
"created": "<REPORT CREATED DATE>",
|
|
1949
1769
|
"modified": "<REPORT CREATED DATE>",
|
|
1950
1770
|
"relationship_type": "<DEFINED BY EXTRACTION>",
|
|
1951
|
-
"source_ref": "
|
|
1952
|
-
"target_ref": "
|
|
1953
|
-
"description": "
|
|
1954
|
-
"object_marking_refs": [
|
|
1955
|
-
"marking-definition--<TLP LEVEL SET>"
|
|
1956
|
-
"marking-definition--f92e15d9-6afc-5ae2-bb3e-85a1fd83a3b5"
|
|
1957
|
-
],
|
|
1958
|
-
"external_references": [
|
|
1959
|
-
{
|
|
1960
|
-
"source_name": "txt2stix_report_id",
|
|
1961
|
-
"external_id": "<UUID OF REPORT OBJECT>"
|
|
1962
|
-
},
|
|
1963
|
-
{
|
|
1964
|
-
"source_name": "txt2stix_extraction_type",
|
|
1965
|
-
"external_id": "<EXTRACTION SLUG>_<EXTRACTION_VERSION>"
|
|
1966
|
-
}
|
|
1967
|
-
]
|
|
1968
|
-
}
|
|
1969
|
-
```
|
|
1970
|
-
|
|
1971
|
-
### Relationships generated in `standard` relationship mode
|
|
1972
|
-
|
|
1973
|
-
In standard mode, one SRO is created for each extraction back to the source report object created for the job.
|
|
1974
|
-
|
|
1975
|
-
```json
|
|
1976
|
-
{
|
|
1977
|
-
"type": "relationship",
|
|
1978
|
-
"spec_version": "2.1",
|
|
1979
|
-
"id": "relationship--<GENERATED BY STIX2 LIBRARY>",
|
|
1980
|
-
"created_by_ref": "identity--<DEFAULT/CUSTOM IDENTITY ID>",
|
|
1981
|
-
"created": "<REPORT CREATED DATE>",
|
|
1982
|
-
"modified": "<REPORT CREATED DATE>",
|
|
1983
|
-
"relationship_type": "extracted-from",
|
|
1984
|
-
"source_ref": "<SOURCE OBJECT ID AS DEFINED BY STIX EXTRACTION>",
|
|
1985
|
-
"target_ref": "report--<REPORT OBJECT ID CREATED FOR JOB>",
|
|
1986
|
-
"description": "<SOURCE OBJECT NAME> is found in <REPORT NAME>",
|
|
1771
|
+
"source_ref": "indicator--<ID>",
|
|
1772
|
+
"target_ref": "<SCO ID>",
|
|
1773
|
+
"description": "STIX pattern contains <SCO VALUE>",
|
|
1987
1774
|
"object_marking_refs": [
|
|
1988
1775
|
"marking-definition--<TLP LEVEL SET>"
|
|
1989
1776
|
"marking-definition--f92e15d9-6afc-5ae2-bb3e-85a1fd83a3b5"
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "txt2stix"
|
|
7
|
-
version = "1.0
|
|
7
|
+
version = "1.1.0"
|
|
8
8
|
authors = [{ name = "dogesec" }]
|
|
9
9
|
maintainers = [{ name = "dogesec" }]
|
|
10
10
|
description = "txt2stix is a Python script that is designed to identify and extract IoCs and TTPs from text files, identify the relationships between them, convert them to STIX 2.1 objects, and output as a STIX 2.1 bundle."
|
|
@@ -32,6 +32,7 @@ dependencies = [
|
|
|
32
32
|
'llama-index-llms-openai>=0.4.5',
|
|
33
33
|
'mistune>=3.0.2',
|
|
34
34
|
'beautifulsoup4>=4.12.3',
|
|
35
|
+
'stix2-validator',
|
|
35
36
|
]
|
|
36
37
|
|
|
37
38
|
[tool.hatch.metadata]
|
|
@@ -557,4 +557,24 @@ python3 txt2stix.py \
|
|
|
557
557
|
--use_extractions 'ai_ipv4_address_only' \
|
|
558
558
|
--ai_settings_extractions openai:gpt-4o \
|
|
559
559
|
--report_id 2b3326b4-dfcf-4391-b550-e91652f9ffcd
|
|
560
|
-
```
|
|
560
|
+
```
|
|
561
|
+
|
|
562
|
+
### test vulmatch lookup failure behaviour
|
|
563
|
+
|
|
564
|
+
(should create no objects)
|
|
565
|
+
|
|
566
|
+
|
|
567
|
+
```shell
|
|
568
|
+
python3 txt2stix.py \
|
|
569
|
+
--relationship_mode standard \
|
|
570
|
+
--input_file tests/data/manually_generated_reports/bad_vulmatch_lookups.txt \
|
|
571
|
+
--name 'test vulmatch lookup failure behaviour' \
|
|
572
|
+
--tlp_level clear \
|
|
573
|
+
--confidence 100 \
|
|
574
|
+
--use_extractions pattern_cve_id,pattern_cpe_uri \
|
|
575
|
+
--report_id c0766db1-0748-429b-8e4c-f1a3a9fd1a3a
|
|
576
|
+
```
|
|
577
|
+
|
|
578
|
+
|
|
579
|
+
|
|
580
|
+
|