Skip to content

Commit 1a05ab6

Browse files
author
Samuel Hassine
authored
[client] Implement files upload (global or in entity) (OpenCTI-Platform#50)
* [examples] Change token with new demo token * [client] Implement files upload (global or in entity) (OpenCTI-Platform#50)
1 parent 5fc2eee commit 1a05ab6

39 files changed

+356
-92
lines changed

.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@ logs
88
test.py
99
.idea
1010
*.iml
11-
examples/*.json
11+
examples/*.json
12+
examples/*.pdf

examples/add_external_reference_to_report.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
# Variables
77
api_url = "https://demo.opencti.io"
8-
api_token = "bb4aca90-b98c-49ee-9582-7eac92b61b82"
8+
api_token = "609caced-7610-4c84-80b4-f3a380d1939b"
99

1010
# OpenCTI initialization
1111
opencti_api_client = OpenCTIApiClient(api_url, api_token)

examples/add_organization_to_sector.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
# Variables
88
api_url = "https://demo.opencti.io"
9-
api_token = "bb4aca90-b98c-49ee-9582-7eac92b61b82"
9+
api_token = "609caced-7610-4c84-80b4-f3a380d1939b"
1010

1111
# OpenCTI initialization
1212
opencti_api_client = OpenCTIApiClient(api_url, api_token)

examples/add_tag_to_malware.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
# Variables
77
api_url = "https://demo.opencti.io"
8-
api_token = "bb4aca90-b98c-49ee-9582-7eac92b61b82"
8+
api_token = "609caced-7610-4c84-80b4-f3a380d1939b"
99

1010
# OpenCTI initialization
1111
opencti_api_client = OpenCTIApiClient(api_url, api_token)

examples/add_tool_usage_to_intrusion-set.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
# Variables
99
api_url = "https://demo.opencti.io"
10-
api_token = "bb4aca90-b98c-49ee-9582-7eac92b61b82"
10+
api_token = "609caced-7610-4c84-80b4-f3a380d1939b"
1111

1212
# OpenCTI initialization
1313
opencti_api_client = OpenCTIApiClient(api_url, api_token)

examples/create_campaign_attributed-to_intrusion_set.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
# Variables
77
api_url = "https://demo.opencti.io"
8-
api_token = "bb4aca90-b98c-49ee-9582-7eac92b61b82"
8+
api_token = "609caced-7610-4c84-80b4-f3a380d1939b"
99

1010
# OpenCTI initialization
1111
opencti_api_client = OpenCTIApiClient(api_url, api_token)

examples/create_hashes_and_link_together.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
# Variables
66
api_url = "https://demo.opencti.io"
7-
api_token = "bb4aca90-b98c-49ee-9582-7eac92b61b82"
7+
api_token = "609caced-7610-4c84-80b4-f3a380d1939b"
88

99
# OpenCTI initialization
1010
opencti_api_client = OpenCTIApiClient(api_url, api_token)

examples/create_incident_with_ttps_and_indicators.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
# Variables
99
api_url = "https://demo.opencti.io"
10-
api_token = "bb4aca90-b98c-49ee-9582-7eac92b61b82"
10+
api_token = "609caced-7610-4c84-80b4-f3a380d1939b"
1111

1212
# OpenCTI initialization
1313
opencti_api_client = OpenCTIApiClient(api_url, api_token)
@@ -59,7 +59,7 @@
5959
# Create the observable and indicator and indicates to the relation
6060
# Create the observable
6161
observable_ttp1 = opencti_api_client.stix_observable.create(
62-
type="Email-Address", observable_value="phishing@mail.com"
62+
type="Email-Address", observable_value="phishing@mail.com", createIndicator=True
6363
)
6464
# Get the indicator
6565
indicator_ttp1 = observable_ttp1["indicators"][0]
@@ -110,7 +110,7 @@
110110
# Create the observable and indicator and indicates to the relation
111111
# Create the observable
112112
observable_ttp2 = opencti_api_client.stix_observable.create(
113-
type="Registry-Key", observable_value="Disk security"
113+
type="Registry-Key", observable_value="Disk security", createIndicator=True
114114
)
115115
# Get the indicator
116116
indicator_ttp2 = observable_ttp2["indicators"][0]

examples/create_indicator_of_campaign.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
# Variables
99
api_url = "https://demo.opencti.io"
10-
api_token = "bb4aca90-b98c-49ee-9582-7eac92b61b82"
10+
api_token = "609caced-7610-4c84-80b4-f3a380d1939b"
1111

1212
# OpenCTI initialization
1313
opencti_api_client = OpenCTIApiClient(api_url, api_token)

examples/create_intrusion_set.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
# Variables
77
api_url = "https://demo.opencti.io"
8-
api_token = "bb4aca90-b98c-49ee-9582-7eac92b61b82"
8+
api_token = "609caced-7610-4c84-80b4-f3a380d1939b"
99

1010
# OpenCTI initialization
1111
opencti_api_client = OpenCTIApiClient(api_url, api_token)

examples/create_ip_address_resolves_domain.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
# Variables
66
api_url = "https://demo.opencti.io"
7-
api_token = "bb4aca90-b98c-49ee-9582-7eac92b61b82"
7+
api_token = "609caced-7610-4c84-80b4-f3a380d1939b"
88

99
# OpenCTI initialization
1010
opencti_api_client = OpenCTIApiClient(api_url, api_token)

examples/create_marking_definition.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
# Variables
66
api_url = "https://demo.opencti.io"
7-
api_token = "bb4aca90-b98c-49ee-9582-7eac92b61b82"
7+
api_token = "609caced-7610-4c84-80b4-f3a380d1939b"
88

99
# OpenCTI initialization
1010
opencti_api_client = OpenCTIApiClient(api_url, api_token)

examples/create_report_with_author.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
# Variables
77
api_url = "https://demo.opencti.io"
8-
api_token = "bb4aca90-b98c-49ee-9582-7eac92b61b82"
8+
api_token = "609caced-7610-4c84-80b4-f3a380d1939b"
99

1010
# OpenCTI initialization
1111
opencti_api_client = OpenCTIApiClient(api_url, api_token)

examples/delete_intrusion_set.py

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# coding: utf-8
2+
3+
import json
4+
from pycti import OpenCTIApiClient
5+
6+
# Variables
7+
api_url = "https://demo.opencti.io"
8+
api_token = "609caced-7610-4c84-80b4-f3a380d1939b"
9+
10+
# OpenCTI initialization
11+
opencti_api_client = OpenCTIApiClient(api_url, api_token)
12+
13+
# Get the intrusion set APT28
14+
intrusion_set = opencti_api_client.intrusion_set.read(
15+
filters=[{"key": "name", "values": ["APT28"]}]
16+
)
17+
18+
# Delete the intrusion set
19+
opencti_api_client.stix_domain_entity.delete(id=intrusion_set["id"])

examples/delete_relation.py

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# coding: utf-8
2+
3+
import json
4+
from pycti import OpenCTIApiClient
5+
6+
# Variables
7+
api_url = "https://demo.opencti.io"
8+
api_token = "609caced-7610-4c84-80b4-f3a380d1939b"
9+
10+
# OpenCTI initialization
11+
opencti_api_client = OpenCTIApiClient(api_url, api_token)
12+
13+
# Get the intrusion set APT28
14+
intrusion_set = opencti_api_client.intrusion_set.read(
15+
filters=[{"key": "name", "values": ["APT28"]}]
16+
)
17+
18+
# Get the malware DealersChoice
19+
malware = opencti_api_client.intrusion_set.read(
20+
filters=[{"key": "name", "values": ["DealersChoice"]}]
21+
)
22+
23+
# Get the relations between APT28 and DealersChoice
24+
relations = opencti_api_client.stix_relation.list(
25+
fromId=intrusion_set["id"],
26+
fromTypes=["Intrusion-Set"],
27+
toId=malware["id"],
28+
toTypes=["Malware"],
29+
relationType="uses",
30+
)
31+
32+
# Delete the relations
33+
for relation in relations:
34+
opencti_api_client.stix_relation.delete(id=relation["id"])

examples/export_async_of_indicators.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
# Variables
77
api_url = "https://demo.opencti.io"
8-
api_token = "bb4aca90-b98c-49ee-9582-7eac92b61b82"
8+
api_token = "609caced-7610-4c84-80b4-f3a380d1939b"
99

1010
# OpenCTI initialization
1111
opencti_api_client = OpenCTIApiClient(api_url, api_token)

examples/export_async_of_malware.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
# Variables
77
api_url = "https://demo.opencti.io"
8-
api_token = "bb4aca90-b98c-49ee-9582-7eac92b61b82"
8+
api_token = "609caced-7610-4c84-80b4-f3a380d1939b"
99

1010
# OpenCTI initialization
1111
opencti_api_client = OpenCTIApiClient(api_url, api_token)

examples/export_incident_stix2.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
# Variables
77
api_url = "https://demo.opencti.io"
8-
api_token = "bb4aca90-b98c-49ee-9582-7eac92b61b82"
8+
api_token = "609caced-7610-4c84-80b4-f3a380d1939b"
99

1010
# OpenCTI initialization
1111
opencti_api_client = OpenCTIApiClient(api_url, api_token)

examples/export_incidents_stix2.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
# Variables
77
api_url = "https://demo.opencti.io"
8-
api_token = "bb4aca90-b98c-49ee-9582-7eac92b61b82"
8+
api_token = "609caced-7610-4c84-80b4-f3a380d1939b"
99

1010
# OpenCTI initialization
1111
opencti_api_client = OpenCTIApiClient(api_url, api_token)

examples/export_intrusion_set_stix2.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
# Variables
77
api_url = "https://demo.opencti.io"
8-
api_token = "bb4aca90-b98c-49ee-9582-7eac92b61b82"
8+
api_token = "609caced-7610-4c84-80b4-f3a380d1939b"
99

1010
# OpenCTI initialization
1111
opencti_api_client = OpenCTIApiClient(api_url, api_token)

examples/export_report_stix2.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
# Variables
77
api_url = "https://demo.opencti.io"
8-
api_token = "bb4aca90-b98c-49ee-9582-7eac92b61b82"
8+
api_token = "609caced-7610-4c84-80b4-f3a380d1939b"
99

1010
# OpenCTI initialization
1111
opencti_api_client = OpenCTIApiClient(api_url, api_token)

examples/get_all_indicators.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
# Variables
66
api_url = "https://demo.opencti.io"
7-
api_token = "bb4aca90-b98c-49ee-9582-7eac92b61b82"
7+
api_token = "609caced-7610-4c84-80b4-f3a380d1939b"
88

99
# OpenCTI initialization
1010
opencti_api_client = OpenCTIApiClient(api_url, api_token)

examples/get_attack_pattern_by_mitre_id.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
# Variables
66
api_url = "https://demo.opencti.io"
7-
api_token = "bb4aca90-b98c-49ee-9582-7eac92b61b82"
7+
api_token = "609caced-7610-4c84-80b4-f3a380d1939b"
88

99
# OpenCTI initialization
1010
opencti_api_client = OpenCTIApiClient(api_url, api_token)

examples/get_indicators_of_intrusion_set.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
# Variables
66
api_url = "https://demo.opencti.io"
7-
api_token = "bb4aca90-b98c-49ee-9582-7eac92b61b82"
7+
api_token = "609caced-7610-4c84-80b4-f3a380d1939b"
88

99
# OpenCTI initialization
1010
opencti_api_client = OpenCTIApiClient(api_url, api_token)

examples/get_malwares_of_intrusion_set.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
# Variables
66
api_url = "https://demo.opencti.io"
7-
api_token = "bb4aca90-b98c-49ee-9582-7eac92b61b82"
7+
api_token = "609caced-7610-4c84-80b4-f3a380d1939b"
88

99
# OpenCTI initialization
1010
opencti_api_client = OpenCTIApiClient(api_url, api_token)

examples/get_marking_definitions.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
# Variables
66
api_url = "https://demo.opencti.io"
7-
api_token = "bb4aca90-b98c-49ee-9582-7eac92b61b82"
7+
api_token = "609caced-7610-4c84-80b4-f3a380d1939b"
88

99
# OpenCTI initialization
1010
opencti_api_client = OpenCTIApiClient(api_url, api_token)

examples/get_reports_about_intrusion_set.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
# Variables
66
api_url = "https://demo.opencti.io"
7-
api_token = "bb4aca90-b98c-49ee-9582-7eac92b61b82"
7+
api_token = "609caced-7610-4c84-80b4-f3a380d1939b"
88

99
# OpenCTI initialization
1010
opencti_api_client = OpenCTIApiClient(api_url, api_token)

examples/import_stix2_file.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
# Variables
66
api_url = "https://demo.opencti.io"
7-
api_token = "bb4aca90-b98c-49ee-9582-7eac92b61b82"
7+
api_token = "609caced-7610-4c84-80b4-f3a380d1939b"
88

99
# OpenCTI initialization
1010
opencti_api_client = OpenCTIApiClient(api_url, api_token)

examples/search_attack_pattern.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44

55
# Variables
66
api_url = "https://demo.opencti.io"
7-
api_token = "bb4aca90-b98c-49ee-9582-7eac92b61b82"
7+
api_token = "609caced-7610-4c84-80b4-f3a380d1939b"
88

99
# OpenCTI initialization
1010
opencti_api_client = OpenCTIApiClient(api_url, api_token)
1111

12-
# Searcj
12+
# Search
1313
attack_patterns = opencti_api_client.attack_pattern.list(search="localgroup")
1414

1515
# Print

examples/search_malware.py

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# coding: utf-8
2+
3+
from pycti import OpenCTIApiClient
4+
5+
# Variables
6+
api_url = "https://demo.opencti.io"
7+
api_token = "609caced-7610-4c84-80b4-f3a380d1939b"
8+
9+
# OpenCTI initialization
10+
opencti_api_client = OpenCTIApiClient(api_url, api_token)
11+
12+
# Search
13+
malwares = opencti_api_client.malware.list(search="windows")
14+
15+
# Print
16+
print(malwares)

examples/upload_file.py

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# coding: utf-8
2+
3+
import datetime
4+
from pycti import OpenCTIApiClient
5+
6+
# Variables
7+
api_url = "https://demo.opencti.io"
8+
api_token = "609caced-7610-4c84-80b4-f3a380d1939b"
9+
10+
# OpenCTI initialization
11+
opencti_api_client = OpenCTIApiClient(api_url, api_token)
12+
13+
# Upload the file
14+
file = opencti_api_client.upload_file(file_name="./2005_002_001_14428.pdf",)
15+
print(file)
+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# coding: utf-8
2+
3+
import datetime
4+
from pycti import OpenCTIApiClient
5+
6+
# Variables
7+
api_url = "https://demo.opencti.io"
8+
api_token = "609caced-7610-4c84-80b4-f3a380d1939b"
9+
10+
# OpenCTI initialization
11+
opencti_api_client = OpenCTIApiClient(api_url, api_token)
12+
13+
# Create the Intrusion Set
14+
intrusion_set = opencti_api_client.intrusion_set.create(
15+
name="My new Intrusion Set",
16+
description="Evil Cluster",
17+
first_seen=datetime.date.today().strftime("%Y-%m-%dT%H:%M:%S+00:00"),
18+
last_seen=datetime.date.today().strftime("%Y-%m-%dT%H:%M:%S+00:00"),
19+
update=True,
20+
)
21+
22+
# Print
23+
print(intrusion_set)
24+
25+
# Upload the file
26+
file = opencti_api_client.stix_domain_entity.upload_file(
27+
id=intrusion_set["id"], file_name="./2005_002_001_14428.pdf",
28+
)
29+
print(file)

0 commit comments

Comments
 (0)