Commit Graph

700 Commits

Author SHA1 Message Date
2f81c44f01 Refactoring proxy lifetime to only shutdown when proxy is out-of-date. (#839)
## Summary of the Pull Request

_What is this about?_
We'd like to refactor the proxy lifecycle to only delete when the proxy is out-of-date - i.e. when the proxy is older than 7 days or a mismatched version. I've changed two files, proxy.py and timer_daily\init.py to check for the version and timestamp before stopping a live proxy. 

## PR Checklist
* [ ] Applies to work item: #xxx
* [ ] CLA signed. If not, go over [here](https://cla.opensource.microsoft.com/microsoft/onefuzz) and sign the CLI.
* [ ] Tests added/passed
* [ ] Requires documentation to be updated
* [x] 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: #xxx

## Info on Pull Request

_What does this include?_
Changes to two files: 
proxy.py: 
- get_or_create() edited to check if timestamp is >7 days.
- Created is_outdated() to check version and timestamp for out-of-date proxy. 
timer_daily/init.py
- Proxy check now includes is_outdated() before determining if a proxy should be shutdown. 

## Validation Steps Performed
Deploying test instance to determine if proxy lives past a single day.
2021-05-20 14:33:29 +00:00
2b67c7b02f add setup_dir to generator task (#901)
fixes #848
2021-05-19 16:10:13 +00:00
776e8fa909 Add setup arguments to enable specifying alt tenants on the CLI (#900)
This enables specifying the endpoint configuration for alternate tenants purely on the command line.

Previously, on a single tenant you could use the following:
```
onefuzz --endpoint https://INSTANCE.azurewebsites.net info get
```

For multi-tenant installs, we need to expose more than just endpoint.

This enables:
```
onefuzz --endpoint https://INSTANCE.azurewebsites.net --client_id CLIENT_ID  --authority https://login.microsoftonline.com/common --tenant_domain TENANT_DOMAIN info get
```
2021-05-19 07:38:34 +00:00
ff140a6b1b Stop tasks on nodes before deleting task queues (#801) 2021-05-17 18:59:13 +00:00
194ea49f03 Use assign User.Read from Microsoft graph instead of AAD Graph (#894)
Replace the permission in the application registration. 
closes #877
2021-05-17 18:42:08 +00:00
90795d554e release 2.17.0 (#897) 2.17.0 2021-05-17 13:23:01 -04:00
43440f31c1 fix deployment using client_id (#898) 2021-05-17 11:53:35 -04:00
d5b50c4b42 update azure-mgmt-storage to 18.0.0 (#890) 2021-05-17 14:25:02 +00:00
f7e5bc7293 use azcopy for upload_dir (#878)
fixes #869
2021-05-17 14:06:02 +00:00
255271a2b3 Single tenant auth, issuer url fix (#872)
## Info on Pull Request
The deploy.py is only able to set the issuer url to the redmond tenant in the case of single tenant auth. For multi tenant, since the the tenant_domain is provided specifically, it works fine. In the case of single tenant, if the instance is not in the redmond tenant, the cli is unable to authenticate itself.

_What does this include?_

## Validation Steps Performed
A test instance was deployed in the PME instance and it was verified that the cli could authenticate with the instance.
2021-05-17 13:44:39 +00:00
3c0f6f56a7 Azure AD entities description (#896)
Added a description of the configuration of azure AD entities

closes #875
2021-05-17 12:44:45 +00:00
ecec227c33 Remove transitive async-std dep (#892)
Now that we've updated our `tokio` version, we can easily remove this redundant async runtime dependency (and its transitive deps).
2021-05-15 18:06:41 +00:00
811264e249 handle issue from azure-mgmt-resource 17.0.0 upgrade (#893) 2021-05-14 16:19:52 -04:00
b0993fb4b7 bump rust cache key (#891) 2021-05-14 14:03:17 -04:00
49885b7149 upgrade azure-core to 1.14.0 (#889) 2021-05-14 10:59:21 -04:00
eec5347cd5 update azure-mgmt-resource to 17.0.0 (#886) 2021-05-14 10:59:07 -04:00
1c191969a8 update azure-identity to 1.6.0 (#885) 2021-05-14 10:58:54 -04:00
944af544c5 force ASCII generation of markdown document generation (#883) 2021-05-14 10:58:40 -04:00
accbadacc9 only run CodeQL on main (#887) 2021-05-14 10:58:27 -04:00
e8b654d0d4 update HasState Protocol to alway log state transitions (#881) 2021-05-14 02:47:59 +00:00
cb5e786bcd add event for scaleset state updates (#882)
This moves all scaleset state updates through `Scaleset.set_state` and adds a new event EventScalesetStateUpdated.
2021-05-13 21:23:02 +00:00
372c194f7a address clippy issues in latest rust release (#884) 2021-05-13 14:25:09 -04:00
69f12f9d9f log full error context when supervisor exits (#879) 2021-05-13 06:33:36 +00:00
584f68065d cleanup a handful of scaleset logs (#880) 2021-05-12 17:31:08 -04:00
54d49a973e cargo audit fix (#873) 2021-05-11 08:54:21 -04:00
3553f84a0d Update existing breakpoint instead of overwriting (#874) 2021-05-10 15:18:14 -07:00
03dd33965c ignore rust audit issues as anymap is no longer maintained (#871)
* ignore rust audit issues as anyhow is no longer maintained

* fix proxy ci script

Co-authored-by: Brian Caswell <bmc@shmoo.com>
2021-05-10 14:39:43 -07:00
5af0c18bc3 Try to use Sancov tables when analyzing ELF modules (#868)
* Try to use Sancov tables when analyzing ELF modules

* Remove warning

* Add ELF Sancov table example
2021-05-10 08:37:33 -07:00
221a3316a1 Add StopIfFree node command to tell free nodes to stop asking for new work (#866) 2021-05-07 13:55:50 -04:00
eba6fa4456 Improve access scanner (#864)
- Detect Sancov table accesses via static displacements, not just PC-relative
- Explicitly skip instructions with no memory operand
- Skip instructions whose effective address relies on (non-PC) register values
2021-05-07 07:04:08 -07:00
838e2bff0a update azure-cli and azure-cli-core to 2.23.0 (#861) 2021-05-07 13:27:43 +00:00
5001e8fa5f Update sha2 to 0.9.4 (#865) 2021-05-06 23:00:50 -04:00
d06ab1eb68 release 2.16.0 (#862) 2.16.0 2021-05-06 19:08:04 -04:00
c01c30fa7a adding option to only deploy the rbac resources (#818)
adds option to only deploy the rbac resources
closes #814
2021-05-06 17:44:51 +00:00
883f46c72b explicitly ignore azcopy temporary files from directory monitoring (#859) 2021-05-06 13:17:24 -04:00
007ecf2efe shutdown missing scalesets during resize (#860) 2021-05-06 12:00:09 -04:00
7c937a9b97 Explicitly pad start delimiters on Windows (#858)
Sancov table start delimiters are padded on Windows, but not Linux. Expose this in the `SancovDelimiters` interface and update the PE block provider.
2021-05-06 08:39:32 -07:00
00210199c9 Factor out Sancov analysis (#855) 2021-05-06 09:08:28 -04:00
99c258f356 release 2.15.0 (#854) 2.15.0 2021-05-05 17:01:53 -04:00
ca7f0f16ba Try to use Sancov tables when recording Windows coverage (#844)
- Add Sancov table discovery for Windows modules with debug info
- When recording coverage, try to recover coverage blocks from Sancov tables
- Not tested against x86-32 targets, should be close
2021-05-04 08:33:07 -07:00
e5d66bc191 Make field public (#852)
Allow consumers to stay consistent with the OneFuzz block coverage report format, but mutate reports if desired.
2021-05-03 16:53:50 -07:00
78c133433e Increase field visibility (#850) 2021-05-03 14:54:11 -07:00
146a8b5119 Move PDB functions into own module (#843)
This does not implement any logic changes, but reorganizes code for easier re-use.
2021-05-03 10:16:00 -07:00
04aeebdec5 Update pdb to 0.7 (#842)
Picks up some small bugfixes and panic removals.
2021-05-03 09:49:37 -07:00
b5d3c53de4 update contrib deploy dependencies (#847) 2021-05-03 11:47:30 -04:00
f255301425 Ignore inline frames when getting current frame (#838) 2021-04-28 14:43:32 -07:00
d6953fd8be Separate report serialization from runtime struct (#837)
- Redefine the coverage report format to be easily extensible
- Introduce a generic `CoverageReport` struct for coverage report serialization
- Implement runtime-recorded block coverage serialization via conversion into the former
2021-04-28 09:25:00 -07:00
358d85ef82 fix cli client registration (#825)
- The CLIClient approle was not assigned to the cli registration created byt he registration.py script
2021-04-26 20:35:34 +00:00
ced21b2ea3 Add node messages to node get (#836)
This exposes the node commands that have yet to be processed by the node.  Example use case:  The SDK can now ask "has this node installed my SSH key"
2021-04-26 16:14:58 -04:00
541e745199 handle queues vanishing during peek (#832)
Handle queues getting deleted during peek_queue.  This can happen when
polling the pool for work while the pool is getting shut down.
2021-04-26 15:42:40 -04:00