Documentation
¶
Overview ¶
Package forensicstore can create, access and process forensic artifacts bundled in so called forensicstores (a database for metadata and subfolders with forensic artifacts).
The forensicstore format ¶
The forensicstore format implements the following conventions:
- The forensicstore is a folder containing an item.db file and an arbitrary number of other folders.
- The item.db file contains metadata for all extracted artifacts in a forensic investigation in jsonlite format (flattened json objects in a sqlite database).
- Items are represented as json objects.
- Items are valid STIX 2.0 Observable Objects where applicable.
- Items must not have dots (".") in their json keys.
- Files stored in the forensicstore are referenced by item attributes ending in _path, e.g. export_path, stdout_path and wmi_path.
- Any item stored in the forensicstore can have an errors attribute that contains errors that are related to retrival or pro-cessing of this item.
Structure ¶
An example directory structure for a forensicstore:
example.forensicstore/ ├── ChromeCache │ ├── 0003357376fd75df_0 │ └── ... ├── ChromeHistory │ └── History ├── ... └── item.db
Example ¶
package main
import (
"fmt"
"github.com/forensicanalysis/forensicstore/goforensicstore"
)
func main() {
// create forensicstore
store, _ := goforensicstore.NewJSONLite("example.forensicstore")
// create a struct
evidence := struct {
Data string
Type string
}{Data: "secret", Type: "test"}
// insert struct into forensicstore
id, _ := store.InsertStruct(evidence)
// get item from forensicstore
item, _ := store.Get(id)
// access item's data
fmt.Println(item["data"])
}
Output: secret
Directories
¶
| Path | Synopsis |
|---|---|
|
forensicstore
command
Package forensicstore implements the forensicstore command line tool with various subcommands that can be used to edit and handle forensicstores.
|
Package forensicstore implements the forensicstore command line tool with various subcommands that can be used to edit and handle forensicstores. |
|
Package goflatten provides functions to flatten and unflatten Go maps.
|
Package goflatten provides functions to flatten and unflatten Go maps. |
|
Package goforensicstore provides functions to handle forensicstores.
|
Package goforensicstore provides functions to handle forensicstores. |
|
assets
Code generated by github.com/cugu/go-resources.
|
Code generated by github.com/cugu/go-resources. |
|
Package gojsonlite provides concurrency safe functions to access the jsonlite format (flattened json objects in a sqlite data-base).
|
Package gojsonlite provides concurrency safe functions to access the jsonlite format (flattened json objects in a sqlite data-base). |
|
Package gostore provides an interface for data storage.
|
Package gostore provides an interface for data storage. |
Click to show internal directories.
Click to hide internal directories.
