Skip to content

Commit

Permalink
added more functionality and robustness to the report writing scripts
Browse files Browse the repository at this point in the history
  • Loading branch information
cywf committed Aug 21, 2023
1 parent 6f2c6ca commit 6216092
Show file tree
Hide file tree
Showing 11 changed files with 787 additions and 22 deletions.
76 changes: 74 additions & 2 deletions scripts/report-writing/Advance_Surveys.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,78 @@
# Advance_Surveys Script for FortiPath
# Advance_Surveys.py

"""
Advance Surveys Script
Purpose:
This script is designed to assist in conducting pre-event or pre-visit security assessments. The primary goal of an
advance survey is to identify potential security risks, vulnerabilities, and logistical challenges associated with
a specific venue or location. By gathering detailed information about the site in advance, protection teams can
better prepare and implement effective security measures.
Usage:
Run the script and follow the on-screen prompts to input details about the venue, its surroundings, access points,
security features, and any identified vulnerabilities. Upon completion, an Advance Survey report will be generated
and displayed.
"""

# Import necessary libraries
import datetime

def gather_survey_details():
"""
This function prompts the user for details about the venue, its surroundings, and any identified security concerns.
"""
venue_name = input("Enter the name of the venue/location: ")
venue_address = input("Enter the address of the venue/location: ")
venue_type = input("Describe the type of venue (e.g., hotel, conference center, private residence): ")
access_points = input("List the main access points (e.g., main entrance, service entrance, VIP entrance): ")
security_features = input("Describe the existing security features (e.g., CCTV, guards, access control): ")
identified_vulnerabilities = input("List any identified vulnerabilities or security concerns: ")
nearby_landmarks = input("List any nearby landmarks or points of interest: ")

return venue_name, venue_address, venue_type, access_points, security_features, identified_vulnerabilities, nearby_landmarks

def generate_advance_survey(venue_name, venue_address, venue_type, access_points, security_features, identified_vulnerabilities, nearby_landmarks):
"""
This function generates the Advance Survey report based on the provided details.
"""
report_date = datetime.datetime.now().strftime("%Y-%m-%d")

survey = f"""
Advance Survey Report
Report Date: {report_date}
Venue Name: {venue_name}
Address: {venue_address}
Venue Type: {venue_type}
1. Access Points:
{access_points}
2. Security Features:
{security_features}
3. Identified Vulnerabilities:
{identified_vulnerabilities}
4. Nearby Landmarks:
{nearby_landmarks}
# TODO: Consider adding sections for emergency evacuation routes, communication protocols, and liaison contacts.
"""

return survey

def main():
pass
"""
Main function to gather venue details and generate the Advance Survey report.
"""
venue_name, venue_address, venue_type, access_points, security_features, identified_vulnerabilities, nearby_landmarks = gather_survey_details()
survey = generate_advance_survey(venue_name, venue_address, venue_type, access_points, security_features, identified_vulnerabilities, nearby_landmarks)

# Print the survey
print(survey)

# TODO: Consider adding functionality to save the survey to a file or database.

if __name__ == '__main__':
main()
81 changes: 79 additions & 2 deletions scripts/report-writing/After_Action_Reviews.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,83 @@
# After_Action_Reviews Script for FortiPath
# After_Action_Reviews.py

"""
After Action Reviews Script
Purpose:
This script aids in the creation of After Action Reviews (AARs) for security operations. AARs are essential tools for
evaluating the effectiveness of security operations, identifying areas for improvement, and ensuring continuous learning
and improvement within the security team. This script streamlines the process of creating AARs by guiding the user
through a series of prompts to capture key details about the operation, its outcomes, and lessons learned.
Usage:
Run the script and follow the on-screen prompts to input details about the security operation, its objectives, outcomes,
challenges faced, and recommendations for future operations. Upon completion, a comprehensive AAR report will be generated
and displayed.
Note:
This script is intended to assist in drafting AARs. Users should review and finalize the generated report before sharing
or archiving.
"""

# Import necessary libraries
import datetime

def gather_aar_details():
"""
This function prompts the user for details about the security operation, its objectives, outcomes, challenges, and recommendations.
"""
operation_name = input("Enter the name of the security operation: ")
operation_date = input("Enter the date of the operation (YYYY-MM-DD): ")
objectives = input("List the objectives of the operation: ")
outcomes = input("Describe the outcomes of the operation: ")
challenges = input("List any challenges faced during the operation: ")
recommendations = input("Provide recommendations for future operations based on lessons learned: ")

return operation_name, operation_date, objectives, outcomes, challenges, recommendations

def generate_aar_report(operation_name, operation_date, objectives, outcomes, challenges, recommendations):
"""
This function generates the After Action Review report based on the provided details.
"""
current_date = datetime.datetime.now().strftime("%Y-%m-%d")

aar_report = f"""
After Action Review (AAR) Report
Date of Report: {current_date}
Operation: {operation_name}
Date of Operation: {operation_date}
Objectives:
{objectives}
Outcomes:
{outcomes}
Challenges Faced:
{challenges}
Recommendations:
{recommendations}
Prepared by: [Your Name]
FortiPath Security Team
# TODO: Consider adding a section for signatures or approvals if required.
"""

return aar_report

def main():
pass
"""
Main function to gather AAR details and generate the AAR report.
"""
operation_name, operation_date, objectives, outcomes, challenges, recommendations = gather_aar_details()
aar_report = generate_aar_report(operation_name, operation_date, objectives, outcomes, challenges, recommendations)

# Print the AAR report
print(aar_report)

# TODO: Consider adding functionality to save the AAR report to a file or integrate with a document management system.

if __name__ == '__main__':
main()
74 changes: 72 additions & 2 deletions scripts/report-writing/Estate_Security_Plan.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,76 @@
# Estate_Security_Plan Script for FortiPath
# Estate_Security_Plan.py

"""
Estate Security Plan Script
Purpose:
This script is designed to generate a comprehensive security plan for an estate or property.
The user is prompted to provide details about the estate's physical security measures, surveillance systems,
access controls, and any other relevant security details. The script then compiles this information into a
formatted report, which can be printed or saved for future reference.
Usage:
Run the script and follow the prompts to input the necessary security details for the estate.
At the end, a security plan report will be generated and displayed.
"""

# Import necessary libraries
import datetime

def gather_information():
"""
This function prompts the user for information about the estate's security measures.
"""
estate_name = input("Enter the name of the estate: ")
location = input("Enter the location of the estate: ")
# TODO: Consider integrating with a map API for precise location details

physical_security = input("Describe the physical security measures in place (e.g., fences, gates): ")
surveillance_systems = input("Describe the surveillance systems (e.g., CCTV, motion sensors): ")
access_controls = input("Describe the access control measures (e.g., biometric scanners, key cards): ")
other_details = input("Any other relevant security details for the estate: ")

return estate_name, location, physical_security, surveillance_systems, access_controls, other_details

def generate_report(estate_name, location, physical_security, surveillance_systems, access_controls, other_details):
"""
This function generates the Estate Security Plan report based on the provided information.
"""
report_date = datetime.datetime.now().strftime("%Y-%m-%d")

report = f"""
Estate Security Plan - {estate_name}
Date: {report_date}
Location: {location}
1. Physical Security Measures:
{physical_security}
2. Surveillance Systems:
{surveillance_systems}
3. Access Control Measures:
{access_controls}
4. Other Relevant Security Details:
{other_details}
# TODO: Consider adding a section for recommendations or improvements based on the provided details.
"""

return report

def main():
pass
"""
Main function to gather information and generate the Estate Security Plan report.
"""
estate_name, location, physical_security, surveillance_systems, access_controls, other_details = gather_information()
report = generate_report(estate_name, location, physical_security, surveillance_systems, access_controls, other_details)

# Print the report
print(report)

# TODO: Consider adding functionality to save the report to a file or database.

if __name__ == '__main__':
main()
76 changes: 74 additions & 2 deletions scripts/report-writing/Incident_Report.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,78 @@
# Incident_Report Script for FortiPath
# Incident_Report.py

"""
Incident Report Script
Purpose:
This script aids in the creation of detailed incident reports following a security event or breach.
The user is prompted to provide specifics about the incident, including the nature of the event,
affected assets, individuals involved, timeline, and immediate actions taken. The script then
structures this information into a comprehensive report, ensuring that all pertinent details are
documented for future reference, legal considerations, or further action.
Usage:
Run the script and follow the on-screen prompts to input the necessary details about the incident.
Upon completion, an incident report will be generated and displayed.
"""

# Import necessary libraries
import datetime

def gather_incident_details():
"""
This function prompts the user for information about the incident.
"""
incident_type = input("Enter the type of incident (e.g., unauthorized access, data breach, physical intrusion): ")
affected_assets = input("List the assets affected by the incident (e.g., servers, buildings, data): ")
involved_individuals = input("List individuals involved or witnesses (if any): ")
incident_date = input("Enter the date and time of the incident (YYYY-MM-DD HH:MM): ")
incident_description = input("Provide a detailed description of the incident: ")
immediate_actions_taken = input("Describe any immediate actions taken in response to the incident: ")

return incident_type, affected_assets, involved_individuals, incident_date, incident_description, immediate_actions_taken

def generate_incident_report(incident_type, affected_assets, involved_individuals, incident_date, incident_description, immediate_actions_taken):
"""
This function generates the Incident Report based on the provided details.
"""
report_date = datetime.datetime.now().strftime("%Y-%m-%d")

report = f"""
Incident Report
Report Date: {report_date}
Incident Date: {incident_date}
1. Incident Type:
{incident_type}
2. Affected Assets:
{affected_assets}
3. Involved Individuals/Witnesses:
{involved_individuals}
4. Incident Description:
{incident_description}
5. Immediate Actions Taken:
{immediate_actions_taken}
# TODO: Consider adding sections for post-incident analysis, lessons learned, and recommended future actions.
"""

return report

def main():
pass
"""
Main function to gather incident details and generate the Incident Report.
"""
incident_type, affected_assets, involved_individuals, incident_date, incident_description, immediate_actions_taken = gather_incident_details()
report = generate_incident_report(incident_type, affected_assets, involved_individuals, incident_date, incident_description, immediate_actions_taken)

# Print the report
print(report)

# TODO: Consider adding functionality to save the report to a file or database.

if __name__ == '__main__':
main()
Loading

0 comments on commit 6216092

Please sign in to comment.