This commit is contained in:
ferhat elmas 2017-12-22 03:37:32 +01:00 коммит произвёл Zachary Wasserman
Родитель a5e1007146
Коммит d2a7e38c85
14 изменённых файлов: 24 добавлений и 24 удалений

Просмотреть файл

@ -2,7 +2,7 @@
* Added remote IP in the logs for all osqueryd/launcher requests. (#1653)
* Fixed bugs that caused logs to sometimes be ommited from the logwriter. (#1636, #1617)
* Fixed bugs that caused logs to sometimes be omitted from the logwriter. (#1636, #1617)
* Fixed a bug where request bodies were not being explicitly closed. (#1613)
@ -163,7 +163,7 @@ See https://wiki.mozilla.org/Security/Server_Side_TLS for more information on th
* Improve platform detection accuracy.
Previously Kolide was determing platform based on the OS of the system osquery was built on instead of the OS it was running on. Please note: Offline hosts may continue to report an erroneous platform until they check-in with Kolide.
Previously Kolide was determining platform based on the OS of the system osquery was built on instead of the OS it was running on. Please note: Offline hosts may continue to report an erroneous platform until they check-in with Kolide.
* Fix bugs where query links in the pack sidebar pointed to the wrong queries.

Просмотреть файл

@ -1,7 +1,7 @@
CLI Documentation
=================
Kolide Fleet provides a server which allows you to manage and orchestrate an osquery deployment across of a set of workstations and servers. For certain use-cases, it makes sense to maintain the configuration and data of an osquery deployment in source-controlled files. It is also desireable to be able to manage these files with a familiar command-line tool. To facilitate this, we are working on an experimental CLI called `fleetctl`.
Kolide Fleet provides a server which allows you to manage and orchestrate an osquery deployment across of a set of workstations and servers. For certain use-cases, it makes sense to maintain the configuration and data of an osquery deployment in source-controlled files. It is also desirable to be able to manage these files with a familiar command-line tool. To facilitate this, we are working on an experimental CLI called `fleetctl`.
### Warning: In Progress
@ -18,7 +18,7 @@ Inspiration for the `fleetctl` command-line experience as well as the file forma
The `fleetctl` tool is heavily inspired by the [`kubectl`](https://kubernetes.io/docs/user-guide/kubectl-overview/) tool. If you are familiar with `kubectl`, this will all feel very familiar to you. If not, some further explanation would likely be helpful.
Fleet exposes the aspects of an osquery deployment as a set of "objects". Objects may be a query, a pack, a set of configuration options, etc. The documentaiton for [Declarative Management of Kubernetes Objects Using Configuration Files](https://kubernetes.io/docs/tutorials/object-management-kubectl/declarative-object-management-configuration/) says the following about the object lifecycle:
Fleet exposes the aspects of an osquery deployment as a set of "objects". Objects may be a query, a pack, a set of configuration options, etc. The documentation for [Declarative Management of Kubernetes Objects Using Configuration Files](https://kubernetes.io/docs/tutorials/object-management-kubectl/declarative-object-management-configuration/) says the following about the object lifecycle:
> Objects can be created, updated, and deleted by storing multiple object configuration files in a directory and using `kubectl apply` to recursively create and update those objects as needed.
@ -93,7 +93,7 @@ When you reason about how to manage these config files, consider following the [
- Group related objects into a single file whenever it makes sense. One file is often easier to manage than several. See the [config-single-file.yml](../../examples/config-single-file.yml) file as an example of this syntax.
- Dont specify default values unnecessarily – simple and minimal configs will reduce errors.
All of these files can be concatenated together into [one file](../../examples/config-single-file.yml) (seperated by `---`), or they can be in [individual files with a directory structure](../../examples/config-many-files) like the following:
All of these files can be concatenated together into [one file](../../examples/config-single-file.yml) (separated by `---`), or they can be in [individual files with a directory structure](../../examples/config-many-files) like the following:
```
|-- config.yml

Просмотреть файл

@ -29,7 +29,7 @@ fleet prepare db
## Running Fleet using Docker development infrastructure
To start the Fleet server backed by the Docker development infrasturcture, run the Fleet binary as follows:
To start the Fleet server backed by the Docker development infrastructure, run the Fleet binary as follows:
```
fleet serve

Просмотреть файл

@ -79,7 +79,7 @@
{"description": "The name of the class.","name": "class","options": {},"type": "TEXT_TYPE"},
{"description": "Relative path to the class or instance.","name": "relative_path","options": {},"type": "TEXT_TYPE"}
],
"description": "WMI CommandLineEventConsumer, which can be used for persistance on Windows. https://www.blackhat.com/docs/us-15/materials/us-15-Graeber-Abusing-Windows-Management-Instrumentation-WMI-To-Build-A-Persistent%20Asynchronous-And-Fileless-Backdoor-wp.pdf",
"description": "WMI CommandLineEventConsumer, which can be used for persistence on Windows. https://www.blackhat.com/docs/us-15/materials/us-15-Graeber-Abusing-Windows-Management-Instrumentation-WMI-To-Build-A-Persistent%20Asynchronous-And-Fileless-Backdoor-wp.pdf",
"examples": [
"select filter,consumer,query,command_line_template from wmi_filter_consumer_binding wcb join wmi_cli_event_consumers wcec on consumer = wcec.__relpath join wmi_event_filters wef on wef.__relpath = wcb.filter;"
],
@ -135,7 +135,7 @@
{"description": "The name of the class.","name": "class","options": {},"type": "TEXT_TYPE"},
{"description": "Relative path to the class or instance.","name": "relative_path","options": {},"type": "TEXT_TYPE"}
],
"description": "WMI ActiveScriptEventConsumer, which can be used for persistance on Windows. https://www.blackhat.com/docs/us-15/materials/us-15-Graeber-Abusing-Windows-Management-Instrumentation-WMI-To-Build-A-Persistent%20Asynchronous-And-Fileless-Backdoor-wp.pdf",
"description": "WMI ActiveScriptEventConsumer, which can be used for persistence on Windows. https://www.blackhat.com/docs/us-15/materials/us-15-Graeber-Abusing-Windows-Management-Instrumentation-WMI-To-Build-A-Persistent%20Asynchronous-And-Fileless-Backdoor-wp.pdf",
"examples": [
"select filter,consumer,query,scripting_engine,script_text from wmi_filter_consumer_binding wcb join wmi_script_event_consumers wsec on consumer = wsec.__relpath join wmi_event_filters wef on wef.__relpath = wcb.filter;"
],
@ -188,7 +188,7 @@
"blacklisted": false,
"columns": [
{"description": "The local owner of authorized_keys file","name": "uid","options": {"additional": true},"type": "BIGINT_TYPE"},
{"description": "algorithim of key","name": "algorithm","options": {},"type": "TEXT_TYPE"},
{"description": "algorithm of key","name": "algorithm","options": {},"type": "TEXT_TYPE"},
{"description": "parsed authorized keys line","name": "key","options": {},"type": "TEXT_TYPE"},
{"description": "Path to the authorized_keys file","name": "key_file","options": {},"type": "TEXT_TYPE"}
],
@ -1220,7 +1220,7 @@
{"description": "Platform information.","name": "platform_info","options": {},"type": "BIGINT_TYPE"},
{"description": "Performance setting for the processor.","name": "perf_ctl","options": {},"type": "BIGINT_TYPE"},
{"description": "Performance status for the processor.","name": "perf_status","options": {},"type": "BIGINT_TYPE"},
{"description": "Bitfield controling enabled features.","name": "feature_control","options": {},"type": "BIGINT_TYPE"},
{"description": "Bitfield controlling enabled features.","name": "feature_control","options": {},"type": "BIGINT_TYPE"},
{"description": "Run Time Average Power Limiting power limit.","name": "rapl_power_limit","options": {},"type": "BIGINT_TYPE"},
{"description": "Run Time Average Power Limiting energy status.","name": "rapl_energy_status","options": {},"type": "BIGINT_TYPE"},
{"description": "Run Time Average Power Limiting power units.","name": "rapl_power_units","options": {},"type": "BIGINT_TYPE"}
@ -1911,7 +1911,7 @@
"columns": [
{"description": "Daemon or agent service name","name": "label","options": {},"type": "TEXT_TYPE"},
{"description": "Name of the override key","name": "key","options": {},"type": "TEXT_TYPE"},
{"description": "Overriden value","name": "value","options": {},"type": "TEXT_TYPE"},
{"description": "Overridden value","name": "value","options": {},"type": "TEXT_TYPE"},
{"description": "User ID applied to the override, 0 applies to all","name": "uid","options": {},"type": "BIGINT_TYPE"},
{"description": "Path to daemon or agent plist","name": "path","options": {},"type": "TEXT_TYPE"}
],
@ -2084,7 +2084,7 @@
{"description": "Real user ID of the user process using the file","name": "uid","options": {},"type": "BIGINT_TYPE"},
{"description": "Effective user ID of the process using the file","name": "euid","options": {},"type": "BIGINT_TYPE"},
{"description": "Real group ID of the process using the file","name": "gid","options": {},"type": "BIGINT_TYPE"},
{"description": "Effective group ID of the processs using the file","name": "egid","options": {},"type": "BIGINT_TYPE"},
{"description": "Effective group ID of the processes using the file","name": "egid","options": {},"type": "BIGINT_TYPE"},
{"description": "Indicates the mode of the file","name": "mode","options": {},"type": "BIGINT_TYPE"},
{"description": "User ID of the owner of the file","name": "owner_uid","options": {},"type": "BIGINT_TYPE"},
{"description": "Group ID of the owner of the file","name": "owner_gid","options": {},"type": "BIGINT_TYPE"},

Просмотреть файл

@ -88,7 +88,7 @@ func testYARATransactions(t *testing.T, ds kolide.Datastore) {
yaraSection, err := ds.YARASection()
require.Nil(t, err)
require.NotNil(t, yaraSection)
// there shouldn't be any file paths because we rolled back the transaciton
// there shouldn't be any file paths because we rolled back the transaction
require.Len(t, yaraSection.FilePaths, 0)
// try it again

Просмотреть файл

@ -72,7 +72,7 @@ func (d *Datastore) ResetOptions() (opts []kolide.Option, err error) {
}
err = txn.Commit()
if err != nil {
return nil, errors.Wrap(err, "commiting reset options")
return nil, errors.Wrap(err, "committing reset options")
}
return opts, nil

Просмотреть файл

@ -15,7 +15,7 @@ type Checker interface {
// Handler returns an http.Handler that checks the status of all the dependencies.
// Handler responds with either:
// 200 OK if the server can successfuly communicate with it's backends or
// 200 OK if the server can successfully communicate with it's backends or
// 500 if any of the backends are reporting an issue.
func Handler(logger log.Logger, checkers map[string]Checker) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {

Просмотреть файл

@ -123,11 +123,11 @@ type AppConfig struct {
// MetadataURL is a URL provided by the IDP which can be used to download
// metadata
MetadataURL string `db:"metadata_url"`
// IDPName is a human freindly name for the IDP
// IDPName is a human friendly name for the IDP
IDPName string `db:"idp_name"`
// EnableSSO flag to determine whether or not to enable SSO
EnableSSO bool `db:"enable_sso"`
// FIMInterval defines the interval when file integrity checks will occurr
// FIMInterval defines the interval when file integrity checks will occur
FIMInterval int `db:"fim_interval"`
}
@ -154,7 +154,7 @@ type SSOSettingsPayload struct {
// MetadataURL is a URL provided by the IDP which can be used to download
// metadata
MetadataURL *string `json:"metadata_url"`
// IDPName is a human freindly name for the IDP
// IDPName is a human friendly name for the IDP
IDPName *string `json:"idp_name"`
// EnableSSO flag to determine whether or not to enable SSO
EnableSSO *bool `json:"enable_sso"`

Просмотреть файл

@ -56,7 +56,7 @@ type ImportStatus struct {
// SkipCount count of items that are skipped. The reasons for the omissions
// can be found in Warnings.
SkipCount int `json:"skip_count"`
// Warnings groups catagories of warnings with one or more detail messages.
// Warnings groups categories of warnings with one or more detail messages.
Warnings map[WarningType][]string `json:"warnings"`
// Messages contains an entry for each import attempt.
Messages []string `json:"messages"`

Просмотреть файл

@ -13,7 +13,7 @@ var wrongTypeError = errors.New("argument missing or unexpected type")
// UnmarshalJSON custom unmarshaling for PackNameMap will determine whether
// the pack section of an osquery config file refers to a file path, or
// pack details. Pack details are unmarshalled into into PackDetails structure
// as oppossed to nested map[string]interface{}
// as opposed to nested map[string]interface{}
func (pnm PackNameMap) UnmarshalJSON(b []byte) error {
var temp map[string]interface{}
err := json.Unmarshal(b, &temp)

Просмотреть файл

@ -16,7 +16,7 @@ type logWriter struct {
mtx sync.Mutex
}
// New creates a logwriter, path refers to file that will recieve log content
// New creates a logwriter, path refers to file that will receive log content
func New(path string) (io.WriteCloser, error) {
file, err := os.OpenFile(path, os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0644)
if err != nil {

Просмотреть файл

@ -45,7 +45,7 @@ func TestAuthenticate(t *testing.T) {
user := tt.user
ctx := context.Background()
loggedIn, token, err := svc.Login(ctx, tt.username, tt.password)
require.Nil(st, err, "login unsuccesful")
require.Nil(st, err, "login unsuccessful")
assert.Equal(st, user.ID, loggedIn.ID)
assert.NotEmpty(st, token)

Просмотреть файл

@ -583,7 +583,7 @@ func TestRequirePasswordReset(t *testing.T) {
// Log user in
if tt.Enabled {
_, _, err = svc.Login(ctx, tt.Username, tt.PlaintextPassword)
require.Nil(t, err, "login unsuccesful")
require.Nil(t, err, "login unsuccessful")
sessions, err = svc.GetInfoAboutSessionsForUser(ctx, user.ID)
require.Nil(t, err)
require.Len(t, sessions, 1, "user should have one session")

Просмотреть файл

@ -69,7 +69,7 @@ go run package_metadata.go -repo /Users/$me/kolide_packages/ -git-tag=1.0.4
```
7. Create a git commit commit with the updated package repos.
The repo building scripts can be flaky, and occasionaly it's useful to use a `--reset HARD` flag with git to retry building the release.
The repo building scripts can be flaky, and occasionally it's useful to use a `--reset HARD` flag with git to retry building the release.
8. Push the release to gcloud. Pushing will override the contents of the gcs bucket and the release will be immediately available.