Commit Graph

80 Commits

Author SHA1 Message Date
5e2e9448df add security auditing of python code using Bandit during CICD (#491) 2021-02-01 16:51:03 -05:00
a46f7b4193 expose supervisor tasks that are fully self-contained fuzzing tasks in the service (#474)
Exposes the functionality added in #454 to the service & CLI.

Fixes #439
2021-01-29 00:01:59 +00:00
24685ca8df Updating Windows Default Image from RS5-Pro to 20H2-Pro (#469)
RS5-Pro is no longer updated in the Azure Marketplace. In order to ensure the Windows 10 VMs are regularly updated, we need to switch the default image to 20H2-Pro, which is regularly maintained.
2021-01-27 13:46:46 +00:00
513d1f52c9 Unify Dashboard & Webhook events (#394)
This change unifies the previously adhoc SignalR events and Webhooks into a single event format.
2021-01-11 21:43:09 +00:00
f345bd239d Add ssh keys to nodes on demand (#411)
Our existing model has a per-scaleset SSH key.  This update moves towards using user provided SSH keys when they need to connect to a given node.
2021-01-06 19:29:38 +00:00
c1a50f6f6c Colocate tasks (#402)
Enables co-locating multiple tasks in a given work-set.

Tasks are bucketed by the following:
* OS
* job id
* setup container
* VM SKU & image (used in pre-1.0 style tasks)
* pool name (used in 1.0+ style tasks)
* if the task needs rebooting after the task setup script executes.

Additionally, a task will end up in a unique bucket if any of the following are true:
* The task is set to run on more than one VM
* The task is missing the `task.config.colocate` flag (all tasks created prior to this functionality) or the value is False

This updates the libfuzzer template to make use of colocation.  Users can specify co-locating all of the tasks *or* co-locating the secondary tasks.
2021-01-06 13:49:15 +00:00
883f38cb87 Multi-tenant authentication support in CLI (#346)
## Summary of the Pull Request

These are purposed changes to resolve ticket #344 

I have tested these changes and it does not effect or break the current functionality.

I don't necessarily expect this PR to be merged without some tweaks. I'll coordinate over the next week or so to get it right.

One coding issue I would like to discuss/highlight is the assumption (in code) that if "--tenant_domain" is used then the 'common' authority is also used. I am open to suggestions. 

## PR Checklist
* [X] Applies to work item: #344
* [X] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/onefuzz) and sign the CLI.
* [X] Tests passed (with and without multitenant authentication)
* [?] Requires documentation to be updated
* [No] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #344

## Info on Pull Request

Minor changes to the config file and the login process.

## Validation Steps Performed

Tested these changes with a multi-tenant enabled endpoint and a single-tenant endpoint.
2021-01-06 12:35:47 +00:00
37f06bb324 handle libfuzzer fuzzing non-zero exits better (#381)
When running libfuzzer in 'fuzzing' mode, we expect the following on exit.

If the exit code is zero, crashing input isn't required.  This happens if the user specifies '-runs=N'

If the exit code is non-zero, then crashes are expected.  In practice, there are two causes to non-zero exits.
1. If the binary can't execute for some reason, like a missing prerequisite
2. If the binary _can_ execute, sometimes the sanitizers are put in such a bad place that they are unable to record the input that caused the crash.

This PR enables handling these two non-zero exit cases.

1. Optionally verify the libfuzzer target loads appropriately using `target_exe -help=1`.  This allows failing faster in the common issues, such a missing prerequisite library.
2. Optionally allow non-zero exits without crashes to be a warning, rather than a task failure.
2021-01-05 14:40:15 +00:00
36b3e2a5aa disable py-cache prior to mypy on cli (#408) 2021-01-04 11:49:28 -05:00
079f387b88 clarify prefix-expansion errors (#342) 2020-11-24 11:51:03 -05:00
33b7608aaf Adding option to merge all inputs at once (#282) 2020-11-24 08:43:08 -05:00
64bd389eb7 Declarative templates (#266) 2020-11-17 16:00:09 -05:00
ce3356d597 Add SDK Feature Flags (#313)
## Summary of the Pull Request

This enables feature flags for the SDK, which enables gating access to preview features to those that have specifically asked for them.  This is intended to be used within #266.

Note, this change also moves to using a `pydantic` model for the config, rather than hand-crafted JSON dicts.
2020-11-17 15:40:16 +00:00
02600320b7 Don't reset webhooks by default (#307) 2020-11-16 16:51:32 -05:00
31f099d3d4 Event based webhooks (#296) 2020-11-12 17:44:42 -05:00
4cafee9bbf Sorting params for Task creation (#274) 2020-11-09 16:52:09 -05:00
ced8200d74 enable setting ensemble sync duration timer (#229) 2020-10-29 14:48:12 -04:00
99b69d3e56 Adding cache for sas return (#224) 2020-10-29 10:44:25 -04:00
1d2fb99dd4 expose the ability manually override node reset (#201) 2020-10-27 17:29:53 -04:00
18cc45ac56 add user confirmation to container reset (#202) 2020-10-23 19:35:23 -04:00
2fe56f94c1 Add Onefuzz.container.reset to the SDK (#198) 2020-10-23 17:31:12 -04:00
1c06d7085a move SDK to use request models rather than hand-crafted json (#191) 2020-10-23 08:39:45 -04:00
a18c21cf7f fix incorrect resetting of components (#193) 2020-10-22 16:47:40 -04:00
bf7b36f0a6 address help issues in the expanded reset command (#182) 2020-10-20 17:47:05 -04:00
ecd322bfdc Bringing more granularity to reset command option (#161) 2020-10-20 10:33:17 -04:00
9fa25803ab on shutdown of scalesets & pools, only return boolresponse (#169) 2020-10-16 20:48:53 -04:00
7f0c25e2da Managing Pool Resizing at service side (#107) 2020-10-13 14:04:26 -04:00
27a798febe move to warning (#66) 2020-10-01 15:37:01 -04:00
bc9d80e34b add the ability to execute a debug script (#39) 2020-09-29 09:56:53 -04:00
d3a0b292e6 initial public release 2020-09-18 12:21:04 -04:00