diff --git a/src/seclab_taskflows/taskflows/alert_triage_examples/triage_common/validate_user_input.yaml b/src/seclab_taskflows/taskflows/alert_triage_examples/triage_common/validate_user_input.yaml index 7da4ebf..b505911 100644 --- a/src/seclab_taskflows/taskflows/alert_triage_examples/triage_common/validate_user_input.yaml +++ b/src/seclab_taskflows/taskflows/alert_triage_examples/triage_common/validate_user_input.yaml @@ -18,7 +18,7 @@ taskflow: ``` {{ result.result }} ``` - Check that the notes contains a section call "User-Controlled input" or similar. + Check that the notes contain a section called "User-Controlled input" or similar. If the section is missing, then mark the alert as invalid and update the alert results with the reason saying that no user input is found. toolboxes: diff --git a/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/actions_common/audit_workflow_users.yaml b/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/actions_common/audit_workflow_users.yaml index 741919d..e7d4ca9 100644 --- a/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/actions_common/audit_workflow_users.yaml +++ b/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/actions_common/audit_workflow_users.yaml @@ -17,7 +17,7 @@ taskflow: user_prompt: | Fetch the file {{ result.user }} from the repo {{ result.repo }}. - Get the high privileged triggers for the of the workflow in the file {{ result.user }} and check if it is reusable. + Get the high privileged triggers for the workflow in the file {{ result.user }} and check if it is reusable. If it does not contain any high privileged trigger AND it is not a reusable action, then the task is done. Otherwise, check that the action specified by {{ result.user }} in repo {{ result.repo }} is active. @@ -34,7 +34,7 @@ taskflow: You must mention the fact that {{ result.user }} uses {{ result.action }} in lines {{ result.lines }} in the notes. You must also include all the permissions granted to the {{ result.user }} action in the notes, and all the triggers of the action. - Finally, update the all the alert result that has {{ result.action }} with the results in your notes using `update_all_alert_results_for_flow_graph` with + Finally, update all the alert results that have {{ result.action }} with the results in your notes using `update_all_alert_results_for_flow_graph` with your notes as the `results`, {{ result.action }} as the `next` and {{ result.repo }} as the `repo`. toolboxes: - seclab_taskflows.toolboxes.gh_file_viewer diff --git a/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/actions_common/trigger_analysis.yaml b/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/actions_common/trigger_analysis.yaml index b4f9aae..850133d 100644 --- a/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/actions_common/trigger_analysis.yaml +++ b/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/actions_common/trigger_analysis.yaml @@ -42,7 +42,7 @@ taskflow: 1. Inspect the workflow file to see if any permission is granted to the action. List all the permissions in your notes 2. Then check and see if the action is using any secrets. - IMPORTANT: Do not consider GITHUB_TOKEN as a secret. Include the name of the all the secrets and their line numbers in the notes. + IMPORTANT: Do not consider GITHUB_TOKEN as a secret. Include the name of all the secrets and their line numbers in the notes. Take notes while assessing the alert, including the trigger, permissions, and secrets used by the action. diff --git a/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/create_issues_actions.yaml b/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/create_issues_actions.yaml index fe3f777..52c98f3 100644 --- a/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/create_issues_actions.yaml +++ b/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/create_issues_actions.yaml @@ -64,7 +64,7 @@ taskflow: - seclab_taskflow_agent.personalities.assistant exclude_from_context: true user_prompt: | - Fetch the all the completed alert results from that has the rule `{{ globals.rule }}`. + Fetch all the completed alert results that have the rule `{{ globals.rule }}`. toolboxes: - seclab_taskflows.toolboxes.report_alert_state - task: @@ -180,6 +180,6 @@ taskflow: - seclab_taskflow_agent.personalities.assistant exclude_from_context: true user_prompt: | - Fetch the all the invalid alert results from that has the rule `{{ globals.rule }}`. + Fetch all the invalid alert results that have the rule `{{ globals.rule }}`. toolboxes: - seclab_taskflows.toolboxes.report_alert_state diff --git a/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/review_actions_injection_issues.yaml b/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/review_actions_injection_issues.yaml index a171b6a..9034f90 100644 --- a/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/review_actions_injection_issues.yaml +++ b/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/review_actions_injection_issues.yaml @@ -55,7 +55,7 @@ taskflow: {% include 'seclab_taskflows.prompts.triage_taskflows.actions_common.check_dismiss_reason' %} IMPORTANT: - 1. If the dismissal reason does not apply the issue, then you must not dismiss the alert. In particular, + 1. If the dismissal reason does not apply to the issue, then you must not dismiss the alert. In particular, DO NOT try to reason about code injection sanitizer beyond the dismissal reason. 2. A security check has to restrict the permission or privilege of the user, simple checks that diff --git a/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/triage_actions_code_injection.yaml b/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/triage_actions_code_injection.yaml index a87b1ed..89067b6 100644 --- a/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/triage_actions_code_injection.yaml +++ b/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/triage_actions_code_injection.yaml @@ -137,7 +137,7 @@ taskflow: echo "The issue title is: ${{ env.ISSUE_TITLE }}" ``` IMPORTANT: - However, if envoirnment variables are not set in the `env` section, but are set in the `run` section, then it is vulnerable to code injection: + However, if environment variables are not set in the `env` section, but are set in the `run` section, then it is vulnerable to code injection: ``` run: | echo "TITLE=${{ github.event.issue.title }}" >> $GITHUB_ENV @@ -200,13 +200,13 @@ taskflow: only consider whether the code at the alert location {{ result.location }} is affected by a sanitizer or a check that takes place before the code injection vulnerability at {{ result.location }}. - If the sanitizer is still valid include update the alert results with these information using the alert_id {{ result.alert_id }} and repo {{ result.repo }} in the - `update_alert_result` tool with your notes as the `result`. Remember to include the line numbers of the checks or sanitizers in the notes. + If the sanitizer is still valid, update the alert results with this information using the alert_id {{ result.alert_id }} and repo {{ result.repo }} in the + `update_alert_result` tool with your notes as the `result`. Remember to include the line numbers of the checks or sanitizers in the notes, and then set the `valid` field of the alert result to `false` using alert_id {{ result.alert_id }} and repo {{ result.repo }}. IMPORTANT: - You must only based your decision on the present of sanitizer and check and not any other factors. And do not include - comment on any other factors that may affect the code injection vulnerability. + You must only base your decision on the presence of sanitizers and checks and not any other factors. And do not include + comments on any other factors that may affect the code injection vulnerability. toolboxes: - seclab_taskflows.toolboxes.gh_file_viewer - seclab_taskflows.toolboxes.report_alert_state @@ -218,7 +218,7 @@ taskflow: agents: - seclab_taskflow_agent.personalities.assistant user_prompt: | - Fetch the valid alert results from that has the rule `{{ globals.rule }}`. + Fetch the valid alert results that have the rule `{{ globals.rule }}`. toolboxes: - seclab_taskflows.toolboxes.report_alert_state - task: @@ -249,7 +249,7 @@ taskflow: agents: - seclab_taskflow_agent.personalities.assistant user_prompt: | - Fetch the all the alert results from that has the rule `{{ globals.rule }}`. + Fetch all the alert results that have the rule `{{ globals.rule }}`. toolboxes: - seclab_taskflows.toolboxes.report_alert_state - task: @@ -259,7 +259,7 @@ taskflow: Review the information gathered from the audit notes to determine whether this alert is a FP. inputs: vuln_specifics: | - DO NOT look for sanitizers of user input beyond those mentioned in the notes. If the notes does not + DO NOT look for sanitizers of user input beyond those mentioned in the notes. If the notes do not mention any sanitizers used on the user input, then assume that the user input is not sanitized, even if you think the code is safe from code injection. - task: @@ -269,7 +269,7 @@ taskflow: agents: - seclab_taskflow_agent.personalities.assistant user_prompt: | - Fetch the valid the alert results from that has the rule `{{ globals.rule }}`. + Fetch the valid alert results that have the rule `{{ globals.rule }}`. toolboxes: - seclab_taskflows.toolboxes.report_alert_state - task: @@ -309,5 +309,5 @@ taskflow: uses: seclab_taskflows.taskflows.alert_triage_examples.triage_taskflows.actions_common.check_report inputs: vuln_specifics: | - You decision must be based only on the criteria above, and not any other factors. + Your decision must be based only on the criteria above, and not any other factors. DO NOT mark the alert as invalid if you think the code is safe from code injection. \ No newline at end of file diff --git a/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/triage_js_ts_client_side_xss.yaml b/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/triage_js_ts_client_side_xss.yaml index 4bda59e..002f347 100644 --- a/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/triage_js_ts_client_side_xss.yaml +++ b/src/seclab_taskflows/taskflows/alert_triage_examples/triage_taskflows/triage_js_ts_client_side_xss.yaml @@ -53,8 +53,8 @@ taskflow: Exploitable means that a remote attacker would be able to inject a malicious script into the web application that would be executed in the context of a user visiting the page. This could include a `javascript:` URL, a `