University of Maryland Global Campus

CTCH 685: Software Security

A study guide to UMGC's graduate course on software vulnerabilities such as buffer overflows, SQL injection and session hijacking, and how to prevent them.

Updated October 2026 · 5 min read

CTCH 685 at the University of Maryland Global Campus is a graduate course on why software fails securely or insecurely, and how to stop attackers exploiting it.

UMGC describes it as a comprehensive evaluation of software security vulnerabilities and threats in software exploitation. Topics include buffer overflows, SQL injection and session hijacking.

The focus is on developing defensive methodologies, including advanced testing and program analysis techniques, to prevent or mitigate these attacks. Students often find it hard to move from "what the attack is" to a layered, testable defense.

Course at a Glance

ItemDetails
UniversityUniversity of Maryland Global Campus (UMGC)
Course codeCTCH 685
LevelGraduate, 3 credits
Named topicsBuffer overflows, SQL injection, session hijacking
Subject areaSoftware and application security
Typical workVulnerability analyses, defensive methodology papers, testing reports

What CTCH 685 Covers

TopicIn plain language
Buffer overflowsWriting more data into memory than a buffer holds, overwriting nearby data
SQL injectionTricking an application into running attacker-supplied database commands
Session hijackingStealing or guessing a user's session token to impersonate them
Testing techniquesFinding flaws by running the software, including fuzzing
Program analysisExamining code or binaries for unsafe patterns
Defensive methodologyA structured plan to prevent or reduce each class of attack

Key Concepts Explained

SQL Injection and Parameterised Queries

SQL injection happens when user input is pasted into a query string, so the database treats part of the input as code. The main defense is a parameterised query, which keeps code and data separate.

Example: Unsafe: building "SELECT * FROM users WHERE name = '" + input + "'". An input such as ' OR '1'='1 changes the query's logic. Safe: SELECT * FROM users WHERE name = ? with the input passed as a parameter, so it is always treated as a value. Add least-privilege database accounts and input validation as further layers.

Buffer Overflows

Overflows mostly affect languages such as C and C++ that do not check memory bounds automatically. Defenses work at several levels: bounds-checked functions and careful code, compiler protections such as stack canaries, and operating system measures such as address space layout randomization (ASLR) and non-executable memory.

Session Management

To resist hijacking, session tokens should be long and random, sent only over HTTPS, marked HttpOnly and Secure, regenerated at login, and expired after inactivity. Each of these closes a specific route an attacker could use.

Testing and Program Analysis

CTCH 685 asks you to defend software using analysis and testing, not just coding advice. Know the main families and what each is good at:

TechniqueStrengthLimit
Static analysisScans all code paths earlyFalse positives
Dynamic testingShows real runtime behaviorOnly covers paths exercised
FuzzingFinds crashes from odd inputNeeds triage of results
Code reviewCatches logic flaws tools missSlow, depends on reviewer

A strong defensive methodology combines them across the development life cycle and explains when each runs.

Typical Assignments and How to Approach Them

Assignment typeWhat it testsHow to approach it
Vulnerability analysisUnderstanding how an attack worksCause, exploit path, impact, then fix
Defensive methodology paperLayered prevention and mitigationCombine code, testing and platform controls
Code review exerciseSpotting unsafe patternsQuote the line, name the flaw, give the safer version
Testing reportApplying analysis toolsReport findings, false positives and coverage

Reading Code with an Attacker's Eye

Software security assignments often include a code sample to review. A consistent method keeps you from missing issues:

  1. Find every point where external input enters the program.
  2. Follow that input to where it is used: queries, memory copies, file paths, output.
  3. Check whether it is validated, encoded or bounded before use.
  4. Note session and authentication logic separately, since flaws there rarely involve input handling.

For each issue, state the weakness, a realistic attack, the impact and the fix. Linking the flaw to a CWE entry adds precision.

Where Students Get Stuck

Study Tips for CTCH 685

How We Help with CTCH 685

Send the assignment prompt, any code samples, the rubric and feedback. A writer with software security background can explain vulnerabilities and defenses, prepare a custom analysis or methodology for reference, or review your own work for accuracy.

GradeEssays is independent of the University of Maryland Global Campus. We do not write attack code for use against real systems. Use our work to learn, then submit your own under UMGC's academic integrity policy. Every order is plagiarism-checked and refunded in full if late.

Strengthen Your CTCH 685 Defensive Analysis

Share the brief, code and rubric. A security writer prepares a custom analysis with clear mitigations to study.

Start My CTCH 685 Help

Free revisions · Full refund if late · Written from scratch for your order

Frequently Asked Questions

What vulnerabilities does CTCH 685 name?

UMGC's description lists buffer overflows, SQL injection and session hijacking.

Is CTCH 685 about attacking or defending software?

Both are studied, but UMGC states the focus is on developing defensive methodologies.

What is the best defense against SQL injection?

Parameterised queries, supported by input validation and least-privilege database accounts.

What is fuzzing?

Feeding large amounts of unexpected or random input to a program to trigger crashes that reveal flaws.

Do I need to code for CTCH 685?

Some familiarity with code helps you read examples. Check your syllabus for any programming requirements.

Can you complete my CTCH 685 assignment for submission?

No. We offer tutoring, custom answers for reference and editing of your own work.