Objective. Students design, build, test, document, and present an integrated Python or Bash security-monitoring tool that combines at least four skills from the course into a single working program.
This lesson, its worked examples and its practice questions has not yet been verified by an industry-certified professional or by a certification or approval body. It is a study draft and may contain errors. Do not use it as instructions for work on a job site or on live equipment. Always follow your instructor, your supervising professional, and current official references and regulations.
VoTechWorks program approval and accreditation are still in progress. Credentials are issued only by the certifying bodies named in each program, after their own exams.
This lesson brings together everything you have practiced in Scripting for Cybersecurity. You will design, build, test, document, and present a single working Python or Bash program that combines at least four skills from the course. The project mirrors real-world security engineering: professionals are regularly asked to automate repetitive monitoring tasks, and the ability to deliver a complete, documented tool is what separates a practitioner from someone who only knows isolated commands.
Manual log review, repeated port scans, and hand-checked file hashes do not scale. A security analyst protecting even a modest network may need to inspect thousands of events per day. Scripting converts those repetitive tasks into reliable, repeatable processes. Employers who hire for roles aligned with CompTIA Security+, CySA+, and ISC2 CC all expect candidates to demonstrate some scripting fluency. Your capstone tool is evidence you can do this.
Before writing a single line of code, submit a one-page project proposal. A good proposal answers four questions:
1. Purpose — What threat or monitoring gap does your tool address? Examples include detecting failed SSH login bursts, alerting on new listening ports, or flagging files whose hashes have changed since a known-good baseline.
2. Skills integrated — Name at least four course skills explicitly (for example: file I/O, regular expressions, subprocess calls, network socket inspection, log parsing, hash computation, or scheduled execution).
3. Inputs and outputs — What data does the tool read (log file path, IP range, baseline file)? What does it produce (console alert, report file, exit code)?
4. Repository structure — Sketch the folder layout: `main.py` or `monitor.sh`, a `tests/` directory, a `data/` directory for sample inputs, and a `README.md` at the root.
Your instructor must approve the proposal before you begin coding. If a revision is requested, treat the feedback as a professional code-review comment — address it specifically and resubmit promptly.
Work incrementally. Make a Git commit every time you complete one functional milestone, not just at the end. Meaningful commit messages such as `Add log-parser function for auth.log` tell a future reader (including your instructor and future employer) exactly what changed and why. Avoid messages like `update` or `fix stuff`.
Run your tool against the lab data provided in course lab guide chapter 12. When the tool produces incorrect or missing output, use a systematic debugging process: add print or logging statements, narrow the failing section, fix, and re-test. Record all bugs you found and how you resolved them — this information strengthens your README and your defense presentation.
Your README must include: a one-paragraph description, prerequisites (Python version or Bash version, required libraries), installation steps, and at least two usage examples with sample output. A README that lets a stranger run your tool without asking you questions is a professional-quality README.
Record a short screen-capture demo using OBS or equivalent software showing the tool running against sample data and producing correct output. This recording protects you if a live demo has a technical problem during your defense.
Each student presents for 8–10 minutes. Structure your presentation in three parts:
Answer honestly. If you do not know something, say so and explain what you would do to find out. That is professional behavior.
Even in a lab environment, scripting carries real risks. Always run your tool against the provided lab data only — never point network scanners or log parsers at systems you do not own or have explicit permission to test. Handle any credentials (API keys, passwords) through environment variables, not hard-coded strings in your source code. Before committing, check that no sensitive data is included in your repository. These habits are not just good practice; they reflect the ethical obligations outlined by ISC2 and the professional standards referenced in CompTIA certifications.
On the physical side, you are working on Ubuntu VMs on shared lab hardware. Follow your lab's standard procedures for session management: lock your screen when stepping away, log out when finished, and do not save credentials to the VM desktop.
All four criteria must be met to pass:
1. The tool runs without errors on the instructor's test data.
2. At least four course skills are visibly integrated.
3. The Git repository has meaningful commits and a complete README.
4. The student answers three instructor questions about the code during the defense.
Review the full rubric provided at project start before you begin your proposal so you know exactly what is evaluated at each phase.
Answer each question, then check it. Nothing is recorded; this is your own practice.
A free tech program — complimentary, as our commitment to get America working. Help us build VoTechWorks. Tell us what works, what doesn’t, and what you want to learn.