AP® Cybersecurity · exam guide

The AP® Cybersecurity exam: format, the FRQ and how to earn every point

Two sections, 2 hours 10 minutes, fully digital in the Bluebook app: 60 multiple-choice questions (70% of your score) and one free-response question (FRQ), Device Security Analysis (30%). Below: what each section asks, a method for every part of the free-response question, and a full practice question with a scoring guide.

Exam facts from College Board's AP Central exam page and the Exam Information section of the Course and Exam Description (CED), checked November 11, 2026. Always confirm dates on AP Central.

The exam at a glance

SectionQuestionsTimeShare of score
I: Multiple choice6080 minutes70%
II: Free response (Device Security Analysis)1, in several parts50 minutes30%

Date: the first exam is scheduled for Wednesday, May 5, 2027, Session 1 (morning). Where: the Bluebook testing app; your answers are submitted automatically when time runs out. Pace: 80 minutes for 60 questions is 1 minute 20 seconds per question.

Section I: multiple choice

  • All five units are tested. Some questions stand alone; others come in sets of 2, 3 or 4 that share one scenario or piece of evidence, such as a log, a rule table or a network diagram.
  • The section is organized by the three skill categories, each about 25 to 40% of the section: Analyze Risk, Mitigate Risk and Detect Attacks.
  • Expect to read evidence, not just recall terms: find the vulnerability, pick the best mitigation, spot the sign of an attack.

Practice: take the full 60-question practice exam (80 minutes, scored by unit). Every topic page also ends with a checkpoint in this style, and each unit has a unit review and a boss-level case built on evidence.

Section II: the Device Security Analysis question

One question, about 50 minutes. You get several sources about a single device, for example a security policy, the device's firewall rules, a file listing with permissions, and log files. The question assesses two skill categories, Mitigate Risk and Detect Attacks. You must cite evidence from the sources and explain your reasoning.

In the sample question College Board published in the CED, the parts run in this order: the policy, a password attack in a log, file permissions (including writing a chmod command), a firewall block and a rule change, and a second attack with ways to stop it. Each subpart is worth 1 point, 14 points in all. Read it in the CED's Exam Information section; the practice question below has the same shape with a new device and new evidence.

The task verbs, and what earns the point

VerbWhat you doOne-line check
IdentifyGive the fact or the piece of evidence asked for.Short is fine: "203.0.113.9".
DescribeSay what a process or outcome is, with specifics from the sources.Did you quote the entries?
ExplainGive the reason, how or why, backed by evidence.Is there a "because" with evidence?
DetermineApply the sources to reach a specific result.Did you name one answer, not a list?
WriteWrite a correct command that has the stated effect.Does it match what you described?

A method for 50 minutes

  1. Minutes 0 to 8: read the question first, then the sources. Knowing that part B wants a password attack and part E another attack tells you what to hunt for. Note the device's own Internet Protocol (IP) address.
  2. Mark the evidence. In each log, find bursts (many lines, seconds apart), failures, odd source addresses and odd requests. In the rule table, write the rule numbers next to each blocked line.
  3. Answer in order, one subpart at a time. Label every subpart (A i, A ii...). Each one is a separate point, so a blank subpart is a lost point even if a neighbor is perfect.
  4. Quote, then explain. "Rows 3 to 12 show 'authentication failure ... user=librarian rhost=203.0.113.9' ten times in ten seconds" beats "there were many failed logins".
  5. Keep answers consistent. Your chmod in C (iii) must set exactly what you described in C (ii); your impact in D (iii) must follow from your change in D (ii).
  6. Last 5 minutes: check the "other than" traps. If a part says "other than removing all permissions" or "other than allowing all traffic", an answer that does exactly that earns nothing.

Know these cold

  • Permissions: read the 10-character string as type, then owner, group, others; r = 4, w = 2, x = 1. Practice in the permissions lab.
  • Firewall rules: the first rule that matches decides; the last rule is usually deny all. Practice in 3.4 Firewalls.
  • Logs: failed sign-ins, blocked connections, odd web requests. Practice in 4.4 Detecting attacks on devices and 5.6.
  • Attacks and countermeasures: password attacks (4.2), Structured Query Language (SQL) injection and cross-site scripting (5.1), input sanitization (5.5), intrusion detection and prevention systems (IDS and IPS) and automated responses (3.5).

Attack signatures to recognize in logs

AttackWhat it looks like in a log
Online password attackMany failed sign-ins for one account in a short time, usually from one address.
Password sprayingOne or two attempts each against many different accounts, from one address.
SQL injectionQuotes, OR '1'='1, UNION SELECT or -- inside a request, often with errors (500) or replies much larger than normal.
Cross-site scripting (XSS)<script> or other HTML and JavaScript inside a request or a stored comment.
Directory traversal../../ in a path, reaching for files such as /etc/passwd.
Buffer overflowA request or input far longer than normal, followed by a crash or restart.

Traps that cost points

  • "Rewrite a rule" means rewrite an existing one. Adding a brand-new rule does not answer it.
  • Identify means one answer. One IP address, one attack type. A list with one wrong item can lose the point.
  • "Other than..." excludes the obvious answer. Allowing all traffic, removing every permission, or repeating the system you named before earns nothing.
  • An impact goes beyond the change itself. "Now the computer can connect" restates the edit; say what else that means for traffic or risk.
  • Answers are typed in Bluebook. Put each subpart on its own line with its label, so the reader finds every point.

Practice FRQ: the library catalog server

Original question in the AP® format. Suggested time: 50 minutes. 14 points. Write your answers on paper first, then open the scoring guide.

Scenario. A school's technology team is reviewing lib-cat-01, the server that runs the library catalog. The five sources below were taken from that one server during the review. Its IP address is 10.20.30.15. Remote access uses Secure Shell (SSH); files can also be moved with File Transfer Protocol (FTP).

Source 1: firewall rules (checked from rule 1 down; the first match applies)

RuleActionSourceDestinationDirectionPortProtocol
1AllowALL10.20.30.15Inbound443HTTPS
2Allow10.20.30.4010.20.30.15Inbound22SSH
3AllowALL10.20.30.15Inbound21FTP
4AllowALL10.20.30.15Inbound23Telnet
5Deny198.51.100.7710.20.30.15InboundALLALL
6Allow10.20.30.5010.20.30.15Inbound3306MySQL
7DenyALLALLInboundALLALL

Source 2: authentication log

mreyes@lib-cat-01: ~
mreyes@lib-cat-01:~$ sudo tail -n 16 /var/log/auth.log | nl
 1  Nov 10 14:02:11 lib-cat-01 sshd[1180]: Accepted publickey for mreyes from 10.20.30.40 port 50412 ssh2
 2  Nov 10 14:02:11 lib-cat-01 sshd[1180]: pam_unix(sshd:session): session opened for user mreyes by (uid=0)
 3  Nov 10 14:20:01 lib-cat-01 vsftpd[2203]: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=librarian rhost=203.0.113.9  user=librarian
 4  Nov 10 14:20:02 lib-cat-01 vsftpd[2205]: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=librarian rhost=203.0.113.9  user=librarian
 5  Nov 10 14:20:03 lib-cat-01 vsftpd[2207]: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=librarian rhost=203.0.113.9  user=librarian
 6  Nov 10 14:20:04 lib-cat-01 vsftpd[2209]: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=librarian rhost=203.0.113.9  user=librarian
 7  Nov 10 14:20:05 lib-cat-01 vsftpd[2211]: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=librarian rhost=203.0.113.9  user=librarian
 8  Nov 10 14:20:06 lib-cat-01 vsftpd[2213]: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=librarian rhost=203.0.113.9  user=librarian
 9  Nov 10 14:20:07 lib-cat-01 vsftpd[2215]: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=librarian rhost=203.0.113.9  user=librarian
10  Nov 10 14:20:08 lib-cat-01 vsftpd[2217]: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=librarian rhost=203.0.113.9  user=librarian
11  Nov 10 14:20:09 lib-cat-01 vsftpd[2219]: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=librarian rhost=203.0.113.9  user=librarian
12  Nov 10 14:20:10 lib-cat-01 vsftpd[2221]: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp ruser=librarian rhost=203.0.113.9  user=librarian
13  Nov 10 14:24:37 lib-cat-01 kernel: [UFW BLOCK] IN=eth0 OUT= SRC=198.51.100.77 DST=10.20.30.15 PROTO=TCP SPT=51544 DPT=22 SYN
14  Nov 10 14:26:05 lib-cat-01 kernel: [UFW BLOCK] IN=eth0 OUT= SRC=10.20.30.41 DST=10.20.30.15 PROTO=TCP SPT=60118 DPT=22 SYN
15  Nov 10 14:31:02 lib-cat-01 sudo:   mreyes : TTY=pts/0 ; PWD=/home/mreyes ; USER=root ; COMMAND=/usr/bin/apt upgrade
16  Nov 10 14:31:02 lib-cat-01 sudo: pam_unix(sudo:session): session opened for user root by mreyes(uid=1000)

Source 3: web server access log

mreyes@lib-cat-01: ~
mreyes@lib-cat-01:~$ sudo tail -n 7 /var/log/nginx/access.log | nl
 1  10.20.30.62 - - [10/Nov/2026:14:40:01 +0000] "GET /catalog?q=networks HTTP/1.1" 200 5120 "-" "Mozilla/5.0 (X11; Linux x86_64)"
 2  10.20.30.62 - - [10/Nov/2026:14:40:09 +0000] "GET /catalog/item?id=118 HTTP/1.1" 200 2210 "-" "Mozilla/5.0 (X11; Linux x86_64)"
 3  203.0.113.61 - - [10/Nov/2026:14:41:15 +0000] "GET /catalog/item?id=118' HTTP/1.1" 500 512 "-" "curl/8.5.0"
 4  203.0.113.61 - - [10/Nov/2026:14:41:22 +0000] "GET /catalog/item?id=118'+OR+'1'='1 HTTP/1.1" 200 51734 "-" "curl/8.5.0"
 5  203.0.113.61 - - [10/Nov/2026:14:41:40 +0000] "GET /catalog/item?id=0'+UNION+SELECT+username,password_hash+FROM+staff--+ HTTP/1.1" 200 1876 "-" "curl/8.5.0"
 6  10.20.30.62 - - [10/Nov/2026:14:42:03 +0000] "GET /hours HTTP/1.1" 200 1430 "-" "Mozilla/5.0 (X11; Linux x86_64)"
 7  10.20.30.40 - - [10/Nov/2026:14:43:10 +0000] "GET /admin/reports HTTP/1.1" 200 6630 "-" "Mozilla/5.0 (Windows NT 10.0)"

Source 4: files in /srv/catalog

mreyes@lib-cat-01: /srv/catalog
mreyes@lib-cat-01:/srv/catalog$ ls -l
total 68
-rw------- 1 mreyes mreyes  1679 Nov  2 10:03 api.key
-rw-r----- 1 mreyes staff   3104 Nov  9 16:20 db.conf
-rwxr-xr-x 1 mreyes staff    912 Nov  8 17:40 nightly_backup.sh
-rw-rw-rw- 1 mreyes staff  48211 Nov 10 07:55 patrons.csv
-rw-r--r-- 1 mreyes staff   2048 Nov  9 08:15 README.txt
-rwxrwxrwx 1 mreyes staff    604 Nov  8 17:41 rebuild_index.sh

Source 5: device use policy

Library catalog server: device use policy

Required

  • Administrators sign in with a personal account and a key, never a shared password.
  • Security updates are installed within 7 days of release.

Permitted

  • Staff may manage the server remotely over SSH from the circulation desk computer.
  • Patrons may search the catalog through the library website.

Prohibited

  • Sharing administrator accounts.
  • Copying patron records to removable storage.
  • Installing software that the technology office has not approved.

The question

Answer all five parts, A to E. Write each subpart on its own line with its label (A i, A ii and so on).

Part A (Source 5)

  1. i. Choose one rule in Source 5 and explain how following it reduces risk to lib-cat-01.
  2. ii. Pick one existing rule in Source 5 and explain how rewriting it would better protect the server. Give the new wording.

Part B (Source 2, rows 3 to 12)

  1. i. Rows 3 to 12 record a password attack. Describe what in those rows shows it, quoting entries.
  2. ii. Identify the address the attack came from.

Part C (any source)

  1. i. Choose one file in Source 4. Explain what its permission string lets its owner, its group and everyone else do. Name the file.
  2. ii. Describe a new setting for one named file that limits who can use it, without taking every permission away from everyone.
  3. iii. Write the chmod command or commands that apply your setting from C (ii).

Part D (any source)

  1. i. Using a log entry as evidence, explain why the firewall stopped one connection attempt.
  2. ii. Describe how you would edit one existing rule so that this attempt gets through. Making the firewall allow everything does not count.
  3. iii. Describe one effect of your edit on traffic to or from the server, beyond letting that attempt through.

Part E (any source)

  1. i. A different log shows a second attack, not the password attack from part B. Determine its type.
  2. ii. Describe the specific evidence for it in that log.
  3. iii. Describe how an automated system could stop this kind of attack while it is happening.
  4. iv. Identify one other countermeasure, not a firewall, IDS, IPS or AI tool, that could mitigate, prevent or deter it.
Open the scoring guide and model answers (14 points)

One point per subpart. A different answer earns the point if it is accurate and uses the evidence; the model answers show one way.

Point 1 A (i): How following one rule reduces risk.

Earns the point: Names one part of Source 5 and explains how it protects the device.

Model answer: The policy requires security updates within 7 days of release. Updates patch known vulnerabilities, so an adversary has less time to exploit a published flaw on the catalog server.

Does not earn it: Repeats the rule without saying how it protects ("updates are required"), or names something that is not in the policy.

Point 2 A (ii): Rewrite one existing rule, with new wording.

Earns the point: Gives specific new wording for an existing rule and explains why it protects the server better.

Model answer: Rewrite "Installing software that the technology office has not approved" as "Installing unapproved software, or enabling unencrypted remote services such as Telnet and FTP". Telnet and FTP send usernames and passwords in plaintext, and rules 3 and 4 of the firewall allow both from anywhere.

Does not earn it: Adds a brand-new rule instead of rewriting an existing one, gives vague advice ("make the policy stricter"), or gives no reason.

Point 3 B (i): What in rows 3 to 12 shows the password attack.

Earns the point: Describes repeated failed sign-ins and cites the log.

Model answer: Rows 3 to 12 show ten "authentication failure" entries for user=librarian over FTP (vsftpd) within about ten seconds, 14:20:01 to 14:20:10, all from rhost=203.0.113.9. Many failed attempts against one account in a short time is an online password attack.

Does not earn it: Says "there are failed logins" without citing entries, timing or the account.

Point 4 B (ii): The address the attack came from.

Earns the point: The correct address, and only that one.

Model answer: 203.0.113.9

Does not earn it: The device's own address (10.20.30.15), another address, a port number, or a list of several addresses.

Point 5 C (i): What one file's permission string allows, for owner, group and others.

Earns the point: Names a file and correctly reads all three sets.

Model answer: patrons.csv is -rw-rw-rw-: the owner mreyes can read and write it, members of the group staff can read and write it, and every other user on the system can also read and write it. No one can execute it.

Does not earn it: Reads only one set, or mixes up the order (owner, group, others).

Point 6 C (ii): A new, more limited setting for one named file.

Earns the point: A valid setting that restricts some users, named for one file.

Model answer: patrons.csv: keep read and write for the owner, give the staff group read only, and remove all permissions for others, so only staff can see patron records and only mreyes can change them.

Does not earn it: Removes everything for everyone, removes the owner's own access, or describes a setting that gives more access.

Point 7 C (iii): The chmod command for C (ii).

Earns the point: A correct command matching C (ii).

Model answer: chmod 640 /srv/catalog/patrons.csv (or chmod u=rw,g=r,o= /srv/catalog/patrons.csv)

Does not earn it: A command that does not match C (ii) (for example chmod 644 when C (ii) said "no access for others"), or invalid syntax. Adding sudo is optional.

Point 8 D (i): Why the firewall stopped one attempt, with log evidence.

Earns the point: Cites one blocked attempt and the rule that blocked it.

Model answer: Row 14 of Source 2 is "[UFW BLOCK] SRC=10.20.30.41 ... DPT=22": an SSH connection from 10.20.30.41. Rules are checked from the top. Rule 2 allows SSH only from 10.20.30.40 and no other allow rule covers port 22, so the first rule that matches is rule 7, which denies all other inbound traffic. (Also correct: row 13, SSH from 198.51.100.77, where the first match is rule 5.)

Does not earn it: Names a blocked address without the log evidence, names a rule that does not match, or lists several attempts when one of them is wrong.

Point 9 D (ii): An edit to one existing rule that lets that attempt through.

Earns the point: A specific edit to one existing rule that allows the attempt from D (i).

Model answer: For row 14: change rule 2's source from 10.20.30.40 to 10.20.30.40 and 10.20.30.41. (If D (i) used row 13: add 198.51.100.77 to rule 2's source; rule 2 sits above rule 5, so it matches first.)

Does not earn it: "Delete rule 7" or "allow everything" (far more than one attempt), adding a new rule instead of editing one, or an edit that allows a different attempt from the one in D (i).

Point 10 D (iii): One effect of the edit, beyond that attempt.

Earns the point: A real consequence for traffic or risk that follows from the edit in D (ii).

Model answer: All SSH traffic from 10.20.30.41 now reaches the server, so if that computer is compromised an adversary can try to sign in over SSH from it. It also conflicts with the policy, which permits SSH only from the circulation desk computer. SSH from every address except 10.20.30.40 and 10.20.30.41 is still denied.

Does not earn it: Restates the change ("now .41 can connect") instead of an impact.

Point 11 E (i): The type of the second attack.

Earns the point: Names the attack.

Model answer: SQL injection, in the web server access log (Source 3).

Does not earn it: A general label such as "hacking" or "a web attack", or a list of attack types.

Point 12 E (ii): The specific evidence in that log.

Earns the point: Cites the injected input and what it shows.

Model answer: Rows 3 to 5 come from 203.0.113.61 using curl. Row 3 adds a single quote to id and the server errors (500). Row 4 adds ' OR '1'='1, which is always true, and the reply jumps to 51734 bytes from the normal 2210 for item 118, so the query returned far more rows than one item. Row 5 adds UNION SELECT username,password_hash FROM staff to pull staff password hashes (the -- turns the rest of the original query into a comment).

Does not earn it: Says "strange URLs" without quoting the SQL or reading the response codes and sizes.

Point 13 E (iii): How an automated system could stop it as it happens.

Earns the point: A system and how it stops the attack as it happens.

Model answer: An intrusion prevention system (IPS) in front of the web server inspects each request, matches SQL keywords such as UNION SELECT or ' OR '1'='1 in the URL, drops the request and blocks 203.0.113.61.

Does not earn it: Names a system without saying how it stops the attack, or describes something done later (reviewing logs next week).

Point 14 E (iv): One other countermeasure, not a firewall, IDS, IPS or AI tool.

Earns the point: A valid countermeasure that is not a firewall (including a web application firewall), IDS, IPS or AI tool.

Model answer: Input sanitization in the catalog code (or parameterized queries), so text in id is treated as data and never as part of the SQL command.

Does not earn it: Repeats the system from E (iii), or names a firewall, intrusion detection system (IDS), IPS or AI tool.

More practice in the same style, shorter and one unit at a time: the free-response question in each unit review, for example Unit 4 and Unit 5.

Questions students ask

How many questions are on the AP® Cybersecurity exam?

61: 60 multiple-choice questions in 80 minutes (70% of the score) and 1 free-response question in 50 minutes (30%). The whole exam takes 2 hours and 10 minutes in the Bluebook app.

What is the AP® Cybersecurity FRQ?

One question called Device Security Analysis. You get several sources about one device, such as a security policy, firewall rules, file permissions and log files, and answer parts that ask you to explain, describe, identify, determine and write commands, always citing the sources.

Do I have to write commands on the AP® Cybersecurity exam?

Yes, possibly. "Write" is one of the task verbs for the free-response question, and the sample question College Board published asks for a chmod command. Know numeric (chmod 640) and symbolic (chmod u=rw,g=r,o=) forms.

Which units are on the AP® Cybersecurity exam?

All five units are tested in the multiple-choice section, organized by the three skill categories (Analyze Risk, Mitigate Risk, Detect Attacks), each about 25 to 40% of that section. The free-response question assesses Mitigate Risk and Detect Attacks.

When is the AP® Cybersecurity exam?

The first exam is scheduled for Wednesday, May 5, 2027, Session 1 (morning), according to College Board. Check AP Central for the current date and start time.

Was this page helpful?

No names are ever shown, and every public comment is checked by us first. Please do not include personal details. To get a reply, email [email protected].

Course map
↑ Top

Enlarged view of the selected figure