From b6b5f9317ffca151cd51fa9095c9eb684d34cf3f Mon Sep 17 00:00:00 2001 From: pyth0n1c <87383215+pyth0n1c@users.noreply.github.com> Date: Thu, 12 Aug 2021 13:26:29 -0700 Subject: [PATCH] Using the proper commandline to generate sha256 checksum of files. Added autoescaping to the Jinja2 templates in response to semgrep results. --- .github/workflows/validate-and-build.yml | 4 ++-- automated_detection_testing/detection_service.py | 5 +++-- bin/doc_gen.py | 4 +++- bin/generate.py | 4 +++- bin/newcontent.py | 4 +++- bin/reporting.py | 3 ++- 6 files changed, 16 insertions(+), 8 deletions(-) diff --git a/.github/workflows/validate-and-build.yml b/.github/workflows/validate-and-build.yml index 9090dcbf3d..f116adb08d 100644 --- a/.github/workflows/validate-and-build.yml +++ b/.github/workflows/validate-and-build.yml @@ -231,10 +231,10 @@ jobs: slim package -o upload DA-ESS_AmazonWebServices_Content cp upload/DA-ESS-ContentUpdate-*.tar.gz DA-ESS-ContentUpdate-latest.tar.gz - sha256 DA-ESS-ContentUpdate-latest.tar.gz > checksum.txt + sha256sum DA-ESS-ContentUpdate-latest.tar.gz > checksum.txt cp upload/DA-ESS_AmazonWebServices_Content-*tar.gz DA-ESS_AmazonWebServices_Content-latest.tar.gz - sha256 DA-ESS_AmazonWebServices_Content-latest.tar.gz > checksum.txt + sha256sum DA-ESS_AmazonWebServices_Content-latest.tar.gz > checksum.txt - name: store_artifacts uses: actions/upload-artifact@v2 diff --git a/automated_detection_testing/detection_service.py b/automated_detection_testing/detection_service.py index 551082241b..7fd28ef652 100644 --- a/automated_detection_testing/detection_service.py +++ b/automated_detection_testing/detection_service.py @@ -10,7 +10,7 @@ import boto3 from random import randrange import yaml from github import Github -from jinja2 import Environment, FileSystemLoader +from jinja2 import Environment, FileSystemLoader, select_autoescape import base64 from botocore.exceptions import ClientError import json @@ -41,7 +41,8 @@ def main(args): parser.add_argument("-s3b", "--s3_bucket", required=False, default="attack-range-automated-testing", help="S3 bucket to store the test data") - + select_autoescape(default_for_string=True, default=True) + args = parser.parse_args() test_file_name = args.test_file_name attack_range_repo = args.attack_range_repo diff --git a/bin/doc_gen.py b/bin/doc_gen.py index a290184409..96f94e8f1c 100644 --- a/bin/doc_gen.py +++ b/bin/doc_gen.py @@ -5,7 +5,7 @@ import sys import re from os import path, walk import json -from jinja2 import Environment, FileSystemLoader +from jinja2 import Environment, FileSystemLoader, select_autoescape import datetime from stix2 import FileSystemSource from stix2 import Filter @@ -253,12 +253,14 @@ if __name__ == "__main__": parser.add_argument("-o", "--output", required=True, help="path to the output directory for the docs") parser.add_argument("-v", "--verbose", required=False, default=False, action='store_true', help="prints verbose output") + # parse them args = parser.parse_args() REPO_PATH = args.path OUTPUT_DIR = args.output VERBOSE = args.verbose + select_autoescape(default_for_string=True, default=True) TEMPLATE_PATH = path.join(REPO_PATH, 'bin/jinja2_templates') if VERBOSE: diff --git a/bin/generate.py b/bin/generate.py index 8db841dad6..0dd36c1910 100644 --- a/bin/generate.py +++ b/bin/generate.py @@ -10,7 +10,7 @@ import argparse from os import path import sys import datetime -from jinja2 import Environment, FileSystemLoader +from jinja2 import Environment, FileSystemLoader, select_autoescape import re from attackcti import attack_client import csv @@ -625,6 +625,7 @@ def get_objects(REPO_PATH, OUTPUT_PATH, PRODUCT, VERBOSE): def main(REPO_PATH, OUTPUT_PATH, PRODUCT, VERBOSE): + select_autoescape(default_for_string=True, default=True) TEMPLATE_PATH = path.join(REPO_PATH, 'bin/jinja2_templates') objects = get_objects(REPO_PATH, OUTPUT_PATH, PRODUCT, VERBOSE) @@ -678,6 +679,7 @@ if __name__ == "__main__": parser.add_argument("-v", "--verbose", required=False, default=False, action='store_true', help="prints verbose output") parser.add_argument("--product", required=True, default="ESCU", help="package type") + # parse them args = parser.parse_args() REPO_PATH = args.path diff --git a/bin/newcontent.py b/bin/newcontent.py index b26c4fbf9f..74c306a523 100644 --- a/bin/newcontent.py +++ b/bin/newcontent.py @@ -8,13 +8,15 @@ from pathlib import Path from PyInquirer import prompt, Separator import os import getpass -from jinja2 import Environment, FileSystemLoader +from jinja2 import Environment, FileSystemLoader, select_autoescape import uuid from datetime import date from os import path import sys +select_autoescape(default_for_string=True, default=True) + def detection_wizard(security_content_path,type,TEMPLATE_PATH): questions = [ { diff --git a/bin/reporting.py b/bin/reporting.py index 189f932470..758c44a72f 100644 --- a/bin/reporting.py +++ b/bin/reporting.py @@ -7,7 +7,7 @@ import os from os import path import sys import datetime -from jinja2 import Environment, FileSystemLoader +from jinja2 import Environment, FileSystemLoader, select_autoescape def load_objects(file_path, REPO_PATH): @@ -65,6 +65,7 @@ def main(args): print("detection_coverage {}".format(detection_coverage)) + select_autoescape(default_for_string=True, default=True) TEMPLATE_PATH = os.path.join(os.path.dirname(__file__), 'jinja2_templates') OUTPUT_PATH = os.path.join(os.path.dirname(__file__), 'reporting') j2_env = Environment(loader=FileSystemLoader(TEMPLATE_PATH), trim_blocks=True)