Skip to content

Version 0.4.10

Compare
Choose a tag to compare
@jshcodes jshcodes released this 23 Jun 05:13
· 1369 commits to main since this release
69d188e

FalconPy v.0.4.10

This release adds timeout handling functionality and fixes for proxy support within Service Classes.

Special thanks to @matcha-shake for suggesting this enhancement. 🙇

  • Enhancement
  • Bug fixes
  • Updated unit tests

Using timeouts

The timeout value you pass to the Service or Uber class is utilized for all calls to the requests library. For scenarios where you are creating multiple objects to represent different API's, you will be able to set specific timeouts for each API service collection.

Specifying timeouts

The timeout value is passed directly to the requests library, allowing you to specify a float for a "generic" timeout and a tuple to specify read/connect timeouts. Values should be specified in seconds.

Generic timeouts

Passing a float for the timeout value will allow you to specify a timeout for the entire operation.

# Times out after thirty second for connect and read
from falconpy.cloud_connect_aws import Cloud_Connect_AWS as FalconAWS
falcon = FalconAWS(creds={
    'client_id': falcon_client_id,
    'client_secret': falcon_client_secret
}, timeout=30
)
result = falcon.QueryAWSAccounts()
print(result)
Connect / Read timeouts

Using a tuple for the timeout value will allow you to specify individual timeouts for connect and read.

# Times out after one second for connect and read
from falconpy.cloud_connect_aws import Cloud_Connect_AWS as FalconAWS
falcon = FalconAWS(creds={
    'client_id': falcon_client_id,
    'client_secret': falcon_client_secret
}, timeout=(3.05,26.95)
)
result = falcon.QueryAWSAccounts()
print(result)

Unit test coverage

Name                                                             Stmts   Miss  Cover
------------------------------------------------------------------------------------
src/falconpy/__init__.py                                            10      0   100%
src/falconpy/_endpoint/__init__.py                                  83      0   100%
src/falconpy/_endpoint/_cloud_connect_aws.py                         1      0   100%
src/falconpy/_endpoint/_cspm_registration.py                         1      0   100%
src/falconpy/_endpoint/_custom_ioa.py                                1      0   100%
src/falconpy/_endpoint/_d4c_registration.py                          1      0   100%
src/falconpy/_endpoint/_detects.py                                   1      0   100%
src/falconpy/_endpoint/_device_control_policies.py                   1      0   100%
src/falconpy/_endpoint/_event_streams.py                             1      0   100%
src/falconpy/_endpoint/_falcon_complete_dashboard.py                 1      0   100%
src/falconpy/_endpoint/_falconx_sandbox.py                           1      0   100%
src/falconpy/_endpoint/_firewall_management.py                       1      0   100%
src/falconpy/_endpoint/_firewall_policies.py                         1      0   100%
src/falconpy/_endpoint/_host_group.py                                1      0   100%
src/falconpy/_endpoint/_hosts.py                                     1      0   100%
src/falconpy/_endpoint/_incidents.py                                 1      0   100%
src/falconpy/_endpoint/_installation_tokens.py                       1      0   100%
src/falconpy/_endpoint/_intel.py                                     1      0   100%
src/falconpy/_endpoint/_ioa_exclusions.py                            1      0   100%
src/falconpy/_endpoint/_iocs.py                                      1      0   100%
src/falconpy/_endpoint/_malquery.py                                  1      0   100%
src/falconpy/_endpoint/_ml_exclusions.py                             1      0   100%
src/falconpy/_endpoint/_mssp.py                                      1      0   100%
src/falconpy/_endpoint/_oauth2.py                                    1      0   100%
src/falconpy/_endpoint/_overwatch_dashboard.py                       1      0   100%
src/falconpy/_endpoint/_prevention_policies.py                       1      0   100%
src/falconpy/_endpoint/_quick_scan.py                                1      0   100%
src/falconpy/_endpoint/_real_time_response.py                        1      0   100%
src/falconpy/_endpoint/_real_time_response_admin.py                  1      0   100%
src/falconpy/_endpoint/_sample_uploads.py                            1      0   100%
src/falconpy/_endpoint/_sensor_download.py                           1      0   100%
src/falconpy/_endpoint/_sensor_update_policies.py                    1      0   100%
src/falconpy/_endpoint/_sensor_visibility_exclusions.py              1      0   100%
src/falconpy/_endpoint/_spotlight_vulnerabilities.py                 1      0   100%
src/falconpy/_endpoint/_user_management.py                           1      0   100%
src/falconpy/_endpoint/_zero_trust_assessment.py                     1      0   100%
src/falconpy/_endpoint/deprecated/__init__.py                       12      0   100%
src/falconpy/_endpoint/deprecated/_custom_ioa.py                     1      0   100%
src/falconpy/_endpoint/deprecated/_firewall_management.py            1      0   100%
src/falconpy/_endpoint/deprecated/_installation_tokens.py            1      0   100%
src/falconpy/_endpoint/deprecated/_iocs.py                           1      0   100%
src/falconpy/_endpoint/deprecated/_real_time_response.py             1      0   100%
src/falconpy/_endpoint/deprecated/_real_time_response_admin.py       1      0   100%
src/falconpy/_result.py                                              8      0   100%
src/falconpy/_service_class.py                                      45      0   100%
src/falconpy/_util.py                                              142      0   100%
src/falconpy/_version.py                                             8      0   100%
src/falconpy/api_complete.py                                        89      0   100%
src/falconpy/cloud_connect_aws.py                                   74      0   100%
src/falconpy/cspm_registration.py                                  128      0   100%
src/falconpy/custom_ioa.py                                         142      0   100%
src/falconpy/d4c_registration.py                                    71      0   100%
src/falconpy/detects.py                                             34      0   100%
src/falconpy/device_control_policies.py                             77      0   100%
src/falconpy/event_streams.py                                       15      0   100%
src/falconpy/falcon_complete_dashboard.py                          110      0   100%
src/falconpy/falconx_sandbox.py                                     82      0   100%
src/falconpy/firewall_management.py                                148      0   100%
src/falconpy/firewall_policies.py                                   80      0   100%
src/falconpy/host_group.py                                          71      0   100%
src/falconpy/hosts.py                                               64      0   100%
src/falconpy/incidents.py                                           45      0   100%
src/falconpy/installation_tokens.py                                 67      0   100%
src/falconpy/intel.py                                              105      0   100%
src/falconpy/ioa_exclusions.py                                      43      0   100%
src/falconpy/iocs.py                                                60      0   100%
src/falconpy/malquery.py                                            71      0   100%
src/falconpy/ml_exclusions.py                                       43      0   100%
src/falconpy/mssp.py                                               190      0   100%
src/falconpy/oauth2.py                                              34      0   100%
src/falconpy/overwatch_dashboard.py                                 43      0   100%
src/falconpy/prevention_policy.py                                   77      0   100%
src/falconpy/quick_scan.py                                          29      0   100%
src/falconpy/real_time_response.py                                 147      0   100%
src/falconpy/real_time_response_admin.py                            88      0   100%
src/falconpy/sample_uploads.py                                      31      0   100%
src/falconpy/sensor_download.py                                     42      0   100%
src/falconpy/sensor_update_policy.py                               117      0   100%
src/falconpy/sensor_visibility_exclusions.py                        43      0   100%
src/falconpy/spotlight_vulnerabilities.py                           21      0   100%
src/falconpy/user_management.py                                     75      0   100%
src/falconpy/zero_trust_assessment.py                                9      0   100%
------------------------------------------------------------------------------------
TOTAL                                                             2913      0   100%

Bandit analysis

[main]	INFO	running on Python 3.9.2
Run started:2021-06-21 19:14:31.312037

Test results:
	No issues identified.

Code scanned:
	Total lines of code: 18548
	Total lines skipped (#nosec): 0

Run metrics:
	Total issues (by severity):
		Undefined: 0.0
		Low: 0.0
		Medium: 0.0
		High: 0.0
	Total issues (by confidence):
		Undefined: 0.0
		Low: 0.0
		Medium: 0.0
		High: 0.0
Files skipped (0):

Added features and functionality

  • Added: Timeout functionality for calls to the requests library

Issues resolved

  • Fixed: Service Class proxy functionality support

Other

  • Timeout functionality unit tests (tests/test_timeout.py)