@cyvest/cyvest-js 5.4.1 → 6.1.0
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.
- package/README.md +1 -1
- package/dist/index.cjs +558 -196
- package/dist/index.d.cts +181 -107
- package/dist/index.d.ts +181 -107
- package/dist/index.js +539 -179
- package/package.json +4 -4
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
type InvestigationName = string | null;
|
|
5
5
|
/**
|
|
6
|
-
* Security level classification for
|
|
6
|
+
* Security level classification for findings, observables, and threat intelligence.
|
|
7
7
|
*
|
|
8
8
|
* Levels are ordered from lowest (NONE) to highest (MALICIOUS) severity.
|
|
9
9
|
*/
|
|
@@ -22,6 +22,11 @@ type Reason = string | null;
|
|
|
22
22
|
type Tool = string | null;
|
|
23
23
|
type ObjectType = string | null;
|
|
24
24
|
type ObjectKey = string | null;
|
|
25
|
+
type Subtype = string | null;
|
|
26
|
+
type Namespace = string | null;
|
|
27
|
+
type Subtype1 = string | null;
|
|
28
|
+
type Namespace1 = string | null;
|
|
29
|
+
type Aliases = ObservableAlias[];
|
|
25
30
|
type ThreatIntels = string[];
|
|
26
31
|
/**
|
|
27
32
|
* Direction of a relationship between observables.
|
|
@@ -29,16 +34,23 @@ type ThreatIntels = string[];
|
|
|
29
34
|
type RelationshipDirection = "outbound" | "inbound" | "bidirectional";
|
|
30
35
|
type Relationships = Relationship[];
|
|
31
36
|
/**
|
|
32
|
-
*
|
|
37
|
+
* Findings that currently link to this observable (navigation-only).
|
|
33
38
|
*/
|
|
34
|
-
type
|
|
39
|
+
type FindingLinks = string[];
|
|
35
40
|
/**
|
|
36
|
-
* Controls how a
|
|
41
|
+
* Controls how a Finding↔Observable link propagates across merged investigations.
|
|
37
42
|
*/
|
|
38
43
|
type PropagationMode = "LOCAL_ONLY" | "GLOBAL";
|
|
39
44
|
type ObservableLinks = ObservableLink[];
|
|
45
|
+
type EvidenceLinks = EvidenceLink[];
|
|
46
|
+
type ExternalId = string | null;
|
|
47
|
+
type Uri = string | null;
|
|
48
|
+
/**
|
|
49
|
+
* Findings that currently link to this evidence (navigation-only).
|
|
50
|
+
*/
|
|
51
|
+
type FindingLinks1 = string[];
|
|
40
52
|
type Taxonomies = Taxonomy[];
|
|
41
|
-
type
|
|
53
|
+
type Findings1 = string[];
|
|
42
54
|
/**
|
|
43
55
|
* Root observable type used during data extraction.
|
|
44
56
|
*/
|
|
@@ -58,6 +70,7 @@ type ScoreMode = "max" | "sum";
|
|
|
58
70
|
* schemas matching the actual model_dump() output.
|
|
59
71
|
*/
|
|
60
72
|
interface CyvestInvestigation {
|
|
73
|
+
schema_version?: "6.0.0";
|
|
61
74
|
/**
|
|
62
75
|
* Stable investigation identity (ULID).
|
|
63
76
|
*/
|
|
@@ -75,7 +88,8 @@ interface CyvestInvestigation {
|
|
|
75
88
|
whitelists: Whitelists;
|
|
76
89
|
audit_log?: AuditLog;
|
|
77
90
|
observables: Observables;
|
|
78
|
-
|
|
91
|
+
findings: Findings;
|
|
92
|
+
evidences: Evidences;
|
|
79
93
|
threat_intels: ThreatIntels1;
|
|
80
94
|
enrichments: Enrichments;
|
|
81
95
|
tags: Tags;
|
|
@@ -122,11 +136,13 @@ interface Observables {
|
|
|
122
136
|
/**
|
|
123
137
|
* Represents a cyber observable (IP, URL, domain, hash, etc.).
|
|
124
138
|
*
|
|
125
|
-
* Observables can be linked to threat intelligence,
|
|
139
|
+
* Observables can be linked to threat intelligence, findings, and other observables
|
|
126
140
|
* through relationships.
|
|
127
141
|
*/
|
|
128
142
|
interface Observable {
|
|
129
143
|
type: string;
|
|
144
|
+
subtype?: Subtype;
|
|
145
|
+
namespace?: Namespace;
|
|
130
146
|
value: string;
|
|
131
147
|
internal: boolean;
|
|
132
148
|
whitelisted: boolean;
|
|
@@ -134,16 +150,29 @@ interface Observable {
|
|
|
134
150
|
extra: Extra;
|
|
135
151
|
score: number;
|
|
136
152
|
level: Level;
|
|
153
|
+
aliases: Aliases;
|
|
154
|
+
occurrence_count?: number;
|
|
137
155
|
threat_intels: ThreatIntels;
|
|
138
156
|
relationships: Relationships;
|
|
139
157
|
key: string;
|
|
140
|
-
|
|
158
|
+
finding_links: FindingLinks;
|
|
141
159
|
score_display: string;
|
|
142
160
|
[k: string]: unknown;
|
|
143
161
|
}
|
|
144
162
|
interface Extra {
|
|
145
163
|
[k: string]: unknown;
|
|
146
164
|
}
|
|
165
|
+
/**
|
|
166
|
+
* Source observable identity attached to a canonical observable.
|
|
167
|
+
*/
|
|
168
|
+
interface ObservableAlias {
|
|
169
|
+
type: string;
|
|
170
|
+
subtype?: Subtype1;
|
|
171
|
+
namespace?: Namespace1;
|
|
172
|
+
value: string;
|
|
173
|
+
count?: number;
|
|
174
|
+
[k: string]: unknown;
|
|
175
|
+
}
|
|
147
176
|
/**
|
|
148
177
|
* Represents a relationship between observables.
|
|
149
178
|
*/
|
|
@@ -154,19 +183,19 @@ interface Relationship {
|
|
|
154
183
|
[k: string]: unknown;
|
|
155
184
|
}
|
|
156
185
|
/**
|
|
157
|
-
*
|
|
186
|
+
* Findings keyed by their unique key.
|
|
158
187
|
*/
|
|
159
|
-
interface
|
|
160
|
-
[k: string]:
|
|
188
|
+
interface Findings {
|
|
189
|
+
[k: string]: Finding;
|
|
161
190
|
}
|
|
162
191
|
/**
|
|
163
192
|
* Represents a verification step in the investigation.
|
|
164
193
|
*
|
|
165
|
-
* A
|
|
194
|
+
* A finding validates a specific aspect of the data under investigation
|
|
166
195
|
* and contributes to the overall investigation score.
|
|
167
196
|
*/
|
|
168
|
-
interface
|
|
169
|
-
|
|
197
|
+
interface Finding {
|
|
198
|
+
finding_name: string;
|
|
170
199
|
description: string;
|
|
171
200
|
comment: string;
|
|
172
201
|
extra: Extra1;
|
|
@@ -174,6 +203,7 @@ interface Check {
|
|
|
174
203
|
level: Level;
|
|
175
204
|
origin_investigation_id: string;
|
|
176
205
|
observable_links: ObservableLinks;
|
|
206
|
+
evidence_links: EvidenceLinks;
|
|
177
207
|
key: string;
|
|
178
208
|
score_display: string;
|
|
179
209
|
[k: string]: unknown;
|
|
@@ -182,12 +212,44 @@ interface Extra1 {
|
|
|
182
212
|
[k: string]: unknown;
|
|
183
213
|
}
|
|
184
214
|
/**
|
|
185
|
-
* Edge metadata for a
|
|
215
|
+
* Edge metadata for a Finding↔Observable association.
|
|
186
216
|
*/
|
|
187
217
|
interface ObservableLink {
|
|
188
218
|
observable_key: string;
|
|
189
219
|
propagation_mode?: PropagationMode;
|
|
190
220
|
}
|
|
221
|
+
/**
|
|
222
|
+
* Edge metadata for a Finding↔Evidence association.
|
|
223
|
+
*/
|
|
224
|
+
interface EvidenceLink {
|
|
225
|
+
evidence_key: string;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Evidence objects keyed by their unique key.
|
|
229
|
+
*/
|
|
230
|
+
interface Evidences {
|
|
231
|
+
[k: string]: Evidence;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Structured material supporting one or more findings.
|
|
235
|
+
*/
|
|
236
|
+
interface Evidence {
|
|
237
|
+
type: string;
|
|
238
|
+
title: string;
|
|
239
|
+
description: string;
|
|
240
|
+
source: string;
|
|
241
|
+
external_id: ExternalId;
|
|
242
|
+
content: unknown;
|
|
243
|
+
uri: Uri;
|
|
244
|
+
captured_at: string;
|
|
245
|
+
extra: Extra2;
|
|
246
|
+
key: string;
|
|
247
|
+
finding_links: FindingLinks1;
|
|
248
|
+
[k: string]: unknown;
|
|
249
|
+
}
|
|
250
|
+
interface Extra2 {
|
|
251
|
+
[k: string]: unknown;
|
|
252
|
+
}
|
|
191
253
|
/**
|
|
192
254
|
* Threat intelligence entries keyed by their unique key.
|
|
193
255
|
*/
|
|
@@ -204,7 +266,7 @@ interface ThreatIntel {
|
|
|
204
266
|
source: string;
|
|
205
267
|
observable_key: string;
|
|
206
268
|
comment: string;
|
|
207
|
-
extra:
|
|
269
|
+
extra: Extra3;
|
|
208
270
|
score: number;
|
|
209
271
|
level: Level;
|
|
210
272
|
taxonomies: Taxonomies;
|
|
@@ -212,7 +274,7 @@ interface ThreatIntel {
|
|
|
212
274
|
score_display: string;
|
|
213
275
|
[k: string]: unknown;
|
|
214
276
|
}
|
|
215
|
-
interface
|
|
277
|
+
interface Extra3 {
|
|
216
278
|
[k: string]: unknown;
|
|
217
279
|
}
|
|
218
280
|
/**
|
|
@@ -252,7 +314,7 @@ interface Tags {
|
|
|
252
314
|
[k: string]: Tag;
|
|
253
315
|
}
|
|
254
316
|
/**
|
|
255
|
-
* Groups
|
|
317
|
+
* Groups findings for categorical organization.
|
|
256
318
|
*
|
|
257
319
|
* Tags allow structuring the investigation into logical sections
|
|
258
320
|
* with aggregated scores and levels. Hierarchy is automatic based on
|
|
@@ -261,16 +323,16 @@ interface Tags {
|
|
|
261
323
|
interface Tag {
|
|
262
324
|
name: string;
|
|
263
325
|
description?: string;
|
|
264
|
-
|
|
326
|
+
findings: Findings1;
|
|
265
327
|
key: string;
|
|
266
328
|
/**
|
|
267
|
-
* Calculate the score from direct
|
|
329
|
+
* Calculate the score from direct findings only (no hierarchy).
|
|
268
330
|
*
|
|
269
331
|
* For hierarchical aggregation (including descendant tags), use
|
|
270
332
|
* Investigation.get_tag_aggregated_score() or TagProxy.get_aggregated_score().
|
|
271
333
|
*
|
|
272
334
|
* Returns:
|
|
273
|
-
* Total score from direct
|
|
335
|
+
* Total score from direct findings
|
|
274
336
|
*/
|
|
275
337
|
direct_score: number;
|
|
276
338
|
direct_level: Level;
|
|
@@ -288,9 +350,12 @@ interface StatisticsSchema {
|
|
|
288
350
|
observables_by_type?: ObservablesByType;
|
|
289
351
|
observables_by_level?: ObservablesByLevel;
|
|
290
352
|
observables_by_type_and_level?: ObservablesByTypeAndLevel;
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
353
|
+
total_findings: number;
|
|
354
|
+
applied_findings: number;
|
|
355
|
+
findings_by_level?: FindingsByLevel;
|
|
356
|
+
total_evidences: number;
|
|
357
|
+
evidences_by_type?: EvidencesByType;
|
|
358
|
+
evidences_by_source?: EvidencesBySource;
|
|
294
359
|
total_threat_intel: number;
|
|
295
360
|
threat_intel_by_source?: ThreatIntelBySource;
|
|
296
361
|
threat_intel_by_level?: ThreatIntelByLevel;
|
|
@@ -307,9 +372,15 @@ interface ObservablesByTypeAndLevel {
|
|
|
307
372
|
[k: string]: number;
|
|
308
373
|
};
|
|
309
374
|
}
|
|
310
|
-
interface
|
|
375
|
+
interface FindingsByLevel {
|
|
311
376
|
[k: string]: string[];
|
|
312
377
|
}
|
|
378
|
+
interface EvidencesByType {
|
|
379
|
+
[k: string]: number;
|
|
380
|
+
}
|
|
381
|
+
interface EvidencesBySource {
|
|
382
|
+
[k: string]: number;
|
|
383
|
+
}
|
|
313
384
|
interface ThreatIntelBySource {
|
|
314
385
|
[k: string]: number;
|
|
315
386
|
}
|
|
@@ -336,7 +407,7 @@ declare function isCyvest(json: unknown): json is CyvestInvestigation;
|
|
|
336
407
|
/**
|
|
337
408
|
* Key type prefixes used in Cyvest.
|
|
338
409
|
*/
|
|
339
|
-
type KeyType = "obs" | "
|
|
410
|
+
type KeyType = "obs" | "fnd" | "evd" | "ti" | "enr" | "tag";
|
|
340
411
|
/**
|
|
341
412
|
* Generate a unique key for an observable.
|
|
342
413
|
*
|
|
@@ -352,22 +423,22 @@ type KeyType = "obs" | "chk" | "ti" | "enr" | "tag";
|
|
|
352
423
|
* // => "obs:ipv4:192.168.1.1"
|
|
353
424
|
* ```
|
|
354
425
|
*/
|
|
355
|
-
declare function generateObservableKey(obsType: string, value: string): string;
|
|
426
|
+
declare function generateObservableKey(obsType: string, value: string, subtype?: string, namespace?: string): string;
|
|
356
427
|
/**
|
|
357
|
-
* Generate a unique key for a
|
|
428
|
+
* Generate a unique key for a finding.
|
|
358
429
|
*
|
|
359
|
-
* Format:
|
|
430
|
+
* Format: fnd:{finding_name}
|
|
360
431
|
*
|
|
361
|
-
* @param
|
|
362
|
-
* @returns Unique
|
|
432
|
+
* @param findingName - Name of the finding
|
|
433
|
+
* @returns Unique finding key
|
|
363
434
|
*
|
|
364
435
|
* @example
|
|
365
436
|
* ```ts
|
|
366
|
-
*
|
|
367
|
-
* // => "
|
|
437
|
+
* generateFindingKey("sender_verification")
|
|
438
|
+
* // => "fnd:sender_verification"
|
|
368
439
|
* ```
|
|
369
440
|
*/
|
|
370
|
-
declare function
|
|
441
|
+
declare function generateFindingKey(findingName: string): string;
|
|
371
442
|
/**
|
|
372
443
|
* Generate a unique key for threat intelligence.
|
|
373
444
|
*
|
|
@@ -463,7 +534,7 @@ declare function isTagDescendantOf(descendantName: string, ancestorName: string)
|
|
|
463
534
|
* Extract the type prefix from a key.
|
|
464
535
|
*
|
|
465
536
|
* @param key - The key to parse
|
|
466
|
-
* @returns Type prefix (obs,
|
|
537
|
+
* @returns Type prefix (obs, fnd, evd, ti, enr, tag) or null if invalid
|
|
467
538
|
*
|
|
468
539
|
* @example
|
|
469
540
|
* ```ts
|
|
@@ -473,7 +544,7 @@ declare function isTagDescendantOf(descendantName: string, ancestorName: string)
|
|
|
473
544
|
*/
|
|
474
545
|
declare function parseKeyType(key: string): KeyType | null;
|
|
475
546
|
/**
|
|
476
|
-
* Validate a key format and optionally
|
|
547
|
+
* Validate a key format and optionally finding its type.
|
|
477
548
|
*
|
|
478
549
|
* @param key - The key to validate
|
|
479
550
|
* @param expectedType - Optional expected type prefix
|
|
@@ -505,19 +576,19 @@ declare function parseObservableKey(key: string): {
|
|
|
505
576
|
value: string;
|
|
506
577
|
} | null;
|
|
507
578
|
/**
|
|
508
|
-
* Extract components from a
|
|
579
|
+
* Extract components from a finding key.
|
|
509
580
|
*
|
|
510
|
-
* @param key -
|
|
511
|
-
* @returns Object with
|
|
581
|
+
* @param key - Finding key to parse
|
|
582
|
+
* @returns Object with findingName, or null if invalid
|
|
512
583
|
*
|
|
513
584
|
* @example
|
|
514
585
|
* ```ts
|
|
515
|
-
*
|
|
516
|
-
* // => {
|
|
586
|
+
* parseFindingKey("fnd:sender_verification")
|
|
587
|
+
* // => { findingName: "sender_verification" }
|
|
517
588
|
* ```
|
|
518
589
|
*/
|
|
519
|
-
declare function
|
|
520
|
-
|
|
590
|
+
declare function parseFindingKey(key: string): {
|
|
591
|
+
findingName: string;
|
|
521
592
|
} | null;
|
|
522
593
|
/**
|
|
523
594
|
* Extract components from a threat intel key.
|
|
@@ -574,7 +645,7 @@ declare function normalizeLevel(level: string): Level;
|
|
|
574
645
|
/**
|
|
575
646
|
* Check if a string is a valid Level.
|
|
576
647
|
*
|
|
577
|
-
* @param level - String to
|
|
648
|
+
* @param level - String to finding
|
|
578
649
|
* @returns True if valid Level
|
|
579
650
|
*/
|
|
580
651
|
declare function isValidLevel(level: string): level is Level;
|
|
@@ -641,7 +712,7 @@ declare function isLevelLowerThan(a: Level, b: Level): boolean;
|
|
|
641
712
|
/**
|
|
642
713
|
* Check if level a is at least as severe as level b.
|
|
643
714
|
*
|
|
644
|
-
* @param a - Level to
|
|
715
|
+
* @param a - Level to finding
|
|
645
716
|
* @param minLevel - Minimum required level
|
|
646
717
|
* @returns True if a is at least minLevel
|
|
647
718
|
*
|
|
@@ -688,9 +759,9 @@ declare function hasLevel(obj: unknown): obj is {
|
|
|
688
759
|
level: Level;
|
|
689
760
|
};
|
|
690
761
|
/**
|
|
691
|
-
* Extract level from an entity (Observable,
|
|
762
|
+
* Extract level from an entity (Observable, Finding, ThreatIntel, Tag).
|
|
692
763
|
*/
|
|
693
|
-
declare function getEntityLevel(entity: Observable |
|
|
764
|
+
declare function getEntityLevel(entity: Observable | Finding | ThreatIntel | Tag): Level;
|
|
694
765
|
|
|
695
766
|
/**
|
|
696
767
|
* Get an observable by its key.
|
|
@@ -721,7 +792,7 @@ declare function getObservable(inv: CyvestInvestigation, key: string): Observabl
|
|
|
721
792
|
* const obs = getObservableByTypeValue(investigation, "ipv4", "192.168.1.1");
|
|
722
793
|
* ```
|
|
723
794
|
*/
|
|
724
|
-
declare function getObservableByTypeValue(inv: CyvestInvestigation, type: string, value: string): Observable | undefined;
|
|
795
|
+
declare function getObservableByTypeValue(inv: CyvestInvestigation, type: string, value: string, subtype?: string, namespace?: string): Observable | undefined;
|
|
725
796
|
/**
|
|
726
797
|
* Get the root observable of the investigation.
|
|
727
798
|
*
|
|
@@ -741,44 +812,46 @@ declare function getObservableByTypeValue(inv: CyvestInvestigation, type: string
|
|
|
741
812
|
*/
|
|
742
813
|
declare function getRootObservable(inv: CyvestInvestigation): Observable | undefined;
|
|
743
814
|
/**
|
|
744
|
-
* Get a
|
|
815
|
+
* Get a finding by its key.
|
|
745
816
|
*
|
|
746
817
|
* @param inv - The investigation to search
|
|
747
|
-
* @param key -
|
|
748
|
-
* @returns The
|
|
818
|
+
* @param key - Finding key (e.g., "fnd:sender_verification:email_headers")
|
|
819
|
+
* @returns The finding or undefined if not found
|
|
749
820
|
*
|
|
750
821
|
* @example
|
|
751
822
|
* ```ts
|
|
752
|
-
* const
|
|
823
|
+
* const finding = getFinding(investigation, "fnd:sender_verification:email_headers");
|
|
753
824
|
* ```
|
|
754
825
|
*/
|
|
755
|
-
declare function
|
|
826
|
+
declare function getFinding(inv: CyvestInvestigation, key: string): Finding | undefined;
|
|
756
827
|
/**
|
|
757
|
-
* Get a
|
|
828
|
+
* Get a finding by its name.
|
|
758
829
|
*
|
|
759
830
|
* @param inv - The investigation to search
|
|
760
|
-
* @param
|
|
761
|
-
* @returns The
|
|
831
|
+
* @param findingName - Finding name
|
|
832
|
+
* @returns The finding or undefined if not found
|
|
762
833
|
*
|
|
763
834
|
* @example
|
|
764
835
|
* ```ts
|
|
765
|
-
* const
|
|
836
|
+
* const finding = getFindingByName(investigation, "sender_verification");
|
|
766
837
|
* ```
|
|
767
838
|
*/
|
|
768
|
-
declare function
|
|
839
|
+
declare function getFindingByName(inv: CyvestInvestigation, findingName: string): Finding | undefined;
|
|
769
840
|
/**
|
|
770
|
-
* Get all
|
|
841
|
+
* Get all findings as an array.
|
|
771
842
|
*
|
|
772
843
|
* @param inv - The investigation
|
|
773
|
-
* @returns Array of all
|
|
844
|
+
* @returns Array of all findings
|
|
774
845
|
*
|
|
775
846
|
* @example
|
|
776
847
|
* ```ts
|
|
777
|
-
* const
|
|
778
|
-
* console.log(`Total
|
|
848
|
+
* const allFindings = getAllFindings(investigation);
|
|
849
|
+
* console.log(`Total findings: ${allFindings.length}`);
|
|
779
850
|
* ```
|
|
780
851
|
*/
|
|
781
|
-
declare function
|
|
852
|
+
declare function getAllFindings(inv: CyvestInvestigation): Finding[];
|
|
853
|
+
declare function getEvidence(inv: CyvestInvestigation, key: string): Evidence | undefined;
|
|
854
|
+
declare function getAllEvidences(inv: CyvestInvestigation): Evidence[];
|
|
782
855
|
/**
|
|
783
856
|
* Get a threat intel entry by its key.
|
|
784
857
|
*
|
|
@@ -901,7 +974,8 @@ declare function getDataExtraction(inv: CyvestInvestigation): DataExtractionSche
|
|
|
901
974
|
*/
|
|
902
975
|
interface InvestigationCounts {
|
|
903
976
|
observables: number;
|
|
904
|
-
|
|
977
|
+
findings: number;
|
|
978
|
+
evidences: number;
|
|
905
979
|
threatIntels: number;
|
|
906
980
|
enrichments: number;
|
|
907
981
|
tags: number;
|
|
@@ -963,7 +1037,7 @@ declare function getTagDescendants(inv: CyvestInvestigation, tagName: string): T
|
|
|
963
1037
|
* Get the aggregated score for a tag including all descendant tags.
|
|
964
1038
|
*
|
|
965
1039
|
* The aggregated score includes:
|
|
966
|
-
* - The tag's direct_score (from its direct
|
|
1040
|
+
* - The tag's direct_score (from its direct findings)
|
|
967
1041
|
* - Recursively, the aggregated scores of all child tags
|
|
968
1042
|
*
|
|
969
1043
|
* @param inv - The investigation
|
|
@@ -999,7 +1073,7 @@ declare function getTagAggregatedLevel(inv: CyvestInvestigation, tagName: string
|
|
|
999
1073
|
* Finder utilities for querying and filtering Cyvest Investigation data.
|
|
1000
1074
|
*
|
|
1001
1075
|
* These functions provide filtering, searching, and cross-referencing
|
|
1002
|
-
* capabilities for observables,
|
|
1076
|
+
* capabilities for observables, findings, and threat intel.
|
|
1003
1077
|
*/
|
|
1004
1078
|
|
|
1005
1079
|
/**
|
|
@@ -1098,29 +1172,29 @@ declare function findWhitelistedObservables(inv: CyvestInvestigation): Observabl
|
|
|
1098
1172
|
*/
|
|
1099
1173
|
declare function findObservablesWithThreatIntel(inv: CyvestInvestigation): Observable[];
|
|
1100
1174
|
/**
|
|
1101
|
-
* Find all
|
|
1175
|
+
* Find all findings at a specific level.
|
|
1102
1176
|
*
|
|
1103
1177
|
* @param inv - The investigation to search
|
|
1104
1178
|
* @param level - Security level to filter by
|
|
1105
|
-
* @returns Array of matching
|
|
1179
|
+
* @returns Array of matching findings
|
|
1106
1180
|
*/
|
|
1107
|
-
declare function
|
|
1181
|
+
declare function findFindingsByLevel(inv: CyvestInvestigation, level: Level): Finding[];
|
|
1108
1182
|
/**
|
|
1109
|
-
* Find all
|
|
1183
|
+
* Find all findings at or above a minimum level.
|
|
1110
1184
|
*
|
|
1111
1185
|
* @param inv - The investigation to search
|
|
1112
1186
|
* @param minLevel - Minimum security level
|
|
1113
|
-
* @returns Array of matching
|
|
1187
|
+
* @returns Array of matching findings
|
|
1114
1188
|
*/
|
|
1115
|
-
declare function
|
|
1189
|
+
declare function findFindingsAtLeast(inv: CyvestInvestigation, minLevel: Level): Finding[];
|
|
1116
1190
|
/**
|
|
1117
|
-
* Find
|
|
1191
|
+
* Find findings by finding name.
|
|
1118
1192
|
*
|
|
1119
1193
|
* @param inv - The investigation to search
|
|
1120
|
-
* @param
|
|
1121
|
-
* @returns The matching
|
|
1194
|
+
* @param findingName - Finding name to search for
|
|
1195
|
+
* @returns The matching finding or undefined
|
|
1122
1196
|
*/
|
|
1123
|
-
declare function
|
|
1197
|
+
declare function findFindingByName(inv: CyvestInvestigation, findingName: string): Finding | undefined;
|
|
1124
1198
|
/**
|
|
1125
1199
|
* Find all threat intel from a specific source.
|
|
1126
1200
|
*
|
|
@@ -1170,18 +1244,18 @@ declare function findTagsAtLeast(inv: CyvestInvestigation, minLevel: Level): Tag
|
|
|
1170
1244
|
*/
|
|
1171
1245
|
declare function findTagsByNamePattern(inv: CyvestInvestigation, pattern: RegExp): Tag[];
|
|
1172
1246
|
/**
|
|
1173
|
-
* Find all
|
|
1247
|
+
* Find all findings that generated or reference a specific observable.
|
|
1174
1248
|
*
|
|
1175
1249
|
* @param inv - The investigation to search
|
|
1176
1250
|
* @param observableKey - Key of the observable
|
|
1177
|
-
* @returns Array of
|
|
1251
|
+
* @returns Array of findings that reference this observable
|
|
1178
1252
|
*
|
|
1179
1253
|
* @example
|
|
1180
1254
|
* ```ts
|
|
1181
|
-
* const
|
|
1255
|
+
* const findings = findFindingsForObservable(investigation, "obs:ipv4:192.168.1.1");
|
|
1182
1256
|
* ```
|
|
1183
1257
|
*/
|
|
1184
|
-
declare function
|
|
1258
|
+
declare function findFindingsForObservable(inv: CyvestInvestigation, observableKey: string): Finding[];
|
|
1185
1259
|
/**
|
|
1186
1260
|
* Find all threat intel entries for a specific observable.
|
|
1187
1261
|
*
|
|
@@ -1191,22 +1265,22 @@ declare function findChecksForObservable(inv: CyvestInvestigation, observableKey
|
|
|
1191
1265
|
*/
|
|
1192
1266
|
declare function findThreatIntelsForObservable(inv: CyvestInvestigation, observableKey: string): ThreatIntel[];
|
|
1193
1267
|
/**
|
|
1194
|
-
* Find all observables referenced by a specific
|
|
1268
|
+
* Find all observables referenced by a specific finding.
|
|
1195
1269
|
*
|
|
1196
1270
|
* @param inv - The investigation to search
|
|
1197
|
-
* @param
|
|
1198
|
-
* @returns Array of observables referenced by this
|
|
1271
|
+
* @param findingKey - Key of the finding
|
|
1272
|
+
* @returns Array of observables referenced by this finding
|
|
1199
1273
|
*/
|
|
1200
|
-
declare function
|
|
1274
|
+
declare function findObservablesForFinding(inv: CyvestInvestigation, findingKey: string): Observable[];
|
|
1201
1275
|
/**
|
|
1202
|
-
* Find all
|
|
1276
|
+
* Find all findings for a specific tag.
|
|
1203
1277
|
*
|
|
1204
1278
|
* @param inv - The investigation to search
|
|
1205
1279
|
* @param tagKey - Key of the tag
|
|
1206
|
-
* @param recursive - Include
|
|
1207
|
-
* @returns Array of
|
|
1280
|
+
* @param recursive - Include findings from descendant tags (default: false)
|
|
1281
|
+
* @returns Array of findings in the tag
|
|
1208
1282
|
*/
|
|
1209
|
-
declare function
|
|
1283
|
+
declare function findFindingsForTag(inv: CyvestInvestigation, tagKey: string, recursive?: boolean): Finding[];
|
|
1210
1284
|
/**
|
|
1211
1285
|
* Sort observables by score (descending - highest first).
|
|
1212
1286
|
*
|
|
@@ -1215,12 +1289,12 @@ declare function findChecksForTag(inv: CyvestInvestigation, tagKey: string, recu
|
|
|
1215
1289
|
*/
|
|
1216
1290
|
declare function sortObservablesByScore(observables: Observable[]): Observable[];
|
|
1217
1291
|
/**
|
|
1218
|
-
* Sort
|
|
1292
|
+
* Sort findings by score (descending - highest first).
|
|
1219
1293
|
*
|
|
1220
|
-
* @param
|
|
1294
|
+
* @param findings - Array of findings to sort
|
|
1221
1295
|
* @returns Sorted array (new array, doesn't mutate input)
|
|
1222
1296
|
*/
|
|
1223
|
-
declare function
|
|
1297
|
+
declare function sortFindingsByScore(findings: Finding[]): Finding[];
|
|
1224
1298
|
/**
|
|
1225
1299
|
* Sort observables by level (descending - most severe first).
|
|
1226
1300
|
*
|
|
@@ -1229,12 +1303,12 @@ declare function sortChecksByScore(checks: Check[]): Check[];
|
|
|
1229
1303
|
*/
|
|
1230
1304
|
declare function sortObservablesByLevel(observables: Observable[]): Observable[];
|
|
1231
1305
|
/**
|
|
1232
|
-
* Sort
|
|
1306
|
+
* Sort findings by level (descending - most severe first).
|
|
1233
1307
|
*
|
|
1234
|
-
* @param
|
|
1308
|
+
* @param findings - Array of findings to sort
|
|
1235
1309
|
* @returns Sorted array (new array, doesn't mutate input)
|
|
1236
1310
|
*/
|
|
1237
|
-
declare function
|
|
1311
|
+
declare function sortFindingsByLevel(findings: Finding[]): Finding[];
|
|
1238
1312
|
/**
|
|
1239
1313
|
* Find the highest scoring observables.
|
|
1240
1314
|
*
|
|
@@ -1244,13 +1318,13 @@ declare function sortChecksByLevel(checks: Check[]): Check[];
|
|
|
1244
1318
|
*/
|
|
1245
1319
|
declare function findHighestScoringObservables(inv: CyvestInvestigation, n?: number): Observable[];
|
|
1246
1320
|
/**
|
|
1247
|
-
* Find the highest scoring
|
|
1321
|
+
* Find the highest scoring findings.
|
|
1248
1322
|
*
|
|
1249
1323
|
* @param inv - The investigation to search
|
|
1250
1324
|
* @param n - Number of results to return (default: 10)
|
|
1251
|
-
* @returns Array of highest scoring
|
|
1325
|
+
* @returns Array of highest scoring findings
|
|
1252
1326
|
*/
|
|
1253
|
-
declare function
|
|
1327
|
+
declare function findHighestScoringFindings(inv: CyvestInvestigation, n?: number): Finding[];
|
|
1254
1328
|
/**
|
|
1255
1329
|
* Find all malicious observables (convenience function).
|
|
1256
1330
|
*
|
|
@@ -1266,26 +1340,26 @@ declare function findMaliciousObservables(inv: CyvestInvestigation): Observable[
|
|
|
1266
1340
|
*/
|
|
1267
1341
|
declare function findSuspiciousObservables(inv: CyvestInvestigation): Observable[];
|
|
1268
1342
|
/**
|
|
1269
|
-
* Find all malicious
|
|
1343
|
+
* Find all malicious findings (convenience function).
|
|
1270
1344
|
*
|
|
1271
1345
|
* @param inv - The investigation to search
|
|
1272
|
-
* @returns Array of malicious
|
|
1346
|
+
* @returns Array of malicious findings
|
|
1273
1347
|
*/
|
|
1274
|
-
declare function
|
|
1348
|
+
declare function findMaliciousFindings(inv: CyvestInvestigation): Finding[];
|
|
1275
1349
|
/**
|
|
1276
|
-
* Find all suspicious
|
|
1350
|
+
* Find all suspicious findings (convenience function).
|
|
1277
1351
|
*
|
|
1278
1352
|
* @param inv - The investigation to search
|
|
1279
|
-
* @returns Array of suspicious
|
|
1353
|
+
* @returns Array of suspicious findings
|
|
1280
1354
|
*/
|
|
1281
|
-
declare function
|
|
1355
|
+
declare function findSuspiciousFindings(inv: CyvestInvestigation): Finding[];
|
|
1282
1356
|
/**
|
|
1283
|
-
* Get all
|
|
1357
|
+
* Get all finding keys in the investigation.
|
|
1284
1358
|
*
|
|
1285
1359
|
* @param inv - The investigation
|
|
1286
|
-
* @returns Array of
|
|
1360
|
+
* @returns Array of finding keys
|
|
1287
1361
|
*/
|
|
1288
|
-
declare function
|
|
1362
|
+
declare function getAllFindingKeys(inv: CyvestInvestigation): string[];
|
|
1289
1363
|
/**
|
|
1290
1364
|
* Get all observable types present in the investigation.
|
|
1291
1365
|
*
|
|
@@ -1502,4 +1576,4 @@ declare function getRelationshipsForObservable(inv: CyvestInvestigation, observa
|
|
|
1502
1576
|
}>;
|
|
1503
1577
|
};
|
|
1504
1578
|
|
|
1505
|
-
export { type Actor, type AuditEvent, type AuditLog, type
|
|
1579
|
+
export { type Actor, type Aliases, type AuditEvent, type AuditLog, type CyvestInvestigation, type Data, type DataExtractionSchema, type Details, type Enrichment, type Enrichments, type Evidence, type EvidenceLink, type EvidenceLinks, type Evidences, type EvidencesBySource, type EvidencesByType, type ExternalId, type Extra, type Extra1, type Extra2, type Extra3, type Finding, type FindingLinks, type FindingLinks1, type Findings, type Findings1, type FindingsByLevel, type GraphEdge, type GraphNode, type InvestigationCounts, type InvestigationGraph, type InvestigationName, type InvestigationWhitelist, type Justification, type KeyType, LEVEL_COLORS, LEVEL_ORDER, LEVEL_VALUES, type Level, type Namespace, type Namespace1, type ObjectKey, type ObjectType, type Observable, type ObservableAlias, type ObservableLink, type ObservableLinks, type Observables, type ObservablesByLevel, type ObservablesByType, type ObservablesByTypeAndLevel, type PropagationMode, type Reason, type Relationship, type RelationshipDirection, type Relationships, type RootType, type ScoreMode, type StatisticsSchema, type Subtype, type Subtype1, type Tag, type Tags, type Taxonomies, type Taxonomy, type ThreatIntel, type ThreatIntelByLevel, type ThreatIntelBySource, type ThreatIntels, type ThreatIntels1, type Tool, type Uri, type Whitelists, areConnected, compareLevels, countRelationshipsByType, findExternalObservables, findFindingByName, findFindingsAtLeast, findFindingsByLevel, findFindingsForObservable, findFindingsForTag, findHighestScoringFindings, findHighestScoringObservables, findInternalObservables, findLeafObservables, findMaliciousFindings, findMaliciousObservables, findObservablesAtLeast, findObservablesByLevel, findObservablesByType, findObservablesByValue, findObservablesContaining, findObservablesForFinding, findObservablesMatching, findObservablesWithThreatIntel, findOrphanObservables, findPath, findSourceObservables, findSuspiciousFindings, findSuspiciousObservables, findTagsAtLeast, findTagsByLevel, findTagsByNamePattern, findThreatIntelAtLeast, findThreatIntelByLevel, findThreatIntelBySource, findThreatIntelsForObservable, findWhitelistedObservables, generateEnrichmentKey, generateFindingKey, generateObservableKey, generateTagKey, generateThreatIntelKey, getAllEnrichments, getAllEvidences, getAllFindingKeys, getAllFindings, getAllObservableTypes, getAllObservables, getAllRelationshipTypes, getAllTags, getAllThreatIntelSources, getAllThreatIntels, getColorForLevel, getColorForScore, getCounts, getDataExtraction, getEnrichment, getEnrichmentByName, getEntityLevel, getEvidence, getFinding, getFindingByName, getLevelFromScore, getObservable, getObservableByTypeValue, getObservableChildren, getObservableGraph, getObservableParents, getReachableObservables, getRelatedObservables, getRelatedObservablesByDirection, getRelatedObservablesByType, getRelationshipsForObservable, getRootObservable, getStartedAt, getStats, getTag, getTagAggregatedLevel, getTagAggregatedScore, getTagAncestors, getTagByName, getTagChildren, getTagDescendants, getThreatIntel, getThreatIntelBySourceObservable, getWhitelists, hasLevel, isCyvest, isLevelAtLeast, isLevelHigherThan, isLevelLowerThan, isTagChildOf, isTagDescendantOf, isValidLevel, maxLevel, minLevel, normalizeLevel, parseCyvest, parseFindingKey, parseKeyType, parseObservableKey, parseThreatIntelKey, sortFindingsByLevel, sortFindingsByScore, sortObservablesByLevel, sortObservablesByScore, validateKey };
|